Unified · Split
| @@ -1,4 +1,4 @@ | ||
| 1 | −Copyright (c) 1994-1996 TeCGraf, PUC-Rio. Written by Waldemar Celes Filho, | |
| 1 | +Copyright (c) 1994-1997 TeCGraf, PUC-Rio. Written by Waldemar Celes Filho, | |
| 2 | 2 | Roberto Ierusalimschy, Luiz Henrique de Figueiredo. All rights reserved. |
| 3 | 3 | |
| 4 | 4 | Permission is hereby granted, without written agreement and without license or |
| @@ -1,4 +1,18 @@ | ||
| 1 | −Current version is 2.5 | |
| 1 | +This is version 3.0. | |
| 2 | + | |
| 3 | +* Changes since version 2.5 (no versions between 2.5 and 3.0) | |
| 4 | + + NEW CONCEPT: "tag methods". | |
| 5 | + Tag methods replace fallbacks as the meta-mechanism for extending the | |
| 6 | + semantics of Lua. Whereas fallbacks had a global nature, tag methods | |
| 7 | + work on objects having the same tag (e.g., groups of tables). | |
| 8 | + Existing code that uses fallbacks should work without change. | |
| 9 | + + new, general syntax for constructors {[exp] = exp, ... }. | |
| 10 | + + support for handling variable number of arguments in functions (varargs). | |
| 11 | + + support for conditional compilation ($if ... $else ... $end). | |
| 12 | + + cleaner semantics in API simplifies host code. | |
| 13 | + + better support for writing libraries (auxlib.h). | |
| 14 | + + better type checking and error messages in the standard library. | |
| 15 | + + luac can now also undump. | |
| 2 | 16 | |
| 3 | 17 | * Changes since version 2.4 |
| 4 | 18 | + io and string libraries are now based on pattern matching; |
| @@ -1,26 +1,53 @@ | ||
| 1 | 1 | * Installation |
| 2 | − Installing Lua should be very easy: | |
| 2 | + | |
| 3 | + Building Lua on a Unix system should be very easy: | |
| 3 | 4 | |
| 4 | 5 | 1. Edit "config" to suit your platform, if at all necessary |
| 5 | 6 | 2. Then, type "make" |
| 6 | 7 | |
| 8 | + See below for instructions for Windows and Macintosh. | |
| 9 | + | |
| 7 | 10 | * What you get |
| 11 | + | |
| 8 | 12 | If make succeeds, you get: |
| 9 | − * a compiler and an interpreter in ./bin/lua; | |
| 13 | + * an interpreter and a compiler in ./bin; | |
| 10 | 14 | * libraries in ./lib; |
| 11 | 15 | * include files in ./include. |
| 16 | + These are the only directories you need for development. | |
| 12 | 17 | |
| 13 | − There is a reference manual in ./doc, and tests and examples in ./test. | |
| 18 | + There is a reference manual in html in ./doc, and sample code in ./test. | |
| 14 | 19 | You don't need these directories for development. |
| 15 | 20 | |
| 16 | 21 | * If you have problems (and solutions!) |
| 17 | − If make fails, please let us know (lua@icad.puc-rio.br). | |
| 22 | + | |
| 23 | + If "make" fails, please let us know (lua@tecgraf.puc-rio.br). | |
| 18 | 24 | If you make changes to "config", please send them to us. |
| 19 | 25 | |
| 20 | 26 | * Shared libraries |
| 27 | + | |
| 21 | 28 | If you are running SunOs 4.x, type the following after "make" succeeds: |
| 22 | − ld -o lib/liblua.so.2.5 src/*.o | |
| 23 | − ld -o lib/liblualib.so.2.5 clients/lib/*.o | |
| 29 | + ld -o lib/liblua.so.3.0 src/*.o | |
| 30 | + ld -o lib/liblualib.so.3.0 clients/lib/*.o | |
| 24 | 31 | |
| 25 | 32 | For AIX, the OpenGL clone Mesa includes a script for making shared libraries. |
| 26 | − For other systems, please let us know how! | |
| 33 | + For other systems, please tell us how! | |
| 34 | + | |
| 35 | +* Installation on Windows or Macintosh | |
| 36 | + | |
| 37 | + The instructions for building Lua on a Mac or Windows machine depend on | |
| 38 | + the particular compiler you are using. | |
| 39 | + The simplest way is to create a folder with all .c and .h files. | |
| 40 | + Then create projects for the basic library, the standard library, | |
| 41 | + the interpreter and the compiler, as follows: | |
| 42 | + | |
| 43 | + basic lib: auxlib.c fallback.c func.c hash.c inout.c lex.c luamem.c | |
| 44 | + opcode.c parser.c table.c tree.c undump.c zio.c | |
| 45 | + | |
| 46 | + standard lib: iolib.c mathlib.c strlib.c | |
| 47 | + | |
| 48 | + interpreter: basic lib, standard lib, lua.c | |
| 49 | + | |
| 50 | + compiler: basic lib, dump.c luac.c print.c | |
| 51 | + | |
| 52 | + Of course, to use Lua as a library, you'll have to know how to create | |
| 53 | + libraries and use with your compiler. | |
| @@ -5,8 +5,4 @@ all co clean klean: · 4 unmodified lines | ||
| 5 | 5 | cd src; make $@ |
| 6 | 6 | cd src/luac; make $@ |
| 7 | 7 | cd clients/lib; make $@ |
| 8 | − cd clients/lib/old; make $@ | |
| 9 | 8 | cd clients/lua; make $@ |
| 10 | − | |
| 11 | −old: | |
| 12 | − cd clients/lib/old; make $@ | |
| @@ -5,32 +5,32 @@ · 4 unmodified lines | ||
| 5 | 5 | Dozens of industrial products developed by TeCGraf use Lua. |
| 6 | 6 | |
| 7 | 7 | * Some features of Lua |
| 8 | − + a simple, pascal-like, syntax | |
| 9 | − + powerful data description constructs (e.g., associative arrays) | |
| 10 | − + user-controlled type constructors | |
| 11 | − + fallbacks for extending the language in unconventional ways (e.g., | |
| 12 | − inheritance, overloading) | |
| 13 | − + garbage collection | |
| 14 | − + Lua programs are compiled into bytecodes, which are then interpreted | |
| 15 | − + portable, written in ANSI C (runs in Unix, DOS, Windows, Mac, Cray, ...) | |
| 8 | + + simple syntax (Pascal-like); | |
| 9 | + + powerful data description constructs (e.g., associative arrays); | |
| 10 | + + user-controlled type constructors; | |
| 11 | + + extensible semantics with tag methods; | |
| 12 | + + garbage collection; | |
| 13 | + + Lua programs are compiled into bytecodes, which are then interpreted; | |
| 14 | + + truly portable, written in ANSI C. | |
| 16 | 15 | |
| 17 | 16 | * Availability |
| 18 | 17 | The latest version of Lua is always available at the following locations: |
| 19 | − In Brazil: ftp://ftp.icad.puc-rio.br/pub/lua/lua.tar.gz | |
| 20 | − In Canada: ftp://csg.uwaterloo.ca/pub/lhf/lua/lua.tar.gz | |
| 21 | − In Germany: ftp://ftp.uni-trier.de/pub/languages/lua/lua.tar.gz | |
| 22 | − In Greece: ftp://ftp.ntua.gr/pub/lang/lua/lua.tar.gz | |
| 23 | − Home page: http://www.inf.puc-rio.br/~roberto/lua.html | |
| 24 | − The current version is 2.5. | |
| 18 | + In Brazil: ftp://ftp.icad.puc-rio.br/pub/lua/lua.tar.gz | |
| 19 | + In Canada: ftp://csg.uwaterloo.ca/pub/lhf/lua/lua.tar.gz | |
| 20 | + In Germany: ftp://ftp.uni-trier.de/pub/languages/lua/lua.tar.gz | |
| 21 | + In Greece: ftp://ftp.ntua.gr/pub/lang/lua/lua.tar.gz | |
| 22 | + Home page: http://www.tecgraf.puc-rio.br/lua/ | |
| 23 | + Meta page: http://www.tecgraf.puc-rio.br/lua/meta.html | |
| 24 | + The current version is 3.0 | |
| 25 | 25 | |
| 26 | 26 | * Legal matters |
| 27 | 27 | Lua is freely available for both academic and commercial purposes. |
| 28 | − Lua is not in the public domain; TeCGraf keeps its copyright. | |
| 29 | 28 | See COPYRIGHT. |
| 30 | 29 | |
| 31 | 30 | * Installation |
| 32 | 31 | See INSTALL. |
| 33 | 32 | |
| 34 | 33 | * Contacting the authors |
| 35 | − Send your comments, bug reports and anything else to lua@icad.puc-rio.br. | |
| 34 | + Send your comments, bug reports and anything else to lua@tecgraf.puc-rio.br. | |
| 36 | 35 | Please send us email if you download Lua so that we can know how far it goes. |
| 36 | + For reporting bugs, try also the mailing list: lua-l@tecgraf.puc-rio.br | |
| @@ -1,16 +1,16 @@ | ||
| 1 | 1 | #include <stdio.h> |
| 2 | −#include <ctype.h> | |
| 3 | 2 | #include <string.h> |
| 4 | 3 | #include <time.h> |
| 5 | 4 | #include <stdlib.h> |
| 6 | 5 | #include <errno.h> |
| 7 | 6 | |
| 8 | 7 | #include "lua.h" |
| 8 | +#include "auxlib.h" | |
| 9 | 9 | #include "luadebug.h" |
| 10 | 10 | #include "lualib.h" |
| 11 | 11 | |
| 12 | 12 | |
| 13 | −FILE *lua_infile, *lua_outfile; | |
| 13 | +int lua_tagio; | |
| 14 | 14 | |
| 15 | 15 | |
| 16 | 16 | #ifdef POPEN |
| @@ -31,76 +31,95 @@ static void pushresult (int i) · 14 unmodified lines | ||
| 31 | 31 | #ifndef NOSTRERROR |
| 32 | 32 | lua_pushstring(strerror(errno)); |
| 33 | 33 | #else |
| 34 | − lua_pushstring("system unable to define the error"); | |
| 34 | + lua_pushstring("O.S. unable to define the error"); | |
| 35 | 35 | #endif |
| 36 | 36 | } |
| 37 | 37 | } |
| 38 | 38 | |
| 39 | 39 | |
| 40 | −static void closefile (FILE *f) | |
| 40 | + | |
| 41 | +static FILE *getfile (char *name) | |
| 42 | +{ | |
| 43 | + lua_Object f = lua_getglobal(name); | |
| 44 | + if (!lua_isuserdata(f) || lua_tag(f) != lua_tagio) | |
| 45 | + luaL_verror("global variable %s is not a file handle", name); | |
| 46 | + return lua_getuserdata(f); | |
| 47 | +} | |
| 48 | + | |
| 49 | + | |
| 50 | +static void closefile (char *name) | |
| 41 | 51 | { |
| 42 | − if (f == stdin || f == stdout) | |
| 43 | − return; | |
| 44 | − if (f == lua_infile) | |
| 45 | − lua_infile = stdin; | |
| 46 | − if (f == lua_outfile) | |
| 47 | − lua_outfile = stdout; | |
| 52 | + FILE *f = getfile(name); | |
| 53 | + if (f == stdin || f == stdout) return; | |
| 48 | 54 | if (pclose(f) == -1) |
| 49 | 55 | fclose(f); |
| 50 | 56 | } |
| 51 | 57 | |
| 52 | 58 | |
| 59 | +static void setfile (FILE *f, char *name) | |
| 60 | +{ | |
| 61 | + lua_pushusertag(f, lua_tagio); | |
| 62 | + lua_setglobal(name); | |
| 63 | +} | |
| 64 | + | |
| 65 | + | |
| 66 | +static void setreturn (FILE *f, char *name) | |
| 67 | +{ | |
| 68 | + setfile(f, name); | |
| 69 | + lua_pushusertag(f, lua_tagio); | |
| 70 | +} | |
| 71 | + | |
| 53 | 72 | |
| 54 | 73 | static void io_readfrom (void) |
| 55 | 74 | { |
| 75 | + FILE *current; | |
| 56 | 76 | lua_Object f = lua_getparam(1); |
| 57 | − if (f == LUA_NOOBJECT) | |
| 58 | − closefile(lua_infile); /* restore standart input */ | |
| 59 | − else if (lua_isuserdata(f)) | |
| 60 | − lua_infile = lua_getuserdata(f); | |
| 77 | + if (f == LUA_NOOBJECT) { | |
| 78 | + closefile("_INPUT"); | |
| 79 | + current = stdin; | |
| 80 | + } | |
| 81 | + else if (lua_tag(f) == lua_tagio) | |
| 82 | + current = lua_getuserdata(f); | |
| 61 | 83 | else { |
| 62 | − char *s = lua_check_string(1, "readfrom"); | |
| 63 | − FILE *fp = (*s == '|') ? popen(s+1, "r") : fopen(s, "r"); | |
| 64 | − if (fp) | |
| 65 | − lua_infile = fp; | |
| 66 | − else { | |
| 84 | + char *s = luaL_check_string(1); | |
| 85 | + current = (*s == '|') ? popen(s+1, "r") : fopen(s, "r"); | |
| 86 | + if (current == NULL) { | |
| 67 | 87 | pushresult(0); |
| 68 | 88 | return; |
| 69 | 89 | } |
| 70 | 90 | } |
| 71 | − lua_pushuserdata(lua_infile); | |
| 91 | + setreturn(current, "_INPUT"); | |
| 72 | 92 | } |
| 73 | 93 | |
| 74 | 94 | |
| 75 | 95 | static void io_writeto (void) |
| 76 | 96 | { |
| 97 | + FILE *current; | |
| 77 | 98 | lua_Object f = lua_getparam(1); |
| 78 | − if (f == LUA_NOOBJECT) | |
| 79 | − closefile(lua_outfile); /* restore standart output */ | |
| 80 | − else if (lua_isuserdata(f)) | |
| 81 | − lua_outfile = lua_getuserdata(f); | |
| 99 | + if (f == LUA_NOOBJECT) { | |
| 100 | + closefile("_OUTPUT"); | |
| 101 | + current = stdout; | |
| 102 | + } | |
| 103 | + else if (lua_tag(f) == lua_tagio) | |
| 104 | + current = lua_getuserdata(f); | |
| 82 | 105 | else { |
| 83 | − char *s = lua_check_string(1, "writeto"); | |
| 84 | − FILE *fp = (*s == '|') ? popen(s+1,"w") : fopen(s,"w"); | |
| 85 | − if (fp) | |
| 86 | − lua_outfile = fp; | |
| 87 | − else { | |
| 106 | + char *s = luaL_check_string(1); | |
| 107 | + current = (*s == '|') ? popen(s+1,"w") : fopen(s,"w"); | |
| 108 | + if (current == NULL) { | |
| 88 | 109 | pushresult(0); |
| 89 | 110 | return; |
| 90 | 111 | } |
| 91 | 112 | } |
| 92 | − lua_pushuserdata(lua_outfile); | |
| 113 | + setreturn(current, "_OUTPUT"); | |
| 93 | 114 | } |
| 94 | 115 | |
| 95 | 116 | |
| 96 | 117 | static void io_appendto (void) |
| 97 | 118 | { |
| 98 | − char *s = lua_check_string(1, "appendto"); | |
| 119 | + char *s = luaL_check_string(1); | |
| 99 | 120 | FILE *fp = fopen (s, "a"); |
| 100 | − if (fp != NULL) { | |
| 101 | − lua_outfile = fp; | |
| 102 | − lua_pushuserdata(lua_outfile); | |
| 103 | − } | |
| 121 | + if (fp != NULL) | |
| 122 | + setreturn(fp, "_OUTPUT"); | |
| 104 | 123 | else |
| 105 | 124 | pushresult(0); |
| 106 | 125 | } |
| @@ -110,23 +129,30 @@ static void io_appendto (void) · 3 unmodified lines | ||
| 110 | 129 | |
| 111 | 130 | static void io_read (void) |
| 112 | 131 | { |
| 132 | + FILE *f = getfile("_INPUT"); | |
| 113 | 133 | char *buff; |
| 114 | − char *p = lua_opt_string(1, "[^\n]*{\n}", "read"); | |
| 134 | + char *p = luaL_opt_string(1, "[^\n]*{\n}"); | |
| 115 | 135 | int inskip = 0; /* to control {skips} */ |
| 116 | 136 | int c = NEED_OTHER; |
| 117 | − luaI_addchar(0); | |
| 137 | + luaI_emptybuff(); | |
| 118 | 138 | while (*p) { |
| 119 | − if (*p == '{' || *p == '}') { | |
| 120 | − inskip = (*p == '{'); | |
| 139 | + if (*p == '{') { | |
| 140 | + inskip++; | |
| 141 | + p++; | |
| 142 | + } | |
| 143 | + else if (*p == '}') { | |
| 144 | + if (inskip == 0) | |
| 145 | + lua_error("unbalanced braces in read pattern"); | |
| 146 | + inskip--; | |
| 121 | 147 | p++; |
| 122 | 148 | } |
| 123 | 149 | else { |
| 124 | − char *ep = item_end(p); /* get what is next */ | |
| 150 | + char *ep = luaL_item_end(p); /* get what is next */ | |
| 125 | 151 | int m; /* match result */ |
| 126 | − if (c == NEED_OTHER) c = getc(lua_infile); | |
| 127 | − m = (c == EOF) ? 0 : singlematch((char)c, p); | |
| 152 | + if (c == NEED_OTHER) c = getc(f); | |
| 153 | + m = (c == EOF) ? 0 : luaL_singlematch((char)c, p); | |
| 128 | 154 | if (m) { |
| 129 | − if (!inskip) luaI_addchar(c); | |
| 155 | + if (inskip == 0) luaI_addchar(c); | |
| 130 | 156 | c = NEED_OTHER; |
| 131 | 157 | } |
| 132 | 158 | switch (*ep) { |
| @@ -144,7 +170,7 @@ static void io_read (void) · 11 unmodified lines | ||
| 144 | 170 | } |
| 145 | 171 | } break_while: |
| 146 | 172 | if (c >= 0) /* not EOF nor NEED_OTHER? */ |
| 147 | − ungetc(c, lua_infile); | |
| 173 | + ungetc(c, f); | |
| 148 | 174 | buff = luaI_addchar(0); |
| 149 | 175 | if (*buff != 0 || *p == 0) /* read something or did not fail? */ |
| 150 | 176 | lua_pushstring(buff); |
| @@ -153,31 +179,32 @@ static void io_read (void) · 2 unmodified lines | ||
| 153 | 179 | |
| 154 | 180 | static void io_write (void) |
| 155 | 181 | { |
| 182 | + FILE *f = getfile("_OUTPUT"); | |
| 156 | 183 | int arg = 1; |
| 157 | 184 | int status = 1; |
| 158 | 185 | char *s; |
| 159 | − while ((s = lua_opt_string(arg++, NULL, "write")) != NULL) | |
| 160 | − status = status && (fputs(s, lua_outfile) != EOF); | |
| 186 | + while ((s = luaL_opt_string(arg++, NULL)) != NULL) | |
| 187 | + status = status && (fputs(s, f) != EOF); | |
| 161 | 188 | pushresult(status); |
| 162 | 189 | } |
| 163 | 190 | |
| 164 | 191 | |
| 165 | 192 | static void io_execute (void) |
| 166 | 193 | { |
| 167 | − lua_pushnumber(system(lua_check_string(1, "execute"))); | |
| 194 | + lua_pushnumber(system(luaL_check_string(1))); | |
| 168 | 195 | } |
| 169 | 196 | |
| 170 | 197 | |
| 171 | 198 | static void io_remove (void) |
| 172 | 199 | { |
| 173 | − pushresult(remove(lua_check_string(1, "remove")) == 0); | |
| 200 | + pushresult(remove(luaL_check_string(1)) == 0); | |
| 174 | 201 | } |
| 175 | 202 | |
| 176 | 203 | |
| 177 | 204 | static void io_rename (void) |
| 178 | 205 | { |
| 179 | − pushresult(rename(lua_check_string(1, "rename"), | |
| 180 | − lua_check_string(2, "rename")) == 0); | |
| 206 | + pushresult(rename(luaL_check_string(1), | |
| 207 | + luaL_check_string(2)) == 0); | |
| 181 | 208 | } |
| 182 | 209 | |
| 183 | 210 | |
| @@ -190,7 +217,7 @@ static void io_tmpname (void) · 6 unmodified lines | ||
| 190 | 217 | |
| 191 | 218 | static void io_getenv (void) |
| 192 | 219 | { |
| 193 | − lua_pushstring(getenv(lua_check_string(1, "getenv"))); /* if NULL push nil */ | |
| 220 | + lua_pushstring(getenv(luaL_check_string(1))); /* if NULL push nil */ | |
| 194 | 221 | } |
| 195 | 222 | |
| 196 | 223 | |
| @@ -198,7 +225,7 @@ static void io_date (void) · 1 unmodified line | ||
| 198 | 225 | { |
| 199 | 226 | time_t t; |
| 200 | 227 | struct tm *tm; |
| 201 | − char *s = lua_opt_string(1, "%c", "date"); | |
| 228 | + char *s = luaL_opt_string(1, "%c"); | |
| 202 | 229 | char b[BUFSIZ]; |
| 203 | 230 | time(&t); tm = localtime(&t); |
| 204 | 231 | if (strftime(b,sizeof(b),s,tm)) |
| @@ -229,34 +256,36 @@ static void io_debug (void) · 24 unmodified lines | ||
| 229 | 256 | |
| 230 | 257 | static void lua_printstack (FILE *f) |
| 231 | 258 | { |
| 232 | − int level = 0; | |
| 259 | + int level = 1; /* skip level 0 (it's this function) */ | |
| 233 | 260 | lua_Object func; |
| 234 | − fprintf(f, "Active Stack:\n"); | |
| 235 | 261 | while ((func = lua_stackedfunction(level++)) != LUA_NOOBJECT) { |
| 236 | 262 | char *name; |
| 237 | 263 | int currentline; |
| 238 | − fprintf(f, "\t"); | |
| 264 | + char *filename; | |
| 265 | + int linedefined; | |
| 266 | + lua_funcinfo(func, &filename, &linedefined); | |
| 267 | + fprintf(f, (level==2) ? "Active Stack:\n\t" : "\t"); | |
| 239 | 268 | switch (*lua_getobjname(func, &name)) { |
| 240 | 269 | case 'g': |
| 241 | 270 | fprintf(f, "function %s", name); |
| 242 | 271 | break; |
| 243 | − case 'f': | |
| 244 | − fprintf(f, "`%s' fallback", name); | |
| 272 | + case 't': | |
| 273 | + fprintf(f, "`%s' tag method", name); | |
| 245 | 274 | break; |
| 246 | 275 | default: { |
| 247 | − char *filename; | |
| 248 | − int linedefined; | |
| 249 | − lua_funcinfo(func, &filename, &linedefined); | |
| 250 | 276 | if (linedefined == 0) |
| 251 | 277 | fprintf(f, "main of %s", filename); |
| 252 | 278 | else if (linedefined < 0) |
| 253 | 279 | fprintf(f, "%s", filename); |
| 254 | 280 | else |
| 255 | 281 | fprintf(f, "function (%s:%d)", filename, linedefined); |
| 282 | + filename = NULL; | |
| 256 | 283 | } |
| 257 | 284 | } |
| 258 | 285 | if ((currentline = lua_currentline(func)) > 0) |
| 259 | 286 | fprintf(f, " at line %d", currentline); |
| 287 | + if (filename) | |
| 288 | + fprintf(f, " [in file %s]", filename); | |
| 260 | 289 | fprintf(f, "\n"); |
| 261 | 290 | } |
| 262 | 291 | } |
| @@ -264,13 +293,13 @@ static void lua_printstack (FILE *f) · 1 unmodified line | ||
| 264 | 293 | |
| 265 | 294 | static void errorfb (void) |
| 266 | 295 | { |
| 267 | − char *s = lua_opt_string(1, "(no messsage)", NULL); | |
| 268 | − fprintf(stderr, "lua: %s\n", s); | |
| 296 | + fprintf(stderr, "lua: %s\n", lua_getstring(lua_getparam(1))); | |
| 269 | 297 | lua_printstack(stderr); |
| 270 | 298 | } |
| 271 | 299 | |
| 272 | 300 | |
| 273 | −static struct lua_reg iolib[] = { | |
| 301 | + | |
| 302 | +static struct luaL_reg iolib[] = { | |
| 274 | 303 | {"readfrom", io_readfrom}, |
| 275 | 304 | {"writeto", io_writeto}, |
| 276 | 305 | {"appendto", io_appendto}, |
| @@ -289,7 +318,13 @@ static struct lua_reg iolib[] = { · 12 unmodified lines | ||
| 289 | 318 | |
| 290 | 319 | void iolib_open (void) |
| 291 | 320 | { |
| 292 | − lua_infile=stdin; lua_outfile=stdout; | |
| 293 | − luaI_openlib(iolib, (sizeof(iolib)/sizeof(iolib[0]))); | |
| 294 | − lua_setfallback("error", errorfb); | |
| 321 | + lua_tagio = lua_newtag(); | |
| 322 | + setfile(stdin, "_INPUT"); | |
| 323 | + setfile(stdout, "_OUTPUT"); | |
| 324 | + setfile(stdin, "_STDIN"); | |
| 325 | + setfile(stdout, "_STDOUT"); | |
| 326 | + setfile(stderr, "_STDERR"); | |
| 327 | + luaL_openlib(iolib, (sizeof(iolib)/sizeof(iolib[0]))); | |
| 328 | + lua_pushcfunction(errorfb); | |
| 329 | + lua_seterrormethod(); | |
| 295 | 330 | } |
| @@ -3,12 +3,13 @@ · 2 unmodified lines | ||
| 3 | 3 | ** Mathematics library to LUA |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char *rcs_mathlib="$Id: mathlib.c,v 1.18 1996/08/01 14:55:33 roberto Exp $"; | |
| 6 | +char *rcs_mathlib="$Id: mathlib.c,v 1.25 1997/06/19 18:03:04 roberto Exp $"; | |
| 7 | 7 | |
| 8 | 8 | #include <stdlib.h> |
| 9 | 9 | #include <math.h> |
| 10 | 10 | |
| 11 | 11 | #include "lualib.h" |
| 12 | +#include "auxlib.h" | |
| 12 | 13 | #include "lua.h" |
| 13 | 14 | |
| 14 | 15 | #ifndef PI |
| @@ -19,7 +20,7 @@ char *rcs_mathlib="$Id: mathlib.c,v 1.18 1996/08/01 14:55:33 roberto Exp $"; · 4 unmodified lines | ||
| 19 | 20 | |
| 20 | 21 | static void math_abs (void) |
| 21 | 22 | { |
| 22 | − double d = lua_check_number(1, "abs"); | |
| 23 | + double d = luaL_check_number(1); | |
| 23 | 24 | if (d < 0) d = -d; |
| 24 | 25 | lua_pushnumber (d); |
| 25 | 26 | } |
| @@ -27,7 +28,7 @@ static void math_abs (void) · 1 unmodified line | ||
| 27 | 28 | |
| 28 | 29 | static void math_sin (void) |
| 29 | 30 | { |
| 30 | − double d = lua_check_number(1, "sin"); | |
| 31 | + double d = luaL_check_number(1); | |
| 31 | 32 | lua_pushnumber (sin(TORAD(d))); |
| 32 | 33 | } |
| 33 | 34 | |
| @@ -35,7 +36,7 @@ static void math_sin (void) · 1 unmodified line | ||
| 35 | 36 | |
| 36 | 37 | static void math_cos (void) |
| 37 | 38 | { |
| 38 | − double d = lua_check_number(1, "cos"); | |
| 39 | + double d = luaL_check_number(1); | |
| 39 | 40 | lua_pushnumber (cos(TORAD(d))); |
| 40 | 41 | } |
| 41 | 42 | |
| @@ -43,98 +44,82 @@ static void math_cos (void) · 1 unmodified line | ||
| 43 | 44 | |
| 44 | 45 | static void math_tan (void) |
| 45 | 46 | { |
| 46 | − double d = lua_check_number(1, "tan"); | |
| 47 | + double d = luaL_check_number(1); | |
| 47 | 48 | lua_pushnumber (tan(TORAD(d))); |
| 48 | 49 | } |
| 49 | 50 | |
| 50 | 51 | |
| 51 | 52 | static void math_asin (void) |
| 52 | 53 | { |
| 53 | − double d = lua_check_number(1, "asin"); | |
| 54 | + double d = luaL_check_number(1); | |
| 54 | 55 | lua_pushnumber (TODEGREE(asin(d))); |
| 55 | 56 | } |
| 56 | 57 | |
| 57 | 58 | |
| 58 | 59 | static void math_acos (void) |
| 59 | 60 | { |
| 60 | − double d = lua_check_number(1, "acos"); | |
| 61 | + double d = luaL_check_number(1); | |
| 61 | 62 | lua_pushnumber (TODEGREE(acos(d))); |
| 62 | 63 | } |
| 63 | 64 | |
| 64 | 65 | |
| 65 | 66 | static void math_atan (void) |
| 66 | 67 | { |
| 67 | − double d = lua_check_number(1, "atan"); | |
| 68 | + double d = luaL_check_number(1); | |
| 68 | 69 | lua_pushnumber (TODEGREE(atan(d))); |
| 69 | 70 | } |
| 70 | 71 | |
| 71 | 72 | |
| 72 | 73 | static void math_atan2 (void) |
| 73 | 74 | { |
| 74 | − double d1 = lua_check_number(1, "atan2"); | |
| 75 | − double d2 = lua_check_number(2, "atan2"); | |
| 75 | + double d1 = luaL_check_number(1); | |
| 76 | + double d2 = luaL_check_number(2); | |
| 76 | 77 | lua_pushnumber (TODEGREE(atan2(d1, d2))); |
| 77 | 78 | } |
| 78 | 79 | |
| 79 | 80 | |
| 80 | 81 | static void math_ceil (void) |
| 81 | 82 | { |
| 82 | − double d = lua_check_number(1, "ceil"); | |
| 83 | + double d = luaL_check_number(1); | |
| 83 | 84 | lua_pushnumber (ceil(d)); |
| 84 | 85 | } |
| 85 | 86 | |
| 86 | 87 | |
| 87 | 88 | static void math_floor (void) |
| 88 | 89 | { |
| 89 | − double d = lua_check_number(1, "floor"); | |
| 90 | + double d = luaL_check_number(1); | |
| 90 | 91 | lua_pushnumber (floor(d)); |
| 91 | 92 | } |
| 92 | 93 | |
| 93 | 94 | static void math_mod (void) |
| 94 | 95 | { |
| 95 | − float x = lua_check_number(1, "mod"); | |
| 96 | − float y = lua_check_number(2, "mod"); | |
| 96 | + float x = luaL_check_number(1); | |
| 97 | + float y = luaL_check_number(2); | |
| 97 | 98 | lua_pushnumber(fmod(x, y)); |
| 98 | 99 | } |
| 99 | 100 | |
| 100 | 101 | |
| 101 | 102 | static void math_sqrt (void) |
| 102 | 103 | { |
| 103 | − double d = lua_check_number(1, "sqrt"); | |
| 104 | + double d = luaL_check_number(1); | |
| 104 | 105 | lua_pushnumber (sqrt(d)); |
| 105 | 106 | } |
| 106 | 107 | |
| 107 | −static int old_pow; | |
| 108 | 108 | |
| 109 | 109 | static void math_pow (void) |
| 110 | 110 | { |
| 111 | − lua_Object o1 = lua_getparam (1); | |
| 112 | − lua_Object o2 = lua_getparam (2); | |
| 113 | − lua_Object op = lua_getparam(3); | |
| 114 | − if (!lua_isnumber(o1) || !lua_isnumber(o2) || *(lua_getstring(op)) != 'p') | |
| 115 | − { | |
| 116 | − lua_Object old = lua_getref(old_pow); | |
| 117 | − lua_pushobject(o1); | |
| 118 | − lua_pushobject(o2); | |
| 119 | − lua_pushobject(op); | |
| 120 | − if (lua_callfunction(old) != 0) | |
| 121 | − lua_error(NULL); | |
| 122 | − } | |
| 123 | − else | |
| 124 | − { | |
| 125 | − double d1 = lua_getnumber(o1); | |
| 126 | − double d2 = lua_getnumber(o2); | |
| 127 | − lua_pushnumber (pow(d1,d2)); | |
| 128 | − } | |
| 111 | + double d1 = luaL_check_number(1); | |
| 112 | + double d2 = luaL_check_number(2); | |
| 113 | + lua_pushnumber(pow(d1,d2)); | |
| 129 | 114 | } |
| 130 | 115 | |
| 131 | 116 | static void math_min (void) |
| 132 | 117 | { |
| 133 | 118 | int i=1; |
| 134 | − double dmin = lua_check_number(i, "min"); | |
| 119 | + double dmin = luaL_check_number(i); | |
| 135 | 120 | while (lua_getparam(++i) != LUA_NOOBJECT) |
| 136 | 121 | { |
| 137 | − double d = lua_check_number(i, "min"); | |
| 122 | + double d = luaL_check_number(i); | |
| 138 | 123 | if (d < dmin) dmin = d; |
| 139 | 124 | } |
| 140 | 125 | lua_pushnumber (dmin); |
| @@ -143,10 +128,10 @@ static void math_min (void) · 2 unmodified lines | ||
| 143 | 128 | static void math_max (void) |
| 144 | 129 | { |
| 145 | 130 | int i=1; |
| 146 | − double dmax = lua_check_number(i, "max"); | |
| 131 | + double dmax = luaL_check_number(i); | |
| 147 | 132 | while (lua_getparam(++i) != LUA_NOOBJECT) |
| 148 | 133 | { |
| 149 | − double d = lua_check_number(i, "max"); | |
| 134 | + double d = luaL_check_number(i); | |
| 150 | 135 | if (d > dmax) dmax = d; |
| 151 | 136 | } |
| 152 | 137 | lua_pushnumber (dmax); |
| @@ -154,33 +139,33 @@ static void math_max (void) · 1 unmodified line | ||
| 154 | 139 | |
| 155 | 140 | static void math_log (void) |
| 156 | 141 | { |
| 157 | − double d = lua_check_number(1, "log"); | |
| 142 | + double d = luaL_check_number(1); | |
| 158 | 143 | lua_pushnumber (log(d)); |
| 159 | 144 | } |
| 160 | 145 | |
| 161 | 146 | |
| 162 | 147 | static void math_log10 (void) |
| 163 | 148 | { |
| 164 | − double d = lua_check_number(1, "log10"); | |
| 149 | + double d = luaL_check_number(1); | |
| 165 | 150 | lua_pushnumber (log10(d)); |
| 166 | 151 | } |
| 167 | 152 | |
| 168 | 153 | |
| 169 | 154 | static void math_exp (void) |
| 170 | 155 | { |
| 171 | − double d = lua_check_number(1, "exp"); | |
| 156 | + double d = luaL_check_number(1); | |
| 172 | 157 | lua_pushnumber (exp(d)); |
| 173 | 158 | } |
| 174 | 159 | |
| 175 | 160 | static void math_deg (void) |
| 176 | 161 | { |
| 177 | − float d = lua_check_number(1, "deg"); | |
| 162 | + float d = luaL_check_number(1); | |
| 178 | 163 | lua_pushnumber (d*180./PI); |
| 179 | 164 | } |
| 180 | 165 | |
| 181 | 166 | static void math_rad (void) |
| 182 | 167 | { |
| 183 | − float d = lua_check_number(1, "rad"); | |
| 168 | + float d = luaL_check_number(1); | |
| 184 | 169 | lua_pushnumber (d/180.*PI); |
| 185 | 170 | } |
| 186 | 171 | |
| @@ -191,11 +176,11 @@ static void math_random (void) · 4 unmodified lines | ||
| 191 | 176 | |
| 192 | 177 | static void math_randomseed (void) |
| 193 | 178 | { |
| 194 | − srand(lua_check_number(1, "randomseed")); | |
| 179 | + srand(luaL_check_number(1)); | |
| 195 | 180 | } |
| 196 | 181 | |
| 197 | 182 | |
| 198 | −static struct lua_reg mathlib[] = { | |
| 183 | +static struct luaL_reg mathlib[] = { | |
| 199 | 184 | {"abs", math_abs}, |
| 200 | 185 | {"sin", math_sin}, |
| 201 | 186 | {"cos", math_cos}, |
| @@ -224,7 +209,9 @@ static struct lua_reg mathlib[] = { · 22 unmodified lines | ||
| 224 | 209 | */ |
| 225 | 210 | void mathlib_open (void) |
| 226 | 211 | { |
| 227 | − luaI_openlib(mathlib, (sizeof(mathlib)/sizeof(mathlib[0]))); | |
| 228 | − old_pow = lua_refobject(lua_setfallback("arith", math_pow), 1); | |
| 212 | + luaL_openlib(mathlib, (sizeof(mathlib)/sizeof(mathlib[0]))); | |
| 213 | + lua_pushcfunction(math_pow); | |
| 214 | + lua_pushnumber(0); /* to get its tag */ | |
| 215 | + lua_settagmethod(lua_tag(lua_pop()), "pow"); | |
| 229 | 216 | } |
| 230 | 217 | |
| @@ -1,35 +0,0 @@ | ||
| 1 | −# makefile for lualib | |
| 2 | − | |
| 3 | −LUA= ../../.. | |
| 4 | − | |
| 5 | −include $(LUA)/config | |
| 6 | − | |
| 7 | −EXTRA_DEFS= $(POPEN) $(NOSTRERROR) | |
| 8 | − | |
| 9 | −OBJS= iolib.o mathlib.o strlib.o | |
| 10 | −SRCS= iolib.c mathlib.c strlib.c | |
| 11 | − | |
| 12 | −SLIB= $(LIB)/liboldlualib.a | |
| 13 | − | |
| 14 | −# dynamic libraries only work for SunOs | |
| 15 | −DLIB= $(LIB)/liboldlualib.so.$(VERSION) | |
| 16 | − | |
| 17 | −all: $(SLIB) | |
| 18 | − | |
| 19 | −dynamic: $(DLIB) | |
| 20 | − | |
| 21 | −$(SLIB): $(OBJS) | |
| 22 | − ar rcu $@ $(OBJS) | |
| 23 | − $(RANLIB) $(SLIB) | |
| 24 | − | |
| 25 | −$(DLIB): $(OBJS) | |
| 26 | − ld -o $@ $(OBJS) | |
| 27 | − | |
| 28 | −clean: | |
| 29 | − rm -f $(OBJS) $(SLIB) $(DLIB) | |
| 30 | − | |
| 31 | −co: | |
| 32 | − co -f -M -rv2_4 $(SRCS) | |
| 33 | − | |
| 34 | −klean: clean | |
| 35 | − rm -f $(SRCS) | |
| @@ -1,618 +0,0 @@ | ||
| 1 | −/* | |
| 2 | −** iolib.c | |
| 3 | −** Input/output library to LUA | |
| 4 | −*/ | |
| 5 | − | |
| 6 | −char *rcs_iolib="$Id: iolib.c,v 1.44 1996/05/03 20:10:59 roberto Exp $"; | |
| 7 | − | |
| 8 | −#include <stdio.h> | |
| 9 | −#include <ctype.h> | |
| 10 | −#include <string.h> | |
| 11 | −#include <time.h> | |
| 12 | −#include <stdlib.h> | |
| 13 | −#include <errno.h> | |
| 14 | − | |
| 15 | −#include "lua.h" | |
| 16 | −#include "luadebug.h" | |
| 17 | −#include "lualib.h" | |
| 18 | − | |
| 19 | −static FILE *in=stdin, *out=stdout; | |
| 20 | − | |
| 21 | − | |
| 22 | −#ifdef POPEN | |
| 23 | −FILE *popen(); | |
| 24 | −int pclose(); | |
| 25 | −#else | |
| 26 | −#define popen(x,y) NULL /* that is, popen always fails */ | |
| 27 | −#define pclose(x) (-1) | |
| 28 | −#endif | |
| 29 | − | |
| 30 | − | |
| 31 | −static void pushresult (int i) | |
| 32 | −{ | |
| 33 | − if (i) | |
| 34 | − lua_pushnumber (1); | |
| 35 | − else | |
| 36 | − lua_pushnil(); | |
| 37 | −} | |
| 38 | − | |
| 39 | −static void closeread (void) | |
| 40 | −{ | |
| 41 | − if (in != stdin) | |
| 42 | − { | |
| 43 | − if (pclose(in) == -1) | |
| 44 | − fclose(in); | |
| 45 | − in = stdin; | |
| 46 | − } | |
| 47 | −} | |
| 48 | − | |
| 49 | −static void closewrite (void) | |
| 50 | −{ | |
| 51 | − if (out != stdout) | |
| 52 | − { | |
| 53 | − if (pclose(out) == -1) | |
| 54 | − fclose(out); | |
| 55 | − out = stdout; | |
| 56 | − } | |
| 57 | −} | |
| 58 | − | |
| 59 | −/* | |
| 60 | −** Open a file to read. | |
| 61 | −** LUA interface: | |
| 62 | −** status = readfrom (filename) | |
| 63 | −** where: | |
| 64 | −** status = 1 -> success | |
| 65 | −** status = nil -> error | |
| 66 | −*/ | |
| 67 | −static void io_readfrom (void) | |
| 68 | −{ | |
| 69 | − if (lua_getparam (1) == LUA_NOOBJECT) | |
| 70 | − { /* restore standart input */ | |
| 71 | − closeread(); | |
| 72 | − lua_pushnumber (1); | |
| 73 | − } | |
| 74 | − else | |
| 75 | − { | |
| 76 | − char *s = lua_check_string(1, "readfrom"); | |
| 77 | − FILE *fp = (*s == '|') ? popen(s+1, "r") : fopen(s, "r"); | |
| 78 | − if (fp == NULL) | |
| 79 | − lua_pushnil(); | |
| 80 | − else | |
| 81 | − { | |
| 82 | − closeread(); | |
| 83 | − in = fp; | |
| 84 | − lua_pushnumber (1); | |
| 85 | − } | |
| 86 | − } | |
| 87 | −} | |
| 88 | − | |
| 89 | − | |
| 90 | −/* | |
| 91 | −** Open a file to write. | |
| 92 | −** LUA interface: | |
| 93 | −** status = writeto (filename) | |
| 94 | −** where: | |
| 95 | −** status = 1 -> success | |
| 96 | −** status = nil -> error | |
| 97 | −*/ | |
| 98 | −static void io_writeto (void) | |
| 99 | −{ | |
| 100 | − if (lua_getparam (1) == LUA_NOOBJECT) /* restore standart output */ | |
| 101 | − { | |
| 102 | − closewrite(); | |
| 103 | − lua_pushnumber (1); | |
| 104 | − } | |
| 105 | − else | |
| 106 | − { | |
| 107 | − char *s = lua_check_string(1, "writeto"); | |
| 108 | − FILE *fp = (*s == '|') ? popen(s+1,"w") : fopen(s,"w"); | |
| 109 | − if (fp == NULL) | |
| 110 | − lua_pushnil(); | |
| 111 | − else | |
| 112 | − { | |
| 113 | − closewrite(); | |
| 114 | − out = fp; | |
| 115 | − lua_pushnumber (1); | |
| 116 | − } | |
| 117 | − } | |
| 118 | −} | |
| 119 | − | |
| 120 | − | |
| 121 | −/* | |
| 122 | −** Open a file to write appended. | |
| 123 | −** LUA interface: | |
| 124 | −** status = appendto (filename) | |
| 125 | −** where: | |
| 126 | −** status = 1 -> success | |
| 127 | −** status = nil -> error | |
| 128 | −*/ | |
| 129 | −static void io_appendto (void) | |
| 130 | −{ | |
| 131 | − char *s = lua_check_string(1, "appendto"); | |
| 132 | − FILE *fp = fopen (s, "a"); | |
| 133 | − if (fp == NULL) | |
| 134 | − lua_pushnil(); | |
| 135 | − else | |
| 136 | − { | |
| 137 | − if (out != stdout) fclose (out); | |
| 138 | − out = fp; | |
| 139 | − lua_pushnumber(1); | |
| 140 | − } | |
| 141 | −} | |
| 142 | − | |
| 143 | − | |
| 144 | −static char getformat (char *f, int *just, int *m, int *n) | |
| 145 | −{ | |
| 146 | − int t; | |
| 147 | − switch (*f++) | |
| 148 | − { | |
| 149 | − case 'q': case 'Q': | |
| 150 | − case 's': case 'S': | |
| 151 | − case 'i': case 'I': | |
| 152 | − t = tolower(*(f-1)); | |
| 153 | − break; | |
| 154 | − case 'f': case 'F': case 'g': case 'G': case 'e': case 'E': | |
| 155 | − t = 'f'; | |
| 156 | − break; | |
| 157 | − default: | |
| 158 | − t = 0; /* to avoid compiler warnings */ | |
| 159 | − lua_arg_error("read/write (format)"); | |
| 160 | − } | |
| 161 | − *just = (*f == '<' || *f == '>' || *f == '|') ? *f++ : '>'; | |
| 162 | − if (isdigit(*f)) | |
| 163 | − { | |
| 164 | − *m = 0; | |
| 165 | − while (isdigit(*f)) | |
| 166 | − *m = *m*10 + (*f++ - '0'); | |
| 167 | − } | |
| 168 | − else | |
| 169 | − *m = -1; | |
| 170 | − if (*f == '.') | |
| 171 | − { | |
| 172 | − f++; /* skip point */ | |
| 173 | − *n = 0; | |
| 174 | − while (isdigit(*f)) | |
| 175 | − *n = *n*10 + (*f++ - '0'); | |
| 176 | − } | |
| 177 | − else | |
| 178 | − *n = -1; | |
| 179 | − return t; | |
| 180 | −} | |
| 181 | − | |
| 182 | − | |
| 183 | −/* | |
| 184 | −** Read a variable. On error put nil on stack. | |
| 185 | −** LUA interface: | |
| 186 | −** variable = read ([format]) | |
| 187 | −** | |
| 188 | −** O formato pode ter um dos seguintes especificadores: | |
| 189 | −** | |
| 190 | −** s ou S -> para string | |
| 191 | −** f ou F, g ou G, e ou E -> para reais | |
| 192 | −** i ou I -> para inteiros | |
| 193 | −** | |
| 194 | −** Estes especificadores podem vir seguidos de numero que representa | |
| 195 | −** o numero de campos a serem lidos. | |
| 196 | −*/ | |
| 197 | − | |
| 198 | −static int read_until_char (int del) | |
| 199 | −{ | |
| 200 | − int c; | |
| 201 | − while((c = fgetc(in)) != EOF && c != del) | |
| 202 | − luaI_addchar(c); | |
| 203 | − return c; | |
| 204 | −} | |
| 205 | − | |
| 206 | −static void read_until_blank (void) | |
| 207 | −{ | |
| 208 | − int c; | |
| 209 | − while((c = fgetc(in)) != EOF && !isspace(c)) | |
| 210 | − luaI_addchar(c); | |
| 211 | − if (c != EOF) ungetc(c,in); | |
| 212 | −} | |
| 213 | − | |
| 214 | −static void read_m (int m) | |
| 215 | −{ | |
| 216 | − int c; | |
| 217 | − while (m-- && (c = fgetc(in)) != EOF) | |
| 218 | − luaI_addchar(c); | |
| 219 | −} | |
| 220 | − | |
| 221 | − | |
| 222 | −static void read_free (void) | |
| 223 | −{ | |
| 224 | − int c; | |
| 225 | − while (isspace(c=fgetc(in))) | |
| 226 | − ; | |
| 227 | − if (c == EOF) | |
| 228 | − { | |
| 229 | − lua_pushnil(); | |
| 230 | − return; | |
| 231 | − } | |
| 232 | − if (c == '\"' || c == '\'') | |
| 233 | − { /* string */ | |
| 234 | − c = read_until_char(c); | |
| 235 | − if (c == EOF) | |
| 236 | − lua_pushnil(); | |
| 237 | − else | |
| 238 | − lua_pushstring(luaI_addchar(0)); | |
| 239 | − } | |
| 240 | − else | |
| 241 | − { | |
| 242 | − double d; | |
| 243 | − char dummy; | |
| 244 | − char *s; | |
| 245 | − luaI_addchar(c); | |
| 246 | − read_until_blank(); | |
| 247 | − s = luaI_addchar(0); | |
| 248 | − if (sscanf(s, "%lf %c", &d, &dummy) == 1) | |
| 249 | − lua_pushnumber(d); | |
| 250 | − else | |
| 251 | − lua_pushstring(s); | |
| 252 | − } | |
| 253 | −} | |
| 254 | − | |
| 255 | −static void io_read (void) | |
| 256 | −{ | |
| 257 | − lua_Object o = lua_getparam (1); | |
| 258 | − luaI_addchar(0); /* initialize buffer */ | |
| 259 | − if (o == LUA_NOOBJECT) /* free format */ | |
| 260 | − read_free(); | |
| 261 | − else /* formatted */ | |
| 262 | − { | |
| 263 | − int m, dummy1, dummy2; | |
| 264 | − switch (getformat(lua_check_string(1, "read"), &dummy1, &m, &dummy2)) | |
| 265 | − { | |
| 266 | − case 's': | |
| 267 | − { | |
| 268 | − char *s; | |
| 269 | − if (m < 0) | |
| 270 | − read_until_blank(); | |
| 271 | − else | |
| 272 | − read_m(m); | |
| 273 | − s = luaI_addchar(0); | |
| 274 | − if ((m >= 0 && strlen(s) == m) || (m < 0 && strlen(s) > 0)) | |
| 275 | − lua_pushstring(s); | |
| 276 | − else | |
| 277 | − lua_pushnil(); | |
| 278 | − break; | |
| 279 | − } | |
| 280 | − | |
| 281 | − case 'i': /* can read as float, since it makes no difference to Lua */ | |
| 282 | − case 'f': | |
| 283 | − { | |
| 284 | − double d; | |
| 285 | − int result; | |
| 286 | − if (m < 0) | |
| 287 | − result = fscanf(in, "%lf", &d); | |
| 288 | − else | |
| 289 | − { | |
| 290 | − read_m(m); | |
| 291 | − result = sscanf(luaI_addchar(0), "%lf", &d); | |
| 292 | − } | |
| 293 | − if (result == 1) | |
| 294 | − lua_pushnumber(d); | |
| 295 | − else | |
| 296 | − lua_pushnil(); | |
| 297 | − break; | |
| 298 | − } | |
| 299 | − default: | |
| 300 | − lua_arg_error("read (format)"); | |
| 301 | − } | |
| 302 | − } | |
| 303 | −} | |
| 304 | − | |
| 305 | − | |
| 306 | −/* | |
| 307 | −** Read characters until a given one. The delimiter is not read. | |
| 308 | −*/ | |
| 309 | −static void io_readuntil (void) | |
| 310 | −{ | |
| 311 | − int del, c; | |
| 312 | − lua_Object p = lua_getparam(1); | |
| 313 | − luaI_addchar(0); /* initialize buffer */ | |
| 314 | − if (p == LUA_NOOBJECT || lua_isnil(p)) | |
| 315 | − del = EOF; | |
| 316 | − else | |
| 317 | − del = *lua_check_string(1, "readuntil"); | |
| 318 | − c = read_until_char(del); | |
| 319 | − if (c != EOF) ungetc(c,in); | |
| 320 | − lua_pushstring(luaI_addchar(0)); | |
| 321 | −} | |
| 322 | − | |
| 323 | − | |
| 324 | −/* | |
| 325 | −** Write a variable. On error put 0 on stack, otherwise put 1. | |
| 326 | −** LUA interface: | |
| 327 | −** status = write (variable [,format]) | |
| 328 | −** | |
| 329 | −** O formato pode ter um dos seguintes especificadores: | |
| 330 | −** | |
| 331 | −** s ou S -> para string | |
| 332 | −** f ou F, g ou G, e ou E -> para reais | |
| 333 | −** i ou I -> para inteiros | |
| 334 | −** | |
| 335 | −** Estes especificadores podem vir seguidos de: | |
| 336 | −** | |
| 337 | −** [?][m][.n] | |
| 338 | −** | |
| 339 | −** onde: | |
| 340 | −** ? -> indica justificacao | |
| 341 | −** < = esquerda | |
| 342 | −** | = centro | |
| 343 | −** > = direita (default) | |
| 344 | −** m -> numero maximo de campos (se exceder estoura) | |
| 345 | −** n -> indica precisao para | |
| 346 | −** reais -> numero de casas decimais | |
| 347 | −** inteiros -> numero minimo de digitos | |
| 348 | −** string -> nao se aplica | |
| 349 | −*/ | |
| 350 | − | |
| 351 | −static int write_fill (int n, int c) | |
| 352 | −{ | |
| 353 | − while (n--) | |
| 354 | − if (fputc(c, out) == EOF) | |
| 355 | − return 0; | |
| 356 | − return 1; | |
| 357 | −} | |
| 358 | − | |
| 359 | −static int write_string (char *s, int just, int m) | |
| 360 | −{ | |
| 361 | − int status; | |
| 362 | − int l = strlen(s); | |
| 363 | − int pre; /* number of blanks before string */ | |
| 364 | − if (m < 0) m = l; | |
| 365 | − else if (l > m) | |
| 366 | − { | |
| 367 | − write_fill(m, '*'); | |
| 368 | − return 0; | |
| 369 | − } | |
| 370 | − pre = (just == '<') ? 0 : (just == '>') ? m-l : (m-l)/2; | |
| 371 | − status = write_fill(pre, ' '); | |
| 372 | − status = status && fprintf(out, "%s", s) >= 0; | |
| 373 | − status = status && write_fill(m-(l+pre), ' '); | |
| 374 | − return status; | |
| 375 | −} | |
| 376 | − | |
| 377 | −static int write_quoted (int just, int m) | |
| 378 | −{ | |
| 379 | − luaI_addchar(0); | |
| 380 | − luaI_addquoted(lua_check_string(1, "write")); | |
| 381 | − return write_string(luaI_addchar(0), just, m); | |
| 382 | −} | |
| 383 | − | |
| 384 | −static int write_float (int just, int m, int n) | |
| 385 | −{ | |
| 386 | − char buffer[100]; | |
| 387 | − lua_Object p = lua_getparam(1); | |
| 388 | − float number; | |
| 389 | − if (!lua_isnumber(p)) return 0; | |
| 390 | − number = lua_getnumber(p); | |
| 391 | − if (n >= 0) | |
| 392 | − sprintf(buffer, "%.*f", n, number); | |
| 393 | − else | |
| 394 | − sprintf(buffer, "%g", number); | |
| 395 | − return write_string(buffer, just, m); | |
| 396 | −} | |
| 397 | − | |
| 398 | − | |
| 399 | −static int write_int (int just, int m, int n) | |
| 400 | −{ | |
| 401 | − char buffer[100]; | |
| 402 | − lua_Object p = lua_getparam(1); | |
| 403 | − int number; | |
| 404 | − if (!lua_isnumber(p)) return 0; | |
| 405 | − number = (int)lua_getnumber(p); | |
| 406 | − if (n >= 0) | |
| 407 | − sprintf(buffer, "%.*d", n, number); | |
| 408 | − else | |
| 409 | − sprintf(buffer, "%d", number); | |
| 410 | − return write_string(buffer, just, m); | |
| 411 | −} | |
| 412 | − | |
| 413 | − | |
| 414 | −static void io_write (void) | |
| 415 | −{ | |
| 416 | − int status = 0; | |
| 417 | − if (lua_getparam (2) == LUA_NOOBJECT) /* free format */ | |
| 418 | − { | |
| 419 | − lua_Object o1 = lua_getparam(1); | |
| 420 | − int t = lua_type(o1); | |
| 421 | − if (t == LUA_T_NUMBER) | |
| 422 | − status = fprintf (out, "%g", lua_getnumber(o1)) >= 0; | |
| 423 | − else if (t == LUA_T_STRING) | |
| 424 | − status = fprintf (out, "%s", lua_getstring(o1)) >= 0; | |
| 425 | − } | |
| 426 | − else /* formated */ | |
| 427 | − { | |
| 428 | − int just, m, n; | |
| 429 | − switch (getformat(lua_check_string(2, "write"), &just, &m, &n)) | |
| 430 | − { | |
| 431 | − case 's': | |
| 432 | − { | |
| 433 | − lua_Object p = lua_getparam(1); | |
| 434 | − if (lua_isstring(p)) | |
| 435 | − status = write_string(lua_getstring(p), just, m); | |
| 436 | − else | |
| 437 | − status = 0; | |
| 438 | − break; | |
| 439 | − } | |
| 440 | − case 'q': | |
| 441 | − status = write_quoted(just, m); | |
| 442 | − break; | |
| 443 | − case 'f': | |
| 444 | − status = write_float(just, m, n); | |
| 445 | − break; | |
| 446 | − case 'i': | |
| 447 | − status = write_int(just, m, n); | |
| 448 | − break; | |
| 449 | − } | |
| 450 | − } | |
| 451 | − if (status) | |
| 452 | − lua_pushnumber(status); | |
| 453 | − else | |
| 454 | − lua_pushnil(); | |
| 455 | −} | |
| 456 | − | |
| 457 | −/* | |
| 458 | −** Execute a executable program using "system". | |
| 459 | −** Return the result of execution. | |
| 460 | −*/ | |
| 461 | −static void io_execute (void) | |
| 462 | −{ | |
| 463 | − lua_pushnumber(system(lua_check_string(1, "execute"))); | |
| 464 | −} | |
| 465 | − | |
| 466 | −/* | |
| 467 | −** Remove a file. On error return nil. | |
| 468 | −*/ | |
| 469 | −static void io_remove (void) | |
| 470 | −{ | |
| 471 | − pushresult(remove(lua_check_string(1, "remove")) == 0); | |
| 472 | −} | |
| 473 | − | |
| 474 | −static void io_rename (void) | |
| 475 | −{ | |
| 476 | − char *f1 = lua_check_string(1, "rename"); | |
| 477 | − char *f2 = lua_check_string(2, "rename"); | |
| 478 | − pushresult(rename(f1, f2) == 0); | |
| 479 | −} | |
| 480 | − | |
| 481 | −static void io_tmpname (void) | |
| 482 | −{ | |
| 483 | − lua_pushstring(tmpnam(NULL)); | |
| 484 | −} | |
| 485 | − | |
| 486 | −static void io_errorno (void) | |
| 487 | −{ | |
| 488 | −/* lua_pushstring(strerror(errno));*/ | |
| 489 | −} | |
| 490 | − | |
| 491 | − | |
| 492 | −/* | |
| 493 | −** To get a environment variable | |
| 494 | −*/ | |
| 495 | −static void io_getenv (void) | |
| 496 | −{ | |
| 497 | − char *env = getenv(lua_check_string(1, "getenv")); | |
| 498 | − lua_pushstring(env); /* if NULL push nil */ | |
| 499 | −} | |
| 500 | − | |
| 501 | −/* | |
| 502 | −** Return user formatted time stamp | |
| 503 | −*/ | |
| 504 | −static void io_date (void) | |
| 505 | −{ | |
| 506 | − time_t t; | |
| 507 | − struct tm *tm; | |
| 508 | − char *s; | |
| 509 | − char b[BUFSIZ]; | |
| 510 | − if (lua_getparam(1) == LUA_NOOBJECT) | |
| 511 | − s = "%c"; | |
| 512 | − else | |
| 513 | − s = lua_check_string(1, "date"); | |
| 514 | − time(&t); tm = localtime(&t); | |
| 515 | − if (strftime(b,sizeof(b),s,tm)) | |
| 516 | − lua_pushstring(b); | |
| 517 | − else | |
| 518 | − lua_error("invalid `date' format"); | |
| 519 | −} | |
| 520 | − | |
| 521 | −/* | |
| 522 | −** To exit | |
| 523 | −*/ | |
| 524 | −static void io_exit (void) | |
| 525 | −{ | |
| 526 | − lua_Object o = lua_getparam(1); | |
| 527 | − int code = lua_isnumber(o) ? (int)lua_getnumber(o) : 1; | |
| 528 | − exit(code); | |
| 529 | −} | |
| 530 | − | |
| 531 | −/* | |
| 532 | −** To debug a lua program. Start a dialog with the user, interpreting | |
| 533 | − lua commands until an 'cont'. | |
| 534 | −*/ | |
| 535 | −static void io_debug (void) | |
| 536 | −{ | |
| 537 | − while (1) | |
| 538 | − { | |
| 539 | − char buffer[250]; | |
| 540 | − fprintf(stderr, "lua_debug> "); | |
| 541 | − if (fgets(buffer, sizeof(buffer), stdin) == 0) return; | |
| 542 | − if (strcmp(buffer, "cont") == 0) return; | |
| 543 | − lua_dostring(buffer); | |
| 544 | − } | |
| 545 | −} | |
| 546 | − | |
| 547 | − | |
| 548 | −static void lua_printstack (FILE *f) | |
| 549 | −{ | |
| 550 | − int level = 0; | |
| 551 | − lua_Object func; | |
| 552 | − fprintf(f, "Active Stack:\n"); | |
| 553 | − while ((func = lua_stackedfunction(level++)) != LUA_NOOBJECT) | |
| 554 | − { | |
| 555 | − char *name; | |
| 556 | − int currentline; | |
| 557 | − fprintf(f, "\t"); | |
| 558 | − switch (*lua_getobjname(func, &name)) | |
| 559 | − { | |
| 560 | − case 'g': | |
| 561 | − fprintf(f, "function %s", name); | |
| 562 | − break; | |
| 563 | − case 'f': | |
| 564 | − fprintf(f, "`%s' fallback", name); | |
| 565 | − break; | |
| 566 | − default: | |
| 567 | − { | |
| 568 | − char *filename; | |
| 569 | − int linedefined; | |
| 570 | − lua_funcinfo(func, &filename, &linedefined); | |
| 571 | − if (linedefined == 0) | |
| 572 | − fprintf(f, "main of %s", filename); | |
| 573 | − else if (linedefined < 0) | |
| 574 | − fprintf(f, "%s", filename); | |
| 575 | − else | |
| 576 | − fprintf(f, "function (%s:%d)", filename, linedefined); | |
| 577 | − } | |
| 578 | − } | |
| 579 | − if ((currentline = lua_currentline(func)) > 0) | |
| 580 | − fprintf(f, " at line %d", currentline); | |
| 581 | − fprintf(f, "\n"); | |
| 582 | − } | |
| 583 | −} | |
| 584 | − | |
| 585 | − | |
| 586 | −static void errorfb (void) | |
| 587 | −{ | |
| 588 | − lua_Object o = lua_getparam(1); | |
| 589 | − char *s = lua_isstring(o) ? lua_getstring(o) : "(no messsage)"; | |
| 590 | − fprintf(stderr, "lua: %s\n", s); | |
| 591 | − lua_printstack(stderr); | |
| 592 | −} | |
| 593 | − | |
| 594 | − | |
| 595 | −static struct lua_reg iolib[] = { | |
| 596 | −{"readfrom", io_readfrom}, | |
| 597 | −{"writeto", io_writeto}, | |
| 598 | −{"appendto", io_appendto}, | |
| 599 | −{"read", io_read}, | |
| 600 | −{"readuntil",io_readuntil}, | |
| 601 | −{"write", io_write}, | |
| 602 | −{"execute", io_execute}, | |
| 603 | −{"remove", io_remove}, | |
| 604 | −{"rename", io_rename}, | |
| 605 | −{"tmpname", io_tmpname}, | |
| 606 | −{"ioerror", io_errorno}, | |
| 607 | −{"getenv", io_getenv}, | |
| 608 | −{"date", io_date}, | |
| 609 | −{"exit", io_exit}, | |
| 610 | −{"debug", io_debug}, | |
| 611 | −{"print_stack", errorfb} | |
| 612 | −}; | |
| 613 | − | |
| 614 | −void iolib_open (void) | |
| 615 | −{ | |
| 616 | − luaI_openlib(iolib, (sizeof(iolib)/sizeof(iolib[0]))); | |
| 617 | − lua_setfallback("error", errorfb); | |
| 618 | −} | |
| @@ -1,33 +0,0 @@ | ||
| 1 | −/* | |
| 2 | −** Libraries to be used in LUA programs | |
| 3 | −** Grupo de Tecnologia em Computacao Grafica | |
| 4 | −** TeCGraf - PUC-Rio | |
| 5 | −** $Id: lualib.h,v 1.8 1996/04/30 21:13:55 roberto Exp $ | |
| 6 | −*/ | |
| 7 | − | |
| 8 | −#ifndef lualib_h | |
| 9 | −#define lualib_h | |
| 10 | − | |
| 11 | −#include "lua.h" | |
| 12 | − | |
| 13 | −void iolib_open (void); | |
| 14 | −void strlib_open (void); | |
| 15 | −void mathlib_open (void); | |
| 16 | − | |
| 17 | − | |
| 18 | −/* auxiliar functions (private) */ | |
| 19 | − | |
| 20 | −struct lua_reg { | |
| 21 | − char *name; | |
| 22 | − lua_CFunction func; | |
| 23 | −}; | |
| 24 | − | |
| 25 | −void luaI_openlib (struct lua_reg *l, int n); | |
| 26 | −void lua_arg_error(char *funcname); | |
| 27 | −char *lua_check_string (int numArg, char *funcname); | |
| 28 | −double lua_check_number (int numArg, char *funcname); | |
| 29 | −char *luaI_addchar (int c); | |
| 30 | −void luaI_addquoted (char *s); | |
| 31 | − | |
| 32 | −#endif | |
| 33 | − | |
| @@ -1,230 +0,0 @@ | ||
| 1 | −/* | |
| 2 | −** mathlib.c | |
| 3 | −** Mathematics library to LUA | |
| 4 | −*/ | |
| 5 | − | |
| 6 | −char *rcs_mathlib="$Id: mathlib.c,v 1.17 1996/04/30 21:13:55 roberto Exp $"; | |
| 7 | − | |
| 8 | −#include <stdlib.h> | |
| 9 | −#include <math.h> | |
| 10 | − | |
| 11 | −#include "lualib.h" | |
| 12 | −#include "lua.h" | |
| 13 | − | |
| 14 | −#ifndef PI | |
| 15 | −#define PI 3.14159265358979323846 | |
| 16 | −#endif | |
| 17 | −#define TODEGREE(a) ((a)*180.0/PI) | |
| 18 | −#define TORAD(a) ((a)*PI/180.0) | |
| 19 | − | |
| 20 | −static void math_abs (void) | |
| 21 | −{ | |
| 22 | − double d = lua_check_number(1, "abs"); | |
| 23 | − if (d < 0) d = -d; | |
| 24 | − lua_pushnumber (d); | |
| 25 | −} | |
| 26 | − | |
| 27 | − | |
| 28 | −static void math_sin (void) | |
| 29 | −{ | |
| 30 | − double d = lua_check_number(1, "sin"); | |
| 31 | − lua_pushnumber (sin(TORAD(d))); | |
| 32 | −} | |
| 33 | − | |
| 34 | − | |
| 35 | − | |
| 36 | −static void math_cos (void) | |
| 37 | −{ | |
| 38 | − double d = lua_check_number(1, "cos"); | |
| 39 | − lua_pushnumber (cos(TORAD(d))); | |
| 40 | −} | |
| 41 | − | |
| 42 | − | |
| 43 | − | |
| 44 | −static void math_tan (void) | |
| 45 | −{ | |
| 46 | − double d = lua_check_number(1, "tan"); | |
| 47 | − lua_pushnumber (tan(TORAD(d))); | |
| 48 | −} | |
| 49 | − | |
| 50 | − | |
| 51 | −static void math_asin (void) | |
| 52 | −{ | |
| 53 | − double d = lua_check_number(1, "asin"); | |
| 54 | − lua_pushnumber (TODEGREE(asin(d))); | |
| 55 | −} | |
| 56 | − | |
| 57 | − | |
| 58 | −static void math_acos (void) | |
| 59 | −{ | |
| 60 | − double d = lua_check_number(1, "acos"); | |
| 61 | − lua_pushnumber (TODEGREE(acos(d))); | |
| 62 | −} | |
| 63 | − | |
| 64 | − | |
| 65 | −static void math_atan (void) | |
| 66 | −{ | |
| 67 | − double d = lua_check_number(1, "atan"); | |
| 68 | − lua_pushnumber (TODEGREE(atan(d))); | |
| 69 | −} | |
| 70 | − | |
| 71 | − | |
| 72 | −static void math_atan2 (void) | |
| 73 | −{ | |
| 74 | − double d1 = lua_check_number(1, "atan2"); | |
| 75 | − double d2 = lua_check_number(2, "atan2"); | |
| 76 | − lua_pushnumber (TODEGREE(atan2(d1, d2))); | |
| 77 | −} | |
| 78 | − | |
| 79 | − | |
| 80 | −static void math_ceil (void) | |
| 81 | −{ | |
| 82 | − double d = lua_check_number(1, "ceil"); | |
| 83 | − lua_pushnumber (ceil(d)); | |
| 84 | −} | |
| 85 | − | |
| 86 | − | |
| 87 | −static void math_floor (void) | |
| 88 | −{ | |
| 89 | − double d = lua_check_number(1, "floor"); | |
| 90 | − lua_pushnumber (floor(d)); | |
| 91 | −} | |
| 92 | − | |
| 93 | −static void math_mod (void) | |
| 94 | −{ | |
| 95 | − int d1 = (int)lua_check_number(1, "mod"); | |
| 96 | − int d2 = (int)lua_check_number(2, "mod"); | |
| 97 | − lua_pushnumber (d1%d2); | |
| 98 | −} | |
| 99 | − | |
| 100 | − | |
| 101 | −static void math_sqrt (void) | |
| 102 | −{ | |
| 103 | − double d = lua_check_number(1, "sqrt"); | |
| 104 | − lua_pushnumber (sqrt(d)); | |
| 105 | −} | |
| 106 | − | |
| 107 | −static int old_pow; | |
| 108 | − | |
| 109 | −static void math_pow (void) | |
| 110 | −{ | |
| 111 | − lua_Object o1 = lua_getparam (1); | |
| 112 | − lua_Object o2 = lua_getparam (2); | |
| 113 | − lua_Object op = lua_getparam(3); | |
| 114 | − if (!lua_isnumber(o1) || !lua_isnumber(o2) || *(lua_getstring(op)) != 'p') | |
| 115 | − { | |
| 116 | − lua_Object old = lua_getref(old_pow); | |
| 117 | − lua_pushobject(o1); | |
| 118 | − lua_pushobject(o2); | |
| 119 | − lua_pushobject(op); | |
| 120 | − if (lua_callfunction(old) != 0) | |
| 121 | − lua_error(NULL); | |
| 122 | − } | |
| 123 | − else | |
| 124 | − { | |
| 125 | − double d1 = lua_getnumber(o1); | |
| 126 | − double d2 = lua_getnumber(o2); | |
| 127 | − lua_pushnumber (pow(d1,d2)); | |
| 128 | − } | |
| 129 | −} | |
| 130 | − | |
| 131 | −static void math_min (void) | |
| 132 | −{ | |
| 133 | − int i=1; | |
| 134 | − double dmin = lua_check_number(i, "min"); | |
| 135 | − while (lua_getparam(++i) != LUA_NOOBJECT) | |
| 136 | − { | |
| 137 | − double d = lua_check_number(i, "min"); | |
| 138 | − if (d < dmin) dmin = d; | |
| 139 | − } | |
| 140 | − lua_pushnumber (dmin); | |
| 141 | −} | |
| 142 | − | |
| 143 | −static void math_max (void) | |
| 144 | −{ | |
| 145 | − int i=1; | |
| 146 | − double dmax = lua_check_number(i, "max"); | |
| 147 | − while (lua_getparam(++i) != LUA_NOOBJECT) | |
| 148 | − { | |
| 149 | − double d = lua_check_number(i, "max"); | |
| 150 | − if (d > dmax) dmax = d; | |
| 151 | − } | |
| 152 | − lua_pushnumber (dmax); | |
| 153 | −} | |
| 154 | − | |
| 155 | −static void math_log (void) | |
| 156 | −{ | |
| 157 | − double d = lua_check_number(1, "log"); | |
| 158 | − lua_pushnumber (log(d)); | |
| 159 | −} | |
| 160 | − | |
| 161 | − | |
| 162 | −static void math_log10 (void) | |
| 163 | −{ | |
| 164 | − double d = lua_check_number(1, "log10"); | |
| 165 | − lua_pushnumber (log10(d)); | |
| 166 | −} | |
| 167 | − | |
| 168 | − | |
| 169 | −static void math_exp (void) | |
| 170 | −{ | |
| 171 | − double d = lua_check_number(1, "exp"); | |
| 172 | − lua_pushnumber (exp(d)); | |
| 173 | −} | |
| 174 | − | |
| 175 | −static void math_deg (void) | |
| 176 | −{ | |
| 177 | − float d = lua_check_number(1, "deg"); | |
| 178 | − lua_pushnumber (d*180./PI); | |
| 179 | −} | |
| 180 | − | |
| 181 | −static void math_rad (void) | |
| 182 | −{ | |
| 183 | − float d = lua_check_number(1, "rad"); | |
| 184 | − lua_pushnumber (d/180.*PI); | |
| 185 | −} | |
| 186 | − | |
| 187 | −static void math_random (void) | |
| 188 | −{ | |
| 189 | − lua_pushnumber((double)(rand()%RAND_MAX) / (double)RAND_MAX); | |
| 190 | −} | |
| 191 | − | |
| 192 | −static void math_randomseed (void) | |
| 193 | −{ | |
| 194 | − srand(lua_check_number(1, "randomseed")); | |
| 195 | −} | |
| 196 | − | |
| 197 | − | |
| 198 | −static struct lua_reg mathlib[] = { | |
| 199 | −{"abs", math_abs}, | |
| 200 | −{"sin", math_sin}, | |
| 201 | −{"cos", math_cos}, | |
| 202 | −{"tan", math_tan}, | |
| 203 | −{"asin", math_asin}, | |
| 204 | −{"acos", math_acos}, | |
| 205 | −{"atan", math_atan}, | |
| 206 | −{"atan2", math_atan2}, | |
| 207 | −{"ceil", math_ceil}, | |
| 208 | −{"floor", math_floor}, | |
| 209 | −{"mod", math_mod}, | |
| 210 | −{"sqrt", math_sqrt}, | |
| 211 | −{"min", math_min}, | |
| 212 | −{"max", math_max}, | |
| 213 | −{"log", math_log}, | |
| 214 | −{"log10", math_log10}, | |
| 215 | −{"exp", math_exp}, | |
| 216 | −{"deg", math_deg}, | |
| 217 | −{"rad", math_rad}, | |
| 218 | −{"random", math_random}, | |
| 219 | −{"randomseed", math_randomseed} | |
| 220 | −}; | |
| 221 | − | |
| 222 | −/* | |
| 223 | −** Open math library | |
| 224 | −*/ | |
| 225 | −void mathlib_open (void) | |
| 226 | −{ | |
| 227 | − luaI_openlib(mathlib, (sizeof(mathlib)/sizeof(mathlib[0]))); | |
| 228 | − old_pow = lua_refobject(lua_setfallback("arith", math_pow), 1); | |
| 229 | −} | |
| 230 | − | |
| @@ -1,276 +0,0 @@ | ||
| 1 | −/* | |
| 2 | −** strlib.c | |
| 3 | −** String library to LUA | |
| 4 | −*/ | |
| 5 | − | |
| 6 | −char *rcs_strlib="$Id: strlib.c,v 1.23 1996/04/30 21:13:55 roberto Exp $"; | |
| 7 | − | |
| 8 | −#include <string.h> | |
| 9 | −#include <stdio.h> | |
| 10 | −#include <stdlib.h> | |
| 11 | −#include <ctype.h> | |
| 12 | −#include <limits.h> | |
| 13 | − | |
| 14 | −#include "lua.h" | |
| 15 | −#include "lualib.h" | |
| 16 | − | |
| 17 | − | |
| 18 | −void lua_arg_error(char *funcname) | |
| 19 | −{ | |
| 20 | − char buff[100]; | |
| 21 | − sprintf(buff, "incorrect arguments to function `%s'", funcname); | |
| 22 | − lua_error(buff); | |
| 23 | −} | |
| 24 | − | |
| 25 | −char *lua_check_string (int numArg, char *funcname) | |
| 26 | −{ | |
| 27 | − lua_Object o = lua_getparam(numArg); | |
| 28 | − if (!lua_isstring(o)) | |
| 29 | − lua_arg_error(funcname); | |
| 30 | − return lua_getstring(o); | |
| 31 | −} | |
| 32 | − | |
| 33 | −double lua_check_number (int numArg, char *funcname) | |
| 34 | −{ | |
| 35 | − lua_Object o = lua_getparam(numArg); | |
| 36 | − if (!lua_isnumber(o)) | |
| 37 | − lua_arg_error(funcname); | |
| 38 | − return lua_getnumber(o); | |
| 39 | −} | |
| 40 | − | |
| 41 | −static int lua_opt_number (int numArg, int def, char *funcname) | |
| 42 | −{ | |
| 43 | − return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : | |
| 44 | − (int)lua_check_number(numArg, funcname); | |
| 45 | −} | |
| 46 | − | |
| 47 | −char *luaI_addchar (int c) | |
| 48 | −{ | |
| 49 | − static char *buff = NULL; | |
| 50 | − static int max = 0; | |
| 51 | − static int n = 0; | |
| 52 | − if (n >= max) | |
| 53 | − { | |
| 54 | − if (max == 0) | |
| 55 | − { | |
| 56 | − max = 100; | |
| 57 | − buff = (char *)malloc(max); | |
| 58 | − } | |
| 59 | − else | |
| 60 | − { | |
| 61 | − max *= 2; | |
| 62 | − buff = (char *)realloc(buff, max); | |
| 63 | − } | |
| 64 | − if (buff == NULL) | |
| 65 | − lua_error("memory overflow"); | |
| 66 | − } | |
| 67 | − buff[n++] = c; | |
| 68 | − if (c == 0) | |
| 69 | − n = 0; /* prepare for next string */ | |
| 70 | − return buff; | |
| 71 | −} | |
| 72 | − | |
| 73 | − | |
| 74 | −/* | |
| 75 | −** Return the position of the first caracter of a substring into a string | |
| 76 | −** LUA interface: | |
| 77 | −** n = strfind (string, substring, init, end) | |
| 78 | −*/ | |
| 79 | −static void str_find (void) | |
| 80 | −{ | |
| 81 | − char *s1 = lua_check_string(1, "strfind"); | |
| 82 | − char *s2 = lua_check_string(2, "strfind"); | |
| 83 | − int init = lua_opt_number(3, 1, "strfind") - 1; | |
| 84 | − char *f = (init>=0 && init<=strlen(s1)) ? strstr(s1+init,s2) : NULL; | |
| 85 | − if (f != NULL) | |
| 86 | − { | |
| 87 | − int pos = f-s1+1; | |
| 88 | − if (lua_opt_number(4, INT_MAX, "strfind") >= pos+strlen(s2)-1) | |
| 89 | − lua_pushnumber (pos); | |
| 90 | − else | |
| 91 | − lua_pushnil(); | |
| 92 | − } | |
| 93 | − else | |
| 94 | − lua_pushnil(); | |
| 95 | −} | |
| 96 | − | |
| 97 | −/* | |
| 98 | −** Return the string length | |
| 99 | −** LUA interface: | |
| 100 | −** n = strlen (string) | |
| 101 | −*/ | |
| 102 | −static void str_len (void) | |
| 103 | −{ | |
| 104 | − char *s = lua_check_string(1, "strlen"); | |
| 105 | − lua_pushnumber(strlen(s)); | |
| 106 | −} | |
| 107 | − | |
| 108 | − | |
| 109 | −/* | |
| 110 | −** Return the substring of a string, from start to end | |
| 111 | −** LUA interface: | |
| 112 | −** substring = strsub (string, start, end) | |
| 113 | −*/ | |
| 114 | −static void str_sub (void) | |
| 115 | −{ | |
| 116 | − char *s = lua_check_string(1, "strsub"); | |
| 117 | − int start = (int)lua_check_number(2, "strsub"); | |
| 118 | − int end = lua_opt_number(3, strlen(s), "strsub"); | |
| 119 | − if (end < start || start < 1 || end > strlen(s)) | |
| 120 | − lua_pushliteral(""); | |
| 121 | − else | |
| 122 | − { | |
| 123 | − luaI_addchar(0); | |
| 124 | − while (start <= end) | |
| 125 | − luaI_addchar(s[start++ - 1]); | |
| 126 | − lua_pushstring (luaI_addchar(0)); | |
| 127 | − } | |
| 128 | −} | |
| 129 | − | |
| 130 | −/* | |
| 131 | −** Convert a string to lower case. | |
| 132 | −** LUA interface: | |
| 133 | −** lowercase = strlower (string) | |
| 134 | −*/ | |
| 135 | −static void str_lower (void) | |
| 136 | −{ | |
| 137 | − char *s = lua_check_string(1, "strlower"); | |
| 138 | − luaI_addchar(0); | |
| 139 | − while (*s) | |
| 140 | − luaI_addchar(tolower(*s++)); | |
| 141 | − lua_pushstring(luaI_addchar(0)); | |
| 142 | −} | |
| 143 | − | |
| 144 | − | |
| 145 | −/* | |
| 146 | −** Convert a string to upper case. | |
| 147 | −** LUA interface: | |
| 148 | −** uppercase = strupper (string) | |
| 149 | −*/ | |
| 150 | −static void str_upper (void) | |
| 151 | −{ | |
| 152 | − char *s = lua_check_string(1, "strupper"); | |
| 153 | − luaI_addchar(0); | |
| 154 | − while (*s) | |
| 155 | − luaI_addchar(toupper(*s++)); | |
| 156 | − lua_pushstring(luaI_addchar(0)); | |
| 157 | −} | |
| 158 | − | |
| 159 | −/* | |
| 160 | −** get ascii value of a character in a string | |
| 161 | −*/ | |
| 162 | −static void str_ascii (void) | |
| 163 | −{ | |
| 164 | − char *s = lua_check_string(1, "ascii"); | |
| 165 | − int pos = lua_opt_number(2, 1, "ascii") - 1; | |
| 166 | − if (pos<0 || pos>=strlen(s)) | |
| 167 | − lua_arg_error("ascii"); | |
| 168 | − lua_pushnumber(s[pos]); | |
| 169 | −} | |
| 170 | − | |
| 171 | −void luaI_addquoted (char *s) | |
| 172 | −{ | |
| 173 | − luaI_addchar('"'); | |
| 174 | − for (; *s; s++) | |
| 175 | − { | |
| 176 | − if (*s == '"' || *s == '\\' || *s == '\n') | |
| 177 | − luaI_addchar('\\'); | |
| 178 | − luaI_addchar(*s); | |
| 179 | − } | |
| 180 | − luaI_addchar('"'); | |
| 181 | −} | |
| 182 | − | |
| 183 | −#define MAX_CONVERTION 2000 | |
| 184 | −#define MAX_FORMAT 50 | |
| 185 | − | |
| 186 | −static void str_format (void) | |
| 187 | −{ | |
| 188 | − int arg = 1; | |
| 189 | − char *strfrmt = lua_check_string(arg++, "format"); | |
| 190 | − luaI_addchar(0); /* initialize */ | |
| 191 | − while (*strfrmt) | |
| 192 | − { | |
| 193 | − if (*strfrmt != '%') | |
| 194 | − luaI_addchar(*strfrmt++); | |
| 195 | − else if (*++strfrmt == '%') | |
| 196 | − luaI_addchar(*strfrmt++); /* %% */ | |
| 197 | − else | |
| 198 | − { /* format item */ | |
| 199 | − char form[MAX_FORMAT]; /* store the format ('%...') */ | |
| 200 | − char buff[MAX_CONVERTION]; /* store the formated value */ | |
| 201 | − int size = 0; | |
| 202 | − int i = 0; | |
| 203 | − form[i++] = '%'; | |
| 204 | − form[i] = *strfrmt++; | |
| 205 | − while (!isalpha(form[i])) | |
| 206 | − { | |
| 207 | − if (isdigit(form[i])) | |
| 208 | − { | |
| 209 | − size = size*10 + form[i]-'0'; | |
| 210 | − if (size >= MAX_CONVERTION) | |
| 211 | − lua_error("format size/precision too long in function `format'"); | |
| 212 | − } | |
| 213 | − else if (form[i] == '.') | |
| 214 | − size = 0; /* re-start */ | |
| 215 | − if (++i >= MAX_FORMAT) | |
| 216 | − lua_error("bad format in function `format'"); | |
| 217 | − form[i] = *strfrmt++; | |
| 218 | − } | |
| 219 | − form[i+1] = 0; /* ends string */ | |
| 220 | − switch (form[i]) | |
| 221 | − { | |
| 222 | − case 'q': | |
| 223 | − luaI_addquoted(lua_check_string(arg++, "format")); | |
| 224 | − buff[0] = '\0'; /* addchar already done */ | |
| 225 | − break; | |
| 226 | − case 's': | |
| 227 | − { | |
| 228 | − char *s = lua_check_string(arg++, "format"); | |
| 229 | − if (strlen(s) >= MAX_CONVERTION) | |
| 230 | − lua_error("string argument too long in function `format'"); | |
| 231 | − sprintf(buff, form, s); | |
| 232 | − break; | |
| 233 | − } | |
| 234 | − case 'c': case 'd': case 'i': case 'o': | |
| 235 | − case 'u': case 'x': case 'X': | |
| 236 | − sprintf(buff, form, (int)lua_check_number(arg++, "format")); | |
| 237 | − break; | |
| 238 | − case 'e': case 'E': case 'f': case 'g': | |
| 239 | − sprintf(buff, form, lua_check_number(arg++, "format")); | |
| 240 | − break; | |
| 241 | − default: /* also treat cases 'pnLlh' */ | |
| 242 | − lua_error("invalid format option in function `format'"); | |
| 243 | − } | |
| 244 | − for (i=0; buff[i]; i++) /* move formated value to result */ | |
| 245 | − luaI_addchar(buff[i]); | |
| 246 | − } | |
| 247 | − } | |
| 248 | − lua_pushstring(luaI_addchar(0)); /* push the result */ | |
| 249 | −} | |
| 250 | − | |
| 251 | − | |
| 252 | −void luaI_openlib (struct lua_reg *l, int n) | |
| 253 | −{ | |
| 254 | − int i; | |
| 255 | − for (i=0; i<n; i++) | |
| 256 | − lua_register(l[i].name, l[i].func); | |
| 257 | −} | |
| 258 | − | |
| 259 | −static struct lua_reg strlib[] = { | |
| 260 | −{"strfind", str_find}, | |
| 261 | −{"strlen", str_len}, | |
| 262 | −{"strsub", str_sub}, | |
| 263 | −{"strlower", str_lower}, | |
| 264 | −{"strupper", str_upper}, | |
| 265 | −{"ascii", str_ascii}, | |
| 266 | −{"format", str_format} | |
| 267 | −}; | |
| 268 | − | |
| 269 | − | |
| 270 | −/* | |
| 271 | −** Open string library | |
| 272 | −*/ | |
| 273 | −void strlib_open (void) | |
| 274 | −{ | |
| 275 | − luaI_openlib(strlib, (sizeof(strlib)/sizeof(strlib[0]))); | |
| 276 | −} | |
| @@ -3,7 +3,7 @@ · 2 unmodified lines | ||
| 3 | 3 | ** String library to LUA |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char *rcs_strlib="$Id: strlib.c,v 1.33 1996/11/20 13:47:59 roberto Exp $"; | |
| 6 | +char *rcs_strlib="$Id: strlib.c,v 1.46 1997/06/19 18:49:40 roberto Exp $"; | |
| 7 | 7 | |
| 8 | 8 | #include <string.h> |
| 9 | 9 | #include <stdio.h> |
| @@ -11,6 +11,7 @@ char *rcs_strlib="$Id: strlib.c,v 1.33 1996/11/20 13:47:59 roberto Exp $"; · 1 unmodified line | ||
| 11 | 11 | #include <ctype.h> |
| 12 | 12 | |
| 13 | 13 | #include "lua.h" |
| 14 | +#include "auxlib.h" | |
| 14 | 15 | #include "lualib.h" |
| 15 | 16 | |
| 16 | 17 | |
| @@ -23,7 +24,7 @@ struct lbuff { · 6 unmodified lines | ||
| 23 | 24 | static struct lbuff lbuffer = {NULL, 0, 0}; |
| 24 | 25 | |
| 25 | 26 | |
| 26 | −static char *lua_strbuffer (unsigned long size) | |
| 27 | +static char *strbuffer (unsigned long size) | |
| 27 | 28 | { |
| 28 | 29 | if (size > lbuffer.max) { |
| 29 | 30 | /* ANSI "realloc" doesn't need this test, but some machines (Sun!) |
| @@ -38,55 +39,24 @@ static char *lua_strbuffer (unsigned long size) · 8 unmodified lines | ||
| 38 | 39 | |
| 39 | 40 | static char *openspace (unsigned long size) |
| 40 | 41 | { |
| 41 | − char *buff = lua_strbuffer(lbuffer.size+size); | |
| 42 | + char *buff = strbuffer(lbuffer.size+size); | |
| 42 | 43 | return buff+lbuffer.size; |
| 43 | 44 | } |
| 44 | 45 | |
| 45 | −void lua_arg_check(int cond, char *funcname) | |
| 46 | −{ | |
| 47 | − if (!cond) { | |
| 48 | − char buff[100]; | |
| 49 | − sprintf(buff, "incorrect argument to function `%s'", funcname); | |
| 50 | − lua_error(buff); | |
| 51 | − } | |
| 52 | −} | |
| 53 | − | |
| 54 | −char *lua_check_string (int numArg, char *funcname) | |
| 55 | −{ | |
| 56 | − lua_Object o = lua_getparam(numArg); | |
| 57 | − lua_arg_check(lua_isstring(o), funcname); | |
| 58 | − return lua_getstring(o); | |
| 59 | −} | |
| 60 | − | |
| 61 | −char *lua_opt_string (int numArg, char *def, char *funcname) | |
| 62 | −{ | |
| 63 | − return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : | |
| 64 | − lua_check_string(numArg, funcname); | |
| 65 | −} | |
| 66 | − | |
| 67 | −double lua_check_number (int numArg, char *funcname) | |
| 68 | −{ | |
| 69 | − lua_Object o = lua_getparam(numArg); | |
| 70 | − lua_arg_check(lua_isnumber(o), funcname); | |
| 71 | − return lua_getnumber(o); | |
| 72 | −} | |
| 73 | − | |
| 74 | −long lua_opt_number (int numArg, long def, char *funcname) | |
| 75 | −{ | |
| 76 | − return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : | |
| 77 | − (long)lua_check_number(numArg, funcname); | |
| 78 | −} | |
| 79 | − | |
| 80 | 46 | char *luaI_addchar (int c) |
| 81 | 47 | { |
| 82 | 48 | if (lbuffer.size >= lbuffer.max) |
| 83 | − lua_strbuffer(lbuffer.max == 0 ? 100 : lbuffer.max*2); | |
| 49 | + strbuffer(lbuffer.max == 0 ? 100 : lbuffer.max*2); | |
| 84 | 50 | lbuffer.b[lbuffer.size++] = c; |
| 85 | − if (c == 0) | |
| 86 | − lbuffer.size = 0; /* prepare for next string */ | |
| 87 | 51 | return lbuffer.b; |
| 88 | 52 | } |
| 89 | 53 | |
| 54 | +void luaI_emptybuff (void) | |
| 55 | +{ | |
| 56 | + lbuffer.size = 0; /* prepare for next string */ | |
| 57 | +} | |
| 58 | + | |
| 59 | + | |
| 90 | 60 | static void addnchar (char *s, int n) |
| 91 | 61 | { |
| 92 | 62 | char *b = openspace(n); |
| @@ -99,35 +69,13 @@ static void addstr (char *s) · 6 unmodified lines | ||
| 99 | 69 | addnchar(s, strlen(s)); |
| 100 | 70 | } |
| 101 | 71 | |
| 102 | −/* | |
| 103 | −** Interface to strtok | |
| 104 | −*/ | |
| 105 | −static void str_tok (void) | |
| 106 | −{ | |
| 107 | − char *s1 = lua_check_string(1, "strtok"); | |
| 108 | − char *del = lua_check_string(2, "strtok"); | |
| 109 | − lua_Object t = lua_createtable(); | |
| 110 | − int i = 1; | |
| 111 | − /* As strtok changes s1, and s1 is "constant", make a copy of it */ | |
| 112 | − s1 = strcpy(lua_strbuffer(strlen(s1+1)), s1); | |
| 113 | − while ((s1 = strtok(s1, del)) != NULL) { | |
| 114 | − lua_pushobject(t); | |
| 115 | − lua_pushnumber(i++); | |
| 116 | − lua_pushstring(s1); | |
| 117 | − lua_storesubscript(); | |
| 118 | − s1 = NULL; /* prepare for next strtok */ | |
| 119 | − } | |
| 120 | − lua_pushobject(t); | |
| 121 | − lua_pushnumber(i-1); /* total number of tokens */ | |
| 122 | −} | |
| 123 | − | |
| 124 | 72 | |
| 125 | 73 | /* |
| 126 | 74 | ** Return the string length |
| 127 | 75 | */ |
| 128 | 76 | static void str_len (void) |
| 129 | 77 | { |
| 130 | − lua_pushnumber(strlen(lua_check_string(1, "strlen"))); | |
| 78 | + lua_pushnumber(strlen(luaL_check_string(1))); | |
| 131 | 79 | } |
| 132 | 80 | |
| 133 | 81 | /* |
| @@ -135,15 +83,18 @@ static void str_len (void) · 1 unmodified line | ||
| 135 | 83 | */ |
| 136 | 84 | static void str_sub (void) |
| 137 | 85 | { |
| 138 | − char *s = lua_check_string(1, "strsub"); | |
| 139 | − long start = (long)lua_check_number(2, "strsub"); | |
| 140 | − long end = lua_opt_number(3, strlen(s), "strsub"); | |
| 141 | − if (1 <= start && start <= end && end <= strlen(s)) { | |
| 142 | − luaI_addchar(0); | |
| 86 | + char *s = luaL_check_string(1); | |
| 87 | + long l = strlen(s); | |
| 88 | + long start = (long)luaL_check_number(2); | |
| 89 | + long end = (long)luaL_opt_number(3, -1); | |
| 90 | + if (start < 0) start = l+start+1; | |
| 91 | + if (end < 0) end = l+end+1; | |
| 92 | + if (1 <= start && start <= end && end <= l) { | |
| 93 | + luaI_emptybuff(); | |
| 143 | 94 | addnchar(s+start-1, end-start+1); |
| 144 | 95 | lua_pushstring(luaI_addchar(0)); |
| 145 | 96 | } |
| 146 | − else lua_pushliteral(""); | |
| 97 | + else lua_pushstring(""); | |
| 147 | 98 | } |
| 148 | 99 | |
| 149 | 100 | /* |
| @@ -151,10 +102,10 @@ static void str_sub (void) · 1 unmodified line | ||
| 151 | 102 | */ |
| 152 | 103 | static void str_lower (void) |
| 153 | 104 | { |
| 154 | − char *s = lua_check_string(1, "strlower"); | |
| 155 | − luaI_addchar(0); | |
| 156 | − while (*s) | |
| 157 | − luaI_addchar(tolower(*s++)); | |
| 105 | + char *s; | |
| 106 | + luaI_emptybuff(); | |
| 107 | + for (s = luaL_check_string(1); *s; s++) | |
| 108 | + luaI_addchar(tolower((unsigned char)*s)); | |
| 158 | 109 | lua_pushstring(luaI_addchar(0)); |
| 159 | 110 | } |
| 160 | 111 | |
| @@ -163,18 +114,18 @@ static void str_lower (void) · 2 unmodified lines | ||
| 163 | 114 | */ |
| 164 | 115 | static void str_upper (void) |
| 165 | 116 | { |
| 166 | − char *s = lua_check_string(1, "strupper"); | |
| 167 | − luaI_addchar(0); | |
| 168 | − while (*s) | |
| 169 | − luaI_addchar(toupper(*s++)); | |
| 117 | + char *s; | |
| 118 | + luaI_emptybuff(); | |
| 119 | + for (s = luaL_check_string(1); *s; s++) | |
| 120 | + luaI_addchar(toupper((unsigned char)*s)); | |
| 170 | 121 | lua_pushstring(luaI_addchar(0)); |
| 171 | 122 | } |
| 172 | 123 | |
| 173 | 124 | static void str_rep (void) |
| 174 | 125 | { |
| 175 | − char *s = lua_check_string(1, "strrep"); | |
| 176 | − int n = (int)lua_check_number(2, "strrep"); | |
| 177 | − luaI_addchar(0); | |
| 126 | + char *s = luaL_check_string(1); | |
| 127 | + int n = (int)luaL_check_number(2); | |
| 128 | + luaI_emptybuff(); | |
| 178 | 129 | while (n-- > 0) |
| 179 | 130 | addstr(s); |
| 180 | 131 | lua_pushstring(luaI_addchar(0)); |
| @@ -185,9 +136,9 @@ static void str_rep (void) · 4 unmodified lines | ||
| 185 | 136 | */ |
| 186 | 137 | static void str_ascii (void) |
| 187 | 138 | { |
| 188 | − char *s = lua_check_string(1, "ascii"); | |
| 189 | − long pos = lua_opt_number(2, 1, "ascii") - 1; | |
| 190 | − lua_arg_check(0<=pos && pos<strlen(s), "ascii"); | |
| 139 | + char *s = luaL_check_string(1); | |
| 140 | + long pos = (long)luaL_opt_number(2, 1) - 1; | |
| 141 | + luaL_arg_check(0<=pos && pos<strlen(s), 2, "out of range"); | |
| 191 | 142 | lua_pushnumber((unsigned char)s[pos]); |
| 192 | 143 | } |
| 193 | 144 | |
| @@ -195,23 +146,23 @@ static void str_ascii (void) · 1 unmodified line | ||
| 195 | 146 | /* pattern matching */ |
| 196 | 147 | |
| 197 | 148 | #define ESC '%' |
| 198 | −#define SPECIALS "^$*?.([%" | |
| 149 | +#define SPECIALS "^$*?.([%-" | |
| 199 | 150 | |
| 200 | 151 | static char *bracket_end (char *p) |
| 201 | 152 | { |
| 202 | 153 | return (*p == 0) ? NULL : strchr((*p=='^') ? p+2 : p+1, ']'); |
| 203 | 154 | } |
| 204 | 155 | |
| 205 | −char *item_end (char *p) | |
| 156 | +char *luaL_item_end (char *p) | |
| 206 | 157 | { |
| 207 | 158 | switch (*p++) { |
| 208 | 159 | case '\0': return p-1; |
| 209 | 160 | case ESC: |
| 210 | − if (*p == 0) lua_error("incorrect pattern"); | |
| 161 | + if (*p == 0) luaL_verror("incorrect pattern (ends with `%c')", ESC); | |
| 211 | 162 | return p+1; |
| 212 | 163 | case '[': { |
| 213 | 164 | char *end = bracket_end(p); |
| 214 | − if (end == NULL) lua_error("incorrect pattern"); | |
| 165 | + if (end == NULL) lua_error("incorrect pattern (missing `]')"); | |
| 215 | 166 | return end+1; |
| 216 | 167 | } |
| 217 | 168 | default: |
| @@ -222,21 +173,21 @@ char *item_end (char *p) · 4 unmodified lines | ||
| 222 | 173 | static int matchclass (int c, int cl) |
| 223 | 174 | { |
| 224 | 175 | int res; |
| 225 | − switch (tolower(cl)) { | |
| 226 | − case 'a' : res = isalpha(c); break; | |
| 227 | − case 'c' : res = iscntrl(c); break; | |
| 228 | − case 'd' : res = isdigit(c); break; | |
| 229 | − case 'l' : res = islower(c); break; | |
| 230 | − case 'p' : res = ispunct(c); break; | |
| 231 | − case 's' : res = isspace(c); break; | |
| 232 | − case 'u' : res = isupper(c); break; | |
| 233 | − case 'w' : res = isalnum(c); break; | |
| 176 | + switch (tolower((unsigned char)cl)) { | |
| 177 | + case 'a' : res = isalpha((unsigned char)c); break; | |
| 178 | + case 'c' : res = iscntrl((unsigned char)c); break; | |
| 179 | + case 'd' : res = isdigit((unsigned char)c); break; | |
| 180 | + case 'l' : res = islower((unsigned char)c); break; | |
| 181 | + case 'p' : res = ispunct((unsigned char)c); break; | |
| 182 | + case 's' : res = isspace((unsigned char)c); break; | |
| 183 | + case 'u' : res = isupper((unsigned char)c); break; | |
| 184 | + case 'w' : res = isalnum((unsigned char)c); break; | |
| 234 | 185 | default: return (cl == c); |
| 235 | 186 | } |
| 236 | − return (islower(cl) ? res : !res); | |
| 187 | + return (islower((unsigned char)cl) ? res : !res); | |
| 237 | 188 | } |
| 238 | 189 | |
| 239 | −int singlematch (int c, char *p) | |
| 190 | +int luaL_singlematch (int c, char *p) | |
| 240 | 191 | { |
| 241 | 192 | if (c == 0) return 0; |
| 242 | 193 | switch (*p) { |
| @@ -333,7 +284,7 @@ static char *match (char *s, char *p, int level) · 90 unmodified lines | ||
| 333 | 284 | return res; |
| 334 | 285 | } |
| 335 | 286 | case ESC: |
| 336 | − if (isdigit(*(p+1))) { /* capture */ | |
| 287 | + if (isdigit((unsigned char)(*(p+1)))) { /* capture */ | |
| 337 | 288 | int l = check_cap(*(p+1), level); |
| 338 | 289 | if (strncmp(capture[l].init, s, capture[l].len) == 0) { |
| 339 | 290 | /* return match(p+2, s+capture[l].len, level); */ |
| @@ -358,8 +309,8 @@ static char *match (char *s, char *p, int level) · 18 unmodified lines | ||
| 358 | 309 | } |
| 359 | 310 | else goto dflt; |
| 360 | 311 | default: dflt: { /* it is a pattern item */ |
| 361 | − int m = singlematch(*s, p); | |
| 362 | − char *ep = item_end(p); /* get what is next */ | |
| 312 | + int m = luaL_singlematch(*s, p); | |
| 313 | + char *ep = luaL_item_end(p); /* get what is next */ | |
| 363 | 314 | switch (*ep) { |
| 364 | 315 | case '*': { /* repetition */ |
| 365 | 316 | char *res; |
| @@ -367,6 +318,17 @@ static char *match (char *s, char *p, int level) · 1 unmodified line | ||
| 367 | 318 | return res; |
| 368 | 319 | p=ep+1; goto init; /* else return match(s, ep+1, level); */ |
| 369 | 320 | } |
| 321 | + case '-': { /* repetition */ | |
| 322 | + char *res; | |
| 323 | + if ((res = match(s, ep+1, level)) != 0) | |
| 324 | + return res; | |
| 325 | + else if (m) { | |
| 326 | + s++; | |
| 327 | + goto init; /* return match(s+1, p, level); */ | |
| 328 | + } | |
| 329 | + else | |
| 330 | + return NULL; | |
| 331 | + } | |
| 370 | 332 | case '?': { /* optional */ |
| 371 | 333 | char *res; |
| 372 | 334 | if (m && (res = match(s+1, ep+1, level))) |
| @@ -383,10 +345,10 @@ static char *match (char *s, char *p, int level) · 10 unmodified lines | ||
| 383 | 345 | |
| 384 | 346 | static void str_find (void) |
| 385 | 347 | { |
| 386 | − char *s = lua_check_string(1, "strfind"); | |
| 387 | − char *p = lua_check_string(2, "strfind"); | |
| 388 | − long init = lua_opt_number(3, 1, "strfind") - 1; | |
| 389 | − lua_arg_check(0 <= init && init <= strlen(s), "strfind"); | |
| 348 | + char *s = luaL_check_string(1); | |
| 349 | + char *p = luaL_check_string(2); | |
| 350 | + long init = (long)luaL_opt_number(3, 1) - 1; | |
| 351 | + luaL_arg_check(0 <= init && init <= strlen(s), 3, "out of range"); | |
| 390 | 352 | if (lua_getparam(4) != LUA_NOOBJECT || |
| 391 | 353 | strpbrk(p, SPECIALS) == NULL) { /* no special caracters? */ |
| 392 | 354 | char *s2 = strstr(s+init, p); |
| @@ -410,12 +372,12 @@ static void str_find (void) · 17 unmodified lines | ||
| 410 | 372 | } |
| 411 | 373 | } |
| 412 | 374 | |
| 413 | −static void add_s (lua_Object newp) | |
| 375 | +static void add_s (lua_Object newp, lua_Object table, int n) | |
| 414 | 376 | { |
| 415 | 377 | if (lua_isstring(newp)) { |
| 416 | 378 | char *news = lua_getstring(newp); |
| 417 | 379 | while (*news) { |
| 418 | − if (*news != ESC || !isdigit(*++news)) | |
| 380 | + if (*news != ESC || !isdigit((unsigned char)*++news)) | |
| 419 | 381 | luaI_addchar(*news++); |
| 420 | 382 | else { |
| 421 | 383 | int l = check_cap(*news++, num_captures); |
| @@ -426,41 +388,50 @@ static void add_s (lua_Object newp) · 4 unmodified lines | ||
| 426 | 388 | else if (lua_isfunction(newp)) { |
| 427 | 389 | lua_Object res; |
| 428 | 390 | struct lbuff oldbuff; |
| 391 | + int status; | |
| 429 | 392 | lua_beginblock(); |
| 393 | + if (lua_istable(table)) { | |
| 394 | + lua_pushobject(table); | |
| 395 | + lua_pushnumber(n); | |
| 396 | + } | |
| 430 | 397 | push_captures(); |
| 431 | 398 | /* function may use lbuffer, so save it and create a new one */ |
| 432 | 399 | oldbuff = lbuffer; |
| 433 | 400 | lbuffer.b = NULL; lbuffer.max = lbuffer.size = 0; |
| 434 | − lua_callfunction(newp); | |
| 401 | + status = lua_callfunction(newp); | |
| 435 | 402 | /* restore old buffer */ |
| 436 | 403 | free(lbuffer.b); |
| 437 | 404 | lbuffer = oldbuff; |
| 405 | + if (status != 0) | |
| 406 | + lua_error(NULL); | |
| 438 | 407 | res = lua_getresult(1); |
| 439 | 408 | addstr(lua_isstring(res) ? lua_getstring(res) : ""); |
| 440 | 409 | lua_endblock(); |
| 441 | 410 | } |
| 442 | − else lua_arg_check(0, "gsub"); | |
| 411 | + else luaL_arg_check(0, 3, NULL); | |
| 443 | 412 | } |
| 444 | 413 | |
| 445 | 414 | static void str_gsub (void) |
| 446 | 415 | { |
| 447 | − char *src = lua_check_string(1, "gsub"); | |
| 448 | − char *p = lua_check_string(2, "gsub"); | |
| 416 | + char *src = luaL_check_string(1); | |
| 417 | + char *p = luaL_check_string(2); | |
| 449 | 418 | lua_Object newp = lua_getparam(3); |
| 450 | − int max_s = lua_opt_number(4, strlen(src), "gsub"); | |
| 419 | + lua_Object table = lua_getparam(4); | |
| 420 | + int max_s = (int)luaL_opt_number(lua_istable(table)?5:4, strlen(src)+1); | |
| 451 | 421 | int anchor = (*p == '^') ? (p++, 1) : 0; |
| 452 | 422 | int n = 0; |
| 453 | − luaI_addchar(0); | |
| 454 | − while (*src && n < max_s) { | |
| 455 | − char *e; | |
| 456 | − if ((e=match(src, p, 0)) == NULL) | |
| 457 | − luaI_addchar(*src++); | |
| 458 | − else { | |
| 459 | − if (e == src) lua_error("empty pattern in substitution"); | |
| 460 | − add_s(newp); | |
| 461 | − src = e; | |
| 423 | + luaI_emptybuff(); | |
| 424 | + while (n < max_s) { | |
| 425 | + char *e = match(src, p, 0); | |
| 426 | + if (e) { | |
| 462 | 427 | n++; |
| 428 | + add_s(newp, table, n); | |
| 463 | 429 | } |
| 430 | + if (e && e>src) /* non empty match? */ | |
| 431 | + src = e; /* skip it */ | |
| 432 | + else if (*src) | |
| 433 | + luaI_addchar(*src++); | |
| 434 | + else break; | |
| 464 | 435 | if (anchor) break; |
| 465 | 436 | } |
| 466 | 437 | addstr(src); |
| @@ -470,12 +441,12 @@ static void str_gsub (void) · 3 unmodified lines | ||
| 470 | 441 | |
| 471 | 442 | static void str_set (void) |
| 472 | 443 | { |
| 473 | − char *item = lua_check_string(1, "strset"); | |
| 444 | + char *item = luaL_check_string(1); | |
| 474 | 445 | int i; |
| 475 | − lua_arg_check(*item_end(item) == 0, "strset"); | |
| 476 | − luaI_addchar(0); | |
| 446 | + luaL_arg_check(*luaL_item_end(item) == 0, 1, "wrong format"); | |
| 447 | + luaI_emptybuff(); | |
| 477 | 448 | for (i=1; i<256; i++) /* 0 cannot be part of a set */ |
| 478 | − if (singlematch(i, item)) | |
| 449 | + if (luaL_singlematch(i, item)) | |
| 479 | 450 | luaI_addchar(i); |
| 480 | 451 | lua_pushstring(luaI_addchar(0)); |
| 481 | 452 | } |
| @@ -497,8 +468,8 @@ void luaI_addquoted (char *s) · 15 unmodified lines | ||
| 497 | 468 | static void str_format (void) |
| 498 | 469 | { |
| 499 | 470 | int arg = 1; |
| 500 | − char *strfrmt = lua_check_string(arg++, "format"); | |
| 501 | − luaI_addchar(0); /* initialize */ | |
| 471 | + char *strfrmt = luaL_check_string(arg++); | |
| 472 | + luaI_emptybuff(); /* initialize */ | |
| 502 | 473 | while (*strfrmt) { |
| 503 | 474 | if (*strfrmt != '%') |
| 504 | 475 | luaI_addchar(*strfrmt++); |
| @@ -510,26 +481,26 @@ static void str_format (void) · 5 unmodified lines | ||
| 510 | 481 | char *initf = strfrmt-1; /* -1 to include % */ |
| 511 | 482 | strfrmt = match(strfrmt, "[-+ #]*(%d*)%.?(%d*)", 0); |
| 512 | 483 | if (capture[0].len > 3 || capture[1].len > 3) /* < 1000? */ |
| 513 | − lua_error("invalid format (width/precision too long)"); | |
| 484 | + lua_error("invalid format (width or precision too long)"); | |
| 514 | 485 | strncpy(form, initf, strfrmt-initf+1); /* +1 to include convertion */ |
| 515 | 486 | form[strfrmt-initf+1] = 0; |
| 516 | 487 | buff = openspace(1000); /* to store the formated value */ |
| 517 | 488 | switch (*strfrmt++) { |
| 518 | 489 | case 'q': |
| 519 | − luaI_addquoted(lua_check_string(arg++, "format")); | |
| 490 | + luaI_addquoted(luaL_check_string(arg++)); | |
| 520 | 491 | continue; |
| 521 | 492 | case 's': { |
| 522 | − char *s = lua_check_string(arg++, "format"); | |
| 493 | + char *s = luaL_check_string(arg++); | |
| 523 | 494 | buff = openspace(strlen(s)); |
| 524 | 495 | sprintf(buff, form, s); |
| 525 | 496 | break; |
| 526 | 497 | } |
| 527 | 498 | case 'c': case 'd': case 'i': case 'o': |
| 528 | 499 | case 'u': case 'x': case 'X': |
| 529 | − sprintf(buff, form, (int)lua_check_number(arg++, "format")); | |
| 500 | + sprintf(buff, form, (int)luaL_check_number(arg++)); | |
| 530 | 501 | break; |
| 531 | 502 | case 'e': case 'E': case 'f': case 'g': |
| 532 | − sprintf(buff, form, lua_check_number(arg++, "format")); | |
| 503 | + sprintf(buff, form, luaL_check_number(arg++)); | |
| 533 | 504 | break; |
| 534 | 505 | default: /* also treat cases 'pnLlh' */ |
| 535 | 506 | lua_error("invalid format option in function `format'"); |
| @@ -541,16 +512,7 @@ static void str_format (void) · 5 unmodified lines | ||
| 541 | 512 | } |
| 542 | 513 | |
| 543 | 514 | |
| 544 | −void luaI_openlib (struct lua_reg *l, int n) | |
| 545 | −{ | |
| 546 | − int i; | |
| 547 | − for (i=0; i<n; i++) | |
| 548 | − lua_register(l[i].name, l[i].func); | |
| 549 | −} | |
| 550 | − | |
| 551 | − | |
| 552 | −static struct lua_reg strlib[] = { | |
| 553 | −{"strtok", str_tok}, | |
| 515 | +static struct luaL_reg strlib[] = { | |
| 554 | 516 | {"strlen", str_len}, |
| 555 | 517 | {"strsub", str_sub}, |
| 556 | 518 | {"strset", str_set}, |
| @@ -569,5 +531,5 @@ static struct lua_reg strlib[] = { · 12 unmodified lines | ||
| 569 | 531 | */ |
| 570 | 532 | void strlib_open (void) |
| 571 | 533 | { |
| 572 | − luaI_openlib(strlib, (sizeof(strlib)/sizeof(strlib[0]))); | |
| 534 | + luaL_openlib(strlib, (sizeof(strlib)/sizeof(strlib[0]))); | |
| 573 | 535 | } |
| @@ -3,12 +3,13 @@ · 2 unmodified lines | ||
| 3 | 3 | ** Linguagem para Usuarios de Aplicacao |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char *rcs_lua="$Id: lua.c,v 1.14 1996/09/24 17:30:28 roberto Exp $"; | |
| 6 | +char *rcs_lua="$Id: lua.c,v 1.18 1997/06/19 18:55:40 roberto Exp $"; | |
| 7 | 7 | |
| 8 | 8 | #include <stdio.h> |
| 9 | 9 | #include <string.h> |
| 10 | 10 | |
| 11 | 11 | #include "lua.h" |
| 12 | +#include "auxlib.h" | |
| 12 | 13 | #include "lualib.h" |
| 13 | 14 | |
| 14 | 15 | |
| @@ -19,6 +20,74 @@ char *rcs_lua="$Id: lua.c,v 1.14 1996/09/24 17:30:28 roberto Exp $"; · 4 unmodified lines | ||
| 19 | 20 | #endif |
| 20 | 21 | |
| 21 | 22 | |
| 23 | +#define DEBUG 0 | |
| 24 | + | |
| 25 | +static void testC (void) | |
| 26 | +{ | |
| 27 | +#if DEBUG | |
| 28 | +#define getnum(s) ((*s++) - '0') | |
| 29 | +#define getname(s) (nome[0] = *s++, nome) | |
| 30 | + | |
| 31 | + static int locks[10]; | |
| 32 | + lua_Object reg[10]; | |
| 33 | + char nome[2]; | |
| 34 | + char *s = luaL_check_string(1); | |
| 35 | + nome[1] = 0; | |
| 36 | + while (1) { | |
| 37 | + switch (*s++) { | |
| 38 | + case '0': case '1': case '2': case '3': case '4': | |
| 39 | + case '5': case '6': case '7': case '8': case '9': | |
| 40 | + lua_pushnumber(*(s-1) - '0'); | |
| 41 | + break; | |
| 42 | + | |
| 43 | + case 'c': reg[getnum(s)] = lua_createtable(); break; | |
| 44 | + | |
| 45 | + case 'P': reg[getnum(s)] = lua_pop(); break; | |
| 46 | + | |
| 47 | + case 'g': { int n = getnum(s); reg[n] = lua_getglobal(getname(s)); break; } | |
| 48 | + | |
| 49 | + case 'G': { int n = getnum(s); | |
| 50 | + reg[n] = lua_rawgetglobal(getname(s)); | |
| 51 | + break; | |
| 52 | + } | |
| 53 | + | |
| 54 | + case 'l': locks[getnum(s)] = lua_ref(1); break; | |
| 55 | + case 'L': locks[getnum(s)] = lua_ref(0); break; | |
| 56 | + | |
| 57 | + case 'r': { int n = getnum(s); reg[n] = lua_getref(locks[getnum(s)]); break; } | |
| 58 | + | |
| 59 | + case 'u': lua_unref(locks[getnum(s)]); break; | |
| 60 | + | |
| 61 | + case 'p': { int n = getnum(s); reg[n] = lua_getparam(getnum(s)); break; } | |
| 62 | + | |
| 63 | + case '=': lua_setglobal(getname(s)); break; | |
| 64 | + | |
| 65 | + case 's': lua_pushstring(getname(s)); break; | |
| 66 | + | |
| 67 | + case 'o': lua_pushobject(reg[getnum(s)]); break; | |
| 68 | + | |
| 69 | + case 'f': lua_call(getname(s)); break; | |
| 70 | + | |
| 71 | + case 'i': reg[getnum(s)] = lua_gettable(); break; | |
| 72 | + | |
| 73 | + case 'I': reg[getnum(s)] = lua_rawgettable(); break; | |
| 74 | + | |
| 75 | + case 't': lua_settable(); break; | |
| 76 | + | |
| 77 | + case 'T': lua_rawsettable(); break; | |
| 78 | + | |
| 79 | + default: luaL_verror("unknown command in `testC': %c", *(s-1)); | |
| 80 | + | |
| 81 | + } | |
| 82 | + if (*s == 0) return; | |
| 83 | + if (*s++ != ' ') lua_error("missing ` ' between commands in `testC'"); | |
| 84 | + } | |
| 85 | +#else | |
| 86 | + lua_error("`testC' not active"); | |
| 87 | +#endif | |
| 88 | +} | |
| 89 | + | |
| 90 | + | |
| 22 | 91 | static void manual_input (void) |
| 23 | 92 | { |
| 24 | 93 | if (isatty(0)) { |
| @@ -41,6 +110,7 @@ int main (int argc, char *argv[]) · 16 unmodified lines | ||
| 41 | 110 | iolib_open (); |
| 42 | 111 | strlib_open (); |
| 43 | 112 | mathlib_open (); |
| 113 | + lua_register("testC", testC); | |
| 44 | 114 | if (argc < 2) |
| 45 | 115 | manual_input(); |
| 46 | 116 | else for (i=1; i<argc; i++) { |
| @@ -59,8 +129,8 @@ int main (int argc, char *argv[]) · 12 unmodified lines | ||
| 59 | 129 | result = lua_dofile (argv[i]); |
| 60 | 130 | if (result) { |
| 61 | 131 | if (result == 2) { |
| 62 | − fprintf(stderr, "lua: cannot execute file `%s' - ", argv[i]); | |
| 63 | − perror(NULL); | |
| 132 | + fprintf(stderr, "lua: cannot execute file "); | |
| 133 | + perror(argv[i]); | |
| 64 | 134 | } |
| 65 | 135 | return 1; |
| 66 | 136 | } |
| @@ -2,31 +2,31 @@ · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | # you need an ANSI C compiler |
| 4 | 4 | CC= gcc |
| 5 | −WARN= -ansi -Wall # -Wmissing-prototypes -Wshadow | |
| 5 | +WARN= -ansi -Wall | |
| 6 | 6 | |
| 7 | 7 | # for SGI's with cc |
| 8 | 8 | #CC= cc |
| 9 | 9 | #WARN= -ansi -fullwarn |
| 10 | 10 | |
| 11 | 11 | # in SunOs 4.1.x, uncomment the following line to avoid prototypes warnings |
| 12 | −# for standard functions | |
| 12 | +# for standard functions: | |
| 13 | 13 | #EXTRA_INCS= -I/usr/5include |
| 14 | 14 | |
| 15 | 15 | # if you don't have popen() in your C library, comment the following line: |
| 16 | 16 | POPEN= -DPOPEN |
| 17 | 17 | |
| 18 | 18 | # if your C library is not POSIX compliant, comment the following line: |
| 19 | −POSIX= -DPOSIX | |
| 19 | +POSIX= -D_POSIX_SOURCE | |
| 20 | 20 | |
| 21 | 21 | # if you don't have strerror() in your C library, uncomment the following line: |
| 22 | 22 | #NOSTRERROR= -DNOSTRERROR |
| 23 | 23 | |
| 24 | −# if your system doesn't have ranlib, change "ranlib" to "true" | |
| 24 | +# if your system doesn't have (or need) ranlib, change "ranlib" to "true": | |
| 25 | 25 | RANLIB=ranlib |
| 26 | 26 | |
| 27 | 27 | ### NO NEED TO CHANGE ANYTHING BELOW THIS LINE ================================ |
| 28 | 28 | |
| 29 | −VERSION= 2.5 | |
| 29 | +VERSION= 3.0 | |
| 30 | 30 | |
| 31 | 31 | INC= $(LUA)/include |
| 32 | 32 | LIB= $(LUA)/lib |
| @@ -1,23 +0,0 @@ | ||
| 1 | −# makefile for lua distribution | |
| 2 | − | |
| 3 | −all: | |
| 4 | − rm -f manual.id | |
| 5 | − touch manual.id | |
| 6 | − latex manual.tex | |
| 7 | − latex manual.tex | |
| 8 | − makeindex manual | |
| 9 | − sort -df manual.idx | sed -e 's/_/\\_/g' >manual.id | |
| 10 | − latex manual.tex | |
| 11 | − dvips -o manual.ps manual.dvi | |
| 12 | − gzip manual.ps | |
| 13 | − mv manual.ps.gz refman.ps.gz | |
| 14 | − rm -f manual.* | |
| 15 | − | |
| 16 | −clean: | |
| 17 | − rm -f manual.tex | |
| 18 | − | |
| 19 | −co: | |
| 20 | − co -f -M manual.tex luac.man | |
| 21 | − | |
| 22 | −klean: clean | |
| 23 | − rm -f manual.tex manual.ps manual.dvi | |
| @@ -0,0 +1,241 @@ | ||
| 1 | +<HTML> | |
| 2 | +<HEAD> | |
| 3 | +<TITLE>Lua 3.0 Reference Manual - Word Index</TITLE> | |
| 4 | +</HEAD> | |
| 5 | + | |
| 6 | +<BODY> | |
| 7 | + | |
| 8 | +<H1>Index</H1> | |
| 9 | + | |
| 10 | +<A HREF="manual.html#..">..</A><BR> | |
| 11 | +<A HREF="manual.html#abs">abs</A><BR> | |
| 12 | +<A HREF="manual.html#acos">acos</A><BR> | |
| 13 | +<A HREF="manual.html#add event">add event</A><BR> | |
| 14 | +<A HREF="manual.html#Adjustment">Adjustment</A><BR> | |
| 15 | +<A HREF="manual.html#and">and</A><BR> | |
| 16 | +<A HREF="manual.html#appendto">appendto</A><BR> | |
| 17 | +<A HREF="manual.html#arg">arg</A><BR> | |
| 18 | +<A HREF="manual.html#arguments">arguments</A><BR> | |
| 19 | +<A HREF="manual.html#arithmetic operators">arithmetic operators</A><BR> | |
| 20 | +<A HREF="manual.html#arrays">arrays</A><BR> | |
| 21 | +<A HREF="manual.html#ascii">ascii</A><BR> | |
| 22 | +<A HREF="manual.html#asin">asin</A><BR> | |
| 23 | +<A HREF="manual.html#assert">assert</A><BR> | |
| 24 | +<A HREF="manual.html#Assignment">Assignment</A><BR> | |
| 25 | +<A HREF="manual.html#associative arrays">associative arrays</A><BR> | |
| 26 | +<A HREF="manual.html#atan2">atan2</A><BR> | |
| 27 | +<A HREF="manual.html#atan">atan</A><BR> | |
| 28 | +<A HREF="manual.html#basic types">basic types</A><BR> | |
| 29 | +<A HREF="manual.html#block">block</A><BR> | |
| 30 | +<A HREF="manual.html#C pointers">C pointers</A><BR> | |
| 31 | +<A HREF="manual.html#C2lua">C2lua</A><BR> | |
| 32 | +<A HREF="manual.html#call">call</A><BR> | |
| 33 | +<A HREF="manual.html#captures">captures</A><BR> | |
| 34 | +<A HREF="manual.html#ceil">ceil</A><BR> | |
| 35 | +<A HREF="manual.html#character class">character class</A><BR> | |
| 36 | +<A HREF="manual.html#chunk">chunk</A><BR> | |
| 37 | +<A HREF="manual.html#closing a file">closing a file</A><BR> | |
| 38 | +<A HREF="manual.html#Coercion">Coercion</A><BR> | |
| 39 | +<A HREF="manual.html#collectgarbage">collectgarbage</A><BR> | |
| 40 | +<A HREF="manual.html#Comments">Comments</A><BR> | |
| 41 | +<A HREF="manual.html#concatenation event">concatenation event</A><BR> | |
| 42 | +<A HREF="manual.html#concatenation">concatenation</A><BR> | |
| 43 | +<A HREF="manual.html#condition expression">condition expression</A><BR> | |
| 44 | +<A HREF="manual.html#constructors">constructors</A><BR> | |
| 45 | +<A HREF="manual.html#cos">cos</A><BR> | |
| 46 | +<A HREF="manual.html#date">date</A><BR> | |
| 47 | +<A HREF="manual.html#debug pragma">debug pragma</A><BR> | |
| 48 | +<A HREF="manual.html#div event">div event</A><BR> | |
| 49 | +<A HREF="manual.html#dofile">dofile</A><BR> | |
| 50 | +<A HREF="manual.html#dostring">dostring</A><BR> | |
| 51 | +<A HREF="manual.html#error method">error method</A><BR> | |
| 52 | +<A HREF="manual.html#error">error</A><BR> | |
| 53 | +<A HREF="manual.html#event">event</A><BR> | |
| 54 | +<A HREF="manual.html#execute">execute</A><BR> | |
| 55 | +<A HREF="manual.html#exit">exit</A><BR> | |
| 56 | +<A HREF="manual.html#exponentiation">exponentiation</A><BR> | |
| 57 | +<A HREF="manual.html#Expressions">Expressions</A><BR> | |
| 58 | +<A HREF="manual.html#file handles">file handles</A><BR> | |
| 59 | +<A HREF="manual.html#floor">floor</A><BR> | |
| 60 | +<A HREF="manual.html#format">format</A><BR> | |
| 61 | +<A HREF="manual.html#function call">function call</A><BR> | |
| 62 | +<A HREF="manual.html#Function Definitions">Function Definitions</A><BR> | |
| 63 | +<A HREF="manual.html#function event">function event</A><BR> | |
| 64 | +<A HREF="manual.html#function">function</A><BR> | |
| 65 | +<A HREF="manual.html#gc event">gc event</A><BR> | |
| 66 | +<A HREF="manual.html#ge event">ge event</A><BR> | |
| 67 | +<A HREF="manual.html#getenv">getenv</A><BR> | |
| 68 | +<A HREF="manual.html#getglobal event">getglobal event</A><BR> | |
| 69 | +<A HREF="manual.html#getglobal">getglobal</A><BR> | |
| 70 | +<A HREF="manual.html#gettable event">gettable event</A><BR> | |
| 71 | +<A HREF="manual.html#gettagmethod">gettagmethod</A><BR> | |
| 72 | +<A HREF="manual.html#gettagmethod">gettagmethod</A><BR> | |
| 73 | +<A HREF="manual.html#global environment">global environment</A><BR> | |
| 74 | +<A HREF="manual.html#Global variables">Global variables</A><BR> | |
| 75 | +<A HREF="manual.html#gsub">gsub</A><BR> | |
| 76 | +<A HREF="manual.html#gt event">gt event</A><BR> | |
| 77 | +<A HREF="manual.html#Identifiers">Identifiers</A><BR> | |
| 78 | +<A HREF="manual.html#if-then-else">if-then-else</A><BR> | |
| 79 | +<A HREF="manual.html#index event">index event</A><BR> | |
| 80 | +<A HREF="manual.html#_INPUT">_INPUT</A><BR> | |
| 81 | +<A HREF="manual.html#le event">le event</A><BR> | |
| 82 | +<A HREF="manual.html#Literal strings">Literal strings</A><BR> | |
| 83 | +<A HREF="manual.html#Local variables">Local variables</A><BR> | |
| 84 | +<A HREF="manual.html#log10">log10</A><BR> | |
| 85 | +<A HREF="manual.html#log">log</A><BR> | |
| 86 | +<A HREF="manual.html#logical operators">logical operators</A><BR> | |
| 87 | +<A HREF="manual.html#lt event">lt event</A><BR> | |
| 88 | +<A HREF="manual.html#Lua Stand-alone">Lua Stand-alone</A><BR> | |
| 89 | +<A HREF="manual.html#lua2C">lua2C</A><BR> | |
| 90 | +<A HREF="manual.html#LUA_ANYTAG">LUA_ANYTAG</A><BR> | |
| 91 | +<A HREF="manual.html#luac">luac</A><BR> | |
| 92 | +<A HREF="manual.html#luac">luac</A><BR> | |
| 93 | +<A HREF="manual.html#lua_callfunction">lua_callfunction</A><BR> | |
| 94 | +<A HREF="manual.html#lua_CFunction">lua_CFunction</A><BR> | |
| 95 | +<A HREF="manual.html#lua_collectgarbage">lua_collectgarbage</A><BR> | |
| 96 | +<A HREF="manual.html#lua_createtable">lua_createtable</A><BR> | |
| 97 | +<A HREF="manual.html#lua_dofile">lua_dofile</A><BR> | |
| 98 | +<A HREF="manual.html#lua_dostring">lua_dostring</A><BR> | |
| 99 | +<A HREF="manual.html#lua_error">lua_error</A><BR> | |
| 100 | +<A HREF="manual.html#lua_getcfunction">lua_getcfunction</A><BR> | |
| 101 | +<A HREF="manual.html#lua_getglobal">lua_getglobal</A><BR> | |
| 102 | +<A HREF="manual.html#lua_getnumber">lua_getnumber</A><BR> | |
| 103 | +<A HREF="manual.html#lua_getparam">lua_getparam</A><BR> | |
| 104 | +<A HREF="manual.html#lua_getref">lua_getref</A><BR> | |
| 105 | +<A HREF="manual.html#lua_getresult">lua_getresult</A><BR> | |
| 106 | +<A HREF="manual.html#lua_getstring">lua_getstring</A><BR> | |
| 107 | +<A HREF="manual.html#lua_gettable">lua_gettable</A><BR> | |
| 108 | +<A HREF="manual.html#lua_gettagmethod">lua_gettagmethod</A><BR> | |
| 109 | +<A HREF="manual.html#lua_getuserdata">lua_getuserdata</A><BR> | |
| 110 | +<A HREF="manual.html#lua_iscfunction">lua_iscfunction</A><BR> | |
| 111 | +<A HREF="manual.html#lua_isfunction">lua_isfunction</A><BR> | |
| 112 | +<A HREF="manual.html#lua_isnil">lua_isnil</A><BR> | |
| 113 | +<A HREF="manual.html#lua_isnumber">lua_isnumber</A><BR> | |
| 114 | +<A HREF="manual.html#lua_isstring">lua_isstring</A><BR> | |
| 115 | +<A HREF="manual.html#lua_istable">lua_istable</A><BR> | |
| 116 | +<A HREF="manual.html#lua_isuserdata">lua_isuserdata</A><BR> | |
| 117 | +<A HREF="manual.html#lua_lua2C">lua_lua2C</A><BR> | |
| 118 | +<A HREF="manual.html#lua_newtag">lua_newtag</A><BR> | |
| 119 | +<A HREF="manual.html#LUA_NOOBJECT">LUA_NOOBJECT</A><BR> | |
| 120 | +<A HREF="manual.html#lua_Object">lua_Object</A><BR> | |
| 121 | +<A HREF="manual.html#lua_pop">lua_pop</A><BR> | |
| 122 | +<A HREF="manual.html#lua_pushcfunction">lua_pushcfunction</A><BR> | |
| 123 | +<A HREF="manual.html#lua_pushnil">lua_pushnil</A><BR> | |
| 124 | +<A HREF="manual.html#lua_pushnumber">lua_pushnumber</A><BR> | |
| 125 | +<A HREF="manual.html#lua_pushobject">lua_pushobject</A><BR> | |
| 126 | +<A HREF="manual.html#lua_pushstring">lua_pushstring</A><BR> | |
| 127 | +<A HREF="manual.html#lua_pushuserdata">lua_pushuserdata</A><BR> | |
| 128 | +<A HREF="manual.html#lua_pushusertag">lua_pushusertag</A><BR> | |
| 129 | +<A HREF="manual.html#lua_rawgetglobal">lua_rawgetglobal</A><BR> | |
| 130 | +<A HREF="manual.html#lua_rawgetglobal">lua_rawgetglobal</A><BR> | |
| 131 | +<A HREF="manual.html#lua_rawgetglobal">lua_rawgetglobal</A><BR> | |
| 132 | +<A HREF="manual.html#lua_rawsettable">lua_rawsettable</A><BR> | |
| 133 | +<A HREF="manual.html#lua_ref">lua_ref</A><BR> | |
| 134 | +<A HREF="manual.html#lua_register">lua_register</A><BR> | |
| 135 | +<A HREF="manual.html#lua_seterrormethod">lua_seterrormethod</A><BR> | |
| 136 | +<A HREF="manual.html#lua_setglobal">lua_setglobal</A><BR> | |
| 137 | +<A HREF="manual.html#lua_settable">lua_settable</A><BR> | |
| 138 | +<A HREF="manual.html#lua_settag">lua_settag</A><BR> | |
| 139 | +<A HREF="manual.html#lua_settagmethod">lua_settagmethod</A><BR> | |
| 140 | +<A HREF="manual.html#lua_tag">lua_tag</A><BR> | |
| 141 | +<A HREF="manual.html#lua_unref">lua_unref</A><BR> | |
| 142 | +<A HREF="manual.html#max">max</A><BR> | |
| 143 | +<A HREF="manual.html#methods">methods</A><BR> | |
| 144 | +<A HREF="manual.html#min">min</A><BR> | |
| 145 | +<A HREF="manual.html#mod">mod</A><BR> | |
| 146 | +<A HREF="manual.html#mul event">mul event</A><BR> | |
| 147 | +<A HREF="manual.html#multiple assignment">multiple assignment</A><BR> | |
| 148 | +<A HREF="manual.html#newtag">newtag</A><BR> | |
| 149 | +<A HREF="manual.html#next">next</A><BR> | |
| 150 | +<A HREF="manual.html#nextvar">nextvar</A><BR> | |
| 151 | +<A HREF="manual.html#nil">nil</A><BR> | |
| 152 | +<A HREF="manual.html#not">not</A><BR> | |
| 153 | +<A HREF="manual.html#number">number</A><BR> | |
| 154 | +<A HREF="manual.html#Numerical constants">Numerical constants</A><BR> | |
| 155 | +<A HREF="manual.html#Operator precedence">Operator precedence</A><BR> | |
| 156 | +<A HREF="manual.html#or">or</A><BR> | |
| 157 | +<A HREF="manual.html#_OUTPUT">_OUTPUT</A><BR> | |
| 158 | +<A HREF="manual.html#packed results">packed results</A><BR> | |
| 159 | +<A HREF="manual.html#pattern item">pattern item</A><BR> | |
| 160 | +<A HREF="manual.html#pattern">pattern</A><BR> | |
| 161 | +<A HREF="manual.html#piped input">piped input</A><BR> | |
| 162 | +<A HREF="manual.html#piped output">piped output</A><BR> | |
| 163 | +<A HREF="manual.html#popen">popen</A><BR> | |
| 164 | +<A HREF="manual.html#popen">popen</A><BR> | |
| 165 | +<A HREF="manual.html#pow event">pow event</A><BR> | |
| 166 | +<A HREF="manual.html#pre-compilation">pre-compilation</A><BR> | |
| 167 | +<A HREF="manual.html#predefined functions">predefined functions</A><BR> | |
| 168 | +<A HREF="manual.html#Pre-processor">Pre-processor</A><BR> | |
| 169 | +<A HREF="manual.html#print">print</A><BR> | |
| 170 | +<A HREF="manual.html#random">random</A><BR> | |
| 171 | +<A HREF="manual.html#randomseed">randomseed</A><BR> | |
| 172 | +<A HREF="manual.html#rawgetglobal">rawgetglobal</A><BR> | |
| 173 | +<A HREF="manual.html#rawgettable">rawgettable</A><BR> | |
| 174 | +<A HREF="manual.html#rawsetglobal">rawsetglobal</A><BR> | |
| 175 | +<A HREF="manual.html#rawsettable">rawsettable</A><BR> | |
| 176 | +<A HREF="manual.html#read pattern">read pattern</A><BR> | |
| 177 | +<A HREF="manual.html#read">read</A><BR> | |
| 178 | +<A HREF="manual.html#readfrom">readfrom</A><BR> | |
| 179 | +<A HREF="manual.html#records">records</A><BR> | |
| 180 | +<A HREF="manual.html#reference">reference</A><BR> | |
| 181 | +<A HREF="manual.html#reflexivity">reflexivity</A><BR> | |
| 182 | +<A HREF="manual.html#relational operators">relational operators</A><BR> | |
| 183 | +<A HREF="manual.html#remove">remove</A><BR> | |
| 184 | +<A HREF="manual.html#rename">rename</A><BR> | |
| 185 | +<A HREF="manual.html#repeat-until">repeat-until</A><BR> | |
| 186 | +<A HREF="manual.html#reserved words">reserved words</A><BR> | |
| 187 | +<A HREF="manual.html#return statement">return statement</A><BR> | |
| 188 | +<A HREF="manual.html#return">return</A><BR> | |
| 189 | +<A HREF="manual.html#self">self</A><BR> | |
| 190 | +<A HREF="manual.html#setglobal event">setglobal event</A><BR> | |
| 191 | +<A HREF="manual.html#setglobal">setglobal</A><BR> | |
| 192 | +<A HREF="manual.html#settable event">settable event</A><BR> | |
| 193 | +<A HREF="manual.html#settag">settag</A><BR> | |
| 194 | +<A HREF="manual.html#settagmethod">settagmethod</A><BR> | |
| 195 | +<A HREF="manual.html#settagmethod">settagmethod</A><BR> | |
| 196 | +<A HREF="manual.html#short-cut evaluation">short-cut evaluation</A><BR> | |
| 197 | +<A HREF="manual.html#Simple Expressions">Simple Expressions</A><BR> | |
| 198 | +<A HREF="manual.html#sin">sin</A><BR> | |
| 199 | +<A HREF="manual.html#skips">skips</A><BR> | |
| 200 | +<A HREF="manual.html#sqrt">sqrt</A><BR> | |
| 201 | +<A HREF="manual.html#statements">statements</A><BR> | |
| 202 | +<A HREF="manual.html#_STDERR">_STDERR</A><BR> | |
| 203 | +<A HREF="manual.html#_STDIN">_STDIN</A><BR> | |
| 204 | +<A HREF="manual.html#_STDOUT">_STDOUT</A><BR> | |
| 205 | +<A HREF="manual.html#strfind">strfind</A><BR> | |
| 206 | +<A HREF="manual.html#string">string</A><BR> | |
| 207 | +<A HREF="manual.html#strlen">strlen</A><BR> | |
| 208 | +<A HREF="manual.html#strlower">strlower</A><BR> | |
| 209 | +<A HREF="manual.html#strrep">strrep</A><BR> | |
| 210 | +<A HREF="manual.html#strsub">strsub</A><BR> | |
| 211 | +<A HREF="manual.html#strupper">strupper</A><BR> | |
| 212 | +<A HREF="manual.html#sub event">sub event</A><BR> | |
| 213 | +<A HREF="manual.html#table">table</A><BR> | |
| 214 | +<A HREF="manual.html#Tag Methods">Tag Methods</A><BR> | |
| 215 | +<A HREF="manual.html#tag">tag</A><BR> | |
| 216 | +<A HREF="manual.html#tag">tag</A><BR> | |
| 217 | +<A HREF="manual.html#tan">tan</A><BR> | |
| 218 | +<A HREF="manual.html#tmpname">tmpname</A><BR> | |
| 219 | +<A HREF="manual.html#tokens">tokens</A><BR> | |
| 220 | +<A HREF="manual.html#tonumber">tonumber</A><BR> | |
| 221 | +<A HREF="manual.html#tostring">tostring</A><BR> | |
| 222 | +<A HREF="manual.html#type">type</A><BR> | |
| 223 | +<A HREF="manual.html#Types and Tags">Types and Tags</A><BR> | |
| 224 | +<A HREF="manual.html#unm event">unm event</A><BR> | |
| 225 | +<A HREF="manual.html#userdata">userdata</A><BR> | |
| 226 | +<A HREF="manual.html#vararg">vararg</A><BR> | |
| 227 | +<A HREF="manual.html#version 1.1">version 1.1</A><BR> | |
| 228 | +<A HREF="manual.html#version 2.1">version 2.1</A><BR> | |
| 229 | +<A HREF="manual.html#version 2.2">version 2.2</A><BR> | |
| 230 | +<A HREF="manual.html#version 2.4">version 2.4</A><BR> | |
| 231 | +<A HREF="manual.html#version 2.5">version 2.5</A><BR> | |
| 232 | +<A HREF="manual.html#while-do">while-do</A><BR> | |
| 233 | +<A HREF="manual.html#write">write</A><BR> | |
| 234 | +<A HREF="manual.html#writeto">writeto</A><BR> | |
| 235 | + | |
| 236 | +<HR> | |
| 237 | +Last update: | |
| 238 | +Tue Jul 1 07:55:45 EST 1997 | |
| 239 | +by <A HREF="http://www.tecgraf.puc-rio.br/~lhf/">lhf</A>. | |
| 240 | +</BODY> | |
| 241 | +</HTML> | |
| @@ -0,0 +1,85 @@ | ||
| 1 | +<HTML> | |
| 2 | +<HEAD> | |
| 3 | +<TITLE>Lua 3.0 Reference Manual - Index</TITLE> | |
| 4 | +</HEAD> | |
| 5 | + | |
| 6 | +<BODY> | |
| 7 | + | |
| 8 | +<H1>Reference Manual of the Programming Language Lua 3.0</H1> | |
| 9 | +<P> | |
| 10 | +<A HREF="http://www.inf.puc-rio.br/~roberto/">Roberto Ierusalimschy</A>, | |
| 11 | +<A HREF="http://www2.lncc.br/~lhf/">Luiz Henrique de Figueiredo</A>, | |
| 12 | +<A HREF="http://www.graphics.cornell.edu/~celes/">Waldemar Celes</A> | |
| 13 | +<BR> | |
| 14 | +<A HREF="mailto:lua@tecgraf.puc-rio.br">lua@tecgraf.puc-rio.br</A><BR> | |
| 15 | +<A HREF="http://www.tecgraf.puc-rio.br">TeCGraf</A>, | |
| 16 | +<A HREF="http://www.inf.puc-rio.br">Computer Science Department</A>, | |
| 17 | +<A HREF="http://www.puc-rio.br">PUC-Rio</A> | |
| 18 | +<P> | |
| 19 | + | |
| 20 | +<HR> | |
| 21 | +<B>Abstract.</B> | |
| 22 | +Lua is an extension programming language designed to be used | |
| 23 | +as a configuration language for any program that needs one. | |
| 24 | +This document describes version 3.0 of the Lua programming language and | |
| 25 | +the API that allows interaction between Lua programs and their host C programs. | |
| 26 | +<HR> | |
| 27 | + | |
| 28 | +<B>Sum�rio.</B> | |
| 29 | +Lua � uma linguagem de extens�o projetada para ser usada como | |
| 30 | +linguagem de configura��o em qualquer programa que precise de uma. | |
| 31 | +Este documento descreve a vers�o 3.0 da linguagem de | |
| 32 | +programa��o Lua e a Interface de Programa��o (API) que permite | |
| 33 | +a intera��o entre programas Lua e programas C hospedeiros. | |
| 34 | +<HR> | |
| 35 | +<A NAME="index"></A> | |
| 36 | +<UL> | |
| 37 | +<LI><A HREF="manual.html#1.">1 - Introduction</A> | |
| 38 | +<LI><A HREF="manual.html#2.">2 - Environment and Chunks</A> | |
| 39 | +<LI><A HREF="manual.html#3.">3 - Types and Tags</A> | |
| 40 | +<LI><A HREF="manual.html#4.">4 - The Language</A> | |
| 41 | + <UL> | |
| 42 | + <LI><A HREF="manual.html#4.1">4.1 - Lexical Conventions</A> | |
| 43 | + <LI><A HREF="manual.html#4.2">4.2 - The Pre-processor</A> | |
| 44 | + <LI><A HREF="manual.html#4.3">4.3 - Coercion</A> | |
| 45 | + <LI><A HREF="manual.html#4.4">4.4 - Adjustment</A> | |
| 46 | + <LI><A HREF="manual.html#4.5">4.5 - Statements</A> | |
| 47 | + <LI><A HREF="manual.html#4.6">4.6 - Expressions</A> | |
| 48 | + <LI><A HREF="manual.html#4.7">4.7 - Function Definitions</A> | |
| 49 | + <LI><A HREF="manual.html#4.8">4.8 - Tag Methods</A> | |
| 50 | + <LI><A HREF="manual.html#4.9">4.9 - Error Handling</A> | |
| 51 | + </UL> | |
| 52 | +<LI><A HREF="manual.html#5.">5 - The Application Program Interface</A> | |
| 53 | + <UL> | |
| 54 | + <LI><A HREF="manual.html#5.1">5.1 - Exchanging Values between C and Lua</A> | |
| 55 | + <LI><A HREF="manual.html#5.2">5.2 - Executing Lua Code</A> | |
| 56 | + <LI><A HREF="manual.html#5.3">5.3 - Manipulating Lua Objects</A> | |
| 57 | + <LI><A HREF="manual.html#5.4">5.4 - Calling Lua Functions</A> | |
| 58 | + <LI><A HREF="manual.html#5.5">5.5 - C Functions</A> | |
| 59 | + <LI><A HREF="manual.html#5.6">5.6 - References to Lua Objects</A> | |
| 60 | + </UL> | |
| 61 | +<LI><A HREF="manual.html#6.">6 - Predefined Functions and Libraries</A> | |
| 62 | + <UL> | |
| 63 | + <LI><A HREF="manual.html#6.1">6.1 - Predefined Functions</A> | |
| 64 | + <LI><A HREF="manual.html#6.2">6.2 - String Manipulation</A> | |
| 65 | + <LI><A HREF="manual.html#6.3">6.3 - Mathematical Functions</A> | |
| 66 | + <LI><A HREF="manual.html#6.4">6.4 - I/O Facilities</A> | |
| 67 | + </UL> | |
| 68 | +<LI><A HREF="manual.html#7.">7 - The Debugger Interface</A> | |
| 69 | + <UL> | |
| 70 | + <LI><A HREF="manual.html#7.1">7.1 - Stack and Function Information</A> | |
| 71 | + <LI><A HREF="manual.html#7.2">7.2 - Manipulating Local Variables</A> | |
| 72 | + <LI><A HREF="manual.html#7.3">7.3 - Hooks</A> | |
| 73 | + </UL> | |
| 74 | +<LI><A HREF="manual.html#8.">8 - Lua Stand-alone</A> | |
| 75 | +<LI><A HREF="manual.html#Acknowledgments">Acknowledgments</A> | |
| 76 | +<LI><A HREF="manual.html#Incompatibilities">Incompatibilities with Previous Versions</A> | |
| 77 | +<LI><A HREF="idx.html">Index</A> | |
| 78 | +</UL> | |
| 79 | + | |
| 80 | +<HR> | |
| 81 | +Last update: | |
| 82 | +Tue Jul 1 07:55:45 EST 1997 | |
| 83 | +by <A HREF="http://www.tecgraf.puc-rio.br/~lhf/">lhf</A>. | |
| 84 | +</BODY> | |
| 85 | +</HTML> | |
| @@ -0,0 +1,88 @@ | ||
| 1 | +<!-- manual page source format generated by RosettaMan, --> | |
| 2 | +<!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z --> | |
| 3 | +<HTML> | |
| 4 | +<HEADER> | |
| 5 | +<TITLE>luac manual page</TITLE> | |
| 6 | +</HEADER> | |
| 7 | +<BODY> | |
| 8 | +<A HREF="#toc">Table of Contents</A><P> | |
| 9 | + | |
| 10 | +<A NAME="sect0" HREF="#toc0"><H2>NAME</H2></A> | |
| 11 | +luac - Lua compiler<P> | |
| 12 | + | |
| 13 | +<A NAME="sect1" HREF="#toc1"><H2>SYNOPSIS</H2></A> | |
| 14 | +luac [ -c | -u ] [ -d ] [ -l ] [ -p ] [ -q ] [ -v ] [ -o <I>outputfile</I> ] <I>sourcefile</I> ...<P> | |
| 15 | + | |
| 16 | +<A NAME="sect2" HREF="#toc2"><H2>DESCRIPTION</H2></A> | |
| 17 | +luac is the Lua compiler. It translates programs written in the Lua programming language into binary files that can be loaded and executed with lua_dofile in C or dofile in Lua.<P> | |
| 18 | +luac produces a single output file containing the bytecode for all named source files. By default, the output file is named luac.out, but you can change this with the -o option.<P> | |
| 19 | +You can use "-" to indicate stdin as a source file.<P> | |
| 20 | +luac can also load and list binary files.<P> | |
| 21 | + | |
| 22 | +<A NAME="sect3" HREF="#toc3"><H2>OPTIONS</H2></A> | |
| 23 | +<dl> | |
| 24 | +<dt>-c <dd> compile (this is the default).<P> | |
| 25 | +</dd> | |
| 26 | +</dl> | |
| 27 | +<dl> | |
| 28 | +<dt>-u <dd> undump.<P> | |
| 29 | +</dd> | |
| 30 | +</dl> | |
| 31 | +<dl> | |
| 32 | +<dt>-d <dd> turns debugging on.<P> | |
| 33 | +</dd> | |
| 34 | +</dl> | |
| 35 | +<dl> | |
| 36 | +<dt>-l <dd> produces a listing of the compiled bytecode for Lua's virtual machine. This is the default when undumping.<P> | |
| 37 | +</dd> | |
| 38 | +</dl> | |
| 39 | +<dl> | |
| 40 | +<dt>-p <dd> parses sources files but does not generate any output file.<P> | |
| 41 | +</dd> | |
| 42 | +</dl> | |
| 43 | +<dl> | |
| 44 | +<dt>-q <dd> quiet; procudes no listing. This is the default when compiling.<P> | |
| 45 | +</dd> | |
| 46 | +</dl> | |
| 47 | +<dl> | |
| 48 | +<dt>-v <dd> prints version information.<P> | |
| 49 | +</dd> | |
| 50 | +</dl> | |
| 51 | +<dl> | |
| 52 | +<dt>-o <I>outputfile</I><dd> Name the output file <I>output</I>, instead of the default luac.out. The output file cannot be a source file.<P> | |
| 53 | +</dd> | |
| 54 | +</dl> | |
| 55 | + | |
| 56 | +<A NAME="sect4" HREF="#toc4"><H2>FILES</H2></A> | |
| 57 | +<dl> | |
| 58 | +<dt>luac.out <dd> default output file<P> | |
| 59 | +</dd> | |
| 60 | +</dl> | |
| 61 | + | |
| 62 | +<A NAME="sect5" HREF="#toc5"><H2>SEE ALSO</H2></A> | |
| 63 | +<A HREF="http://localhost/cgi-bin/man2html?lua?1">lua(1)</A><P> | |
| 64 | +<I>Reference</I> <I>Manual</I> <I>of</I> <I>the</I> <I>Programming</I> <I>Language</I> <I>Lua</I><P> | |
| 65 | + | |
| 66 | +<A NAME="sect6" HREF="#toc6"><H2>DIAGNOSTICS</H2></A> | |
| 67 | +Error messages should be self explanatory.<P> | |
| 68 | + | |
| 69 | +<A NAME="sect7" HREF="#toc7"><H2>BUGS</H2></A> | |
| 70 | +Inherits any bugs from Lua, but Lua has no bugs...<P> | |
| 71 | + | |
| 72 | +<A NAME="sect8" HREF="#toc8"><H2>AUTHORS</H2></A> | |
| 73 | +W. Celes, R. Ierusalimschy & L. H. de Figueiredo (lua@tecgraf.puc-rio.br)<P> | |
| 74 | + | |
| 75 | +<HR><P> | |
| 76 | +<A NAME="toc"><B>Table of Contents</B></A><P> | |
| 77 | +<UL> | |
| 78 | +<LI><A NAME="toc0" HREF="#sect0">NAME</A></LI> | |
| 79 | +<LI><A NAME="toc1" HREF="#sect1">SYNOPSIS</A></LI> | |
| 80 | +<LI><A NAME="toc2" HREF="#sect2">DESCRIPTION</A></LI> | |
| 81 | +<LI><A NAME="toc3" HREF="#sect3">OPTIONS</A></LI> | |
| 82 | +<LI><A NAME="toc4" HREF="#sect4">FILES</A></LI> | |
| 83 | +<LI><A NAME="toc5" HREF="#sect5">SEE ALSO</A></LI> | |
| 84 | +<LI><A NAME="toc6" HREF="#sect6">DIAGNOSTICS</A></LI> | |
| 85 | +<LI><A NAME="toc7" HREF="#sect7">BUGS</A></LI> | |
| 86 | +<LI><A NAME="toc8" HREF="#sect8">AUTHORS</A></LI> | |
| 87 | +</UL> | |
| 88 | +</BODY></HTML> | |
| @@ -1,75 +0,0 @@ | ||
| 1 | −.\" $Id: luac.man,v 1.3 1996/03/28 20:24:55 lhf Exp $ | |
| 2 | −.TH LUAC 1 "12 March 1996" | |
| 3 | −.SH NAME | |
| 4 | −luac \- Lua compiler | |
| 5 | −.SH SYNOPSIS | |
| 6 | −.B luac | |
| 7 | −[ | |
| 8 | −.B \-dlpv | |
| 9 | −] | |
| 10 | −[ | |
| 11 | −.B \-o | |
| 12 | −.I outputfile | |
| 13 | −] | |
| 14 | −.I sourcefile | |
| 15 | −\&.\|.\|. | |
| 16 | −.SH DESCRIPTION | |
| 17 | −.B luac | |
| 18 | −is the Lua compiler. | |
| 19 | −It translates programs written in the Lua programming language | |
| 20 | −into binary files that can be loaded and executed with | |
| 21 | −.B lua_dofile | |
| 22 | −in C or | |
| 23 | −.B dofile | |
| 24 | −in Lua. | |
| 25 | − | |
| 26 | −.BR luac | |
| 27 | −produces a single output file containing the bytecode | |
| 28 | −for all named source files. | |
| 29 | −By default, | |
| 30 | −the output file is named | |
| 31 | −.BR luac.out , | |
| 32 | −but you can change this with the | |
| 33 | −.B \-o | |
| 34 | −option. | |
| 35 | − | |
| 36 | −You can use "-" to indicate stdin as a source file. | |
| 37 | −.SH OPTIONS | |
| 38 | −.LP | |
| 39 | −.TP 1i | |
| 40 | −.B \-d | |
| 41 | −turns debugging on. | |
| 42 | −.TP | |
| 43 | −.B \-l | |
| 44 | −produces a listing of the compiled bytecode for Lua's virtual machine. | |
| 45 | −.TP | |
| 46 | −.B \-p | |
| 47 | −parses sources files but does not generate any output file. | |
| 48 | −.TP | |
| 49 | −.B \-v | |
| 50 | −prints version information. | |
| 51 | −.TP | |
| 52 | −.BI \-o " outputfile" | |
| 53 | −Name the output file | |
| 54 | −.IR output , | |
| 55 | −instead of the default | |
| 56 | −.BR luac.out . | |
| 57 | −The output file cannot be a source file. | |
| 58 | −.SH FILES | |
| 59 | −.PD 0 | |
| 60 | −.TP 20 | |
| 61 | −.B luac.out | |
| 62 | −default output file | |
| 63 | −.PD | |
| 64 | −.SH "SEE ALSO" | |
| 65 | −.BR lua (1) | |
| 66 | −.LP | |
| 67 | −.IR "Reference Manual of the Programming Language Lua" | |
| 68 | −.SH DIAGNOSTICS | |
| 69 | −Error messages should be self explanatory. | |
| 70 | −.SH BUGS | |
| 71 | −Inherits any bugs from Lua, | |
| 72 | −but Lua has no bugs... | |
| 73 | −.SH AUTHORS | |
| 74 | −W. Celes, R. Ierusalimschy & L. H. de Figueiredo | |
| 75 | −(lua@icad.puc-rio.br) | |
| @@ -1,246 +0,0 @@ | ||
| 1 | −%!PS-Adobe-3.0 | |
| 2 | −%%Creator: groff version 1.09 | |
| 3 | −%%CreationDate: Fri Mar 29 10:45:53 1996 | |
| 4 | −%%DocumentNeededResources: font Times-Roman | |
| 5 | −%%+ font Times-Bold | |
| 6 | −%%+ font Times-Italic | |
| 7 | −%%DocumentSuppliedResources: procset grops 1.09 0 | |
| 8 | −%%Pages: 1 | |
| 9 | −%%PageOrder: Ascend | |
| 10 | −%%Orientation: Portrait | |
| 11 | −%%EndComments | |
| 12 | −%%BeginProlog | |
| 13 | −%%BeginResource: procset grops 1.09 0 | |
| 14 | −/setpacking where{ | |
| 15 | −pop | |
| 16 | −currentpacking | |
| 17 | −true setpacking | |
| 18 | −}if | |
| 19 | −/grops 120 dict dup begin | |
| 20 | −/SC 32 def | |
| 21 | −/A/show load def | |
| 22 | −/B{0 SC 3 -1 roll widthshow}bind def | |
| 23 | −/C{0 exch ashow}bind def | |
| 24 | −/D{0 exch 0 SC 5 2 roll awidthshow}bind def | |
| 25 | −/E{0 rmoveto show}bind def | |
| 26 | −/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def | |
| 27 | −/G{0 rmoveto 0 exch ashow}bind def | |
| 28 | −/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def | |
| 29 | −/I{0 exch rmoveto show}bind def | |
| 30 | −/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def | |
| 31 | −/K{0 exch rmoveto 0 exch ashow}bind def | |
| 32 | −/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def | |
| 33 | −/M{rmoveto show}bind def | |
| 34 | −/N{rmoveto 0 SC 3 -1 roll widthshow}bind def | |
| 35 | −/O{rmoveto 0 exch ashow}bind def | |
| 36 | −/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def | |
| 37 | −/Q{moveto show}bind def | |
| 38 | −/R{moveto 0 SC 3 -1 roll widthshow}bind def | |
| 39 | −/S{moveto 0 exch ashow}bind def | |
| 40 | −/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def | |
| 41 | −/SF{ | |
| 42 | −findfont exch | |
| 43 | −[exch dup 0 exch 0 exch neg 0 0]makefont | |
| 44 | −dup setfont | |
| 45 | −[exch/setfont cvx]cvx bind def | |
| 46 | −}bind def | |
| 47 | −/MF{ | |
| 48 | −findfont | |
| 49 | −[5 2 roll | |
| 50 | −0 3 1 roll | |
| 51 | −neg 0 0]makefont | |
| 52 | −dup setfont | |
| 53 | −[exch/setfont cvx]cvx bind def | |
| 54 | −}bind def | |
| 55 | −/level0 0 def | |
| 56 | −/RES 0 def | |
| 57 | −/PL 0 def | |
| 58 | −/LS 0 def | |
| 59 | −/PLG{ | |
| 60 | −gsave newpath clippath pathbbox grestore | |
| 61 | −exch pop add exch pop | |
| 62 | −}bind def | |
| 63 | −/BP{ | |
| 64 | −/level0 save def | |
| 65 | −1 setlinecap | |
| 66 | −1 setlinejoin | |
| 67 | −72 RES div dup scale | |
| 68 | −LS{ | |
| 69 | −90 rotate | |
| 70 | −}{ | |
| 71 | −0 PL translate | |
| 72 | −}ifelse | |
| 73 | −1 -1 scale | |
| 74 | −}bind def | |
| 75 | −/EP{ | |
| 76 | −level0 restore | |
| 77 | −showpage | |
| 78 | −}bind def | |
| 79 | −/DA{ | |
| 80 | −newpath arcn stroke | |
| 81 | −}bind def | |
| 82 | −/SN{ | |
| 83 | −transform | |
| 84 | −.25 sub exch .25 sub exch | |
| 85 | −round .25 add exch round .25 add exch | |
| 86 | −itransform | |
| 87 | −}bind def | |
| 88 | −/DL{ | |
| 89 | −SN | |
| 90 | −moveto | |
| 91 | −SN | |
| 92 | −lineto stroke | |
| 93 | −}bind def | |
| 94 | −/DC{ | |
| 95 | −newpath 0 360 arc closepath | |
| 96 | −}bind def | |
| 97 | −/TM matrix def | |
| 98 | −/DE{ | |
| 99 | −TM currentmatrix pop | |
| 100 | −translate scale newpath 0 0 .5 0 360 arc closepath | |
| 101 | −TM setmatrix | |
| 102 | −}bind def | |
| 103 | −/RC/rcurveto load def | |
| 104 | −/RL/rlineto load def | |
| 105 | −/ST/stroke load def | |
| 106 | −/MT/moveto load def | |
| 107 | −/CL/closepath load def | |
| 108 | −/FL{ | |
| 109 | −currentgray exch setgray fill setgray | |
| 110 | −}bind def | |
| 111 | −/BL/fill load def | |
| 112 | −/LW/setlinewidth load def | |
| 113 | −/RE{ | |
| 114 | −findfont | |
| 115 | −dup maxlength 1 index/FontName known not{1 add}if dict begin | |
| 116 | −{ | |
| 117 | −1 index/FID ne{def}{ pop pop}ifelse | |
| 118 | −}forall | |
| 119 | −/Encoding exch def | |
| 120 | −dup/FontName exch def | |
| 121 | −currentdict end definefont pop | |
| 122 | −}bind def | |
| 123 | −/DEFS 0 def | |
| 124 | −/EBEGIN{ | |
| 125 | −moveto | |
| 126 | −DEFS begin | |
| 127 | −}bind def | |
| 128 | −/EEND/end load def | |
| 129 | −/CNT 0 def | |
| 130 | −/level1 0 def | |
| 131 | −/PBEGIN{ | |
| 132 | −/level1 save def | |
| 133 | −translate | |
| 134 | −div 3 1 roll div exch scale | |
| 135 | −neg exch neg exch translate | |
| 136 | −0 setgray | |
| 137 | −0 setlinecap | |
| 138 | −1 setlinewidth | |
| 139 | −0 setlinejoin | |
| 140 | −10 setmiterlimit | |
| 141 | −[] 0 setdash | |
| 142 | −/setstrokeadjust where{ | |
| 143 | −pop | |
| 144 | −false setstrokeadjust | |
| 145 | −}if | |
| 146 | −/setoverprint where{ | |
| 147 | −pop | |
| 148 | −false setoverprint | |
| 149 | −}if | |
| 150 | −newpath | |
| 151 | −/CNT countdictstack def | |
| 152 | −userdict begin | |
| 153 | −/showpage{} def | |
| 154 | −}bind def | |
| 155 | −/PEND{ | |
| 156 | −clear | |
| 157 | −countdictstack CNT sub{end}repeat | |
| 158 | −level1 restore | |
| 159 | −}bind def | |
| 160 | −end def | |
| 161 | −/setpacking where{ | |
| 162 | −pop | |
| 163 | −setpacking | |
| 164 | −}if | |
| 165 | −%%EndResource | |
| 166 | −%%IncludeResource: font Times-Roman | |
| 167 | −%%IncludeResource: font Times-Bold | |
| 168 | −%%IncludeResource: font Times-Italic | |
| 169 | −grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 | |
| 170 | −def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron | |
| 171 | −/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef | |
| 172 | −/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef | |
| 173 | −/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef | |
| 174 | −/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent | |
| 175 | −/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen | |
| 176 | −/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon | |
| 177 | −/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O | |
| 178 | −/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex | |
| 179 | −/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y | |
| 180 | −/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft | |
| 181 | −/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl | |
| 182 | −/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut | |
| 183 | −/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash | |
| 184 | −/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen | |
| 185 | −/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft | |
| 186 | −/logicalnot/minus/registered/macron/degree/plusminus/twosuperior | |
| 187 | −/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior | |
| 188 | −/ordmasculine/guilsinglright/onequarter/onehalf/threequarters | |
| 189 | −/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE | |
| 190 | −/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex | |
| 191 | −/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis | |
| 192 | −/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn | |
| 193 | −/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla | |
| 194 | −/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis | |
| 195 | −/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash | |
| 196 | −/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def | |
| 197 | −/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE | |
| 198 | −/Times-Roman@0 ENC0/Times-Roman RE | |
| 199 | −%%EndProlog | |
| 200 | −%%Page: 1 1 | |
| 201 | −%%BeginPageSetup | |
| 202 | −BP | |
| 203 | −%%EndPageSetup | |
| 204 | −/F0 10/Times-Roman@0 SF(LU)72 48 Q -.034 -.4(AC \( 1 \))-.4 H | |
| 205 | −(User Commands)157.852 E(LU)157.452 E -.034 -.4(AC \( 1 \))-.4 H/F1 9 | |
| 206 | −/Times-Bold@0 SF -.18(NA)72 96 S(ME).18 E F0(luac \255 Lua compiler)108 | |
| 207 | −108 Q F1(SYNOPSIS)72 124.8 Q/F2 10/Times-Bold@0 SF(luac)108 136.8 Q F0 | |
| 208 | −([)3.75 E F2(\255dlpv)3.75 E F0 3.75(][)3.75 G F2<ad6f>A/F3 10 | |
| 209 | −/Times-Italic@0 SF(output\214le)3.75 E F0(])3.75 E F3(sour)3.75 E | |
| 210 | −(ce\214le)-.37 E F0 1.666(...)3.75 G F1(DESCRIPTION)72 153.6 Q F2(luac) | |
| 211 | −108 165.6 Q F0 .371(is the Lua compiler)2.871 F 5.371(.I)-.55 G 2.871 | |
| 212 | −(tt)-5.371 G .37(ranslates programs written in the Lua programming lang\ | |
| 213 | −uage into binary \214les)-2.871 F(that can be loaded and e)108 177.6 Q | |
| 214 | −-.15(xe)-.15 G(cuted with).15 E F2(lua_do\214le)2.5 E F0(in C or)2.5 E | |
| 215 | −F2(do\214le)2.5 E F0(in Lua.)2.5 E F2(luac)108 201.6 Q F0 .159(produces\ | |
| 216 | − a single output \214le containing the bytecode for all named source \ | |
| 217 | −\214les.)2.658 F .159(By def)5.159 F .159(ault, the output)-.1 F | |
| 218 | −(\214le is named)108 213.6 Q F2(luac.out)2.5 E F0 2.5(,b)C | |
| 219 | −(ut you can change this with the)-2.7 E F2<ad6f>2.5 E F0(option.)2.5 E | |
| 220 | −-1.1(Yo)108 237.6 S 2.5(uc)1.1 G | |
| 221 | −(an use "-" to indicate stdin as a source \214le.)-2.5 E F1(OPTIONS)72 | |
| 222 | −254.4 Q F2<ad64>108 266.4 Q F0(turns deb)60.74 E(ugging on.)-.2 E F2 | |
| 223 | −<ad6c>108 283.2 Q F0 | |
| 224 | −(produces a listing of the compiled bytecode for Lua')63.52 E 2.5(sv) | |
| 225 | −-.55 G(irtual machine.)-2.5 E F2<ad70>108 300 Q F0 | |
| 226 | −(parses sources \214les b)60.74 E(ut does not generate an)-.2 E 2.5(yo) | |
| 227 | −-.15 G(utput \214le.)-2.5 E F2<ad76>108 316.8 Q F0(prints v)61.3 E | |
| 228 | −(ersion information.)-.15 E F2<ad6f>108 333.6 Q F3(output\214le)2.5 E F0 | |
| 229 | −.657(Name the output \214le)21.02 F F3(output)3.157 E F0 3.157(,i)C .657 | |
| 230 | −(nstead of the def)-3.157 F(ault)-.1 E F2(luac.out)3.157 E F0 5.657(.T)C | |
| 231 | −.656(he output \214le cannot be a)-5.657 F(source \214le.)180 345.6 Q F1 | |
| 232 | −(FILES)72 362.4 Q F2(luac.out)108 374.4 Q F0(def)65.83 E | |
| 233 | −(ault output \214le)-.1 E F1(SEE ALSO)72 391.2 Q F2(lua)108 403.2 Q F0 | |
| 234 | −(\(1\))A F3(Refer)108 420 Q(ence Manual of the Pr)-.37 E -.1(og)-.45 G | |
| 235 | −-.15(ra).1 G(mming Langua).15 E .2 -.1(ge L)-.1 H(ua).1 E F1(DIA)72 | |
| 236 | −436.8 Q(GNOSTICS)-.495 E F0(Error messages should be self e)108 448.8 Q | |
| 237 | −(xplanatory)-.15 E(.)-.65 E F1 -.09(BU)72 465.6 S(GS).09 E F0 | |
| 238 | −(Inherits an)108 477.6 Q 2.5(yb)-.15 G(ugs from Lua, b)-2.7 E | |
| 239 | −(ut Lua has no b)-.2 E(ugs...)-.2 E F1 -.45(AU)72 494.4 S(THORS).45 E F0 | |
| 240 | −1.84 -.92(W. C)108 506.4 T(eles, R. Ierusalimsch).92 E 2.5(y&L)-.05 G | |
| 241 | −2.5(.H)-2.5 G 2.5(.d)-2.5 G 2.5(eF)-2.5 G | |
| 242 | −(igueiredo \(lua@icad.puc-rio.br\))-2.5 E(29 March 1996)72 768 Q | |
| 243 | −(12 March 1996)142.35 E(1)198.45 E EP | |
| 244 | −%%Trailer | |
| 245 | −end | |
| 246 | −%%EOF | |
| @@ -1,66 +0,0 @@ | ||
| 1 | − | |
| 2 | − | |
| 3 | − | |
| 4 | −LUAC(1) User Commands LUAC(1) | |
| 5 | − | |
| 6 | − | |
| 7 | − | |
| 8 | −NAME | |
| 9 | − luac - Lua compiler | |
| 10 | − | |
| 11 | −SYNOPSIS | |
| 12 | − luac [ -dlpv ] [ -o outputfile ] sourcefile ... | |
| 13 | − | |
| 14 | −DESCRIPTION | |
| 15 | − luac is the Lua compiler. It translates programs written in | |
| 16 | − the Lua programming language into binary files that can be | |
| 17 | − loaded and executed with lua_dofile in C or dofile in Lua. | |
| 18 | − | |
| 19 | − luac produces a single output file containing the bytecode | |
| 20 | − for all named source files. By default, the output file is | |
| 21 | − named luac.out, but you can change this with the -o option. | |
| 22 | − | |
| 23 | − You can use "-" to indicate stdin as a source file. | |
| 24 | − | |
| 25 | −OPTIONS | |
| 26 | − -d turns debugging on. | |
| 27 | − | |
| 28 | − -l produces a listing of the compiled bytecode for | |
| 29 | − Lua's virtual machine. | |
| 30 | − | |
| 31 | − -p parses sources files but does not generate any | |
| 32 | − output file. | |
| 33 | − | |
| 34 | − -v prints version information. | |
| 35 | − | |
| 36 | − -o outputfile | |
| 37 | − Name the output file output, instead of the | |
| 38 | − default luac.out. The output file cannot be a | |
| 39 | − source file. | |
| 40 | − | |
| 41 | −FILES | |
| 42 | − luac.out default output file | |
| 43 | − | |
| 44 | −SEE ALSO | |
| 45 | − lua(1) | |
| 46 | − | |
| 47 | − Reference Manual of the Programming Language Lua | |
| 48 | − | |
| 49 | −DIAGNOSTICS | |
| 50 | − Error messages should be self explanatory. | |
| 51 | − | |
| 52 | −BUGS | |
| 53 | − Inherits any bugs from Lua, but Lua has no bugs... | |
| 54 | − | |
| 55 | −AUTHORS | |
| 56 | − W. Celes, R. Ierusalimschy & L. H. de Figueiredo | |
| 57 | − (lua@icad.puc-rio.br) | |
| 58 | − | |
| 59 | − | |
| 60 | − | |
| 61 | − | |
| 62 | − | |
| 63 | −Formatted 96/03/29 12 March 1996 1 | |
| 64 | − | |
| 65 | − | |
| 66 | − | |
| @@ -0,0 +1,2545 @@ | ||
| 1 | +<HEAD> | |
| 2 | +<TITLE>Lua 3.0 Reference Manual</TITLE> | |
| 3 | +</HEAD> | |
| 4 | +<BODY> | |
| 5 | +<h1>Lua 3.0 Reference Manual</h1> | |
| 6 | + | |
| 7 | +<!-- ====================================================================== --> | |
| 8 | +<HR> | |
| 9 | +<A NAME="1."></A> | |
| 10 | +<H1>1 - Introduction</H1> | |
| 11 | +<P> | |
| 12 | +Lua is an extension programming language designed to support | |
| 13 | +general procedural programming with data description | |
| 14 | +facilities. | |
| 15 | +It is intended to be used as a light-weight, but powerful, | |
| 16 | +configuration language for any program that needs one. | |
| 17 | +Lua has been designed and implemented by | |
| 18 | +W. Celes, | |
| 19 | +R. Ierusalimschy and | |
| 20 | +L. H. de Figueiredo. | |
| 21 | +<P> | |
| 22 | +Lua is implemented as a library, written in C. | |
| 23 | +Being an extension language, Lua has no notion of a ``main'' program: | |
| 24 | +it only works <EM>embedded</EM> in a host client, | |
| 25 | +called the <EM>embedding</EM> program. | |
| 26 | +This host program can invoke functions to execute a piece of | |
| 27 | +code in Lua, can write and read Lua variables, | |
| 28 | +and can register C functions to be called by Lua code. | |
| 29 | +Through the use of C functions, Lua can be augmented to cope with | |
| 30 | +a wide range of different domains, | |
| 31 | +thus creating customized programming languages sharing a syntactical framework. | |
| 32 | +<P> | |
| 33 | +Lua is free-distribution software, | |
| 34 | +and provided as usual with no guarantees, | |
| 35 | +as stated in the copyright notice in the front page of this manual. | |
| 36 | +The implementation described in this manual is available | |
| 37 | +at the following URL's: | |
| 38 | +<LISTING> | |
| 39 | + <A HREF="http://www.tecgraf.puc-rio.br/lua/">http://www.tecgraf.puc-rio.br/lua/</A> | |
| 40 | + <A HREF="ftp://ftp.tecgraf.puc-rio.br/pub/lua/lua.tar.gz">ftp://ftp.tecgraf.puc-rio.br/pub/lua/lua.tar.gz</A> | |
| 41 | +</LISTING> | |
| 42 | +<P> | |
| 43 | +<P> | |
| 44 | +<!-- ====================================================================== --> | |
| 45 | +<HR> | |
| 46 | +<A NAME="2."></A> | |
| 47 | +<H1>2 - Environment and Chunks</H1> | |
| 48 | +<P> | |
| 49 | +All statements in Lua are executed in a <A NAME="global environment"><EM>global environment</EM></A>. | |
| 50 | +This environment, which keeps all global variables and functions, | |
| 51 | +is initialized at the beginning of the embedding program and | |
| 52 | +persists until its end. | |
| 53 | +<P> | |
| 54 | +The global environment can be manipulated by Lua code or | |
| 55 | +by the embedding program, | |
| 56 | +which can read and write global variables | |
| 57 | +using functions in the library that implements Lua. | |
| 58 | +<P> | |
| 59 | +<A NAME="Global variables">Global variables</A> do not need declaration. | |
| 60 | +Any variable is assumed to be global unless explicitly declared local | |
| 61 | +(see Section <A HREF="#localvar">4.5.5</A>). | |
| 62 | +Before the first assignment, the value of a global variable is <B>nil</B>; | |
| 63 | +this default can be changed (see Section <A HREF="#tag-method">4.8</A>). | |
| 64 | +<P> | |
| 65 | +The unit of execution of Lua is called a <A NAME="chunk"><EM>chunk</EM></A>. | |
| 66 | +The syntax | |
| 67 | +\footnote{As usual, {<EM>a</EM>} means 0 or more <EM>a</EM>'s, | |
| 68 | +[<EM>a</EM>] means an optional <EM>a</EM> and ('<EM>a</EM>)+ means | |
| 69 | +one or more <EM>a</EM>'s.} | |
| 70 | +for chunks is: | |
| 71 | +<LISTING> | |
| 72 | +chunk ::= {stat | function} [ret] | |
| 73 | +</LISTING> | |
| 74 | +A chunk may contain statements and function definitions, | |
| 75 | +and may be in a file or in a string inside the host program. | |
| 76 | +A chunk may optionally end with a <CODE>return</CODE> statement (see Section <A HREF="#return">4.5.3</A>). | |
| 77 | +When a chunk is executed, first all its functions and statements are compiled, | |
| 78 | +then the statements are executed in sequential order. | |
| 79 | +All modifications a chunk effects on the global environment persist | |
| 80 | +after its end. | |
| 81 | +Those include modifications to global variables and definitions | |
| 82 | +of new functions | |
| 83 | +\footnote{Actually, a function definition is an | |
| 84 | +assignment to a global variable (see Section <A HREF="#TypesSec">3</A>).}. | |
| 85 | +<P> | |
| 86 | +Chunks may be pre-compiled into binary form; | |
| 87 | +see program <A NAME="luac"><TT>luac</TT></A> for details. | |
| 88 | +Text files with chunks and their binary pre-compiled forms | |
| 89 | +are interchangeable. | |
| 90 | +Lua automatically detects the file type and acts accordingly. | |
| 91 | +<A NAME="pre-compilation"></A> | |
| 92 | +<P> | |
| 93 | +<A NAME="TypesSec"></A> | |
| 94 | +<!-- ====================================================================== --> | |
| 95 | +<HR> | |
| 96 | +<A NAME="3."></A> | |
| 97 | +<H1>3 - Types and Tags</H1> | |
| 98 | +<P> | |
| 99 | +Lua is a dynamically typed language. | |
| 100 | +Variables do not have types; only values do. | |
| 101 | +Therefore, there are no type definitions in the language. | |
| 102 | +All values carry their own type. | |
| 103 | +Besides a type, all values also have a <A NAME="tag">tag</A>. | |
| 104 | +<P> | |
| 105 | +There are six <A NAME="basic types">basic types</A> in Lua: <A NAME="nil"><EM>nil</EM></A>, <A NAME="number"><EM>number</EM></A>, | |
| 106 | +<A NAME="string"><EM>string</EM></A>, <A NAME="function"><EM>function</EM></A>, <A NAME="userdata"><EM>userdata</EM></A>, and <A NAME="table"><EM>table</EM></A>. | |
| 107 | +<EM>Nil</EM> is the type of the value <B>nil</B>, | |
| 108 | +whose main property is to be different from any other value. | |
| 109 | +<EM>Number</EM> represents real (floating-point) numbers, | |
| 110 | +while <EM>string</EM> has the usual meaning. | |
| 111 | +The function <CODE>type</CODE> returns a string describing the type | |
| 112 | +of a given value (see Section <A HREF="#pdf-type">6.1</A>). | |
| 113 | +<P> | |
| 114 | +Functions are considered first-class values in Lua. | |
| 115 | +This means that functions can be stored in variables, | |
| 116 | +passed as arguments to other functions and returned as results. | |
| 117 | +When a function is defined in Lua, its body is compiled and stored | |
| 118 | +in a given variable. | |
| 119 | +Lua can call (and manipulate) functions written in Lua and | |
| 120 | +functions written in C. | |
| 121 | +They can be distinguished by their tags: | |
| 122 | +all Lua functions have the same tag, | |
| 123 | +and all C functions have the same tag, | |
| 124 | +which is different from the tag of a Lua function. | |
| 125 | +<P> | |
| 126 | +The type <EM>userdata</EM> is provided to allow | |
| 127 | +arbitrary <A NAME="C pointers">C pointers</A> to be stored in Lua variables. | |
| 128 | +It corresponds to a <CODE>void*</CODE> and has no pre-defined operations in Lua, | |
| 129 | +besides assignment and equality test. | |
| 130 | +However, by using <EM>tag methods</EM>, | |
| 131 | +the programmer may define operations for <EM>userdata</EM> values | |
| 132 | +(see Section <A HREF="#tag-method">4.8</A>). | |
| 133 | +<P> | |
| 134 | +The type <EM>table</EM> implements <A NAME="associative arrays">associative arrays</A>, | |
| 135 | +that is, <A NAME="arrays">arrays</A> that can be indexed not only with numbers, | |
| 136 | +but with any value (except <B>nil</B>). | |
| 137 | +Therefore, this type may be used not only to represent ordinary arrays, | |
| 138 | +but also symbol tables, sets, records, etc. | |
| 139 | +To represent <A NAME="records">records</A>, Lua uses the field name as an index. | |
| 140 | +The language supports this representation by | |
| 141 | +providing <CODE>a.name</CODE> as syntactic sugar for <CODE>a["name"]</CODE>. | |
| 142 | +Tables may also carry methods. | |
| 143 | +Because functions are first class values, | |
| 144 | +table fields may contain functions. | |
| 145 | +The form <CODE>t:f(x)</CODE> is syntactic sugar for <CODE>t.f(t,x)</CODE>, | |
| 146 | +which calls the method <CODE>f</CODE> from the table <CODE>t</CODE> passing | |
| 147 | +itself as the first parameter (see Section <A HREF="#func-def">4.7</A>). | |
| 148 | +<P> | |
| 149 | +It is important to notice that tables are <EM>objects</EM>, and not values. | |
| 150 | +Variables cannot contain tables, only <EM>references</EM> to them. | |
| 151 | +Assignment, parameter passing and returns always manipulate references | |
| 152 | +to tables, and do not imply any kind of copy. | |
| 153 | +Moreover, tables must be explicitly created before used | |
| 154 | +(see Section <A HREF="#tableconstructor">4.6.7</A>). | |
| 155 | +<P> | |
| 156 | +Tags are mainly used to select tag methods when | |
| 157 | +some events occur (see Section <A HREF="#tag-method">4.8</A>). | |
| 158 | +Each of the types nil, number and string has a different tag. | |
| 159 | +All values of each of these types have this same pre-defined tag. | |
| 160 | +Values of type function can have two different tags, | |
| 161 | +depending on whether they are Lua or C functions. | |
| 162 | +Finally, | |
| 163 | +values of type userdata and table can have | |
| 164 | +as many different tags as needed (see Section <A HREF="#tag-method">4.8</A>). | |
| 165 | +Tags are created with the function <CODE>newtag</CODE>, | |
| 166 | +and the function <CODE>tag</CODE> returns the tag of a given value. | |
| 167 | +To change the tag of a given table, | |
| 168 | +there is the function <CODE>settag</CODE> (see Section <A HREF="#pdf-newtag">6.1</A>). | |
| 169 | +<P> | |
| 170 | +<P> | |
| 171 | +<!-- ====================================================================== --> | |
| 172 | +<HR> | |
| 173 | +<A NAME="4."></A> | |
| 174 | +<H1>4 - The Language</H1> | |
| 175 | +<P> | |
| 176 | +This section describes the lexis, the syntax and the semantics of Lua. | |
| 177 | +<P> | |
| 178 | +<P> | |
| 179 | +<A NAME="lexical"></A> | |
| 180 | +<A NAME="4.1"></A> | |
| 181 | +<H2>4.1 - Lexical Conventions</H2> | |
| 182 | +<P> | |
| 183 | +Lua is a case-sensitive language. | |
| 184 | +<A NAME="Identifiers">Identifiers</A> can be any string of letters, digits, and underscores, | |
| 185 | +not beginning with a digit. | |
| 186 | +The following words are reserved, and cannot be used as identifiers: | |
| 187 | +<A NAME="reserved words"></A> | |
| 188 | +<LISTING> | |
| 189 | + and do else elseif | |
| 190 | + end function if local | |
| 191 | + nil not or repeat | |
| 192 | + return then until while | |
| 193 | +</LISTING> | |
| 194 | +<P> | |
| 195 | +The following strings denote other <A NAME="tokens">tokens</A>: | |
| 196 | +<LISTING> | |
| 197 | + ~= <= >= < > == = .. + - * / | |
| 198 | + % ( ) { } [ ] ; , . ... | |
| 199 | +</LISTING> | |
| 200 | +<P> | |
| 201 | +<A NAME="Literal strings">Literal strings</A> can be delimited by matching single or double quotes, | |
| 202 | +and can contain the C-like escape sequences | |
| 203 | +<CODE>'\n'</CODE>, <CODE>'\t'</CODE> and <CODE>'\r'</CODE>. | |
| 204 | +Literal strings can also be delimited by matching <CODE>[[ ... ]]</CODE>. | |
| 205 | +Literals in this bracketed form may run for several lines, | |
| 206 | +may contain nested <CODE>[[ ... ]]</CODE> pairs, | |
| 207 | +and do not interpret escape sequences. | |
| 208 | +This form is specially convenient for | |
| 209 | +handling strings that contain program pieces or | |
| 210 | +other quoted strings. | |
| 211 | +<P> | |
| 212 | +<A NAME="Comments">Comments</A> start anywhere outside a string with a | |
| 213 | +double hyphen (<CODE>--</CODE>) and run until the end of the line. | |
| 214 | +Moreover, | |
| 215 | +the first line of a chunk file is skipped if it starts with <CODE>#</CODE> | |
| 216 | +\footnote{This facility allows the use of Lua as a script interpreter | |
| 217 | +in Unix systems (see Section <A HREF="#lua-sa">8</A>).}. | |
| 218 | +<P> | |
| 219 | +<A NAME="Numerical constants">Numerical constants</A> may be written with an optional decimal part, | |
| 220 | +and an optional decimal exponent. | |
| 221 | +Examples of valid numerical constants are: | |
| 222 | +<LISTING> | |
| 223 | + 4 4.0 0.4 4.57e-3 0.3e12 | |
| 224 | +</LISTING> | |
| 225 | +<P> | |
| 226 | +<A NAME="pre-processor"></A> | |
| 227 | +<A NAME="4.2"></A> | |
| 228 | +<H2>4.2 - The Pre-processor</H2> | |
| 229 | +<P> | |
| 230 | +All lines that start with a <CODE>$</CODE> are handled by a pre-processor. | |
| 231 | +The <CODE>$</CODE> can be followed by any of the following directives: | |
| 232 | +<DL> | |
| 233 | +<DT><B><TT>debug</TT></B><DD> - turn on some debugging facilities (see Section <A HREF="#pragma">4.9</A>). | |
| 234 | +<DT><B><TT>nodebug</TT></B><DD> - turn off some debugging facilities (see Section <A HREF="#pragma">4.9</A>). | |
| 235 | +<DT><B><TT>if <EM>cond</TT></EM></B><DD> - starts a conditional part. | |
| 236 | +If <EM>cond</EM> is false, then this part is skipped by the lexical analyzer. | |
| 237 | +<DT><B><TT>ifnot <EM>cond</TT></EM></B><DD> - starts a conditional part. | |
| 238 | +If <EM>cond</EM> is true, then this part is skipped by the lexical analyzer. | |
| 239 | +<DT><B><TT>end</TT></B><DD> - ends a conditional part. | |
| 240 | +<DT><B><TT>else</TT></B><DD> - starts an ``else'' conditional part, | |
| 241 | +switching the ``skip'' status. | |
| 242 | +<DT><B><TT>endinput</TT></B><DD> - ends the lexical parse of the file. | |
| 243 | +</DL> | |
| 244 | +<P> | |
| 245 | +Directives can be freely nested. | |
| 246 | +Particularly, a <CODE>$endinput</CODE> may occur inside a <CODE>$if</CODE>; | |
| 247 | +in that case, even the matching <CODE>$end</CODE> is not parsed. | |
| 248 | +<P> | |
| 249 | +A <EM>cond</EM> part may be: | |
| 250 | +<DL> | |
| 251 | +<DT><B><TT>nil</TT></B><DD> - always false. | |
| 252 | +<DT><B><TT>1</TT></B><DD> - always true. | |
| 253 | +<DT><B><EM>name</EM></B><DD> - true if the value of the | |
| 254 | +global variable <EM>name</EM> is different from <B>nil</B>. | |
| 255 | +Notice that <EM>name</EM> is evaluated before the chunk starts its execution. | |
| 256 | +Therefore, actions in a chunk do not affect its own conditional directives. | |
| 257 | +</DL> | |
| 258 | +<P> | |
| 259 | +<A NAME="coercion"></A> | |
| 260 | +<A NAME="4.3"></A> | |
| 261 | +<H2>4.3 - Coercion</H2> | |
| 262 | +<P> | |
| 263 | +Lua provides some automatic conversions between values. | |
| 264 | +Any arithmetic operation applied to a string tries to convert | |
| 265 | +that string to a number, following the usual rules. | |
| 266 | +Conversely, whenever a number is used when a string is expected, | |
| 267 | +that number is converted to a string, according to the following rule: | |
| 268 | +if the number is an integer, it is written without exponent or decimal point; | |
| 269 | +otherwise, it is formatted following the <CODE>%g</CODE> | |
| 270 | +conversion specification of the <CODE>printf</CODE> function in the | |
| 271 | +standard C library. | |
| 272 | +For complete control on how numbers are converted to strings, | |
| 273 | +use the <CODE>format</CODE> function (see Section <A HREF="#format">6.2</A>). | |
| 274 | +<P> | |
| 275 | +<P> | |
| 276 | +<A NAME="adjust"></A> | |
| 277 | +<A NAME="4.4"></A> | |
| 278 | +<H2>4.4 - Adjustment</H2> | |
| 279 | +<P> | |
| 280 | +Functions in Lua can return many values. | |
| 281 | +Because there are no type declarations, | |
| 282 | +the system does not know how many values a function will return, | |
| 283 | +or how many parameters it needs. | |
| 284 | +Therefore, sometimes, a list of values must be <EM>adjusted</EM>, at run time, | |
| 285 | +to a given length. | |
| 286 | +If there are more values than are needed, then the last values are thrown away. | |
| 287 | +If there are more needs than values, then the list is extended with as | |
| 288 | +many <B>nil</B>'s as needed. | |
| 289 | +Adjustment occurs in multiple assignment and function calls. | |
| 290 | +<P> | |
| 291 | +<P> | |
| 292 | +<A NAME="4.5"></A> | |
| 293 | +<H2>4.5 - Statements</H2> | |
| 294 | +<P> | |
| 295 | +Lua supports an almost conventional set of <A NAME="statements">statements</A>, | |
| 296 | +similar to those in Pascal or C. | |
| 297 | +The conventional commands include | |
| 298 | +assignment, control structures and procedure calls. | |
| 299 | +Non-conventional commands include table constructors | |
| 300 | +(see Section <A HREF="#tableconstructor">4.6.7</A>), | |
| 301 | +and local variable declarations (see Section <A HREF="#localvar">4.5.5</A>). | |
| 302 | +<P> | |
| 303 | +<H3>4.5.1 - Blocks</H3> | |
| 304 | +A <A NAME="block">block</A> is a list of statements, which are executed sequentially. | |
| 305 | +Any statement can be optionally followed by a semicolon: | |
| 306 | +<LISTING> | |
| 307 | +block ::= {stat sc} [ret] | |
| 308 | +sc ::= ['<B>;</B>'] | |
| 309 | +</LISTING> | |
| 310 | +For syntactic reasons, a <A NAME="return"><TT>return</TT></A> statement can only be written | |
| 311 | +as the last statement of a block. | |
| 312 | +This restriction also avoids some ``statement not reached'' conditions. | |
| 313 | +<P> | |
| 314 | +<A NAME="assignment"></A> | |
| 315 | +<H3>4.5.2 - <A NAME="Assignment</H3>">Assignment</H3></A> | |
| 316 | +The language allows <A NAME="multiple assignment">multiple assignment</A>. | |
| 317 | +Therefore, the syntax for assignment | |
| 318 | +defines a list of variables on the left side, | |
| 319 | +and a list of expressions on the right side. | |
| 320 | +Both lists have their elements separated by commas: | |
| 321 | +<LISTING> | |
| 322 | +stat ::= varlist1 '<B>=</B>' explist1 | |
| 323 | +varlist1 ::= var {'<B>,</B>' var} | |
| 324 | +</LISTING> | |
| 325 | +This statement first evaluates all values on the right side | |
| 326 | +and eventual indices on the left side, | |
| 327 | +and then makes the assignments. | |
| 328 | +Therefore, it can be used to exchange two values, as in | |
| 329 | +<LISTING> | |
| 330 | + x, y = y, x | |
| 331 | +</LISTING> | |
| 332 | +The two lists may have different lengths. | |
| 333 | +Before the assignment, the list of values is <EM>adjusted</EM> to | |
| 334 | +the length of the list of variables (see Section <A HREF="#adjust">4.4</A>). | |
| 335 | +<P> | |
| 336 | +A single name can denote a global or a local variable, | |
| 337 | +or a formal parameter: | |
| 338 | +<LISTING> | |
| 339 | +var ::= name | |
| 340 | +</LISTING> | |
| 341 | +Square brackets are used to index a table: | |
| 342 | +<LISTING> | |
| 343 | +var ::= var '<B>[</B>' exp1 '<B>]</B>' | |
| 344 | +</LISTING> | |
| 345 | +The <CODE>var</CODE> should result in a table value, | |
| 346 | +where the field indexed by the expression value gets the assigned value. | |
| 347 | +<P> | |
| 348 | +The meaning of assignments and evaluations of global variables and | |
| 349 | +indexed variables can be changed by tag methods (see Section <A HREF="#tag-method">4.8</A>). | |
| 350 | +Actually, | |
| 351 | +an assignment <CODE>x = val</CODE>, where <CODE>x</CODE> is a global variable, | |
| 352 | +is equivalent to a call <CODE>setglobal('x', val)</CODE>; | |
| 353 | +an assignment <CODE>t[i] = val</CODE> is equivalent to | |
| 354 | +<CODE>settable_event(t, i, val)</CODE>. | |
| 355 | +See Section <A HREF="#tag-method">4.8</A> for a description of these functions | |
| 356 | +\footnote{Function <CODE>setglobal</CODE> is pre-defined in Lua. | |
| 357 | +Function <TT>settable_event</TT> is used only for explanation purposes.}. | |
| 358 | +<P> | |
| 359 | +The syntax <CODE>var.NAME</CODE> is just syntactic sugar for | |
| 360 | +<CODE>var["NAME"]</CODE>: | |
| 361 | +<LISTING> | |
| 362 | +var ::= var '<B>.</B>' name | |
| 363 | +</LISTING> | |
| 364 | +<P> | |
| 365 | +<H3>4.5.3 - Control Structures</H3> | |
| 366 | +The <A NAME="condition expression">condition expression</A> of a control structure may return any value. | |
| 367 | +All values different from <B>nil</B> are considered true; | |
| 368 | +only <B>nil</B> is considered false. | |
| 369 | +<TT>if</TT>'s, <TT>while</TT>'s and <TT>repeat</TT>'s have the usual meaning. | |
| 370 | +<P> | |
| 371 | +<A NAME="while-do"></A><A NAME="repeat-until"></A><A NAME="if-then-else"></A> | |
| 372 | +<LISTING> | |
| 373 | +stat ::= <B>while</B> exp1 <B>do</B> block <B>end</B> <BR> | <B>repeat</B> block <B>until</B> exp1 <BR> | <B>if</B> exp1 <B>then</B> block {elseif} [<B>else</B> block] <B>end</B> | |
| 374 | +elseif ::= <B>elseif</B> exp1 <B>then</B> block | |
| 375 | +</LISTING> | |
| 376 | +<P> | |
| 377 | +A <TT>return</TT> is used to return values from a function or a chunk. | |
| 378 | +<A NAME="return"></A> | |
| 379 | + | |
| 380 | +Because they may return more than one value, | |
| 381 | +the syntax for a <A NAME="return statement">return statement</A> is: | |
| 382 | +<LISTING> | |
| 383 | +ret ::= <B>return</B> [explist1] [sc] | |
| 384 | +</LISTING> | |
| 385 | +<P> | |
| 386 | +<A NAME="funcstat"></A> | |
| 387 | +<H3>4.5.4 - Function Calls as Statements</H3> | |
| 388 | +Because of possible side-effects, | |
| 389 | +function calls can be executed as statements: | |
| 390 | +<LISTING> | |
| 391 | +stat ::= functioncall | |
| 392 | +</LISTING> | |
| 393 | +In this case, returned values are thrown away. | |
| 394 | +Function calls are explained in Section <A HREF="#functioncall">4.6.8</A>. | |
| 395 | +<P> | |
| 396 | +<A NAME="localvar"></A> | |
| 397 | +<H3>4.5.5 - Local Declarations</H3> | |
| 398 | +<A NAME="Local variables">Local variables</A> may be declared anywhere inside a block. | |
| 399 | +Their scope begins after the declaration and lasts until the | |
| 400 | +end of the block. | |
| 401 | +The declaration may include an initial assignment: | |
| 402 | +<LISTING> | |
| 403 | +stat ::= <B>local</B> declist [init] | |
| 404 | +declist ::= name {'<B>,</B>' name} | |
| 405 | +init ::= '<B>=</B>' explist1 | |
| 406 | +</LISTING> | |
| 407 | +If present, an initial assignment has the same semantics | |
| 408 | +of a multiple assignment. | |
| 409 | +Otherwise, all variables are initialized with <B>nil</B>. | |
| 410 | +<P> | |
| 411 | +<P> | |
| 412 | +<A NAME="4.6"></A> | |
| 413 | +<H2>4.6 - Expressions</H2> | |
| 414 | +<P> | |
| 415 | +<H3>4.6.1 - <A NAME="Simple Expressions</H3>">Simple Expressions</H3></A> | |
| 416 | +Simple expressions are: | |
| 417 | +<LISTING> | |
| 418 | +exp ::= '<B>(</B>' exp '<B>)</B>' | |
| 419 | +exp ::= <B>nil</B> | |
| 420 | +exp ::= '<B>number</B>' | |
| 421 | +exp ::= '<B>literal</B>' | |
| 422 | +exp ::= var | |
| 423 | +</LISTING> | |
| 424 | +Numbers (numerical constants) and | |
| 425 | +string literals are explained in Section <A HREF="#lexical">4.1</A>. | |
| 426 | +Variables are explained in Section <A HREF="#assignment">4.5.2</A>. | |
| 427 | +<P> | |
| 428 | +An access to a global variable <CODE>x</CODE> is equivalent to a | |
| 429 | +call <CODE>getglobal('x')</CODE>; | |
| 430 | +an access to an indexed variable <CODE>t[i]</CODE> is equivalent to | |
| 431 | +a call <CODE>gettable_event(t, i)</CODE>. | |
| 432 | +See Section <A HREF="#tag-method">4.8</A> for a description of these functions | |
| 433 | +\footnote{Function <CODE>getglobal</CODE> is pre-defined in Lua. | |
| 434 | +Function <TT>gettable_event</TT> is used only for explanation purposes.}. | |
| 435 | +<P> | |
| 436 | +The non-terminal <EM>exp1</EM> is used to indicate that the values | |
| 437 | +returned by an expression must be adjusted to one single value: | |
| 438 | +<LISTING> | |
| 439 | +exp1 ::= exp | |
| 440 | +</LISTING> | |
| 441 | +<P> | |
| 442 | +<H3>4.6.2 - Arithmetic Operators</H3> | |
| 443 | +Lua supports the usual <A NAME="arithmetic operators">arithmetic operators</A>: | |
| 444 | +the binary <CODE>+</CODE> (addition), | |
| 445 | +<CODE>-</CODE> (subtraction), <CODE>*</CODE> (multiplication), | |
| 446 | +<CODE>/</CODE> (division) and <CODE>^</CODE> (exponentiation), | |
| 447 | +and unary <CODE>-</CODE> (negation). | |
| 448 | +If the operands are numbers, or strings that can be converted to | |
| 449 | +numbers, according to the rules given in Section <A HREF="#coercion">4.3</A>, | |
| 450 | +then all operations except exponentiation have the usual meaning. | |
| 451 | +Otherwise, an appropriate tag method is called (see Section <A HREF="#tag-method">4.8</A>). | |
| 452 | +An exponentiation always calls a tag method. | |
| 453 | +The standard mathematical library redefines this method for numbers, | |
| 454 | +giving the expected meaning to <A NAME="exponentiation">exponentiation</A> | |
| 455 | +(see Section <A HREF="#mathlib">6.3</A>). | |
| 456 | +<P> | |
| 457 | +<H3>4.6.3 - Relational Operators</H3> | |
| 458 | +Lua provides the following <A NAME="relational operators">relational operators</A>: | |
| 459 | +<LISTING> | |
| 460 | + < > <= >= ~= == | |
| 461 | +</LISTING> | |
| 462 | +All these return <B>nil</B> as false and a value different from <B>nil</B> as true. | |
| 463 | +<P> | |
| 464 | +Equality first compares the types of its operands. | |
| 465 | +If they are different, then the result is <B>nil</B>. | |
| 466 | +Otherwise, their values are compared. | |
| 467 | +Numbers and strings are compared in the usual way. | |
| 468 | +Tables, userdata and functions are compared by reference, | |
| 469 | +that is, two tables are considered equal only if they are the same table. | |
| 470 | +The operator <CODE>~=</CODE> is exactly the negation of equality (<CODE>==</CODE>). | |
| 471 | +Note that the conversion rules of Section <A HREF="#coercion">4.3</A> | |
| 472 | +<EM>do not</EM> apply to equality comparisons. | |
| 473 | +Thus, <CODE>"0"==0</CODE> evaluates to false. | |
| 474 | +<P> | |
| 475 | +The other operators work as follows. | |
| 476 | +If both arguments are numbers, then they are compared as such. | |
| 477 | +Otherwise, if both arguments are strings, | |
| 478 | +their values are compared using lexicographical order. | |
| 479 | +Otherwise, the ``order'' tag method is called (see Section <A HREF="#tag-method">4.8</A>). | |
| 480 | +<P> | |
| 481 | +<H3>4.6.4 - Logical Operators</H3> | |
| 482 | +Like control structures, all logical operators | |
| 483 | +consider <B>nil</B> as false and anything else as true. | |
| 484 | +The <A NAME="logical operators">logical operators</A> are: | |
| 485 | +<A NAME="and"></A><A NAME="or"></A><A NAME="not"></A> | |
| 486 | +<LISTING> | |
| 487 | + and or not | |
| 488 | +</LISTING> | |
| 489 | +The operator <CODE>and</CODE> returns <B>nil</B> if its first argument is <B>nil</B>; | |
| 490 | +otherwise, it returns its second argument. | |
| 491 | +The operator <CODE>or</CODE> returns its first argument | |
| 492 | +if it is different from <B>nil</B>; | |
| 493 | +otherwise, it returns its second argument. | |
| 494 | +Both <CODE>and</CODE> and <CODE>or</CODE> use <A NAME="short-cut evaluation">short-cut evaluation</A>, | |
| 495 | +that is, | |
| 496 | +the second operand is evaluated only when necessary. | |
| 497 | +<P> | |
| 498 | +<H3>4.6.5 - Concatenation</H3> | |
| 499 | +Lua offers a string <A NAME="concatenation">concatenation</A> operator, | |
| 500 | +denoted by ``<A NAME=".."><TT>..</TT></A>''. | |
| 501 | +If operands are strings or numbers, then they are converted to | |
| 502 | +strings according to the rules in Section <A HREF="#coercion">4.3</A>. | |
| 503 | +Otherwise, the ``concat'' tag method is called (see Section <A HREF="#tag-method">4.8</A>). | |
| 504 | +<P> | |
| 505 | +<H3>4.6.6 - Precedence</H3> | |
| 506 | +<A NAME="Operator precedence">Operator precedence</A> follows the table below, | |
| 507 | +from the lower to the higher priority: | |
| 508 | +<LISTING> | |
| 509 | + and or | |
| 510 | + < > <= >= ~= == | |
| 511 | + .. | |
| 512 | + + - | |
| 513 | + * / | |
| 514 | + not - (unary) | |
| 515 | + ^ | |
| 516 | +</LISTING> | |
| 517 | +All binary operators are left associative, | |
| 518 | +except for <CODE>^</CODE> (exponentiation), | |
| 519 | +which is right associative. | |
| 520 | +<P> | |
| 521 | +<A NAME="tableconstructor"></A> | |
| 522 | +<H3>4.6.7 - Table Constructors</H3> | |
| 523 | +Table <A NAME="constructors">constructors</A> are expressions that create tables; | |
| 524 | +every time a constructor is evaluated, a new table is created. | |
| 525 | +Constructors can be used to create empty tables, | |
| 526 | +or to create a table and initialize some fields. | |
| 527 | +<P> | |
| 528 | +The general syntax for constructors is: | |
| 529 | +<LISTING> | |
| 530 | +tableconstructor ::= '<B>{</B>' fieldlist '<B>}</B>' | |
| 531 | +fieldlist ::= lfieldlist | ffieldlist | lfieldlist '<B>;</B>' ffieldlist | |
| 532 | +lfieldlist ::= [lfieldlist1] | |
| 533 | +ffieldlist ::= [ffieldlist1] | |
| 534 | +</LISTING> | |
| 535 | +<P> | |
| 536 | +The form <EM>lfieldlist1</EM> is used to initialize lists. | |
| 537 | +<LISTING> | |
| 538 | +lfieldlist1 ::= exp {'<B>,</B>' exp} ['<B>,</B>'] | |
| 539 | +</LISTING> | |
| 540 | +The expressions in the list are assigned to consecutive numerical indices, | |
| 541 | +starting with 1. | |
| 542 | +For example: | |
| 543 | +<LISTING> | |
| 544 | + a = {"v1", "v2", 34} | |
| 545 | +</LISTING> | |
| 546 | +is essentially equivalent to: | |
| 547 | +<LISTING> | |
| 548 | + temp = {} | |
| 549 | + temp[1] = "v1" | |
| 550 | + temp[2] = "v2" | |
| 551 | + temp[3] = 34 | |
| 552 | + a = temp | |
| 553 | +</LISTING> | |
| 554 | +<P> | |
| 555 | +The form <EM>ffieldlist1</EM> initializes other fields in a table: | |
| 556 | +<LISTING> | |
| 557 | +ffieldlist1 ::= ffield {'<B>,</B>' ffield} ['<B>,</B>'] | |
| 558 | +ffield ::= '<B>[</B>' exp '<B>]</B>' \ter {= exp | name '<B>=</B>' exp} | |
| 559 | +</LISTING> | |
| 560 | +For example: | |
| 561 | +<LISTING> | |
| 562 | + a = {[f(k)] = g(y), x = 1, y = 3, [0] = b+c} | |
| 563 | +</LISTING> | |
| 564 | +is essentially equivalent to: | |
| 565 | +<LISTING> | |
| 566 | + temp = {} | |
| 567 | + temp[f(k)] = g(y) | |
| 568 | + temp.x = 1 -- or temp["x"] = 1 | |
| 569 | + temp.y = 3 -- or temp["y"] = 3 | |
| 570 | + temp[0] = b+c | |
| 571 | + a = temp | |
| 572 | +</LISTING> | |
| 573 | +An expression like <CODE>{x = 1, y = 4}</CODE> is | |
| 574 | +in fact syntactic sugar for <CODE>{["x"] = 1, ["y"] = 4}</CODE>. | |
| 575 | +<P> | |
| 576 | +<A NAME="functioncall"></A> | |
| 577 | +<H3>4.6.8 - Function Calls</H3> | |
| 578 | +A <A NAME="function call">function call</A> has the following syntax: | |
| 579 | +<LISTING> | |
| 580 | +functioncall ::= var realParams | |
| 581 | +</LISTING> | |
| 582 | +Here, <EM>var</EM> can be any variable (global, local, indexed, etc). | |
| 583 | +If its value has type <EM>function</EM>, | |
| 584 | +then this function is called. | |
| 585 | +Otherwise, the ``function'' tag method is called, | |
| 586 | +having as first parameter the value of <EM>var</EM>, | |
| 587 | +and then the original call parameters. | |
| 588 | +<P> | |
| 589 | +The form: | |
| 590 | +<LISTING> | |
| 591 | +functioncall ::= var '<B>:</B>' name realParams | |
| 592 | +</LISTING> | |
| 593 | +can be used to call ``methods''. | |
| 594 | +A call <CODE>var:name(...)</CODE> | |
| 595 | +is syntactic sugar for | |
| 596 | +<LISTING> | |
| 597 | + var.name(var, ...) | |
| 598 | +</LISTING> | |
| 599 | +except that <CODE>var</CODE> is evaluated only once. | |
| 600 | +<P> | |
| 601 | +<LISTING> | |
| 602 | +realParams ::= '<B>(</B>' [explist1] '<B>)</B>' | |
| 603 | +realParams ::= tableconstructor | |
| 604 | +explist1 ::= exp1 {'<B>,</B>' exp1} | |
| 605 | +</LISTING> | |
| 606 | +All argument expressions are evaluated before the call. | |
| 607 | +A call of the form <CODE>f{...}</CODE> is syntactic sugar for | |
| 608 | +<CODE>f({...})</CODE>, that is, | |
| 609 | +the parameter list is a single new table. | |
| 610 | +<P> | |
| 611 | +Because a function can return any number of results | |
| 612 | +(see Section <A HREF="#return">4.5.3</A>), | |
| 613 | +the number of results must be adjusted before used. | |
| 614 | +If the function is called as a statement (see Section <A HREF="#funcstat">4.5.4</A>), | |
| 615 | +then its return list is adjusted to 0, | |
| 616 | +thus discarding all returned values. | |
| 617 | +If the function is called in a place that needs a single value | |
| 618 | +(syntactically denoted by the non-terminal <EM>exp1</EM>), | |
| 619 | +then its return list is adjusted to 1, | |
| 620 | +thus discarding all returned values but the first one. | |
| 621 | +If the function is called in a place that can hold many values | |
| 622 | +(syntactically denoted by the non-terminal <EM>exp</EM>), | |
| 623 | +then no adjustment is made. | |
| 624 | +<P> | |
| 625 | +<P> | |
| 626 | +<A NAME="func-def"></A> | |
| 627 | +<A NAME="4.7"></A> | |
| 628 | +<H2>4.7 - Function Definitions</H2> | |
| 629 | +<P> | |
| 630 | +Functions in Lua can be defined anywhere in the global level of a chunk. | |
| 631 | +The syntax for function definition is: | |
| 632 | +<LISTING> | |
| 633 | +function ::= <B>function</B> var '<B>(</B>' [parlist1] '<B>)</B>' block <B>end</B> | |
| 634 | +</LISTING> | |
| 635 | +<P> | |
| 636 | +When Lua pre-compiles a chunk, | |
| 637 | +all its function bodies are pre-compiled, too. | |
| 638 | +Then, when Lua ``executes'' the function definition, | |
| 639 | +its body is stored, with type <EM>function</EM>, | |
| 640 | +into the variable <CODE>var</CODE>. | |
| 641 | +It is in this sense that | |
| 642 | +a function definition is an assignment to a global variable. | |
| 643 | +<P> | |
| 644 | +Parameters act as local variables, | |
| 645 | +initialized with the argument values. | |
| 646 | +<LISTING> | |
| 647 | +parlist1 ::= '<B>...</B>' | |
| 648 | +parlist1 ::= name {'<B>,</B>' name} ['<B>,</B>' '<B>...</B>'] | |
| 649 | +</LISTING> | |
| 650 | +<A NAME="vararg"></A> | |
| 651 | + | |
| 652 | +When a function is called, | |
| 653 | +the list of <A NAME="arguments">arguments</A> is adjusted to | |
| 654 | +the length of the list of parameters (see Section <A HREF="#adjust">4.4</A>), | |
| 655 | +unless the function is a <A NAME="vararg"><EM>vararg</EM></A> function, | |
| 656 | +indicated by the dots (...) at the end of its parameter list. | |
| 657 | +A vararg function does not adjust its argument list; | |
| 658 | +instead, it collects any extra arguments in an implicit parameter, | |
| 659 | +called <A NAME="arg"><EM>arg</EM></A>. | |
| 660 | +This parameter is always initialized as a table, | |
| 661 | +with a field <CODE>n</CODE> with the number of extra arguments, | |
| 662 | +and the extra arguments at positions 1, 2, ... | |
| 663 | +<P> | |
| 664 | +As an example, suppose definitions like: | |
| 665 | +<LISTING> | |
| 666 | + function f(a, b) end | |
| 667 | + function g(a, b, ...) end | |
| 668 | +</LISTING> | |
| 669 | +Then, we have the following mapping from arguments to parameters: | |
| 670 | +<LISTING> | |
| 671 | + CALL PARAMETERS | |
| 672 | +<P> | |
| 673 | + f(3) a=3, b=nil | |
| 674 | + f(3, 4) a=3, b=4 | |
| 675 | + f(3, 4, 5) a=3, b=4 | |
| 676 | +<P> | |
| 677 | + g(3) a=3, b=nil, arg={n=0} | |
| 678 | + g(3, 4) a=3, b=4, arg={n=0} | |
| 679 | + g(3, 4, 5, 8) a=3, b=4, arg={5, 8; n=2} | |
| 680 | +</LISTING> | |
| 681 | +<P> | |
| 682 | +Results are returned using the <CODE>return</CODE> statement (see Section <A HREF="#return">4.5.3</A>). | |
| 683 | +If control reaches the end of a function without a return instruction, | |
| 684 | +then the function returns with no results. | |
| 685 | +<P> | |
| 686 | +There is a special syntax for defining <A NAME="methods">methods</A>, | |
| 687 | +that is, functions that have an extra parameter <A NAME="self"><EM>self</EM></A>. | |
| 688 | +<LISTING> | |
| 689 | +function ::= <B>function</B> var '<B>:</B>' name '<B>(</B>' [parlist1] '<B>)</B>' block <B>end</B> | |
| 690 | +</LISTING> | |
| 691 | +Thus, a declaration like | |
| 692 | +<LISTING> | |
| 693 | +function v:f (...) | |
| 694 | + ... | |
| 695 | +end | |
| 696 | +</LISTING> | |
| 697 | +is equivalent to | |
| 698 | +<LISTING> | |
| 699 | +function v.f (self, ...) | |
| 700 | + ... | |
| 701 | +end | |
| 702 | +</LISTING> | |
| 703 | +that is, the function gets an extra formal parameter called <CODE>self</CODE>. | |
| 704 | +Notice that | |
| 705 | +the variable <CODE>v</CODE> must have been | |
| 706 | +previously initialized with a table value. | |
| 707 | +<P> | |
| 708 | +<P> | |
| 709 | +<A NAME="tag-method"></A> | |
| 710 | +<A NAME="4.8"></A> | |
| 711 | +<H2>4.8 - Tag Methods</H2> | |
| 712 | +<P> | |
| 713 | +Lua provides a powerful mechanism to extend its semantics, | |
| 714 | +called <A NAME="Tag Methods"><EM>Tag Methods</EM></A>. | |
| 715 | +A tag method (TM) is a programmer-defined function | |
| 716 | +that can be called at many key points of the evaluation of a program, | |
| 717 | +allowing a programmer to change the standard Lua behavior at these points. | |
| 718 | +Each of these points is called an <A NAME="event"><EM>event</EM></A>. | |
| 719 | +<P> | |
| 720 | +The tag method called for any specific event is selected | |
| 721 | +according to the tag of the values involved | |
| 722 | +in the event (see Section <A HREF="#TypesSec">3</A>). | |
| 723 | +The function <A NAME="settagmethod"><TT>settagmethod</TT></A> changes the tag method | |
| 724 | +associated with a given pair <EM><tag, event></EM>. | |
| 725 | +Its first parameter is the tag, the second the event name | |
| 726 | +(a string, see below), | |
| 727 | +and the third parameter is the new method (a function), | |
| 728 | +or <B>nil</B> to restore the default behavior. | |
| 729 | +The function returns the previous tag method. | |
| 730 | +Another function, <A NAME="gettagmethod"><TT>gettagmethod</TT></A>, | |
| 731 | +receives a tag and an event name and returns the | |
| 732 | +current method associated with the pair. | |
| 733 | +<P> | |
| 734 | +Tag methods are called in the following events, | |
| 735 | +identified by the given names. | |
| 736 | +The semantics of tag methods is better explained by a Lua function | |
| 737 | +describing the behavior of the interpreter at each event. | |
| 738 | +The function not only shows when a tag method is called, | |
| 739 | +but also its arguments, its results and the default behavior. | |
| 740 | +Please notice that the code shown here is only illustrative; | |
| 741 | +the real behavior is hard coded in the interpreter, | |
| 742 | +and it is much more efficient than this simulation. | |
| 743 | +All functions used in these descriptions | |
| 744 | +(<CODE>rawgetglobal</CODE>, <CODE>tonumber</CODE>, <CODE>call</CODE>, etc) | |
| 745 | +are described in Section <A HREF="#predefined">6.1</A>. | |
| 746 | +<P> | |
| 747 | +<DL> | |
| 748 | +<P> | |
| 749 | +<DT><B>``add'':</B><DD><A NAME="add event"></A> | |
| 750 | +called when a <CODE>+</CODE> operation is applied to non numerical operands. | |
| 751 | +<P> | |
| 752 | +The function <CODE>getbinmethod</CODE> defines how Lua chooses a tag method | |
| 753 | +for a binary operation. | |
| 754 | +First Lua tries the first operand. | |
| 755 | +If its tag does not define a tag method for the operation, | |
| 756 | +then Lua tries the second operand. | |
| 757 | +If it also fails, then it gets a tag method from tag 0: | |
| 758 | +<LISTING> | |
| 759 | + function getbinmethod (op1, op2, event) | |
| 760 | + return gettagmethod(tag(op1), event) or | |
| 761 | + gettagmethod(tag(op2), event) or | |
| 762 | + gettagmethod(0, event) | |
| 763 | + end | |
| 764 | +</LISTING> | |
| 765 | +<LISTING> | |
| 766 | + function add_event (op1, op2) | |
| 767 | + local o1, o2 = tonumber(op1), tonumber(op2) | |
| 768 | + if o1 and o2 then -- both operands are numeric | |
| 769 | + return o1+o2 -- '+' here is the primitive 'add' | |
| 770 | + else -- at least one of the operands is not numeric. | |
| 771 | + local tm = getbinmethod(op1, op2, "add") | |
| 772 | + if tm then | |
| 773 | + -- call the method with both operands and an extra | |
| 774 | + -- argument with the event name | |
| 775 | + return tm(op1, op2, "add") | |
| 776 | + else -- no tag method available: Default behavior | |
| 777 | + error("unexpected type at arithmetic operation") | |
| 778 | + end | |
| 779 | + end | |
| 780 | + end | |
| 781 | +</LISTING> | |
| 782 | +<P> | |
| 783 | +<DT><B>``sub'':</B><DD><A NAME="sub event"></A> | |
| 784 | +called when a <CODE>-</CODE> operation is applied to non numerical operands. | |
| 785 | +Behavior similar to <CODE>"add"</CODE> event. | |
| 786 | +<P> | |
| 787 | +<DT><B>``mul'':</B><DD><A NAME="mul event"></A> | |
| 788 | +called when a <CODE>*</CODE> operation is applied to non numerical operands. | |
| 789 | +Behavior similar to <CODE>"add"</CODE> event. | |
| 790 | +<P> | |
| 791 | +<DT><B>``div'':</B><DD><A NAME="div event"></A> | |
| 792 | +called when a <CODE>/</CODE> operation is applied to non numerical operands. | |
| 793 | +Behavior similar to <CODE>"add"</CODE> event. | |
| 794 | +<P> | |
| 795 | +<DT><B>``pow'':</B><DD><A NAME="pow event"></A> | |
| 796 | +called when a <CODE>^</CODE> operation is applied. | |
| 797 | +<LISTING> | |
| 798 | + function pow_event (op1, op2) | |
| 799 | + local tm = getbinmethod(op1, op2, "pow") | |
| 800 | + if tm then | |
| 801 | + -- call the method with both operands and an extra | |
| 802 | + -- argument with the event name | |
| 803 | + return tm(op1, op2, "pow") | |
| 804 | + else -- no tag method available: Default behavior | |
| 805 | + error("unexpected type at arithmetic operation") | |
| 806 | + end | |
| 807 | + end | |
| 808 | +</LISTING> | |
| 809 | +<P> | |
| 810 | +<DT><B>``unm'':</B><DD><A NAME="unm event"></A> | |
| 811 | +called when an unary <CODE>-</CODE> operation is applied to a non numerical operand. | |
| 812 | +<LISTING> | |
| 813 | + function unm_event (op) | |
| 814 | + local o = tonumber(op) | |
| 815 | + if o then -- operand is numeric | |
| 816 | + return -o -- '-' here is the primitive 'unm' | |
| 817 | + else -- the operand is not numeric. | |
| 818 | + -- Try to get a tag method from the operand; | |
| 819 | + -- if it does not have one, try a "global" one (tag 0) | |
| 820 | + local tm = gettagmethod(tag(op), "unm") or | |
| 821 | + gettagmethod(0, "unm") | |
| 822 | + if tm then | |
| 823 | + -- call the method with the operand, nil, and an extra | |
| 824 | + -- argument with the event name | |
| 825 | + return tm(op, nil, "unm") | |
| 826 | + else -- no tag method available: Default behavior | |
| 827 | + error("unexpected type at arithmetic operation") | |
| 828 | + end | |
| 829 | + end | |
| 830 | + end | |
| 831 | +</LISTING> | |
| 832 | +<P> | |
| 833 | +<DT><B>``lt'':</B><DD><A NAME="lt event"></A> | |
| 834 | +called when a <CODE><</CODE> operation is applied to non numerical | |
| 835 | +or non string operands. | |
| 836 | +<LISTING> | |
| 837 | + function lt_event (op1, op2) | |
| 838 | + if type(op1) == "number" and type(op2) == "number" then | |
| 839 | + return op1 < op2 -- numeric comparison | |
| 840 | + elseif type(op1) == "string" and type(op2) == "string" then | |
| 841 | + return op1 < op2 -- lexicographic comparison | |
| 842 | + else | |
| 843 | + local tm = getbinmethod(op1, op2, "lt") | |
| 844 | + if tm then | |
| 845 | + return tm(op1, op2, "lt") | |
| 846 | + else | |
| 847 | + error("unexpected type at comparison"); | |
| 848 | + end | |
| 849 | + end | |
| 850 | + end | |
| 851 | +</LISTING> | |
| 852 | +<P> | |
| 853 | +<DT><B>``gt'':</B><DD><A NAME="gt event"></A> | |
| 854 | +called when a <CODE>></CODE> operation is applied to non numerical | |
| 855 | +or non string operands. | |
| 856 | +Behavior similar to <CODE>"lt"</CODE> event. | |
| 857 | +<P> | |
| 858 | +<DT><B>``le'':</B><DD><A NAME="le event"></A> | |
| 859 | +called when a <CODE><=</CODE> operation is applied to non numerical | |
| 860 | +or non string operands. | |
| 861 | +Behavior similar to <CODE>"lt"</CODE> event. | |
| 862 | +<P> | |
| 863 | +<DT><B>``ge'':</B><DD><A NAME="ge event"></A> | |
| 864 | +called when a <CODE>>=</CODE> operation is applied to non numerical | |
| 865 | +or non string operands. | |
| 866 | +Behavior similar to <CODE>"lt"</CODE> event. | |
| 867 | +<P> | |
| 868 | +<DT><B>``concat'':</B><DD><A NAME="concatenation event"></A> | |
| 869 | +called when a concatenation is applied to non string operands. | |
| 870 | +<LISTING> | |
| 871 | + function concat_event (op1, op2) | |
| 872 | + if (type(op1) == "string" or type(op1) == "number") and | |
| 873 | + (type(op2) == "string" or type(op2) == "number") then | |
| 874 | + return op1..op2 -- primitive string concatenation | |
| 875 | + else | |
| 876 | + local tm = getbinmethod(op1, op2, "concat") | |
| 877 | + if tm then | |
| 878 | + return tm(op1, op2, "concat") | |
| 879 | + else | |
| 880 | + error("unexpected type for concatenation") | |
| 881 | + end | |
| 882 | + end | |
| 883 | + end | |
| 884 | +</LISTING> | |
| 885 | +<P> | |
| 886 | +<DT><B>``index'':</B><DD><A NAME="index event"></A> | |
| 887 | +called when Lua tries to retrieve the value of an index | |
| 888 | +not present in a table. | |
| 889 | +See event <CODE>"gettable"</CODE> for its semantics. | |
| 890 | +<P> | |
| 891 | +<DT><B>``getglobal'':</B><DD><A NAME="getglobal event"></A> | |
| 892 | +called whenever Lua accesses a global variable. | |
| 893 | +This method can only be set for <B>nil</B> and for tags | |
| 894 | +created by <CODE>newtag</CODE>. | |
| 895 | +<LISTING> | |
| 896 | + function getglobal (varname) | |
| 897 | + local value = rawgetglobal(varname) | |
| 898 | + local tm = gettagmethod(tag(value), "getglobal") | |
| 899 | + if not tm then | |
| 900 | + return value | |
| 901 | + else | |
| 902 | + return tm(varname, value) | |
| 903 | + end | |
| 904 | + end | |
| 905 | +</LISTING> | |
| 906 | +Notice: the function <CODE>getglobal</CODE> is pre-defined in Lua (see Section <A HREF="#predefined">6.1</A>). | |
| 907 | +<P> | |
| 908 | +<DT><B>``setglobal'':</B><DD><A NAME="setglobal event"></A> | |
| 909 | +called whenever Lua assigns to a global variable. | |
| 910 | +This method cannot be set for numbers, strings, and tables and | |
| 911 | +userdata with default tags. | |
| 912 | +<LISTING> | |
| 913 | + function setglobal (varname, newvalue) | |
| 914 | + local oldvalue = rawgetglobal(varname) | |
| 915 | + local tm = gettagmethod(tag(oldvalue), "setglobal") | |
| 916 | + if not tm then | |
| 917 | + return rawsetglobal(varname, newvalue) | |
| 918 | + else | |
| 919 | + return tm(varname, oldvalue, newvalue) | |
| 920 | + end | |
| 921 | + end | |
| 922 | +</LISTING> | |
| 923 | +Notice: the function <CODE>setglobal</CODE> is pre-defined in Lua (see Section <A HREF="#predefined">6.1</A>). | |
| 924 | +<P> | |
| 925 | +<DT><B>``gettable'':</B><DD><A NAME="gettable event"></A> | |
| 926 | +called whenever Lua accesses an indexed variable. | |
| 927 | +This method cannot be set for tables with default tag. | |
| 928 | +<LISTING> | |
| 929 | + function gettable_event (table, index) | |
| 930 | + local tm = gettagmethod(tag(table), "gettable") | |
| 931 | + if tm then | |
| 932 | + return tm(table, index) | |
| 933 | + elseif type(table) ~= "table" then | |
| 934 | + error("indexed expression not a table"); | |
| 935 | + else | |
| 936 | + local v = rawgettable(table, index) | |
| 937 | + tm = gettagmethod(tag(table), "index") | |
| 938 | + if (v == nil) and tm then | |
| 939 | + return tm(table, index) | |
| 940 | + else | |
| 941 | + return v | |
| 942 | + end | |
| 943 | + end | |
| 944 | + end | |
| 945 | +</LISTING> | |
| 946 | +<P> | |
| 947 | +<DT><B>``settable'':</B><DD><A NAME="settable event"></A> | |
| 948 | +called when Lua assigns to an indexed variable. | |
| 949 | +This method cannot be set for tables with default tag. | |
| 950 | +<LISTING> | |
| 951 | + function settable_event (table, index, value) | |
| 952 | + local tm = gettagmethod(tag(table), "settable") | |
| 953 | + if tm then | |
| 954 | + tm(table, index, value) | |
| 955 | + elseif type(table) ~= "table" then | |
| 956 | + error("indexed expression not a table") | |
| 957 | + else | |
| 958 | + rawsettable(table, index, value) | |
| 959 | + end | |
| 960 | + end | |
| 961 | +</LISTING> | |
| 962 | +<P> | |
| 963 | +<DT><B>``function'':</B><DD><A NAME="function event"></A> | |
| 964 | +called when Lua tries to call a non function value. | |
| 965 | +<LISTING> | |
| 966 | + function function_event (func, ...) | |
| 967 | + if type(func) == "function" then | |
| 968 | + return call(func, arg) | |
| 969 | + else | |
| 970 | + local tm = gettagmethod(tag(func), "function") | |
| 971 | + if tm then | |
| 972 | + local i = arg.n | |
| 973 | + while i > 0 do | |
| 974 | + arg[i+1] = arg[i] | |
| 975 | + i = i-1 | |
| 976 | + end | |
| 977 | + arg.n = arg.n+1 | |
| 978 | + arg[1] = func | |
| 979 | + return call(tm, arg) | |
| 980 | + else | |
| 981 | + error("call expression not a function") | |
| 982 | + end | |
| 983 | + end | |
| 984 | + end | |
| 985 | +</LISTING> | |
| 986 | +<P> | |
| 987 | +<DT><B>``gc'':</B><DD><A NAME="gc event"></A> | |
| 988 | +called when Lua is garbage collecting an object. | |
| 989 | +This method cannot be set for strings, numbers, functions, | |
| 990 | +and userdata with default tag. | |
| 991 | +For each object to be collected, | |
| 992 | +Lua does the equivalent of the following function: | |
| 993 | +<LISTING> | |
| 994 | + function gc_event (obj) | |
| 995 | + local tm = gettagmethod(tag(obj), "gc") | |
| 996 | + if tm then | |
| 997 | + tm(obj) | |
| 998 | + end | |
| 999 | + end | |
| 1000 | +</LISTING> | |
| 1001 | +Moreover, at the end of a garbage collection cycle, | |
| 1002 | +Lua does the equivalent of the call <CODE>gc_event(nil)</CODE>. | |
| 1003 | +<P> | |
| 1004 | +</DL> | |
| 1005 | +<P> | |
| 1006 | +<P> | |
| 1007 | +<P> | |
| 1008 | +<A NAME="error"></A> | |
| 1009 | +<A NAME="4.9"></A> | |
| 1010 | +<H2>4.9 - Error Handling</H2> | |
| 1011 | +<P> | |
| 1012 | +Because Lua is an extension language, | |
| 1013 | +all Lua actions start from C code calling a function from the Lua library. | |
| 1014 | +Whenever an error occurs during Lua compilation or execution, | |
| 1015 | +the <A NAME="error method"><EM>error method</EM></A> is called, | |
| 1016 | +and then the corresponding function from the library | |
| 1017 | +(<CODE>lua_dofile</CODE>, <CODE>lua_dostring</CODE>, or <CODE>lua_callfunction</CODE>) | |
| 1018 | +is terminated returning an error condition. | |
| 1019 | +<P> | |
| 1020 | +The only argument to the error method is a string | |
| 1021 | +describing the error. | |
| 1022 | +The default method prints this message in <CODE>stderr</CODE>. | |
| 1023 | +If needed, it is possible to change the error method with the | |
| 1024 | +function <CODE>seterrormethod</CODE>, | |
| 1025 | +which gets the new error handler as its only parameter | |
| 1026 | +(see Section <A HREF="#pdf-seterrormethod">6.1</A>). | |
| 1027 | +The standard I/O library uses this facility to redefine the error method, | |
| 1028 | +using the debug facilities (see Section <A HREF="#debugI">7</A>), | |
| 1029 | +in order to print some extra information, | |
| 1030 | +like the call stack. | |
| 1031 | +<P> | |
| 1032 | +To provide more information about errors, | |
| 1033 | +Lua programs should include the compilation pragma <CODE>$debug</CODE>. | |
| 1034 | +<A NAME="pragma"></A> | |
| 1035 | +<A NAME="debug pragma"></A> | |
| 1036 | +When an error occurs in a program compiled with this option, | |
| 1037 | +the I/O error routine is able to print the number of the | |
| 1038 | +lines where the calls (and the error) were made. | |
| 1039 | +<P> | |
| 1040 | +Lua code can explicitly generate an error by calling the built-in | |
| 1041 | +function <CODE>error</CODE> (see Section <A HREF="#pdf-error">6.1</A>). | |
| 1042 | +<P> | |
| 1043 | +<P> | |
| 1044 | +<!-- ====================================================================== --> | |
| 1045 | +<HR> | |
| 1046 | +<A NAME="5."></A> | |
| 1047 | +<H1>5 - The Application Program Interface</H1> | |
| 1048 | +<P> | |
| 1049 | +This section describes the API for Lua, that is, | |
| 1050 | +the set of C functions available to the host program to communicate | |
| 1051 | +with the Lua library. | |
| 1052 | +The API functions can be classified in the following categories: | |
| 1053 | +<OL> | |
| 1054 | +<LI>exchanging values between C and Lua; | |
| 1055 | +<LI>executing Lua code; | |
| 1056 | +<LI>manipulating (reading and writing) Lua objects; | |
| 1057 | +<LI>calling Lua functions; | |
| 1058 | +<LI>C functions to be called by Lua; | |
| 1059 | +<LI>manipulating references to Lua Objects. | |
| 1060 | +</OL> | |
| 1061 | +All API functions and related types and constants | |
| 1062 | +are declared in the header file <CODE>lua.h</CODE>. | |
| 1063 | +<P> | |
| 1064 | +<A NAME="valuesCLua"></A> | |
| 1065 | +<A NAME="5.1"></A> | |
| 1066 | +<H2>5.1 - Exchanging Values between C and Lua</H2> | |
| 1067 | +Because Lua has no static type system, | |
| 1068 | +all values passed between Lua and C have type | |
| 1069 | +<CODE>lua_Object</CODE><A NAME="lua_Object"></A>, | |
| 1070 | +which works like an abstract type in C that can hold any Lua value. | |
| 1071 | +Values of type <CODE>lua_Object</CODE> have no meaning outside Lua; | |
| 1072 | +for instance, | |
| 1073 | +the comparison of two <CODE>lua_Object's</CODE> is undefined. | |
| 1074 | +<P> | |
| 1075 | +To check the type of a <CODE>lua_Object</CODE>, | |
| 1076 | +the following functions are available: | |
| 1077 | +<A NAME="lua_isnil"></A><A NAME="lua_isnumber"></A><A NAME="lua_isstring"></A> | |
| 1078 | +<A NAME="lua_istable"></A><A NAME="lua_iscfunction"></A><A NAME="lua_isuserdata"></A> | |
| 1079 | +<A NAME="lua_isfunction"></A> | |
| 1080 | +<LISTING> | |
| 1081 | +int lua_isnil (lua_Object object); | |
| 1082 | +int lua_isnumber (lua_Object object); | |
| 1083 | +int lua_isstring (lua_Object object); | |
| 1084 | +int lua_istable (lua_Object object); | |
| 1085 | +int lua_isfunction (lua_Object object); | |
| 1086 | +int lua_iscfunction (lua_Object object); | |
| 1087 | +int lua_isuserdata (lua_Object object); | |
| 1088 | +</LISTING> | |
| 1089 | +All macros return 1 if the object is compatible with the given type, | |
| 1090 | +and 0 otherwise. | |
| 1091 | +The function <CODE>lua_isnumber</CODE> accepts numbers and numerical strings, | |
| 1092 | +whereas | |
| 1093 | +<CODE>lua_isstring</CODE> accepts strings and numbers (see Section <A HREF="#coercion">4.3</A>), | |
| 1094 | +and <CODE>lua_isfunction</CODE> accepts Lua and C functions. | |
| 1095 | +<P> | |
| 1096 | +To check the tag of a <CODE>lua_Object</CODE>, | |
| 1097 | +the following function is available: | |
| 1098 | +<A NAME="lua_tag"></A> | |
| 1099 | +<LISTING> | |
| 1100 | +int lua_tag (lua_Object object); | |
| 1101 | +</LISTING> | |
| 1102 | +<P> | |
| 1103 | +To translate a value from type <CODE>lua_Object</CODE> to a specific C type, | |
| 1104 | +the programmer can use: | |
| 1105 | +<A NAME="lua_getnumber"></A><A NAME="lua_getstring"></A> | |
| 1106 | +<A NAME="lua_getcfunction"></A><A NAME="lua_getuserdata"></A> | |
| 1107 | +<LISTING> | |
| 1108 | +float lua_getnumber (lua_Object object); | |
| 1109 | +char *lua_getstring (lua_Object object); | |
| 1110 | +lua_CFunction lua_getcfunction (lua_Object object); | |
| 1111 | +void *lua_getuserdata (lua_Object object); | |
| 1112 | +</LISTING> | |
| 1113 | +<P> | |
| 1114 | +<CODE>lua_getnumber</CODE> converts a <CODE>lua_Object</CODE> to a floating-point number. | |
| 1115 | +This <CODE>lua_Object</CODE> must be a number or a string convertible to number | |
| 1116 | +(see Section <A HREF="#coercion">4.3</A>); otherwise, the function returns 0. | |
| 1117 | +<P> | |
| 1118 | +<CODE>lua_getstring</CODE> converts a <CODE>lua_Object</CODE> to a string (<CODE>char*</CODE>). | |
| 1119 | +This <CODE>lua_Object</CODE> must be a string or a number; | |
| 1120 | +otherwise, the function returns 0 (the <CODE>NULL</CODE> pointer). | |
| 1121 | +This function does not create a new string, | |
| 1122 | +but returns a pointer to a string inside the Lua environment. | |
| 1123 | +Because Lua has garbage collection, | |
| 1124 | +there is no guarantee that such pointer will be valid after the block ends | |
| 1125 | +(see below). | |
| 1126 | +<P> | |
| 1127 | +<CODE>lua_getcfunction</CODE> converts a <CODE>lua_Object</CODE> to a C function. | |
| 1128 | +This <CODE>lua_Object</CODE> must have type <EM>CFunction</EM>; | |
| 1129 | +otherwise, the function returns 0 (the <CODE>NULL</CODE> pointer). | |
| 1130 | +The type <CODE>lua_CFunction</CODE> is explained in Section <A HREF="#LuacallC">5.5</A>. | |
| 1131 | +<P> | |
| 1132 | +<CODE>lua_getuserdata</CODE> converts a <CODE>lua_Object</CODE> to <CODE>void*</CODE>. | |
| 1133 | +This <CODE>lua_Object</CODE> must have type <EM>userdata</EM>; | |
| 1134 | +otherwise, the function returns 0 (the <CODE>NULL</CODE> pointer). | |
| 1135 | +<P> | |
| 1136 | +Because Lua has automatic memory management and garbage collection, | |
| 1137 | +a <CODE>lua_Object</CODE> has a limited scope, | |
| 1138 | +and is only valid inside the <EM>block</EM> where it was created. | |
| 1139 | +A C function called from Lua is a block, | |
| 1140 | +and its parameters are valid only until its end. | |
| 1141 | +It is good programming practice to convert Lua objects to C values | |
| 1142 | +as soon as they are available, | |
| 1143 | +and never to store <CODE>lua_Object</CODE>s in C global variables. | |
| 1144 | +<P> | |
| 1145 | +A garbage collection cycle can be forced by: | |
| 1146 | +<A NAME="lua_collectgarbage"></A> | |
| 1147 | +<LISTING> | |
| 1148 | +long lua_collectgarbage (long limit); | |
| 1149 | +</LISTING> | |
| 1150 | +This function returns the number of objects collected. | |
| 1151 | +The argument <CODE>limit</CODE> makes the next cycle occur only | |
| 1152 | +when that number of new objects have been created. | |
| 1153 | +If <CODE>limit</CODE>=0, then Lua uses an adaptable heuristics to set this limit. | |
| 1154 | +<P> | |
| 1155 | +<P> | |
| 1156 | +All communication between Lua and C is done through two | |
| 1157 | +abstract data types, called <A NAME="lua2C"><EM>lua2C</EM></A> and <A NAME="C2lua"><EM>C2lua</EM></A>. | |
| 1158 | +The first one, as the name implies, is used to pass values | |
| 1159 | +from Lua to C: parameters when Lua calls C and results when C calls Lua. | |
| 1160 | +The structure C2lua is used in the reverse direction: | |
| 1161 | +parameters when C calls Lua and results when Lua calls C. | |
| 1162 | +<P> | |
| 1163 | +The structure lua2C is an abstract array, | |
| 1164 | +which can be indexed with the function: | |
| 1165 | +<A NAME="lua_lua2C"></A> | |
| 1166 | +<LISTING> | |
| 1167 | +lua_Object lua_lua2C (int number); | |
| 1168 | +</LISTING> | |
| 1169 | +where <CODE>number</CODE> starts with 1. | |
| 1170 | +When called with a number larger than the array size, | |
| 1171 | +this function returns <CODE>LUA_NOOBJECT</CODE><A NAME="LUA_NOOBJECT"></A>. | |
| 1172 | +In this way, it is possible to write C functions that receive | |
| 1173 | +a variable number of parameters, | |
| 1174 | +and to call Lua functions that return a variable number of results. | |
| 1175 | +Notice that the structure lua2C cannot be directly modified by C code. | |
| 1176 | +<P> | |
| 1177 | +The second structure, C2lua, is a stack. | |
| 1178 | +Pushing elements into this stack | |
| 1179 | +is done with the following functions: | |
| 1180 | +<A NAME="lua_pushnumber"></A><A NAME="lua_pushstring"></A> | |
| 1181 | +<A NAME="lua_pushcfunction"></A><A NAME="lua_pushusertag"></A> | |
| 1182 | +<A NAME="lua_pushnil"></A><A NAME="lua_pushobject"></A> | |
| 1183 | +<A NAME="pushing"></A> | |
| 1184 | +<A NAME="lua_pushuserdata"></A> | |
| 1185 | +<LISTING> | |
| 1186 | +void lua_pushnumber (double n); | |
| 1187 | +void lua_pushstring (char *s); | |
| 1188 | +void lua_pushcfunction (lua_CFunction f); | |
| 1189 | +void lua_pushusertag (void *u, int tag); | |
| 1190 | +void lua_pushnil (void); | |
| 1191 | +void lua_pushobject (lua_Object object); | |
| 1192 | +</LISTING> | |
| 1193 | +All of them receive a C value, | |
| 1194 | +convert it to a corresponding <CODE>lua_Object</CODE>, | |
| 1195 | +and leave the result on the top of C2lua. | |
| 1196 | +The function | |
| 1197 | +<A NAME="lua_pop"></A> | |
| 1198 | +<LISTING> | |
| 1199 | +lua_Object lua_pop (void); | |
| 1200 | +</LISTING> | |
| 1201 | +returns a reference to the object at the top of the C2lua stack, | |
| 1202 | +and pops it. | |
| 1203 | +<P> | |
| 1204 | +As a general rule, all API functions pop from the stack | |
| 1205 | +all elements that they use. | |
| 1206 | +<P> | |
| 1207 | +Because userdata are objects, | |
| 1208 | +the function <CODE>lua_pushusertag</CODE> may create a new userdata. | |
| 1209 | +If Lua has a userdata with the given value (<CODE>void*</CODE>) and tag, | |
| 1210 | +that userdata is pushed. | |
| 1211 | +Otherwise, a new userdata is created, with the given value and tag. | |
| 1212 | +If this function is called with | |
| 1213 | +<CODE>tag</CODE>=<CODE>LUA_ANYTAG</CODE><A NAME="LUA_ANYTAG"></A>, | |
| 1214 | +then Lua will try to find any userdata with the given value, | |
| 1215 | +no matter its tag. | |
| 1216 | +If there is no userdata with that value, then a new one is created, | |
| 1217 | +with tag=0. | |
| 1218 | +<P> | |
| 1219 | +Userdata can have different tags, | |
| 1220 | +whose semantics are only known to the host program. | |
| 1221 | +Tags are created with the function: | |
| 1222 | +<A NAME="lua_newtag"></A> | |
| 1223 | +<LISTING> | |
| 1224 | +int lua_newtag (void); | |
| 1225 | +</LISTING> | |
| 1226 | +The function <CODE>lua_settag</CODE> changes the tag of | |
| 1227 | +the object on the top of C2lua (and pops it); | |
| 1228 | +the object must be a userdata or a table. | |
| 1229 | +<A NAME="lua_settag"></A> | |
| 1230 | +<LISTING> | |
| 1231 | +void lua_settag (int tag); | |
| 1232 | +</LISTING> | |
| 1233 | +<CODE>tag</CODE> must be a value created with <CODE>lua_newtag</CODE>. | |
| 1234 | +<P> | |
| 1235 | +When C code calls Lua repeatedly, as in a loop, | |
| 1236 | +objects returned by these calls can accumulate, | |
| 1237 | +and may cause a stack overflow. | |
| 1238 | +To avoid this, | |
| 1239 | +nested blocks can be defined with the functions: | |
| 1240 | +<LISTING> | |
| 1241 | +void lua_beginblock (void); | |
| 1242 | +void lua_endblock (void); | |
| 1243 | +</LISTING> | |
| 1244 | +After the end of the block, | |
| 1245 | +all <CODE>lua_Object</CODE>'s created inside it are released. | |
| 1246 | +The use of explicit nested blocks is strongly encouraged. | |
| 1247 | +<P> | |
| 1248 | +<A NAME="5.2"></A> | |
| 1249 | +<H2>5.2 - Executing Lua Code</H2> | |
| 1250 | +A host program can execute Lua chunks written in a file or in a string | |
| 1251 | +using the following functions: | |
| 1252 | +<A NAME="lua_dofile"></A><A NAME="lua_dostring"></A> | |
| 1253 | +<LISTING> | |
| 1254 | +int lua_dofile (char *filename); | |
| 1255 | +int lua_dostring (char *string); | |
| 1256 | +</LISTING> | |
| 1257 | +Both functions return an error code: | |
| 1258 | +0, in case of success; non zero, in case of errors. | |
| 1259 | +More specifically, <CODE>lua_dofile</CODE> returns 2 if for any reason | |
| 1260 | +it could not open the file. | |
| 1261 | +The function <CODE>lua_dofile</CODE>, if called with argument <CODE>NULL</CODE>, | |
| 1262 | +executes the <CODE>stdin</CODE> stream. | |
| 1263 | +Function <CODE>lua_dofile</CODE> is also able to execute pre-compiled chunks. | |
| 1264 | +It automatically detects whether the file is text or binary, | |
| 1265 | +and loads it accordingly (see program <A NAME="luac"><TT>luac</TT></A>). | |
| 1266 | +<P> | |
| 1267 | +These functions return, in structure lua2C, | |
| 1268 | +any values eventually returned by the chunks. | |
| 1269 | +They also empty the stack C2lua. | |
| 1270 | +<P> | |
| 1271 | +<P> | |
| 1272 | +<A NAME="5.3"></A> | |
| 1273 | +<H2>5.3 - Manipulating Lua Objects</H2> | |
| 1274 | +To read the value of any global Lua variable, | |
| 1275 | +one uses the function: | |
| 1276 | +<A NAME="lua_getglobal"></A> | |
| 1277 | +<LISTING> | |
| 1278 | +lua_Object lua_getglobal (char *varname); | |
| 1279 | +</LISTING> | |
| 1280 | +As in Lua, this function may trigger a tag method. | |
| 1281 | +To read the real value of any global variable, | |
| 1282 | +without invoking any tag method, | |
| 1283 | +this function has a <EM>raw</EM> version: | |
| 1284 | +<A NAME="lua_rawgetglobal"></A> | |
| 1285 | +<LISTING> | |
| 1286 | +lua_Object lua_rawgetglobal (char *varname); | |
| 1287 | +</LISTING> | |
| 1288 | +<P> | |
| 1289 | +To store a value previously pushed onto C2lua in a global variable, | |
| 1290 | +there is the function: | |
| 1291 | +<A NAME="lua_setglobal"></A> | |
| 1292 | +<LISTING> | |
| 1293 | +void lua_setglobal (char *varname); | |
| 1294 | +</LISTING> | |
| 1295 | +As in Lua, this function may trigger a tag method. | |
| 1296 | +To set the real value of any global variable, | |
| 1297 | +without invoking any tag method, | |
| 1298 | +this function has a <EM>raw</EM> version: | |
| 1299 | +<A NAME="lua_rawgetglobal"></A> | |
| 1300 | +<LISTING> | |
| 1301 | +void lua_rawsetglobal (char *varname); | |
| 1302 | +</LISTING> | |
| 1303 | +<P> | |
| 1304 | +Tables can also be manipulated via the API. | |
| 1305 | +The function | |
| 1306 | +<A NAME="lua_gettable"></A> | |
| 1307 | +<LISTING> | |
| 1308 | +lua_Object lua_gettable (void); | |
| 1309 | +</LISTING> | |
| 1310 | +pops from the stack C2lua a table and an index, | |
| 1311 | +and returns the contents of the table at that index. | |
| 1312 | +As in Lua, this operation may trigger a tag method. | |
| 1313 | +To get the real value of any table index, | |
| 1314 | +without invoking any tag method, | |
| 1315 | +this function has a <EM>raw</EM> version: | |
| 1316 | +<A NAME="lua_rawgetglobal"></A> | |
| 1317 | +<LISTING> | |
| 1318 | +lua_Object lua_rawgettable (void); | |
| 1319 | +</LISTING> | |
| 1320 | +<P> | |
| 1321 | +To store a value in an index, | |
| 1322 | +the program must push the table, the index, | |
| 1323 | +and the value onto C2lua, | |
| 1324 | +and then call the function: | |
| 1325 | +<A NAME="lua_settable"></A> | |
| 1326 | +<LISTING> | |
| 1327 | +void lua_settable (void); | |
| 1328 | +</LISTING> | |
| 1329 | +Again, the tag method for ``settable'' may be called. | |
| 1330 | +To set the real value of any table index, | |
| 1331 | +without invoking any tag method, | |
| 1332 | +this function has a <EM>raw</EM> version: | |
| 1333 | +<A NAME="lua_rawsettable"></A> | |
| 1334 | +<LISTING> | |
| 1335 | +void lua_rawsettable (void); | |
| 1336 | +</LISTING> | |
| 1337 | +<P> | |
| 1338 | +Finally, the function | |
| 1339 | +<A NAME="lua_createtable"></A> | |
| 1340 | +<LISTING> | |
| 1341 | +lua_Object lua_createtable (void); | |
| 1342 | +</LISTING> | |
| 1343 | +creates and returns a new, empty table. | |
| 1344 | +<P> | |
| 1345 | +<P> | |
| 1346 | +<A NAME="5.4"></A> | |
| 1347 | +<H2>5.4 - Calling Lua Functions</H2> | |
| 1348 | +Functions defined in Lua by a chunk executed with | |
| 1349 | +<CODE>dofile</CODE> or <CODE>dostring</CODE> can be called from the host program. | |
| 1350 | +This is done using the following protocol: | |
| 1351 | +first, the arguments to the function are pushed onto C2lua | |
| 1352 | +(see Section <A HREF="#pushing">5.1</A>), in direct order, i.e., the first argument is pushed first. | |
| 1353 | +<P> | |
| 1354 | +Then, the function is called using | |
| 1355 | +<A NAME="lua_callfunction"></A> | |
| 1356 | +<LISTING> | |
| 1357 | +int lua_callfunction (lua_Object function); | |
| 1358 | +</LISTING> | |
| 1359 | +This function returns an error code: | |
| 1360 | +0, in case of success; non zero, in case of errors. | |
| 1361 | +Finally, the results (a Lua function may return many values) | |
| 1362 | +are returned in structure lua2C, | |
| 1363 | +and can be retrieved with the macro <CODE>lua_getresult</CODE>, | |
| 1364 | +<A NAME="lua_getresult"></A> | |
| 1365 | +which is just another name to the function <CODE>lua_lua2C</CODE>. | |
| 1366 | +Notice that the function <CODE>lua_callfunction</CODE> | |
| 1367 | +pops all elements from the C2lua stack. | |
| 1368 | +<P> | |
| 1369 | +The following example shows how a C program may do the | |
| 1370 | +equivalent to the Lua code: | |
| 1371 | +<LISTING> | |
| 1372 | + a = f("how", t.x, 4) | |
| 1373 | +</LISTING> | |
| 1374 | +<LISTING> | |
| 1375 | + lua_pushstring("how"); /* 1st argument */ | |
| 1376 | + lua_pushobject(lua_getglobal("t")); /* push value of global 't' */ | |
| 1377 | + lua_pushstring("x"); /* push the string 'x' */ | |
| 1378 | + lua_pushobject(lua_gettable()); /* push result of t.x (= t['x']) */ | |
| 1379 | + lua_pushnumber(4); /* 3th argument */ | |
| 1380 | + lua_callfunction(lua_getglobal("f")); /* call Lua function */ | |
| 1381 | + lua_pushobject(lua_getresult(1)); /* push first result of the call */ | |
| 1382 | + lua_setglobal("a"); /* sets global variable 'a' */ | |
| 1383 | +</LISTING> | |
| 1384 | +<P> | |
| 1385 | +Some special Lua functions have exclusive interfaces. | |
| 1386 | +A C function can generate a Lua error calling the function | |
| 1387 | +<A NAME="lua_error"></A> | |
| 1388 | +<LISTING> | |
| 1389 | +void lua_error (char *message); | |
| 1390 | +</LISTING> | |
| 1391 | +This function never returns. | |
| 1392 | +If the C function has been called from Lua, | |
| 1393 | +then the corresponding Lua execution terminates, | |
| 1394 | +as if an error had occurred inside Lua code. | |
| 1395 | +Otherwise, the whole program terminates with a call to <CODE>exit(1)</CODE>. | |
| 1396 | +<P> | |
| 1397 | +The error handler method (see Section <A HREF="#error">4.9</A>) can be changed with: | |
| 1398 | +<A NAME="lua_seterrormethod"></A> | |
| 1399 | +<LISTING> | |
| 1400 | +lua_Object lua_seterrormethod (void); | |
| 1401 | +</LISTING> | |
| 1402 | +This function sets the object at the top of C2lua | |
| 1403 | +as the new error method, | |
| 1404 | +and returns the old error method value. | |
| 1405 | +<P> | |
| 1406 | +Tag methods can be changed with: | |
| 1407 | +<A NAME="lua_settagmethod"></A> | |
| 1408 | +<LISTING> | |
| 1409 | +lua_Object lua_settagmethod (int tag, char *event); | |
| 1410 | +</LISTING> | |
| 1411 | +The first parameter is the tag, | |
| 1412 | +the second is the event name (see Section <A HREF="#tag-method">4.8</A>); | |
| 1413 | +the new method is pushed from C2lua. | |
| 1414 | +This function returns a <CODE>lua_Object</CODE>, | |
| 1415 | +which is the old tag method value. | |
| 1416 | +To get just the current value of a tag method, | |
| 1417 | +there is the function | |
| 1418 | +<A NAME="lua_gettagmethod"></A> | |
| 1419 | +<LISTING> | |
| 1420 | +lua_Object lua_gettagmethod (int tag, char *event); | |
| 1421 | +</LISTING> | |
| 1422 | +<P> | |
| 1423 | +<P> | |
| 1424 | +<A NAME="LuacallC"></A> | |
| 1425 | +<A NAME="5.5"></A> | |
| 1426 | +<H2>5.5 - C Functions</H2> | |
| 1427 | +To register a C function to Lua, | |
| 1428 | +there is the following macro: | |
| 1429 | +<A NAME="lua_register"></A> | |
| 1430 | +<LISTING> | |
| 1431 | +#define lua_register(n,f) (lua_pushcfunction(f), lua_setglobal(n)) | |
| 1432 | +/* char *n; */ | |
| 1433 | +/* lua_CFunction f; */ | |
| 1434 | +</LISTING> | |
| 1435 | +which receives the name the function will have in Lua, | |
| 1436 | +and a pointer to the function. | |
| 1437 | +This pointer must have type <CODE>lua_CFunction</CODE>, | |
| 1438 | +which is defined as | |
| 1439 | +<A NAME="lua_CFunction"></A> | |
| 1440 | +<LISTING> | |
| 1441 | +typedef void (*lua_CFunction) (void); | |
| 1442 | +</LISTING> | |
| 1443 | +that is, a pointer to a function with no parameters and no results. | |
| 1444 | +<P> | |
| 1445 | +In order to communicate properly with Lua, | |
| 1446 | +a C function must follow a protocol, | |
| 1447 | +which defines the way parameters and results are passed. | |
| 1448 | +<P> | |
| 1449 | +A C function receives its arguments in structure lua2C; | |
| 1450 | +to access them, it uses the macro <CODE>lua_getparam</CODE>, <A NAME="lua_getparam"></A> | |
| 1451 | +again just another name to <CODE>lua_lua2C</CODE>. | |
| 1452 | +To return values, a C function just pushes them onto the stack C2lua, | |
| 1453 | +in direct order (see Section <A HREF="#valuesCLua">5.1</A>). | |
| 1454 | +Like a Lua function, a C function called by Lua can also return | |
| 1455 | +many results. | |
| 1456 | +<P> | |
| 1457 | +For some examples, see files <CODE>strlib.c</CODE>, | |
| 1458 | +<CODE>iolib.c</CODE> and <CODE>mathlib.c</CODE> in Lua distribution. | |
| 1459 | +<P> | |
| 1460 | +<A NAME="5.6"></A> | |
| 1461 | +<H2>5.6 - References to Lua Objects</H2> | |
| 1462 | +<P> | |
| 1463 | +As noted in Section <A HREF="#LuacallC">5.5</A>, <CODE>lua_Object</CODE>s are volatile. | |
| 1464 | +If the C code needs to keep a <CODE>lua_Object</CODE> | |
| 1465 | +outside block boundaries, | |
| 1466 | +then it must create a <A NAME="reference"><EM>reference</EM></A> to the object. | |
| 1467 | +The routines to manipulate references are the following: | |
| 1468 | +<A NAME="lua_ref"></A><A NAME="lua_getref"></A> | |
| 1469 | +<A NAME="lua_unref"></A> | |
| 1470 | +<LISTING> | |
| 1471 | +int lua_ref (int lock); | |
| 1472 | +lua_Object lua_getref (int ref); | |
| 1473 | +void lua_unref (int ref); | |
| 1474 | +</LISTING> | |
| 1475 | +The function <CODE>lua_ref</CODE> creates a reference | |
| 1476 | +to the object that is on the top of the stack, | |
| 1477 | +and returns this reference. | |
| 1478 | +If <CODE>lock</CODE> is true, the object is <EM>locked</EM>: | |
| 1479 | +this means the object will not be garbage collected. | |
| 1480 | +Notice that an unlocked reference may be garbage collected. | |
| 1481 | +Whenever the referenced object is needed, | |
| 1482 | +a call to <CODE>lua_getref</CODE> | |
| 1483 | +returns a handle to it; | |
| 1484 | +if the object has been collected, | |
| 1485 | +<CODE>lua_getref</CODE> returns <CODE>LUA_NOOBJECT</CODE>. | |
| 1486 | +<P> | |
| 1487 | +When a reference is no longer needed, | |
| 1488 | +it can be freed with a call to <CODE>lua_unref</CODE>. | |
| 1489 | +<P> | |
| 1490 | +<P> | |
| 1491 | +<P> | |
| 1492 | +<!-- ====================================================================== --> | |
| 1493 | +<HR> | |
| 1494 | +<A NAME="6."></A> | |
| 1495 | +<H1>6 - Predefined Functions and Libraries</H1> | |
| 1496 | +<P> | |
| 1497 | +The set of <A NAME="predefined functions">predefined functions</A> in Lua is small but powerful. | |
| 1498 | +Most of them provide features that allow some degree of | |
| 1499 | +<A NAME="reflexivity">reflexivity</A> in the language. | |
| 1500 | +Some of these features cannot be simulated with the rest of the | |
| 1501 | +language nor with the standard Lua API. | |
| 1502 | +Others are just convenient interfaces to common API functions. | |
| 1503 | +<P> | |
| 1504 | +The libraries, on the other hand, provide useful routines | |
| 1505 | +that are implemented directly through the standard API. | |
| 1506 | +Therefore, they are not necessary to the language, | |
| 1507 | +and are provided as separate C modules. | |
| 1508 | +Currently there are three standard libraries: | |
| 1509 | +<UL> | |
| 1510 | +<LI>string manipulation; | |
| 1511 | +<LI>mathematical functions (sin, log, etc); | |
| 1512 | +<LI>input and output (plus some system facilities). | |
| 1513 | +</UL> | |
| 1514 | +In order to have access to these libraries, | |
| 1515 | +the host program must call the functions | |
| 1516 | +<CODE>strlib_open</CODE>, <CODE>mathlib_open</CODE>, and <CODE>iolib_open</CODE>, | |
| 1517 | +declared in <CODE>lualib.h</CODE>. | |
| 1518 | +<P> | |
| 1519 | +<P> | |
| 1520 | +<A NAME="predefined"></A> | |
| 1521 | +<A NAME="6.1"></A> | |
| 1522 | +<H2>6.1 - Predefined Functions</H2> | |
| 1523 | +<P> | |
| 1524 | +<h3> <TT>call (func, arg, [retmode])</TT></h3><A NAME="call"></A> | |
| 1525 | +This function calls function <CODE>func</CODE> with | |
| 1526 | +the arguments given by the table <CODE>arg</CODE>. | |
| 1527 | +The call is equivalent to | |
| 1528 | +<LISTING> | |
| 1529 | + func(arg[1], arg[2], ..., arg[arg.n]) | |
| 1530 | +</LISTING> | |
| 1531 | +If <CODE>arg.n</CODE> is not defined, | |
| 1532 | +then Lua stops getting arguments at the first nil value. | |
| 1533 | +<P> | |
| 1534 | +If <CODE>retmode</CODE> is absent, | |
| 1535 | +all results from <CODE>func</CODE> are just returned by the call. | |
| 1536 | +If <CODE>retmode</CODE> is equal to <CODE>"pack"</CODE>, | |
| 1537 | +the results are <EM>packed</EM> in a single table.<A NAME="packed results"></A> | |
| 1538 | +That is, <CODE>call</CODE> returns just one table; | |
| 1539 | +at index <CODE>n</CODE>, the table has the total number of results | |
| 1540 | +from the call; | |
| 1541 | +the first result is at index 1, etc. | |
| 1542 | +For instance, the following calls produce the following results: | |
| 1543 | +<LISTING> | |
| 1544 | +a = call(sin, {5}) --> a = 0.0871557 = sin(5) | |
| 1545 | +a = call(max, {1,4,5; n=2}) --> a = 4 (only 1 and 4 are arguments) | |
| 1546 | +t = {x=1} | |
| 1547 | +a = call(next, {t,nil;n=2}, "pack") --> a={"x", 1; n=2} | |
| 1548 | +</LISTING> | |
| 1549 | +<P> | |
| 1550 | +<h3> <TT>collectgarbage ([limit])</TT></h3><A NAME="collectgarbage"></A> | |
| 1551 | +Forces a garbage collection cycle. | |
| 1552 | +Returns the number of objects collected. | |
| 1553 | +An optional argument, <CODE>limit</CODE>, is a number that | |
| 1554 | +makes the next cycle occur when that number of new | |
| 1555 | +objects have been created. | |
| 1556 | +If absent, Lua uses an adaptable algorithm to set | |
| 1557 | +this limit. | |
| 1558 | +<CODE>collectgarbage</CODE> is equivalent to | |
| 1559 | +the API function <CODE>lua_collectgarbage</CODE>. | |
| 1560 | +<P> | |
| 1561 | +<h3> <TT>dofile (filename)</TT></h3><A NAME="dofile"></A> | |
| 1562 | +This function receives a file name, | |
| 1563 | +opens it, and executes its contents as a Lua chunk, | |
| 1564 | +or as pre-compiled chunks. | |
| 1565 | +When called without arguments, | |
| 1566 | +it executes the contents of the standard input (<CODE>stdin</CODE>). | |
| 1567 | +If there is any error executing the file, | |
| 1568 | +then <CODE>dofile</CODE> returns <B>nil</B>. | |
| 1569 | +Otherwise, it returns the values returned by the chunk, | |
| 1570 | +or a non <B>nil</B> value if the chunk returns no values. | |
| 1571 | +It issues an error when called with a non string argument. | |
| 1572 | +<CODE>dofile</CODE> is equivalent to the API function <CODE>lua_dofile</CODE>. | |
| 1573 | +<P> | |
| 1574 | +<h3> <TT>dostring (string [, errmethod])</TT></h3><A NAME="dostring"></A> | |
| 1575 | +This function executes a given string as a Lua chunk. | |
| 1576 | +If there is any error executing the string, it returns <B>nil</B>. | |
| 1577 | +Otherwise, it returns the values returned by the chunk, | |
| 1578 | +or a non <B>nil</B> value if the chunk returns no values. | |
| 1579 | +If provided, <CODE>errmethod</CODE> is temporarily set as the error method, | |
| 1580 | +while <CODE>string</CODE> runs. | |
| 1581 | +As a particular case, if <CODE>errmethod</CODE> is <B>nil</B>, | |
| 1582 | +no error messages will be issued during the execution of the string. | |
| 1583 | +<P> | |
| 1584 | +<A NAME="pdf-newtag"></A> | |
| 1585 | +<h3> <TT>newtag ()</TT></h3><A NAME="newtag"></A> | |
| 1586 | +Returns a new tag. | |
| 1587 | +<CODE>newtag</CODE> is equivalent to the API function <CODE>lua_newtag</CODE>. | |
| 1588 | +<P> | |
| 1589 | +<h3> <TT>next (table, index)</TT></h3><A NAME="next"></A> | |
| 1590 | +This function allows a program to traverse all fields of a table. | |
| 1591 | +Its first argument is a table and its second argument | |
| 1592 | +is an index in this table. | |
| 1593 | +It returns the next index of the table and the | |
| 1594 | +value associated with the index. | |
| 1595 | +When called with <B>nil</B> as its second argument, | |
| 1596 | +the function returns the first index | |
| 1597 | +of the table (and its associated value). | |
| 1598 | +When called with the last index, or with <B>nil</B> in an empty table, | |
| 1599 | +it returns <B>nil</B>. | |
| 1600 | +<P> | |
| 1601 | +In Lua there is no declaration of fields; | |
| 1602 | +semantically, there is no difference between a | |
| 1603 | +field not present in a table or a field with value <B>nil</B>. | |
| 1604 | +Therefore, the function only considers fields with non <B>nil</B> values. | |
| 1605 | +The order in which the indices are enumerated is not specified, | |
| 1606 | +<EM>not even for numeric indices</EM> | |
| 1607 | +(to traverse a table in numeric order, | |
| 1608 | +use a counter). | |
| 1609 | +If the table is modified in any way during a traversal, | |
| 1610 | +the semantics of <CODE>next</CODE> is undefined. | |
| 1611 | +<P> | |
| 1612 | +This function cannot be written with the standard API. | |
| 1613 | +<P> | |
| 1614 | +<h3> <TT>nextvar (name)</TT></h3><A NAME="nextvar"></A> | |
| 1615 | +This function is similar to the function <CODE>next</CODE>, | |
| 1616 | +but iterates over the global variables. | |
| 1617 | +Its single argument is the name of a global variable, | |
| 1618 | +or <B>nil</B> to get a first name. | |
| 1619 | +Similarly to <CODE>next</CODE>, it returns the name of another variable | |
| 1620 | +and its value, | |
| 1621 | +or <B>nil</B> if there are no more variables. | |
| 1622 | +There can be no assignments to global variables during the traversal; | |
| 1623 | +otherwise the semantics of <CODE>nextvar</CODE> is undefined. | |
| 1624 | +<P> | |
| 1625 | +This function cannot be written with the standard API. | |
| 1626 | +<P> | |
| 1627 | +<h3> <TT>tostring (e)</TT></h3><A NAME="tostring"></A> | |
| 1628 | +This function receives an argument of any type and | |
| 1629 | +converts it to a string in a reasonable format. | |
| 1630 | +<P> | |
| 1631 | +<h3> <TT>print (e1, e2, ...)</TT></h3><A NAME="print"></A> | |
| 1632 | +This function receives any number of arguments, | |
| 1633 | +and prints their values in a reasonable format. | |
| 1634 | +Each value is printed in a new line. | |
| 1635 | +This function is not intended for formatted output, | |
| 1636 | +but as a quick way to show a value, | |
| 1637 | +for instance for error messages or debugging. | |
| 1638 | +See Section <A HREF="#libio">6.4</A> for functions for formatted output. | |
| 1639 | +<P> | |
| 1640 | +<h3> <TT>tonumber (e)</TT></h3><A NAME="tonumber"></A> | |
| 1641 | +This function receives one argument, | |
| 1642 | +and tries to convert it to a number. | |
| 1643 | +If the argument is already a number or a string convertible | |
| 1644 | +to a number (see Section <A HREF="#coercion">4.3</A>), then it returns that number; | |
| 1645 | +otherwise, it returns <B>nil</B>. | |
| 1646 | +<P> | |
| 1647 | +<A NAME="pdf-type"></A> | |
| 1648 | +<h3> <TT>type (v)</TT></h3><A NAME="type"></A> | |
| 1649 | +This function allows Lua to test the type of a value. | |
| 1650 | +It receives one argument, and returns its type, coded as a string. | |
| 1651 | +The possible results of this function are | |
| 1652 | +<CODE>"nil"</CODE> (a string, not the value <B>nil</B>), | |
| 1653 | +<CODE>"number"</CODE>, | |
| 1654 | +<CODE>"string"</CODE>, | |
| 1655 | +<CODE>"table"</CODE>, | |
| 1656 | +<CODE>"function"</CODE>, | |
| 1657 | +and <CODE>"userdata"</CODE>. | |
| 1658 | +<CODE>type</CODE> is equivalent to the API function <CODE>lua_type</CODE>. | |
| 1659 | +<P> | |
| 1660 | +<h3> <TT>tag (v)</TT></h3><A NAME="tag"></A> | |
| 1661 | +This function allows Lua to test the tag of a value (see Section <A HREF="#TypesSec">3</A>). | |
| 1662 | +It receives one argument, and returns its tag (a number). | |
| 1663 | +<CODE>tag</CODE> is equivalent to the API function <CODE>lua_tag</CODE>. | |
| 1664 | +<P> | |
| 1665 | +<h3> <TT>settag (t, tag)</TT></h3><A NAME="settag"></A> | |
| 1666 | +This function sets the tag of a given table (see Section <A HREF="#TypesSec">3</A>). | |
| 1667 | +<CODE>tag</CODE> must be a value created with <CODE>newtag</CODE> | |
| 1668 | +(see Section <A HREF="#pdf-newtag">6.1</A>). | |
| 1669 | +For security reasons, | |
| 1670 | +it is impossible to change the tag of a userdata from Lua. | |
| 1671 | +<P> | |
| 1672 | +<h3> <TT>assert (v)</TT></h3><A NAME="assert"></A> | |
| 1673 | +This function issues an <EM>``assertion failed!''</EM> error | |
| 1674 | +when its argument is <B>nil</B>. | |
| 1675 | +<P> | |
| 1676 | +<A NAME="pdf-error"></A> | |
| 1677 | +<h3> <TT>error (message)</TT></h3><A NAME="error"></A> | |
| 1678 | +This function issues an error message and terminates | |
| 1679 | +the last called function from the library | |
| 1680 | +(<CODE>lua_dofile</CODE>, <CODE>lua_dostring</CODE>, or <CODE>lua_callfunction</CODE>). | |
| 1681 | +It never returns. | |
| 1682 | +<CODE>error</CODE> is equivalent to the API function <CODE>lua_error</CODE>. | |
| 1683 | +<P> | |
| 1684 | +<h3> <TT>rawgettable (table, index)</TT></h3><A NAME="rawgettable"></A> | |
| 1685 | +Gets the real value of <CODE>table[index]</CODE>, | |
| 1686 | +without invoking any tag method. | |
| 1687 | +<CODE>table</CODE> must be a table, | |
| 1688 | +and <CODE>index</CODE> is any value different from <B>nil</B>. | |
| 1689 | +<P> | |
| 1690 | +<h3> <TT>rawsettable (table, index, value)</TT></h3><A NAME="rawsettable"></A> | |
| 1691 | +Sets the real value <CODE>table[index]=value</CODE>, | |
| 1692 | +without invoking any tag method. | |
| 1693 | +<CODE>table</CODE> must be a table, | |
| 1694 | +<CODE>index</CODE> is any value different from <B>nil</B>, | |
| 1695 | +and <CODE>value</CODE> is any Lua value. | |
| 1696 | +<P> | |
| 1697 | +<h3> <TT>rawsetglobal (name, value)</TT></h3><A NAME="rawsetglobal"></A> | |
| 1698 | +This function assigns the given value to a global variable. | |
| 1699 | +The string <CODE>name</CODE> does not need to be a syntactically valid variable name. | |
| 1700 | +Therefore, this function can set global variables with strange names like | |
| 1701 | +<CODE>"m v 1"</CODE> or <CODE>34</CODE>. | |
| 1702 | +It returns the value of its second argument. | |
| 1703 | +<P> | |
| 1704 | +<h3> <TT>setglobal (name, value)</TT></h3><A NAME="setglobal"></A> | |
| 1705 | +This function assigns the given value to a global variable, | |
| 1706 | +or calls a tag method. | |
| 1707 | +Its full semantics is explained in Section <A HREF="#tag-method">4.8</A>. | |
| 1708 | +<P> | |
| 1709 | +<h3> <TT>rawgetglobal (name)</TT></h3><A NAME="rawgetglobal"></A> | |
| 1710 | +This function retrieves the value of a global variable. | |
| 1711 | +The string <CODE>name</CODE> does not need to be a | |
| 1712 | +syntactically valid variable name. | |
| 1713 | +<P> | |
| 1714 | +<h3> <TT>getglobal (name)</TT></h3><A NAME="getglobal"></A> | |
| 1715 | +This function retrieves the value of a global variable, | |
| 1716 | +or calls a tag method. | |
| 1717 | +Its full semantics is explained in Section <A HREF="#tag-method">4.8</A>. | |
| 1718 | +<P> | |
| 1719 | +<h3> <TT>seterrormethod (newmethod)</TT></h3> | |
| 1720 | +<A NAME="pdf-seterrormethod"></A> | |
| 1721 | + | |
| 1722 | +Sets the error handler (see Section <A HREF="#error">4.9</A>). | |
| 1723 | +<CODE>newmethod</CODE> must be a function or <B>nil</B>, | |
| 1724 | +in which case the error handler does nothing. | |
| 1725 | +Returns the old error handler. | |
| 1726 | +<P> | |
| 1727 | +<h3> <TT>settagmethod (tag, event, newmethod)</TT></h3> | |
| 1728 | +<A NAME="settagmethod"></A> | |
| 1729 | +This function sets a new tag method to the given pair <EM><tag, event></EM>. | |
| 1730 | +It returns the old method. | |
| 1731 | +If <CODE>newmethod</CODE> is <B>nil</B>, | |
| 1732 | +it restores the default behavior for the given event. | |
| 1733 | +<P> | |
| 1734 | +<h3> <TT>gettagmethod (tag, event)</TT></h3> | |
| 1735 | +<A NAME="gettagmethod"></A> | |
| 1736 | +This function returns the current tag method | |
| 1737 | +for a given pair <EM><tag, event></EM>. | |
| 1738 | +<P> | |
| 1739 | +<P> | |
| 1740 | +<A NAME="6.2"></A> | |
| 1741 | +<H2>6.2 - String Manipulation</H2> | |
| 1742 | +This library provides generic functions for string manipulation, | |
| 1743 | +such as finding and extracting substrings and pattern matching. | |
| 1744 | +When indexing a string, the first character is at position 1, | |
| 1745 | +not 0, as in C. | |
| 1746 | +<P> | |
| 1747 | +<h3> <TT>strfind (str, pattern [, init [, plain]])</TT></h3> | |
| 1748 | +<A NAME="strfind"></A> | |
| 1749 | +This function looks for the first <EM>match</EM> of | |
| 1750 | +<CODE>pattern</CODE> in <CODE>str</CODE>. | |
| 1751 | +If it finds one, then it returns the indices on <CODE>str</CODE> | |
| 1752 | +where this occurrence starts and ends; | |
| 1753 | +otherwise, it returns <B>nil</B>. | |
| 1754 | +If the pattern specifies captures, | |
| 1755 | +the captured strings are returned as extra results. | |
| 1756 | +A third optional numerical argument specifies where to start the search; | |
| 1757 | +its default value is 1. | |
| 1758 | +A value of 1 as a fourth optional argument | |
| 1759 | +turns off the pattern matching facilities, | |
| 1760 | +so the function does a plain ``find substring'' operation, | |
| 1761 | +with no characters in <CODE>pattern</CODE> being considered ``magic''. | |
| 1762 | +<P> | |
| 1763 | +<h3> <TT>strlen (s)</TT></h3><A NAME="strlen"></A> | |
| 1764 | +Receives a string and returns its length. | |
| 1765 | +<P> | |
| 1766 | +<h3> <TT>strsub (s, i [, j])</TT></h3><A NAME="strsub"></A> | |
| 1767 | +Returns another string, which is a substring of <CODE>s</CODE>, | |
| 1768 | +starting at <CODE>i</CODE> and running until <CODE>j</CODE>. | |
| 1769 | +If <CODE>i</CODE> or <CODE>j</CODE> are negative, | |
| 1770 | +they are replaced by the length of the string minus their | |
| 1771 | +absolute value plus 1. | |
| 1772 | +Therefore, -1 points to the last character of <CODE>s</CODE> | |
| 1773 | +and -2 to the previous one. | |
| 1774 | +If <CODE>j</CODE> is absent, it is assumed to be equal to -1 | |
| 1775 | +(which is the same as the string length). | |
| 1776 | +In particular, | |
| 1777 | +the call <CODE>strsub(s,1,j)</CODE> returns a prefix of <CODE>s</CODE> | |
| 1778 | +with length <CODE>j</CODE>, | |
| 1779 | +and the call <CODE>strsub(s, -i)</CODE> returns a suffix of <CODE>s</CODE> | |
| 1780 | +with length <CODE>i</CODE>. | |
| 1781 | +<P> | |
| 1782 | +<h3> <TT>strlower (s)</TT></h3><A NAME="strlower"></A> | |
| 1783 | +Receives a string and returns a copy of that string with all | |
| 1784 | +upper case letters changed to lower case. | |
| 1785 | +All other characters are left unchanged. | |
| 1786 | +<P> | |
| 1787 | +<h3> <TT>strupper (s)</TT></h3><A NAME="strupper"></A> | |
| 1788 | +Receives a string and returns a copy of that string with all | |
| 1789 | +lower case letters changed to upper case. | |
| 1790 | +All other characters are left unchanged. | |
| 1791 | +<P> | |
| 1792 | +<h3> <TT>strrep (s, n)</TT></h3><A NAME="strrep"></A> | |
| 1793 | +Returns a string which is the concatenation of <CODE>n</CODE> copies of | |
| 1794 | +the string <CODE>s</CODE>. | |
| 1795 | +<P> | |
| 1796 | +<h3> <TT>ascii (s [, i])</TT></h3><A NAME="ascii"></A> | |
| 1797 | +Returns the ASCII code of the character <CODE>s[i]</CODE>. | |
| 1798 | +If <CODE>i</CODE> is absent, then it is assumed to be 1. | |
| 1799 | +<P> | |
| 1800 | +<h3> <TT>format (formatstring, e1, e2, ...)</TT></h3><A NAME="format"></A> | |
| 1801 | +<A NAME="format"></A> | |
| 1802 | + | |
| 1803 | +This function returns a formated version of its variable number of arguments | |
| 1804 | +following the description given in its first argument (which must be a string). | |
| 1805 | +The format string follows the same rules as the <CODE>printf</CODE> family of | |
| 1806 | +standard C functions. | |
| 1807 | +The only differences are that the options/modifiers | |
| 1808 | +<CODE>*</CODE>, <CODE>l</CODE>, <CODE>L</CODE>, <CODE>n</CODE>, <CODE>p</CODE>, | |
| 1809 | +and <CODE>h</CODE> are not supported, | |
| 1810 | +and there is an extra option, <CODE>q</CODE>. | |
| 1811 | +This option formats a string in a form suitable to be safely read | |
| 1812 | +back by the Lua interpreter; | |
| 1813 | +that is, | |
| 1814 | +the string is written between double quotes, | |
| 1815 | +and all double quotes, returns and backslashes in the string | |
| 1816 | +are correctly escaped when written. | |
| 1817 | +For instance, the call | |
| 1818 | +<LISTING> | |
| 1819 | +format('%q', 'a string with "quotes" and \n new line') | |
| 1820 | +</LISTING> | |
| 1821 | +will produce the string: | |
| 1822 | +<LISTING> | |
| 1823 | +"a string with \"quotes\" and \ | |
| 1824 | + new line" | |
| 1825 | +</LISTING> | |
| 1826 | +<P> | |
| 1827 | +The options <CODE>c</CODE>, <CODE>d</CODE>, <CODE>E</CODE>, <CODE>e</CODE>, <CODE>f</CODE>, | |
| 1828 | +<CODE>g</CODE> <CODE>i</CODE>, <CODE>o</CODE>, <CODE>u</CODE>, <CODE>X</CODE>, and <CODE>x</CODE> all | |
| 1829 | +expect a number as argument, | |
| 1830 | +whereas <CODE>q</CODE> and <CODE>s</CODE> expect a string. | |
| 1831 | +Note that the <CODE>*</CODE> modifier can be simulated by building | |
| 1832 | +the appropriate format string. | |
| 1833 | +For example, <CODE>"%*g"</CODE> can be simulated with | |
| 1834 | +<CODE>"%"..width.."g"</CODE>. | |
| 1835 | +<P> | |
| 1836 | +<h3> <TT>gsub (s, pat, repl [, table] [, n])</TT></h3> | |
| 1837 | +<A NAME="gsub"></A> | |
| 1838 | +Returns a copy of <CODE>s</CODE>, | |
| 1839 | +where all occurrences of the pattern <CODE>pat</CODE> have been | |
| 1840 | +replaced by a replacement string specified by <CODE>repl</CODE>. | |
| 1841 | +This function also returns, as a second value, | |
| 1842 | +the total number of substitutions made. | |
| 1843 | +<P> | |
| 1844 | +If <CODE>repl</CODE> is a string, then its value is used for replacement. | |
| 1845 | +Any sequence in <CODE>repl</CODE> of the form <CODE>%n</CODE> | |
| 1846 | +with <CODE>n</CODE> between 1 and 9 | |
| 1847 | +stands for the value of the n-th captured substring. | |
| 1848 | +<P> | |
| 1849 | +If <CODE>repl</CODE> is a function, then this function is called every time a | |
| 1850 | +match occurs, with the following arguments: | |
| 1851 | +If <CODE>table</CODE> is present, then the first argument is this table | |
| 1852 | +and the second one is a match counter (1 for the first call). | |
| 1853 | +Independently of these two optional arguments, | |
| 1854 | +all captured substrings are passed as arguments, | |
| 1855 | +in order (see below); | |
| 1856 | +If the value returned by this function is a string, | |
| 1857 | +then it is used as the replacement string; | |
| 1858 | +otherwise, the replacement string is the empty string. | |
| 1859 | +<P> | |
| 1860 | +A last optional parameter <CODE>n</CODE> limits | |
| 1861 | +the maximum number of substitutions to occur. | |
| 1862 | +For instance, when <CODE>n</CODE> is 1 only the first occurrence of | |
| 1863 | +<CODE>pat</CODE> is replaced. | |
| 1864 | +<P> | |
| 1865 | +See some examples below: | |
| 1866 | +<LISTING> | |
| 1867 | + x = gsub("hello world", "(%w%w*)", "%1 %1", 1) | |
| 1868 | + --> x="hello hello world" | |
| 1869 | +<P> | |
| 1870 | + x = gsub("home = $HOME, user = $USER", "$(%w%w*)", getenv) | |
| 1871 | + --> x="home = /home/roberto, user = roberto" (for instance) | |
| 1872 | +<P> | |
| 1873 | + x = gsub("4+5 = $return 4+5$", "$(.-)%$", dostring) | |
| 1874 | + --> x="4+5 = 9" | |
| 1875 | +<P> | |
| 1876 | + function f(t, i, v) return t[v] end | |
| 1877 | + t = {name="lua", version="3.0"} | |
| 1878 | + x = gsub("$name - $version", "$(%w%w*)", f, t) | |
| 1879 | + --> x="lua - 3.0" | |
| 1880 | +<P> | |
| 1881 | + t = {"apple", "orange", "lime"} | |
| 1882 | + x = gsub("x and x and x", "x", rawgettable, t) | |
| 1883 | + --> x="apple and orange and lime" | |
| 1884 | +<P> | |
| 1885 | + t = {} | |
| 1886 | + dummy, t.n = gsub("first second word", "(%w%w*)", rawsettable, t) | |
| 1887 | + --> t={"first", "second", "word"; n=3} | |
| 1888 | +</LISTING> | |
| 1889 | +<P> | |
| 1890 | +<P> | |
| 1891 | +<A NAME="pm"></A> | |
| 1892 | +<h3>Patterns</h3> | |
| 1893 | +<P> | |
| 1894 | +<H4>Character Class:</H4> | |
| 1895 | +a <A NAME="character class"><EM>character class</EM></A> is used to represent a set of characters. | |
| 1896 | +The following combinations are allowed in describing a character class: | |
| 1897 | +<DL> | |
| 1898 | +<DT><B><EM>x</EM></B><DD> (where <EM>x</EM> is any character not in the list <CODE>()%.[*-?</CODE>) | |
| 1899 | +- represents the character <EM>x</EM> itself. | |
| 1900 | +<DT><B><TT>.</TT></B><DD> - represents all characters. | |
| 1901 | +<DT><B><TT>%a</TT></B><DD> - represents all letters. | |
| 1902 | +<DT><B><TT>%A</TT></B><DD> - represents all non letter characters. | |
| 1903 | +<DT><B><TT>%d</TT></B><DD> - represents all digits. | |
| 1904 | +<DT><B><TT>%D</TT></B><DD> - represents all non digits. | |
| 1905 | +<DT><B><TT>%l</TT></B><DD> - represents all lower case letters. | |
| 1906 | +<DT><B><TT>%L</TT></B><DD> - represents all non lower case letter characters. | |
| 1907 | +<DT><B><TT>%s</TT></B><DD> - represents all space characters. | |
| 1908 | +<DT><B><TT>%S</TT></B><DD> - represents all non space characters. | |
| 1909 | +<DT><B><TT>%u</TT></B><DD> - represents all upper case letters. | |
| 1910 | +<DT><B><TT>%U</TT></B><DD> - represents all non upper case letter characters. | |
| 1911 | +<DT><B><TT>%w</TT></B><DD> - represents all alphanumeric characters. | |
| 1912 | +<DT><B><TT>%W</TT></B><DD> - represents all non alphanumeric characters. | |
| 1913 | +<DT><B><TT>%<EM>x</TT></EM></B><DD> (where <EM>x</EM> is any non alphanumeric character) - | |
| 1914 | +represents the character <EM>x</EM>. | |
| 1915 | +This is the standard way to escape the magic characters <CODE>()%.[*-?</CODE>. | |
| 1916 | +<DT><B><TT>[char-set]</TT></B><DD> - | |
| 1917 | +Represents the class which is the union of all | |
| 1918 | +characters in char-set. | |
| 1919 | +To include a <CODE>]</CODE> in char-set, it must be the first character. | |
| 1920 | +A range of characters may be specified by | |
| 1921 | +separating the end characters of the range with a <CODE>-</CODE>; | |
| 1922 | +e.g., <CODE>A-Z</CODE> specifies the upper case characters. | |
| 1923 | +If <CODE>-</CODE> appears as the first or last character of char-set, | |
| 1924 | +then it represents itself. | |
| 1925 | +All classes <CODE>%</CODE><EM>x</EM> described above can also be used as | |
| 1926 | +components in a char-set. | |
| 1927 | +All other characters in char-set represent themselves. | |
| 1928 | +<DT><B><TT>[^char-set]</TT></B><DD> - | |
| 1929 | +represents the complement of char-set, | |
| 1930 | +where char-set is interpreted as above. | |
| 1931 | +</DL> | |
| 1932 | +<P> | |
| 1933 | +<H4>Pattern Item:</H4> | |
| 1934 | +a <A NAME="pattern item"><EM>pattern item</EM></A> may be: | |
| 1935 | +<UL> | |
| 1936 | +<LI> | |
| 1937 | +a single character class, | |
| 1938 | +which matches any single character in the class; | |
| 1939 | +<LI> | |
| 1940 | +a single character class followed by <CODE>*</CODE>, | |
| 1941 | +which matches 0 or more repetitions of characters in the class. | |
| 1942 | +These repetition items will always match the longest possible sequence. | |
| 1943 | +<LI> | |
| 1944 | +a single character class followed by <CODE>-</CODE>, | |
| 1945 | +which also matches 0 or more repetitions of characters in the class. | |
| 1946 | +Unlike <CODE>*</CODE>, | |
| 1947 | +these repetition items will always match the shortest possible sequence. | |
| 1948 | +<LI> | |
| 1949 | +a single character class followed by <CODE>?</CODE>, | |
| 1950 | +which matches 0 or 1 occurrence of a character in the class; | |
| 1951 | +<LI> | |
| 1952 | +<TT>%<EM>n</TT></EM>, for <EM>n</EM> between 1 and 9; | |
| 1953 | +such item matches a sub-string equal to the n-th captured string | |
| 1954 | +(see below); | |
| 1955 | +<LI> | |
| 1956 | +<TT>%b<EM>xy</TT></EM>, where <EM>x</EM> and <EM>y</EM> are two distinct characters; | |
| 1957 | +such item matches strings that start with <EM>x</EM>, end with <EM>y</EM>, | |
| 1958 | +and where the <EM>x</EM> and <EM>y</EM> are <EM>balanced</EM>. | |
| 1959 | +That means that, if one reads the string from left to write, | |
| 1960 | +counting plus 1 for an <EM>x</EM> and minus 1 for a <EM>y</EM>, | |
| 1961 | +the ending <EM>y</EM> is the first where the count reaches 0. | |
| 1962 | +For instance, the item <CODE>%b()</CODE> matches expressions with | |
| 1963 | +balanced parentheses. | |
| 1964 | +</UL> | |
| 1965 | +<P> | |
| 1966 | +<H4>Pattern:</H4> | |
| 1967 | +a <A NAME="pattern"><EM>pattern</EM></A> is a sequence of pattern items. | |
| 1968 | +A <CODE>^</CODE> at the beginning of a pattern anchors the match at the | |
| 1969 | +beginning of the subject string. | |
| 1970 | +A <CODE>$</CODE> at the end of a pattern anchors the match at the | |
| 1971 | +end of the subject string. | |
| 1972 | +<P> | |
| 1973 | +<H4>Captures:</H4> | |
| 1974 | +a pattern may contain sub-patterns enclosed in parentheses, | |
| 1975 | +that describe <A NAME="captures"><EM>captures</EM></A>. | |
| 1976 | +When a match succeeds, the sub-strings of the subject string | |
| 1977 | +that match captures are stored (<EM>captured</EM>) for future use. | |
| 1978 | +Captures are numbered according to their left parentheses. | |
| 1979 | +For instance, in the pattern <CODE>"(a*(.)%w(%s*))"</CODE>, | |
| 1980 | +the part of the string matching <CODE>"a*(.)%w(%s*)"</CODE> is | |
| 1981 | +stored as the first capture (and therefore has number 1); | |
| 1982 | +the character matching <CODE>.</CODE> is captured with number 2, | |
| 1983 | +and the part matching <CODE>%s*</CODE> has number 3. | |
| 1984 | +<P> | |
| 1985 | +<A NAME="mathlib"></A> | |
| 1986 | +<A NAME="6.3"></A> | |
| 1987 | +<H2>6.3 - Mathematical Functions</H2> | |
| 1988 | +<P> | |
| 1989 | +This library is an interface to some functions of the standard C math library. | |
| 1990 | +In addition, it registers a tag method for the binary operator <CODE>^</CODE> that | |
| 1991 | +returns <I>x^y</I> when applied to numbers <CODE>x^y</CODE>. | |
| 1992 | +<P> | |
| 1993 | +The library provides the following functions: | |
| 1994 | +<A NAME="abs"></A><A NAME="acos"></A><A NAME="asin"></A><A NAME="atan"></A> | |
| 1995 | +<A NAME="atan2"></A><A NAME="ceil"></A><A NAME="cos"></A><A NAME="floor"></A> | |
| 1996 | +<A NAME="log"></A><A NAME="log10"></A><A NAME="max"></A><A NAME="min"></A> | |
| 1997 | +<A NAME="mod"></A><A NAME="sin"></A><A NAME="sqrt"></A><A NAME="tan"></A> | |
| 1998 | +<A NAME="random"></A><A NAME="randomseed"></A> | |
| 1999 | +<LISTING> | |
| 2000 | +abs acos asin atan atan2 ceil cos floor log log10 | |
| 2001 | +max min mod sin sqrt tan random randomseed | |
| 2002 | +</LISTING> | |
| 2003 | +Most of them | |
| 2004 | +are only interfaces to the homonymous functions in the C library, | |
| 2005 | +except that, for the trigonometric functions, | |
| 2006 | +all angles are expressed in <EM>degrees</EM>, not radians. | |
| 2007 | +<P> | |
| 2008 | +The function <CODE>max</CODE> returns the maximum | |
| 2009 | +value of its numeric arguments. | |
| 2010 | +Similarly, <CODE>min</CODE> computes the minimum. | |
| 2011 | +Both can be used with an unlimited number of arguments. | |
| 2012 | +<P> | |
| 2013 | +The functions <CODE>random</CODE> and <CODE>randomseed</CODE> are interfaces to | |
| 2014 | +the simple random generator functions <CODE>rand</CODE> and <CODE>srand</CODE>, | |
| 2015 | +provided by ANSI C. | |
| 2016 | +The function <CODE>random</CODE> returns pseudo-random numbers in the | |
| 2017 | +range <I>[0,1)</I>. | |
| 2018 | +<P> | |
| 2019 | +<P> | |
| 2020 | +<A NAME="libio"></A> | |
| 2021 | +<A NAME="6.4"></A> | |
| 2022 | +<H2>6.4 - I/O Facilities</H2> | |
| 2023 | +<P> | |
| 2024 | +All input and output operations in Lua are done over two | |
| 2025 | +<A NAME="file handles"><EM>file handles</EM></A>, one for reading and one for writing. | |
| 2026 | +These handles are stored in two Lua global variables, | |
| 2027 | +called <CODE>_INPUT</CODE> and <CODE>_OUTPUT</CODE>. | |
| 2028 | +The global variables | |
| 2029 | +<CODE>_STDIN</CODE>, <CODE>_STDOUT</CODE> and <CODE>_STDERR</CODE> | |
| 2030 | +are initialized with file descriptors for | |
| 2031 | +<CODE>stdin</CODE>, <CODE>stdout</CODE> and <CODE>stderr</CODE>. | |
| 2032 | +Initially, <CODE>_INPUT=_STDIN</CODE> and <CODE>_OUTPUT=_STDOUT</CODE>. | |
| 2033 | +<A NAME="_INPUT"></A><A NAME="_OUTPUT"></A> | |
| 2034 | +<A NAME="_STDIN"></A><A NAME="_STDOUT"></A><A NAME="_STDERR"></A> | |
| 2035 | +<P> | |
| 2036 | +A file handle is a userdata containing the file stream <CODE>FILE*</CODE>, | |
| 2037 | +and with a distinctive tag created by the I/O library. | |
| 2038 | +<P> | |
| 2039 | +<P> | |
| 2040 | +Unless otherwise stated, | |
| 2041 | +all I/O functions return <B>nil</B> on failure and | |
| 2042 | +some value different from <B>nil</B> on success. | |
| 2043 | +<P> | |
| 2044 | +<h3> <TT>readfrom (filename)</TT></h3><A NAME="readfrom"></A> | |
| 2045 | +<P> | |
| 2046 | +This function may be called in two ways. | |
| 2047 | +When called with a file name, it opens the named file, | |
| 2048 | +sets its handle as the value of <CODE>_INPUT</CODE>, | |
| 2049 | +and returns this value. | |
| 2050 | +It does not close the current input file. | |
| 2051 | +When called without parameters, | |
| 2052 | +it closes the <CODE>_INPUT</CODE> file, | |
| 2053 | +and restores <CODE>stdin</CODE> as the value of <CODE>_INPUT</CODE>. | |
| 2054 | +<P> | |
| 2055 | +If this function fails, it returns <B>nil</B>, | |
| 2056 | +plus a string describing the error. | |
| 2057 | +<P> | |
| 2058 | +<CITE> | |
| 2059 | +<EM>System dependent</EM>: if <CODE>filename</CODE> starts with a <CODE>|</CODE>, | |
| 2060 | +then a <A NAME="piped input">piped input</A> is open, via function <A NAME="popen"><TT>popen</TT></A>. | |
| 2061 | +Not all systems implement pipes. | |
| 2062 | +Moreover, | |
| 2063 | +the number of files that can be open at the same time is | |
| 2064 | +usually limited and depends on the system. | |
| 2065 | +</CITE> | |
| 2066 | +<P> | |
| 2067 | +<h3> <TT>writeto (filename)</TT></h3><A NAME="writeto"></A> | |
| 2068 | +<P> | |
| 2069 | +This function may be called in two ways. | |
| 2070 | +When called with a file name, | |
| 2071 | +it opens the named file, | |
| 2072 | +sets its handle as the value of <CODE>_OUTPUT</CODE>, | |
| 2073 | +and returns this value. | |
| 2074 | +It does not close the current output file. | |
| 2075 | +Notice that, if the file already exists, | |
| 2076 | +then it will be <EM>completely erased</EM> with this operation. | |
| 2077 | +When called without parameters, | |
| 2078 | +this function closes the <CODE>_OUTPUT</CODE> file, | |
| 2079 | +and restores <CODE>stdout</CODE> as the value of <CODE>_OUTPUT</CODE>. | |
| 2080 | +<A NAME="closing a file"></A> | |
| 2081 | +<P> | |
| 2082 | +If this function fails, it returns <B>nil</B>, | |
| 2083 | +plus a string describing the error. | |
| 2084 | +<P> | |
| 2085 | +<CITE> | |
| 2086 | +<EM>System dependent</EM>: if <CODE>filename</CODE> starts with a <CODE>|</CODE>, | |
| 2087 | +then a <A NAME="piped output">piped output</A> is open, via function <A NAME="popen"><TT>popen</TT></A>. | |
| 2088 | +Not all systems implement pipes. | |
| 2089 | +Moreover, | |
| 2090 | +the number of files that can be open at the same time is | |
| 2091 | +usually limited and depends on the system. | |
| 2092 | +</CITE> | |
| 2093 | +<P> | |
| 2094 | +<h3> <TT>appendto (filename)</TT></h3><A NAME="appendto"></A> | |
| 2095 | +<P> | |
| 2096 | +This function opens a file named <CODE>filename</CODE> and sets it as the | |
| 2097 | +value of <CODE>_OUTPUT</CODE>. | |
| 2098 | +Unlike the <CODE>writeto</CODE> operation, | |
| 2099 | +this function does not erase any previous content of the file. | |
| 2100 | +If this function fails, it returns <B>nil</B>, | |
| 2101 | +plus a string describing the error. | |
| 2102 | +<P> | |
| 2103 | +Notice that function <CODE>writeto</CODE> is available to close an output file. | |
| 2104 | +<P> | |
| 2105 | +<h3> <TT>remove (filename)</TT></h3><A NAME="remove"></A> | |
| 2106 | +<P> | |
| 2107 | +This function deletes the file with the given name. | |
| 2108 | +If this function fails, it returns <B>nil</B>, | |
| 2109 | +plus a string describing the error. | |
| 2110 | +<P> | |
| 2111 | +<h3> <TT>rename (name1, name2)</TT></h3><A NAME="rename"></A> | |
| 2112 | +<P> | |
| 2113 | +This function renames file named <CODE>name1</CODE> to <CODE>name2</CODE>. | |
| 2114 | +If this function fails, it returns <B>nil</B>, | |
| 2115 | +plus a string describing the error. | |
| 2116 | +<P> | |
| 2117 | +<h3> <TT>tmpname ()</TT></h3><A NAME="tmpname"></A> | |
| 2118 | +<P> | |
| 2119 | +This function returns a string with a file name that can safely | |
| 2120 | +be used for a temporary file. | |
| 2121 | +The file must be explicitly removed when no longer needed. | |
| 2122 | +<P> | |
| 2123 | +<h3> <TT>read ([readpattern])</TT></h3><A NAME="read"></A> | |
| 2124 | +<P> | |
| 2125 | +This function reads the file <CODE>_INPUT</CODE> | |
| 2126 | +according to a read pattern, that specifies how much to read; | |
| 2127 | +characters are read from the current input file until | |
| 2128 | +the read pattern fails or ends. | |
| 2129 | +The function <CODE>read</CODE> returns a string with the characters read, | |
| 2130 | +even if the pattern succeeds only partially, | |
| 2131 | +or <B>nil</B> if the read pattern fails <EM>and</EM> | |
| 2132 | +the result string would be empty. | |
| 2133 | +When called without parameters, | |
| 2134 | +it uses a default pattern that reads the next line | |
| 2135 | +(see below). | |
| 2136 | +<P> | |
| 2137 | +A <A NAME="read pattern"><EM>read pattern</EM></A> is a sequence of read pattern items. | |
| 2138 | +An item may be a single character class | |
| 2139 | +or a character class followed by <CODE>?</CODE> or by <CODE>*</CODE>. | |
| 2140 | +A single character class reads the next character from the input | |
| 2141 | +if it belongs to the class, otherwise it fails. | |
| 2142 | +A character class followed by <CODE>?</CODE> reads the next character | |
| 2143 | +from the input if it belongs to the class; | |
| 2144 | +it never fails. | |
| 2145 | +A character class followed by <CODE>*</CODE> reads until a character that | |
| 2146 | +does not belong to the class, or end of file; | |
| 2147 | +since it can match a sequence of zero characters, it never fails. | |
| 2148 | +\footnote{ | |
| 2149 | +Notice that the behavior of read patterns is different from | |
| 2150 | +the regular pattern matching behavior, | |
| 2151 | +where a <CODE>*</CODE> expands to the maximum length <EM>such that</EM> | |
| 2152 | +the rest of the pattern does not fail. | |
| 2153 | +With the read pattern behavior | |
| 2154 | +there is no need for backtracking the reading. | |
| 2155 | +} | |
| 2156 | +<P> | |
| 2157 | +A pattern item may contain sub-patterns enclosed in curly brackets, | |
| 2158 | +that describe <A NAME="skips"><EM>skips</EM></A>. | |
| 2159 | +Characters matching a skip are read, | |
| 2160 | +but are not included in the resulting string. | |
| 2161 | +<P> | |
| 2162 | +Following are some examples of read patterns and their meanings: | |
| 2163 | +<UL> | |
| 2164 | +<LI><CODE>"."</CODE> returns the next character, or <B>nil</B> on end of file. | |
| 2165 | +<LI><CODE>".*"</CODE> reads the whole file. | |
| 2166 | +<LI><CODE>"[^\n]*{\n}"</CODE> returns the next line | |
| 2167 | +(skipping the end of line), or <B>nil</B> on end of file. | |
| 2168 | +This is the default pattern. | |
| 2169 | +<LI><CODE>"{%s*}%S%S*"</CODE> returns the next word | |
| 2170 | +(maximal sequence of non white-space characters), | |
| 2171 | +skipping spaces if necessary, | |
| 2172 | +or <B>nil</B> on end of file. | |
| 2173 | +<LI><CODE>"{%s*}[+-]?%d%d*"</CODE> returns the next integer | |
| 2174 | +or <B>nil</B> if the next characters do not conform to an integer format. | |
| 2175 | +</UL> | |
| 2176 | +<P> | |
| 2177 | +<h3> <TT>write (value1, ...)</TT></h3><A NAME="write"></A> | |
| 2178 | +<P> | |
| 2179 | +This function writes the value of each of its arguments to the | |
| 2180 | +file <CODE>_OUTPUT</CODE>. | |
| 2181 | +The arguments must be strings or numbers. | |
| 2182 | +To write other values, | |
| 2183 | +use <CODE>tostring</CODE> or <CODE>format</CODE> before <CODE>write</CODE>. | |
| 2184 | +If this function fails, it returns <B>nil</B>, | |
| 2185 | +plus a string describing the error. | |
| 2186 | +<P> | |
| 2187 | +<h3> <TT>date ([format])</TT></h3><A NAME="date"></A> | |
| 2188 | +<P> | |
| 2189 | +This function returns a string containing date and time | |
| 2190 | +formatted according to the given string <CODE>format</CODE>, | |
| 2191 | +following the same rules of the ANSI C function <CODE>strftime</CODE>. | |
| 2192 | +When called without arguments, | |
| 2193 | +it returns a reasonable date and time representation that depends on | |
| 2194 | +the host system. | |
| 2195 | +<P> | |
| 2196 | +<h3> <TT>exit ([code])</TT></h3><A NAME="exit"></A> | |
| 2197 | +<P> | |
| 2198 | +This function calls the C function <CODE>exit</CODE>, | |
| 2199 | +with an optional <CODE>code</CODE>, | |
| 2200 | +to terminate the program. | |
| 2201 | +The default value for <CODE>code</CODE> is 1. | |
| 2202 | +<P> | |
| 2203 | +<h3> <TT>getenv (varname)</TT></h3><A NAME="getenv"></A> | |
| 2204 | +<P> | |
| 2205 | +Returns the value of the environment variable <CODE>varname</CODE>, | |
| 2206 | +or <B>nil</B> if the variable is not defined. | |
| 2207 | +<P> | |
| 2208 | +<h3> <TT>execute (command)</TT></h3><A NAME="execute"></A> | |
| 2209 | +<P> | |
| 2210 | +This function is equivalent to the C function <CODE>system</CODE>. | |
| 2211 | +It passes <CODE>command</CODE> to be executed by an operating system shell. | |
| 2212 | +It returns an error code, which is system-dependent. | |
| 2213 | +<P> | |
| 2214 | +<P> | |
| 2215 | +<A NAME="debugI"></A> | |
| 2216 | +<!-- ====================================================================== --> | |
| 2217 | +<HR> | |
| 2218 | +<A NAME="7."></A> | |
| 2219 | +<H1>7 - The Debugger Interface</H1> | |
| 2220 | +<P> | |
| 2221 | +Lua has no built-in debugging facilities. | |
| 2222 | +Instead, it offers a special interface, | |
| 2223 | +by means of functions and <EM>hooks</EM>, | |
| 2224 | +which allows the construction of different | |
| 2225 | +kinds of debuggers, profilers, and other tools | |
| 2226 | +that need ``inside information'' from the interpreter. | |
| 2227 | +This interface is declared in the header file <CODE>luadebug.h</CODE>. | |
| 2228 | +<P> | |
| 2229 | +<A NAME="7.1"></A> | |
| 2230 | +<H2>7.1 - Stack and Function Information</H2> | |
| 2231 | +<P> | |
| 2232 | +The main function to get information about the interpreter stack | |
| 2233 | +is | |
| 2234 | +<LISTING> | |
| 2235 | +lua_Function lua_stackedfunction (int level); | |
| 2236 | +</LISTING> | |
| 2237 | +It returns a handle (<CODE>lua_Function</CODE>) to the <EM>activation record</EM> | |
| 2238 | +of the function executing at a given level. | |
| 2239 | +Level 0 is the current running function, | |
| 2240 | +while level <I>n+1</I> is the function that has called level <I>n</I>. | |
| 2241 | +When called with a level greater than the stack depth, | |
| 2242 | +<CODE>lua_stackedfunction</CODE> returns <CODE>LUA_NOOBJECT</CODE>. | |
| 2243 | +<P> | |
| 2244 | +The type <CODE>lua_Function</CODE> is just another name | |
| 2245 | +to <CODE>lua_Object</CODE>. | |
| 2246 | +Although, in this library, | |
| 2247 | +a <CODE>lua_Function</CODE> can be used wherever a <CODE>lua_Object</CODE> is required, | |
| 2248 | +when a parameter has type <CODE>lua_Function</CODE> | |
| 2249 | +it accepts only a handle returned by | |
| 2250 | +<CODE>lua_stackedfunction</CODE>. | |
| 2251 | +<P> | |
| 2252 | +Three other functions produce extra information about a function: | |
| 2253 | +<LISTING> | |
| 2254 | +void lua_funcinfo (lua_Object func, char **filename, int *linedefined); | |
| 2255 | +int lua_currentline (lua_Function func); | |
| 2256 | +char *lua_getobjname (lua_Object o, char **name); | |
| 2257 | +</LISTING> | |
| 2258 | +<CODE>lua_funcinfo</CODE> gives the file name and the line where the | |
| 2259 | +given function has been defined. | |
| 2260 | +If the ``function'' is in fact the main code of a chunk, | |
| 2261 | +then <CODE>linedefined</CODE> is 0. | |
| 2262 | +If the function is a C function, | |
| 2263 | +then <CODE>linedefined</CODE> is -1, and <CODE>filename</CODE> is <CODE>"(C)"</CODE>. | |
| 2264 | +<P> | |
| 2265 | +The function <CODE>lua_currentline</CODE> gives the current line where | |
| 2266 | +a given function is executing. | |
| 2267 | +It only works if the function has been compiled with debug | |
| 2268 | +information (see Section <A HREF="#pragma">4.9</A>). | |
| 2269 | +When no line information is available, it returns -1. | |
| 2270 | +<P> | |
| 2271 | +Function <CODE>lua_getobjname</CODE> tries to find a reasonable name for | |
| 2272 | +a given function. | |
| 2273 | +Because functions in Lua are first class values, | |
| 2274 | +they do not have a fixed name: | |
| 2275 | +Some functions may be the value of many global variables, | |
| 2276 | +while others may be stored only in a table field. | |
| 2277 | +Function <CODE>lua_getobjname</CODE> first checks whether the given | |
| 2278 | +function is a tag method. | |
| 2279 | +If so, it returns the string <CODE>"tag-method"</CODE>, | |
| 2280 | +and <CODE>name</CODE> is set to point to the event name. | |
| 2281 | +Otherwise, if the given function is the value of a global variable, | |
| 2282 | +then <CODE>lua_getobjname</CODE> returns the string <CODE>"global"</CODE>, | |
| 2283 | +and <CODE>name</CODE> points to the variable name. | |
| 2284 | +If the given function is neither a tag method nor a global variable, | |
| 2285 | +then <CODE>lua_getobjname</CODE> returns the empty string, | |
| 2286 | +and <CODE>name</CODE> is set to <CODE>NULL</CODE>. | |
| 2287 | +<P> | |
| 2288 | +<A NAME="7.2"></A> | |
| 2289 | +<H2>7.2 - Manipulating Local Variables</H2> | |
| 2290 | +<P> | |
| 2291 | +The following functions allow the manipulation of the | |
| 2292 | +local variables of a given activation record. | |
| 2293 | +They only work if the function has been compiled with debug | |
| 2294 | +information (see Section <A HREF="#pragma">4.9</A>). | |
| 2295 | +<LISTING> | |
| 2296 | +lua_Object lua_getlocal (lua_Function func, int local_number, char **name); | |
| 2297 | +int lua_setlocal (lua_Function func, int local_number); | |
| 2298 | +</LISTING> | |
| 2299 | +<CODE>lua_getlocal</CODE> returns the value of a local variable, | |
| 2300 | +and sets <CODE>name</CODE> to point to the variable name. | |
| 2301 | +<CODE>local_number</CODE> is an index for local variables. | |
| 2302 | +The first parameter has index 1, and so on, until the | |
| 2303 | +last active local variable. | |
| 2304 | +When called with a <CODE>local_number</CODE> greater than the | |
| 2305 | +number of active local variables, | |
| 2306 | +or if the activation record has no debug information, | |
| 2307 | +<CODE>lua_getlocal</CODE> returns <CODE>LUA_NOOBJECT</CODE>. | |
| 2308 | +Formal parameters are the first local variables. | |
| 2309 | +<P> | |
| 2310 | +The function <CODE>lua_setlocal</CODE> sets the local variable | |
| 2311 | +<CODE>local_number</CODE> to the value previously pushed on the stack | |
| 2312 | +(see Section <A HREF="#valuesCLua">5.1</A>). | |
| 2313 | +If the function succeeds, then it returns 1. | |
| 2314 | +If <CODE>local_number</CODE> is greater than the number | |
| 2315 | +of active local variables, | |
| 2316 | +or if the activation record has no debug information, | |
| 2317 | +then this function fails and returns 0. | |
| 2318 | +<P> | |
| 2319 | +<A NAME="7.3"></A> | |
| 2320 | +<H2>7.3 - Hooks</H2> | |
| 2321 | +<P> | |
| 2322 | +The Lua interpreter offers two hooks for debugging purposes: | |
| 2323 | +<LISTING> | |
| 2324 | +typedef void (*lua_CHFunction) (lua_Function func, char *file, int line); | |
| 2325 | +extern lua_CHFunction lua_callhook; | |
| 2326 | +<P> | |
| 2327 | +typedef void (*lua_LHFunction) (int line); | |
| 2328 | +extern lua_LHFunction lua_linehook; | |
| 2329 | +</LISTING> | |
| 2330 | +The first one is called whenever the interpreter enters or leaves a | |
| 2331 | +function. | |
| 2332 | +When entering a function, | |
| 2333 | +its parameters are a handle to the function activation record, | |
| 2334 | +plus the file and the line where the function is defined (the same | |
| 2335 | +information which is provided by <CODE>lua_funcinfo</CODE>); | |
| 2336 | +when leaving a function, <CODE>func</CODE> is <CODE>LUA_NOOBJECT</CODE>, | |
| 2337 | +<CODE>file</CODE> is <CODE>"(return)"</CODE>, and <CODE>line</CODE> is 0. | |
| 2338 | +<P> | |
| 2339 | +The other hook is called every time the interpreter changes | |
| 2340 | +the line of code it is executing. | |
| 2341 | +Its only parameter is the line number | |
| 2342 | +(the same information which is provided by the call | |
| 2343 | +<CODE>lua_currentline(lua_stackedfunction(0))</CODE>). | |
| 2344 | +This second hook is only called if the active function | |
| 2345 | +has been compiled with debug information (see Section <A HREF="#pragma">4.9</A>). | |
| 2346 | +<P> | |
| 2347 | +A hook is disabled when its value is <CODE>NULL</CODE>, | |
| 2348 | +which is the initial value of both hooks. | |
| 2349 | +<P> | |
| 2350 | +<P> | |
| 2351 | +<P> | |
| 2352 | +<A NAME="lua-sa"></A> | |
| 2353 | +<!-- ====================================================================== --> | |
| 2354 | +<HR> | |
| 2355 | +<A NAME="8."></A> | |
| 2356 | +<H1>8 - Lua Stand-alone</H1> | |
| 2357 | +<P> | |
| 2358 | +Although Lua has been designed as an extension language, | |
| 2359 | +the language can also be used as a stand-alone interpreter. | |
| 2360 | +An implementation of such an interpreter, | |
| 2361 | +called simply <CODE>lua</CODE>, | |
| 2362 | +is provided with the standard distribution. | |
| 2363 | +This program can be called with any sequence of the following arguments: | |
| 2364 | +<DL> | |
| 2365 | +<DT><B><TT>-v</TT></B><DD> prints version information. | |
| 2366 | +<DT><B><TT>-</TT></B><DD> runs interactively, accepting commands from standard input | |
| 2367 | +until an <CODE>EOF</CODE>. | |
| 2368 | +<DT><B><TT>-e stat</TT></B><DD> executes <CODE>stat</CODE> as a Lua chunk. | |
| 2369 | +<DT><B><TT>var=exp</TT></B><DD> executes <CODE>var=exp</CODE> as a Lua chunk. | |
| 2370 | +<DT><B><TT>filename</TT></B><DD> executes file <CODE>filename</CODE> as a Lua chunk. | |
| 2371 | +</DL> | |
| 2372 | +All arguments are handled in order. | |
| 2373 | +For instance, an invocation like | |
| 2374 | +<LISTING> | |
| 2375 | +$ lua - a=1 prog.lua | |
| 2376 | +</LISTING> | |
| 2377 | +will first interact with the user until an <CODE>EOF</CODE>, | |
| 2378 | +then will set <CODE>a</CODE> to 1, | |
| 2379 | +and finally will run file <CODE>prog.lua</CODE>. | |
| 2380 | +<P> | |
| 2381 | +Please notice that the interaction with the shell may lead to | |
| 2382 | +unintended results. | |
| 2383 | +For instance, a call like | |
| 2384 | +<LISTING> | |
| 2385 | +$ lua a="name" prog.lua | |
| 2386 | +</LISTING> | |
| 2387 | +will <EM>not</EM> set <CODE>a</CODE> to the string <CODE>"name"</CODE>. | |
| 2388 | +Instead, the quotes will be handled by the shell, | |
| 2389 | +lua will get only <CODE>a=name</CODE> to run, | |
| 2390 | +and <CODE>a</CODE> will finish with <B>nil</B>, | |
| 2391 | +because the global variable <CODE>name</CODE> has not been initialized. | |
| 2392 | +Instead, one should write | |
| 2393 | +<LISTING> | |
| 2394 | +$ lua 'a="name"' prog.lua | |
| 2395 | +</LISTING> | |
| 2396 | +<P> | |
| 2397 | +<HR> | |
| 2398 | +<A NAME="Acknowledgments"></A> | |
| 2399 | +<h1>Acknowledgments</h1> | |
| 2400 | +<P> | |
| 2401 | +The authors would like to thank CENPES/PETROBRAS which, | |
| 2402 | +jointly with TeCGraf, used extensively early versions of | |
| 2403 | +this system and gave valuable comments. | |
| 2404 | +The authors would also like to thank Carlos Henrique Levy, | |
| 2405 | +who found the name of the game. | |
| 2406 | +Lua means <EM>moon</EM> in Portuguese. | |
| 2407 | +<P> | |
| 2408 | +<P> | |
| 2409 | +<P> | |
| 2410 | +<P> | |
| 2411 | +<HR> | |
| 2412 | +<A NAME="Incompatibilities"></A> | |
| 2413 | +<h1>Incompatibilities with Previous Versions</h1> | |
| 2414 | +<P> | |
| 2415 | +Although great care has been taken to avoid incompatibilities with | |
| 2416 | +the previous public versions of Lua, | |
| 2417 | +some differences had to be introduced. | |
| 2418 | +Here is a list of all these incompatibilities. | |
| 2419 | +<P> | |
| 2420 | +<h2>Incompatibilities with <A NAME="version 2.5</h2>">version 2.5</h2></A> | |
| 2421 | +<UL> | |
| 2422 | +<LI> | |
| 2423 | +The whole fallback mechanism has been replaced by tag methods. | |
| 2424 | +Nevertheless, the function <CODE>setfallback</CODE> has been rewritten in | |
| 2425 | +a way that uses tag methods to fully emulate the old behavior | |
| 2426 | +of fallbacks. | |
| 2427 | +<LI> | |
| 2428 | +Tags now must be created with the function <CODE>newtag</CODE>. | |
| 2429 | +Nevertheless, old user defined tags are still accepted | |
| 2430 | +(user defined tags must be positive; | |
| 2431 | +<CODE>newtag</CODE> uses negative numbers). | |
| 2432 | +Tag methods cannot be set for such user defined tags, | |
| 2433 | +and fallbacks do not affect tags created by <CODE>newtag</CODE>. | |
| 2434 | +<LI> | |
| 2435 | +Lua 2.5 accepts mixed comparisons of strings and numbers, | |
| 2436 | +like <CODE>2<"12"</CODE>, giving weird results. | |
| 2437 | +Now this is an error. | |
| 2438 | +<LI> | |
| 2439 | +Character <CODE>"-"</CODE> (hyphen) now is ``magic'' in pattern matching. | |
| 2440 | +<LI> | |
| 2441 | +Some API functions have been rewritten as macros. | |
| 2442 | +</UL> | |
| 2443 | +<P> | |
| 2444 | +<h2>Incompatibilities with <A NAME="version 2.4</h2>">version 2.4</h2></A> | |
| 2445 | +The whole I/O facilities have been rewritten. | |
| 2446 | +We strongly encourage programmers to adapt their code | |
| 2447 | +to this new version. | |
| 2448 | +The incompatibilities between the new and the old libraries are: | |
| 2449 | +<UL> | |
| 2450 | +<LI>The format facility of function <CODE>write</CODE> has been supersed by | |
| 2451 | +function <CODE>format</CODE>; | |
| 2452 | +therefore this facility has been dropped. | |
| 2453 | +<LI>Function <CODE>read</CODE> now uses <EM>read patterns</EM> to specify | |
| 2454 | +what to read; | |
| 2455 | +this is incompatible with the old format options. | |
| 2456 | +<LI>Function <CODE>strfind</CODE> now accepts patterns, | |
| 2457 | +so it may have a different behavior when the pattern includes | |
| 2458 | +special characters. | |
| 2459 | +</UL> | |
| 2460 | +<P> | |
| 2461 | +<h2>Incompatibilities with <A NAME="version 2.2</h2>">version 2.2</h2></A> | |
| 2462 | +<UL> | |
| 2463 | +<LI> | |
| 2464 | +Functions <CODE>date</CODE> and <CODE>time</CODE> (from <CODE>iolib</CODE>) | |
| 2465 | +have been superseded by the new, more powerful version of function <CODE>date</CODE>. | |
| 2466 | +<LI> | |
| 2467 | +Function <CODE>append</CODE> (from <CODE>iolib</CODE>) now returns 1 whenever it succeeds, | |
| 2468 | +whether the file is new or not. | |
| 2469 | +<LI> | |
| 2470 | +Function <CODE>int2str</CODE> (from <CODE>strlib</CODE>) has been superseded by new | |
| 2471 | +function <CODE>format</CODE>, with parameter <CODE>"%c"</CODE>. | |
| 2472 | +<LI> | |
| 2473 | +The API lock mechanism has been superseded by the reference mechanism. | |
| 2474 | +However, <CODE>lua.h</CODE> provides compatibility macros, | |
| 2475 | +so there is no need to change programs. | |
| 2476 | +<LI> | |
| 2477 | +The API function <CODE>lua_pushliteral</CODE> now is just a macro to | |
| 2478 | +<CODE>lua_pushstring</CODE>. | |
| 2479 | +</UL> | |
| 2480 | +<P> | |
| 2481 | +<h2>Incompatibilities with <A NAME="version 2.1</h2>">version 2.1</h2></A> | |
| 2482 | +<UL> | |
| 2483 | +<LI> | |
| 2484 | +The function <CODE>type</CODE> now returns the string <CODE>"function"</CODE> | |
| 2485 | +both for C and Lua functions. | |
| 2486 | +Because Lua functions and C functions are compatible, | |
| 2487 | +this behavior is usually more useful. | |
| 2488 | +When needed, the second result of function <TT>type</TT> may be used | |
| 2489 | +to distinguish between Lua and C functions. | |
| 2490 | +<LI> | |
| 2491 | +A function definition only assigns the function value to the | |
| 2492 | +given variable at execution time. | |
| 2493 | +</UL> | |
| 2494 | +<P> | |
| 2495 | +<h2>Incompatibilities with <A NAME="version 1.1</h2>">version 1.1</h2></A> | |
| 2496 | +<UL> | |
| 2497 | +<LI> | |
| 2498 | +The equality test operator now is denoted by <CODE>==</CODE>, | |
| 2499 | +instead of <CODE>=</CODE>. | |
| 2500 | +<LI> | |
| 2501 | +The syntax for table construction has been greatly simplified. | |
| 2502 | +The old <CODE>@(size)</CODE> has been substituted by <CODE>{}</CODE>. | |
| 2503 | +The list constructor (formerly <CODE>@[...]</CODE>) and the record | |
| 2504 | +constructor (formerly <CODE>@{...}</CODE>) now are both coded like | |
| 2505 | +<CODE>{...}</CODE>. | |
| 2506 | +When the construction involves a function call, | |
| 2507 | +like in <CODE>@func{...}</CODE>, | |
| 2508 | +the new syntax does not use the <CODE>@</CODE>. | |
| 2509 | +More important, {\em a construction function must now | |
| 2510 | +explicitly return the constructed table}. | |
| 2511 | +<LI> | |
| 2512 | +The function <CODE>lua_call</CODE> no longer has the parameter <CODE>nparam</CODE>. | |
| 2513 | +<LI> | |
| 2514 | +The function <CODE>lua_pop</CODE> is no longer available, | |
| 2515 | +since it could lead to strange behavior. | |
| 2516 | +In particular, | |
| 2517 | +to access results returned from a Lua function, | |
| 2518 | +the new macro <CODE>lua_getresult</CODE> should be used. | |
| 2519 | +<LI> | |
| 2520 | +The old functions <CODE>lua_storefield</CODE> and <CODE>lua_storeindexed</CODE> | |
| 2521 | +have been replaced by | |
| 2522 | +<LISTING> | |
| 2523 | +int lua_storesubscript (void); | |
| 2524 | +</LISTING> | |
| 2525 | +with the parameters explicitly pushed on the stack. | |
| 2526 | +<LI> | |
| 2527 | +The functionality of the function <CODE>lua_errorfunction</CODE> has been | |
| 2528 | +replaced by the <EM>fallback</EM> mechanism (see Section <A HREF="#error">4.9</A>). | |
| 2529 | +<LI> | |
| 2530 | +When calling a function from the Lua library, | |
| 2531 | +parameters passed through the stack | |
| 2532 | +must be pushed just before the corresponding call, | |
| 2533 | +with no intermediate calls to Lua. | |
| 2534 | +Special care should be taken with macros like | |
| 2535 | +<CODE>lua_getindexed</CODE> and <CODE>lua_getfield</CODE>. | |
| 2536 | +</UL> | |
| 2537 | +<P> | |
| 2538 | +<P> | |
| 2539 | + | |
| 2540 | +<HR> | |
| 2541 | +Last update: | |
| 2542 | +Tue Jul 1 07:55:45 EST 1997 | |
| 2543 | +by <A HREF="http://www.tecgraf.puc-rio.br/~lhf/">lhf</A>. | |
| 2544 | +</BODY> | |
| 2545 | +</HTML> | |
| @@ -1,7807 +0,0 @@ | ||
| 1 | −%!PS-Adobe-2.0 | |
| 2 | −%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software | |
| 3 | −%%Title: manual.dvi | |
| 4 | −%%Pages: 39 | |
| 5 | −%%PageOrder: Ascend | |
| 6 | −%%BoundingBox: 0 0 612 792 | |
| 7 | −%%DocumentPaperSizes: Letter | |
| 8 | −%%EndComments | |
| 9 | −%DVIPSCommandLine: /visgraf/pub/teTeX/bin/sun4/dvips manual | |
| 10 | −%DVIPSParameters: dpi=600, comments removed | |
| 11 | −%DVIPSSource: TeX output 1996.11.18:1940 | |
| 12 | −%%BeginProcSet: tex.pro | |
| 13 | −/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N | |
| 14 | −/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 | |
| 15 | −mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} | |
| 16 | −ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale | |
| 17 | −isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div | |
| 18 | −hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul | |
| 19 | −TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} | |
| 20 | −forall round exch round exch]setmatrix}N /@landscape{/isls true N}B | |
| 21 | −/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B | |
| 22 | −/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ | |
| 23 | −/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N | |
| 24 | −string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N | |
| 25 | −end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ | |
| 26 | −/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] | |
| 27 | −N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup | |
| 28 | −length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ | |
| 29 | −128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub | |
| 30 | −get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data | |
| 31 | −dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N | |
| 32 | −/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup | |
| 33 | −/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx | |
| 34 | −0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff | |
| 35 | −setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff | |
| 36 | −.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} | |
| 37 | −if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup | |
| 38 | −length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ | |
| 39 | −cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin | |
| 40 | −0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul | |
| 41 | −add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict | |
| 42 | −/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook | |
| 43 | −known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X | |
| 44 | −/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for | |
| 45 | −65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 | |
| 46 | −0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V | |
| 47 | −{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 | |
| 48 | −getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} | |
| 49 | −ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false | |
| 50 | −RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 | |
| 51 | −false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform | |
| 52 | −round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg | |
| 53 | −rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail | |
| 54 | −{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} | |
| 55 | −B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ | |
| 56 | −4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ | |
| 57 | −p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p | |
| 58 | −a}B /bos{/SS save N}B /eos{SS restore}B end | |
| 59 | −%%EndProcSet | |
| 60 | −TeXDict begin 40258431 52099146 1000 600 600 (manual.dvi) | |
| 61 | −@start /Fa 7 115 df<000000FFF00000000FFFFF8000003FFFFFF00000FFFFFFFC0001 | |
| 62 | −FFFFFFFC0007FFFFFFFC000FFF803FF8001FFC0003F8003FF00000F8007FC000003800FF | |
| 63 | −8000001801FF0000000003FE0000000003FC0000000007FC0000000007F8000000000FF0 | |
| 64 | −000000000FF0000000001FE0000000001FE0000000003FC0000000003FC0000000003FC0 | |
| 65 | −000000007F80000000007F80000000007F80000000007F8000000000FF0000000000FF00 | |
| 66 | −00000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00 | |
| 67 | −00000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000000007F80 | |
| 68 | −000000007F80000000007F80000000007F80000000003FC0000000003FC0000000003FC0 | |
| 69 | −000000001FE0000000001FE0000000000FF0000000000FF00000000007F80000000007FC | |
| 70 | −0000000003FC0000000003FE0000000001FF0000000400FF8000000C007FC000003C003F | |
| 71 | −F000007C001FFC0001FE000FFF801FFE0007FFFFFFFE0001FFFFFFFC0000FFFFFFF00000 | |
| 72 | −3FFFFFC000000FFFFF00000000FFF0002F437AC03A>67 D<000000FFF000000007FFFF00 | |
| 73 | −00003FFFFFE00000FFFFFFF80001FFFFFFFE0007FFFFFFFE000FFF803FFE001FFC0003FC | |
| 74 | −003FF00000FC007FE000003C00FF8000001C01FF0000000C01FE0000000003FC00000000 | |
| 75 | −07FC0000000007F8000000000FF0000000000FF0000000001FE0000000001FE000000000 | |
| 76 | −3FC0000000003FC0000000003FC0000000007F80000000007F80000000007F8000000000 | |
| 77 | −7F8000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000 | |
| 78 | −FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF000007FFFF | |
| 79 | −FF000007FFFFFF000007FFFF7F800007FFFF7F800007FFFF7F800007FFFF7F800000007F | |
| 80 | −3FC00000007F3FC00000007F3FC00000007F1FE00000007F1FE00000007F0FF00000007F | |
| 81 | −0FF00000007F07F80000007F07FC0000007F03FC0000007F01FE0000007F01FF0000007F | |
| 82 | −00FF8000007F007FE000007F003FF000007F001FFC0001FF000FFF801FFF0007FFFFFFFF | |
| 83 | −0001FFFFFFFF0000FFFFFFFC00003FFFFFF0000007FFFF00000000FFF00030437AC03D> | |
| 84 | −71 D<FFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFF | |
| 85 | −FFFEFFFFFFFFFFFFFE000000FF000000000000FF000000000000FF000000000000FF0000 | |
| 86 | −00000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000 | |
| 87 | −000000FF000000000000FF000000000000FF000000000000FF000000000000FF00000000 | |
| 88 | −0000FF000000000000FF000000000000FF000000000000FF000000000000FF0000000000 | |
| 89 | −00FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000 | |
| 90 | −FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF | |
| 91 | −000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF00 | |
| 92 | −0000000000FF000000000000FF000000000000FF000000000000FF000000000000FF0000 | |
| 93 | −00000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000 | |
| 94 | −000000FF000000000000FF000000000000FF000000000000FF000000000000FF00000000 | |
| 95 | −0000FF000000000000FF000000000000FF000000000000FF000000000000FF0000000000 | |
| 96 | −00FF000000373E7DBD3E>84 D<000FF80000FFFF0003FFFF800FFFFFE01FFFFFF01FFFFF | |
| 97 | −F01FF00FF81F8003FC1E0001FC180001FE100000FE000000FF0000007F0000007F000000 | |
| 98 | −7F0000007F0000007F0000007F0000007F00007FFF000FFFFF007FFFFF01FFFFFF07FFFF | |
| 99 | −FF0FFFF07F3FFC007F3FC0007F7F00007FFE00007FFC00007FFC00007FFC00007FFC0000 | |
| 100 | −FFFE0000FFFE0001FF7F8007FF7FE01FFF3FFFFFFF3FFFFFFF1FFFFF7F0FFFFC7F07FFF0 | |
| 101 | −7F01FF0000202B7CA92C>97 D<0003F80000001FFF0000007FFFC00000FFFFE00001FFFF | |
| 102 | −F00003FFFFF80007FE07F8000FF801FC000FE000FE001FC0007E003FC0003E003F80003F | |
| 103 | −003F00001F007F00001F007E00001F007E00000F80FFFFFFFF80FFFFFFFF80FFFFFFFF80 | |
| 104 | −FFFFFFFF80FFFFFFFF80FFFFFFFF80FC00000000FC00000000FC00000000FE000000007E | |
| 105 | −000000007E000000007F000000007F000000003F800000003F800000001FC00000001FE0 | |
| 106 | −0000800FF000038007FC001F8007FF00FF8003FFFFFF8001FFFFFF80007FFFFF00003FFF | |
| 107 | −FC00000FFFE0000001FF0000212B7DA928>101 D<00001FF00000FFFC0001FFFC0007FF | |
| 108 | −FC000FFFFC000FFFFC001FE03C003F8004003F0000007F0000007E000000FE000000FE00 | |
| 109 | −0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 | |
| 110 | −0000FE000000FE0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FE00 | |
| 111 | −0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 | |
| 112 | −0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 | |
| 113 | −0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 | |
| 114 | −0000FE000000FE000000FE000000FE000000FE000000FE00001E407FBF1C>I<FC007CFC | |
| 115 | −03FCFC0FFCFC1FFCFC3FFCFC7FFCFCFFC0FDFE00FFF800FFF000FFE000FFC000FFC000FF | |
| 116 | −8000FF8000FF0000FF0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE | |
| 117 | −0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE | |
| 118 | −0000FE0000FE0000FE0000162979A81F>114 D E /Fb 7 121 df<001FFC00000000FFFF | |
| 119 | −80000003FFFFE0000007FFFFF000000FFFFFFC00001FFFFFFE00001FF007FF00001FE001 | |
| 120 | −FF00001FE000FF80001FE0003F80000FC0003FC0000780001FC0000000001FE000000000 | |
| 121 | −0FE0000000000FE0000000000FE0000000000FE0000000000FE00000000FFFE0000001FF | |
| 122 | −FFE000001FFFFFE000007FFFFFE00001FFFFFFE00007FFFF0FE0000FFFC00FE0001FFC00 | |
| 123 | −0FE0003FF0000FE0007FC0000FE0007F80000FE000FF00000FE000FE00000FE000FE0000 | |
| 124 | −0FE000FE00000FE000FE00000FE000FE00000FE000FF00001FE0007F00001FE0007F8000 | |
| 125 | −7FE0003FE000FFF0003FF807FFFFF01FFFFFFFFFF80FFFFFFFFFF807FFFFF3FFF803FFFF | |
| 126 | −C1FFF800FFFF003FF0001FF00000002D2E7BAC33>97 D<0000FF80000007FFF000001FFF | |
| 127 | −FC00003FFFFE0000FFFFFF0001FFFFFF8003FF80FFC007FE003FE007F8000FF00FF00007 | |
| 128 | −F01FE00007F81FC00003F83FC00003FC3F800001FC7F800001FC7F000001FC7F000001FE | |
| 129 | −7F000000FEFF000000FEFE000000FEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFF | |
| 130 | −FFFFFFFEFFFFFFFFFCFE00000000FF000000007F000000007F000000007F000000003F80 | |
| 131 | −0000003F8000007C1FC00000FE1FE00000FE0FF00000FE0FF80001FE07FC0003FC03FF00 | |
| 132 | −0FFC01FFC03FF800FFFFFFF0007FFFFFE0003FFFFFC0000FFFFF000003FFFC0000007FE0 | |
| 133 | −00272E7BAC33>101 D<000001FF00003FFC07FFC0007FFE1FFFF000FFFE7FFFF800FFFE | |
| 134 | −FFFFF8007FFFFFFFFC003FFFFF07FE0000FFF801FE0000FFF000FE0000FFE000FF0000FF | |
| 135 | −C0007F0000FF80007F0000FF80007F0000FF00007F0000FF00007F0000FF00007F0000FE | |
| 136 | −00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE | |
| 137 | −00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE | |
| 138 | −00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE | |
| 139 | −00007F0000FE00007F0000FE00007F0000FE00007F003FFFF80FFFFC7FFFFC1FFFFEFFFF | |
| 140 | −FE3FFFFFFFFFFE3FFFFF7FFFFC1FFFFE3FFFF80FFFFC302C7FAB33>110 | |
| 141 | −D<00000003FE007FFF801FFF80FFFFC07FFFE0FFFFC1FFFFE0FFFFC3FFFFF0FFFFC7FFFF | |
| 142 | −F07FFFCFFE0FF0001FDFF00FF0001FFFC007E0001FFF8003C0001FFF000000001FFE0000 | |
| 143 | −00001FFC000000001FF8000000001FF8000000001FF0000000001FF0000000001FE00000 | |
| 144 | −00001FE0000000001FE0000000001FC0000000001FC0000000001FC0000000001FC00000 | |
| 145 | −00001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000 | |
| 146 | −00001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000 | |
| 147 | −00001FC0000000001FC00000007FFFFFFE0000FFFFFFFF0000FFFFFFFF0000FFFFFFFF00 | |
| 148 | −00FFFFFFFF00007FFFFFFE00002C2C7DAB33>114 D<0003C00000000007E0000000000F | |
| 149 | −E0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000F | |
| 150 | −E0000000000FE0000000000FE0000000000FE00000003FFFFFFFFC007FFFFFFFFE00FFFF | |
| 151 | −FFFFFE00FFFFFFFFFE00FFFFFFFFFE007FFFFFFFFC00000FE0000000000FE0000000000F | |
| 152 | −E0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000F | |
| 153 | −E0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000F | |
| 154 | −E0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000F | |
| 155 | −E0000000000FE0001F00000FE0003F80000FE0003F80000FE0003F80000FE0003F80000F | |
| 156 | −E0003F80000FE0007F80000FF0007F000007F000FF000007F801FF000007FE07FE000003 | |
| 157 | −FFFFFC000001FFFFF8000000FFFFF00000007FFFE00000001FFF8000000007FC00002938 | |
| 158 | −7EB633>116 D<3FFFC00FFFF07FFFE01FFFF8FFFFF03FFFFCFFFFF03FFFFC7FFFE01FFF | |
| 159 | −F83FFFC00FFFF001F800007E0001FC0000FE0000FC0000FC0000FC0000FC0000FE0001FC | |
| 160 | −00007E0001F800007E0001F800007F0003F800003F0003F000003F0003F000003F8007F0 | |
| 161 | −00001F8007E000001F8007E000001FC00FE000000FC00FC000000FC00FC000000FC00FC0 | |
| 162 | −000007E01F80000007E01F80000007E01F80000007F03F80000003F03F00000003F03F00 | |
| 163 | −000003F87F00000001F87E00000001F87E00000001FCFE00000000FCFC00000000FCFC00 | |
| 164 | −000000FFFC000000007FF8000000007FF8000000007FF8000000003FF0000000003FF000 | |
| 165 | −0000001FE0000000000FC000002E2B7EAA33>118 D<3FFFC07FFF807FFFE0FFFFC0FFFF | |
| 166 | −F1FFFFE0FFFFF1FFFFE07FFFE0FFFFC03FFFC07FFF8000FE000FE000007F001FC000003F | |
| 167 | −801FC000003F803F8000001FC07F0000000FE07E00000007F0FE00000007F1FC00000003 | |
| 168 | −FBF800000001FFF800000000FFF000000000FFE0000000007FC0000000003FC000000000 | |
| 169 | −1F80000000003F80000000003FC0000000007FE000000000FFE000000001FBF000000001 | |
| 170 | −F9F800000003F1FC00000007E0FC00000007E07E0000000FC07F0000001FC03F8000003F | |
| 171 | −801F8000003F001FC000007F000FE00000FE0007F00001FC0003F0007FFFC03FFFE0FFFF | |
| 172 | −E07FFFF0FFFFE07FFFF0FFFFE07FFFF0FFFFE07FFFF07FFFC03FFFE02C2B7DAA33>120 | |
| 173 | −D E /Fc 1 43 df<000F0000001F8000001F8000001F8000001F8000001F8000001F8000 | |
| 174 | −781F81E0FE1F87F0FF1F8FF0FFDFBFF07FFFFFE03FFFFFC00FFFFF0003FFFC0000FFF000 | |
| 175 | −00FFF00003FFFC000FFFFF003FFFFFC07FFFFFE0FFDFBFF0FF1F8FF0FE1F87F0781F81E0 | |
| 176 | −001F8000001F8000001F8000001F8000001F8000001F8000000F00001C207BA627>42 | |
| 177 | −D E /Fd 1 122 df<01E0000007F8000E0E3C001F1C3E003F383E003E303E003E703E00 | |
| 178 | −3E607E007EE07C007CC07C007CC0FC007C80F800FC00F800F801F800F801F000F801F001 | |
| 179 | −F803F001F003E001F003E001F003E003F007E003E007C003E007C003E007C007E007C007 | |
| 180 | −C003C00FC003E01FC003E03FC001F07F80007FEF80001F8F8000001F8000001F0000001F | |
| 181 | −003E003E003E003E007E007C007E00F8007C01F0007003E0003007C0003C0F80000FFE00 | |
| 182 | −0003F00000202C7E9D23>121 D E /Fe 3 121 df<1E007F80FF80FFC0FFC0FFE0FFE0FF | |
| 183 | −E07FE01E60006000600060006000E000C000C000C001C001800380030007000E001C0018 | |
| 184 | −00380030000B1C798919>59 D<01F0000FF0000007FC003FFE00000F1F00F01F00000E1F | |
| 185 | −03C00F80001E0F87000FC0001C0F8E0007C0003C0FDC0007E000380FF80007E000380FF0 | |
| 186 | −0007E000781FF00007E000701FE00007E000701FC00007E000701FC00007E000F01F8000 | |
| 187 | −0FE000F03F80000FC000003F00000FC000003F00000FC000003F00001FC000007F00001F | |
| 188 | −8000007E00001F8000007E00003F8000007E00003F000000FE00003F000000FC00007F00 | |
| 189 | −0000FC00007E000000FC00007E000001FC0000FE038001F80000FC038001F80000FC0380 | |
| 190 | −01F80001FC078003F80001F8070003F00001F8070003F00001F80F0003F00001F00E0007 | |
| 191 | −F00001F01E0007E00001F01C0007E00001F0380007E00001F078000FE00000F8F0000FC0 | |
| 192 | −00007FC000038000001F000031297EA737>110 D<0001F8003F000007FE00FFE0001E0F | |
| 193 | −83C0F0003807C780F8007003CF03F800E003FE03F801C003FC07F803C003FC07F8038003 | |
| 194 | −F807F8070003F807F0070003F801C00E0003F000000E0003F000001E0007F000001E0007 | |
| 195 | −F00000000007E00000000007E0000000000FE0000000000FC0000000000FC0000000000F | |
| 196 | −C0000000001FC0000000001F80000000001F80000000001F80000000003F80000000003F | |
| 197 | −0001C000003F0001C000003F0001C000007F0003C01E007F0003803F007E0007807F80FE | |
| 198 | −0007007F80FE000F00FF81FE001E00FF01DF001C00FE03DF0038007C078F80F0003C0F07 | |
| 199 | −C1E0001FFC03FF800007F0007E00002D297EA734>120 D E /Ff | |
| 200 | −51 121 df<0000000FFF0000000001FFFFC00000000FFFFFF00000007FFFFFF8000001FF | |
| 201 | −F803FC000003FFC000FE00000FFF0003FE00001FFE0007FF00003FFC000FFF00003FF800 | |
| 202 | −0FFF00007FF0000FFF00007FF0001FFF8000FFF0000FFF0000FFE0000FFF0000FFE0000F | |
| 203 | −FF0000FFE0000FFF0000FFE00007FE0000FFE00001F80000FFE00000000000FFE0000000 | |
| 204 | −0000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000000000 | |
| 205 | −00FFE001FFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FF | |
| 206 | −FFFFFFFFFF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FF | |
| 207 | −E00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE0 | |
| 208 | −0003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE000 | |
| 209 | −03FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003 | |
| 210 | −FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF | |
| 211 | −8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF80 | |
| 212 | −00FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF807FFFFFC1FFFFFF7F | |
| 213 | −FFFFC1FFFFFF7FFFFFC1FFFFFF7FFFFFC1FFFFFF7FFFFFC1FFFFFF38467EC53E>12 | |
| 214 | −D<07C01FF03FF87FFCFFFEFFFEFFFEFFFEFFFEFFFEFFFE7FFC3FF81FF007C00F0F788E1F | |
| 215 | −>46 D<0000000001C00000000003E00000000007E00000000007E0000000000FE0000000 | |
| 216 | −000FC0000000001FC0000000001F80000000001F80000000003F80000000003F00000000 | |
| 217 | −007F00000000007E00000000007E0000000000FE0000000000FC0000000001FC00000000 | |
| 218 | −01F80000000001F80000000003F80000000003F00000000003F00000000007F000000000 | |
| 219 | −07E0000000000FE0000000000FC0000000000FC0000000001FC0000000001F8000000000 | |
| 220 | −3F80000000003F00000000003F00000000007F00000000007E0000000000FE0000000000 | |
| 221 | −FC0000000000FC0000000001FC0000000001F80000000003F80000000003F00000000003 | |
| 222 | −F00000000007F00000000007E0000000000FE0000000000FC0000000000FC0000000001F | |
| 223 | −C0000000001F80000000003F80000000003F00000000003F00000000007F00000000007E | |
| 224 | −00000000007E0000000000FE0000000000FC0000000001FC0000000001F80000000001F8 | |
| 225 | −0000000003F80000000003F00000000007F00000000007E00000000007E0000000000FE0 | |
| 226 | −000000000FC0000000001FC0000000001F80000000001F80000000003F80000000003F00 | |
| 227 | −000000007F00000000007E00000000007E0000000000FE0000000000FC0000000001FC00 | |
| 228 | −00000001F80000000001F80000000003F80000000003F00000000003F00000000007F000 | |
| 229 | −00000007E0000000000FE0000000000FC0000000000FC0000000001FC0000000001F8000 | |
| 230 | −0000003F80000000003F00000000003F00000000007F00000000007E0000000000FE0000 | |
| 231 | −000000FC0000000000FC0000000000F800000000007800000000002B647ACA38>I<0000 | |
| 232 | −3FF800000001FFFF0000000FFFFFE000003FFFFFF800007FF01FFC0000FFC007FE0001FF | |
| 233 | −0001FF0003FE0000FF8007FE0000FFC007FC00007FC00FFC00007FE00FF800003FE01FF8 | |
| 234 | −00003FF01FF800003FF03FF800003FF83FF800003FF83FF000001FF87FF000001FFC7FF0 | |
| 235 | −00001FFC7FF000001FFC7FF000001FFC7FF000001FFC7FF000001FFCFFF000001FFEFFF0 | |
| 236 | −00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0 | |
| 237 | −00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0 | |
| 238 | −00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0 | |
| 239 | −00001FFEFFF000001FFE7FF000001FFC7FF000001FFC7FF000001FFC7FF000001FFC7FF0 | |
| 240 | −00001FFC3FF800003FF83FF800003FF83FF800003FF81FF800003FF01FF800003FF00FF8 | |
| 241 | −00003FE00FFC00007FE007FC00007FC007FE0000FFC003FF0001FF8001FF8003FF0000FF | |
| 242 | −C007FE00007FF01FFC00003FFFFFF800000FFFFFE0000003FFFF800000003FF800002F42 | |
| 243 | −7CC038>I<000003C000000007C00000001FC00000007FC0000003FFC000003FFFC000FF | |
| 244 | −FFFFC000FFFFFFC000FFFFFFC000FFFFFFC000FFC3FFC0000003FFC0000003FFC0000003 | |
| 245 | −FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FF | |
| 246 | −C0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0 | |
| 247 | −000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC000 | |
| 248 | −0003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC00000 | |
| 249 | −03FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003 | |
| 250 | −FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FF | |
| 251 | −C0000003FFC0000003FFC0000003FFC000FFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFFFFFFF | |
| 252 | −FCFFFFFFFFFC264177C038>I<0000FFE00000000FFFFE0000003FFFFF800000FFFFFFE0 | |
| 253 | −0003FFFFFFF80007FC03FFFE000FE0007FFF001F80003FFF803F00000FFFC07F000007FF | |
| 254 | −C07FC00007FFE07FF00003FFE0FFF00001FFF0FFF80001FFF0FFF80001FFF8FFF80000FF | |
| 255 | −F8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF00000FFF83FE00000FFF81FC00000FF | |
| 256 | −F800000000FFF800000000FFF000000001FFF000000001FFF000000001FFE000000003FF | |
| 257 | −E000000003FFC000000007FF800000000FFF000000000FFF000000001FFC000000003FF8 | |
| 258 | −000000003FF0000000007FE000000000FFC000000001FF0000000003FE0000000007FC00 | |
| 259 | −0000000FF0000000001FE0000000003F80000000007F0000780000FE0000780001FC0000 | |
| 260 | −780003F80000F80007E00000F0000FC00000F0001F800000F0003F000000F0007C000001 | |
| 261 | −F000F8000003F001FFFFFFFFF003FFFFFFFFE007FFFFFFFFE00FFFFFFFFFE01FFFFFFFFF | |
| 262 | −E03FFFFFFFFFE07FFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFF | |
| 263 | −C0FFFFFFFFFFC02D417BC038>I<0000FFF000000007FFFF0000001FFFFFC000007FFFFF | |
| 264 | −F00000FF007FF80003F8003FFE0007E0001FFF0007E0000FFF000FF80007FF800FFE0007 | |
| 265 | −FF801FFE0007FFC01FFF0007FFC01FFF0007FFC01FFF0007FFC01FFF0007FFC01FFF0007 | |
| 266 | −FFC01FFF0007FFC00FFE0007FFC007FC0007FF8003F8000FFF800000000FFF000000001F | |
| 267 | −FF000000001FFE000000003FFC000000007FF800000000FFF000000001FFE00000000FFF | |
| 268 | −80000007FFFE00000007FFF800000007FFFF00000007FFFFC000000000FFF0000000003F | |
| 269 | −FC000000000FFE000000000FFF8000000007FF8000000003FFC000000003FFE000000003 | |
| 270 | −FFE000000001FFF000000001FFF000000001FFF800000001FFF800000001FFF80FC00001 | |
| 271 | −FFF83FF00001FFF87FF80001FFF87FF80001FFF8FFFC0001FFF8FFFC0001FFF8FFFC0001 | |
| 272 | −FFF0FFFC0001FFF0FFFC0003FFF0FFFC0003FFE07FF80003FFE07FF00007FFC07FE00007 | |
| 273 | −FFC03F80000FFF801FF0001FFF000FFE00FFFE0007FFFFFFF80001FFFFFFF000007FFFFF | |
| 274 | −C000001FFFFE00000001FFE000002D427BC038>I<000000003F0000000000003F000000 | |
| 275 | −0000007F000000000000FF000000000001FF000000000003FF000000000003FF00000000 | |
| 276 | −0007FF00000000000FFF00000000001FFF00000000003FFF00000000003FFF0000000000 | |
| 277 | −7FFF0000000000FFFF0000000001F7FF0000000003E7FF0000000007E7FF0000000007C7 | |
| 278 | −FF000000000F87FF000000001F07FF000000003E07FF000000007E07FF000000007C07FF | |
| 279 | −00000000F807FF00000001F007FF00000003E007FF00000007E007FF00000007C007FF00 | |
| 280 | −00000F8007FF0000001F0007FF0000003E0007FF0000007C0007FF0000007C0007FF0000 | |
| 281 | −00F80007FF000001F00007FF000003E00007FF000007C00007FF00000FC00007FF00000F | |
| 282 | −800007FF00001F000007FF00003E000007FF00007C000007FF0000FC000007FF0000FFFF | |
| 283 | −FFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80000000 | |
| 284 | −0FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000F | |
| 285 | −FF00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF | |
| 286 | −00000000000FFF000000007FFFFFFF8000007FFFFFFF8000007FFFFFFF8000007FFFFFFF | |
| 287 | −8000007FFFFFFF8031417DC038>I<07000000030007E000003F0007FF0007FF0007FFFF | |
| 288 | −FFFF0007FFFFFFFE0007FFFFFFFC0007FFFFFFF80007FFFFFFF00007FFFFFFE00007FFFF | |
| 289 | −FF800007FFFFFE000007FFFFFC000007FFFFE0000007FFFF00000007C00000000007C000 | |
| 290 | −00000007C00000000007C00000000007C00000000007C00000000007C00000000007C000 | |
| 291 | −00000007C00000000007C00000000007C03FF0000007C1FFFF000007C7FFFFC00007DFFF | |
| 292 | −FFF00007FFE03FFC0007FF000FFE0007FC0007FF0007F00003FF8007E00003FFC007C000 | |
| 293 | −01FFC003800001FFE000000001FFE000000000FFF000000000FFF000000000FFF0000000 | |
| 294 | −00FFF800000000FFF800000000FFF800000000FFF80F800000FFF83FE00000FFF87FF000 | |
| 295 | −00FFF8FFF00000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF0FFF000 | |
| 296 | −00FFF0FFF00001FFF07FE00001FFE07FC00001FFE07E000003FFC03E000003FFC03F0000 | |
| 297 | −07FF801FC0000FFF000FF0001FFE0007FE00FFFC0003FFFFFFF00000FFFFFFE000003FFF | |
| 298 | −FF8000000FFFFC00000001FFC000002D427BC038>I<000001FF800000001FFFF0000000 | |
| 299 | −7FFFFC000001FFFFFF000007FF807F80000FFC001F80003FF0001FC0007FE0007FC000FF | |
| 300 | −C000FFE001FF8001FFE003FF8001FFE003FF0001FFE007FE0001FFE00FFE0001FFE00FFE | |
| 301 | −0001FFE01FFC0000FFC01FFC00007F801FFC00001E003FFC000000003FFC000000003FF8 | |
| 302 | −000000007FF8000000007FF8000000007FF807FC00007FF81FFF8000FFF87FFFE000FFF8 | |
| 303 | −FFFFF800FFF9F01FFC00FFFBC007FE00FFFF8003FF00FFFF8003FF80FFFF0001FFC0FFFE | |
| 304 | −0001FFC0FFFE0000FFE0FFFE0000FFE0FFFC0000FFF0FFFC0000FFF0FFFC0000FFF0FFFC | |
| 305 | −0000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF80000FFF87FF8 | |
| 306 | −0000FFF87FF80000FFF87FF80000FFF87FF80000FFF83FF80000FFF83FF80000FFF83FF8 | |
| 307 | −0000FFF03FFC0000FFF01FFC0000FFF01FFC0000FFF00FFC0001FFE00FFC0001FFE007FE | |
| 308 | −0001FFC007FF0003FF8003FF8003FF0001FFC007FE0000FFE01FFC00007FFFFFF800001F | |
| 309 | −FFFFF0000007FFFFC0000001FFFF000000003FF000002D427BC038>I<1E00000000001F | |
| 310 | −00000000001FFC000000001FFFFFFFFFFE1FFFFFFFFFFE1FFFFFFFFFFE1FFFFFFFFFFE3F | |
| 311 | −FFFFFFFFFE3FFFFFFFFFFC3FFFFFFFFFF83FFFFFFFFFF03FFFFFFFFFE03FFFFFFFFFC03F | |
| 312 | −FFFFFFFFC07FFFFFFFFF807E0000003F007C0000007E007C000000FC0078000000F80078 | |
| 313 | −000001F80078000003F000F8000007E000F000000FC000F000000F8000F000001F800000 | |
| 314 | −00003F00000000007E0000000000FC0000000000FC0000000001F80000000003F8000000 | |
| 315 | −0003F00000000007F0000000000FE0000000000FE0000000001FE0000000001FC0000000 | |
| 316 | −003FC0000000003FC0000000007FC0000000007F8000000000FF8000000000FF80000000 | |
| 317 | −01FF8000000001FF8000000001FF8000000003FF8000000003FF0000000003FF00000000 | |
| 318 | −03FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000000 | |
| 319 | −0FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF00000000 | |
| 320 | −0FFF000000000FFF000000000FFF000000000FFF0000000007FE0000000003FC00000000 | |
| 321 | −01F80000002F447AC238>I<00007FF000000003FFFF0000000FFFFFC000003FFFFFF000 | |
| 322 | −007F801FFC0001FC0003FE0003F80001FF0003F00000FF0007E000007F8007E000003F80 | |
| 323 | −0FC000003FC00FC000003FC01FC000001FC01FC000001FC01FE000001FC01FE000001FC0 | |
| 324 | −1FF000001FC01FF800001FC01FFE00003FC01FFF00003F801FFFC0007F801FFFF0007F00 | |
| 325 | −0FFFFC00FF000FFFFE01FE0007FFFF83FC0007FFFFE7F80003FFFFFFE00001FFFFFFC000 | |
| 326 | −00FFFFFF0000007FFFFFC000003FFFFFE000000FFFFFF800000FFFFFFC00003FFFFFFE00 | |
| 327 | −00FFFFFFFF0001FF3FFFFF8007FC0FFFFFC00FF803FFFFE01FF000FFFFE01FE0007FFFF0 | |
| 328 | −3FE0001FFFF07FC00007FFF07F800003FFF87F800000FFF8FF8000007FF8FF0000003FF8 | |
| 329 | −FF0000001FF8FF0000000FF8FF0000000FF8FF00000007F8FF00000007F8FF00000007F8 | |
| 330 | −FF80000007F07F80000007F07F8000000FF07FC000000FE03FE000001FE03FF000003FC0 | |
| 331 | −1FF800007F800FFE0001FF0007FFC00FFE0003FFFFFFFC0000FFFFFFF000003FFFFFC000 | |
| 332 | −000FFFFF00000000FFF000002D427BC038>I<00007FF000000007FFFE0000001FFFFF80 | |
| 333 | −00007FFFFFE00000FFE03FF00001FF800FF80003FF0007FC0007FE0007FE000FFC0003FF | |
| 334 | −001FFC0001FF003FFC0001FF803FFC0001FF807FF80001FFC07FF80000FFC07FF80000FF | |
| 335 | −E07FF80000FFE0FFF80000FFE0FFF80000FFF0FFF80000FFF0FFF80000FFF0FFF80000FF | |
| 336 | −F0FFF80000FFF0FFF80000FFF0FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FF | |
| 337 | −F8FFF80001FFF87FF80001FFF87FF80001FFF87FF80001FFF83FF80003FFF83FF80003FF | |
| 338 | −F81FFC0003FFF81FFC0007FFF80FFE000FFFF807FE000FFFF803FF001EFFF801FFC07CFF | |
| 339 | −F800FFFFF8FFF8003FFFF0FFF8000FFFC0FFF00001FF00FFF000000000FFF000000000FF | |
| 340 | −F000000000FFE000000001FFE000000001FFE003C00001FFE00FF00001FFC01FF80001FF | |
| 341 | −C03FFC0003FF803FFC0003FF803FFC0003FF003FFC0007FE003FFC000FFE003FFC000FFC | |
| 342 | −003FF8001FF8001FF0003FF0001FC000FFE0000FF003FFC00007FFFFFF800003FFFFFE00 | |
| 343 | −0001FFFFF80000007FFFE000000007FE0000002D427BC038>I<000000001F8000000000 | |
| 344 | −000000001F8000000000000000003FC000000000000000003FC000000000000000007FE0 | |
| 345 | −00000000000000007FE000000000000000007FE00000000000000000FFF0000000000000 | |
| 346 | −0000FFF00000000000000001FFF80000000000000001FFF80000000000000001FFF80000 | |
| 347 | −000000000003FFFC0000000000000003FFFC0000000000000007FFFE0000000000000007 | |
| 348 | −FFFE0000000000000007FFFE000000000000000FFFFF000000000000000F9FFF00000000 | |
| 349 | −0000001F9FFF800000000000001F1FFF800000000000001F0FFF800000000000003F0FFF | |
| 350 | −C00000000000003E07FFC00000000000007E07FFE00000000000007C07FFE00000000000 | |
| 351 | −007C03FFE0000000000000FC03FFF0000000000000F801FFF0000000000001F801FFF800 | |
| 352 | −0000000001F001FFF8000000000001F000FFF8000000000003F000FFFC000000000003E0 | |
| 353 | −007FFC000000000007E0007FFE000000000007C0007FFE000000000007C0003FFE000000 | |
| 354 | −00000FC0003FFF00000000000F80001FFF00000000001F80001FFF80000000001F00000F | |
| 355 | −FF80000000001F00000FFF80000000003F00000FFFC0000000003E000007FFC000000000 | |
| 356 | −7E000007FFE0000000007FFFFFFFFFE0000000007FFFFFFFFFE000000000FFFFFFFFFFF0 | |
| 357 | −00000000FFFFFFFFFFF000000001FFFFFFFFFFF800000001F0000000FFF800000001F000 | |
| 358 | −0000FFF800000003F0000000FFFC00000003E00000007FFC00000007E00000007FFE0000 | |
| 359 | −0007C00000003FFE00000007C00000003FFE0000000F800000003FFF0000000F80000000 | |
| 360 | −1FFF0000001F800000001FFF8000001F000000000FFF8000003F000000000FFFC000003E | |
| 361 | −000000000FFFC000007E0000000007FFC000FFFFFF00000FFFFFFFF0FFFFFF00000FFFFF | |
| 362 | −FFF0FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF04C457CC4 | |
| 363 | −55>65 D<00000000FFF00000700000001FFFFF0000F0000001FFFFFFE001F0000007FFFF | |
| 364 | −FFF803F000003FFFFFFFFE07F00000FFFFE001FF0FF00001FFFE00003F9FF00007FFF000 | |
| 365 | −000FFFF0000FFFC0000007FFF0001FFF00000003FFF0003FFE00000001FFF0007FFC0000 | |
| 366 | −0000FFF000FFF8000000007FF001FFF0000000003FF003FFE0000000001FF007FFE00000 | |
| 367 | −00001FF007FFC0000000000FF00FFF80000000000FF00FFF800000000007F01FFF000000 | |
| 368 | −000007F01FFF000000000003F03FFF000000000003F03FFE000000000003F03FFE000000 | |
| 369 | −000003F07FFE000000000001F07FFE000000000001F07FFE000000000001F07FFC000000 | |
| 370 | −00000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC000000 | |
| 371 | −00000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC000000 | |
| 372 | −00000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC000000 | |
| 373 | −00000000FFFC00000000000000FFFC000000000000007FFC000000000000007FFE000000 | |
| 374 | −000000007FFE000000000000F07FFE000000000000F03FFE000000000000F03FFE000000 | |
| 375 | −000000F03FFF000000000000F01FFF000000000001F01FFF000000000001E00FFF800000 | |
| 376 | −000001E00FFF800000000003E007FFC00000000003C007FFE00000000007C003FFE00000 | |
| 377 | −000007C001FFF0000000000F8000FFF8000000001F00007FFC000000003F00003FFE0000 | |
| 378 | −00007E00001FFF80000000FC00000FFFC0000001F8000007FFF0000007F0000001FFFE00 | |
| 379 | −001FE0000000FFFFF001FF800000003FFFFFFFFF0000000007FFFFFFFC0000000001FFFF | |
| 380 | −FFF000000000001FFFFF80000000000000FFF800000044467AC451>67 | |
| 381 | −D<FFFFFFFFFFFF00000000FFFFFFFFFFFFF0000000FFFFFFFFFFFFFE000000FFFFFFFFFF | |
| 382 | −FFFF800000FFFFFFFFFFFFFFE00000003FFE00001FFFF80000003FFE000001FFFC000000 | |
| 383 | −3FFE0000003FFF0000003FFE0000000FFF8000003FFE00000007FFC000003FFE00000003 | |
| 384 | −FFE000003FFE00000001FFF000003FFE00000000FFF000003FFE000000007FF800003FFE | |
| 385 | −000000003FFC00003FFE000000003FFC00003FFE000000001FFE00003FFE000000001FFE | |
| 386 | −00003FFE000000000FFF00003FFE000000000FFF00003FFE000000000FFF80003FFE0000 | |
| 387 | −00000FFF80003FFE0000000007FF80003FFE0000000007FFC0003FFE0000000007FFC000 | |
| 388 | −3FFE0000000007FFC0003FFE0000000007FFC0003FFE0000000007FFC0003FFE00000000 | |
| 389 | −07FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE | |
| 390 | −0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FF | |
| 391 | −E0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000000007FFE0003FFE0000 | |
| 392 | −000007FFE0003FFE0000000007FFE0003FFE0000000007FFC0003FFE0000000007FFC000 | |
| 393 | −3FFE0000000007FFC0003FFE0000000007FFC0003FFE0000000007FFC0003FFE00000000 | |
| 394 | −07FF80003FFE000000000FFF80003FFE000000000FFF80003FFE000000000FFF00003FFE | |
| 395 | −000000001FFF00003FFE000000001FFE00003FFE000000003FFE00003FFE000000003FFC | |
| 396 | −00003FFE000000007FF800003FFE00000000FFF800003FFE00000000FFF000003FFE0000 | |
| 397 | −0001FFE000003FFE00000007FFC000003FFE0000000FFF8000003FFE0000003FFF000000 | |
| 398 | −3FFE000001FFFE0000003FFE00000FFFF80000FFFFFFFFFFFFFFF00000FFFFFFFFFFFFFF | |
| 399 | −C00000FFFFFFFFFFFFFE000000FFFFFFFFFFFFF0000000FFFFFFFFFFFF000000004B447C | |
| 400 | −C356>I<FFFFFFFFFFFFFFF800FFFFFFFFFFFFFFF800FFFFFFFFFFFFFFF800FFFFFFFFFF | |
| 401 | −FFFFF800FFFFFFFFFFFFFFFC00001FFF000001FFFC00001FFF0000003FFC00001FFF0000 | |
| 402 | −000FFC00001FFF00000003FC00001FFF00000001FC00001FFF00000000FC00001FFF0000 | |
| 403 | −0000FC00001FFF000000007E00001FFF000000003E00001FFF000000003E00001FFF0000 | |
| 404 | −00003E00001FFF000000001E00001FFF000000001E00001FFF000078001E00001FFF0000 | |
| 405 | −78001E00001FFF000078000F00001FFF000078000F00001FFF000078000F00001FFF0000 | |
| 406 | −78000F00001FFF0000F8000000001FFF0000F8000000001FFF0000F8000000001FFF0001 | |
| 407 | −F8000000001FFF0003F8000000001FFF001FF8000000001FFFFFFFF8000000001FFFFFFF | |
| 408 | −F8000000001FFFFFFFF8000000001FFFFFFFF8000000001FFFFFFFF8000000001FFF001F | |
| 409 | −F8000000001FFF0003F8000000001FFF0001F8000000001FFF0000F8000000001FFF0000 | |
| 410 | −F8000000001FFF0000F80001E0001FFF0000780001E0001FFF0000780001E0001FFF0000 | |
| 411 | −780003C0001FFF0000780003C0001FFF0000780003C0001FFF0000780003C0001FFF0000 | |
| 412 | −000003C0001FFF0000000007C0001FFF0000000007C0001FFF000000000780001FFF0000 | |
| 413 | −00000780001FFF000000000F80001FFF000000000F80001FFF000000001F80001FFF0000 | |
| 414 | −00001F80001FFF000000003F80001FFF000000007F00001FFF00000000FF00001FFF0000 | |
| 415 | −0001FF00001FFF00000007FF00001FFF0000001FFF00001FFF000001FFFF00FFFFFFFFFF | |
| 416 | −FFFFFF00FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFE00FFFFFFFFFF | |
| 417 | −FFFFFE0043447DC34A>I<FFFFFFFFFFFFFF80FFFFFFFFFFFFFF80FFFFFFFFFFFFFF80FF | |
| 418 | −FFFFFFFFFFFF80FFFFFFFFFFFFFFC0003FFE00001FFFC0003FFE000001FFC0003FFE0000 | |
| 419 | −007FC0003FFE0000003FC0003FFE0000001FC0003FFE0000000FC0003FFE00000007C000 | |
| 420 | −3FFE00000007E0003FFE00000003E0003FFE00000003E0003FFE00000003E0003FFE0000 | |
| 421 | −0001E0003FFE00000001E0003FFE00000001E0003FFE0001E001E0003FFE0001E000F000 | |
| 422 | −3FFE0001E000F0003FFE0001E000F0003FFE0001E000F0003FFE0001E00000003FFE0003 | |
| 423 | −E00000003FFE0003E00000003FFE0003E00000003FFE0007E00000003FFE000FE0000000 | |
| 424 | −3FFE007FE00000003FFFFFFFE00000003FFFFFFFE00000003FFFFFFFE00000003FFFFFFF | |
| 425 | −E00000003FFFFFFFE00000003FFE007FE00000003FFE000FE00000003FFE0007E0000000 | |
| 426 | −3FFE0003E00000003FFE0003E00000003FFE0003E00000003FFE0001E00000003FFE0001 | |
| 427 | −E00000003FFE0001E00000003FFE0001E00000003FFE0001E00000003FFE0001E0000000 | |
| 428 | −3FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000 | |
| 429 | −000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000000000 | |
| 430 | −3FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000 | |
| 431 | −000000003FFE0000000000FFFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF0000000FF | |
| 432 | −FFFFFFF0000000FFFFFFFFF00000003C447CC346>I<FFFFFFFF8003FFFFFFFEFFFFFFFF | |
| 433 | −8003FFFFFFFEFFFFFFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFE | |
| 434 | −003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE000000 | |
| 435 | −00FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003F | |
| 436 | −FE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FF | |
| 437 | −F800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00 | |
| 438 | −000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800 | |
| 439 | −003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE000000 | |
| 440 | −00FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003F | |
| 441 | −FFFFFFFFFFFFF800003FFFFFFFFFFFFFF800003FFFFFFFFFFFFFF800003FFFFFFFFFFFFF | |
| 442 | −F800003FFFFFFFFFFFFFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00 | |
| 443 | −000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800 | |
| 444 | −003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE000000 | |
| 445 | −00FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003F | |
| 446 | −FE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FF | |
| 447 | −F800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00 | |
| 448 | −000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800 | |
| 449 | −003FFE00000000FFF800003FFE00000000FFF800003FFE00000000FFF800003FFE000000 | |
| 450 | −00FFF800FFFFFFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFEFFFF | |
| 451 | −FFFF8003FFFFFFFEFFFFFFFF8003FFFFFFFE4F447CC358>72 D<FFFFFFFFE0FFFFFFFFE0 | |
| 452 | −FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0001FFF0000001FFF0000001FFF0000001FFF000000 | |
| 453 | −1FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001F | |
| 454 | −FF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF | |
| 455 | −0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF00 | |
| 456 | −00001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000 | |
| 457 | −001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF000000 | |
| 458 | −1FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001F | |
| 459 | −FF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF | |
| 460 | −0000001FFF0000001FFF0000001FFF0000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFF | |
| 461 | −E0FFFFFFFFE023447DC32A>I<FFFFFFFFF0000000FFFFFFFFF0000000FFFFFFFFF00000 | |
| 462 | −00FFFFFFFFF0000000FFFFFFFFF0000000003FFE0000000000003FFE0000000000003FFE | |
| 463 | −0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000 | |
| 464 | −00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE | |
| 465 | −0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000 | |
| 466 | −00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE | |
| 467 | −0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000 | |
| 468 | −00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE | |
| 469 | −0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000 | |
| 470 | −00003FFE0000000000003FFE0000000780003FFE0000000780003FFE0000000780003FFE | |
| 471 | −0000000780003FFE0000000F80003FFE0000000F00003FFE0000000F00003FFE0000000F | |
| 472 | −00003FFE0000000F00003FFE0000001F00003FFE0000001F00003FFE0000001F00003FFE | |
| 473 | −0000003F00003FFE0000003F00003FFE0000007E00003FFE0000007E00003FFE000000FE | |
| 474 | −00003FFE000001FE00003FFE000003FE00003FFE000007FE00003FFE00001FFE00003FFE | |
| 475 | −00007FFE00003FFE0003FFFE00FFFFFFFFFFFFFC00FFFFFFFFFFFFFC00FFFFFFFFFFFFFC | |
| 476 | −00FFFFFFFFFFFFFC00FFFFFFFFFFFFFC0039447CC343>76 D<FFFFFE0000000000007FFF | |
| 477 | −FF80FFFFFF000000000000FFFFFF80FFFFFF000000000000FFFFFF80FFFFFF8000000000 | |
| 478 | −01FFFFFF80FFFFFF800000000001FFFFFF80003FFF800000000001FFFE0000003DFFC000 | |
| 479 | −00000003DFFE0000003DFFC00000000003DFFE0000003CFFE000000000079FFE0000003C | |
| 480 | −FFE000000000079FFE0000003C7FF0000000000F1FFE0000003C7FF0000000000F1FFE00 | |
| 481 | −00003C3FF8000000001E1FFE0000003C3FF8000000001E1FFE0000003C1FFC000000003C | |
| 482 | −1FFE0000003C1FFC000000003C1FFE0000003C1FFC000000003C1FFE0000003C0FFE0000 | |
| 483 | −0000781FFE0000003C0FFE00000000781FFE0000003C07FF00000000F01FFE0000003C07 | |
| 484 | −FF00000000F01FFE0000003C03FF80000001E01FFE0000003C03FF80000001E01FFE0000 | |
| 485 | −003C01FFC0000003C01FFE0000003C01FFC0000003C01FFE0000003C01FFC0000003C01F | |
| 486 | −FE0000003C00FFE0000007801FFE0000003C00FFE0000007801FFE0000003C007FF00000 | |
| 487 | −0F001FFE0000003C007FF000000F001FFE0000003C003FF800001E001FFE0000003C003F | |
| 488 | −F800001E001FFE0000003C001FFC00003C001FFE0000003C001FFC00003C001FFE000000 | |
| 489 | −3C001FFC00003C001FFE0000003C000FFE000078001FFE0000003C000FFE000078001FFE | |
| 490 | −0000003C0007FF0000F0001FFE0000003C0007FF0000F0001FFE0000003C0003FF8001E0 | |
| 491 | −001FFE0000003C0003FF8001E0001FFE0000003C0001FFC003C0001FFE0000003C0001FF | |
| 492 | −C003C0001FFE0000003C0000FFE00780001FFE0000003C0000FFE00780001FFE0000003C | |
| 493 | −0000FFE00780001FFE0000003C00007FF00F00001FFE0000003C00007FF00F00001FFE00 | |
| 494 | −00003C00003FF81E00001FFE0000003C00003FF81E00001FFE0000003C00001FFC3C0000 | |
| 495 | −1FFE0000003C00001FFC3C00001FFE0000003C00000FFE7800001FFE0000003C00000FFE | |
| 496 | −7800001FFE0000003C00000FFE7800001FFE0000003C000007FFF000001FFE0000003C00 | |
| 497 | −0007FFF000001FFE0000003C000003FFE000001FFE0000003C000003FFE000001FFE0000 | |
| 498 | −003C000001FFC000001FFE0000003C000001FFC000001FFE0000003C000000FF8000001F | |
| 499 | −FE0000003C000000FF8000001FFE0000FFFFFF0000FF80007FFFFFFF80FFFFFF00007F00 | |
| 500 | −007FFFFFFF80FFFFFF00007F00007FFFFFFF80FFFFFF00003E00007FFFFFFF80FFFFFF00 | |
| 501 | −001C00007FFFFFFF8061447CC36A>I<00000007FFC0000000000000FFFFFE0000000000 | |
| 502 | −07FFFFFFC0000000001FFFFFFFF0000000007FFE00FFFC00000001FFF0001FFF00000007 | |
| 503 | −FF800003FFC000000FFF000001FFE000001FFC0000007FF000003FF80000003FF800007F | |
| 504 | −F00000001FFC0000FFF00000001FFE0001FFE00000000FFF0003FFC000000007FF8003FF | |
| 505 | −C000000007FF8007FF8000000003FFC007FF8000000003FFC00FFF0000000001FFE00FFF | |
| 506 | −0000000001FFE01FFF0000000001FFF01FFE0000000000FFF03FFE0000000000FFF83FFE | |
| 507 | −0000000000FFF83FFE0000000000FFF87FFE0000000000FFFC7FFC00000000007FFC7FFC | |
| 508 | −00000000007FFC7FFC00000000007FFC7FFC00000000007FFCFFFC00000000007FFEFFFC | |
| 509 | −00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC | |
| 510 | −00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC | |
| 511 | −00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFE7FFC | |
| 512 | −00000000007FFC7FFE0000000000FFFC7FFE0000000000FFFC7FFE0000000000FFFC3FFE | |
| 513 | −0000000000FFF83FFE0000000000FFF83FFF0000000001FFF81FFF0000000001FFF01FFF | |
| 514 | −0000000001FFF01FFF8000000003FFF00FFF8000000003FFE00FFF8000000003FFE007FF | |
| 515 | −C000000007FFC003FFC000000007FF8003FFE00000000FFF8001FFF00000001FFF0000FF | |
| 516 | −F80000003FFE00007FFC0000007FFC00003FFE000000FFF800001FFF000001FFF000000F | |
| 517 | −FFC00007FFE0000007FFF0001FFFC0000001FFFE00FFFF00000000FFFFFFFFFE00000000 | |
| 518 | −3FFFFFFFF80000000007FFFFFFC00000000000FFFFFE00000000000007FFC00000004746 | |
| 519 | −7AC454>79 D<FFFFFFFFFFFF000000FFFFFFFFFFFFF00000FFFFFFFFFFFFFE0000FFFFFF | |
| 520 | −FFFFFFFF8000FFFFFFFFFFFFFFE000001FFF00000FFFF000001FFF000001FFF800001FFF | |
| 521 | −0000007FFC00001FFF0000003FFE00001FFF0000001FFF00001FFF0000000FFF80001FFF | |
| 522 | −0000000FFF80001FFF0000000FFFC0001FFF00000007FFC0001FFF00000007FFC0001FFF | |
| 523 | −00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF | |
| 524 | −00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF00000007FFE0001FFF | |
| 525 | −00000007FFE0001FFF00000007FFC0001FFF00000007FFC0001FFF0000000FFF80001FFF | |
| 526 | −0000000FFF80001FFF0000000FFF00001FFF0000001FFF00001FFF0000003FFE00001FFF | |
| 527 | −0000007FFC00001FFF000001FFF800001FFF00000FFFF000001FFFFFFFFFFFC000001FFF | |
| 528 | −FFFFFFFF0000001FFFFFFFFFFC0000001FFFFFFFFFC00000001FFF000000000000001FFF | |
| 529 | −000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF | |
| 530 | −000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF | |
| 531 | −000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF | |
| 532 | −000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF | |
| 533 | −000000000000001FFF000000000000001FFF000000000000001FFF000000000000001FFF | |
| 534 | −000000000000001FFF000000000000001FFF000000000000001FFF000000000000FFFFFF | |
| 535 | −FFE000000000FFFFFFFFE000000000FFFFFFFFE000000000FFFFFFFFE000000000FFFFFF | |
| 536 | −FFE00000000043447DC34D>I<FFFFFFFFFFF800000000FFFFFFFFFFFFC0000000FFFFFF | |
| 537 | −FFFFFFF8000000FFFFFFFFFFFFFE000000FFFFFFFFFFFFFF800000001FFF00003FFFE000 | |
| 538 | −00001FFF000003FFF00000001FFF000000FFF80000001FFF0000007FFC0000001FFF0000 | |
| 539 | −003FFE0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000001FFF800000 | |
| 540 | −1FFF0000000FFF8000001FFF0000000FFF8000001FFF0000000FFFC000001FFF0000000F | |
| 541 | −FFC000001FFF0000000FFFC000001FFF0000000FFFC000001FFF0000000FFFC000001FFF | |
| 542 | −0000000FFFC000001FFF0000000FFFC000001FFF0000000FFF8000001FFF0000000FFF80 | |
| 543 | −00001FFF0000001FFF0000001FFF0000001FFF0000001FFF0000003FFE0000001FFF0000 | |
| 544 | −003FFC0000001FFF0000007FFC0000001FFF000001FFF00000001FFF000007FFE0000000 | |
| 545 | −1FFF00003FFF800000001FFFFFFFFFFF000000001FFFFFFFFFF8000000001FFFFFFFFFE0 | |
| 546 | −000000001FFFFFFFFFF8000000001FFF0000FFFC000000001FFF00003FFF000000001FFF | |
| 547 | −00000FFF800000001FFF000007FFC00000001FFF000003FFE00000001FFF000003FFE000 | |
| 548 | −00001FFF000001FFF00000001FFF000001FFF00000001FFF000000FFF80000001FFF0000 | |
| 549 | −00FFF80000001FFF000000FFF80000001FFF000000FFF80000001FFF000000FFF8000000 | |
| 550 | −1FFF000000FFF80000001FFF000000FFF80000001FFF000000FFFC0000001FFF000000FF | |
| 551 | −FC0000001FFF000000FFFC0000001FFF000000FFFC0000001FFF000000FFFC0000001FFF | |
| 552 | −000000FFFC0000001FFF000000FFFC000F001FFF000000FFFE000F001FFF000000FFFE00 | |
| 553 | −0F001FFF0000007FFE000F001FFF0000007FFF001F001FFF0000003FFF001EFFFFFFFFE0 | |
| 554 | −001FFF803EFFFFFFFFE0000FFFE0FCFFFFFFFFE00007FFFFF8FFFFFFFFE00001FFFFF0FF | |
| 555 | −FFFFFFE000007FFFE00000000000000007FF8050457DC354>82 D<0000FFE0001C000007 | |
| 556 | −FFFE003C00003FFFFF807C0000FFFFFFE0FC0001FFFFFFF9FC0003FF801FFFFC0007FC00 | |
| 557 | −01FFFC000FF800007FFC001FF000003FFC003FE000000FFC003FC0000007FC007FC00000 | |
| 558 | −03FC007F80000003FC007F80000001FC007F80000000FC00FF80000000FC00FF80000000 | |
| 559 | −7C00FF800000007C00FFC00000007C00FFC00000007C00FFE00000003C00FFF00000003C | |
| 560 | −00FFF80000003C00FFFC00000000007FFE00000000007FFFE0000000007FFFFE00000000 | |
| 561 | −3FFFFFF00000003FFFFFFF0000001FFFFFFFE000001FFFFFFFFC00000FFFFFFFFE000007 | |
| 562 | −FFFFFFFF800003FFFFFFFFC00001FFFFFFFFE000007FFFFFFFF000001FFFFFFFF8000007 | |
| 563 | −FFFFFFFC000000FFFFFFFC0000000FFFFFFE00000000FFFFFE0000000007FFFF00000000 | |
| 564 | −007FFF00000000003FFF00000000000FFF800000000007FF800000000003FF80F0000000 | |
| 565 | −03FF80F000000001FF80F000000001FF80F000000000FF80F000000000FF80F800000000 | |
| 566 | −FF80F800000000FF80F800000000FF00FC00000000FF00FC00000000FF00FE00000001FF | |
| 567 | −00FF00000001FE00FF80000003FE00FFC0000003FC00FFE0000007FC00FFF800000FF800 | |
| 568 | −FFFF00003FF000FFFFF800FFE000FE7FFFFFFFC000FC1FFFFFFF0000F807FFFFFC0000F0 | |
| 569 | −00FFFFF00000E00007FF80000031467AC43E>I<3FFFFFFFFFFFFFFFE03FFFFFFFFFFFFF | |
| 570 | −FFE03FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE03FFE000FFF8003 | |
| 571 | −FFE07FE0000FFF80003FF07FC0000FFF80001FF07F00000FFF800007F07F00000FFF8000 | |
| 572 | −07F07E00000FFF800003F07C00000FFF800001F07C00000FFF800001F07C00000FFF8000 | |
| 573 | −01F07800000FFF800000F07800000FFF800000F07800000FFF800000F07800000FFF8000 | |
| 574 | −00F0F800000FFF800000F8F000000FFF80000078F000000FFF80000078F000000FFF8000 | |
| 575 | −0078F000000FFF80000078F000000FFF800000780000000FFF800000000000000FFF8000 | |
| 576 | −00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 | |
| 577 | −00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 | |
| 578 | −00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 | |
| 579 | −00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 | |
| 580 | −00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 | |
| 581 | −00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 | |
| 582 | −00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 | |
| 583 | −00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 | |
| 584 | −00000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000 | |
| 585 | −00000007FFFFFFFFFF00000007FFFFFFFFFF00000007FFFFFFFFFF00000007FFFFFFFFFF | |
| 586 | −00000007FFFFFFFFFF000045437CC24E>I<FFFFFFFF000000FFFFFFFFFFFFFF000000FF | |
| 587 | −FFFFFFFFFFFF000000FFFFFFFFFFFFFF000000FFFFFFFFFFFFFF000000FFFFFF003FFE00 | |
| 588 | −00000000FC00003FFF0000000000FC00001FFF0000000000F800001FFF8000000001F800 | |
| 589 | −000FFF8000000001F000000FFFC000000001F000000FFFC000000003F0000007FFC00000 | |
| 590 | −0003E0000007FFE000000007E0000003FFE000000007C0000003FFF00000000FC0000001 | |
| 591 | −FFF00000000F80000001FFF80000000F80000001FFF80000001F80000000FFFC0000001F | |
| 592 | −00000000FFFC0000003F000000007FFC0000003E000000007FFE0000007E000000003FFE | |
| 593 | −0000007C000000003FFF0000007C000000003FFF000000FC000000001FFF800000F80000 | |
| 594 | −00001FFF800001F8000000000FFF800001F0000000000FFFC00003F00000000007FFC000 | |
| 595 | −03E00000000007FFE00003E00000000007FFE00007E00000000003FFF00007C000000000 | |
| 596 | −03FFF0000FC00000000001FFF0000F800000000001FFF8001F800000000000FFF8001F00 | |
| 597 | −0000000000FFFC003F0000000000007FFC003E0000000000007FFE003E0000000000007F | |
| 598 | −FE007E0000000000003FFE007C0000000000003FFF00FC0000000000001FFF00F8000000 | |
| 599 | −0000001FFF81F80000000000000FFF81F00000000000000FFFC1F00000000000000FFFC3 | |
| 600 | −F000000000000007FFC3E000000000000007FFE7E000000000000003FFE7C00000000000 | |
| 601 | −0003FFFFC000000000000001FFFF8000000000000001FFFF8000000000000001FFFF8000 | |
| 602 | −000000000000FFFF0000000000000000FFFF00000000000000007FFE0000000000000000 | |
| 603 | −7FFE00000000000000003FFC00000000000000003FFC00000000000000003FFC00000000 | |
| 604 | −000000001FF800000000000000001FF800000000000000000FF000000000000000000FF0 | |
| 605 | −000000000000000007E0000000000000000007E00000000050457EC355>86 | |
| 606 | −D<0001FFE0000000001FFFFE000000007FFFFF80000001FFFFFFE0000003FE007FF80000 | |
| 607 | −07FC001FFC000007FE000FFE00000FFF0007FF00000FFF0007FF00000FFF0003FF80000F | |
| 608 | −FF0003FF80000FFF0003FF80000FFF0001FFC00007FE0001FFC00003FC0001FFC00000F0 | |
| 609 | −0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000003 | |
| 610 | −FFFFC0000000FFFFFFC0000007FFFFFFC000003FFFF1FFC00000FFFC01FFC00003FFE001 | |
| 611 | −FFC0000FFF8001FFC0001FFE0001FFC0003FFC0001FFC0003FF80001FFC0007FF80001FF | |
| 612 | −C0007FF00001FFC000FFF00001FFC000FFE00001FFC000FFE00001FFC000FFE00001FFC0 | |
| 613 | −00FFE00003FFC000FFE00003FFC000FFF00007FFC0007FF8000FFFC0007FF8001FFFF000 | |
| 614 | −3FFE003EFFFFC01FFF80FC7FFFC007FFFFF87FFFC003FFFFE01FFFC0007FFF8007FFC000 | |
| 615 | −0FFC00000000322F7DAD36>97 D<007FC000000000FFFFC000000000FFFFC000000000FF | |
| 616 | −FFC000000000FFFFC000000000FFFFC00000000003FFC00000000001FFC00000000001FF | |
| 617 | −C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0 | |
| 618 | −0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000 | |
| 619 | −00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000 | |
| 620 | −000001FFC00FF8000001FFC0FFFF800001FFC3FFFFE00001FFCFFFFFF80001FFDFC03FFC | |
| 621 | −0001FFFF000FFE0001FFFC0003FF0001FFF80001FF8001FFF00001FFC001FFE00000FFE0 | |
| 622 | −01FFC00000FFE001FFC000007FF001FFC000007FF001FFC000007FF801FFC000003FF801 | |
| 623 | −FFC000003FF801FFC000003FF801FFC000003FFC01FFC000003FFC01FFC000003FFC01FF | |
| 624 | −C000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC0 | |
| 625 | −00003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FF801FFC000 | |
| 626 | −003FF801FFC000007FF801FFC000007FF001FFC000007FF001FFC000007FF001FFC00000 | |
| 627 | −FFE001FFE00000FFC001FFF00001FFC001FFF80003FF8001FF7C0007FF0001FE3E000FFE | |
| 628 | −0001FC1FC07FFC0001F80FFFFFF00001F003FFFFC00001E000FFFF00000000001FF00000 | |
| 629 | −36467DC43E>I<00003FFC00000001FFFFC000000FFFFFF000003FFFFFFC00007FF003FE | |
| 630 | −0000FFC001FF0003FF8003FF0007FF0007FF8007FE0007FF800FFE0007FF801FFC0007FF | |
| 631 | −801FFC0007FF803FF80007FF803FF80003FF007FF80001FE007FF8000078007FF0000000 | |
| 632 | −007FF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 | |
| 633 | −00FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 | |
| 634 | −00FFF0000000007FF8000000007FF8000000007FF8000000003FF8000000003FFC000003 | |
| 635 | −C03FFC000003C01FFE000007C00FFE000007800FFF00000F8007FF80001F0003FFC0003E | |
| 636 | −0001FFF0007C00007FFC03F800003FFFFFF000000FFFFFC0000003FFFF000000003FF800 | |
| 637 | −002A2F7CAD32>I<0000000003FE0000000007FFFE0000000007FFFE0000000007FFFE00 | |
| 638 | −00000007FFFE0000000007FFFE00000000001FFE00000000000FFE00000000000FFE0000 | |
| 639 | −0000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000000 | |
| 640 | −00000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000 | |
| 641 | −000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0000003FE0 | |
| 642 | −0FFE000003FFFC0FFE00000FFFFF8FFE00003FFFFFCFFE0000FFF807FFFE0001FFC001FF | |
| 643 | −FE0003FF80007FFE0007FF00003FFE000FFE00001FFE000FFC00000FFE001FFC00000FFE | |
| 644 | −003FF800000FFE003FF800000FFE003FF800000FFE007FF800000FFE007FF000000FFE00 | |
| 645 | −7FF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FF | |
| 646 | −F000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF0 | |
| 647 | −00000FFE00FFF000000FFE00FFF000000FFE007FF000000FFE007FF000000FFE007FF000 | |
| 648 | −000FFE007FF800000FFE003FF800000FFE003FF800000FFE001FFC00001FFE001FFC0000 | |
| 649 | −1FFE000FFE00003FFE0007FE00007FFE0003FF0000FFFF0001FFC003FFFFFC00FFF01FEF | |
| 650 | −FFFC007FFFFF8FFFFC001FFFFE0FFFFC0007FFF80FFFFC00007FC00FF80036467CC43E> | |
| 651 | −I<00003FF800000003FFFF8000000FFFFFE000003FFFFFF000007FF83FF80000FFC007FC | |
| 652 | −0001FF8003FE0003FF0001FF0007FE0000FF800FFC0000FF801FFC00007FC01FF800007F | |
| 653 | −C03FF800003FE03FF800003FE07FF800003FE07FF000003FE07FF000003FF07FF000001F | |
| 654 | −F0FFF000001FF0FFF000001FF0FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFF | |
| 655 | −F0FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000007FF0000000 | |
| 656 | −007FF0000000007FF8000000007FF8000000003FF8000000003FF8000000F01FFC000000 | |
| 657 | −F01FFC000001F00FFE000001E007FF000003E003FF800007C001FFC0000F8000FFF0003F | |
| 658 | −00007FFE01FE00001FFFFFFC000007FFFFF0000001FFFFC00000001FFE00002C2F7DAD33 | |
| 659 | −>I<000000FF8000000FFFE000007FFFF00001FFFFF80003FF8FFC000FFE0FFE001FFC1F | |
| 660 | −FE001FF81FFE003FF81FFE007FF01FFE007FF01FFE007FF00FFC00FFE00FFC00FFE003F0 | |
| 661 | −00FFE000C000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 | |
| 662 | −FFE0000000FFE0000000FFE0000000FFE0000000FFE00000FFFFFFF800FFFFFFF800FFFF | |
| 663 | −FFF800FFFFFFF800FFFFFFF80000FFE0000000FFE0000000FFE0000000FFE0000000FFE0 | |
| 664 | −000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000 | |
| 665 | −0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000 | |
| 666 | −00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 | |
| 667 | −FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF | |
| 668 | −E000007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE00027467DC522>I<00 | |
| 669 | −00FFE0007E00000FFFFE03FF80003FFFFF8FFF8000FFFFFFFFFFC001FFC07FFF3FC003FF | |
| 670 | −001FF83FC007FE000FFC3FC00FFC0007FE1F801FFC0007FF0F001FF80003FF00001FF800 | |
| 671 | −03FF00003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003 | |
| 672 | −FF80003FF80003FF80003FF80003FF80003FF80003FF80001FF80003FF00001FF80003FF | |
| 673 | −00001FFC0007FF00000FFC0007FE000007FE000FFC000003FF001FF8000001FFC07FF000 | |
| 674 | −0003FFFFFFE0000003FFFFFF800000078FFFFE0000000780FFE00000000F800000000000 | |
| 675 | −0F8000000000000F8000000000000F8000000000000FC000000000000FE000000000000F | |
| 676 | −F000000000000FFFFFFFC000000FFFFFFFFC000007FFFFFFFF800007FFFFFFFFE00003FF | |
| 677 | −FFFFFFF00001FFFFFFFFFC0000FFFFFFFFFC0003FFFFFFFFFE000FFFFFFFFFFF001FF000 | |
| 678 | −007FFF003FC0000007FF007F80000001FF807F80000000FF80FF00000000FF80FF000000 | |
| 679 | −007F80FF000000007F80FF000000007F80FF000000007F80FF80000000FF807F80000000 | |
| 680 | −FF007FC0000001FF003FE0000003FE001FF0000007FC000FFE00003FF80007FFC001FFF0 | |
| 681 | −0001FFFFFFFFC000007FFFFFFF0000000FFFFFF8000000007FFF00000032427DAC38>I< | |
| 682 | −007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000FF | |
| 683 | −FFC00000000003FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF | |
| 684 | −C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0 | |
| 685 | −0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000 | |
| 686 | −00000001FFC00000000001FFC00000000001FFC00000000001FFC007FE000001FFC03FFF | |
| 687 | −800001FFC0FFFFE00001FFC1FFFFF80001FFC7F03FFC0001FFCF801FFC0001FFDF000FFE | |
| 688 | −0001FFDE000FFE0001FFFC000FFE0001FFF80007FF0001FFF00007FF0001FFF00007FF00 | |
| 689 | −01FFE00007FF0001FFE00007FF0001FFE00007FF0001FFC00007FF0001FFC00007FF0001 | |
| 690 | −FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF | |
| 691 | −C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0 | |
| 692 | −0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 | |
| 693 | −07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 | |
| 694 | −FF0001FFC00007FF0001FFC00007FF00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFF | |
| 695 | −FEFFFFFF83FFFFFEFFFFFF83FFFFFE37457CC43E>I<007C0001FF0003FF8007FFC007FF | |
| 696 | −C00FFFE00FFFE00FFFE00FFFE00FFFE007FFC007FFC003FF8001FF00007C000000000000 | |
| 697 | −00000000000000000000000000000000000000000000000000007FC07FFFC07FFFC07FFF | |
| 698 | −C07FFFC07FFFC003FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF | |
| 699 | −C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF | |
| 700 | −C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF | |
| 701 | −C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18467CC520>I<000003E000000FF800001FFC00 | |
| 702 | −003FFE00003FFE00007FFF00007FFF00007FFF00007FFF00007FFF00003FFE00003FFE00 | |
| 703 | −001FFC00000FF8000003E000000000000000000000000000000000000000000000000000 | |
| 704 | −000000000000000000000000000000000001FF0003FFFF0003FFFF0003FFFF0003FFFF00 | |
| 705 | −03FFFF00000FFF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00 | |
| 706 | −0007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00 | |
| 707 | −0007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00 | |
| 708 | −0007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00 | |
| 709 | −0007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF1F | |
| 710 | −8007FF3FC007FF7FE007FFFFF007FFFFF00FFEFFF00FFEFFF00FFCFFF01FFCFFE01FF87F | |
| 711 | −E03FF03FC0FFE01FFFFF800FFFFF0003FFFC0000FFC000205A86C522>I<007FC0000000 | |
| 712 | −00FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000 | |
| 713 | −03FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001 | |
| 714 | −FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF | |
| 715 | −C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0 | |
| 716 | −0000000001FFC00000000001FFC00000000001FFC00000000001FFC0007FFFE001FFC000 | |
| 717 | −7FFFE001FFC0007FFFE001FFC0007FFFE001FFC0007FFFE001FFC0000FE00001FFC0001F | |
| 718 | −C00001FFC0003F000001FFC0007E000001FFC000FC000001FFC003F8000001FFC007E000 | |
| 719 | −0001FFC00FC0000001FFC01F80000001FFC07F00000001FFC0FE00000001FFC1FC000000 | |
| 720 | −01FFC3FE00000001FFC7FE00000001FFDFFF00000001FFFFFF80000001FFFFFFC0000001 | |
| 721 | −FFFFFFC0000001FFF9FFE0000001FFE1FFF0000001FFC0FFF8000001FF807FF8000001FF | |
| 722 | −803FFC000001FF803FFE000001FF801FFF000001FF800FFF000001FF8007FF800001FF80 | |
| 723 | −07FFC00001FF8003FFE00001FF8001FFE00001FF8000FFF00001FF8000FFF80001FF8000 | |
| 724 | −7FFC0001FF80003FFC00FFFFFF03FFFFF8FFFFFF03FFFFF8FFFFFF03FFFFF8FFFFFF03FF | |
| 725 | −FFF8FFFFFF03FFFFF835457DC43B>I<007FC000FFFFC000FFFFC000FFFFC000FFFFC000 | |
| 726 | −FFFFC00003FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 | |
| 727 | −01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 | |
| 728 | −01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 | |
| 729 | −01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 | |
| 730 | −01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 | |
| 731 | −01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 | |
| 732 | −01FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80FFFFFF80 | |
| 733 | −FFFFFF8019457CC420>I<007F8007FE00000FFC0000FFFF803FFFC0007FFF8000FFFF80 | |
| 734 | −FFFFF001FFFFE000FFFF81FFFFF803FFFFF000FFFF87F01FFC0FE03FF800FFFF8FC00FFE | |
| 735 | −1F801FFC0003FF9F000FFF3E001FFE0001FF9E0007FF3C000FFE0001FFBC0007FF78000F | |
| 736 | −FE0001FFF80003FFF00007FF0001FFF80003FFF00007FF0001FFF00003FFE00007FF0001 | |
| 737 | −FFE00003FFC00007FF0001FFE00003FFC00007FF0001FFE00003FFC00007FF0001FFC000 | |
| 738 | −03FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF80 | |
| 739 | −0007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF | |
| 740 | −0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FF | |
| 741 | −C00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003 | |
| 742 | −FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF8000 | |
| 743 | −07FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF00 | |
| 744 | −01FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC0 | |
| 745 | −0003FF800007FF0001FFC00003FF800007FF00FFFFFF81FFFFFF03FFFFFEFFFFFF81FFFF | |
| 746 | −FF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FF | |
| 747 | −FFFE572D7CAC5E>I<007F8007FE0000FFFF803FFF8000FFFF80FFFFE000FFFF81FFFFF8 | |
| 748 | −00FFFF87F03FFC00FFFF8F801FFC0003FF9F000FFE0001FF9E000FFE0001FFBC000FFE00 | |
| 749 | −01FFF80007FF0001FFF00007FF0001FFF00007FF0001FFE00007FF0001FFE00007FF0001 | |
| 750 | −FFE00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF | |
| 751 | −C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0 | |
| 752 | −0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 | |
| 753 | −07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 | |
| 754 | −FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF | |
| 755 | −00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFE | |
| 756 | −372D7CAC3E>I<00001FFC0000000001FFFFC000000007FFFFF00000001FFFFFFC000000 | |
| 757 | −7FF80FFF000000FFC001FF800001FF8000FFC00003FE00003FE00007FE00003FF0000FFC | |
| 758 | −00001FF8000FF800000FF8001FF800000FFC001FF800000FFC003FF800000FFE003FF000 | |
| 759 | −0007FE007FF0000007FF007FF0000007FF007FF0000007FF007FF0000007FF00FFF00000 | |
| 760 | −07FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007 | |
| 761 | −FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF807FF0000007FF | |
| 762 | −007FF0000007FF007FF0000007FF007FF0000007FF003FF800000FFE003FF800000FFE00 | |
| 763 | −1FF800000FFC001FFC00001FFC000FFC00001FF80007FE00003FF00007FE00003FF00003 | |
| 764 | −FF8000FFE00001FFC001FFC000007FF80FFF0000003FFFFFFE0000000FFFFFF800000001 | |
| 765 | −FFFFC0000000001FFC000000312F7DAD38>I<007FC00FF80000FFFFC0FFFF8000FFFFC3 | |
| 766 | −FFFFE000FFFFCFFFFFF800FFFFDFC03FFC00FFFFFF001FFE0003FFFC0007FF0001FFF800 | |
| 767 | −03FF8001FFF00003FFC001FFE00001FFE001FFC00001FFE001FFC00000FFF001FFC00000 | |
| 768 | −FFF001FFC000007FF801FFC000007FF801FFC000007FF801FFC000007FF801FFC000003F | |
| 769 | −FC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC | |
| 770 | −01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01 | |
| 771 | −FFC000003FFC01FFC000007FF801FFC000007FF801FFC000007FF801FFC000007FF001FF | |
| 772 | −C00000FFF001FFC00000FFF001FFC00001FFE001FFE00001FFC001FFF00003FFC001FFF8 | |
| 773 | −0007FF8001FFFC000FFF0001FFFE001FFE0001FFDFC07FFC0001FFCFFFFFF00001FFC3FF | |
| 774 | −FFC00001FFC0FFFF000001FFC01FF0000001FFC00000000001FFC00000000001FFC00000 | |
| 775 | −000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000 | |
| 776 | −0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000 | |
| 777 | −FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF8000000036 | |
| 778 | −407DAC3E>I<007F807F00FFFF81FFE0FFFF83FFF0FFFF8FFFF8FFFF8F8FFCFFFF9F1FFE | |
| 779 | −03FFBE1FFE01FFBC1FFE01FFF81FFE01FFF81FFE01FFF01FFE01FFF00FFC01FFE007F801 | |
| 780 | −FFE001E001FFE0000001FFE0000001FFE0000001FFC0000001FFC0000001FFC0000001FF | |
| 781 | −C0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0 | |
| 782 | −000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC000 | |
| 783 | −0001FFC0000001FFC0000001FFC0000001FFC0000001FFC00000FFFFFFE000FFFFFFE000 | |
| 784 | −FFFFFFE000FFFFFFE000FFFFFFE000272D7DAC2E>114 D<001FFC038000FFFF878003FF | |
| 785 | −FFFF800FFFFFFF801FF003FF803FC000FF803F80003F807F00001F807E00001F80FE0000 | |
| 786 | −0F80FE00000F80FE00000780FF00000780FF00000780FF80000780FFE0000000FFFE0000 | |
| 787 | −007FFFF000007FFFFF00003FFFFFC0003FFFFFF0001FFFFFFC000FFFFFFE0003FFFFFF00 | |
| 788 | −01FFFFFF80007FFFFF80000FFFFFC000003FFFC0000003FFE0000000FFE0F000003FE0F0 | |
| 789 | −00003FE0F800001FE0F800000FE0F800000FE0FC00000FE0FC00000FE0FE00000FC0FF00 | |
| 790 | −001FC0FF00001FC0FF80003F80FFE0007F00FFF803FE00FFFFFFFC00FCFFFFF800F03FFF | |
| 791 | −E000E007FE0000232F7CAD2C>I<0001E000000001E000000001E000000001E000000001 | |
| 792 | −E000000003E000000003E000000003E000000003E000000007E000000007E00000000FE0 | |
| 793 | −0000000FE00000001FE00000001FE00000003FE00000007FE0000000FFE0000003FFE000 | |
| 794 | −000FFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF8000FFE0000000FFE00000 | |
| 795 | −00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 | |
| 796 | −FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF | |
| 797 | −E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE001E000FFE001E000FFE0 | |
| 798 | −01E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE003 | |
| 799 | −E000FFF003C0007FF003C0007FF007C0003FF80F80001FFC1F00000FFFFF000007FFFC00 | |
| 800 | −0001FFF80000003FE00023407EBE2C>I<007FC00001FF00FFFFC003FFFF00FFFFC003FF | |
| 801 | −FF00FFFFC003FFFF00FFFFC003FFFF00FFFFC003FFFF0003FFC0000FFF0001FFC00007FF | |
| 802 | −0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00 | |
| 803 | −01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001 | |
| 804 | −FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF | |
| 805 | −C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0 | |
| 806 | −0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 | |
| 807 | −0FFF0001FFC0000FFF0001FFC0001FFF0001FFC0001FFF0001FFC0003FFF0000FFC0003F | |
| 808 | −FF0000FFE0007FFF80007FE001F7FFFE007FF807E7FFFE003FFFFFC7FFFE000FFFFF07FF | |
| 809 | −FE0003FFFE07FFFE00007FF007FC00372E7CAC3E>I<FFFFFF0003FFFCFFFFFF0003FFFC | |
| 810 | −FFFFFF0003FFFCFFFFFF0003FFFCFFFFFF0003FFFC01FFE000003E0000FFE000003C0000 | |
| 811 | −FFF000003C00007FF000007800007FF800007800007FF80000F800003FF80000F000003F | |
| 812 | −FC0001F000001FFC0001E000001FFE0003E000000FFE0003C000000FFF0007C0000007FF | |
| 813 | −000780000007FF800F80000003FF800F00000003FFC00F00000003FFC01F00000001FFE0 | |
| 814 | −1E00000001FFE03E00000000FFE03C00000000FFF07C000000007FF078000000007FF8F8 | |
| 815 | −000000003FF8F0000000003FFDF0000000001FFDE0000000001FFFE0000000000FFFC000 | |
| 816 | −0000000FFFC0000000000FFFC00000000007FF800000000007FF800000000003FF000000 | |
| 817 | −000003FF000000000001FE000000000001FE000000000000FC000000000000FC00000000 | |
| 818 | −000078000000362C7EAB3B>I<FFFFFE1FFFFF801FFFF0FFFFFE1FFFFF801FFFF0FFFFFE | |
| 819 | −1FFFFF801FFFF0FFFFFE1FFFFF801FFFF0FFFFFE1FFFFF801FFFF001FFC0003FE000007C | |
| 820 | −0001FFC0003FF00000780001FFE0003FF00000F80000FFE0001FF80000F00000FFF0001F | |
| 821 | −F80001F000007FF0000FFC0001E000007FF0000FFC0001E000007FF8001FFC0003E00000 | |
| 822 | −3FF8001FFE0003C000003FFC003FFE0007C000001FFC003FFF00078000001FFC003FFF00 | |
| 823 | −078000001FFE0079FF000F8000000FFE0079FF800F0000000FFF00F9FF801F00000007FF | |
| 824 | −00F0FFC01E00000007FF80F0FFC01E00000003FF81E07FC03C00000003FF81E07FE03C00 | |
| 825 | −000003FFC3E07FE07C00000001FFC3C03FF07800000001FFE7C03FF07800000000FFE780 | |
| 826 | −1FF0F000000000FFE7801FF8F000000000FFFF801FF9F0000000007FFF000FFDE0000000 | |
| 827 | −007FFF000FFFE0000000003FFE0007FFC0000000003FFE0007FFC0000000003FFE0007FF | |
| 828 | −C0000000001FFC0003FF80000000001FFC0003FF80000000000FF80001FF00000000000F | |
| 829 | −F80001FF00000000000FF00000FF000000000007F00000FE000000000007F00000FE0000 | |
| 830 | −00000003E000007C000000000003C000003C0000004C2C7EAB51>I<FFFFFE003FFFF0FF | |
| 831 | −FFFE003FFFF0FFFFFE003FFFF0FFFFFE003FFFF0FFFFFE003FFFF000FFF00003E000007F | |
| 832 | −F80007C000003FF8000F8000001FFC001F0000001FFE003F0000000FFF007E00000007FF | |
| 833 | −807C00000003FFC0F800000001FFC1F000000001FFE3E000000000FFF7C0000000007FFF | |
| 834 | −80000000003FFF80000000001FFF00000000001FFE00000000000FFF000000000007FF80 | |
| 835 | −0000000003FFC00000000003FFC00000000007FFE0000000000FFFF0000000000FFFF800 | |
| 836 | −0000001F3FFC000000003E1FFC000000007C1FFE00000000F80FFF00000001F007FF8000 | |
| 837 | −0003F003FFC0000007E001FFC0000007C001FFE000000F8000FFF000001F00007FF80000 | |
| 838 | −3E00003FFC00007E00001FFC00FFFFE000FFFFFCFFFFE000FFFFFCFFFFE000FFFFFCFFFF | |
| 839 | −E000FFFFFCFFFFE000FFFFFC362C7EAB3B>I E /Fg 6 118 df<0003F000000FF800003E | |
| 840 | −1C60007C0FF000F807F001F007F003E007F007E003E00FC003E00FC003E01F8007E01F80 | |
| 841 | −07C03F0007C03F0007C03F000FC07F000F807E000F807E000F807E001F80FE001F00FC00 | |
| 842 | −1F00FC001F06FC003F07FC003E0FFC003E0EFC007E0E7C007E1E7C00FE1C7C01FC1C3C03 | |
| 843 | −FC3C3E07BE381F0E1E7807FC0FF001F003C0202278A027>97 D<0000FC000007FF00001F | |
| 844 | −0780003E03C000FC01C001F803C003F007C007E00FC007C00FC00FC00FC01F8007001F80 | |
| 845 | −00003F0000003F0000003F0000007F0000007E0000007E0000007E000000FE000000FC00 | |
| 846 | −0000FC000000FC000000FC0000007C0000C07C0001E07C0001E07C0003C03E000F803E00 | |
| 847 | −1F001F007C000F81F00003FFC00000FE00001B2278A023>99 D<000FC0000003FFC00000 | |
| 848 | −03FFC0000003FF800000001F800000001F800000001F800000001F000000001F00000000 | |
| 849 | −3F000000003F000000003E000000003E000000007E000000007E000000007C000000007C | |
| 850 | −00000000FC00000000FC00000000F83F800000F8FFE00001FBE0F00001FF80F80001FF00 | |
| 851 | −780001FE007C0003FC007C0003F8007C0003F0007C0003F0007C0007E000FC0007E000F8 | |
| 852 | −0007C000F80007C000F8000FC001F8000FC001F0000F8001F0000F8001F0001F8003F000 | |
| 853 | −1F8003E0001F0007E0001F0007C0C03F0007C1E03F000FC1C03E000F81C03E000F81C07E | |
| 854 | −000F83C07E000F03807C000F07807C000F0700FC000F0E00FC000F1E00F80007F8007000 | |
| 855 | −01F00023357BB327>104 D<0003F0001FFC003C1E00780F00F00701E00701E00F03E01F | |
| 856 | −03C01F03C01F03E00403E00003F00003FF8003FFE001FFF000FFF8007FFC0007FC0000FE | |
| 857 | −00007E00003E38003EFC003CFC003CFC003CFC007CF00078E000F0F001F07803E03C0F80 | |
| 858 | −1FFE0003F80018227AA01F>115 D<000300000F80000F80000F80001F80001F80001F00 | |
| 859 | −001F00003F00003F00003E00003E00007E00007E00007C007FFFF87FFFF8FFFFF800F800 | |
| 860 | −00F80001F80001F80001F00001F00003F00003F00003E00003E00007E00007E00007C000 | |
| 861 | −07C0000FC0000FC0000F80000F80601F80F01F80E01F00E01F01E01F01C01F03C01E0380 | |
| 862 | −1E07001E0F000F1E0007F80001E00015307AAE19>I<01F000000003FC0007000F1E000F | |
| 863 | −000E1E001F001C1E001F003C1E001F00381E003F00783E003E00703E003E00703E003E00 | |
| 864 | −707E007E00F07C007C0060FC007C0000F8007C0000F800FC0001F800F80001F000F80001 | |
| 865 | −F000F80001F001F80003F001F00003E001F00003E001F06003E003F07003E003E0F007C0 | |
| 866 | −03E0E007C003E0E003C007E1E003C007E1C003E00FC1C003E01FC3C001E03FE38001F071 | |
| 867 | −E780007FE0FF00001F803C0024227AA029>I E /Fh 2 104 df<000007E000003FE00000 | |
| 868 | −FE000003F8000007F000000FE000000FC000001FC000001F8000001F8000001F8000001F | |
| 869 | −8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F | |
| 870 | −8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F | |
| 871 | −8000001F8000003F8000003F0000007E000000FC000003F800007FE00000FF0000007FE0 | |
| 872 | −000003F8000000FC0000007E0000003F0000003F8000001F8000001F8000001F8000001F | |
| 873 | −8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F | |
| 874 | −8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F | |
| 875 | −8000001F8000001FC000000FC000000FE0000007F0000003F8000000FE0000003FE00000 | |
| 876 | −07E01B4B7BB726>102 D<FC000000FFC0000007F0000001FC000000FE0000007F000000 | |
| 877 | −3F0000003F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 | |
| 878 | −1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 | |
| 879 | −1F8000001F8000001F8000001F8000001F8000001F8000001F8000001FC000000FC00000 | |
| 880 | −07E0000003F0000001FC0000007FC000001FE000007FC00001FC000003F0000007E00000 | |
| 881 | −0FC000001FC000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 | |
| 882 | −1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 | |
| 883 | −1F8000001F8000001F8000001F8000001F8000001F8000001F8000003F8000003F000000 | |
| 884 | −7F000000FE000001FC000007F00000FFC00000FC0000001B4B7BB726>I | |
| 885 | −E /Fi 38 122 df<00003FE00FE00001FFF83FF80007E01EF83C001F800FF07E003F001F | |
| 886 | −E0FE007E003FE0FE00FC003FC0FE01F8003FC0FE01F8003FC03803F0001F800003F0001F | |
| 887 | −800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F | |
| 888 | −800003F0001F800003F0001F800003F0001F800003F0001F8000FFFFFFFFFFC0FFFFFFFF | |
| 889 | −FFC0FFFFFFFFFFC003F0001F800003F0001F800003F0001F800003F0001F800003F0001F | |
| 890 | −800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F | |
| 891 | −800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F | |
| 892 | −800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F800003F0001F | |
| 893 | −800003F0001F800003F0001F800007F8003FC000FFFF83FFFF00FFFF83FFFF00FFFF83FF | |
| 894 | −FF002F357FB42D>11 D<00001FE0000000FFFC000003F01E00000FC00780001F80078000 | |
| 895 | −3F000FC0007E001FC000FC001FC000FC001FC001F8001FC001F8000F8001F800000001F8 | |
| 896 | −00000001F800000001F800000001F800000001F800000001F800000001F800000001F800 | |
| 897 | −000001F8000FC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC001F8001FC001F8000FC001F8000F | |
| 898 | −C001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC0 | |
| 899 | −01F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001 | |
| 900 | −F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC001F8 | |
| 901 | −000FC003FC001FE07FFFC1FFFF7FFFC1FFFF7FFFC1FFFF28357FB42B>I<3C007E00FF00 | |
| 902 | −FF00FF80FF807F803D800180018001800180038003000300070006000E000C001C003800 | |
| 903 | −7000600009177AB315>39 D<3C007E00FF00FF00FF80FF807F803D800180018001800180 | |
| 904 | −038003000300070006000E000C001C0038007000600009177A8715>44 | |
| 905 | −D<3C7EFFFFFFFF7E3C08087A8715>46 D<000FE000007FFC0000F83E0003E00F8007C007 | |
| 906 | −C0078003C00F8003E01F0001F01F0001F03F0001F83F0001F83E0000F87E0000FC7E0000 | |
| 907 | −FC7E0000FC7E0000FC7E0000FCFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000 | |
| 908 | −FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000 | |
| 909 | −FEFE0000FEFE0000FEFE0000FE7E0000FC7E0000FC7E0000FC7E0000FC7E0000FC3F0001 | |
| 910 | −F83F0001F83F0001F81F0001F01F0001F00F8003E007C007C007C007C003E00F8000F83E | |
| 911 | −00007FFC00000FE0001F347DB126>48 D<001FE00000FFFC0001FFFF0007E03F800F001F | |
| 912 | −C01E000FE01C0007F03F0007F03F8007F83F8003F83FC003F83F8003F83F8003F81F0007 | |
| 913 | −F8000007F8000007F0000007F000000FE000000FC000001FC000003F8000007E000001F8 | |
| 914 | −00007FE000007FFC0000003F0000001FC000000FE0000007F0000007F8000003F8000003 | |
| 915 | −FC000001FC000001FE000001FE000001FE7E0001FEFF0001FEFF0001FEFF0001FEFF0001 | |
| 916 | −FEFF0001FCFE0003FC780003FC700007F8380007F03C000FF01F001FE00FE03F8003FFFF | |
| 917 | −0000FFFC00001FE0001F347DB126>51 D<3C7EFFFFFFFF7E3C0000000000000000000000 | |
| 918 | −00000000003C7EFEFFFFFF7F3F03030303070606060E0C1C38307060082F7A9F15>59 | |
| 919 | −D<000000E0000000000000E0000000000000E0000000000001F0000000000001F0000000 | |
| 920 | −000003F8000000000003F8000000000003F8000000000007FC000000000007FC00000000 | |
| 921 | −0007FC00000000000DFE00000000000CFE00000000000CFE0000000000187F0000000000 | |
| 922 | −187F0000000000187F0000000000303F8000000000303F8000000000703FC00000000060 | |
| 923 | −1FC000000000601FC000000000E01FE000000000C00FE000000000C00FE000000001800F | |
| 924 | −F0000000018007F0000000018007F0000000030003F8000000030003F8000000030003F8 | |
| 925 | −000000060001FC000000060001FC0000000E0001FE0000000FFFFFFE0000000FFFFFFE00 | |
| 926 | −00001FFFFFFF0000001800007F0000001800007F0000003000007F8000003000003F8000 | |
| 927 | −003000003F8000006000001FC000006000001FC000006000001FC00000C000000FE00000 | |
| 928 | −C000000FE00001C000000FF00001C0000007F00003E0000007F0001FF000000FF800FFFE | |
| 929 | −0001FFFFE0FFFE0001FFFFE0FFFE0001FFFFE033367DB53A>65 D<FFFFFE000000FFFFFE | |
| 930 | −000000FFFFFE00000003FE0000000001FC0000000001FC0000000001FC0000000001FC00 | |
| 931 | −00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 | |
| 932 | −00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 | |
| 933 | −00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 | |
| 934 | −00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 | |
| 935 | −00018001FC0000018001FC0000018001FC0000018001FC0000038001FC0000030001FC00 | |
| 936 | −00030001FC0000030001FC0000030001FC0000070001FC0000070001FC00000F0001FC00 | |
| 937 | −001F0001FC00003F0001FC00007F0001FC0000FE0003FC0007FE00FFFFFFFFFE00FFFFFF | |
| 938 | −FFFE00FFFFFFFFFE0029337DB230>76 D<FFFE00001FFFF8FFFF00001FFFF8FFFF80001F | |
| 939 | −FFF800FF800000FF0000FFC000003C0000DFE00000180000CFF00000180000CFF0000018 | |
| 940 | −0000C7F80000180000C3FC0000180000C3FC0000180000C1FE0000180000C0FF00001800 | |
| 941 | −00C07F8000180000C07F8000180000C03FC000180000C01FE000180000C01FE000180000 | |
| 942 | −C00FF000180000C007F800180000C003FC00180000C003FC00180000C001FE00180000C0 | |
| 943 | −00FF00180000C000FF00180000C0007F80180000C0003FC0180000C0001FE0180000C000 | |
| 944 | −1FE0180000C0000FF0180000C00007F8180000C00007F8180000C00003FC180000C00001 | |
| 945 | −FE180000C00000FF180000C00000FF180000C000007F980000C000003FD80000C000003F | |
| 946 | −D80000C000001FF80000C000000FF80000C0000007F80000C0000007F80000C0000003F8 | |
| 947 | −0000C0000001F80000C0000001F80001E0000000F80007F80000007800FFFFC000003800 | |
| 948 | −FFFFC000003800FFFFC00000180035337EB23A>78 D<001FE00300007FFC070001FFFF07 | |
| 949 | −0007F01FCF000F8003FF001F0000FF003E00007F003E00003F007C00001F007C00001F00 | |
| 950 | −7800000F00F800000700F800000700F800000700F800000700FC00000300FC00000300FE | |
| 951 | −00000300FE000000007F000000007FC00000003FF00000003FFF0000001FFFF000000FFF | |
| 952 | −FF000007FFFFC00003FFFFF00000FFFFF800003FFFFC000003FFFE0000003FFF00000003 | |
| 953 | −FF00000000FF800000007F800000003F800000001FC00000000FC0C000000FC0C000000F | |
| 954 | −C0C0000007C0C0000007C0C0000007C0E0000007C0E0000007C0F000000F80F000000F80 | |
| 955 | −F800000F00FC00001F00FE00003E00FF00007E00FFC000FC00F1FC03F800E0FFFFE000E0 | |
| 956 | −1FFF8000C003FE000022377CB42B>83 D<7FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE7F | |
| 957 | −8007F001FE7C0007F0003E780007F0001E700007F0000E700007F0000E600007F00006E0 | |
| 958 | −0007F00007E00007F00007E00007F00007C00007F00003C00007F00003C00007F00003C0 | |
| 959 | −0007F00003C00007F00003C00007F00003000007F00000000007F00000000007F0000000 | |
| 960 | −0007F00000000007F00000000007F00000000007F00000000007F00000000007F0000000 | |
| 961 | −0007F00000000007F00000000007F00000000007F00000000007F00000000007F0000000 | |
| 962 | −0007F00000000007F00000000007F00000000007F00000000007F00000000007F0000000 | |
| 963 | −0007F00000000007F00000000007F00000000007F00000000007F00000000007F0000000 | |
| 964 | −0007F00000000007F0000000000FF80000001FFFFFFC00001FFFFFFC00001FFFFFFC0030 | |
| 965 | −337DB237>I<FFFFFE001FFFF8FFFFFE001FFFF8FFFFFE001FFFF801FF000000FF0000FE | |
| 966 | −0000003C0000FE000000180000FE000000180000FE000000180000FE000000180000FE00 | |
| 967 | −0000180000FE000000180000FE000000180000FE000000180000FE000000180000FE0000 | |
| 968 | −00180000FE000000180000FE000000180000FE000000180000FE000000180000FE000000 | |
| 969 | −180000FE000000180000FE000000180000FE000000180000FE000000180000FE00000018 | |
| 970 | −0000FE000000180000FE000000180000FE000000180000FE000000180000FE0000001800 | |
| 971 | −00FE000000180000FE000000180000FE000000180000FE000000180000FE000000180000 | |
| 972 | −FE000000180000FE000000180000FE000000180000FE0000003800007F0000003000007F | |
| 973 | −0000003000007F0000007000003F8000006000001F800000E000001FC00001C000000FC0 | |
| 974 | −0003C0000007E0000780000003F0000F00000001FC001E00000000FF00FC000000003FFF | |
| 975 | −F0000000000FFFC00000000001FF00000035357EB23A>I<FFF0FFF0FFF0FFF0F000F000 | |
| 976 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 977 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 978 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 979 | −F000F000F000F000F000F000F000F000F000F000F000FFF0FFF0FFF0FFF00C4B79B715> | |
| 980 | −91 D<FFF0FFF0FFF0FFF000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 981 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 982 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 983 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 984 | −F0FFF0FFF0FFF0FFF00C4B7FB715>93 D<007F80000003FFF000000F80FC00001C003E00 | |
| 985 | −003F003F00003F801F80003F800FC0003F800FC0003F8007E0001F0007E000000007E000 | |
| 986 | −000007E000000007E000000007E0000001FFE000001FFFE00000FF87E00003FC07E0000F | |
| 987 | −F007E0001FC007E0003F8007E0007F8007E0007F0007E000FF0007E0C0FE0007E0C0FE00 | |
| 988 | −07E0C0FE0007E0C0FE000FE0C0FE000FE0C0FF001FE0C07F003BE0C03F8071F1801FC1E1 | |
| 989 | −FF8007FFC0FF0000FE003C0022237DA126>97 D<03F0000000FFF0000000FFF0000000FF | |
| 990 | −F000000007F000000003F000000003F000000003F000000003F000000003F000000003F0 | |
| 991 | −00000003F000000003F000000003F000000003F000000003F000000003F000000003F000 | |
| 992 | −000003F000000003F03F800003F0FFE00003F3C0F80003F7007E0003FE003F0003FC001F | |
| 993 | −8003F8000FC003F0000FC003F00007E003F00007F003F00007F003F00003F003F00003F8 | |
| 994 | −03F00003F803F00003F803F00003F803F00003F803F00003F803F00003F803F00003F803 | |
| 995 | −F00003F803F00003F803F00003F003F00007F003F00007E003F00007E003F0000FC003F8 | |
| 996 | −000FC003FC001F8003EC003F0003CF007C00038381F8000301FFE00000007F000025357E | |
| 997 | −B32B>I<0007F800003FFF0000FC07C001F000E003E003F007C007F00FC007F01F8007F0 | |
| 998 | −3F8007F03F0003E07F0000007F0000007E000000FE000000FE000000FE000000FE000000 | |
| 999 | −FE000000FE000000FE000000FE000000FE000000FE0000007F0000007F0000003F000018 | |
| 1000 | −3F8000181F8000381FC000300FC0007007E000E003F001C000FC0F80003FFE000007F000 | |
| 1001 | −1D237EA122>I<0000003F0000000FFF0000000FFF0000000FFF000000007F000000003F | |
| 1002 | −000000003F000000003F000000003F000000003F000000003F000000003F000000003F00 | |
| 1003 | −0000003F000000003F000000003F000000003F000000003F000000003F000007F03F0000 | |
| 1004 | −3FFC3F0000FC0F3F0001F003BF0007E001FF000FC000FF001F80007F001F80003F003F00 | |
| 1005 | −003F003F00003F007F00003F007E00003F00FE00003F00FE00003F00FE00003F00FE0000 | |
| 1006 | −3F00FE00003F00FE00003F00FE00003F00FE00003F00FE00003F00FE00003F007E00003F | |
| 1007 | −007F00003F007F00003F003F00003F001F80007F001F80007F000FC000FF0007E001FF80 | |
| 1008 | −03F007BFFC00F81E3FFC003FFC3FFC000FE03F0026357DB32B>I<000FE000007FFC0000 | |
| 1009 | −F83F0003F00F8007E00FC00FC007E01F8003E01F8003F03F0003F03F0001F07F0001F87E | |
| 1010 | −0001F87E0001F8FE0001F8FE0001F8FFFFFFF8FFFFFFF8FE000000FE000000FE000000FE | |
| 1011 | −000000FE0000007E0000007F0000007F0000003F0000183F0000181F8000380F8000300F | |
| 1012 | −C0007007E000E001F003C000FC0F00003FFE000007F0001D237EA122>I<0001FC000007 | |
| 1013 | −FF00001F0780003E0FC0007C1FC000FC1FC001F81FC001F81FC003F8070003F0000003F0 | |
| 1014 | −000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0 | |
| 1015 | −000003F00000FFFFF000FFFFF000FFFFF00003F0000003F0000003F0000003F0000003F0 | |
| 1016 | −000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0 | |
| 1017 | −000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0 | |
| 1018 | −000003F0000003F0000007F800007FFFE0007FFFE0007FFFE0001A357FB417>I<000000 | |
| 1019 | −1F00001FC07F8000FFF8E3C001F07FC7C007E03F03C00FC01F83800F800F80001F800FC0 | |
| 1020 | −001F0007C0003F0007E0003F0007E0003F0007E0003F0007E0003F0007E0003F0007E000 | |
| 1021 | −1F0007C0001F800FC0000F800F80000FC01F800007E03F000007F07C00000EFFF800000C | |
| 1022 | −1FC000001C000000001C000000001C000000001E000000001E000000001F000000000FFF | |
| 1023 | −FE00000FFFFFC00007FFFFF00003FFFFFC0007FFFFFE001F0001FE003E00007F007C0000 | |
| 1024 | −3F007C00001F80F800000F80F800000F80F800000F80F800000F80F800000F80FC00001F | |
| 1025 | −807C00001F003E00003E001F00007C000FC001F80003F007E00000FFFF8000001FFC0000 | |
| 1026 | −22337EA126>I<03F0000000FFF0000000FFF0000000FFF000000007F000000003F00000 | |
| 1027 | −0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 | |
| 1028 | −03F000000003F000000003F000000003F000000003F000000003F000000003F01FC00003 | |
| 1029 | −F07FF00003F1E0FC0003F3807C0003F7007E0003FE007E0003FC003F0003FC003F0003F8 | |
| 1030 | −003F0003F8003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F000 | |
| 1031 | −3F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F | |
| 1032 | −0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0007F8007F80 | |
| 1033 | −FFFFC7FFFCFFFFC7FFFCFFFFC7FFFC26347EB32B>I<07800FC01FE01FE01FE01FE00FC0 | |
| 1034 | −0780000000000000000000000000000000000000000007E0FFE0FFE0FFE00FE007E007E0 | |
| 1035 | −07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E0 | |
| 1036 | −07E007E007E007E00FF0FFFFFFFFFFFF10337EB215>I<07E0FFE0FFE0FFE00FE007E007 | |
| 1037 | −E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007 | |
| 1038 | −E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007 | |
| 1039 | −E007E007E007E007E007E00FF0FFFFFFFFFFFF10347EB315>108 | |
| 1040 | −D<03F01FE000FF0000FFF07FF803FFC000FFF1E07C0F03E000FFF3803E1C01F00007F700 | |
| 1041 | −3F3801F80003FE003F7001F80003FC001FE000FC0003FC001FE000FC0003F8001FC000FC | |
| 1042 | −0003F8001FC000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F000 | |
| 1043 | −1F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC | |
| 1044 | −0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F000 | |
| 1045 | −1F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC0003F0001F8000FC | |
| 1046 | −0003F0001F8000FC0003F0001F8000FC0007F8003FC001FE00FFFFC7FFFE3FFFF0FFFFC7 | |
| 1047 | −FFFE3FFFF0FFFFC7FFFE3FFFF03C217EA041>I<03F01FC000FFF07FF000FFF1E0FC00FF | |
| 1048 | −F3807C0007F7007E0003FE007E0003FC003F0003FC003F0003F8003F0003F8003F0003F0 | |
| 1049 | −003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F000 | |
| 1050 | −3F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F | |
| 1051 | −0003F0003F0003F0003F0003F0003F0003F0003F0007F8007F80FFFFC7FFFCFFFFC7FFFC | |
| 1052 | −FFFFC7FFFC26217EA02B>I<0007F00000003FFE000000FC1F800001F007C00003C001E0 | |
| 1053 | −0007C001F0000F8000F8001F00007C001F00007C003F00007E003E00003E007E00003F00 | |
| 1054 | −7E00003F007E00003F00FE00003F80FE00003F80FE00003F80FE00003F80FE00003F80FE | |
| 1055 | −00003F80FE00003F80FE00003F807E00003F007E00003F007E00003F003F00007E003F00 | |
| 1056 | −007E001F00007C001F8000FC000FC001F80007C001F00003F007E00000FC1F8000003FFE | |
| 1057 | −00000007F0000021237EA126>I<03F03F8000FFF0FFE000FFF3C0F800FFF7007E0007FE | |
| 1058 | −003F0003FC001F8003F8001FC003F0000FC003F0000FE003F00007F003F00007F003F000 | |
| 1059 | −07F003F00003F803F00003F803F00003F803F00003F803F00003F803F00003F803F00003 | |
| 1060 | −F803F00003F803F00003F803F00007F803F00007F003F00007F003F00007E003F0000FE0 | |
| 1061 | −03F0000FC003F8001FC003FC003F8003FC003F0003FF00FC0003F381F80003F1FFE00003 | |
| 1062 | −F07F000003F000000003F000000003F000000003F000000003F000000003F000000003F0 | |
| 1063 | −00000003F000000003F000000003F000000007F8000000FFFFC00000FFFFC00000FFFFC0 | |
| 1064 | −000025307EA02B>I<03E07C00FFE1FF00FFE38F80FFE71FC007EE1FC003EC1FC003EC1F | |
| 1065 | −C003FC0F8003F8000003F8000003F8000003F0000003F0000003F0000003F0000003F000 | |
| 1066 | −0003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000 | |
| 1067 | −0003F0000003F0000003F0000003F0000007F80000FFFFE000FFFFE000FFFFE0001A217F | |
| 1068 | −A01E>114 D<00FF060007FFCE001F00FE003C003E0078001E0078000E00F0000E00F000 | |
| 1069 | −0600F0000600F8000600F8000600FE000000FF8000007FFC00003FFFC0003FFFF0000FFF | |
| 1070 | −F80007FFFC0000FFFE00000FFF000000FF0000003F80C0001F80C0000F80E0000780E000 | |
| 1071 | −0780E0000780F0000780F0000700F8000F00FC000E00FE001C00F7807800E1FFE000C07F | |
| 1072 | −800019237EA11E>I<00300000300000300000300000300000700000700000700000F000 | |
| 1073 | −00F00001F00001F00003F00007F0001FFFFEFFFFFEFFFFFE03F00003F00003F00003F000 | |
| 1074 | −03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F003 | |
| 1075 | −03F00303F00303F00303F00303F00303F00303F00303F00701F80601F80600FC0E007E1C | |
| 1076 | −001FF80007E0182F7FAD1E>I<03F0003F00FFF00FFF00FFF00FFF00FFF00FFF0007F000 | |
| 1077 | −7F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F | |
| 1078 | −0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F00 | |
| 1079 | −03F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0007F0003F0007F0003 | |
| 1080 | −F0007F0003F000FF0001F000FF0001F801FF8000F803BFFC007E073FFC001FFE3FFC0007 | |
| 1081 | −F83F0026227EA02B>I<FFFF00FFF0FFFF00FFF0FFFF00FFF00FF0003F8007F0001F0003 | |
| 1082 | −F0000E0003F0000C0003F8001C0001F800180001F800180000FC00300000FC00300000FE | |
| 1083 | −007000007E006000007F006000003F00C000003F00C000001F818000001F818000001FC3 | |
| 1084 | −8000000FC30000000FC300000007E600000007E600000007FE00000003FC00000003FC00 | |
| 1085 | −000001F800000001F800000001F800000000F000000000F00000000060000024217E9F29 | |
| 1086 | −>I<FFFF1FFF81FFF0FFFF1FFF81FFF0FFFF1FFF81FFF007F801FC003F8007F001F8001E | |
| 1087 | −0003F000F8001C0003F000FC001C0001F8007C00180001F8007C00180001FC007E003800 | |
| 1088 | −00FC00FE00300000FC00FE003000007E01FF006000007E019F006000007E019F80600000 | |
| 1089 | −3F030F80C000003F030F80C000003F030FC0C000001F8607C18000001F8607C18000001F | |
| 1090 | −C607E38000000FCC03E30000000FCC03E300000007FC03F600000007F801F600000007F8 | |
| 1091 | −01FE00000003F000FC00000003F000FC00000003F000FC00000001E0007800000001E000 | |
| 1092 | −7800000001E0007800000000C00030000034217F9F37>I<FFFF01FFF8FFFF01FFF8FFFF | |
| 1093 | −01FFF803FE00FF8001FC007C0000FC007800007E007000007F00E000003F81C000001F83 | |
| 1094 | −8000000FC300000007E600000007FE00000003FC00000001F800000000FC00000000FE00 | |
| 1095 | −000000FF00000001FF000000039F800000071FC00000060FE000000C07E000001C03F000 | |
| 1096 | −003801F800007001FC0000F000FC0001F000FE000FF000FF80FFFC03FFFCFFFC03FFFCFF | |
| 1097 | −FC03FFFC26207F9F29>I<7FFF807FF87FFF807FF87FFF807FF807F8001FC003F8000F80 | |
| 1098 | −01F800070001F800060000FC000C0000FC000C0000FE001C00007E001800007E00180000 | |
| 1099 | −3F003000003F003000003F807000001F806000001FC0E000000FC0C000000FC0C0000007 | |
| 1100 | −E180000007E180000007F380000003F300000003FB00000001FE00000001FE00000000FC | |
| 1101 | −00000000FC00000000FC0000000078000000007800000000300000000030000000006000 | |
| 1102 | −0000006000000000E000000000C000000000C0000000018000007801800000FC03000000 | |
| 1103 | −FC03000000FC06000000FC0E000000701C00000078380000001FF00000000FC000000025 | |
| 1104 | −307F9F29>I E /Fj 5 53 df<0000380000000038000000003800000000380000000038 | |
| 1105 | −000000003800000000380000000038000000003800000000380000000038000000003800 | |
| 1106 | −00000038000000003800000000380000000038000000003800000000380000FFFFFFFFFE | |
| 1107 | −FFFFFFFFFEFFFFFFFFFE0000380000000038000000003800000000380000000038000000 | |
| 1108 | −003800000000380000000038000000003800000000380000000038000000003800000000 | |
| 1109 | −3800000000380000000038000000003800000000380000000038000027277C9F2F>43 | |
| 1110 | −D<00E00001E00007E000FFE000F9E00001E00001E00001E00001E00001E00001E00001E0 | |
| 1111 | −0001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E0 | |
| 1112 | −0001E00001E00001E00001E00001E00001E00003F000FFFFC0FFFFC012217AA01E>49 | |
| 1113 | −D<01FC0007FF801C0FC03003E06001F06000F8F800F8FC00FCFC00FCFC007C78007C3000 | |
| 1114 | −FC0000FC0000F80000F80001F00003E00003C0000780000F00001E0000380000700000E0 | |
| 1115 | −0001C00C03800C0600180C00181800183FFFF87FFFF8FFFFF0FFFFF016217CA01E>I<00 | |
| 1116 | −FF0003FFC00F03E01C00F01C00F83E00FC3E007C3E007C1E00FC0C00FC0000F80000F800 | |
| 1117 | −01F00003E0000FC001FF0001FF000003E00000F000007800007C00003E00003F30003F78 | |
| 1118 | −003FFC003FFC003FFC003EF8007E60007C3800F81E03F00FFFC001FF0018227DA01E>I< | |
| 1119 | −0000E00001E00001E00003E00007E00007E0000DE0001DE00039E00031E00061E000E1E0 | |
| 1120 | −00C1E00181E00381E00701E00601E00C01E01C01E01801E03001E07001E0E001E0FFFFFF | |
| 1121 | −FFFFFF0001E00001E00001E00001E00001E00001E00003F0003FFF003FFF18227DA11E> | |
| 1122 | −I E /Fk 5 107 df<000FFC0000003FFF000000FFFFC00003FFFFF00007FFFFF8000FFF | |
| 1123 | −FFFC001FFFFFFE003FFFFFFF003FFFFFFF007FFFFFFF807FFFFFFF807FFFFFFF80FFFFFF | |
| 1124 | −FFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFF | |
| 1125 | −C0FFFFFFFFC0FFFFFFFFC07FFFFFFF807FFFFFFF807FFFFFFF803FFFFFFF003FFFFFFF00 | |
| 1126 | −1FFFFFFE000FFFFFFC0007FFFFF80003FFFFF00000FFFFC000003FFF0000000FFC000022 | |
| 1127 | −227BA72D>15 D<0000000000000030000000000000000000780000000000000000007800 | |
| 1128 | −00000000000000007C0000000000000000003C0000000000000000003C00000000000000 | |
| 1129 | −00003E0000000000000000001E0000000000000000001E0000000000000000001F000000 | |
| 1130 | −0000000000000F8000000000000000000F80000000000000000007C00000000000000000 | |
| 1131 | −03E0000000000000000003E0000000000000000001F0000000000000000000F800000000 | |
| 1132 | −00000000007C0000000000000000007E0000000000000000001F8000000000000000000F | |
| 1133 | −C0000000000000000007F07FFFFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
| 1134 | −FFFFFFFFFF7FFFFFFFFFFFFFFFFFFC000000000000000007F000000000000000000FC000 | |
| 1135 | −000000000000001F8000000000000000007E0000000000000000007C0000000000000000 | |
| 1136 | −00F8000000000000000001F0000000000000000003E0000000000000000003E000000000 | |
| 1137 | −0000000007C000000000000000000F8000000000000000000F8000000000000000001F00 | |
| 1138 | −00000000000000001E0000000000000000001E0000000000000000003E00000000000000 | |
| 1139 | −00003C0000000000000000003C0000000000000000007C00000000000000000078000000 | |
| 1140 | −0000000000007800000000000000000030000050307BAE5B>33 D<0000003F000003FF00 | |
| 1141 | −000FE000003F8000007E000001FC000001F8000003F0000003F0000007E0000007E00000 | |
| 1142 | −07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000 | |
| 1143 | −07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000 | |
| 1144 | −07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000000FE00000 | |
| 1145 | −0FC000001FC000003F8000003F000000FE000003F800007FE00000FF0000007FE0000003 | |
| 1146 | −F8000000FE0000003F0000003F8000001FC000000FC000000FE0000007E0000007E00000 | |
| 1147 | −07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000 | |
| 1148 | −07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00000 | |
| 1149 | −07E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000003F00000 | |
| 1150 | −03F0000001F8000001FC0000007E0000003F8000000FE0000003FF0000003F205B7AC32D | |
| 1151 | −>102 D<FC000000FFC0000007F0000001FC0000007E0000003F8000001F8000000FC000 | |
| 1152 | −000FC0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 | |
| 1153 | −0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 | |
| 1154 | −0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 | |
| 1155 | −0007E0000007E0000007F0000003F0000003F8000001FC000000FC0000007F0000001FC0 | |
| 1156 | −000007FE000000FF000007FE00001FC000007F000000FC000001FC000003F8000003F000 | |
| 1157 | −0007F0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 | |
| 1158 | −0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 | |
| 1159 | −0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 | |
| 1160 | −0007E0000007E000000FC000000FC000001F8000003F8000007E000001FC000007F00000 | |
| 1161 | −FFC00000FC000000205B7AC32D>I<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 | |
| 1162 | −F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 | |
| 1163 | −F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F060045B | |
| 1164 | −76C319>106 D E /Fl 4 53 df<000C00003C00007C0003FC00FFFC00FC7C00007C0000 | |
| 1165 | −7C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000 | |
| 1166 | −7C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000 | |
| 1167 | −7C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000FE007FFFFE7F | |
| 1168 | −FFFE172C7AAB23>49 D<007F800001FFF0000780FC000E003F001C001F8038000FC07000 | |
| 1169 | −0FC0600007E0F00007E0FC0007F0FE0007F0FE0003F0FE0003F0FE0003F07C0007F00000 | |
| 1170 | −07F0000007F0000007E000000FE000000FC000001FC000001F8000003F0000007E000000 | |
| 1171 | −7C000000F8000001F0000003E0000007C000000F8000001E0000003C00000078000000F0 | |
| 1172 | −003000E0003001C0003003800060070000600E0000E01FFFFFE03FFFFFE07FFFFFC0FFFF | |
| 1173 | −FFC0FFFFFFC01C2C7DAB23>I<003FC00001FFF00007C0FC000E007E001C003F001C001F | |
| 1174 | −803F001FC03F001FC03F800FC03F000FC03F000FC00C001FC000001FC000001F8000001F | |
| 1175 | −8000003F0000003E0000007C000000F8000003F00000FFC00000FFF0000000FC0000003F | |
| 1176 | −0000001F8000001FC000000FC000000FE000000FE0000007F0000007F0380007F07C0007 | |
| 1177 | −F0FE0007F0FE0007F0FE0007F0FE000FE0F8000FE060000FC070001FC038001F801E003F | |
| 1178 | −000780FC0001FFF000007FC0001C2D7DAB23>I<00000E0000000E0000001E0000003E00 | |
| 1179 | −00003E0000007E000000FE000000FE000001BE000003BE0000033E0000063E00000E3E00 | |
| 1180 | −000C3E0000183E0000383E0000303E0000603E0000E03E0000C03E0001803E0003803E00 | |
| 1181 | −03003E0006003E000E003E000C003E0018003E0038003E0030003E0060003E00E0003E00 | |
| 1182 | −FFFFFFFCFFFFFFFC00003E0000003E0000003E0000003E0000003E0000003E0000003E00 | |
| 1183 | −00003E0000003E0000007F00001FFFFC001FFFFC1E2D7EAC23>I | |
| 1184 | −E /Fm 52 122 df<000000FFF8000000000FFFFF000000007FFFFF80000001FFFFFFE000 | |
| 1185 | −0007FFC01FF000000FFE0007F000001FF8000FF800003FE0001FF800007FC0003FFC0000 | |
| 1186 | −FFC0003FFC0000FF80003FFC0001FF80003FFC0001FF00003FFC0001FF00003FFC0001FF | |
| 1187 | −00001FF80001FF00000FF00001FF000003C00001FF000000000001FF000000000001FF00 | |
| 1188 | −0000000001FF000000000001FF000000000001FF000000000001FF000003FC00FFFFFFFF | |
| 1189 | −FFFC00FFFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC0001FF80001F | |
| 1190 | −FC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC | |
| 1191 | −0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC00 | |
| 1192 | −01FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001 | |
| 1193 | −FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF | |
| 1194 | −80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC0001FF80 | |
| 1195 | −000FFC0001FF80000FFC0001FF80000FFC0001FF80000FFC007FFFFE03FFFFF07FFFFE03 | |
| 1196 | −FFFFF07FFFFE03FFFFF07FFFFE03FFFFF07FFFFE03FFFFF034407EBF3A>12 | |
| 1197 | −D<0FC0001F801FE0003FC03FF0007FE07FF800FFF0FFFC01FFF8FFFC01FFF8FFFC01FFF8 | |
| 1198 | −FFFE01FFFCFFFE01FFFCFFFE01FFFC7FFE00FFFC3FFE007FFC1FFE003FFC0FDE001FBC00 | |
| 1199 | −1E00003C001E00003C003E00007C003C000078003C000078007C0000F800780000F00078 | |
| 1200 | −0000F000F80001F001F00003E001F00003E003E00007C007C0000F800F80001F001F8000 | |
| 1201 | −3F003F00007E003E00007C001C0000380026207DBE37>34 D<FFFFFFE0FFFFFFE0FFFFFF | |
| 1202 | −E0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE01B097F9823>45 | |
| 1203 | −D<0FC01FE03FF07FF8FFFCFFFCFFFCFFFCFFFCFFFC7FF83FF01FE00FC00E0E798D1D>I< | |
| 1204 | −0000FFE000000007FFFC0000001FFFFF0000007FFFFFC00000FFE0FFE00001FF803FF000 | |
| 1205 | −03FE000FF80007FC0007FC0007FC0007FC000FF80003FE001FF80003FF001FF80003FF00 | |
| 1206 | −1FF80003FF003FF00001FF803FF00001FF803FF00001FF807FF00001FFC07FF00001FFC0 | |
| 1207 | −7FF00001FFC07FF00001FFC07FF00001FFC0FFF00001FFE0FFF00001FFE0FFF00001FFE0 | |
| 1208 | −FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0 | |
| 1209 | −FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0 | |
| 1210 | −FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE0FFF00001FFE07FF00001FFC0 | |
| 1211 | −7FF00001FFC07FF00001FFC07FF00001FFC07FF00001FFC03FF00001FF803FF80003FF80 | |
| 1212 | −3FF80003FF801FF80003FF001FF80003FF000FF80003FE000FFC0007FE0007FE000FFC00 | |
| 1213 | −03FF001FF80001FF803FF00000FFE0FFE000007FFFFFC000001FFFFF00000007FFFC0000 | |
| 1214 | −0000FFE000002B3D7CBB34>48 D<00000F000000003F000000007F00000001FF0000000F | |
| 1215 | −FF000001FFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFF7FF0000FE07FF00000007FF | |
| 1216 | −00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00 | |
| 1217 | −000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF0000 | |
| 1218 | −0007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF000000 | |
| 1219 | −07FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007 | |
| 1220 | −FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF | |
| 1221 | −00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00 | |
| 1222 | −00FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0243C78BB34>I<0003FF | |
| 1223 | −800000003FFFF8000000FFFFFE000003FFFFFF800007FFFFFFC0000FF80FFFE0001FC003 | |
| 1224 | −FFF0003F8000FFF8007FC0007FFC007FE0003FFE00FFF0003FFE00FFF8001FFF00FFF800 | |
| 1225 | −1FFF00FFF8000FFF80FFF8000FFF80FFF8000FFF80FFF8000FFF807FF0000FFF803FE000 | |
| 1226 | −0FFF801FC0000FFF800700000FFF800000000FFF800000001FFF000000001FFF00000000 | |
| 1227 | −1FFE000000003FFE000000003FFC000000007FF8000000007FF800000000FFF000000000 | |
| 1228 | −FFE000000001FFC000000003FF8000000007FE0000000007FC000000000FF8000000001F | |
| 1229 | −E0000000003FC0000000007F8000000000FF000F800001FC000F800003F8000F800007F0 | |
| 1230 | −001F00000FE0001F00001F80001F00003F00001F00007E00003F0000FC00003F0001FFFF | |
| 1231 | −FFFF0003FFFFFFFE0007FFFFFFFE000FFFFFFFFE001FFFFFFFFE003FFFFFFFFE007FFFFF | |
| 1232 | −FFFE00FFFFFFFFFE00FFFFFFFFFC00FFFFFFFFFC00FFFFFFFFFC00FFFFFFFFFC00293C7B | |
| 1233 | −BB34>I<0001FFE00000000FFFFE0000003FFFFF800000FFFFFFE00001FF81FFF00003FC | |
| 1234 | −007FF80007F0003FFC0007F0003FFE000FFC001FFE000FFE001FFF001FFE001FFF001FFF | |
| 1235 | −001FFF001FFF001FFF001FFF001FFF001FFF001FFF001FFF001FFF000FFE001FFF000FFE | |
| 1236 | −001FFE0007FC003FFE0001F0003FFC000000003FFC000000007FF8000000007FF0000000 | |
| 1237 | −00FFE000000001FFC00000000FFF80000007FFFE00000007FFF800000007FFFE00000007 | |
| 1238 | −FFFFC000000001FFF0000000007FF8000000003FFC000000001FFE000000000FFF000000 | |
| 1239 | −000FFF800000000FFF8000000007FFC000000007FFC000000007FFE00FC00007FFE01FE0 | |
| 1240 | −0007FFE03FF00007FFE07FF80007FFE0FFFC0007FFE0FFFC0007FFE0FFFC0007FFE0FFFC | |
| 1241 | −0007FFC0FFFC0007FFC0FFFC000FFFC0FFF8000FFF807FF8000FFF807FF0001FFF003FC0 | |
| 1242 | −003FFE001FE0007FFC000FFE01FFF80007FFFFFFF00003FFFFFFE00000FFFFFF8000003F | |
| 1243 | −FFFE00000003FFE000002B3D7CBB34>I<00000001F80000000003F80000000007F80000 | |
| 1244 | −000007F8000000000FF8000000001FF8000000003FF8000000003FF8000000007FF80000 | |
| 1245 | −0000FFF800000001FFF800000003FFF800000003FFF800000007FFF80000000FFFF80000 | |
| 1246 | −001FBFF80000003F3FF80000003E3FF80000007C3FF8000000FC3FF8000001F83FF80000 | |
| 1247 | −01F03FF8000003E03FF8000007E03FF800000FC03FF800001F803FF800001F003FF80000 | |
| 1248 | −3E003FF800007E003FF80000FC003FF80001F8003FF80001F0003FF80003E0003FF80007 | |
| 1249 | −E0003FF8000FC0003FF8000F80003FF8001F00003FF8003F00003FF8007E00003FF800FC | |
| 1250 | −00003FF800FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF800 | |
| 1251 | −00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000 | |
| 1252 | −00007FF8000000007FF8000000007FF8000000007FF8000001FFFFFFF80001FFFFFFF800 | |
| 1253 | −01FFFFFFF80001FFFFFFF80001FFFFFFF82D3C7DBB34>I<0700000038000FE00001F800 | |
| 1254 | −0FFE003FF8000FFFFFFFF8000FFFFFFFF0000FFFFFFFE0000FFFFFFFC0000FFFFFFF8000 | |
| 1255 | −0FFFFFFF00000FFFFFFE00000FFFFFF800000FFFFFF000000FFFFFC000000FFFFE000000 | |
| 1256 | −0F80000000000F80000000000F80000000000F80000000000F80000000000F8000000000 | |
| 1257 | −0F80000000000F80000000000F80000000000F80FFC000000F87FFFC00000F9FFFFF0000 | |
| 1258 | −0FFFFFFF80000FFF01FFE0000FF8007FF0000FF0003FF8000FC0001FFC000F80001FFC00 | |
| 1259 | −0700001FFE000000000FFE000000000FFF000000000FFF000000000FFF000000000FFF80 | |
| 1260 | −0000000FFF800700000FFF801FC0000FFF803FE0000FFF807FF0000FFF80FFF0000FFF80 | |
| 1261 | −FFF8000FFF80FFF8000FFF80FFF8000FFF00FFF8000FFF00FFF0000FFF00FFF0001FFE00 | |
| 1262 | −7FE0001FFE007F80001FFC003F00003FFC003F80007FF8001FE000FFF0000FFC07FFE000 | |
| 1263 | −07FFFFFFC00003FFFFFF000000FFFFFC0000003FFFF000000007FF000000293D7BBB34> | |
| 1264 | −I<000007FF000000003FFFC0000001FFFFF0000007FFFFF800000FFF03FC00003FF800FC | |
| 1265 | −00007FE001FE0000FFC003FE0001FF8007FF0003FF000FFF0003FF000FFF0007FE000FFF | |
| 1266 | −000FFE000FFF000FFE000FFF001FFC000FFF001FFC0007FE003FFC0003FC003FFC0001F8 | |
| 1267 | −003FFC000000007FF8000000007FF8000000007FF8020000007FF83FFE0000FFF87FFF80 | |
| 1268 | −00FFF9FFFFE000FFFBFFFFF000FFFBE03FF800FFFF800FFC00FFFF0007FE00FFFF0007FF | |
| 1269 | −00FFFE0007FF00FFFE0003FF80FFFC0003FFC0FFFC0003FFC0FFFC0003FFC0FFFC0003FF | |
| 1270 | −E0FFF80003FFE0FFF80003FFE0FFF80003FFE0FFF80003FFE07FF80003FFE07FF80003FF | |
| 1271 | −E07FF80003FFE07FF80003FFE07FF80003FFE03FF80003FFE03FF80003FFE03FFC0003FF | |
| 1272 | −C01FFC0003FFC01FFC0003FFC00FFC0007FF800FFE0007FF0007FE0007FF0003FF000FFE | |
| 1273 | −0001FF801FFC0000FFE07FF800007FFFFFF000003FFFFFE000001FFFFF80000007FFFE00 | |
| 1274 | −000000FFF000002B3D7CBB34>I<1F00000000001F80000000001FF8000000001FFFFFFF | |
| 1275 | −FFF01FFFFFFFFFF01FFFFFFFFFF01FFFFFFFFFF03FFFFFFFFFF03FFFFFFFFFE03FFFFFFF | |
| 1276 | −FFC03FFFFFFFFF803FFFFFFFFF003FFFFFFFFE003FFFFFFFFC007FFFFFFFFC007E000001 | |
| 1277 | −F8007E000003F0007C000007E0007C00000FC0007C00001F80007C00001F0000F800003F | |
| 1278 | −0000F800007E0000F80000FC0000000001F80000000003F00000000003F00000000007E0 | |
| 1279 | −000000000FE0000000000FC0000000001FC0000000003FC0000000003F80000000007F80 | |
| 1280 | −000000007F8000000000FF8000000000FF0000000001FF0000000001FF0000000003FF00 | |
| 1281 | −00000003FF0000000003FF0000000007FE0000000007FE0000000007FE000000000FFE00 | |
| 1282 | −0000000FFE000000000FFE000000000FFE000000000FFE000000001FFE000000001FFE00 | |
| 1283 | −0000001FFE000000001FFE000000001FFE000000001FFE000000001FFE000000001FFE00 | |
| 1284 | −0000001FFE000000001FFE000000000FFC0000000007F80000000003F00000002C3F7ABD | |
| 1285 | −34>I<0000FFF000000007FFFE0000001FFFFF8000007FFFFFE00000FFC07FF00001FE00 | |
| 1286 | −1FF80003FC000FFC0007F80007FE0007F80003FE000FF00003FE000FF00003FF000FF000 | |
| 1287 | −01FF001FF00001FF001FF00001FF001FF80001FF001FFC0001FF001FFE0001FF001FFF00 | |
| 1288 | −03FF001FFFC003FE001FFFF003FE000FFFF807FC000FFFFE0FF8000FFFFF9FF00007FFFF | |
| 1289 | −FFE00003FFFFFFC00003FFFFFF800001FFFFFF000000FFFFFF8000007FFFFFE000001FFF | |
| 1290 | −FFF000003FFFFFF80000FFFFFFFC0001FFFFFFFE0007FE3FFFFF000FFC1FFFFF801FF807 | |
| 1291 | −FFFF801FF001FFFFC03FE0007FFFC07FE0003FFFC07FC0000FFFE07FC00003FFE0FF8000 | |
| 1292 | −01FFE0FF800000FFE0FF8000007FE0FF8000007FE0FF8000003FE0FF8000003FE0FF8000 | |
| 1293 | −003FE0FFC000003FC07FC000003FC07FC000007F807FE000007F803FF00000FF001FF800 | |
| 1294 | −01FF001FFE0007FE000FFFC03FFC0007FFFFFFF80001FFFFFFE000007FFFFFC000001FFF | |
| 1295 | −FE00000001FFF000002B3D7CBB34>I<0001FFE00000000FFFFC0000003FFFFF000000FF | |
| 1296 | −FFFFC00001FFE0FFE00003FF003FF00007FE001FF8000FFE000FFC001FFC000FFC001FFC | |
| 1297 | −0007FE003FFC0007FE007FF80007FF007FF80003FF007FF80003FF80FFF80003FF80FFF8 | |
| 1298 | −0003FF80FFF80003FFC0FFF80003FFC0FFF80003FFC0FFF80003FFC0FFF80003FFC0FFF8 | |
| 1299 | −0003FFE0FFF80003FFE0FFF80003FFE0FFF80003FFE07FF80007FFE07FF80007FFE07FF8 | |
| 1300 | −0007FFE07FF80007FFE03FF8000FFFE01FFC000FFFE01FFC001FFFE00FFE001FFFE007FE | |
| 1301 | −003FFFE003FF80FBFFE001FFFFFBFFE0007FFFF3FFE0003FFFC3FFE0000FFF83FFC00000 | |
| 1302 | −0803FFC000000003FFC000000003FFC000000007FF8003F00007FF8007F80007FF800FFC | |
| 1303 | −0007FF001FFE0007FF001FFE000FFE001FFE000FFE001FFE000FFC001FFE001FFC001FFE | |
| 1304 | −003FF8001FFC003FF0000FF800FFE0000FF001FFC00007FC0FFF800003FFFFFF000001FF | |
| 1305 | −FFFC000000FFFFF00000007FFFC00000000FFE0000002B3D7CBB34>I<0FC01FE03FF07F | |
| 1306 | −F8FFFCFFFCFFFCFFFCFFFCFFFC7FF83FF01FE00FC0000000000000000000000000000000 | |
| 1307 | −0000000000000000000FC01FE03FF07FF8FFFCFFFCFFFCFFFCFFFCFFFC7FF83FF01FE00F | |
| 1308 | −C00E2879A71D>I<00000000FC0000000000000000FC0000000000000001FE0000000000 | |
| 1309 | −000001FE0000000000000003FF0000000000000003FF0000000000000003FF0000000000 | |
| 1310 | −000007FF8000000000000007FF800000000000000FFFC00000000000000FFFC000000000 | |
| 1311 | −00000FFFC00000000000001FFFE00000000000001FFFE00000000000003FFFF000000000 | |
| 1312 | −00003FFFF00000000000003FFFF00000000000007FFFF80000000000007CFFF800000000 | |
| 1313 | −0000FCFFFC000000000000F87FFC000000000000F87FFC000000000001F87FFE00000000 | |
| 1314 | −0001F03FFE000000000003F03FFF000000000003E01FFF000000000007E01FFF80000000 | |
| 1315 | −0007C01FFF800000000007C00FFF80000000000FC00FFFC0000000000F8007FFC0000000 | |
| 1316 | −001F8007FFE0000000001F0007FFE0000000001F0003FFE0000000003F0003FFF0000000 | |
| 1317 | −003E0001FFF0000000007E0001FFF8000000007C0000FFF8000000007C0000FFF8000000 | |
| 1318 | −00FC0000FFFC00000000F800007FFC00000001FFFFFFFFFE00000001FFFFFFFFFE000000 | |
| 1319 | −01FFFFFFFFFE00000003FFFFFFFFFF00000003FFFFFFFFFF00000007E000001FFF800000 | |
| 1320 | −07C000000FFF8000000FC000000FFFC000000F8000000FFFC000000F80000007FFC00000 | |
| 1321 | −1F80000007FFE000001F00000003FFE000003F00000003FFF000003E00000003FFF00000 | |
| 1322 | −3E00000001FFF000007E00000001FFF800007C00000000FFF800FFFFFC0000FFFFFFFCFF | |
| 1323 | −FFFC0000FFFFFFFCFFFFFC0000FFFFFFFCFFFFFC0000FFFFFFFCFFFFFC0000FFFFFFFC46 | |
| 1324 | −3F7CBE4F>65 D<FFFFFFFFFFF80000FFFFFFFFFFFF8000FFFFFFFFFFFFF000FFFFFFFFFF | |
| 1325 | −FFFC00FFFFFFFFFFFFFE00003FFC00003FFF00003FFC00000FFF80003FFC000007FFC000 | |
| 1326 | −3FFC000003FFE0003FFC000001FFE0003FFC000001FFF0003FFC000001FFF0003FFC0000 | |
| 1327 | −00FFF8003FFC000000FFF8003FFC000000FFF8003FFC000000FFF8003FFC000000FFF800 | |
| 1328 | −3FFC000000FFF8003FFC000000FFF8003FFC000000FFF0003FFC000001FFF0003FFC0000 | |
| 1329 | −01FFF0003FFC000003FFE0003FFC000003FFC0003FFC000007FF80003FFC00000FFF0000 | |
| 1330 | −3FFC00003FFE00003FFC0001FFF800003FFFFFFFFFE000003FFFFFFFFF8000003FFFFFFF | |
| 1331 | −FFF800003FFFFFFFFFFE00003FFC00000FFF80003FFC000003FFC0003FFC000001FFE000 | |
| 1332 | −3FFC000000FFF0003FFC000000FFF8003FFC0000007FFC003FFC0000007FFC003FFC0000 | |
| 1333 | −003FFE003FFC0000003FFE003FFC0000003FFF003FFC0000003FFF003FFC0000003FFF00 | |
| 1334 | −3FFC0000001FFF003FFC0000003FFF003FFC0000003FFF003FFC0000003FFF003FFC0000 | |
| 1335 | −003FFF003FFC0000003FFE003FFC0000007FFE003FFC0000007FFE003FFC000000FFFC00 | |
| 1336 | −3FFC000001FFF8003FFC000003FFF8003FFC000007FFF0003FFC00003FFFE0FFFFFFFFFF | |
| 1337 | −FFFFC0FFFFFFFFFFFFFF00FFFFFFFFFFFFFC00FFFFFFFFFFFFF000FFFFFFFFFFFF000040 | |
| 1338 | −3E7DBD4A>I<00000007FFC0000E000000FFFFFC001E000007FFFFFF003E00003FFFFFFF | |
| 1339 | −C07E0000FFFFFFFFE1FE0003FFFF803FFBFE0007FFF80003FFFE000FFFC00000FFFE003F | |
| 1340 | −FF0000007FFE007FFE0000001FFE00FFF80000000FFE01FFF000000007FE03FFE0000000 | |
| 1341 | −07FE03FFC000000003FE07FFC000000001FE0FFF8000000001FE0FFF8000000000FE1FFF | |
| 1342 | −0000000000FE1FFF00000000007E3FFF00000000007E3FFE00000000007E3FFE00000000 | |
| 1343 | −003E7FFE00000000003E7FFE00000000003E7FFE00000000003E7FFC000000000000FFFC | |
| 1344 | −000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC00000000 | |
| 1345 | −0000FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC | |
| 1346 | −000000000000FFFC000000000000FFFC0000000000007FFC0000000000007FFE00000000 | |
| 1347 | −00007FFE00000000003E7FFE00000000003E3FFE00000000003E3FFE00000000003E3FFF | |
| 1348 | −00000000003E1FFF00000000007E1FFF00000000007C0FFF80000000007C0FFF80000000 | |
| 1349 | −00FC07FFC000000000F803FFE000000001F803FFE000000001F001FFF000000003F000FF | |
| 1350 | −F800000007E0007FFE0000000FC0003FFF0000003F80000FFFC00000FF000007FFF80003 | |
| 1351 | −FE000003FFFF801FFC000000FFFFFFFFF80000003FFFFFFFE000000007FFFFFF80000000 | |
| 1352 | −00FFFFFC000000000007FFC000003F407ABE4C>I<FFFFFFFFFFF8000000FFFFFFFFFFFF | |
| 1353 | −800000FFFFFFFFFFFFF00000FFFFFFFFFFFFFC0000FFFFFFFFFFFFFF0000003FFC00007F | |
| 1354 | −FFC000003FFC000007FFE000003FFC000001FFF000003FFC0000007FF800003FFC000000 | |
| 1355 | −3FFC00003FFC0000001FFE00003FFC0000000FFF00003FFC00000007FF80003FFC000000 | |
| 1356 | −07FF80003FFC00000003FFC0003FFC00000003FFC0003FFC00000001FFE0003FFC000000 | |
| 1357 | −01FFE0003FFC00000001FFF0003FFC00000000FFF0003FFC00000000FFF0003FFC000000 | |
| 1358 | −00FFF8003FFC00000000FFF8003FFC00000000FFF8003FFC00000000FFF8003FFC000000 | |
| 1359 | −00FFFC003FFC00000000FFFC003FFC00000000FFFC003FFC00000000FFFC003FFC000000 | |
| 1360 | −00FFFC003FFC000000007FFC003FFC000000007FFC003FFC000000007FFC003FFC000000 | |
| 1361 | −00FFFC003FFC00000000FFFC003FFC00000000FFFC003FFC00000000FFFC003FFC000000 | |
| 1362 | −00FFFC003FFC00000000FFF8003FFC00000000FFF8003FFC00000000FFF8003FFC000000 | |
| 1363 | −00FFF8003FFC00000000FFF0003FFC00000000FFF0003FFC00000001FFF0003FFC000000 | |
| 1364 | −01FFE0003FFC00000001FFE0003FFC00000003FFC0003FFC00000003FFC0003FFC000000 | |
| 1365 | −07FF80003FFC0000000FFF00003FFC0000001FFF00003FFC0000003FFE00003FFC000000 | |
| 1366 | −7FFC00003FFC000001FFF800003FFC000007FFE000003FFC00007FFFC000FFFFFFFFFFFF | |
| 1367 | −FF8000FFFFFFFFFFFFFE0000FFFFFFFFFFFFF80000FFFFFFFFFFFFC00000FFFFFFFFFFF8 | |
| 1368 | −000000463E7DBD50>I<FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFF | |
| 1369 | −FFFFFFFFFF00FFFFFFFFFFFFFF80003FFE00003FFF80003FFE000007FF80003FFE000001 | |
| 1370 | −FF80003FFE000000FF80003FFE0000003F80003FFE0000003F80003FFE0000001F80003F | |
| 1371 | −FE0000000FC0003FFE0000000FC0003FFE0000000FC0003FFE00000007C0003FFE0007C0 | |
| 1372 | −07C0003FFE0007C007C0003FFE0007C007C0003FFE0007C003E0003FFE0007C003E0003F | |
| 1373 | −FE0007C003E0003FFE000FC003E0003FFE000FC00000003FFE001FC00000003FFE003FC0 | |
| 1374 | −0000003FFE00FFC00000003FFFFFFFC00000003FFFFFFFC00000003FFFFFFFC00000003F | |
| 1375 | −FFFFFFC00000003FFFFFFFC00000003FFE00FFC00000003FFE003FC00000003FFE001FC0 | |
| 1376 | −0000003FFE000FC0007C003FFE000FC0007C003FFE0007C0007C003FFE0007C000F8003F | |
| 1377 | −FE0007C000F8003FFE0007C000F8003FFE0007C000F8003FFE0007C000F8003FFE000000 | |
| 1378 | −01F8003FFE00000001F8003FFE00000001F0003FFE00000003F0003FFE00000003F0003F | |
| 1379 | −FE00000007F0003FFE00000007F0003FFE0000000FF0003FFE0000001FE0003FFE000000 | |
| 1380 | −3FE0003FFE000000FFE0003FFE000003FFE0003FFE00003FFFE0FFFFFFFFFFFFFFE0FFFF | |
| 1381 | −FFFFFFFFFFE0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC03E3D7DBC45> | |
| 1382 | −I<FFFFFFFFFFFFFE00FFFFFFFFFFFFFE00FFFFFFFFFFFFFE00FFFFFFFFFFFFFE00FFFFFF | |
| 1383 | −FFFFFFFF00003FFE00007FFF00003FFE00000FFF00003FFE000003FF00003FFE000000FF | |
| 1384 | −00003FFE0000007F00003FFE0000007F00003FFE0000003F00003FFE0000001F80003FFE | |
| 1385 | −0000001F80003FFE0000001F80003FFE0000000F80003FFE0000000F80003FFE0007C00F | |
| 1386 | −80003FFE0007C00F80003FFE0007C007C0003FFE0007C007C0003FFE0007C007C0003FFE | |
| 1387 | −0007C007C0003FFE000FC00000003FFE000FC00000003FFE001FC00000003FFE003FC000 | |
| 1388 | −00003FFE00FFC00000003FFFFFFFC00000003FFFFFFFC00000003FFFFFFFC00000003FFF | |
| 1389 | −FFFFC00000003FFFFFFFC00000003FFE00FFC00000003FFE003FC00000003FFE001FC000 | |
| 1390 | −00003FFE000FC00000003FFE000FC00000003FFE0007C00000003FFE0007C00000003FFE | |
| 1391 | −0007C00000003FFE0007C00000003FFE0007C00000003FFE0007C00000003FFE00000000 | |
| 1392 | −00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE | |
| 1393 | −0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000 | |
| 1394 | −00003FFE0000000000003FFE0000000000FFFFFFFFE0000000FFFFFFFFE0000000FFFFFF | |
| 1395 | −FFE0000000FFFFFFFFE0000000FFFFFFFFE00000003A3D7DBC42>I<FFFFFFFF80FFFFFF | |
| 1396 | −FF80FFFFFFFF80FFFFFFFF80FFFFFFFF80003FFE0000003FFE0000003FFE0000003FFE00 | |
| 1397 | −00003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000 | |
| 1398 | −003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE000000 | |
| 1399 | −3FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003F | |
| 1400 | −FE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE | |
| 1401 | −0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE00 | |
| 1402 | −00003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000 | |
| 1403 | −003FFE0000003FFE0000003FFE0000003FFE0000003FFE0000FFFFFFFF80FFFFFFFF80FF | |
| 1404 | −FFFFFF80FFFFFFFF80FFFFFFFF80213E7DBD28>73 D<FFFFFFFFE00000FFFFFFFFE00000 | |
| 1405 | −FFFFFFFFE00000FFFFFFFFE00000FFFFFFFFE00000003FFE00000000003FFE0000000000 | |
| 1406 | −3FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003F | |
| 1407 | −FE00000000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE | |
| 1408 | −00000000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE00 | |
| 1409 | −000000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE0000 | |
| 1410 | −0000003FFE00000000003FFE00000000003FFE00000000003FFE00000000003FFE000000 | |
| 1411 | −00003FFE00000000003FFE00000000003FFE00000000003FFE0000003E003FFE0000003E | |
| 1412 | −003FFE0000003E003FFE0000003E003FFE0000007E003FFE0000007C003FFE0000007C00 | |
| 1413 | −3FFE0000007C003FFE0000007C003FFE000000FC003FFE000000FC003FFE000001FC003F | |
| 1414 | −FE000001FC003FFE000003F8003FFE000003F8003FFE000007F8003FFE00000FF8003FFE | |
| 1415 | −00001FF8003FFE00007FF8003FFE0001FFF8003FFE000FFFF8FFFFFFFFFFFFF8FFFFFFFF | |
| 1416 | −FFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0373E7DBD3F>76 | |
| 1417 | −D<0000003FFF00000000000003FFFFF000000000001FFFFFFE00000000007FFFFFFF8000 | |
| 1418 | −000001FFF807FFE000000007FFC000FFF80000000FFF00003FFC0000003FFC00000FFF00 | |
| 1419 | −00007FF8000007FF800000FFF0000003FFC00001FFE0000001FFE00001FFC0000000FFE0 | |
| 1420 | −0003FFC0000000FFF00007FF800000007FF80007FF800000007FF8000FFF000000003FFC | |
| 1421 | −001FFF000000003FFE001FFF000000003FFE001FFE000000001FFE003FFE000000001FFF | |
| 1422 | −003FFE000000001FFF003FFE000000001FFF007FFC000000000FFF807FFC000000000FFF | |
| 1423 | −807FFC000000000FFF807FFC000000000FFF80FFFC000000000FFFC0FFFC000000000FFF | |
| 1424 | −C0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFF | |
| 1425 | −C0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFF | |
| 1426 | −C0FFFC000000000FFFC0FFFC000000000FFFC0FFFC000000000FFFC07FFC000000000FFF | |
| 1427 | −807FFE000000001FFF807FFE000000001FFF807FFE000000001FFF803FFE000000001FFF | |
| 1428 | −003FFE000000001FFF003FFF000000003FFF001FFF000000003FFE001FFF000000003FFE | |
| 1429 | −000FFF800000007FFC000FFF800000007FFC0007FFC0000000FFF80003FFE0000001FFF0 | |
| 1430 | −0003FFE0000001FFF00001FFF0000003FFE00000FFF8000007FFC000007FFC00000FFF80 | |
| 1431 | −00003FFF00003FFF0000001FFFC000FFFE00000007FFF807FFF800000001FFFFFFFFE000 | |
| 1432 | −000000FFFFFFFFC0000000001FFFFFFE000000000003FFFFF00000000000003FFF000000 | |
| 1433 | −0042407ABE4F>79 D<FFFFFFFFFFF00000FFFFFFFFFFFF0000FFFFFFFFFFFFC000FFFFFF | |
| 1434 | −FFFFFFF000FFFFFFFFFFFFFC00003FFC0000FFFE00003FFC00001FFF00003FFC00000FFF | |
| 1435 | −80003FFC000007FFC0003FFC000003FFE0003FFC000003FFE0003FFC000001FFF0003FFC | |
| 1436 | −000001FFF0003FFC000001FFF0003FFC000001FFF8003FFC000001FFF8003FFC000001FF | |
| 1437 | −F8003FFC000001FFF8003FFC000001FFF8003FFC000001FFF8003FFC000001FFF8003FFC | |
| 1438 | −000001FFF8003FFC000001FFF0003FFC000001FFF0003FFC000001FFF0003FFC000003FF | |
| 1439 | −E0003FFC000003FFC0003FFC000007FFC0003FFC00000FFF80003FFC00003FFF00003FFC | |
| 1440 | −0000FFFE00003FFFFFFFFFF800003FFFFFFFFFF000003FFFFFFFFF8000003FFFFFFFFC00 | |
| 1441 | −00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE | |
| 1442 | −0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000 | |
| 1443 | −00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE | |
| 1444 | −0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE00000000 | |
| 1445 | −00003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000FFFFFF | |
| 1446 | −FF80000000FFFFFFFF80000000FFFFFFFF80000000FFFFFFFF80000000FFFFFFFF800000 | |
| 1447 | −003D3E7DBD47>I<FFFFFFFFFF8000000000FFFFFFFFFFFC00000000FFFFFFFFFFFF8000 | |
| 1448 | −0000FFFFFFFFFFFFF0000000FFFFFFFFFFFFF8000000003FFC0001FFFE000000003FFC00 | |
| 1449 | −003FFF000000003FFC00000FFF800000003FFC000007FFC00000003FFC000003FFE00000 | |
| 1450 | −003FFC000003FFE00000003FFC000003FFF00000003FFC000001FFF00000003FFC000001 | |
| 1451 | −FFF80000003FFC000001FFF80000003FFC000001FFF80000003FFC000001FFF80000003F | |
| 1452 | −FC000001FFF80000003FFC000001FFF80000003FFC000001FFF80000003FFC000001FFF0 | |
| 1453 | −0000003FFC000001FFF00000003FFC000003FFF00000003FFC000003FFE00000003FFC00 | |
| 1454 | −0003FFC00000003FFC000007FF800000003FFC00000FFF000000003FFC00003FFE000000 | |
| 1455 | −003FFC0001FFFC000000003FFFFFFFFFF0000000003FFFFFFFFFC0000000003FFFFFFFFE | |
| 1456 | −00000000003FFFFFFFFF80000000003FFC000FFFC0000000003FFC0001FFF0000000003F | |
| 1457 | −FC0000FFF8000000003FFC00007FFC000000003FFC00007FFC000000003FFC00003FFE00 | |
| 1458 | −0000003FFC00003FFE000000003FFC00001FFF000000003FFC00001FFF000000003FFC00 | |
| 1459 | −001FFF000000003FFC00001FFF000000003FFC00001FFF000000003FFC00001FFF000000 | |
| 1460 | −003FFC00001FFF800000003FFC00001FFF800000003FFC00001FFF800000003FFC00001F | |
| 1461 | −FF800000003FFC00001FFF800000003FFC00001FFF800000003FFC00001FFF8007C0003F | |
| 1462 | −FC00001FFFC007C0003FFC00001FFFC007C0003FFC00000FFFC00FC0003FFC00000FFFE0 | |
| 1463 | −0F80FFFFFFFF0007FFF01F80FFFFFFFF0003FFFC3F00FFFFFFFF0001FFFFFF00FFFFFFFF | |
| 1464 | −00007FFFFE00FFFFFFFF00001FFFF80000000000000001FFE0004A3F7DBD4E>82 | |
| 1465 | −D<0003FFC001C0001FFFF803C0007FFFFE07C001FFFFFF8FC003FFFFFFDFC007FF00FFFF | |
| 1466 | −C00FF8000FFFC01FF00003FFC01FE00001FFC03FC000007FC07FC000007FC07F8000003F | |
| 1467 | −C07F8000001FC0FF8000001FC0FF8000000FC0FF8000000FC0FFC000000FC0FFC0000007 | |
| 1468 | −C0FFC0000007C0FFE0000007C0FFF0000007C0FFFC00000000FFFF800000007FFFF80000 | |
| 1469 | −007FFFFFC000003FFFFFFC00003FFFFFFF80001FFFFFFFE0001FFFFFFFF8000FFFFFFFFC | |
| 1470 | −0007FFFFFFFE0003FFFFFFFF0001FFFFFFFF80007FFFFFFFC0003FFFFFFFC00007FFFFFF | |
| 1471 | −E000007FFFFFE0000007FFFFF00000003FFFF000000003FFF000000000FFF8000000007F | |
| 1472 | −F8000000003FF8780000003FF8F80000001FF8F80000001FF8F80000000FF8F80000000F | |
| 1473 | −F8FC0000000FF8FC0000000FF8FC0000000FF0FE0000000FF0FE0000001FF0FF0000001F | |
| 1474 | −E0FF8000003FE0FFE000003FC0FFF800007F80FFFE0001FF80FFFFE007FF00FEFFFFFFFE | |
| 1475 | −00FC7FFFFFF800F81FFFFFF000F003FFFFC000E0003FFE00002D407ABE3A>I<3FFFFFFF | |
| 1476 | −FFFFFFFC3FFFFFFFFFFFFFFC3FFFFFFFFFFFFFFC3FFFFFFFFFFFFFFC3FFFFFFFFFFFFFFC | |
| 1477 | −3FFE003FFE003FFC7FF0003FFE000FFE7FC0003FFE0003FE7F80003FFE0001FE7F00003F | |
| 1478 | −FE0000FE7F00003FFE00007E7E00003FFE00007E7E00003FFE00007E7C00003FFE00003E | |
| 1479 | −7C00003FFE00003E7C00003FFE00003E7C00003FFE00003EFC00003FFE00003FF800003F | |
| 1480 | −FE00001FF800003FFE00001FF800003FFE00001FF800003FFE00001FF800003FFE00001F | |
| 1481 | −0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F | |
| 1482 | −FE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000 | |
| 1483 | −0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F | |
| 1484 | −FE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000 | |
| 1485 | −0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F | |
| 1486 | −FE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003FFE000000 | |
| 1487 | −0000003FFE0000000000003FFE0000000000003FFE0000000000003FFE0000000000003F | |
| 1488 | −FE0000000000003FFE000000000FFFFFFFFFF800000FFFFFFFFFF800000FFFFFFFFFF800 | |
| 1489 | −000FFFFFFFFFF800000FFFFFFFFFF800403D7CBC49>I<00700000E000F80001F001F800 | |
| 1490 | −03F003F00007E003E00007C007C0000F800F80001F001F00003E001F00003E003E00007C | |
| 1491 | −003C000078003C000078007C0000F800780000F000780000F000F80001F000F00001E000 | |
| 1492 | −F00001E000F7E001EFC0FFF001FFE0FFF801FFF0FFFC01FFF8FFFE01FFFCFFFE01FFFCFF | |
| 1493 | −FE01FFFC7FFE00FFFC7FFE00FFFC7FFE00FFFC3FFC007FF81FF8003FF00FF0001FE007E0 | |
| 1494 | −000FC0262073BE37>92 D<0007FFC00000003FFFF8000001FFFFFF000003FFFFFF800007 | |
| 1495 | −FE03FFC0000FF800FFE0000FFC003FF0001FFE003FF8001FFE001FFC001FFE001FFC001F | |
| 1496 | −FE001FFC001FFE000FFE001FFE000FFE000FFC000FFE0007F8000FFE0001E0000FFE0000 | |
| 1497 | −00000FFE000000003FFE000000FFFFFE00000FFFFFFE00007FFFFFFE0001FFFE0FFE0003 | |
| 1498 | −FFE00FFE000FFF800FFE001FFE000FFE003FFC000FFE003FF8000FFE007FF0000FFE00FF | |
| 1499 | −F0000FFE00FFE0000FFE00FFE0000FFE00FFE0000FFE00FFE0000FFE00FFE0001FFE00FF | |
| 1500 | −F0001FFE007FF0003FFE007FF8007BFF803FFC00FBFFFE1FFF07F3FFFE0FFFFFE1FFFE03 | |
| 1501 | −FFFF80FFFE00FFFF003FFE001FF80000002F2B7DA933>97 D<00FF0000000000FFFF0000 | |
| 1502 | −000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF000000000007FF000000 | |
| 1503 | −000003FF000000000003FF000000000003FF000000000003FF000000000003FF00000000 | |
| 1504 | −0003FF000000000003FF000000000003FF000000000003FF000000000003FF0000000000 | |
| 1505 | −03FF000000000003FF000000000003FF000000000003FF000000000003FF000000000003 | |
| 1506 | −FF00FFE0000003FF07FFFC000003FF1FFFFF800003FF7FFFFFC00003FFFF81FFF00003FF | |
| 1507 | −FC003FF80003FFF0001FFC0003FFE0000FFE0003FFC00007FE0003FF800007FF0003FF80 | |
| 1508 | −0003FF8003FF800003FF8003FF800003FFC003FF800001FFC003FF800001FFC003FF8000 | |
| 1509 | −01FFC003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003FF800001 | |
| 1510 | −FFE003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FF | |
| 1511 | −E003FF800001FFC003FF800001FFC003FF800003FFC003FF800003FF8003FF800003FF80 | |
| 1512 | −03FF800003FF0003FF800007FF0003FFC00007FE0003FFE0000FFC0003FFF0001FF80003 | |
| 1513 | −FFFC007FF00003FCFF01FFE00003F87FFFFFC00003F01FFFFF000003E007FFFC00000000 | |
| 1514 | −01FFC0000033407DBE3A>I<00007FF0000007FFFF00001FFFFFC0007FFFFFE000FFF01F | |
| 1515 | −F001FF800FF803FF001FF807FE003FFC0FFE003FFC1FFC003FFC1FFC003FFC3FF8003FFC | |
| 1516 | −3FF8003FFC7FF8001FF87FF0000FF07FF00003C0FFF0000000FFF0000000FFF0000000FF | |
| 1517 | −F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0 | |
| 1518 | −0000007FF00000007FF80000007FF80000007FF80000003FF800003E3FFC00003E1FFC00 | |
| 1519 | −007E0FFE00007C07FF0000FC07FF8001F803FFC003F000FFF81FE0007FFFFFC0001FFFFF | |
| 1520 | −800007FFFE0000007FF000272B7DA92E>I<0000000007F80000000007FFF80000000007 | |
| 1521 | −FFF80000000007FFF80000000007FFF80000000007FFF800000000003FF800000000001F | |
| 1522 | −F800000000001FF800000000001FF800000000001FF800000000001FF800000000001FF8 | |
| 1523 | −00000000001FF800000000001FF800000000001FF800000000001FF800000000001FF800 | |
| 1524 | −000000001FF800000000001FF800000000001FF800000000001FF80000007FF01FF80000 | |
| 1525 | −07FFFE1FF800001FFFFF9FF800007FFFFFDFF80000FFF01FFFF80001FFC003FFF80003FF | |
| 1526 | −0001FFF80007FE00007FF8000FFC00007FF8001FFC00003FF8001FF800003FF8003FF800 | |
| 1527 | −003FF8003FF800003FF8007FF800003FF8007FF000003FF8007FF000003FF800FFF00000 | |
| 1528 | −3FF800FFF000003FF800FFF000003FF800FFF000003FF800FFF000003FF800FFF000003F | |
| 1529 | −F800FFF000003FF800FFF000003FF800FFF000003FF800FFF000003FF8007FF000003FF8 | |
| 1530 | −007FF000003FF8007FF000003FF8007FF800003FF8003FF800003FF8003FF800003FF800 | |
| 1531 | −1FFC00007FF8000FFC00007FF8000FFE0000FFF80007FF0003FFFC0003FF8007FFFFE001 | |
| 1532 | −FFF03FFFFFE0007FFFFFBFFFE0003FFFFF3FFFE00007FFFC3FFFE00000FFE03FE0003340 | |
| 1533 | −7DBE3A>I<0000FFF000000007FFFE0000001FFFFF8000007FFFFFC00000FFE07FE00001 | |
| 1534 | −FF801FF00003FF000FF80007FE0007FC000FFC0003FE001FFC0003FE001FF80001FE003F | |
| 1535 | −F80001FF003FF80001FF007FF00001FF007FF00000FF807FF00000FF80FFF00000FF80FF | |
| 1536 | −F00000FF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFF000000000FF | |
| 1537 | −F000000000FFF000000000FFF000000000FFF0000000007FF0000000007FF0000000007F | |
| 1538 | −F8000000003FF8000000003FF800000F801FFC00000F801FFC00001F800FFE00001F0007 | |
| 1539 | −FF00003F0003FF80007E0001FFE001FC0000FFF80FF800003FFFFFF000001FFFFFC00000 | |
| 1540 | −03FFFF000000007FF80000292B7DA930>I<000007FE0000007FFF800001FFFFC00007FF | |
| 1541 | −FFE0000FFE3FF0001FF03FF0003FE07FF8007FC07FF800FFC07FF800FF807FF800FF807F | |
| 1542 | −F801FF003FF001FF001FE001FF000FC001FF00000001FF00000001FF00000001FF000000 | |
| 1543 | −01FF00000001FF00000001FF00000001FF00000001FF00000001FF000000FFFFFFE000FF | |
| 1544 | −FFFFE000FFFFFFE000FFFFFFE000FFFFFFE00001FF80000001FF80000001FF80000001FF | |
| 1545 | −80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80 | |
| 1546 | −000001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF8000 | |
| 1547 | −0001FF80000001FF80000001FF80000001FF80000001FF80000001FF80000001FF800000 | |
| 1548 | −01FF80000001FF80000001FF80000001FF80000001FF8000007FFFFF80007FFFFF80007F | |
| 1549 | −FFFF80007FFFFF80007FFFFF800025407DBF20>I<0003FF8007F0003FFFF83FF8007FFF | |
| 1550 | −FCFFFC01FFFFFFFFFE03FF83FFF9FE07FC007FC3FE0FF8003FE1FE1FF8003FF1FC1FF000 | |
| 1551 | −1FF0F81FF0001FF0003FF0001FF8003FF0001FF8003FF0001FF8003FF0001FF8003FF000 | |
| 1552 | −1FF8003FF0001FF8003FF0001FF8001FF0001FF0001FF0001FF0001FF8003FF0000FF800 | |
| 1553 | −3FE00007FC007FC00003FF83FF800003FFFFFF000007FFFFFC000007BFFFF800000F03FF | |
| 1554 | −8000000F00000000000F00000000001F80000000001F80000000001FC0000000001FF000 | |
| 1555 | −0000000FFFFFFF00000FFFFFFFF0000FFFFFFFFC0007FFFFFFFF0007FFFFFFFF8003FFFF | |
| 1556 | −FFFFC001FFFFFFFFE007FFFFFFFFE01FFFFFFFFFF03FE00003FFF07FC000003FF07F8000 | |
| 1557 | −001FF8FF8000000FF8FF00000007F8FF00000007F8FF00000007F8FF00000007F8FF0000 | |
| 1558 | −0007F87F8000000FF07FC000001FF03FC000001FE03FF000007FE01FFC0001FFC007FF80 | |
| 1559 | −0FFF0003FFFFFFFE0000FFFFFFF800003FFFFFE0000001FFFC00002F3D7DA834>I<00FF | |
| 1560 | −0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF00 | |
| 1561 | −0000000007FF000000000003FF000000000003FF000000000003FF000000000003FF0000 | |
| 1562 | −00000003FF000000000003FF000000000003FF000000000003FF000000000003FF000000 | |
| 1563 | −000003FF000000000003FF000000000003FF000000000003FF000000000003FF00000000 | |
| 1564 | −0003FF000000000003FF001FF8000003FF00FFFE000003FF03FFFF800003FF07FFFFC000 | |
| 1565 | −03FF0FE0FFE00003FF1F007FE00003FF3C007FF00003FF78007FF00003FFF0003FF80003 | |
| 1566 | −FFE0003FF80003FFE0003FF80003FFC0003FF80003FFC0003FF80003FFC0003FF80003FF | |
| 1567 | −80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80 | |
| 1568 | −003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8000 | |
| 1569 | −3FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003F | |
| 1570 | −F80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8 | |
| 1571 | −0003FF80003FF800FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0 | |
| 1572 | −FFFFFE0FFFFFE0333F7CBE3A>I<01F80003FC0007FE000FFF001FFF801FFF801FFF801F | |
| 1573 | −FF801FFF801FFF800FFF0007FE0003FC0001F80000000000000000000000000000000000 | |
| 1574 | −000000000000000000000000FF00FFFF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003 | |
| 1575 | −FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003 | |
| 1576 | −FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003 | |
| 1577 | −FF0003FF0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8FFFFF815407CBF1D>I<00FF00 | |
| 1578 | −00000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF0000 | |
| 1579 | −00000007FF000000000003FF000000000003FF000000000003FF000000000003FF000000 | |
| 1580 | −000003FF000000000003FF000000000003FF000000000003FF000000000003FF00000000 | |
| 1581 | −0003FF000000000003FF000000000003FF000000000003FF000000000003FF0000000000 | |
| 1582 | −03FF000000000003FF000000000003FF000FFFFE0003FF000FFFFE0003FF000FFFFE0003 | |
| 1583 | −FF000FFFFE0003FF000FFFFE0003FF0001FE000003FF0003FC000003FF0007F0000003FF | |
| 1584 | −001FE0000003FF003FC0000003FF007F80000003FF00FF00000003FF03FC00000003FF07 | |
| 1585 | −F800000003FF0FF000000003FF1FF000000003FF7FF800000003FFFFFC00000003FFFFFC | |
| 1586 | −00000003FFFFFE00000003FFFFFF00000003FFE7FF80000003FFC3FFC0000003FF81FFC0 | |
| 1587 | −000003FF00FFE0000003FF00FFF0000003FF007FF8000003FF003FFC000003FF001FFC00 | |
| 1588 | −0003FF000FFE000003FF000FFF000003FF0007FF800003FF0003FFC00003FF0001FFC000 | |
| 1589 | −03FF0000FFE000FFFFFC07FFFFC0FFFFFC07FFFFC0FFFFFC07FFFFC0FFFFFC07FFFFC0FF | |
| 1590 | −FFFC07FFFFC0323F7DBE37>107 D<00FF00FFFF00FFFF00FFFF00FFFF00FFFF0007FF00 | |
| 1591 | −03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00 | |
| 1592 | −03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00 | |
| 1593 | −03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00 | |
| 1594 | −03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00 | |
| 1595 | −03FF0003FF0003FF00FFFFFCFFFFFCFFFFFCFFFFFCFFFFFC163F7CBE1D>I<00FF001FF8 | |
| 1596 | −0000FFC00000FFFF00FFFF0007FFF80000FFFF03FFFFC01FFFFE0000FFFF07FFFFE03FFF | |
| 1597 | −FF0000FFFF0FE0FFF07F07FF8000FFFF1F003FF0F801FF800007FF3E003FF9F001FFC000 | |
| 1598 | −03FF78003FFBC001FFC00003FFF0001FFF8000FFE00003FFF0001FFF8000FFE00003FFE0 | |
| 1599 | −001FFF0000FFE00003FFC0001FFE0000FFE00003FFC0001FFE0000FFE00003FFC0001FFE | |
| 1600 | −0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FF | |
| 1601 | −E00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003 | |
| 1602 | −FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF8000 | |
| 1603 | −1FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC00 | |
| 1604 | −00FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE0 | |
| 1605 | −0003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE00003FF | |
| 1606 | −80001FFC0000FFE00003FF80001FFC0000FFE00003FF80001FFC0000FFE000FFFFFE07FF | |
| 1607 | −FFF03FFFFF80FFFFFE07FFFFF03FFFFF80FFFFFE07FFFFF03FFFFF80FFFFFE07FFFFF03F | |
| 1608 | −FFFF80FFFFFE07FFFFF03FFFFF8051297CA858>I<00FF001FF80000FFFF00FFFE0000FF | |
| 1609 | −FF03FFFF8000FFFF07FFFFC000FFFF0FE0FFE000FFFF1F007FE00007FF3C007FF00003FF | |
| 1610 | −78007FF00003FFF0003FF80003FFE0003FF80003FFE0003FF80003FFC0003FF80003FFC0 | |
| 1611 | −003FF80003FFC0003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8000 | |
| 1612 | −3FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003F | |
| 1613 | −F80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8 | |
| 1614 | −0003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF800 | |
| 1615 | −03FF80003FF80003FF80003FF80003FF80003FF800FFFFFE0FFFFFE0FFFFFE0FFFFFE0FF | |
| 1616 | −FFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE0FFFFFE033297CA83A>I<00007FF000000003FF | |
| 1617 | −FE0000001FFFFFC000007FFFFFF00000FFE03FF80001FF800FFC0003FE0003FE0007FC00 | |
| 1618 | −01FF000FFC0001FF801FF80000FFC01FF80000FFC03FF80000FFE03FF000007FE07FF000 | |
| 1619 | −007FF07FF000007FF07FF000007FF07FF000007FF0FFF000007FF8FFF000007FF8FFF000 | |
| 1620 | −007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000 | |
| 1621 | −007FF8FFF000007FF87FF000007FF07FF000007FF07FF000007FF07FF000007FF03FF800 | |
| 1622 | −00FFE03FF80000FFE01FF80000FFC00FFC0001FF800FFC0001FF8007FE0003FF0003FF80 | |
| 1623 | −0FFE0001FFE03FFC00007FFFFFF000001FFFFFC0000007FFFF000000007FF000002D2B7D | |
| 1624 | −A934>I<00FF00FFE00000FFFF07FFFC0000FFFF1FFFFF8000FFFF7FFFFFC000FFFFFF81 | |
| 1625 | −FFF000FFFFFC007FF80003FFF0003FFC0003FFE0001FFE0003FFC0000FFE0003FF800007 | |
| 1626 | −FF0003FF800007FF8003FF800007FF8003FF800003FFC003FF800003FFC003FF800003FF | |
| 1627 | −C003FF800001FFC003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE0 | |
| 1628 | −03FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003FF800001FFE003 | |
| 1629 | −FF800001FFE003FF800003FFC003FF800003FFC003FF800003FFC003FF800003FF8003FF | |
| 1630 | −800007FF8003FF800007FF0003FF80000FFF0003FFC0000FFE0003FFE0001FFC0003FFF0 | |
| 1631 | −003FF80003FFFC00FFF00003FFFF03FFE00003FFFFFFFFC00003FF9FFFFF000003FF87FF | |
| 1632 | −FC000003FF81FFC0000003FF800000000003FF800000000003FF800000000003FF800000 | |
| 1633 | −000003FF800000000003FF800000000003FF800000000003FF800000000003FF80000000 | |
| 1634 | −0003FF800000000003FF800000000003FF8000000000FFFFFE00000000FFFFFE00000000 | |
| 1635 | −FFFFFE00000000FFFFFE00000000FFFFFE00000000333B7DA83A>I<01FE01FE00FFFE07 | |
| 1636 | −FF80FFFE0FFFE0FFFE1FFFF0FFFE3F1FF0FFFE7C3FF807FEF83FF803FEF03FF803FFE03F | |
| 1637 | −F803FFE03FF803FFC01FF003FFC00FE003FF8007C003FF80000003FF80000003FF800000 | |
| 1638 | −03FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003 | |
| 1639 | −FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF | |
| 1640 | −00000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFF0000FFFFFF | |
| 1641 | −0000FFFFFF0000FFFFFF0000FFFFFF000025297DA82B>114 D<003FFC1E0001FFFFBE00 | |
| 1642 | −07FFFFFE000FFFFFFE001FF00FFE003F8001FE007F0000FE007E00007E007E00007E00FE | |
| 1643 | −00003E00FE00003E00FF00003E00FF80003E00FFC0000000FFF8000000FFFFE000007FFF | |
| 1644 | −FF00007FFFFFC0003FFFFFF0001FFFFFF8000FFFFFFC0007FFFFFE0003FFFFFF0000FFFF | |
| 1645 | −FF80001FFFFF800000FFFF80000007FFC0000000FFC07800007FC0F800003FC0F800001F | |
| 1646 | −C0FC00001FC0FC00001FC0FE00001FC0FE00001F80FF00003F80FF80003F00FFE000FF00 | |
| 1647 | −FFF803FE00FFFFFFFC00FFFFFFF000F87FFFC000E00FFE0000222B7DA929>I<0007C000 | |
| 1648 | −0007C0000007C0000007C0000007C000000FC000000FC000000FC000000FC000001FC000 | |
| 1649 | −001FC000001FC000003FC000007FC000007FC00000FFC00001FFC00007FFC0001FFFFFFE | |
| 1650 | −FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE01FFC00001FFC00001FFC00001FFC00001FFC000 | |
| 1651 | −01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 | |
| 1652 | −01FFC00001FFC00001FFC00001FFC00001FFC00001FFC01F01FFC01F01FFC01F01FFC01F | |
| 1653 | −01FFC01F01FFC01F01FFC01F01FFC01F01FFC01F00FFE03E00FFE03E007FE07E007FF8FC | |
| 1654 | −003FFFF8001FFFF00007FFE00000FF80203B7EB929>I<00FF80000FF800FFFF800FFFF8 | |
| 1655 | −00FFFF800FFFF800FFFF800FFFF800FFFF800FFFF800FFFF800FFFF80007FF80007FF800 | |
| 1656 | −03FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003 | |
| 1657 | −FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF | |
| 1658 | −80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80 | |
| 1659 | −003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF8000 | |
| 1660 | −3FF80003FF80003FF80003FF80003FF80003FF80007FF80003FF80007FF80003FF80007F | |
| 1661 | −F80003FF8000FFF80001FF8001FFF80001FF8003FFFC0000FFC007DFFFE000FFF01F9FFF | |
| 1662 | −E0007FFFFF1FFFE0003FFFFE1FFFE0000FFFF81FFFE00001FFE01FE000332A7CA83A>I< | |
| 1663 | −FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC001 | |
| 1664 | −FFC00003E00001FFE00007E00001FFE00007E00000FFE00007C00000FFF0000FC000007F | |
| 1665 | −F0000F8000007FF8001F8000003FF8001F0000003FFC003F0000001FFC003E0000001FFE | |
| 1666 | −007E0000000FFE007C0000000FFF00FC0000000FFF00FC00000007FF00F800000007FF81 | |
| 1667 | −F800000003FF81F000000003FFC3F000000001FFC3E000000001FFE7E000000000FFE7C0 | |
| 1668 | −00000000FFFFC0000000007FFF80000000007FFF80000000007FFF80000000003FFF0000 | |
| 1669 | −0000003FFF00000000001FFE00000000001FFE00000000000FFC00000000000FFC000000 | |
| 1670 | −000007F8000000000007F8000000000003F0000000000003F000000032287EA737>I<FF | |
| 1671 | −FFFC3FFFFC03FFFEFFFFFC3FFFFC03FFFEFFFFFC3FFFFC03FFFEFFFFFC3FFFFC03FFFEFF | |
| 1672 | −FFFC3FFFFC03FFFE03FF8000FFC0000F8003FFC000FFC0001F8001FFC0007FC0001F0001 | |
| 1673 | −FFE000FFE0003F0000FFE000FFE0003E0000FFE000FFF0003E0000FFF001FFF0007E0000 | |
| 1674 | −7FF001FFF0007C00007FF803FFF800FC00003FF803EFF800F800003FF803EFFC00F80000 | |
| 1675 | −3FFC07EFFC01F800001FFC07C7FC01F000001FFE0FC7FE03F000000FFE0F83FE03E00000 | |
| 1676 | −0FFE0F83FF03E000000FFF1F83FF07E0000007FF1F01FF07C0000007FFBF01FF8FC00000 | |
| 1677 | −03FFBE00FF8F80000003FFBE00FFCF80000003FFFE00FFDF80000001FFFC007FDF000000 | |
| 1678 | −01FFFC007FFF00000000FFF8003FFE00000000FFF8003FFE00000000FFF8003FFE000000 | |
| 1679 | −007FF0001FFC000000007FF0001FFC000000003FE0000FF8000000003FE0000FF8000000 | |
| 1680 | −003FE0000FF8000000001FC00007F0000000001FC00007F0000000000F800003E0000047 | |
| 1681 | −287EA74C>I<FFFFFC03FFFF80FFFFFC03FFFF80FFFFFC03FFFF80FFFFFC03FFFF80FFFF | |
| 1682 | −FC03FFFF8000FFE0007F000000FFF000FE0000007FF800FC0000003FFC01F80000001FFE | |
| 1683 | −03F00000000FFE07F000000007FF0FE000000007FF9FC000000003FFFF8000000001FFFF | |
| 1684 | −0000000000FFFE00000000007FFC00000000007FFC00000000003FFC00000000001FFE00 | |
| 1685 | −000000000FFE00000000000FFF00000000001FFF80000000003FFFC0000000007FFFE000 | |
| 1686 | −000000FEFFF000000001FC7FF000000003F83FF800000003F03FFC00000007E01FFE0000 | |
| 1687 | −000FC00FFF0000001FC007FF0000003F8003FF8000007F0003FFC00000FE0001FFE000FF | |
| 1688 | −FFC007FFFFC0FFFFC007FFFFC0FFFFC007FFFFC0FFFFC007FFFFC0FFFFC007FFFFC03228 | |
| 1689 | −7EA737>I<FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC003FFFC0FFFFFC | |
| 1690 | −003FFFC001FFC00003E00001FFE00007E00001FFE00007E00000FFE00007C00000FFF000 | |
| 1691 | −0FC000007FF0000F8000007FF8001F8000003FF8001F0000003FFC003F0000001FFC003E | |
| 1692 | −0000001FFE007E0000000FFE007C0000000FFF00FC0000000FFF00FC00000007FF00F800 | |
| 1693 | −000007FF81F800000003FF81F000000003FFC3F000000001FFC3E000000001FFE7E00000 | |
| 1694 | −0000FFE7C000000000FFFFC0000000007FFF80000000007FFF80000000007FFF80000000 | |
| 1695 | −003FFF00000000003FFF00000000001FFE00000000001FFE00000000000FFC0000000000 | |
| 1696 | −0FFC000000000007F8000000000007F8000000000003F0000000000003F0000000000003 | |
| 1697 | −F0000000000003E0000000000007E0000000000007C00000000E000FC00000003F800F80 | |
| 1698 | −0000007FC01F80000000FFE01F00000000FFE03F00000000FFE03E00000000FFE07E0000 | |
| 1699 | −0000FFE0FC00000000FFC1F8000000007FC3F0000000007E0FE0000000003FFFC0000000 | |
| 1700 | −001FFF80000000000FFE000000000003F80000000000323B7EA737>I | |
| 1701 | −E /Fn 88 127 df<1C007F00FF80FF80FF80FF80FF80FF80FF80FF80FF80FF80FF80FF80 | |
| 1702 | −FF80FF80FF80FF80FF80FF80FF807F007F007F007F007F007F007F007F007F007F007F00 | |
| 1703 | −7F007F007F007F007F007F007F003E00000000000000000000000000000000001C007F00 | |
| 1704 | −7F00FF80FF80FF807F007F001C0009396DB830>33 D<100004007C001F00FE003F80FE00 | |
| 1705 | −3F80FF007F80FF007F80FE003F80FE003F80FE003F80FE003F80FE003F80FE003F80FE00 | |
| 1706 | −3F80FE003F80FE003F80FE003F80FE003F80FE003F80FE003F80FE003F80FE003F80FE00 | |
| 1707 | −3F80FE003F80FE003F807E003F007C001F003C001E0010000400191C75B830>I<0007C0 | |
| 1708 | −07C0000007C007C000000FE00FE000000FE00FE000000FE00FE000000FE00FE000000FE0 | |
| 1709 | −0FE000000FE00FE000000FE00FE000000FE00FE000001FE01FE000001FE01FE000001FC0 | |
| 1710 | −1FC000001FC01FC000001FC01FC0007FFFFFFFFF007FFFFFFFFF00FFFFFFFFFF80FFFFFF | |
| 1711 | −FFFF80FFFFFFFFFF807FFFFFFFFF003FFFFFFFFE00007F807F8000007F807F8000007F00 | |
| 1712 | −7F0000007F007F0000007F007F0000007F007F0000007F007F0000007F007F0000007F00 | |
| 1713 | −7F0000007F007F0000007F007F000000FF00FF000000FF00FF00003FFFFFFFFE007FFFFF | |
| 1714 | −FFFF00FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF007FFFFFFFFF0001FC01 | |
| 1715 | −FC000001FC01FC000001FC01FC000003FC03FC000003FC03FC000003F803F8000003F803 | |
| 1716 | −F8000003F803F8000003F803F8000003F803F8000003F803F8000003F803F8000001F001 | |
| 1717 | −F0000001F001F0000029387DB730>I<000038000000007C00000000FC00000000FC0000 | |
| 1718 | −0000FC00000000FC00000003FF0000001FFFE00000FFFFFC0001FFFFFE0007FFFFFF000F | |
| 1719 | −FFFFFF801FFEFDFFC01FF0FC3FE03FC0FC1FE07F80FC0FF07F00FC07F07E00FC07F8FE00 | |
| 1720 | −FC03F8FC00FC03F8FC00FC07F8FC00FC07F8FC00FC07F8FE00FC03F0FE00FC03F07F00FC | |
| 1721 | −00007F80FC00007FC0FC00003FF0FC00001FFEFC00001FFFFC00000FFFFF000007FFFFE0 | |
| 1722 | −0001FFFFF800007FFFFC00001FFFFE000003FFFF000000FFFF800000FDFFC00000FC7FE0 | |
| 1723 | −0000FC1FE00000FC0FF00000FC07F01800FC03F87E00FC03F87E00FC01F8FF00FC01F8FF | |
| 1724 | −00FC01F8FF00FC01F8FE00FC01F8FE00FC01F8FF00FC03F07F00FC03F07F80FC07F07F80 | |
| 1725 | −FC0FE03FC0FC1FE03FF0FC7FC01FFEFFFF800FFFFFFF0007FFFFFE0003FFFFFC0000FFFF | |
| 1726 | −F000003FFFC0000007FE00000000FC00000000FC00000000FC00000000FC00000000FC00 | |
| 1727 | −0000007C0000000038000025477BBE30>I<03C00001E0000FF00003E0001FF80007F000 | |
| 1728 | −3FFC0007F0003FFC000FF0007FFE000FF0007E7E001FE000FE7F001FE000FE7F001FC000 | |
| 1729 | −FC3F003FC000FC3F003FC000FC3F003F8000FC3F007F8000FC3F007F8000FC3F00FF0000 | |
| 1730 | −FE7F00FF0000FE7F00FE00007E7E01FE00007FFE01FE00003FFC01FC00003FFC03FC0000 | |
| 1731 | −1FF803FC00000FF007F8000003C007F80000000007F0000000000FF0000000000FF00000 | |
| 1732 | −00000FE0000000001FE0000000001FE0000000003FC0000000003FC0000000003F800000 | |
| 1733 | −00007F80000000007F80000000007F0000000000FF0000000000FF0000000001FE000000 | |
| 1734 | −0001FE0000000001FC0000000003FC0000000003FC0000000003F80000000007F8000000 | |
| 1735 | −0007F8000000000FF001E000000FF007F800000FE00FFC00001FE01FFE00001FE01FFE00 | |
| 1736 | −001FC03FFF00003FC03FFF00003FC03F3F00007F807F3F80007F807E1F80007F007E1F80 | |
| 1737 | −00FF007E1F8000FF007E1F8000FE007E1F8001FE007E1F8001FE007E1F8003FC007F3F80 | |
| 1738 | −03FC003F3F0003F8003FFF0007F8003FFF0007F8001FFE0007F0001FFE0007F0000FFC00 | |
| 1739 | −03E00007F80001E00001E00029477DBE30>I<0007E0000000001FF8000000003FFC0000 | |
| 1740 | −00007FFC00000000FFFE00000000FFFF00000001FC7F00000001F83F00000001F83F8000 | |
| 1741 | −0003F81F80000003F01F80000003F01F80000003F01F80000003F01F80000003F01F8000 | |
| 1742 | −0003F01F80000003F03F80000003F03F00000003F07F0FFF0003F87E1FFF8001F8FE1FFF | |
| 1743 | −8001F9FC1FFF8001FBFC1FFF8001FBF80FFF0001FFF00FC00000FFE00FC00000FFE01FC0 | |
| 1744 | −0000FFC01F8000007F801F800000FF003F800001FF003F000003FF007F000007FF807E00 | |
| 1745 | −000FFF807E00000FFF80FE00001FDFC0FC00003F8FE0FC00003F8FE1FC00007F07F1F800 | |
| 1746 | −007F03F3F80000FE03FBF00000FE01FFF00000FE01FFE00000FE00FFE00000FE00FFC006 | |
| 1747 | −00FE007FC00F00FE003F801F80FE003FC01F80FF007FC01F807F00FFE01F807F01FFF83F | |
| 1748 | −807F87FFFC3F003FFFFBFFFF001FFFF1FFFE001FFFE0FFFE000FFFC03FFC0003FF001FF8 | |
| 1749 | −0001FC0007E000293A7DB830>I<07C00FF01FF81FF81FFC1FFC1FFE0FFE07FE007E007E | |
| 1750 | −007E007E007E00FE00FC00FC01FC01F803F807F00FF01FE07FE0FFC0FF80FF007C003800 | |
| 1751 | −0F1D70B730>I<00001E00007F0000FF0001FF0003FE0007FC000FF0001FE0003FC0007F | |
| 1752 | −8000FF0001FE0001FC0003FC0003F80007F0000FF0000FE0000FE0001FC0001FC0003FC0 | |
| 1753 | −003F80003F80007F80007F00007F00007F00007F0000FE0000FE0000FE0000FE0000FE00 | |
| 1754 | −00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00007F00007F00007F00007F00 | |
| 1755 | −007F80003F80003F80003FC0001FC0001FC0000FE0000FE0000FF00007F00003F80003FC | |
| 1756 | −0001FC0001FE0000FF00007F80003FC0001FE0000FF00007FC0003FE0001FF0000FF0000 | |
| 1757 | −7F00001E184771BE30>I<780000FE0000FF0000FF80007FC0003FE0000FF00007F80003 | |
| 1758 | −FC0001FE0000FF00007F80003F80003FC0001FC0000FE0000FF00007F00007F00003F800 | |
| 1759 | −03F80003FC0001FC0001FC0001FE0000FE0000FE0000FE0000FE00007F00007F00007F00 | |
| 1760 | −007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0000FE0000FE00 | |
| 1761 | −00FE0000FE0001FE0001FC0001FC0003FC0003F80003F80007F00007F0000FF0000FE000 | |
| 1762 | −1FC0003FC0003F80007F8000FF0001FE0003FC0007F8000FF0003FE0007FC000FF8000FF | |
| 1763 | −0000FE0000780000184778BE30>I<0000E000000001F000000003F800000003F8000000 | |
| 1764 | −03F800000003F800000003F800000003F800003803F803807E03F80FC0FF83F83FE0FFC3 | |
| 1765 | −F87FE0FFF3F9FFE07FFBFBFFC03FFFFFFF800FFFFFFE0003FFFFF80001FFFFF000007FFF | |
| 1766 | −C000001FFF0000007FFFC00001FFFFF00003FFFFF8000FFFFFFE003FFFFFFF807FFBFBFF | |
| 1767 | −C0FFF3F9FFE0FFC3F87FE0FF83F83FE07E03F80FC03803F803800003F800000003F80000 | |
| 1768 | −0003F800000003F800000003F800000003F800000001F000000000E0000023277AAE30> | |
| 1769 | −I<00003E00000000003E00000000007F00000000007F00000000007F00000000007F0000 | |
| 1770 | −0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000 | |
| 1771 | −0000007F00000000007F00000000007F00000000007F00000000007F0000007FFFFFFFFF | |
| 1772 | −007FFFFFFFFF00FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF007FFFFFFFFF | |
| 1773 | −0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000 | |
| 1774 | −0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000 | |
| 1775 | −0000007F00000000007F00000000007F00000000003E00000000003E00000029297DAF30 | |
| 1776 | −>I<03E00FF01FF81FFC3FFE3FFE3FFF3FFF1FFF1FFF0FFF03FF007F007F007E00FE01FC | |
| 1777 | −03FC07F83FF07FF0FFE07F807F003C001019708B30>I<7FFFFFFFF07FFFFFFFF0FFFFFF | |
| 1778 | −FFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF07FFFFFFFF025077B9E30>I<0F003FC07FE07F | |
| 1779 | −E0FFF0FFF0FFF0FFF07FE07FE03FC00F000C0C6E8B30>I<00000000F000000001F00000 | |
| 1780 | −0003F800000003F800000007F800000007F80000000FF00000000FF00000001FE0000000 | |
| 1781 | −1FE00000003FC00000003FC00000007F800000007F80000000FF00000000FF00000001FE | |
| 1782 | −00000001FE00000001FC00000003FC00000003FC00000007F800000007F80000000FF000 | |
| 1783 | −00000FF00000001FE00000001FE00000003FC00000003FC00000007F800000007F800000 | |
| 1784 | −00FF00000000FF00000001FE00000001FE00000001FC00000003FC00000003FC00000007 | |
| 1785 | −F800000007F80000000FF00000000FF00000001FE00000001FE00000003FC00000003FC0 | |
| 1786 | −0000007F800000007F80000000FF00000000FF00000001FE00000001FE00000001FC0000 | |
| 1787 | −0003FC00000003FC00000007F800000007F80000000FF00000000FF00000001FE0000000 | |
| 1788 | −1FE00000003FC00000003FC00000007F800000007F80000000FF00000000FF00000000FE | |
| 1789 | −00000000FE000000007C000000007C0000000025477BBE30>I<0000FE00000007FFC000 | |
| 1790 | −000FFFE000003FFFF800007FFFFC0000FFFFFE0001FF83FF0003FE00FF8003FC007F8007 | |
| 1791 | −F8003FC00FF0001FE00FE0000FE01FE0000FF01FC00007F01FC00007F03F800003F83F80 | |
| 1792 | −0003F83F000001F87F000001FC7F000001FC7F000001FC7F000001FCFE000000FEFE0000 | |
| 1793 | −00FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000FEFE000000 | |
| 1794 | −FEFE000000FEFE000000FEFE000000FEFE000000FEFF000001FE7F000001FC7F000001FC | |
| 1795 | −7F000001FC7F800003FC3F800003F83F800003F83FC00007F81FC00007F01FC00007F01F | |
| 1796 | −E0000FF00FF0001FE00FF0001FE007F8003FC003FC007F8003FE00FF8001FF83FF0000FF | |
| 1797 | −FFFE00007FFFFC00003FFFF800000FFFE0000007FFC0000000FE0000273A7CB830>I<00 | |
| 1798 | −03C0000007E0000007E000000FE000000FE000001FE000001FE000003FE000007FE00000 | |
| 1799 | −FFE00003FFE0003FFFE000FFFFE000FFFFE000FFEFE000FF8FE0007E0FE000000FE00000 | |
| 1800 | −0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000 | |
| 1801 | −0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000 | |
| 1802 | −0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000 | |
| 1803 | −0FE000000FE000000FE000000FE000000FE000000FE0003FFFFFF87FFFFFFCFFFFFFFEFF | |
| 1804 | −FFFFFE7FFFFFFC3FFFFFF81F3977B830>I<0007FC0000003FFFC00000FFFFF00003FFFF | |
| 1805 | −F80007FFFFFE000FFFFFFF001FF80FFF803FE001FFC03FC0007FC07F80003FE07F00001F | |
| 1806 | −E07F00000FF0FF000007F0FE000007F0FF000007F8FF000003F8FF000003F8FF000003F8 | |
| 1807 | −7E000003F818000003F800000003F800000003F800000007F800000007F00000000FF000 | |
| 1808 | −00000FE00000001FE00000001FC00000003FC00000007F80000000FF80000001FF000000 | |
| 1809 | −01FE00000007FC0000000FF80000001FF00000003FE00000007FC0000000FF80000001FF | |
| 1810 | −00000003FE00000007FC0000000FF00000003FE00000007FC0000000FF80000001FF0000 | |
| 1811 | −0003FE0001F007FC0003F80FF80003F81FE00003F83FFFFFFFF8FFFFFFFFF8FFFFFFFFF8 | |
| 1812 | −FFFFFFFFF87FFFFFFFF83FFFFFFFF025397BB830>I<0003FF0000003FFFE00000FFFFF8 | |
| 1813 | −0001FFFFFE0003FFFFFF0007FFFFFF800FFE01FFC00FF0007FC01FE0001FE01FE0000FE0 | |
| 1814 | −1FE0000FF01FE00007F01FE00007F00FC00007F007800007F000000007F00000000FF000 | |
| 1815 | −00000FE00000000FE00000001FE00000003FC00000007FC0000000FF80000007FF000007 | |
| 1816 | −FFFE00000FFFFC00000FFFF800000FFFFC00000FFFFF000007FFFF80000001FFC0000000 | |
| 1817 | −3FE00000001FF000000007F800000003F800000003FC00000001FC00000001FE00000000 | |
| 1818 | −FE00000000FE18000000FE7E000000FEFF000000FEFF000000FEFF000001FEFF000001FC | |
| 1819 | −FE000003FCFF000003F87F800007F87FC0001FF03FF0003FF01FFE01FFE00FFFFFFFC007 | |
| 1820 | −FFFFFF8003FFFFFE0000FFFFFC00003FFFF0000003FF8000273A7CB830>I<000003FC00 | |
| 1821 | −00000007FE000000000FFE000000001FFE000000001FFE000000003FFE000000007FFE00 | |
| 1822 | −0000007F7E00000000FE7E00000000FE7E00000001FC7E00000003F87E00000003F87E00 | |
| 1823 | −000007F07E00000007F07E0000000FE07E0000001FC07E0000001FC07E0000003F807E00 | |
| 1824 | −00003F807E0000007F007E000000FE007E000000FE007E000001FC007E000003F8007E00 | |
| 1825 | −0003F8007E000007F0007E000007F0007E00000FE0007E00001FC0007E00001FC0007E00 | |
| 1826 | −003F80007E00003F80007E00007F00007E0000FE00007E0000FFFFFFFFFF00FFFFFFFFFF | |
| 1827 | −80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF000000007E00000000007E00 | |
| 1828 | −000000007E00000000007E00000000007E00000000007E00000000007E00000000007E00 | |
| 1829 | −000000007E00000000007E000000007FFFFE000000FFFFFF000000FFFFFF000000FFFFFF | |
| 1830 | −000000FFFFFF0000007FFFFE0029397DB830>I<0FFFFFFF801FFFFFFFC03FFFFFFFC03F | |
| 1831 | −FFFFFFC03FFFFFFFC03FFFFFFF803F800000003F800000003F800000003F800000003F80 | |
| 1832 | −0000003F800000003F800000003F800000003F800000003F800000003F800000003F8000 | |
| 1833 | −00003F800000003F800000003F83FF00003F9FFFC0003FFFFFF0003FFFFFFC003FFFFFFE | |
| 1834 | −003FFFFFFF003FFE03FF803FF0007FC03FE0003FC03F80001FE01F00000FE00E00000FF0 | |
| 1835 | −00000007F000000007F000000007F800000003F800000003F800000003F818000003F87E | |
| 1836 | −000003F87E000003F8FF000003F8FF000007F8FF000007F0FE00000FF0FF00000FE07F00 | |
| 1837 | −001FE07F80003FC07FC0007FC03FE001FF801FFC0FFF000FFFFFFE0007FFFFFC0003FFFF | |
| 1838 | −F80001FFFFE000007FFF8000000FFC000025397BB730>I<7C00000000FFFFFFFFFCFFFF | |
| 1839 | −FFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFCFE00000FF8FE00000FF0FE0000 | |
| 1840 | −1FE07C00003FC00000007F80000000FF00000000FF00000001FE00000003FC00000003F8 | |
| 1841 | −00000007F800000007F00000000FF00000000FE00000001FC00000001FC00000003F8000 | |
| 1842 | −00003F800000007F000000007F00000000FF00000000FE00000001FE00000001FC000000 | |
| 1843 | −01FC00000003FC00000003F800000003F800000007F800000007F000000007F000000007 | |
| 1844 | −F000000007F00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0 | |
| 1845 | −0000001FE00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000 | |
| 1846 | −00001FC00000001FC00000001FC00000000F8000000007000000273A7CB830>55 | |
| 1847 | −D<0F003FC07FE07FE0FFF0FFF0FFF0FFF07FE07FE03FC00F000000000000000000000000 | |
| 1848 | −000000000000000000000000000000000000000F003FC07FE07FE0FFF0FFF0FFF0FFF07F | |
| 1849 | −E07FE03FC00F000C276EA630>58 D<03C00FF01FF81FF83FFC3FFC3FFC3FFC1FF81FF80F | |
| 1850 | −F003C000000000000000000000000000000000000000000000000000000000000003C00F | |
| 1851 | −F01FF01FF83FF83FFC3FFC3FFC1FFC1FFC0FFC03FC00FC01FC01F803F803F007F01FE03F | |
| 1852 | −E07FC0FF807F007E0038000E3470A630>I<00000000F000000003F000000007F8000000 | |
| 1853 | −1FF80000007FF8000000FFF0000003FFF0000007FFC000001FFF8000003FFE000000FFF8 | |
| 1854 | −000001FFF0000007FFC000000FFF8000003FFE0000007FFC000001FFF0000003FFE00000 | |
| 1855 | −0FFF8000001FFF0000007FFC0000007FF8000000FFE0000000FFC0000000FFE00000007F | |
| 1856 | −F80000007FFC0000001FFF0000000FFF80000003FFE0000001FFF00000007FFC0000003F | |
| 1857 | −FE0000000FFF80000007FFC0000001FFF0000000FFF80000003FFE0000001FFF80000007 | |
| 1858 | −FFC0000003FFF0000000FFF00000007FF80000001FF800000007F800000003F000000000 | |
| 1859 | −F0252F7BB230>I<7FFFFFFFFF007FFFFFFFFF00FFFFFFFFFF80FFFFFFFFFF80FFFFFFFF | |
| 1860 | −FF807FFFFFFFFF003FFFFFFFFE0000000000000000000000000000000000000000000000 | |
| 1861 | −00000000000000000000000000000000000000003FFFFFFFFE007FFFFFFFFF00FFFFFFFF | |
| 1862 | −FF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF007FFFFFFFFF0029157DA530>I<780000 | |
| 1863 | −00007E00000000FF00000000FFC0000000FFE00000007FF80000007FFE0000001FFF0000 | |
| 1864 | −000FFFC0000003FFE0000001FFF80000007FFC0000001FFF0000000FFF80000003FFE000 | |
| 1865 | −0001FFF00000007FFC0000003FFE0000000FFF80000007FFC0000001FFF0000000FFF000 | |
| 1866 | −00003FF80000001FF80000003FF8000000FFF0000001FFF0000007FFC000000FFF800000 | |
| 1867 | −3FFE0000007FFC000001FFF0000003FFE000000FFF8000001FFF0000007FFC000001FFF8 | |
| 1868 | −000003FFE000000FFFC000001FFF0000007FFE0000007FF8000000FFE0000000FFC00000 | |
| 1869 | −00FF000000007E000000007800000000252F7BB230>I<001FFE000000FFFFE00003FFFF | |
| 1870 | −F8000FFFFFFE001FFFFFFF003FFFFFFF807FF803FFC07FC0007FC0FF00001FC0FF00001F | |
| 1871 | −E0FF00000FE0FF00000FE0FF00000FE07E00000FE07E00001FE01800007FC0000000FFC0 | |
| 1872 | −000003FF80000007FF0000000FFE0000001FF80000003FF00000007FC0000000FF800000 | |
| 1873 | −00FF00000001FE00000001FE00000003FC00000003F800000003F800000007F800000007 | |
| 1874 | −F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0 | |
| 1875 | −00000003E000000000000000000000000000000000000000000000000000000000000000 | |
| 1876 | −00000000000000000000000001C000000007F000000007F00000000FF80000000FF80000 | |
| 1877 | −000FF800000007F000000007F000000001C0000023397AB830>I<00001FE0000000FFF8 | |
| 1878 | −000003FFFE00000FFFFF00001FFFFF80003FFFFFC0007FF03FE000FF800FE001FF0007F0 | |
| 1879 | −03FC0003F007F801FBF807F007FFF80FE01FFFF80FE03FFFFC1FC03FFFFC1F807FFFFC3F | |
| 1880 | −80FF0FFC3F00FE07FC3F01FC03FE7F01F801FE7E03F801FE7E03F000FE7E03F000FEFE07 | |
| 1881 | −F000FEFC07E0007EFC07E0007EFC07E0007EFC07E0007EFC07E0007EFC07E0007EFC07E0 | |
| 1882 | −007EFC07E0007EFC07E0007EFC07E0007EFE07F000FE7E03F000FC7E03F000FC7E03F801 | |
| 1883 | −FC7F01F801F83F01FC03F83F00FE07F03F80FF0FF01F807FFFE01FC03FFFC00FE03FFFC0 | |
| 1884 | −0FE01FFF8007F007FE0007F801F80003FC00007C01FF0000FE00FF8003FE007FF01FFE00 | |
| 1885 | −3FFFFFFC001FFFFFF8000FFFFFE00003FFFFC00000FFFE0000001FF000273A7CB830>I< | |
| 1886 | −00007F0000000000FF8000000000FF8000000001FFC000000001FFC000000001FFC00000 | |
| 1887 | −0001FFC000000003FFE000000003F7E000000003F7E000000003F7E000000003F7E00000 | |
| 1888 | −0007F7F000000007E3F000000007E3F000000007E3F00000000FE3F80000000FE3F80000 | |
| 1889 | −000FE3F80000000FC1F80000000FC1F80000001FC1FC0000001FC1FC0000001FC1FC0000 | |
| 1890 | −001FC1FC0000003F80FE0000003F80FE0000003F80FE0000003F80FE0000003F80FE0000 | |
| 1891 | −007F007F0000007F007F0000007F007F0000007F007F000000FF007F800000FE003F8000 | |
| 1892 | −00FFFFFF800000FFFFFF800000FFFFFF800001FFFFFFC00001FFFFFFC00001FFFFFFC000 | |
| 1893 | −01FC001FC00003FC001FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE000 | |
| 1894 | −07F8000FF00007F00007F00007F00007F0007FFF007FFF00FFFF80FFFF80FFFF80FFFF80 | |
| 1895 | −FFFF80FFFF80FFFF80FFFF807FFF007FFF0029397DB830>I<7FFFFFF00000FFFFFFFE00 | |
| 1896 | −00FFFFFFFF8000FFFFFFFFC000FFFFFFFFE0007FFFFFFFF00003F8001FF80003F80007F8 | |
| 1897 | −0003F80003FC0003F80001FC0003F80001FC0003F80000FE0003F80000FE0003F80000FE | |
| 1898 | −0003F80000FE0003F80000FE0003F80000FE0003F80001FE0003F80001FC0003F80001FC | |
| 1899 | −0003F80003F80003F80007F80003F8001FF00003F8007FE00003FFFFFFC00003FFFFFF80 | |
| 1900 | −0003FFFFFE000003FFFFFF800003FFFFFFE00003FFFFFFF00003F8000FF80003F80003FC | |
| 1901 | −0003F80001FE0003F80000FE0003F800007F0003F800007F0003F800007F0003F800003F | |
| 1902 | −8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800007F | |
| 1903 | −8003F800007F0003F800007F0003F80000FF0003F80001FE0003F80003FE0003F8001FFC | |
| 1904 | −007FFFFFFFFC00FFFFFFFFF800FFFFFFFFF000FFFFFFFFC000FFFFFFFF80007FFFFFFC00 | |
| 1905 | −0029387EB730>I<00007F803C0003FFF03E0007FFFC7E001FFFFE7E003FFFFFFE007FFF | |
| 1906 | −FFFE00FFE07FFE01FF801FFE03FE000FFE07FC0007FE07F80007FE0FF00003FE0FF00003 | |
| 1907 | −FE1FE00001FE1FC00001FE3FC00001FE3F800000FE3F800000FE7F800000FE7F000000FE | |
| 1908 | −7F0000007C7F00000000FF00000000FE00000000FE00000000FE00000000FE00000000FE | |
| 1909 | −00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 | |
| 1910 | −000000FF000000007F000000007F000000007F0000007C7F800000FE3F800000FE3F8000 | |
| 1911 | −00FE3FC00000FE1FC00000FE1FE00001FE0FF00001FC0FF00001FC07F80003F807FC0007 | |
| 1912 | −F803FE000FF001FF801FF000FFE07FE0007FFFFFC0003FFFFF80001FFFFF000007FFFC00 | |
| 1913 | −0003FFF00000007FC000273A7CB830>I<3FFFFFE000007FFFFFFC0000FFFFFFFE0000FF | |
| 1914 | −FFFFFF80007FFFFFFFC0003FFFFFFFE00003F8007FF00003F8001FF80003F8000FF80003 | |
| 1915 | −F80007FC0003F80003FE0003F80001FE0003F80000FF0003F80000FF0003F800007F8003 | |
| 1916 | −F800007F8003F800003F8003F800003FC003F800001FC003F800001FC003F800001FC003 | |
| 1917 | −F800001FC003F800000FE003F800000FE003F800000FE003F800000FE003F800000FE003 | |
| 1918 | −F800000FE003F800000FE003F800000FE003F800000FE003F800000FE003F800000FE003 | |
| 1919 | −F800000FE003F800001FE003F800001FC003F800001FC003F800001FC003F800003FC003 | |
| 1920 | −F800003F8003F800003F8003F800007F8003F800007F0003F80000FF0003F80001FE0003 | |
| 1921 | −F80003FE0003F80007FC0003F8000FFC0003F8001FF80003F8007FF0003FFFFFFFE0007F | |
| 1922 | −FFFFFFC000FFFFFFFF8000FFFFFFFF00007FFFFFFC00003FFFFFE000002B387FB730>I< | |
| 1923 | −7FFFFFFFFF00FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF807FFFFFFFFF80 | |
| 1924 | −03F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F80 | |
| 1925 | −03F800003F8003F800003F8003F800001F0003F80000000003F80000000003F800000000 | |
| 1926 | −03F80000000003F8007C000003F800FE000003F800FE000003F800FE000003F800FE0000 | |
| 1927 | −03FFFFFE000003FFFFFE000003FFFFFE000003FFFFFE000003FFFFFE000003FFFFFE0000 | |
| 1928 | −03F800FE000003F800FE000003F800FE000003F800FE000003F8007C000003F800000000 | |
| 1929 | −03F80000000003F80000000003F80000000003F80000000003F8000007C003F800000FE0 | |
| 1930 | −03F800000FE003F800000FE003F800000FE003F800000FE003F800000FE003F800000FE0 | |
| 1931 | −03F800000FE003F800000FE07FFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0 | |
| 1932 | −FFFFFFFFFFE07FFFFFFFFFC02B387EB730>I<3FFFFFFFFF807FFFFFFFFFC0FFFFFFFFFF | |
| 1933 | −C0FFFFFFFFFFC07FFFFFFFFFC03FFFFFFFFFC001FC00001FC001FC00001FC001FC00001F | |
| 1934 | −C001FC00001FC001FC00001FC001FC00001FC001FC00001FC001FC00001FC001FC00000F | |
| 1935 | −8001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC003E00 | |
| 1936 | −0001FC007F000001FC007F000001FC007F000001FC007F000001FFFFFF000001FFFFFF00 | |
| 1937 | −0001FFFFFF000001FFFFFF000001FFFFFF000001FFFFFF000001FC007F000001FC007F00 | |
| 1938 | −0001FC007F000001FC007F000001FC003E000001FC0000000001FC0000000001FC000000 | |
| 1939 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 1940 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC000000003FFFF80000 | |
| 1941 | −007FFFFC000000FFFFFC000000FFFFFC0000007FFFFC0000003FFFF80000002A387EB730 | |
| 1942 | −>I<0000FF00F0000003FFC0F800000FFFF1F800003FFFFDF800007FFFFFF80000FFFFFF | |
| 1943 | −F80001FFC1FFF80001FF007FF80003FE003FF80007FC001FF80007F8000FF8000FF0000F | |
| 1944 | −F8000FE00007F8001FE00007F8001FC00007F8003FC00007F8003F800003F8003F800003 | |
| 1945 | −F8007F800003F8007F000003F8007F000001F0007F0000000000FF0000000000FE000000 | |
| 1946 | −0000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000 | |
| 1947 | −0000FE0000000000FE0000FFFF00FE0001FFFF80FE0003FFFF80FE0003FFFF80FF0001FF | |
| 1948 | −FF807F0000FFFF007F000003F8007F000003F8007F800003F8003F800007F8003F800007 | |
| 1949 | −F8003FC00007F8001FC00007F8001FE0000FF8000FE0000FF8000FF0000FF80007F8001F | |
| 1950 | −F80007F8001FF80003FE003FF80001FF007FF80001FFC1FFF80000FFFFFFF800007FFFFF | |
| 1951 | −F800003FFFFBF800000FFFF3F8000003FFC1F0000000FF000000293A7DB830>I<3FFF80 | |
| 1952 | −0FFFE07FFFC01FFFF0FFFFE03FFFF8FFFFE03FFFF87FFFC01FFFF03FFF800FFFE003F800 | |
| 1953 | −00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800 | |
| 1954 | −00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800 | |
| 1955 | −00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003FFFF | |
| 1956 | −FFFE0003FFFFFFFE0003FFFFFFFE0003FFFFFFFE0003FFFFFFFE0003FFFFFFFE0003F800 | |
| 1957 | −00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800 | |
| 1958 | −00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800 | |
| 1959 | −00FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F800 | |
| 1960 | −00FE0003F80000FE003FFF800FFFE07FFFC01FFFF0FFFFE03FFFF8FFFFE03FFFF87FFFC0 | |
| 1961 | −1FFFF03FFF800FFFE02D387FB730>I<7FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80 | |
| 1962 | −FFFFFFFF807FFFFFFF000007F000000007F000000007F000000007F000000007F0000000 | |
| 1963 | −07F000000007F000000007F000000007F000000007F000000007F000000007F000000007 | |
| 1964 | −F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0 | |
| 1965 | −00000007F000000007F000000007F000000007F000000007F000000007F000000007F000 | |
| 1966 | −000007F000000007F000000007F000000007F000000007F000000007F000000007F00000 | |
| 1967 | −0007F000000007F000000007F000000007F000000007F000000007F000000007F0000000 | |
| 1968 | −07F000000007F000000007F000007FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFF | |
| 1969 | −FFFF807FFFFFFF00213879B730>I<0001FFFFF00003FFFFF80007FFFFF80007FFFFF800 | |
| 1970 | −03FFFFF80001FFFFF0000000FE00000000FE00000000FE00000000FE00000000FE000000 | |
| 1971 | −00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000 | |
| 1972 | −FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE | |
| 1973 | −00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 | |
| 1974 | −000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 | |
| 1975 | −0000FE00000000FE00000000FE003C0000FE007E0000FE00FF0000FE00FF0000FE00FF00 | |
| 1976 | −01FC00FF0003FC00FF8007FC007FF01FF8003FFFFFF0003FFFFFE0001FFFFFC00007FFFF | |
| 1977 | −800001FFFE0000003FF0000025397AB730>I<3FFFF80000007FFFFC000000FFFFFE0000 | |
| 1978 | −00FFFFFE0000007FFFFC0000003FFFF800000001FC0000000001FC0000000001FC000000 | |
| 1979 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 1980 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 1981 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 1982 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 1983 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 1984 | −0001FC0000000001FC00000F8001FC00001FC001FC00001FC001FC00001FC001FC00001F | |
| 1985 | −C001FC00001FC001FC00001FC001FC00001FC001FC00001FC001FC00001FC03FFFFFFFFF | |
| 1986 | −C07FFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC07FFFFFFFFFC03FFFFFFFFF802A387EB730 | |
| 1987 | −>76 D<3FF80000FFE07FFC0001FFF0FFFE0003FFF8FFFE0003FFF87FFE0003FFF03FFF00 | |
| 1988 | −07FFE007FF0007FF0007EF0007BF0007EF800FBF0007EF800FBF0007EF800FBF0007E7C0 | |
| 1989 | −1F3F0007E7C01F3F0007E7C01F3F0007E7C01F3F0007E7E03F3F0007E3E03E3F0007E3E0 | |
| 1990 | −3E3F0007E3F07E3F0007E3F07E3F0007E1F07C3F0007E1F07C3F0007E1F8FC3F0007E1F8 | |
| 1991 | −FC3F0007E0F8F83F0007E0F8F83F0007E0FDF83F0007E07DF03F0007E07DF03F0007E07D | |
| 1992 | −F03F0007E07FF03F0007E03FE03F0007E03FE03F0007E03FE03F0007E01FC03F0007E01F | |
| 1993 | −C03F0007E007003F0007E000003F0007E000003F0007E000003F0007E000003F0007E000 | |
| 1994 | −003F0007E000003F0007E000003F0007E000003F0007E000003F0007E000003F0007E000 | |
| 1995 | −003F0007E000003F0007E000003F003FFC0001FFE07FFE0003FFF0FFFF0007FFF8FFFF00 | |
| 1996 | −07FFF87FFE0003FFF03FFC0001FFE02D387FB730>I<3FFC001FFF807FFE003FFFC0FFFF | |
| 1997 | −007FFFE0FFFF007FFFE07FFF803FFFC03FFF801FFF8003FF8001F80003F7C001F80003F7 | |
| 1998 | −C001F80003F7C001F80003F3E001F80003F3E001F80003F3E001F80003F3F001F80003F1 | |
| 1999 | −F001F80003F1F001F80003F1F801F80003F1F801F80003F0F801F80003F0FC01F80003F0 | |
| 2000 | −FC01F80003F07C01F80003F07E01F80003F07E01F80003F03E01F80003F03F01F80003F0 | |
| 2001 | −3F01F80003F01F01F80003F01F01F80003F01F81F80003F01F81F80003F00F81F80003F0 | |
| 2002 | −0FC1F80003F00FC1F80003F007C1F80003F007E1F80003F007E1F80003F003E1F80003F0 | |
| 2003 | −03F1F80003F003F1F80003F001F1F80003F001F1F80003F001F9F80003F000F9F80003F0 | |
| 2004 | −00F9F80003F000F9F80003F0007DF80003F0007DF80003F0007DF80003F0003FF8003FFF | |
| 2005 | −003FF8007FFF803FF800FFFFC01FF800FFFFC01FF8007FFF800FF8003FFF0007F0002B38 | |
| 2006 | −7EB730>I<003FFFE00001FFFFFC0007FFFFFF000FFFFFFF801FFFFFFFC03FFFFFFFE03F | |
| 2007 | −F800FFE03FE0003FE07F80000FF07F80000FF07F000007F07F000007F07F000007F07F00 | |
| 2008 | −0007F0FF000007F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE0000 | |
| 2009 | −03F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003 | |
| 2010 | −F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8 | |
| 2011 | −FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FF | |
| 2012 | −000007F8FF000007F87F000007F07F000007F07F000007F07F80000FF07F80000FF07FC0 | |
| 2013 | −001FF03FE0003FE03FF800FFE03FFFFFFFE01FFFFFFFC00FFFFFFF8007FFFFFF0001FFFF | |
| 2014 | −FC00003FFFE000253A7BB830>I<7FFFFFF00000FFFFFFFE0000FFFFFFFF8000FFFFFFFF | |
| 2015 | −E000FFFFFFFFF0007FFFFFFFF80003F8003FF80003F8000FFC0003F80003FE0003F80001 | |
| 2016 | −FE0003F80000FF0003F80000FF0003F800007F0003F800007F8003F800003F8003F80000 | |
| 2017 | −3F8003F800003F8003F800003F8003F800003F8003F800003F8003F800007F8003F80000 | |
| 2018 | −7F0003F80000FF0003F80000FF0003F80001FE0003F80003FE0003F8000FFC0003F8003F | |
| 2019 | −F80003FFFFFFF80003FFFFFFF00003FFFFFFE00003FFFFFF800003FFFFFE000003FFFFF0 | |
| 2020 | −000003F80000000003F80000000003F80000000003F80000000003F80000000003F80000 | |
| 2021 | −000003F80000000003F80000000003F80000000003F80000000003F80000000003F80000 | |
| 2022 | −000003F80000000003F80000000003F80000000003F8000000007FFFC0000000FFFFE000 | |
| 2023 | −0000FFFFE0000000FFFFE0000000FFFFE00000007FFFC000000029387EB730>I<3FFFFF | |
| 2024 | −8000007FFFFFF00000FFFFFFFC0000FFFFFFFF00007FFFFFFF80003FFFFFFFC00003F801 | |
| 2025 | −FFE00003F8003FF00003F8001FF00003F8000FF80003F80007F80003F80003F80003F800 | |
| 2026 | −03FC0003F80001FC0003F80001FC0003F80001FC0003F80001FC0003F80001FC0003F800 | |
| 2027 | −03FC0003F80003F80003F80007F80003F8000FF80003F8001FF00003F8003FF00003F801 | |
| 2028 | −FFE00003FFFFFFC00003FFFFFF800003FFFFFF000003FFFFFE000003FFFFFF000003FFFF | |
| 2029 | −FF800003F800FFC00003F8003FE00003F8001FE00003F8000FE00003F8000FF00003F800 | |
| 2030 | −07F00003F80007F00003F80007F00003F80007F00003F80007F00003F80007F00003F800 | |
| 2031 | −07F00003F80007F00003F80007F0F803F80007F1FC03F80007F1FC03F80007F1FC03F800 | |
| 2032 | −07F1FC03F80007F1FC3FFF8003FBFC7FFFC003FFF8FFFFE001FFF8FFFFE001FFF07FFFC0 | |
| 2033 | −00FFE03FFF80007FC0000000001F002E397FB730>82 D<000FF803C0007FFF03E001FFFF | |
| 2034 | −C7E003FFFFF7E007FFFFFFE00FFFFFFFE01FF80FFFE03FE001FFE03FC000FFE07F80007F | |
| 2035 | −E07F00003FE0FF00003FE0FE00001FE0FE00001FE0FE00000FE0FE00000FE0FE00000FE0 | |
| 2036 | −FF00000FE0FF000007C07F000000007F800000007FC00000003FF00000001FFE0000001F | |
| 2037 | −FFF000000FFFFF000007FFFFE00001FFFFF80000FFFFFC00001FFFFF000003FFFF800000 | |
| 2038 | −3FFFC0000001FFC00000007FE00000001FE00000000FF00000000FF000000007F8000000 | |
| 2039 | −07F87C000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FF000007 | |
| 2040 | −F8FF000007F0FF800007F0FFC0000FE0FFE0001FE0FFF8003FC0FFFF00FFC0FFFFFFFF80 | |
| 2041 | −FFFFFFFF00FDFFFFFE00FC7FFFF800F81FFFF0007801FF8000253A7BB830>I<3FFFFFFF | |
| 2042 | −FFC07FFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FE003F80 | |
| 2043 | −0FE0FE003F800FE0FE003F800FE0FE003F800FE0FE003F800FE0FE003F800FE0FE003F80 | |
| 2044 | −0FE0FE003F800FE07C003F8007C000003F80000000003F80000000003F80000000003F80 | |
| 2045 | −000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80 | |
| 2046 | −000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80 | |
| 2047 | −000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80 | |
| 2048 | −000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80 | |
| 2049 | −000000003F80000000003F80000000003F80000000003F80000000003F80000000003F80 | |
| 2050 | −000000003F800000001FFFFF0000003FFFFF8000003FFFFF8000003FFFFF8000003FFFFF | |
| 2051 | −8000001FFFFF00002B387EB730>I<7FFFC007FFFCFFFFE00FFFFEFFFFE00FFFFEFFFFE0 | |
| 2052 | −0FFFFEFFFFE00FFFFE7FFFC007FFFC03F800003F8003F800003F8003F800003F8003F800 | |
| 2053 | −003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800 | |
| 2054 | −003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800 | |
| 2055 | −003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800 | |
| 2056 | −003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800 | |
| 2057 | −003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800003F8003F800 | |
| 2058 | −003F8003F800003F8003FC00007F8001FC00007F0001FC00007F0001FC00007F0000FE00 | |
| 2059 | −00FE0000FF0001FE00007F0001FC00007F8003FC00003FE00FF800001FF83FF000000FFF | |
| 2060 | −FFE0000007FFFFC0000003FFFF80000001FFFF000000007FFC000000001FF000002F3980 | |
| 2061 | −B730>I<7FFE000FFFC0FFFF001FFFE0FFFF803FFFE0FFFF803FFFE0FFFF001FFFE07FFE | |
| 2062 | −000FFFC007F00001FC0007F00001FC0007F80003FC0003F80003F80003F80003F80003F8 | |
| 2063 | −0003F80003F80003F80001FC0007F00001FC0007F00001FC0007F00001FC0007F00000FE | |
| 2064 | −000FE00000FE000FE00000FE000FE00000FE000FE00000FF001FE000007F001FC000007F | |
| 2065 | −001FC000007F001FC000007F803FC000003F803F8000003F803F8000003F803F8000003F | |
| 2066 | −803F8000001FC07F0000001FC07F0000001FC07F0000001FC07F0000000FE0FE0000000F | |
| 2067 | −E0FE0000000FE0FE0000000FE0FE00000007E0FC00000007F1FC00000007F1FC00000007 | |
| 2068 | −F1FC00000003F1F800000003F1F800000003F1F800000003FBF800000001FBF000000001 | |
| 2069 | −FBF000000001FBF000000001FFF000000001FFF000000000FFE000000000FFE000000000 | |
| 2070 | −FFE000000000FFE0000000007FC0000000003F8000002B397EB730>I<3FFC0001FFE07F | |
| 2071 | −FE0003FFF0FFFE0003FFF8FFFE0003FFF87FFE0003FFF03FFC0001FFE01FC000001FC00F | |
| 2072 | −C000001F800FC000001F800FC000001F800FC000001F800FC000001F800FC000001F800F | |
| 2073 | −C000001F800FE000003F8007E000003F0007E000003F0007E000003F0007E000003F0007 | |
| 2074 | −E000003F0007E000003F0007E000003F0003E00F803E0003F01FC07E0003F03FE07E0003 | |
| 2075 | −F03FE07E0003F03FE07E0003F07FF07E0003F07FF07E0003F07DF07E0001F07DF07C0001 | |
| 2076 | −F07DF07C0001F8FDF8FC0001F8FDF8FC0001F8FDF8FC0001F8F8F8FC0001F8F8F8FC0001 | |
| 2077 | −F8F8F8FC0000F8F8F8F80000F9F8FCF80000F9F8FCF80000F9F07CF80000F9F07CF80000 | |
| 2078 | −FDF07DF80000FDF07DF800007DF07DF000007DE03DF000007DE03DF000007DE03DF00000 | |
| 2079 | −7FE03FF000007FE03FF000007FC01FF000007FC01FF000003FC01FE000003FC01FE00000 | |
| 2080 | −3F800FE000001F0007C0002D397FB730>I<3FFF01FFF8007FFF83FFFC007FFFC7FFFE00 | |
| 2081 | −7FFFC7FFFE007FFF83FFFC003FFF01FFF80001FC007F800001FE007F000000FE00FF0000 | |
| 2082 | −00FF00FE0000007F01FE0000007F81FC0000003F83FC0000003FC3FC0000001FC3F80000 | |
| 2083 | −001FE7F80000000FE7F00000000FFFF000000007FFE000000007FFE000000003FFC00000 | |
| 2084 | −0003FFC000000001FF8000000001FF8000000000FF0000000000FF0000000000FF000000 | |
| 2085 | −0000FF0000000001FF8000000001FF8000000003FFC000000003FFC000000003FFE00000 | |
| 2086 | −0007FFE000000007FFF00000000FE7F00000000FE7F80000001FC3F80000001FC3FC0000 | |
| 2087 | −003F81FC0000003F81FE0000007F00FE0000007F00FF000000FF007F000000FE007F8000 | |
| 2088 | −01FE003F800001FC003FC00003FC001FC00003F8001FE00007F8000FE0007FFE007FFF00 | |
| 2089 | −FFFF00FFFF80FFFF80FFFF80FFFF80FFFF80FFFF00FFFF807FFE007FFF0029387DB730> | |
| 2090 | −I<1FFFFFFFFC3FFFFFFFFE7FFFFFFFFE7FFFFFFFFE7FFFFFFFFE7FFFFFFFFE7F000003FC | |
| 2091 | −7F000007F87F000007F07F00000FF07F00001FE07F00001FC07F00003FC07F00007F803E | |
| 2092 | −00007F00000000FF00000001FE00000001FC00000003FC00000007F800000007F0000000 | |
| 2093 | −0FF00000001FE00000001FC00000003FC00000007F800000007F00000000FF00000001FE | |
| 2094 | −00000001FC00000003FC00000007F800000007F00000000FF00000001FE00000001FC000 | |
| 2095 | −00003FC00000007F800000007F00000000FF00000001FE00007C01FC0000FE03FC0000FE | |
| 2096 | −07F80000FE07F00000FE0FF00000FE1FE00000FE1FC00000FE3FC00000FE7F800000FE7F | |
| 2097 | −FFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC27387CB730>90 | |
| 2098 | −D<7FFFFF00FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF00FE000000FE000000FE0000 | |
| 2099 | −00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000 | |
| 2100 | −00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000 | |
| 2101 | −00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000 | |
| 2102 | −00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000 | |
| 2103 | −00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000 | |
| 2104 | −00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000 | |
| 2105 | −00FE000000FE000000FFFFFF00FFFFFF80FFFFFF80FFFFFF80FFFFFF807FFFFF0019476D | |
| 2106 | −BE30>I<7C000000007C00000000FE00000000FE00000000FF00000000FF000000007F80 | |
| 2107 | −0000007F800000003FC00000003FC00000001FE00000001FE00000000FF00000000FF000 | |
| 2108 | −000007F800000007F800000003FC00000003FC00000001FC00000001FE00000001FE0000 | |
| 2109 | −0000FF00000000FF000000007F800000007F800000003FC00000003FC00000001FE00000 | |
| 2110 | −001FE00000000FF00000000FF000000007F800000007F800000003FC00000003FC000000 | |
| 2111 | −01FC00000001FE00000001FE00000000FF00000000FF000000007F800000007F80000000 | |
| 2112 | −3FC00000003FC00000001FE00000001FE00000000FF00000000FF000000007F800000007 | |
| 2113 | −F800000003FC00000003FC00000001FC00000001FE00000001FE00000000FF00000000FF | |
| 2114 | −000000007F800000007F800000003FC00000003FC00000001FE00000001FE00000000FF0 | |
| 2115 | −0000000FF000000007F800000007F800000003F800000003F800000001F000000000F025 | |
| 2116 | −477BBE30>I<7FFFFF00FFFFFF80FFFFFF80FFFFFF80FFFFFF807FFFFF8000003F800000 | |
| 2117 | −3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 | |
| 2118 | −3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 | |
| 2119 | −3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 | |
| 2120 | −3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 | |
| 2121 | −3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 | |
| 2122 | −3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 | |
| 2123 | −3F8000003F8000003F8000003F807FFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF807FFF | |
| 2124 | −FF0019477DBE30>I<00070000001FC000007FF00000FFF80003FFFE000FFFFF803FFFFF | |
| 2125 | −E07FFDFFF0FFF07FF8FFC01FF8FF800FF8FE0003F87C0001F0100000401D0E77B730>I< | |
| 2126 | −7FFFFFFFF07FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF07FFFFFFFF025 | |
| 2127 | −077B7D30>I<0038007C01FE03FE07FE0FFC0FF01FE01FC03F803F007F007E007E00FE00 | |
| 2128 | −FC00FC00FC00FC00FC00FFC0FFE0FFF07FF07FF03FF03FF01FE007C00F1D70BE30>I<00 | |
| 2129 | −3FFC00000001FFFF80000003FFFFE0000007FFFFF000000FFFFFF800001FFFFFFC00001F | |
| 2130 | −F00FFE00001FE001FF00001FE000FF00001FE0007F80000FC0003F80000780003FC00000 | |
| 2131 | −00001FC0000000001FC0000000001FC0000000001FC0000000FFFFC000000FFFFFC00000 | |
| 2132 | −7FFFFFC00001FFFFFFC00007FFFFFFC0000FFFFFFFC0001FFFC01FC0003FFC001FC0007F | |
| 2133 | −E0001FC0007F80001FC000FF00001FC000FE00001FC000FE00001FC000FE00001FC000FE | |
| 2134 | −00001FC000FF00003FC000FF00003FC0007F80007FC0007FC001FFC0003FF80FFFFFC01F | |
| 2135 | −FFFFFFFFE01FFFFFFFFFE007FFFFF7FFE003FFFFC3FFE000FFFF00FFC0003FF00000002B | |
| 2136 | −2A7CA830>I<3FFC000000007FFE00000000FFFE00000000FFFE000000007FFE00000000 | |
| 2137 | −3FFE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00000000 | |
| 2138 | −00FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE03FE0000 | |
| 2139 | −00FE1FFF800000FE7FFFE00000FEFFFFF00000FFFFFFFC0000FFFFFFFE0000FFFE07FE00 | |
| 2140 | −00FFF001FF0000FFE000FF8000FFC0007F8000FF80003FC000FF00001FC000FE00001FE0 | |
| 2141 | −00FE00000FE000FE00000FE000FE00000FF000FE000007F000FE000007F000FE000007F0 | |
| 2142 | −00FE000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE00000FF0 | |
| 2143 | −00FE00000FF000FE00000FE000FF00000FE000FF00001FE000FF80003FC000FF80003FC0 | |
| 2144 | −00FFC0007F8000FFE000FF8000FFF003FF0000FFFC0FFE0000FFFFFFFC0000FFFFFFF800 | |
| 2145 | −00FEFFFFF000007E7FFFC000003C1FFF0000000003FC00002C3980B730>I<0000FFE000 | |
| 2146 | −0007FFFC00001FFFFE00007FFFFF0000FFFFFF8001FFFFFFC003FF807FC007FC003FC00F | |
| 2147 | −F8003FC01FF0003FC01FE0001F803FC0000F003F800000007F800000007F000000007F00 | |
| 2148 | −000000FF00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 | |
| 2149 | −0000FE00000000FE00000000FF000000007F000000007F000000007F800000003F800007 | |
| 2150 | −C03FC0000FE01FE0000FE01FF0001FE00FF8001FC007FE003FC007FFC0FF8003FFFFFF80 | |
| 2151 | −00FFFFFF00007FFFFE00001FFFF8000007FFF0000001FF8000232A7AA830>I<000001FF | |
| 2152 | −E000000003FFF000000007FFF000000007FFF000000003FFF000000001FFF00000000007 | |
| 2153 | −F00000000007F00000000007F00000000007F00000000007F00000000007F00000000007 | |
| 2154 | −F00000000007F00000000007F00000000007F0000003FE07F000001FFF87F000003FFFE7 | |
| 2155 | −F00000FFFFFFF00001FFFFFFF00003FFFFFFF00007FF03FFF0000FFC00FFF0001FF0003F | |
| 2156 | −F0001FE0001FF0003FC0001FF0003FC0000FF0007F800007F0007F000007F0007F000007 | |
| 2157 | −F000FF000007F000FF000007F000FE000007F000FE000007F000FE000007F000FE000007 | |
| 2158 | −F000FE000007F000FE000007F000FE000007F000FE000007F000FF000007F0007F00000F | |
| 2159 | −F0007F00000FF0007F80000FF0003F80001FF0003FC0003FF0001FE0003FF0001FF0007F | |
| 2160 | −F0000FF801FFF00007FE07FFFFC003FFFFFFFFE001FFFFFFFFF000FFFFF7FFF0007FFFC7 | |
| 2161 | −FFE0001FFF03FFC00007FC0000002C397DB730>I<0001FF00000007FFE000001FFFF800 | |
| 2162 | −007FFFFC0000FFFFFE0001FFFFFF0003FF81FF8007FC007FC00FF8003FC01FE0001FE01F | |
| 2163 | −E0000FE03FC0000FF03F800007F07F800007F07F000007F07F000003F8FF000003F8FE00 | |
| 2164 | −0003F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF0FE0000 | |
| 2165 | −0000FF000000007F000000007F000000007F800000003F800001F03FC00003F81FE00003 | |
| 2166 | −F80FF00003F80FF80007F807FE001FF003FFC07FE001FFFFFFE000FFFFFFC0003FFFFF80 | |
| 2167 | −001FFFFE000007FFF8000000FFC000252A7CA830>I<000000FF80000007FFE000001FFF | |
| 2168 | −F000003FFFF000007FFFF80000FFFFF80001FF87F80003FE07F80003FC03F00007F800C0 | |
| 2169 | −0007F000000007F000000007F000000007F000000007F000000007F000000007F0000000 | |
| 2170 | −07F000003FFFFFFFC07FFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFC00007 | |
| 2171 | −F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0 | |
| 2172 | −00000007F000000007F000000007F000000007F000000007F000000007F000000007F000 | |
| 2173 | −000007F000000007F000000007F000000007F000000007F000000007F000000007F00000 | |
| 2174 | −0007F000000007F000000007F000000007F000000007F000003FFFFFFE007FFFFFFF00FF | |
| 2175 | −FFFFFF80FFFFFFFF807FFFFFFF003FFFFFFE0025397DB830>I<0003FC00FF00001FFF87 | |
| 2176 | −FFC0003FFFDFFFC000FFFFFFFFE001FFFFFFFFE003FFFFFFFFE007FE07FF8FE007F801FE | |
| 2177 | −07C00FF000FF00000FF000FF00000FE0007F00001FE0007F80001FC0003F80001FC0003F | |
| 2178 | −80001FC0003F80001FC0003F80001FC0003F80001FE0007F80000FE0007F00000FF000FF | |
| 2179 | −00000FF000FF000007F801FE000007FE07FE000007FFFFFC000007FFFFF800000FFFFFF0 | |
| 2180 | −00000FFFFFC000000FDFFF8000000FC3FC0000000FC0000000000FC0000000000FC00000 | |
| 2181 | −00000FE0000000000FF00000000007FFFFF0000007FFFFFF000003FFFFFFC00007FFFFFF | |
| 2182 | −F0000FFFFFFFF8001FFFFFFFFC003FE0001FFE003F800001FE007F0000007F007E000000 | |
| 2183 | −3F00FE0000003F80FC0000001F80FC0000001F80FC0000001F80FC0000001F80FC000000 | |
| 2184 | −1F80FE0000003F807F0000007F007F800000FF003FC00001FE003FF00007FE001FFF007F | |
| 2185 | −FC000FFFFFFFF80007FFFFFFF00001FFFFFFC000007FFFFF0000001FFFFC00000001FFC0 | |
| 2186 | −00002B3E7DA730>I<3FFC000000007FFE00000000FFFE00000000FFFE000000007FFE00 | |
| 2187 | −0000003FFE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00 | |
| 2188 | −00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE01 | |
| 2189 | −FE000000FE0FFF800000FE3FFFE00000FEFFFFF00000FFFFFFF80000FFFFFFF80000FFFE | |
| 2190 | −07FC0000FFF803FC0000FFE001FE0000FFC001FE0000FF8000FE0000FF8000FE0000FF00 | |
| 2191 | −00FE0000FF0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 | |
| 2192 | −00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 | |
| 2193 | −00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 | |
| 2194 | −00FE0000FE0000FE0000FE0000FE0000FE0000FE003FFFF81FFFF87FFFFC3FFFFCFFFFFE | |
| 2195 | −3FFFFEFFFFFE3FFFFE7FFFFC3FFFFC3FFFF81FFFF82F3880B730>I<0000E000000003F8 | |
| 2196 | −00000003F800000007FC00000007FC00000007FC00000003F800000003F800000000E000 | |
| 2197 | −000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2198 | −000000000000000000001FFFF800003FFFFC00007FFFFC00007FFFFC00003FFFFC00001F | |
| 2199 | −FFFC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001 | |
| 2200 | −FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC | |
| 2201 | −00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00 | |
| 2202 | −000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00003FFFFFFFC0 | |
| 2203 | −7FFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFE03FFFFFFFC023397AB830>I<000001C0 | |
| 2204 | −000007F0000007F000000FF800000FF800000FF8000007F0000007F0000001C000000000 | |
| 2205 | −000000000000000000000000000000000000000000000000000000000000000000FFFFF0 | |
| 2206 | −01FFFFF801FFFFF801FFFFF801FFFFF800FFFFF8000003F8000003F8000003F8000003F8 | |
| 2207 | −000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8 | |
| 2208 | −000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8 | |
| 2209 | −000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8 | |
| 2210 | −000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8 | |
| 2211 | −000003F8000007F0000007F03C0007F07E000FE0FF001FE0FF003FC0FF007FC0FFFFFF80 | |
| 2212 | −7FFFFF007FFFFE003FFFFC000FFFF00003FFC0001D4E7CB830>I<7FF800000000FFFC00 | |
| 2213 | −000000FFFC00000000FFFC00000000FFFC000000007FFC0000000000FC0000000000FC00 | |
| 2214 | −00000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC00 | |
| 2215 | −00000000FC0000000000FC0000000000FC0000000000FC03FFFF8000FC07FFFFC000FC07 | |
| 2216 | −FFFFE000FC07FFFFE000FC07FFFFC000FC03FFFF8000FC001FE00000FC003FC00000FC00 | |
| 2217 | −7F800000FC00FF000000FC01FE000000FC03FC000000FC0FF8000000FC1FF0000000FC3F | |
| 2218 | −E0000000FC7FC0000000FCFF80000000FDFFC0000000FFFFE0000000FFFFF0000000FFF7 | |
| 2219 | −F0000000FFE3F8000000FFC1FC000000FF81FE000000FF00FF000000FE007F000000FC00 | |
| 2220 | −3F800000FC001FC00000FC001FE00000FC000FF00000FC0007F00000FC0003F80000FC00 | |
| 2221 | −01FC007FFFF81FFFE0FFFFFC3FFFF0FFFFFC3FFFF8FFFFFC3FFFF8FFFFFC3FFFF07FFFF8 | |
| 2222 | −1FFFE02D387FB730>I<7FFFF80000FFFFFC0000FFFFFC0000FFFFFC0000FFFFFC00007F | |
| 2223 | −FFFC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001 | |
| 2224 | −FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC | |
| 2225 | −00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00 | |
| 2226 | −000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000 | |
| 2227 | −0001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000 | |
| 2228 | −01FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001 | |
| 2229 | −FC00000001FC00007FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFF | |
| 2230 | −FFF025387BB730>I<0000FC007E00007FC3FF01FF8000FFEFFF87FFC000FFFFFFCFFFE0 | |
| 2231 | −00FFFFFFDFFFE000FFFFFFFFFFF0007FFF0FFF87F00007FE07FF03F80007FC07FE03F800 | |
| 2232 | −07F803FC01F80007F803FC01F80007F003F801F80007F003F801F80007F003F801F80007 | |
| 2233 | −E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E0 | |
| 2234 | −03F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003 | |
| 2235 | −F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F0 | |
| 2236 | −01F80007E003F001F80007E003F001F80007E003F001F80007E003F001F8007FFE0FFF07 | |
| 2237 | −FF80FFFF1FFF8FFFC0FFFF1FFF8FFFC0FFFF1FFF8FFFC0FFFF1FFF8FFFC07FFE0FFF07FF | |
| 2238 | −80322881A730>I<000001FE00003FFC0FFF80007FFE3FFFE000FFFEFFFFF000FFFFFFFF | |
| 2239 | −F8007FFFFFFFF8003FFFFE07FC0000FFF803FC0000FFE001FE0000FFC001FE0000FF8000 | |
| 2240 | −FE0000FF8000FE0000FF0000FE0000FF0000FE0000FE0000FE0000FE0000FE0000FE0000 | |
| 2241 | −FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000 | |
| 2242 | −FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000 | |
| 2243 | −FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE003FFFF81F | |
| 2244 | −FFF87FFFFC3FFFFCFFFFFE3FFFFEFFFFFE3FFFFE7FFFFC3FFFFC3FFFF81FFFF82F2880A7 | |
| 2245 | −30>I<0001FF0000000FFFE000003FFFF800007FFFFC0000FFFFFE0003FFFFFF8003FF01 | |
| 2246 | −FF8007FC007FC00FF8003FE01FE0000FF01FE0000FF03FC00007F83F800003F87F800003 | |
| 2247 | −FC7F000001FC7F000001FC7F000001FCFE000000FEFE000000FEFE000000FEFE000000FE | |
| 2248 | −FE000000FEFE000000FEFE000000FEFE000000FEFF000001FE7F000001FC7F000001FC7F | |
| 2249 | −800003FC3F800003F83FC00007F83FE0000FF81FF0001FF00FF8003FE00FFC007FE007FF | |
| 2250 | −01FFC003FFFFFF8001FFFFFF00007FFFFC00003FFFF800000FFFE0000001FF0000272A7C | |
| 2251 | −A830>I<000003FE00003FFC1FFF80007FFE7FFFE000FFFEFFFFF000FFFFFFFFFC007FFF | |
| 2252 | −FFFFFE003FFFFE07FE0000FFF001FF0000FFE000FF8000FFC0007F8000FF80003FC000FF | |
| 2253 | −00001FC000FE00001FE000FE00000FE000FE00000FE000FE00000FF000FE000007F000FE | |
| 2254 | −000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE | |
| 2255 | −000007F000FE00000FF000FE00000FF000FE00000FE000FF00000FE000FF00001FE000FF | |
| 2256 | −80003FC000FF80003FC000FFC0007F8000FFE000FF8000FFF003FF0000FFFC0FFE0000FF | |
| 2257 | −FFFFFC0000FFFFFFF80000FEFFFFF00000FE7FFFC00000FE1FFF000000FE03FC000000FE | |
| 2258 | −0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE | |
| 2259 | −0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE | |
| 2260 | −000000003FFFF80000007FFFFC000000FFFFFE000000FFFFFE0000007FFFFC0000003FFF | |
| 2261 | −F80000002C3C80A730>I<0001FF00F800000FFFC1FC00003FFFF1FC00007FFFFDFC0001 | |
| 2262 | −FFFFFFFC0003FFFFFFFC0007FF81FFFC000FFC007FFC000FF8001FFC001FF0000FFC001F | |
| 2263 | −E00007FC003FC00007FC003F800003FC007F800003FC007F000003FC007F000001FC00FF | |
| 2264 | −000001FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE | |
| 2265 | −000001FC00FE000001FC00FF000001FC007F000001FC007F000003FC007F800003FC007F | |
| 2266 | −800003FC003FC00007FC003FC0000FFC001FE0001FFC000FF0003FFC000FFC007FFC0007 | |
| 2267 | −FF01FFFC0003FFFFFFFC0001FFFFFDFC0000FFFFF9FC00003FFFF1FC00000FFFC1FC0000 | |
| 2268 | −03FE01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000 | |
| 2269 | −000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000 | |
| 2270 | −000001FC0000000001FC00000000FFFFF8000001FFFFFC000001FFFFFC000001FFFFFC00 | |
| 2271 | −0001FFFFFC000000FFFFF82E3C7DA730>I<00000007F8003FFF803FFF007FFFC0FFFF80 | |
| 2272 | −FFFFC3FFFF80FFFFCFFFFFC07FFFDFFFFFC03FFFFFFC3FC0001FFFE03FC0001FFF801F80 | |
| 2273 | −001FFF000F00001FFE000000001FFC000000001FF8000000001FF0000000001FF0000000 | |
| 2274 | −001FE0000000001FE0000000001FE0000000001FE0000000001FC0000000001FC0000000 | |
| 2275 | −001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000 | |
| 2276 | −001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000 | |
| 2277 | −001FC00000003FFFFFFC00007FFFFFFE0000FFFFFFFF0000FFFFFFFF00007FFFFFFE0000 | |
| 2278 | −3FFFFFFC00002A287EA730>I<001FFC1E0001FFFF9F0007FFFFFF000FFFFFFF001FFFFF | |
| 2279 | −FF003FFFFFFF007FF007FF007F8001FF00FE0000FF00FC00007F00FC00007F00FC00007F | |
| 2280 | −00FC00007F00FE00003E007F000000007FE00000003FFF0000001FFFFC00000FFFFF8000 | |
| 2281 | −07FFFFE00001FFFFF800007FFFFC000003FFFE0000000FFF00000000FF807C00007F80FE | |
| 2282 | −00001FC0FE00001FC0FE00000FC0FF00000FC0FF00000FC0FF80000FC0FF80001FC0FFC0 | |
| 2283 | −003F80FFE0007F80FFFC03FF00FFFFFFFF00FFFFFFFE00FFFFFFFC00FCFFFFF000F83FFF | |
| 2284 | −C000780FFE0000222A79A830>I<0007800000000FC00000001FC00000001FC00000001F | |
| 2285 | −C00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000003FFFFF | |
| 2286 | −FFE07FFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFE0001FC00000001FC000 | |
| 2287 | −00001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000 | |
| 2288 | −001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000000 | |
| 2289 | −1FC00000001FC00000001FC000F8001FC001FC001FC001FC001FC001FC001FC001FC001F | |
| 2290 | −C001FC001FE003FC000FE007F8000FF007F8000FFC1FF00007FFFFE00003FFFFC00003FF | |
| 2291 | −FF800001FFFF0000007FFC0000001FF00026337EB130>I<3FFC003FFC007FFE007FFE00 | |
| 2292 | −FFFE00FFFE00FFFE00FFFE007FFE007FFE003FFE003FFE0000FE0000FE0000FE0000FE00 | |
| 2293 | −00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 | |
| 2294 | −00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 | |
| 2295 | −00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 | |
| 2296 | −00FE0000FE0000FE0000FE0000FE0001FE0000FE0001FE0000FE0003FE0000FE0007FE00 | |
| 2297 | −00FF000FFE00007FC07FFFF8007FFFFFFFFC003FFFFFFFFE001FFFFFFFFE000FFFFEFFFC | |
| 2298 | −0007FFF87FF80000FFC000002F2880A630>I<3FFFC07FFF807FFFE0FFFFC0FFFFE0FFFF | |
| 2299 | −E0FFFFE0FFFFE07FFFE0FFFFC03FFFC07FFF8001F80003F00001F80003F00001FC0007F0 | |
| 2300 | −0000FC0007E00000FC0007E00000FE000FE000007E000FC000007E000FC000007F001FC0 | |
| 2301 | −00003F001F8000003F001F8000003F803F8000001F803F0000001F803F0000001FC07F00 | |
| 2302 | −00000FC07E0000000FC07E0000000FE0FE00000007E0FC00000007E0FC00000007F1FC00 | |
| 2303 | −000003F1F800000003F1F800000003F1F800000001FBF000000001FBF000000001FBF000 | |
| 2304 | −000001FFF000000000FFE000000000FFE000000000FFE0000000007FC0000000003F8000 | |
| 2305 | −002B277EA630>I<3FFFC01FFFE07FFFE03FFFF0FFFFE03FFFF8FFFFE03FFFF87FFFE03F | |
| 2306 | −FFF03FFFC01FFFE007E000003F0007E000003F0007F000007F0003F000007E0003F00000 | |
| 2307 | −7E0003F000007E0003F000007E0003F000007E0003F80000FE0001F80000FC0001F80F80 | |
| 2308 | −FC0001F81FC0FC0001F83FE0FC0001F83FE0FC0001F83FE0FC0000FC7FF1F80000FC7FF1 | |
| 2309 | −F80000FC7DF1F80000FC7DF1F80000FCFDF9F800007CFDF9F000007CF8F9F000007CF8F9 | |
| 2310 | −F000007CF8F9F000007EF8FBF000007EF8FBF000003FF07FE000003FF07FE000003FF07F | |
| 2311 | −E000003FE03FE000003FE03FE000001FE03FC000000F800F80002D277FA630>I<3FFF81 | |
| 2312 | −FFFC007FFFC3FFFE00FFFFC3FFFF00FFFFC3FFFF007FFFC3FFFE003FFF81FFFC0000FE00 | |
| 2313 | −7F0000007F007F0000007F80FE0000003F81FC0000001FC3F80000000FE3F80000000FE7 | |
| 2314 | −F000000007FFE000000003FFC000000001FFC000000000FF8000000000FF00000000007E | |
| 2315 | −00000000007F0000000000FF0000000001FF8000000001FFC000000003F7E000000007E7 | |
| 2316 | −E00000000FE3F00000000FC1F80000001F81FC0000003F80FE0000007F007E0000007E00 | |
| 2317 | −7F000000FE003F800001FC001FC0007FFF80FFFF00FFFFC1FFFF80FFFFE3FFFF80FFFFE3 | |
| 2318 | −FFFF80FFFFC1FFFF807FFF80FFFF0029277DA630>I<3FFFC07FFF807FFFE0FFFFC0FFFF | |
| 2319 | −E0FFFFE0FFFFE0FFFFE07FFFE0FFFFC03FFFC07FFF8001FC0003F00001FC0003F00000FC | |
| 2320 | −0007F00000FE0007E000007E0007E000007E000FE000007F000FC000003F000FC000003F | |
| 2321 | −001FC000001F801F8000001F801F8000001FC01F8000000FC03F0000000FC03F0000000F | |
| 2322 | −E03F00000007E07E00000007E07E00000003F07E00000003F07C00000003F0FC00000001 | |
| 2323 | −F8FC00000001F8F800000001F8F800000000F9F800000000FDF0000000007DF000000000 | |
| 2324 | −7FF0000000007FF0000000003FE0000000003FE0000000003FE0000000001FC000000000 | |
| 2325 | −1FC0000000001FC0000000001F80000000001F80000000003F80000000003F0000000000 | |
| 2326 | −3F00000000007F00000000007E00000000007E0000000F00FE0000001F80FC0000003FC1 | |
| 2327 | −FC0000003FC3F80000003F87F80000003F8FF00000003FFFE00000001FFFC00000001FFF | |
| 2328 | −800000000FFF0000000007FE0000000001F0000000002B3C7EA630>I<1FFFFFFFFC3FFF | |
| 2329 | −FFFFFE7FFFFFFFFE7FFFFFFFFE7FFFFFFFFE7FFFFFFFFC7F00000FF87F00001FF07F0000 | |
| 2330 | −3FE07F00007FC07F0000FF803E0001FF00000003FE00000007FC0000000FF80000001FF0 | |
| 2331 | −0000003FE00000007FC0000000FF80000001FF00000003FE00000007FC0000000FF80000 | |
| 2332 | −001FF00000003FE00000007FC0000000FF80003E01FF00007F03FE00007F07FC00007F0F | |
| 2333 | −F800007F1FF000007F3FE000007F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | |
| 2334 | −FFFFFF7FFFFFFFFE28277DA630>I<0000003FF0000003FFF800000FFFF800001FFFF800 | |
| 2335 | −007FFFF800007FFFF00000FFF0000000FF00000001FE00000001FC00000001FC00000001 | |
| 2336 | −FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC | |
| 2337 | −00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00 | |
| 2338 | −000001FC00000001FC00000001FC00000003FC00000007F80000003FF800003FFFF00000 | |
| 2339 | −FFFFE00000FFFFC00000FFFF000000FFFFC00000FFFFE000003FFFF00000003FF8000000 | |
| 2340 | −07F800000003FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001 | |
| 2341 | −FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC | |
| 2342 | −00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00 | |
| 2343 | −000001FE00000000FF00000000FFF00000007FFFF000007FFFF800001FFFF800000FFFF8 | |
| 2344 | −000003FFF80000003FF025477BBE30>I<7C7CFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE | |
| 2345 | −FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE | |
| 2346 | −FEFEFEFEFEFEFEFEFEFEFEFEFEFE7C7C07476CBE30>I<7FE0000000FFFE000000FFFF80 | |
| 2347 | −0000FFFFC00000FFFFF000007FFFF00000007FF800000007F800000003FC00000001FC00 | |
| 2348 | −000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000 | |
| 2349 | −0001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000 | |
| 2350 | −01FC00000001FC00000001FC00000001FC00000001FC00000001FE00000000FF00000000 | |
| 2351 | −FFE00000007FFFE000003FFFF800001FFFF8000007FFF800001FFFF800003FFFF800007F | |
| 2352 | −FFE00000FFE0000000FF00000001FE00000001FC00000001FC00000001FC00000001FC00 | |
| 2353 | −000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000 | |
| 2354 | −0001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000 | |
| 2355 | −01FC00000001FC00000003FC00000007F80000007FF800007FFFF00000FFFFF00000FFFF | |
| 2356 | −C00000FFFF800000FFFE0000007FE000000025477BBE30>I<007C003801FF007C03FF80 | |
| 2357 | −FE07FFC1FE0FFFC3FE1FFFEFFC7FEFFFF0FF87FFE0FF07FFC0FE03FF807C01FF0038007C | |
| 2358 | −001F0C78B730>I E /Fo 39 122 df<0000000007FF80000000003FFFE000000000FE00 | |
| 2359 | −F800000001F0003E00000007E0000E0000000FC0001F0000000F80007F0000001F8000FF | |
| 2360 | −0000003F0000FF0000003F0000FF0000003F0000FE0000007E0000FE0000007E00007800 | |
| 2361 | −00007E000000000000FE000000000000FC000000000000FC000000000000FC0000000000 | |
| 2362 | −01FC000000000001FC000000000001F8000000000001F8000000000001F8000000000001 | |
| 2363 | −F8000000000003F80000000003FFFFFFFFF00003FFFFFFFFF00003FFFFFFFFE0000003F0 | |
| 2364 | −0007E0000007F0000FE0000007E0000FC0000007E0000FC0000007E0000FC0000007E000 | |
| 2365 | −1FC000000FE0001F8000000FC0001F8000000FC0001F8000000FC0003F8000000FC0003F | |
| 2366 | −0000001FC0003F0000001F80003F0000001F80007F0000001F80007E0000001F80007E00 | |
| 2367 | −00003F80007E0000003F0000FE0000003F0000FC0000003F0000FC0000003F0000FC0000 | |
| 2368 | −007F0001FC0000007E0001F81C00007E0001F81C00007E0001F81C00007E0003F81C0000 | |
| 2369 | −FE0003F03C0000FC0003F0380000FC0003F0380000FC0003F0780000FC0003F0700001FC | |
| 2370 | −0003F0700001F80001F0F00001F80001F0E00001F80000F1C00001F800007F800003F000 | |
| 2371 | −001F000003F0000000000003F0000000000003F0000000000003E0000000000007E00000 | |
| 2372 | −00000007E0000000001E07C0000000007F07C0000000007F0FC000000000FF0F80000000 | |
| 2373 | −00FF0F8000000000FF1F0000000000FE1F0000000000F81E0000000000703C0000000000 | |
| 2374 | −787800000000001FF0000000000007C00000000000385383BF33>12 | |
| 2375 | −D<0000000007FC00007FF800000000003FFF8003FFFF0000000000FC03C00FE007C00000 | |
| 2376 | −0003F001E03F0001F000000007E001F07C0000700000000FC007F0F80000F80000000F80 | |
| 2377 | −0FF1F80003F80000001F800FF3F00007F80000001F800FF3F00007F80000003F000FF7E0 | |
| 2378 | −0007F80000003F000FE7E00007F00000003F00038FC00007F00000007E00000FC00003C0 | |
| 2379 | −0000007E00000FC00000000000007E00000FC00000000000007E00001FC0000000000000 | |
| 2380 | −FE00001F80000000000000FC00001F80000000000000FC00001F80000000000000FC0000 | |
| 2381 | −3F80000000000000FC00003F80000000000001FC00003F00000000000001F800003F0000 | |
| 2382 | −0000000001F800003F00000000000001F800003F000000000001FFFFFFFFFFFFFFFF8000 | |
| 2383 | −03FFFFFFFFFFFFFFFF800003FFFFFFFFFFFFFFFF00000003F000007E00003F00000003F0 | |
| 2384 | −00007E00007F00000003F00000FE00007E00000007F00000FC00007E00000007E00000FC | |
| 2385 | −00007E00000007E00000FC0000FE00000007E00000FC0000FC00000007E00001FC0000FC | |
| 2386 | −0000000FE00001F80000FC0000000FC00001F80001FC0000000FC00001F80001F8000000 | |
| 2387 | −0FC00001F80001F80000000FC00003F80001F80000001FC00003F00003F80000001F8000 | |
| 2388 | −03F00003F00000001F800003F00003F00000001F800003F00003F00000001F800007F000 | |
| 2389 | −07F00000003F800007E00007E00000003F800007E00007E00000003F000007E00007E000 | |
| 2390 | −00003F000007E0000FE00000003F00000FE0000FC0E000003F00000FC0000FC0E000007F | |
| 2391 | −00000FC0000FC0E000007E00000FC0001FC0E000007E00000FC0001F81E000007E00000F | |
| 2392 | −C0001F81C000007E00001FC0001F81C00000FE00001F80001F83C00000FC00001F80001F | |
| 2393 | −83800000FC00001F80001F83800000FC00003F80000F87800000FC00003F00000F870000 | |
| 2394 | −01F800003F0000078E000001F800003F000003FC000001F800003F000000F8000001F800 | |
| 2395 | −007E00000000000003F000007E00000000000003F000007E00000000000003F000007C00 | |
| 2396 | −000000000003F00000FC00000000000003E00000FC00000000001E07E07800F800000000 | |
| 2397 | −007F07E1FC01F800000000007F07C1FC01F80000000000FF0FC3FC01F00000000000FF0F | |
| 2398 | −83FC03E00000000000FF0F83FC07E00000000000FE1F03F807C00000000000F81E03E00F | |
| 2399 | −800000000000703C01C01E000000000000787800F07C0000000000001FF0007FF0000000 | |
| 2400 | −00000007C0001FC0000000000000555383BF50>14 D<00003C0000FE0001FF0003FF0003 | |
| 2401 | −FF0003FF0003FF0003FE0007FE0007FE0007FC0007FC0007FC0007F8000FF8000FF8000F | |
| 2402 | −F0000FF0000FF0000FE0001FE0001FE0001FC0001FC0001FC0001F80003F80003F80003F | |
| 2403 | −00003F00003F00003E00007E00007E00007C00007C00007C0000780000F80000F80000F0 | |
| 2404 | −0000F00000F00000E00001E00001E00000C0000000000000000000000000000000000000 | |
| 2405 | −000000000000000F00003FC0007FC0007FC000FFC000FFC000FFC000FF80007F00003C00 | |
| 2406 | −00184177C01C>33 D<01E000F007F803FC0FF807FC0FFC07FE1FFC0FFE1FFC0FFE1FFC0F | |
| 2407 | −FE1FFC0FFE0FFC07FE03D801EC0018000C0018000C0038001C0030001800700038006000 | |
| 2408 | −3000E0007000C0006001C000E0038001C003000180070003800E0007001C000E0038001C | |
| 2409 | −0070003800E0007000C00060001F1C70BE2F>I<0F003FC07FC07FC0FFC0FFC0FFC0FF80 | |
| 2410 | −7F003C000A0A77891C>46 D<00000003000000070000000F0000001F0000001E0000003E | |
| 2411 | −0000007E000001FE000003FC000007FC00001FFC0001FFFC000FFBF8001FC3F8000E07F8 | |
| 2412 | −000007F8000007F0000007F000000FF000000FF000000FE000000FE000001FE000001FE0 | |
| 2413 | −00001FC000001FC000003FC000003FC000003F8000003F8000007F8000007F8000007F00 | |
| 2414 | −00007F000000FF000000FF000000FE000000FE000001FE000001FE000001FC000001FC00 | |
| 2415 | −0003FC000003FC000003F8000003F8000007F8000007F8000007F0000007F000000FF000 | |
| 2416 | −000FF000000FE000000FE000001FE000001FE000001FC000007FE000FFFFFFF0FFFFFFF0 | |
| 2417 | −FFFFFFE0203D77BC2E>49 D<0000000FE00000007FF8000001F01C000007C00E00001F80 | |
| 2418 | −0F00003E000700007C001F0000F8007F0001F000FF0003F000FF0007E000FF000FC000FE | |
| 2419 | −001FC000FE003F800078003F000000007F00000000FE00000000FE00000001FC00000001 | |
| 2420 | −FC00000003FC00000003F800000007F81FC00007F87FF0000FF1E07C000FF3803E000FF7 | |
| 2421 | −003E001FFE001F001FFC001F801FF8001F801FF0000FC03FF0000FC03FE0000FC03FE000 | |
| 2422 | −1FC03FC0001FE07FC0001FE07FC0001FE07F80001FE07F80003FC07F80003FC0FF00003F | |
| 2423 | −C0FF00003FC0FF00007FC0FF00007F80FE00007F80FE00007F80FE0000FF80FE0000FF00 | |
| 2424 | −FE0000FF00FE0001FE00FE0001FE00FC0001FC007C0003F8007C0003F8007E0007F0007E | |
| 2425 | −000FE0003E001FC0003F003F80001F807E00000FC1FC000007FFF8000003FFE00000007F | |
| 2426 | −000000283F76BC2E>54 D<0000007F00000001FFE0000007C0F000001F007C00003C003C | |
| 2427 | −000078003E0000F0001F0001F0001F0003E0001F0003C0001F0007C0001F0007C0001F00 | |
| 2428 | −0F80001F000F80001F000F80003F001F80003E001F80003E001F80007E001FC0007C001F | |
| 2429 | −C000F8001FE001F8001FF001F0001FF803E0001FFC07C0000FFE0F00000FFFBE000007FF | |
| 2430 | −F8000003FFF0000001FFF0000000FFF8000000FFFC000003FFFE00000F9FFF00001F0FFF | |
| 2431 | −80007C07FFC000F803FFC001F001FFE003E0007FE007C0003FE00F80001FE01F80000FE0 | |
| 2432 | −1F00000FE03E000007E03E000007E07E000007E07C000007E07C000007E0FC000007C0F8 | |
| 2433 | −000007C0F8000007C0F800000F80F800000F80F800001F00F800003E007C00003C007C00 | |
| 2434 | −007C007E0000F8003F0003F0001F8007C0000FE03F800007FFFE000001FFF80000003FC0 | |
| 2435 | −0000283F78BC2E>56 D<001E00003F80007F8000FFC001FFC001FFC001FF8000FF0000FE | |
| 2436 | −00003C000000000000000000000000000000000000000000000000000000000000000000 | |
| 2437 | −000000000000000000000000000000000000000000000000000F00003FC0007FC0007FC0 | |
| 2438 | −00FFC000FFC000FFC000FF80007F00003C0000122777A61C>58 D<00000000FF8001C000 | |
| 2439 | −00000FFFE001C00000003FFFF80380000000FF807E0780000003FC001F0F8000000FF000 | |
| 2440 | −071F8000001FC00007BF0000007F800003FF000000FF000001FF000001FE000001FF0000 | |
| 2441 | −03F8000000FE000007F0000000FE00000FF0000000FE00001FE00000007E00003FC00000 | |
| 2442 | −007C00007F800000007C0000FF800000007C0000FF000000007C0001FE00000000780003 | |
| 2443 | −FE00000000780003FC00000000780007FC00000000780007F80000000070000FF8000000 | |
| 2444 | −0070000FF80000000070001FF00000000070001FF00000000000003FE00000000000003F | |
| 2445 | −E00000000000003FE00000000000007FE00000000000007FC00000000000007FC0000000 | |
| 2446 | −0000007FC0000000000000FFC0000000000000FF80000000000000FF80000000000000FF | |
| 2447 | −80000000000000FF80000000000000FF00000000000000FF00000000000000FF00000000 | |
| 2448 | −0F0000FF000000000F0000FF000000000E0000FF000000000E0000FF000000001E0000FF | |
| 2449 | −000000001C0000FF000000003C0000FF00000000380000FF000000007800007F00000000 | |
| 2450 | −7000007F80000000F000007F80000001E000003F80000001C000003FC0000003C000001F | |
| 2451 | −C00000078000001FE000000F0000000FE000001E00000007F000003C00000003F80000F8 | |
| 2452 | −00000001FC0001F000000000FE0007C0000000007FC03F80000000001FFFFE0000000000 | |
| 2453 | −07FFF0000000000000FF80000000003A4272BF41>67 D<0001FFFFFFFFFFF00001FFFFFF | |
| 2454 | −FFFFF00001FFFFFFFFFFF0000003FE00003FF0000003FE00000FF0000003FC000003F000 | |
| 2455 | −0003FC000003F0000003FC000001E0000007FC000001E0000007F8000001E0000007F800 | |
| 2456 | −0001E0000007F8000001E000000FF8000001E000000FF0000001E000000FF0000001C000 | |
| 2457 | −000FF0000001C000001FF0000001C000001FE0000001C000001FE0007001C000001FE000 | |
| 2458 | −F003C000003FE000E0038000003FC000E0000000003FC000E0000000003FC001E0000000 | |
| 2459 | −007FC001C0000000007F8003C0000000007F8003C0000000007F8007C000000000FF801F | |
| 2460 | −8000000000FFFFFF8000000000FFFFFF8000000000FFFFFF8000000001FF003F00000000 | |
| 2461 | −01FE001F0000000001FE000F0000000001FE000F0000000003FE000E0000000003FC000E | |
| 2462 | −0000000003FC000E0000000003FC001E0000000007FC001C0000000007F8001C00000000 | |
| 2463 | −07F8001C0000000007F80000000000000FF80000000000000FF00000000000000FF00000 | |
| 2464 | −000000000FF00000000000001FF00000000000001FE00000000000001FE0000000000000 | |
| 2465 | −1FE00000000000003FE00000000000003FC00000000000003FC00000000000007FC00000 | |
| 2466 | −000000007FC00000000000007F80000000000000FFC00000000000FFFFFFE000000000FF | |
| 2467 | −FFFFE000000000FFFFFFE0000000003C3E7BBD3B>70 D<0001FFFE00000FFFFF0003FFFF | |
| 2468 | −00001FFFFF0003FFFF00001FFFFF000001FF800000FFC0000003FF8000003F00000003FF | |
| 2469 | −8000003E00000003FFC000001C00000003FFC000003C00000007BFC000003C000000073F | |
| 2470 | −E0000038000000071FE0000038000000071FE00000780000000F1FF00000780000000E0F | |
| 2471 | −F00000700000000E0FF80000700000000E0FF80000F00000001E07F80000F00000001C07 | |
| 2472 | −FC0000E00000001C07FC0000E00000001C03FC0001E00000003C03FE0001E00000003801 | |
| 2473 | −FE0001C00000003801FE0001C00000003801FF0003C00000007800FF0003C00000007000 | |
| 2474 | −FF8003800000007000FF80038000000070007F800780000000F0007FC00780000000E000 | |
| 2475 | −3FC00700000000E0003FC00700000000E0003FE00F00000001E0001FE00F00000001C000 | |
| 2476 | −1FF00E00000001C0001FF00E00000001C0000FF01E00000003C0000FF81E000000038000 | |
| 2477 | −0FF81C00000003800007F81C00000003800007FC3C00000007800003FC3C000000070000 | |
| 2478 | −03FC3800000007000003FE3800000007000001FE780000000F000001FF780000000E0000 | |
| 2479 | −01FF700000000E000000FF700000000E000000FFF00000001E000000FFF00000001C0000 | |
| 2480 | −007FE00000001C0000007FE00000001C0000003FE00000003C0000003FE0000000380000 | |
| 2481 | −003FC0000000380000001FC0000000780000001FC0000000F80000001FC0000001FC0000 | |
| 2482 | −000F80000007FE0000000F800000FFFFF0000007800000FFFFF0000007800000FFFFF000 | |
| 2483 | −0007000000483E7BBD44>78 D<0001FFFFFFFF80000001FFFFFFFFF0000001FFFFFFFFFC | |
| 2484 | −00000003FE0003FE00000003FE0000FF00000003FC00007F80000003FC00003FC0000007 | |
| 2485 | −FC00001FC0000007FC00001FE0000007F800001FE0000007F800001FE000000FF800001F | |
| 2486 | −F000000FF800001FF000000FF000001FF000000FF000001FF000001FF000001FF000001F | |
| 2487 | −F000003FE000001FE000003FE000001FE000003FE000003FE000003FC000003FE000007F | |
| 2488 | −C000003FC000007F8000003FC000007F8000007FC00000FF0000007FC00000FE0000007F | |
| 2489 | −800001FC0000007F800003F8000000FF800007F0000000FF80000FE0000000FF00003FC0 | |
| 2490 | −000000FF0001FF00000001FFFFFFFC00000001FFFFFFE000000001FE00000000000001FE | |
| 2491 | −00000000000003FE00000000000003FE00000000000003FC00000000000003FC00000000 | |
| 2492 | −000007FC00000000000007FC00000000000007F800000000000007F80000000000000FF8 | |
| 2493 | −0000000000000FF80000000000000FF00000000000000FF00000000000001FF000000000 | |
| 2494 | −00001FF00000000000001FE00000000000001FE00000000000003FE00000000000003FE0 | |
| 2495 | −0000000000003FC00000000000003FC00000000000007FC00000000000007FC000000000 | |
| 2496 | −00007F80000000000000FFC00000000000FFFFFF8000000000FFFFFF8000000000FFFFFF | |
| 2497 | −80000000003C3E7BBD3E>80 D<0000000FF001C00000007FFE01C0000001FFFF03800000 | |
| 2498 | −07F80FC78000000FC003EF8000001F8001FF8000003F0000FF0000007E00007F000000FC | |
| 2499 | −00007F000001F800007F000003F000003E000003F000003E000007E000003E000007E000 | |
| 2500 | −003E00000FE000003C00000FC000003C00000FC000003C00000FC000003C00001FC00000 | |
| 2501 | −3800001FC000003800001FC000003800001FE000003800001FE000000000001FF0000000 | |
| 2502 | −00001FF000000000001FFC00000000000FFF00000000000FFFF0000000000FFFFE000000 | |
| 2503 | −0007FFFFC000000003FFFFF000000001FFFFFC00000000FFFFFE000000003FFFFE000000 | |
| 2504 | −000FFFFF0000000001FFFF80000000001FFF800000000003FF800000000000FFC0000000 | |
| 2505 | −00007FC000000000003FC000000000003FC000000000001FC000000000001FC000070000 | |
| 2506 | −001FC0000F0000001FC0000F0000001F80000E0000001F80000E0000001F80001E000000 | |
| 2507 | −3F80001E0000003F00001E0000003F00001E0000003E00003E0000007E00003E0000007C | |
| 2508 | −00003F000000FC00003F000001F800007F800001F000007F800003E000007FC00007C000 | |
| 2509 | −007DE0001F800000F8F8003F000000F87F00FE000000F03FFFF8000000E00FFFE0000000 | |
| 2510 | −C000FF0000000032427ABF33>83 D<000C0006001C000E0078003C00E0007001C000E001 | |
| 2511 | −8000C0038001C0070003800E0007000C0006001C000E0018000C0038001C003000180070 | |
| 2512 | −0038006000300060003000E0007000CF006780FFC07FE0FFC07FE0FFC07FE0FFC07FE0FF | |
| 2513 | −C07FE0FFC07FE0FF807FC07F003F803C001E001F1C69BE2F>92 D<00007E00000001FF80 | |
| 2514 | −000007C1C380001F80EFC0003F00FFC0007E007FC000FC007F8001F8003F8003F0003F80 | |
| 2515 | −03F0003F8007E0003F000FE0003F000FC0003F001FC0007F001FC0007E003F80007E003F | |
| 2516 | −80007E003F8000FE007F8000FC007F0000FC007F0000FC007F0001FC00FF0001F800FE00 | |
| 2517 | −01F800FE0001F800FE0003F800FE0003F038FC0003F038FC0003F038FC0007F038FC0007 | |
| 2518 | −E078FC000FE0707C000FE0707C001FE0F07E003FE0E03E007FE0E03E00F3E1E01F01E3E1 | |
| 2519 | −C00F8781E38003FF00FF0000FC003E00252977A72E>97 D<001FC0000FFFC0000FFF8000 | |
| 2520 | −0FFF8000003F8000003F8000003F0000003F0000007F0000007F0000007E0000007E0000 | |
| 2521 | −00FE000000FE000000FC000000FC000001FC000001FC000001F8000001F8000003F80000 | |
| 2522 | −03F8000003F0000003F07E0007F1FF8007F783E007EF01F007FE01F00FF800F80FF800F8 | |
| 2523 | −0FF000FC0FE0007C1FC0007C1FC0007E1F80007E1F8000FE3F8000FE3F8000FE3F0000FE | |
| 2524 | −3F0000FE7F0001FE7F0001FC7E0001FC7E0001FC7E0003FCFE0003F8FC0003F8FC0003F8 | |
| 2525 | −FC0007F0FC0007F0FC0007E0F8000FE0F8000FC0F8001FC0F8001F8078003F007C003F00 | |
| 2526 | −7C007E003C00FC003E01F8001E03E0000F07C00007FF000001F800001F4076BE2A>I<00 | |
| 2527 | −001FE0000000FFF8000003F03E000007C00F00001F800700003F000780007E001F8000FC | |
| 2528 | −007F8001F8007F8003F0007F8007F0007F0007E0007F000FE0007E001FC00000001FC000 | |
| 2529 | −00003F800000003F800000003F800000007F800000007F000000007F000000007F000000 | |
| 2530 | −00FF00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000 | |
| 2531 | −FC000003007E000007007E00000F007E00001E003E00003C003E000078001F0000F0001F | |
| 2532 | −0003E0000F800F800003E07E000001FFF80000003FC00000212977A72A>I<000000003F | |
| 2533 | −800000001FFF800000001FFF000000001FFF00000000007F00000000007F00000000007E | |
| 2534 | −00000000007E0000000000FE0000000000FE0000000000FC0000000000FC0000000001FC | |
| 2535 | −0000000001FC0000000001F80000000001F80000000003F80000000003F80000000003F0 | |
| 2536 | −0000000003F00000000007F00000000007F00000000007E00000007E07E0000001FF8FE0 | |
| 2537 | −000007C1CFE000001F80EFC000003F00FFC000007E007FC00000FC007FC00001F8003F80 | |
| 2538 | −0003F0003F800003F0003F800007E0003F80000FE0003F00000FC0003F00001FC0007F00 | |
| 2539 | −001FC0007F00003F80007E00003F80007E00003F8000FE00007F8000FE00007F0000FC00 | |
| 2540 | −007F0000FC00007F0001FC0000FF0001FC0000FE0001F80000FE0001F80000FE0003F800 | |
| 2541 | −00FE0003F83800FC0003F03800FC0003F03800FC0007F03800FC0007F07800FC000FE070 | |
| 2542 | −007C000FE070007C001FE0F0007E003FE0E0003E007FE0E0003E00F3E1E0001F01E3E1C0 | |
| 2543 | −000F8781E3800003FF00FF000000FC003E0000294077BE2E>I<00003F800001FFE00007 | |
| 2544 | −E0F8001F803C003E003C00FC001E01F8001E03F0001E07F0001E0FE0003E0FC0003C1FC0 | |
| 2545 | −003C3F80007C3F8000F83F8003F07F000FE07F00FF80FFFFFC00FFFFC000FE000000FE00 | |
| 2546 | −0000FE000000FE000000FC000000FC000000FC000000FC000000FC000000FC000000FC00 | |
| 2547 | −0006FC00000EFC00001E7C00003C7C0000783E0000F03E0001E01F0007C00F801F0007C0 | |
| 2548 | −FC0001FFF000007F80001F2976A72A>I<000000007C0000000001FF0000000007C78000 | |
| 2549 | −00000F83C00000001F87C00000001F1FC00000003F3FC00000003F3FC00000007E3FC000 | |
| 2550 | −00007E3FC00000007E3F800000007E0E00000000FC0000000000FC0000000000FC000000 | |
| 2551 | −0000FC0000000001FC0000000001F80000000001F80000000001F80000000001F8000000 | |
| 2552 | −0003F80000000003F00000000003F00000000003F000000003FFFFF8000003FFFFF80000 | |
| 2553 | −03FFFFF800000007E00000000007E00000000007E0000000000FE0000000000FC0000000 | |
| 2554 | −000FC0000000000FC0000000000FC0000000000FC0000000001FC0000000001F80000000 | |
| 2555 | −001F80000000001F80000000001F80000000003F80000000003F00000000003F00000000 | |
| 2556 | −003F00000000003F00000000007F00000000007E00000000007E00000000007E00000000 | |
| 2557 | −007E0000000000FE0000000000FC0000000000FC0000000000FC0000000000FC00000000 | |
| 2558 | −01FC0000000001F80000000001F80000000001F80000000001F80000000003F000000000 | |
| 2559 | −03F00000000003F00000000003F00000000007E00000000007E00000000007E000000000 | |
| 2560 | −07E0000000000FC00000001E0FC00000007F0FC00000007F0F80000000FF0F80000000FF | |
| 2561 | −1F00000000FF1F00000000FE1E00000000F83C00000000703C000000007878000000003F | |
| 2562 | −E0000000000F80000000002A5383BF1C>I<000003F00000000FFC0000003E0E1C0000FC | |
| 2563 | −077E0001F003FE0003F003FE0007E001FE000FC001FC001F8001FC001F8001FC003F0001 | |
| 2564 | −FC007F0001F8007E0001F800FE0003F800FE0003F801FC0003F001FC0003F001FC0007F0 | |
| 2565 | −03FC0007F003F80007E003F80007E003F8000FE007F8000FE007F0000FC007F0000FC007 | |
| 2566 | −F0001FC007F0001FC007F0001F8007E0001F8007E0003F8003E0003F8003E0007F0003F0 | |
| 2567 | −00FF0003F000FF0001F001FF0000F003FE0000F80F7E00007C1EFE00001FF8FE000007E0 | |
| 2568 | −FC00000000FC00000001FC00000001FC00000001F800000001F800000003F800000003F8 | |
| 2569 | −00000003F0001C0007F0007F0007E000FF000FE000FF000FC000FF001F8000FF003F0000 | |
| 2570 | −FE007E0000F800FC00007C03F000001FFFC0000003FE000000273B7CA72A>I<0001FC00 | |
| 2571 | −0000FFFC000000FFF8000000FFF800000003F800000003F800000003F000000003F00000 | |
| 2572 | −0007F000000007F000000007E000000007E00000000FE00000000FE00000000FC0000000 | |
| 2573 | −0FC00000001FC00000001FC00000001F800000001F800000003F800000003F800000003F | |
| 2574 | −000000003F03F800007F0FFE00007F3E0F80007E780FC0007EE007C000FFC007E000FF80 | |
| 2575 | −07E000FF0007E000FF0007E001FE0007E001FC0007E001FC0007E001F80007E003F8000F | |
| 2576 | −E003F8000FC003F0000FC003F0000FC007F0001FC007F0001F8007E0001F8007E0001F80 | |
| 2577 | −0FE0003F800FE0003F000FC0003F000FC0007F001FC0007E001FC000FE071F8000FC071F | |
| 2578 | −8000FC073F8001FC0F3F8001F80E3F0001F80E3F0001F81E7F0001F01C7F0001F01C7E00 | |
| 2579 | −01F0387E0001F038FE0001F070FE0000F0E0FC00007FC03800001F0028407ABE2E>I<00 | |
| 2580 | −00780001FC0001FC0003FC0003FC0003FC0003F80000E000000000000000000000000000 | |
| 2581 | −0000000000000000000000000000000000000000000000000000007C0001FF00038F8007 | |
| 2582 | −07800E07C01E07C01C07C03C0FC0380FC0380FC0781FC0701F80701F80F03F80F03F0000 | |
| 2583 | −3F00007F00007E0000FE0000FC0000FC0001FC0001F80001F80003F80003F00003F03807 | |
| 2584 | −F03807E0380FE0780FC0700FC0700FC0F00F80E00F80E00F81C00F83C00F838007870003 | |
| 2585 | −FE0000F800163E79BC1C>I<00000007000000001FC00000001FC00000003FC00000003F | |
| 2586 | −C00000003FC00000003F800000000E000000000000000000000000000000000000000000 | |
| 2587 | −000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2588 | −000000000000000000000007C00000003FF000000078F8000000E07C000001C07C000003 | |
| 2589 | −C07C000003807E000007007E000007007E00000E00FE00000E00FC00001E00FC00001C00 | |
| 2590 | −FC00003C01FC00003C01FC00000001F800000001F800000003F800000003F800000003F0 | |
| 2591 | −00000003F000000007F000000007F000000007E000000007E00000000FE00000000FE000 | |
| 2592 | −00000FC00000000FC00000001FC00000001FC00000001F800000001F800000003F800000 | |
| 2593 | −003F800000003F000000003F000000007F000000007F000000007E000000007E00000000 | |
| 2594 | −FE00000000FE00000000FC00000000FC00000001FC00000001F800000001F800001C01F8 | |
| 2595 | −00007F03F00000FF03F00000FF07E00000FF07C00000FF0F800000FE1F000000F83E0000 | |
| 2596 | −00707C0000003FF00000000FC0000000225083BC1C>I<0001FC000000FFFC000000FFF8 | |
| 2597 | −000000FFF800000003F800000003F800000003F000000003F000000007F000000007F000 | |
| 2598 | −000007E000000007E00000000FE00000000FE00000000FC00000000FC00000001FC00000 | |
| 2599 | −001FC00000001F800000001F800000003F800000003F800000003F000000003F0003E000 | |
| 2600 | −7F000FF8007F003C3C007E00707C007E00E1FC00FE01C1FC00FE0383FC00FC0703FC00FC | |
| 2601 | −0E03FC01FC1C03F801FC3800E001F870000001F860000003F8E0000003F9C0000003F780 | |
| 2602 | −000003FE00000007FE00000007FFE0000007E7F8000007E0FE00000FE07F00000FE03F80 | |
| 2603 | −000FC01F80000FC00FC0001FC00FC0001FC00FC0701F800FC0701F800FC0703F800FC0F0 | |
| 2604 | −3F801FC0E03F001F80E03F001F80E07F001F81E07F001F81C07E000F83C07E000F8380FE | |
| 2605 | −000F8780FE00078F00FC0003FE00380000F80026407ABE2A>I<0007F003FFF003FFE003 | |
| 2606 | −FFE0000FE0000FE0000FC0000FC0001FC0001FC0001F80001F80003F80003F80003F0000 | |
| 2607 | −3F00007F00007F00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC0001F80001 | |
| 2608 | −F80003F80003F80003F00003F00007F00007F00007E00007E0000FE0000FE0000FC0000F | |
| 2609 | −C0001FC0001FC0001F80001F80003F80003F80003F00003F00007F00007F07007E07007E | |
| 2610 | −0700FE0F00FE0E00FC0E00FC0E00FC1E00FC1C00FC1C007C38007C78003C70001FE00007 | |
| 2611 | −8000144079BE17>I<01F0003F80007F000007FC01FFE003FFC0000F3E07C1F80F83F000 | |
| 2612 | −0E1F0F00FC1E01F8001E1F1C007C3800F8001C1F38007E7000FC003C1FF0007EE000FC00 | |
| 2613 | −381FF0007FE000FC00381FE0007FC000FC00783FC0007F8000FC00703FC0007F8000FC00 | |
| 2614 | −703F80007F0000FC00703F00007E0000FC00F03F0000FE0001FC00F07F0000FC0001F800 | |
| 2615 | −007E0000FC0001F800007E0000FC0001F800007E0001FC0003F80000FE0001FC0003F000 | |
| 2616 | −00FC0001F80003F00000FC0001F80003F00000FC0003F80007F00001FC0003F80007E000 | |
| 2617 | −01F80003F00007E00001F80003F0000FE00001F80007F0000FC00003F80007F0001FC0E0 | |
| 2618 | −03F00007E0001F80E003F00007E0001F80E003F0000FE0003F81E007F0000FE0003F01C0 | |
| 2619 | −07E0000FC0003F01C007E0000FC0003F01C007E0001FC0003E03800FE0001FC0003E0380 | |
| 2620 | −0FC0001F80003E07000FC0001F80003E07000FC0003F80003E0E001FC0003F80001E1C00 | |
| 2621 | −1F80003F00000FF8000700000E000003E000432979A74A>I<01F0003F800007FC01FFE0 | |
| 2622 | −000F3E07C1F8000E1F0F00FC001E1F1C007C001C1F38007E003C1FF0007E00381FF0007E | |
| 2623 | −00381FE0007E00783FC0007E00703FC0007E00703F80007E00703F00007E00F03F0000FE | |
| 2624 | −00F07F0000FC00007E0000FC00007E0000FC00007E0001FC0000FE0001F80000FC0001F8 | |
| 2625 | −0000FC0001F80000FC0003F80001FC0003F00001F80003F00001F80007F00001F80007E0 | |
| 2626 | −0003F8000FE07003F0000FC07003F0000FC07003F0001FC0F007F0001F80E007E0001F80 | |
| 2627 | −E007E0001F81E007E0001F01C00FE0001F01C00FC0001F03800FC0001F03800FC0001F07 | |
| 2628 | −001FC0000F0E001F800007FC0007000001F0002C2979A733>I<00001FC0000000FFF800 | |
| 2629 | −0003F07C00000FC01F00001F801F00003F000F80007E000FC000FC0007C001F80007E003 | |
| 2630 | −F00007E007F00007E007E00007E00FE00007F01FC00007F01FC00007F03F800007F03F80 | |
| 2631 | −0007F03F80000FE07F80000FE07F00000FE07F00000FE07F00001FE0FF00001FC0FE0000 | |
| 2632 | −1FC0FE00001FC0FE00003F80FE00003F80FE00007F00FE00007F00FC00007E007C0000FC | |
| 2633 | −007E0001FC007E0001F8007E0003F0003E0007E0001F000FC0001F001F80000F803E0000 | |
| 2634 | −07C0FC000001FFF00000003F800000242977A72E>I<0003E001F800000FF807FE00001E | |
| 2635 | −7C1E0F80001C3E3C07C0003C3E7807C000383EE003E000783FE003E000703FC003F00070 | |
| 2636 | −3F8001F000F07F0001F000E07F0001F800E07E0001F800E07E0003F801E0FE0003F801E0 | |
| 2637 | −FE0003F80000FC0003F80000FC0003F80001FC0007F80001FC0007F00001F80007F00001 | |
| 2638 | −F80007F00003F8000FF00003F8000FE00003F0000FE00003F0000FE00007F0001FC00007 | |
| 2639 | −F0001FC00007E0001F800007E0003F80000FE0003F00000FE0007F00000FE0007E00000F | |
| 2640 | −E000FC00001FE000FC00001FE001F800001FF003F000001FF007E000003FB80F8000003F | |
| 2641 | −9C1F0000003F0FFC0000003F03E00000007F00000000007F00000000007E00000000007E | |
| 2642 | −0000000000FE0000000000FE0000000000FC0000000000FC0000000001FC0000000001FC | |
| 2643 | −0000000001F80000000001F80000000003F80000000003F8000000007FFFE0000000FFFF | |
| 2644 | −E0000000FFFFE00000002D3A80A72E>I<01F000FC0007FC07FF800F3E0F03C00E1F1C03 | |
| 2645 | −E01E1F380FE01C1F700FE03C1FE01FE0381FE01FE0381FC01FE0783FC01FC0703F800700 | |
| 2646 | −703F800000703F000000F03F000000F07F000000007E000000007E000000007E00000000 | |
| 2647 | −FE00000000FC00000000FC00000000FC00000001FC00000001F800000001F800000001F8 | |
| 2648 | −00000003F800000003F000000003F000000003F000000007F000000007E000000007E000 | |
| 2649 | −000007E00000000FE00000000FC00000000FC00000000FC00000001FC00000001F800000 | |
| 2650 | −000700000000232979A726>114 D<00007F800001FFE00007C0F8001F003C003E001C00 | |
| 2651 | −3C001E007C003E00F8007E00F800FE00F800FE01F800FC01F800FC01F8007001FC000001 | |
| 2652 | −FE000001FFC00001FFFC0000FFFF0000FFFF80007FFFC0003FFFE0000FFFF00000FFF000 | |
| 2653 | −000FF0000007F0000003F00C0003F03F0003F07F8001F07F8003F0FF0003E0FF0003E0FF | |
| 2654 | −0003E0FC0007C0F0000F8070000F8078001F003C003C001F01F80007FFE00000FF00001F | |
| 2655 | −297AA725>I<0001C0000003F0000007F0000007F0000007E0000007E000000FE000000F | |
| 2656 | −E000000FC000000FC000001FC000001FC000001F8000001F8000003F8000003F8000003F | |
| 2657 | −0000003F00007FFFFF80FFFFFF80FFFFFF00007E000000FE000000FE000000FC000000FC | |
| 2658 | −000001FC000001FC000001F8000001F8000003F8000003F8000003F0000003F0000007F0 | |
| 2659 | −000007F0000007E0000007E000000FE000000FE000000FC000000FC000001FC000001FC0 | |
| 2660 | −1C001F801C001F801C003F803C003F8038003F0078003F0070003F00F0003F00E0003F01 | |
| 2661 | −C0001F03C0001F0780000F0F000007FC000001F00000193A78B81E>I<007C0000000001 | |
| 2662 | −FF00001C00038F80007E00070780007E000E07C0007E001E07C000FE001C07C000FE003C | |
| 2663 | −0FC000FC00380FC000FC00380FC001FC00781FC001FC00701F8001F800701F8001F800F0 | |
| 2664 | −3F8003F800F03F0003F800003F0003F000007F0003F000007E0007F000007E0007F00000 | |
| 2665 | −FE0007E00000FC0007E00000FC000FE00001FC000FE00001F8000FC00001F8000FC00001 | |
| 2666 | −F8001FC00003F8001FC1C003F0001F81C003F0001F81C003F0003F81C003F0003F83C003 | |
| 2667 | −F0003F038003F0003F038003F0007F078001F000FF070001F001FF070001F801DF0F0000 | |
| 2668 | −F8079F0E00007C0F0F1C00001FFC07F8000007F001F0002A2979A731>I<007C0001C001 | |
| 2669 | −FF0007F0038F8007F007078007F00E07C007F81E07C007F81C07C003F83C0FC003F8380F | |
| 2670 | −C001F0380FC001F0781FC000F0701F8000F0701F8000F0F03F8000F0F03F0000E0003F00 | |
| 2671 | −00E0007F0000E0007E0001E0007E0001C000FE0001C000FC0001C000FC0003C001FC0003 | |
| 2672 | −8001F800038001F800038001F800070003F800070003F0000F0003F0000E0003F0000E00 | |
| 2673 | −03F0001C0003F0001C0003F000380003F000780001F000700001F800E00000F801C00000 | |
| 2674 | −FC038000007E0F0000001FFE00000003F00000252979A72A>I<007C000000007001FF00 | |
| 2675 | −007001FC038F8001F801FC07078001F801FC0E07C001F801FE1E07C003F801FE1C07C003 | |
| 2676 | −F000FE3C0FC003F000FE380FC003F0007C380FC007F0007C781FC007E0003C701F8007E0 | |
| 2677 | −003C701F8007E0003CF03F800FE0003CF03F000FC00038003F000FC00038007F000FC000 | |
| 2678 | −38007E001FC00078007E001F80007000FE001F80007000FC001F80007000FC003F8000F0 | |
| 2679 | −01FC003F0000E001F8003F0000E001F8003F0000E001F8003F0001E003F8007F0001C003 | |
| 2680 | −F0007E0001C003F0007E0003C003F0007E00038003F0007E00038003F0007E00070003F0 | |
| 2681 | −00FE00070003F000FE000E0001F001FE001E0001F801FF001C0000F8039F00380000FC07 | |
| 2682 | −9F807000003E0F07C1E000001FFC03FFC0000003F0007F0000372979A73C>I<0003F001 | |
| 2683 | −F800000FFC07FE00003C1E0E0F0000780F1C0F8000F00FB83F8001E00FF83F8001C007F0 | |
| 2684 | −7F80038007F07F80078007E07F8007000FE07F000F000FE01C000E000FC000000E000FC0 | |
| 2685 | −00001E001FC000001E001FC0000000001F80000000001F80000000003F80000000003F00 | |
| 2686 | −000000003F00000000003F00000000007F00000000007E00000000007E00000000007E00 | |
| 2687 | −00000000FE0000000000FC001C000000FC001C000000FC001C000001FC003C001E01FC00 | |
| 2688 | −38003F01F80078007F81F80070007F83F800F000FF83F800E000FF077801C000FE0F7C03 | |
| 2689 | −C0007C0E3C078000783C1E1E00001FF80FFC000007E003F0000029297CA72A>I<007C00 | |
| 2690 | −000001FF000038038F8000FC07078000FC0E07C000FC1E07C001FC1C07C001F83C0FC001 | |
| 2691 | −F8380FC001F8380FC003F8781FC003F0701F8003F0701F8003F0F03F8007F0F03F0007E0 | |
| 2692 | −003F0007E0007F0007E0007E000FE0007E000FC000FE000FC000FC000FC000FC001FC001 | |
| 2693 | −FC001FC001F8001F8001F8001F8001F8003F8003F8003F0003F0003F0003F0003F0003F0 | |
| 2694 | −007F0003F0007E0003F0007E0003F0007E0003F000FE0003F000FC0001F001FC0001F803 | |
| 2695 | −FC0000F807FC00007C1FF800003FF9F8000007E1F800000003F800000003F000000003F0 | |
| 2696 | −00000007F0000E0007E0003F8007E0007F800FC0007F800FC0007F801F8000FF001F0000 | |
| 2697 | −FF003E00007C007E00007000FC00007801F000003803E000001E0FC000000FFF00000003 | |
| 2698 | −F8000000263B79A72C>I E /Fp 78 125 df<000001FF000FE00000001FFFE03FFC0000 | |
| 2699 | −007F00F8FC1E000001FC003FF03F000007F0007FE07F80000FE000FFE0FF80001FC001FF | |
| 2700 | −C0FF80003F8001FF80FF80007F8001FF80FF80007F0001FF807F00007F0001FF003E0000 | |
| 2701 | −FE0000FF00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F | |
| 2702 | −00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000 | |
| 2703 | −FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F | |
| 2704 | −000000FFFFFFFFFFFF8000FFFFFFFFFFFF8000FFFFFFFFFFFF800000FE00007F00000000 | |
| 2705 | −FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F | |
| 2706 | −00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000 | |
| 2707 | −FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F | |
| 2708 | −00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000 | |
| 2709 | −FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F | |
| 2710 | −00000000FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000000 | |
| 2711 | −FE00007F00000000FE00007F00000000FE00007F00000000FE00007F00000001FF0000FF | |
| 2712 | −8000007FFFFC3FFFFF80007FFFFC3FFFFF80007FFFFC3FFFFF800039407FBF35>11 | |
| 2713 | −D<000001FF000000001FFFC00000007F01F0000001FC0078000007F0001C00000FE0003E | |
| 2714 | −00001FC000FF00003F8001FF00007F8001FF00007F0001FF00007F0001FF0000FE0001FF | |
| 2715 | −0000FE0000FE0000FE0000380000FE0000000000FE0000000000FE0000000000FE000000 | |
| 2716 | −0000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000 | |
| 2717 | −0000FE00007F00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF0000FE0001FF0000FE0000FF | |
| 2718 | −0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F | |
| 2719 | −0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F | |
| 2720 | −0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F | |
| 2721 | −0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F | |
| 2722 | −0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F | |
| 2723 | −0001FF0000FF807FFFFC3FFFFE7FFFFC3FFFFE7FFFFC3FFFFE2F407FBF33>I<000001FF | |
| 2724 | −800000001FFFF70000007F00FF000001F800FF000007F001FF00000FE001FF00001FC001 | |
| 2725 | −FF00003F8001FF00007F8001FF00007F0001FF00007F0000FF0000FE00007F0000FE0000 | |
| 2726 | −7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000 | |
| 2727 | −7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000 | |
| 2728 | −7F00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF0000FE00007F0000FE00007F0000FE0000 | |
| 2729 | −7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000 | |
| 2730 | −7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000 | |
| 2731 | −7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000 | |
| 2732 | −7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE0000 | |
| 2733 | −7F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0001FF0000 | |
| 2734 | −FF807FFFFC3FFFFE7FFFFC3FFFFE7FFFFC3FFFFE2F407FBF33>I<000001FF0000FF8000 | |
| 2735 | −00001FFFC00FFFE00000007F01F03F80F8000001F80078FE003C000007F0003FF8000E00 | |
| 2736 | −000FE0007FF0001F00001FC000FFE0007F80003F8001FFC000FF80007F8001FFC000FF80 | |
| 2737 | −007F0001FF8000FF80007F0001FF8000FF8000FE0001FF0000FF8000FE0000FF00007F00 | |
| 2738 | −00FE00007F00001C0000FE00007F0000000000FE00007F0000000000FE00007F00000000 | |
| 2739 | −00FE00007F0000000000FE00007F0000000000FE00007F0000000000FE00007F00000000 | |
| 2740 | −00FE00007F0000000000FE00007F0000000000FE00007F0000000000FE00007F00003F80 | |
| 2741 | −FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF8000FE00007F0000FF80 | |
| 2742 | −00FE00007F00007F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80 | |
| 2743 | −00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80 | |
| 2744 | −00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80 | |
| 2745 | −00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80 | |
| 2746 | −00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80 | |
| 2747 | −00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80 | |
| 2748 | −00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8000FE00007F00003F80 | |
| 2749 | −00FE00007F00003F8000FE00007F00003F8000FE00007F00003F8001FF0000FF80007FC0 | |
| 2750 | −7FFFFC3FFFFE1FFFFF7FFFFC3FFFFE1FFFFF7FFFFC3FFFFE1FFFFF48407FBF4C>I<003E | |
| 2751 | −003F007F00FF00FF01FE03FC07F807F00FE01FC01F803E007C00F8007000200010116EBE | |
| 2752 | −2D>19 D<1E000F007F803FC0FF807FC0FFC07FE0FFC07FE0FFE07FF0FFE07FF0FFE07FF0 | |
| 2753 | −7FE03FF01E600F300060003000600030006000300060003000E0007000C0006000C00060 | |
| 2754 | −00C0006001C000E0018000C0038001C003000180070003800E0007001C000E0018000C00 | |
| 2755 | −38001C00300018001C1C7DBE2D>34 D<1E007F80FF80FFC0FFC0FFE0FFE0FFE07FE01E60 | |
| 2756 | −006000600060006000E000C000C000C001C001800380030007000E001C00180038003000 | |
| 2757 | −0B1C79BE19>39 D<0000300000700000E00001C0000380000780000F00001E00003E0000 | |
| 2758 | −3C0000780000F80000F00001F00001E00003E00003E00007C00007C0000FC0000F80000F | |
| 2759 | −80001F80001F00001F00003F00003F00003F00003E00007E00007E00007E00007E00007E | |
| 2760 | −00007E00007C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC | |
| 2761 | −0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00007E | |
| 2762 | −00007E00007E00007E00003E00003F00003F00003F00001F00001F00001F80000F80000F | |
| 2763 | −80000FC00007C00007C00003E00003E00001E00001F00000F00000F800007800003C0000 | |
| 2764 | −3E00001E00000F000007800003800001C00000E0000070000030145A77C323>I<C00000 | |
| 2765 | −E000007000003800001C00001E00000F000007800007C00003C00001E00001F00000F000 | |
| 2766 | −00F800007800007C00007C00003E00003E00003F00001F00001F00001F80000F80000F80 | |
| 2767 | −000FC0000FC0000FC00007C00007E00007E00007E00007E00007E00007E00003E00003F0 | |
| 2768 | −0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 | |
| 2769 | −0003F00003F00003F00003F00003F00003E00007E00007E00007E00007E00007E00007E0 | |
| 2770 | −0007C0000FC0000FC0000FC0000F80000F80001F80001F00001F00003F00003E00003E00 | |
| 2771 | −007C00007C0000780000F80000F00001F00001E00003C00007C0000780000F00001E0000 | |
| 2772 | −1C0000380000700000E00000C00000145A7BC323>I<00000006000000000000000F0000 | |
| 2773 | −00000000000F000000000000000F000000000000000F000000000000000F000000000000 | |
| 2774 | −000F000000000000000F000000000000000F000000000000000F000000000000000F0000 | |
| 2775 | −00000000000F000000000000000F000000000000000F000000000000000F000000000000 | |
| 2776 | −000F000000000000000F000000000000000F000000000000000F000000000000000F0000 | |
| 2777 | −00000000000F000000000000000F000000000000000F000000000000000F000000000000 | |
| 2778 | −000F000000000000000F000000000000000F000000000000000F000000007FFFFFFFFFFF | |
| 2779 | −FFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFFFFFFFFFFFFE00000000F000000000000 | |
| 2780 | −000F000000000000000F000000000000000F000000000000000F000000000000000F0000 | |
| 2781 | −00000000000F000000000000000F000000000000000F000000000000000F000000000000 | |
| 2782 | −000F000000000000000F000000000000000F000000000000000F000000000000000F0000 | |
| 2783 | −00000000000F000000000000000F000000000000000F000000000000000F000000000000 | |
| 2784 | −000F000000000000000F000000000000000F000000000000000F000000000000000F0000 | |
| 2785 | −00000000000F000000000000000F000000000000000F0000000000000006000000003C3C | |
| 2786 | −7BB447>43 D<1E007F80FF80FFC0FFC0FFE0FFE0FFE07FE01E60006000600060006000E0 | |
| 2787 | −00C000C000C001C001800380030007000E001C001800380030000B1C798919>I<FFFFFE | |
| 2788 | −FFFFFEFFFFFEFFFFFEFFFFFEFFFFFE17067F961E>I<1E007F807F80FFC0FFC0FFC0FFC0 | |
| 2789 | −7F807F801E000A0A798919>I<000000018000000003C000000007C000000007C0000000 | |
| 2790 | −07800000000F800000000F800000000F000000001F000000001F000000001E000000003E | |
| 2791 | −000000003E000000003C000000007C000000007C000000007800000000F800000000F800 | |
| 2792 | −000000F000000001F000000001F000000001E000000003E000000003E000000003C00000 | |
| 2793 | −0007C000000007C000000007800000000F800000000F800000001F000000001F00000000 | |
| 2794 | −1E000000003E000000003E000000003C000000007C000000007C000000007800000000F8 | |
| 2795 | −00000000F800000000F000000001F000000001F000000001E000000003E000000003E000 | |
| 2796 | −000003C000000007C000000007C000000007800000000F800000000F800000000F000000 | |
| 2797 | −001F000000001F000000001E000000003E000000003E000000007C000000007C00000000 | |
| 2798 | −7800000000F800000000F800000000F000000001F000000001F000000001E000000003E0 | |
| 2799 | −00000003E000000003C000000007C000000007C000000007800000000F800000000F8000 | |
| 2800 | −00000F000000001F000000001F000000001E000000003E000000003E000000003C000000 | |
| 2801 | −007C000000007C000000007800000000F800000000F800000000F0000000006000000000 | |
| 2802 | −225B7BC32D>I<0001FE0000000FFFC000003F03F000007C00F80000F8007C0001F0003E | |
| 2803 | −0003E0001F0007C0000F8007C0000F800FC0000FC01F800007E01F800007E01F800007E0 | |
| 2804 | −3F800007F03F800007F03F000003F07F000003F87F000003F87F000003F87F000003F87F | |
| 2805 | −000003F87F000003F8FF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF00 | |
| 2806 | −0003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF0000 | |
| 2807 | −03FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003FCFF000003 | |
| 2808 | −FC7F000003F87F000003F87F000003F87F000003F87F000003F83F800007F03F800007F0 | |
| 2809 | −3F800007F01F800007E01F800007E01F800007E00FC0000FC00FC0000FC007E0001F8003 | |
| 2810 | −E0001F0001F0003E0000F8007C00007C00F800003F03F000000FFFC0000001FE0000263F | |
| 2811 | −7DBC2D>I<0001C0000003C0000007C000001FC000007FC00007FFC000FFFFC000FF9FC0 | |
| 2812 | −00F81FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 | |
| 2813 | −00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 | |
| 2814 | −00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 | |
| 2815 | −00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 | |
| 2816 | −00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 | |
| 2817 | −00001FC000001FC000001FC000001FC000007FF000FFFFFFF8FFFFFFF8FFFFFFF81D3D78 | |
| 2818 | −BC2D>I<0007FC0000003FFF800000FFFFE00003F01FF80007C007FC000F0001FE001E00 | |
| 2819 | −00FF001C0000FF803C00007FC07800007FC07800003FE07000003FE0FF00003FE0FF8000 | |
| 2820 | −1FF0FFC0001FF0FFC0001FF0FFC0001FF0FFC0001FF0FFC0001FF07F80001FF03F00001F | |
| 2821 | −F00C00001FF00000001FE00000003FE00000003FE00000003FC00000007FC00000007F80 | |
| 2822 | −000000FF80000000FF00000001FE00000001FC00000003F800000007F000000007E00000 | |
| 2823 | −000FC00000001F800000003F000000007E000000007C00000000F800000001F000000003 | |
| 2824 | −E000000007C00000000F800000001F000070003E000070003C000070007800007000F000 | |
| 2825 | −00E001E00000E003C00000E007800000E00F000001E01FFFFFFFE01FFFFFFFE03FFFFFFF | |
| 2826 | −E07FFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0243D7CBC2D>I<0007FC0000003FFF | |
| 2827 | −800000F80FE00001E003F800078001FC000F0001FE000E0000FF001E0000FF801F80007F | |
| 2828 | −803FC0007FC03FE0007FC03FE0007FC03FF0007FC03FE0007FC03FE0007FC01FE0007FC0 | |
| 2829 | −0FC0007FC00000007F80000000FF80000000FF00000000FF00000001FE00000001FE0000 | |
| 2830 | −0003FC00000003F800000007E00000000FC00000003F0000001FFC0000001FFF80000000 | |
| 2831 | −0FE000000007F800000003FC00000001FE00000000FF00000000FF800000007FC0000000 | |
| 2832 | −7FC00000007FE00000003FE00000003FE00000003FF00000003FF00C00003FF03F00003F | |
| 2833 | −F07F80003FF0FFC0003FF0FFC0003FF0FFC0003FF0FFC0003FE0FFC0003FE0FF80007FE0 | |
| 2834 | −7F00007FC07800007FC0780000FF803C0000FF801E0001FF000F0003FE0007C007FC0003 | |
| 2835 | −F80FF00000FFFFE000003FFF80000007F80000243F7CBC2D>I<0000000E000000001E00 | |
| 2836 | −0000003E000000003E000000007E000000007E00000000FE00000001FE00000001FE0000 | |
| 2837 | −0003FE000000077E000000067E0000000E7E0000001C7E0000001C7E000000387E000000 | |
| 2838 | −707E000000707E000000E07E000001C07E000001C07E000003807E000007007E00000700 | |
| 2839 | −7E00000E007E00001C007E00001C007E000038007E000070007E000070007E0000E0007E | |
| 2840 | −0000C0007E0001C0007E000380007E000300007E000700007E000E00007E000C00007E00 | |
| 2841 | −1C00007E003800007E003800007E007000007E00E000007E00FFFFFFFFFFFFFFFFFFFFFF | |
| 2842 | −FFFFFFFF000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000 | |
| 2843 | −00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000001FF000001FF | |
| 2844 | −FFFF0001FFFFFF0001FFFFFF283E7EBD2D>I<06000003000780001F0007F800FE0007FF | |
| 2845 | −FFFE0007FFFFFC0007FFFFF80007FFFFF00007FFFFC00007FFFF000007FFFC0000073FE0 | |
| 2846 | −000007000000000700000000070000000007000000000700000000070000000007000000 | |
| 2847 | −00070000000007000000000700000000070000000007000000000701FE0000070FFF8000 | |
| 2848 | −073E03E000077001F80007E000FC0007C0007E000780003F000700003F800600001F8000 | |
| 2849 | −00001FC00000001FC00000001FE00000000FE00000000FE00000000FE00000000FF00000 | |
| 2850 | −000FF00000000FF00C00000FF07F00000FF07F80000FF0FF80000FF0FF80000FF0FF8000 | |
| 2851 | −0FF0FF80000FF0FF80000FE0FF00001FE0FC00001FE07000001FC07800001FC03800003F | |
| 2852 | −803C00003F801E00007F001F0000FE000F8001FC0007C003F80003F80FE00000FFFFC000 | |
| 2853 | −003FFF00000007F80000243F7CBC2D>I<00001FE0000000FFF8000003F03E00000FC00F | |
| 2854 | −00001F000780003E000780007E001FC000FC003FC001F8007FC003F8007FC003F0007FC0 | |
| 2855 | −07F0007FC00FE0003F800FE0001F001FE00000001FC00000001FC00000003FC00000003F | |
| 2856 | −C00000003FC00000007F800000007F800000007F80FE00007F87FF8000FF8F07E000FF9C | |
| 2857 | −01F000FFB800FC00FFB0007E00FFF0007E00FFE0003F00FFE0003F80FFC0003FC0FFC000 | |
| 2858 | −3FC0FFC0001FE0FFC0001FE0FFC0001FE0FF80001FF0FF80001FF0FF80001FF0FF80001F | |
| 2859 | −F0FF80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF0 | |
| 2860 | −3F80001FF03FC0001FE03FC0001FE01FC0001FE01FC0003FC01FC0003FC00FE0003F800F | |
| 2861 | −E0003F8007E0007F0003F0007E0001F800FC0000FC01F800007E07F000003FFFE000000F | |
| 2862 | −FF80000003FC0000243F7CBC2D>I<38000000003C000000003F000000003FFFFFFFFC3F | |
| 2863 | −FFFFFFFC3FFFFFFFFC3FFFFFFFF87FFFFFFFF87FFFFFFFF07FFFFFFFE078000001E07000 | |
| 2864 | −0003C0700000078070000007007000000F00E000001E00E000001C00E000003C00E00000 | |
| 2865 | −78000000007000000000F000000001E000000001C000000003C000000007800000000700 | |
| 2866 | −0000000F000000001E000000001E000000003C000000003C000000007C00000000780000 | |
| 2867 | −0000F800000000F800000001F800000001F000000003F000000003F000000003F0000000 | |
| 2868 | −07F000000007F000000007F00000000FF00000000FE00000000FE00000001FE00000001F | |
| 2869 | −E00000001FE00000001FE00000001FE00000001FE00000003FE00000003FE00000003FE0 | |
| 2870 | −0000003FE00000003FE00000003FE00000003FE00000003FE00000003FE00000003FE000 | |
| 2871 | −00001FC00000000700000026407BBD2D>I<0003FC0000001FFF8000007C07E00000F001 | |
| 2872 | −F80001E0007C0003C0003E000780001F000F00001F000F00000F801E00000F801E00000F | |
| 2873 | −C03E000007C03E000007C03E000007C03E000007C03F000007C03F000007C03F80000F80 | |
| 2874 | −3FC0000F801FE0001F801FF0001F001FFC003E000FFE007C000FFF80780007FFC0F00003 | |
| 2875 | −FFF3E00001FFFF800000FFFF0000003FFF0000001FFFC000000FFFE000003FFFF8000078 | |
| 2876 | −FFFC0001F07FFE0003E01FFF0007C00FFF800F8003FFC01F0001FFC03F00007FE03E0000 | |
| 2877 | −3FE07E00001FE07C00000FF07C000007F0F8000003F0F8000003F0F8000003F0F8000001 | |
| 2878 | −F0F8000001F0F8000001F0F8000001F0FC000001E07C000003E07C000003E07E000003C0 | |
| 2879 | −3F000007C01F00000F801F80001F000FC0003E0007F0007C0001FC03F80000FFFFE00000 | |
| 2880 | −1FFF80000003FC0000243F7CBC2D>I<0003FC0000001FFF0000007E07C00000FC03F000 | |
| 2881 | −01F801F80003F000FC0007E0007C000FE0007E001FC0007F001FC0003F003FC0003F803F | |
| 2882 | −80003F807F80003FC07F80003FC07F80001FC0FF80001FC0FF80001FE0FF80001FE0FF80 | |
| 2883 | −001FE0FF80001FE0FF80001FE0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF8000 | |
| 2884 | −1FF07F80001FF07F80003FF07F80003FF07F80003FF03FC0003FF03FC0003FF01FC0007F | |
| 2885 | −F00FC0007FF007E000FFF007F000DFF003F001DFF000F8039FF0007E0F1FF0001FFE1FE0 | |
| 2886 | −0007F01FE00000001FE00000001FE00000003FC00000003FC00000003FC00000003FC000 | |
| 2887 | −00003F800000007F800F80007F001FC0007F003FE000FE003FE000FE003FE001FC003FE0 | |
| 2888 | −01F8003FC003F0003F8007F0001E000FE0001F001FC0000FC07F000003FFFE000001FFF8 | |
| 2889 | −0000003FC00000243F7CBC2D>I<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000000 | |
| 2890 | −000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2891 | −1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A2779A619>I<1E007F807F80FFC0FF | |
| 2892 | −C0FFC0FFC07F807F801E0000000000000000000000000000000000000000000000000000 | |
| 2893 | −000000000000000000000000001E007F00FF80FF80FFC0FFC0FFC0FFC07FC01EC000C000 | |
| 2894 | −C000C000C001C001800180018003800300070006000E000C001C003800300030000A3979 | |
| 2895 | −A619>I<7FFFFFFFFFFFFFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFFFFFFFFFFFFE0 | |
| 2896 | −000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2897 | −000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2898 | −000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 2899 | −000000007FFFFFFFFFFFFFE0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF07FFFFFFFFFFFFFE0 | |
| 2900 | −3C167BA147>61 D<00000007000000000000000F800000000000000F800000000000000F | |
| 2901 | −800000000000001FC00000000000001FC00000000000001FC00000000000003FE0000000 | |
| 2902 | −0000003FE00000000000003FE00000000000007FF00000000000007FF00000000000007F | |
| 2903 | −F0000000000000FFF8000000000000E7F8000000000000E7F8000000000001C7FC000000 | |
| 2904 | −000001C3FC000000000001C3FC00000000000381FE00000000000381FE00000000000381 | |
| 2905 | −FE00000000000700FF00000000000700FF00000000000700FF00000000000E007F800000 | |
| 2906 | −00000E007F80000000000E007F80000000001C003FC0000000001C003FC0000000001C00 | |
| 2907 | −3FC00000000038001FE00000000038001FE00000000038001FE00000000070000FF00000 | |
| 2908 | −000070000FF00000000070000FF000000000E00007F800000000E00007F800000000E000 | |
| 2909 | −07F800000001C00003FC00000001FFFFFFFC00000001FFFFFFFC00000003FFFFFFFE0000 | |
| 2910 | −0003800001FE00000003800001FE00000007000000FF00000007000000FF0000000F0000 | |
| 2911 | −00FF8000000E0000007F8000000E0000007F8000001E0000007FC000001C0000003FC000 | |
| 2912 | −001C0000003FC000003C0000003FE00000380000001FE00000380000001FE00000780000 | |
| 2913 | −001FF00000780000000FF00000FC0000000FF00003FC0000001FF8000FFF0000003FFC00 | |
| 2914 | −FFFFF0000FFFFFF8FFFFF0000FFFFFF8FFFFF0000FFFFFF83D417DC044>65 | |
| 2915 | −D<FFFFFFFFFC0000FFFFFFFFFF8000FFFFFFFFFFF00001FF80000FF800007F000003FE00 | |
| 2916 | −007F000001FF00007F000000FF80007F0000007FC0007F0000003FE0007F0000003FE000 | |
| 2917 | −7F0000001FF0007F0000001FF0007F0000001FF8007F0000001FF8007F0000001FF8007F | |
| 2918 | −0000000FF8007F0000001FF8007F0000001FF8007F0000001FF8007F0000001FF0007F00 | |
| 2919 | −00001FF0007F0000003FE0007F0000007FE0007F0000007FC0007F000000FF80007F0000 | |
| 2920 | −01FF00007F000003FC00007F00000FF800007F00007FE000007FFFFFFF0000007FFFFFFF | |
| 2921 | −E000007F000007FC00007F000001FE00007F000000FF80007F0000007FC0007F0000003F | |
| 2922 | −E0007F0000001FF0007F0000001FF8007F0000000FF8007F0000000FFC007F00000007FC | |
| 2923 | −007F00000007FC007F00000007FE007F00000007FE007F00000007FE007F00000007FE00 | |
| 2924 | −7F00000007FE007F00000007FE007F00000007FE007F00000007FC007F0000000FFC007F | |
| 2925 | −0000000FFC007F0000001FF8007F0000001FF0007F0000003FF0007F0000007FE0007F00 | |
| 2926 | −0000FFC0007F000003FF8001FF80000FFE00FFFFFFFFFFFC00FFFFFFFFFFE000FFFFFFFF | |
| 2927 | −FF0000373E7DBD40>I<0000003FF00006000003FFFE000E00000FFFFF801E00003FF007 | |
| 2928 | −E03E0000FF8000F83E0003FE00007C7E0007F800001EFE000FF000000FFE003FE0000007 | |
| 2929 | −FE007FC0000003FE00FF80000003FE00FF00000001FE01FE00000000FE03FE00000000FE | |
| 2930 | −07FC000000007E07F8000000007E0FF8000000003E0FF8000000003E1FF0000000001E1F | |
| 2931 | −F0000000001E3FF0000000001E3FE0000000001E3FE0000000000E7FE0000000000E7FE0 | |
| 2932 | −000000000E7FE0000000000E7FC00000000000FFC00000000000FFC00000000000FFC000 | |
| 2933 | −00000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000 | |
| 2934 | −000000FFC00000000000FFC00000000000FFC00000000000FFC000000000007FC0000000 | |
| 2935 | −00007FE000000000007FE0000000000E7FE0000000000E3FE0000000000E3FE000000000 | |
| 2936 | −0E3FF0000000000E1FF0000000001E1FF0000000001C0FF8000000001C0FF8000000001C | |
| 2937 | −07F8000000003C07FC000000003803FE000000007801FE000000007000FF00000000F000 | |
| 2938 | −FF80000001E0007FC0000001C0003FE0000003C0000FF0000007800007F800001F000003 | |
| 2939 | −FE00003E000000FF8000F80000003FF007F00000000FFFFFC000000003FFFF0000000000 | |
| 2940 | −3FF0000037427BBF42>I<FFFFFFFFFC000000FFFFFFFFFF800000FFFFFFFFFFE0000001 | |
| 2941 | −FFC0001FF80000007F800003FE0000007F800000FF0000007F8000007F8000007F800000 | |
| 2942 | −3FC000007F8000000FE000007F8000000FF000007F80000007F800007F80000003FC0000 | |
| 2943 | −7F80000001FC00007F80000001FE00007F80000000FF00007F80000000FF00007F800000 | |
| 2944 | −00FF80007F800000007F80007F800000007FC0007F800000007FC0007F800000007FC000 | |
| 2945 | −7F800000003FE0007F800000003FE0007F800000003FE0007F800000003FE0007F800000 | |
| 2946 | −003FE0007F800000003FF0007F800000003FF0007F800000003FF0007F800000003FF000 | |
| 2947 | −7F800000003FF0007F800000003FF0007F800000003FF0007F800000003FF0007F800000 | |
| 2948 | −003FF0007F800000003FF0007F800000003FF0007F800000003FE0007F800000003FE000 | |
| 2949 | −7F800000003FE0007F800000003FE0007F800000003FE0007F800000007FC0007F800000 | |
| 2950 | −007FC0007F800000007F80007F800000007F80007F80000000FF80007F80000000FF0000 | |
| 2951 | −7F80000001FE00007F80000001FE00007F80000003FC00007F80000003F800007F800000 | |
| 2952 | −07F800007F8000000FF000007F8000001FE000007F8000007FC000007F800000FF000000 | |
| 2953 | −7F800003FE000001FFC0001FF80000FFFFFFFFFFF00000FFFFFFFFFF800000FFFFFFFFFC | |
| 2954 | −0000003C3E7DBD45>I<FFFFFFFFFFFFE0FFFFFFFFFFFFE0FFFFFFFFFFFFE001FFC00001 | |
| 2955 | −FFE0007F8000001FE0007F8000000FF0007F80000003F0007F80000003F0007F80000001 | |
| 2956 | −F0007F80000000F0007F80000000F0007F80000000F0007F8000000070007F8000000070 | |
| 2957 | −007F8000000070007F8000000070007F8000000038007F80001C0038007F80001C003800 | |
| 2958 | −7F80001C0038007F80001C0038007F80001C0000007F80001C0000007F80003C0000007F | |
| 2959 | −80003C0000007F80007C0000007F8000FC0000007F8003FC0000007FFFFFFC0000007FFF | |
| 2960 | −FFFC0000007FFFFFFC0000007F8003FC0000007F8000FC0000007F80007C0000007F8000 | |
| 2961 | −3C0000007F80003C0000007F80001C0000007F80001C0000007F80001C0007007F80001C | |
| 2962 | −0007007F80001C0007007F80001C000E007F800000000E007F800000000E007F80000000 | |
| 2963 | −0E007F800000000E007F800000001E007F800000001C007F800000001C007F800000003C | |
| 2964 | −007F800000003C007F800000007C007F800000007C007F80000000F8007F80000001F800 | |
| 2965 | −7F80000003F8007F80000007F8007F8000001FF801FFC00001FFF8FFFFFFFFFFFFF0FFFF | |
| 2966 | −FFFFFFFFF0FFFFFFFFFFFFF0383E7DBD3E>I<FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFF | |
| 2967 | −FFFFFF8001FFC00003FF80007F8000007F80007F8000001FC0007F8000000FC0007F8000 | |
| 2968 | −0007C0007F80000007C0007F80000003C0007F80000003C0007F80000003C0007F800000 | |
| 2969 | −01C0007F80000001C0007F80000001C0007F80000001C0007F80000000E0007F80000000 | |
| 2970 | −E0007F80003800E0007F80003800E0007F80003800E0007F8000380000007F8000380000 | |
| 2971 | −007F8000380000007F8000780000007F8000780000007F8000F80000007F8001F8000000 | |
| 2972 | −7F8007F80000007FFFFFF80000007FFFFFF80000007FFFFFF80000007F8007F80000007F | |
| 2973 | −8001F80000007F8000F80000007F8000780000007F8000780000007F8000380000007F80 | |
| 2974 | −00380000007F8000380000007F8000380000007F8000380000007F8000380000007F8000 | |
| 2975 | −000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000 | |
| 2976 | −0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000 | |
| 2977 | −00007F8000000000007F8000000000007F8000000000007F800000000001FFE000000000 | |
| 2978 | −FFFFFFF0000000FFFFFFF0000000FFFFFFF0000000333E7DBD3B>I<0000003FE0000C00 | |
| 2979 | −000003FFFE001C0000001FFFFF803C0000007FF00FC07C000000FF0001F07C000003FC00 | |
| 2980 | −0078FC000007F800003DFC00001FE000001FFC00003FC000000FFC00007F80000007FC00 | |
| 2981 | −00FF80000003FC0001FF00000003FC0001FE00000001FC0003FC00000001FC0007FC0000 | |
| 2982 | −0000FC0007F800000000FC000FF8000000007C000FF0000000007C001FF0000000003C00 | |
| 2983 | −1FF0000000003C003FE0000000003C003FE0000000003C003FE0000000001C007FE00000 | |
| 2984 | −00001C007FE0000000001C007FC0000000001C007FC0000000000000FFC0000000000000 | |
| 2985 | −FFC0000000000000FFC0000000000000FFC0000000000000FFC0000000000000FFC00000 | |
| 2986 | −00000000FFC0000000000000FFC0000000000000FFC0000000000000FFC0000000000000 | |
| 2987 | −FFC0000000000000FFC000001FFFFFF07FC000001FFFFFF07FC000001FFFFFF07FE00000 | |
| 2988 | −000FFE007FE000000003FC003FE000000003FC003FE000000003FC003FF000000003FC00 | |
| 2989 | −1FF000000003FC001FF000000003FC000FF800000003FC000FF800000003FC0007F80000 | |
| 2990 | −0003FC0007FC00000003FC0003FC00000003FC0001FE00000003FC0001FF00000003FC00 | |
| 2991 | −00FF80000003FC00007FC0000007FC00003FE0000007FC00001FF000000FFC000007F800 | |
| 2992 | −001EFC000003FE00003C7C000000FF8000F83C0000007FF007F01C0000001FFFFFC00C00 | |
| 2993 | −000003FFFF0000000000003FF00000003C427BBF47>I<FFFFFFC01FFFFFF8FFFFFFC01F | |
| 2994 | −FFFFF8FFFFFFC01FFFFFF801FFE000003FFC00007F8000000FF000007F8000000FF00000 | |
| 2995 | −7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000 | |
| 2996 | −0FF000007F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF00000 | |
| 2997 | −7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000 | |
| 2998 | −0FF000007F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF00000 | |
| 2999 | −7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007FFFFFFF | |
| 3000 | −FFF000007FFFFFFFFFF000007FFFFFFFFFF000007F8000000FF000007F8000000FF00000 | |
| 3001 | −7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000 | |
| 3002 | −0FF000007F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF00000 | |
| 3003 | −7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000 | |
| 3004 | −0FF000007F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF00000 | |
| 3005 | −7F8000000FF000007F8000000FF000007F8000000FF000007F8000000FF000007F800000 | |
| 3006 | −0FF000007F8000000FF000007F8000000FF00001FFE000003FFC00FFFFFFC01FFFFFF8FF | |
| 3007 | −FFFFC01FFFFFF8FFFFFFC01FFFFFF83D3E7DBD44>I<FFFFFFF0FFFFFFF0FFFFFFF000FF | |
| 3008 | −F000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F | |
| 3009 | −C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F | |
| 3010 | −C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F | |
| 3011 | −C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F | |
| 3012 | −C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F | |
| 3013 | −C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F | |
| 3014 | −C00000FFF000FFFFFFF0FFFFFFF0FFFFFFF01C3E7EBD21>I<001FFFFFFC001FFFFFFC00 | |
| 3015 | −1FFFFFFC000007FF00000003FE00000001FE00000001FE00000001FE00000001FE000000 | |
| 3016 | −01FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001 | |
| 3017 | −FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE | |
| 3018 | −00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00 | |
| 3019 | −000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE0000 | |
| 3020 | −0001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE000000 | |
| 3021 | −01FE00000001FE003F0001FE007F8001FE00FFC001FE00FFC001FE00FFC001FE00FFC001 | |
| 3022 | −FE00FFC003FC00FF8003FC007F0003F8007C0007F800380007F0003C000FE0001E001FC0 | |
| 3023 | −000F003F800003E07E000000FFF80000003FC0000026407CBD2F>I<FFFFFFF8000000FF | |
| 3024 | −FFFFF8000000FFFFFFF800000001FFE000000000007F8000000000007F8000000000007F | |
| 3025 | −8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F80 | |
| 3026 | −00000000007F8000000000007F8000000000007F8000000000007F8000000000007F8000 | |
| 3027 | −000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000 | |
| 3028 | −0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000 | |
| 3029 | −00007F8000000000007F8000000000007F8000000000007F8000000000007F8000000000 | |
| 3030 | −007F8000000000007F8000000000007F8000000000007F8000000000007F800000000000 | |
| 3031 | −7F8000000000007F8000000380007F8000000380007F8000000380007F8000000380007F | |
| 3032 | −8000000380007F8000000780007F8000000700007F8000000700007F8000000700007F80 | |
| 3033 | −00000700007F8000000F00007F8000000F00007F8000000F00007F8000001F00007F8000 | |
| 3034 | −001F00007F8000003F00007F8000007F00007F800000FF00007F800001FE00007F800007 | |
| 3035 | −FE0001FFC0003FFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFFFE00313E7DBD39> | |
| 3036 | −76 D<FFFFC0000000003FFFF0FFFFC0000000003FFFF0FFFFC0000000003FFFF001FFE0 | |
| 3037 | −000000007FF800007FE0000000007FE0000077F000000000EFE0000077F000000000EFE0 | |
| 3038 | −000077F000000000EFE0000073F800000001CFE0000073F800000001CFE0000071FC0000 | |
| 3039 | −00038FE0000071FC000000038FE0000071FC000000038FE0000070FE000000070FE00000 | |
| 3040 | −70FE000000070FE0000070FF0000000E0FE00000707F0000000E0FE00000707F0000000E | |
| 3041 | −0FE00000703F8000001C0FE00000703F8000001C0FE00000703F8000001C0FE00000701F | |
| 3042 | −C00000380FE00000701FC00000380FE00000700FE00000700FE00000700FE00000700FE0 | |
| 3043 | −0000700FE00000700FE000007007F00000E00FE000007007F00000E00FE000007003F800 | |
| 3044 | −01C00FE000007003F80001C00FE000007003F80001C00FE000007001FC0003800FE00000 | |
| 3045 | −7001FC0003800FE000007001FC0003800FE000007000FE0007000FE000007000FE000700 | |
| 3046 | −0FE0000070007F000E000FE0000070007F000E000FE0000070007F000E000FE000007000 | |
| 3047 | −3F801C000FE0000070003F801C000FE0000070001FC038000FE0000070001FC038000FE0 | |
| 3048 | −000070001FC038000FE0000070000FE070000FE0000070000FE070000FE0000070000FE0 | |
| 3049 | −E0000FE00000700007F0E0000FE00000700007F0E0000FE00000700003F9C0000FE00000 | |
| 3050 | −700003F9C0000FE00000700003F9C0000FE00000700001FF80000FE00000700001FF8000 | |
| 3051 | −0FE00000700000FF00000FE00000700000FF00000FE00000F80000FF00000FE00001FC00 | |
| 3052 | −007E00000FE00007FF00007E00003FF800FFFFF8003C001FFFFFF0FFFFF8003C001FFFFF | |
| 3053 | −F0FFFFF8003C001FFFFFF04C3E7DBD53>I<FFFF800000FFFFF8FFFFC00000FFFFF8FFFF | |
| 3054 | −E00000FFFFF8007FE0000007FF00007FF0000001FC00007FF8000000F800007FF8000000 | |
| 3055 | −70000077FC00000070000073FE00000070000073FE00000070000071FF00000070000070 | |
| 3056 | −FF80000070000070FF800000700000707FC00000700000703FE00000700000703FE00000 | |
| 3057 | −700000701FF00000700000700FF80000700000700FF800007000007007FC000070000070 | |
| 3058 | −03FE00007000007003FE00007000007001FF00007000007000FF80007000007000FF8000 | |
| 3059 | −70000070007FC00070000070003FE00070000070003FE00070000070001FF00070000070 | |
| 3060 | −000FF80070000070000FF800700000700007FC00700000700003FE00700000700003FE00 | |
| 3061 | −700000700001FF00700000700000FF80700000700000FF807000007000007FC070000070 | |
| 3062 | −00003FE07000007000003FE07000007000001FF07000007000000FF87000007000000FF8 | |
| 3063 | −70000070000007FC70000070000003FE70000070000003FE70000070000001FF70000070 | |
| 3064 | −000000FFF0000070000000FFF00000700000007FF00000700000003FF00000700000003F | |
| 3065 | −F00000700000001FF00000700000000FF00000700000000FF000007000000007F00000F8 | |
| 3066 | −00000003F00001FC00000003F00007FF00000001F000FFFFF8000000F000FFFFF8000000 | |
| 3067 | −F000FFFFF800000070003D3E7DBD44>I<0000007FE0000000000007FFFE00000000001F | |
| 3068 | −C03F80000000007E0007E000000001FC0003F800000007F00000FE0000000FE000007F00 | |
| 3069 | −00001FC000003F8000003F8000001FC000007F0000000FE00000FE00000007F00001FE00 | |
| 3070 | −000007F80001FC00000003F80003FC00000003FC0007F800000001FE0007F800000001FE | |
| 3071 | −000FF000000000FF000FF000000000FF001FF000000000FF801FE0000000007F803FE000 | |
| 3072 | −0000007FC03FE0000000007FC03FE0000000007FC07FE0000000007FE07FC0000000003F | |
| 3073 | −E07FC0000000003FE07FC0000000003FE0FFC0000000003FF0FFC0000000003FF0FFC000 | |
| 3074 | −0000003FF0FFC0000000003FF0FFC0000000003FF0FFC0000000003FF0FFC0000000003F | |
| 3075 | −F0FFC0000000003FF0FFC0000000003FF0FFC0000000003FF0FFC0000000003FF0FFC000 | |
| 3076 | −0000003FF07FC0000000003FE07FE0000000007FE07FE0000000007FE07FE0000000007F | |
| 3077 | −E07FE0000000007FE03FE0000000007FC03FE0000000007FC01FF000000000FF801FF000 | |
| 3078 | −000000FF801FF000000000FF800FF800000001FF000FF800000001FF0007FC00000003FE | |
| 3079 | −0003FC00000003FC0003FE00000007FC0001FE00000007F80000FF0000000FF000007F00 | |
| 3080 | −00000FE000003F8000001FC000001FC000003F8000000FE000007F00000007F00000FE00 | |
| 3081 | −000001FC0003F8000000007F000FE0000000001FC03F800000000007FFFE000000000000 | |
| 3082 | −7FE00000003C427BBF47>I<FFFFFFFFF80000FFFFFFFFFF8000FFFFFFFFFFE00001FFC0 | |
| 3083 | −003FF800007F800007FC00007F800001FE00007F800000FF00007F8000007F80007F8000 | |
| 3084 | −003FC0007F8000003FE0007F8000003FE0007F8000001FF0007F8000001FF0007F800000 | |
| 3085 | −1FF8007F8000001FF8007F8000001FF8007F8000001FF8007F8000001FF8007F8000001F | |
| 3086 | −F8007F8000001FF8007F8000001FF8007F8000001FF0007F8000001FF0007F8000003FE0 | |
| 3087 | −007F8000003FE0007F8000003FC0007F8000007F80007F800000FF00007F800001FE0000 | |
| 3088 | −7F800007FC00007F80003FF000007FFFFFFFC000007FFFFFFE0000007F8000000000007F | |
| 3089 | −8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F80 | |
| 3090 | −00000000007F8000000000007F8000000000007F8000000000007F8000000000007F8000 | |
| 3091 | −000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000 | |
| 3092 | −0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000 | |
| 3093 | −00007F8000000000007F8000000000007F800000000001FFE000000000FFFFFFC0000000 | |
| 3094 | −FFFFFFC0000000FFFFFFC0000000353E7DBD3E>I<FFFFFFFFC0000000FFFFFFFFFC0000 | |
| 3095 | −00FFFFFFFFFF80000001FFC000FFE00000007F80001FF00000007F800007FC0000007F80 | |
| 3096 | −0001FE0000007F800000FF0000007F800000FF8000007F8000007FC000007F8000007FC0 | |
| 3097 | −00007F8000003FE000007F8000003FE000007F8000003FF000007F8000003FF000007F80 | |
| 3098 | −00003FF000007F8000003FF000007F8000003FF000007F8000003FF000007F8000003FF0 | |
| 3099 | −00007F8000003FE000007F8000007FE000007F8000007FC000007F8000007F8000007F80 | |
| 3100 | −0000FF8000007F800000FF0000007F800001FC0000007F800007F80000007F80001FE000 | |
| 3101 | −00007F8000FF800000007FFFFFFC000000007FFFFFF0000000007F8001FC000000007F80 | |
| 3102 | −003F000000007F80001FC00000007F80000FE00000007F800007F00000007F800007F800 | |
| 3103 | −00007F800003F80000007F800003FC0000007F800001FC0000007F800001FE0000007F80 | |
| 3104 | −0001FE0000007F800001FE0000007F800001FF0000007F800001FF0000007F800001FF00 | |
| 3105 | −00007F800001FF0000007F800001FF8000007F800001FF8000007F800001FF8000007F80 | |
| 3106 | −0001FF8000007F800001FFC004007F800001FFC00E007F800001FFC00E007F800000FFC0 | |
| 3107 | −0E007F800000FFE00E007F8000007FE01E01FFE000007FE01CFFFFFFC0003FF01CFFFFFF | |
| 3108 | −C0001FF838FFFFFFC00007F870000000000001FFE00000000000003F803F407DBD43>82 | |
| 3109 | −D<0007FC000C001FFF801C007FFFF03C01FC03F83C03F0007E7C07C0001FFC0F80000FFC | |
| 3110 | −1F800007FC3F000003FC3E000001FC7E000000FC7E000000FC7C0000007CFC0000007CFC | |
| 3111 | −0000007CFC0000003CFC0000003CFC0000003CFE0000001CFE0000001CFF0000001CFF00 | |
| 3112 | −00001C7F800000007FC00000007FE00000003FF80000003FFF8000001FFFF800000FFFFF | |
| 3113 | −800007FFFFF00003FFFFFC0001FFFFFF0000FFFFFFC0003FFFFFE00007FFFFF000007FFF | |
| 3114 | −F0000007FFF80000007FFC0000000FFC00000007FE00000003FE00000001FE00000000FF | |
| 3115 | −00000000FFE00000007FE00000007FE00000007FE00000003FE00000003FF00000003FF0 | |
| 3116 | −0000003FF00000003FF00000003EF80000003EF80000007EFC0000007CFE000000FCFF00 | |
| 3117 | −0000F8FF800001F8FFC00003F0FFE00007E0F9FC000FC0F07F803F80F01FFFFE00E007FF | |
| 3118 | −F800C0007FC00028427BBF33>I<3FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFF | |
| 3119 | −FF803FF0007FE001FF803F80003FC0003F807F00003FC0001FC07E00003FC00007C07C00 | |
| 3120 | −003FC00007C07800003FC00003C07800003FC00003C07800003FC00003C07000003FC000 | |
| 3121 | −01C07000003FC00001C07000003FC00001C07000003FC00001C07000003FC00001C0E000 | |
| 3122 | −003FC00000E0E000003FC00000E0E000003FC00000E0E000003FC00000E0E000003FC000 | |
| 3123 | −00E00000003FC00000000000003FC00000000000003FC00000000000003FC00000000000 | |
| 3124 | −003FC00000000000003FC00000000000003FC00000000000003FC00000000000003FC000 | |
| 3125 | −00000000003FC00000000000003FC00000000000003FC00000000000003FC00000000000 | |
| 3126 | −003FC00000000000003FC00000000000003FC00000000000003FC00000000000003FC000 | |
| 3127 | −00000000003FC00000000000003FC00000000000003FC00000000000003FC00000000000 | |
| 3128 | −003FC00000000000003FC00000000000003FC00000000000003FC00000000000003FC000 | |
| 3129 | −00000000003FC00000000000003FC00000000000003FC00000000000003FC00000000000 | |
| 3130 | −003FC00000000000003FC00000000000003FC00000000000003FC00000000000007FE000 | |
| 3131 | −0000000000FFF00000000007FFFFFFFE00000007FFFFFFFE00000007FFFFFFFE00003B3D | |
| 3132 | −7DBC42>I<FFFFFFC000FFFFF8FFFFFFC000FFFFF8FFFFFFC000FFFFF801FFE0000007FF | |
| 3133 | −00007F80000001FC00007F80000000F800007F800000007000007F800000007000007F80 | |
| 3134 | −0000007000007F800000007000007F800000007000007F800000007000007F8000000070 | |
| 3135 | −00007F800000007000007F800000007000007F800000007000007F800000007000007F80 | |
| 3136 | −0000007000007F800000007000007F800000007000007F800000007000007F8000000070 | |
| 3137 | −00007F800000007000007F800000007000007F800000007000007F800000007000007F80 | |
| 3138 | −0000007000007F800000007000007F800000007000007F800000007000007F8000000070 | |
| 3139 | −00007F800000007000007F800000007000007F800000007000007F800000007000007F80 | |
| 3140 | −0000007000007F800000007000007F800000007000007F800000007000007F8000000070 | |
| 3141 | −00007F800000007000007F800000007000007F800000007000007F800000007000007F80 | |
| 3142 | −0000007000007F800000007000003F80000000F000003FC0000000E000003FC0000000E0 | |
| 3143 | −00003FC0000001E000001FC0000001C000001FE0000001C000000FE0000003C000000FF0 | |
| 3144 | −00000780000007F000000700000003F800000F00000001FC00001E00000000FE00003C00 | |
| 3145 | −0000007F0000F8000000003F8001F0000000000FF00FE00000000003FFFF800000000000 | |
| 3146 | −FFFE0000000000001FF00000003D407DBD44>I<FFFFFF00000FFFFEFFFFFF00000FFFFE | |
| 3147 | −FFFFFF00000FFFFE03FFE0000001FFE001FF800000007F8000FF800000003F00007F8000 | |
| 3148 | −00003E00007F800000001C00007FC00000003C00003FC00000003800003FC00000003800 | |
| 3149 | −003FE00000007800001FE00000007000001FE00000007000000FF0000000E000000FF000 | |
| 3150 | −0000E000000FF8000001E0000007F8000001C0000007F8000001C0000007FC000003C000 | |
| 3151 | −0003FC00000380000003FC00000380000001FE00000700000001FE00000700000001FF00 | |
| 3152 | −000700000000FF00000E00000000FF00000E00000000FF80001E000000007F80001C0000 | |
| 3153 | −00007F80001C000000007FC0003C000000003FC00038000000003FC00038000000001FE0 | |
| 3154 | −0070000000001FE00070000000001FF000F0000000000FF000E0000000000FF000E00000 | |
| 3155 | −00000FF801E00000000007F801C00000000007F801C00000000003FC03800000000003FC | |
| 3156 | −03800000000003FE07800000000001FE07000000000001FE07000000000001FF0F000000 | |
| 3157 | −000000FF0E000000000000FF0E0000000000007F9C0000000000007F9C0000000000007F | |
| 3158 | −DC0000000000003FF80000000000003FF80000000000003FF80000000000001FF0000000 | |
| 3159 | −0000001FF00000000000001FF00000000000000FE00000000000000FE000000000000007 | |
| 3160 | −C000000000000007C000000000000007C000000000000003800000003F407EBD44>I<FF | |
| 3161 | −FFFE007FFFFF8007FFFFFFFFFE007FFFFF8007FFFFFFFFFE007FFFFF8007FFFF03FFC000 | |
| 3162 | −01FFE00000FFF801FF000000FFC000003FE001FF0000007F8000000F8000FF0000007F80 | |
| 3163 | −00000F8000FF0000007FC000000F0000FF8000003FC000000F00007F8000003FC000000E | |
| 3164 | −00007F8000003FE000000E00007F8000003FE000000E00003FC000003FE000001C00003F | |
| 3165 | −C000003FE000001C00003FC000007FF000001C00001FE000007FF000003800001FE00000 | |
| 3166 | −7FF000003800001FE00000E7F800003800000FF00000E7F800007000000FF00000E7F800 | |
| 3167 | −007000000FF00001C3FC00007000000FF80001C3FC0000F0000007F80001C3FC0000E000 | |
| 3168 | −0007F80003C3FE0000E0000007FC000381FE0001E0000003FC000381FE0001C0000003FC | |
| 3169 | −000781FF0001C0000003FC000700FF0001C0000001FE000700FF000380000001FE000700 | |
| 3170 | −FF000380000001FE000E007F800380000000FF000E007F800700000000FF000E007F8007 | |
| 3171 | −00000000FF001C003FC007000000007F801C003FC00E000000007F801C003FC00E000000 | |
| 3172 | −007F8038001FE00E000000007FC038001FE01E000000003FC038001FE01C000000003FC0 | |
| 3173 | −78001FF01C000000003FE070000FF03C000000001FE070000FF038000000001FE0F0000F | |
| 3174 | −F838000000001FE0E00007F838000000000FF0E00007F870000000000FF0E00007F87000 | |
| 3175 | −0000000FF1C00003FC700000000007F9C00003FCE00000000007F9C00003FCE000000000 | |
| 3176 | −07FB800001FEE00000000003FF800001FFC00000000003FF800001FFC00000000003FF00 | |
| 3177 | −0000FFC00000000003FF000000FFC00000000001FF000000FF800000000001FF000000FF | |
| 3178 | −800000000001FE0000007F800000000000FE0000007F000000000000FE0000007F000000 | |
| 3179 | −000000FC0000003F0000000000007C0000003E0000000000007C0000003E000000000000 | |
| 3180 | −780000001E000000000000380000001C00000058407EBD5D>I<FFFCFFFCFFFCFFFCF000 | |
| 3181 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 3182 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 3183 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 3184 | −F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000 | |
| 3185 | −F000F000F000F000F000F000F000F000F000F000FFFCFFFCFFFCFFFC0E5B77C319>91 | |
| 3186 | −D<018000C0038001C003000180070003800E0007001C000E0018000C0038001C00300018 | |
| 3187 | −0070003800600030006000300060003000E0007000C0006000C0006000C0006000C00060 | |
| 3188 | −00CF006780FFC07FE0FFE07FF0FFE07FF0FFE07FF07FE03FF07FE03FF03FE01FF03FC01F | |
| 3189 | −E00F0007801C1C73BE2D>I<FFFCFFFCFFFCFFFC003C003C003C003C003C003C003C003C | |
| 3190 | −003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C | |
| 3191 | −003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C | |
| 3192 | −003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C | |
| 3193 | −003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C | |
| 3194 | −003C003C003CFFFCFFFCFFFCFFFC0E5B7FC319>I<000FF800000000FFFE00000003F01F | |
| 3195 | −800000078007E000000F8003F000000FE001F800001FF001FC00001FF000FE00001FF000 | |
| 3196 | −FE00001FF000FE00001FF0007F00000FE0007F00000380007F00000000007F0000000000 | |
| 3197 | −7F00000000007F00000000007F000000001FFF00000003FFFF0000001FF87F0000007F80 | |
| 3198 | −7F000001FC007F000007F8007F00000FE0007F00001FC0007F00003F80007F00003F8000 | |
| 3199 | −7F00007F00007F00007F00007F0380FE00007F0380FE00007F0380FE00007F0380FE0000 | |
| 3200 | −FF0380FE0000FF0380FE0000FF03807F0001FF03807F0003BF03803F80071F87001FC00E | |
| 3201 | −1FCF0007F03C0FFE0001FFF807FC00003FC001F000292A7DA82D>97 | |
| 3202 | −D<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC0000000003FC000000 | |
| 3203 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 3204 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 3205 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC03FC00 | |
| 3206 | −0001FC1FFF800001FC7C07E00001FDE001F00001FFC000FC0001FF80007E0001FF00003F | |
| 3207 | −0001FE00003F8001FC00001F8001FC00001FC001FC00000FE001FC00000FE001FC00000F | |
| 3208 | −F001FC00000FF001FC000007F001FC000007F801FC000007F801FC000007F801FC000007 | |
| 3209 | −F801FC000007F801FC000007F801FC000007F801FC000007F801FC000007F801FC000007 | |
| 3210 | −F801FC000007F001FC000007F001FC00000FF001FC00000FF001FC00000FE001FC00001F | |
| 3211 | −E001FC00001FC001FE00001F8001FE00003F0001FF00007F0001FF8000FE0001F3C001F8 | |
| 3212 | −0001F1E003F00001E0780FC00001C03FFF0000000007F800002D407EBE33>I<0001FF00 | |
| 3213 | −00000FFFE000003F00F800007C001E0001F8001F0003F0007F0007F000FF800FE000FF80 | |
| 3214 | −0FC000FF801FC000FF801FC000FF803F80007F003F80001C007F800000007F800000007F | |
| 3215 | −00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00 | |
| 3216 | −000000FF00000000FF00000000FF00000000FF000000007F800000007F800000007F8000 | |
| 3217 | −00003F800001C03FC00001C01FC00003C01FC00003800FE000078007F000070003F0000E | |
| 3218 | −0001F8001E0000FC007800003F01F000000FFFC0000001FE0000222A7DA828>I<000000 | |
| 3219 | −01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC0000000003FC00000000 | |
| 3220 | −01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 | |
| 3221 | −01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 | |
| 3222 | −01FC0000000001FC0000000001FC0000000001FC0000000001FC000000FF01FC000007FF | |
| 3223 | −E1FC00001F80F9FC00007E003DFC0000FC001FFC0003F80007FC0007F00007FC0007E000 | |
| 3224 | −03FC000FC00001FC001FC00001FC003FC00001FC003F800001FC007F800001FC007F8000 | |
| 3225 | −01FC007F000001FC007F000001FC00FF000001FC00FF000001FC00FF000001FC00FF0000 | |
| 3226 | −01FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC00FF0000 | |
| 3227 | −01FC007F000001FC007F800001FC007F800001FC003F800001FC003F800001FC001FC000 | |
| 3228 | −01FC000FC00003FC000FE00003FC0007E00007FC0003F0000FFE0001F8001FFF00007C00 | |
| 3229 | −79FFF8003F01F1FFF8000FFFC1FFF80001FE01FC002D407DBE33>I<0001FE0000000FFF | |
| 3230 | −C000003F03F00000FC01F80001F800FC0003F0007E0007E0003F000FE0003F800FC0001F | |
| 3231 | −801FC0001FC03F80000FC03F80000FC07F80000FC07F80000FE07F00000FE07F00000FE0 | |
| 3232 | −FF00000FE0FF00000FE0FFFFFFFFE0FFFFFFFFE0FF00000000FF00000000FF00000000FF | |
| 3233 | −00000000FF00000000FF000000007F000000007F000000007F800000003F800000003F80 | |
| 3234 | −0000E01FC00000E01FC00001E00FC00001C007E00003C007F000078003F800070000FC00 | |
| 3235 | −1E00007E003C00001F80F8000007FFE0000000FF0000232A7EA828>I<00001FC000007F | |
| 3236 | −F80001F83C0007E07E000FC0FF001FC1FF003F81FF003F01FF007F01FF007F00FE00FE00 | |
| 3237 | −7C00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 | |
| 3238 | −0000FE000000FE000000FE000000FE000000FE0000FFFFFF00FFFFFF00FFFFFF0000FE00 | |
| 3239 | −0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 | |
| 3240 | −0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 | |
| 3241 | −0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 | |
| 3242 | −0000FE000000FE000000FE000000FE000001FF00007FFFFF007FFFFF007FFFFF0020407E | |
| 3243 | −BF1C>I<000000007C000003F801FF00001FFF078F80007E0FDE1F8000F803F81F8003F0 | |
| 3244 | −01F81F8003F001F81F8007E000FC06000FE000FE00000FC0007E00001FC0007F00001FC0 | |
| 3245 | −007F00001FC0007F00001FC0007F00001FC0007F00001FC0007F00001FC0007F00001FC0 | |
| 3246 | −007F00000FC0007E00000FE000FE000007E000FC000003F001F8000003F001F8000001F8 | |
| 3247 | −03E0000003FE0FC00000071FFF0000000703F80000000600000000000E00000000000E00 | |
| 3248 | −000000000E00000000000F00000000000F00000000000F80000000000FC00000000007FF | |
| 3249 | −FFE0000007FFFFFE000003FFFFFF800001FFFFFFE00000FFFFFFF00003FFFFFFF8000FC0 | |
| 3250 | −001FFC001F000001FE003E000000FE007C0000007E007C0000003F00F80000003F00F800 | |
| 3251 | −00001F00F80000001F00F80000001F00F80000001F00FC0000003F007C0000003E007E00 | |
| 3252 | −00007E003F000000FC001F800001F8000FC00003F00003F0000FC00000FE007F0000003F | |
| 3253 | −FFFC00000003FFC00000293D7EA82D>I<01FC00000000FFFC00000000FFFC00000000FF | |
| 3254 | −FC0000000007FC0000000003FC0000000001FC0000000001FC0000000001FC0000000001 | |
| 3255 | −FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001 | |
| 3256 | −FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001 | |
| 3257 | −FC0000000001FC0000000001FC01FE000001FC07FFC00001FC1E07E00001FC7803F00001 | |
| 3258 | −FCE001F80001FDC001FC0001FD8001FC0001FF8000FE0001FF0000FE0001FF0000FE0001 | |
| 3259 | −FE0000FE0001FE0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001 | |
| 3260 | −FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001 | |
| 3261 | −FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001 | |
| 3262 | −FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001 | |
| 3263 | −FC0000FE0001FC0000FE0003FE0001FF00FFFFF87FFFFCFFFFF87FFFFCFFFFF87FFFFC2E | |
| 3264 | −3F7DBE33>I<01E00007F80007F8000FFC000FFC000FFC000FFC0007F80007F80001E000 | |
| 3265 | −000000000000000000000000000000000000000000000000000000000000000000000000 | |
| 3266 | −01FC007FFC007FFC007FFC0007FC0003FC0001FC0001FC0001FC0001FC0001FC0001FC00 | |
| 3267 | −01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00 | |
| 3268 | −01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00 | |
| 3269 | −03FE00FFFFF0FFFFF0FFFFF0143E7DBD1A>I<0000780001FE0001FE0003FF0003FF0003 | |
| 3270 | −FF0003FF0001FE0001FE0000780000000000000000000000000000000000000000000000 | |
| 3271 | −0000000000000000000000000000007F007FFF007FFF007FFF0001FF0000FF00007F0000 | |
| 3272 | −7F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0000 | |
| 3273 | −7F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0000 | |
| 3274 | −7F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0000 | |
| 3275 | −7F00007F00007F00007F3E007F7F007FFF807EFF80FEFF80FEFF80FCFF81F87F01F87C03 | |
| 3276 | −F01E07C00FFF8001FC00185185BD1C>I<01FC00000000FFFC00000000FFFC00000000FF | |
| 3277 | −FC0000000007FC0000000003FC0000000001FC0000000001FC0000000001FC0000000001 | |
| 3278 | −FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001 | |
| 3279 | −FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001 | |
| 3280 | −FC0000000001FC0000000001FC0000000001FC00FFFF8001FC00FFFF8001FC00FFFF8001 | |
| 3281 | −FC003FFC0001FC003FE00001FC003F800001FC003F000001FC003C000001FC0078000001 | |
| 3282 | −FC00F0000001FC01E0000001FC07C0000001FC0F80000001FC1F00000001FC3E00000001 | |
| 3283 | −FC7F00000001FCFF80000001FDFF80000001FFDFC0000001FF9FE0000001FF0FE0000001 | |
| 3284 | −FE07F0000001FC07F8000001F803FC000001F801FC000001F801FE000001F800FF000001 | |
| 3285 | −F8007F000001F8007F800001F8003FC00001F8001FC00001F8001FE00001F8000FF00001 | |
| 3286 | −F8000FF00001F8000FF80003FC000FFE00FFFFF07FFFE0FFFFF07FFFE0FFFFF07FFFE02B | |
| 3287 | −3F7EBE30>I<01FC00FFFC00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC0001FC00 | |
| 3288 | −01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00 | |
| 3289 | −01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00 | |
| 3290 | −01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00 | |
| 3291 | −01FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC00 | |
| 3292 | −01FC0003FE00FFFFF8FFFFF8FFFFF8153F7DBE1A>I<01F801FE0000FF0000FFF807FFC0 | |
| 3293 | −03FFE000FFF81E07E00F03F000FFF87803F03C01F80007F8E001F87000FC0003F9C001FC | |
| 3294 | −E000FE0001F98001FCC000FE0001FB8000FFC0007F0001FB0000FF80007F0001FF0000FF | |
| 3295 | −80007F0001FE0000FF00007F0001FE0000FF00007F0001FC0000FE00007F0001FC0000FE | |
| 3296 | −00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE | |
| 3297 | −00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE | |
| 3298 | −00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE | |
| 3299 | −00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE | |
| 3300 | −00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE00007F0001FC0000FE | |
| 3301 | −00007F0001FC0000FE00007F0001FC0000FE00007F0003FE0001FF0000FF80FFFFF87FFF | |
| 3302 | −FC3FFFFEFFFFF87FFFFC3FFFFEFFFFF87FFFFC3FFFFE47287DA74C>I<01F801FE0000FF | |
| 3303 | −F807FFC000FFF81E07E000FFF87803F00007F8E001F80003F9C001FC0001F98001FC0001 | |
| 3304 | −FB8000FE0001FB0000FE0001FF0000FE0001FE0000FE0001FE0000FE0001FC0000FE0001 | |
| 3305 | −FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001 | |
| 3306 | −FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001 | |
| 3307 | −FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001 | |
| 3308 | −FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0003FE0001FF00FF | |
| 3309 | −FFF87FFFFCFFFFF87FFFFCFFFFF87FFFFC2E287DA733>I<0000FF00000007FFE000001F | |
| 3310 | −81F800007E007E0000F8001F0001F0000F8003E00007C007C00003E00FC00003F01F8000 | |
| 3311 | −01F81F800001F83F800001FC3F800001FC7F000000FE7F000000FE7F000000FE7F000000 | |
| 3312 | −FEFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FF | |
| 3313 | −FF000000FFFF000000FF7F000000FE7F000000FE7F000000FE3F800001FC3F800001FC3F | |
| 3314 | −800001FC1F800001F80FC00003F00FC00003F007E00007E003F0000FC001F8001F80007E | |
| 3315 | −007E00003F81FC00000FFFF0000000FF0000282A7EA82D>I<01FC03FC0000FFFC1FFF80 | |
| 3316 | −00FFFC7C0FE000FFFDE003F00003FFC001FC0001FF8000FE0001FF00007F0001FE00003F | |
| 3317 | −8001FC00003F8001FC00001FC001FC00001FE001FC00001FE001FC00000FF001FC00000F | |
| 3318 | −F001FC00000FF001FC000007F801FC000007F801FC000007F801FC000007F801FC000007 | |
| 3319 | −F801FC000007F801FC000007F801FC000007F801FC000007F801FC000007F801FC00000F | |
| 3320 | −F001FC00000FF001FC00000FF001FC00000FF001FC00001FE001FC00001FE001FC00003F | |
| 3321 | −C001FE00003F8001FE00007F0001FF00007F0001FF8000FE0001FFC001F80001FDE007F0 | |
| 3322 | −0001FC780FC00001FC3FFF000001FC07F8000001FC0000000001FC0000000001FC000000 | |
| 3323 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 3324 | −0001FC0000000001FC0000000001FC0000000001FC0000000003FE00000000FFFFF80000 | |
| 3325 | −00FFFFF8000000FFFFF80000002D3A7EA733>I<0000FF001C000007FFC03C00001F80F0 | |
| 3326 | −3C00007F00387C0000FC001C7C0003F8000E7C0007F0000FFC0007F00007FC000FE00003 | |
| 3327 | −FC001FE00003FC003FC00003FC003FC00001FC007F800001FC007F800001FC007F800001 | |
| 3328 | −FC007F800001FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC00FF000001 | |
| 3329 | −FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC00FF000001FC007F800001 | |
| 3330 | −FC007F800001FC007F800001FC003FC00001FC003FC00001FC001FC00003FC000FE00003 | |
| 3331 | −FC000FE00007FC0007F0000FFC0003F8000FFC0001FC003DFC00007E0079FC00003F81F1 | |
| 3332 | −FC00000FFFC1FC000001FE01FC0000000001FC0000000001FC0000000001FC0000000001 | |
| 3333 | −FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001 | |
| 3334 | −FC0000000001FC0000000001FC0000000001FC0000000003FE00000000FFFFF8000000FF | |
| 3335 | −FFF8000000FFFFF82D3A7DA730>I<01F807E0FFF81FF8FFF8787CFFF8E1FE07F9C1FE03 | |
| 3336 | −F981FE01FB81FE01FB01FE01FB00FC01FF003001FE000001FE000001FE000001FC000001 | |
| 3337 | −FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001 | |
| 3338 | −FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001 | |
| 3339 | −FC000001FC000001FC000001FC000003FE0000FFFFFE00FFFFFE00FFFFFE001F287EA724 | |
| 3340 | −>I<003FC06001FFF8E007C03FE01F000FE03E0007E03C0003E07C0003E0780001E0F800 | |
| 3341 | −01E0F80000E0F80000E0FC0000E0FE0000E0FF0000E0FF8000007FF800007FFFC0003FFF | |
| 3342 | −F8001FFFFE000FFFFF0007FFFF8001FFFFC0003FFFE00003FFF000001FF000000FF8E000 | |
| 3343 | −03F8E00003F8E00001F8F00001F8F00000F8F00000F8F80000F8F80000F0FC0000F0FC00 | |
| 3344 | −01F0FE0001E0FF0003C0FF800780F3E01F00E0FFFC00C01FE0001D2A7DA824>I<001C00 | |
| 3345 | −00001C0000001C0000001C0000001C0000001C0000003C0000003C0000003C0000003C00 | |
| 3346 | −00007C0000007C000000FC000000FC000001FC000003FC000007FC00001FFFFFC0FFFFFF | |
| 3347 | −C0FFFFFFC001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00 | |
| 3348 | −0001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00 | |
| 3349 | −0001FC000001FC000001FC000001FC00E001FC00E001FC00E001FC00E001FC00E001FC00 | |
| 3350 | −E001FC00E001FC00E001FC00E000FC00E000FE01C000FE01C0007F03C0003F0380001F87 | |
| 3351 | −000007FE000001F8001B397EB723>I<01FC0000FE00FFFC007FFE00FFFC007FFE00FFFC | |
| 3352 | −007FFE0007FC0003FE0003FC0001FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC | |
| 3353 | −0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC | |
| 3354 | −0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC | |
| 3355 | −0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC | |
| 3356 | −0000FE0001FC0000FE0001FC0001FE0001FC0001FE0001FC0001FE0001FC0003FE0000FC | |
| 3357 | −0003FE0000FC0007FE0000FE0006FF00007E000EFF80003F001CFFFC001FC078FFFC0007 | |
| 3358 | −FFE0FFFC0000FF80FE002E297DA733>I<FFFFE00FFFE0FFFFE00FFFE0FFFFE00FFFE007 | |
| 3359 | −FE0003FF0003FC0000FC0003FC0000F80001FC0000F00001FE0000F00000FE0000E00000 | |
| 3360 | −FE0000E00000FF0001E000007F0001C000007F0001C000003F80038000003F8003800000 | |
| 3361 | −3FC0078000001FC0070000001FC0070000000FE00E0000000FE00E0000000FF01E000000 | |
| 3362 | −07F01C00000007F01C00000003F83800000003F83800000003FC7800000001FC70000000 | |
| 3363 | −01FC7000000001FEF000000000FEE000000000FEE0000000007FC0000000007FC0000000 | |
| 3364 | −007FC0000000003F80000000003F80000000001F00000000001F00000000001F00000000 | |
| 3365 | −000E0000002B287EA630>I<FFFFC3FFFE03FFF8FFFFC3FFFE03FFF8FFFFC3FFFE03FFF8 | |
| 3366 | −0FFE003FE000FFC007FC001FC0003F8003F8001FC0003F0003FC000FC0001E0001FC000F | |
| 3367 | −E0001C0001FC0007E0001C0001FE0007E0003C0000FE000FF000380000FE000FF0003800 | |
| 3368 | −007F000FF0007000007F001FF8007000007F001DF8007000003F801DF800E000003F803D | |
| 3369 | −FC00E000003F8038FC00E000001FC038FC01C000001FC078FE01C000001FC0707E03C000 | |
| 3370 | −000FE0707F038000000FE0E03F038000000FF0E03F0780000007F0E03F8700000007F1C0 | |
| 3371 | −1F8700000007F9C01F8F00000003F9C01FCE00000003FB800FCE00000003FF800FDE0000 | |
| 3372 | −0001FF800FFC00000001FF0007FC00000000FF0007F800000000FF0007F800000000FE00 | |
| 3373 | −03F8000000007E0003F0000000007E0003F0000000007C0001F0000000003C0001E00000 | |
| 3374 | −0000380000E000003D287EA642>I<FFFFF01FFFE0FFFFF01FFFE0FFFFF01FFFE003FFC0 | |
| 3375 | −0FFF0000FF8007F800007F0007E000007F8007C000003FC0078000001FC00F0000000FE0 | |
| 3376 | −0E0000000FF01E00000007F83C00000003F87800000001FCF000000001FEE000000000FF | |
| 3377 | −E0000000007FC0000000003F80000000003FC0000000001FC0000000001FE0000000003F | |
| 3378 | −F0000000003FF8000000007BF800000000F1FC00000001E1FE00000001C0FF00000003C0 | |
| 3379 | −7F00000007803F8000000F003FC000001E001FE000003E000FE000007C0007F00000FC00 | |
| 3380 | −07F80001FE0007FC000FFE000FFE00FFFF803FFFF8FFFF803FFFF8FFFF803FFFF82D277F | |
| 3381 | −A630>I<FFFFE00FFFE0FFFFE00FFFE0FFFFE00FFFE007FE0003FF0003FC0001FC0003FC | |
| 3382 | −0000F80001FC0000F00001FE0000F00000FE0000E00000FE0000E000007F0001C000007F | |
| 3383 | −0001C000007F8003C000003F80038000003F80038000001FC0070000001FC0070000001F | |
| 3384 | −E00F0000000FE00E0000000FE00E00000007F01C00000007F01C00000007F83C00000003 | |
| 3385 | −F83800000003F83800000001FC7000000001FC7000000001FEF000000000FEE000000000 | |
| 3386 | −FEE0000000007FC0000000007FC0000000007FC0000000003F80000000003F8000000000 | |
| 3387 | −3F80000000001F00000000001F00000000000E00000000000E00000000001E0000000000 | |
| 3388 | −1C00000000003C0000000000380000000000380000000000780000001800700000007E00 | |
| 3389 | −70000000FF00E0000000FF00E0000000FF01C0000000FF01C0000000FE03800000007E07 | |
| 3390 | −00000000780E000000003C3C000000001FF80000000007E0000000002B3A7EA630>I<1F | |
| 3391 | −FFFFFF801FFFFFFF801FE000FF801F8000FF001F0001FE001E0003FC001C0003FC001C00 | |
| 3392 | −07F8003C000FF0003C001FF00038001FE00038003FC00038007FC00038007F80003800FF | |
| 3393 | −00000001FE00000001FE00000003FC00000007F80000000FF80000000FF00000001FE000 | |
| 3394 | −00003FC00380003FC00380007F80038000FF00038001FF00038001FE00038003FC000780 | |
| 3395 | −07FC00078007F80007000FF00007001FE0000F001FE0000F003FC0001F007F80007F00FF | |
| 3396 | −8001FF00FFFFFFFF00FFFFFFFF0021277EA628>I<FFFFFFFFFFFFFFFFFFFFFFC0FFFFFF | |
| 3397 | −FFFFFFFFFFFFFFFFC05A0280985B>124 D E /Fq 45 122 df<00000000FFFC00000000 | |
| 3398 | −00001FFFFF800000000001FFFFFFE00000000007FFFFFFF0000000001FFFC00FF8000000 | |
| 3399 | −007FFE0003FC00000000FFF00000FE00000001FFE00003FF00000003FF800007FF000000 | |
| 3400 | −07FF00000FFF8000000FFE00001FFF8000000FFE00001FFF8000001FFC00001FFF800000 | |
| 3401 | −1FFC00003FFFC000003FFC00001FFF8000003FF800001FFF8000003FF800001FFF800000 | |
| 3402 | −3FF800001FFF8000003FF800000FFF0000003FF8000007FE0000003FF8000001F8000000 | |
| 3403 | −3FF8000000000000003FF8000000000000003FF8000000000000003FF800000000000000 | |
| 3404 | −3FF8000000000000003FF8000000000000003FF8000000000000003FF800000000000000 | |
| 3405 | −3FF8000000000000003FF80003FFFFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FF | |
| 3406 | −FFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000003FFC000007FFC00000 | |
| 3407 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3408 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3409 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3410 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3411 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3412 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3413 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3414 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3415 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3416 | −3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000 | |
| 3417 | −3FFC000003FFC000003FFC000003FFC0003FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03F | |
| 3418 | −FFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC042547DD34B>12 | |
| 3419 | −D<FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0 | |
| 3420 | −FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0240B7F9F2D>45 | |
| 3421 | −D<000000780000000000FC0000000003FC0000000007FC000000001FFC00000000FFFC00 | |
| 3422 | −00000FFFFC000007FFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFF7FFC0000FFF07FFC00 | |
| 3423 | −00F8007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3424 | −0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3425 | −0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3426 | −0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3427 | −0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3428 | −0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3429 | −0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3430 | −0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3431 | −0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3432 | −0000007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00 | |
| 3433 | −0000007FFC00007FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFF | |
| 3434 | −FE2F4E76CD43>49 D<00003FFE0000000003FFFFE00000000FFFFFFC0000003FFFFFFF00 | |
| 3435 | −0000FFFFFFFFC00001FFC07FFFE00003FE000FFFF80007F80003FFFC000FE00001FFFE00 | |
| 3436 | −1FC00000FFFF003F8000007FFF003FF000007FFF807FF800003FFFC07FFC00003FFFC0FF | |
| 3437 | −FE00001FFFE0FFFF00001FFFE0FFFF00001FFFE0FFFF00000FFFF0FFFF00000FFFF0FFFF | |
| 3438 | −00000FFFF0FFFF00000FFFF0FFFF00000FFFF07FFE00000FFFF07FFE00000FFFF03FFC00 | |
| 3439 | −000FFFF00FF000000FFFF003C000000FFFF0000000000FFFE0000000001FFFE000000000 | |
| 3440 | −1FFFE0000000001FFFC0000000003FFFC0000000003FFF80000000003FFF80000000007F | |
| 3441 | −FF00000000007FFE0000000000FFFC0000000001FFF80000000001FFF00000000003FFE0 | |
| 3442 | −0000000003FFC00000000007FF80000000000FFF00000000001FFE00000000001FFC0000 | |
| 3443 | −0000003FF800000000007FE00000000000FFC00000000001FF800000000003FE00000000 | |
| 3444 | −0007FC000000000007F800000000000FF00001F000001FE00001F000003F800001F00000 | |
| 3445 | −7F000001F00000FE000003E00001FC000003E00003F8000003E00007F0000003E0000FE0 | |
| 3446 | −000003E0001F80000007E0003F00000007E0003E0000000FE0007FFFFFFFFFE000FFFFFF | |
| 3447 | −FFFFC001FFFFFFFFFFC003FFFFFFFFFFC007FFFFFFFFFFC00FFFFFFFFFFFC01FFFFFFFFF | |
| 3448 | −FFC03FFFFFFFFFFFC07FFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFF80FFFFFFFFFFFF | |
| 3449 | −80FFFFFFFFFFFF80FFFFFFFFFFFF80344E79CD43>I<00000FFFC000000000FFFFFC0000 | |
| 3450 | −0007FFFFFF8000001FFFFFFFE000003FF807FFF00000FF8001FFFC0001FE00007FFE0003 | |
| 3451 | −F800003FFF0003F000003FFF8007FC00001FFF800FFF00001FFFC00FFF80001FFFC01FFF | |
| 3452 | −C0001FFFE01FFFC0001FFFE01FFFC0001FFFE01FFFC0001FFFE01FFFE0001FFFE01FFFC0 | |
| 3453 | −001FFFE01FFFC0001FFFE01FFFC0001FFFE00FFFC0001FFFC007FF80001FFFC003FF0000 | |
| 3454 | −3FFFC001FC00003FFF80000000003FFF80000000007FFF00000000007FFE00000000007F | |
| 3455 | −FE0000000000FFFC0000000001FFF80000000003FFF00000000007FFC0000000000FFF80 | |
| 3456 | −00000000FFFE00000000FFFFF800000000FFFFE000000000FFFFFC00000000FFFFFF8000 | |
| 3457 | −00000007FFE00000000001FFF800000000007FFE00000000003FFF00000000001FFF8000 | |
| 3458 | −0000000FFFC0000000000FFFE00000000007FFF00000000007FFF00000000007FFF80000 | |
| 3459 | −000007FFF80000000003FFFC0000000003FFFC0000000003FFFE0000000003FFFE03E000 | |
| 3460 | −0003FFFE0FF8000003FFFE1FFC000003FFFE3FFE000003FFFE7FFF000003FFFEFFFF8000 | |
| 3461 | −03FFFEFFFF800003FFFEFFFF800003FFFEFFFF800003FFFCFFFF800003FFFCFFFF800007 | |
| 3462 | −FFFCFFFF800007FFF8FFFF000007FFF87FFF000007FFF07FFE00000FFFF03FFC00000FFF | |
| 3463 | −E03FF000001FFFC01FE000003FFF800FF800007FFF0007FF0000FFFE0003FFF007FFFC00 | |
| 3464 | −00FFFFFFFFF000007FFFFFFFE000001FFFFFFF80000003FFFFFC000000001FFF80000037 | |
| 3465 | −4F7ACD43>I<00000000007C00000000000000FE00000000000000FE00000000000001FE | |
| 3466 | −00000000000003FE00000000000007FE0000000000000FFE0000000000000FFE00000000 | |
| 3467 | −00001FFE0000000000003FFE0000000000007FFE0000000000007FFE000000000000FFFE | |
| 3468 | −000000000001FFFE000000000003FFFE000000000003FFFE000000000007FFFE00000000 | |
| 3469 | −000FFFFE00000000001FBFFE00000000003F3FFE00000000003E3FFE00000000007C3FFE | |
| 3470 | −0000000000FC3FFE0000000001F83FFE0000000001F03FFE0000000003E03FFE00000000 | |
| 3471 | −07E03FFE000000000FC03FFE000000000F803FFE000000001F003FFE000000003F003FFE | |
| 3472 | −000000007E003FFE000000007C003FFE00000000F8003FFE00000001F8003FFE00000003 | |
| 3473 | −F0003FFE00000007E0003FFE00000007C0003FFE0000000F80003FFE0000001F80003FFE | |
| 3474 | −0000003F00003FFE0000003E00003FFE0000007C00003FFE000000FC00003FFE000001F8 | |
| 3475 | −00003FFE000001F000003FFE000003E000003FFE000007E000003FFE00000FC000003FFE | |
| 3476 | −00001F8000003FFE00001F0000003FFE00003E0000003FFE00007E0000003FFE0000FC00 | |
| 3477 | −00003FFE0000FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFF | |
| 3478 | −FFC0FFFFFFFFFFFFFFC0000000007FFE0000000000007FFE0000000000007FFE00000000 | |
| 3479 | −00007FFE0000000000007FFE0000000000007FFE0000000000007FFE0000000000007FFE | |
| 3480 | −0000000000007FFE0000000000007FFE0000000000007FFE0000000000007FFE00000000 | |
| 3481 | −00007FFE0000000000007FFE0000000000007FFE000000000FFFFFFFFFC000000FFFFFFF | |
| 3482 | −FFC000000FFFFFFFFFC000000FFFFFFFFFC000000FFFFFFFFFC03A4F7CCE43>I<038000 | |
| 3483 | −00000E0007E00000007E0007FE000003FE0007FFF0007FFE0007FFFFFFFFFC0007FFFFFF | |
| 3484 | −FFF80007FFFFFFFFF00007FFFFFFFFE00007FFFFFFFFC00007FFFFFFFF800007FFFFFFFF | |
| 3485 | −000007FFFFFFFE000007FFFFFFFC000007FFFFFFF0000007FFFFFFC0000007FFFFFF0000 | |
| 3486 | −0007FFFFF800000007E1FF0000000007E0000000000007E0000000000007E00000000000 | |
| 3487 | −07E0000000000007E0000000000007E0000000000007E0000000000007E0000000000007 | |
| 3488 | −E0000000000007E0000000000007E0000000000007E00FFF00000007E07FFFF0000007E3 | |
| 3489 | −FFFFFE000007E7FFFFFF800007FFF807FFC00007FFC001FFE00007FE0000FFF80007FC00 | |
| 3490 | −007FFC0007F800003FFC0007F000003FFE0007E000001FFF0003C000001FFF8000000000 | |
| 3491 | −1FFF80000000001FFFC0000000000FFFC0000000000FFFE0000000000FFFE0000000000F | |
| 3492 | −FFE0000000000FFFE0000000000FFFF0000000000FFFF0000000000FFFF00FE000000FFF | |
| 3493 | −F01FF000000FFFF03FF800000FFFF07FFC00000FFFF0FFFE00000FFFF0FFFE00000FFFF0 | |
| 3494 | −FFFE00000FFFF0FFFE00000FFFF0FFFE00000FFFE0FFFE00000FFFE0FFFE00000FFFE0FF | |
| 3495 | −FC00000FFFE07FF800001FFFC07FF000001FFFC07FE000001FFF803E0000003FFF803F00 | |
| 3496 | −00003FFF001F8000007FFE001FC000007FFC000FE00000FFF80007F80001FFF00003FE00 | |
| 3497 | −07FFE00001FFC03FFFC00000FFFFFFFF8000003FFFFFFE0000001FFFFFF800000003FFFF | |
| 3498 | −C0000000007FF8000000344F79CD43>I<0000000FFF0000000000FFFFE000000007FFFF | |
| 3499 | −F00000001FFFFFFC0000007FFE03FE000001FFF0007F000003FFC0003F800007FF00001F | |
| 3500 | −80000FFE00007FC0001FFC0000FFC0003FF80001FFE0007FF00003FFE000FFF00007FFE0 | |
| 3501 | −01FFE00007FFE001FFE00007FFE003FFC00007FFE007FFC00007FFE007FFC00007FFE00F | |
| 3502 | −FFC00003FFC00FFF800001FF801FFF800000FF001FFF8000007E001FFF80000000003FFF | |
| 3503 | −80000000003FFF80000000003FFF00000000007FFF00000000007FFF00000000007FFF00 | |
| 3504 | −080000007FFF01FFF800007FFF07FFFF0000FFFF0FFFFFC000FFFF1FFFFFF000FFFF3F00 | |
| 3505 | −7FF800FFFF3C003FFC00FFFF78001FFE00FFFFF0000FFF00FFFFF00007FF80FFFFE00007 | |
| 3506 | −FFC0FFFFE00007FFC0FFFFC00007FFE0FFFFC00003FFF0FFFF800003FFF0FFFF800003FF | |
| 3507 | −F8FFFF800003FFF8FFFF800003FFF8FFFF800003FFF8FFFF000003FFFCFFFF000003FFFC | |
| 3508 | −FFFF000003FFFC7FFF000003FFFC7FFF000003FFFC7FFF000003FFFC7FFF000003FFFC7F | |
| 3509 | −FF000003FFFC7FFF000003FFFC3FFF000003FFFC3FFF000003FFFC3FFF000003FFFC3FFF | |
| 3510 | −000003FFFC1FFF000003FFF81FFF800003FFF81FFF800003FFF80FFF800003FFF80FFF80 | |
| 3511 | −0003FFF007FF800007FFF007FF800007FFE003FFC00007FFC001FFC00007FFC001FFE000 | |
| 3512 | −0FFF8000FFF0000FFF00007FF8001FFE00003FFC007FFC00001FFF01FFF800000FFFFFFF | |
| 3513 | −F0000003FFFFFFC0000000FFFFFF000000003FFFFC0000000007FFC00000364F7ACD43> | |
| 3514 | −I<1F000000000000001F800000000000001FC00000000000001FFF8000000000001FFFFF | |
| 3515 | −FFFFFFFF801FFFFFFFFFFFFF801FFFFFFFFFFFFF801FFFFFFFFFFFFF803FFFFFFFFFFFFF | |
| 3516 | −803FFFFFFFFFFFFF003FFFFFFFFFFFFE003FFFFFFFFFFFFC003FFFFFFFFFFFF8003FFFFF | |
| 3517 | −FFFFFFF8003FFFFFFFFFFFF0003FFFFFFFFFFFE0003FFFFFFFFFFFC0007FFFFFFFFFFF80 | |
| 3518 | −007F800000007F00007E00000000FF00007E00000001FE00007C00000003FC00007C0000 | |
| 3519 | −0003F800007C00000007F000007C0000000FF000007C0000001FE00000F80000003FC000 | |
| 3520 | −00F80000007F800000F80000007F000000F8000000FE00000000000001FE000000000000 | |
| 3521 | −03FC00000000000003F800000000000007F00000000000000FF00000000000001FE00000 | |
| 3522 | −000000001FE00000000000003FC00000000000003FC00000000000007F80000000000000 | |
| 3523 | −FF80000000000000FF80000000000001FF00000000000001FF00000000000003FF000000 | |
| 3524 | −00000003FE00000000000007FE00000000000007FE0000000000000FFE0000000000000F | |
| 3525 | −FE0000000000000FFC0000000000001FFC0000000000001FFC0000000000003FFC000000 | |
| 3526 | −0000003FFC0000000000003FFC0000000000003FFC0000000000007FFC0000000000007F | |
| 3527 | −F80000000000007FF80000000000007FF8000000000000FFF8000000000000FFF8000000 | |
| 3528 | −000000FFF8000000000000FFF8000000000000FFF8000000000001FFF8000000000001FF | |
| 3529 | −F8000000000001FFF8000000000001FFF8000000000001FFF8000000000001FFF8000000 | |
| 3530 | −000001FFF8000000000001FFF8000000000001FFF8000000000001FFF8000000000001FF | |
| 3531 | −F8000000000001FFF8000000000000FFF0000000000000FFF00000000000003FC0000000 | |
| 3532 | −0000001F8000000000395279D043>I<000007FFC0000000007FFFFC00000003FFFFFF80 | |
| 3533 | −00000FFFFFFFE000001FFC01FFF800003FE0003FFC00007F80000FFE0000FF000007FF00 | |
| 3534 | −01FE000003FF0003FC000001FF8007FC000001FFC007F8000000FFC00FF8000000FFC00F | |
| 3535 | −F8000000FFE00FF80000007FE00FF80000007FE01FF80000007FE01FFC0000007FE01FFC | |
| 3536 | −0000007FE01FFE0000007FE01FFF0000007FE01FFF800000FFE01FFFE00000FFC01FFFF8 | |
| 3537 | −0000FFC01FFFFE0001FF800FFFFF0001FF800FFFFFC003FF000FFFFFF007FE0007FFFFF8 | |
| 3538 | −07FC0007FFFFFE1FF80003FFFFFFBFF00001FFFFFFFFE00001FFFFFFFF800000FFFFFFFE | |
| 3539 | −0000007FFFFFFF0000003FFFFFFF8000000FFFFFFFE0000007FFFFFFF0000001FFFFFFFC | |
| 3540 | −000007FFFFFFFE00001FFFFFFFFF00003FFFFFFFFF8000FFE7FFFFFF8001FF81FFFFFFC0 | |
| 3541 | −03FF007FFFFFE007FE001FFFFFF00FFC000FFFFFF01FF80003FFFFF01FF80000FFFFF83F | |
| 3542 | −F000007FFFF83FF000001FFFF87FE0000007FFFC7FE0000001FFFC7FE0000000FFFCFFC0 | |
| 3543 | −0000007FFCFFC00000003FFCFFC00000003FFCFFC00000001FFCFFC00000001FFCFFC000 | |
| 3544 | −00000FFCFFC00000000FFCFFC00000000FF8FFC00000000FF8FFE00000000FF87FE00000 | |
| 3545 | −000FF07FF00000001FF07FF00000001FF03FF80000003FE01FF80000003FC01FFC000000 | |
| 3546 | −7FC00FFE000000FF8007FF800003FF0003FFE0000FFE0001FFFC00FFFC00007FFFFFFFF0 | |
| 3547 | −00003FFFFFFFE000000FFFFFFF80000001FFFFFC000000000FFFC00000364F7ACD43>I< | |
| 3548 | −00000FFF8000000000FFFFF800000003FFFFFE0000000FFFFFFF8000001FFF03FFC00000 | |
| 3549 | −7FF800FFE00000FFF0003FF00001FFE0001FF80003FFC0001FFC0007FFC0000FFE000FFF | |
| 3550 | −80000FFF000FFF800007FF001FFF800007FF803FFF800007FF803FFF000007FFC07FFF00 | |
| 3551 | −0007FFC07FFF000003FFE07FFF000003FFE07FFF000003FFF0FFFF000003FFF0FFFF0000 | |
| 3552 | −03FFF0FFFF000003FFF0FFFF000003FFF8FFFF000003FFF8FFFF000003FFF8FFFF000003 | |
| 3553 | −FFF8FFFF000003FFF8FFFF000003FFF8FFFF000003FFFCFFFF000003FFFCFFFF000003FF | |
| 3554 | −FCFFFF000003FFFC7FFF000007FFFC7FFF000007FFFC7FFF000007FFFC3FFF000007FFFC | |
| 3555 | −3FFF000007FFFC3FFF00000FFFFC1FFF80000FFFFC0FFF80001FFFFC0FFF80001FFFFC07 | |
| 3556 | −FF80003FFFFC03FFC0003FFFFC01FFE0007BFFFC00FFF000F3FFFC007FF803F3FFFC001F | |
| 3557 | −FFFFE3FFFC000FFFFFC3FFFC0003FFFF83FFF800007FFE03FFF80000004003FFF8000000 | |
| 3558 | −0003FFF80000000003FFF80000000003FFF00000000007FFF00000000007FFF000000000 | |
| 3559 | −07FFF001F8000007FFE003FC000007FFE007FE000007FFC00FFF000007FFC01FFF80000F | |
| 3560 | −FF801FFF80000FFF801FFF80000FFF001FFF80001FFF001FFF80001FFE001FFF80003FFC | |
| 3561 | −001FFF00003FFC000FFE00007FF8000FFC0000FFF0000FF80001FFE00007F00003FFC000 | |
| 3562 | −03FC000FFF800003FF807FFE000001FFFFFFFC0000007FFFFFF00000003FFFFFC0000000 | |
| 3563 | −0FFFFE0000000000FFF0000000364F7ACD43>I<00000000001F00000000000000000000 | |
| 3564 | −003F80000000000000000000007FC0000000000000000000007FC0000000000000000000 | |
| 3565 | −00FFE000000000000000000000FFE000000000000000000000FFE0000000000000000000 | |
| 3566 | −01FFF000000000000000000001FFF000000000000000000003FFF8000000000000000000 | |
| 3567 | −03FFF800000000000000000003FFF800000000000000000007FFFC000000000000000000 | |
| 3568 | −07FFFC00000000000000000007FFFC0000000000000000000FFFFE000000000000000000 | |
| 3569 | −0FFFFE0000000000000000001FFFFF0000000000000000001FFFFF000000000000000000 | |
| 3570 | −1FFFFF0000000000000000003FFFFF8000000000000000003F7FFF800000000000000000 | |
| 3571 | −7F7FFFC000000000000000007E7FFFC000000000000000007E3FFFC00000000000000000 | |
| 3572 | −FE3FFFE00000000000000000FC1FFFE00000000000000001FC1FFFF00000000000000001 | |
| 3573 | −F81FFFF00000000000000001F80FFFF00000000000000003F80FFFF80000000000000003 | |
| 3574 | −F007FFF80000000000000007F007FFFC0000000000000007E007FFFC0000000000000007 | |
| 3575 | −E003FFFC000000000000000FE003FFFE000000000000000FC001FFFE000000000000001F | |
| 3576 | −C001FFFF000000000000001F8001FFFF000000000000001F8000FFFF000000000000003F | |
| 3577 | −8000FFFF800000000000003F00007FFF800000000000007F00007FFFC00000000000007E | |
| 3578 | −00007FFFC00000000000007E00003FFFC0000000000000FE00003FFFE0000000000000FC | |
| 3579 | −00001FFFE0000000000001FC00001FFFF0000000000001F800001FFFF0000000000001F8 | |
| 3580 | −00000FFFF0000000000003F800000FFFF8000000000003F0000007FFF8000000000007F0 | |
| 3581 | −000007FFFC000000000007E0000007FFFC000000000007E0000003FFFC00000000000FFF | |
| 3582 | −FFFFFFFFFE00000000000FFFFFFFFFFFFE00000000001FFFFFFFFFFFFF00000000001FFF | |
| 3583 | −FFFFFFFFFF00000000001FFFFFFFFFFFFF00000000003F80000000FFFF80000000003F00 | |
| 3584 | −0000007FFF80000000007F000000007FFFC0000000007F000000007FFFC0000000007E00 | |
| 3585 | −0000003FFFC000000000FE000000003FFFE000000000FC000000001FFFE000000001FC00 | |
| 3586 | −0000001FFFF000000001FC000000001FFFF000000001F8000000000FFFF000000003F800 | |
| 3587 | −0000000FFFF800000003F00000000007FFF800000007F00000000007FFFC00000007F000 | |
| 3588 | −00000007FFFC00000007E00000000003FFFC0000000FE00000000003FFFE0000000FC000 | |
| 3589 | −00000003FFFE0000001FC00000000001FFFF000000FFFC0000000001FFFF0000FFFFFFF8 | |
| 3590 | −00000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE0FFFFFFF8 | |
| 3591 | −00000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE05B547BD366>65 | |
| 3592 | −D<0000000001FFFC000001C0000000007FFFFFC00003C000000007FFFFFFF80007C00000 | |
| 3593 | −003FFFFFFFFE001FC0000000FFFFFFFFFF803FC0000003FFFFE003FFC07FC000000FFFFC | |
| 3594 | −00003FF0FFC000003FFFE000000FF9FFC000007FFF80000003FFFFC00001FFFE00000000 | |
| 3595 | −FFFFC00003FFF8000000007FFFC00007FFF0000000003FFFC0000FFFE0000000001FFFC0 | |
| 3596 | −001FFFC0000000000FFFC0003FFF800000000007FFC0007FFF000000000003FFC000FFFE | |
| 3597 | −000000000001FFC000FFFE000000000001FFC001FFFC000000000000FFC003FFF8000000 | |
| 3598 | −000000FFC003FFF80000000000007FC007FFF00000000000007FC00FFFF0000000000000 | |
| 3599 | −3FC00FFFF00000000000003FC01FFFE00000000000001FC01FFFE00000000000001FC01F | |
| 3600 | −FFE00000000000001FC03FFFC00000000000001FC03FFFC00000000000000FC03FFFC000 | |
| 3601 | −00000000000FC07FFFC00000000000000FC07FFFC00000000000000FC07FFFC000000000 | |
| 3602 | −000000007FFF8000000000000000007FFF800000000000000000FFFF8000000000000000 | |
| 3603 | −00FFFF800000000000000000FFFF800000000000000000FFFF800000000000000000FFFF | |
| 3604 | −800000000000000000FFFF800000000000000000FFFF800000000000000000FFFF800000 | |
| 3605 | −000000000000FFFF800000000000000000FFFF800000000000000000FFFF800000000000 | |
| 3606 | −000000FFFF800000000000000000FFFF800000000000000000FFFF800000000000000000 | |
| 3607 | −7FFF8000000000000000007FFF8000000000000000007FFFC000000000000000007FFFC0 | |
| 3608 | −00000000000000007FFFC000000000000007C03FFFC000000000000007C03FFFC0000000 | |
| 3609 | −00000007C03FFFC000000000000007C01FFFE000000000000007C01FFFE0000000000000 | |
| 3610 | −07C01FFFE00000000000000FC00FFFF00000000000000F800FFFF00000000000000F8007 | |
| 3611 | −FFF00000000000001F8003FFF80000000000001F8003FFF80000000000001F0001FFFC00 | |
| 3612 | −00000000003F0000FFFE0000000000007E0000FFFE0000000000007E00007FFF00000000 | |
| 3613 | −0000FC00003FFF800000000001F800001FFFC00000000003F800000FFFE00000000007F0 | |
| 3614 | −000007FFF0000000000FE0000003FFFC000000001FC0000001FFFE000000007F80000000 | |
| 3615 | −7FFF80000000FF000000003FFFE0000007FE000000000FFFFE00001FF80000000003FFFF | |
| 3616 | −E001FFF00000000000FFFFFFFFFFC000000000003FFFFFFFFF00000000000007FFFFFFFC | |
| 3617 | −000000000000007FFFFFE00000000000000001FFFC00000000525479D261>67 | |
| 3618 | −D<FFFFFFFFFFFFFF8000000000FFFFFFFFFFFFFFFC00000000FFFFFFFFFFFFFFFF800000 | |
| 3619 | −00FFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFC0000000007FFF000000FFFFF0000 | |
| 3620 | −000007FFF0000000FFFFC000000007FFF00000001FFFE000000007FFF000000007FFF800 | |
| 3621 | −000007FFF000000001FFFC00000007FFF000000000FFFE00000007FFF0000000007FFF00 | |
| 3622 | −000007FFF0000000003FFF80000007FFF0000000001FFFC0000007FFF0000000000FFFC0 | |
| 3623 | −000007FFF00000000007FFE0000007FFF00000000003FFF0000007FFF00000000003FFF8 | |
| 3624 | −000007FFF00000000001FFF8000007FFF00000000001FFFC000007FFF00000000000FFFC | |
| 3625 | −000007FFF00000000000FFFE000007FFF00000000000FFFE000007FFF000000000007FFF | |
| 3626 | −000007FFF000000000007FFF000007FFF000000000007FFF000007FFF000000000007FFF | |
| 3627 | −800007FFF000000000003FFF800007FFF000000000003FFF800007FFF000000000003FFF | |
| 3628 | −C00007FFF000000000003FFFC00007FFF000000000003FFFC00007FFF000000000003FFF | |
| 3629 | −C00007FFF000000000003FFFC00007FFF000000000003FFFE00007FFF000000000003FFF | |
| 3630 | −E00007FFF000000000003FFFE00007FFF000000000001FFFE00007FFF000000000001FFF | |
| 3631 | −E00007FFF000000000001FFFE00007FFF000000000001FFFE00007FFF000000000001FFF | |
| 3632 | −E00007FFF000000000001FFFE00007FFF000000000001FFFE00007FFF000000000001FFF | |
| 3633 | −E00007FFF000000000001FFFE00007FFF000000000003FFFE00007FFF000000000003FFF | |
| 3634 | −E00007FFF000000000003FFFE00007FFF000000000003FFFC00007FFF000000000003FFF | |
| 3635 | −C00007FFF000000000003FFFC00007FFF000000000003FFFC00007FFF000000000003FFF | |
| 3636 | −C00007FFF000000000003FFF800007FFF000000000003FFF800007FFF000000000007FFF | |
| 3637 | −800007FFF000000000007FFF000007FFF000000000007FFF000007FFF000000000007FFF | |
| 3638 | −000007FFF00000000000FFFE000007FFF00000000000FFFE000007FFF00000000000FFFC | |
| 3639 | −000007FFF00000000001FFFC000007FFF00000000001FFF8000007FFF00000000003FFF0 | |
| 3640 | −000007FFF00000000007FFF0000007FFF00000000007FFE0000007FFF0000000000FFFC0 | |
| 3641 | −000007FFF0000000001FFF80000007FFF0000000003FFF00000007FFF000000000FFFE00 | |
| 3642 | −000007FFF000000001FFFC00000007FFF000000007FFF800000007FFF00000001FFFF000 | |
| 3643 | −000007FFF0000000FFFFC000000007FFF000000FFFFF000000FFFFFFFFFFFFFFFFFE0000 | |
| 3644 | −00FFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFC0000000FFFFFFFFFFFFFFFC000000 | |
| 3645 | −00FFFFFFFFFFFFFF80000000005B527CD167>I<FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFF | |
| 3646 | −FFFFFF80FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFF800007 | |
| 3647 | −FFF8000001FFFFC00007FFF80000001FFFC00007FFF800000007FFC00007FFF800000001 | |
| 3648 | −FFC00007FFF800000000FFC00007FFF8000000007FC00007FFF8000000003FC00007FFF8 | |
| 3649 | −000000001FC00007FFF8000000001FC00007FFF8000000000FE00007FFF8000000000FE0 | |
| 3650 | −0007FFF80000000007E00007FFF80000000007E00007FFF80000000007E00007FFF80000 | |
| 3651 | −000003E00007FFF80000000003E00007FFF80000000003E00007FFF80000F80003E00007 | |
| 3652 | −FFF80000F80003F00007FFF80000F80001F00007FFF80000F80001F00007FFF80000F800 | |
| 3653 | −01F00007FFF80000F80001F00007FFF80000F80000000007FFF80001F80000000007FFF8 | |
| 3654 | −0001F80000000007FFF80001F80000000007FFF80003F80000000007FFF80007F8000000 | |
| 3655 | −0007FFF8000FF80000000007FFF8007FF80000000007FFFFFFFFF80000000007FFFFFFFF | |
| 3656 | −F80000000007FFFFFFFFF80000000007FFFFFFFFF80000000007FFFFFFFFF80000000007 | |
| 3657 | −FFF8007FF80000000007FFF8000FF80000000007FFF80007F80000000007FFF80003F800 | |
| 3658 | −00000007FFF80001F80000000007FFF80001F80000000007FFF80001F80000000007FFF8 | |
| 3659 | −0000F80000000007FFF80000F800003E0007FFF80000F800003E0007FFF80000F800003E | |
| 3660 | −0007FFF80000F800007C0007FFF80000F800007C0007FFF80000F800007C0007FFF80000 | |
| 3661 | −0000007C0007FFF800000000007C0007FFF80000000000FC0007FFF80000000000FC0007 | |
| 3662 | −FFF80000000000F80007FFF80000000000F80007FFF80000000001F80007FFF800000000 | |
| 3663 | −01F80007FFF80000000001F80007FFF80000000003F80007FFF80000000003F00007FFF8 | |
| 3664 | −0000000007F00007FFF8000000000FF00007FFF8000000000FF00007FFF8000000001FF0 | |
| 3665 | −0007FFF8000000003FF00007FFF8000000007FE00007FFF800000001FFE00007FFF80000 | |
| 3666 | −0007FFE00007FFF80000001FFFE00007FFF8000003FFFFE0FFFFFFFFFFFFFFFFFFE0FFFF | |
| 3667 | −FFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFF | |
| 3668 | −FFC04F517CD058>I<FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFF | |
| 3669 | −FFFE00FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFFFE000007FFF8000007FFFF000007FF | |
| 3670 | −F80000007FFF000007FFF80000001FFF000007FFF800000007FF000007FFF800000003FF | |
| 3671 | −000007FFF800000001FF000007FFF800000000FF000007FFF8000000007F000007FFF800 | |
| 3672 | −0000003F000007FFF8000000003F800007FFF8000000003F800007FFF8000000001F8000 | |
| 3673 | −07FFF8000000001F800007FFF8000000001F800007FFF8000000000F800007FFF8000000 | |
| 3674 | −000F800007FFF8000000000F800007FFF8000000000F800007FFF8000000000FC00007FF | |
| 3675 | −F80000F80007C00007FFF80000F80007C00007FFF80000F80007C00007FFF80000F80007 | |
| 3676 | −C00007FFF80000F80000000007FFF80000F80000000007FFF80000F80000000007FFF800 | |
| 3677 | −01F80000000007FFF80001F80000000007FFF80001F80000000007FFF80003F800000000 | |
| 3678 | −07FFF80007F80000000007FFF8000FF80000000007FFF8007FF80000000007FFFFFFFFF8 | |
| 3679 | −0000000007FFFFFFFFF80000000007FFFFFFFFF80000000007FFFFFFFFF80000000007FF | |
| 3680 | −FFFFFFF80000000007FFF8007FF80000000007FFF8000FF80000000007FFF80007F80000 | |
| 3681 | −000007FFF80003F80000000007FFF80001F80000000007FFF80001F80000000007FFF800 | |
| 3682 | −01F80000000007FFF80000F80000000007FFF80000F80000000007FFF80000F800000000 | |
| 3683 | −07FFF80000F80000000007FFF80000F80000000007FFF80000F80000000007FFF80000F8 | |
| 3684 | −0000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FF | |
| 3685 | −F80000000000000007FFF80000000000000007FFF80000000000000007FFF80000000000 | |
| 3686 | −000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800 | |
| 3687 | −00000000000007FFF80000000000000007FFF80000000000000007FFF800000000000000 | |
| 3688 | −07FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8000000 | |
| 3689 | −0000000007FFF8000000000000FFFFFFFFFFF800000000FFFFFFFFFFF800000000FFFFFF | |
| 3690 | −FFFFF800000000FFFFFFFFFFF800000000FFFFFFFFFFF8000000004A517CD055>I<FFFF | |
| 3691 | −FFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC00007FFF800000007 | |
| 3692 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3693 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3694 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3695 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3696 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3697 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3698 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3699 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3700 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3701 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3702 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007 | |
| 3703 | −FFF800000007FFF800000007FFF800000007FFF800000007FFF80000FFFFFFFFFFC0FFFF | |
| 3704 | −FFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC02A527CD132>73 | |
| 3705 | −D<FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF80000 | |
| 3706 | −00FFFFFFFFFFF80000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3707 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3708 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3709 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3710 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3711 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3712 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3713 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3714 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3715 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3716 | −000007FFF800000000000007FFF800000000000007FFF800000000000007FFF800000000 | |
| 3717 | −000007FFF800000000000007FFF800000000000007FFF8000000007C0007FFF800000000 | |
| 3718 | −7C0007FFF8000000007C0007FFF8000000007C0007FFF800000000FC0007FFF800000000 | |
| 3719 | −F80007FFF800000000F80007FFF800000000F80007FFF800000000F80007FFF800000000 | |
| 3720 | −F80007FFF800000001F80007FFF800000001F80007FFF800000001F80007FFF800000003 | |
| 3721 | −F80007FFF800000003F80007FFF800000007F80007FFF800000007F00007FFF80000000F | |
| 3722 | −F00007FFF80000000FF00007FFF80000001FF00007FFF80000003FF00007FFF80000007F | |
| 3723 | −F00007FFF8000000FFF00007FFF8000003FFF00007FFF8000007FFF00007FFF800003FFF | |
| 3724 | −F00007FFF80001FFFFF0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFF | |
| 3725 | −E0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFE046527CD151>76 D<FFFFFFFFFFFFFF0000 | |
| 3726 | −00FFFFFFFFFFFFFFF80000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFE000FFFFFFFFFF | |
| 3727 | −FFFFFFF0000007FFF000001FFFFC000007FFF0000001FFFF000007FFF00000007FFF8000 | |
| 3728 | −07FFF00000003FFFC00007FFF00000000FFFE00007FFF00000000FFFF00007FFF0000000 | |
| 3729 | −07FFF00007FFF000000003FFF80007FFF000000003FFFC0007FFF000000003FFFC0007FF | |
| 3730 | −F000000001FFFE0007FFF000000001FFFE0007FFF000000001FFFE0007FFF000000001FF | |
| 3731 | −FE0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000 | |
| 3732 | −000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF00 | |
| 3733 | −07FFF000000001FFFF0007FFF000000001FFFE0007FFF000000001FFFE0007FFF0000000 | |
| 3734 | −01FFFE0007FFF000000001FFFC0007FFF000000003FFFC0007FFF000000003FFFC0007FF | |
| 3735 | −F000000003FFF80007FFF000000007FFF00007FFF00000000FFFE00007FFF00000001FFF | |
| 3736 | −E00007FFF00000003FFFC00007FFF00000007FFF000007FFF0000001FFFE000007FFF000 | |
| 3737 | −001FFFFC000007FFFFFFFFFFFFF0000007FFFFFFFFFFFFC0000007FFFFFFFFFFFE000000 | |
| 3738 | −07FFFFFFFFFFE000000007FFF80000000000000007FFF80000000000000007FFF8000000 | |
| 3739 | −0000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FF | |
| 3740 | −F80000000000000007FFF80000000000000007FFF80000000000000007FFF80000000000 | |
| 3741 | −000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800 | |
| 3742 | −00000000000007FFF80000000000000007FFF80000000000000007FFF800000000000000 | |
| 3743 | −07FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8000000 | |
| 3744 | −0000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FF | |
| 3745 | −F80000000000000007FFF80000000000000007FFF80000000000000007FFF80000000000 | |
| 3746 | −000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800 | |
| 3747 | −0000000000FFFFFFFFFFC000000000FFFFFFFFFFC000000000FFFFFFFFFFC000000000FF | |
| 3748 | −FFFFFFFFC000000000FFFFFFFFFFC00000000050527CD15C>80 D<00000FFF8000070000 | |
| 3749 | −00FFFFF8000F000007FFFFFF001F00001FFFFFFFC03F00003FFFFFFFF07F0000FFFC00FF | |
| 3750 | −F8FF0001FFE0000FFDFF0003FF800001FFFF0007FE0000007FFF000FFC0000003FFF000F | |
| 3751 | −F80000000FFF001FF800000007FF001FF000000003FF003FF000000003FF003FE0000000 | |
| 3752 | −01FF007FE000000000FF007FE000000000FF007FE0000000007F00FFE0000000007F00FF | |
| 3753 | −E0000000003F00FFE0000000003F00FFF0000000003F00FFF0000000003F00FFF8000000 | |
| 3754 | −001F00FFF8000000001F00FFFC000000001F00FFFE000000001F00FFFF000000000000FF | |
| 3755 | −FFC000000000007FFFF000000000007FFFFF00000000007FFFFFF8000000003FFFFFFF80 | |
| 3756 | −0000003FFFFFFFFC0000001FFFFFFFFFC000001FFFFFFFFFF000000FFFFFFFFFFC000007 | |
| 3757 | −FFFFFFFFFF000003FFFFFFFFFFC00001FFFFFFFFFFE00000FFFFFFFFFFF000007FFFFFFF | |
| 3758 | −FFF800003FFFFFFFFFFC00000FFFFFFFFFFE000003FFFFFFFFFE000000FFFFFFFFFF0000 | |
| 3759 | −001FFFFFFFFF80000000FFFFFFFF800000000FFFFFFFC0000000007FFFFFC00000000007 | |
| 3760 | −FFFFE00000000000FFFFE000000000003FFFE000000000000FFFF0000000000007FFF000 | |
| 3761 | −0000000003FFF0000000000003FFF0780000000001FFF0F80000000000FFF0F800000000 | |
| 3762 | −00FFF0F80000000000FFF0F800000000007FF0F800000000007FF0FC00000000007FF0FC | |
| 3763 | −00000000007FF0FC00000000007FE0FE00000000007FE0FE00000000007FE0FF00000000 | |
| 3764 | −00FFC0FF0000000000FFC0FF8000000000FFC0FFC000000001FF80FFE000000001FF00FF | |
| 3765 | −F000000003FF00FFFC00000007FE00FFFF0000000FFC00FFFFC000001FF800FFFFF80000 | |
| 3766 | −7FF000FF1FFFC003FFE000FE0FFFFFFFFFC000FC03FFFFFFFF0000F8007FFFFFFC0000F0 | |
| 3767 | −000FFFFFF00000E000007FFF0000003C5479D24B>83 D<3FFFFFFFFFFFFFFFFFFF803FFF | |
| 3768 | −FFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFF803FFFFFFFFF | |
| 3769 | −FFFFFFFFFF803FFFC0003FFFC0007FFF803FFE00003FFFC00007FF807FF800003FFFC000 | |
| 3770 | −01FFC07FE000003FFFC00000FFC07FC000003FFFC000007FC07F8000003FFFC000003FC0 | |
| 3771 | −7F0000003FFFC000001FC07F0000003FFFC000001FC07E0000003FFFC000000FC07E0000 | |
| 3772 | −003FFFC000000FC07E0000003FFFC000000FC07C0000003FFFC0000007C07C0000003FFF | |
| 3773 | −C0000007C07C0000003FFFC0000007C07C0000003FFFC0000007C07C0000003FFFC00000 | |
| 3774 | −07C0FC0000003FFFC0000007E0F80000003FFFC0000003E0F80000003FFFC0000003E0F8 | |
| 3775 | −0000003FFFC0000003E0F80000003FFFC0000003E0F80000003FFFC0000003E0F8000000 | |
| 3776 | −3FFFC0000003E0000000003FFFC000000000000000003FFFC000000000000000003FFFC0 | |
| 3777 | −00000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000 | |
| 3778 | −00000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000000000 | |
| 3779 | −00003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003F | |
| 3780 | −FFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC000 | |
| 3781 | −000000000000003FFFC000000000000000003FFFC000000000000000003FFFC000000000 | |
| 3782 | −000000003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000 | |
| 3783 | −003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFF | |
| 3784 | −C000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000 | |
| 3785 | −0000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000 | |
| 3786 | −0000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000000000 | |
| 3787 | −3FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0 | |
| 3788 | −00000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000 | |
| 3789 | −00000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000000000 | |
| 3790 | −00003FFFC000000000000000003FFFC000000000000000003FFFC0000000000000FFFFFF | |
| 3791 | −FFFFFFF000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFF | |
| 3792 | −F000000000FFFFFFFFFFFFF0000053517BD05E>I<FFFFFFFFFE0000001FFFFFFEFFFFFF | |
| 3793 | −FFFE0000001FFFFFFEFFFFFFFFFE0000001FFFFFFEFFFFFFFFFE0000001FFFFFFEFFFFFF | |
| 3794 | −FFFE0000001FFFFFFE001FFFF000000000003FFE00001FFFF0000000000007F000000FFF | |
| 3795 | −F0000000000007E000000FFFF800000000000FE0000007FFF800000000000FC0000007FF | |
| 3796 | −FC00000000000FC0000007FFFC00000000001FC0000003FFFE00000000001F80000003FF | |
| 3797 | −FE00000000003F80000001FFFE00000000003F00000001FFFF00000000007F00000000FF | |
| 3798 | −FF00000000007E00000000FFFF80000000007E00000000FFFF8000000000FE000000007F | |
| 3799 | −FFC000000000FC000000007FFFC000000001FC000000003FFFE000000001F8000000003F | |
| 3800 | −FFE000000003F8000000001FFFE000000003F0000000001FFFF000000007F0000000001F | |
| 3801 | −FFF000000007F0000000000FFFF800000007E0000000000FFFF80000000FE00000000007 | |
| 3802 | −FFFC0000000FC00000000007FFFC0000001FC00000000003FFFC0000001F800000000003 | |
| 3803 | −FFFE0000003F800000000003FFFE0000003F800000000001FFFF0000003F000000000001 | |
| 3804 | −FFFF0000007F000000000000FFFF8000007E000000000000FFFF800000FE000000000000 | |
| 3805 | −7FFF800000FC0000000000007FFFC00001FC0000000000007FFFC00001FC000000000000 | |
| 3806 | −3FFFE00001F80000000000003FFFE00003F80000000000001FFFF00003F0000000000000 | |
| 3807 | −1FFFF00007F00000000000000FFFF00007E00000000000000FFFF8000FE0000000000000 | |
| 3808 | −0FFFF8000FE000000000000007FFFC000FC000000000000007FFFC001FC0000000000000 | |
| 3809 | −03FFFE001F8000000000000003FFFE003F8000000000000001FFFE003F00000000000000 | |
| 3810 | −01FFFF007F0000000000000001FFFF007F0000000000000000FFFF807E00000000000000 | |
| 3811 | −00FFFF80FE00000000000000007FFFC0FC00000000000000007FFFC1FC00000000000000 | |
| 3812 | −003FFFC1F800000000000000003FFFE3F800000000000000001FFFE3F000000000000000 | |
| 3813 | −001FFFF3F000000000000000001FFFF7F000000000000000000FFFFFE000000000000000 | |
| 3814 | −000FFFFFE0000000000000000007FFFFC0000000000000000007FFFFC000000000000000 | |
| 3815 | −0003FFFF80000000000000000003FFFF80000000000000000003FFFF8000000000000000 | |
| 3816 | −0001FFFF00000000000000000001FFFF00000000000000000000FFFE0000000000000000 | |
| 3817 | −0000FFFE000000000000000000007FFC000000000000000000007FFC0000000000000000 | |
| 3818 | −00007FFC000000000000000000003FF8000000000000000000003FF80000000000000000 | |
| 3819 | −00001FF0000000000000000000001FF0000000000000000000000FE00000000000000000 | |
| 3820 | −000007C000000000005F537DD166>86 D<00007FFF000000000007FFFFF0000000003FFF | |
| 3821 | −FFFE00000000FFFFFFFF80000001FFE00FFFC0000003FE0001FFF0000007FF0000FFF800 | |
| 3822 | −0007FF80003FFC00000FFF80003FFE00000FFFC0001FFE00000FFFC0001FFF00000FFFC0 | |
| 3823 | −000FFF80000FFFC0000FFF80000FFFC0000FFF800007FF800007FFC00007FF800007FFC0 | |
| 3824 | −0003FF000007FFC00001FE000007FFC0000000000007FFC0000000000007FFC000000000 | |
| 3825 | −0007FFC0000000000007FFC0000000000007FFC0000000000007FFC0000000007FFFFFC0 | |
| 3826 | −0000000FFFFFFFC0000000FFFFFFFFC0000007FFFF87FFC000003FFFF007FFC000007FFF | |
| 3827 | −8007FFC00001FFFC0007FFC00003FFF00007FFC00007FFE00007FFC0000FFFC00007FFC0 | |
| 3828 | −001FFF800007FFC0003FFF000007FFC0007FFF000007FFC0007FFE000007FFC0007FFE00 | |
| 3829 | −0007FFC000FFFC000007FFC000FFFC000007FFC000FFFC000007FFC000FFFC000007FFC0 | |
| 3830 | −00FFFC00000FFFC000FFFC00000FFFC000FFFE00001FFFC0007FFE00001DFFC0007FFE00 | |
| 3831 | −003DFFC0003FFF000079FFE0001FFF8000F1FFF8000FFFC003E1FFFFE007FFF81FC0FFFF | |
| 3832 | −F003FFFFFF807FFFF000FFFFFF001FFFF0001FFFFC0007FFE00001FFE0000000003C387C | |
| 3833 | −B641>97 D<003FF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF000 | |
| 3834 | −0000000000FFFFF0000000000000FFFFF000000000000003FFF000000000000000FFF000 | |
| 3835 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3836 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3837 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3838 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3839 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3840 | −000000000000FFF000000000000000FFF001FFE000000000FFF00FFFFE00000000FFF03F | |
| 3841 | −FFFFC0000000FFF0FFFFFFF0000000FFF3FF01FFF8000000FFF7F8003FFE000000FFFFE0 | |
| 3842 | −000FFF000000FFFF800007FF800000FFFF000003FFC00000FFFE000001FFE00000FFFC00 | |
| 3843 | −0001FFF00000FFF8000000FFF80000FFF8000000FFF80000FFF80000007FFC0000FFF800 | |
| 3844 | −00007FFC0000FFF80000007FFE0000FFF80000007FFE0000FFF80000007FFF0000FFF800 | |
| 3845 | −00003FFF0000FFF80000003FFF0000FFF80000003FFF0000FFF80000003FFF8000FFF800 | |
| 3846 | −00003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF800 | |
| 3847 | −00003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF800 | |
| 3848 | −00003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF0000FFF800 | |
| 3849 | −00003FFF0000FFF80000003FFF0000FFF80000003FFF0000FFF80000007FFE0000FFF800 | |
| 3850 | −00007FFE0000FFF80000007FFE0000FFF80000007FFC0000FFF8000000FFFC0000FFF800 | |
| 3851 | −0000FFF80000FFFC000001FFF00000FFFC000001FFF00000FFFE000003FFE00000FFFF00 | |
| 3852 | −0007FFC00000FFFF80000FFF800000FFCFC0001FFF000000FF87F0007FFC000000FF03FE | |
| 3853 | −03FFF8000000FE00FFFFFFE0000000FC007FFFFF80000000F8001FFFFC00000000000003 | |
| 3854 | −FFC000000041547BD24B>I<000001FFF8000000001FFFFF80000000FFFFFFF0000003FF | |
| 3855 | −FFFFFC00000FFFC00FFE00001FFE0001FF00007FFC0003FF8000FFF00007FF8001FFF000 | |
| 3856 | −07FFC003FFE0000FFFC003FFC0000FFFC007FFC0000FFFC00FFF80000FFFC00FFF80000F | |
| 3857 | −FFC01FFF800007FF801FFF000007FF803FFF000003FF003FFF000001FE007FFF00000000 | |
| 3858 | −007FFE00000000007FFE00000000007FFE0000000000FFFE0000000000FFFE0000000000 | |
| 3859 | −FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FF | |
| 3860 | −FE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE | |
| 3861 | −00000000007FFE00000000007FFF00000000007FFF00000000003FFF00000000003FFF00 | |
| 3862 | −000000003FFF00000003E01FFF80000003E01FFF80000007E00FFFC0000007C007FFC000 | |
| 3863 | −0007C007FFE000000FC003FFE000001F8001FFF000003F0000FFF800007E00007FFE0000 | |
| 3864 | −FC00003FFF0003F800000FFFE01FF0000003FFFFFFE0000000FFFFFF800000003FFFFE00 | |
| 3865 | −00000001FFE0000033387CB63C>I<000000000001FF80000000000007FFFF8000000000 | |
| 3866 | −0007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000000 | |
| 3867 | −00001FFF8000000000000007FF8000000000000007FF8000000000000007FF8000000000 | |
| 3868 | −000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000 | |
| 3869 | −000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000 | |
| 3870 | −000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000 | |
| 3871 | −000007FF8000000000000007FF8000000000000007FF8000000000000007FF8000000000 | |
| 3872 | −000007FF8000000000000007FF8000000000000007FF8000000001FFE007FF800000001F | |
| 3873 | −FFFC07FF80000000FFFFFF07FF80000003FFFFFFC7FF8000000FFFE03FE7FF8000001FFF | |
| 3874 | −0007F7FF8000007FFC0001FFFF800000FFF80000FFFF800001FFF000003FFF800003FFE0 | |
| 3875 | −00001FFF800007FFC000001FFF800007FFC000000FFF80000FFF8000000FFF80001FFF80 | |
| 3876 | −00000FFF80001FFF0000000FFF80003FFF0000000FFF80003FFF0000000FFF80003FFF00 | |
| 3877 | −00000FFF80007FFE0000000FFF80007FFE0000000FFF80007FFE0000000FFF80007FFE00 | |
| 3878 | −00000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE00 | |
| 3879 | −00000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE00 | |
| 3880 | −00000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE00 | |
| 3881 | −00000FFF80007FFE0000000FFF80007FFE0000000FFF80007FFE0000000FFF80003FFF00 | |
| 3882 | −00000FFF80003FFF0000000FFF80003FFF0000000FFF80001FFF0000000FFF80001FFF00 | |
| 3883 | −00000FFF80000FFF8000000FFF80000FFF8000001FFF800007FFC000003FFF800003FFC0 | |
| 3884 | −00003FFF800001FFE000007FFF800000FFF00001FFFF8000007FF80003FFFFE000003FFE | |
| 3885 | −000FEFFFFF80000FFFC07FCFFFFF800007FFFFFF8FFFFF800001FFFFFE0FFFFF8000003F | |
| 3886 | −FFF80FFFFF80000003FFC00FFE000041547CD24B>I<000003FFC0000000003FFFFC0000 | |
| 3887 | −0001FFFFFF00000007FFFFFFC000000FFF81FFE000003FFC007FF800007FF8003FFC0000 | |
| 3888 | −FFF0001FFE0001FFE0000FFE0003FFC00007FF0007FFC00007FF800FFF800003FF800FFF | |
| 3889 | −800003FFC01FFF800001FFC01FFF000001FFC03FFF000001FFE03FFF000001FFE07FFF00 | |
| 3890 | −0000FFE07FFE000000FFE07FFE000000FFF07FFE000000FFF0FFFE000000FFF0FFFE0000 | |
| 3891 | −00FFF0FFFE000000FFF0FFFE000000FFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFF | |
| 3892 | −FFF0FFFFFFFFFFFFE0FFFE0000000000FFFE0000000000FFFE0000000000FFFE00000000 | |
| 3893 | −00FFFE0000000000FFFE00000000007FFE00000000007FFE00000000007FFF0000000000 | |
| 3894 | −3FFF00000000003FFF00000000003FFF00000000E01FFF00000001F01FFF80000003F00F | |
| 3895 | −FF80000003F007FFC0000007E007FFC0000007E003FFE000000FC001FFF000001FC000FF | |
| 3896 | −F800003F80007FFC0000FF00001FFE0003FE00000FFFC03FF8000003FFFFFFF0000000FF | |
| 3897 | −FFFFC00000001FFFFE0000000001FFF0000034387CB63D>I<0000003FFC00000003FFFF | |
| 3898 | −0000000FFFFFC000003FFFFFE00000FFF81FF00001FFC03FF80003FF807FF80007FF00FF | |
| 3899 | −FC000FFE00FFFC001FFC00FFFC001FFC00FFFC003FF800FFFC003FF800FFFC003FF8007F | |
| 3900 | −F8007FF0007FF8007FF0003FF0007FF0000FC0007FF0000000007FF0000000007FF00000 | |
| 3901 | −00007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000 | |
| 3902 | −00007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000FFFFFFFFE0 | |
| 3903 | −00FFFFFFFFE000FFFFFFFFE000FFFFFFFFE000FFFFFFFFE000007FF8000000007FF80000 | |
| 3904 | −00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000 | |
| 3905 | −00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000 | |
| 3906 | −00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000 | |
| 3907 | −00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000 | |
| 3908 | −00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000 | |
| 3909 | −00007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF80000 | |
| 3910 | −00007FF8000000007FF8000000007FF8000000007FF8000000007FF80000007FFFFFFE00 | |
| 3911 | −007FFFFFFE00007FFFFFFE00007FFFFFFE00007FFFFFFE00002E547CD329>I<00003FFF | |
| 3912 | −0000FF000003FFFFF007FFC0000FFFFFFC1FFFE0003FFFFFFF7FFFE0007FFC0FFFFF9FF0 | |
| 3913 | −00FFE001FFF83FF001FFC000FFE03FF003FF80007FF01FF007FF00003FF81FE00FFF0000 | |
| 3914 | −3FFC0FC00FFF00003FFC07801FFE00001FFE00001FFE00001FFE00003FFE00001FFF0000 | |
| 3915 | −3FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE0000 | |
| 3916 | −1FFF00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF00001FFE00001FFE0000 | |
| 3917 | −1FFE00001FFE00000FFF00003FFC00000FFF00003FFC000007FF00003FF8000003FF8000 | |
| 3918 | −7FF0000001FFC000FFE0000000FFE001FFC0000000FFFC0FFF80000001FFFFFFFF000000 | |
| 3919 | −03EFFFFFFC00000003C3FFFFF000000007C03FFF0000000007C000000000000007C00000 | |
| 3920 | −000000000FC00000000000000FC00000000000000FC00000000000000FE0000000000000 | |
| 3921 | −0FE00000000000000FF80000000000000FFE0000000000000FFFFFFFFF00000007FFFFFF | |
| 3922 | −FFF8000007FFFFFFFFFF000007FFFFFFFFFFC00003FFFFFFFFFFE00001FFFFFFFFFFF000 | |
| 3923 | −00FFFFFFFFFFF800007FFFFFFFFFFC00007FFFFFFFFFFE0001FFFFFFFFFFFF0007FFFFFF | |
| 3924 | −FFFFFF000FFE000003FFFF801FF80000003FFF803FF000000007FF807FE000000003FFC0 | |
| 3925 | −7FE000000001FFC0FFC000000001FFC0FFC000000000FFC0FFC000000000FFC0FFC00000 | |
| 3926 | −0000FFC0FFC000000000FFC0FFC000000000FFC0FFE000000001FFC07FE000000001FF80 | |
| 3927 | −7FF000000003FF803FF000000003FF001FF800000007FE000FFE0000001FFC0007FF8000 | |
| 3928 | −007FF80003FFE00001FFF00001FFFE001FFFE000007FFFFFFFFF8000000FFFFFFFFC0000 | |
| 3929 | −0001FFFFFFE0000000000FFFFC0000003C4F7CB543>I<003FF0000000000000FFFFF000 | |
| 3930 | −0000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF000 | |
| 3931 | −000000000003FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3932 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3933 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3934 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3935 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3936 | −000000000000FFF000000000000000FFF000000000000000FFF000000000000000FFF000 | |
| 3937 | −1FFC00000000FFF000FFFFC0000000FFF003FFFFF0000000FFF00FFFFFF8000000FFF01F | |
| 3938 | −E07FFC000000FFF03F001FFE000000FFF07C001FFF000000FFF0F0000FFF000000FFF1E0 | |
| 3939 | −000FFF800000FFF3C0000FFF800000FFF7800007FF800000FFF7800007FFC00000FFFF00 | |
| 3940 | −0007FFC00000FFFE000007FFC00000FFFE000007FFC00000FFFC000007FFC00000FFFC00 | |
| 3941 | −0007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFF8000007FFC00000FFF800 | |
| 3942 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 3943 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 3944 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 3945 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 3946 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 3947 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 3948 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 3949 | −0007FFC000FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF8 | |
| 3950 | −07FFFFFFC0FFFFFFF807FFFFFFC042537BD24B>I<007F000000FF800003FFE00007FFF0 | |
| 3951 | −0007FFF0000FFFF8000FFFF8000FFFF8000FFFF8000FFFF8000FFFF8000FFFF80007FFF0 | |
| 3952 | −0007FFF00003FFE00000FF8000007F000000000000000000000000000000000000000000 | |
| 3953 | −000000000000000000000000000000000000000000000000000000000000000000003FF0 | |
| 3954 | −00FFFFF000FFFFF000FFFFF000FFFFF000FFFFF00001FFF00000FFF00000FFF00000FFF0 | |
| 3955 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3956 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3957 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3958 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3959 | −0000FFF00000FFF00000FFF000FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE01B547B | |
| 3960 | −D325>I<003FF00000000000FFFFF00000000000FFFFF00000000000FFFFF00000000000 | |
| 3961 | −FFFFF00000000000FFFFF0000000000003FFF0000000000000FFF0000000000000FFF000 | |
| 3962 | −0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000 | |
| 3963 | −00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000 | |
| 3964 | −0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000 | |
| 3965 | −00FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000 | |
| 3966 | −0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00001FFFFF8 | |
| 3967 | −00FFF00001FFFFF800FFF00001FFFFF800FFF00001FFFFF800FFF00001FFFFF800FFF000 | |
| 3968 | −003FFE0000FFF000001FF00000FFF000003FC00000FFF000007F800000FFF00000FF0000 | |
| 3969 | −00FFF00003FE000000FFF00007F8000000FFF0000FF0000000FFF0001FE0000000FFF000 | |
| 3970 | −7FC0000000FFF000FF00000000FFF001FE00000000FFF003FC00000000FFF00FF8000000 | |
| 3971 | −00FFF01FE000000000FFF03FF000000000FFF07FF800000000FFF1FFF800000000FFF3FF | |
| 3972 | −FC00000000FFF7FFFE00000000FFFFFFFF00000000FFFFFFFF80000000FFFF9FFF800000 | |
| 3973 | −00FFFF0FFFC0000000FFFE0FFFE0000000FFF807FFF0000000FFF003FFF0000000FFF001 | |
| 3974 | −FFF8000000FFF000FFFC000000FFF000FFFE000000FFF0007FFF000000FFF0003FFF0000 | |
| 3975 | −00FFF0001FFF800000FFF0001FFFC00000FFF0000FFFE00000FFF00007FFF00000FFF000 | |
| 3976 | −03FFF00000FFF00001FFF80000FFF00001FFFC0000FFF00000FFFE0000FFF000007FFE00 | |
| 3977 | −00FFF000003FFF0000FFF000007FFFC0FFFFFFF003FFFFFFFFFFFFF003FFFFFFFFFFFFF0 | |
| 3978 | −03FFFFFFFFFFFFF003FFFFFFFFFFFFF003FFFFFF40537CD247>107 | |
| 3979 | −D<003FF000FFFFF000FFFFF000FFFFF000FFFFF000FFFFF00001FFF00000FFF00000FFF0 | |
| 3980 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3981 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3982 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3983 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3984 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3985 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3986 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0 | |
| 3987 | −0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000FFFFFFF0FFFFFFF0FFFFFF | |
| 3988 | −F0FFFFFFF0FFFFFFF01C537BD225>I<003FF0001FFC000000FFE00000FFFFF000FFFFC0 | |
| 3989 | −0007FFFE0000FFFFF003FFFFF0001FFFFF8000FFFFF00FFFFFF8007FFFFFC000FFFFF01F | |
| 3990 | −E07FFC00FF03FFE000FFFFF03F001FFE01F800FFF00003FFF07C001FFF03E000FFF80000 | |
| 3991 | −FFF0F0000FFF0780007FF80000FFF1E0000FFF8F00007FFC0000FFF3C0000FFF9E00007F | |
| 3992 | −FC0000FFF7800007FFBC00003FFC0000FFF7800007FFFC00003FFE0000FFFF000007FFF8 | |
| 3993 | −00003FFE0000FFFE000007FFF000003FFE0000FFFE000007FFF000003FFE0000FFFC0000 | |
| 3994 | −07FFE000003FFE0000FFFC000007FFE000003FFE0000FFFC000007FFE000003FFE0000FF | |
| 3995 | −FC000007FFE000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE | |
| 3996 | −0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000 | |
| 3997 | −003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007 | |
| 3998 | −FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8 | |
| 3999 | −000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE00 | |
| 4000 | −00FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC00000 | |
| 4001 | −3FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FF | |
| 4002 | −C000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF800 | |
| 4003 | −0007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000 | |
| 4004 | −FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003F | |
| 4005 | −FE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC0 | |
| 4006 | −00003FFE00FFFFFFF807FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFEFFFFFFF807 | |
| 4007 | −FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFE6736 | |
| 4008 | −7BB570>I<003FF0001FFC000000FFFFF000FFFFC00000FFFFF003FFFFF00000FFFFF00F | |
| 4009 | −FFFFF80000FFFFF01FE07FFC0000FFFFF03F001FFE000003FFF07C001FFF000000FFF0F0 | |
| 4010 | −000FFF000000FFF1E0000FFF800000FFF3C0000FFF800000FFF7800007FF800000FFF780 | |
| 4011 | −0007FFC00000FFFF000007FFC00000FFFE000007FFC00000FFFE000007FFC00000FFFC00 | |
| 4012 | −0007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFF800 | |
| 4013 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 4014 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 4015 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 4016 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 4017 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 4018 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 4019 | −0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 | |
| 4020 | −0007FFC00000FFF8000007FFC000FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF8 | |
| 4021 | −07FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC042367BB54B>I<000001FFE000 | |
| 4022 | −000000001FFFFE0000000000FFFFFFC000000003FFFFFFF00000000FFF807FFC0000001F | |
| 4023 | −FC000FFE0000007FF80007FF800000FFF00003FFC00001FFE00001FFE00003FFC00000FF | |
| 4024 | −F00003FF8000007FF00007FF8000007FF8000FFF0000003FFC000FFF0000003FFC001FFF | |
| 4025 | −0000003FFE001FFF0000003FFE003FFE0000001FFF003FFE0000001FFF003FFE0000001F | |
| 4026 | −FF007FFE0000001FFF807FFE0000001FFF807FFE0000001FFF807FFE0000001FFF80FFFE | |
| 4027 | −0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001F | |
| 4028 | −FFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE | |
| 4029 | −0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC07FFE0000001FFF807FFE0000001F | |
| 4030 | −FF807FFE0000001FFF803FFE0000001FFF003FFF0000003FFF003FFF0000003FFF001FFF | |
| 4031 | −0000003FFE001FFF0000003FFE000FFF0000003FFC000FFF8000007FFC0007FF8000007F | |
| 4032 | −F80003FFC00000FFF00001FFE00001FFE00000FFF00003FFC000007FF80007FF8000003F | |
| 4033 | −FE001FFF0000000FFF807FFC00000007FFFFFFF800000000FFFFFFC0000000003FFFFF00 | |
| 4034 | −0000000001FFE00000003A387CB643>I<003FF001FFE0000000FFFFF00FFFFE000000FF | |
| 4035 | −FFF03FFFFFC00000FFFFF0FFFFFFF00000FFFFF3FF01FFF80000FFFFF7F8007FFE000003 | |
| 4036 | −FFFFE0001FFF000000FFFF80000FFF800000FFFF000007FFC00000FFFE000007FFE00000 | |
| 4037 | −FFFC000003FFF00000FFF8000001FFF80000FFF8000001FFF80000FFF8000000FFFC0000 | |
| 4038 | −FFF8000000FFFC0000FFF8000000FFFE0000FFF80000007FFE0000FFF80000007FFF0000 | |
| 4039 | −FFF80000007FFF0000FFF80000007FFF0000FFF80000007FFF0000FFF80000003FFF8000 | |
| 4040 | −FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000 | |
| 4041 | −FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000 | |
| 4042 | −FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF0000 | |
| 4043 | −FFF80000007FFF0000FFF80000007FFF0000FFF80000007FFF0000FFF80000007FFE0000 | |
| 4044 | −FFF8000000FFFE0000FFF8000000FFFE0000FFF8000000FFFC0000FFF8000001FFFC0000 | |
| 4045 | −FFF8000001FFF80000FFFC000003FFF00000FFFC000003FFF00000FFFE000007FFE00000 | |
| 4046 | −FFFF00000FFFC00000FFFF80001FFF800000FFFFC0003FFF000000FFFFF000FFFC000000 | |
| 4047 | −FFFBFE07FFF8000000FFF8FFFFFFE0000000FFF87FFFFF80000000FFF81FFFFC00000000 | |
| 4048 | −FFF803FFC000000000FFF800000000000000FFF800000000000000FFF800000000000000 | |
| 4049 | −FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000 | |
| 4050 | −FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000 | |
| 4051 | −FFF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000 | |
| 4052 | −FFF800000000000000FFF8000000000000FFFFFFF80000000000FFFFFFF80000000000FF | |
| 4053 | −FFFFF80000000000FFFFFFF80000000000FFFFFFF80000000000414D7BB54B>I<007FE0 | |
| 4054 | −03FE00FFFFE00FFF80FFFFE03FFFE0FFFFE07FFFF0FFFFE0FE1FF8FFFFE1F83FFC03FFE3 | |
| 4055 | −E03FFE00FFE3C07FFE00FFE7807FFE00FFEF807FFE00FFEF007FFE00FFEE007FFE00FFFE | |
| 4056 | −003FFC00FFFC003FFC00FFFC001FF800FFFC000FF000FFF800000000FFF800000000FFF8 | |
| 4057 | −00000000FFF800000000FFF800000000FFF000000000FFF000000000FFF000000000FFF0 | |
| 4058 | −00000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0 | |
| 4059 | −00000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0 | |
| 4060 | −00000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0 | |
| 4061 | −00000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0 | |
| 4062 | −000000FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFFFFFC00002F367C | |
| 4063 | −B537>114 D<0003FFF00F00003FFFFE1F0000FFFFFFFF0003FFFFFFFF0007FF003FFF00 | |
| 4064 | −0FF80007FF001FE00001FF003FC00000FF003F8000007F007F8000007F007F0000003F00 | |
| 4065 | −7F0000003F00FF0000001F00FF0000001F00FF8000001F00FF8000001F00FFC000001F00 | |
| 4066 | −FFF000000000FFFC00000000FFFFC00000007FFFFF0000007FFFFFF800003FFFFFFF0000 | |
| 4067 | −3FFFFFFFC0001FFFFFFFF0000FFFFFFFF80007FFFFFFFC0003FFFFFFFE0000FFFFFFFF00 | |
| 4068 | −003FFFFFFF80000FFFFFFFC00000FFFFFFC0000007FFFFE00000003FFFE000000007FFF0 | |
| 4069 | −00000001FFF0780000007FF0F80000003FF0F80000001FF0FC0000001FF0FC0000000FF0 | |
| 4070 | −FC0000000FF0FE0000000FF0FE0000000FE0FF0000000FE0FF8000001FE0FF8000001FC0 | |
| 4071 | −FFC000001FC0FFE000003F80FFF800007F00FFFE0001FE00FFFFC00FFC00FF7FFFFFF800 | |
| 4072 | −FC1FFFFFE000F807FFFF8000F000FFF800002C387CB635>I<00003E00000000003E0000 | |
| 4073 | −0000003E00000000003E00000000003E00000000003E00000000007E00000000007E0000 | |
| 4074 | −0000007E00000000007E0000000000FE0000000000FE0000000001FE0000000001FE0000 | |
| 4075 | −000001FE0000000003FE0000000007FE0000000007FE000000000FFE000000001FFE0000 | |
| 4076 | −00003FFE00000000FFFE00000001FFFE0000000FFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF | |
| 4077 | −00FFFFFFFFFF00FFFFFFFFFF00003FFE000000003FFE000000003FFE000000003FFE0000 | |
| 4078 | −00003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE0000 | |
| 4079 | −00003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE0000 | |
| 4080 | −00003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE0000 | |
| 4081 | −00003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE0007 | |
| 4082 | −C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007 | |
| 4083 | −C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0001FFE000F80001FFF000F | |
| 4084 | −80001FFF000F80000FFF001F00000FFF801F000007FFC03E000003FFF0FC000001FFFFF8 | |
| 4085 | −0000007FFFF00000001FFFE000000003FF80002A4D7ECB34>I<003FF8000001FFC000FF | |
| 4086 | −FFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC000FF | |
| 4087 | −FFF80007FFFFC00003FFF800001FFFC00000FFF8000007FFC00000FFF8000007FFC00000 | |
| 4088 | −FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 | |
| 4089 | −FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 | |
| 4090 | −FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 | |
| 4091 | −FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 | |
| 4092 | −FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 | |
| 4093 | −FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 | |
| 4094 | −FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000 | |
| 4095 | −FFF8000007FFC00000FFF8000007FFC00000FFF800000FFFC00000FFF800000FFFC00000 | |
| 4096 | −FFF800000FFFC00000FFF800001FFFC00000FFF800001FFFC000007FF800003FFFC00000 | |
| 4097 | −7FF800003BFFC000007FF800007BFFC000003FFC0000F3FFC000003FFC0001E3FFF00000 | |
| 4098 | −1FFE0007C3FFFFC0000FFFC03F83FFFFC00007FFFFFF03FFFFC00001FFFFFE03FFFFC000 | |
| 4099 | −007FFFF803FFFFC0000007FFE003FF000042377BB54B>I<FFFFFFF00007FFFFFFFFFFF0 | |
| 4100 | −0007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFF01FFF80000007FE0 | |
| 4101 | −00FFFC0000003F0000FFFC0000003F00007FFC0000003E00007FFE0000007E00003FFE00 | |
| 4102 | −00007C00003FFF000000FC00001FFF000000F800001FFF800001F800000FFF800001F000 | |
| 4103 | −000FFFC00001F000000FFFC00003F0000007FFC00003E0000007FFE00007E0000003FFE0 | |
| 4104 | −0007C0000003FFF0000FC0000001FFF0000F80000001FFF8001F80000000FFF8001F0000 | |
| 4105 | −0000FFFC001F00000000FFFC003F000000007FFE003E000000007FFE007E000000003FFE | |
| 4106 | −007C000000003FFF00FC000000001FFF00F8000000001FFF81F8000000000FFF81F00000 | |
| 4107 | −00000FFFC3F0000000000FFFC3F00000000007FFE3E00000000007FFE7E00000000003FF | |
| 4108 | −E7C00000000003FFFFC00000000001FFFF800000000001FFFF800000000000FFFF000000 | |
| 4109 | −000000FFFF0000000000007FFE0000000000007FFE0000000000007FFE0000000000003F | |
| 4110 | −FC0000000000003FFC0000000000001FF80000000000001FF80000000000000FF0000000 | |
| 4111 | −0000000FF000000000000007E000000000000003C000000040367DB447>I<FFFFFFE07F | |
| 4112 | −FFFFC003FFFFC0FFFFFFE07FFFFFC003FFFFC0FFFFFFE07FFFFFC003FFFFC0FFFFFFE07F | |
| 4113 | −FFFFC003FFFFC0FFFFFFE07FFFFFC003FFFFC001FFF00000FFF000001FF80001FFF80000 | |
| 4114 | −7FF0000007E00000FFF800007FF8000007C00000FFF800007FF8000007C00000FFFC0000 | |
| 4115 | −3FF800000FC000007FFC00003FFC00000F8000007FFC00003FFC00000F8000007FFE0000 | |
| 4116 | −3FFC00001F8000003FFE00007FFE00001F0000003FFF00007FFE00003F0000001FFF0000 | |
| 4117 | −7FFF00003E0000001FFF0000FFFF00003E0000001FFF8000FFFF00007E0000000FFF8001 | |
| 4118 | −FFFF80007C0000000FFFC001F3FF8000FC00000007FFC001F3FFC000F800000007FFC003 | |
| 4119 | −F3FFC000F800000007FFE003E1FFC001F800000003FFE007E1FFE001F000000003FFF007 | |
| 4120 | −C0FFE001F000000001FFF007C0FFF003E000000001FFF00FC0FFF003E000000001FFF80F | |
| 4121 | −807FF007E000000000FFF80F807FF807C000000000FFF81F003FF807C000000000FFFC1F | |
| 4122 | −003FF80FC0000000007FFC3F003FFC0F80000000007FFE3E001FFC1F80000000003FFE3E | |
| 4123 | −001FFE1F00000000003FFE7E001FFE1F00000000003FFF7C000FFE3F00000000001FFFFC | |
| 4124 | −000FFF3E00000000001FFFF80007FF7E00000000000FFFF80007FFFC00000000000FFFF8 | |
| 4125 | −0007FFFC00000000000FFFF00003FFFC000000000007FFF00003FFF8000000000007FFE0 | |
| 4126 | −0001FFF8000000000003FFE00001FFF0000000000003FFE00001FFF0000000000003FFC0 | |
| 4127 | −0000FFF0000000000001FFC00000FFE0000000000001FF8000007FE0000000000001FF80 | |
| 4128 | −00007FE0000000000000FF8000007FC0000000000000FF0000003FC00000000000007F00 | |
| 4129 | −00003F800000000000007F0000003F800000000000003E0000001F000000005A367DB461 | |
| 4130 | −>I<7FFFFFF0007FFFFE007FFFFFF0007FFFFE007FFFFFF0007FFFFE007FFFFFF0007FFF | |
| 4131 | −FE007FFFFFF0007FFFFE00007FFE00000FFF0000003FFF000007F80000001FFF800007F0 | |
| 4132 | −0000000FFFC0000FE000000007FFC0001FC000000007FFE0003F8000000003FFF0003F00 | |
| 4133 | −00000001FFF8007E0000000000FFFC00FC00000000007FFE01FC00000000007FFE03F800 | |
| 4134 | −000000003FFF07F000000000001FFF8FE000000000000FFFCFC0000000000007FFFF8000 | |
| 4135 | −0000000003FFFF00000000000003FFFF00000000000001FFFE00000000000000FFFC0000 | |
| 4136 | −00000000007FFE000000000000003FFF000000000000003FFF000000000000001FFF8000 | |
| 4137 | −00000000001FFFC00000000000003FFFE00000000000007FFFF0000000000000FFFFF000 | |
| 4138 | −0000000001FDFFF8000000000001F8FFFC000000000003F07FFE000000000007E03FFF00 | |
| 4139 | −000000000FE01FFF00000000001FC01FFF80000000003F800FFFC0000000007F0007FFE0 | |
| 4140 | −00000000FE0003FFF000000000FC0001FFF800000001F80001FFF800000003F00000FFFC | |
| 4141 | −00000007F000007FFE0000000FE000003FFF0000001FC000001FFF800000FFF000001FFF | |
| 4142 | −8000FFFFFE0001FFFFFFC0FFFFFE0001FFFFFFC0FFFFFE0001FFFFFFC0FFFFFE0001FFFF | |
| 4143 | −FFC0FFFFFE0001FFFFFFC042357EB447>I<FFFFFFF00007FFFFFFFFFFF00007FFFFFFFF | |
| 4144 | −FFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFF00FFF80000007FE000FFFC000000 | |
| 4145 | −3F0000FFFC0000003F00007FFE0000003E00007FFE0000007E00003FFE0000007C00003F | |
| 4146 | −FF000000FC00001FFF000000F800001FFF800001F800000FFF800001F000000FFFC00003 | |
| 4147 | −F0000007FFC00003E0000007FFE00003E0000007FFE00007E0000003FFF00007C0000003 | |
| 4148 | −FFF0000FC0000001FFF8000F80000001FFF8001F80000000FFF8001F00000000FFFC003F | |
| 4149 | −000000007FFC003E000000007FFE007E000000003FFE007C000000003FFF00FC00000000 | |
| 4150 | −3FFF00FC000000001FFF80F8000000001FFF81F8000000000FFFC1F0000000000FFFC3F0 | |
| 4151 | −0000000007FFC3E00000000007FFE7E00000000003FFE7C00000000003FFFFC000000000 | |
| 4152 | −01FFFF800000000001FFFF800000000000FFFF000000000000FFFF000000000000FFFF00 | |
| 4153 | −00000000007FFE0000000000007FFE0000000000003FFC0000000000003FFC0000000000 | |
| 4154 | −001FF80000000000001FF80000000000000FF00000000000000FF000000000000007E000 | |
| 4155 | −000000000007E000000000000007E000000000000007C00000000000000FC00000000000 | |
| 4156 | −000F800000000000001F800000000000001F000000000000003F000000001FC0003E0000 | |
| 4157 | −00003FE0007E000000007FF0007C00000000FFF800FC00000000FFF800F800000000FFF8 | |
| 4158 | −01F800000000FFF801F000000000FFF803F000000000FFF807E0000000007FF00FC00000 | |
| 4159 | −00007FE01F80000000003FC07F00000000003F81FE00000000001FFFFC00000000000FFF | |
| 4160 | −F0000000000003FFE0000000000000FF000000000000404D7DB447>I | |
| 4161 | −E /Fr 42 127 df<00000FF8000000007FFE00000001F80780000007E001C000001F8000 | |
| 4162 | −E000003F0007E000007E000FF000007E000FF00000FC000FF00000FC000FF00001F8000F | |
| 4163 | −F00001F80007E00001F80001800001F80000000001F80000000001F80000000001F80000 | |
| 4164 | −000001F80000000001F80000000001F80000000001F80000000001F80000000001F80003 | |
| 4165 | −F000FFFFFFFFF000FFFFFFFFF000FFFFFFFFF00001F8000FF00001F80003F00001F80003 | |
| 4166 | −F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 | |
| 4167 | −F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 | |
| 4168 | −F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 | |
| 4169 | −F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 | |
| 4170 | −F00001F80003F00001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FF | |
| 4171 | −FFC02A3B7FBA2E>12 D<03F000FFF000FFF000FFF00007F00003F00003F00003F00003F0 | |
| 4172 | −0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 | |
| 4173 | −0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 | |
| 4174 | −0007F800FFFFC0FFFFC0FFFFC012257EA417>16 D<003C007E007E00FE01FE03FC03F007 | |
| 4175 | −E00FC01F801E003C007800F000C0000F0F6FB92A>19 D<03F00003F00003F00003FE0000 | |
| 4176 | −3F80001FC0000FE00007E00007E00007E0000FE0001FC000FF80FFFE00FFE000130F757D | |
| 4177 | −25>24 D<0000600000E00001C0000380000700000E00001E00003C0000780000780000F0 | |
| 4178 | −0001E00001E00003C00003C00007C0000780000F80000F00000F00001F00001E00001E00 | |
| 4179 | −003E00003E00003E00007C00007C00007C00007C00007C00007C0000F80000F80000F800 | |
| 4180 | −00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800 | |
| 4181 | −00F80000F80000F800007C00007C00007C00007C00007C00007C00003E00003E00003E00 | |
| 4182 | −001E00001E00001F00000F00000F00000F800007800007C00003C00003C00001E00001E0 | |
| 4183 | −0000F000007800007800003C00001E00000E000007000003800001C00000E00000601352 | |
| 4184 | −78BD20>40 D<C00000E000007000003800001C00000E00000F000007800003C00003C000 | |
| 4185 | −01E00000F00000F000007800007800007C00003C00003E00001E00001E00001F00000F00 | |
| 4186 | −000F00000F80000F80000F800007C00007C00007C00007C00007C00007C00003E00003E0 | |
| 4187 | −0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0 | |
| 4188 | −0003E00003E00003E00003E00007C00007C00007C00007C00007C00007C0000F80000F80 | |
| 4189 | −000F80000F00000F00001F00001E00001E00003E00003C00007C0000780000780000F000 | |
| 4190 | −00F00001E00003C00003C0000780000F00000E00001C0000380000700000E00000C00000 | |
| 4191 | −13527CBD20>I<1C007F00FF80FF80FF80FF80FF807F001C000909798817>46 | |
| 4192 | −D<000FF00000007FFE000001FFFF800003E03FE0000F000FF0000E0007F8001C0003FC00 | |
| 4193 | −380001FE00300001FE00700000FF00600000FF00FC0000FF00FF00007F80FF80007F80FF | |
| 4194 | −80007F80FF80007F80FF80007F80FF80007F807F00007F801C00007F800000007F800000 | |
| 4195 | −00FF00000000FF00000000FF00000001FE00000001FC00000003FC00000003F800000007 | |
| 4196 | −F000000007E00000000FE00000001FC00000003F800000003F000000007C00000000F800 | |
| 4197 | −000001F000000003E000000007C00000000F800000000F000000001E000180003C000180 | |
| 4198 | −007800018000F000038001E000030003C000030007800003000E000007000FFFFFFF001F | |
| 4199 | −FFFFFF003FFFFFFF007FFFFFFE00FFFFFFFE00FFFFFFFE00FFFFFFFE0021387CB72A>50 | |
| 4200 | −D<0600000C000780003C0007F003F80007FFFFF80007FFFFF00007FFFFE00007FFFF8000 | |
| 4201 | −07FFFF000007FFFC0000067FE00000060000000006000000000600000000060000000006 | |
| 4202 | −000000000600000000060000000006000000000600000000060000000006000000000607 | |
| 4203 | −F80000063FFE000006780F800007E007E000078003F000070001F800060001F800060000 | |
| 4204 | −FC00000000FE00000000FE00000000FF000000007F000000007F000000007F800000007F | |
| 4205 | −800000007F800000007F803E00007F807F00007F80FF80007F80FF80007F80FF80007F80 | |
| 4206 | −FF80007F80FF00007F00FE0000FF00E00000FF00600000FE00700000FE00300001FC0038 | |
| 4207 | −0001F8001C0003F8001E0007F0000F800FE00007E03F800001FFFF0000007FFC0000001F | |
| 4208 | −E00000213A7CB72A>53 D<0000003800000000000038000000000000380000000000007C | |
| 4209 | −0000000000007C0000000000007C000000000000FE000000000000FE000000000000FE00 | |
| 4210 | −0000000001FF000000000001FF000000000001FF0000000000037F8000000000037F8000 | |
| 4211 | −000000077FC000000000063FC000000000063FC0000000000E3FE0000000000C1FE00000 | |
| 4212 | −00000C1FE0000000001C1FF000000000180FF000000000180FF000000000380FF8000000 | |
| 4213 | −003007F8000000003007F8000000007007FC000000006003FC000000006003FC00000000 | |
| 4214 | −C003FE00000000C001FE00000000C001FE000000018001FF000000018000FF0000000180 | |
| 4215 | −00FF000000030000FF8000000300007F8000000300007F8000000600007FC0000007FFFF | |
| 4216 | −FFC0000007FFFFFFC000000FFFFFFFE000000C00001FE000000C00001FE000001800000F | |
| 4217 | −F000001800000FF000001800000FF0000030000007F8000030000007F8000030000007F8 | |
| 4218 | −000060000003FC000060000003FC0000E0000003FC0000E0000001FE0001E0000001FE00 | |
| 4219 | −03F0000001FF000FFC000007FF80FFFF8000FFFFFEFFFF8000FFFFFEFFFF8000FFFFFE37 | |
| 4220 | −3C7DBB3E>65 D<000001FF80018000000FFFE0038000007FFFF803800001FF807E078000 | |
| 4221 | −03FC000F0F80000FF000039F80001FE00001DF80003F800000FF80007F0000007F8000FE | |
| 4222 | −0000003F8001FE0000003F8003FC0000001F8007F80000000F8007F80000000F800FF000 | |
| 4223 | −000007800FF000000007801FE000000007801FE000000003803FE000000003803FC00000 | |
| 4224 | −0003807FC000000001807FC000000001807FC000000001807F800000000180FF80000000 | |
| 4225 | −0000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000000 | |
| 4226 | −00FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000 | |
| 4227 | −FF800000000000FF8000000000007F8000000000007FC000000001807FC000000001807F | |
| 4228 | −C000000001803FC000000001803FE000000001801FE000000003801FE000000003000FF0 | |
| 4229 | −00000003000FF0000000070007F8000000070007F8000000060003FC0000000E0001FE00 | |
| 4230 | −00001C0000FE0000001800007F0000003800003F8000007000001FE00000E000000FF000 | |
| 4231 | −03C0000003FC000F80000001FF803F000000007FFFFC000000000FFFF00000000001FF80 | |
| 4232 | −0000313D7BBA3C>67 D<FFFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC0001FF80000F | |
| 4233 | −FC0000FF000001FC0000FF0000007E0000FF0000003E0000FF0000001E0000FF0000000E | |
| 4234 | −0000FF0000000E0000FF0000000E0000FF000000060000FF000000060000FF0000000600 | |
| 4235 | −00FF000000070000FF000000030000FF0000C0030000FF0000C0030000FF0000C0030000 | |
| 4236 | −FF0000C0000000FF0000C0000000FF0000C0000000FF0001C0000000FF0001C0000000FF | |
| 4237 | −0003C0000000FF000FC0000000FFFFFFC0000000FFFFFFC0000000FFFFFFC0000000FF00 | |
| 4238 | −0FC0000000FF0003C0000000FF0001C0000000FF0001C0000000FF0000C0000000FF0000 | |
| 4239 | −C0000000FF0000C0006000FF0000C0006000FF0000C0006000FF0000C000E000FF000000 | |
| 4240 | −00C000FF00000000C000FF00000000C000FF00000000C000FF00000001C000FF00000001 | |
| 4241 | −C000FF00000001C000FF000000038000FF000000038000FF000000078000FF0000000780 | |
| 4242 | −00FF0000000F8000FF0000003F8000FF0000007F8001FF800007FF00FFFFFFFFFFFF00FF | |
| 4243 | −FFFFFFFFFF00FFFFFFFFFFFF0033397DB839>69 D<FFFFFFC0FFFFFFC0FFFFFFC000FFC0 | |
| 4244 | −00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80 | |
| 4245 | −00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80 | |
| 4246 | −00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80 | |
| 4247 | −00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80 | |
| 4248 | −00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80 | |
| 4249 | −00007F8000007F8000007F8000007F800000FFC000FFFFFFC0FFFFFFC0FFFFFFC01A397E | |
| 4250 | −B81E>73 D<FFFFFFE00000FFFFFFE00000FFFFFFE0000001FFC000000000FF0000000000 | |
| 4251 | −FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000 | |
| 4252 | −FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000 | |
| 4253 | −FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000 | |
| 4254 | −FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000 | |
| 4255 | −FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000 | |
| 4256 | −FF0000001800FF0000001800FF0000001800FF0000001800FF0000001800FF0000003800 | |
| 4257 | −FF0000003000FF0000003000FF0000003000FF0000007000FF0000007000FF0000007000 | |
| 4258 | −FF000000F000FF000000F000FF000001F000FF000003F000FF00000FF000FF00001FE001 | |
| 4259 | −FF8000FFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE02D397DB834>76 | |
| 4260 | −D<000003FF00000000001FFFE000000000FE01FC00000001F8007E00000007E0001F8000 | |
| 4261 | −000FC0000FC000003F800007F000007F000003F80000FE000001FC0001FC000000FE0001 | |
| 4262 | −F80000007E0003F80000007F0007F00000003F8007F00000003F800FE00000001FC00FE0 | |
| 4263 | −0000001FC01FE00000001FE01FC00000000FE03FC00000000FF03FC00000000FF03FC000 | |
| 4264 | −00000FF07FC00000000FF87F8000000007F87F8000000007F87F8000000007F8FF800000 | |
| 4265 | −0007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF80000000 | |
| 4266 | −07FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007 | |
| 4267 | −FCFF8000000007FC7F8000000007F87FC00000000FF87FC00000000FF87FC00000000FF8 | |
| 4268 | −3FC00000000FF03FC00000000FF01FE00000001FE01FE00000001FE01FE00000001FE00F | |
| 4269 | −F00000003FC007F00000003F8007F80000007F8003F80000007F0001FC000000FE0001FC | |
| 4270 | −000000FE0000FE000001FC00007F000003F800003F800007F000001FC0000FE0000007E0 | |
| 4271 | −001F80000003F8007F00000000FE01FC000000001FFFE00000000003FF000000363D7BBA | |
| 4272 | −41>79 D<FFFFFFFFC000FFFFFFFFF800FFFFFFFFFE0001FF8001FF8000FF00003FC000FF | |
| 4273 | −00000FE000FF000007F000FF000003F800FF000003FC00FF000003FE00FF000001FE00FF | |
| 4274 | −000001FE00FF000001FF00FF000001FF00FF000001FF00FF000001FF00FF000001FF00FF | |
| 4275 | −000001FF00FF000001FF00FF000001FE00FF000001FE00FF000003FC00FF000003FC00FF | |
| 4276 | −000007F800FF000007F000FF00000FE000FF00003FC000FF0001FF0000FFFFFFFC0000FF | |
| 4277 | −FFFFF00000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF | |
| 4278 | −0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF | |
| 4279 | −0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF | |
| 4280 | −0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000001FF | |
| 4281 | −80000000FFFFFF000000FFFFFF000000FFFFFF00000030397DB839>I<3FFFFFFFFFFFE0 | |
| 4282 | −3FFFFFFFFFFFE03FFFFFFFFFFFE03FC003FF001FE03E0001FE0003E07C0001FE0001F078 | |
| 4283 | −0001FE0000F0700001FE000070700001FE000070700001FE000070600001FE0000306000 | |
| 4284 | −01FE000030600001FE000030600001FE000030E00001FE000038C00001FE000018C00001 | |
| 4285 | −FE000018C00001FE000018C00001FE000018000001FE000000000001FE000000000001FE | |
| 4286 | −000000000001FE000000000001FE000000000001FE000000000001FE000000000001FE00 | |
| 4287 | −0000000001FE000000000001FE000000000001FE000000000001FE000000000001FE0000 | |
| 4288 | −00000001FE000000000001FE000000000001FE000000000001FE000000000001FE000000 | |
| 4289 | −000001FE000000000001FE000000000001FE000000000001FE000000000001FE00000000 | |
| 4290 | −0001FE000000000001FE000000000001FE000000000001FE000000000001FE0000000000 | |
| 4291 | −01FE000000000001FE000000000001FE000000000001FE000000000001FE000000000001 | |
| 4292 | −FE000000000007FF800000001FFFFFFFE000001FFFFFFFE000001FFFFFFFE00035397DB8 | |
| 4293 | −3C>84 D<001FE0000000FFFC000003E03F000007000F80000F8007E0001FC003F0001FE0 | |
| 4294 | −03F0001FE001F8001FE001F8001FE000FC000FC000FC00078000FC00000000FC00000000 | |
| 4295 | −FC00000000FC00000000FC0000007FFC000007FFFC00003FE0FC0000FE00FC0003F800FC | |
| 4296 | −000FF000FC001FC000FC003FC000FC007F8000FC007F0000FC007F0000FC0CFE0000FC0C | |
| 4297 | −FE0000FC0CFE0000FC0CFE0001FC0CFE0001FC0CFF0003FC0C7F00077C0C7F80063E183F | |
| 4298 | −C01E3E180FE0781FF003FFF00FE0007F8007C026277DA52A>97 D<03F0000000FFF00000 | |
| 4299 | −00FFF0000000FFF00000000FF000000003F000000003F000000003F000000003F0000000 | |
| 4300 | −03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 | |
| 4301 | −F000000003F000000003F000000003F000000003F000000003F01FE00003F07FF80003F1 | |
| 4302 | −E03E0003F3801F8003F7000FC003FE0007E003FC0003F003F80001F803F00001F803F000 | |
| 4303 | −00FC03F00000FC03F00000FE03F00000FE03F000007E03F000007F03F000007F03F00000 | |
| 4304 | −7F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F | |
| 4305 | −03F000007E03F00000FE03F00000FE03F00000FC03F00001FC03F80001F803F80003F003 | |
| 4306 | −FC0003F003EE0007E003C6000FC003C7801F000381E07E000300FFF80000001FC000283B | |
| 4307 | −7EB92E>I<0003FC00001FFF80007E03E001F8007003F000F807E001FC0FC003FC0FC003 | |
| 4308 | −FC1F8003FC3F8003FC3F0001F87F0000F07F0000007F0000007E000000FE000000FE0000 | |
| 4309 | −00FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000 | |
| 4310 | −007F0000007F0000003F0000063F8000061F80000E1FC0000C0FC0001C07E0003803F000 | |
| 4311 | −7001F800E0007C07C0001FFF000007F8001F277DA525>I<0000000FC0000003FFC00000 | |
| 4312 | −03FFC0000003FFC00000003FC00000000FC00000000FC00000000FC00000000FC0000000 | |
| 4313 | −0FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000F | |
| 4314 | −C00000000FC00000000FC00000000FC00000000FC00003F80FC0001FFF0FC0007E078FC0 | |
| 4315 | −00F801EFC003F0007FC007E0003FC00FC0001FC00FC0001FC01F80000FC03F80000FC03F | |
| 4316 | −00000FC07F00000FC07F00000FC07E00000FC0FE00000FC0FE00000FC0FE00000FC0FE00 | |
| 4317 | −000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC07E0000 | |
| 4318 | −0FC07F00000FC07F00000FC03F00000FC03F00000FC01F80001FC01F80001FC00FC0003F | |
| 4319 | −C007E0007FC003F000EFF001F801CFFF007C078FFF001FFE0FFF0007F80FC0283B7DB92E | |
| 4320 | −>I<0007F800001FFF00007C0FC001F803E003F001F007E001F80FC000F81F80007C1F80 | |
| 4321 | −007C3F00007E3F00003E7F00003E7F00003F7E00003FFE00003FFE00003FFE00003FFFFF | |
| 4322 | −FFFFFFFFFFFFFE000000FE000000FE000000FE000000FE0000007E0000007E0000007F00 | |
| 4323 | −00007F0000003F0000033F8000031F8000070FC0000607C0000E07E0001C01F0003800F8 | |
| 4324 | −0070007E03E0001FFF800003FC0020277EA525>I<00007E000003FF80000FC1E0001F87 | |
| 4325 | −E0003F0FF0007E0FF0007E0FF000FC0FF000FC0FF001F803C001F8000001F8000001F800 | |
| 4326 | −0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800 | |
| 4327 | −0001F80000FFFFFC00FFFFFC00FFFFFC0001F8000001F8000001F8000001F8000001F800 | |
| 4328 | −0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800 | |
| 4329 | −0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800 | |
| 4330 | −0001F8000001F8000001F8000001F8000001F8000001F8000003FC00007FFFF8007FFFF8 | |
| 4331 | −007FFFF8001C3B7FBA19>I<00000003F0000FF00FF8003FFC3C3C00F81F707C01F00FE0 | |
| 4332 | −7C03E007C07C07C003E0100FC003F0000FC003F0001F8001F8001F8001F8001F8001F800 | |
| 4333 | −1F8001F8001F8001F8001F8001F8001F8001F8001F8001F8000FC003F0000FC003F00007 | |
| 4334 | −C003E00003E007C00003F00F800003F81F0000073FFC0000060FF000000E000000000E00 | |
| 4335 | −0000000E000000000E000000000F000000000F000000000FC000000007FFFFC00007FFFF | |
| 4336 | −F80003FFFFFE0001FFFFFF8003FFFFFFC00F80007FE01F00000FF03E000003F07C000001 | |
| 4337 | −F07C000001F8F8000000F8F8000000F8F8000000F8F8000000F8F8000000F8FC000001F8 | |
| 4338 | −7C000001F03E000003E03F000007E00F80000F8007E0003F0001FC01FC00007FFFF00000 | |
| 4339 | −07FF000026387EA52A>I<03F000000000FFF000000000FFF000000000FFF0000000000F | |
| 4340 | −F00000000003F00000000003F00000000003F00000000003F00000000003F00000000003 | |
| 4341 | −F00000000003F00000000003F00000000003F00000000003F00000000003F00000000003 | |
| 4342 | −F00000000003F00000000003F00000000003F00000000003F00000000003F00FF0000003 | |
| 4343 | −F03FFC000003F0F03F000003F1C01F800003F3800FC00003F7000FC00003FE000FC00003 | |
| 4344 | −FC0007E00003FC0007E00003F80007E00003F80007E00003F80007E00003F00007E00003 | |
| 4345 | −F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 | |
| 4346 | −F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 | |
| 4347 | −F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 | |
| 4348 | −F00007E00003F00007E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF8029 | |
| 4349 | −3A7EB92E>I<0380000FE0001FF0001FF0001FF0001FF0001FF0000FE000038000000000 | |
| 4350 | −00000000000000000000000000000000000000000000000000000003F000FFF000FFF000 | |
| 4351 | −FFF00007F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000 | |
| 4352 | −03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000 | |
| 4353 | −03F00003F00003F00003F00003F00003F00007F800FFFFC0FFFFC0FFFFC012387EB717> | |
| 4354 | −I<0001C00007F0000FF8000FF8000FF8000FF8000FF80007F00001C00000000000000000 | |
| 4355 | −000000000000000000000000000000000000000000000001F800FFF800FFF800FFF80007 | |
| 4356 | −F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 | |
| 4357 | −F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 | |
| 4358 | −F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 | |
| 4359 | −F80001F80001F83C01F87E01F8FF01F0FF03F0FF03F0FF03E0FE07C07C07C03C0F000FFE | |
| 4360 | −0003F800154984B719>I<03F000FFF000FFF000FFF0000FF00003F00003F00003F00003 | |
| 4361 | −F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 | |
| 4362 | −F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 | |
| 4363 | −F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003 | |
| 4364 | −F00003F00003F00003F00003F00003F00003F00003F00003F00003F00007F800FFFFC0FF | |
| 4365 | −FFC0FFFFC0123A7EB917>108 D<03F00FF0001FE000FFF03FFC007FF800FFF0F03F01E0 | |
| 4366 | −7E00FFF1C01F83803F000FF3800FC7001F8003F7000FCE001F8003FE000FDC001F8003FC | |
| 4367 | −0007F8000FC003FC0007F8000FC003F80007F0000FC003F80007F0000FC003F80007F000 | |
| 4368 | −0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0 | |
| 4369 | −0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000 | |
| 4370 | −0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0 | |
| 4371 | −0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000 | |
| 4372 | −0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC007F8000FF0001FE0FFFF | |
| 4373 | −C1FFFF83FFFFFFFFC1FFFF83FFFFFFFFC1FFFF83FFFF40257EA445>I<03F00FF00000FF | |
| 4374 | −F03FFC0000FFF0F03F0000FFF1C01F80000FF3800FC00003F7000FC00003FE000FC00003 | |
| 4375 | −FC0007E00003FC0007E00003F80007E00003F80007E00003F80007E00003F00007E00003 | |
| 4376 | −F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 | |
| 4377 | −F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 | |
| 4378 | −F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 | |
| 4379 | −F00007E00003F00007E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF8029 | |
| 4380 | −257EA42E>I<0003FE0000000FFF8000003E03E00000F800F80001F0007C0003E0003E00 | |
| 4381 | −07C0001F000F80000F801F80000FC01F000007C03F000007E03F000007E07E000003F07E | |
| 4382 | −000003F07E000003F07E000003F0FE000003F8FE000003F8FE000003F8FE000003F8FE00 | |
| 4383 | −0003F8FE000003F8FE000003F8FE000003F8FE000003F87E000003F07E000003F07F0000 | |
| 4384 | −07F03F000007E03F000007E01F80000FC00F80000F800FC0001F8007E0003F0003F0007E | |
| 4385 | −0000F800F800007E03F000001FFFC0000003FE000025277EA52A>I<03F01FE000FFF07F | |
| 4386 | −F800FFF1E07E00FFF3801F8007F7000FC003FE0007E003FC0003F003F80003F803F00001 | |
| 4387 | −F803F00001FC03F00000FC03F00000FE03F00000FE03F00000FE03F000007F03F000007F | |
| 4388 | −03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03 | |
| 4389 | −F000007F03F00000FE03F00000FE03F00000FE03F00001FC03F00001FC03F80003F803F8 | |
| 4390 | −0003F003FC0007F003FE000FE003F6000FC003F7803F0003F1E07E0003F0FFF80003F01F | |
| 4391 | −C00003F000000003F000000003F000000003F000000003F000000003F000000003F00000 | |
| 4392 | −0003F000000003F000000003F000000003F000000007F8000000FFFFC00000FFFFC00000 | |
| 4393 | −FFFFC0000028357EA42E>I<0003F800C0001FFE01C0007E0781C000FC01C3C003F000E3 | |
| 4394 | −C007F00077C00FE00037C00FC0003FC01FC0001FC03F80001FC03F80000FC07F00000FC0 | |
| 4395 | −7F00000FC07F00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE | |
| 4396 | −00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC07F00000FC07F00000FC07F00 | |
| 4397 | −000FC03F00000FC03F80001FC01F80001FC01FC0003FC00FC0003FC007E0007FC003F000 | |
| 4398 | −EFC001F801CFC0007E078FC0001FFE0FC00007F80FC00000000FC00000000FC00000000F | |
| 4399 | −C00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0 | |
| 4400 | −0000000FC00000001FE0000003FFFF000003FFFF000003FFFF28357DA42C>I<07E01F00 | |
| 4401 | −FFE07FC0FFE1E3E0FFE387F00FE707F003E607F003EE07F003EC03E003FC008003F80000 | |
| 4402 | −03F8000003F8000003F8000003F0000003F0000003F0000003F0000003F0000003F00000 | |
| 4403 | −03F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00000 | |
| 4404 | −03F0000003F0000003F0000003F0000003F0000007F80000FFFFF000FFFFF000FFFFF000 | |
| 4405 | −1C257EA421>I<00FF030003FFE7000F80FF001E003F003C001F0078000F0070000700F0 | |
| 4406 | −000700F0000700F0000300F8000300F8000300FC000300FF0000007FE000007FFF00003F | |
| 4407 | −FFE0001FFFF8000FFFFC0003FFFE0000FFFF000007FF8000007F8000001F80C0000FC0C0 | |
| 4408 | −0007C0C00007C0E00003C0E00003C0E00003C0F00003C0F0000380F8000780FC000780FC | |
| 4409 | −000F00FF001E00F3C07C00E1FFF000C03F80001A277DA521>I<00180000001800000018 | |
| 4410 | −0000001800000018000000380000003800000038000000780000007800000078000000F8 | |
| 4411 | −000001F8000003F8000007F800001FFFFF00FFFFFF00FFFFFF0001F8000001F8000001F8 | |
| 4412 | −000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8 | |
| 4413 | −000001F8000001F8000001F8000001F8000001F8000001F8000001F800C001F800C001F8 | |
| 4414 | −00C001F800C001F800C001F800C001F800C001F800C001F800C000FC01C000FC0180007C | |
| 4415 | −0380007E0300003F0700000FFE000001F8001A347FB220>I<03F00007E000FFF001FFE0 | |
| 4416 | −00FFF001FFE000FFF001FFE0000FF0001FE00003F00007E00003F00007E00003F00007E0 | |
| 4417 | −0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 | |
| 4418 | −0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 | |
| 4419 | −0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 | |
| 4420 | −0003F00007E00003F0000FE00003F0000FE00003F0000FE00003F0001FE00001F0001FE0 | |
| 4421 | −0001F8003FE00000F80077F80000FC00E7FF80003F03C7FF80001FFF87FF800003FC07E0 | |
| 4422 | −0029267EA42E>I<FFFF803FFEFFFF803FFEFFFF803FFE0FF8000FF007F00007E003F000 | |
| 4423 | −03C003F800038001F800030001F800030000FC00060000FC00060000FE000E00007E000C | |
| 4424 | −00007E000C00003F001800003F001800003F803800001F803000001F803000000FC06000 | |
| 4425 | −000FC06000000FE060000007E0C0000007E0C0000003F180000003F180000003F1800000 | |
| 4426 | −01FB00000001FB00000001FF00000000FE00000000FE000000007C000000007C00000000 | |
| 4427 | −7C00000000380000000038000027257EA32C>I<FFFF1FFFE03FFEFFFF1FFFE03FFEFFFF | |
| 4428 | −1FFFE03FFE0FF800FF000FF807F0007E0003E007F0007E0003C003F0003E00018003F000 | |
| 4429 | −3E00018001F8003F00030001F8003F00030001F8003F00030000FC003F80060000FC006F | |
| 4430 | −80060000FC006F800600007E00EFC00C00007E00C7C00C00007E00C7C00C00003F01C7E0 | |
| 4431 | −1800003F0183E01800003F8183F03800001F8383F03000001F8301F03000001FC301F870 | |
| 4432 | −00000FC600F86000000FC600F860000007E600FCC0000007EC007CC0000007EC007CC000 | |
| 4433 | −0003FC007F80000003F8003F80000003F8003F80000001F8003F00000001F0001F000000 | |
| 4434 | −01F0001F00000000F0001E00000000E0000E0000000060000C000037257EA33C>I<FFFF | |
| 4435 | −807FFF00FFFF807FFF00FFFF807FFF0003FE003FF00001FE001F800000FE001F0000007E | |
| 4436 | −001C0000003F00180000001F80300000001FC0700000000FC0E000000007E0C000000007 | |
| 4437 | −F18000000003FB8000000001FF0000000000FE0000000000FE00000000007F0000000000 | |
| 4438 | −3F00000000007F80000000007FC000000000CFC000000001C7E00000000383F000000007 | |
| 4439 | −03F80000000601F80000000C00FC0000001C007E00000038007F00000078003F000000F0 | |
| 4440 | −001F800001F8001FC0000FF8003FF000FFFE00FFFF80FFFE00FFFF80FFFE00FFFF802924 | |
| 4441 | −7FA32C>I<FFFF803FFEFFFF803FFEFFFF803FFE0FF8000FF007F00007C003F000038001 | |
| 4442 | −F800038001F800030001FC00030000FC00060000FC000600007E000C00007E000C00007F | |
| 4443 | −000C00003F001800003F001800001F803000001F803000001FC07000000FC06000000FC0 | |
| 4444 | −60000007E0C0000007E0C0000007F1C0000003F180000003F180000001FB00000001FB00 | |
| 4445 | −000001FF00000000FE00000000FE000000007C000000007C000000007C00000000380000 | |
| 4446 | −0000380000000030000000003000000000700000000060000000006000000000C0000000 | |
| 4447 | −00C000007C01C00000FE01800000FE03800000FE03000000FE06000000FC0E000000701C | |
| 4448 | −00000038380000001FF00000000FC000000027357EA32C>I<01E0004007F800E00FFE01 | |
| 4449 | −C01FFF87803C3FFF00700FFE00E003FC004000F0001B0879B62A>126 | |
| 4450 | −D E /Fs 13 118 df<000F00003F80003FC0007FE000FFE001FFE003FFE007FFE007FFC0 | |
| 4451 | −0FFF801FFE003FF8007FE000FF80007E000038000013106DBA30>19 | |
| 4452 | −D<00000003E00000000000000007F00000000000000007F0000000000000000FF8000000 | |
| 4453 | −000000000FF8000000000000000FF8000000000000001FFC000000000000001FFC000000 | |
| 4454 | −000000003FFE000000000000003FFE000000000000003FFE000000000000007FFF000000 | |
| 4455 | −000000007FFF00000000000000FFFF80000000000000FFFF80000000000000FFFF800000 | |
| 4456 | −00000001FFFFC0000000000001F3FFC0000000000003F3FFE0000000000003E1FFE00000 | |
| 4457 | −00000003E1FFE0000000000007E1FFF0000000000007C0FFF000000000000FC0FFF80000 | |
| 4458 | −0000000F807FF800000000000F807FF800000000001F807FFC00000000001F003FFC0000 | |
| 4459 | −0000003F003FFE00000000003E001FFE00000000003E001FFE00000000007E001FFF0000 | |
| 4460 | −0000007C000FFF0000000000FC000FFF8000000000F80007FF8000000000F80007FF8000 | |
| 4461 | −000001F80007FFC000000001F00003FFC000000003FFFFFFFFE000000003FFFFFFFFE000 | |
| 4462 | −000003FFFFFFFFE000000007FFFFFFFFF000000007C00000FFF00000000FC00000FFF800 | |
| 4463 | −00000F8000007FF80000000F8000007FF80000001F8000007FFC0000001F0000003FFC00 | |
| 4464 | −00003F0000003FFE0000003E0000001FFE0000003E0000001FFE0000007E0000001FFF00 | |
| 4465 | −00007C0000000FFF000000FE0000000FFF8000FFFFF80007FFFFFF80FFFFF80007FFFFFF | |
| 4466 | −80FFFFF80007FFFFFF80FFFFF80007FFFFFF80413A7DB948>65 D<0007FF000E00003FFF | |
| 4467 | −E01E0000FFFFF83E0003FFFFFE7E0007FC01FFFE000FF0001FFE001FE0000FFE003FC000 | |
| 4468 | −03FE003F800001FE007F800000FE007F000000FE007F0000007E00FF0000007E00FF0000 | |
| 4469 | −003E00FF0000003E00FF8000003E00FF8000001E00FFC000001E00FFE000001E00FFF000 | |
| 4470 | −000000FFFC000000007FFFE00000007FFFFE0000007FFFFFF000003FFFFFFE00003FFFFF | |
| 4471 | −FF80001FFFFFFFC0000FFFFFFFF00007FFFFFFF80003FFFFFFFC0000FFFFFFFE00003FFF | |
| 4472 | −FFFE00000FFFFFFF000001FFFFFF0000000FFFFF800000007FFF800000000FFFC0000000 | |
| 4473 | −03FFC000000001FFC000000000FFC0F00000007FC0F00000007FC0F00000007FC0F00000 | |
| 4474 | −003FC0F00000003FC0F80000003FC0F80000003F80FC0000003F80FC0000007F80FE0000 | |
| 4475 | −007F00FF0000007F00FF800000FE00FFE00001FC00FFF80003FC00FFFF801FF800FCFFFF | |
| 4476 | −FFE000F83FFFFFC000F007FFFE0000E0007FF000002A3B7BB935>83 | |
| 4477 | −D<003FFE00000003FFFFE000000FFFFFF800001FF00FFE00003FF003FF00003FF801FF80 | |
| 4478 | −003FF800FFC0003FF800FFC0003FF8007FE0003FF8007FE0001FF0007FE0000FE0007FE0 | |
| 4479 | −000380007FE0000000007FE0000000007FE00000003FFFE000000FFFFFE000007FFFFFE0 | |
| 4480 | −0001FFF87FE00007FF807FE0000FFE007FE0003FF8007FE0003FF0007FE0007FE0007FE0 | |
| 4481 | −00FFE0007FE000FFC0007FE000FFC0007FE000FFC0007FE000FFC0007FE000FFC000FFE0 | |
| 4482 | −00FFE001FFE0007FE001FFE0003FF007FFF8001FFC1FBFFFC00FFFFE1FFFC003FFF80FFF | |
| 4483 | −C0003FE003FFC02A257DA42E>97 D<00FF00000000FFFF00000000FFFF00000000FFFF00 | |
| 4484 | −000000FFFF0000000007FF0000000003FF0000000003FF0000000003FF0000000003FF00 | |
| 4485 | −00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00 | |
| 4486 | −00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF01 | |
| 4487 | −FF800003FF0FFFF00003FF3FFFFC0003FFFE03FF0003FFF000FF8003FFE0007FC003FF80 | |
| 4488 | −003FE003FF00003FF003FF00001FF803FF00001FF803FF00001FFC03FF00000FFC03FF00 | |
| 4489 | −000FFC03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00 | |
| 4490 | −000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFC03FF00 | |
| 4491 | −000FFC03FF00000FFC03FF00001FF803FF00001FF803FF00001FF003FF80003FF003FFC0 | |
| 4492 | −007FE003FFE0007FC003FDF001FF8003F8FC07FE0003F03FFFF80003E00FFFE00003C003 | |
| 4493 | −FF00002F3A7EB935>I<0001FFC000000FFFFC00007FFFFF0000FF80FF8003FE00FFC007 | |
| 4494 | −FC01FFC00FF801FFC01FF801FFC01FF001FFC03FF001FFC03FF000FF807FE0007F007FE0 | |
| 4495 | −001C007FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000 | |
| 4496 | −0000FFE0000000FFE0000000FFE00000007FE00000007FE00000007FF00000003FF00000 | |
| 4497 | −003FF00001E01FF80001E01FF80003E00FFC0007C007FE00078003FF001F8000FFC07E00 | |
| 4498 | −007FFFFC00000FFFF0000001FF800023257DA42A>I<01F00007FC000FFE000FFE001FFF | |
| 4499 | −001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F0000000000000000000000000 | |
| 4500 | −0000000000000000000000000000000000FF007FFF007FFF007FFF007FFF0007FF0003FF | |
| 4501 | −0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF | |
| 4502 | −0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF | |
| 4503 | −0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8153B7DBA1B>105 | |
| 4504 | −D<00FE007FE0000FFC0000FFFE01FFFC003FFF8000FFFE07FFFF00FFFFE000FFFE1F81FF | |
| 4505 | −83F03FF000FFFE3C00FF87801FF00007FE7800FFCF001FF80003FEF000FFDE001FF80003 | |
| 4506 | −FFE0007FFC000FFC0003FFC0007FF8000FFC0003FFC0007FF8000FFC0003FF80007FF000 | |
| 4507 | −0FFC0003FF80007FF0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00 | |
| 4508 | −007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC | |
| 4509 | −0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007F | |
| 4510 | −E0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003 | |
| 4511 | −FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE000 | |
| 4512 | −0FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00 | |
| 4513 | −007FE0000FFC00FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFF | |
| 4514 | −F0FFFFFC1FFFFF83FFFFF04C257DA451>109 D<0001FFC00000000FFFF80000007FFFFF | |
| 4515 | −000000FF80FF800003FE003FE00007FC001FF0000FF8000FF8001FF00007FC001FF00007 | |
| 4516 | −FC003FF00007FE003FE00003FE007FE00003FF007FE00003FF007FE00003FF00FFE00003 | |
| 4517 | −FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003 | |
| 4518 | −FF80FFE00003FF80FFE00003FF807FE00003FF007FE00003FF007FE00003FF003FE00003 | |
| 4519 | −FE003FF00007FE001FF00007FC001FF00007FC000FF8000FF80007FC001FF00003FE003F | |
| 4520 | −E00001FF80FFC000007FFFFF0000001FFFFC00000001FFC0000029257DA430>111 | |
| 4521 | −D<00FE03F000FFFE0FFE00FFFE3FFF00FFFE7C7F80FFFEF8FFC007FEF0FFC003FFE0FFC0 | |
| 4522 | −03FFC0FFC003FFC0FFC003FF807F8003FF803F0003FF800C0003FF80000003FF00000003 | |
| 4523 | −FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF | |
| 4524 | −00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00 | |
| 4525 | −000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE0000FFFFFE00 | |
| 4526 | −00FFFFFE000022257EA427>114 D<003FF03803FFFEF80FFFFFF81FC00FF83F0003F87E | |
| 4527 | −0001F87C0000F8FC0000F8FC000078FE000078FF000078FF800000FFFC0000FFFFE0007F | |
| 4528 | −FFFC007FFFFF803FFFFFC01FFFFFF00FFFFFF803FFFFF800FFFFFC001FFFFC00007FFE00 | |
| 4529 | −0007FEF00001FEF00000FEF80000FEF800007EFC00007EFC00007CFE0000FCFF0000F8FF | |
| 4530 | −8001F8FFF007F0FFFFFFC0F8FFFF00E01FF8001F257DA426>I<000F0000000F0000000F | |
| 4531 | −0000000F0000000F0000001F0000001F0000001F0000001F0000003F0000003F0000007F | |
| 4532 | −000000FF000000FF000001FF000007FF00001FFFFFE0FFFFFFE0FFFFFFE0FFFFFFE003FF | |
| 4533 | −000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF | |
| 4534 | −000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF | |
| 4535 | −007803FF007803FF007803FF007803FF007803FF007803FF007803FF007803FF00F801FF | |
| 4536 | −80F001FF81F000FFC3E0003FFFC0001FFF800003FE001D357EB425>I<00FF00003FC0FF | |
| 4537 | −FF003FFFC0FFFF003FFFC0FFFF003FFFC0FFFF003FFFC007FF0001FFC003FF0000FFC003 | |
| 4538 | −FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003 | |
| 4539 | −FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003 | |
| 4540 | −FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003 | |
| 4541 | −FF0000FFC003FF0000FFC003FF0001FFC003FF0001FFC003FF0003FFC003FF0003FFC001 | |
| 4542 | −FF0007FFC001FF800FFFE000FFC03EFFFF007FFFFCFFFF001FFFF0FFFF0003FF80FFFF30 | |
| 4543 | −257DA435>I E /Ft 7 115 df<0000003FFE0000000003FFFFF00000000FFFFFFE000000 | |
| 4544 | −3FFFFFFF800000FFFFFFFF800001FFFFFFFF800003FFE007FF00000FFF0000FF00001FFC | |
| 4545 | −00001F00003FF800000700007FE000000300007FC00000000000FF800000000001FF0000 | |
| 4546 | −00000003FF000000000003FE000000000007FC000000000007FC00000000000FF8000000 | |
| 4547 | −00000FF800000000001FF000000000001FF000000000003FE000000000003FE000000000 | |
| 4548 | −003FE000000000007FC000000000007FC000000000007FC000000000007FC00000000000 | |
| 4549 | −7FC00000000000FF800000000000FF800000000000FF800000000000FF800000000000FF | |
| 4550 | −800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF80 | |
| 4551 | −0000000000FF800000000000FF800000000000FF8000000000007FC000000000007FC000 | |
| 4552 | −000000007FC000000000007FC000000000007FC000000000003FE000000000003FE00000 | |
| 4553 | −0000003FE000000000001FF000000000001FF000000000000FF800000000000FF8000000 | |
| 4554 | −000007FC000000000007FC000000000003FE000000000003FF000000000001FF00000000 | |
| 4555 | −0000FF8000000080007FC000000180007FE000000380003FF800000F80001FFC00001FC0 | |
| 4556 | −000FFF00007FC00003FFE003FFC00001FFFFFFFF800000FFFFFFFE0000003FFFFFFC0000 | |
| 4557 | −000FFFFFF000000003FFFFC0000000003FFC000032497AC63E>67 | |
| 4558 | −D<0000003FFC0000000001FFFFE00000000FFFFFF80000003FFFFFFF000000FFFFFFFFC0 | |
| 4559 | −0001FFFFFFFFE00003FFE007FFE00007FF00007FE0001FFC00001FC0003FF8000007C000 | |
| 4560 | −3FF0000003C0007FC0000001C000FF80000000C001FF800000000003FF000000000003FE | |
| 4561 | −000000000007FC000000000007FC00000000000FF800000000000FF800000000001FF000 | |
| 4562 | −000000001FF000000000003FE000000000003FE000000000003FE000000000007FC00000 | |
| 4563 | −0000007FC000000000007FC000000000007FC000000000007FC00000000000FF80000000 | |
| 4564 | −0000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000000 | |
| 4565 | −00FF800000000000FF800000000000FF800000000000FF800000000000FF800001FFFFF0 | |
| 4566 | −FF800001FFFFF0FF800001FFFFF07FC00001FFFFF07FC00001FFFFF07FC00001FFFFF07F | |
| 4567 | −C00000000FF07FC00000000FF03FE00000000FF03FE00000000FF03FE00000000FF01FF0 | |
| 4568 | −0000000FF01FF00000000FF00FF80000000FF00FF80000000FF007FC0000000FF007FC00 | |
| 4569 | −00000FF003FE0000000FF003FF0000000FF001FF8000000FF000FF8000000FF0007FC000 | |
| 4570 | −000FF0003FF000000FF0003FF800000FF0001FFC00000FF00007FF00003FF00003FFE007 | |
| 4571 | −FFF00001FFFFFFFFF00000FFFFFFFFE000003FFFFFFF0000000FFFFFFC00000001FFFFE0 | |
| 4572 | −000000003FFC000034497AC641>71 D<FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF0FFFFFFFF | |
| 4573 | −FFFFFFF0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF00000003FE0000000 | |
| 4574 | −0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F | |
| 4575 | −E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000 | |
| 4576 | −0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F | |
| 4577 | −E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000 | |
| 4578 | −0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F | |
| 4579 | −E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000 | |
| 4580 | −0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F | |
| 4581 | −E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000 | |
| 4582 | −0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F | |
| 4583 | −E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000 | |
| 4584 | −0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F | |
| 4585 | −E00000000000003FE00000000000003FE00000000000003FE00000000000003FE0000000 | |
| 4586 | −0000003FE00000000000003FE00000000000003FE00000000000003FE00000000000003F | |
| 4587 | −E00000000000003FE00000000000003FE00000000000003FE00000003C457DC443>84 | |
| 4588 | −D<0007FE0000007FFFC00003FFFFE0000FFFFFF8001FFFFFFC001FFFFFFE001FF803FF00 | |
| 4589 | −1F8001FF001E0000FF801800007F801000003FC00000003FC00000003FE00000001FE000 | |
| 4590 | −00001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000 | |
| 4591 | −7FFFE0000FFFFFE0003FFFFFE001FFFFFFE003FFFFFFE00FFFF01FE01FFE001FE03FF800 | |
| 4592 | −1FE07FE0001FE07FC0001FE0FF80001FE0FF00001FE0FF00001FE0FF00001FE0FF00001F | |
| 4593 | −E0FF00003FE0FF80003FE07FC0007FE07FE001FFE07FF80FFFE03FFFFFFFE01FFFFFFFE0 | |
| 4594 | −1FFFFFDFE00FFFFF1FE003FFF81FE000FF800000232F7CAD2F>97 | |
| 4595 | −D<0001FE00000007FFC000001FFFF000007FFFF80000FFFFFC0001FFFFFE0003FF03FF00 | |
| 4596 | −07FC00FF000FF8007F800FF0003F801FE0001FC01FE0000FC03FC0000FE03F800007E07F | |
| 4597 | −800007E07F800007E07F000007E07F000003F0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFF | |
| 4598 | −FFFFF0FFFFFFFFF0FFFFFFFFF0FE00000000FE00000000FE00000000FF00000000FF0000 | |
| 4599 | −00007F000000007F000000007F800000003F800000003FC00000003FC00000001FE00000 | |
| 4600 | −001FF00000100FF800007007FC0001F003FE0007F003FF803FF001FFFFFFF000FFFFFFE0 | |
| 4601 | −003FFFFF80001FFFFE000007FFF8000000FFC000242F7DAD2B>101 | |
| 4602 | −D<00001FF00000FFFE0001FFFE0007FFFE000FFFFE001FFFFE003FF01E003FC002007F80 | |
| 4603 | −00007F000000FE000000FE000001FE000001FE000001FE000001FE000001FE000001FE00 | |
| 4604 | −0001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE0000FFFFFF | |
| 4605 | −80FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF8001FE000001FE000001FE000001FE00 | |
| 4606 | −0001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE00 | |
| 4607 | −0001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE00 | |
| 4608 | −0001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE000001FE00 | |
| 4609 | −0001FE000001FE000001FE000001FE000001FE000001FE000001FE00001F467EC51E>I< | |
| 4610 | −00001FFE00FFFE03FFFE07FFFE1FFFFE3FFFFE7FFFFEFFF0FEFF80FFFE00FFFC00FFF800 | |
| 4611 | −FFF000FFE000FFC000FFC000FF8000FF8000FF8000FF0000FF0000FF0000FF0000FF0000 | |
| 4612 | −FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000 | |
| 4613 | −FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000182D79AC21>114 | |
| 4614 | −D E /Fu 25 118 df<7FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF807FFF | |
| 4615 | −FFFF0021067B9B2C>45 D<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B0B70 | |
| 4616 | −8A2C>I<00000007000000000F800000001F800000001F800000003F800000003F000000 | |
| 4617 | −007F000000007E00000000FE00000000FC00000001FC00000001F800000003F800000003 | |
| 4618 | −F000000003F000000007F000000007E00000000FE00000000FC00000001FC00000001F80 | |
| 4619 | −0000003F800000003F000000007F000000007E00000000FE00000000FC00000000FC0000 | |
| 4620 | −0001FC00000001F800000003F800000003F000000007F000000007E00000000FE0000000 | |
| 4621 | −0FC00000001FC00000001F800000001F800000003F800000003F000000007F000000007E | |
| 4622 | −00000000FE00000000FC00000001FC00000001F800000003F800000003F000000007F000 | |
| 4623 | −000007E000000007E00000000FE00000000FC00000001FC00000001F800000003F800000 | |
| 4624 | −003F000000007F000000007E00000000FE00000000FC00000000FC00000000F800000000 | |
| 4625 | −780000000021417BB92C>I<00070000000F8000000F8000001F8000001F8000003F8000 | |
| 4626 | −007F800000FF800001FF800007FF80007FFF8000FFFF8000FFDF8000FF9F80007C1F8000 | |
| 4627 | −001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000 | |
| 4628 | −001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000 | |
| 4629 | −001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000 | |
| 4630 | −001F8000001F8000001F8000001F8000001F80007FFFFFE0FFFFFFF0FFFFFFF0FFFFFFF0 | |
| 4631 | −7FFFFFE01C3477B32C>49 D<000FF80000007FFF800001FFFFE00007FFFFF0000FFFFFFC | |
| 4632 | −001FF80FFE003FE001FF003F80007F007F00003F807E00001F80FE00001FC0FE00000FC0 | |
| 4633 | −FF00000FE0FF000007E0FF000007E0FF000007E07E000007E03C000007E000000007E000 | |
| 4634 | −000007E00000000FE00000000FC00000001FC00000001F800000003F800000003F000000 | |
| 4635 | −007F00000000FE00000001FC00000003FC00000007F80000000FF00000001FE00000003F | |
| 4636 | −C0000000FF80000001FE00000003FC00000007F80000000FF00000003FE00000007F8000 | |
| 4637 | −0000FF00000001FE00000003FC0003C007F80007E01FE00007E03FC00007E07FFFFFFFE0 | |
| 4638 | −FFFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFC023347CB32C>I<000007F00000000FF8 | |
| 4639 | −0000001FF80000003FF80000003FF80000007EF80000007EF8000000FCF8000001F8F800 | |
| 4640 | −0001F8F8000003F0F8000007E0F8000007E0F800000FC0F800001F80F800001F80F80000 | |
| 4641 | −3F00F800007E00F800007E00F80000FC00F80001F800F80001F800F80003F000F80003E0 | |
| 4642 | −00F80007E000F8000FC000F8000FC000F8001F8000F8003F0000F8003F0000F8007E0000 | |
| 4643 | −F800FC0000F800FFFFFFFFFCFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC000000F8 | |
| 4644 | −00000000F800000000F800000000F800000000F800000000F800000000F800000000F800 | |
| 4645 | −000000F800000000F80000007FFFF00000FFFFF80000FFFFF80000FFFFF800007FFFF027 | |
| 4646 | −347EB32C>52 D<00003FC0000001FFF8000007FFFC00001FFFFE00003FFFFF00007FE07F | |
| 4647 | −0000FF003F8001FE007F8003F8007F8007F0007F8007E0007F800FE0003F001FC0001E00 | |
| 4648 | −1F800000003F800000003F000000003F000000007F000000007E000000007E03FE00007E | |
| 4649 | −1FFF8000FC7FFFE000FDFFFFF000FFFFFFF800FFFE07FC00FFF001FE00FFC0007F00FF80 | |
| 4650 | −003F80FF00001F80FF00001FC0FE00000FC0FE00000FE0FE000007E0FE000007E0FE0000 | |
| 4651 | −07E07E000007E07E000007E07E000007E07E000007E03F000007E03F00000FE03F80000F | |
| 4652 | −C01F80001FC01FC0001F800FC0003F800FE0007F0007F801FE0003FE07FC0001FFFFF800 | |
| 4653 | −00FFFFF000007FFFE000001FFF80000007FC000023357CB32C>54 | |
| 4654 | −D<7800000000FFFFFFFFC0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00003F80 | |
| 4655 | −FC00007F00FC0000FE00780000FC00000001FC00000003F800000007F000000007E00000 | |
| 4656 | −000FE00000000FC00000001F800000003F800000003F000000007F000000007E00000000 | |
| 4657 | −FE00000000FC00000001FC00000001F800000001F800000003F000000003F000000007F0 | |
| 4658 | −00000007E000000007E000000007E00000000FC00000000FC00000000FC00000000FC000 | |
| 4659 | −00001F800000001F800000001F800000001F800000001F800000003F800000003F000000 | |
| 4660 | −003F000000003F000000003F000000003F000000003F000000003F000000003F00000000 | |
| 4661 | −3F000000003F000000001E00000023357CB32C>I<0007FC0000003FFF800000FFFFE000 | |
| 4662 | −03FFFFF80007FFFFFC000FFC07FE001FF001FF001FC0007F003F80003F803F00001F807F | |
| 4663 | −00001FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC03F00001F803F00 | |
| 4664 | −001F801F80003F001FC0007F000FF001FE0003FC07F80001FFFFF000007FFFC0000007FC | |
| 4665 | −0000007FFFC00001FFFFF00003FC07F8000FF001FE001FC0007F001F80003F003F00001F | |
| 4666 | −807E00000FC07E00000FC0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0 | |
| 4667 | −FC000007E0FC000007E07E00000FC07E00000FC07F00001FC03F80003F801FC0007F001F | |
| 4668 | −F001FF000FFC07FE0007FFFFFC0003FFFFF80000FFFFE000003FFF80000007FC00002335 | |
| 4669 | −7CB32C>I<0007FC0000003FFF000000FFFFC00001FFFFE00003FFFFF00007FC07F8000F | |
| 4670 | −F001FC001FE000FE003F80007E003F80007F007F00003F007E00001F80FE00001F80FC00 | |
| 4671 | −001F80FC00000FC0FC00000FC0FC00000FC0FC00000FC0FC00000FE0FC00000FE0FC0000 | |
| 4672 | −0FE0FE00000FE07E00000FE07F00001FE03F00001FE03F80003FE01FC0007FE00FF001FF | |
| 4673 | −E007FC0FFFE003FFFFFFE001FFFFF7E000FFFFC7E0003FFF0FE0000FF80FC00000000FC0 | |
| 4674 | −0000000FC00000001FC00000001F800000003F800000003F000F00007F001F80007E003F | |
| 4675 | −C000FE003FC001FC003FC003F8003FC007F8003F801FF0001FE07FE0001FFFFFC0000FFF | |
| 4676 | −FF000007FFFE000001FFF80000007FC0000023357CB32C>I<1F003F807FC0FFE0FFE0FF | |
| 4677 | −E0FFE0FFE07FC03F801F0000000000000000000000000000000000000000000000000000 | |
| 4678 | −0000001F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B2470A32C>I<00007F80 | |
| 4679 | −000003FFE000000FFFF000003FFFF800007FFFFC0000FFC0FE0001FE007F0003F8003F00 | |
| 4680 | −07F0001F8007E00FCF800FC03FFF801F807FFFC01F80FFFFC03F01FFFFC03E03F87FC03E | |
| 4681 | −07F03FE07E07E01FE07C0FC00FE07C0F8007E07C0F8007E0FC1F8007E0F81F0003E0F81F | |
| 4682 | −0003E0F81F0003E0F81F0003E0F81F0003E0F81F0003E0F81F0003E0F81F0003E0F81F00 | |
| 4683 | −03E0FC1F8007E07C0F8007C07C0F8007C07C0FC00FC07E07E01F803E07F03F803E03F87F | |
| 4684 | −003F01FFFE001F80FFFC001F807FF8000FC03FF00007E00FC00007F00007C003F8000FE0 | |
| 4685 | −01FE001FE000FFC0FFE0007FFFFFC0003FFFFF80000FFFFE000003FFF80000007FC00023 | |
| 4686 | −337CB22C>64 D<7FFFFF0000FFFFFFC000FFFFFFF000FFFFFFF8007FFFFFFC0007E003FE | |
| 4687 | −0007E000FF0007E0007F8007E0003F8007E0001FC007E0000FE007E0000FE007E00007E0 | |
| 4688 | −07E00007F007E00003F007E00003F807E00001F807E00001F807E00001F807E00001F807 | |
| 4689 | −E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E0 | |
| 4690 | −0000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00001F807E00001F807E000 | |
| 4691 | −01F807E00003F807E00003F007E00003F007E00007F007E00007E007E0000FE007E0001F | |
| 4692 | −C007E0003FC007E0007F8007E000FF0007E003FE007FFFFFFC00FFFFFFF800FFFFFFF000 | |
| 4693 | −FFFFFFC0007FFFFF000026337EB22C>68 D<01FFF0000007FFFE00001FFFFF80001FFFFF | |
| 4694 | −E0003FFFFFF0003FC01FF8003FC007F8003FC001FC001F8000FC00060000FE000000007E | |
| 4695 | −000000007E000000007E000000FFFE00001FFFFE0000FFFFFE0003FFFFFE000FFFFFFE00 | |
| 4696 | −1FFF807E003FF8007E007FC0007E007F00007E00FE00007E00FC00007E00FC00007E00FC | |
| 4697 | −00007E00FC00007E00FE00007E007F0000FE007F8003FE003FE01FFE001FFFFFFFFC0FFF | |
| 4698 | −FFFFFE07FFFFBFFE01FFFE1FFE003FF007FC27247CA32C>97 D<7FF0000000FFF8000000 | |
| 4699 | −FFF8000000FFF80000007FF800000001F800000001F800000001F800000001F800000001 | |
| 4700 | −F800000001F800000001F800000001F800000001F800000001F800000001F81FE00001F8 | |
| 4701 | −FFF80001FBFFFE0001FFFFFF0001FFFFFF8001FFF07FC001FF801FE001FF0007F001FE00 | |
| 4702 | −03F801FC0003F801FC0001FC01F80000FC01F80000FC01F80000FE01F800007E01F80000 | |
| 4703 | −7E01F800007E01F800007E01F800007E01F800007E01F800007E01F800007E01F80000FE | |
| 4704 | −01FC0000FC01FC0000FC01FC0001F801FE0003F801FF0007F001FF000FF001FF801FE001 | |
| 4705 | −FFE07FC001FFFFFF8001FFFFFF0001FBFFFE0001F8FFF80000F03FC00027337FB22C>I< | |
| 4706 | −0003FFE000001FFFF800007FFFFE0001FFFFFE0003FFFFFF0007FE00FF000FF000FF001F | |
| 4707 | −E000FF001FC0007E003F800018003F000000007F000000007E000000007E00000000FC00 | |
| 4708 | −000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000 | |
| 4709 | −00007E000000007E000000007F000000003F00000F003F80001F801FC0001F801FE0003F | |
| 4710 | −800FF0007F0007FE03FF0003FFFFFE0001FFFFFC00007FFFF800001FFFE0000003FF0000 | |
| 4711 | −21247AA32C>I<00000FFE0000001FFF0000001FFF0000001FFF0000000FFF000000003F | |
| 4712 | −000000003F000000003F000000003F000000003F000000003F000000003F000000003F00 | |
| 4713 | −0000003F000000003F000007F83F00003FFE3F0000FFFFBF0001FFFFFF0003FFFFFF0007 | |
| 4714 | −FC0FFF000FF003FF001FE001FF001FC000FF003F80007F003F00007F007E00003F007E00 | |
| 4715 | −003F00FE00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC0000 | |
| 4716 | −3F00FC00003F00FC00003F00FE00003F007E00007F007E00007F007F0000FF003F8000FF | |
| 4717 | −003F8001FF001FC003FF000FF007FF0007FC1FFF0003FFFFFFFC01FFFFBFFE00FFFF3FFE | |
| 4718 | −003FFC3FFE000FF01FFC27337DB22C>I<0003FE0000001FFFC000007FFFF00001FFFFF8 | |
| 4719 | −0003FFFFFC0007FE03FE000FF800FF001FE0003F801FC0003F803F80001FC03F00000FC0 | |
| 4720 | −7F00000FC07E00000FE07E000007E0FC000007E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FF | |
| 4721 | −FFFFFFE0FFFFFFFFC0FC00000000FE000000007E000000007E000000007F000000003F00 | |
| 4722 | −0003C03F800007E01FC00007E00FF0000FE007F8003FC007FF00FFC001FFFFFF8000FFFF | |
| 4723 | −FF00003FFFFC00000FFFF0000001FF800023247CA32C>I<00070000001FC000001FC000 | |
| 4724 | −003FE000003FE000003FE000001FC000001FC00000070000000000000000000000000000 | |
| 4725 | −000000000000000000000000000000007FFFC0007FFFE000FFFFE0007FFFE0007FFFE000 | |
| 4726 | −0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 | |
| 4727 | −0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 | |
| 4728 | −0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0007FFFFFFC | |
| 4729 | −FFFFFFFEFFFFFFFEFFFFFFFE7FFFFFFC1F3479B32C>105 D<7FFFE00000FFFFF00000FF | |
| 4730 | −FFF00000FFFFF000007FFFF000000003F000000003F000000003F000000003F000000003 | |
| 4731 | −F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0 | |
| 4732 | −00000003F000000003F000000003F000000003F000000003F000000003F000000003F000 | |
| 4733 | −000003F000000003F000000003F000000003F000000003F000000003F000000003F00000 | |
| 4734 | −0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 | |
| 4735 | −03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 | |
| 4736 | −F000007FFFFFFF80FFFFFFFFC0FFFFFFFFC0FFFFFFFFC07FFFFFFF8022337BB22C>108 | |
| 4737 | −D<0007FC0000001FFF0000007FFFC00001FFFFF00003FFFFF80007FC07FC000FF001FE00 | |
| 4738 | −1FE000FF001F80003F003F80003F803F00001F807E00000FC07E00000FC07E00000FC0FC | |
| 4739 | −000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FE00 | |
| 4740 | −000FE07E00000FC07E00000FC07F00001FC03F00001F803F80003F801FC0007F001FE000 | |
| 4741 | −FF000FF001FE0007FC07FC0003FFFFF80001FFFFF000007FFFC000001FFF00000007FC00 | |
| 4742 | −0023247CA32C>111 D<7FF01FE000FFF8FFF800FFFBFFFE00FFFFFFFF007FFFFFFF8001 | |
| 4743 | −FFF07FC001FF801FE001FF0007F001FE0003F801FC0003F801FC0001FC01F80000FC01F8 | |
| 4744 | −0000FC01F80000FE01F800007E01F800007E01F800007E01F800007E01F800007E01F800 | |
| 4745 | −007E01F800007E01F800007E01F80000FE01FC0000FC01FC0000FC01FC0001F801FE0003 | |
| 4746 | −F801FF0007F001FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001FBFFFE00 | |
| 4747 | −01F8FFF80001F83FC00001F800000001F800000001F800000001F800000001F800000001 | |
| 4748 | −F800000001F800000001F800000001F800000001F800000001F800000001F800000001F8 | |
| 4749 | −0000007FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFE0000027367FA32C>I<7F | |
| 4750 | −FE003FC0FFFF01FFF0FFFF07FFF8FFFF1FFFFC7FFF3FFFFC003F7FE1FC003FFF01FC003F | |
| 4751 | −FC00F8003FF80070003FF00000003FE00000003FE00000003FC00000003F800000003F80 | |
| 4752 | −0000003F800000003F000000003F000000003F000000003F000000003F000000003F0000 | |
| 4753 | −00003F000000003F000000003F000000003F000000003F000000003F000000003F000000 | |
| 4754 | −003F000000003F0000007FFFFFE000FFFFFFF000FFFFFFF000FFFFFFF0007FFFFFE00026 | |
| 4755 | −247EA32C>114 D<001E000000003F000000003F000000003F000000003F000000003F00 | |
| 4756 | −0000003F000000003F000000003F000000003F0000007FFFFFFF00FFFFFFFF80FFFFFFFF | |
| 4757 | −80FFFFFFFF807FFFFFFF00003F000000003F000000003F000000003F000000003F000000 | |
| 4758 | −003F000000003F000000003F000000003F000000003F000000003F000000003F00000000 | |
| 4759 | −3F000000003F000000003F000000003F000000003F000000003F0003C0003F0007E0003F | |
| 4760 | −0007E0003F0007E0003F0007E0003F0007E0003F800FE0001F801FC0001FE07FC0000FFF | |
| 4761 | −FF80000FFFFF000003FFFE000001FFF80000003FE000232E7EAD2C>116 | |
| 4762 | −D<7FF003FF8000FFF807FFC000FFF807FFC000FFF807FFC0007FF803FFC00001F8000FC0 | |
| 4763 | −0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0 | |
| 4764 | −0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0 | |
| 4765 | −0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0 | |
| 4766 | −0001F8000FC00001F8000FC00001F8001FC00001F8001FC00001F8003FC00001FC007FC0 | |
| 4767 | −0000FE03FFC00000FFFFFFFF00007FFFFFFF80003FFFFFFF80001FFFCFFF800003FE07FF | |
| 4768 | −0029247FA32C>I E /Fv 34 125 df<001F00001F80003F80007F80007F8000FF0001FE | |
| 4769 | −0003FC0003F80007F0000FE0000F80001F00003E00003C0000780000E000004000001112 | |
| 4770 | −6CC431>19 D<FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC01A067F9721> | |
| 4771 | −45 D<0000000FFE000060000000FFFFC000E0000003FFFFF000E000000FFC01FC01E000 | |
| 4772 | −003FC0003E01E00000FF00000F83E00003FC000003C7E00007F8000001E7E0000FF00000 | |
| 4773 | −00FFE0001FE00000007FE0003FC00000003FE0007F800000001FE000FF000000000FE001 | |
| 4774 | −FE000000000FE001FC0000000007E003FC0000000007E007F80000000003E007F8000000 | |
| 4775 | −0003E00FF00000000001E00FF00000000001E01FE00000000000E01FE00000000000E03F | |
| 4776 | −E00000000000E03FE00000000000E03FC00000000000607FC00000000000607FC0000000 | |
| 4777 | −0000607FC00000000000607FC0000000000000FF80000000000000FF80000000000000FF | |
| 4778 | −80000000000000FF80000000000000FF80000000000000FF80000000000000FF80000000 | |
| 4779 | −000000FF80000000000000FF80000000000000FF80000000000000FF80000000000000FF | |
| 4780 | −80000000000000FF80000000000000FF800000000000007FC00000000000007FC0000000 | |
| 4781 | −0000007FC00000000000607FC00000000000603FC00000000000603FE00000000000603F | |
| 4782 | −E00000000000601FE00000000000E01FF00000000000E00FF00000000000C00FF0000000 | |
| 4783 | −0000C007F80000000001C007F800000000018003FC00000000038001FC00000000038001 | |
| 4784 | −FE00000000070000FF000000000600007F800000000E00003FC00000001C00001FE00000 | |
| 4785 | −003800000FF000000078000007F8000000F0000003FC000001E0000000FF000007800000 | |
| 4786 | −003FC0001F000000000FFC00FC0000000003FFFFF00000000000FFFFC000000000000FFE | |
| 4787 | −0000003B487BC546>67 D<FFFFFFFFFF00000000FFFFFFFFFFF0000000FFFFFFFFFFFC00 | |
| 4788 | −000001FFC00007FF00000000FF8000007FC00000007F8000001FE00000007F80000007F0 | |
| 4789 | −0000007F80000003FC0000007F80000001FE0000007F80000000FF0000007F800000007F | |
| 4790 | −0000007F800000003F8000007F800000001FC000007F800000000FE000007F800000000F | |
| 4791 | −E000007F8000000007F000007F8000000007F800007F8000000003F800007F8000000003 | |
| 4792 | −FC00007F8000000003FC00007F8000000001FC00007F8000000001FE00007F8000000001 | |
| 4793 | −FE00007F8000000001FE00007F8000000001FF00007F8000000000FF00007F8000000000 | |
| 4794 | −FF00007F8000000000FF00007F8000000000FF80007F8000000000FF80007F8000000000 | |
| 4795 | −FF80007F8000000000FF80007F8000000000FF80007F8000000000FF80007F8000000000 | |
| 4796 | −FF80007F8000000000FF80007F8000000000FF80007F8000000000FF80007F8000000000 | |
| 4797 | −FF80007F8000000000FF80007F8000000000FF80007F8000000000FF00007F8000000000 | |
| 4798 | −FF00007F8000000000FF00007F8000000001FF00007F8000000001FE00007F8000000001 | |
| 4799 | −FE00007F8000000001FE00007F8000000001FC00007F8000000003FC00007F8000000003 | |
| 4800 | −F800007F8000000007F800007F8000000007F000007F800000000FF000007F800000000F | |
| 4801 | −E000007F800000001FC000007F800000003FC000007F800000003F8000007F800000007F | |
| 4802 | −0000007F80000000FE0000007F80000003FC0000007F80000007F80000007F8000001FE0 | |
| 4803 | −000000FF8000007FC0000001FFC00007FF000000FFFFFFFFFFFC000000FFFFFFFFFFF000 | |
| 4804 | −0000FFFFFFFFFF0000000041447CC34B>I<FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFF | |
| 4805 | −FFFFF001FFC000007FF0007F8000000FF8007F80000003F8007F80000001F8007F800000 | |
| 4806 | −00F8007F8000000078007F8000000038007F8000000038007F800000001C007F80000000 | |
| 4807 | −1C007F800000001C007F800000000C007F800000000C007F800000000C007F800000000C | |
| 4808 | −007F800000000E007F8000000006007F80000C0006007F80000C0006007F80000C000000 | |
| 4809 | −7F80000C0000007F80000C0000007F80000C0000007F80000C0000007F80001C0000007F | |
| 4810 | −80001C0000007F80003C0000007F80007C0000007F8001FC0000007FFFFFFC0000007FFF | |
| 4811 | −FFFC0000007FFFFFFC0000007F8001FC0000007F80007C0000007F80003C0000007F8000 | |
| 4812 | −1C0000007F80001C0000007F80000C0000007F80000C0000007F80000C0000007F80000C | |
| 4813 | −0000007F80000C0000007F80000C0000007F80000C0000007F8000000000007F80000000 | |
| 4814 | −00007F8000000000007F8000000000007F8000000000007F8000000000007F8000000000 | |
| 4815 | −007F8000000000007F8000000000007F8000000000007F8000000000007F800000000000 | |
| 4816 | −7F8000000000007F8000000000007F8000000000007F8000000000007FC00000000001FF | |
| 4817 | −E000000000FFFFFFF8000000FFFFFFF8000000FFFFFFF800000037447CC340>70 | |
| 4818 | −D<FFFFFFC003FFFFFFFFFFFFC003FFFFFFFFFFFFC003FFFFFF01FFE0000007FF80007F80 | |
| 4819 | −000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE | |
| 4820 | −00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80 | |
| 4821 | −000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE | |
| 4822 | −00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80 | |
| 4823 | −000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE | |
| 4824 | −00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007FFF | |
| 4825 | −FFFFFFFE00007FFFFFFFFFFE00007FFFFFFFFFFE00007F80000001FE00007F80000001FE | |
| 4826 | −00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80 | |
| 4827 | −000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE | |
| 4828 | −00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80 | |
| 4829 | −000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE | |
| 4830 | −00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80 | |
| 4831 | −000001FE00007F80000001FE00007F80000001FE00007F80000001FE00007F80000001FE | |
| 4832 | −00007F80000001FE0001FFE0000007FF80FFFFFFC003FFFFFFFFFFFFC003FFFFFFFFFFFF | |
| 4833 | −C003FFFFFF40447CC349>72 D<FFFFFFF0FFFFFFF0FFFFFFF000FFF000007FE000003FC0 | |
| 4834 | −00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 | |
| 4835 | −00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 | |
| 4836 | −00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 | |
| 4837 | −00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 | |
| 4838 | −00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 | |
| 4839 | −00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 | |
| 4840 | −00003FC000003FC000003FC000007FE00000FFF000FFFFFFF0FFFFFFF0FFFFFFF01C447D | |
| 4841 | −C323>I<FFFFFFF8000000FFFFFFF8000000FFFFFFF800000001FFE000000000007FC000 | |
| 4842 | −000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000 | |
| 4843 | −0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000 | |
| 4844 | −00007F8000000000007F8000000000007F8000000000007F8000000000007F8000000000 | |
| 4845 | −007F8000000000007F8000000000007F8000000000007F8000000000007F800000000000 | |
| 4846 | −7F8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F | |
| 4847 | −8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F80 | |
| 4848 | −00000000007F8000000000007F8000000000007F8000000000007F8000000000007F8000 | |
| 4849 | −000000007F8000000000007F8000000030007F8000000030007F8000000030007F800000 | |
| 4850 | −0030007F8000000070007F8000000060007F8000000060007F8000000060007F80000000 | |
| 4851 | −60007F8000000060007F80000000E0007F80000000E0007F80000000E0007F80000001C0 | |
| 4852 | −007F80000001C0007F80000003C0007F80000007C0007F80000007C0007F8000000FC000 | |
| 4853 | −7F8000003FC0007F8000007FC0007F800001FFC001FFC0001FFF80FFFFFFFFFFFF80FFFF | |
| 4854 | −FFFFFFFF80FFFFFFFFFFFF8034447CC33D>76 D<FFFFFFFFFC0000FFFFFFFFFFC000FFFF | |
| 4855 | −FFFFFFF80001FFC0000FFC00007F800001FF00007F8000007F80007F8000001FE0007F80 | |
| 4856 | −00000FE0007F80000007F0007F80000007F8007F80000003FC007F80000003FC007F8000 | |
| 4857 | −0003FE007F80000001FE007F80000001FE007F80000001FF007F80000001FF007F800000 | |
| 4858 | −01FF007F80000001FF007F80000001FF007F80000001FF007F80000001FF007F80000001 | |
| 4859 | −FE007F80000001FE007F80000003FE007F80000003FC007F80000003FC007F80000007F8 | |
| 4860 | −007F80000007F0007F8000000FE0007F8000001FC0007F8000007F80007F800001FE0000 | |
| 4861 | −7F80000FFC00007FFFFFFFF000007FFFFFFF8000007F8000000000007F8000000000007F | |
| 4862 | −8000000000007F8000000000007F8000000000007F8000000000007F8000000000007F80 | |
| 4863 | −00000000007F8000000000007F8000000000007F8000000000007F8000000000007F8000 | |
| 4864 | −000000007F8000000000007F8000000000007F8000000000007F8000000000007F800000 | |
| 4865 | −0000007F8000000000007F8000000000007F8000000000007F8000000000007F80000000 | |
| 4866 | −00007F8000000000007F8000000000007F8000000000007F8000000000007F8000000000 | |
| 4867 | −01FFE000000000FFFFFFC0000000FFFFFFC0000000FFFFFFC000000038447CC342>80 | |
| 4868 | −D<FFFFFFFFE000000000FFFFFFFFFF00000000FFFFFFFFFFC000000001FFC0003FF80000 | |
| 4869 | −00007F800003FC000000007F800000FF000000007F8000007F800000007F8000003FC000 | |
| 4870 | −00007F8000001FE00000007F8000000FF00000007F80000007F80000007F80000007F800 | |
| 4871 | −00007F80000007FC0000007F80000003FC0000007F80000003FE0000007F80000003FE00 | |
| 4872 | −00007F80000003FE0000007F80000003FE0000007F80000003FE0000007F80000003FE00 | |
| 4873 | −00007F80000003FE0000007F80000003FC0000007F80000003FC0000007F80000007FC00 | |
| 4874 | −00007F80000007F80000007F8000000FF00000007F8000000FF00000007F8000001FE000 | |
| 4875 | −00007F8000003FC00000007F8000007F000000007F800001FE000000007F800007F80000 | |
| 4876 | −00007F80003FE0000000007FFFFFFF00000000007FFFFFFC00000000007F80007F800000 | |
| 4877 | −00007F80000FE0000000007F800007F0000000007F800003FC000000007F800001FE0000 | |
| 4878 | −00007F800000FE000000007F800000FF000000007F8000007F800000007F8000007F8000 | |
| 4879 | −00007F8000003FC00000007F8000003FC00000007F8000003FC00000007F8000003FC000 | |
| 4880 | −00007F8000003FC00000007F8000003FC00000007F8000003FC00000007F8000003FE000 | |
| 4881 | −00007F8000003FE00000007F8000003FE00000007F8000003FE00000007F8000003FE000 | |
| 4882 | −00007F8000003FE00000007F8000003FE00000007F8000003FE00060007F8000003FF000 | |
| 4883 | −60007F8000001FF00060007F8000001FF00060007F8000001FF000E0007F8000000FF800 | |
| 4884 | −C001FFE0000007F801C0FFFFFFC00007F80180FFFFFFC00001FC0380FFFFFFC00000FE07 | |
| 4885 | −000000000000003FFE0000000000000007F80043467CC348>82 D<FFFFFFC0000FFFFFFF | |
| 4886 | −FFFFC0000FFFFFFFFFFFC0000FFFFF01FFE0000000FFF0007F800000001F80007F800000 | |
| 4887 | −000F00007F800000000F00007F800000000600007F800000000600007F80000000060000 | |
| 4888 | −7F800000000600007F800000000600007F800000000600007F800000000600007F800000 | |
| 4889 | −000600007F800000000600007F800000000600007F800000000600007F80000000060000 | |
| 4890 | −7F800000000600007F800000000600007F800000000600007F800000000600007F800000 | |
| 4891 | −000600007F800000000600007F800000000600007F800000000600007F80000000060000 | |
| 4892 | −7F800000000600007F800000000600007F800000000600007F800000000600007F800000 | |
| 4893 | −000600007F800000000600007F800000000600007F800000000600007F80000000060000 | |
| 4894 | −7F800000000600007F800000000600007F800000000600007F800000000600007F800000 | |
| 4895 | −000600007F800000000600007F800000000600007F800000000600007F80000000060000 | |
| 4896 | −7F800000000600007F800000000600007F800000000600007F800000000600007F800000 | |
| 4897 | −000E00003FC00000000C00003FC00000000C00003FC00000001C00001FC00000001C0000 | |
| 4898 | −1FE00000001800000FE00000003800000FE000000030000007F000000070000007F00000 | |
| 4899 | −00E0000003F8000001E0000001FC000001C0000000FE000007800000007F00000F000000 | |
| 4900 | −003F80001E000000001FE0007C0000000007FC03F00000000001FFFFE000000000007FFF | |
| 4901 | −80000000000007FC00000040467CC349>85 D<FFFFFF0007FFFFF8000FFFFEFFFFFF0007 | |
| 4902 | −FFFFF8000FFFFEFFFFFF0007FFFFF8000FFFFE03FFE000001FFF000000FFF001FF800000 | |
| 4903 | −0FFC0000003FC001FF00000007F80000001F0000FF00000007F80000000F0000FF000000 | |
| 4904 | −07F80000000E00007F80000003FC0000000E00007F80000003FC0000000C00007F800000 | |
| 4905 | −03FC0000000C00003FC0000003FE0000001800003FC0000003FE0000001800003FC00000 | |
| 4906 | −03FE0000001800003FE0000006FF0000003800001FE0000006FF0000003000001FE00000 | |
| 4907 | −06FF0000003000001FF000000EFF8000007000000FF000000C7F8000006000000FF00000 | |
| 4908 | −0C7F8000006000000FF800001C7FC0000060000007F80000183FC00000C0000007F80000 | |
| 4909 | −183FC00000C0000007F80000183FE00000C0000003FC0000301FE0000180000003FC0000 | |
| 4910 | −301FE0000180000003FC0000301FE0000180000001FE0000600FF0000300000001FE0000 | |
| 4911 | −600FF0000300000001FE0000600FF0000300000000FF0000C007F8000600000000FF0000 | |
| 4912 | −C007F8000600000000FF0000C007F8000600000000FF8001C007FC000E000000007F8001 | |
| 4913 | −8003FC000C000000007F80018003FC000C000000007FC0038003FE000C000000003FC003 | |
| 4914 | −0001FE0018000000003FC0030001FE0018000000003FE0030001FF0018000000001FE006 | |
| 4915 | −0000FF0030000000001FE0060000FF0030000000001FE0060000FF0030000000000FF00C | |
| 4916 | −00007F8060000000000FF00C00007F8060000000000FF00C00007F80600000000007F818 | |
| 4917 | −00003FC0C00000000007F81800003FC0C00000000007F81800003FC0C00000000007FC30 | |
| 4918 | −00001FE1C00000000003FC3000001FE1800000000003FC3000001FE1800000000003FE70 | |
| 4919 | −00001FF3800000000001FE6000000FF3000000000001FE6000000FF3000000000001FFE0 | |
| 4920 | −00000FFB000000000000FFC0000007FE000000000000FFC0000007FE000000000000FFC0 | |
| 4921 | −000007FE0000000000007F80000003FC0000000000007F80000003FC0000000000007F80 | |
| 4922 | −000003FC0000000000003F00000001F80000000000003F00000001F80000000000003F00 | |
| 4923 | −000001F80000000000001E00000000F00000000000001E00000000F00000000000001E00 | |
| 4924 | −000000F00000000000001E00000000F00000000000000C00000000600000005F467EC364 | |
| 4925 | −>87 D<0007FC000000003FFF80000000F80FE0000003C003F00000070001F800000E0000 | |
| 4926 | −FC00000FC0007E00001FE0007F00001FF0003F80001FF0003F80001FF0003F80001FF000 | |
| 4927 | −1FC0001FF0001FC0000FE0001FC0000380001FC0000000001FC0000000001FC000000000 | |
| 4928 | −1FC0000000001FC00000000FFFC0000001FFFFC000000FFE1FC000003FC01FC00000FF00 | |
| 4929 | −1FC00003FC001FC00007F8001FC0000FF0001FC0001FE0001FC0003FC0001FC0007FC000 | |
| 4930 | −1FC0007F80001FC0007F80001FC060FF00001FC060FF00001FC060FF00001FC060FF0000 | |
| 4931 | −3FC060FF00003FC060FF00003FC060FF80007FC0607F8000EFC0607FC000C7E0C03FC001 | |
| 4932 | −C7E0C01FE00783F1C007F81E03FF8001FFFC01FF00001FE0007C002B2E7CAC31>97 | |
| 4933 | −D<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC0000000003FC000000 | |
| 4934 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 4935 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 4936 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 4937 | −0001FC0000000001FC03FC000001FC0FFF800001FC3C07E00001FC7001F80001FDE0007E | |
| 4938 | −0001FD80003F0001FF80001F8001FF00001FC001FE00000FE001FC000007E001FC000007 | |
| 4939 | −F001FC000007F001FC000003F801FC000003F801FC000003FC01FC000003FC01FC000001 | |
| 4940 | −FC01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001 | |
| 4941 | −FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001 | |
| 4942 | −FC01FC000003FC01FC000003FC01FC000003F801FC000003F801FC000007F001FC000007 | |
| 4943 | −F001FE00000FE001FE00000FC001FF00001FC001FB00003F8001F380007E0001E1C000FC | |
| 4944 | −0001E0F001F80001C03C07E00001801FFF8000000003FC00002F467DC436>I<00007F80 | |
| 4945 | −000003FFF000000FC07C00003F000F0000FC00038001F80001C003F8000FC007F0001FE0 | |
| 4946 | −07E0003FE00FE0003FE01FC0003FE01FC0003FE03F80003FE03F80001FC07F800007007F | |
| 4947 | −800000007F800000007F00000000FF00000000FF00000000FF00000000FF00000000FF00 | |
| 4948 | −000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000007F0000 | |
| 4949 | −00007F800000007F800000003F800000003F800000303FC00000301FC00000700FE00000 | |
| 4950 | −600FE00000E007F00000C003F80001C001F800038000FC000700003F001E00001FC07800 | |
| 4951 | −0007FFF0000000FF8000242E7DAC2B>I<000000007F000000003FFF000000003FFF0000 | |
| 4952 | −00003FFF0000000001FF0000000000FF00000000007F00000000007F00000000007F0000 | |
| 4953 | −0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000 | |
| 4954 | −0000007F00000000007F00000000007F00000000007F00000000007F00000000007F0000 | |
| 4955 | −0000007F00000000007F00000000007F00000000007F0000007F807F000003FFF07F0000 | |
| 4956 | −0FC07C7F00003F000E7F00007E00077F0000FC0003FF0003F80001FF0007F00000FF0007 | |
| 4957 | −E00000FF000FE000007F001FC000007F001FC000007F003F8000007F003F8000007F007F | |
| 4958 | −8000007F007F8000007F007F0000007F00FF0000007F00FF0000007F00FF0000007F00FF | |
| 4959 | −0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF | |
| 4960 | −0000007F00FF0000007F007F0000007F007F8000007F007F8000007F003F8000007F003F | |
| 4961 | −8000007F001FC000007F001FC000007F000FC00000FF000FE00000FF0007F00001FF0003 | |
| 4962 | −F00003FF0001F800077F8000FC000E7FC0003F001C7FFE000FC0F87FFE0003FFE07FFE00 | |
| 4963 | −007F007F002F467DC436>I<0001FE00000007FFC000001F03F000007E00FC0000FC007E | |
| 4964 | −0001F8003F0003F0003F0007E0001F800FE0001FC00FC0000FC01FC0000FC03F80000FE0 | |
| 4965 | −3F800007E03F800007E07F800007F07F000007F07F000007F0FF000007F0FF000007F0FF | |
| 4966 | −000007F0FFFFFFFFF0FFFFFFFFF0FF00000000FF00000000FF00000000FF00000000FF00 | |
| 4967 | −000000FF000000007F000000007F000000007F800000007F800000003F800000003F8000 | |
| 4968 | −00301FC00000301FC00000700FC00000600FE00000E007F00000C003F00001C001F80003 | |
| 4969 | −8000FC000700003E001E00001F80F8000003FFE0000000FF0000242E7DAC2B>I<00000F | |
| 4970 | −E00000007FF8000001F81E000003F03F00000FE07F80001FC0FF80001F80FF80003F80FF | |
| 4971 | −80007F00FF80007F00FF80007F007F0000FE001C0000FE00000000FE00000000FE000000 | |
| 4972 | −00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000 | |
| 4973 | −FE00000000FE00000000FE00000000FE00000000FE000000FFFFFF8000FFFFFF8000FFFF | |
| 4974 | −FF800000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 | |
| 4975 | −000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 | |
| 4976 | −0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000 | |
| 4977 | −00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000 | |
| 4978 | −FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE | |
| 4979 | −00000001FF8000007FFFFF00007FFFFF00007FFFFF000021467EC51E>I<000000000F80 | |
| 4980 | −0001FC007FE0000FFF81F0F0003F07E381F000FC01FF03F001F800FE01F003F0007E01E0 | |
| 4981 | −07F0007F000007E0003F00000FE0003F80000FC0001F80001FC0001FC0001FC0001FC000 | |
| 4982 | −1FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC000 | |
| 4983 | −1FC0001FC0000FC0001F80000FE0003F800007E0003F000007F0007F000003F0007E0000 | |
| 4984 | −01F800FC000001FC01F8000003BF07E00000030FFF8000000701FC000000070000000000 | |
| 4985 | −0700000000000F00000000000F00000000000F00000000000F800000000007C000000000 | |
| 4986 | −07E00000000007FFFFF8000003FFFFFF000003FFFFFFE00001FFFFFFF800007FFFFFFC00 | |
| 4987 | −01FFFFFFFE0007C0000FFF000F800000FF003F0000003F803E0000001F807C0000000FC0 | |
| 4988 | −7C0000000FC0F800000007C0F800000007C0F800000007C0F800000007C0F800000007C0 | |
| 4989 | −FC0000000FC07C0000000F807E0000001F803E0000001F001F0000003E000F8000007C00 | |
| 4990 | −07E00001F80001F80007E000007F003F8000001FFFFE00000001FFE000002C427DAC31> | |
| 4991 | −I<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC0000000003FC000000 | |
| 4992 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 4993 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 4994 | −0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 | |
| 4995 | −0001FC0000000001FC01FE000001FC07FFC00001FC1E07F00001FC3801F80001FC7001FC | |
| 4996 | −0001FCE000FC0001FDC000FE0001FD8000FE0001FF80007F0001FF00007F0001FF00007F | |
| 4997 | −0001FE00007F0001FE00007F0001FE00007F0001FC00007F0001FC00007F0001FC00007F | |
| 4998 | −0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F | |
| 4999 | −0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F | |
2808 more lines aren’t shown here.
| @@ -4,7 +4,7 @@ LUA= .. · 3 unmodified lines | ||
| 4 | 4 | |
| 5 | 5 | include $(LUA)/config |
| 6 | 6 | |
| 7 | −SRCS= lua.h lualib.h luadebug.h | |
| 7 | +SRCS= lua.h lualib.h luadebug.h auxlib.h | |
| 8 | 8 | |
| 9 | 9 | all: |
| 10 | 10 | |
| @@ -0,0 +1,30 @@ | ||
| 1 | +/* | |
| 2 | +** $Id: auxlib.h,v 1.3 1997/04/07 14:48:53 roberto Exp $ | |
| 3 | +*/ | |
| 4 | + | |
| 5 | +#ifndef auxlib_h | |
| 6 | +#define auxlib_h | |
| 7 | + | |
| 8 | +#include "lua.h" | |
| 9 | + | |
| 10 | +struct luaL_reg { | |
| 11 | + char *name; | |
| 12 | + lua_CFunction func; | |
| 13 | +}; | |
| 14 | + | |
| 15 | +void luaL_openlib (struct luaL_reg *l, int n); | |
| 16 | +void luaL_arg_check(int cond, int numarg, char *extramsg); | |
| 17 | +char *luaL_check_string (int numArg); | |
| 18 | +char *luaL_opt_string (int numArg, char *def); | |
| 19 | +double luaL_check_number (int numArg); | |
| 20 | +double luaL_opt_number (int numArg, double def); | |
| 21 | +void luaL_verror (char *fmt, ...); | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | +/* -- private part (only for Lua modules */ | |
| 26 | + | |
| 27 | +int luaI_findstring (char *name, char *list[]); | |
| 28 | + | |
| 29 | + | |
| 30 | +#endif | |
| @@ -1,61 +1,50 @@ | ||
| 1 | 1 | /* |
| 2 | −** LUA - Linguagem para Usuarios de Aplicacao | |
| 3 | −** Grupo de Tecnologia em Computacao Grafica | |
| 4 | −** TeCGraf - PUC-Rio | |
| 5 | −** $Id: lua.h,v 3.32 1996/11/20 13:49:32 roberto Exp $ | |
| 2 | +** LUA - An Extensible Extension Language | |
| 3 | +** TeCGraf: Grupo de Tecnologia em Computacao Grafica, PUC-Rio, Brazil | |
| 4 | +** e-mail: lua@tecgraf.puc-rio.br | |
| 5 | +** $Id: lua.h,v 4.11 1997/06/23 18:27:53 roberto Exp $ | |
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | 8 | |
| 9 | 9 | #ifndef lua_h |
| 10 | 10 | #define lua_h |
| 11 | 11 | |
| 12 | −#define LUA_VERSION "Lua 2.5.1" | |
| 13 | −#define LUA_COPYRIGHT "Copyright (C) 1994-1996 TeCGraf" | |
| 12 | +#define LUA_VERSION "Lua 3.0" | |
| 13 | +#define LUA_COPYRIGHT "Copyright (C) 1994-1997 TeCGraf" | |
| 14 | 14 | #define LUA_AUTHORS "W. Celes, R. Ierusalimschy & L. H. de Figueiredo" |
| 15 | 15 | |
| 16 | 16 | |
| 17 | −/* Private Part */ | |
| 18 | − | |
| 19 | −typedef enum | |
| 20 | −{ | |
| 21 | − LUA_T_NIL = -1, | |
| 22 | − LUA_T_NUMBER = -2, | |
| 23 | − LUA_T_STRING = -3, | |
| 24 | − LUA_T_ARRAY = -4, | |
| 25 | − LUA_T_FUNCTION = -5, | |
| 26 | − LUA_T_CFUNCTION= -6, | |
| 27 | − LUA_T_MARK = -7, | |
| 28 | − LUA_T_CMARK = -8, | |
| 29 | − LUA_T_LINE = -9, | |
| 30 | − LUA_T_USERDATA = 0 | |
| 31 | −} lua_Type; | |
| 32 | − | |
| 33 | − | |
| 34 | −/* Public Part */ | |
| 35 | − | |
| 36 | 17 | #define LUA_NOOBJECT 0 |
| 37 | 18 | |
| 19 | +#define LUA_ANYTAG (-1) | |
| 20 | + | |
| 38 | 21 | typedef void (*lua_CFunction) (void); |
| 39 | 22 | typedef unsigned int lua_Object; |
| 40 | 23 | |
| 41 | −lua_Object lua_setfallback (char *name, lua_CFunction fallback); | |
| 24 | +lua_Object lua_settagmethod (int tag, char *event); /* In: new method */ | |
| 25 | +lua_Object lua_gettagmethod (int tag, char *event); | |
| 26 | +lua_Object lua_seterrormethod (void); /* In: new method */ | |
| 27 | + | |
| 28 | +int lua_newtag (void); | |
| 29 | +void lua_settag (int tag); /* In: object */ | |
| 42 | 30 | |
| 43 | 31 | void lua_error (char *s); |
| 44 | −int lua_dofile (char *filename); | |
| 45 | −int lua_dostring (char *string); | |
| 46 | −int lua_callfunction (lua_Object function); | |
| 47 | −int lua_call (char *funcname); | |
| 32 | +int lua_dofile (char *filename); /* Out: returns */ | |
| 33 | +int lua_dostring (char *string); /* Out: returns */ | |
| 34 | +int lua_callfunction (lua_Object f); | |
| 35 | + /* In: parameters; Out: returns */ | |
| 48 | 36 | |
| 49 | 37 | void lua_beginblock (void); |
| 50 | 38 | void lua_endblock (void); |
| 51 | 39 | |
| 52 | −lua_Object lua_getparam (int number); | |
| 53 | −#define lua_getresult(_) lua_getparam(_) | |
| 40 | +lua_Object lua_lua2C (int number); | |
| 41 | +#define lua_getparam(_) lua_lua2C(_) | |
| 42 | +#define lua_getresult(_) lua_lua2C(_) | |
| 54 | 43 | |
| 55 | −#define lua_isnil(_) (lua_type(_)==LUA_T_NIL) | |
| 56 | −#define lua_istable(_) (lua_type(_)==LUA_T_ARRAY) | |
| 57 | −#define lua_isuserdata(_) (lua_type(_)>=LUA_T_USERDATA) | |
| 58 | −#define lua_iscfunction(_) (lua_type(_)==LUA_T_CFUNCTION) | |
| 44 | +int lua_isnil (lua_Object object); | |
| 45 | +int lua_istable (lua_Object object); | |
| 46 | +int lua_isuserdata (lua_Object object); | |
| 47 | +int lua_iscfunction (lua_Object object); | |
| 59 | 48 | int lua_isnumber (lua_Object object); |
| 60 | 49 | int lua_isstring (lua_Object object); |
| 61 | 50 | int lua_isfunction (lua_Object object); |
| @@ -63,42 +52,73 @@ int lua_isfunction (lua_Object object); · 1 unmodified line | ||
| 63 | 52 | float lua_getnumber (lua_Object object); |
| 64 | 53 | char *lua_getstring (lua_Object object); |
| 65 | 54 | lua_CFunction lua_getcfunction (lua_Object object); |
| 66 | −void *lua_getuserdata (lua_Object object); | |
| 55 | +void *lua_getuserdata (lua_Object object); | |
| 56 | + | |
| 67 | 57 | |
| 68 | 58 | void lua_pushnil (void); |
| 69 | 59 | void lua_pushnumber (float n); |
| 70 | 60 | void lua_pushstring (char *s); |
| 71 | 61 | void lua_pushcfunction (lua_CFunction fn); |
| 72 | −void lua_pushusertag (void *u, int tag); | |
| 62 | +void lua_pushusertag (void *u, int tag); | |
| 73 | 63 | void lua_pushobject (lua_Object object); |
| 74 | 64 | |
| 65 | +lua_Object lua_pop (void); | |
| 66 | + | |
| 75 | 67 | lua_Object lua_getglobal (char *name); |
| 76 | −void lua_storeglobal (char *name); | |
| 68 | +lua_Object lua_rawgetglobal (char *name); | |
| 69 | +void lua_setglobal (char *name); /* In: value */ | |
| 70 | +void lua_rawsetglobal (char *name); /* In: value */ | |
| 77 | 71 | |
| 78 | −void lua_storesubscript (void); | |
| 79 | −lua_Object lua_getsubscript (void); | |
| 72 | +void lua_settable (void); /* In: table, index, value */ | |
| 73 | +void lua_rawsettable (void); /* In: table, index, value */ | |
| 74 | +lua_Object lua_gettable (void); /* In: table, index */ | |
| 75 | +lua_Object lua_rawgettable (void); /* In: table, index */ | |
| 80 | 76 | |
| 81 | −int lua_type (lua_Object object); | |
| 77 | +int lua_tag (lua_Object object); | |
| 82 | 78 | |
| 83 | 79 | |
| 84 | −int lua_ref (int lock); | |
| 80 | +int lua_ref (int lock); /* In: value */ | |
| 85 | 81 | lua_Object lua_getref (int ref); |
| 86 | −void lua_pushref (int ref); | |
| 87 | 82 | void lua_unref (int ref); |
| 88 | 83 | |
| 89 | 84 | lua_Object lua_createtable (void); |
| 90 | 85 | |
| 86 | +long lua_collectgarbage (long limit); | |
| 87 | + | |
| 91 | 88 | |
| 89 | +/* =============================================================== */ | |
| 92 | 90 | /* some useful macros */ |
| 93 | 91 | |
| 92 | +#define lua_call(name) lua_callfunction(lua_getglobal(name)) | |
| 93 | + | |
| 94 | +#define lua_pushref(ref) lua_pushobject(lua_getref(ref)) | |
| 95 | + | |
| 94 | 96 | #define lua_refobject(o,l) (lua_pushobject(o), lua_ref(l)) |
| 95 | 97 | |
| 96 | −#define lua_register(n,f) (lua_pushcfunction(f), lua_storeglobal(n)) | |
| 98 | +#define lua_register(n,f) (lua_pushcfunction(f), lua_setglobal(n)) | |
| 99 | + | |
| 100 | +#define lua_pushuserdata(u) lua_pushusertag(u, 0) | |
| 97 | 101 | |
| 98 | −#define lua_pushuserdata(u) lua_pushusertag(u, LUA_T_USERDATA) | |
| 99 | 102 | |
| 100 | 103 | |
| 101 | −/* for compatibility with old versions. Avoid using these macros */ | |
| 104 | + | |
| 105 | +/* ========================================================================== | |
| 106 | +** for compatibility with old versions. Avoid using these macros/functions | |
| 107 | +** If your program does not use any of these, define LUA_COMPAT2_5 to 0 | |
| 108 | +*/ | |
| 109 | + | |
| 110 | +#ifndef LUA_COMPAT2_5 | |
| 111 | +#define LUA_COMPAT2_5 1 | |
| 112 | +#endif | |
| 113 | + | |
| 114 | + | |
| 115 | +#if LUA_COMPAT2_5 | |
| 116 | + | |
| 117 | + | |
| 118 | +lua_Object lua_setfallback (char *event, lua_CFunction fallback); | |
| 119 | + | |
| 120 | +#define lua_storeglobal lua_setglobal | |
| 121 | +#define lua_type lua_tag | |
| 102 | 122 | |
| 103 | 123 | #define lua_lockobject(o) lua_refobject(o,1) |
| 104 | 124 | #define lua_lock() lua_ref(1) |
| @@ -108,9 +128,14 @@ lua_Object lua_createtable (void); · 3 unmodified lines | ||
| 108 | 128 | |
| 109 | 129 | #define lua_pushliteral(o) lua_pushstring(o) |
| 110 | 130 | |
| 111 | −#define lua_getindexed(o,n) (lua_pushobject(o), lua_pushnumber(n), lua_getsubscript()) | |
| 112 | −#define lua_getfield(o,f) (lua_pushobject(o), lua_pushliteral(f), lua_getsubscript()) | |
| 131 | +#define lua_getindexed(o,n) (lua_pushobject(o), lua_pushnumber(n), lua_gettable()) | |
| 132 | +#define lua_getfield(o,f) (lua_pushobject(o), lua_pushstring(f), lua_gettable()) | |
| 113 | 133 | |
| 114 | 134 | #define lua_copystring(o) (strdup(lua_getstring(o))) |
| 115 | 135 | |
| 136 | +#define lua_getsubscript lua_gettable | |
| 137 | +#define lua_storesubscript lua_settable | |
| 138 | + | |
| 139 | +#endif | |
| 140 | + | |
| 116 | 141 | #endif |
| @@ -2,7 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | ** Libraries to be used in LUA programs |
| 3 | 3 | ** Grupo de Tecnologia em Computacao Grafica |
| 4 | 4 | ** TeCGraf - PUC-Rio |
| 5 | −** $Id: lualib.h,v 1.10 1996/08/05 20:55:24 roberto Exp $ | |
| 5 | +** $Id: lualib.h,v 1.13 1997/03/26 22:23:15 roberto Exp $ | |
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | 8 | #ifndef lualib_h |
| @@ -15,24 +15,15 @@ void strlib_open (void); · 6 unmodified lines | ||
| 15 | 15 | void mathlib_open (void); |
| 16 | 16 | |
| 17 | 17 | |
| 18 | + | |
| 18 | 19 | /* auxiliar functions (private) */ |
| 19 | 20 | |
| 20 | −struct lua_reg { | |
| 21 | − char *name; | |
| 22 | − lua_CFunction func; | |
| 23 | −}; | |
| 24 | − | |
| 25 | −void luaI_openlib (struct lua_reg *l, int n); | |
| 26 | −void lua_arg_check(int cond, char *funcname); | |
| 27 | −char *lua_check_string (int numArg, char *funcname); | |
| 28 | −char *lua_opt_string (int numArg, char *def, char *funcname); | |
| 29 | −double lua_check_number (int numArg, char *funcname); | |
| 30 | −long lua_opt_number (int numArg, long def, char *funcname); | |
| 31 | 21 | char *luaI_addchar (int c); |
| 22 | +void luaI_emptybuff (void); | |
| 32 | 23 | void luaI_addquoted (char *s); |
| 33 | 24 | |
| 34 | −char *item_end (char *p); | |
| 35 | −int singlematch (int c, char *p); | |
| 25 | +char *luaL_item_end (char *p); | |
| 26 | +int luaL_singlematch (int c, char *p); | |
| 36 | 27 | |
| 37 | 28 | #endif |
| 38 | 29 | |
| @@ -4,19 +4,23 @@ LUA= .. · 3 unmodified lines | ||
| 4 | 4 | |
| 5 | 5 | include $(LUA)/config |
| 6 | 6 | |
| 7 | −OBJS= fallback.o\ | |
| 7 | +OBJS= auxlib.o\ | |
| 8 | + fallback.o\ | |
| 8 | 9 | func.o\ |
| 9 | 10 | hash.o\ |
| 10 | 11 | inout.o\ |
| 11 | 12 | lex.o\ |
| 12 | − mem.o\ | |
| 13 | + luamem.o\ | |
| 13 | 14 | opcode.o\ |
| 14 | 15 | parser.o\ |
| 15 | 16 | table.o\ |
| 16 | 17 | tree.o\ |
| 17 | − undump.o | |
| 18 | + undump.o\ | |
| 19 | + zio.o | |
| 18 | 20 | |
| 19 | −SRCS= fallback.c\ | |
| 21 | +SRCS= auxlib.c\ | |
| 22 | + auxlib.h\ | |
| 23 | + fallback.c\ | |
| 20 | 24 | fallback.h\ |
| 21 | 25 | func.c\ |
| 22 | 26 | func.h\ |
| @@ -26,8 +30,8 @@ SRCS= fallback.c\ · 3 unmodified lines | ||
| 26 | 30 | inout.h\ |
| 27 | 31 | lex.c\ |
| 28 | 32 | lex.h\ |
| 29 | − mem.c\ | |
| 30 | − mem.h\ | |
| 33 | + luamem.c\ | |
| 34 | + luamem.h\ | |
| 31 | 35 | opcode.c\ |
| 32 | 36 | opcode.h\ |
| 33 | 37 | parser.c\ |
| @@ -39,6 +43,8 @@ SRCS= fallback.c\ · 5 unmodified lines | ||
| 39 | 43 | types.h\ |
| 40 | 44 | undump.c\ |
| 41 | 45 | undump.h\ |
| 46 | + zio.c\ | |
| 47 | + zio.h\ | |
| 42 | 48 | lua.stx |
| 43 | 49 | |
| 44 | 50 | SLIB= $(LIB)/liblua.a |
| @@ -0,0 +1,81 @@ | ||
| 1 | +char *rcs_auxlib="$Id: auxlib.c,v 1.5 1997/04/14 15:30:03 roberto Exp $"; | |
| 2 | + | |
| 3 | +#include <stdio.h> | |
| 4 | +#include <stdarg.h> | |
| 5 | +#include <string.h> | |
| 6 | + | |
| 7 | +#include "lua.h" | |
| 8 | +#include "auxlib.h" | |
| 9 | +#include "luadebug.h" | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | +int luaI_findstring (char *name, char *list[]) | |
| 14 | +{ | |
| 15 | + int i; | |
| 16 | + for (i=0; list[i]; i++) | |
| 17 | + if (strcmp(list[i], name) == 0) | |
| 18 | + return i; | |
| 19 | + return -1; /* name not found */ | |
| 20 | +} | |
| 21 | + | |
| 22 | + | |
| 23 | +void luaL_arg_check(int cond, int numarg, char *extramsg) | |
| 24 | +{ | |
| 25 | + if (!cond) { | |
| 26 | + char *funcname; | |
| 27 | + lua_getobjname(lua_stackedfunction(0), &funcname); | |
| 28 | + if (funcname == NULL) | |
| 29 | + funcname = "???"; | |
| 30 | + if (extramsg == NULL) | |
| 31 | + luaL_verror("bad argument #%d to function `%s'", numarg, funcname); | |
| 32 | + else | |
| 33 | + luaL_verror("bad argument #%d to function `%s' (%s)", | |
| 34 | + numarg, funcname, extramsg); | |
| 35 | + } | |
| 36 | +} | |
| 37 | + | |
| 38 | +char *luaL_check_string (int numArg) | |
| 39 | +{ | |
| 40 | + lua_Object o = lua_getparam(numArg); | |
| 41 | + luaL_arg_check(lua_isstring(o), numArg, "string expected"); | |
| 42 | + return lua_getstring(o); | |
| 43 | +} | |
| 44 | + | |
| 45 | +char *luaL_opt_string (int numArg, char *def) | |
| 46 | +{ | |
| 47 | + return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : | |
| 48 | + luaL_check_string(numArg); | |
| 49 | +} | |
| 50 | + | |
| 51 | +double luaL_check_number (int numArg) | |
| 52 | +{ | |
| 53 | + lua_Object o = lua_getparam(numArg); | |
| 54 | + luaL_arg_check(lua_isnumber(o), numArg, "number expected"); | |
| 55 | + return lua_getnumber(o); | |
| 56 | +} | |
| 57 | + | |
| 58 | + | |
| 59 | +double luaL_opt_number (int numArg, double def) | |
| 60 | +{ | |
| 61 | + return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : | |
| 62 | + luaL_check_number(numArg); | |
| 63 | +} | |
| 64 | + | |
| 65 | +void luaL_openlib (struct luaL_reg *l, int n) | |
| 66 | +{ | |
| 67 | + int i; | |
| 68 | + for (i=0; i<n; i++) | |
| 69 | + lua_register(l[i].name, l[i].func); | |
| 70 | +} | |
| 71 | + | |
| 72 | + | |
| 73 | +void luaL_verror (char *fmt, ...) | |
| 74 | +{ | |
| 75 | + char buff[1000]; | |
| 76 | + va_list argp; | |
| 77 | + va_start(argp, fmt); | |
| 78 | + vsprintf(buff, fmt, argp); | |
| 79 | + va_end(argp); | |
| 80 | + lua_error(buff); | |
| 81 | +} | |
| @@ -0,0 +1,30 @@ | ||
| 1 | +/* | |
| 2 | +** $Id: auxlib.h,v 1.3 1997/04/07 14:48:53 roberto Exp $ | |
| 3 | +*/ | |
| 4 | + | |
| 5 | +#ifndef auxlib_h | |
| 6 | +#define auxlib_h | |
| 7 | + | |
| 8 | +#include "lua.h" | |
| 9 | + | |
| 10 | +struct luaL_reg { | |
| 11 | + char *name; | |
| 12 | + lua_CFunction func; | |
| 13 | +}; | |
| 14 | + | |
| 15 | +void luaL_openlib (struct luaL_reg *l, int n); | |
| 16 | +void luaL_arg_check(int cond, int numarg, char *extramsg); | |
| 17 | +char *luaL_check_string (int numArg); | |
| 18 | +char *luaL_opt_string (int numArg, char *def); | |
| 19 | +double luaL_check_number (int numArg); | |
| 20 | +double luaL_opt_number (int numArg, double def); | |
| 21 | +void luaL_verror (char *fmt, ...); | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | +/* -- private part (only for Lua modules */ | |
| 26 | + | |
| 27 | +int luaI_findstring (char *name, char *list[]); | |
| 28 | + | |
| 29 | + | |
| 30 | +#endif | |
| @@ -3,130 +3,37 @@ · 2 unmodified lines | ||
| 3 | 3 | ** TecCGraf - PUC-Rio |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char *rcs_fallback="$Id: fallback.c,v 1.25 1996/04/25 14:10:00 roberto Exp $"; | |
| 6 | +char *rcs_fallback="$Id: fallback.c,v 2.9 1997/06/23 18:27:53 roberto Exp $"; | |
| 7 | 7 | |
| 8 | 8 | #include <stdio.h> |
| 9 | 9 | #include <string.h> |
| 10 | 10 | |
| 11 | −#include "mem.h" | |
| 11 | +#include "auxlib.h" | |
| 12 | +#include "luamem.h" | |
| 12 | 13 | #include "fallback.h" |
| 13 | 14 | #include "opcode.h" |
| 14 | 15 | #include "lua.h" |
| 15 | 16 | #include "table.h" |
| 17 | +#include "tree.h" | |
| 18 | +#include "hash.h" | |
| 16 | 19 | |
| 17 | 20 | |
| 18 | −static void errorFB (void); | |
| 19 | −static void indexFB (void); | |
| 20 | −static void gettableFB (void); | |
| 21 | −static void arithFB (void); | |
| 22 | −static void concatFB (void); | |
| 23 | −static void orderFB (void); | |
| 24 | −static void GDFB (void); | |
| 25 | −static void funcFB (void); | |
| 26 | 21 | |
| 27 | − | |
| 28 | −/* | |
| 29 | −** Warning: This list must be in the same order as the #define's | |
| 30 | −*/ | |
| 31 | −struct FB luaI_fallBacks[] = { | |
| 32 | −{"error", {LUA_T_CFUNCTION, {errorFB}}, 1, 0}, | |
| 33 | −{"index", {LUA_T_CFUNCTION, {indexFB}}, 2, 1}, | |
| 34 | −{"gettable", {LUA_T_CFUNCTION, {gettableFB}}, 2, 1}, | |
| 35 | −{"arith", {LUA_T_CFUNCTION, {arithFB}}, 3, 1}, | |
| 36 | −{"order", {LUA_T_CFUNCTION, {orderFB}}, 3, 1}, | |
| 37 | −{"concat", {LUA_T_CFUNCTION, {concatFB}}, 2, 1}, | |
| 38 | −{"settable", {LUA_T_CFUNCTION, {gettableFB}}, 3, 0}, | |
| 39 | −{"gc", {LUA_T_CFUNCTION, {GDFB}}, 1, 0}, | |
| 40 | −{"function", {LUA_T_CFUNCTION, {funcFB}}, -1, -1}, | |
| 41 | − /* no fixed number of params or results */ | |
| 42 | −{"getglobal", {LUA_T_CFUNCTION, {indexFB}}, 1, 1} | |
| 43 | − /* same default behavior of index FB */ | |
| 44 | −}; | |
| 45 | − | |
| 46 | −#define N_FB (sizeof(luaI_fallBacks)/sizeof(struct FB)) | |
| 47 | − | |
| 48 | −void luaI_setfallback (void) | |
| 49 | −{ | |
| 50 | − int i; | |
| 51 | − char *name = lua_getstring(lua_getparam(1)); | |
| 52 | − lua_Object func = lua_getparam(2); | |
| 53 | − if (name == NULL || !lua_isfunction(func)) | |
| 54 | − lua_error("incorrect argument to function `setfallback'"); | |
| 55 | − for (i=0; i<N_FB; i++) | |
| 56 | − { | |
| 57 | − if (strcmp(luaI_fallBacks[i].kind, name) == 0) | |
| 58 | − { | |
| 59 | − luaI_pushobject(&luaI_fallBacks[i].function); | |
| 60 | − luaI_fallBacks[i].function = *luaI_Address(func); | |
| 61 | − return; | |
| 62 | − } | |
| 63 | − } | |
| 64 | − /* name not found */ | |
| 65 | − lua_error("incorrect argument to function `setfallback'"); | |
| 66 | −} | |
| 67 | − | |
| 68 | − | |
| 69 | −static void errorFB (void) | |
| 70 | −{ | |
| 71 | − lua_Object o = lua_getparam(1); | |
| 72 | − if (lua_isstring(o)) | |
| 73 | − fprintf (stderr, "lua: %s\n", lua_getstring(o)); | |
| 74 | − else | |
| 75 | − fprintf(stderr, "lua: unknown error\n"); | |
| 76 | −} | |
| 77 | − | |
| 78 | − | |
| 79 | −static void indexFB (void) | |
| 80 | −{ | |
| 81 | − lua_pushnil(); | |
| 82 | −} | |
| 83 | − | |
| 84 | − | |
| 85 | −static void gettableFB (void) | |
| 86 | −{ | |
| 87 | − lua_error("indexed expression not a table"); | |
| 88 | −} | |
| 89 | − | |
| 90 | − | |
| 91 | −static void arithFB (void) | |
| 92 | −{ | |
| 93 | − lua_error("unexpected type at conversion to number"); | |
| 94 | −} | |
| 95 | − | |
| 96 | −static void concatFB (void) | |
| 97 | −{ | |
| 98 | − lua_error("unexpected type at conversion to string"); | |
| 99 | −} | |
| 100 | − | |
| 101 | − | |
| 102 | −static void orderFB (void) | |
| 103 | −{ | |
| 104 | − lua_error("unexpected type at comparison"); | |
| 105 | −} | |
| 106 | − | |
| 107 | −static void GDFB (void) { } | |
| 108 | − | |
| 109 | −static void funcFB (void) | |
| 110 | −{ | |
| 111 | − lua_error("call expression not a function"); | |
| 112 | −} | |
| 113 | − | |
| 114 | − | |
| 115 | −/* | |
| 22 | +/* ------------------------------------------- | |
| 116 | 23 | ** Reference routines |
| 117 | 24 | */ |
| 118 | 25 | |
| 119 | 26 | static struct ref { |
| 120 | − Object o; | |
| 27 | + TObject o; | |
| 121 | 28 | enum {LOCK, HOLD, FREE, COLLECTED} status; |
| 122 | 29 | } *refArray = NULL; |
| 123 | 30 | static int refSize = 0; |
| 124 | 31 | |
| 125 | −int luaI_ref (Object *object, int lock) | |
| 32 | +int luaI_ref (TObject *object, int lock) | |
| 126 | 33 | { |
| 127 | 34 | int i; |
| 128 | 35 | int oldSize; |
| 129 | − if (tag(object) == LUA_T_NIL) | |
| 36 | + if (ttype(object) == LUA_T_NIL) | |
| 130 | 37 | return -1; /* special ref for nil */ |
| 131 | 38 | for (i=0; i<refSize; i++) |
| 132 | 39 | if (refArray[i].status == FREE) |
| @@ -151,9 +58,9 @@ void lua_unref (int ref) · 18 unmodified lines | ||
| 151 | 58 | } |
| 152 | 59 | |
| 153 | 60 | |
| 154 | −Object *luaI_getref (int ref) | |
| 61 | +TObject *luaI_getref (int ref) | |
| 155 | 62 | { |
| 156 | − static Object nul = {LUA_T_NIL, {0}}; | |
| 63 | + static TObject nul = {LUA_T_NIL, {0}}; | |
| 157 | 64 | if (ref == -1) |
| 158 | 65 | return &nul; |
| 159 | 66 | if (ref >= 0 && ref < refSize && |
| @@ -164,7 +71,7 @@ Object *luaI_getref (int ref) · 4 unmodified lines | ||
| 164 | 71 | } |
| 165 | 72 | |
| 166 | 73 | |
| 167 | −void luaI_travlock (int (*fn)(Object *)) | |
| 74 | +void luaI_travlock (int (*fn)(TObject *)) | |
| 168 | 75 | { |
| 169 | 76 | int i; |
| 170 | 77 | for (i=0; i<refSize; i++) |
| @@ -181,11 +88,281 @@ void luaI_invalidaterefs (void) · 10 unmodified lines | ||
| 181 | 88 | refArray[i].status = COLLECTED; |
| 182 | 89 | } |
| 183 | 90 | |
| 184 | −char *luaI_travfallbacks (int (*fn)(Object *)) | |
| 91 | + | |
| 92 | +/* ------------------------------------------- | |
| 93 | +* Internal Methods | |
| 94 | +*/ | |
| 95 | + | |
| 96 | +char *luaI_eventname[] = { /* ORDER IM */ | |
| 97 | + "gettable", "settable", "index", "getglobal", "setglobal", "add", | |
| 98 | + "sub", "mul", "div", "pow", "unm", "lt", "le", "gt", "ge", | |
| 99 | + "concat", "gc", "function", | |
| 100 | + NULL | |
| 101 | +}; | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | +static int luaI_checkevent (char *name, char *list[]) | |
| 106 | +{ | |
| 107 | + int e = luaI_findstring(name, list); | |
| 108 | + if (e < 0) | |
| 109 | + luaL_verror("`%s' is not a valid event name", name); | |
| 110 | + return e; | |
| 111 | +} | |
| 112 | + | |
| 113 | + | |
| 114 | +struct IM *luaI_IMtable = NULL; | |
| 115 | + | |
| 116 | +static int IMtable_size = 0; | |
| 117 | +static int last_tag = LUA_T_NIL; /* ORDER LUA_T */ | |
| 118 | + | |
| 119 | + | |
| 120 | +/* events in LUA_T_LINE are all allowed, since this is used as a | |
| 121 | +* 'placeholder' for "default" fallbacks | |
| 122 | +*/ | |
| 123 | +static char validevents[NUM_TYPES][IM_N] = { /* ORDER LUA_T, ORDER IM */ | |
| 124 | +{1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1}, /* LUA_T_USERDATA */ | |
| 125 | +{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, /* LUA_T_LINE */ | |
| 126 | +{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* LUA_T_CMARK */ | |
| 127 | +{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, /* LUA_T_MARK */ | |
| 128 | +{1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, /* LUA_T_CFUNCTION */ | |
| 129 | +{1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0}, /* LUA_T_FUNCTION */ | |
| 130 | +{0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, /* LUA_T_ARRAY */ | |
| 131 | +{1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, /* LUA_T_STRING */ | |
| 132 | +{1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, /* LUA_T_NUMBER */ | |
| 133 | +{1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} /* LUA_T_NIL */ | |
| 134 | +}; | |
| 135 | + | |
| 136 | +static int validevent (lua_Type t, int e) | |
| 137 | +{ /* ORDER LUA_T */ | |
| 138 | + return (t < LUA_T_NIL) ? 1 : validevents[-t][e]; | |
| 139 | +} | |
| 140 | + | |
| 141 | + | |
| 142 | +static void init_entry (int tag) | |
| 185 | 143 | { |
| 186 | 144 | int i; |
| 187 | − for (i=0; i<N_FB; i++) | |
| 188 | − if (fn(&luaI_fallBacks[i].function)) | |
| 189 | − return luaI_fallBacks[i].kind; | |
| 145 | + for (i=0; i<IM_N; i++) | |
| 146 | + ttype(luaI_getim(tag, i)) = LUA_T_NIL; | |
| 147 | +} | |
| 148 | + | |
| 149 | +void luaI_initfallbacks (void) | |
| 150 | +{ | |
| 151 | + if (luaI_IMtable == NULL) { | |
| 152 | + int i; | |
| 153 | + IMtable_size = NUM_TYPES+10; | |
| 154 | + luaI_IMtable = newvector(IMtable_size, struct IM); | |
| 155 | + for (i=LUA_T_NIL; i<=LUA_T_USERDATA; i++) | |
| 156 | + init_entry(i); | |
| 157 | + } | |
| 158 | +} | |
| 159 | + | |
| 160 | +int lua_newtag (void) | |
| 161 | +{ | |
| 162 | + --last_tag; | |
| 163 | + if ((-last_tag) >= IMtable_size) { | |
| 164 | + luaI_initfallbacks(); | |
| 165 | + IMtable_size = growvector(&luaI_IMtable, IMtable_size, | |
| 166 | + struct IM, memEM, MAX_INT); | |
| 167 | + } | |
| 168 | + init_entry(last_tag); | |
| 169 | + return last_tag; | |
| 170 | +} | |
| 171 | + | |
| 172 | + | |
| 173 | +static void checktag (int tag) | |
| 174 | +{ | |
| 175 | + if (!(last_tag <= tag && tag <= 0)) | |
| 176 | + luaL_verror("%d is not a valid tag", tag); | |
| 177 | +} | |
| 178 | + | |
| 179 | +void luaI_realtag (int tag) | |
| 180 | +{ | |
| 181 | + if (!(last_tag <= tag && tag < LUA_T_NIL)) | |
| 182 | + luaL_verror("tag %d is not result of `newtag'", tag); | |
| 183 | +} | |
| 184 | + | |
| 185 | + | |
| 186 | +void luaI_settag (int tag, TObject *o) | |
| 187 | +{ | |
| 188 | + luaI_realtag(tag); | |
| 189 | + switch (ttype(o)) { | |
| 190 | + case LUA_T_ARRAY: | |
| 191 | + o->value.a->htag = tag; | |
| 192 | + break; | |
| 193 | + case LUA_T_USERDATA: | |
| 194 | + o->value.ts->tag = tag; | |
| 195 | + break; | |
| 196 | + default: | |
| 197 | + luaL_verror("cannot change the tag of a %s", luaI_typenames[-ttype(o)]); | |
| 198 | + } | |
| 199 | +} | |
| 200 | + | |
| 201 | + | |
| 202 | +int luaI_efectivetag (TObject *o) | |
| 203 | +{ | |
| 204 | + lua_Type t = ttype(o); | |
| 205 | + if (t == LUA_T_USERDATA) { | |
| 206 | + int tag = o->value.ts->tag; | |
| 207 | + return (tag >= 0) ? LUA_T_USERDATA : tag; | |
| 208 | + } | |
| 209 | + else if (t == LUA_T_ARRAY) | |
| 210 | + return o->value.a->htag; | |
| 211 | + else return t; | |
| 212 | +} | |
| 213 | + | |
| 214 | + | |
| 215 | +void luaI_gettagmethod (void) | |
| 216 | +{ | |
| 217 | + int t = (int)luaL_check_number(1); | |
| 218 | + int e = luaI_checkevent(luaL_check_string(2), luaI_eventname); | |
| 219 | + checktag(t); | |
| 220 | + if (validevent(t, e)) | |
| 221 | + luaI_pushobject(luaI_getim(t,e)); | |
| 222 | +} | |
| 223 | + | |
| 224 | + | |
| 225 | +void luaI_settagmethod (void) | |
| 226 | +{ | |
| 227 | + int t = (int)luaL_check_number(1); | |
| 228 | + int e = luaI_checkevent(luaL_check_string(2), luaI_eventname); | |
| 229 | + lua_Object func = lua_getparam(3); | |
| 230 | + checktag(t); | |
| 231 | + if (!validevent(t, e)) | |
| 232 | + luaL_verror("cannot change internal method `%s' for tag %d", | |
| 233 | + luaI_eventname[e], t); | |
| 234 | + luaL_arg_check(lua_isnil(func) || lua_isfunction(func), | |
| 235 | + 3, "function expected"); | |
| 236 | + luaI_pushobject(luaI_getim(t,e)); | |
| 237 | + *luaI_getim(t, e) = *luaI_Address(func); | |
| 238 | +} | |
| 239 | + | |
| 240 | + | |
| 241 | +static void stderrorim (void) | |
| 242 | +{ | |
| 243 | + lua_Object s = lua_getparam(1); | |
| 244 | + if (lua_isstring(s)) | |
| 245 | + fprintf(stderr, "lua: %s\n", lua_getstring(s)); | |
| 246 | +} | |
| 247 | + | |
| 248 | +static TObject errorim = {LUA_T_CFUNCTION, {stderrorim}}; | |
| 249 | + | |
| 250 | + | |
| 251 | +TObject *luaI_geterrorim (void) | |
| 252 | +{ | |
| 253 | + return &errorim; | |
| 254 | +} | |
| 255 | + | |
| 256 | +void luaI_seterrormethod (void) | |
| 257 | +{ | |
| 258 | + lua_Object func = lua_getparam(1); | |
| 259 | + luaL_arg_check(lua_isnil(func) || lua_isfunction(func), | |
| 260 | + 1, "function expected"); | |
| 261 | + luaI_pushobject(&errorim); | |
| 262 | + errorim = *luaI_Address(func); | |
| 263 | +} | |
| 264 | + | |
| 265 | +char *luaI_travfallbacks (int (*fn)(TObject *)) | |
| 266 | +{ | |
| 267 | + int e; | |
| 268 | + if (fn(&errorim)) | |
| 269 | + return "error"; | |
| 270 | + for (e=IM_GETTABLE; e<=IM_FUNCTION; e++) { /* ORDER IM */ | |
| 271 | + int t; | |
| 272 | + for (t=0; t>=last_tag; t--) | |
| 273 | + if (fn(luaI_getim(t,e))) | |
| 274 | + return luaI_eventname[e]; | |
| 275 | + } | |
| 190 | 276 | return NULL; |
| 191 | 277 | } |
| 278 | + | |
| 279 | + | |
| 280 | +/* | |
| 281 | +* =================================================================== | |
| 282 | +* compatibility with old fallback system | |
| 283 | +*/ | |
| 284 | +#if LUA_COMPAT2_5 | |
| 285 | + | |
| 286 | +static void errorFB (void) | |
| 287 | +{ | |
| 288 | + lua_Object o = lua_getparam(1); | |
| 289 | + if (lua_isstring(o)) | |
| 290 | + fprintf (stderr, "lua: %s\n", lua_getstring(o)); | |
| 291 | + else | |
| 292 | + fprintf(stderr, "lua: unknown error\n"); | |
| 293 | +} | |
| 294 | + | |
| 295 | + | |
| 296 | +static void nilFB (void) { } | |
| 297 | + | |
| 298 | + | |
| 299 | +static void typeFB (void) | |
| 300 | +{ | |
| 301 | + lua_error("unexpected type"); | |
| 302 | +} | |
| 303 | + | |
| 304 | + | |
| 305 | +static void fillvalids (IMS e, TObject *func) | |
| 306 | +{ | |
| 307 | + int t; | |
| 308 | + for (t=LUA_T_NIL; t<=LUA_T_USERDATA; t++) | |
| 309 | + if (validevent(t, e)) | |
| 310 | + *luaI_getim(t, e) = *func; | |
| 311 | +} | |
| 312 | + | |
| 313 | + | |
| 314 | +void luaI_setfallback (void) | |
| 315 | +{ | |
| 316 | + static char *oldnames [] = {"error", "getglobal", "arith", "order", NULL}; | |
| 317 | + TObject oldfunc; | |
| 318 | + lua_CFunction replace; | |
| 319 | + char *name = luaL_check_string(1); | |
| 320 | + lua_Object func = lua_getparam(2); | |
| 321 | + luaI_initfallbacks(); | |
| 322 | + luaL_arg_check(lua_isfunction(func), 2, "function expected"); | |
| 323 | + switch (luaI_findstring(name, oldnames)) { | |
| 324 | + case 0: /* old error fallback */ | |
| 325 | + oldfunc = errorim; | |
| 326 | + errorim = *luaI_Address(func); | |
| 327 | + replace = errorFB; | |
| 328 | + break; | |
| 329 | + case 1: /* old getglobal fallback */ | |
| 330 | + oldfunc = *luaI_getim(LUA_T_NIL, IM_GETGLOBAL); | |
| 331 | + *luaI_getim(LUA_T_NIL, IM_GETGLOBAL) = *luaI_Address(func); | |
| 332 | + replace = nilFB; | |
| 333 | + break; | |
| 334 | + case 2: { /* old arith fallback */ | |
| 335 | + int i; | |
| 336 | + oldfunc = *luaI_getim(LUA_T_NUMBER, IM_POW); | |
| 337 | + for (i=IM_ADD; i<=IM_UNM; i++) /* ORDER IM */ | |
| 338 | + fillvalids(i, luaI_Address(func)); | |
| 339 | + replace = typeFB; | |
| 340 | + break; | |
| 341 | + } | |
| 342 | + case 3: { /* old order fallback */ | |
| 343 | + int i; | |
| 344 | + oldfunc = *luaI_getim(LUA_T_LINE, IM_LT); | |
| 345 | + for (i=IM_LT; i<=IM_GE; i++) /* ORDER IM */ | |
| 346 | + fillvalids(i, luaI_Address(func)); | |
| 347 | + replace = typeFB; | |
| 348 | + break; | |
| 349 | + } | |
| 350 | + default: { | |
| 351 | + int e; | |
| 352 | + if ((e = luaI_findstring(name, luaI_eventname)) >= 0) { | |
| 353 | + oldfunc = *luaI_getim(LUA_T_LINE, e); | |
| 354 | + fillvalids(e, luaI_Address(func)); | |
| 355 | + replace = (e == IM_GC || e == IM_INDEX) ? nilFB : typeFB; | |
| 356 | + } | |
| 357 | + else { | |
| 358 | + luaL_verror("`%s' is not a valid fallback name", name); | |
| 359 | + replace = NULL; /* to avoid warnings */ | |
| 360 | + } | |
| 361 | + } | |
| 362 | + } | |
| 363 | + if (oldfunc.ttype != LUA_T_NIL) | |
| 364 | + luaI_pushobject(&oldfunc); | |
| 365 | + else | |
| 366 | + lua_pushcfunction(replace); | |
| 367 | +} | |
| 368 | +#endif | |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* |
| 2 | −** $Id: fallback.h,v 1.13 1996/04/25 14:10:00 roberto Exp $ | |
| 2 | +** $Id: fallback.h,v 1.23 1997/04/24 22:59:57 roberto Exp $ | |
| 3 | 3 | */ |
| 4 | 4 | |
| 5 | 5 | #ifndef fallback_h |
| @@ -8,30 +8,58 @@ · 2 unmodified lines | ||
| 8 | 8 | #include "lua.h" |
| 9 | 9 | #include "opcode.h" |
| 10 | 10 | |
| 11 | −extern struct FB { | |
| 12 | − char *kind; | |
| 13 | − Object function; | |
| 14 | − int nParams; | |
| 15 | − int nResults; | |
| 16 | −} luaI_fallBacks[]; | |
| 17 | − | |
| 18 | −#define FB_ERROR 0 | |
| 19 | −#define FB_INDEX 1 | |
| 20 | −#define FB_GETTABLE 2 | |
| 21 | −#define FB_ARITH 3 | |
| 22 | −#define FB_ORDER 4 | |
| 23 | −#define FB_CONCAT 5 | |
| 24 | −#define FB_SETTABLE 6 | |
| 25 | −#define FB_GC 7 | |
| 26 | −#define FB_FUNCTION 8 | |
| 27 | −#define FB_GETGLOBAL 9 | |
| 11 | +/* | |
| 12 | +* WARNING: if you change the order of this enumeration, | |
| 13 | +* grep "ORDER IM" | |
| 14 | +*/ | |
| 15 | +typedef enum { | |
| 16 | + IM_GETTABLE = 0, | |
| 17 | + IM_SETTABLE, | |
| 18 | + IM_INDEX, | |
| 19 | + IM_GETGLOBAL, | |
| 20 | + IM_SETGLOBAL, | |
| 21 | + IM_ADD, | |
| 22 | + IM_SUB, | |
| 23 | + IM_MUL, | |
| 24 | + IM_DIV, | |
| 25 | + IM_POW, | |
| 26 | + IM_UNM, | |
| 27 | + IM_LT, | |
| 28 | + IM_LE, | |
| 29 | + IM_GT, | |
| 30 | + IM_GE, | |
| 31 | + IM_CONCAT, | |
| 32 | + IM_GC, | |
| 33 | + IM_FUNCTION | |
| 34 | +} IMS; | |
| 35 | + | |
| 36 | +#define IM_N 18 | |
| 37 | + | |
| 38 | + | |
| 39 | +extern struct IM { | |
| 40 | + TObject int_method[IM_N]; | |
| 41 | +} *luaI_IMtable; | |
| 42 | + | |
| 43 | +extern char *luaI_eventname[]; | |
| 44 | + | |
| 45 | +#define luaI_getim(tag,event) (&luaI_IMtable[-(tag)].int_method[event]) | |
| 46 | +#define luaI_getimbyObj(o,e) (luaI_getim(luaI_efectivetag(o),(e))) | |
| 28 | 47 | |
| 29 | 48 | void luaI_setfallback (void); |
| 30 | −int luaI_ref (Object *object, int lock); | |
| 31 | −Object *luaI_getref (int ref); | |
| 32 | −void luaI_travlock (int (*fn)(Object *)); | |
| 49 | +int luaI_ref (TObject *object, int lock); | |
| 50 | +TObject *luaI_getref (int ref); | |
| 51 | +void luaI_travlock (int (*fn)(TObject *)); | |
| 33 | 52 | void luaI_invalidaterefs (void); |
| 34 | −char *luaI_travfallbacks (int (*fn)(Object *)); | |
| 53 | +char *luaI_travfallbacks (int (*fn)(TObject *)); | |
| 54 | + | |
| 55 | +void luaI_settag (int tag, TObject *o); | |
| 56 | +void luaI_realtag (int tag); | |
| 57 | +TObject *luaI_geterrorim (void); | |
| 58 | +int luaI_efectivetag (TObject *o); | |
| 59 | +void luaI_settagmethod (void); | |
| 60 | +void luaI_gettagmethod (void); | |
| 61 | +void luaI_seterrormethod (void); | |
| 62 | +void luaI_initfallbacks (void); | |
| 35 | 63 | |
| 36 | 64 | #endif |
| 37 | 65 | |
| @@ -2,9 +2,10 @@ · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | #include "luadebug.h" |
| 4 | 4 | #include "table.h" |
| 5 | −#include "mem.h" | |
| 5 | +#include "luamem.h" | |
| 6 | 6 | #include "func.h" |
| 7 | 7 | #include "opcode.h" |
| 8 | +#include "inout.h" | |
| 8 | 9 | |
| 9 | 10 | |
| 10 | 11 | static TFunc *function_root = NULL; |
| @@ -23,7 +24,7 @@ void luaI_initTFunc (TFunc *f) · 12 unmodified lines | ||
| 23 | 24 | f->size = 0; |
| 24 | 25 | f->code = NULL; |
| 25 | 26 | f->lineDefined = 0; |
| 26 | − f->fileName = NULL; | |
| 27 | + f->fileName = lua_parsedfile; | |
| 27 | 28 | f->locvars = NULL; |
| 28 | 29 | } |
| 29 | 30 | |
| @@ -49,47 +50,56 @@ void luaI_freefunc (TFunc *f) · 19 unmodified lines | ||
| 49 | 50 | luaI_free (f); |
| 50 | 51 | } |
| 51 | 52 | |
| 53 | + | |
| 54 | +void luaI_funcfree (TFunc *l) | |
| 55 | +{ | |
| 56 | + while (l) { | |
| 57 | + TFunc *next = l->next; | |
| 58 | + luaI_freefunc(l); | |
| 59 | + l = next; | |
| 60 | + } | |
| 61 | +} | |
| 62 | + | |
| 52 | 63 | /* |
| 53 | 64 | ** Garbage collection function. |
| 54 | −** This function traverse the function list freeing unindexed functions | |
| 55 | 65 | */ |
| 56 | −Long luaI_funccollector (void) | |
| 66 | +TFunc *luaI_funccollector (long *acum) | |
| 57 | 67 | { |
| 58 | 68 | TFunc *curr = function_root; |
| 59 | 69 | TFunc *prev = NULL; |
| 60 | − Long counter = 0; | |
| 61 | − while (curr) | |
| 62 | − { | |
| 70 | + TFunc *frees = NULL; | |
| 71 | + long counter = 0; | |
| 72 | + while (curr) { | |
| 63 | 73 | TFunc *next = curr->next; |
| 64 | − if (!curr->marked) | |
| 65 | − { | |
| 74 | + if (!curr->marked) { | |
| 66 | 75 | if (prev == NULL) |
| 67 | 76 | function_root = next; |
| 68 | 77 | else |
| 69 | 78 | prev->next = next; |
| 70 | − luaI_freefunc (curr); | |
| 79 | + curr->next = frees; | |
| 80 | + frees = curr; | |
| 71 | 81 | ++counter; |
| 72 | 82 | } |
| 73 | − else | |
| 74 | − { | |
| 83 | + else { | |
| 75 | 84 | curr->marked = 0; |
| 76 | 85 | prev = curr; |
| 77 | 86 | } |
| 78 | 87 | curr = next; |
| 79 | 88 | } |
| 80 | − return counter; | |
| 89 | + *acum += counter; | |
| 90 | + return frees; | |
| 81 | 91 | } |
| 82 | 92 | |
| 83 | 93 | |
| 84 | 94 | void lua_funcinfo (lua_Object func, char **filename, int *linedefined) |
| 85 | 95 | { |
| 86 | − Object *f = luaI_Address(func); | |
| 87 | − if (f->tag == LUA_T_MARK || f->tag == LUA_T_FUNCTION) | |
| 96 | + TObject *f = luaI_Address(func); | |
| 97 | + if (f->ttype == LUA_T_MARK || f->ttype == LUA_T_FUNCTION) | |
| 88 | 98 | { |
| 89 | 99 | *filename = f->value.tf->fileName; |
| 90 | 100 | *linedefined = f->value.tf->lineDefined; |
| 91 | 101 | } |
| 92 | − else if (f->tag == LUA_T_CMARK || f->tag == LUA_T_CFUNCTION) | |
| 102 | + else if (f->ttype == LUA_T_CMARK || f->ttype == LUA_T_CFUNCTION) | |
| 93 | 103 | { |
| 94 | 104 | *filename = "(C)"; |
| 95 | 105 | *linedefined = -1; |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* |
| 2 | −** $Id: func.h,v 1.8 1996/03/14 15:54:20 roberto Exp $ | |
| 2 | +** $Id: func.h,v 1.9 1997/05/14 18:38:29 roberto Exp $ | |
| 3 | 3 | */ |
| 4 | 4 | |
| 5 | 5 | #ifndef func_h |
| @@ -30,7 +30,8 @@ typedef struct TFunc · 24 unmodified lines | ||
| 30 | 30 | LocVar *locvars; |
| 31 | 31 | } TFunc; |
| 32 | 32 | |
| 33 | −Long luaI_funccollector (void); | |
| 33 | +TFunc *luaI_funccollector (long *cont); | |
| 34 | +void luaI_funcfree (TFunc *l); | |
| 34 | 35 | void luaI_insertfunction (TFunc *f); |
| 35 | 36 | |
| 36 | 37 | void luaI_initTFunc (TFunc *f); |
| @@ -3,14 +3,15 @@ · 2 unmodified lines | ||
| 3 | 3 | ** hash manager for lua |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char *rcs_hash="$Id: hash.c,v 2.32 1996/11/18 13:48:44 roberto Exp $"; | |
| 6 | +char *rcs_hash="$Id: hash.c,v 2.43 1997/05/14 18:38:29 roberto Exp $"; | |
| 7 | 7 | |
| 8 | 8 | |
| 9 | −#include "mem.h" | |
| 9 | +#include "luamem.h" | |
| 10 | 10 | #include "opcode.h" |
| 11 | 11 | #include "hash.h" |
| 12 | 12 | #include "table.h" |
| 13 | 13 | #include "lua.h" |
| 14 | +#include "auxlib.h" | |
| 14 | 15 | |
| 15 | 16 | |
| 16 | 17 | #define nhash(t) ((t)->nhash) |
| @@ -24,13 +25,15 @@ char *rcs_hash="$Id: hash.c,v 2.32 1996/11/18 13:48:44 roberto Exp $"; · 7 unmodified lines | ||
| 24 | 25 | |
| 25 | 26 | #define REHASH_LIMIT 0.70 /* avoid more than this % full */ |
| 26 | 27 | |
| 28 | +#define TagDefault LUA_T_ARRAY; | |
| 29 | + | |
| 27 | 30 | |
| 28 | 31 | static Hash *listhead = NULL; |
| 29 | 32 | |
| 30 | 33 | |
| 31 | 34 | /* hash dimensions values */ |
| 32 | 35 | static Long dimensions[] = |
| 33 | − {3L, 5L, 7L, 11L, 23L, 47L, 97L, 197L, 397L, 797L, 1597L, 3203L, 6421L, | |
| 36 | + {5L, 11L, 23L, 47L, 97L, 197L, 397L, 797L, 1597L, 3203L, 6421L, | |
| 34 | 37 | 12853L, 25717L, 51437L, 102811L, 205619L, 411233L, 822433L, |
| 35 | 38 | 1644817L, 3289613L, 6579211L, 13158023L, MAX_INT}; |
| 36 | 39 | |
| @@ -46,16 +49,32 @@ int luaI_redimension (int nhash) · 9 unmodified lines | ||
| 46 | 49 | return 0; /* to avoid warnings */ |
| 47 | 50 | } |
| 48 | 51 | |
| 49 | −static int hashindex (Hash *t, Object *ref) /* hash function */ | |
| 52 | + | |
| 53 | +int lua_equalObj (TObject *t1, TObject *t2) | |
| 54 | +{ | |
| 55 | + if (ttype(t1) != ttype(t2)) return 0; | |
| 56 | + switch (ttype(t1)) | |
| 57 | + { | |
| 58 | + case LUA_T_NIL: return 1; | |
| 59 | + case LUA_T_NUMBER: return nvalue(t1) == nvalue(t2); | |
| 60 | + case LUA_T_STRING: case LUA_T_USERDATA: return svalue(t1) == svalue(t2); | |
| 61 | + case LUA_T_ARRAY: return avalue(t1) == avalue(t2); | |
| 62 | + case LUA_T_FUNCTION: return t1->value.tf == t2->value.tf; | |
| 63 | + case LUA_T_CFUNCTION: return fvalue(t1) == fvalue(t2); | |
| 64 | + default: | |
| 65 | + lua_error("internal error in `lua_equalObj'"); | |
| 66 | + return 0; /* UNREACHEABLE */ | |
| 67 | + } | |
| 68 | +} | |
| 69 | + | |
| 70 | + | |
| 71 | +static long int hashindex (TObject *ref) | |
| 50 | 72 | { |
| 51 | 73 | long int h; |
| 52 | − switch (tag(ref)) { | |
| 53 | − case LUA_T_NIL: | |
| 54 | − lua_error ("unexpected type to index table"); | |
| 55 | − h = 0; /* UNREACHEABLE */ | |
| 74 | + switch (ttype(ref)) { | |
| 56 | 75 | case LUA_T_NUMBER: |
| 57 | 76 | h = (long int)nvalue(ref); break; |
| 58 | − case LUA_T_STRING: | |
| 77 | + case LUA_T_STRING: case LUA_T_USERDATA: | |
| 59 | 78 | h = tsvalue(ref)->hash; break; |
| 60 | 79 | case LUA_T_FUNCTION: |
| 61 | 80 | h = (IntPoint)ref->value.tf; break; |
| @@ -63,38 +82,29 @@ static int hashindex (Hash *t, Object *ref) /* hash function */ · 1 unmodified line | ||
| 63 | 82 | h = (IntPoint)fvalue(ref); break; |
| 64 | 83 | case LUA_T_ARRAY: |
| 65 | 84 | h = (IntPoint)avalue(ref); break; |
| 66 | − default: /* user data */ | |
| 67 | − h = (IntPoint)uvalue(ref); break; | |
| 85 | + default: | |
| 86 | + lua_error ("unexpected type to index table"); | |
| 87 | + h = 0; /* UNREACHEABLE */ | |
| 68 | 88 | } |
| 69 | 89 | if (h < 0) h = -h; |
| 70 | − return h%nhash(t); /* make it a valid index */ | |
| 90 | + return h; | |
| 71 | 91 | } |
| 72 | 92 | |
| 73 | −int lua_equalObj (Object *t1, Object *t2) | |
| 93 | + | |
| 94 | +static int present (Hash *t, TObject *key) | |
| 74 | 95 | { |
| 75 | − if (tag(t1) != tag(t2)) return 0; | |
| 76 | − switch (tag(t1)) | |
| 77 | − { | |
| 78 | − case LUA_T_NIL: return 1; | |
| 79 | − case LUA_T_NUMBER: return nvalue(t1) == nvalue(t2); | |
| 80 | − case LUA_T_STRING: return svalue(t1) == svalue(t2); | |
| 81 | − case LUA_T_ARRAY: return avalue(t1) == avalue(t2); | |
| 82 | − case LUA_T_FUNCTION: return t1->value.tf == t2->value.tf; | |
| 83 | − case LUA_T_CFUNCTION: return fvalue(t1) == fvalue(t2); | |
| 84 | − default: return uvalue(t1) == uvalue(t2); | |
| 96 | + long int h = hashindex(key); | |
| 97 | + int tsize = nhash(t); | |
| 98 | + int h1 = h%tsize; | |
| 99 | + TObject *rf = ref(node(t, h1)); | |
| 100 | + if (ttype(rf) != LUA_T_NIL && !lua_equalObj(key, rf)) { | |
| 101 | + int h2 = h%(tsize-2) + 1; | |
| 102 | + do { | |
| 103 | + h1 = (h1+h2)%tsize; | |
| 104 | + rf = ref(node(t, h1)); | |
| 105 | + } while (ttype(rf) != LUA_T_NIL && !lua_equalObj(key, rf)); | |
| 85 | 106 | } |
| 86 | −} | |
| 87 | − | |
| 88 | −static int present (Hash *t, Object *ref) | |
| 89 | −{ | |
| 90 | − int h = hashindex(t, ref); | |
| 91 | − while (tag(ref(node(t, h))) != LUA_T_NIL) | |
| 92 | − { | |
| 93 | − if (lua_equalObj(ref, ref(node(t, h)))) | |
| 94 | − return h; | |
| 95 | − h = (h+1) % nhash(t); | |
| 96 | − } | |
| 97 | − return h; | |
| 107 | + return h1; | |
| 98 | 108 | } |
| 99 | 109 | |
| 100 | 110 | |
| @@ -106,7 +116,7 @@ static Node *hashnodecreate (int nhash) · 5 unmodified lines | ||
| 106 | 116 | int i; |
| 107 | 117 | Node *v = newvector (nhash, Node); |
| 108 | 118 | for (i=0; i<nhash; i++) |
| 109 | − tag(ref(&v[i])) = LUA_T_NIL; | |
| 119 | + ttype(ref(&v[i])) = LUA_T_NIL; | |
| 110 | 120 | return v; |
| 111 | 121 | } |
| 112 | 122 | |
| @@ -121,6 +131,7 @@ static Hash *hashcreate (int nhash) · 8 unmodified lines | ||
| 121 | 131 | nhash(t) = nhash; |
| 122 | 132 | nuse(t) = 0; |
| 123 | 133 | markarray(t) = 0; |
| 134 | + t->htag = TagDefault; | |
| 124 | 135 | return t; |
| 125 | 136 | } |
| 126 | 137 | |
| @@ -146,7 +157,7 @@ void lua_hashmark (Hash *h) · 19 unmodified lines | ||
| 146 | 157 | for (i=0; i<nhash(h); i++) |
| 147 | 158 | { |
| 148 | 159 | Node *n = node(h,i); |
| 149 | − if (tag(ref(n)) != LUA_T_NIL) | |
| 160 | + if (ttype(ref(n)) != LUA_T_NIL) | |
| 150 | 161 | { |
| 151 | 162 | lua_markobject(&n->ref); |
| 152 | 163 | lua_markobject(&n->val); |
| @@ -156,49 +167,50 @@ void lua_hashmark (Hash *h) · 3 unmodified lines | ||
| 156 | 167 | } |
| 157 | 168 | |
| 158 | 169 | |
| 159 | −static void call_fallbacks (void) | |
| 170 | +void luaI_hashcallIM (Hash *l) | |
| 160 | 171 | { |
| 161 | − Hash *curr_array; | |
| 162 | − Object t; | |
| 163 | − tag(&t) = LUA_T_ARRAY; | |
| 164 | − for (curr_array = listhead; curr_array; curr_array = curr_array->next) | |
| 165 | − if (markarray(curr_array) != 1) | |
| 166 | − { | |
| 167 | − avalue(&t) = curr_array; | |
| 168 | − luaI_gcFB(&t); | |
| 169 | − } | |
| 170 | − tag(&t) = LUA_T_NIL; | |
| 171 | − luaI_gcFB(&t); /* end of list */ | |
| 172 | + TObject t; | |
| 173 | + ttype(&t) = LUA_T_ARRAY; | |
| 174 | + for (; l; l=l->next) { | |
| 175 | + avalue(&t) = l; | |
| 176 | + luaI_gcIM(&t); | |
| 177 | + } | |
| 172 | 178 | } |
| 173 | 179 | |
| 174 | − | |
| 175 | −/* | |
| 176 | −** Garbage collection to arrays | |
| 177 | −** Delete all unmarked arrays. | |
| 178 | −*/ | |
| 179 | −Long lua_hashcollector (void) | |
| 180 | + | |
| 181 | +void luaI_hashfree (Hash *frees) | |
| 180 | 182 | { |
| 181 | − Hash *curr_array = listhead, *prev = NULL; | |
| 182 | − Long counter = 0; | |
| 183 | − call_fallbacks(); | |
| 184 | − while (curr_array != NULL) | |
| 185 | − { | |
| 186 | − Hash *next = curr_array->next; | |
| 187 | − if (markarray(curr_array) != 1) | |
| 188 | − { | |
| 189 | − if (prev == NULL) listhead = next; | |
| 190 | − else prev->next = next; | |
| 191 | − hashdelete(curr_array); | |
| 192 | − ++counter; | |
| 183 | + while (frees) { | |
| 184 | + Hash *next = frees->next; | |
| 185 | + hashdelete(frees); | |
| 186 | + frees = next; | |
| 193 | 187 | } |
| 194 | − else | |
| 195 | − { | |
| 196 | − markarray(curr_array) = 0; | |
| 197 | − prev = curr_array; | |
| 188 | +} | |
| 189 | + | |
| 190 | + | |
| 191 | +Hash *luaI_hashcollector (long *acum) | |
| 192 | +{ | |
| 193 | + Hash *curr_array = listhead, *prev = NULL, *frees = NULL; | |
| 194 | + long counter = 0; | |
| 195 | + while (curr_array != NULL) { | |
| 196 | + Hash *next = curr_array->next; | |
| 197 | + if (markarray(curr_array) != 1) { | |
| 198 | + if (prev == NULL) | |
| 199 | + listhead = next; | |
| 200 | + else | |
| 201 | + prev->next = next; | |
| 202 | + curr_array->next = frees; | |
| 203 | + frees = curr_array; | |
| 204 | + ++counter; | |
| 205 | + } | |
| 206 | + else { | |
| 207 | + markarray(curr_array) = 0; | |
| 208 | + prev = curr_array; | |
| 209 | + } | |
| 210 | + curr_array = next; | |
| 198 | 211 | } |
| 199 | − curr_array = next; | |
| 200 | − } | |
| 201 | − return counter; | |
| 212 | + *acum += counter; | |
| 213 | + return frees; | |
| 202 | 214 | } |
| 203 | 215 | |
| 204 | 216 | |
| @@ -220,32 +232,45 @@ Hash *lua_createarray (int nhash) · 15 unmodified lines | ||
| 220 | 232 | |
| 221 | 233 | |
| 222 | 234 | /* |
| 223 | −** Re-hash | |
| 235 | +** Rehash: | |
| 236 | +** Check if table has deleted slots. It it has, it does not need to | |
| 237 | +** grow, since rehash will reuse them. | |
| 224 | 238 | */ |
| 239 | +static int emptyslots (Hash *t) | |
| 240 | +{ | |
| 241 | + int i; | |
| 242 | + for (i=nhash(t)-1; i>=0; i--) { | |
| 243 | + Node *n = node(t, i); | |
| 244 | + if (ttype(ref(n)) != LUA_T_NIL && ttype(val(n)) == LUA_T_NIL) | |
| 245 | + return 1; | |
| 246 | + } | |
| 247 | + return 0; | |
| 248 | +} | |
| 249 | + | |
| 225 | 250 | static void rehash (Hash *t) |
| 226 | 251 | { |
| 227 | − int i; | |
| 228 | − int nold = nhash(t); | |
| 229 | − Node *vold = nodevector(t); | |
| 230 | − nhash(t) = luaI_redimension(nhash(t)); | |
| 231 | − nodevector(t) = hashnodecreate(nhash(t)); | |
| 232 | − for (i=0; i<nold; i++) | |
| 233 | − { | |
| 234 | − Node *n = vold+i; | |
| 235 | − if (tag(ref(n)) != LUA_T_NIL && tag(val(n)) != LUA_T_NIL) | |
| 236 | − *node(t, present(t, ref(n))) = *n; /* copy old node to new hahs */ | |
| 237 | − } | |
| 238 | − luaI_free(vold); | |
| 252 | + int nold = nhash(t); | |
| 253 | + Node *vold = nodevector(t); | |
| 254 | + int i; | |
| 255 | + if (!emptyslots(t)) | |
| 256 | + nhash(t) = luaI_redimension(nhash(t)); | |
| 257 | + nodevector(t) = hashnodecreate(nhash(t)); | |
| 258 | + for (i=0; i<nold; i++) { | |
| 259 | + Node *n = vold+i; | |
| 260 | + if (ttype(ref(n)) != LUA_T_NIL && ttype(val(n)) != LUA_T_NIL) | |
| 261 | + *node(t, present(t, ref(n))) = *n; /* copy old node to new hash */ | |
| 262 | + } | |
| 263 | + luaI_free(vold); | |
| 239 | 264 | } |
| 240 | 265 | |
| 241 | 266 | /* |
| 242 | 267 | ** If the hash node is present, return its pointer, otherwise return |
| 243 | 268 | ** null. |
| 244 | 269 | */ |
| 245 | −Object *lua_hashget (Hash *t, Object *ref) | |
| 270 | +TObject *lua_hashget (Hash *t, TObject *ref) | |
| 246 | 271 | { |
| 247 | 272 | int h = present(t, ref); |
| 248 | − if (tag(ref(node(t, h))) != LUA_T_NIL) return val(node(t, h)); | |
| 273 | + if (ttype(ref(node(t, h))) != LUA_T_NIL) return val(node(t, h)); | |
| 249 | 274 | else return NULL; |
| 250 | 275 | } |
| 251 | 276 | |
| @@ -254,25 +279,19 @@ Object *lua_hashget (Hash *t, Object *ref) · 2 unmodified lines | ||
| 254 | 279 | ** If the hash node is present, return its pointer, otherwise create a new |
| 255 | 280 | ** node for the given reference and also return its pointer. |
| 256 | 281 | */ |
| 257 | −Object *lua_hashdefine (Hash *t, Object *ref) | |
| 282 | +TObject *lua_hashdefine (Hash *t, TObject *ref) | |
| 258 | 283 | { |
| 259 | − int h; | |
| 260 | − Node *n; | |
| 261 | − h = present(t, ref); | |
| 262 | − n = node(t, h); | |
| 263 | − if (tag(ref(n)) == LUA_T_NIL) | |
| 264 | − { | |
| 265 | − nuse(t)++; | |
| 266 | − if ((float)nuse(t) > (float)nhash(t)*REHASH_LIMIT) | |
| 267 | − { | |
| 268 | − rehash(t); | |
| 269 | − h = present(t, ref); | |
| 270 | − n = node(t, h); | |
| 284 | + Node *n = node(t, present(t, ref)); | |
| 285 | + if (ttype(ref(n)) == LUA_T_NIL) { | |
| 286 | + nuse(t)++; | |
| 287 | + if ((float)nuse(t) > (float)nhash(t)*REHASH_LIMIT) { | |
| 288 | + rehash(t); | |
| 289 | + n = node(t, present(t, ref)); | |
| 290 | + } | |
| 291 | + *ref(n) = *ref; | |
| 292 | + ttype(val(n)) = LUA_T_NIL; | |
| 271 | 293 | } |
| 272 | − *ref(n) = *ref; | |
| 273 | − tag(val(n)) = LUA_T_NIL; | |
| 274 | − } | |
| 275 | − return (val(n)); | |
| 294 | + return (val(n)); | |
| 276 | 295 | } |
| 277 | 296 | |
| 278 | 297 | |
| @@ -284,36 +303,30 @@ Object *lua_hashdefine (Hash *t, Object *ref) · 5 unmodified lines | ||
| 284 | 303 | */ |
| 285 | 304 | static void hashnext (Hash *t, int i) |
| 286 | 305 | { |
| 287 | − if (i >= nhash(t)) | |
| 288 | − return; | |
| 289 | − while (tag(ref(node(t,i))) == LUA_T_NIL || tag(val(node(t,i))) == LUA_T_NIL) | |
| 290 | − { | |
| 291 | − if (++i >= nhash(t)) | |
| 292 | − return; | |
| 293 | − } | |
| 294 | − luaI_pushobject(ref(node(t,i))); | |
| 295 | − luaI_pushobject(val(node(t,i))); | |
| 306 | + Node *n; | |
| 307 | + int tsize = nhash(t); | |
| 308 | + if (i >= tsize) | |
| 309 | + return; | |
| 310 | + n = node(t, i); | |
| 311 | + while (ttype(ref(n)) == LUA_T_NIL || ttype(val(n)) == LUA_T_NIL) { | |
| 312 | + if (++i >= tsize) | |
| 313 | + return; | |
| 314 | + n = node(t, i); | |
| 315 | + } | |
| 316 | + luaI_pushobject(ref(node(t,i))); | |
| 317 | + luaI_pushobject(val(node(t,i))); | |
| 296 | 318 | } |
| 297 | 319 | |
| 298 | 320 | void lua_next (void) |
| 299 | 321 | { |
| 300 | − Hash *t; | |
| 301 | − lua_Object o = lua_getparam(1); | |
| 302 | − lua_Object r = lua_getparam(2); | |
| 303 | − if (o == LUA_NOOBJECT || r == LUA_NOOBJECT) | |
| 304 | − lua_error ("too few arguments to function `next'"); | |
| 305 | − if (lua_getparam(3) != LUA_NOOBJECT) | |
| 306 | − lua_error ("too many arguments to function `next'"); | |
| 307 | − if (!lua_istable(o)) | |
| 308 | − lua_error ("first argument of function `next' is not a table"); | |
| 309 | − t = avalue(luaI_Address(o)); | |
| 310 | − if (lua_isnil(r)) | |
| 311 | − { | |
| 312 | − hashnext(t, 0); | |
| 313 | − } | |
| 314 | − else | |
| 315 | − { | |
| 316 | − int h = present (t, luaI_Address(r)); | |
| 317 | − hashnext(t, h+1); | |
| 318 | − } | |
| 322 | + Hash *t; | |
| 323 | + lua_Object o = lua_getparam(1); | |
| 324 | + lua_Object r = lua_getparam(2); | |
| 325 | + luaL_arg_check(lua_istable(o), 1, "table expected"); | |
| 326 | + luaL_arg_check(r != LUA_NOOBJECT, 2, "value expected"); | |
| 327 | + t = avalue(luaI_Address(o)); | |
| 328 | + if (lua_isnil(r)) | |
| 329 | + hashnext(t, 0); | |
| 330 | + else | |
| 331 | + hashnext(t, present(t, luaI_Address(r))+1); | |
| 319 | 332 | } |
| @@ -1,7 +1,7 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** hash.h |
| 3 | 3 | ** hash manager for lua |
| 4 | −** $Id: hash.h,v 2.12 1996/05/06 14:30:27 roberto Exp $ | |
| 4 | +** $Id: hash.h,v 2.16 1997/05/14 18:38:29 roberto Exp $ | |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | 7 | #ifndef hash_h |
| @@ -10,29 +10,30 @@ · 2 unmodified lines | ||
| 10 | 10 | #include "types.h" |
| 11 | 11 | #include "opcode.h" |
| 12 | 12 | |
| 13 | −typedef struct node | |
| 14 | −{ | |
| 15 | − Object ref; | |
| 16 | − Object val; | |
| 13 | +typedef struct node { | |
| 14 | + TObject ref; | |
| 15 | + TObject val; | |
| 17 | 16 | } Node; |
| 18 | 17 | |
| 19 | −typedef struct Hash | |
| 20 | −{ | |
| 21 | − struct Hash *next; | |
| 22 | − Node *node; | |
| 23 | − int nhash; | |
| 24 | − int nuse; | |
| 25 | − char mark; | |
| 18 | +typedef struct Hash { | |
| 19 | + struct Hash *next; | |
| 20 | + Node *node; | |
| 21 | + int nhash; | |
| 22 | + int nuse; | |
| 23 | + int htag; | |
| 24 | + char mark; | |
| 26 | 25 | } Hash; |
| 27 | 26 | |
| 28 | 27 | |
| 29 | −int lua_equalObj (Object *t1, Object *t2); | |
| 28 | +int lua_equalObj (TObject *t1, TObject *t2); | |
| 30 | 29 | int luaI_redimension (int nhash); |
| 31 | 30 | Hash *lua_createarray (int nhash); |
| 32 | 31 | void lua_hashmark (Hash *h); |
| 33 | −Long lua_hashcollector (void); | |
| 34 | −Object *lua_hashget (Hash *t, Object *ref); | |
| 35 | −Object *lua_hashdefine (Hash *t, Object *ref); | |
| 32 | +Hash *luaI_hashcollector (long *count); | |
| 33 | +void luaI_hashcallIM (Hash *l); | |
| 34 | +void luaI_hashfree (Hash *frees); | |
| 35 | +TObject *lua_hashget (Hash *t, TObject *ref); | |
| 36 | +TObject *lua_hashdefine (Hash *t, TObject *ref); | |
| 36 | 37 | void lua_next (void); |
| 37 | 38 | |
| 38 | 39 | #endif |
| @@ -5,18 +5,24 @@ · 4 unmodified lines | ||
| 5 | 5 | ** Also provides some predefined lua functions. |
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | −char *rcs_inout="$Id: inout.c,v 2.43 1996/09/25 12:57:22 roberto Exp $"; | |
| 8 | +char *rcs_inout="$Id: inout.c,v 2.69 1997/06/27 22:38:49 roberto Exp $"; | |
| 9 | 9 | |
| 10 | 10 | #include <stdio.h> |
| 11 | 11 | #include <string.h> |
| 12 | 12 | |
| 13 | +#include "auxlib.h" | |
| 14 | +#include "fallback.h" | |
| 15 | +#include "hash.h" | |
| 16 | +#include "inout.h" | |
| 13 | 17 | #include "lex.h" |
| 18 | +#include "lua.h" | |
| 19 | +#include "luamem.h" | |
| 20 | +#include "luamem.h" | |
| 14 | 21 | #include "opcode.h" |
| 15 | −#include "inout.h" | |
| 16 | 22 | #include "table.h" |
| 17 | 23 | #include "tree.h" |
| 18 | −#include "lua.h" | |
| 19 | −#include "mem.h" | |
| 24 | +#include "undump.h" | |
| 25 | +#include "zio.h" | |
| 20 | 26 | |
| 21 | 27 | |
| 22 | 28 | /* Exported variables */ |
| @@ -24,92 +30,93 @@ Word lua_linenumber; · 1 unmodified line | ||
| 24 | 30 | char *lua_parsedfile; |
| 25 | 31 | |
| 26 | 32 | |
| 27 | −static FILE *fp; | |
| 28 | −static char *st; | |
| 33 | +char *luaI_typenames[] = { /* ORDER LUA_T */ | |
| 34 | + "userdata", "line", "cmark", "mark", "function", | |
| 35 | + "function", "table", "string", "number", "nil", | |
| 36 | + NULL | |
| 37 | +}; | |
| 29 | 38 | |
| 30 | −/* | |
| 31 | −** Function to get the next character from the input file | |
| 32 | −*/ | |
| 33 | −static int fileinput (void) | |
| 34 | −{ | |
| 35 | − int c = fgetc(fp); | |
| 36 | − return (c == EOF) ? 0 : c; | |
| 37 | −} | |
| 38 | 39 | |
| 39 | −/* | |
| 40 | −** Function to get the next character from the input string | |
| 41 | −*/ | |
| 42 | −static int stringinput (void) | |
| 40 | + | |
| 41 | +void luaI_setparsedfile (char *name) | |
| 43 | 42 | { |
| 44 | − return *st++; | |
| 43 | + lua_parsedfile = luaI_createfixedstring(name)->str; | |
| 45 | 44 | } |
| 46 | 45 | |
| 47 | −/* | |
| 48 | −** Function to open a file to be input unit. | |
| 49 | −** Return the file. | |
| 50 | −*/ | |
| 51 | −FILE *lua_openfile (char *fn) | |
| 46 | + | |
| 47 | +int lua_doFILE (FILE *f, int bin) | |
| 52 | 48 | { |
| 53 | − lua_setinput (fileinput); | |
| 54 | − if (fn == NULL) | |
| 55 | − { | |
| 56 | − fp = stdin; | |
| 57 | − fn = "(stdin)"; | |
| 58 | − } | |
| 59 | − else | |
| 60 | − fp = fopen (fn, "r"); | |
| 61 | − if (fp == NULL) | |
| 62 | − return NULL; | |
| 63 | − lua_parsedfile = luaI_createfixedstring(fn)->str; | |
| 64 | − return fp; | |
| 65 | −} | |
| 49 | + ZIO z; | |
| 50 | + luaZ_Fopen(&z, f); | |
| 51 | + if (bin) | |
| 52 | + return luaI_undump(&z); | |
| 53 | + else { | |
| 54 | + lua_setinput(&z); | |
| 55 | + return lua_domain(); | |
| 56 | + } | |
| 57 | +} | |
| 66 | 58 | |
| 67 | −/* | |
| 68 | −** Function to close an opened file | |
| 69 | −*/ | |
| 70 | −void lua_closefile (void) | |
| 59 | + | |
| 60 | +int lua_dofile (char *filename) | |
| 71 | 61 | { |
| 72 | − if (fp != NULL && fp != stdin) | |
| 73 | − { | |
| 74 | − fclose (fp); | |
| 75 | − fp = NULL; | |
| 76 | − } | |
| 77 | −} | |
| 62 | + int status; | |
| 63 | + int c; | |
| 64 | + FILE *f = (filename == NULL) ? stdin : fopen(filename, "r"); | |
| 65 | + if (f == NULL) | |
| 66 | + return 2; | |
| 67 | + luaI_setparsedfile(filename?filename:"(stdin)"); | |
| 68 | + c = fgetc(f); | |
| 69 | + ungetc(c, f); | |
| 70 | + if (c == ID_CHUNK) { | |
| 71 | + f = freopen(filename, "rb", f); /* set binary mode */ | |
| 72 | + status = lua_doFILE(f, 1); | |
| 73 | + } | |
| 74 | + else { | |
| 75 | + if (c == '#') | |
| 76 | + while ((c=fgetc(f)) != '\n') /* skip first line */; | |
| 77 | + status = lua_doFILE(f, 0); | |
| 78 | + } | |
| 79 | + if (f != stdin) | |
| 80 | + fclose(f); | |
| 81 | + return status; | |
| 82 | +} | |
| 83 | + | |
| 84 | + | |
| 78 | 85 | |
| 79 | −/* | |
| 80 | −** Function to open a string to be input unit | |
| 81 | −*/ | |
| 82 | 86 | #define SIZE_PREF 20 /* size of string prefix to appear in error messages */ |
| 83 | −void lua_openstring (char *s) | |
| 84 | −{ | |
| 85 | − char buff[SIZE_PREF+25]; | |
| 86 | − lua_setinput(stringinput); | |
| 87 | − st = s; | |
| 88 | − strcpy(buff, "(dostring) >> "); | |
| 89 | − strncat(buff, s, SIZE_PREF); | |
| 90 | − if (strlen(s) > SIZE_PREF) strcat(buff, "..."); | |
| 91 | − lua_parsedfile = luaI_createfixedstring(buff)->str; | |
| 92 | −} | |
| 93 | 87 | |
| 94 | −/* | |
| 95 | −** Function to close an opened string | |
| 96 | −*/ | |
| 97 | −void lua_closestring (void) | |
| 88 | + | |
| 89 | +int lua_dobuffer (char *buff, int size) | |
| 98 | 90 | { |
| 91 | + int status; | |
| 92 | + ZIO z; | |
| 93 | + luaI_setparsedfile("(buffer)"); | |
| 94 | + luaZ_mopen(&z, buff, size); | |
| 95 | + status = luaI_undump(&z); | |
| 96 | + return status; | |
| 99 | 97 | } |
| 100 | 98 | |
| 101 | 99 | |
| 102 | −static void check_arg (int cond, char *func) | |
| 100 | +int lua_dostring (char *str) | |
| 103 | 101 | { |
| 104 | − if (!cond) | |
| 105 | − { | |
| 106 | − char buff[100]; | |
| 107 | − sprintf(buff, "incorrect argument to function `%s'", func); | |
| 108 | − lua_error(buff); | |
| 109 | − } | |
| 102 | + int status; | |
| 103 | + char buff[SIZE_PREF+25]; | |
| 104 | + char *temp; | |
| 105 | + ZIO z; | |
| 106 | + if (str == NULL) return 1; | |
| 107 | + sprintf(buff, "(dostring) >> %.20s", str); | |
| 108 | + temp = strchr(buff, '\n'); | |
| 109 | + if (temp) *temp = 0; /* end string after first line */ | |
| 110 | + luaI_setparsedfile(buff); | |
| 111 | + luaZ_sopen(&z, str); | |
| 112 | + lua_setinput(&z); | |
| 113 | + status = lua_domain(); | |
| 114 | + return status; | |
| 110 | 115 | } |
| 111 | 116 | |
| 112 | 117 | |
| 118 | + | |
| 119 | + | |
| 113 | 120 | static int passresults (void) |
| 114 | 121 | { |
| 115 | 122 | int arg = 0; |
| @@ -118,30 +125,53 @@ static int passresults (void) · 2 unmodified lines | ||
| 118 | 125 | lua_pushobject(obj); |
| 119 | 126 | return arg-1; |
| 120 | 127 | } |
| 128 | + | |
| 129 | + | |
| 130 | +static void packresults (void) | |
| 131 | +{ | |
| 132 | + int arg = 0; | |
| 133 | + lua_Object obj; | |
| 134 | + lua_Object table = lua_createtable(); | |
| 135 | + while ((obj = lua_getresult(++arg)) != LUA_NOOBJECT) { | |
| 136 | + lua_pushobject(table); | |
| 137 | + lua_pushnumber(arg); | |
| 138 | + lua_pushobject(obj); | |
| 139 | + lua_rawsettable(); | |
| 140 | + } | |
| 141 | + lua_pushobject(table); | |
| 142 | + lua_pushstring("n"); | |
| 143 | + lua_pushnumber(arg-1); | |
| 144 | + lua_rawsettable(); | |
| 145 | + lua_pushobject(table); /* final result */ | |
| 146 | +} | |
| 121 | 147 | |
| 122 | 148 | /* |
| 123 | 149 | ** Internal function: do a string |
| 124 | 150 | */ |
| 125 | −void lua_internaldostring (void) | |
| 151 | +static void lua_internaldostring (void) | |
| 126 | 152 | { |
| 127 | − lua_Object obj = lua_getparam (1); | |
| 128 | − if (lua_isstring(obj) && lua_dostring(lua_getstring(obj)) == 0) | |
| 153 | + lua_Object err = lua_getparam(2); | |
| 154 | + if (err != LUA_NOOBJECT) { /* set new error method */ | |
| 155 | + luaL_arg_check(lua_isnil(err) || lua_isfunction(err), 2, | |
| 156 | + "must be a valid error handler"); | |
| 157 | + lua_pushobject(err); | |
| 158 | + err = lua_seterrormethod(); | |
| 159 | + } | |
| 160 | + if (lua_dostring(luaL_check_string(1)) == 0) | |
| 129 | 161 | if (passresults() == 0) |
| 130 | 162 | lua_pushuserdata(NULL); /* at least one result to signal no errors */ |
| 163 | + if (err != LUA_NOOBJECT) { /* restore old error method */ | |
| 164 | + lua_pushobject(err); | |
| 165 | + lua_seterrormethod(); | |
| 166 | + } | |
| 131 | 167 | } |
| 132 | 168 | |
| 133 | 169 | /* |
| 134 | 170 | ** Internal function: do a file |
| 135 | 171 | */ |
| 136 | −void lua_internaldofile (void) | |
| 172 | +static void lua_internaldofile (void) | |
| 137 | 173 | { |
| 138 | − lua_Object obj = lua_getparam (1); | |
| 139 | − char *fname = NULL; | |
| 140 | − if (lua_isstring(obj)) | |
| 141 | − fname = lua_getstring(obj); | |
| 142 | − else if (obj != LUA_NOOBJECT) | |
| 143 | − lua_error("invalid argument to function `dofile'"); | |
| 144 | − /* else fname = NULL */ | |
| 174 | + char *fname = luaL_opt_string(1, NULL); | |
| 145 | 175 | if (lua_dofile(fname) == 0) |
| 146 | 176 | if (passresults() == 0) |
| 147 | 177 | lua_pushuserdata(NULL); /* at least one result to signal no errors */ |
| @@ -150,36 +180,28 @@ void lua_internaldofile (void) · 2 unmodified lines | ||
| 150 | 180 | |
| 151 | 181 | static char *tostring (lua_Object obj) |
| 152 | 182 | { |
| 153 | − char *buff = luaI_buffer(20); | |
| 154 | − if (lua_isstring(obj)) /* get strings and numbers */ | |
| 155 | − return lua_getstring(obj); | |
| 156 | − else switch(lua_type(obj)) | |
| 157 | − { | |
| 158 | − case LUA_T_FUNCTION: | |
| 159 | − sprintf(buff, "function: %p", (luaI_Address(obj))->value.tf); | |
| 160 | − break; | |
| 161 | − case LUA_T_CFUNCTION: | |
| 162 | − sprintf(buff, "cfunction: %p", lua_getcfunction(obj)); | |
| 163 | − break; | |
| 164 | − case LUA_T_ARRAY: | |
| 165 | − sprintf(buff, "table: %p", avalue(luaI_Address(obj))); | |
| 166 | − break; | |
| 167 | − case LUA_T_NIL: | |
| 168 | − sprintf(buff, "nil"); | |
| 169 | − break; | |
| 170 | − default: | |
| 171 | − sprintf(buff, "userdata: %p", lua_getuserdata(obj)); | |
| 172 | − break; | |
| 183 | + TObject *o = luaI_Address(obj); | |
| 184 | + switch (ttype(o)) { | |
| 185 | + case LUA_T_NUMBER: case LUA_T_STRING: | |
| 186 | + return lua_getstring(obj); | |
| 187 | + case LUA_T_ARRAY: case LUA_T_FUNCTION: | |
| 188 | + case LUA_T_CFUNCTION: case LUA_T_NIL: | |
| 189 | + return luaI_typenames[-ttype(o)]; | |
| 190 | + case LUA_T_USERDATA: { | |
| 191 | + char *buff = luaI_buffer(30); | |
| 192 | + sprintf(buff, "userdata: %p", o->value.ts->u.v); | |
| 193 | + return buff; | |
| 194 | + } | |
| 195 | + default: return "<unknown object>"; | |
| 173 | 196 | } |
| 174 | − return buff; | |
| 175 | 197 | } |
| 176 | 198 | |
| 177 | −void luaI_tostring (void) | |
| 199 | +static void luaI_tostring (void) | |
| 178 | 200 | { |
| 179 | 201 | lua_pushstring(tostring(lua_getparam(1))); |
| 180 | 202 | } |
| 181 | 203 | |
| 182 | −void luaI_print (void) | |
| 204 | +static void luaI_print (void) | |
| 183 | 205 | { |
| 184 | 206 | int i = 1; |
| 185 | 207 | lua_Object obj; |
| @@ -187,45 +209,18 @@ void luaI_print (void) · 1 unmodified line | ||
| 187 | 209 | printf("%s\n", tostring(obj)); |
| 188 | 210 | } |
| 189 | 211 | |
| 190 | −/* | |
| 191 | −** Internal function: return an object type. | |
| 192 | −*/ | |
| 193 | −void luaI_type (void) | |
| 212 | +static void luaI_type (void) | |
| 194 | 213 | { |
| 195 | 214 | lua_Object o = lua_getparam(1); |
| 196 | − int t; | |
| 197 | − if (o == LUA_NOOBJECT) | |
| 198 | − lua_error("no parameter to function 'type'"); | |
| 199 | − t = lua_type(o); | |
| 200 | − switch (t) | |
| 201 | − { | |
| 202 | − case LUA_T_NIL : | |
| 203 | − lua_pushliteral("nil"); | |
| 204 | − break; | |
| 205 | − case LUA_T_NUMBER : | |
| 206 | − lua_pushliteral("number"); | |
| 207 | − break; | |
| 208 | − case LUA_T_STRING : | |
| 209 | − lua_pushliteral("string"); | |
| 210 | − break; | |
| 211 | − case LUA_T_ARRAY : | |
| 212 | − lua_pushliteral("table"); | |
| 213 | − break; | |
| 214 | − case LUA_T_FUNCTION : | |
| 215 | − case LUA_T_CFUNCTION : | |
| 216 | − lua_pushliteral("function"); | |
| 217 | − break; | |
| 218 | − default : | |
| 219 | − lua_pushliteral("userdata"); | |
| 220 | − break; | |
| 221 | − } | |
| 222 | − lua_pushnumber(t); | |
| 215 | + luaL_arg_check(o != LUA_NOOBJECT, 1, "no argument"); | |
| 216 | + lua_pushstring(luaI_typenames[-ttype(luaI_Address(o))]); | |
| 217 | + lua_pushnumber(lua_tag(o)); | |
| 223 | 218 | } |
| 224 | − | |
| 219 | + | |
| 225 | 220 | /* |
| 226 | 221 | ** Internal function: convert an object to a number |
| 227 | 222 | */ |
| 228 | −void lua_obj2number (void) | |
| 223 | +static void lua_obj2number (void) | |
| 229 | 224 | { |
| 230 | 225 | lua_Object o = lua_getparam(1); |
| 231 | 226 | if (lua_isnumber(o)) |
| @@ -233,68 +228,181 @@ void lua_obj2number (void) · 1 unmodified line | ||
| 233 | 228 | } |
| 234 | 229 | |
| 235 | 230 | |
| 236 | −void luaI_error (void) | |
| 231 | +static void luaI_error (void) | |
| 237 | 232 | { |
| 238 | 233 | char *s = lua_getstring(lua_getparam(1)); |
| 239 | 234 | if (s == NULL) s = "(no message)"; |
| 240 | 235 | lua_error(s); |
| 241 | 236 | } |
| 242 | 237 | |
| 243 | −void luaI_assert (void) | |
| 238 | +static void luaI_assert (void) | |
| 244 | 239 | { |
| 245 | 240 | lua_Object p = lua_getparam(1); |
| 246 | 241 | if (p == LUA_NOOBJECT || lua_isnil(p)) |
| 247 | 242 | lua_error("assertion failed!"); |
| 248 | 243 | } |
| 249 | 244 | |
| 250 | −void luaI_setglobal (void) | |
| 245 | +static void luaI_setglobal (void) | |
| 246 | +{ | |
| 247 | + lua_Object value = lua_getparam(2); | |
| 248 | + luaL_arg_check(value != LUA_NOOBJECT, 2, NULL); | |
| 249 | + lua_pushobject(value); | |
| 250 | + lua_setglobal(luaL_check_string(1)); | |
| 251 | + lua_pushobject(value); /* return given value */ | |
| 252 | +} | |
| 253 | + | |
| 254 | +static void luaI_rawsetglobal (void) | |
| 251 | 255 | { |
| 252 | − lua_Object name = lua_getparam(1); | |
| 253 | 256 | lua_Object value = lua_getparam(2); |
| 254 | − check_arg(lua_isstring(name), "setglobal"); | |
| 257 | + luaL_arg_check(value != LUA_NOOBJECT, 2, NULL); | |
| 255 | 258 | lua_pushobject(value); |
| 256 | − lua_storeglobal(lua_getstring(name)); | |
| 259 | + lua_rawsetglobal(luaL_check_string(1)); | |
| 257 | 260 | lua_pushobject(value); /* return given value */ |
| 258 | 261 | } |
| 259 | 262 | |
| 260 | −void luaI_getglobal (void) | |
| 263 | +static void luaI_getglobal (void) | |
| 261 | 264 | { |
| 262 | − lua_Object name = lua_getparam(1); | |
| 263 | − check_arg(lua_isstring(name), "getglobal"); | |
| 264 | − lua_pushobject(lua_getglobal(lua_getstring(name))); | |
| 265 | + lua_pushobject(lua_getglobal(luaL_check_string(1))); | |
| 265 | 266 | } |
| 266 | 267 | |
| 267 | −#define MAXPARAMS 256 | |
| 268 | −void luaI_call (void) | |
| 268 | +static void luaI_rawgetglobal (void) | |
| 269 | +{ | |
| 270 | + lua_pushobject(lua_rawgetglobal(luaL_check_string(1))); | |
| 271 | +} | |
| 272 | + | |
| 273 | +static void luatag (void) | |
| 274 | +{ | |
| 275 | + lua_pushnumber(lua_tag(lua_getparam(1))); | |
| 276 | +} | |
| 277 | + | |
| 278 | + | |
| 279 | +static int getnarg (lua_Object table) | |
| 280 | +{ | |
| 281 | + lua_Object temp; | |
| 282 | + /* temp = table.n */ | |
| 283 | + lua_pushobject(table); lua_pushstring("n"); temp = lua_gettable(); | |
| 284 | + return (lua_isnumber(temp) ? lua_getnumber(temp) : MAX_WORD); | |
| 285 | +} | |
| 286 | + | |
| 287 | +static void luaI_call (void) | |
| 269 | 288 | { |
| 270 | 289 | lua_Object f = lua_getparam(1); |
| 271 | 290 | lua_Object arg = lua_getparam(2); |
| 272 | − lua_Object temp, params[MAXPARAMS]; | |
| 291 | + int withtable = (strcmp(luaL_opt_string(3, ""), "pack") == 0); | |
| 273 | 292 | int narg, i; |
| 274 | − check_arg(lua_istable(arg), "call"); | |
| 275 | − check_arg(lua_isfunction(f), "call"); | |
| 276 | − /* narg = arg.n */ | |
| 277 | − lua_pushobject(arg); | |
| 278 | − lua_pushstring("n"); | |
| 279 | − temp = lua_getsubscript(); | |
| 280 | − narg = lua_isnumber(temp) ? lua_getnumber(temp) : MAXPARAMS+1; | |
| 281 | − /* read arg[1...n] */ | |
| 293 | + luaL_arg_check(lua_isfunction(f), 1, "function expected"); | |
| 294 | + luaL_arg_check(lua_istable(arg), 2, "table expected"); | |
| 295 | + narg = getnarg(arg); | |
| 296 | + /* push arg[1...n] */ | |
| 282 | 297 | for (i=0; i<narg; i++) { |
| 283 | − if (i>=MAXPARAMS) | |
| 284 | − lua_error("argument list too long in function `call'"); | |
| 285 | − lua_pushobject(arg); | |
| 286 | − lua_pushnumber(i+1); | |
| 287 | − params[i] = lua_getsubscript(); | |
| 288 | − if (narg == MAXPARAMS+1 && lua_isnil(params[i])) { | |
| 289 | − narg = i; | |
| 298 | + lua_Object temp; | |
| 299 | + /* temp = arg[i+1] */ | |
| 300 | + lua_pushobject(arg); lua_pushnumber(i+1); temp = lua_gettable(); | |
| 301 | + if (narg == MAX_WORD && lua_isnil(temp)) | |
| 290 | 302 | break; |
| 291 | − } | |
| 303 | + lua_pushobject(temp); | |
| 292 | 304 | } |
| 293 | − /* push parameters and do the call */ | |
| 294 | − for (i=0; i<narg; i++) | |
| 295 | − lua_pushobject(params[i]); | |
| 296 | 305 | if (lua_callfunction(f)) |
| 297 | 306 | lua_error(NULL); |
| 307 | + else if (withtable) | |
| 308 | + packresults(); | |
| 298 | 309 | else |
| 299 | 310 | passresults(); |
| 300 | 311 | } |
| 312 | + | |
| 313 | +static void luaIl_settag (void) | |
| 314 | +{ | |
| 315 | + lua_Object o = lua_getparam(1); | |
| 316 | + luaL_arg_check(lua_istable(o), 1, "table expected"); | |
| 317 | + lua_pushobject(o); | |
| 318 | + lua_settag(luaL_check_number(2)); | |
| 319 | +} | |
| 320 | + | |
| 321 | +static void luaIl_newtag (void) | |
| 322 | +{ | |
| 323 | + lua_pushnumber(lua_newtag()); | |
| 324 | +} | |
| 325 | + | |
| 326 | +static void rawgettable (void) | |
| 327 | +{ | |
| 328 | + lua_Object t = lua_getparam(1); | |
| 329 | + lua_Object i = lua_getparam(2); | |
| 330 | + luaL_arg_check(t != LUA_NOOBJECT, 1, NULL); | |
| 331 | + luaL_arg_check(i != LUA_NOOBJECT, 2, NULL); | |
| 332 | + lua_pushobject(t); | |
| 333 | + lua_pushobject(i); | |
| 334 | + lua_pushobject(lua_rawgettable()); | |
| 335 | +} | |
| 336 | + | |
| 337 | +static void rawsettable (void) | |
| 338 | +{ | |
| 339 | + lua_Object t = lua_getparam(1); | |
| 340 | + lua_Object i = lua_getparam(2); | |
| 341 | + lua_Object v = lua_getparam(3); | |
| 342 | + luaL_arg_check(t != LUA_NOOBJECT && i != LUA_NOOBJECT && v != LUA_NOOBJECT, | |
| 343 | + 0, NULL); | |
| 344 | + lua_pushobject(t); | |
| 345 | + lua_pushobject(i); | |
| 346 | + lua_pushobject(v); | |
| 347 | + lua_rawsettable(); | |
| 348 | +} | |
| 349 | + | |
| 350 | + | |
| 351 | +static void luaI_collectgarbage (void) | |
| 352 | +{ | |
| 353 | + lua_pushnumber(lua_collectgarbage(luaL_opt_number(1, 0))); | |
| 354 | +} | |
| 355 | + | |
| 356 | + | |
| 357 | +/* | |
| 358 | +** Internal functions | |
| 359 | +*/ | |
| 360 | +static struct { | |
| 361 | + char *name; | |
| 362 | + lua_CFunction func; | |
| 363 | +} int_funcs[] = { | |
| 364 | + {"assert", luaI_assert}, | |
| 365 | + {"call", luaI_call}, | |
| 366 | + {"collectgarbage", luaI_collectgarbage}, | |
| 367 | + {"dofile", lua_internaldofile}, | |
| 368 | + {"dostring", lua_internaldostring}, | |
| 369 | + {"error", luaI_error}, | |
| 370 | + {"getglobal", luaI_getglobal}, | |
| 371 | + {"newtag", luaIl_newtag}, | |
| 372 | + {"next", lua_next}, | |
| 373 | + {"nextvar", luaI_nextvar}, | |
| 374 | + {"print", luaI_print}, | |
| 375 | + {"rawgetglobal", luaI_rawgetglobal}, | |
| 376 | + {"rawgettable", rawgettable}, | |
| 377 | + {"rawsetglobal", luaI_rawsetglobal}, | |
| 378 | + {"rawsettable", rawsettable}, | |
| 379 | + {"seterrormethod", luaI_seterrormethod}, | |
| 380 | +#if LUA_COMPAT2_5 | |
| 381 | + {"setfallback", luaI_setfallback}, | |
| 382 | +#endif | |
| 383 | + {"setglobal", luaI_setglobal}, | |
| 384 | + {"settagmethod", luaI_settagmethod}, | |
| 385 | + {"gettagmethod", luaI_gettagmethod}, | |
| 386 | + {"settag", luaIl_settag}, | |
| 387 | + {"tonumber", lua_obj2number}, | |
| 388 | + {"tostring", luaI_tostring}, | |
| 389 | + {"tag", luatag}, | |
| 390 | + {"type", luaI_type} | |
| 391 | +}; | |
| 392 | + | |
| 393 | +#define INTFUNCSIZE (sizeof(int_funcs)/sizeof(int_funcs[0])) | |
| 394 | + | |
| 395 | + | |
| 396 | +void luaI_predefine (void) | |
| 397 | +{ | |
| 398 | + int i; | |
| 399 | + Word n; | |
| 400 | + for (i=0; i<INTFUNCSIZE; i++) { | |
| 401 | + n = luaI_findsymbolbyname(int_funcs[i].name); | |
| 402 | + s_ttype(n) = LUA_T_CFUNCTION; s_fvalue(n) = int_funcs[i].func; | |
| 403 | + } | |
| 404 | + n = luaI_findsymbolbyname("_VERSION"); | |
| 405 | + s_ttype(n) = LUA_T_STRING; s_tsvalue(n) = lua_createstring(LUA_VERSION); | |
| 406 | +} | |
| 407 | + | |
| 408 | + | |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* |
| 2 | −** $Id: inout.h,v 1.16 1996/05/28 21:07:32 roberto Exp $ | |
| 2 | +** $Id: inout.h,v 1.20 1997/06/19 18:04:34 roberto Exp $ | |
| 3 | 3 | */ |
| 4 | 4 | |
| 5 | 5 | |
| @@ -14,21 +14,12 @@ extern Word lua_linenumber; · 8 unmodified lines | ||
| 14 | 14 | extern Word lua_debugline; |
| 15 | 15 | extern char *lua_parsedfile; |
| 16 | 16 | |
| 17 | −FILE *lua_openfile (char *fn); | |
| 18 | −void lua_closefile (void); | |
| 19 | −void lua_openstring (char *s); | |
| 20 | −void lua_closestring (void); | |
| 21 | − | |
| 22 | −void lua_internaldofile (void); | |
| 23 | −void lua_internaldostring (void); | |
| 24 | −void luaI_tostring (void); | |
| 25 | −void luaI_print (void); | |
| 26 | −void luaI_type (void); | |
| 27 | −void lua_obj2number (void); | |
| 28 | −void luaI_error (void); | |
| 29 | −void luaI_assert (void); | |
| 30 | −void luaI_setglobal (void); | |
| 31 | −void luaI_getglobal (void); | |
| 32 | −void luaI_call (void); | |
| 17 | +void luaI_setparsedfile (char *name); | |
| 18 | + | |
| 19 | +void luaI_predefine (void); | |
| 20 | + | |
| 21 | +int lua_dobuffer (char *buff, int size); | |
| 22 | +int lua_doFILE (FILE *f, int bin); | |
| 23 | + | |
| 33 | 24 | |
| 34 | 25 | #endif |
| @@ -1,10 +1,11 @@ | ||
| 1 | −char *rcs_lex = "$Id: lex.c,v 2.39 1996/11/08 19:08:30 roberto Exp $"; | |
| 1 | +char *rcs_lex = "$Id: lex.c,v 3.5 1997/06/16 16:50:22 roberto Exp $"; | |
| 2 | 2 | |
| 3 | 3 | |
| 4 | 4 | #include <ctype.h> |
| 5 | 5 | #include <string.h> |
| 6 | 6 | |
| 7 | −#include "mem.h" | |
| 7 | +#include "auxlib.h" | |
| 8 | +#include "luamem.h" | |
| 8 | 9 | #include "tree.h" |
| 9 | 10 | #include "table.h" |
| 10 | 11 | #include "lex.h" |
| @@ -12,33 +13,58 @@ char *rcs_lex = "$Id: lex.c,v 2.39 1996/11/08 19:08:30 roberto Exp $"; · 1 unmodified line | ||
| 12 | 13 | #include "luadebug.h" |
| 13 | 14 | #include "parser.h" |
| 14 | 15 | |
| 15 | −#define MINBUFF 260 | |
| 16 | +#define MINBUFF 250 | |
| 16 | 17 | |
| 17 | −#define next() (current = input()) | |
| 18 | +static int current; /* look ahead character */ | |
| 19 | +static ZIO *lex_z; | |
| 20 | + | |
| 21 | + | |
| 22 | +#define next() (current = zgetc(lex_z)) | |
| 18 | 23 | #define save(x) (yytext[tokensize++] = (x)) |
| 19 | 24 | #define save_and_next() (save(current), next()) |
| 20 | 25 | |
| 21 | 26 | |
| 22 | −static int current; /* look ahead character */ | |
| 23 | −static Input input; /* input function */ | |
| 27 | +#define MAX_IFS 5 | |
| 28 | + | |
| 29 | +/* "ifstate" keeps the state of each nested $if the lexical is dealing with. */ | |
| 30 | + | |
| 31 | +static struct { | |
| 32 | + int elsepart; /* true if its in the $else part */ | |
| 33 | + int condition; /* true if $if condition is true */ | |
| 34 | + int skip; /* true if part must be skiped */ | |
| 35 | +} ifstate[MAX_IFS]; | |
| 36 | + | |
| 37 | +static int iflevel; /* level of nested $if's */ | |
| 24 | 38 | |
| 25 | 39 | |
| 26 | −void lua_setinput (Input fn) | |
| 40 | +void lua_setinput (ZIO *z) | |
| 27 | 41 | { |
| 28 | 42 | current = '\n'; |
| 29 | 43 | lua_linenumber = 0; |
| 30 | − input = fn; | |
| 44 | + iflevel = 0; | |
| 45 | + ifstate[0].skip = 0; | |
| 46 | + ifstate[0].elsepart = 1; /* to avoid a free $else */ | |
| 47 | + lex_z = z; | |
| 31 | 48 | } |
| 32 | 49 | |
| 33 | −void luaI_syntaxerror (char *s) | |
| 50 | + | |
| 51 | +static void luaI_auxsyntaxerror (char *s) | |
| 52 | +{ | |
| 53 | + luaL_verror("%s;\n> at line %d in file %s", | |
| 54 | + s, lua_linenumber, lua_parsedfile); | |
| 55 | +} | |
| 56 | + | |
| 57 | +static void luaI_auxsynterrbf (char *s, char *token) | |
| 34 | 58 | { |
| 35 | − char msg[256]; | |
| 36 | − char *token = luaI_buffer(1); | |
| 37 | 59 | if (token[0] == 0) |
| 38 | 60 | token = "<eof>"; |
| 39 | − sprintf (msg,"%s;\n> last token read: \"%s\" at line %d in file %s", | |
| 61 | + luaL_verror("%s;\n> last token read: \"%s\" at line %d in file %s", | |
| 40 | 62 | s, token, lua_linenumber, lua_parsedfile); |
| 41 | − lua_error (msg); | |
| 63 | +} | |
| 64 | + | |
| 65 | +void luaI_syntaxerror (char *s) | |
| 66 | +{ | |
| 67 | + luaI_auxsynterrbf(s, luaI_buffer(1)); | |
| 42 | 68 | } |
| 43 | 69 | |
| 44 | 70 | |
| @@ -78,26 +104,122 @@ void luaI_addReserved (void) · 33 unmodified lines | ||
| 78 | 104 | } |
| 79 | 105 | } |
| 80 | 106 | |
| 81 | −static int inclinenumber (int pragma_allowed) | |
| 107 | + | |
| 108 | +/* | |
| 109 | +** Pragma handling | |
| 110 | +*/ | |
| 111 | + | |
| 112 | +#define PRAGMASIZE 20 | |
| 113 | + | |
| 114 | +static void skipspace (void) | |
| 115 | +{ | |
| 116 | + while (current == ' ' || current == '\t') next(); | |
| 117 | +} | |
| 118 | + | |
| 119 | + | |
| 120 | +static int checkcond (char *buff) | |
| 121 | +{ | |
| 122 | + static char *opts[] = {"nil", "1"}; | |
| 123 | + int i = luaI_findstring(buff, opts); | |
| 124 | + if (i >= 0) return i; | |
| 125 | + else if (isalpha((unsigned char)buff[0]) || buff[0] == '_') | |
| 126 | + return luaI_globaldefined(buff); | |
| 127 | + else { | |
| 128 | + luaI_auxsynterrbf("invalid $if condition", buff); | |
| 129 | + return 0; /* to avoid warnings */ | |
| 130 | + } | |
| 131 | +} | |
| 132 | + | |
| 133 | + | |
| 134 | +static void readname (char *buff) | |
| 135 | +{ | |
| 136 | + int i = 0; | |
| 137 | + skipspace(); | |
| 138 | + while (isalnum((unsigned char)current) || current == '_') { | |
| 139 | + if (i >= PRAGMASIZE) { | |
| 140 | + buff[PRAGMASIZE] = 0; | |
| 141 | + luaI_auxsynterrbf("pragma too long", buff); | |
| 142 | + } | |
| 143 | + buff[i++] = current; | |
| 144 | + next(); | |
| 145 | + } | |
| 146 | + buff[i] = 0; | |
| 147 | +} | |
| 148 | + | |
| 149 | + | |
| 150 | +static void inclinenumber (void); | |
| 151 | + | |
| 152 | + | |
| 153 | +static void ifskip (void) | |
| 154 | +{ | |
| 155 | + while (ifstate[iflevel].skip) { | |
| 156 | + if (current == '\n') | |
| 157 | + inclinenumber(); | |
| 158 | + else if (current == EOZ) | |
| 159 | + luaI_auxsyntaxerror("input ends inside a $if"); | |
| 160 | + else next(); | |
| 161 | + } | |
| 162 | +} | |
| 163 | + | |
| 164 | + | |
| 165 | +static void inclinenumber (void) | |
| 82 | 166 | { |
| 167 | + static char *pragmas [] = | |
| 168 | + {"debug", "nodebug", "endinput", "end", "ifnot", "if", "else", NULL}; | |
| 169 | + next(); /* skip '\n' */ | |
| 83 | 170 | ++lua_linenumber; |
| 84 | − if (pragma_allowed && current == '$') { /* is a pragma? */ | |
| 85 | − char *buff = luaI_buffer(MINBUFF+1); | |
| 86 | − int i = 0; | |
| 171 | + if (current == '$') { /* is a pragma? */ | |
| 172 | + char buff[PRAGMASIZE+1]; | |
| 173 | + int ifnot = 0; | |
| 174 | + int skip = ifstate[iflevel].skip; | |
| 87 | 175 | next(); /* skip $ */ |
| 88 | − while (isalnum(current)) { | |
| 89 | − if (i >= MINBUFF) luaI_syntaxerror("pragma too long"); | |
| 90 | − buff[i++] = current; | |
| 91 | − next(); | |
| 176 | + readname(buff); | |
| 177 | + switch (luaI_findstring(buff, pragmas)) { | |
| 178 | + case 0: /* debug */ | |
| 179 | + if (!skip) lua_debug = 1; | |
| 180 | + break; | |
| 181 | + case 1: /* nodebug */ | |
| 182 | + if (!skip) lua_debug = 0; | |
| 183 | + break; | |
| 184 | + case 2: /* endinput */ | |
| 185 | + if (!skip) { | |
| 186 | + current = EOZ; | |
| 187 | + iflevel = 0; /* to allow $endinput inside a $if */ | |
| 188 | + } | |
| 189 | + break; | |
| 190 | + case 3: /* end */ | |
| 191 | + if (iflevel-- == 0) | |
| 192 | + luaI_auxsyntaxerror("unmatched $endif"); | |
| 193 | + break; | |
| 194 | + case 4: /* ifnot */ | |
| 195 | + ifnot = 1; | |
| 196 | + /* go through */ | |
| 197 | + case 5: /* if */ | |
| 198 | + if (iflevel == MAX_IFS-1) | |
| 199 | + luaI_auxsyntaxerror("too many nested `$ifs'"); | |
| 200 | + readname(buff); | |
| 201 | + iflevel++; | |
| 202 | + ifstate[iflevel].elsepart = 0; | |
| 203 | + ifstate[iflevel].condition = checkcond(buff) ? !ifnot : ifnot; | |
| 204 | + ifstate[iflevel].skip = skip || !ifstate[iflevel].condition; | |
| 205 | + break; | |
| 206 | + case 6: /* else */ | |
| 207 | + if (ifstate[iflevel].elsepart) | |
| 208 | + luaI_auxsyntaxerror("unmatched $else"); | |
| 209 | + ifstate[iflevel].elsepart = 1; | |
| 210 | + ifstate[iflevel].skip = | |
| 211 | + ifstate[iflevel-1].skip || ifstate[iflevel].condition; | |
| 212 | + break; | |
| 213 | + default: | |
| 214 | + luaI_auxsynterrbf("invalid pragma", buff); | |
| 92 | 215 | } |
| 93 | − buff[i] = 0; | |
| 94 | − if (strcmp(buff, "debug") == 0) | |
| 95 | − lua_debug = 1; | |
| 96 | − else if (strcmp(buff, "nodebug") == 0) | |
| 97 | − lua_debug = 0; | |
| 98 | − else luaI_syntaxerror("invalid pragma"); | |
| 216 | + skipspace(); | |
| 217 | + if (current == '\n') /* pragma must end with a '\n' ... */ | |
| 218 | + inclinenumber(); | |
| 219 | + else if (current != EOZ) /* or eof */ | |
| 220 | + luaI_auxsyntaxerror("invalid pragma format"); | |
| 221 | + ifskip(); | |
| 99 | 222 | } |
| 100 | − return lua_linenumber; | |
| 101 | 223 | } |
| 102 | 224 | |
| 103 | 225 | static int read_long_string (char *yytext, int buffsize) |
| @@ -110,7 +232,7 @@ static int read_long_string (char *yytext, int buffsize) · 6 unmodified lines | ||
| 110 | 232 | yytext = luaI_buffer(buffsize *= 2); |
| 111 | 233 | switch (current) |
| 112 | 234 | { |
| 113 | − case 0: | |
| 235 | + case EOZ: | |
| 114 | 236 | save(0); |
| 115 | 237 | return WRONGTOKEN; |
| 116 | 238 | case '[': |
| @@ -131,8 +253,8 @@ static int read_long_string (char *yytext, int buffsize) · 14 unmodified lines | ||
| 131 | 253 | } |
| 132 | 254 | continue; |
| 133 | 255 | case '\n': |
| 134 | − save_and_next(); | |
| 135 | − inclinenumber(0); | |
| 256 | + save('\n'); | |
| 257 | + inclinenumber(); | |
| 136 | 258 | continue; |
| 137 | 259 | default: |
| 138 | 260 | save_and_next(); |
| @@ -162,8 +284,8 @@ int luaY_lex (void) · 23 unmodified lines | ||
| 162 | 284 | switch (current) |
| 163 | 285 | { |
| 164 | 286 | case '\n': |
| 165 | − next(); | |
| 166 | − linelasttoken = inclinenumber(1); | |
| 287 | + inclinenumber(); | |
| 288 | + linelasttoken = lua_linenumber; | |
| 167 | 289 | continue; |
| 168 | 290 | |
| 169 | 291 | case ' ': case '\t': case '\r': /* CR: to avoid problems with DOS */ |
| @@ -173,7 +295,7 @@ int luaY_lex (void) · 3 unmodified lines | ||
| 173 | 295 | case '-': |
| 174 | 296 | save_and_next(); |
| 175 | 297 | if (current != '-') return '-'; |
| 176 | − do { next(); } while (current != '\n' && current != 0); | |
| 298 | + do { next(); } while (current != '\n' && current != EOZ); | |
| 177 | 299 | continue; |
| 178 | 300 | |
| 179 | 301 | case '[': |
| @@ -216,7 +338,7 @@ int luaY_lex (void) · 36 unmodified lines | ||
| 216 | 338 | yytext = luaI_buffer(buffsize *= 2); |
| 217 | 339 | switch (current) |
| 218 | 340 | { |
| 219 | − case 0: | |
| 341 | + case EOZ: | |
| 220 | 342 | case '\n': |
| 221 | 343 | save(0); |
| 222 | 344 | return WRONGTOKEN; |
| @@ -227,7 +349,7 @@ int luaY_lex (void) · 4 unmodified lines | ||
| 227 | 349 | case 'n': save('\n'); next(); break; |
| 228 | 350 | case 't': save('\t'); next(); break; |
| 229 | 351 | case 'r': save('\r'); next(); break; |
| 230 | − case '\n': save_and_next(); inclinenumber(0); break; | |
| 352 | + case '\n': save('\n'); inclinenumber(); break; | |
| 231 | 353 | default : save_and_next(); break; |
| 232 | 354 | } |
| 233 | 355 | break; |
| @@ -258,7 +380,9 @@ int luaY_lex (void) · 24 unmodified lines | ||
| 258 | 380 | case '_': |
| 259 | 381 | { |
| 260 | 382 | TaggedString *ts; |
| 261 | − do { save_and_next(); } while (isalnum(current) || current == '_'); | |
| 383 | + do { | |
| 384 | + save_and_next(); | |
| 385 | + } while (isalnum((unsigned char)current) || current == '_'); | |
| 262 | 386 | save(0); |
| 263 | 387 | ts = lua_createstring(yytext); |
| 264 | 388 | if (ts->marked > 2) |
| @@ -280,7 +404,7 @@ int luaY_lex (void) · 15 unmodified lines | ||
| 280 | 404 | } |
| 281 | 405 | else return CONC; /* .. */ |
| 282 | 406 | } |
| 283 | − else if (!isdigit(current)) return '.'; | |
| 407 | + else if (!isdigit((unsigned char)current)) return '.'; | |
| 284 | 408 | /* current is a digit: goes through to number */ |
| 285 | 409 | a=0.0; |
| 286 | 410 | goto fraction; |
| @@ -291,7 +415,7 @@ int luaY_lex (void) · 4 unmodified lines | ||
| 291 | 415 | do { |
| 292 | 416 | a=10.0*a+(current-'0'); |
| 293 | 417 | save_and_next(); |
| 294 | − } while (isdigit(current)); | |
| 418 | + } while (isdigit((unsigned char)current)); | |
| 295 | 419 | if (current == '.') { |
| 296 | 420 | save_and_next(); |
| 297 | 421 | if (current == '.') |
| @@ -300,7 +424,7 @@ int luaY_lex (void) · 2 unmodified lines | ||
| 300 | 424 | } |
| 301 | 425 | fraction: |
| 302 | 426 | { double da=0.1; |
| 303 | − while (isdigit(current)) | |
| 427 | + while (isdigit((unsigned char)current)) | |
| 304 | 428 | { |
| 305 | 429 | a+=(current-'0')*da; |
| 306 | 430 | da/=10.0; |
| @@ -314,11 +438,12 @@ int luaY_lex (void) · 7 unmodified lines | ||
| 314 | 438 | save_and_next(); |
| 315 | 439 | neg=(current=='-'); |
| 316 | 440 | if (current == '+' || current == '-') save_and_next(); |
| 317 | − if (!isdigit(current)) { save(0); return WRONGTOKEN; } | |
| 441 | + if (!isdigit((unsigned char)current)) { | |
| 442 | + save(0); return WRONGTOKEN; } | |
| 318 | 443 | do { |
| 319 | 444 | e=10.0*e+(current-'0'); |
| 320 | 445 | save_and_next(); |
| 321 | − } while (isdigit(current)); | |
| 446 | + } while (isdigit((unsigned char)current)); | |
| 322 | 447 | for (ea=neg?0.1:10.0; e>0; e>>=1) |
| 323 | 448 | { |
| 324 | 449 | if (e & 1) a*=ea; |
| @@ -330,11 +455,15 @@ int luaY_lex (void) · 5 unmodified lines | ||
| 330 | 455 | return NUMBER; |
| 331 | 456 | } |
| 332 | 457 | |
| 333 | − default: /* also end of program (0) */ | |
| 334 | − { | |
| 458 | + case EOZ: | |
| 459 | + save(0); | |
| 460 | + if (iflevel > 0) | |
| 461 | + luaI_syntaxerror("missing $endif"); | |
| 462 | + return 0; | |
| 463 | + | |
| 464 | + default: | |
| 335 | 465 | save_and_next(); |
| 336 | 466 | return yytext[0]; |
| 337 | − } | |
| 338 | 467 | } |
| 339 | 468 | } |
| 340 | 469 | } |
| @@ -1,16 +1,15 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** lex.h |
| 3 | 3 | ** TecCGraf - PUC-Rio |
| 4 | −** $Id: lex.h,v 1.3 1996/11/08 12:49:35 roberto Exp $ | |
| 4 | +** $Id: lex.h,v 1.4 1997/06/16 16:50:22 roberto Exp $ | |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | 7 | #ifndef lex_h |
| 8 | 8 | #define lex_h |
| 9 | 9 | |
| 10 | +#include "zio.h" | |
| 10 | 11 | |
| 11 | −typedef int (*Input) (void); | |
| 12 | − | |
| 13 | −void lua_setinput (Input fn); | |
| 12 | +void lua_setinput (ZIO *z); | |
| 14 | 13 | void luaI_syntaxerror (char *s); |
| 15 | 14 | int luaY_lex (void); |
| 16 | 15 | void luaI_addReserved (void); |
| @@ -1,13 +1,13 @@ | ||
| 1 | 1 | %{ |
| 2 | 2 | |
| 3 | −char *rcs_luastx = "$Id: lua.stx,v 3.41 1996/11/08 12:49:35 roberto Exp $"; | |
| 3 | +char *rcs_luastx = "$Id: lua.stx,v 3.47 1997/06/19 17:46:12 roberto Exp $"; | |
| 4 | 4 | |
| 5 | 5 | #include <stdio.h> |
| 6 | 6 | #include <stdlib.h> |
| 7 | 7 | #include <string.h> |
| 8 | 8 | |
| 9 | 9 | #include "luadebug.h" |
| 10 | −#include "mem.h" | |
| 10 | +#include "luamem.h" | |
| 11 | 11 | #include "lex.h" |
| 12 | 12 | #include "opcode.h" |
| 13 | 13 | #include "hash.h" |
| @@ -50,8 +50,6 @@ static TaggedString *localvar[MAXLOCALS]; /* store local variable names */ · 36 unmodified lines | ||
| 50 | 50 | static int nlocalvar=0; /* number of local variables */ |
| 51 | 51 | |
| 52 | 52 | #define MAXFIELDS FIELDS_PER_FLUSH*2 |
| 53 | −static Word fields[MAXFIELDS]; /* fieldnames to be flushed */ | |
| 54 | −static int nfields=0; | |
| 55 | 53 | |
| 56 | 54 | int lua_debug = 0; |
| 57 | 55 | |
| @@ -103,22 +101,11 @@ static void code_word_at (Byte *p, int n) · 45 unmodified lines | ||
| 103 | 101 | memcpy(p, &w, sizeof(Word)); |
| 104 | 102 | } |
| 105 | 103 | |
| 106 | −static void push_field (Word name) | |
| 107 | −{ | |
| 108 | − if (nfields < MAXFIELDS) | |
| 109 | − fields[nfields++] = name; | |
| 110 | − else | |
| 111 | − yyerror ("too many fields in nested constructors"); | |
| 112 | −} | |
| 113 | − | |
| 114 | 104 | static void flush_record (int n) |
| 115 | 105 | { |
| 116 | − int i; | |
| 117 | 106 | if (n == 0) return; |
| 118 | − code_byte(STORERECORD); | |
| 107 | + code_byte(STOREMAP); | |
| 119 | 108 | code_byte(n); |
| 120 | − for (i=0; i<n; i++) | |
| 121 | − code_word(fields[--nfields]); | |
| 122 | 109 | } |
| 123 | 110 | |
| 124 | 111 | static void flush_list (int m, int n) |
| @@ -161,11 +148,22 @@ static void add_varbuffer (Long var) · 36 unmodified lines | ||
| 161 | 148 | yyerror ("variable buffer overflow"); |
| 162 | 149 | } |
| 163 | 150 | |
| 151 | +static void code_string (Word w) | |
| 152 | +{ | |
| 153 | + code_byte(PUSHSTRING); | |
| 154 | + code_word(w); | |
| 155 | +} | |
| 156 | + | |
| 157 | +static void code_constant (TaggedString *s) | |
| 158 | +{ | |
| 159 | + code_string(luaI_findconstant(s)); | |
| 160 | +} | |
| 161 | + | |
| 164 | 162 | static void code_number (float f) |
| 165 | 163 | { |
| 166 | − Word i = (Word)f; | |
| 167 | − if (f == (float)i) /* f has an (short) integer value */ | |
| 168 | − { | |
| 164 | + Word i; | |
| 165 | + if (f >= 0 && f <= (float)MAX_WORD && (float)(i=(Word)f) == f) { | |
| 166 | + /* f has an (short) integer value */ | |
| 169 | 167 | if (i <= 2) code_byte(PUSH0 + i); |
| 170 | 168 | else if (i <= 255) |
| 171 | 169 | { |
| @@ -459,7 +457,7 @@ void lua_parse (TFunc *tf) · 287 unmodified lines | ||
| 459 | 457 | |
| 460 | 458 | %% /* beginning of rules section */ |
| 461 | 459 | |
| 462 | −chunk : chunklist ret | |
| 460 | +chunk : chunklist ret ; | |
| 463 | 461 | |
| 464 | 462 | chunklist : /* empty */ |
| 465 | 463 | | chunklist stat sc |
| @@ -477,8 +475,7 @@ function : FUNCTION funcname body · 11 unmodified lines | ||
| 477 | 475 | funcname : var { $$ =$1; init_func(); } |
| 478 | 476 | | varexp ':' NAME |
| 479 | 477 | { |
| 480 | − code_byte(PUSHSTRING); | |
| 481 | − code_word(luaI_findconstant($3)); | |
| 478 | + code_constant($3); | |
| 482 | 479 | $$ = 0; /* indexed variable */ |
| 483 | 480 | init_func(); |
| 484 | 481 | add_localvar(luaI_createfixedstring("self")); |
| @@ -492,7 +489,6 @@ body : '(' parlist ')' block END · 7 unmodified lines | ||
| 492 | 489 | luaI_initTFunc($$); |
| 493 | 490 | $$->size = pc; |
| 494 | 491 | $$->code = newvector(pc, Byte); |
| 495 | − $$->fileName = lua_parsedfile; | |
| 496 | 492 | $$->lineDefined = $2; |
| 497 | 493 | memcpy($$->code, basepc, pc*sizeof(Byte)); |
| 498 | 494 | if (lua_debug) |
| @@ -540,7 +536,7 @@ stat : IF expr1 THEN PrepJump block PrepJump elsepart END · 41 unmodified lines | ||
| 540 | 536 | lua_codeadjust (0); |
| 541 | 537 | } |
| 542 | 538 | } |
| 543 | − | functioncall | |
| 539 | + | functioncall {;} | |
| 544 | 540 | | LOCAL localdeclist decinit |
| 545 | 541 | { nlocalvar += $2; |
| 546 | 542 | adjust_mult_assign($2, $3, 0); |
| @@ -605,9 +601,8 @@ expr : '(' expr ')' { $$ = $2; } · 58 unmodified lines | ||
| 605 | 601 | | NUMBER { code_number($1); $$ = 0; } |
| 606 | 602 | | STRING |
| 607 | 603 | { |
| 608 | − code_byte(PUSHSTRING); | |
| 609 | − code_word($1); | |
| 610 | − $$ = 0; | |
| 604 | + code_string($1); | |
| 605 | + $$ = 0; | |
| 611 | 606 | } |
| 612 | 607 | | NIL {code_byte(PUSHNIL); $$ = 0; } |
| 613 | 608 | | functioncall { $$ = $1; } |
| @@ -723,12 +718,13 @@ ffieldlist1 : ffield {$$=1;} · 109 unmodified lines | ||
| 723 | 718 | } |
| 724 | 719 | ; |
| 725 | 720 | |
| 726 | −ffield : NAME '=' expr1 | |
| 727 | − { | |
| 728 | − push_field(luaI_findconstant($1)); | |
| 729 | − } | |
| 721 | +ffield : ffieldkey '=' expr1 | |
| 730 | 722 | ; |
| 731 | 723 | |
| 724 | +ffieldkey : '[' expr1 ']' | |
| 725 | + | NAME { code_constant($1); } | |
| 726 | + ; | |
| 727 | + | |
| 732 | 728 | lfieldlist : /* empty */ { $$ = 0; } |
| 733 | 729 | | lfieldlist1 lastcomma { $$ = $1; } |
| 734 | 730 | ; |
| @@ -762,9 +758,8 @@ var : singlevar { $$ = $1; } · 27 unmodified lines | ||
| 762 | 758 | } |
| 763 | 759 | | varexp '.' NAME |
| 764 | 760 | { |
| 765 | − code_byte(PUSHSTRING); | |
| 766 | − code_word(luaI_findconstant($3)); | |
| 767 | − $$ = 0; /* indexed variable */ | |
| 761 | + code_constant($3); | |
| 762 | + $$ = 0; /* indexed variable */ | |
| 768 | 763 | } |
| 769 | 764 | ; |
| 770 | 765 | |
| @@ -3,15 +3,13 @@ · 2 unmodified lines | ||
| 3 | 3 | ** thread and save bytecodes to file |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char* rcs_dump="$Id: dump.c,v 1.17 1996/11/18 11:18:29 lhf Exp $"; | |
| 6 | +char* rcs_dump="$Id: dump.c,v 1.20 1997/06/19 14:56:04 lhf Exp $"; | |
| 7 | 7 | |
| 8 | 8 | #include <stdio.h> |
| 9 | 9 | #include <stdlib.h> |
| 10 | 10 | #include <string.h> |
| 11 | 11 | #include "luac.h" |
| 12 | 12 | |
| 13 | −static TFunc* lastF=NULL; /* list of functions seen in code */ | |
| 14 | − | |
| 15 | 13 | static int SawVar(int i, int at) |
| 16 | 14 | { |
| 17 | 15 | int old=VarLoc(i); |
| @@ -34,7 +32,7 @@ static void ThreadCode(Byte* code, Byte* end) · 16 unmodified lines | ||
| 34 | 32 | for (i=0; i<lua_nconstant; i++) StrLoc(i)=0; |
| 35 | 33 | for (p=code; p!=end;) |
| 36 | 34 | { |
| 37 | − OpCode op=(OpCode)*p; | |
| 35 | + int op=*p; | |
| 38 | 36 | int at=p-code+1; |
| 39 | 37 | switch (op) |
| 40 | 38 | { |
| @@ -89,6 +87,8 @@ static void ThreadCode(Byte* code, Byte* end) · 48 unmodified lines | ||
| 89 | 87 | case STORELIST0: |
| 90 | 88 | case ADJUST: |
| 91 | 89 | case RETCODE: |
| 90 | + case VARARGS: | |
| 91 | + case STOREMAP: | |
| 92 | 92 | p+=2; |
| 93 | 93 | break; |
| 94 | 94 | case PUSHWORD: |
| @@ -107,8 +107,11 @@ static void ThreadCode(Byte* code, Byte* end) · 12 unmodified lines | ||
| 107 | 107 | case PUSHFLOAT: |
| 108 | 108 | p+=5; /* assumes sizeof(float)==4 */ |
| 109 | 109 | break; |
| 110 | − case PUSHSELF: | |
| 110 | + case PUSHFUNCTION: | |
| 111 | + p+=sizeof(TFunc*)+1; | |
| 112 | + break; | |
| 111 | 113 | case PUSHSTRING: |
| 114 | + case PUSHSELF: | |
| 112 | 115 | { |
| 113 | 116 | Word w; |
| 114 | 117 | p++; |
| @@ -117,16 +120,6 @@ static void ThreadCode(Byte* code, Byte* end) · 2 unmodified lines | ||
| 117 | 120 | memcpy(p-2,&w,sizeof(w)); |
| 118 | 121 | break; |
| 119 | 122 | } |
| 120 | − case PUSHFUNCTION: | |
| 121 | − { | |
| 122 | − TFunc* tf; | |
| 123 | − p++; | |
| 124 | − get_code(tf,p); | |
| 125 | − tf->marked=at; | |
| 126 | − tf->next=NULL; /* TODO: remove? */ | |
| 127 | − lastF=lastF->next=tf; | |
| 128 | − break; | |
| 129 | − } | |
| 130 | 123 | case PUSHGLOBAL: |
| 131 | 124 | case STOREGLOBAL: |
| 132 | 125 | { |
| @@ -151,8 +144,8 @@ static void ThreadCode(Byte* code, Byte* end) · 18 unmodified lines | ||
| 151 | 144 | } |
| 152 | 145 | break; |
| 153 | 146 | } |
| 154 | − default: | |
| 155 | − fprintf(stderr,"luac: cannot happen: opcode=%d",*p); | |
| 147 | + default: /* cannot happen */ | |
| 148 | + fprintf(stderr,"luac: bad opcode %d at %d\n",*p,(int)(p-code)); | |
| 156 | 149 | exit(1); |
| 157 | 150 | break; |
| 158 | 151 | } |
| @@ -186,7 +179,7 @@ static void DumpString(char* s, FILE* D) · 27 unmodified lines | ||
| 186 | 179 | int n=strlen(s)+1; |
| 187 | 180 | if ((Word)n != n) |
| 188 | 181 | { |
| 189 | − fprintf(stderr,"luac: string too long: \"%.32s...\"\n",s); | |
| 182 | + fprintf(stderr,"luac: string too long (%d bytes): \"%.32s...\"\n",n,s); | |
| 190 | 183 | exit(1); |
| 191 | 184 | } |
| 192 | 185 | DumpWord(n,D); |
| @@ -220,7 +213,6 @@ static void DumpStrings(FILE* D) · 27 unmodified lines | ||
| 220 | 213 | |
| 221 | 214 | void DumpFunction(TFunc* tf, FILE* D) |
| 222 | 215 | { |
| 223 | − lastF=tf; | |
| 224 | 216 | ThreadCode(tf->code,tf->code+tf->size); |
| 225 | 217 | fputc(ID_FUN,D); |
| 226 | 218 | DumpSize(tf->size,D); |
| @@ -1,25 +1,39 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** luac.c |
| 3 | −** lua compiler (saves bytecodes to files) | |
| 3 | +** lua compiler (saves bytecodes to files; also list binary files) | |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char* rcs_luac="$Id: luac.c,v 1.18 1996/11/16 20:14:23 lhf Exp $"; | |
| 6 | +char* rcs_luac="$Id: luac.c,v 1.23 1997/06/20 20:34:04 lhf Exp $"; | |
| 7 | 7 | |
| 8 | 8 | #include <stdio.h> |
| 9 | 9 | #include <stdlib.h> |
| 10 | 10 | #include <string.h> |
| 11 | 11 | #include "luac.h" |
| 12 | +#include "lex.h" | |
| 13 | +#include "zio.h" | |
| 12 | 14 | |
| 13 | 15 | static void compile(char* filename); |
| 16 | +static void undump(char* filename); | |
| 14 | 17 | |
| 15 | 18 | static int listing=0; /* list bytecodes? */ |
| 16 | 19 | static int dumping=1; /* dump bytecodes? */ |
| 20 | +static int undumping=0; /* undump bytecodes? */ | |
| 17 | 21 | static FILE* D; /* output file */ |
| 18 | 22 | |
| 19 | 23 | static void usage(void) |
| 20 | 24 | { |
| 21 | − fprintf(stderr,"usage: luac [-dlpv] [-o output] file ...\n"); | |
| 22 | − exit(0); | |
| 25 | + fprintf(stderr, | |
| 26 | + "usage: luac [-c | -u] [-d] [-l] [-p] [-q] [-v] [-o output] file ...\n" | |
| 27 | + " -c\tcompile (default)\n" | |
| 28 | + " -u\tundump\n" | |
| 29 | + " -d\tgenerate debugging information\n" | |
| 30 | + " -l\tlist (default for -u)\n" | |
| 31 | + " -o\toutput file for -c (default \"luac.out\")\n" | |
| 32 | + " -p\tparse only\n" | |
| 33 | + " -q\tquiet (default for -c)\n" | |
| 34 | + " -v\tshow version information\n" | |
| 35 | + ); | |
| 36 | + exit(1); | |
| 23 | 37 | } |
| 24 | 38 | |
| 25 | 39 | #define IS(s) (strcmp(argv[i],s)==0) |
| @@ -34,6 +48,11 @@ int main(int argc, char* argv[]) · 8 unmodified lines | ||
| 34 | 48 | break; |
| 35 | 49 | else if (IS("-")) /* use stdin */ |
| 36 | 50 | break; |
| 51 | + else if (IS("-c")) /* compile (and dump) */ | |
| 52 | + { | |
| 53 | + dumping=1; | |
| 54 | + undumping=0; | |
| 55 | + } | |
| 37 | 56 | else if (IS("-d")) /* debug */ |
| 38 | 57 | lua_debug=1; |
| 39 | 58 | else if (IS("-l")) /* list */ |
| @@ -42,6 +61,14 @@ int main(int argc, char* argv[]) · 2 unmodified lines | ||
| 42 | 61 | d=argv[++i]; |
| 43 | 62 | else if (IS("-p")) /* parse only (for timing purposes) */ |
| 44 | 63 | dumping=0; |
| 64 | + else if (IS("-q")) /* quiet */ | |
| 65 | + listing=0; | |
| 66 | + else if (IS("-u")) /* undump */ | |
| 67 | + { | |
| 68 | + dumping=0; | |
| 69 | + undumping=1; | |
| 70 | + listing=1; | |
| 71 | + } | |
| 45 | 72 | else if (IS("-v")) /* show version */ |
| 46 | 73 | printf("%s %s\n(written by %s)\n\n",LUA_VERSION,LUA_COPYRIGHT,LUA_AUTHORS); |
| 47 | 74 | else /* unknown option */ |
| @@ -50,56 +77,114 @@ int main(int argc, char* argv[]) · 2 unmodified lines | ||
| 50 | 77 | --i; /* fake new argv[0] */ |
| 51 | 78 | argc-=i; |
| 52 | 79 | argv+=i; |
| 53 | − if (argc<2) usage(); | |
| 54 | − for (i=1; i<argc; i++) | |
| 55 | − if (IS(d)) | |
| 80 | + if (dumping) | |
| 81 | + { | |
| 82 | + if (argc<2) usage(); | |
| 83 | + for (i=1; i<argc; i++) /* play safe with output file */ | |
| 84 | + if (IS(d)) | |
| 85 | + { | |
| 86 | + fprintf(stderr,"luac: will not overwrite input file \"%s\"\n",d); | |
| 87 | + exit(1); | |
| 88 | + } | |
| 89 | + D=fopen(d,"wb"); /* must open in binary mode */ | |
| 90 | + if (D==NULL) | |
| 56 | 91 | { |
| 57 | − fprintf(stderr,"luac: will not overwrite input file \"%s\"\n",d); | |
| 92 | + fprintf(stderr,"luac: cannot open "); | |
| 93 | + perror(d); | |
| 58 | 94 | exit(1); |
| 59 | 95 | } |
| 60 | − D=(dumping) ? fopen(d,"wb") : stdout; /* must open in binary mode */ | |
| 61 | − if (D==NULL) | |
| 96 | + for (i=1; i<argc; i++) compile(IS("-")? NULL : argv[i]); | |
| 97 | + fclose(D); | |
| 98 | + } | |
| 99 | + if (undumping) | |
| 62 | 100 | { |
| 63 | − fprintf(stderr,"luac: cannot open "); | |
| 64 | − perror(d); | |
| 65 | − exit(1); | |
| 101 | + if (argc<2) | |
| 102 | + undump("luac.out"); | |
| 103 | + else | |
| 104 | + for (i=1; i<argc; i++) undump(IS("-")? NULL : argv[i]); | |
| 66 | 105 | } |
| 67 | − for (i=1; i<argc; i++) compile(IS("-")? NULL : argv[i]); | |
| 68 | − fclose(D); | |
| 69 | 106 | return 0; |
| 70 | 107 | } |
| 71 | 108 | |
| 72 | −static void do_dump(TFunc* tf) /* only for tf==main */ | |
| 109 | +static void do_dump(TFunc* Main) | |
| 73 | 110 | { |
| 74 | − if (dumping) DumpHeader(D); | |
| 75 | − while (tf!=NULL) | |
| 111 | + TFunc* tf; | |
| 112 | + LinkFunctions(Main); | |
| 113 | + if (listing) | |
| 114 | + { | |
| 115 | + for (tf=Main; tf!=NULL; tf=tf->next) PrintFunction(tf,Main); | |
| 116 | + } | |
| 117 | + if (dumping) | |
| 76 | 118 | { |
| 77 | − TFunc* nf; | |
| 78 | − if (listing) PrintFunction(tf); | |
| 79 | − if (dumping) DumpFunction(tf,D); | |
| 80 | − nf=tf->next; /* list only built after first main */ | |
| 119 | + DumpHeader(D); | |
| 120 | + for (tf=Main; tf!=NULL; tf=tf->next) DumpFunction(tf,D); | |
| 121 | + } | |
| 122 | + for (tf=Main; tf!=NULL; ) | |
| 123 | + { | |
| 124 | + TFunc* nf=tf->next; | |
| 81 | 125 | luaI_freefunc(tf); |
| 82 | 126 | tf=nf; |
| 83 | 127 | } |
| 84 | 128 | } |
| 85 | 129 | |
| 86 | −static void do_compile(void) | |
| 130 | +static void do_compile(ZIO* z) | |
| 87 | 131 | { |
| 88 | 132 | TFunc* tf=new(TFunc); |
| 133 | + lua_setinput(z); | |
| 89 | 134 | luaI_initTFunc(tf); |
| 90 | − tf->fileName = lua_parsedfile; | |
| 135 | + tf->fileName=lua_parsedfile; | |
| 91 | 136 | lua_parse(tf); |
| 92 | 137 | do_dump(tf); |
| 93 | 138 | } |
| 94 | 139 | |
| 95 | 140 | static void compile(char* filename) |
| 96 | 141 | { |
| 97 | − if (lua_openfile(filename)==NULL) | |
| 142 | + FILE* f= (filename==NULL) ? stdin : fopen(filename, "r"); | |
| 143 | + if (f==NULL) | |
| 144 | + { | |
| 145 | + fprintf(stderr,"luac: cannot open "); | |
| 146 | + perror(filename); | |
| 147 | + exit(1); | |
| 148 | + } | |
| 149 | + else | |
| 150 | + { | |
| 151 | + ZIO z; | |
| 152 | + zFopen(&z,f); | |
| 153 | + luaI_setparsedfile(filename?filename:"(stdin)"); | |
| 154 | + do_compile(&z); | |
| 155 | + fclose(f); | |
| 156 | + } | |
| 157 | +} | |
| 158 | + | |
| 159 | +static void do_undump(ZIO* z) | |
| 160 | +{ | |
| 161 | + TFunc* Main; | |
| 162 | + while ((Main=luaI_undump1(z))) | |
| 163 | + { | |
| 164 | + if (listing) | |
| 165 | + { | |
| 166 | + TFunc* tf; | |
| 167 | + for (tf=Main; tf!=NULL; tf=tf->next) | |
| 168 | + PrintFunction(tf,Main); | |
| 169 | + } | |
| 170 | + luaI_freefunc(Main); /* TODO: free others */ | |
| 171 | + } | |
| 172 | +} | |
| 173 | + | |
| 174 | +static void undump(char* filename) | |
| 175 | +{ | |
| 176 | + FILE* f= (filename==NULL) ? stdin : fopen(filename, "rb"); | |
| 177 | + if (f==NULL) | |
| 98 | 178 | { |
| 99 | 179 | fprintf(stderr,"luac: cannot open "); |
| 100 | 180 | perror(filename); |
| 101 | 181 | exit(1); |
| 102 | 182 | } |
| 103 | − do_compile(); | |
| 104 | − lua_closefile(); | |
| 183 | + else | |
| 184 | + { | |
| 185 | + ZIO z; | |
| 186 | + zFopen(&z,f); | |
| 187 | + do_undump(&z); | |
| 188 | + fclose(f); | |
| 189 | + } | |
| 105 | 190 | } |
| @@ -1,24 +1,25 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** luac.h |
| 3 | 3 | ** definitions for luac compiler |
| 4 | −** $Id: luac.h,v 1.5 1996/03/08 21:41:47 lhf Exp $ | |
| 4 | +** $Id: luac.h,v 1.8 1997/06/19 17:32:08 lhf Exp $ | |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | 7 | #include "inout.h" |
| 8 | −#include "mem.h" | |
| 8 | +#include "luamem.h" | |
| 9 | 9 | #include "opcode.h" |
| 10 | 10 | #include "table.h" |
| 11 | 11 | #include "undump.h" |
| 12 | 12 | |
| 13 | 13 | #define VarStr(i) (lua_table[i].varname->str) |
| 14 | −#define VarLoc(i) (lua_table[i].varname->varindex) | |
| 14 | +#define VarLoc(i) (lua_table[i].varname->u.s.varindex) | |
| 15 | 15 | #define StrStr(i) (lua_constant[i]->str) |
| 16 | −#define StrLoc(i) (lua_constant[i]->constindex) | |
| 16 | +#define StrLoc(i) (lua_constant[i]->u.s.constindex) | |
| 17 | 17 | |
| 18 | 18 | extern Word lua_ntable; |
| 19 | 19 | extern Word lua_nconstant; |
| 20 | 20 | extern int lua_debug; |
| 21 | 21 | |
| 22 | +void LinkFunctions(TFunc* tf); | |
| 23 | +void PrintFunction(TFunc* tf, TFunc* Main); | |
| 22 | 24 | void DumpHeader(FILE* D); |
| 23 | 25 | void DumpFunction(TFunc* tf, FILE* D); |
| 24 | −void PrintFunction(TFunc* tf); | |
| @@ -3,7 +3,7 @@ · 2 unmodified lines | ||
| 3 | 3 | ** print bytecodes |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char* rcs_print="$Id: print.c,v 1.11 1996/11/18 11:24:16 lhf Exp $"; | |
| 6 | +char* rcs_print="$Id: print.c,v 1.17 1997/06/25 17:07:28 lhf Exp $"; | |
| 7 | 7 | |
| 8 | 8 | #include <stdio.h> |
| 9 | 9 | #include <stdlib.h> |
| @@ -11,20 +11,134 @@ char* rcs_print="$Id: print.c,v 1.11 1996/11/18 11:24:16 lhf Exp $"; · 1 unmodified line | ||
| 11 | 11 | #include "luac.h" |
| 12 | 12 | #include "print.h" |
| 13 | 13 | |
| 14 | −static LocVar* V=NULL; | |
| 15 | − | |
| 16 | −static char* LocStr(int i) | |
| 14 | +void LinkFunctions(TFunc* m) | |
| 17 | 15 | { |
| 18 | − if (V==NULL) return ""; else return V[i].varname->str; | |
| 16 | + static TFunc* lastF; /* list of functions seen in code */ | |
| 17 | + Byte* code=m->code; | |
| 18 | + Byte* end=code+m->size; | |
| 19 | + Byte* p; | |
| 20 | + if (IsMain(m)) lastF=m; | |
| 21 | + for (p=code; p!=end;) | |
| 22 | + { | |
| 23 | + int op=*p; | |
| 24 | + int at=p-code+1; | |
| 25 | + switch (op) | |
| 26 | + { | |
| 27 | + case PUSHNIL: | |
| 28 | + case PUSH0: | |
| 29 | + case PUSH1: | |
| 30 | + case PUSH2: | |
| 31 | + case PUSHLOCAL0: | |
| 32 | + case PUSHLOCAL1: | |
| 33 | + case PUSHLOCAL2: | |
| 34 | + case PUSHLOCAL3: | |
| 35 | + case PUSHLOCAL4: | |
| 36 | + case PUSHLOCAL5: | |
| 37 | + case PUSHLOCAL6: | |
| 38 | + case PUSHLOCAL7: | |
| 39 | + case PUSHLOCAL8: | |
| 40 | + case PUSHLOCAL9: | |
| 41 | + case PUSHINDEXED: | |
| 42 | + case STORELOCAL0: | |
| 43 | + case STORELOCAL1: | |
| 44 | + case STORELOCAL2: | |
| 45 | + case STORELOCAL3: | |
| 46 | + case STORELOCAL4: | |
| 47 | + case STORELOCAL5: | |
| 48 | + case STORELOCAL6: | |
| 49 | + case STORELOCAL7: | |
| 50 | + case STORELOCAL8: | |
| 51 | + case STORELOCAL9: | |
| 52 | + case STOREINDEXED0: | |
| 53 | + case ADJUST0: | |
| 54 | + case EQOP: | |
| 55 | + case LTOP: | |
| 56 | + case LEOP: | |
| 57 | + case GTOP: | |
| 58 | + case GEOP: | |
| 59 | + case ADDOP: | |
| 60 | + case SUBOP: | |
| 61 | + case MULTOP: | |
| 62 | + case DIVOP: | |
| 63 | + case POWOP: | |
| 64 | + case CONCOP: | |
| 65 | + case MINUSOP: | |
| 66 | + case NOTOP: | |
| 67 | + case POP: | |
| 68 | + case RETCODE0: | |
| 69 | + p++; | |
| 70 | + break; | |
| 71 | + case PUSHBYTE: | |
| 72 | + case PUSHLOCAL: | |
| 73 | + case STORELOCAL: | |
| 74 | + case STOREINDEXED: | |
| 75 | + case STORELIST0: | |
| 76 | + case ADJUST: | |
| 77 | + case RETCODE: | |
| 78 | + case VARARGS: | |
| 79 | + case STOREMAP: | |
| 80 | + p+=2; | |
| 81 | + break; | |
| 82 | + case PUSHWORD: | |
| 83 | + case PUSHSTRING: | |
| 84 | + case PUSHGLOBAL: | |
| 85 | + case PUSHSELF: | |
| 86 | + case STOREGLOBAL: | |
| 87 | + case CREATEARRAY: | |
| 88 | + case ONTJMP: | |
| 89 | + case ONFJMP: | |
| 90 | + case JMP: | |
| 91 | + case UPJMP: | |
| 92 | + case IFFJMP: | |
| 93 | + case IFFUPJMP: | |
| 94 | + case CALLFUNC: | |
| 95 | + case SETLINE: | |
| 96 | + case STORELIST: | |
| 97 | + p+=3; | |
| 98 | + break; | |
| 99 | + case PUSHFLOAT: | |
| 100 | + p+=5; /* assumes sizeof(float)==4 */ | |
| 101 | + break; | |
| 102 | + case PUSHFUNCTION: | |
| 103 | + { | |
| 104 | + TFunc* tf; | |
| 105 | + p++; | |
| 106 | + get_code(tf,p); | |
| 107 | + tf->marked=at; | |
| 108 | + tf->next=NULL; /* TODO: remove? */ | |
| 109 | + lastF=lastF->next=tf; | |
| 110 | + break; | |
| 111 | + } | |
| 112 | + case STORERECORD: | |
| 113 | + { | |
| 114 | + int n=*++p; | |
| 115 | + p+=2*n+1; | |
| 116 | + break; | |
| 117 | + } | |
| 118 | + default: /* cannot happen */ | |
| 119 | + fprintf(stderr,"luac: bad opcode %d at %d\n",*p,(int)(p-code)); | |
| 120 | + exit(1); | |
| 121 | + break; | |
| 122 | + } | |
| 123 | + } | |
| 19 | 124 | } |
| 20 | 125 | |
| 21 | −static void PrintCode(Byte* code, Byte* end) | |
| 126 | +#define LocStr(i) luaI_getlocalname(tf,i+1,line) | |
| 127 | + | |
| 128 | +static void PrintCode(TFunc* tf) | |
| 22 | 129 | { |
| 130 | + Byte* code=tf->code; | |
| 131 | + Byte* end=code+tf->size; | |
| 23 | 132 | Byte* p; |
| 133 | + int line=0; | |
| 24 | 134 | for (p=code; p!=end;) |
| 25 | 135 | { |
| 26 | − OpCode op=(OpCode)*p; | |
| 27 | − if (op>SETLINE) op=SETLINE+1; | |
| 136 | + int op=*p; | |
| 137 | + if (op>=NOPCODES) | |
| 138 | + { | |
| 139 | + fprintf(stderr,"luac: bad opcode %d at %d\n",op,(int)(p-code)); | |
| 140 | + exit(1); | |
| 141 | + } | |
| 28 | 142 | printf("%6d\t%s",(int)(p-code),OpCodeName[op]); |
| 29 | 143 | switch (op) |
| 30 | 144 | { |
| @@ -64,7 +178,7 @@ static void PrintCode(Byte* code, Byte* end) · 33 unmodified lines | ||
| 64 | 178 | case PUSHLOCAL9: |
| 65 | 179 | { |
| 66 | 180 | int i=op-PUSHLOCAL0; |
| 67 | − printf("\t%d\t; %s",i,LocStr(i)); | |
| 181 | + if (tf->locvars) printf("\t\t; %s",LocStr(i)); | |
| 68 | 182 | p++; |
| 69 | 183 | break; |
| 70 | 184 | } |
| @@ -80,7 +194,7 @@ static void PrintCode(Byte* code, Byte* end) · 9 unmodified lines | ||
| 80 | 194 | case STORELOCAL9: |
| 81 | 195 | { |
| 82 | 196 | int i=op-STORELOCAL0; |
| 83 | − printf("\t%d\t; %s",i,LocStr(i)); | |
| 197 | + if (tf->locvars) printf("\t\t; %s",LocStr(i)); | |
| 84 | 198 | p++; |
| 85 | 199 | break; |
| 86 | 200 | } |
| @@ -88,7 +202,7 @@ static void PrintCode(Byte* code, Byte* end) · 1 unmodified line | ||
| 88 | 202 | case STORELOCAL: |
| 89 | 203 | { |
| 90 | 204 | int i=*(p+1); |
| 91 | − printf("\t%d\t; %s",i,LocStr(i)); | |
| 205 | + if (tf->locvars) printf("\t%d\t; %s",i,LocStr(i)); | |
| 92 | 206 | p+=2; |
| 93 | 207 | break; |
| 94 | 208 | } |
| @@ -97,23 +211,40 @@ static void PrintCode(Byte* code, Byte* end) · 2 unmodified lines | ||
| 97 | 211 | case STORELIST0: |
| 98 | 212 | case ADJUST: |
| 99 | 213 | case RETCODE: |
| 214 | + case VARARGS: | |
| 215 | + case STOREMAP: | |
| 100 | 216 | printf("\t%d",*(p+1)); |
| 101 | 217 | p+=2; |
| 102 | 218 | break; |
| 103 | 219 | case PUSHWORD: |
| 104 | 220 | case CREATEARRAY: |
| 221 | + case SETLINE: | |
| 222 | + { | |
| 223 | + Word w; | |
| 224 | + p++; | |
| 225 | + get_word(w,p); | |
| 226 | + printf("\t%d",w); | |
| 227 | + if (op==SETLINE) line=w; | |
| 228 | + break; | |
| 229 | + } | |
| 105 | 230 | case ONTJMP: |
| 106 | 231 | case ONFJMP: |
| 107 | 232 | case JMP: |
| 108 | − case UPJMP: | |
| 109 | 233 | case IFFJMP: |
| 234 | + { /* suggested by Norman Ramsey <nr@cs.virginia.edu> */ | |
| 235 | + Word w; | |
| 236 | + p++; | |
| 237 | + get_word(w,p); | |
| 238 | + printf("\t%d\t\t; to %d",w,(int)(p-code)+w); | |
| 239 | + break; | |
| 240 | + } | |
| 241 | + case UPJMP: | |
| 110 | 242 | case IFFUPJMP: |
| 111 | − case SETLINE: | |
| 112 | − { | |
| 243 | + { /* suggested by Norman Ramsey <nr@cs.virginia.edu> */ | |
| 113 | 244 | Word w; |
| 114 | 245 | p++; |
| 115 | 246 | get_word(w,p); |
| 116 | − printf("\t%d",w); | |
| 247 | + printf("\t%d\t\t; to %d",w,(int)(p-code)-w); | |
| 117 | 248 | break; |
| 118 | 249 | } |
| 119 | 250 | case PUSHFLOAT: |
| @@ -170,7 +301,8 @@ static void PrintCode(Byte* code, Byte* end) · 50 unmodified lines | ||
| 170 | 301 | break; |
| 171 | 302 | } |
| 172 | 303 | default: |
| 173 | − printf("\tcannot happen: opcode=%d",*p); | |
| 304 | + printf("\tcannot happen: opcode=%d\n",*p); | |
| 305 | + fprintf(stderr,"luac: bad opcode %d at %d\n",op,(int)(p-code)); | |
| 174 | 306 | exit(1); |
| 175 | 307 | break; |
| 176 | 308 | } |
| @@ -178,13 +310,74 @@ static void PrintCode(Byte* code, Byte* end) · 1 unmodified line | ||
| 178 | 310 | } |
| 179 | 311 | } |
| 180 | 312 | |
| 181 | −void PrintFunction(TFunc* tf) | |
| 313 | +#undef LocStr | |
| 314 | + | |
| 315 | +static void PrintLocals(LocVar* v, int n) | |
| 182 | 316 | { |
| 317 | + int i=0; | |
| 318 | + if (v==NULL || v->varname==NULL) return; | |
| 319 | + if (n>0) | |
| 320 | + { | |
| 321 | + printf("parameters:"); | |
| 322 | + for (i=0; i<n; v++,i++) printf(" %s[%d@%d]",v->varname->str,i,v->line); | |
| 323 | + printf("\n"); | |
| 324 | + } | |
| 325 | + if (v->varname!=NULL) | |
| 326 | + { | |
| 327 | + printf("locals:"); | |
| 328 | + for (; v->line>=0; v++) | |
| 329 | + { | |
| 330 | + if (v->varname==NULL) | |
| 331 | +#if 0 | |
| 332 | + printf(" %s[%d@%d]","*",--i,v->line); | |
| 333 | +#else | |
| 334 | + --i; | |
| 335 | +#endif | |
| 336 | + else | |
| 337 | + printf(" %s[%d@%d]",v->varname->str,i++,v->line); | |
| 338 | + } | |
| 339 | + printf("\n"); | |
| 340 | + } | |
| 341 | +} | |
| 342 | + | |
| 343 | +void PrintFunction(TFunc* tf, TFunc* Main) | |
| 344 | +{ | |
| 345 | + int n=0; | |
| 183 | 346 | if (IsMain(tf)) |
| 184 | 347 | printf("\nmain of \"%s\" (%d bytes at %p)\n",tf->fileName,tf->size,tf); |
| 185 | 348 | else |
| 186 | − printf("\nfunction \"%s\":%d (%d bytes at %p); used at main+%d\n", | |
| 349 | + { | |
| 350 | + Byte* p; | |
| 351 | + p=tf->code; /* get number of parameters */ | |
| 352 | + while (*p==SETLINE) p+=3; | |
| 353 | + if (*p==ADJUST) n=p[1]; | |
| 354 | + p=Main->code+tf->marked+sizeof(TFunc*); | |
| 355 | + printf("\nfunction "); | |
| 356 | + switch (*p) /* try to get name */ | |
| 357 | + { | |
| 358 | + case STOREGLOBAL: | |
| 359 | + { | |
| 360 | + Word w; | |
| 361 | + p++; get_word(w,p); printf("%s defined at ",VarStr(w)); | |
| 362 | + break; | |
| 363 | + } | |
| 364 | + case STOREINDEXED0: /* try method definition */ | |
| 365 | + { | |
| 366 | + if (p[-11]==PUSHGLOBAL && p[-8]==PUSHSTRING) | |
| 367 | + { | |
| 368 | + Word w; | |
| 369 | + Byte* op=p; | |
| 370 | + int c=(tf->locvars && n>0 && strcmp(tf->locvars->varname->str,"self")==0) | |
| 371 | + ? ':' : '.'; | |
| 372 | + p=op-11; p++; get_word(w,p); printf("%s%c",VarStr(w),c); | |
| 373 | + p=op-8; p++; get_word(w,p); printf("%s defined at ",StrStr(w)); | |
| 374 | + } | |
| 375 | + break; | |
| 376 | + } | |
| 377 | + } | |
| 378 | + printf("\"%s\":%d (%d bytes at %p); used at main+%d\n", | |
| 187 | 379 | tf->fileName,tf->lineDefined,tf->size,tf,tf->marked); |
| 188 | − V=tf->locvars; | |
| 189 | − PrintCode(tf->code,tf->code+tf->size); | |
| 380 | + } | |
| 381 | + PrintLocals(tf->locvars,n); | |
| 382 | + PrintCode(tf); | |
| 190 | 383 | } |
| @@ -1,10 +1,10 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** print.h |
| 3 | 3 | ** opcode names |
| 4 | −** $Id: print.h,v 1.1 1996/02/23 19:04:13 lhf Exp $ | |
| 4 | +** $Id: print.h,v 1.3 1997/04/14 14:42:50 lhf Exp $ | |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | −static char* OpCodeName[]={ /* attention: same order as enum in opcode.h */ | |
| 7 | +static char* OpCodeName[]={ /* ATTENTION: same order as enum in opcode.h */ | |
| 8 | 8 | "PUSHNIL", |
| 9 | 9 | "PUSH0", |
| 10 | 10 | "PUSH1", |
| @@ -72,5 +72,8 @@ static char* OpCodeName[]={ /* attention: same order as enum in opcode.h */ · 61 unmodified lines | ||
| 72 | 72 | "RETCODE0", |
| 73 | 73 | "RETCODE", |
| 74 | 74 | "SETLINE", |
| 75 | − "" | |
| 75 | + "VARARGS", | |
| 76 | + "STOREMAP" | |
| 76 | 77 | }; |
| 78 | + | |
| 79 | +#define NOPCODES (sizeof(OpCodeName)/sizeof(OpCodeName[0])) | |
| @@ -0,0 +1,159 @@ | ||
| 1 | +/* | |
| 2 | +** mem.c | |
| 3 | +** TecCGraf - PUC-Rio | |
| 4 | +*/ | |
| 5 | + | |
| 6 | +char *rcs_luamem = "$Id: luamem.c,v 1.16 1997/04/01 21:23:20 roberto Exp $"; | |
| 7 | + | |
| 8 | +#include <stdlib.h> | |
| 9 | + | |
| 10 | +#include "luamem.h" | |
| 11 | +#include "lua.h" | |
| 12 | + | |
| 13 | + | |
| 14 | +#define DEBUG 0 | |
| 15 | + | |
| 16 | +#if !DEBUG | |
| 17 | + | |
| 18 | +void luaI_free (void *block) | |
| 19 | +{ | |
| 20 | + if (block) | |
| 21 | + { | |
| 22 | + *((char *)block) = -1; /* to catch errors */ | |
| 23 | + free(block); | |
| 24 | + } | |
| 25 | +} | |
| 26 | + | |
| 27 | + | |
| 28 | +void *luaI_realloc (void *oldblock, unsigned long size) | |
| 29 | +{ | |
| 30 | + void *block; | |
| 31 | + size_t s = (size_t)size; | |
| 32 | + if (s != size) | |
| 33 | + lua_error("Allocation Error: Block too big"); | |
| 34 | + block = oldblock ? realloc(oldblock, s) : malloc(s); | |
| 35 | + if (block == NULL) | |
| 36 | + lua_error(memEM); | |
| 37 | + return block; | |
| 38 | +} | |
| 39 | + | |
| 40 | + | |
| 41 | +int luaI_growvector (void **block, unsigned long nelems, int size, | |
| 42 | + char *errormsg, unsigned long limit) | |
| 43 | +{ | |
| 44 | + if (nelems >= limit) | |
| 45 | + lua_error(errormsg); | |
| 46 | + nelems = (nelems == 0) ? 20 : nelems*2; | |
| 47 | + if (nelems > limit) | |
| 48 | + nelems = limit; | |
| 49 | + *block = luaI_realloc(*block, nelems*size); | |
| 50 | + return (int)nelems; | |
| 51 | +} | |
| 52 | + | |
| 53 | + | |
| 54 | +void* luaI_buffer (unsigned long size) | |
| 55 | +{ | |
| 56 | + static unsigned long buffsize = 0; | |
| 57 | + static char* buffer = NULL; | |
| 58 | + if (size > buffsize) | |
| 59 | + buffer = luaI_realloc(buffer, buffsize=size); | |
| 60 | + return buffer; | |
| 61 | +} | |
| 62 | + | |
| 63 | +#else | |
| 64 | +/* DEBUG */ | |
| 65 | + | |
| 66 | +#include <stdio.h> | |
| 67 | + | |
| 68 | +# define assert(ex) {if (!(ex)){(void)fprintf(stderr, \ | |
| 69 | + "Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);exit(1);}} | |
| 70 | + | |
| 71 | +#define MARK 55 | |
| 72 | + | |
| 73 | +static unsigned long numblocks = 0; | |
| 74 | +static unsigned long totalmem = 0; | |
| 75 | + | |
| 76 | + | |
| 77 | +static void message (void) | |
| 78 | +{ | |
| 79 | +#define inrange(x,y) ((x) < (((y)*3)/2) && (x) > (((y)*2)/3)) | |
| 80 | + static int count = 0; | |
| 81 | + static unsigned long lastnumblocks = 0; | |
| 82 | + static unsigned long lasttotalmem = 0; | |
| 83 | + if (!inrange(numblocks, lastnumblocks) || !inrange(totalmem, lasttotalmem) | |
| 84 | + || count++ >= 5000) | |
| 85 | + { | |
| 86 | + fprintf(stderr,"blocks = %lu mem = %luK\n", numblocks, totalmem/1000); | |
| 87 | + count = 0; | |
| 88 | + lastnumblocks = numblocks; | |
| 89 | + lasttotalmem = totalmem; | |
| 90 | + } | |
| 91 | +} | |
| 92 | + | |
| 93 | + | |
| 94 | +void luaI_free (void *block) | |
| 95 | +{ | |
| 96 | + if (block) | |
| 97 | + { | |
| 98 | + unsigned long *b = (unsigned long *)block - 1; | |
| 99 | + unsigned long size = *b; | |
| 100 | + assert(*(((char *)b)+size+sizeof(unsigned long)) == MARK); | |
| 101 | + numblocks--; | |
| 102 | + totalmem -= size; | |
| 103 | + free(b); | |
| 104 | + message(); | |
| 105 | + } | |
| 106 | +} | |
| 107 | + | |
| 108 | + | |
| 109 | +void *luaI_realloc (void *oldblock, unsigned long size) | |
| 110 | +{ | |
| 111 | + unsigned long *block; | |
| 112 | + unsigned long realsize = sizeof(unsigned long)+size+sizeof(char); | |
| 113 | + if (realsize != (size_t)realsize) | |
| 114 | + lua_error("Allocation Error: Block too big"); | |
| 115 | + if (oldblock) | |
| 116 | + { | |
| 117 | + unsigned long *b = (unsigned long *)oldblock - 1; | |
| 118 | + unsigned long oldsize = *b; | |
| 119 | + assert(*(((char *)b)+oldsize+sizeof(unsigned long)) == MARK); | |
| 120 | + totalmem -= oldsize; | |
| 121 | + numblocks--; | |
| 122 | + block = (unsigned long *)realloc(b, realsize); | |
| 123 | + } | |
| 124 | + else | |
| 125 | + block = (unsigned long *)malloc(realsize); | |
| 126 | + if (block == NULL) | |
| 127 | + lua_error("not enough memory"); | |
| 128 | + totalmem += size; | |
| 129 | + numblocks++; | |
| 130 | + *block = size; | |
| 131 | + *(((char *)block)+size+sizeof(unsigned long)) = MARK; | |
| 132 | + message(); | |
| 133 | + return block+1; | |
| 134 | +} | |
| 135 | + | |
| 136 | + | |
| 137 | +int luaI_growvector (void **block, unsigned long nelems, int size, | |
| 138 | + char *errormsg, unsigned long limit) | |
| 139 | +{ | |
| 140 | + if (nelems >= limit) | |
| 141 | + lua_error(errormsg); | |
| 142 | + nelems = (nelems == 0) ? 20 : nelems*2; | |
| 143 | + if (nelems > limit) | |
| 144 | + nelems = limit; | |
| 145 | + *block = luaI_realloc(*block, nelems*size); | |
| 146 | + return (int)nelems; | |
| 147 | +} | |
| 148 | + | |
| 149 | + | |
| 150 | +void* luaI_buffer (unsigned long size) | |
| 151 | +{ | |
| 152 | + static unsigned long buffsize = 0; | |
| 153 | + static char* buffer = NULL; | |
| 154 | + if (size > buffsize) | |
| 155 | + buffer = luaI_realloc(buffer, buffsize=size); | |
| 156 | + return buffer; | |
| 157 | +} | |
| 158 | + | |
| 159 | +#endif | |
| @@ -1,11 +1,11 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** mem.c |
| 3 | 3 | ** memory manager for lua |
| 4 | −** $Id: mem.h,v 1.8 1996/05/24 14:31:10 roberto Exp $ | |
| 4 | +** $Id: luamem.h,v 1.9 1997/03/31 14:10:11 roberto Exp $ | |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | −#ifndef mem_h | |
| 8 | −#define mem_h | |
| 7 | +#ifndef luamem_h | |
| 8 | +#define luamem_h | |
| 9 | 9 | |
| 10 | 10 | #ifndef NULL |
| 11 | 11 | #define NULL 0 |
| @@ -1,58 +0,0 @@ | ||
| 1 | −/* | |
| 2 | −** mem.c | |
| 3 | −** TecCGraf - PUC-Rio | |
| 4 | −*/ | |
| 5 | − | |
| 6 | −char *rcs_mem = "$Id: mem.c,v 1.13 1996/05/24 14:31:10 roberto Exp $"; | |
| 7 | − | |
| 8 | −#include <stdlib.h> | |
| 9 | − | |
| 10 | −#include "mem.h" | |
| 11 | −#include "lua.h" | |
| 12 | − | |
| 13 | − | |
| 14 | −void luaI_free (void *block) | |
| 15 | −{ | |
| 16 | − if (block) | |
| 17 | − { | |
| 18 | − *((int *)block) = -1; /* to catch errors */ | |
| 19 | − free(block); | |
| 20 | − } | |
| 21 | −} | |
| 22 | − | |
| 23 | − | |
| 24 | −void *luaI_realloc (void *oldblock, unsigned long size) | |
| 25 | −{ | |
| 26 | − void *block; | |
| 27 | − size_t s = (size_t)size; | |
| 28 | − if (s != size) | |
| 29 | − lua_error("Allocation Error: Block too big"); | |
| 30 | − block = oldblock ? realloc(oldblock, s) : malloc(s); | |
| 31 | − if (block == NULL) | |
| 32 | − lua_error(memEM); | |
| 33 | − return block; | |
| 34 | −} | |
| 35 | − | |
| 36 | − | |
| 37 | −int luaI_growvector (void **block, unsigned long nelems, int size, | |
| 38 | − char *errormsg, unsigned long limit) | |
| 39 | −{ | |
| 40 | − if (nelems >= limit) | |
| 41 | − lua_error(errormsg); | |
| 42 | − nelems = (nelems == 0) ? 20 : nelems*2; | |
| 43 | − if (nelems > limit) | |
| 44 | − nelems = limit; | |
| 45 | − *block = luaI_realloc(*block, nelems*size); | |
| 46 | − return (int)nelems; | |
| 47 | −} | |
| 48 | − | |
| 49 | − | |
| 50 | −void* luaI_buffer (unsigned long size) | |
| 51 | −{ | |
| 52 | − static unsigned long buffsize = 0; | |
| 53 | − static char* buffer = NULL; | |
| 54 | − if (size > buffsize) | |
| 55 | − buffer = luaI_realloc(buffer, buffsize=size); | |
| 56 | − return buffer; | |
| 57 | −} | |
| 58 | − | |
| @@ -3,7 +3,7 @@ · 2 unmodified lines | ||
| 3 | 3 | ** TecCGraf - PUC-Rio |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char *rcs_opcode="$Id: opcode.c,v 3.77 1996/11/18 13:48:44 roberto Exp $"; | |
| 6 | +char *rcs_opcode="$Id: opcode.c,v 4.15 1997/06/26 21:40:57 roberto Exp $"; | |
| 7 | 7 | |
| 8 | 8 | #include <setjmp.h> |
| 9 | 9 | #include <stdio.h> |
| @@ -11,17 +11,18 @@ char *rcs_opcode="$Id: opcode.c,v 3.77 1996/11/18 13:48:44 roberto Exp $"; · 1 unmodified line | ||
| 11 | 11 | #include <stdlib.h> |
| 12 | 12 | |
| 13 | 13 | #include "luadebug.h" |
| 14 | −#include "mem.h" | |
| 14 | +#include "luamem.h" | |
| 15 | 15 | #include "opcode.h" |
| 16 | 16 | #include "hash.h" |
| 17 | 17 | #include "inout.h" |
| 18 | 18 | #include "table.h" |
| 19 | 19 | #include "lua.h" |
| 20 | 20 | #include "fallback.h" |
| 21 | −#include "undump.h" | |
| 21 | +#include "auxlib.h" | |
| 22 | +#include "lex.h" | |
| 22 | 23 | |
| 23 | −#define tonumber(o) ((tag(o) != LUA_T_NUMBER) && (lua_tonumber(o) != 0)) | |
| 24 | −#define tostring(o) ((tag(o) != LUA_T_STRING) && (lua_tostring(o) != 0)) | |
| 24 | +#define tonumber(o) ((ttype(o) != LUA_T_NUMBER) && (lua_tonumber(o) != 0)) | |
| 25 | +#define tostring(o) ((ttype(o) != LUA_T_STRING) && (lua_tostring(o) != 0)) | |
| 25 | 26 | |
| 26 | 27 | |
| 27 | 28 | #define STACK_SIZE 128 |
| @@ -32,14 +33,14 @@ char *rcs_opcode="$Id: opcode.c,v 3.77 1996/11/18 13:48:44 roberto Exp $"; · 4 unmodified lines | ||
| 32 | 33 | |
| 33 | 34 | typedef int StkId; /* index to stack elements */ |
| 34 | 35 | |
| 35 | −static Object initial_stack; | |
| 36 | +static TObject initial_stack; | |
| 36 | 37 | |
| 37 | −static Object *stackLimit = &initial_stack+1; | |
| 38 | −static Object *stack = &initial_stack; | |
| 39 | −static Object *top = &initial_stack; | |
| 38 | +static TObject *stackLimit = &initial_stack+1; | |
| 39 | +static TObject *stack = &initial_stack; | |
| 40 | +static TObject *top = &initial_stack; | |
| 40 | 41 | |
| 41 | 42 | |
| 42 | −/* macros to convert from lua_Object to (Object *) and back */ | |
| 43 | +/* macros to convert from lua_Object to (TObject *) and back */ | |
| 43 | 44 | |
| 44 | 45 | #define Address(lo) ((lo)+stack-1) |
| 45 | 46 | #define Ref(st) ((st)-stack+1) |
| @@ -51,13 +52,13 @@ static Object *top = &initial_stack; · 5 unmodified lines | ||
| 51 | 52 | #define incr_top if (++top >= stackLimit) growstack() |
| 52 | 53 | |
| 53 | 54 | struct C_Lua_Stack { |
| 54 | − StkId base; /* when Lua calls C or C calls Lua, points to */ | |
| 55 | − /* the first slot after the last parameter. */ | |
| 56 | − int num; /* when Lua calls C, has the number of parameters; */ | |
| 57 | − /* when C calls Lua, has the number of results. */ | |
| 55 | + StkId base; /* when Lua calls C or C calls Lua, points to */ | |
| 56 | + /* the first slot after the last parameter. */ | |
| 57 | + StkId lua2C; /* points to first element of "array" lua2C */ | |
| 58 | + int num; /* size of "array" lua2C */ | |
| 58 | 59 | }; |
| 59 | 60 | |
| 60 | −static struct C_Lua_Stack CLS_current = {0, 0}; | |
| 61 | +static struct C_Lua_Stack CLS_current = {0, 0, 0}; | |
| 61 | 62 | |
| 62 | 63 | static jmp_buf *errorJmp = NULL; /* current error recover point */ |
| 63 | 64 | |
| @@ -72,7 +73,7 @@ static void do_call (StkId base, int nResults); · 8 unmodified lines | ||
| 72 | 73 | |
| 73 | 74 | |
| 74 | 75 | |
| 75 | −Object *luaI_Address (lua_Object o) | |
| 76 | +TObject *luaI_Address (lua_Object o) | |
| 76 | 77 | { |
| 77 | 78 | return Address(o); |
| 78 | 79 | } |
| @@ -84,7 +85,7 @@ Object *luaI_Address (lua_Object o) · 5 unmodified lines | ||
| 84 | 85 | static void lua_initstack (void) |
| 85 | 86 | { |
| 86 | 87 | Long maxstack = STACK_SIZE; |
| 87 | − stack = newvector(maxstack, Object); | |
| 88 | + stack = newvector(maxstack, TObject); | |
| 88 | 89 | stackLimit = stack+maxstack; |
| 89 | 90 | top = stack; |
| 90 | 91 | *(top++) = initial_stack; |
| @@ -105,7 +106,7 @@ static void growstack (void) · 14 unmodified lines | ||
| 105 | 106 | static int limit = STACK_LIMIT; |
| 106 | 107 | StkId t = top-stack; |
| 107 | 108 | Long stacksize = stackLimit - stack; |
| 108 | − stacksize = growvector(&stack, stacksize, Object, stackEM, limit+100); | |
| 109 | + stacksize = growvector(&stack, stacksize, TObject, stackEM, limit+100); | |
| 109 | 110 | stackLimit = stack+stacksize; |
| 110 | 111 | top = stack + t; |
| 111 | 112 | if (stacksize >= limit) |
| @@ -134,16 +135,16 @@ static char *lua_strconc (char *l, char *r) · 22 unmodified lines | ||
| 134 | 135 | ** Convert, if possible, to a number object. |
| 135 | 136 | ** Return 0 if success, not 0 if error. |
| 136 | 137 | */ |
| 137 | −static int lua_tonumber (Object *obj) | |
| 138 | +static int lua_tonumber (TObject *obj) | |
| 138 | 139 | { |
| 139 | 140 | float t; |
| 140 | 141 | char c; |
| 141 | − if (tag(obj) != LUA_T_STRING) | |
| 142 | + if (ttype(obj) != LUA_T_STRING) | |
| 142 | 143 | return 1; |
| 143 | 144 | else if (sscanf(svalue(obj), "%f %c",&t, &c) == 1) |
| 144 | 145 | { |
| 145 | 146 | nvalue(obj) = t; |
| 146 | − tag(obj) = LUA_T_NUMBER; | |
| 147 | + ttype(obj) = LUA_T_NUMBER; | |
| 147 | 148 | return 0; |
| 148 | 149 | } |
| 149 | 150 | else |
| @@ -152,39 +153,54 @@ static int lua_tonumber (Object *obj) · 2 unmodified lines | ||
| 152 | 153 | |
| 153 | 154 | |
| 154 | 155 | /* |
| 155 | −** Convert, if possible, to a string tag | |
| 156 | +** Convert, if possible, to a string ttype | |
| 156 | 157 | ** Return 0 in success or not 0 on error. |
| 157 | 158 | */ |
| 158 | −static int lua_tostring (Object *obj) | |
| 159 | +static int lua_tostring (TObject *obj) | |
| 159 | 160 | { |
| 160 | − char s[256]; | |
| 161 | − if (tag(obj) != LUA_T_NUMBER) | |
| 162 | − return 1; | |
| 163 | − if ((int) nvalue(obj) == nvalue(obj)) | |
| 164 | − sprintf (s, "%d", (int) nvalue(obj)); | |
| 165 | − else | |
| 166 | − sprintf (s, "%g", nvalue(obj)); | |
| 167 | − tsvalue(obj) = lua_createstring(s); | |
| 168 | − tag(obj) = LUA_T_STRING; | |
| 169 | − return 0; | |
| 161 | + if (ttype(obj) != LUA_T_NUMBER) | |
| 162 | + return 1; | |
| 163 | + else { | |
| 164 | + char s[60]; | |
| 165 | + real f = nvalue(obj); | |
| 166 | + int i; | |
| 167 | + if ((real)(-MAX_INT) <= f && f <= (real)MAX_INT && (real)(i=(int)f) == f) | |
| 168 | + sprintf (s, "%d", i); | |
| 169 | + else | |
| 170 | + sprintf (s, "%g", nvalue(obj)); | |
| 171 | + tsvalue(obj) = lua_createstring(s); | |
| 172 | + ttype(obj) = LUA_T_STRING; | |
| 173 | + return 0; | |
| 174 | + } | |
| 170 | 175 | } |
| 171 | 176 | |
| 172 | 177 | |
| 173 | 178 | /* |
| 174 | 179 | ** Adjust stack. Set top to the given value, pushing NILs if needed. |
| 175 | 180 | */ |
| 176 | −static void adjust_top (StkId newtop) | |
| 181 | +static void adjust_top_aux (StkId newtop) | |
| 177 | 182 | { |
| 178 | − Object *nt; | |
| 183 | + TObject *nt; | |
| 179 | 184 | lua_checkstack(stack+newtop); |
| 180 | 185 | nt = stack+newtop; /* warning: previous call may change stack */ |
| 181 | − while (top < nt) tag(top++) = LUA_T_NIL; | |
| 182 | − top = nt; /* top could be bigger than newtop */ | |
| 186 | + while (top < nt) ttype(top++) = LUA_T_NIL; | |
| 183 | 187 | } |
| 184 | 188 | |
| 189 | + | |
| 190 | +#define adjust_top(newtop) { if (newtop <= top-stack) \ | |
| 191 | + top = stack+newtop; \ | |
| 192 | + else adjust_top_aux(newtop); } | |
| 193 | + | |
| 185 | 194 | #define adjustC(nParams) adjust_top(CLS_current.base+nParams) |
| 186 | 195 | |
| 187 | 196 | |
| 197 | +static void checkCparams (int nParams) | |
| 198 | +{ | |
| 199 | + if (top-stack < CLS_current.base+nParams) | |
| 200 | + lua_error("API error - wrong number of arguments in C2lua stack"); | |
| 201 | +} | |
| 202 | + | |
| 203 | + | |
| 188 | 204 | /* |
| 189 | 205 | ** Open a hole below "nelems" from the top. |
| 190 | 206 | */ |
| @@ -197,13 +213,37 @@ static void open_stack (int nelems) · 6 unmodified lines | ||
| 197 | 213 | } |
| 198 | 214 | |
| 199 | 215 | |
| 216 | +static lua_Object put_luaObject (TObject *o) | |
| 217 | +{ | |
| 218 | + open_stack((top-stack)-CLS_current.base); | |
| 219 | + stack[CLS_current.base++] = *o; | |
| 220 | + return CLS_current.base; /* this is +1 real position (see Ref) */ | |
| 221 | +} | |
| 222 | + | |
| 223 | + | |
| 224 | +static lua_Object put_luaObjectonTop (void) | |
| 225 | +{ | |
| 226 | + open_stack((top-stack)-CLS_current.base); | |
| 227 | + stack[CLS_current.base++] = *(--top); | |
| 228 | + return CLS_current.base; /* this is +1 real position (see Ref) */ | |
| 229 | +} | |
| 230 | + | |
| 231 | + | |
| 232 | +lua_Object lua_pop (void) | |
| 233 | +{ | |
| 234 | + checkCparams(1); | |
| 235 | + return put_luaObjectonTop(); | |
| 236 | +} | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 200 | 240 | /* |
| 201 | 241 | ** call Line hook |
| 202 | 242 | */ |
| 203 | 243 | static void lineHook (int line) |
| 204 | 244 | { |
| 205 | 245 | struct C_Lua_Stack oldCLS = CLS_current; |
| 206 | − StkId old_top = CLS_current.base = top-stack; | |
| 246 | + StkId old_top = CLS_current.lua2C = CLS_current.base = top-stack; | |
| 207 | 247 | CLS_current.num = 0; |
| 208 | 248 | (*lua_linehook)(line); |
| 209 | 249 | top = stack+old_top; |
| @@ -218,13 +258,13 @@ static void lineHook (int line) · 8 unmodified lines | ||
| 218 | 258 | static void callHook (StkId base, lua_Type type, int isreturn) |
| 219 | 259 | { |
| 220 | 260 | struct C_Lua_Stack oldCLS = CLS_current; |
| 221 | − StkId old_top = CLS_current.base = top-stack; | |
| 261 | + StkId old_top = CLS_current.lua2C = CLS_current.base = top-stack; | |
| 222 | 262 | CLS_current.num = 0; |
| 223 | 263 | if (isreturn) |
| 224 | 264 | (*lua_callhook)(LUA_NOOBJECT, "(return)", 0); |
| 225 | 265 | else |
| 226 | 266 | { |
| 227 | − Object *f = stack+base-1; | |
| 267 | + TObject *f = stack+base-1; | |
| 228 | 268 | if (type == LUA_T_MARK) |
| 229 | 269 | (*lua_callhook)(Ref(f), f->value.tf->fileName, f->value.tf->lineDefined); |
| 230 | 270 | else |
| @@ -246,6 +286,7 @@ static StkId callC (lua_CFunction func, StkId base) · 15 unmodified lines | ||
| 246 | 286 | StkId firstResult; |
| 247 | 287 | CLS_current.num = (top-stack) - base; |
| 248 | 288 | /* incorporate parameters on the stack */ |
| 289 | + CLS_current.lua2C = base; | |
| 249 | 290 | CLS_current.base = base+CLS_current.num; /* == top-stack */ |
| 250 | 291 | if (lua_callhook) |
| 251 | 292 | callHook(base, LUA_T_CMARK, 0); |
| @@ -257,15 +298,11 @@ static StkId callC (lua_CFunction func, StkId base) · 5 unmodified lines | ||
| 257 | 298 | return firstResult; |
| 258 | 299 | } |
| 259 | 300 | |
| 260 | −/* | |
| 261 | −** Call the specified fallback, putting it on the stack below its arguments | |
| 262 | −*/ | |
| 263 | −static void callFB (int fb) | |
| 301 | +static void callIM (TObject *f, int nParams, int nResults) | |
| 264 | 302 | { |
| 265 | − int nParams = luaI_fallBacks[fb].nParams; | |
| 266 | 303 | open_stack(nParams); |
| 267 | − *(top-nParams-1) = luaI_fallBacks[fb].function; | |
| 268 | − do_call((top-stack)-nParams, luaI_fallBacks[fb].nResults); | |
| 304 | + *(top-nParams-1) = *f; | |
| 305 | + do_call((top-stack)-nParams, nResults); | |
| 269 | 306 | } |
| 270 | 307 | |
| 271 | 308 | |
| @@ -278,28 +315,28 @@ static void callFB (int fb) · 6 unmodified lines | ||
| 278 | 315 | static void do_call (StkId base, int nResults) |
| 279 | 316 | { |
| 280 | 317 | StkId firstResult; |
| 281 | − Object *func = stack+base-1; | |
| 318 | + TObject *func = stack+base-1; | |
| 282 | 319 | int i; |
| 283 | − if (tag(func) == LUA_T_CFUNCTION) | |
| 284 | − { | |
| 285 | − tag(func) = LUA_T_CMARK; | |
| 320 | + if (ttype(func) == LUA_T_CFUNCTION) { | |
| 321 | + ttype(func) = LUA_T_CMARK; | |
| 286 | 322 | firstResult = callC(fvalue(func), base); |
| 287 | 323 | } |
| 288 | − else if (tag(func) == LUA_T_FUNCTION) | |
| 289 | − { | |
| 290 | − tag(func) = LUA_T_MARK; | |
| 324 | + else if (ttype(func) == LUA_T_FUNCTION) { | |
| 325 | + ttype(func) = LUA_T_MARK; | |
| 291 | 326 | firstResult = lua_execute(func->value.tf->code, base); |
| 292 | 327 | } |
| 293 | − else | |
| 294 | − { /* func is not a function */ | |
| 295 | − /* Call the fallback for invalid functions */ | |
| 328 | + else { /* func is not a function */ | |
| 329 | + /* Check the tag method for invalid functions */ | |
| 330 | + TObject *im = luaI_getimbyObj(func, IM_FUNCTION); | |
| 331 | + if (ttype(im) == LUA_T_NIL) | |
| 332 | + lua_error("call expression not a function"); | |
| 296 | 333 | open_stack((top-stack)-(base-1)); |
| 297 | − stack[base-1] = luaI_fallBacks[FB_FUNCTION].function; | |
| 334 | + stack[base-1] = *im; | |
| 298 | 335 | do_call(base, nResults); |
| 299 | 336 | return; |
| 300 | 337 | } |
| 301 | 338 | /* adjust the number of results */ |
| 302 | − if (nResults != MULT_RET && top - (stack+firstResult) != nResults) | |
| 339 | + if (nResults != MULT_RET) | |
| 303 | 340 | adjust_top(firstResult+nResults); |
| 304 | 341 | /* move results to base-1 (to erase parameters and function) */ |
| 305 | 342 | base--; |
| @@ -316,58 +353,110 @@ static void do_call (StkId base, int nResults) · 10 unmodified lines | ||
| 316 | 353 | */ |
| 317 | 354 | static void pushsubscript (void) |
| 318 | 355 | { |
| 319 | − if (tag(top-2) != LUA_T_ARRAY) | |
| 320 | − callFB(FB_GETTABLE); | |
| 321 | − else | |
| 322 | − { | |
| 323 | − Object *h = lua_hashget(avalue(top-2), top-1); | |
| 324 | − if (h == NULL || tag(h) == LUA_T_NIL) | |
| 325 | − callFB(FB_INDEX); | |
| 326 | − else | |
| 327 | − { | |
| 328 | − --top; | |
| 329 | − *(top-1) = *h; | |
| 356 | + TObject *im; | |
| 357 | + if (ttype(top-2) != LUA_T_ARRAY) /* not a table, get "gettable" method */ | |
| 358 | + im = luaI_getimbyObj(top-2, IM_GETTABLE); | |
| 359 | + else { /* object is a table... */ | |
| 360 | + int tg = (top-2)->value.a->htag; | |
| 361 | + im = luaI_getim(tg, IM_GETTABLE); | |
| 362 | + if (ttype(im) == LUA_T_NIL) { /* and does not have a "gettable" method */ | |
| 363 | + TObject *h = lua_hashget(avalue(top-2), top-1); | |
| 364 | + if (h != NULL && ttype(h) != LUA_T_NIL) { | |
| 365 | + --top; | |
| 366 | + *(top-1) = *h; | |
| 367 | + } | |
| 368 | + else if (ttype(im=luaI_getim(tg, IM_INDEX)) != LUA_T_NIL) | |
| 369 | + callIM(im, 2, 1); | |
| 370 | + else { | |
| 371 | + --top; | |
| 372 | + ttype(top-1) = LUA_T_NIL; | |
| 373 | + } | |
| 374 | + return; | |
| 330 | 375 | } |
| 376 | + /* else it has a "gettable" method, go through to next command */ | |
| 377 | + } | |
| 378 | + /* object is not a table, or it has a "gettable" method */ | |
| 379 | + if (ttype(im) != LUA_T_NIL) | |
| 380 | + callIM(im, 2, 1); | |
| 381 | + else | |
| 382 | + lua_error("indexed expression not a table"); | |
| 383 | +} | |
| 384 | + | |
| 385 | + | |
| 386 | +lua_Object lua_rawgettable (void) | |
| 387 | +{ | |
| 388 | + checkCparams(2); | |
| 389 | + if (ttype(top-2) != LUA_T_ARRAY) | |
| 390 | + lua_error("indexed expression not a table in raw gettable"); | |
| 391 | + else { | |
| 392 | + TObject *h = lua_hashget(avalue(top-2), top-1); | |
| 393 | + --top; | |
| 394 | + if (h != NULL) | |
| 395 | + *(top-1) = *h; | |
| 396 | + else | |
| 397 | + ttype(top-1) = LUA_T_NIL; | |
| 331 | 398 | } |
| 399 | + return put_luaObjectonTop(); | |
| 332 | 400 | } |
| 333 | 401 | |
| 334 | 402 | |
| 335 | 403 | /* |
| 336 | 404 | ** Function to store indexed based on values at the top |
| 405 | +** mode = 0: raw store (without internal methods) | |
| 406 | +** mode = 1: normal store (with internal methods) | |
| 407 | +** mode = 2: "deep stack" store (with internal methods) | |
| 337 | 408 | */ |
| 338 | −static void storesubscript (void) | |
| 409 | +static void storesubscript (TObject *t, int mode) | |
| 339 | 410 | { |
| 340 | − if (tag(top-3) != LUA_T_ARRAY) | |
| 341 | − callFB(FB_SETTABLE); | |
| 342 | − else | |
| 343 | − { | |
| 344 | − Object *h = lua_hashdefine (avalue(top-3), top-2); | |
| 345 | − *h = *(top-1); | |
| 346 | − top -= 3; | |
| 347 | − } | |
| 411 | + TObject *im = (mode == 0) ? NULL : luaI_getimbyObj(t, IM_SETTABLE); | |
| 412 | + if (ttype(t) == LUA_T_ARRAY && (im == NULL || ttype(im) == LUA_T_NIL)) { | |
| 413 | + TObject *h = lua_hashdefine(avalue(t), t+1); | |
| 414 | + *h = *(top-1); | |
| 415 | + top -= (mode == 2) ? 1 : 3; | |
| 416 | + } | |
| 417 | + else { /* object is not a table, and/or has a specific "settable" method */ | |
| 418 | + if (im && ttype(im) != LUA_T_NIL) { | |
| 419 | + if (mode == 2) { | |
| 420 | + lua_checkstack(top+2); | |
| 421 | + *(top+1) = *(top-1); | |
| 422 | + *(top) = *(t+1); | |
| 423 | + *(top-1) = *t; | |
| 424 | + top += 2; | |
| 425 | + } | |
| 426 | + callIM(im, 3, 0); | |
| 427 | + } | |
| 428 | + else | |
| 429 | + lua_error("indexed expression not a table"); | |
| 430 | + } | |
| 348 | 431 | } |
| 349 | 432 | |
| 350 | 433 | |
| 351 | 434 | static void getglobal (Word n) |
| 352 | 435 | { |
| 353 | − *top = lua_table[n].object; | |
| 354 | − incr_top; | |
| 355 | − if (tag(top-1) == LUA_T_NIL) | |
| 356 | − { /* must call getglobal fallback */ | |
| 357 | − tag(top-1) = LUA_T_STRING; | |
| 358 | − tsvalue(top-1) = lua_table[n].varname; | |
| 359 | − callFB(FB_GETGLOBAL); | |
| 436 | + TObject *value = &lua_table[n].object; | |
| 437 | + TObject *im = luaI_getimbyObj(value, IM_GETGLOBAL); | |
| 438 | + if (ttype(im) == LUA_T_NIL) { /* default behavior */ | |
| 439 | + *top = *value; | |
| 440 | + incr_top; | |
| 360 | 441 | } |
| 442 | + else { | |
| 443 | + ttype(top) = LUA_T_STRING; | |
| 444 | + tsvalue(top) = lua_table[n].varname; | |
| 445 | + incr_top; | |
| 446 | + *top = *value; | |
| 447 | + incr_top; | |
| 448 | + callIM(im, 2, 1); | |
| 449 | + } | |
| 361 | 450 | } |
| 362 | 451 | |
| 363 | 452 | /* |
| 364 | 453 | ** Traverse all objects on stack |
| 365 | 454 | */ |
| 366 | −void lua_travstack (int (*fn)(Object *)) | |
| 455 | +void lua_travstack (int (*fn)(TObject *)) | |
| 367 | 456 | { |
| 368 | − Object *o; | |
| 369 | − for (o = top-1; o >= stack; o--) | |
| 370 | − fn (o); | |
| 457 | + StkId i; | |
| 458 | + for (i = (top-1)-stack; i>=0; i--) | |
| 459 | + fn (stack+i); | |
| 371 | 460 | } |
| 372 | 461 | |
| 373 | 462 | |
| @@ -377,8 +466,11 @@ void lua_travstack (int (*fn)(Object *)) · 3 unmodified lines | ||
| 377 | 466 | |
| 378 | 467 | static void lua_message (char *s) |
| 379 | 468 | { |
| 380 | − lua_pushstring(s); | |
| 381 | − callFB(FB_ERROR); | |
| 469 | + TObject *im = luaI_geterrorim(); | |
| 470 | + if (ttype(im) != LUA_T_NIL) { | |
| 471 | + lua_pushstring(s); | |
| 472 | + callIM(im, 1, 0); | |
| 473 | + } | |
| 382 | 474 | } |
| 383 | 475 | |
| 384 | 476 | /* |
| @@ -399,25 +491,25 @@ void lua_error (char *s) · 14 unmodified lines | ||
| 399 | 491 | |
| 400 | 492 | lua_Function lua_stackedfunction (int level) |
| 401 | 493 | { |
| 402 | − Object *p = top; | |
| 403 | − while (--p >= stack) | |
| 404 | − if (p->tag == LUA_T_MARK || p->tag == LUA_T_CMARK) | |
| 494 | + StkId i; | |
| 495 | + for (i = (top-1)-stack; i>=0; i--) | |
| 496 | + if (stack[i].ttype == LUA_T_MARK || stack[i].ttype == LUA_T_CMARK) | |
| 405 | 497 | if (level-- == 0) |
| 406 | − return Ref(p); | |
| 498 | + return Ref(stack+i); | |
| 407 | 499 | return LUA_NOOBJECT; |
| 408 | 500 | } |
| 409 | 501 | |
| 410 | 502 | |
| 411 | 503 | int lua_currentline (lua_Function func) |
| 412 | 504 | { |
| 413 | − Object *f = Address(func); | |
| 414 | − return (f+1 < top && (f+1)->tag == LUA_T_LINE) ? (f+1)->value.i : -1; | |
| 505 | + TObject *f = Address(func); | |
| 506 | + return (f+1 < top && (f+1)->ttype == LUA_T_LINE) ? (f+1)->value.i : -1; | |
| 415 | 507 | } |
| 416 | 508 | |
| 417 | 509 | |
| 418 | 510 | lua_Object lua_getlocal (lua_Function func, int local_number, char **name) |
| 419 | 511 | { |
| 420 | − Object *f = luaI_Address(func); | |
| 512 | + TObject *f = luaI_Address(func); | |
| 421 | 513 | *name = luaI_getlocalname(f->value.tf, local_number, lua_currentline(func)); |
| 422 | 514 | if (*name) |
| 423 | 515 | { |
| @@ -431,9 +523,9 @@ lua_Object lua_getlocal (lua_Function func, int local_number, char **name) · 7 unmodified lines | ||
| 431 | 523 | |
| 432 | 524 | int lua_setlocal (lua_Function func, int local_number) |
| 433 | 525 | { |
| 434 | − Object *f = Address(func); | |
| 526 | + TObject *f = Address(func); | |
| 435 | 527 | char *name = luaI_getlocalname(f->value.tf, local_number, lua_currentline(func)); |
| 436 | − adjustC(1); | |
| 528 | + checkCparams(1); | |
| 437 | 529 | --top; |
| 438 | 530 | if (name) |
| 439 | 531 | { |
| @@ -446,6 +538,29 @@ int lua_setlocal (lua_Function func, int local_number) · 6 unmodified lines | ||
| 446 | 538 | return 0; |
| 447 | 539 | } |
| 448 | 540 | |
| 541 | +/* | |
| 542 | +** Call the function at CLS_current.base, and incorporate results on | |
| 543 | +** the Lua2C structure. | |
| 544 | +*/ | |
| 545 | +static void do_callinc (int nResults) | |
| 546 | +{ | |
| 547 | + StkId base = CLS_current.base; | |
| 548 | + do_call(base+1, nResults); | |
| 549 | + CLS_current.lua2C = base; /* position of the new results */ | |
| 550 | + CLS_current.num = (top-stack) - base; /* number of results */ | |
| 551 | + CLS_current.base = base + CLS_current.num; /* incorporate results on stack */ | |
| 552 | +} | |
| 553 | + | |
| 554 | + | |
| 555 | +static void do_unprotectedrun (lua_CFunction f, int nParams, int nResults) | |
| 556 | +{ | |
| 557 | + StkId base = (top-stack)-nParams; | |
| 558 | + open_stack(nParams); | |
| 559 | + stack[base].ttype = LUA_T_CFUNCTION; | |
| 560 | + stack[base].value.f = f; | |
| 561 | + do_call(base+1, nResults); | |
| 562 | +} | |
| 563 | + | |
| 449 | 564 | |
| 450 | 565 | /* |
| 451 | 566 | ** Execute a protected call. Assumes that function is at CLS_current.base and |
| @@ -458,15 +573,11 @@ static int do_protectedrun (int nResults) · 6 unmodified lines | ||
| 458 | 573 | struct C_Lua_Stack oldCLS = CLS_current; |
| 459 | 574 | jmp_buf *oldErr = errorJmp; |
| 460 | 575 | errorJmp = &myErrorJmp; |
| 461 | − if (setjmp(myErrorJmp) == 0) | |
| 462 | − { | |
| 463 | − do_call(CLS_current.base+1, nResults); | |
| 464 | − CLS_current.num = (top-stack) - CLS_current.base; /* number of results */ | |
| 465 | − CLS_current.base += CLS_current.num; /* incorporate results on the stack */ | |
| 576 | + if (setjmp(myErrorJmp) == 0) { | |
| 577 | + do_callinc(nResults); | |
| 466 | 578 | status = 0; |
| 467 | 579 | } |
| 468 | − else | |
| 469 | − { /* an error occurred: restore CLS_current and top */ | |
| 580 | + else { /* an error occurred: restore CLS_current and top */ | |
| 470 | 581 | CLS_current = oldCLS; |
| 471 | 582 | top = stack+CLS_current.base; |
| 472 | 583 | status = 1; |
| @@ -479,13 +590,14 @@ int luaI_dorun (TFunc *tf) · 6 unmodified lines | ||
| 479 | 590 | { |
| 480 | 591 | int status; |
| 481 | 592 | adjustC(1); /* one slot for the pseudo-function */ |
| 482 | − stack[CLS_current.base].tag = LUA_T_FUNCTION; | |
| 593 | + stack[CLS_current.base].ttype = LUA_T_FUNCTION; | |
| 483 | 594 | stack[CLS_current.base].value.tf = tf; |
| 484 | 595 | status = do_protectedrun(MULT_RET); |
| 485 | 596 | return status; |
| 486 | 597 | } |
| 487 | 598 | |
| 488 | −static int do_protectedmain (void) | |
| 599 | + | |
| 600 | +int lua_domain (void) | |
| 489 | 601 | { |
| 490 | 602 | TFunc tf; |
| 491 | 603 | int status; |
| @@ -493,23 +605,21 @@ static int do_protectedmain (void) · 1 unmodified line | ||
| 493 | 605 | jmp_buf *oldErr = errorJmp; |
| 494 | 606 | errorJmp = &myErrorJmp; |
| 495 | 607 | luaI_initTFunc(&tf); |
| 496 | − tf.fileName = lua_parsedfile; | |
| 497 | − if (setjmp(myErrorJmp) == 0) | |
| 498 | − { | |
| 608 | + if (setjmp(myErrorJmp) == 0) { | |
| 499 | 609 | lua_parse(&tf); |
| 500 | − status = luaI_dorun(&tf); | |
| 610 | + status = 0; | |
| 501 | 611 | } |
| 502 | − else | |
| 503 | − { | |
| 504 | − status = 1; | |
| 612 | + else { | |
| 505 | 613 | adjustC(0); /* erase extra slot */ |
| 614 | + status = 1; | |
| 506 | 615 | } |
| 616 | + if (status == 0) | |
| 617 | + status = luaI_dorun(&tf); | |
| 507 | 618 | errorJmp = oldErr; |
| 508 | 619 | luaI_free(tf.code); |
| 509 | 620 | return status; |
| 510 | 621 | } |
| 511 | 622 | |
| 512 | − | |
| 513 | 623 | /* |
| 514 | 624 | ** Execute the given lua function. Return 0 on success or 1 on error. |
| 515 | 625 | */ |
| @@ -526,71 +636,31 @@ int lua_callfunction (lua_Object function) · 10 unmodified lines | ||
| 526 | 636 | } |
| 527 | 637 | |
| 528 | 638 | |
| 529 | −int lua_call (char *funcname) | |
| 639 | +lua_Object lua_gettagmethod (int tag, char *event) | |
| 530 | 640 | { |
| 531 | − Word n = luaI_findsymbolbyname(funcname); | |
| 532 | − open_stack((top-stack)-CLS_current.base); | |
| 533 | − stack[CLS_current.base] = s_object(n); | |
| 534 | − return do_protectedrun(MULT_RET); | |
| 641 | + lua_pushnumber(tag); | |
| 642 | + lua_pushstring(event); | |
| 643 | + do_unprotectedrun(luaI_gettagmethod, 2, 1); | |
| 644 | + return put_luaObjectonTop(); | |
| 535 | 645 | } |
| 536 | 646 | |
| 537 | − | |
| 538 | −/* | |
| 539 | −** Open file, generate opcode and execute global statement. Return 0 on | |
| 540 | −** success or non 0 on error. | |
| 541 | −*/ | |
| 542 | −int lua_dofile (char *filename) | |
| 647 | +lua_Object lua_settagmethod (int tag, char *event) | |
| 543 | 648 | { |
| 544 | − int status; | |
| 545 | − int c; | |
| 546 | − FILE *f = lua_openfile(filename); | |
| 547 | − if (f == NULL) | |
| 548 | − return 2; | |
| 549 | − c = fgetc(f); | |
| 550 | − ungetc(c, f); | |
| 551 | − if (c == ID_CHUNK) { | |
| 552 | − f = freopen(filename, "rb", f); /* set binary mode */ | |
| 553 | − status = luaI_undump(f); | |
| 554 | − } | |
| 555 | − else { | |
| 556 | − if (c == '#') | |
| 557 | − while ((c=fgetc(f)) != '\n') /* skip first line */; | |
| 558 | − status = do_protectedmain(); | |
| 559 | − } | |
| 560 | − lua_closefile(); | |
| 561 | − return status; | |
| 649 | + TObject newmethod; | |
| 650 | + checkCparams(1); | |
| 651 | + newmethod = *(--top); | |
| 652 | + lua_pushnumber(tag); | |
| 653 | + lua_pushstring(event); | |
| 654 | + *top = newmethod; incr_top; | |
| 655 | + do_unprotectedrun(luaI_settagmethod, 3, 1); | |
| 656 | + return put_luaObjectonTop(); | |
| 562 | 657 | } |
| 563 | 658 | |
| 564 | −/* | |
| 565 | −** Generate opcode stored on string and execute global statement. Return 0 on | |
| 566 | −** success or non 0 on error. | |
| 567 | −*/ | |
| 568 | −int lua_dostring (char *str) | |
| 659 | +lua_Object lua_seterrormethod (void) | |
| 569 | 660 | { |
| 570 | − int status; | |
| 571 | − if (str == NULL) | |
| 572 | − return 1; | |
| 573 | − lua_openstring(str); | |
| 574 | − status = do_protectedmain(); | |
| 575 | − lua_closestring(); | |
| 576 | − return status; | |
| 577 | −} | |
| 578 | − | |
| 579 | − | |
| 580 | −/* | |
| 581 | −** API: set a function as a fallback | |
| 582 | −*/ | |
| 583 | −lua_Object lua_setfallback (char *name, lua_CFunction fallback) | |
| 584 | −{ | |
| 585 | − adjustC(1); /* one slot for the pseudo-function */ | |
| 586 | − stack[CLS_current.base].tag = LUA_T_CFUNCTION; | |
| 587 | − stack[CLS_current.base].value.f = luaI_setfallback; | |
| 588 | − lua_pushstring(name); | |
| 589 | − lua_pushcfunction(fallback); | |
| 590 | − if (do_protectedrun(1) == 0) | |
| 591 | − return (Ref(top-1)); | |
| 592 | − else | |
| 593 | − return LUA_NOOBJECT; | |
| 661 | + checkCparams(1); | |
| 662 | + do_unprotectedrun(luaI_seterrormethod, 1, 1); | |
| 663 | + return put_luaObjectonTop(); | |
| 594 | 664 | } |
| 595 | 665 | |
| 596 | 666 | |
| @@ -598,12 +668,11 @@ lua_Object lua_setfallback (char *name, lua_CFunction fallback) · 1 unmodified line | ||
| 598 | 668 | ** API: receives on the stack the table and the index. |
| 599 | 669 | ** returns the value. |
| 600 | 670 | */ |
| 601 | −lua_Object lua_getsubscript (void) | |
| 671 | +lua_Object lua_gettable (void) | |
| 602 | 672 | { |
| 603 | − adjustC(2); | |
| 673 | + checkCparams(2); | |
| 604 | 674 | pushsubscript(); |
| 605 | − CLS_current.base++; /* incorporate object in the stack */ | |
| 606 | − return (Ref(top-1)); | |
| 675 | + return put_luaObjectonTop(); | |
| 607 | 676 | } |
| 608 | 677 | |
| 609 | 678 | |
| @@ -633,13 +702,25 @@ void lua_endblock (void) · 23 unmodified lines | ||
| 633 | 702 | adjustC(0); |
| 634 | 703 | } |
| 635 | 704 | |
| 705 | +void lua_settag (int tag) | |
| 706 | +{ | |
| 707 | + checkCparams(1); | |
| 708 | + luaI_settag(tag, --top); | |
| 709 | +} | |
| 710 | + | |
| 636 | 711 | /* |
| 637 | 712 | ** API: receives on the stack the table, the index, and the new value. |
| 638 | 713 | */ |
| 639 | −void lua_storesubscript (void) | |
| 714 | +void lua_settable (void) | |
| 640 | 715 | { |
| 641 | − adjustC(3); | |
| 642 | − storesubscript(); | |
| 716 | + checkCparams(3); | |
| 717 | + storesubscript(top-3, 1); | |
| 718 | +} | |
| 719 | + | |
| 720 | +void lua_rawsettable (void) | |
| 721 | +{ | |
| 722 | + checkCparams(3); | |
| 723 | + storesubscript(top-3, 0); | |
| 643 | 724 | } |
| 644 | 725 | |
| 645 | 726 | /* |
| @@ -647,40 +728,59 @@ void lua_storesubscript (void) · 1 unmodified line | ||
| 647 | 728 | */ |
| 648 | 729 | lua_Object lua_createtable (void) |
| 649 | 730 | { |
| 650 | − adjustC(0); | |
| 651 | − avalue(top) = lua_createarray(0); | |
| 652 | − tag(top) = LUA_T_ARRAY; | |
| 653 | − incr_top; | |
| 654 | − CLS_current.base++; /* incorporate object in the stack */ | |
| 655 | − return Ref(top-1); | |
| 731 | + TObject o; | |
| 732 | + avalue(&o) = lua_createarray(0); | |
| 733 | + ttype(&o) = LUA_T_ARRAY; | |
| 734 | + return put_luaObject(&o); | |
| 656 | 735 | } |
| 657 | 736 | |
| 658 | 737 | /* |
| 659 | 738 | ** Get a parameter, returning the object handle or LUA_NOOBJECT on error. |
| 660 | 739 | ** 'number' must be 1 to get the first parameter. |
| 661 | 740 | */ |
| 662 | −lua_Object lua_getparam (int number) | |
| 741 | +lua_Object lua_lua2C (int number) | |
| 742 | +{ | |
| 743 | + if (number <= 0 || number > CLS_current.num) return LUA_NOOBJECT; | |
| 744 | + /* Ref(stack+(CLS_current.lua2C+number-1)) == | |
| 745 | + stack+(CLS_current.lua2C+number-1)-stack+1 == */ | |
| 746 | + return CLS_current.lua2C+number; | |
| 747 | +} | |
| 748 | + | |
| 749 | +int lua_isnil (lua_Object o) | |
| 750 | +{ | |
| 751 | + return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_NIL); | |
| 752 | +} | |
| 753 | + | |
| 754 | +int lua_istable (lua_Object o) | |
| 755 | +{ | |
| 756 | + return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_ARRAY); | |
| 757 | +} | |
| 758 | + | |
| 759 | +int lua_isuserdata (lua_Object o) | |
| 663 | 760 | { |
| 664 | − if (number <= 0 || number > CLS_current.num) return LUA_NOOBJECT; | |
| 665 | − /* Ref(stack+(CLS_current.base-CLS_current.num+number-1)) == | |
| 666 | − stack+(CLS_current.base-CLS_current.num+number-1)-stack+1 == */ | |
| 667 | − return CLS_current.base-CLS_current.num+number; | |
| 761 | + return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_USERDATA); | |
| 668 | 762 | } |
| 669 | 763 | |
| 670 | −int lua_isnumber (lua_Object object) | |
| 764 | +int lua_iscfunction (lua_Object o) | |
| 671 | 765 | { |
| 672 | − return (object != LUA_NOOBJECT) && (tonumber(Address(object)) == 0); | |
| 766 | + int t = lua_tag(o); | |
| 767 | + return (t == LUA_T_CMARK) || (t == LUA_T_CFUNCTION); | |
| 673 | 768 | } |
| 674 | 769 | |
| 675 | −int lua_isstring (lua_Object object) | |
| 770 | +int lua_isnumber (lua_Object o) | |
| 676 | 771 | { |
| 677 | − int t = lua_type(object); | |
| 772 | + return (o!= LUA_NOOBJECT) && (tonumber(Address(o)) == 0); | |
| 773 | +} | |
| 774 | + | |
| 775 | +int lua_isstring (lua_Object o) | |
| 776 | +{ | |
| 777 | + int t = lua_tag(o); | |
| 678 | 778 | return (t == LUA_T_STRING) || (t == LUA_T_NUMBER); |
| 679 | 779 | } |
| 680 | 780 | |
| 681 | −int lua_isfunction (lua_Object object) | |
| 781 | +int lua_isfunction (lua_Object o) | |
| 682 | 782 | { |
| 683 | − int t = lua_type(object); | |
| 783 | + int t = lua_tag(o); | |
| 684 | 784 | return (t == LUA_T_FUNCTION) || (t == LUA_T_CFUNCTION) || |
| 685 | 785 | (t == LUA_T_MARK) || (t == LUA_T_CMARK); |
| 686 | 786 | } |
| @@ -700,57 +800,44 @@ real lua_getnumber (lua_Object object) · 13 unmodified lines | ||
| 700 | 800 | */ |
| 701 | 801 | char *lua_getstring (lua_Object object) |
| 702 | 802 | { |
| 703 | − if (object == LUA_NOOBJECT) return NULL; | |
| 704 | − if (tostring (Address(object))) return NULL; | |
| 705 | − else return (svalue(Address(object))); | |
| 803 | + if (object == LUA_NOOBJECT || tostring (Address(object))) | |
| 804 | + return NULL; | |
| 805 | + else return (svalue(Address(object))); | |
| 706 | 806 | } |
| 707 | 807 | |
| 708 | −/* | |
| 709 | −** Given an object handle, return its cfuntion pointer. On error, return NULL. | |
| 710 | −*/ | |
| 711 | −lua_CFunction lua_getcfunction (lua_Object object) | |
| 808 | + | |
| 809 | +void *lua_getuserdata (lua_Object object) | |
| 712 | 810 | { |
| 713 | − if (object == LUA_NOOBJECT || ((tag(Address(object)) != LUA_T_CFUNCTION) && | |
| 714 | − (tag(Address(object)) != LUA_T_CMARK))) | |
| 715 | − return NULL; | |
| 716 | − else return (fvalue(Address(object))); | |
| 811 | + if (object == LUA_NOOBJECT || ttype(Address(object)) != LUA_T_USERDATA) | |
| 812 | + return NULL; | |
| 813 | + else return tsvalue(Address(object))->u.v; | |
| 717 | 814 | } |
| 718 | 815 | |
| 816 | + | |
| 719 | 817 | /* |
| 720 | −** Given an object handle, return its user data. On error, return NULL. | |
| 818 | +** Given an object handle, return its cfuntion pointer. On error, return NULL. | |
| 721 | 819 | */ |
| 722 | −void *lua_getuserdata (lua_Object object) | |
| 820 | +lua_CFunction lua_getcfunction (lua_Object object) | |
| 723 | 821 | { |
| 724 | − if (object == LUA_NOOBJECT || tag(Address(object)) < LUA_T_USERDATA) | |
| 822 | + if (object == LUA_NOOBJECT || ((ttype(Address(object)) != LUA_T_CFUNCTION) && | |
| 823 | + (ttype(Address(object)) != LUA_T_CMARK))) | |
| 725 | 824 | return NULL; |
| 726 | − else return (uvalue(Address(object))); | |
| 825 | + else return (fvalue(Address(object))); | |
| 727 | 826 | } |
| 728 | 827 | |
| 729 | 828 | |
| 730 | 829 | lua_Object lua_getref (int ref) |
| 731 | 830 | { |
| 732 | − Object *o = luaI_getref(ref); | |
| 831 | + TObject *o = luaI_getref(ref); | |
| 733 | 832 | if (o == NULL) |
| 734 | 833 | return LUA_NOOBJECT; |
| 735 | − adjustC(0); | |
| 736 | − luaI_pushobject(o); | |
| 737 | − CLS_current.base++; /* incorporate object in the stack */ | |
| 738 | − return Ref(top-1); | |
| 739 | −} | |
| 740 | − | |
| 741 | − | |
| 742 | −void lua_pushref (int ref) | |
| 743 | −{ | |
| 744 | − Object *o = luaI_getref(ref); | |
| 745 | − if (o == NULL) | |
| 746 | − lua_error("access to invalid (possibly garbage collected) reference"); | |
| 747 | − luaI_pushobject(o); | |
| 834 | + return put_luaObject(o); | |
| 748 | 835 | } |
| 749 | 836 | |
| 750 | 837 | |
| 751 | 838 | int lua_ref (int lock) |
| 752 | 839 | { |
| 753 | − adjustC(1); | |
| 840 | + checkCparams(1); | |
| 754 | 841 | return luaI_ref(--top, lock); |
| 755 | 842 | } |
| 756 | 843 | |
| @@ -761,20 +848,50 @@ int lua_ref (int lock) · 4 unmodified lines | ||
| 761 | 848 | */ |
| 762 | 849 | lua_Object lua_getglobal (char *name) |
| 763 | 850 | { |
| 764 | − adjustC(0); | |
| 765 | − getglobal(luaI_findsymbolbyname(name)); | |
| 766 | − CLS_current.base++; /* incorporate object in the stack */ | |
| 767 | − return Ref(top-1); | |
| 851 | + getglobal(luaI_findsymbolbyname(name)); | |
| 852 | + return put_luaObjectonTop(); | |
| 853 | +} | |
| 854 | + | |
| 855 | + | |
| 856 | +lua_Object lua_rawgetglobal (char *name) | |
| 857 | +{ | |
| 858 | + return put_luaObject(&lua_table[luaI_findsymbolbyname(name)].object); | |
| 768 | 859 | } |
| 769 | 860 | |
| 861 | + | |
| 770 | 862 | /* |
| 771 | 863 | ** Store top of the stack at a global variable array field. |
| 772 | 864 | */ |
| 773 | −void lua_storeglobal (char *name) | |
| 865 | +static void setglobal (Word n) | |
| 866 | +{ | |
| 867 | + TObject *oldvalue = &lua_table[n].object; | |
| 868 | + TObject *im = luaI_getimbyObj(oldvalue, IM_SETGLOBAL); | |
| 869 | + if (ttype(im) == LUA_T_NIL) /* default behavior */ | |
| 870 | + s_object(n) = *(--top); | |
| 871 | + else { | |
| 872 | + TObject newvalue = *(top-1); | |
| 873 | + ttype(top-1) = LUA_T_STRING; | |
| 874 | + tsvalue(top-1) = lua_table[n].varname; | |
| 875 | + *top = *oldvalue; | |
| 876 | + incr_top; | |
| 877 | + *top = newvalue; | |
| 878 | + incr_top; | |
| 879 | + callIM(im, 3, 0); | |
| 880 | + } | |
| 881 | +} | |
| 882 | + | |
| 883 | + | |
| 884 | +void lua_setglobal (char *name) | |
| 774 | 885 | { |
| 775 | − Word n = luaI_findsymbolbyname(name); | |
| 776 | − adjustC(1); | |
| 777 | − s_object(n) = *(--top); | |
| 886 | + checkCparams(1); | |
| 887 | + setglobal(luaI_findsymbolbyname(name)); | |
| 888 | +} | |
| 889 | + | |
| 890 | +void lua_rawsetglobal (char *name) | |
| 891 | +{ | |
| 892 | + Word n = luaI_findsymbolbyname(name); | |
| 893 | + checkCparams(1); | |
| 894 | + s_object(n) = *(--top); | |
| 778 | 895 | } |
| 779 | 896 | |
| 780 | 897 | /* |
| @@ -782,60 +899,59 @@ void lua_storeglobal (char *name) · 1 unmodified line | ||
| 782 | 899 | */ |
| 783 | 900 | void lua_pushnil (void) |
| 784 | 901 | { |
| 785 | − tag(top) = LUA_T_NIL; | |
| 786 | − incr_top; | |
| 902 | + ttype(top) = LUA_T_NIL; | |
| 903 | + incr_top; | |
| 787 | 904 | } |
| 788 | 905 | |
| 789 | 906 | /* |
| 790 | −** Push an object (tag=number) to stack. | |
| 907 | +** Push an object (ttype=number) to stack. | |
| 791 | 908 | */ |
| 792 | 909 | void lua_pushnumber (real n) |
| 793 | 910 | { |
| 794 | − tag(top) = LUA_T_NUMBER; nvalue(top) = n; | |
| 911 | + ttype(top) = LUA_T_NUMBER; nvalue(top) = n; | |
| 795 | 912 | incr_top; |
| 796 | 913 | } |
| 797 | 914 | |
| 798 | 915 | /* |
| 799 | −** Push an object (tag=string) to stack. | |
| 916 | +** Push an object (ttype=string) to stack. | |
| 800 | 917 | */ |
| 801 | 918 | void lua_pushstring (char *s) |
| 802 | 919 | { |
| 803 | 920 | if (s == NULL) |
| 804 | − tag(top) = LUA_T_NIL; | |
| 921 | + ttype(top) = LUA_T_NIL; | |
| 805 | 922 | else |
| 806 | 923 | { |
| 807 | 924 | tsvalue(top) = lua_createstring(s); |
| 808 | − tag(top) = LUA_T_STRING; | |
| 925 | + ttype(top) = LUA_T_STRING; | |
| 809 | 926 | } |
| 810 | 927 | incr_top; |
| 811 | 928 | } |
| 812 | −/*>>>>>>>>>#undef lua_pushliteral | |
| 813 | −void lua_pushliteral(char *s) { lua_pushstring(s); }*/ | |
| 929 | + | |
| 814 | 930 | |
| 815 | 931 | /* |
| 816 | −** Push an object (tag=cfunction) to stack. | |
| 932 | +** Push an object (ttype=cfunction) to stack. | |
| 817 | 933 | */ |
| 818 | 934 | void lua_pushcfunction (lua_CFunction fn) |
| 819 | 935 | { |
| 820 | − tag(top) = LUA_T_CFUNCTION; fvalue(top) = fn; | |
| 936 | + ttype(top) = LUA_T_CFUNCTION; fvalue(top) = fn; | |
| 821 | 937 | incr_top; |
| 822 | 938 | } |
| 823 | 939 | |
| 824 | −/* | |
| 825 | −** Push an object (tag=userdata) to stack. | |
| 826 | −*/ | |
| 940 | + | |
| 941 | + | |
| 827 | 942 | void lua_pushusertag (void *u, int tag) |
| 828 | 943 | { |
| 829 | − if (tag < LUA_T_USERDATA) | |
| 830 | − lua_error("invalid tag in `lua_pushusertag'"); | |
| 831 | − tag(top) = tag; uvalue(top) = u; | |
| 832 | − incr_top; | |
| 944 | + if (tag < 0 && tag != LUA_ANYTAG) | |
| 945 | + luaI_realtag(tag); /* error if tag is not valid */ | |
| 946 | + tsvalue(top) = luaI_createudata(u, tag); | |
| 947 | + ttype(top) = LUA_T_USERDATA; | |
| 948 | + incr_top; | |
| 833 | 949 | } |
| 834 | 950 | |
| 835 | 951 | /* |
| 836 | 952 | ** Push an object on the stack. |
| 837 | 953 | */ |
| 838 | −void luaI_pushobject (Object *o) | |
| 954 | +void luaI_pushobject (TObject *o) | |
| 839 | 955 | { |
| 840 | 956 | *top = *o; |
| 841 | 957 | incr_top; |
| @@ -847,78 +963,102 @@ void luaI_pushobject (Object *o) · 5 unmodified lines | ||
| 847 | 963 | void lua_pushobject (lua_Object o) |
| 848 | 964 | { |
| 849 | 965 | if (o == LUA_NOOBJECT) |
| 850 | − lua_error("attempt to push a NOOBJECT"); | |
| 966 | + lua_error("API error - attempt to push a NOOBJECT"); | |
| 851 | 967 | *top = *Address(o); |
| 852 | − if (tag(top) == LUA_T_MARK) tag(top) = LUA_T_FUNCTION; | |
| 853 | − else if (tag(top) == LUA_T_CMARK) tag(top) = LUA_T_CFUNCTION; | |
| 968 | + if (ttype(top) == LUA_T_MARK) ttype(top) = LUA_T_FUNCTION; | |
| 969 | + else if (ttype(top) == LUA_T_CMARK) ttype(top) = LUA_T_CFUNCTION; | |
| 854 | 970 | incr_top; |
| 855 | 971 | } |
| 856 | 972 | |
| 857 | −int lua_type (lua_Object o) | |
| 973 | +int lua_tag (lua_Object lo) | |
| 858 | 974 | { |
| 859 | − if (o == LUA_NOOBJECT) | |
| 860 | − return LUA_T_NIL; | |
| 861 | − else | |
| 862 | − return tag(Address(o)); | |
| 975 | + if (lo == LUA_NOOBJECT) return LUA_T_NIL; | |
| 976 | + else { | |
| 977 | + TObject *o = Address(lo); | |
| 978 | + lua_Type t = ttype(o); | |
| 979 | + if (t == LUA_T_USERDATA) | |
| 980 | + return o->value.ts->tag; | |
| 981 | + else if (t == LUA_T_ARRAY) | |
| 982 | + return o->value.a->htag; | |
| 983 | + else return t; | |
| 984 | + } | |
| 863 | 985 | } |
| 864 | 986 | |
| 865 | 987 | |
| 866 | −void luaI_gcFB (Object *o) | |
| 988 | +void luaI_gcIM (TObject *o) | |
| 867 | 989 | { |
| 868 | − *top = *o; | |
| 869 | − incr_top; | |
| 870 | − callFB(FB_GC); | |
| 990 | + TObject *im = luaI_getimbyObj(o, IM_GC); | |
| 991 | + if (ttype(im) != LUA_T_NIL) { | |
| 992 | + *top = *o; | |
| 993 | + incr_top; | |
| 994 | + callIM(im, 1, 0); | |
| 995 | + } | |
| 996 | +} | |
| 997 | + | |
| 998 | + | |
| 999 | +static void call_binTM (IMS event, char *msg) | |
| 1000 | +{ | |
| 1001 | + TObject *im = luaI_getimbyObj(top-2, event); /* try first operand */ | |
| 1002 | + if (ttype(im) == LUA_T_NIL) { | |
| 1003 | + im = luaI_getimbyObj(top-1, event); /* try second operand */ | |
| 1004 | + if (ttype(im) == LUA_T_NIL) { | |
| 1005 | + im = luaI_getim(0, event); /* try a 'global' i.m. */ | |
| 1006 | + if (ttype(im) == LUA_T_NIL) | |
| 1007 | + lua_error(msg); | |
| 1008 | + } | |
| 1009 | + } | |
| 1010 | + lua_pushstring(luaI_eventname[event]); | |
| 1011 | + callIM(im, 3, 1); | |
| 871 | 1012 | } |
| 872 | 1013 | |
| 873 | 1014 | |
| 874 | −static void call_arith (char *op) | |
| 1015 | +static void call_arith (IMS event) | |
| 875 | 1016 | { |
| 876 | − lua_pushstring(op); | |
| 877 | − callFB(FB_ARITH); | |
| 1017 | + call_binTM(event, "unexpected type at arithmetic operation"); | |
| 878 | 1018 | } |
| 879 | 1019 | |
| 880 | −static void comparison (lua_Type tag_less, lua_Type tag_equal, | |
| 881 | − lua_Type tag_great, char *op) | |
| 1020 | + | |
| 1021 | +static void comparison (lua_Type ttype_less, lua_Type ttype_equal, | |
| 1022 | + lua_Type ttype_great, IMS op) | |
| 882 | 1023 | { |
| 883 | − Object *l = top-2; | |
| 884 | − Object *r = top-1; | |
| 1024 | + TObject *l = top-2; | |
| 1025 | + TObject *r = top-1; | |
| 885 | 1026 | int result; |
| 886 | − if (tag(l) == LUA_T_NUMBER && tag(r) == LUA_T_NUMBER) | |
| 1027 | + if (ttype(l) == LUA_T_NUMBER && ttype(r) == LUA_T_NUMBER) | |
| 887 | 1028 | result = (nvalue(l) < nvalue(r)) ? -1 : (nvalue(l) == nvalue(r)) ? 0 : 1; |
| 888 | − else if (tostring(l) || tostring(r)) | |
| 889 | − { | |
| 890 | − lua_pushstring(op); | |
| 891 | − callFB(FB_ORDER); | |
| 1029 | + else if (ttype(l) == LUA_T_STRING && ttype(r) == LUA_T_STRING) | |
| 1030 | + result = strcmp(svalue(l), svalue(r)); | |
| 1031 | + else { | |
| 1032 | + call_binTM(op, "unexpected type at comparison"); | |
| 892 | 1033 | return; |
| 893 | 1034 | } |
| 894 | − else | |
| 895 | − result = strcmp(svalue(l), svalue(r)); | |
| 896 | 1035 | top--; |
| 897 | 1036 | nvalue(top-1) = 1; |
| 898 | − tag(top-1) = (result < 0) ? tag_less : (result == 0) ? tag_equal : tag_great; | |
| 1037 | + ttype(top-1) = (result < 0) ? ttype_less : | |
| 1038 | + (result == 0) ? ttype_equal : ttype_great; | |
| 899 | 1039 | } |
| 900 | 1040 | |
| 901 | 1041 | |
| 902 | 1042 | static void adjust_varargs (StkId first_extra_arg) |
| 903 | 1043 | { |
| 904 | − Object arg; | |
| 905 | − Object *firstelem = stack+first_extra_arg; | |
| 1044 | + TObject arg; | |
| 1045 | + TObject *firstelem = stack+first_extra_arg; | |
| 906 | 1046 | int nvararg = top-firstelem; |
| 907 | 1047 | int i; |
| 908 | 1048 | if (nvararg < 0) nvararg = 0; |
| 909 | 1049 | avalue(&arg) = lua_createarray(nvararg+1); /* +1 for field 'n' */ |
| 910 | − tag(&arg) = LUA_T_ARRAY; | |
| 1050 | + ttype(&arg) = LUA_T_ARRAY; | |
| 911 | 1051 | for (i=0; i<nvararg; i++) { |
| 912 | − Object index; | |
| 913 | − tag(&index) = LUA_T_NUMBER; | |
| 1052 | + TObject index; | |
| 1053 | + ttype(&index) = LUA_T_NUMBER; | |
| 914 | 1054 | nvalue(&index) = i+1; |
| 915 | 1055 | *(lua_hashdefine(avalue(&arg), &index)) = *(firstelem+i); |
| 916 | 1056 | } |
| 917 | 1057 | /* store counter in field "n" */ { |
| 918 | − Object index, extra; | |
| 919 | − tag(&index) = LUA_T_STRING; | |
| 1058 | + TObject index, extra; | |
| 1059 | + ttype(&index) = LUA_T_STRING; | |
| 920 | 1060 | tsvalue(&index) = lua_createstring("n"); |
| 921 | − tag(&extra) = LUA_T_NUMBER; | |
| 1061 | + ttype(&extra) = LUA_T_NUMBER; | |
| 922 | 1062 | nvalue(&extra) = nvararg; |
| 923 | 1063 | *(lua_hashdefine(avalue(&arg), &index)) = extra; |
| 924 | 1064 | } |
| @@ -942,22 +1082,22 @@ static StkId lua_execute (Byte *pc, StkId base) · 17 unmodified lines | ||
| 942 | 1082 | OpCode opcode; |
| 943 | 1083 | switch (opcode = (OpCode)*pc++) |
| 944 | 1084 | { |
| 945 | − case PUSHNIL: tag(top) = LUA_T_NIL; incr_top; break; | |
| 1085 | + case PUSHNIL: ttype(top) = LUA_T_NIL; incr_top; break; | |
| 946 | 1086 | |
| 947 | 1087 | case PUSH0: case PUSH1: case PUSH2: |
| 948 | − tag(top) = LUA_T_NUMBER; | |
| 1088 | + ttype(top) = LUA_T_NUMBER; | |
| 949 | 1089 | nvalue(top) = opcode-PUSH0; |
| 950 | 1090 | incr_top; |
| 951 | 1091 | break; |
| 952 | 1092 | |
| 953 | 1093 | case PUSHBYTE: |
| 954 | − tag(top) = LUA_T_NUMBER; nvalue(top) = *pc++; incr_top; break; | |
| 1094 | + ttype(top) = LUA_T_NUMBER; nvalue(top) = *pc++; incr_top; break; | |
| 955 | 1095 | |
| 956 | 1096 | case PUSHWORD: |
| 957 | 1097 | { |
| 958 | 1098 | Word w; |
| 959 | 1099 | get_word(w,pc); |
| 960 | − tag(top) = LUA_T_NUMBER; nvalue(top) = w; | |
| 1100 | + ttype(top) = LUA_T_NUMBER; nvalue(top) = w; | |
| 961 | 1101 | incr_top; |
| 962 | 1102 | } |
| 963 | 1103 | break; |
| @@ -966,7 +1106,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 2 unmodified lines | ||
| 966 | 1106 | { |
| 967 | 1107 | real num; |
| 968 | 1108 | get_float(num,pc); |
| 969 | − tag(top) = LUA_T_NUMBER; nvalue(top) = num; | |
| 1109 | + ttype(top) = LUA_T_NUMBER; nvalue(top) = num; | |
| 970 | 1110 | incr_top; |
| 971 | 1111 | } |
| 972 | 1112 | break; |
| @@ -975,7 +1115,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 2 unmodified lines | ||
| 975 | 1115 | { |
| 976 | 1116 | Word w; |
| 977 | 1117 | get_word(w,pc); |
| 978 | − tag(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; | |
| 1118 | + ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; | |
| 979 | 1119 | incr_top; |
| 980 | 1120 | } |
| 981 | 1121 | break; |
| @@ -985,7 +1125,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 3 unmodified lines | ||
| 985 | 1125 | TFunc *f; |
| 986 | 1126 | get_code(f,pc); |
| 987 | 1127 | luaI_insertfunction(f); /* may take part in GC */ |
| 988 | − top->tag = LUA_T_FUNCTION; | |
| 1128 | + top->ttype = LUA_T_FUNCTION; | |
| 989 | 1129 | top->value.tf = f; |
| 990 | 1130 | incr_top; |
| 991 | 1131 | } |
| @@ -1013,10 +1153,10 @@ static StkId lua_execute (Byte *pc, StkId base) · 21 unmodified lines | ||
| 1013 | 1153 | |
| 1014 | 1154 | case PUSHSELF: |
| 1015 | 1155 | { |
| 1016 | − Object receiver = *(top-1); | |
| 1156 | + TObject receiver = *(top-1); | |
| 1017 | 1157 | Word w; |
| 1018 | 1158 | get_word(w,pc); |
| 1019 | − tag(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; | |
| 1159 | + ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; | |
| 1020 | 1160 | incr_top; |
| 1021 | 1161 | pushsubscript(); |
| 1022 | 1162 | *top = receiver; |
| @@ -1037,47 +1177,32 @@ static StkId lua_execute (Byte *pc, StkId base) · 14 unmodified lines | ||
| 1037 | 1177 | { |
| 1038 | 1178 | Word w; |
| 1039 | 1179 | get_word(w,pc); |
| 1040 | − s_object(w) = *(--top); | |
| 1180 | + setglobal(w); | |
| 1041 | 1181 | } |
| 1042 | 1182 | break; |
| 1043 | 1183 | |
| 1044 | 1184 | case STOREINDEXED0: |
| 1045 | − storesubscript(); | |
| 1185 | + storesubscript(top-3, 1); | |
| 1046 | 1186 | break; |
| 1047 | 1187 | |
| 1048 | − case STOREINDEXED: | |
| 1049 | − { | |
| 1050 | − int n = *pc++; | |
| 1051 | − if (tag(top-3-n) != LUA_T_ARRAY) | |
| 1052 | − { | |
| 1053 | − lua_checkstack(top+2); | |
| 1054 | − *(top+1) = *(top-1); | |
| 1055 | − *(top) = *(top-2-n); | |
| 1056 | − *(top-1) = *(top-3-n); | |
| 1057 | − top += 2; | |
| 1058 | − callFB(FB_SETTABLE); | |
| 1059 | − } | |
| 1060 | − else | |
| 1061 | − { | |
| 1062 | − Object *h = lua_hashdefine (avalue(top-3-n), top-2-n); | |
| 1063 | − *h = *(top-1); | |
| 1064 | − top--; | |
| 1065 | − } | |
| 1188 | + case STOREINDEXED: { | |
| 1189 | + int n = *pc++; | |
| 1190 | + storesubscript(top-3-n, 2); | |
| 1191 | + break; | |
| 1066 | 1192 | } |
| 1067 | − break; | |
| 1068 | 1193 | |
| 1069 | 1194 | case STORELIST0: |
| 1070 | 1195 | case STORELIST: |
| 1071 | 1196 | { |
| 1072 | 1197 | int m, n; |
| 1073 | − Object *arr; | |
| 1198 | + TObject *arr; | |
| 1074 | 1199 | if (opcode == STORELIST0) m = 0; |
| 1075 | 1200 | else m = *(pc++) * FIELDS_PER_FLUSH; |
| 1076 | 1201 | n = *(pc++); |
| 1077 | 1202 | arr = top-n-1; |
| 1078 | 1203 | while (n) |
| 1079 | 1204 | { |
| 1080 | − tag(top) = LUA_T_NUMBER; nvalue(top) = n+m; | |
| 1205 | + ttype(top) = LUA_T_NUMBER; nvalue(top) = n+m; | |
| 1081 | 1206 | *(lua_hashdefine (avalue(arr), top)) = *(top-1); |
| 1082 | 1207 | top--; |
| 1083 | 1208 | n--; |
| @@ -1085,15 +1210,15 @@ static StkId lua_execute (Byte *pc, StkId base) · 1 unmodified line | ||
| 1085 | 1210 | } |
| 1086 | 1211 | break; |
| 1087 | 1212 | |
| 1088 | − case STORERECORD: | |
| 1213 | + case STORERECORD: /* opcode obsolete: supersed by STOREMAP */ | |
| 1089 | 1214 | { |
| 1090 | 1215 | int n = *(pc++); |
| 1091 | − Object *arr = top-n-1; | |
| 1216 | + TObject *arr = top-n-1; | |
| 1092 | 1217 | while (n) |
| 1093 | 1218 | { |
| 1094 | 1219 | Word w; |
| 1095 | 1220 | get_word(w,pc); |
| 1096 | − tag(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; | |
| 1221 | + ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; | |
| 1097 | 1222 | *(lua_hashdefine (avalue(arr), top)) = *(top-1); |
| 1098 | 1223 | top--; |
| 1099 | 1224 | n--; |
| @@ -1101,13 +1226,25 @@ static StkId lua_execute (Byte *pc, StkId base) · 1 unmodified line | ||
| 1101 | 1226 | } |
| 1102 | 1227 | break; |
| 1103 | 1228 | |
| 1229 | + case STOREMAP: { | |
| 1230 | + int n = *(pc++); | |
| 1231 | + TObject *arr = top-(2*n)-1; | |
| 1232 | + while (n--) { | |
| 1233 | + *(lua_hashdefine (avalue(arr), top-2)) = *(top-1); | |
| 1234 | + top-=2; | |
| 1235 | + } | |
| 1236 | + } | |
| 1237 | + break; | |
| 1238 | + | |
| 1104 | 1239 | case ADJUST0: |
| 1105 | 1240 | adjust_top(base); |
| 1106 | 1241 | break; |
| 1107 | 1242 | |
| 1108 | − case ADJUST: | |
| 1109 | − adjust_top(base + *(pc++)); | |
| 1243 | + case ADJUST: { | |
| 1244 | + StkId newtop = base + *(pc++); | |
| 1245 | + adjust_top(newtop); | |
| 1110 | 1246 | break; |
| 1247 | + } | |
| 1111 | 1248 | |
| 1112 | 1249 | case VARARGS: |
| 1113 | 1250 | adjust_varargs(base + *(pc++)); |
| @@ -1118,7 +1255,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 4 unmodified lines | ||
| 1118 | 1255 | Word size; |
| 1119 | 1256 | get_word(size,pc); |
| 1120 | 1257 | avalue(top) = lua_createarray(size); |
| 1121 | − tag(top) = LUA_T_ARRAY; | |
| 1258 | + ttype(top) = LUA_T_ARRAY; | |
| 1122 | 1259 | incr_top; |
| 1123 | 1260 | } |
| 1124 | 1261 | break; |
| @@ -1127,33 +1264,33 @@ static StkId lua_execute (Byte *pc, StkId base) · 2 unmodified lines | ||
| 1127 | 1264 | { |
| 1128 | 1265 | int res = lua_equalObj(top-2, top-1); |
| 1129 | 1266 | --top; |
| 1130 | − tag(top-1) = res ? LUA_T_NUMBER : LUA_T_NIL; | |
| 1267 | + ttype(top-1) = res ? LUA_T_NUMBER : LUA_T_NIL; | |
| 1131 | 1268 | nvalue(top-1) = 1; |
| 1132 | 1269 | } |
| 1133 | 1270 | break; |
| 1134 | 1271 | |
| 1135 | 1272 | case LTOP: |
| 1136 | − comparison(LUA_T_NUMBER, LUA_T_NIL, LUA_T_NIL, "lt"); | |
| 1273 | + comparison(LUA_T_NUMBER, LUA_T_NIL, LUA_T_NIL, IM_LT); | |
| 1137 | 1274 | break; |
| 1138 | 1275 | |
| 1139 | 1276 | case LEOP: |
| 1140 | − comparison(LUA_T_NUMBER, LUA_T_NUMBER, LUA_T_NIL, "le"); | |
| 1277 | + comparison(LUA_T_NUMBER, LUA_T_NUMBER, LUA_T_NIL, IM_LE); | |
| 1141 | 1278 | break; |
| 1142 | 1279 | |
| 1143 | 1280 | case GTOP: |
| 1144 | − comparison(LUA_T_NIL, LUA_T_NIL, LUA_T_NUMBER, "gt"); | |
| 1281 | + comparison(LUA_T_NIL, LUA_T_NIL, LUA_T_NUMBER, IM_GT); | |
| 1145 | 1282 | break; |
| 1146 | 1283 | |
| 1147 | 1284 | case GEOP: |
| 1148 | − comparison(LUA_T_NIL, LUA_T_NUMBER, LUA_T_NUMBER, "ge"); | |
| 1285 | + comparison(LUA_T_NIL, LUA_T_NUMBER, LUA_T_NUMBER, IM_GE); | |
| 1149 | 1286 | break; |
| 1150 | 1287 | |
| 1151 | 1288 | case ADDOP: |
| 1152 | 1289 | { |
| 1153 | − Object *l = top-2; | |
| 1154 | − Object *r = top-1; | |
| 1290 | + TObject *l = top-2; | |
| 1291 | + TObject *r = top-1; | |
| 1155 | 1292 | if (tonumber(r) || tonumber(l)) |
| 1156 | − call_arith("add"); | |
| 1293 | + call_arith(IM_ADD); | |
| 1157 | 1294 | else |
| 1158 | 1295 | { |
| 1159 | 1296 | nvalue(l) += nvalue(r); |
| @@ -1164,10 +1301,10 @@ static StkId lua_execute (Byte *pc, StkId base) · 4 unmodified lines | ||
| 1164 | 1301 | |
| 1165 | 1302 | case SUBOP: |
| 1166 | 1303 | { |
| 1167 | − Object *l = top-2; | |
| 1168 | − Object *r = top-1; | |
| 1304 | + TObject *l = top-2; | |
| 1305 | + TObject *r = top-1; | |
| 1169 | 1306 | if (tonumber(r) || tonumber(l)) |
| 1170 | − call_arith("sub"); | |
| 1307 | + call_arith(IM_SUB); | |
| 1171 | 1308 | else |
| 1172 | 1309 | { |
| 1173 | 1310 | nvalue(l) -= nvalue(r); |
| @@ -1178,10 +1315,10 @@ static StkId lua_execute (Byte *pc, StkId base) · 4 unmodified lines | ||
| 1178 | 1315 | |
| 1179 | 1316 | case MULTOP: |
| 1180 | 1317 | { |
| 1181 | − Object *l = top-2; | |
| 1182 | − Object *r = top-1; | |
| 1318 | + TObject *l = top-2; | |
| 1319 | + TObject *r = top-1; | |
| 1183 | 1320 | if (tonumber(r) || tonumber(l)) |
| 1184 | − call_arith("mul"); | |
| 1321 | + call_arith(IM_MUL); | |
| 1185 | 1322 | else |
| 1186 | 1323 | { |
| 1187 | 1324 | nvalue(l) *= nvalue(r); |
| @@ -1192,10 +1329,10 @@ static StkId lua_execute (Byte *pc, StkId base) · 4 unmodified lines | ||
| 1192 | 1329 | |
| 1193 | 1330 | case DIVOP: |
| 1194 | 1331 | { |
| 1195 | − Object *l = top-2; | |
| 1196 | − Object *r = top-1; | |
| 1332 | + TObject *l = top-2; | |
| 1333 | + TObject *r = top-1; | |
| 1197 | 1334 | if (tonumber(r) || tonumber(l)) |
| 1198 | − call_arith("div"); | |
| 1335 | + call_arith(IM_DIV); | |
| 1199 | 1336 | else |
| 1200 | 1337 | { |
| 1201 | 1338 | nvalue(l) /= nvalue(r); |
| @@ -1205,36 +1342,34 @@ static StkId lua_execute (Byte *pc, StkId base) · 3 unmodified lines | ||
| 1205 | 1342 | break; |
| 1206 | 1343 | |
| 1207 | 1344 | case POWOP: |
| 1208 | − call_arith("pow"); | |
| 1345 | + call_arith(IM_POW); | |
| 1209 | 1346 | break; |
| 1210 | 1347 | |
| 1211 | − case CONCOP: | |
| 1212 | − { | |
| 1213 | − Object *l = top-2; | |
| 1214 | − Object *r = top-1; | |
| 1215 | − if (tostring(r) || tostring(l)) | |
| 1216 | − callFB(FB_CONCAT); | |
| 1217 | − else | |
| 1218 | − { | |
| 1219 | − tsvalue(l) = lua_createstring (lua_strconc(svalue(l),svalue(r))); | |
| 1220 | − --top; | |
| 1221 | − } | |
| 1348 | + case CONCOP: { | |
| 1349 | + TObject *l = top-2; | |
| 1350 | + TObject *r = top-1; | |
| 1351 | + if (tostring(l) || tostring(r)) | |
| 1352 | + call_binTM(IM_CONCAT, "unexpected type for concatenation"); | |
| 1353 | + else { | |
| 1354 | + tsvalue(l) = lua_createstring(lua_strconc(svalue(l),svalue(r))); | |
| 1355 | + --top; | |
| 1356 | + } | |
| 1222 | 1357 | } |
| 1223 | 1358 | break; |
| 1224 | 1359 | |
| 1225 | 1360 | case MINUSOP: |
| 1226 | 1361 | if (tonumber(top-1)) |
| 1227 | 1362 | { |
| 1228 | − tag(top) = LUA_T_NIL; | |
| 1363 | + ttype(top) = LUA_T_NIL; | |
| 1229 | 1364 | incr_top; |
| 1230 | − call_arith("unm"); | |
| 1365 | + call_arith(IM_UNM); | |
| 1231 | 1366 | } |
| 1232 | 1367 | else |
| 1233 | 1368 | nvalue(top-1) = - nvalue(top-1); |
| 1234 | 1369 | break; |
| 1235 | 1370 | |
| 1236 | 1371 | case NOTOP: |
| 1237 | − tag(top-1) = (tag(top-1) == LUA_T_NIL) ? LUA_T_NUMBER : LUA_T_NIL; | |
| 1372 | + ttype(top-1) = (ttype(top-1) == LUA_T_NIL) ? LUA_T_NUMBER : LUA_T_NIL; | |
| 1238 | 1373 | nvalue(top-1) = 1; |
| 1239 | 1374 | break; |
| 1240 | 1375 | |
| @@ -1242,15 +1377,15 @@ static StkId lua_execute (Byte *pc, StkId base) · 1 unmodified line | ||
| 1242 | 1377 | { |
| 1243 | 1378 | Word w; |
| 1244 | 1379 | get_word(w,pc); |
| 1245 | − if (tag(top-1) != LUA_T_NIL) pc += w; | |
| 1380 | + if (ttype(top-1) != LUA_T_NIL) pc += w; | |
| 1246 | 1381 | } |
| 1247 | 1382 | break; |
| 1248 | 1383 | |
| 1249 | − case ONFJMP: | |
| 1384 | + case ONFJMP: | |
| 1250 | 1385 | { |
| 1251 | 1386 | Word w; |
| 1252 | 1387 | get_word(w,pc); |
| 1253 | − if (tag(top-1) == LUA_T_NIL) pc += w; | |
| 1388 | + if (ttype(top-1) == LUA_T_NIL) pc += w; | |
| 1254 | 1389 | } |
| 1255 | 1390 | break; |
| 1256 | 1391 | |
| @@ -1275,7 +1410,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 18 unmodified lines | ||
| 1275 | 1410 | Word w; |
| 1276 | 1411 | get_word(w,pc); |
| 1277 | 1412 | top--; |
| 1278 | − if (tag(top) == LUA_T_NIL) pc += w; | |
| 1413 | + if (ttype(top) == LUA_T_NIL) pc += w; | |
| 1279 | 1414 | } |
| 1280 | 1415 | break; |
| 1281 | 1416 | |
| @@ -1284,7 +1419,7 @@ static StkId lua_execute (Byte *pc, StkId base) · 2 unmodified lines | ||
| 1284 | 1419 | Word w; |
| 1285 | 1420 | get_word(w,pc); |
| 1286 | 1421 | top--; |
| 1287 | − if (tag(top) == LUA_T_NIL) pc -= w; | |
| 1422 | + if (ttype(top) == LUA_T_NIL) pc -= w; | |
| 1288 | 1423 | } |
| 1289 | 1424 | break; |
| 1290 | 1425 | |
| @@ -1309,12 +1444,12 @@ static StkId lua_execute (Byte *pc, StkId base) · 18 unmodified lines | ||
| 1309 | 1444 | { |
| 1310 | 1445 | Word line; |
| 1311 | 1446 | get_word(line,pc); |
| 1312 | − if ((stack+base-1)->tag != LUA_T_LINE) | |
| 1447 | + if ((stack+base-1)->ttype != LUA_T_LINE) | |
| 1313 | 1448 | { |
| 1314 | 1449 | /* open space for LINE value */ |
| 1315 | 1450 | open_stack((top-stack)-base); |
| 1316 | 1451 | base++; |
| 1317 | − (stack+base-1)->tag = LUA_T_LINE; | |
| 1452 | + (stack+base-1)->ttype = LUA_T_LINE; | |
| 1318 | 1453 | } |
| 1319 | 1454 | (stack+base-1)->value.i = line; |
| 1320 | 1455 | if (lua_linehook) |
| @@ -1328,3 +1463,16 @@ static StkId lua_execute (Byte *pc, StkId base) · 7 unmodified lines | ||
| 1328 | 1463 | } |
| 1329 | 1464 | } |
| 1330 | 1465 | |
| 1466 | + | |
| 1467 | +#if COMPAT2_5 | |
| 1468 | +/* | |
| 1469 | +** API: set a function as a fallback | |
| 1470 | +*/ | |
| 1471 | +lua_Object lua_setfallback (char *name, lua_CFunction fallback) | |
| 1472 | +{ | |
| 1473 | + lua_pushstring(name); | |
| 1474 | + lua_pushcfunction(fallback); | |
| 1475 | + do_unprotectedrun(luaI_setfallback, 2, 1); | |
| 1476 | + return put_luaObjectonTop(); | |
| 1477 | +} | |
| 1478 | +#endif | |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** TeCGraf - PUC-Rio |
| 3 | −** $Id: opcode.h,v 3.24 1996/11/01 12:46:59 roberto Exp $ | |
| 3 | +** $Id: opcode.h,v 3.34 1997/06/16 16:50:22 roberto Exp $ | |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | 6 | #ifndef opcode_h |
| @@ -14,6 +14,28 @@ · 7 unmodified lines | ||
| 14 | 14 | |
| 15 | 15 | #define FIELDS_PER_FLUSH 40 |
| 16 | 16 | |
| 17 | +/* | |
| 18 | +* WARNING: if you change the order of this enumeration, | |
| 19 | +* grep "ORDER LUA_T" | |
| 20 | +*/ | |
| 21 | +typedef enum | |
| 22 | +{ | |
| 23 | + LUA_T_NIL = -9, | |
| 24 | + LUA_T_NUMBER = -8, | |
| 25 | + LUA_T_STRING = -7, | |
| 26 | + LUA_T_ARRAY = -6, /* array==table */ | |
| 27 | + LUA_T_FUNCTION = -5, | |
| 28 | + LUA_T_CFUNCTION= -4, | |
| 29 | + LUA_T_MARK = -3, | |
| 30 | + LUA_T_CMARK = -2, | |
| 31 | + LUA_T_LINE = -1, | |
| 32 | + LUA_T_USERDATA = 0 | |
| 33 | +} lua_Type; | |
| 34 | + | |
| 35 | +#define NUM_TYPES 10 | |
| 36 | + | |
| 37 | + | |
| 38 | +extern char *luaI_typenames[]; | |
| 17 | 39 | |
| 18 | 40 | typedef enum { |
| 19 | 41 | /* name parm before after side effect |
| @@ -38,7 +60,7 @@ PUSHLOCAL6,/* - LOC[6] */ · 18 unmodified lines | ||
| 38 | 60 | PUSHLOCAL7,/* - LOC[7] */ |
| 39 | 61 | PUSHLOCAL8,/* - LOC[8] */ |
| 40 | 62 | PUSHLOCAL9,/* - LOC[9] */ |
| 41 | −PUSHLOCAL,/* w - LOC[w] */ | |
| 63 | +PUSHLOCAL,/* b - LOC[b] */ | |
| 42 | 64 | PUSHGLOBAL,/* w - VAR[w] */ |
| 43 | 65 | PUSHINDEXED,/* i t t[i] */ |
| 44 | 66 | PUSHSELF,/* w t t t[STR[w]] */ |
| @@ -52,14 +74,14 @@ STORELOCAL6,/* x - LOC[6]=x */ · 7 unmodified lines | ||
| 52 | 74 | STORELOCAL7,/* x - LOC[7]=x */ |
| 53 | 75 | STORELOCAL8,/* x - LOC[8]=x */ |
| 54 | 76 | STORELOCAL9,/* x - LOC[9]=x */ |
| 55 | −STORELOCAL,/* w x - LOC[w]=x */ | |
| 77 | +STORELOCAL,/* b x - LOC[b]=x */ | |
| 56 | 78 | STOREGLOBAL,/* w x - VAR[w]=x */ |
| 57 | 79 | STOREINDEXED0,/* v i t - t[i]=v */ |
| 58 | 80 | STOREINDEXED,/* b v a_b...a_1 i t a_b...a_1 i t t[i]=v */ |
| 59 | −STORELIST0,/* w v_w...v_1 t - t[i]=v_i */ | |
| 60 | −STORELIST,/* w n v_w...v_1 t - t[i+n*FPF]=v_i */ | |
| 61 | −STORERECORD,/* n | |
| 62 | − w_n...w_1 v_n...v_1 t - t[STR[w_i]]=v_i */ | |
| 81 | +STORELIST0,/* b v_b...v_1 t - t[i]=v_i */ | |
| 82 | +STORELIST,/* b c v_b...v_1 t - t[i+c*FPF]=v_i */ | |
| 83 | +STORERECORD,/* b | |
| 84 | + w_b...w_1 v_b...v_1 t - t[STR[w_i]]=v_i */ | |
| 63 | 85 | ADJUST0,/* - - TOP=BASE */ |
| 64 | 86 | ADJUST,/* b - - TOP=BASE+b */ |
| 65 | 87 | CREATEARRAY,/* w - newarray(size = w) */ |
| @@ -76,19 +98,19 @@ POWOP,/* y x x^y */ · 10 unmodified lines | ||
| 76 | 98 | CONCOP,/* y x x..y */ |
| 77 | 99 | MINUSOP,/* x -x */ |
| 78 | 100 | NOTOP,/* x (x==nil)? 1 : nil */ |
| 79 | −ONTJMP,/* w x - (x!=nil)? PC+=w */ | |
| 80 | −ONFJMP,/* w x - (x==nil)? PC+=w */ | |
| 101 | +ONTJMP,/* w x - (x!=nil)? PC+=w */ | |
| 102 | +ONFJMP,/* w x - (x==nil)? PC+=w */ | |
| 81 | 103 | JMP,/* w - - PC+=w */ |
| 82 | −UPJMP,/* w - - PC-=w */ | |
| 83 | −IFFJMP,/* w x - (x==nil)? PC+=w */ | |
| 104 | +UPJMP,/* w - - PC-=w */ | |
| 105 | +IFFJMP,/* w x - (x==nil)? PC+=w */ | |
| 84 | 106 | IFFUPJMP,/* w x - (x==nil)? PC-=w */ |
| 85 | 107 | POP,/* x - */ |
| 86 | −CALLFUNC,/* n m v_n...v_1 f r_m...r_1 f(v1,...,v_n) */ | |
| 108 | +CALLFUNC,/* b c v_b...v_1 f r_c...r_1 f(v1,...,v_b) */ | |
| 87 | 109 | RETCODE0, |
| 88 | 110 | RETCODE,/* b - - */ |
| 89 | 111 | SETLINE,/* w - - LINE=w */ |
| 90 | −VARARGS/* b v_n...v_1 {v_1...v_n;n=n} */ | |
| 91 | − | |
| 112 | +VARARGS,/* b v_b...v_1 {v_1...v_b;n=b} */ | |
| 113 | +STOREMAP/* b v_b k_b ...v_1 k_1 t - t[k_i]=v_i */ | |
| 92 | 114 | } OpCode; |
| 93 | 115 | |
| 94 | 116 | |
| @@ -102,29 +124,27 @@ typedef union · 7 unmodified lines | ||
| 102 | 124 | TaggedString *ts; |
| 103 | 125 | TFunc *tf; |
| 104 | 126 | struct Hash *a; |
| 105 | − void *u; | |
| 106 | 127 | int i; |
| 107 | 128 | } Value; |
| 108 | 129 | |
| 109 | −typedef struct Object | |
| 130 | +typedef struct TObject | |
| 110 | 131 | { |
| 111 | − lua_Type tag; | |
| 132 | + lua_Type ttype; | |
| 112 | 133 | Value value; |
| 113 | −} Object; | |
| 134 | +} TObject; | |
| 114 | 135 | |
| 115 | 136 | |
| 116 | 137 | /* Macros to access structure members */ |
| 117 | −#define tag(o) ((o)->tag) | |
| 138 | +#define ttype(o) ((o)->ttype) | |
| 118 | 139 | #define nvalue(o) ((o)->value.n) |
| 119 | 140 | #define svalue(o) ((o)->value.ts->str) |
| 120 | 141 | #define tsvalue(o) ((o)->value.ts) |
| 121 | 142 | #define avalue(o) ((o)->value.a) |
| 122 | 143 | #define fvalue(o) ((o)->value.f) |
| 123 | −#define uvalue(o) ((o)->value.u) | |
| 124 | 144 | |
| 125 | 145 | /* Macros to access symbol table */ |
| 126 | 146 | #define s_object(i) (lua_table[i].object) |
| 127 | −#define s_tag(i) (tag(&s_object(i))) | |
| 147 | +#define s_ttype(i) (ttype(&s_object(i))) | |
| 128 | 148 | #define s_nvalue(i) (nvalue(&s_object(i))) |
| 129 | 149 | #define s_svalue(i) (svalue(&s_object(i))) |
| 130 | 150 | #define s_tsvalue(i) (tsvalue(&s_object(i))) |
| @@ -141,10 +161,11 @@ typedef struct Object · 10 unmodified lines | ||
| 141 | 161 | /* Exported functions */ |
| 142 | 162 | void lua_parse (TFunc *tf); /* from "lua.stx" module */ |
| 143 | 163 | void luaI_codedebugline (int line); /* from "lua.stx" module */ |
| 144 | −void lua_travstack (int (*fn)(Object *)); | |
| 145 | −Object *luaI_Address (lua_Object o); | |
| 146 | −void luaI_pushobject (Object *o); | |
| 147 | −void luaI_gcFB (Object *o); | |
| 164 | +void lua_travstack (int (*fn)(TObject *)); | |
| 165 | +TObject *luaI_Address (lua_Object o); | |
| 166 | +void luaI_pushobject (TObject *o); | |
| 167 | +void luaI_gcIM (TObject *o); | |
| 148 | 168 | int luaI_dorun (TFunc *tf); |
| 169 | +int lua_domain (void); | |
| 149 | 170 | |
| 150 | 171 | #endif |
| @@ -10,14 +10,14 @@ static char luaY_sccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; · 9 unmodified lines | ||
| 10 | 10 | #define YYPREFIX "luaY_" |
| 11 | 11 | #line 2 "lua.stx" |
| 12 | 12 | |
| 13 | −char *rcs_luastx = "$Id: parser.c,v 1.1 1996/11/21 16:11:40 lhf Exp $"; | |
| 13 | +char *rcs_luastx = "$Id: parser.c,v 1.1 1997/06/30 18:59:03 lhf Exp $"; | |
| 14 | 14 | |
| 15 | 15 | #include <stdio.h> |
| 16 | 16 | #include <stdlib.h> |
| 17 | 17 | #include <string.h> |
| 18 | 18 | |
| 19 | 19 | #include "luadebug.h" |
| 20 | −#include "mem.h" | |
| 20 | +#include "luamem.h" | |
| 21 | 21 | #include "lex.h" |
| 22 | 22 | #include "opcode.h" |
| 23 | 23 | #include "hash.h" |
| @@ -60,8 +60,6 @@ static TaggedString *localvar[MAXLOCALS]; /* store local variable names */ · 36 unmodified lines | ||
| 60 | 60 | static int nlocalvar=0; /* number of local variables */ |
| 61 | 61 | |
| 62 | 62 | #define MAXFIELDS FIELDS_PER_FLUSH*2 |
| 63 | −static Word fields[MAXFIELDS]; /* fieldnames to be flushed */ | |
| 64 | −static int nfields=0; | |
| 65 | 63 | |
| 66 | 64 | int lua_debug = 0; |
| 67 | 65 | |
| @@ -113,22 +111,11 @@ static void code_word_at (Byte *p, int n) · 45 unmodified lines | ||
| 113 | 111 | memcpy(p, &w, sizeof(Word)); |
| 114 | 112 | } |
| 115 | 113 | |
| 116 | −static void push_field (Word name) | |
| 117 | −{ | |
| 118 | − if (nfields < MAXFIELDS) | |
| 119 | − fields[nfields++] = name; | |
| 120 | − else | |
| 121 | − luaY_error ("too many fields in nested constructors"); | |
| 122 | −} | |
| 123 | − | |
| 124 | 114 | static void flush_record (int n) |
| 125 | 115 | { |
| 126 | − int i; | |
| 127 | 116 | if (n == 0) return; |
| 128 | − code_byte(STORERECORD); | |
| 117 | + code_byte(STOREMAP); | |
| 129 | 118 | code_byte(n); |
| 130 | − for (i=0; i<n; i++) | |
| 131 | − code_word(fields[--nfields]); | |
| 132 | 119 | } |
| 133 | 120 | |
| 134 | 121 | static void flush_list (int m, int n) |
| @@ -171,11 +158,22 @@ static void add_varbuffer (Long var) · 36 unmodified lines | ||
| 171 | 158 | luaY_error ("variable buffer overflow"); |
| 172 | 159 | } |
| 173 | 160 | |
| 161 | +static void code_string (Word w) | |
| 162 | +{ | |
| 163 | + code_byte(PUSHSTRING); | |
| 164 | + code_word(w); | |
| 165 | +} | |
| 166 | + | |
| 167 | +static void code_constant (TaggedString *s) | |
| 168 | +{ | |
| 169 | + code_string(luaI_findconstant(s)); | |
| 170 | +} | |
| 171 | + | |
| 174 | 172 | static void code_number (float f) |
| 175 | 173 | { |
| 176 | − Word i = (Word)f; | |
| 177 | − if (f == (float)i) /* f has an (short) integer value */ | |
| 178 | − { | |
| 174 | + Word i; | |
| 175 | + if (f >= 0 && f <= (float)MAX_WORD && (float)(i=(Word)f) == f) { | |
| 176 | + /* f has an (short) integer value */ | |
| 179 | 177 | if (i <= 2) code_byte(PUSH0 + i); |
| 180 | 178 | else if (i <= 255) |
| 181 | 179 | { |
| @@ -418,7 +416,7 @@ void lua_parse (TFunc *tf) · 236 unmodified lines | ||
| 418 | 416 | } |
| 419 | 417 | |
| 420 | 418 | |
| 421 | −#line 414 "lua.stx" | |
| 419 | +#line 412 "lua.stx" | |
| 422 | 420 | typedef union |
| 423 | 421 | { |
| 424 | 422 | int vInt; |
| @@ -429,7 +427,7 @@ typedef union · 4 unmodified lines | ||
| 429 | 427 | TFunc *pFunc; |
| 430 | 428 | TaggedString *pTStr; |
| 431 | 429 | } YYSTYPE; |
| 432 | −#line 433 "y.tab.c" | |
| 430 | +#line 431 "y.tab.c" | |
| 433 | 431 | #define WRONGTOKEN 257 |
| 434 | 432 | #define NIL 258 |
| 435 | 433 | #define IF 259 |
| @@ -467,8 +465,9 @@ short luaY_lhs[] = { -1, · 31 unmodified lines | ||
| 467 | 465 | 38, 5, 39, 5, 40, 37, 4, 8, 8, 7, |
| 468 | 466 | 7, 2, 2, 3, 41, 3, 17, 17, 18, 18, |
| 469 | 467 | 19, 19, 42, 9, 9, 14, 14, 43, 43, 12, |
| 470 | − 12, 13, 13, 44, 15, 15, 16, 16, 6, 6, | |
| 471 | − 20, 20, 20, 21, 29, 10, 10, 11, 11, | |
| 468 | + 12, 13, 13, 44, 45, 45, 15, 15, 16, 16, | |
| 469 | + 6, 6, 20, 20, 20, 21, 29, 10, 10, 11, | |
| 470 | + 11, | |
| 472 | 471 | }; |
| 473 | 472 | short luaY_len[] = { 2, |
| 474 | 473 | 2, 0, 3, 2, 3, 1, 3, 5, 0, 3, |
| @@ -479,113 +478,114 @@ short luaY_len[] = { 2, · 4 unmodified lines | ||
| 479 | 478 | 0, 5, 0, 5, 0, 4, 2, 1, 3, 3, |
| 480 | 479 | 1, 0, 1, 1, 0, 4, 0, 1, 1, 3, |
| 481 | 480 | 1, 1, 0, 3, 2, 0, 2, 0, 1, 0, |
| 482 | − 2, 1, 3, 3, 0, 2, 1, 3, 1, 3, | |
| 483 | − 1, 4, 3, 1, 1, 1, 3, 0, 2, | |
| 481 | + 2, 1, 3, 3, 3, 1, 0, 2, 1, 3, | |
| 482 | + 1, 3, 1, 4, 3, 1, 1, 1, 3, 0, | |
| 483 | + 2, | |
| 484 | 484 | }; |
| 485 | 485 | short luaY_defred[] = { 2, |
| 486 | − 0, 0, 0, 14, 16, 0, 0, 0, 94, 19, | |
| 487 | − 0, 0, 0, 91, 1, 0, 4, 0, 48, 46, | |
| 488 | − 47, 0, 0, 0, 49, 29, 95, 0, 0, 44, | |
| 489 | − 0, 0, 24, 0, 0, 0, 0, 96, 0, 0, | |
| 486 | + 0, 0, 0, 14, 16, 0, 0, 0, 96, 19, | |
| 487 | + 0, 0, 0, 93, 1, 0, 4, 0, 48, 46, | |
| 488 | + 47, 0, 0, 0, 49, 29, 97, 0, 0, 44, | |
| 489 | + 0, 0, 24, 0, 0, 0, 0, 98, 0, 0, | |
| 490 | 490 | 0, 0, 0, 0, 0, 57, 61, 12, 3, 0, |
| 491 | 491 | 0, 0, 0, 0, 0, 28, 28, 28, 0, 0, |
| 492 | 492 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 493 | 493 | 0, 0, 0, 9, 27, 65, 0, 0, 20, 0, |
| 494 | − 5, 0, 0, 0, 0, 0, 59, 0, 93, 30, | |
| 494 | + 5, 0, 0, 0, 0, 0, 59, 0, 95, 30, | |
| 495 | 495 | 24, 51, 53, 0, 0, 0, 0, 0, 0, 0, |
| 496 | − 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, | |
| 497 | − 0, 82, 28, 0, 0, 0, 0, 97, 72, 71, | |
| 498 | − 0, 0, 69, 7, 60, 92, 28, 0, 0, 0, | |
| 499 | − 56, 0, 75, 0, 0, 86, 24, 0, 25, 0, | |
| 500 | − 0, 24, 0, 0, 0, 0, 0, 0, 83, 0, | |
| 501 | − 74, 0, 28, 17, 10, 0, 70, 24, 0, 0, | |
| 502 | − 77, 0, 0, 8, 22, 0, 13, 81, 15, 28, | |
| 503 | − 24, 28, 0, 23, | |
| 496 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, | |
| 497 | + 0, 0, 82, 0, 28, 0, 0, 0, 0, 99, | |
| 498 | + 72, 71, 0, 0, 69, 7, 60, 94, 28, 0, | |
| 499 | + 0, 0, 56, 0, 75, 0, 0, 88, 0, 24, | |
| 500 | + 0, 25, 0, 0, 24, 0, 0, 0, 0, 85, | |
| 501 | + 86, 83, 0, 74, 0, 0, 28, 17, 10, 0, | |
| 502 | + 70, 24, 0, 0, 77, 0, 0, 8, 22, 0, | |
| 503 | + 13, 81, 15, 28, 24, 28, 0, 23, | |
| 504 | 504 | }; |
| 505 | 505 | short luaY_dgoto[] = { 1, |
| 506 | − 91, 34, 35, 25, 26, 11, 46, 12, 107, 39, | |
| 507 | − 79, 161, 108, 151, 109, 110, 121, 122, 123, 27, | |
| 506 | + 91, 34, 35, 25, 26, 11, 46, 12, 108, 39, | |
| 507 | + 79, 165, 109, 154, 110, 111, 123, 124, 125, 27, | |
| 508 | 508 | 14, 41, 81, 2, 15, 16, 49, 17, 28, 73, |
| 509 | − 115, 37, 160, 32, 33, 74, 30, 128, 129, 31, | |
| 510 | − 116, 134, 133, 112, | |
| 509 | + 117, 37, 164, 32, 33, 74, 30, 130, 131, 31, | |
| 510 | + 118, 136, 135, 113, 114, | |
| 511 | 511 | }; |
| 512 | 512 | short luaY_sindex[] = { 0, |
| 513 | − 0, 332, -38, 0, 0, -38, -239, -223, 0, 0, | |
| 514 | − -23, 17, 0, 0, 0, 3, 0, 137, 0, 0, | |
| 515 | − 0, -38, -38, -38, 0, 0, 0, 137, 547, 0, | |
| 516 | − -25, -38, 0, 3, 45, 0, 212, 0, -22, 0, | |
| 517 | − 52, 140, -38, -223, -38, 0, 0, 0, 0, -166, | |
| 518 | − -38, -154, 40, 40, 102, 0, 0, 0, -38, -38, | |
| 519 | − -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, | |
| 520 | − -34, 481, -130, 0, 0, 0, -38, -129, 0, -194, | |
| 521 | − 0, -123, 45, 0, -17, 103, 0, 753, 0, 0, | |
| 522 | − 0, 0, 0, -30, -30, -30, -30, -30, -30, 95, | |
| 523 | − 11, 11, 40, 40, 40, 97, 41, 123, 0, 124, | |
| 524 | − 212, 0, 0, -38, -59, -38, 45, 0, 0, 0, | |
| 525 | − 128, 131, 0, 0, 0, 0, 0, -38, -38, -38, | |
| 526 | − 0, -97, 0, 120, -38, 0, 0, 212, 0, 3, | |
| 527 | − 0, 0, -194, -183, 118, 118, 212, 97, 0, -97, | |
| 528 | − 0, 212, 0, 0, 0, -85, 0, 0, -38, -82, | |
| 529 | − 0, 123, -80, 0, 0, 1105, 0, 0, 0, 0, | |
| 530 | − 0, 0, -183, 0, | |
| 513 | + 0, 288, -34, 0, 0, -34, -238, -223, 0, 0, | |
| 514 | + -6, 22, 0, 0, 0, 14, 0, 150, 0, 0, | |
| 515 | + 0, -34, -34, -34, 0, 0, 0, 150, 547, 0, | |
| 516 | + -46, -34, 0, 14, 34, 0, 212, 0, -5, 0, | |
| 517 | + 39, 156, -34, -223, -34, 0, 0, 0, 0, -194, | |
| 518 | + -34, -193, -4, -4, 48, 0, 0, 0, -34, -34, | |
| 519 | + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, | |
| 520 | + -38, 481, -173, 0, 0, 0, -34, -146, 0, -234, | |
| 521 | + 0, -138, 34, 0, -15, 96, 0, 753, 0, 0, | |
| 522 | + 0, 0, 0, -30, -30, -30, -30, -30, -30, -20, | |
| 523 | + -12, -12, -4, -4, -4, 0, -34, 16, 95, 0, | |
| 524 | + 98, 212, 0, 82, 0, -34, 328, -34, 34, 0, | |
| 525 | + 0, 0, 103, 101, 0, 0, 0, 0, 0, -34, | |
| 526 | + -34, 1181, 0, -91, 0, 92, -34, 0, -34, 0, | |
| 527 | + 212, 0, 14, 0, 0, -234, -233, 118, 118, 0, | |
| 528 | + 0, 0, -91, 0, 212, 212, 0, 0, 0, -105, | |
| 529 | + 0, 0, -34, -103, 0, 95, -101, 0, 0, 1105, | |
| 530 | + 0, 0, 0, 0, 0, 0, -233, 0, | |
| 531 | 531 | }; |
| 532 | 532 | short luaY_rindex[] = { 0, |
| 533 | − 0, 191, 69, 0, 0, 173, 0, 0, 0, 0, | |
| 534 | − 0, 69, 150, 0, 0, 146, 0, -36, 0, 0, | |
| 535 | − 0, 69, 69, 69, 0, 0, 0, 1, 0, 0, | |
| 536 | − 0, 69, 0, 47, 461, 436, 0, 0, 197, 130, | |
| 537 | − 0, 0, 69, 0, -33, 0, 0, 0, 0, 0, | |
| 538 | − 69, 0, 24, 59, 1181, 0, 0, 0, 69, 69, | |
| 539 | − 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, | |
| 540 | − -50, 0, 0, 0, 0, 0, 69, 0, 0, 152, | |
| 541 | − 0, 0, 311, -21, 0, 0, 0, 0, 0, 0, | |
| 533 | + 0, 169, 52, 0, 0, 173, 0, 0, 0, 0, | |
| 534 | + 0, 52, 508, 0, 0, 146, 0, -36, 0, 0, | |
| 535 | + 0, 52, 52, 52, 0, 0, 0, 1, 0, 0, | |
| 536 | + 0, 52, 0, 47, 461, 436, 0, 0, 197, 76, | |
| 537 | + 0, 0, 52, 0, -32, 0, 0, 0, 0, 0, | |
| 538 | + 52, 0, 24, 59, 1195, 0, 0, 0, 52, 52, | |
| 539 | + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, | |
| 540 | + -27, 0, 0, 0, 0, 0, 52, 0, 0, 129, | |
| 541 | + 0, 0, 311, 142, 0, 0, 0, 0, 0, 0, | |
| 542 | 542 | 0, 0, 0, 746, 776, 799, 821, 844, 866, 505, |
| 543 | − 383, 410, 88, 112, 359, 1174, 0, 74, 0, -40, | |
| 544 | − -26, 0, 0, 69, -230, 69, 921, 0, 0, 0, | |
| 545 | − 0, 160, 0, 0, 0, 0, 0, 69, 69, 69, | |
| 546 | − 0, 77, 0, 78, -9, 0, 0, 939, 0, 289, | |
| 547 | − 474, 0, 0, -60, 894, 1137, -16, 0, 0, 89, | |
| 548 | − 0, -10, 0, 0, 0, 0, 0, 0, 69, 0, | |
| 549 | − 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 550 | − 0, 0, -60, 0, | |
| 543 | + 383, 410, 88, 112, 359, 1174, 52, 0, 51, 0, | |
| 544 | + -40, -10, 0, 0, 0, 52, -153, 52, 921, 0, | |
| 545 | + 0, 0, 0, 144, 0, 0, 0, 0, 0, 52, | |
| 546 | + 52, 0, 0, 62, 0, 64, -26, 0, 52, 0, | |
| 547 | + 939, 0, 682, 474, 0, 0, -77, 894, 1137, 0, | |
| 548 | + 0, 0, 66, 0, 13, -18, 0, 0, 0, 0, | |
| 549 | + 0, 0, 52, 0, 0, 51, 0, 0, 0, 0, | |
| 550 | + 0, 0, 0, 0, 0, 0, -77, 0, | |
| 551 | 551 | }; |
| 552 | 552 | short luaY_gindex[] = { 0, |
| 553 | − -31, 171, 85, -2, 48, 0, 0, 0, 0, 0, | |
| 554 | − 0, 0, 67, 0, 0, 0, 0, 0, 75, 8, | |
| 555 | − 0, 0, 0, 0, 104, 107, -29, 0, 12, -61, | |
| 556 | − 0, 1260, 50, 0, 0, 0, 213, 0, 0, 0, | |
| 557 | − 0, 0, -107, 94, | |
| 553 | + 53, 147, -23, 3, 134, 0, 0, 0, 0, 0, | |
| 554 | + 0, 0, 40, 0, 0, 0, 0, 0, 49, 6, | |
| 555 | + 0, 0, 0, 0, 81, 83, -16, 0, 8, -70, | |
| 556 | + 0, 1445, 27, 0, 0, 0, 187, 0, 0, 0, | |
| 557 | + 0, 0, -108, 67, 0, | |
| 558 | 558 | }; |
| 559 | −#define YYTABLESIZE 1462 | |
| 560 | −short luaY_table[] = { 10, | |
| 561 | − 45, 24, 136, 58, 75, 24, 22, 62, 85, 13, | |
| 562 | − 22, 68, 66, 18, 67, 40, 69, 87, 78, 42, | |
| 563 | − 44, 78, 90, 43, 95, 92, 93, 84, 52, 127, | |
| 564 | − 26, 26, 87, 88, 38, 26, 26, 43, 77, 90, | |
| 565 | − 58, 45, 45, 45, 45, 45, 11, 45, 88, 79, | |
| 566 | − 9, 84, 68, 36, 168, 85, 45, 69, 50, 45, | |
| 567 | − 45, 48, 45, 70, 43, 43, 43, 43, 43, 95, | |
| 568 | − 43, 55, 55, 51, 85, 153, 119, 158, 159, 120, | |
| 569 | − 156, 137, 43, 43, 78, 43, 58, 39, 76, 55, | |
| 570 | − 36, 80, 36, 45, 45, 144, 165, 71, 87, 50, | |
| 571 | − 50, 50, 50, 50, 70, 50, 154, 87, 84, 172, | |
| 572 | − 155, 40, 10, 55, 88, 79, 43, 50, 50, 89, | |
| 573 | − 50, 163, 13, 58, 36, 45, 18, 83, 39, 39, | |
| 574 | − 39, 39, 39, 70, 39, 114, 68, 66, 171, 67, | |
| 575 | − 173, 69, 90, 125, 118, 11, 39, 39, 43, 39, | |
| 576 | − 124, 50, 40, 40, 40, 40, 40, 130, 40, 68, | |
| 577 | − 66, 117, 67, 141, 69, 131, 132, 135, 142, 6, | |
| 578 | − 40, 40, 62, 40, 143, 95, 148, 62, 150, 61, | |
| 579 | − 39, 164, 52, 50, 167, 52, 169, 95, 70, 95, | |
| 580 | − 26, 55, 67, 89, 50, 95, 98, 82, 78, 3, | |
| 581 | − 68, 79, 76, 4, 40, 5, 21, 95, 6, 7, | |
| 582 | − 89, 70, 39, 80, 9, 86, 162, 157, 139, 19, | |
| 583 | − 95, 140, 174, 19, 47, 149, 0, 51, 0, 0, | |
| 584 | − 51, 62, 0, 20, 21, 9, 40, 20, 21, 106, | |
| 585 | − 95, 0, 0, 0, 23, 0, 0, 0, 23, 0, | |
| 586 | − 65, 0, 0, 68, 66, 98, 67, 0, 69, 45, | |
| 559 | +#define YYTABLESIZE 1608 | |
| 560 | +short luaY_table[] = { 107, | |
| 561 | + 45, 24, 138, 58, 10, 24, 22, 13, 62, 18, | |
| 562 | + 22, 68, 66, 40, 67, 42, 69, 75, 78, 83, | |
| 563 | + 129, 68, 66, 43, 67, 84, 69, 162, 163, 68, | |
| 564 | + 52, 87, 79, 89, 69, 38, 121, 44, 78, 122, | |
| 565 | + 58, 45, 45, 45, 45, 45, 11, 45, 89, 84, | |
| 566 | + 9, 85, 107, 119, 43, 77, 90, 172, 50, 45, | |
| 567 | + 45, 45, 45, 70, 43, 43, 43, 43, 43, 157, | |
| 568 | + 43, 90, 48, 70, 160, 51, 71, 76, 80, 87, | |
| 569 | + 89, 70, 43, 43, 78, 43, 58, 39, 90, 70, | |
| 570 | + 55, 169, 116, 45, 45, 55, 55, 87, 79, 50, | |
| 571 | + 50, 50, 50, 50, 176, 50, 84, 26, 26, 92, | |
| 572 | + 93, 40, 26, 26, 89, 6, 43, 50, 50, 10, | |
| 573 | + 50, 97, 13, 58, 18, 45, 159, 120, 39, 39, | |
| 574 | + 39, 39, 39, 97, 39, 126, 127, 90, 134, 36, | |
| 575 | + 133, 137, 139, 145, 146, 11, 39, 39, 43, 39, | |
| 576 | + 153, 50, 40, 40, 40, 40, 40, 55, 40, 68, | |
| 577 | + 66, 168, 67, 171, 69, 173, 97, 140, 26, 67, | |
| 578 | + 40, 40, 62, 40, 55, 78, 36, 62, 36, 61, | |
| 579 | + 39, 147, 151, 50, 68, 92, 79, 97, 76, 21, | |
| 580 | + 80, 86, 166, 158, 161, 52, 100, 142, 47, 143, | |
| 581 | + 152, 52, 92, 178, 40, 0, 0, 50, 0, 167, | |
| 582 | + 36, 70, 39, 82, 0, 0, 0, 0, 0, 19, | |
| 583 | + 0, 0, 0, 19, 0, 0, 175, 0, 177, 0, | |
| 584 | + 0, 62, 97, 20, 21, 106, 40, 20, 21, 9, | |
| 585 | + 51, 0, 0, 0, 23, 0, 51, 0, 23, 0, | |
| 586 | + 65, 144, 0, 68, 66, 100, 67, 0, 69, 45, | |
| 587 | 587 | 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, |
| 588 | − 45, 62, 95, 61, 45, 45, 45, 45, 45, 45, | |
| 588 | + 45, 62, 0, 61, 45, 45, 45, 45, 45, 45, | |
| 589 | 589 | 45, 45, 43, 43, 43, 43, 43, 43, 43, 43, |
| 590 | 590 | 43, 43, 43, 43, 0, 55, 0, 43, 43, 43, |
| 591 | 591 | 43, 43, 43, 43, 43, 70, 0, 11, 11, 0, |
| @@ -603,25 +603,25 @@ short luaY_table[] = { 10, · 11 unmodified lines | ||
| 603 | 603 | 41, 0, 0, 37, 0, 37, 37, 37, 0, 0, |
| 604 | 604 | 0, 0, 0, 62, 62, 64, 0, 0, 62, 62, |
| 605 | 605 | 0, 37, 37, 0, 37, 0, 0, 0, 0, 0, |
| 606 | − 38, 41, 38, 38, 38, 98, 0, 98, 98, 98, | |
| 607 | − 63, 98, 98, 98, 98, 98, 98, 0, 38, 38, | |
| 608 | − 98, 38, 0, 66, 0, 37, 64, 29, 29, 64, | |
| 606 | + 38, 41, 38, 38, 38, 100, 0, 100, 100, 100, | |
| 607 | + 63, 100, 100, 100, 100, 100, 100, 0, 38, 38, | |
| 608 | + 100, 38, 0, 66, 0, 37, 64, 29, 29, 64, | |
| 609 | 609 | 29, 0, 29, 41, 0, 0, 57, 58, 59, 60, |
| 610 | 610 | 63, 64, 65, 0, 64, 29, 0, 29, 0, 0, |
| 611 | 611 | 0, 63, 38, 0, 42, 0, 0, 37, 0, 0, |
| 612 | 612 | 0, 0, 0, 0, 66, 29, 29, 66, 29, 63, |
| 613 | 613 | 29, 0, 68, 66, 0, 67, 0, 69, 0, 29, |
| 614 | 614 | 0, 0, 66, 29, 38, 29, 0, 0, 0, 0, |
| 615 | − 62, 0, 61, 0, 0, 42, 0, 11, 42, 11, | |
| 616 | − 11, 11, 0, 11, 11, 11, 11, 11, 0, 0, | |
| 617 | − 0, 0, 11, 42, 42, 0, 42, 29, 0, 18, | |
| 615 | + 62, 0, 61, 0, 0, 42, 3, 97, 42, 0, | |
| 616 | + 4, 91, 5, 97, 0, 6, 7, 8, 0, 0, | |
| 617 | + 0, 9, 0, 42, 42, 97, 42, 29, 91, 18, | |
| 618 | 618 | 0, 18, 18, 18, 70, 18, 18, 18, 18, 18, |
| 619 | − 18, 0, 0, 0, 18, 0, 0, 0, 68, 66, | |
| 620 | − 3, 67, 0, 69, 4, 0, 5, 42, 0, 6, | |
| 621 | − 7, 8, 0, 0, 0, 9, 62, 0, 61, 0, | |
| 619 | + 18, 0, 0, 0, 18, 0, 3, 0, 68, 66, | |
| 620 | + 4, 67, 5, 69, 0, 6, 7, 42, 97, 0, | |
| 621 | + 0, 9, 0, 0, 0, 0, 62, 0, 61, 0, | |
| 622 | 622 | 0, 0, 0, 0, 0, 0, 0, 41, 41, 41, |
| 623 | 623 | 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, |
| 624 | − 0, 0, 41, 41, 41, 41, 41, 41, 41, 41, | |
| 624 | + 97, 0, 41, 41, 41, 41, 41, 41, 41, 41, | |
| 625 | 625 | 70, 37, 37, 37, 37, 37, 37, 37, 37, 37, |
| 626 | 626 | 37, 37, 37, 0, 0, 0, 37, 37, 37, 37, |
| 627 | 627 | 37, 37, 37, 37, 0, 0, 0, 0, 38, 38, |
| @@ -632,7 +632,7 @@ short luaY_table[] = { 10, · 4 unmodified lines | ||
| 632 | 632 | 29, 29, 29, 29, 29, 29, 29, 0, 0, 0, |
| 633 | 633 | 0, 63, 63, 0, 0, 0, 63, 63, 0, 0, |
| 634 | 634 | 0, 0, 66, 0, 66, 66, 66, 0, 66, 66, |
| 635 | − 66, 66, 66, 66, 113, 31, 0, 66, 29, 29, | |
| 635 | + 66, 66, 66, 66, 115, 31, 0, 66, 29, 29, | |
| 636 | 636 | 29, 29, 29, 29, 29, 57, 58, 59, 60, 63, |
| 637 | 637 | 64, 65, 0, 42, 42, 42, 42, 42, 42, 42, |
| 638 | 638 | 42, 42, 42, 42, 42, 34, 0, 0, 42, 42, |
| @@ -642,7 +642,7 @@ short luaY_table[] = { 10, · 3 unmodified lines | ||
| 642 | 642 | 0, 0, 62, 0, 61, 0, 34, 0, 0, 34, |
| 643 | 643 | 32, 57, 58, 59, 60, 63, 64, 65, 0, 0, |
| 644 | 644 | 0, 0, 0, 0, 34, 34, 0, 34, 31, 33, |
| 645 | − 0, 0, 33, 35, 0, 126, 70, 0, 0, 0, | |
| 645 | + 0, 0, 33, 35, 0, 128, 70, 0, 0, 0, | |
| 646 | 646 | 0, 0, 0, 0, 0, 0, 0, 33, 33, 0, |
| 647 | 647 | 33, 32, 0, 0, 32, 36, 0, 0, 34, 0, |
| 648 | 648 | 31, 0, 0, 0, 0, 0, 0, 0, 0, 32, |
| @@ -650,12 +650,12 @@ short luaY_table[] = { 10, · 1 unmodified line | ||
| 650 | 650 | 0, 33, 0, 52, 0, 0, 0, 0, 0, 0, |
| 651 | 651 | 34, 0, 35, 35, 0, 35, 36, 0, 0, 36, |
| 652 | 652 | 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, |
| 653 | − 99, 0, 0, 33, 36, 36, 0, 36, 0, 0, | |
| 653 | + 101, 0, 0, 33, 36, 36, 0, 36, 0, 0, | |
| 654 | 654 | 0, 0, 0, 0, 52, 0, 35, 52, 28, 0, |
| 655 | − 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, | |
| 656 | − 0, 0, 52, 0, 0, 0, 0, 0, 36, 0, | |
| 655 | + 11, 0, 11, 11, 11, 32, 11, 11, 11, 11, | |
| 656 | + 11, 0, 52, 0, 0, 11, 0, 0, 36, 0, | |
| 657 | 657 | 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, |
| 658 | − 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, | |
| 658 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, | |
| 659 | 659 | 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, |
| 660 | 660 | 36, 0, 0, 0, 0, 0, 0, 28, 0, 0, |
| 661 | 661 | 0, 0, 0, 0, 31, 31, 31, 31, 31, 31, |
| @@ -675,66 +675,80 @@ short luaY_table[] = { 10, · 13 unmodified lines | ||
| 675 | 675 | 36, 36, 36, 36, 36, 36, 68, 66, 0, 67, |
| 676 | 676 | 0, 69, 52, 52, 52, 52, 52, 52, 52, 52, |
| 677 | 677 | 52, 52, 52, 52, 62, 0, 61, 52, 52, 52, |
| 678 | − 0, 0, 0, 0, 0, 0, 0, 54, 0, 99, | |
| 679 | − 54, 99, 99, 99, 0, 99, 99, 99, 99, 99, | |
| 680 | − 99, 0, 0, 0, 99, 54, 0, 28, 70, 28, | |
| 678 | + 0, 0, 0, 0, 0, 0, 0, 54, 0, 101, | |
| 679 | + 54, 101, 101, 101, 0, 101, 101, 101, 101, 101, | |
| 680 | + 101, 0, 0, 0, 101, 54, 0, 28, 70, 28, | |
| 681 | 681 | 28, 28, 0, 28, 28, 28, 28, 28, 28, 0, |
| 682 | − 0, 0, 28, 94, 0, 94, 94, 94, 94, 94, | |
| 683 | − 94, 0, 29, 29, 0, 29, 0, 29, 0, 54, | |
| 684 | − 0, 94, 94, 94, 0, 94, 0, 0, 0, 0, | |
| 685 | − 29, 0, 29, 0, 0, 0, 0, 0, 0, 0, | |
| 682 | + 0, 0, 28, 96, 0, 96, 96, 96, 96, 96, | |
| 683 | + 96, 0, 68, 66, 0, 67, 0, 69, 0, 54, | |
| 684 | + 0, 96, 96, 96, 86, 96, 29, 29, 0, 29, | |
| 685 | + 62, 29, 61, 0, 0, 0, 0, 0, 0, 0, | |
| 686 | + 0, 0, 0, 0, 29, 0, 29, 0, 0, 0, | |
| 687 | + 0, 54, 0, 0, 96, 0, 0, 96, 0, 0, | |
| 688 | + 0, 0, 0, 150, 70, 0, 0, 0, 0, 0, | |
| 689 | + 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, | |
| 690 | + 0, 0, 0, 0, 0, 0, 96, 0, 96, 0, | |
| 691 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 686 | 692 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 687 | − 0, 54, 29, 0, 94, 0, 0, 94, 0, 0, | |
| 688 | − 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, | |
| 689 | − 0, 53, 54, 0, 0, 0, 0, 0, 0, 0, | |
| 690 | − 0, 72, 0, 0, 0, 0, 94, 0, 94, 0, | |
| 691 | 693 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 692 | − 88, 0, 0, 0, 0, 0, 0, 0, 94, 95, | |
| 693 | − 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, | |
| 694 | − 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 695 | 694 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 696 | 695 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 697 | − 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, | |
| 698 | − 0, 0, 0, 138, 0, 0, 0, 0, 0, 57, | |
| 699 | − 58, 59, 60, 63, 64, 65, 0, 145, 146, 147, | |
| 700 | − 0, 0, 0, 0, 152, 54, 54, 54, 54, 54, | |
| 696 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 697 | + 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, | |
| 698 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, | |
| 699 | + 58, 59, 60, 63, 64, 65, 0, 0, 0, 0, | |
| 700 | + 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, | |
| 701 | 701 | 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, |
| 702 | − 54, 54, 54, 0, 0, 0, 0, 0, 166, 0, | |
| 702 | + 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, | |
| 703 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 704 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 705 | + 0, 0, 0, 0, 0, 0, 0, 29, 96, 96, | |
| 706 | + 96, 96, 96, 96, 96, 57, 58, 59, 60, 63, | |
| 707 | + 64, 65, 0, 0, 0, 0, 53, 54, 0, 29, | |
| 708 | + 29, 29, 29, 29, 29, 29, 72, 0, 0, 0, | |
| 703 | 709 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 710 | + 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, | |
| 711 | + 0, 0, 0, 94, 95, 96, 97, 98, 99, 100, | |
| 712 | + 101, 102, 103, 104, 105, 112, 0, 0, 0, 0, | |
| 704 | 713 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 705 | − 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, | |
| 706 | − 94, 94, 94, 94, 94, 29, 29, 29, 29, 29, | |
| 707 | − 29, 29, | |
| 714 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 715 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 716 | + 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 717 | + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 718 | + 0, 0, 0, 0, 148, 149, 0, 0, 0, 0, | |
| 719 | + 0, 155, 0, 156, 0, 0, 0, 0, 0, 0, | |
| 720 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 721 | + 0, 0, 0, 0, 0, 0, 0, 170, | |
| 708 | 722 | }; |
| 709 | −short luaY_check[] = { 2, | |
| 710 | − 0, 40, 110, 40, 34, 40, 45, 41, 59, 2, | |
| 711 | − 45, 42, 43, 2, 45, 8, 47, 44, 59, 8, | |
| 712 | − 44, 44, 44, 0, 46, 57, 58, 44, 46, 91, | |
| 713 | − 261, 262, 59, 44, 274, 266, 267, 61, 61, 61, | |
| 714 | − 40, 41, 42, 43, 44, 45, 0, 47, 59, 59, | |
| 715 | − 274, 44, 42, 6, 162, 44, 40, 47, 0, 59, | |
| 716 | − 60, 59, 62, 94, 41, 42, 43, 44, 45, 91, | |
| 717 | − 47, 24, 123, 91, 125, 137, 271, 261, 262, 274, | |
| 718 | − 142, 113, 59, 60, 125, 62, 123, 0, 44, 123, | |
| 719 | − 43, 40, 45, 93, 94, 127, 158, 123, 125, 41, | |
| 720 | − 42, 43, 44, 45, 94, 47, 138, 274, 125, 171, | |
| 721 | − 140, 0, 115, 123, 125, 125, 93, 59, 60, 274, | |
| 722 | − 62, 153, 115, 123, 77, 125, 115, 43, 41, 42, | |
| 723 | − 43, 44, 45, 94, 47, 266, 42, 43, 170, 45, | |
| 724 | − 172, 47, 41, 41, 274, 0, 59, 60, 125, 62, | |
| 725 | − 274, 93, 41, 42, 43, 44, 45, 61, 47, 42, | |
| 726 | − 43, 77, 45, 116, 47, 125, 44, 44, 41, 40, | |
| 727 | − 59, 60, 0, 62, 44, 46, 274, 60, 59, 62, | |
| 728 | − 93, 267, 46, 125, 267, 46, 267, 58, 94, 40, | |
| 729 | − 0, 123, 41, 44, 58, 46, 0, 58, 125, 259, | |
| 730 | − 41, 125, 125, 263, 93, 265, 267, 58, 268, 269, | |
| 731 | − 61, 94, 125, 125, 274, 45, 150, 143, 115, 258, | |
| 732 | − 91, 115, 173, 258, 12, 132, -1, 91, -1, -1, | |
| 733 | − 91, 59, -1, 272, 273, 274, 125, 272, 273, 274, | |
| 734 | − 91, -1, -1, -1, 283, -1, -1, -1, 283, -1, | |
| 735 | − 281, -1, -1, 42, 43, 59, 45, -1, 47, 259, | |
| 723 | +short luaY_check[] = { 91, | |
| 724 | + 0, 40, 111, 40, 2, 40, 45, 2, 41, 2, | |
| 725 | + 45, 42, 43, 8, 45, 8, 47, 34, 59, 43, | |
| 726 | + 91, 42, 43, 0, 45, 44, 47, 261, 262, 42, | |
| 727 | + 46, 59, 59, 44, 47, 274, 271, 44, 44, 274, | |
| 728 | + 40, 41, 42, 43, 44, 45, 0, 47, 59, 44, | |
| 729 | + 274, 44, 91, 77, 61, 61, 44, 166, 0, 59, | |
| 730 | + 60, 40, 62, 94, 41, 42, 43, 44, 45, 140, | |
| 731 | + 47, 59, 59, 94, 145, 91, 123, 44, 40, 274, | |
| 732 | + 274, 94, 59, 60, 125, 62, 123, 0, 41, 94, | |
| 733 | + 123, 162, 266, 93, 94, 123, 123, 125, 125, 41, | |
| 734 | + 42, 43, 44, 45, 175, 47, 125, 261, 262, 57, | |
| 735 | + 58, 0, 266, 267, 125, 40, 93, 59, 60, 117, | |
| 736 | + 62, 46, 117, 123, 117, 125, 143, 274, 41, 42, | |
| 737 | + 43, 44, 45, 58, 47, 274, 41, 125, 44, 6, | |
| 738 | + 125, 44, 61, 41, 44, 0, 59, 60, 125, 62, | |
| 739 | + 59, 93, 41, 42, 43, 44, 45, 24, 47, 42, | |
| 740 | + 43, 267, 45, 267, 47, 267, 91, 115, 0, 41, | |
| 741 | + 59, 60, 0, 62, 123, 125, 43, 60, 45, 62, | |
| 742 | + 93, 129, 274, 125, 41, 44, 125, 46, 125, 267, | |
| 743 | + 125, 45, 153, 141, 146, 46, 0, 117, 12, 117, | |
| 744 | + 134, 46, 61, 177, 93, -1, -1, 58, -1, 157, | |
| 745 | + 77, 94, 125, 58, -1, -1, -1, -1, -1, 258, | |
| 746 | + -1, -1, -1, 258, -1, -1, 174, -1, 176, -1, | |
| 747 | + -1, 59, 91, 272, 273, 274, 125, 272, 273, 274, | |
| 748 | + 91, -1, -1, -1, 283, -1, 91, -1, 283, -1, | |
| 749 | + 281, 118, -1, 42, 43, 59, 45, -1, 47, 259, | |
| 736 | 750 | 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, |
| 737 | − 270, 60, 123, 62, 274, 275, 276, 277, 278, 279, | |
| 751 | + 270, 60, -1, 62, 274, 275, 276, 277, 278, 279, | |
| 738 | 752 | 280, 281, 259, 260, 261, 262, 263, 264, 265, 266, |
| 739 | 753 | 267, 268, 269, 270, -1, 123, -1, 274, 275, 276, |
| 740 | 754 | 277, 278, 279, 280, 281, 94, -1, 261, 262, -1, |
| @@ -761,16 +775,16 @@ short luaY_check[] = { 2, · 20 unmodified lines | ||
| 761 | 775 | -1, -1, -1, -1, 41, 42, 43, 44, 45, 59, |
| 762 | 776 | 47, -1, 42, 43, -1, 45, -1, 47, -1, 94, |
| 763 | 777 | -1, -1, 59, 60, 125, 62, -1, -1, -1, -1, |
| 764 | − 60, -1, 62, -1, -1, 41, -1, 259, 44, 261, | |
| 765 | − 262, 263, -1, 265, 266, 267, 268, 269, -1, -1, | |
| 766 | − -1, -1, 274, 59, 60, -1, 62, 94, -1, 259, | |
| 778 | + 60, -1, 62, -1, -1, 41, 259, 40, 44, -1, | |
| 779 | + 263, 44, 265, 46, -1, 268, 269, 270, -1, -1, | |
| 780 | + -1, 274, -1, 59, 60, 58, 62, 94, 61, 259, | |
| 767 | 781 | -1, 261, 262, 263, 94, 265, 266, 267, 268, 269, |
| 768 | − 270, -1, -1, -1, 274, -1, -1, -1, 42, 43, | |
| 769 | − 259, 45, -1, 47, 263, -1, 265, 93, -1, 268, | |
| 770 | − 269, 270, -1, -1, -1, 274, 60, -1, 62, -1, | |
| 782 | + 270, -1, -1, -1, 274, -1, 259, -1, 42, 43, | |
| 783 | + 263, 45, 265, 47, -1, 268, 269, 93, 91, -1, | |
| 784 | + -1, 274, -1, -1, -1, -1, 60, -1, 62, -1, | |
| 771 | 785 | -1, -1, -1, -1, -1, -1, -1, 259, 260, 261, |
| 772 | 786 | 262, 263, 264, 265, 266, 267, 268, 269, 270, 125, |
| 773 | − -1, -1, 274, 275, 276, 277, 278, 279, 280, 281, | |
| 787 | + 123, -1, 274, 275, 276, 277, 278, 279, 280, 281, | |
| 774 | 788 | 94, 259, 260, 261, 262, 263, 264, 265, 266, 267, |
| 775 | 789 | 268, 269, 270, -1, -1, -1, 274, 275, 276, 277, |
| 776 | 790 | 278, 279, 280, 281, -1, -1, -1, -1, 259, 260, |
| @@ -801,8 +815,8 @@ short luaY_check[] = { 2, · 24 unmodified lines | ||
| 801 | 815 | -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, |
| 802 | 816 | 0, -1, -1, 125, 59, 60, -1, 62, -1, -1, |
| 803 | 817 | -1, -1, -1, -1, 41, -1, 93, 44, 0, -1, |
| 804 | − -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, | |
| 805 | − -1, -1, 59, -1, -1, -1, -1, -1, 93, -1, | |
| 818 | + 259, -1, 261, 262, 263, 125, 265, 266, 267, 268, | |
| 819 | + 269, -1, 59, -1, -1, 274, -1, -1, 93, -1, | |
| 806 | 820 | -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, |
| 807 | 821 | -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, |
| 808 | 822 | -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, |
| @@ -830,30 +844,44 @@ short luaY_check[] = { 2, · 21 unmodified lines | ||
| 830 | 844 | 262, 263, -1, 265, 266, 267, 268, 269, 270, -1, |
| 831 | 845 | -1, -1, 274, 40, -1, 42, 43, 44, 45, 46, |
| 832 | 846 | 47, -1, 42, 43, -1, 45, -1, 47, -1, 93, |
| 833 | − -1, 58, 59, 60, -1, 62, -1, -1, -1, -1, | |
| 834 | − 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, | |
| 847 | + -1, 58, 59, 60, 61, 62, 42, 43, -1, 45, | |
| 848 | + 60, 47, 62, -1, -1, -1, -1, -1, -1, -1, | |
| 849 | + -1, -1, -1, -1, 60, -1, 62, -1, -1, -1, | |
| 850 | + -1, 125, -1, -1, 91, -1, -1, 94, -1, -1, | |
| 851 | + -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, | |
| 852 | + -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, | |
| 853 | + -1, -1, -1, -1, -1, -1, 123, -1, 125, -1, | |
| 854 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 855 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 835 | 856 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 836 | − -1, 125, 3, -1, 91, -1, -1, 94, -1, -1, | |
| 837 | − -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, | |
| 838 | − -1, 22, 23, -1, -1, -1, -1, -1, -1, -1, | |
| 839 | − -1, 32, -1, -1, -1, -1, 123, -1, 125, -1, | |
| 840 | 857 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 841 | − 51, -1, -1, -1, -1, -1, -1, -1, 59, 60, | |
| 842 | − 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, | |
| 843 | − 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 844 | 858 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 845 | 859 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 846 | 860 | -1, -1, -1, -1, 260, -1, -1, -1, -1, -1, |
| 847 | − -1, -1, -1, 114, -1, -1, -1, -1, -1, 275, | |
| 848 | − 276, 277, 278, 279, 280, 281, -1, 128, 129, 130, | |
| 849 | − -1, -1, -1, -1, 135, 259, 260, 261, 262, 263, | |
| 861 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, 275, | |
| 862 | + 276, 277, 278, 279, 280, 281, -1, -1, -1, -1, | |
| 863 | + -1, -1, -1, -1, -1, 259, 260, 261, 262, 263, | |
| 850 | 864 | 264, 265, 266, 267, 268, 269, 270, -1, -1, -1, |
| 851 | − 274, 275, 276, -1, -1, -1, -1, -1, 159, -1, | |
| 865 | + 274, 275, 276, -1, -1, -1, -1, -1, -1, -1, | |
| 852 | 866 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 853 | 867 | -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 854 | − -1, -1, -1, -1, -1, -1, -1, -1, 275, 276, | |
| 868 | + -1, -1, -1, -1, -1, -1, -1, 3, 275, 276, | |
| 855 | 869 | 277, 278, 279, 280, 281, 275, 276, 277, 278, 279, |
| 856 | − 280, 281, | |
| 870 | + 280, 281, -1, -1, -1, -1, 22, 23, -1, 275, | |
| 871 | + 276, 277, 278, 279, 280, 281, 32, -1, -1, -1, | |
| 872 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 873 | + -1, -1, -1, -1, -1, 51, -1, -1, -1, -1, | |
| 874 | + -1, -1, -1, 59, 60, 61, 62, 63, 64, 65, | |
| 875 | + 66, 67, 68, 69, 70, 71, -1, -1, -1, -1, | |
| 876 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 877 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 878 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 879 | + -1, 107, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 880 | + 116, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 881 | + -1, -1, -1, -1, 130, 131, -1, -1, -1, -1, | |
| 882 | + -1, 137, -1, 139, -1, -1, -1, -1, -1, -1, | |
| 883 | + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | |
| 884 | + -1, -1, -1, -1, -1, -1, -1, 163, | |
| 857 | 885 | }; |
| 858 | 886 | #define YYFINAL 1 |
| 859 | 887 | #ifndef YYDEBUG |
| @@ -958,7 +986,9 @@ char *luaY_rule[] = { · 98 unmodified lines | ||
| 958 | 986 | "ffieldlist : ffieldlist1 lastcomma", |
| 959 | 987 | "ffieldlist1 : ffield", |
| 960 | 988 | "ffieldlist1 : ffieldlist1 ',' ffield", |
| 961 | −"ffield : NAME '=' expr1", | |
| 989 | +"ffield : ffieldkey '=' expr1", | |
| 990 | +"ffieldkey : '[' expr1 ']'", | |
| 991 | +"ffieldkey : NAME", | |
| 962 | 992 | "lfieldlist :", |
| 963 | 993 | "lfieldlist : lfieldlist1 lastcomma", |
| 964 | 994 | "lfieldlist1 : expr1", |
| @@ -1139,7 +1169,7 @@ luaY_reduce: · 174 unmodified lines | ||
| 1139 | 1169 | switch (luaY_n) |
| 1140 | 1170 | { |
| 1141 | 1171 | case 5: |
| 1142 | −#line 470 "lua.stx" | |
| 1172 | +#line 468 "lua.stx" | |
| 1143 | 1173 | { |
| 1144 | 1174 | code_byte(PUSHFUNCTION); |
| 1145 | 1175 | code_code(luaY_vsp[0].pFunc); |
| @@ -1147,28 +1177,26 @@ case 5: · 1 unmodified line | ||
| 1147 | 1177 | } |
| 1148 | 1178 | break; |
| 1149 | 1179 | case 6: |
| 1150 | −#line 477 "lua.stx" | |
| 1180 | +#line 475 "lua.stx" | |
| 1151 | 1181 | { luaY_val.vLong =luaY_vsp[0].vLong; init_func(); } |
| 1152 | 1182 | break; |
| 1153 | 1183 | case 7: |
| 1154 | −#line 479 "lua.stx" | |
| 1184 | +#line 477 "lua.stx" | |
| 1155 | 1185 | { |
| 1156 | − code_byte(PUSHSTRING); | |
| 1157 | − code_word(luaI_findconstant(luaY_vsp[0].pTStr)); | |
| 1186 | + code_constant(luaY_vsp[0].pTStr); | |
| 1158 | 1187 | luaY_val.vLong = 0; /* indexed variable */ |
| 1159 | 1188 | init_func(); |
| 1160 | 1189 | add_localvar(luaI_createfixedstring("self")); |
| 1161 | 1190 | } |
| 1162 | 1191 | break; |
| 1163 | 1192 | case 8: |
| 1164 | −#line 489 "lua.stx" | |
| 1193 | +#line 486 "lua.stx" | |
| 1165 | 1194 | { |
| 1166 | 1195 | codereturn(); |
| 1167 | 1196 | luaY_val.pFunc = new(TFunc); |
| 1168 | 1197 | luaI_initTFunc(luaY_val.pFunc); |
| 1169 | 1198 | luaY_val.pFunc->size = pc; |
| 1170 | 1199 | luaY_val.pFunc->code = newvector(pc, Byte); |
| 1171 | − luaY_val.pFunc->fileName = lua_parsedfile; | |
| 1172 | 1200 | luaY_val.pFunc->lineDefined = luaY_vsp[-3].vInt; |
| 1173 | 1201 | memcpy(luaY_val.pFunc->code, basepc, pc*sizeof(Byte)); |
| 1174 | 1202 | if (lua_debug) |
| @@ -1182,15 +1210,15 @@ case 8: · 7 unmodified lines | ||
| 1182 | 1210 | } |
| 1183 | 1211 | break; |
| 1184 | 1212 | case 13: |
| 1185 | −#line 516 "lua.stx" | |
| 1213 | +#line 512 "lua.stx" | |
| 1186 | 1214 | { codeIf(luaY_vsp[-4].vLong, luaY_vsp[-2].vLong); } |
| 1187 | 1215 | break; |
| 1188 | 1216 | case 14: |
| 1189 | −#line 518 "lua.stx" | |
| 1217 | +#line 514 "lua.stx" | |
| 1190 | 1218 | {luaY_val.vLong=pc;} |
| 1191 | 1219 | break; |
| 1192 | 1220 | case 15: |
| 1193 | −#line 519 "lua.stx" | |
| 1221 | +#line 515 "lua.stx" | |
| 1194 | 1222 | { |
| 1195 | 1223 | basepc[luaY_vsp[-3].vLong] = IFFJMP; |
| 1196 | 1224 | code_word_at(basepc+luaY_vsp[-3].vLong+1, pc - (luaY_vsp[-3].vLong + sizeof(Word)+1)); |
| @@ -1199,18 +1227,18 @@ case 15: · 2 unmodified lines | ||
| 1199 | 1227 | } |
| 1200 | 1228 | break; |
| 1201 | 1229 | case 16: |
| 1202 | −#line 526 "lua.stx" | |
| 1230 | +#line 522 "lua.stx" | |
| 1203 | 1231 | {luaY_val.vLong=pc;} |
| 1204 | 1232 | break; |
| 1205 | 1233 | case 17: |
| 1206 | −#line 527 "lua.stx" | |
| 1234 | +#line 523 "lua.stx" | |
| 1207 | 1235 | { |
| 1208 | 1236 | basepc[luaY_vsp[0].vLong] = IFFUPJMP; |
| 1209 | 1237 | code_word_at(basepc+luaY_vsp[0].vLong+1, pc - (luaY_vsp[-4].vLong)); |
| 1210 | 1238 | } |
| 1211 | 1239 | break; |
| 1212 | 1240 | case 18: |
| 1213 | −#line 533 "lua.stx" | |
| 1241 | +#line 529 "lua.stx" | |
| 1214 | 1242 | { |
| 1215 | 1243 | { |
| 1216 | 1244 | int i; |
| @@ -1222,22 +1250,26 @@ case 18: · 5 unmodified lines | ||
| 1222 | 1250 | } |
| 1223 | 1251 | } |
| 1224 | 1252 | break; |
| 1253 | +case 19: | |
| 1254 | +#line 539 "lua.stx" | |
| 1255 | +{;} | |
| 1256 | +break; | |
| 1225 | 1257 | case 20: |
| 1226 | −#line 545 "lua.stx" | |
| 1258 | +#line 541 "lua.stx" | |
| 1227 | 1259 | { nlocalvar += luaY_vsp[-1].vInt; |
| 1228 | 1260 | adjust_mult_assign(luaY_vsp[-1].vInt, luaY_vsp[0].vInt, 0); |
| 1229 | 1261 | } |
| 1230 | 1262 | break; |
| 1231 | 1263 | case 23: |
| 1232 | −#line 553 "lua.stx" | |
| 1264 | +#line 549 "lua.stx" | |
| 1233 | 1265 | { codeIf(luaY_vsp[-3].vLong, luaY_vsp[-1].vLong); } |
| 1234 | 1266 | break; |
| 1235 | 1267 | case 24: |
| 1236 | −#line 556 "lua.stx" | |
| 1268 | +#line 552 "lua.stx" | |
| 1237 | 1269 | {luaY_val.vInt = nlocalvar;} |
| 1238 | 1270 | break; |
| 1239 | 1271 | case 25: |
| 1240 | −#line 557 "lua.stx" | |
| 1272 | +#line 553 "lua.stx" | |
| 1241 | 1273 | { |
| 1242 | 1274 | if (nlocalvar != luaY_vsp[-2].vInt) |
| 1243 | 1275 | { |
| @@ -1251,14 +1283,14 @@ case 25: · 7 unmodified lines | ||
| 1251 | 1283 | } |
| 1252 | 1284 | break; |
| 1253 | 1285 | case 27: |
| 1254 | −#line 572 "lua.stx" | |
| 1286 | +#line 568 "lua.stx" | |
| 1255 | 1287 | { |
| 1256 | 1288 | adjust_functioncall(luaY_vsp[-1].vLong, MULT_RET); |
| 1257 | 1289 | codereturn(); |
| 1258 | 1290 | } |
| 1259 | 1291 | break; |
| 1260 | 1292 | case 28: |
| 1261 | −#line 579 "lua.stx" | |
| 1293 | +#line 575 "lua.stx" | |
| 1262 | 1294 | { |
| 1263 | 1295 | luaY_val.vLong = pc; |
| 1264 | 1296 | code_byte(0); /* open space */ |
| @@ -1266,103 +1298,102 @@ case 28: · 1 unmodified line | ||
| 1266 | 1298 | } |
| 1267 | 1299 | break; |
| 1268 | 1300 | case 29: |
| 1269 | −#line 586 "lua.stx" | |
| 1301 | +#line 582 "lua.stx" | |
| 1270 | 1302 | { adjust_functioncall(luaY_vsp[0].vLong, 1); } |
| 1271 | 1303 | break; |
| 1272 | 1304 | case 30: |
| 1273 | −#line 589 "lua.stx" | |
| 1305 | +#line 585 "lua.stx" | |
| 1274 | 1306 | { luaY_val.vLong = luaY_vsp[-1].vLong; } |
| 1275 | 1307 | break; |
| 1276 | 1308 | case 31: |
| 1277 | −#line 590 "lua.stx" | |
| 1309 | +#line 586 "lua.stx" | |
| 1278 | 1310 | { code_byte(EQOP); luaY_val.vLong = 0; } |
| 1279 | 1311 | break; |
| 1280 | 1312 | case 32: |
| 1281 | −#line 591 "lua.stx" | |
| 1313 | +#line 587 "lua.stx" | |
| 1282 | 1314 | { code_byte(LTOP); luaY_val.vLong = 0; } |
| 1283 | 1315 | break; |
| 1284 | 1316 | case 33: |
| 1285 | −#line 592 "lua.stx" | |
| 1317 | +#line 588 "lua.stx" | |
| 1286 | 1318 | { code_byte(GTOP); luaY_val.vLong = 0; } |
| 1287 | 1319 | break; |
| 1288 | 1320 | case 34: |
| 1289 | −#line 593 "lua.stx" | |
| 1321 | +#line 589 "lua.stx" | |
| 1290 | 1322 | { code_byte(EQOP); code_byte(NOTOP); luaY_val.vLong = 0; } |
| 1291 | 1323 | break; |
| 1292 | 1324 | case 35: |
| 1293 | −#line 594 "lua.stx" | |
| 1325 | +#line 590 "lua.stx" | |
| 1294 | 1326 | { code_byte(LEOP); luaY_val.vLong = 0; } |
| 1295 | 1327 | break; |
| 1296 | 1328 | case 36: |
| 1297 | −#line 595 "lua.stx" | |
| 1329 | +#line 591 "lua.stx" | |
| 1298 | 1330 | { code_byte(GEOP); luaY_val.vLong = 0; } |
| 1299 | 1331 | break; |
| 1300 | 1332 | case 37: |
| 1301 | −#line 596 "lua.stx" | |
| 1333 | +#line 592 "lua.stx" | |
| 1302 | 1334 | { code_byte(ADDOP); luaY_val.vLong = 0; } |
| 1303 | 1335 | break; |
| 1304 | 1336 | case 38: |
| 1305 | −#line 597 "lua.stx" | |
| 1337 | +#line 593 "lua.stx" | |
| 1306 | 1338 | { code_byte(SUBOP); luaY_val.vLong = 0; } |
| 1307 | 1339 | break; |
| 1308 | 1340 | case 39: |
| 1309 | −#line 598 "lua.stx" | |
| 1341 | +#line 594 "lua.stx" | |
| 1310 | 1342 | { code_byte(MULTOP); luaY_val.vLong = 0; } |
| 1311 | 1343 | break; |
| 1312 | 1344 | case 40: |
| 1313 | −#line 599 "lua.stx" | |
| 1345 | +#line 595 "lua.stx" | |
| 1314 | 1346 | { code_byte(DIVOP); luaY_val.vLong = 0; } |
| 1315 | 1347 | break; |
| 1316 | 1348 | case 41: |
| 1317 | −#line 600 "lua.stx" | |
| 1349 | +#line 596 "lua.stx" | |
| 1318 | 1350 | { code_byte(POWOP); luaY_val.vLong = 0; } |
| 1319 | 1351 | break; |
| 1320 | 1352 | case 42: |
| 1321 | −#line 601 "lua.stx" | |
| 1353 | +#line 597 "lua.stx" | |
| 1322 | 1354 | { code_byte(CONCOP); luaY_val.vLong = 0; } |
| 1323 | 1355 | break; |
| 1324 | 1356 | case 43: |
| 1325 | −#line 602 "lua.stx" | |
| 1357 | +#line 598 "lua.stx" | |
| 1326 | 1358 | { code_byte(MINUSOP); luaY_val.vLong = 0;} |
| 1327 | 1359 | break; |
| 1328 | 1360 | case 44: |
| 1329 | −#line 603 "lua.stx" | |
| 1361 | +#line 599 "lua.stx" | |
| 1330 | 1362 | { luaY_val.vLong = 0; } |
| 1331 | 1363 | break; |
| 1332 | 1364 | case 45: |
| 1333 | −#line 604 "lua.stx" | |
| 1365 | +#line 600 "lua.stx" | |
| 1334 | 1366 | { luaY_val.vLong = 0;} |
| 1335 | 1367 | break; |
| 1336 | 1368 | case 46: |
| 1337 | −#line 605 "lua.stx" | |
| 1369 | +#line 601 "lua.stx" | |
| 1338 | 1370 | { code_number(luaY_vsp[0].vFloat); luaY_val.vLong = 0; } |
| 1339 | 1371 | break; |
| 1340 | 1372 | case 47: |
| 1341 | −#line 607 "lua.stx" | |
| 1373 | +#line 603 "lua.stx" | |
| 1342 | 1374 | { |
| 1343 | − code_byte(PUSHSTRING); | |
| 1344 | − code_word(luaY_vsp[0].vWord); | |
| 1345 | − luaY_val.vLong = 0; | |
| 1375 | + code_string(luaY_vsp[0].vWord); | |
| 1376 | + luaY_val.vLong = 0; | |
| 1346 | 1377 | } |
| 1347 | 1378 | break; |
| 1348 | 1379 | case 48: |
| 1349 | −#line 612 "lua.stx" | |
| 1380 | +#line 607 "lua.stx" | |
| 1350 | 1381 | {code_byte(PUSHNIL); luaY_val.vLong = 0; } |
| 1351 | 1382 | break; |
| 1352 | 1383 | case 49: |
| 1353 | −#line 613 "lua.stx" | |
| 1384 | +#line 608 "lua.stx" | |
| 1354 | 1385 | { luaY_val.vLong = luaY_vsp[0].vLong; } |
| 1355 | 1386 | break; |
| 1356 | 1387 | case 50: |
| 1357 | −#line 614 "lua.stx" | |
| 1388 | +#line 609 "lua.stx" | |
| 1358 | 1389 | { code_byte(NOTOP); luaY_val.vLong = 0;} |
| 1359 | 1390 | break; |
| 1360 | 1391 | case 51: |
| 1361 | −#line 615 "lua.stx" | |
| 1392 | +#line 610 "lua.stx" | |
| 1362 | 1393 | {code_byte(POP); } |
| 1363 | 1394 | break; |
| 1364 | 1395 | case 52: |
| 1365 | −#line 616 "lua.stx" | |
| 1396 | +#line 611 "lua.stx" | |
| 1366 | 1397 | { |
| 1367 | 1398 | basepc[luaY_vsp[-2].vLong] = ONFJMP; |
| 1368 | 1399 | code_word_at(basepc+luaY_vsp[-2].vLong+1, pc - (luaY_vsp[-2].vLong + sizeof(Word)+1)); |
| @@ -1370,11 +1401,11 @@ case 52: · 1 unmodified line | ||
| 1370 | 1401 | } |
| 1371 | 1402 | break; |
| 1372 | 1403 | case 53: |
| 1373 | −#line 621 "lua.stx" | |
| 1404 | +#line 616 "lua.stx" | |
| 1374 | 1405 | {code_byte(POP); } |
| 1375 | 1406 | break; |
| 1376 | 1407 | case 54: |
| 1377 | −#line 622 "lua.stx" | |
| 1408 | +#line 617 "lua.stx" | |
| 1378 | 1409 | { |
| 1379 | 1410 | basepc[luaY_vsp[-2].vLong] = ONTJMP; |
| 1380 | 1411 | code_word_at(basepc+luaY_vsp[-2].vLong+1, pc - (luaY_vsp[-2].vLong + sizeof(Word)+1)); |
| @@ -1382,20 +1413,20 @@ case 54: · 1 unmodified line | ||
| 1382 | 1413 | } |
| 1383 | 1414 | break; |
| 1384 | 1415 | case 55: |
| 1385 | −#line 630 "lua.stx" | |
| 1416 | +#line 625 "lua.stx" | |
| 1386 | 1417 | { |
| 1387 | 1418 | code_byte(CREATEARRAY); |
| 1388 | 1419 | luaY_val.vLong = pc; code_word(0); |
| 1389 | 1420 | } |
| 1390 | 1421 | break; |
| 1391 | 1422 | case 56: |
| 1392 | −#line 635 "lua.stx" | |
| 1423 | +#line 630 "lua.stx" | |
| 1393 | 1424 | { |
| 1394 | 1425 | code_word_at(basepc+luaY_vsp[-3].vLong, luaY_vsp[-1].vInt); |
| 1395 | 1426 | } |
| 1396 | 1427 | break; |
| 1397 | 1428 | case 57: |
| 1398 | −#line 641 "lua.stx" | |
| 1429 | +#line 636 "lua.stx" | |
| 1399 | 1430 | { |
| 1400 | 1431 | code_byte(CALLFUNC); |
| 1401 | 1432 | code_byte(luaY_vsp[-1].vInt+luaY_vsp[0].vInt); |
| @@ -1404,11 +1435,11 @@ case 57: · 2 unmodified lines | ||
| 1404 | 1435 | } |
| 1405 | 1436 | break; |
| 1406 | 1437 | case 58: |
| 1407 | −#line 649 "lua.stx" | |
| 1438 | +#line 644 "lua.stx" | |
| 1408 | 1439 | { luaY_val.vInt = 0; } |
| 1409 | 1440 | break; |
| 1410 | 1441 | case 59: |
| 1411 | −#line 651 "lua.stx" | |
| 1442 | +#line 646 "lua.stx" | |
| 1412 | 1443 | { |
| 1413 | 1444 | code_byte(PUSHSELF); |
| 1414 | 1445 | code_word(luaI_findconstant(luaY_vsp[0].pTStr)); |
| @@ -1416,31 +1447,31 @@ case 59: · 1 unmodified line | ||
| 1416 | 1447 | } |
| 1417 | 1448 | break; |
| 1418 | 1449 | case 60: |
| 1419 | −#line 659 "lua.stx" | |
| 1450 | +#line 654 "lua.stx" | |
| 1420 | 1451 | { luaY_val.vInt = adjust_functioncall(luaY_vsp[-1].vLong, 1); } |
| 1421 | 1452 | break; |
| 1422 | 1453 | case 61: |
| 1423 | −#line 660 "lua.stx" | |
| 1454 | +#line 655 "lua.stx" | |
| 1424 | 1455 | { luaY_val.vInt = 1; } |
| 1425 | 1456 | break; |
| 1426 | 1457 | case 62: |
| 1427 | −#line 663 "lua.stx" | |
| 1458 | +#line 658 "lua.stx" | |
| 1428 | 1459 | { luaY_val.vLong = 0; } |
| 1429 | 1460 | break; |
| 1430 | 1461 | case 63: |
| 1431 | −#line 664 "lua.stx" | |
| 1462 | +#line 659 "lua.stx" | |
| 1432 | 1463 | { luaY_val.vLong = luaY_vsp[0].vLong; } |
| 1433 | 1464 | break; |
| 1434 | 1465 | case 64: |
| 1435 | −#line 667 "lua.stx" | |
| 1466 | +#line 662 "lua.stx" | |
| 1436 | 1467 | { if (luaY_vsp[0].vLong != 0) luaY_val.vLong = luaY_vsp[0].vLong; else luaY_val.vLong = -1; } |
| 1437 | 1468 | break; |
| 1438 | 1469 | case 65: |
| 1439 | −#line 668 "lua.stx" | |
| 1470 | +#line 663 "lua.stx" | |
| 1440 | 1471 | { luaY_val.vLong = adjust_functioncall(luaY_vsp[-1].vLong, 1); } |
| 1441 | 1472 | break; |
| 1442 | 1473 | case 66: |
| 1443 | −#line 669 "lua.stx" | |
| 1474 | +#line 664 "lua.stx" | |
| 1444 | 1475 | { |
| 1445 | 1476 | if (luaY_vsp[0].vLong == 0) luaY_val.vLong = -(luaY_vsp[-1].vLong + 1); /* -length */ |
| 1446 | 1477 | else |
| @@ -1451,19 +1482,19 @@ case 66: · 4 unmodified lines | ||
| 1451 | 1482 | } |
| 1452 | 1483 | break; |
| 1453 | 1484 | case 67: |
| 1454 | −#line 679 "lua.stx" | |
| 1485 | +#line 674 "lua.stx" | |
| 1455 | 1486 | { luaY_val.vInt = close_parlist(0); } |
| 1456 | 1487 | break; |
| 1457 | 1488 | case 68: |
| 1458 | −#line 680 "lua.stx" | |
| 1489 | +#line 675 "lua.stx" | |
| 1459 | 1490 | { luaY_val.vInt = close_parlist(luaY_vsp[0].vInt); } |
| 1460 | 1491 | break; |
| 1461 | 1492 | case 69: |
| 1462 | −#line 683 "lua.stx" | |
| 1493 | +#line 678 "lua.stx" | |
| 1463 | 1494 | { luaY_val.vInt = luaY_vsp[0].vInt; } |
| 1464 | 1495 | break; |
| 1465 | 1496 | case 70: |
| 1466 | −#line 685 "lua.stx" | |
| 1497 | +#line 680 "lua.stx" | |
| 1467 | 1498 | { |
| 1468 | 1499 | if (luaY_vsp[-2].vInt) |
| 1469 | 1500 | lua_error("invalid parameter list"); |
| @@ -1471,113 +1502,110 @@ case 70: · 1 unmodified line | ||
| 1471 | 1502 | } |
| 1472 | 1503 | break; |
| 1473 | 1504 | case 71: |
| 1474 | −#line 692 "lua.stx" | |
| 1505 | +#line 687 "lua.stx" | |
| 1475 | 1506 | { add_localvar(luaY_vsp[0].pTStr); luaY_val.vInt = 0; } |
| 1476 | 1507 | break; |
| 1477 | 1508 | case 72: |
| 1478 | −#line 693 "lua.stx" | |
| 1509 | +#line 688 "lua.stx" | |
| 1479 | 1510 | { luaY_val.vInt = 1; } |
| 1480 | 1511 | break; |
| 1481 | 1512 | case 73: |
| 1482 | −#line 697 "lua.stx" | |
| 1513 | +#line 692 "lua.stx" | |
| 1483 | 1514 | { flush_list(luaY_vsp[0].vInt/FIELDS_PER_FLUSH, luaY_vsp[0].vInt%FIELDS_PER_FLUSH); } |
| 1484 | 1515 | break; |
| 1485 | 1516 | case 74: |
| 1486 | −#line 699 "lua.stx" | |
| 1517 | +#line 694 "lua.stx" | |
| 1487 | 1518 | { luaY_val.vInt = luaY_vsp[-2].vInt+luaY_vsp[0].vInt; } |
| 1488 | 1519 | break; |
| 1489 | 1520 | case 75: |
| 1490 | −#line 701 "lua.stx" | |
| 1521 | +#line 696 "lua.stx" | |
| 1491 | 1522 | { luaY_val.vInt = luaY_vsp[-1].vInt; flush_record(luaY_vsp[-1].vInt%FIELDS_PER_FLUSH); } |
| 1492 | 1523 | break; |
| 1493 | 1524 | case 76: |
| 1494 | −#line 705 "lua.stx" | |
| 1525 | +#line 700 "lua.stx" | |
| 1495 | 1526 | { luaY_val.vInt = 0; } |
| 1496 | 1527 | break; |
| 1497 | 1528 | case 77: |
| 1498 | −#line 707 "lua.stx" | |
| 1529 | +#line 702 "lua.stx" | |
| 1499 | 1530 | { luaY_val.vInt = luaY_vsp[0].vInt; flush_record(luaY_vsp[0].vInt%FIELDS_PER_FLUSH); } |
| 1500 | 1531 | break; |
| 1501 | 1532 | case 80: |
| 1502 | −#line 714 "lua.stx" | |
| 1533 | +#line 709 "lua.stx" | |
| 1503 | 1534 | { luaY_val.vInt = 0; } |
| 1504 | 1535 | break; |
| 1505 | 1536 | case 81: |
| 1506 | −#line 715 "lua.stx" | |
| 1537 | +#line 710 "lua.stx" | |
| 1507 | 1538 | { luaY_val.vInt = luaY_vsp[-1].vInt; } |
| 1508 | 1539 | break; |
| 1509 | 1540 | case 82: |
| 1510 | −#line 718 "lua.stx" | |
| 1541 | +#line 713 "lua.stx" | |
| 1511 | 1542 | {luaY_val.vInt=1;} |
| 1512 | 1543 | break; |
| 1513 | 1544 | case 83: |
| 1514 | −#line 720 "lua.stx" | |
| 1545 | +#line 715 "lua.stx" | |
| 1515 | 1546 | { |
| 1516 | 1547 | luaY_val.vInt=luaY_vsp[-2].vInt+1; |
| 1517 | 1548 | if (luaY_val.vInt%FIELDS_PER_FLUSH == 0) flush_record(FIELDS_PER_FLUSH); |
| 1518 | 1549 | } |
| 1519 | 1550 | break; |
| 1520 | −case 84: | |
| 1521 | −#line 727 "lua.stx" | |
| 1522 | −{ | |
| 1523 | − push_field(luaI_findconstant(luaY_vsp[-2].pTStr)); | |
| 1524 | − } | |
| 1551 | +case 86: | |
| 1552 | +#line 725 "lua.stx" | |
| 1553 | +{ code_constant(luaY_vsp[0].pTStr); } | |
| 1525 | 1554 | break; |
| 1526 | −case 85: | |
| 1527 | −#line 732 "lua.stx" | |
| 1555 | +case 87: | |
| 1556 | +#line 728 "lua.stx" | |
| 1528 | 1557 | { luaY_val.vInt = 0; } |
| 1529 | 1558 | break; |
| 1530 | −case 86: | |
| 1531 | −#line 733 "lua.stx" | |
| 1559 | +case 88: | |
| 1560 | +#line 729 "lua.stx" | |
| 1532 | 1561 | { luaY_val.vInt = luaY_vsp[-1].vInt; } |
| 1533 | 1562 | break; |
| 1534 | −case 87: | |
| 1535 | −#line 736 "lua.stx" | |
| 1563 | +case 89: | |
| 1564 | +#line 732 "lua.stx" | |
| 1536 | 1565 | {luaY_val.vInt=1;} |
| 1537 | 1566 | break; |
| 1538 | −case 88: | |
| 1539 | −#line 738 "lua.stx" | |
| 1567 | +case 90: | |
| 1568 | +#line 734 "lua.stx" | |
| 1540 | 1569 | { |
| 1541 | 1570 | luaY_val.vInt=luaY_vsp[-2].vInt+1; |
| 1542 | 1571 | if (luaY_val.vInt%FIELDS_PER_FLUSH == 0) |
| 1543 | 1572 | flush_list(luaY_val.vInt/FIELDS_PER_FLUSH - 1, FIELDS_PER_FLUSH); |
| 1544 | 1573 | } |
| 1545 | 1574 | break; |
| 1546 | −case 89: | |
| 1547 | −#line 746 "lua.stx" | |
| 1575 | +case 91: | |
| 1576 | +#line 742 "lua.stx" | |
| 1548 | 1577 | { |
| 1549 | 1578 | nvarbuffer = 0; |
| 1550 | 1579 | add_varbuffer(luaY_vsp[0].vLong); |
| 1551 | 1580 | luaY_val.vInt = (luaY_vsp[0].vLong == 0) ? 1 : 0; |
| 1552 | 1581 | } |
| 1553 | 1582 | break; |
| 1554 | −case 90: | |
| 1555 | −#line 752 "lua.stx" | |
| 1583 | +case 92: | |
| 1584 | +#line 748 "lua.stx" | |
| 1556 | 1585 | { |
| 1557 | 1586 | add_varbuffer(luaY_vsp[0].vLong); |
| 1558 | 1587 | luaY_val.vInt = (luaY_vsp[0].vLong == 0) ? luaY_vsp[-2].vInt + 1 : luaY_vsp[-2].vInt; |
| 1559 | 1588 | } |
| 1560 | 1589 | break; |
| 1561 | −case 91: | |
| 1562 | −#line 758 "lua.stx" | |
| 1590 | +case 93: | |
| 1591 | +#line 754 "lua.stx" | |
| 1563 | 1592 | { luaY_val.vLong = luaY_vsp[0].vLong; } |
| 1564 | 1593 | break; |
| 1565 | −case 92: | |
| 1566 | −#line 760 "lua.stx" | |
| 1594 | +case 94: | |
| 1595 | +#line 756 "lua.stx" | |
| 1567 | 1596 | { |
| 1568 | 1597 | luaY_val.vLong = 0; /* indexed variable */ |
| 1569 | 1598 | } |
| 1570 | 1599 | break; |
| 1571 | −case 93: | |
| 1572 | −#line 764 "lua.stx" | |
| 1600 | +case 95: | |
| 1601 | +#line 760 "lua.stx" | |
| 1573 | 1602 | { |
| 1574 | − code_byte(PUSHSTRING); | |
| 1575 | − code_word(luaI_findconstant(luaY_vsp[0].pTStr)); | |
| 1576 | − luaY_val.vLong = 0; /* indexed variable */ | |
| 1603 | + code_constant(luaY_vsp[0].pTStr); | |
| 1604 | + luaY_val.vLong = 0; /* indexed variable */ | |
| 1577 | 1605 | } |
| 1578 | 1606 | break; |
| 1579 | −case 94: | |
| 1580 | −#line 772 "lua.stx" | |
| 1607 | +case 96: | |
| 1608 | +#line 767 "lua.stx" | |
| 1581 | 1609 | { |
| 1582 | 1610 | int local = lua_localname(luaY_vsp[0].pTStr); |
| 1583 | 1611 | if (local == -1) /* global var */ |
| @@ -1586,30 +1614,30 @@ case 94: · 2 unmodified lines | ||
| 1586 | 1614 | luaY_val.vLong = -(local+1); /* return negative value */ |
| 1587 | 1615 | } |
| 1588 | 1616 | break; |
| 1589 | −case 95: | |
| 1590 | −#line 781 "lua.stx" | |
| 1617 | +case 97: | |
| 1618 | +#line 776 "lua.stx" | |
| 1591 | 1619 | { lua_pushvar(luaY_vsp[0].vLong); } |
| 1592 | 1620 | break; |
| 1593 | −case 96: | |
| 1594 | −#line 784 "lua.stx" | |
| 1621 | +case 98: | |
| 1622 | +#line 779 "lua.stx" | |
| 1595 | 1623 | {store_localvar(luaY_vsp[0].pTStr, 0); luaY_val.vInt = 1;} |
| 1596 | 1624 | break; |
| 1597 | −case 97: | |
| 1598 | −#line 786 "lua.stx" | |
| 1625 | +case 99: | |
| 1626 | +#line 781 "lua.stx" | |
| 1599 | 1627 | { |
| 1600 | 1628 | store_localvar(luaY_vsp[0].pTStr, luaY_vsp[-2].vInt); |
| 1601 | 1629 | luaY_val.vInt = luaY_vsp[-2].vInt+1; |
| 1602 | 1630 | } |
| 1603 | 1631 | break; |
| 1604 | −case 98: | |
| 1605 | −#line 792 "lua.stx" | |
| 1632 | +case 100: | |
| 1633 | +#line 787 "lua.stx" | |
| 1606 | 1634 | { luaY_val.vInt = 0; } |
| 1607 | 1635 | break; |
| 1608 | −case 99: | |
| 1609 | −#line 793 "lua.stx" | |
| 1636 | +case 101: | |
| 1637 | +#line 788 "lua.stx" | |
| 1610 | 1638 | { luaY_val.vInt = luaY_vsp[0].vLong; } |
| 1611 | 1639 | break; |
| 1612 | −#line 1613 "y.tab.c" | |
| 1640 | +#line 1641 "y.tab.c" | |
| 1613 | 1641 | } |
| 1614 | 1642 | luaY_ssp -= luaY_m; |
| 1615 | 1643 | luaY_state = *luaY_ssp; |
| @@ -3,9 +3,11 @@ · 2 unmodified lines | ||
| 3 | 3 | ** Module to control static tables |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char *rcs_table="$Id: table.c,v 2.58 1996/11/01 12:47:45 roberto Exp $"; | |
| 6 | +char *rcs_table="$Id: table.c,v 2.72 1997/06/17 18:09:31 roberto Exp $"; | |
| 7 | 7 | |
| 8 | −#include "mem.h" | |
| 8 | +#include "luamem.h" | |
| 9 | +#include "auxlib.h" | |
| 10 | +#include "func.h" | |
| 9 | 11 | #include "opcode.h" |
| 10 | 12 | #include "tree.h" |
| 11 | 13 | #include "hash.h" |
| @@ -27,49 +29,14 @@ Word lua_nconstant = 0; · 15 unmodified lines | ||
| 27 | 29 | static Long lua_maxconstant = 0; |
| 28 | 30 | |
| 29 | 31 | |
| 30 | −#define GARBAGE_BLOCK 50 | |
| 31 | − | |
| 32 | −static void lua_nextvar (void); | |
| 33 | − | |
| 34 | −/* | |
| 35 | −** Internal functions | |
| 36 | −*/ | |
| 37 | −static struct { | |
| 38 | − char *name; | |
| 39 | − lua_CFunction func; | |
| 40 | −} int_funcs[] = { | |
| 41 | − {"assert", luaI_assert}, | |
| 42 | − {"call", luaI_call}, | |
| 43 | − {"dofile", lua_internaldofile}, | |
| 44 | − {"dostring", lua_internaldostring}, | |
| 45 | − {"error", luaI_error}, | |
| 46 | − {"getglobal", luaI_getglobal}, | |
| 47 | − {"next", lua_next}, | |
| 48 | − {"nextvar", lua_nextvar}, | |
| 49 | − {"print", luaI_print}, | |
| 50 | − {"setfallback", luaI_setfallback}, | |
| 51 | − {"setglobal", luaI_setglobal}, | |
| 52 | − {"tonumber", lua_obj2number}, | |
| 53 | − {"tostring", luaI_tostring}, | |
| 54 | − {"type", luaI_type} | |
| 55 | −}; | |
| 56 | − | |
| 57 | −#define INTFUNCSIZE (sizeof(int_funcs)/sizeof(int_funcs[0])) | |
| 32 | +#define GARBAGE_BLOCK 100 | |
| 58 | 33 | |
| 59 | 34 | |
| 60 | 35 | void luaI_initsymbol (void) |
| 61 | 36 | { |
| 62 | − int i; | |
| 63 | − Word n; | |
| 64 | 37 | lua_maxsymbol = BUFFER_BLOCK; |
| 65 | 38 | lua_table = newvector(lua_maxsymbol, Symbol); |
| 66 | − for (i=0; i<INTFUNCSIZE; i++) | |
| 67 | − { | |
| 68 | − n = luaI_findsymbolbyname(int_funcs[i].name); | |
| 69 | − s_tag(n) = LUA_T_CFUNCTION; s_fvalue(n) = int_funcs[i].func; | |
| 70 | − } | |
| 71 | − n = luaI_findsymbolbyname("_VERSION_"); | |
| 72 | − s_tag(n) = LUA_T_STRING; s_tsvalue(n) = lua_createstring(LUA_VERSION); | |
| 39 | + luaI_predefine(); | |
| 73 | 40 | } |
| 74 | 41 | |
| 75 | 42 | |
| @@ -92,17 +59,17 @@ void luaI_initconstant (void) · 16 unmodified lines | ||
| 92 | 59 | */ |
| 93 | 60 | Word luaI_findsymbol (TaggedString *t) |
| 94 | 61 | { |
| 95 | − if (t->varindex == NOT_USED) | |
| 62 | + if (t->u.s.varindex == NOT_USED) | |
| 96 | 63 | { |
| 97 | 64 | if (lua_ntable == lua_maxsymbol) |
| 98 | 65 | lua_maxsymbol = growvector(&lua_table, lua_maxsymbol, Symbol, |
| 99 | 66 | symbolEM, MAX_WORD); |
| 100 | − t->varindex = lua_ntable; | |
| 67 | + t->u.s.varindex = lua_ntable; | |
| 101 | 68 | lua_table[lua_ntable].varname = t; |
| 102 | − s_tag(lua_ntable) = LUA_T_NIL; | |
| 69 | + s_ttype(lua_ntable) = LUA_T_NIL; | |
| 103 | 70 | lua_ntable++; |
| 104 | 71 | } |
| 105 | − return t->varindex; | |
| 72 | + return t->u.s.varindex; | |
| 106 | 73 | } |
| 107 | 74 | |
| 108 | 75 | |
| @@ -118,16 +85,16 @@ Word luaI_findsymbolbyname (char *name) · 9 unmodified lines | ||
| 118 | 85 | */ |
| 119 | 86 | Word luaI_findconstant (TaggedString *t) |
| 120 | 87 | { |
| 121 | − if (t->constindex == NOT_USED) | |
| 88 | + if (t->u.s.constindex == NOT_USED) | |
| 122 | 89 | { |
| 123 | 90 | if (lua_nconstant == lua_maxconstant) |
| 124 | 91 | lua_maxconstant = growvector(&lua_constant, lua_maxconstant, TaggedString *, |
| 125 | 92 | constantEM, MAX_WORD); |
| 126 | − t->constindex = lua_nconstant; | |
| 93 | + t->u.s.constindex = lua_nconstant; | |
| 127 | 94 | lua_constant[lua_nconstant] = t; |
| 128 | 95 | lua_nconstant++; |
| 129 | 96 | } |
| 130 | − return t->constindex; | |
| 97 | + return t->u.s.constindex; | |
| 131 | 98 | } |
| 132 | 99 | |
| 133 | 100 | |
| @@ -145,10 +112,16 @@ TaggedString *luaI_createfixedstring (char *name) · 11 unmodified lines | ||
| 145 | 112 | } |
| 146 | 113 | |
| 147 | 114 | |
| 115 | +int luaI_globaldefined (char *name) | |
| 116 | +{ | |
| 117 | + return ttype(&lua_table[luaI_findsymbolbyname(name)].object) != LUA_T_NIL; | |
| 118 | +} | |
| 119 | + | |
| 120 | + | |
| 148 | 121 | /* |
| 149 | 122 | ** Traverse symbol table objects |
| 150 | 123 | */ |
| 151 | −static char *lua_travsymbol (int (*fn)(Object *)) | |
| 124 | +static char *lua_travsymbol (int (*fn)(TObject *)) | |
| 152 | 125 | { |
| 153 | 126 | Word i; |
| 154 | 127 | for (i=0; i<lua_ntable; i++) |
| @@ -161,13 +134,14 @@ static char *lua_travsymbol (int (*fn)(Object *)) · 6 unmodified lines | ||
| 161 | 134 | /* |
| 162 | 135 | ** Mark an object if it is a string or a unmarked array. |
| 163 | 136 | */ |
| 164 | −int lua_markobject (Object *o) | |
| 137 | +int lua_markobject (TObject *o) | |
| 165 | 138 | {/* if already marked, does not change mark value */ |
| 166 | − if (tag(o) == LUA_T_STRING && !tsvalue(o)->marked) | |
| 139 | + if (ttype(o) == LUA_T_USERDATA || | |
| 140 | + (ttype(o) == LUA_T_STRING && !tsvalue(o)->marked)) | |
| 167 | 141 | tsvalue(o)->marked = 1; |
| 168 | − else if (tag(o) == LUA_T_ARRAY) | |
| 142 | + else if (ttype(o) == LUA_T_ARRAY) | |
| 169 | 143 | lua_hashmark (avalue(o)); |
| 170 | − else if ((o->tag == LUA_T_FUNCTION || o->tag == LUA_T_MARK) | |
| 144 | + else if ((o->ttype == LUA_T_FUNCTION || o->ttype == LUA_T_MARK) | |
| 171 | 145 | && !o->value.tf->marked) |
| 172 | 146 | o->value.tf->marked = 1; |
| 173 | 147 | return 0; |
| @@ -176,11 +150,11 @@ int lua_markobject (Object *o) · 2 unmodified lines | ||
| 176 | 150 | /* |
| 177 | 151 | * returns 0 if the object is going to be (garbage) collected |
| 178 | 152 | */ |
| 179 | −int luaI_ismarked (Object *o) | |
| 153 | +int luaI_ismarked (TObject *o) | |
| 180 | 154 | { |
| 181 | − switch (o->tag) | |
| 155 | + switch (o->ttype) | |
| 182 | 156 | { |
| 183 | − case LUA_T_STRING: | |
| 157 | + case LUA_T_STRING: case LUA_T_USERDATA: | |
| 184 | 158 | return o->value.ts->marked; |
| 185 | 159 | case LUA_T_FUNCTION: |
| 186 | 160 | return o->value.tf->marked; |
| @@ -192,76 +166,90 @@ int luaI_ismarked (Object *o) · 5 unmodified lines | ||
| 192 | 166 | } |
| 193 | 167 | |
| 194 | 168 | |
| 169 | +static void call_nilIM (void) | |
| 170 | +{ /* signals end of garbage collection */ | |
| 171 | + TObject t; | |
| 172 | + ttype(&t) = LUA_T_NIL; | |
| 173 | + luaI_gcIM(&t); /* end of list */ | |
| 174 | +} | |
| 175 | + | |
| 195 | 176 | /* |
| 196 | 177 | ** Garbage collection. |
| 197 | 178 | ** Delete all unused strings and arrays. |
| 198 | 179 | */ |
| 199 | −Long luaI_collectgarbage (void) | |
| 180 | +static long gc_block = GARBAGE_BLOCK; | |
| 181 | +static long gc_nentity = 0; /* total of strings, arrays, etc */ | |
| 182 | + | |
| 183 | +static void markall (void) | |
| 200 | 184 | { |
| 201 | − Long recovered = 0; | |
| 202 | 185 | lua_travstack(lua_markobject); /* mark stack objects */ |
| 203 | 186 | lua_travsymbol(lua_markobject); /* mark symbol table objects */ |
| 204 | 187 | luaI_travlock(lua_markobject); /* mark locked objects */ |
| 205 | 188 | luaI_travfallbacks(lua_markobject); /* mark fallbacks */ |
| 189 | +} | |
| 190 | + | |
| 191 | + | |
| 192 | +long lua_collectgarbage (long limit) | |
| 193 | +{ | |
| 194 | + long recovered = 0; | |
| 195 | + Hash *freetable; | |
| 196 | + TaggedString *freestr; | |
| 197 | + TFunc *freefunc; | |
| 198 | + markall(); | |
| 206 | 199 | luaI_invalidaterefs(); |
| 207 | − recovered += lua_strcollector(); | |
| 208 | − recovered += lua_hashcollector(); | |
| 209 | − recovered += luaI_funccollector(); | |
| 200 | + freetable = luaI_hashcollector(&recovered); | |
| 201 | + freestr = luaI_strcollector(&recovered); | |
| 202 | + freefunc = luaI_funccollector(&recovered); | |
| 203 | + gc_nentity -= recovered; | |
| 204 | + gc_block = (limit == 0) ? 2*(gc_block-recovered) : gc_nentity+limit; | |
| 205 | + luaI_hashcallIM(freetable); | |
| 206 | + luaI_strcallIM(freestr); | |
| 207 | + call_nilIM(); | |
| 208 | + luaI_hashfree(freetable); | |
| 209 | + luaI_strfree(freestr); | |
| 210 | + luaI_funcfree(freefunc); | |
| 210 | 211 | return recovered; |
| 211 | 212 | } |
| 212 | 213 | |
| 214 | + | |
| 213 | 215 | void lua_pack (void) |
| 214 | 216 | { |
| 215 | − static unsigned long block = GARBAGE_BLOCK; | |
| 216 | − static unsigned long nentity = 0; /* total of strings, arrays, etc */ | |
| 217 | − unsigned long recovered = 0; | |
| 218 | − if (nentity++ < block) return; | |
| 219 | − recovered = luaI_collectgarbage(); | |
| 220 | − block = 2*(block-recovered); | |
| 221 | − nentity -= recovered; | |
| 217 | + if (++gc_nentity >= gc_block) | |
| 218 | + lua_collectgarbage(0); | |
| 222 | 219 | } |
| 223 | 220 | |
| 224 | 221 | |
| 225 | 222 | /* |
| 226 | 223 | ** Internal function: return next global variable |
| 227 | 224 | */ |
| 228 | −static void lua_nextvar (void) | |
| 225 | +void luaI_nextvar (void) | |
| 229 | 226 | { |
| 230 | − Word next; | |
| 231 | − lua_Object o = lua_getparam(1); | |
| 232 | − if (o == LUA_NOOBJECT) | |
| 233 | − lua_error("too few arguments to function `nextvar'"); | |
| 234 | − if (lua_getparam(2) != LUA_NOOBJECT) | |
| 235 | − lua_error("too many arguments to function `nextvar'"); | |
| 236 | − if (lua_isnil(o)) | |
| 237 | − next = 0; | |
| 238 | − else if (!lua_isstring(o)) | |
| 239 | − { | |
| 240 | − lua_error("incorrect argument to function `nextvar'"); | |
| 241 | − return; /* to avoid warnings */ | |
| 242 | − } | |
| 243 | − else | |
| 244 | − next = luaI_findsymbolbyname(lua_getstring(o)) + 1; | |
| 245 | − while (next < lua_ntable && s_tag(next) == LUA_T_NIL) next++; | |
| 246 | − if (next < lua_ntable) | |
| 247 | − { | |
| 248 | − lua_pushstring(lua_table[next].varname->str); | |
| 249 | − luaI_pushobject(&s_object(next)); | |
| 250 | − } | |
| 227 | + Word next; | |
| 228 | + if (lua_isnil(lua_getparam(1))) | |
| 229 | + next = 0; | |
| 230 | + else | |
| 231 | + next = luaI_findsymbolbyname(luaL_check_string(1)) + 1; | |
| 232 | + while (next < lua_ntable && s_ttype(next) == LUA_T_NIL) | |
| 233 | + next++; | |
| 234 | + if (next < lua_ntable) { | |
| 235 | + lua_pushstring(lua_table[next].varname->str); | |
| 236 | + luaI_pushobject(&s_object(next)); | |
| 237 | + } | |
| 251 | 238 | } |
| 252 | 239 | |
| 253 | 240 | |
| 254 | −static Object *functofind; | |
| 255 | −static int checkfunc (Object *o) | |
| 241 | +static TObject *functofind; | |
| 242 | +static int checkfunc (TObject *o) | |
| 256 | 243 | { |
| 257 | − if (o->tag == LUA_T_FUNCTION) | |
| 244 | + if (o->ttype == LUA_T_FUNCTION) | |
| 258 | 245 | return |
| 259 | − ((functofind->tag == LUA_T_FUNCTION || functofind->tag == LUA_T_MARK) | |
| 246 | + ((functofind->ttype == LUA_T_FUNCTION || functofind->ttype == LUA_T_MARK) | |
| 260 | 247 | && (functofind->value.tf == o->value.tf)); |
| 261 | − if (o->tag == LUA_T_CFUNCTION) | |
| 248 | + if (o->ttype == LUA_T_CFUNCTION) | |
| 262 | 249 | return |
| 263 | − ((functofind->tag == LUA_T_CFUNCTION || functofind->tag == LUA_T_CMARK) | |
| 264 | − && (functofind->value.f == o->value.f)); | |
| 250 | + ((functofind->ttype == LUA_T_CFUNCTION || | |
| 251 | + functofind->ttype == LUA_T_CMARK) && | |
| 252 | + (functofind->value.f == o->value.f)); | |
| 265 | 253 | return 0; |
| 266 | 254 | } |
| 267 | 255 | |
| @@ -270,7 +258,7 @@ char *lua_getobjname (lua_Object o, char **name) · 2 unmodified lines | ||
| 270 | 258 | { /* try to find a name for given function */ |
| 271 | 259 | functofind = luaI_Address(o); |
| 272 | 260 | if ((*name = luaI_travfallbacks(checkfunc)) != NULL) |
| 273 | − return "fallback"; | |
| 261 | + return "tag-method"; | |
| 274 | 262 | else if ((*name = lua_travsymbol(checkfunc)) != NULL) |
| 275 | 263 | return "global"; |
| 276 | 264 | else return ""; |
| @@ -1,7 +1,7 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** Module to control static tables |
| 3 | 3 | ** TeCGraf - PUC-Rio |
| 4 | −** $Id: table.h,v 2.21 1996/04/22 18:00:37 roberto Exp $ | |
| 4 | +** $Id: table.h,v 2.25 1997/05/26 14:42:36 roberto Exp $ | |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | 7 | #ifndef table_h |
| @@ -12,7 +12,7 @@ · 4 unmodified lines | ||
| 12 | 12 | |
| 13 | 13 | typedef struct |
| 14 | 14 | { |
| 15 | − Object object; | |
| 15 | + TObject object; | |
| 16 | 16 | TaggedString *varname; |
| 17 | 17 | } Symbol; |
| 18 | 18 | |
| @@ -28,10 +28,11 @@ Word luaI_findsymbolbyname (char *name); · 9 unmodified lines | ||
| 28 | 28 | Word luaI_findsymbol (TaggedString *t); |
| 29 | 29 | Word luaI_findconstant (TaggedString *t); |
| 30 | 30 | Word luaI_findconstantbyname (char *name); |
| 31 | +int luaI_globaldefined (char *name); | |
| 32 | +void luaI_nextvar (void); | |
| 31 | 33 | TaggedString *luaI_createfixedstring (char *str); |
| 32 | −int lua_markobject (Object *o); | |
| 33 | −int luaI_ismarked (Object *o); | |
| 34 | −Long luaI_collectgarbage (void); | |
| 34 | +int lua_markobject (TObject *o); | |
| 35 | +int luaI_ismarked (TObject *o); | |
| 35 | 36 | void lua_pack (void); |
| 36 | 37 | |
| 37 | 38 | |
| @@ -3,17 +3,18 @@ · 2 unmodified lines | ||
| 3 | 3 | ** TecCGraf - PUC-Rio |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char *rcs_tree="$Id: tree.c,v 1.20 1996/03/14 15:56:26 roberto Exp $"; | |
| 6 | +char *rcs_tree="$Id: tree.c,v 1.28 1997/06/11 14:24:40 roberto Exp $"; | |
| 7 | 7 | |
| 8 | 8 | |
| 9 | 9 | #include <string.h> |
| 10 | 10 | |
| 11 | −#include "mem.h" | |
| 11 | +#include "luamem.h" | |
| 12 | 12 | #include "lua.h" |
| 13 | 13 | #include "tree.h" |
| 14 | 14 | #include "lex.h" |
| 15 | 15 | #include "hash.h" |
| 16 | 16 | #include "table.h" |
| 17 | +#include "fallback.h" | |
| 17 | 18 | |
| 18 | 19 | |
| 19 | 20 | #define NUM_HASHS 64 |
| @@ -28,23 +29,43 @@ static int initialized = 0; · 8 unmodified lines | ||
| 28 | 29 | |
| 29 | 30 | static stringtable string_root[NUM_HASHS]; |
| 30 | 31 | |
| 31 | −static TaggedString EMPTY = {NOT_USED, NOT_USED, 0, 2, {0}}; | |
| 32 | +static TaggedString EMPTY = {LUA_T_STRING, NULL, {{NOT_USED, NOT_USED}}, | |
| 33 | + 0, 2, {0}}; | |
| 32 | 34 | |
| 33 | 35 | |
| 34 | −static unsigned long hash (char *str) | |
| 36 | +static unsigned long hash (char *s, int tag) | |
| 35 | 37 | { |
| 36 | − unsigned long h = 0; | |
| 37 | − while (*str) | |
| 38 | − h = ((h<<5)-h)^(unsigned char)*(str++); | |
| 38 | + unsigned long h; | |
| 39 | + if (tag != LUA_T_STRING) | |
| 40 | + h = (unsigned long)s; | |
| 41 | + else { | |
| 42 | + h = 0; | |
| 43 | + while (*s) | |
| 44 | + h = ((h<<5)-h)^(unsigned char)*(s++); | |
| 45 | + } | |
| 39 | 46 | return h; |
| 40 | 47 | } |
| 41 | 48 | |
| 49 | + | |
| 50 | +static void luaI_inittree (void) | |
| 51 | +{ | |
| 52 | + int i; | |
| 53 | + for (i=0; i<NUM_HASHS; i++) { | |
| 54 | + string_root[i].size = 0; | |
| 55 | + string_root[i].nuse = 0; | |
| 56 | + string_root[i].hash = NULL; | |
| 57 | + } | |
| 58 | +} | |
| 59 | + | |
| 60 | + | |
| 42 | 61 | static void initialize (void) |
| 43 | 62 | { |
| 44 | 63 | initialized = 1; |
| 64 | + luaI_inittree(); | |
| 45 | 65 | luaI_addReserved(); |
| 46 | 66 | luaI_initsymbol(); |
| 47 | 67 | luaI_initconstant(); |
| 68 | + luaI_initfallbacks(); | |
| 48 | 69 | } |
| 49 | 70 | |
| 50 | 71 | |
| @@ -58,8 +79,7 @@ static void grow (stringtable *tb) · 7 unmodified lines | ||
| 58 | 79 | /* rehash */ |
| 59 | 80 | tb->nuse = 0; |
| 60 | 81 | for (i=0; i<tb->size; i++) |
| 61 | − if (tb->hash[i] != NULL && tb->hash[i] != &EMPTY) | |
| 62 | − { | |
| 82 | + if (tb->hash[i] != NULL && tb->hash[i] != &EMPTY) { | |
| 63 | 83 | int h = tb->hash[i]->hash%newsize; |
| 64 | 84 | while (newhash[h]) |
| 65 | 85 | h = (h+1)%newsize; |
| @@ -71,10 +91,30 @@ static void grow (stringtable *tb) · 5 unmodified lines | ||
| 71 | 91 | tb->hash = newhash; |
| 72 | 92 | } |
| 73 | 93 | |
| 74 | −static TaggedString *insert (char *str, stringtable *tb) | |
| 94 | + | |
| 95 | +static TaggedString *newone(char *buff, int tag, unsigned long h) | |
| 96 | +{ | |
| 97 | + TaggedString *ts; | |
| 98 | + if (tag == LUA_T_STRING) { | |
| 99 | + ts = (TaggedString *)luaI_malloc(sizeof(TaggedString)+strlen(buff)); | |
| 100 | + strcpy(ts->str, buff); | |
| 101 | + ts->u.s.varindex = ts->u.s.constindex = NOT_USED; | |
| 102 | + ts->tag = LUA_T_STRING; | |
| 103 | + } | |
| 104 | + else { | |
| 105 | + ts = (TaggedString *)luaI_malloc(sizeof(TaggedString)); | |
| 106 | + ts->u.v = buff; | |
| 107 | + ts->tag = tag == LUA_ANYTAG ? 0 : tag; | |
| 108 | + } | |
| 109 | + ts->marked = 0; | |
| 110 | + ts->hash = h; | |
| 111 | + return ts; | |
| 112 | +} | |
| 113 | + | |
| 114 | +static TaggedString *insert (char *buff, int tag, stringtable *tb) | |
| 75 | 115 | { |
| 76 | 116 | TaggedString *ts; |
| 77 | − unsigned long h = hash(str); | |
| 117 | + unsigned long h = hash(buff, tag); | |
| 78 | 118 | int i; |
| 79 | 119 | int j = -1; |
| 80 | 120 | if ((Long)tb->nuse*3 >= (Long)tb->size*2) |
| @@ -84,12 +124,14 @@ static TaggedString *insert (char *str, stringtable *tb) · 3 unmodified lines | ||
| 84 | 124 | grow(tb); |
| 85 | 125 | } |
| 86 | 126 | i = h%tb->size; |
| 87 | − while (tb->hash[i]) | |
| 127 | + while ((ts = tb->hash[i]) != NULL) | |
| 88 | 128 | { |
| 89 | − if (tb->hash[i] == &EMPTY) | |
| 129 | + if (ts == &EMPTY) | |
| 90 | 130 | j = i; |
| 91 | − else if (strcmp(str, tb->hash[i]->str) == 0) | |
| 92 | − return tb->hash[i]; | |
| 131 | + else if ((ts->tag == LUA_T_STRING) ? | |
| 132 | + (tag == LUA_T_STRING && (strcmp(buff, ts->str) == 0)) : | |
| 133 | + ((tag == ts->tag || tag == LUA_ANYTAG) && buff == ts->u.v)) | |
| 134 | + return ts; | |
| 93 | 135 | i = (i+1)%tb->size; |
| 94 | 136 | } |
| 95 | 137 | /* not found */ |
| @@ -98,27 +140,49 @@ static TaggedString *insert (char *str, stringtable *tb) · 2 unmodified lines | ||
| 98 | 140 | i = j; |
| 99 | 141 | else |
| 100 | 142 | tb->nuse++; |
| 101 | − ts = tb->hash[i] = (TaggedString *)luaI_malloc(sizeof(TaggedString)+strlen(str)); | |
| 102 | − strcpy(ts->str, str); | |
| 103 | − ts->marked = 0; | |
| 104 | − ts->hash = h; | |
| 105 | − ts->varindex = ts->constindex = NOT_USED; | |
| 143 | + ts = tb->hash[i] = newone(buff, tag, h); | |
| 106 | 144 | return ts; |
| 107 | 145 | } |
| 108 | 146 | |
| 109 | −TaggedString *lua_createstring (char *str) | |
| 147 | +TaggedString *luaI_createudata (void *udata, int tag) | |
| 110 | 148 | { |
| 111 | − return insert(str, &string_root[(unsigned)str[0]%NUM_HASHS]); | |
| 149 | + return insert(udata, tag, &string_root[(unsigned)udata%NUM_HASHS]); | |
| 150 | +} | |
| 151 | + | |
| 152 | +TaggedString *lua_createstring (char *str) | |
| 153 | +{ | |
| 154 | + return insert(str, LUA_T_STRING, &string_root[(unsigned)str[0]%NUM_HASHS]); | |
| 155 | +} | |
| 156 | + | |
| 157 | + | |
| 158 | +void luaI_strcallIM (TaggedString *l) | |
| 159 | +{ | |
| 160 | + TObject o; | |
| 161 | + ttype(&o) = LUA_T_USERDATA; | |
| 162 | + for (; l; l=l->next) { | |
| 163 | + tsvalue(&o) = l; | |
| 164 | + luaI_gcIM(&o); | |
| 165 | + } | |
| 166 | +} | |
| 167 | + | |
| 168 | + | |
| 169 | +void luaI_strfree (TaggedString *l) | |
| 170 | +{ | |
| 171 | + while (l) { | |
| 172 | + TaggedString *next = l->next; | |
| 173 | + luaI_free(l); | |
| 174 | + l = next; | |
| 175 | + } | |
| 112 | 176 | } |
| 113 | 177 | |
| 114 | 178 | |
| 115 | 179 | /* |
| 116 | 180 | ** Garbage collection function. |
| 117 | −** This function traverse the string list freeing unindexed strings | |
| 118 | 181 | */ |
| 119 | −Long lua_strcollector (void) | |
| 182 | +TaggedString *luaI_strcollector (long *acum) | |
| 120 | 183 | { |
| 121 | 184 | Long counter = 0; |
| 185 | + TaggedString *frees = NULL; | |
| 122 | 186 | int i; |
| 123 | 187 | for (i=0; i<NUM_HASHS; i++) |
| 124 | 188 | { |
| @@ -133,13 +197,15 @@ Long lua_strcollector (void) · 8 unmodified lines | ||
| 133 | 197 | t->marked = 0; |
| 134 | 198 | else |
| 135 | 199 | { |
| 136 | − luaI_free(t); | |
| 200 | + t->next = frees; | |
| 201 | + frees = t; | |
| 137 | 202 | tb->hash[j] = &EMPTY; |
| 138 | 203 | counter++; |
| 139 | 204 | } |
| 140 | 205 | } |
| 141 | 206 | } |
| 142 | 207 | } |
| 143 | − return counter; | |
| 208 | + *acum += counter; | |
| 209 | + return frees; | |
| 144 | 210 | } |
| 145 | 211 | |
| @@ -1,7 +1,7 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** tree.h |
| 3 | 3 | ** TecCGraf - PUC-Rio |
| 4 | −** $Id: tree.h,v 1.14 1996/02/26 17:07:49 roberto Exp $ | |
| 4 | +** $Id: tree.h,v 1.18 1997/06/09 17:28:14 roberto Exp $ | |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | 7 | #ifndef tree_h |
| @@ -14,8 +14,15 @@ · 6 unmodified lines | ||
| 14 | 14 | |
| 15 | 15 | typedef struct TaggedString |
| 16 | 16 | { |
| 17 | − Word varindex; /* != NOT_USED if this is a symbol */ | |
| 18 | − Word constindex; /* != NOT_USED if this is a constant */ | |
| 17 | + int tag; /* if != LUA_T_STRING, this is a userdata */ | |
| 18 | + struct TaggedString *next; | |
| 19 | + union { | |
| 20 | + struct { | |
| 21 | + Word varindex; /* != NOT_USED if this is a symbol */ | |
| 22 | + Word constindex; /* != NOT_USED if this is a constant */ | |
| 23 | + } s; | |
| 24 | + void *v; /* if this is a userdata, here is its value */ | |
| 25 | + } u; | |
| 19 | 26 | unsigned long hash; /* 0 if not initialized */ |
| 20 | 27 | int marked; /* for garbage collection; never collect (nor change) if > 1 */ |
| 21 | 28 | char str[1]; /* \0 byte already reserved */ |
| @@ -23,6 +30,9 @@ typedef struct TaggedString · 1 unmodified line | ||
| 23 | 30 | |
| 24 | 31 | |
| 25 | 32 | TaggedString *lua_createstring (char *str); |
| 26 | −Long lua_strcollector (void); | |
| 33 | +TaggedString *luaI_createudata (void *udata, int tag); | |
| 34 | +TaggedString *luaI_strcollector (long *cont); | |
| 35 | +void luaI_strfree (TaggedString *l); | |
| 36 | +void luaI_strcallIM (TaggedString *l); | |
| 27 | 37 | |
| 28 | 38 | #endif |
| @@ -3,33 +3,28 @@ · 2 unmodified lines | ||
| 3 | 3 | ** load bytecodes from files |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | −char* rcs_undump="$Id: undump.c,v 1.21 1996/11/18 11:18:29 lhf Exp $"; | |
| 6 | +char* rcs_undump="$Id: undump.c,v 1.24 1997/06/17 18:19:17 roberto Exp $"; | |
| 7 | 7 | |
| 8 | 8 | #include <stdio.h> |
| 9 | 9 | #include <string.h> |
| 10 | +#include "auxlib.h" | |
| 10 | 11 | #include "opcode.h" |
| 11 | −#include "mem.h" | |
| 12 | +#include "luamem.h" | |
| 12 | 13 | #include "table.h" |
| 13 | 14 | #include "undump.h" |
| 15 | +#include "zio.h" | |
| 14 | 16 | |
| 15 | 17 | static int swapword=0; |
| 16 | 18 | static int swapfloat=0; |
| 17 | 19 | static TFunc* Main=NULL; /* functions in a chunk */ |
| 18 | 20 | static TFunc* lastF=NULL; |
| 19 | 21 | |
| 20 | −static void warn(char* s) /* TODO: remove */ | |
| 21 | −{ | |
| 22 | −#if 0 | |
| 23 | − fprintf(stderr,"undump: %s\n",s); | |
| 24 | −#endif | |
| 25 | −} | |
| 26 | − | |
| 27 | 22 | static void FixCode(Byte* code, Byte* end) /* swap words */ |
| 28 | 23 | { |
| 29 | 24 | Byte* p; |
| 30 | 25 | for (p=code; p!=end;) |
| 31 | 26 | { |
| 32 | − OpCode op=(OpCode)*p; | |
| 27 | + int op=*p; | |
| 33 | 28 | switch (op) |
| 34 | 29 | { |
| 35 | 30 | case PUSHNIL: |
| @@ -83,6 +78,8 @@ static void FixCode(Byte* code, Byte* end) /* swap words */ · 47 unmodified lines | ||
| 83 | 78 | case STORELIST0: |
| 84 | 79 | case ADJUST: |
| 85 | 80 | case RETCODE: |
| 81 | + case VARARGS: | |
| 82 | + case STOREMAP: | |
| 86 | 83 | p+=2; |
| 87 | 84 | break; |
| 88 | 85 | case STORELIST: |
| @@ -132,7 +129,8 @@ static void FixCode(Byte* code, Byte* end) /* swap words */ · 43 unmodified lines | ||
| 132 | 129 | break; |
| 133 | 130 | } |
| 134 | 131 | default: |
| 135 | − lua_error("corrupt binary file"); | |
| 132 | + luaL_verror("corrupt binary file: bad opcode %d at %d\n", | |
| 133 | + op,(int)(p-code)); | |
| 136 | 134 | break; |
| 137 | 135 | } |
| 138 | 136 | } |
| @@ -150,149 +148,152 @@ static void Unthread(Byte* code, int i, int v) · 11 unmodified lines | ||
| 150 | 148 | } |
| 151 | 149 | } |
| 152 | 150 | |
| 153 | −static int LoadWord(FILE* D) | |
| 151 | +static int LoadWord(ZIO* Z) | |
| 154 | 152 | { |
| 155 | 153 | Word w; |
| 156 | − fread(&w,sizeof(w),1,D); | |
| 154 | + zread(Z,&w,sizeof(w)); | |
| 157 | 155 | if (swapword) |
| 158 | 156 | { |
| 159 | − Byte* p=(Byte*)&w; /* TODO: need union? */ | |
| 157 | + Byte* p=(Byte*)&w; | |
| 160 | 158 | Byte t; |
| 161 | 159 | t=p[0]; p[0]=p[1]; p[1]=t; |
| 162 | 160 | } |
| 163 | 161 | return w; |
| 164 | 162 | } |
| 165 | 163 | |
| 166 | −static int LoadSize(FILE* D) | |
| 164 | +static int LoadSize(ZIO* Z) | |
| 167 | 165 | { |
| 168 | − Word hi=LoadWord(D); | |
| 169 | − Word lo=LoadWord(D); | |
| 166 | + Word hi=LoadWord(Z); | |
| 167 | + Word lo=LoadWord(Z); | |
| 170 | 168 | int s=(hi<<16)|lo; |
| 171 | 169 | if ((Word)s != s) lua_error("code too long"); |
| 172 | 170 | return s; |
| 173 | 171 | } |
| 174 | 172 | |
| 175 | −static void* LoadBlock(int size, FILE* D) | |
| 173 | +static void* LoadBlock(int size, ZIO* Z) | |
| 176 | 174 | { |
| 177 | 175 | void* b=luaI_malloc(size); |
| 178 | − fread(b,size,1,D); | |
| 176 | + zread(Z,b,size); | |
| 179 | 177 | return b; |
| 180 | 178 | } |
| 181 | 179 | |
| 182 | −static char* LoadString(FILE* D) | |
| 180 | +static char* LoadString(ZIO* Z) | |
| 183 | 181 | { |
| 184 | − int size=LoadWord(D); | |
| 182 | + int size=LoadWord(Z); | |
| 185 | 183 | char *b=luaI_buffer(size); |
| 186 | − fread(b,size,1,D); | |
| 184 | + zread(Z,b,size); | |
| 187 | 185 | return b; |
| 188 | 186 | } |
| 189 | 187 | |
| 190 | −static char* LoadNewString(FILE* D) | |
| 188 | +static char* LoadNewString(ZIO* Z) | |
| 191 | 189 | { |
| 192 | − return LoadBlock(LoadWord(D),D); | |
| 190 | + return LoadBlock(LoadWord(Z),Z); | |
| 193 | 191 | } |
| 194 | 192 | |
| 195 | −static void LoadFunction(FILE* D) | |
| 193 | +static void LoadFunction(ZIO* Z) | |
| 196 | 194 | { |
| 197 | 195 | TFunc* tf=new(TFunc); |
| 198 | 196 | tf->next=NULL; |
| 199 | 197 | tf->locvars=NULL; |
| 200 | − tf->size=LoadSize(D); | |
| 201 | − tf->lineDefined=LoadWord(D); | |
| 198 | + tf->size=LoadSize(Z); | |
| 199 | + tf->lineDefined=LoadWord(Z); | |
| 202 | 200 | if (IsMain(tf)) /* new main */ |
| 203 | 201 | { |
| 204 | − tf->fileName=LoadNewString(D); | |
| 202 | + tf->fileName=LoadNewString(Z); | |
| 205 | 203 | Main=lastF=tf; |
| 206 | 204 | } |
| 207 | 205 | else /* fix PUSHFUNCTION */ |
| 208 | 206 | { |
| 209 | − tf->marked=LoadWord(D); | |
| 207 | + tf->marked=LoadWord(Z); | |
| 210 | 208 | tf->fileName=Main->fileName; |
| 211 | 209 | memcpy(Main->code+tf->marked,&tf,sizeof(tf)); |
| 212 | 210 | lastF=lastF->next=tf; |
| 213 | 211 | } |
| 214 | − tf->code=LoadBlock(tf->size,D); | |
| 212 | + tf->code=LoadBlock(tf->size,Z); | |
| 215 | 213 | if (swapword || swapfloat) FixCode(tf->code,tf->code+tf->size); |
| 216 | 214 | while (1) /* unthread */ |
| 217 | 215 | { |
| 218 | − int c=getc(D); | |
| 216 | + int c=zgetc(Z); | |
| 219 | 217 | if (c==ID_VAR) /* global var */ |
| 220 | 218 | { |
| 221 | − int i=LoadWord(D); | |
| 222 | − char* s=LoadString(D); | |
| 219 | + int i=LoadWord(Z); | |
| 220 | + char* s=LoadString(Z); | |
| 223 | 221 | int v=luaI_findsymbolbyname(s); |
| 224 | 222 | Unthread(tf->code,i,v); |
| 225 | 223 | } |
| 226 | 224 | else if (c==ID_STR) /* constant string */ |
| 227 | 225 | { |
| 228 | − int i=LoadWord(D); | |
| 229 | − char* s=LoadString(D); | |
| 226 | + int i=LoadWord(Z); | |
| 227 | + char* s=LoadString(Z); | |
| 230 | 228 | int v=luaI_findconstantbyname(s); |
| 231 | 229 | Unthread(tf->code,i,v); |
| 232 | 230 | } |
| 233 | 231 | else |
| 234 | 232 | { |
| 235 | − ungetc(c,D); | |
| 233 | + zungetc(Z); | |
| 236 | 234 | break; |
| 237 | 235 | } |
| 238 | 236 | } |
| 239 | 237 | } |
| 240 | 238 | |
| 241 | −static void LoadSignature(FILE* D) | |
| 239 | +static void LoadSignature(ZIO* Z) | |
| 242 | 240 | { |
| 243 | 241 | char* s=SIGNATURE; |
| 244 | − while (*s!=0 && getc(D)==*s) | |
| 242 | + while (*s!=0 && zgetc(Z)==*s) | |
| 245 | 243 | ++s; |
| 246 | − if (*s!=0) lua_error("bad signature"); | |
| 244 | + if (*s!=0) lua_error("cannot load binary file: bad signature"); | |
| 247 | 245 | } |
| 248 | 246 | |
| 249 | −static void LoadHeader(FILE* D) /* TODO: error handling */ | |
| 247 | +static void LoadHeader(ZIO* Z) | |
| 250 | 248 | { |
| 251 | 249 | Word w,tw=TEST_WORD; |
| 252 | 250 | float f,tf=TEST_FLOAT; |
| 253 | 251 | int version; |
| 254 | − LoadSignature(D); | |
| 255 | − version=getc(D); | |
| 252 | + LoadSignature(Z); | |
| 253 | + version=zgetc(Z); | |
| 256 | 254 | if (version>0x23) /* after 2.5 */ |
| 257 | 255 | { |
| 258 | − int oldsizeofW=getc(D); | |
| 259 | − int oldsizeofF=getc(D); | |
| 260 | − int oldsizeofP=getc(D); | |
| 256 | + int oldsizeofW=zgetc(Z); | |
| 257 | + int oldsizeofF=zgetc(Z); | |
| 258 | + int oldsizeofP=zgetc(Z); | |
| 261 | 259 | if (oldsizeofW!=2) |
| 262 | − lua_error("cannot load binary file created on machine with sizeof(Word)!=2"); | |
| 260 | + luaL_verror( | |
| 261 | + "cannot load binary file created on machine with sizeof(Word)=%d; " | |
| 262 | + "expected 2",oldsizeofW); | |
| 263 | 263 | if (oldsizeofF!=4) |
| 264 | − lua_error("cannot load binary file created on machine with sizeof(float)!=4. not an IEEE machine?"); | |
| 265 | − if (oldsizeofP!=sizeof(TFunc*)) /* TODO: pack */ | |
| 266 | − lua_error("cannot load binary file: different pointer sizes"); | |
| 264 | + luaL_verror( | |
| 265 | + "cannot load binary file created on machine with sizeof(float)=%d; " | |
| 266 | + "expected 4\nnot an IEEE machine?",oldsizeofF); | |
| 267 | + if (oldsizeofP!=sizeof(TFunc*)) /* TODO: pack? */ | |
| 268 | + luaL_verror( | |
| 269 | + "cannot load binary file created on machine with sizeof(TFunc*)=%d; " | |
| 270 | + "expected %d",oldsizeofP,(int)sizeof(TFunc*)); | |
| 267 | 271 | } |
| 268 | − fread(&w,sizeof(w),1,D); /* test word */ | |
| 272 | + zread(Z,&w,sizeof(w)); /* test word */ | |
| 269 | 273 | if (w!=tw) |
| 270 | 274 | { |
| 271 | 275 | swapword=1; |
| 272 | − warn("different byte order"); | |
| 273 | 276 | } |
| 274 | − fread(&f,sizeof(f),1,D); /* test float */ | |
| 277 | + zread(Z,&f,sizeof(f)); /* test float */ | |
| 275 | 278 | if (f!=tf) |
| 276 | 279 | { |
| 277 | − Byte* p=(Byte*)&f; /* TODO: need union? */ | |
| 280 | + Byte* p=(Byte*)&f; | |
| 278 | 281 | Byte t; |
| 279 | 282 | swapfloat=1; |
| 280 | 283 | t=p[0]; p[0]=p[3]; p[3]=t; |
| 281 | 284 | t=p[1]; p[1]=p[2]; p[2]=t; |
| 282 | 285 | if (f!=tf) /* TODO: try another perm? */ |
| 283 | − lua_error("different float representation"); | |
| 284 | − else | |
| 285 | − warn("different byte order in floats"); | |
| 286 | + lua_error("cannot load binary file: unknown float representation"); | |
| 286 | 287 | } |
| 287 | 288 | } |
| 288 | 289 | |
| 289 | −static void LoadChunk(FILE* D) | |
| 290 | +static void LoadChunk(ZIO* Z) | |
| 290 | 291 | { |
| 291 | − LoadHeader(D); | |
| 292 | + LoadHeader(Z); | |
| 292 | 293 | while (1) |
| 293 | 294 | { |
| 294 | − int c=getc(D); | |
| 295 | − if (c==ID_FUN) LoadFunction(D); else { ungetc(c,D); break; } | |
| 295 | + int c=zgetc(Z); | |
| 296 | + if (c==ID_FUN) LoadFunction(Z); else { zungetc(Z); break; } | |
| 296 | 297 | } |
| 297 | 298 | } |
| 298 | 299 | |
| @@ -300,30 +301,26 @@ static void LoadChunk(FILE* D) · 1 unmodified line | ||
| 300 | 301 | ** load one chunk from a file. |
| 301 | 302 | ** return list of functions found, headed by main, or NULL at EOF. |
| 302 | 303 | */ |
| 303 | −TFunc* luaI_undump1(FILE* D) | |
| 304 | +TFunc* luaI_undump1(ZIO* Z) | |
| 304 | 305 | { |
| 305 | − while (1) | |
| 306 | + int c=zgetc(Z); | |
| 307 | + if (c==ID_CHUNK) | |
| 306 | 308 | { |
| 307 | − int c=getc(D); | |
| 308 | − if (c==ID_CHUNK) | |
| 309 | − { | |
| 310 | − LoadChunk(D); | |
| 311 | − return Main; | |
| 312 | − } | |
| 313 | − else if (c==EOF) | |
| 314 | − return NULL; | |
| 315 | − else | |
| 316 | − lua_error("not a lua binary file"); | |
| 309 | + LoadChunk(Z); | |
| 310 | + return Main; | |
| 317 | 311 | } |
| 312 | + else if (c!=EOZ) | |
| 313 | + lua_error("not a lua binary file"); | |
| 314 | + return NULL; | |
| 318 | 315 | } |
| 319 | 316 | |
| 320 | 317 | /* |
| 321 | 318 | ** load and run all chunks in a file |
| 322 | 319 | */ |
| 323 | −int luaI_undump(FILE* D) | |
| 320 | +int luaI_undump(ZIO* Z) | |
| 324 | 321 | { |
| 325 | 322 | TFunc* m; |
| 326 | − while ((m=luaI_undump1(D))) | |
| 323 | + while ((m=luaI_undump1(Z))) | |
| 327 | 324 | { |
| 328 | 325 | int status=luaI_dorun(m); |
| 329 | 326 | luaI_freefunc(m); |
| @@ -1,10 +1,14 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | ** undump.h |
| 3 | 3 | ** definitions for lua decompiler |
| 4 | −** $Id: undump.h,v 1.3 1996/11/14 11:44:34 lhf Exp $ | |
| 4 | +** $Id: undump.h,v 1.6 1997/06/17 18:19:17 roberto Exp $ | |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | +#ifndef undump_h | |
| 8 | +#define undump_h | |
| 9 | + | |
| 7 | 10 | #include "func.h" |
| 11 | +#include "zio.h" | |
| 8 | 12 | |
| 9 | 13 | #define IsMain(f) (f->lineDefined==0) |
| 10 | 14 | |
| @@ -15,9 +19,12 @@ · 4 unmodified lines | ||
| 15 | 19 | #define ID_VAR 'V' |
| 16 | 20 | #define ID_STR 'S' |
| 17 | 21 | #define SIGNATURE "Lua" |
| 18 | −#define VERSION 0x25 /* 2.5 */ | |
| 22 | +#define VERSION 0x25 /* last format change was in 2.5 */ | |
| 19 | 23 | #define TEST_WORD 0x1234 /* a word for testing byte ordering */ |
| 20 | 24 | #define TEST_FLOAT 0.123456789e-23 /* a float for testing representation */ |
| 21 | 25 | |
| 22 | −TFunc* luaI_undump1(FILE* D); /* load one chunk */ | |
| 23 | −int luaI_undump(FILE* D); /* load all chunks */ | |
| 26 | + | |
| 27 | +TFunc* luaI_undump1(ZIO* Z); | |
| 28 | +int luaI_undump(ZIO* Z); /* load all chunks */ | |
| 29 | + | |
| 30 | +#endif | |
| @@ -0,0 +1,79 @@ | ||
| 1 | +/* | |
| 2 | +* zio.c | |
| 3 | +* a generic input stream interface | |
| 4 | +* $Id: zio.c,v 1.2 1997/06/20 19:25:54 roberto Exp $ | |
| 5 | +*/ | |
| 6 | + | |
| 7 | +#include <stdio.h> | |
| 8 | +#include <stdlib.h> | |
| 9 | +#include <string.h> | |
| 10 | +#include "zio.h" | |
| 11 | + | |
| 12 | + | |
| 13 | +/* ----------------------------------------------------- memory buffers --- */ | |
| 14 | + | |
| 15 | +static int zmfilbuf(ZIO* z) | |
| 16 | +{ | |
| 17 | + return EOZ; | |
| 18 | +} | |
| 19 | + | |
| 20 | +ZIO* zmopen(ZIO* z, char* b, int size) | |
| 21 | +{ | |
| 22 | + if (b==NULL) return NULL; | |
| 23 | + z->n=size; | |
| 24 | + z->p= (unsigned char *)b; | |
| 25 | + z->filbuf=zmfilbuf; | |
| 26 | + z->u=NULL; | |
| 27 | + return z; | |
| 28 | +} | |
| 29 | + | |
| 30 | +/* ------------------------------------------------------------ strings --- */ | |
| 31 | + | |
| 32 | +ZIO* zsopen(ZIO* z, char* s) | |
| 33 | +{ | |
| 34 | + if (s==NULL) return NULL; | |
| 35 | + return zmopen(z,s,strlen(s)); | |
| 36 | +} | |
| 37 | + | |
| 38 | +/* -------------------------------------------------------------- FILEs --- */ | |
| 39 | + | |
| 40 | +static int zffilbuf(ZIO* z) | |
| 41 | +{ | |
| 42 | + int n=fread(z->buffer,1,ZBSIZE,z->u); | |
| 43 | + if (n==0) return EOZ; | |
| 44 | + z->n=n-1; | |
| 45 | + z->p=z->buffer; | |
| 46 | + return *(z->p++); | |
| 47 | +} | |
| 48 | + | |
| 49 | + | |
| 50 | +ZIO* zFopen(ZIO* z, FILE* f) | |
| 51 | +{ | |
| 52 | + if (f==NULL) return NULL; | |
| 53 | + z->n=0; | |
| 54 | + z->p=z->buffer; | |
| 55 | + z->filbuf=zffilbuf; | |
| 56 | + z->u=f; | |
| 57 | + return z; | |
| 58 | +} | |
| 59 | + | |
| 60 | + | |
| 61 | +/* --------------------------------------------------------------- read --- */ | |
| 62 | +int zread(ZIO *z, void *b, int n) | |
| 63 | +{ | |
| 64 | + while (n) { | |
| 65 | + int m; | |
| 66 | + if (z->n == 0) { | |
| 67 | + if (z->filbuf(z) == EOZ) | |
| 68 | + return n; /* retorna quantos faltaram ler */ | |
| 69 | + zungetc(z); /* poe o resultado de filbuf no buffer */ | |
| 70 | + } | |
| 71 | + m = (n <= z->n) ? n : z->n; /* minimo de n e z->n */ | |
| 72 | + memcpy(b, z->p, m); | |
| 73 | + z->n -= m; | |
| 74 | + z->p += m; | |
| 75 | + b = (char *)b + m; | |
| 76 | + n -= m; | |
| 77 | + } | |
| 78 | + return 0; | |
| 79 | +} | |
| @@ -0,0 +1,48 @@ | ||
| 1 | +/* | |
| 2 | +* zio.h | |
| 3 | +* a generic input stream interface | |
| 4 | +* $Id: zio.h,v 1.5 1997/06/20 19:25:54 roberto Exp $ | |
| 5 | +*/ | |
| 6 | + | |
| 7 | +#ifndef zio_h | |
| 8 | +#define zio_h | |
| 9 | + | |
| 10 | +#include <stdio.h> | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | +/* For Lua only */ | |
| 15 | +#define zFopen luaZ_Fopen | |
| 16 | +#define zsopen luaZ_sopen | |
| 17 | +#define zmopen luaZ_mopen | |
| 18 | +#define zread luaZ_read | |
| 19 | + | |
| 20 | +#define EOZ (-1) /* end of stream */ | |
| 21 | + | |
| 22 | +typedef struct zio ZIO; | |
| 23 | + | |
| 24 | +ZIO* zFopen(ZIO* z, FILE* f); /* open FILEs */ | |
| 25 | +ZIO* zsopen(ZIO* z, char* s); /* string */ | |
| 26 | +ZIO* zmopen(ZIO* z, char* b, int size); /* memory */ | |
| 27 | + | |
| 28 | +int zread(ZIO* z, void* b, int n); /* read next n bytes */ | |
| 29 | + | |
| 30 | +#define zgetc(z) (--(z)->n>=0 ? ((int)*(z)->p++): (z)->filbuf(z)) | |
| 31 | +#define zungetc(z) (++(z)->n,--(z)->p) | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | +/* --------- Private Part ------------------ */ | |
| 36 | + | |
| 37 | +#define ZBSIZE 256 /* buffer size */ | |
| 38 | + | |
| 39 | +struct zio { | |
| 40 | + int n; /* bytes still unread */ | |
| 41 | + unsigned char* p; /* current position in buffer */ | |
| 42 | + int (*filbuf)(ZIO* z); | |
| 43 | + void* u; /* additional data */ | |
| 44 | + unsigned char buffer[ZBSIZE]; /* buffer */ | |
| 45 | +}; | |
| 46 | + | |
| 47 | + | |
| 48 | +#endif | |
| @@ -1,7 +1,6 @@ | ||
| 1 | 1 | These are simple tests for Lua. Some of them contain useful code. |
| 2 | 2 | They are meant to be run to make sure Lua is ok and also to be read, to see |
| 3 | 3 | how Lua programs can look like. |
| 4 | −In the directory examples/, there is more useful code, such as a library for | |
| 5 | −complex arithmetic (a good example of fallbacks for overloading and redefinition | |
| 6 | −of primitive functions), and a library for PostScript output. Both libraries | |
| 7 | −include simple examples. | |
| 4 | + | |
| 5 | +In the directory examples/, there is more useful code: a library for PostScript | |
| 6 | +output and a database for a fake web site. | |
| @@ -2,14 +2,14 @@ $debug · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | a = {} |
| 4 | 4 | |
| 5 | −i=0 | |
| 5 | +local i=0 | |
| 6 | 6 | while i<10 do |
| 7 | 7 | a[i] = i*i |
| 8 | 8 | i=i+1 |
| 9 | 9 | end |
| 10 | 10 | |
| 11 | −r,v = next(a,nil) | |
| 11 | +local r,v = next(a,nil) | |
| 12 | 12 | while r ~= nil do |
| 13 | − print ("array["..r.."] = "..v) | |
| 13 | + write ("array[",r,"] = ",v,"\n") | |
| 14 | 14 | r,v = next(a,r) |
| 15 | 15 | end |
| @@ -2,7 +2,7 @@ $debug · 1 unmodified line | ||
| 2 | 2 | -- bisection method for solving non-linear equations |
| 3 | 3 | |
| 4 | 4 | function bisect(f,a,b,fa,fb) |
| 5 | −print(n.." a="..a.." fa="..fa.." b="..b.." fb="..fb) | |
| 5 | + write(n," a=",a," fa=",fa," b=",b," fb=",fb,"\n") | |
| 6 | 6 | local c=(a+b)/2 |
| 7 | 7 | if abs(a-b)<delta then return c end |
| 8 | 8 | n=n+1 |
| @@ -15,7 +15,7 @@ function solve(f,a,b) · 6 unmodified lines | ||
| 15 | 15 | delta=1e-6 -- tolerance |
| 16 | 16 | n=0 |
| 17 | 17 | local z=bisect(f,a,b,f(a),f(b)) |
| 18 | − print(format("after %d steps, root is %.10g",n,z)) | |
| 18 | + write(format("after %d steps, root is %.10g\n",n,z)) | |
| 19 | 19 | end |
| 20 | 20 | |
| 21 | 21 | -- our function |
| @@ -1,17 +1,19 @@ | ||
| 1 | 1 | -- dump global environment |
| 2 | 2 | |
| 3 | 3 | function savevar (n,v) |
| 4 | − if v == nil then return end; | |
| 5 | − if type(v) == "number" then print(n.."="..v) return end | |
| 6 | − if type(v) == "string" then print(n.."='"..v.."'") return end | |
| 7 | − if type(v) == "table" then | |
| 4 | + if v == nil then return end | |
| 5 | + if type(v)=="userdata" or type(v)=="function" then return end | |
| 6 | + -- if type(v)=="userdata" or type(v)=="function" then write("\t-- ") end | |
| 7 | + write(n,"=") | |
| 8 | + if type(v) == "string" then write(format("%q",v)) | |
| 9 | + elseif type(v) == "table" then | |
| 8 | 10 | if v.__visited__ ~= nil then |
| 9 | − print(n .. "=" .. v.__visited__); | |
| 11 | + write(v.__visited__) | |
| 10 | 12 | else |
| 11 | − print(n.."={}") | |
| 12 | − v.__visited__ = n; | |
| 13 | − local r,f; | |
| 14 | − r,f = next(v,nil); | |
| 13 | + write("{}\n") | |
| 14 | + v.__visited__ = n | |
| 15 | + local r,f | |
| 16 | + r,f = next(v,nil) | |
| 15 | 17 | while r ~= nil do |
| 16 | 18 | if r ~= "__visited__" then |
| 17 | 19 | if type(r) == 'string' then |
| @@ -23,13 +25,15 @@ function savevar (n,v) · 5 unmodified lines | ||
| 23 | 25 | r,f = next(v,r) |
| 24 | 26 | end |
| 25 | 27 | end |
| 26 | − end | |
| 28 | + else write(tostring(v)) end | |
| 29 | + write("\n") | |
| 27 | 30 | end |
| 28 | 31 | |
| 29 | 32 | function save () |
| 33 | + print("\n-- global environment") | |
| 30 | 34 | local n,v = nextvar(nil) |
| 31 | 35 | while n ~= nil do |
| 32 | − savevar(n,v); | |
| 36 | + savevar(n,v) | |
| 33 | 37 | n,v = nextvar(n) |
| 34 | 38 | end |
| 35 | 39 | end |
| @@ -1,82 +0,0 @@ | ||
| 1 | −-- complex.lua | |
| 2 | −-- complex arithmetic package for lua | |
| 3 | −-- Luiz Henrique de Figueiredo (lhf@csg.uwaterloo.ca) | |
| 4 | −-- 24 Oct 95 | |
| 5 | −$debug | |
| 6 | − | |
| 7 | −Complex={type="package"} | |
| 8 | − | |
| 9 | −function complex(x,y) | |
| 10 | − return { re=x, im=y, type="complex" } | |
| 11 | −end | |
| 12 | − | |
| 13 | −function Complex.conj(x,y) | |
| 14 | − return complex(x.re,-x.im) | |
| 15 | −end | |
| 16 | − | |
| 17 | −function Complex.norm2(x) | |
| 18 | − local n=Complex.mul(x,Complex.conj(x)) | |
| 19 | − return n.re | |
| 20 | −end | |
| 21 | − | |
| 22 | −function Complex.abs(x) | |
| 23 | − return sqrt(Complex.norm2(x)) | |
| 24 | −end | |
| 25 | − | |
| 26 | −function Complex.add(x,y) | |
| 27 | − return complex(x.re+y.re,x.im+y.im) | |
| 28 | −end | |
| 29 | − | |
| 30 | −function Complex.sub(x,y) | |
| 31 | − return complex(x.re-y.re,x.im-y.im) | |
| 32 | −end | |
| 33 | − | |
| 34 | −function Complex.mul(x,y) | |
| 35 | − return complex(x.re*y.re-x.im*y.im,x.re*y.im+x.im*y.re) | |
| 36 | −end | |
| 37 | − | |
| 38 | −function Complex.div(x,y) | |
| 39 | − local z=x*Complex.conj(y) | |
| 40 | − local t=Complex.norm2(y) | |
| 41 | − z.re=z.re/t | |
| 42 | − z.im=z.im/t | |
| 43 | − return z | |
| 44 | −end | |
| 45 | − | |
| 46 | −function Complex.fallback(x,y,op) | |
| 47 | − if type(x)=="number" then x=complex(x,0) end | |
| 48 | − if type(y)=="number" then y=complex(y,0) end | |
| 49 | − if type(x)=="complex" and type(y)=="complex" then | |
| 50 | − return Complex[op](x,y) | |
| 51 | − else | |
| 52 | − return Complex.oldfallback(x,y) | |
| 53 | − end | |
| 54 | −end | |
| 55 | − | |
| 56 | −function Complex.newtype(x) | |
| 57 | − local t=Complex.oldtype(x) | |
| 58 | − if t=="table" and x.type then return x.type else return t end | |
| 59 | −end | |
| 60 | − | |
| 61 | −function Complex.print(x) | |
| 62 | − if type(x)~="complex" then | |
| 63 | − Complex.oldprint(x) | |
| 64 | − else | |
| 65 | − local s | |
| 66 | − if x.im>=0 then s="+" else s="" end | |
| 67 | − Complex.oldprint(x.re..s..x.im.."I") | |
| 68 | − end | |
| 69 | −end | |
| 70 | − | |
| 71 | −function Complex.newabs(x) | |
| 72 | − if type(x)~="complex" then | |
| 73 | − return Complex.oldabs(x) | |
| 74 | − else | |
| 75 | − return Complex.abs(x) | |
| 76 | − end | |
| 77 | −end | |
| 78 | − | |
| 79 | −Complex.oldfallback=setfallback("arith",Complex.fallback) | |
| 80 | −Complex.oldtype=type type=Complex.newtype | |
| 81 | −Complex.oldprint=print print=Complex.print | |
| 82 | −Complex.oldabs=abs abs=Complex.abs | |
| @@ -1,25 +0,0 @@ | ||
| 1 | −dofile("complex.lua") | |
| 2 | − | |
| 3 | −xmin=-2 xmax=2 ymin=-2 ymax=2 | |
| 4 | −d=.125 | |
| 5 | − | |
| 6 | −function level(x,y) | |
| 7 | − local c=complex(x,y) | |
| 8 | − local l=0 | |
| 9 | − local z=c | |
| 10 | − repeat | |
| 11 | − z=z*z+c | |
| 12 | − l=l+1 | |
| 13 | − until abs(z)>2 or l>255 | |
| 14 | − return l-1 | |
| 15 | −end | |
| 16 | − | |
| 17 | −x=xmin | |
| 18 | −while x<xmax do | |
| 19 | − y=ymin | |
| 20 | − while y<ymax do | |
| 21 | − print(level(x,y)) | |
| 22 | − y=y+d | |
| 23 | − end | |
| 24 | − x=x+d | |
| 25 | −end | |
| @@ -0,0 +1,10 @@ | ||
| 1 | +This directory contains a database for a fake web site. | |
| 2 | +Standard web page for the persons listed in db.lua are | |
| 3 | +creared automatically from template.html with staff.lua. | |
| 4 | +(See http://www.cos.ufrj.br for a real web site was created in this way.) | |
| 5 | + | |
| 6 | +To run, type lua db.lua. | |
| 7 | + | |
| 8 | +This example is meant to show the power of gsub and Lua declarative constructs, | |
| 9 | +which have been combined here into a "mail-merge" application. | |
| 10 | + | |
| @@ -0,0 +1,46 @@ | ||
| 1 | +dofile("staff.lua") | |
| 2 | + | |
| 3 | +global{ | |
| 4 | + ROOT='http://www.tecgraf.puc-rio.br', | |
| 5 | + EMAIL="|LOGIN|@tecgraf.puc-rio.br", | |
| 6 | + WWW="|ROOT|/~|LOGIN|", | |
| 7 | + webmast='|ROOT|/webmaster.html', | |
| 8 | + TECGRAF='<A HREF="http://www.tecgraf.puc-rio.br">TeCGraf</A>', | |
| 9 | + CS='<A HREF="http://www.inf.puc-rio.br">Computer Science Department</A>', | |
| 10 | + PUCRIO='<A HREF="http://www.puc-rio.br">PUC-Rio</A>', | |
| 11 | +} | |
| 12 | + | |
| 13 | +staff{ | |
| 14 | +DI="inf.puc-rio.br", | |
| 15 | + LOGIN="roberto", | |
| 16 | + NAME="Roberto Ierusalimschy", | |
| 17 | + TITLE="D.Sc., |PUCRIO|, 1990", | |
| 18 | + POSITION="Associate Professor, |CS|, |PUCRIO|", | |
| 19 | + AREAS="Programming Languages, Object Oriented Programming", | |
| 20 | + EMAIL="|LOGIN|@|DI|", | |
| 21 | + WWW="http://www.|DI|/~|LOGIN|", | |
| 22 | +} | |
| 23 | + | |
| 24 | +staff{ | |
| 25 | +PCG="http://www.graphics.cornell.edu", | |
| 26 | + LOGIN="celes", | |
| 27 | + NAME="Waldemar Celes", | |
| 28 | + TITLE="D.Sc., |PUCRIO|, 1995", | |
| 29 | + POSITION="Postdoctoral Associate at ".. | |
| 30 | +'<A HREF="|PCG|">Program of Computer Graphics</A>, '.. | |
| 31 | +'<A HREF="http://www.cornell.edu">Cornell University</A>', | |
| 32 | + WWW="|PCG|/~celes/", | |
| 33 | + AREAS="Image segmentation and 3D reconstruction; " | |
| 34 | +.."Physical simulation and educational software;" | |
| 35 | +.."Geometric modeling and topological data structures;" | |
| 36 | +.."Extension languages and customizable applications" | |
| 37 | +} | |
| 38 | + | |
| 39 | +staff{ | |
| 40 | + LOGIN="lhf", | |
| 41 | + NAME="Luiz Henrique de Figueiredo", | |
| 42 | + TITLE='D.Sc., <A HREF="http://www.impa.br">IMPA</A>, 1992', | |
| 43 | + POSITION='Visiting Research fellow at <A HREF="http://www.lncc.br">LNCC</A>; Consultant at |TECGRAF|', | |
| 44 | + AREAS="Geometric modeling; Software tools", | |
| 45 | + WWW="http://www2.lncc.br/~lhf/", | |
| 46 | +} | |
| @@ -0,0 +1,37 @@ | ||
| 1 | +$debug | |
| 2 | + | |
| 3 | +readfrom("template.html") | |
| 4 | +TEMPLATE=read(".*") | |
| 5 | +readfrom() | |
| 6 | + | |
| 7 | +PAT="|(%a%a*)|" | |
| 8 | + | |
| 9 | +GLOBAL={ | |
| 10 | + DATE=date("%d/%m/%Y %T"), | |
| 11 | +} | |
| 12 | + | |
| 13 | +function get(i) | |
| 14 | + if LOCAL[i] then return LOCAL[i] | |
| 15 | + elseif GLOBAL[i] then return GLOBAL[i] | |
| 16 | + else return "<BLINK>?"..i.."?</BLINK>" end | |
| 17 | +end | |
| 18 | + | |
| 19 | +function global(t) | |
| 20 | + local i,v=next(t,nil) | |
| 21 | + while i do | |
| 22 | + GLOBAL[i]=v | |
| 23 | + i,v=next(t,i) | |
| 24 | + end | |
| 25 | +end | |
| 26 | + | |
| 27 | +function staff(t) | |
| 28 | + LOCAL=t | |
| 29 | + if t.AREAS then t.AREAS=gsub(t.AREAS,"[;,] *","\n<LI>") end | |
| 30 | + local p,n=TEMPLATE | |
| 31 | + if t.WWW=="" then p=gsub(p,'<A HREF="|WWW|">|NAME|</A>',"|NAME|") end | |
| 32 | + repeat p,n=gsub(p,PAT,get) until n==0 | |
| 33 | + write(t.LOGIN,"\n") | |
| 34 | + writeto(t.LOGIN..".html") | |
| 35 | + write(p) | |
| 36 | + writeto() | |
| 37 | +end | |
| @@ -0,0 +1,29 @@ | ||
| 1 | +<HTML> | |
| 2 | +<HEAD> | |
| 3 | +<TITLE> | |
| 4 | +Imaginary web site:Staff:|LOGIN| | |
| 5 | +</TITLE> | |
| 6 | +</HEAD> | |
| 7 | + | |
| 8 | +<BODY> | |
| 9 | +<H1><A HREF="|WWW|">|NAME|</A></H1> | |
| 10 | +<A HREF="mailto:|EMAIL|">|EMAIL|</A> | |
| 11 | +<P> | |
| 12 | + | |
| 13 | +|POSITION|<BR> | |
| 14 | +|TITLE|<P> | |
| 15 | + | |
| 16 | +<H2>Research areas</H2> | |
| 17 | +<UL> | |
| 18 | +<LI>|AREAS| | |
| 19 | +</UL> | |
| 20 | +<P> | |
| 21 | + | |
| 22 | +<HR> | |
| 23 | +Last update in |DATE| by | |
| 24 | +<A HREF="|webmast|">websmaster</A>. | |
| 25 | +<P> | |
| 26 | + | |
| 27 | +</BODY> | |
| 28 | + | |
| 29 | +</HTML> | |
| @@ -1,3 +1,3 @@ | ||
| 1 | 1 | -- the first program in every language |
| 2 | 2 | |
| 3 | −print("hello world, from Lua!") | |
| 3 | +write("hello world, from Lua!\n") | |
| @@ -1,6 +0,0 @@ | ||
| 1 | −$debug | |
| 2 | −i=0 | |
| 3 | −repeat | |
| 4 | − print(i) | |
| 5 | − i=i+1 | |
| 6 | −until i>10 | |
| @@ -0,0 +1 @@ | ||
| 1 | +../bin/lua | |
| @@ -0,0 +1 @@ | ||
| 1 | +../bin/luac | |
| @@ -28,7 +28,7 @@ function selectionsort(a,n) · 27 unmodified lines | ||
| 28 | 28 | end |
| 29 | 29 | |
| 30 | 30 | function show(m,x) |
| 31 | − write(m.."\n\t") | |
| 31 | + write(m,"\n\t") | |
| 32 | 32 | local i=0 |
| 33 | 33 | while x[i] do |
| 34 | 34 | write(x[i]) |
| @@ -1,18 +0,0 @@ | ||
| 1 | −function split (s) | |
| 2 | − local n = 1 | |
| 3 | − local f = strfind(s,"/") | |
| 4 | − while f do | |
| 5 | − n = n+f | |
| 6 | − f = strfind(strsub(s,n),"/") | |
| 7 | − end | |
| 8 | − return strsub(s,1,n-1), strsub(s,n) | |
| 9 | −end | |
| 10 | − | |
| 11 | − | |
| 12 | −function test(s) | |
| 13 | − local path, filename = split(s) | |
| 14 | − print(s .. "=[".. path.."]+["..filename.."]") | |
| 15 | −end | |
| 16 | − | |
| 17 | −test("a:/lua/obj/lua.c") | |
| 18 | −test("lua.lib") | |
| @@ -1,37 +0,0 @@ | ||
| 1 | −$debug | |
| 2 | − | |
| 3 | −function check (object, class) | |
| 4 | − local v = next(object,nil); | |
| 5 | − while v ~= nil do | |
| 6 | − if class[v] == nil then | |
| 7 | − print("unknown field: " .. v) | |
| 8 | − elseif type(object[v]) ~= class[v].type then | |
| 9 | − print("wrong type for field " .. v) | |
| 10 | − end | |
| 11 | − v = next(object,v); | |
| 12 | − end | |
| 13 | − v = next(class,nil); | |
| 14 | − while v ~= nil do | |
| 15 | − if object[v] == nil then | |
| 16 | − if class[v].default ~= nil then | |
| 17 | − object[v] = class[v].default | |
| 18 | − else | |
| 19 | − print("field "..v.." not initialized") | |
| 20 | − end | |
| 21 | − end | |
| 22 | − v = next(class,v); | |
| 23 | − end | |
| 24 | −end | |
| 25 | − | |
| 26 | −typeblock = {x = {default = 0, type = "number"}, | |
| 27 | − y = {default = 0, type = "number"}, | |
| 28 | − name = {type = "string"} | |
| 29 | − } | |
| 30 | − | |
| 31 | −function block(t) check(t,typeblock) end | |
| 32 | − | |
| 33 | −block{ x = 7, name = "3"} | |
| 34 | −block{ x = "7", name = "3"} | |
| 35 | −block{ x = 7, name = 3} | |
| 36 | −block{ x = 7} | |
| 37 | −block{ x = 7, name = "3", bogus=3.14} | |