summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h2250
1 files changed, 1141 insertions, 1109 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index ef8ba886..abdadbe2 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[15694] = { 15static const unsigned char build_actionlist[15861] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15, 18 20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15,
@@ -79,372 +79,373 @@ static const unsigned char build_actionlist[15694] = {
79 171,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44, 79 171,248,43,131,198,4,129,120,253,4,239,15,130,244,5,252,233,244,6,248,44,
80 129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,137,108,36,12,139,108, 80 129,120,253,4,239,252,233,244,4,248,45,131,252,238,4,137,108,36,12,139,108,
81 36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,233,255,137,116,36,24,232, 81 36,48,137,68,36,8,137,76,36,4,137,44,36,137,149,233,255,137,116,36,24,232,
82 251,1,4,252,233,244,3,248,46,141,4,199,252,233,244,247,248,47,141,4,199,141, 82 251,1,4,252,233,244,3,248,46,255,131,252,238,4,139,108,36,48,137,149,233,
83 44,252,234,149,252,233,244,248,248,48,141,4,194,137,197,252,233,244,248,248, 83 137,252,233,139,86,252,252,137,116,36,24,232,251,1,5,252,233,244,3,255,248,
84 49,141,4,194,248,1,141,44,252,234,248,2,141,12,202,137,108,36,8,139,108,36, 84 47,141,4,199,252,233,244,247,248,48,141,4,199,141,44,252,234,149,252,233,
85 48,137,68,36,12,15,182,70,252,252,137,76,36,4,137,68,36,16,137,44,36,137, 85 244,248,248,49,141,4,194,137,197,252,233,244,248,248,50,141,4,194,248,1,141,
86 149,233,137,116,36,24,232,251,1,5,139,149,233,133,192,15,132,244,40,248,42, 86 44,252,234,248,2,141,12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182,
87 137,193,41,208,137,113,252,244,141,176,233,255,184,237,252,233,244,27,248, 87 70,252,252,137,76,36,4,137,68,36,16,137,44,36,137,149,233,137,116,36,24,232,
88 50,139,108,36,48,137,149,233,141,20,194,137,252,233,137,116,36,24,232,251, 88 251,1,6,139,149,233,133,192,15,132,244,40,248,42,137,193,41,208,137,113,252,
89 1,6,139,149,233,252,233,244,42,248,51,141,76,202,8,248,28,137,76,36,20,137, 89 244,141,176,233,184,237,252,233,244,27,248,51,255,139,108,36,48,137,149,233,
90 68,36,16,131,252,233,8,141,4,193,139,108,36,48,137,76,36,4,137,68,36,8,137, 90 141,20,194,137,252,233,137,116,36,24,232,251,1,7,139,149,233,252,233,244,
91 44,36,137,149,233,137,116,36,24,232,251,1,7,139,149,233,139,76,36,20,139, 91 42,248,52,141,76,202,8,248,28,137,76,36,20,137,68,36,16,131,252,233,8,141,
92 68,36,16,139,105,252,248,131,192,1,57,215,15,132,244,52,137,202,137,114,252, 92 4,193,139,108,36,48,137,76,36,4,137,68,36,8,137,44,36,137,149,233,137,116,
93 252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171, 93 36,24,232,251,1,8,139,149,233,139,76,36,20,139,68,36,16,139,105,252,248,131,
94 248,53,139,108,36,48,137,149,233,137,202,137,252,233,137,116,36,24,232,251, 94 192,1,57,215,15,132,244,53,137,202,137,114,252,252,139,181,233,139,14,15,
95 1,8,139,149,233,139,70,252,252,15,182,204,15,182,232,193,232,16,252,255,164, 95 182,252,233,15,182,205,131,198,4,252,255,36,171,248,54,139,108,36,48,137,
96 253,171,233,248,54,255,129,252,248,239,15,130,244,55,139,106,4,129,252,253, 96 149,233,137,202,137,252,233,137,116,36,24,232,251,1,9,139,149,233,139,70,
97 239,15,131,244,55,139,114,252,252,137,68,36,20,137,106,252,252,139,42,137, 97 252,252,15,182,204,15,182,232,193,232,16,252,255,164,253,171,233,248,55,129,
98 106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,4,137, 98 252,248,239,15,130,244,56,139,106,4,129,252,253,239,255,15,131,244,56,139,
99 105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,68,36, 99 114,252,252,137,68,36,20,137,106,252,252,139,42,137,106,252,248,131,232,2,
100 20,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,184,237, 100 15,132,244,248,137,209,248,1,131,193,8,139,105,4,137,105,252,252,139,41,137,
101 252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,248, 101 105,252,248,131,232,1,15,133,244,1,248,2,139,68,36,20,252,233,244,57,248,
102 2,139,106,252,248,139,132,253,197,233,139,114,252,252,199,66,252,252,237, 102 58,129,252,248,239,15,130,244,56,139,106,4,184,237,252,247,213,57,232,255,
103 137,66,252,248,252,233,244,58,248,59,129,252,248,239,15,130,244,55,139,106, 103 15,71,197,255,15,134,244,247,137,232,248,1,255,248,2,139,106,252,248,139,
104 4,139,114,252,252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233, 104 132,253,197,233,139,114,252,252,199,66,252,252,237,137,66,252,248,252,233,
105 248,2,133,252,237,199,66,252,252,237,15,132,244,58,139,131,233,199,66,252, 105 244,59,248,60,129,252,248,239,15,130,244,56,139,106,4,139,114,252,252,129,
106 252,237,255,137,106,252,248,139,141,233,35,136,233,105,201,239,3,141,233, 106 252,253,239,15,133,244,252,248,1,139,42,139,173,233,248,2,133,252,237,199,
107 248,3,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139, 107 66,252,252,237,15,132,244,59,139,131,233,199,66,252,252,237,255,137,106,252,
108 137,233,133,201,15,133,244,3,252,233,244,58,248,5,139,105,4,129,252,253,239, 108 248,139,141,233,35,136,233,105,201,239,3,141,233,248,3,129,185,233,239,15,
109 255,15,132,244,58,139,1,137,106,252,252,137,66,252,248,252,233,244,58,248, 109 133,244,250,57,129,233,15,132,244,251,248,4,139,137,233,133,201,15,133,244,
110 6,129,252,253,239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248, 110 3,252,233,244,59,248,5,139,105,4,129,252,253,239,255,15,132,244,59,139,1,
111 7,252,247,213,139,172,253,171,233,252,233,244,2,248,60,129,252,248,239,15, 111 137,106,252,252,137,66,252,248,252,233,244,59,248,6,129,252,253,239,15,132,
112 130,244,55,255,129,122,253,4,239,15,133,244,55,139,42,131,189,233,0,15,133, 112 244,1,129,252,253,239,15,135,244,253,189,237,248,7,252,247,213,139,172,253,
113 244,55,129,122,253,12,239,15,133,244,55,139,66,8,137,133,233,139,114,252, 113 171,233,252,233,244,2,248,61,129,252,248,239,15,130,244,56,255,129,122,253,
114 252,199,66,252,252,237,137,106,252,248,252,246,133,233,235,15,132,244,247, 114 4,239,15,133,244,56,139,42,131,189,233,0,15,133,244,56,129,122,253,12,239,
115 128,165,233,235,139,131,233,137,171,233,137,133,233,248,1,255,252,233,244, 115 15,133,244,56,139,66,8,137,133,233,139,114,252,252,199,66,252,252,237,137,
116 58,248,61,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139, 116 106,252,248,252,246,133,233,235,15,132,244,247,128,165,233,235,139,131,233,
117 2,139,108,36,48,137,68,36,4,137,44,36,137,213,131,194,8,137,84,36,8,232,251, 117 137,171,233,137,133,233,248,1,255,252,233,244,59,248,62,129,252,248,239,15,
118 1,9,137,252,234,139,40,139,64,4,139,114,252,252,137,106,252,248,137,66,252, 118 130,244,56,129,122,253,4,239,15,133,244,56,139,2,139,108,36,48,137,68,36,
119 252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239, 119 4,137,44,36,137,213,131,194,8,137,84,36,8,232,251,1,10,137,252,234,139,40,
120 15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,64, 120 139,64,4,139,114,252,252,137,106,252,248,137,66,252,252,252,233,244,59,248,
121 255,248,65,129,252,248,239,15,130,244,55,139,114,252,252,129,122,253,4,239, 121 63,129,252,248,239,15,133,244,56,129,122,253,4,239,15,135,244,56,255,252,
122 15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,244, 122 242,15,16,2,252,233,244,64,255,221,2,252,233,244,65,255,248,66,129,252,248,
123 58,248,3,129,122,253,4,239,15,135,244,55,131,187,233,0,15,133,244,55,139, 123 239,15,130,244,56,139,114,252,252,129,122,253,4,239,15,133,244,249,139,2,
124 171,233,59,171,233,255,15,130,244,247,232,244,66,248,1,139,108,36,48,137, 124 248,2,199,66,252,252,237,137,66,252,248,252,233,244,59,248,3,129,122,253,
125 149,233,137,116,36,24,137,252,233,232,251,1,10,139,149,233,252,233,244,2, 125 4,239,15,135,244,56,131,187,233,0,15,133,244,56,139,171,233,59,171,233,255,
126 248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,122,253,4,239, 126 15,130,244,247,232,244,67,248,1,139,108,36,48,137,149,233,137,116,36,24,137,
127 15,133,244,55,139,108,36,48,137,149,233,255,137,149,233,139,114,252,252,139, 127 252,233,232,251,1,11,139,149,233,252,233,244,2,248,68,129,252,248,239,15,
128 2,137,68,36,4,137,44,36,131,194,8,137,84,36,8,137,116,36,24,232,251,1,11, 128 130,244,56,15,132,244,248,248,1,129,122,253,4,239,15,133,244,56,139,108,36,
129 139,149,233,133,192,15,132,244,249,139,106,8,139,66,12,137,106,252,248,137, 129 48,137,149,233,255,137,149,233,139,114,252,252,139,2,137,68,36,4,137,44,36,
130 66,252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244, 130 131,194,8,137,84,36,8,137,116,36,24,232,251,1,12,139,149,233,133,192,15,132,
131 69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244, 131 244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139,106,16,139,
132 58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122,253,4,239,15,133, 132 66,20,137,42,137,66,4,248,69,184,237,252,233,244,70,248,2,199,66,12,237,252,
133 244,55,255,131,189,233,0,15,133,244,55,255,139,106,252,248,139,133,233,139, 133 233,244,1,248,3,199,66,252,252,237,252,233,244,59,248,71,129,252,248,239,
134 114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233, 134 15,130,244,56,255,139,42,129,122,253,4,239,15,133,244,56,255,131,189,233,
135 244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244, 135 0,15,133,244,56,255,139,106,252,248,139,133,233,139,114,252,252,199,66,252,
136 55,129,122,253,12,239,15,135,244,55,139,114,252,252,255,252,242,15,16,66, 136 252,237,137,66,252,248,199,66,12,237,184,237,252,233,244,70,248,72,129,252,
137 8,189,0,0,252,240,63,102,15,110,205,102,15,112,201,81,252,242,15,88,193,252, 137 248,239,15,130,244,56,129,122,253,4,239,15,133,244,56,129,122,253,12,239,
138 242,15,45,192,252,242,15,17,66,252,248,255,221,66,8,217,232,222,193,219,20, 138 15,135,244,56,139,114,252,252,255,252,242,15,16,66,8,189,0,0,252,240,63,102,
139 36,221,90,252,248,139,4,36,255,139,42,59,133,233,15,131,244,248,193,224,3, 139 15,110,205,102,15,112,201,81,252,242,15,88,193,252,242,15,45,192,252,242,
140 3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137,42,137, 140 15,17,66,252,248,255,221,66,8,217,232,222,193,219,20,36,221,90,252,248,139,
141 66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233,137,213, 141 4,36,255,139,42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120,
142 137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252, 142 253,4,239,15,132,244,73,139,40,139,64,4,137,42,137,66,4,252,233,244,69,248,
143 233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4, 143 2,131,189,233,0,15,132,244,73,137,252,233,137,213,137,194,232,251,1,13,137,
144 239,15,133,244,55,255,139,106,252,248,139,133,233,139,114,252,252,199,66, 144 252,234,133,192,15,133,244,1,248,73,184,237,252,233,244,70,248,74,255,129,
145 252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238, 145 252,248,239,15,130,244,56,139,42,129,122,253,4,239,15,133,244,56,255,139,
146 221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55, 146 106,252,248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,
147 141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1, 147 255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,
148 1,252,238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253, 148 233,244,70,248,75,129,252,248,239,15,130,244,56,141,74,8,131,232,1,190,237,
149 12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114, 149 248,1,15,182,171,233,193,252,237,235,131,229,1,1,252,238,252,233,244,27,248,
150 8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,252, 150 76,129,252,248,239,15,130,244,56,129,122,253,12,239,15,133,244,56,255,139,
151 248,239,15,130,244,55,139,42,139,114,252,252,137,116,36,24,137,44,36,129, 151 106,4,137,106,12,199,66,4,237,139,42,139,114,8,137,106,8,137,50,141,74,16,
152 122,253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,128,189,233,235,15, 152 131,232,2,190,237,252,233,244,1,248,77,129,252,248,239,15,130,244,56,139,
153 135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1, 153 42,139,114,252,252,137,116,36,24,137,44,36,129,122,253,4,239,15,133,244,56,
154 141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,36,48,137, 154 131,189,233,0,15,133,244,56,128,189,233,235,15,135,244,56,139,141,233,15,
155 149,233,131,194,8,137,149,233,141,108,194,232,41,252,245,57,206,15,132,244, 155 132,244,247,255,59,141,233,15,132,244,56,248,1,141,116,193,252,240,59,181,
156 249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238, 156 233,15,135,244,56,137,181,233,139,108,36,48,137,149,233,131,194,8,137,149,
157 8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232, 157 233,141,108,194,232,41,252,245,57,206,15,132,244,249,248,2,139,68,46,4,137,
158 244,24,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,252,248, 158 70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248,
159 239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254, 159 3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,24,199,131,233,237,
160 41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137, 160 255,139,108,36,48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,248,
161 213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249, 161 4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141,
162 15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,137,68, 162 4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,41,205,248,5,139,1,137,
163 36,20,185,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244, 163 4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,
164 13,252,233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137, 164 2,199,66,252,252,237,248,7,139,116,36,24,137,68,36,20,185,252,248,252,255,
165 142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12, 165 252,255,252,255,252,247,198,237,255,15,132,244,13,252,233,244,14,248,8,199,
166 36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233, 166 66,252,252,237,139,142,233,131,252,233,8,137,142,233,139,1,137,2,139,65,4,
167 252,233,244,4,248,77,139,106,252,248,139,173,233,139,114,252,252,137,116, 167 137,66,4,184,237,252,233,244,7,248,9,139,12,36,137,185,233,137,252,242,137,
168 36,24,137,44,36,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244, 168 252,233,232,251,1,0,139,52,36,139,149,233,252,233,244,4,248,78,139,106,252,
169 55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,116,193, 169 248,139,173,233,139,114,252,252,137,116,36,24,137,44,36,131,189,233,0,15,
170 252,248,59,181,233,15,135,244,55,137,181,233,139,108,36,48,137,149,233,137, 170 133,244,56,255,128,189,233,235,15,135,244,56,139,141,233,15,132,244,247,59,
171 149,233,141,108,194,252,240,41,252,245,57,206,15,132,244,249,248,2,255,139, 171 141,233,15,132,244,56,248,1,141,116,193,252,248,59,181,233,15,135,244,56,
172 68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133, 172 137,181,233,139,108,36,48,137,149,233,137,149,233,141,108,194,252,240,41,
173 244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,24,199,131, 173 252,245,57,206,15,132,244,249,248,2,255,139,68,46,4,137,70,252,252,139,4,
174 233,237,139,108,36,48,139,52,36,139,149,233,129,252,248,239,15,135,244,254, 174 46,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,
175 248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252, 175 201,137,76,36,12,137,76,36,8,232,244,24,199,131,233,237,139,108,36,48,139,
176 141,4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213,41,205,248,5, 176 52,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,
177 139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248, 177 233,137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,
178 6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198,237,15,132, 178 59,133,233,15,135,244,255,255,137,213,41,205,248,5,139,1,137,4,41,139,65,
179 244,13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139, 179 4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139,
180 12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233, 180 116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,244,13,252,233,244,14,
181 252,233,244,4,248,78,139,108,36,48,252,247,133,233,237,15,132,244,55,255, 181 248,8,137,252,242,137,252,233,232,251,1,14,248,9,139,12,36,137,185,233,137,
182 137,149,233,141,68,194,252,248,137,133,233,49,192,137,133,233,176,235,136, 182 252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,252,233,244,4,248,79,
183 133,233,252,233,244,16,255,248,64,139,114,252,252,221,90,252,248,252,233, 183 139,108,36,48,252,247,133,233,237,15,132,244,56,255,137,149,233,141,68,194,
184 244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 184 252,248,137,133,233,49,192,137,133,233,176,235,136,133,233,252,233,244,16,
185 55,252,242,15,16,2,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15, 185 255,248,65,139,114,252,252,221,90,252,248,252,233,244,59,248,80,129,252,248,
186 84,193,248,63,139,114,252,252,252,242,15,17,66,252,248,255,248,79,129,252, 186 239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,102,15,
187 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63, 187 252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,248,64,139,114,252,
188 248,64,139,114,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36, 188 252,252,242,15,17,66,252,248,255,248,80,129,252,248,239,15,130,244,56,129,
189 20,248,56,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252, 189 122,253,4,239,15,135,244,56,221,2,217,225,248,64,248,65,139,114,252,252,221,
190 15,182,78,252,253,252,247,209,141,20,202,139,6,15,182,204,15,182,232,131, 190 90,252,248,255,248,59,184,237,248,70,137,68,36,20,248,57,252,247,198,237,
191 198,4,193,232,16,252,255,36,171,248,6,199,68,194,252,244,237,131,192,1,252, 191 15,133,244,253,248,5,56,70,252,255,15,135,244,252,15,182,78,252,253,252,247,
192 233,244,5,248,7,185,252,248,252,255,252,255,252,255,252,233,244,14,255,248, 192 209,141,20,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
193 80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 193 171,248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,185,252,248,
194 15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,122,253,4, 194 252,255,252,255,252,255,252,233,244,14,255,248,81,129,252,248,239,15,130,
195 239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,83,255,129, 195 244,56,129,122,253,4,239,15,135,244,56,252,242,15,81,2,252,233,244,64,248,
196 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, 196 82,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,
197 232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,55,129,122, 197 15,16,2,232,244,83,252,233,244,64,248,84,255,129,252,248,239,15,130,244,56,
198 253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,129,252,248, 198 129,122,253,4,239,15,135,244,56,252,242,15,16,2,232,244,85,252,233,244,64,
199 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,82,252,233, 199 255,248,81,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,
200 244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 200 221,2,217,252,250,252,233,244,65,248,82,129,252,248,239,15,130,244,56,129,
201 244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,239,15,130, 201 122,253,4,239,15,135,244,56,221,2,232,244,83,252,233,244,65,248,84,255,129,
202 244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,241,252, 202 252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,232,244,85,
203 233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 203 252,233,244,65,255,248,86,129,252,248,239,15,130,244,56,129,122,253,4,239,
204 244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,248,239, 204 15,135,244,56,217,252,237,221,2,217,252,241,252,233,244,65,248,87,129,252,
205 255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,252,233, 205 248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,217,252,236,221,2,217,
206 244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 206 252,241,252,233,244,65,248,88,129,252,248,239,255,15,130,244,56,129,122,253,
207 55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,130,244, 207 4,239,15,135,244,56,221,2,232,244,89,252,233,244,65,248,90,129,252,248,239,
208 55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,64,248,91, 208 15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,217,252,254,252,233,244,
209 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252, 209 65,248,91,129,252,248,239,255,15,130,244,56,129,122,253,4,239,15,135,244,
210 242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,255,129,122, 210 56,221,2,217,252,255,252,233,244,65,248,92,129,252,248,239,15,130,244,56,
211 253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250, 211 129,122,253,4,239,15,135,244,56,221,2,217,252,242,221,216,252,233,244,65,
212 217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,253, 212 248,93,129,252,248,239,15,130,244,56,255,129,122,253,4,239,15,135,244,56,
213 4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217, 213 221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,233,244,
214 201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,122, 214 65,248,94,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,
215 253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,255, 215 2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,243,252,233,
216 248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252, 216 244,65,248,95,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,
217 242,15,16,2,252,242,15,17,4,36,255,248,95,129,252,248,239,15,130,244,55,129, 217 56,255,221,2,217,232,217,252,243,252,233,244,65,255,248,96,129,252,248,239,
218 122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1,14,137, 218 15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,252,242,15,
219 252,234,252,233,244,64,255,248,96,129,252,248,239,15,130,244,55,129,122,253, 219 17,4,36,255,248,96,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,
220 4,239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,96,129,252, 220 244,56,221,2,221,28,36,255,137,213,232,251,1,15,137,252,234,252,233,244,65,
221 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255, 221 255,248,97,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,
222 137,213,232,251,1,15,137,252,234,252,233,244,64,255,248,97,129,252,248,239, 222 252,242,15,16,2,252,242,15,17,4,36,255,248,97,129,252,248,239,15,130,244,
223 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15, 223 56,129,122,253,4,239,15,135,244,56,221,2,221,28,36,255,137,213,232,251,1,
224 17,4,36,255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 224 16,137,252,234,252,233,244,65,255,248,98,129,252,248,239,15,130,244,56,129,
225 244,55,221,2,221,28,36,255,137,213,232,251,1,16,137,252,234,252,233,244,64, 225 122,253,4,239,15,135,244,56,252,242,15,16,2,252,242,15,17,4,36,255,248,98,
226 248,98,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 226 129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,221,28,
227 244,55,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244, 227 36,255,137,213,232,251,1,17,137,252,234,252,233,244,65,248,99,255,248,100,
228 63,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 228 129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,
229 55,221,2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248, 229 16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,64,255,248,100,129,
230 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135, 230 252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,139,106,252,
231 244,55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239, 231 248,220,141,233,252,233,244,65,255,248,101,129,252,248,239,15,130,244,56,
232 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135, 232 129,122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,221,2,221,
233 244,55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252, 233 66,8,217,252,243,252,233,244,65,248,102,129,252,248,239,15,130,244,56,129,
234 248,239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,114,252, 234 122,253,4,239,15,135,244,56,129,122,253,12,239,255,15,135,244,56,221,66,8,
235 252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252, 235 221,2,217,252,253,221,217,252,233,244,65,248,103,129,252,248,239,15,130,244,
236 255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0, 236 56,139,106,4,129,252,253,239,15,135,244,56,139,114,252,252,139,2,137,106,
237 32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255, 237 252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,
238 137,108,36,16,219,68,36,16,255,139,106,252,252,129,229,252,255,252,255,15, 238 9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,
239 128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221, 239 248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,16,219,68,
240 26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252, 240 36,16,255,139,106,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224,
241 238,252,233,244,2,255,248,4,255,252,242,15,16,2,189,0,0,80,67,102,15,110, 241 63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,
242 205,102,15,112,201,81,252,242,15,89,193,252,242,15,17,66,252,248,255,221, 242 244,70,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,
243 2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252,248,255,139,106,252,252, 243 248,4,255,252,242,15,16,2,189,0,0,80,67,102,15,110,205,102,15,112,201,81,
244 184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244, 244 252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,68,36,16,0,0,128,
245 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248, 245 90,216,76,36,16,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,
246 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139, 246 233,244,1,255,248,104,129,252,248,239,15,130,244,56,129,122,253,4,239,15,
247 114,252,252,209,229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40, 247 135,244,56,252,242,15,16,2,255,248,104,129,252,248,239,15,130,244,56,129,
248 224,232,244,104,252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242, 248 122,253,4,239,15,135,244,56,221,2,255,139,106,4,139,114,252,252,209,229,129,
249 15,17,34,255,217,192,232,244,104,220,252,233,248,1,221,90,252,248,221,26, 249 252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,105,252,242,
250 255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184,237,252,233, 250 15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,
251 244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87, 251 244,105,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,
252 228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248,105,129,252, 252 4,49,232,15,136,244,249,248,2,184,237,252,233,244,70,248,3,129,252,245,0,
253 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, 253 0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,
254 15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221, 254 252,238,217,201,252,233,244,1,255,248,106,129,252,248,239,15,130,244,56,129,
255 217,252,233,244,64,255,248,106,129,252,248,239,15,130,244,55,129,122,253, 255 122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,221,66,8,221,
256 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252, 256 2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,65,255,248,
257 242,15,16,74,8,232,244,107,252,233,244,63,255,248,106,129,252,248,239,15, 257 107,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,129,122,
258 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 258 253,12,239,15,135,244,56,252,242,15,16,2,252,242,15,16,74,8,232,244,108,252,
259 55,221,2,221,66,8,232,244,107,252,233,244,64,255,248,108,129,252,248,239, 259 233,244,64,255,248,107,129,252,248,239,15,130,244,56,129,122,253,4,239,15,
260 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0, 260 135,244,56,129,122,253,12,239,15,135,244,56,221,2,221,66,8,232,244,108,252,
261 248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55, 261 233,244,65,255,248,109,129,252,248,239,15,130,244,56,129,122,253,4,239,15,
262 252,242,15,16,76,252,234,252,248,252,242,15,93,193,131,197,1,252,233,244, 262 135,244,56,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,64,129,124,
263 1,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 263 253,252,234,252,252,239,15,135,244,56,252,242,15,16,76,252,234,252,248,252,
264 55,221,2,189,2,0,0,0,248,1,57,197,15,131,244,64,129,124,253,252,234,252,252, 264 242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,
265 239,15,135,244,251,221,68,252,234,252,248,255,219,252,233,219,209,221,217, 265 244,56,129,122,253,4,239,15,135,244,56,221,2,189,2,0,0,0,248,1,57,197,15,
266 255,80,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,2,221,216, 266 131,244,65,129,124,253,252,234,252,252,239,15,135,244,251,221,68,252,234,
267 88,255,248,109,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 267 252,248,255,219,252,233,219,209,221,217,255,80,221,225,223,224,252,246,196,
268 55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252, 268 1,15,132,244,248,217,201,248,2,221,216,88,255,248,110,129,252,248,239,15,
269 234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15, 269 130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,189,2,0,0,0,248,
270 95,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55, 270 1,57,197,15,131,244,64,129,124,253,252,234,252,252,239,15,135,244,56,252,
271 129,122,253,4,239,15,135,244,55,221,2,189,2,0,0,0,248,1,57,197,15,131,244, 271 242,15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,
272 64,129,124,253,252,234,252,252,239,15,135,244,251,221,68,252,234,252,248, 272 248,110,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,
273 255,219,252,233,218,209,221,217,255,80,221,225,223,224,252,246,196,1,15,133, 273 2,189,2,0,0,0,248,1,57,197,15,131,244,65,129,124,253,252,234,252,252,239,
274 244,248,217,201,248,2,221,216,88,255,248,5,221,216,252,233,244,55,255,248, 274 15,135,244,251,221,68,252,234,252,248,255,219,252,233,218,209,221,217,255,
275 110,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,139,42, 275 80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,88,
276 255,252,242,15,42,133,233,252,233,244,63,255,219,133,233,252,233,244,64,255, 276 255,248,5,221,216,252,233,244,56,255,248,111,129,252,248,239,15,130,244,56,
277 248,111,129,252,248,239,15,133,244,55,129,122,253,4,239,15,133,244,55,139, 277 129,122,253,4,239,15,133,244,56,139,42,255,252,242,15,42,133,233,252,233,
278 42,139,114,252,252,131,189,233,1,15,130,244,72,15,182,173,233,255,252,242, 278 244,64,255,219,133,233,252,233,244,65,255,248,112,129,252,248,239,15,133,
279 15,42,197,252,233,244,63,255,137,108,36,16,219,68,36,16,252,233,244,64,255, 279 244,56,129,122,253,4,239,15,133,244,56,139,42,139,114,252,252,131,189,233,
280 248,112,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248, 280 1,15,130,244,73,15,182,173,233,255,252,242,15,42,197,252,233,244,64,255,137,
281 239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242,15,44,42,129, 281 108,36,16,219,68,36,16,252,233,244,65,255,248,113,139,171,233,59,171,233,
282 252,253,252,255,0,0,0,15,135,244,55,137,108,36,20,255,221,2,219,92,36,20, 282 15,130,244,247,232,244,67,248,1,129,252,248,239,15,133,244,56,129,122,253,
283 129,124,36,20,252,255,0,0,0,15,135,244,55,255,199,68,36,8,1,0,0,0,141,68, 283 4,239,15,135,244,56,255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,
284 36,20,248,113,139,108,36,48,137,149,233,137,68,36,4,137,44,36,137,116,36, 284 244,56,137,108,36,20,255,221,2,219,92,36,20,129,124,36,20,252,255,0,0,0,15,
285 24,232,251,1,17,139,149,233,139,114,252,252,199,66,252,252,237,137,66,252, 285 135,244,56,255,199,68,36,8,1,0,0,0,141,68,36,20,248,114,139,108,36,48,137,
286 248,252,233,244,58,248,114,139,171,233,59,171,233,15,130,244,247,232,244, 286 149,233,137,68,36,4,137,44,36,137,116,36,24,232,251,1,18,139,149,233,139,
287 66,248,1,199,68,36,20,252,255,252,255,252,255,252,255,129,252,248,239,15, 287 114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,59,248,115,139,
288 130,244,55,15,134,244,247,129,122,253,20,239,255,252,242,15,44,106,16,137, 288 171,233,59,171,233,15,130,244,247,232,244,67,248,1,199,68,36,20,252,255,252,
289 108,36,20,255,221,66,16,219,92,36,20,255,248,1,129,122,253,4,239,15,133,244, 289 255,252,255,252,255,129,252,248,239,15,130,244,56,15,134,244,247,129,122,
290 55,129,122,253,12,239,15,135,244,55,139,42,137,108,36,12,139,173,233,255, 290 253,20,239,255,252,242,15,44,106,16,137,108,36,20,255,221,66,16,219,92,36,
291 252,242,15,44,74,8,255,221,66,8,219,92,36,8,139,76,36,8,255,139,68,36,20, 291 20,255,248,1,129,122,253,4,239,15,133,244,56,129,122,253,12,239,15,135,244,
292 57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,12,41, 292 56,139,42,137,108,36,12,139,173,233,255,252,242,15,44,74,8,255,221,66,8,219,
293 200,15,140,244,115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,232, 293 92,36,8,139,76,36,8,255,139,68,36,20,57,197,15,130,244,251,248,2,133,201,
294 252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137, 294 15,142,244,253,248,3,139,108,36,12,41,200,15,140,244,116,141,172,253,13,233,
295 232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,244, 295 131,192,1,248,4,137,68,36,8,137,232,252,233,244,114,248,5,15,140,244,252,
296 3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,129, 296 141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,
297 252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247,232,244,66, 297 254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,
298 248,1,255,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55, 298 116,49,192,252,233,244,4,248,117,129,252,248,239,15,130,244,56,139,171,233,
299 139,42,255,252,242,15,44,66,8,255,221,66,8,219,92,36,20,139,68,36,20,255, 299 59,171,233,15,130,244,247,232,244,67,248,1,255,129,122,253,4,239,15,133,244,
300 133,192,15,142,244,115,131,189,233,1,15,130,244,115,15,133,244,117,57,131, 300 56,129,122,253,12,239,15,135,244,56,139,42,255,252,242,15,44,66,8,255,221,
301 233,15,130,244,117,15,182,141,233,139,171,233,137,68,36,8,248,1,136,77,0, 301 66,8,219,92,36,20,139,68,36,20,255,133,192,15,142,244,116,131,189,233,1,15,
302 131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,244,113,248,118,129, 302 130,244,116,15,133,244,118,57,131,233,15,130,244,118,15,182,141,233,139,171,
303 252,248,239,255,15,130,244,55,139,171,233,59,171,233,15,130,244,247,232,244, 303 233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139,131,233,
304 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132, 304 252,233,244,114,248,119,129,252,248,239,255,15,130,244,56,139,171,233,59,
305 244,115,57,131,233,15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139, 305 171,233,15,130,244,247,232,244,67,248,1,129,122,253,4,239,15,133,244,56,139,
306 179,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137, 306 42,139,133,233,133,192,15,132,244,116,57,131,233,15,130,244,120,129,197,239,
307 252,240,139,116,36,20,252,233,244,113,248,120,129,252,248,239,15,130,244, 307 137,116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197,1,131,
308 55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239, 308 232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,114,248,
309 15,133,244,55,139,42,139,133,233,57,131,233,255,15,130,244,119,129,197,239, 309 121,129,252,248,239,15,130,244,56,139,171,233,59,171,233,15,130,244,247,232,
310 137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,5,0, 310 244,67,248,1,129,122,253,4,239,15,133,244,56,139,42,139,133,233,57,131,233,
311 131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,241,32, 311 255,15,130,244,120,129,197,239,137,116,36,20,137,68,36,8,139,179,233,252,
312 248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,252, 312 233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,
313 233,244,113,248,121,129,252,248,239,15,130,244,55,255,139,171,233,59,171, 313 90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,
314 233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42, 314 1,137,252,240,139,116,36,20,252,233,244,114,248,122,129,252,248,239,15,130,
315 139,133,233,57,131,233,15,130,244,119,129,197,239,137,116,36,20,137,68,36, 315 244,56,255,139,171,233,59,171,233,15,130,244,247,232,244,67,248,1,129,122,
316 8,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244, 316 253,4,239,15,133,244,56,139,42,139,133,233,57,131,233,15,130,244,120,129,
317 248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6,248, 317 197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15,182,
318 3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,252,233,244,113,248,122, 318 76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,
319 129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,213,139, 319 252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,
320 10,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,255,137, 320 36,20,252,233,244,114,248,123,129,252,248,239,15,130,244,56,129,122,253,4,
321 4,36,219,4,36,252,233,244,64,255,248,123,129,252,248,239,15,130,244,55,129, 321 239,15,133,244,56,137,213,139,10,232,251,1,19,137,252,234,255,252,242,15,
322 122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,205, 322 42,192,252,233,244,64,255,137,4,36,219,4,36,252,233,244,65,255,248,124,129,
323 102,15,112,201,81,252,242,15,88,193,102,15,126,197,252,242,15,42,197,252, 323 252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,
324 233,244,63,255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 324 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,
325 135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,219,4,36, 325 197,252,242,15,42,197,252,233,244,64,255,248,124,129,252,248,239,15,130,244,
326 252,233,244,64,255,248,124,129,252,248,239,15,130,244,55,129,122,253,4,239, 326 56,129,122,253,4,239,15,135,244,56,221,2,199,68,36,16,0,0,192,89,216,68,36,
327 15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201, 327 16,221,28,36,219,4,36,252,233,244,65,255,248,125,129,252,248,239,15,130,244,
328 81,252,242,15,88,193,102,15,126,197,255,248,124,129,252,248,239,15,130,244, 328 56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,189,0,0,56,67,102,15,110,
329 55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36, 329 205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,125,129,252,
330 16,221,28,36,139,44,36,255,137,68,36,20,141,68,194,252,240,248,1,57,208,15, 330 248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,2,199,68,36,16,
331 134,244,125,129,120,253,4,239,15,135,244,126,255,252,242,15,16,0,252,242, 331 0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,20,141,68,194,252,
332 15,88,193,102,15,126,193,33,205,255,221,0,216,68,36,16,221,28,36,35,44,36, 332 240,248,1,57,208,15,134,244,126,129,120,253,4,239,15,135,244,127,255,252,
333 255,131,232,8,252,233,244,1,255,248,127,129,252,248,239,15,130,244,55,129, 333 242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221,0,216,68,36,16,
334 122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,205, 334 221,28,36,35,44,36,255,131,232,8,252,233,244,1,255,248,128,129,252,248,239,
335 102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,127,129,252,248, 335 15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,189,0,0,56,
336 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0, 336 67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
337 192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88, 337 248,128,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,
338 193,102,15,126,193,9,205,255,221,0,216,68,36,16,221,28,36,11,44,36,255,248, 338 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15,
339 128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 339 16,0,252,242,15,88,193,102,15,126,193,9,205,255,221,0,216,68,36,16,221,28,
340 15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193, 340 36,11,44,36,255,248,129,129,252,248,239,15,130,244,56,129,122,253,4,239,15,
341 102,15,126,197,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239, 341 135,244,56,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
342 15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44, 342 252,242,15,88,193,102,15,126,197,255,248,129,129,252,248,239,15,130,244,56,
343 36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,221,0, 343 129,122,253,4,239,15,135,244,56,221,2,199,68,36,16,0,0,192,89,216,68,36,16,
344 216,68,36,16,221,28,36,51,44,36,255,248,129,129,252,248,239,15,130,244,55, 344 221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,
345 129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110, 345 49,205,255,221,0,216,68,36,16,221,28,36,51,44,36,255,248,130,129,252,248,
346 205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,129,129,252, 346 239,15,130,244,56,129,122,253,4,239,15,135,244,56,252,242,15,16,2,189,0,0,
347 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,16, 347 56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,
348 0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,15,205,252,233,244,125,255, 348 248,130,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,221,
349 248,130,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252, 349 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,15,205,252,
350 242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88, 350 233,244,126,255,248,131,129,252,248,239,15,130,244,56,129,122,253,4,239,15,
351 193,102,15,126,197,255,248,130,129,252,248,239,15,130,244,55,129,122,253, 351 135,244,56,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,
352 4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36, 352 252,242,15,88,193,102,15,126,197,255,248,131,129,252,248,239,15,130,244,56,
353 139,44,36,255,252,247,213,255,248,125,252,242,15,42,197,252,233,244,63,255, 353 129,122,253,4,239,15,135,244,56,221,2,199,68,36,16,0,0,192,89,216,68,36,16,
354 248,125,137,44,36,219,4,36,252,233,244,64,255,248,126,139,68,36,20,252,233, 354 221,28,36,139,44,36,255,252,247,213,255,248,126,252,242,15,42,197,252,233,
355 244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 355 244,64,255,248,126,137,44,36,219,4,36,252,233,244,65,255,248,127,139,68,36,
356 244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74, 356 20,252,233,244,56,255,248,132,129,252,248,239,15,130,244,56,129,122,253,4,
357 8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242, 357 239,15,135,244,56,129,122,253,12,239,15,135,244,56,252,242,15,16,2,252,242,
358 15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,131,129,252,248,239, 358 15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,
359 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 359 252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,132,129,252,
360 55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68, 360 248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,129,122,253,12,239,
361 36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,229,137,193,252,233, 361 15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,
362 244,125,255,248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 362 36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,229,137,
363 244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74, 363 193,252,233,244,126,255,248,133,129,252,248,239,15,130,244,56,129,122,253,
364 8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,242, 364 4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,252,242,15,16,2,252,
365 15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,132,129,252,248,239,
366 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
367 55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,
368 36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,252,237,137,193,252,
369 233,244,125,255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
370 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,
371 74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,252,
372 242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,133,129,252,248,
373 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,
374 244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,
375 68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,252,253,137,193,
376 252,233,244,125,255,248,134,129,252,248,239,15,130,244,55,129,122,253,4,239,
377 15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,
378 16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194,
379 252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,134,129,252,
380 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
381 15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,
382 36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,197,137,
383 193,252,233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,253,
384 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
385 242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15, 365 242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,
386 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,135, 366 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,133,
387 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, 367 129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,129,122,253,
388 12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16, 368 12,239,15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,
389 221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211, 369 221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,
390 205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248,119,184,237, 370 252,237,137,193,252,233,244,126,255,248,134,129,252,248,239,15,130,244,56,
391 248,55,139,108,36,48,139,114,252,252,137,116,36,24,137,149,233,141,68,194, 371 129,122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,252,242,
392 252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251, 372 15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,
393 137,44,36,252,255,144,233,139,149,233,133,192,15,143,244,69,248,1,255,139, 373 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,
394 141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244, 374 255,248,134,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,56,
395 248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171, 375 129,122,253,12,239,15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89,216,
396 248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253,252,247,213, 376 68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,
397 141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252,248,41,252,234, 377 255,211,252,253,137,193,252,233,244,126,255,248,135,129,252,248,239,15,130,
398 252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149,233,49,192,252, 378 244,56,129,122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,252,
399 233,244,1,248,66,93,137,108,36,16,139,108,36,48,137,116,36,24,137,149,233, 379 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
400 255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,19,139,149,233,139, 380 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,
401 133,233,41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,136,255,15,182, 381 201,255,248,135,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,
402 131,233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244, 382 56,129,122,253,12,239,15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89,
403 247,252,255,139,233,252,233,244,247,255,248,137,15,182,131,233,168,235,15, 383 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,
404 133,244,251,252,233,244,247,248,138,15,182,131,233,168,235,15,133,244,251, 384 36,255,211,197,137,193,252,233,244,126,255,248,136,129,252,248,239,15,130,
405 168,235,15,132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244, 385 244,56,129,122,253,4,239,15,135,244,56,129,122,253,12,239,15,135,244,56,252,
406 251,248,1,255,139,108,36,48,137,149,233,137,252,242,137,252,233,232,251,1, 386 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,
407 20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15, 387 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,
408 183,70,252,254,252,255,164,253,171,233,248,139,131,198,4,139,77,232,137,76, 388 201,255,248,136,129,252,248,239,15,130,244,56,129,122,253,4,239,15,135,244,
409 36,20,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233, 389 56,129,122,253,12,239,15,135,244,56,221,2,221,66,8,199,68,36,16,0,0,192,89,
410 141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139,233,137, 390 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,
411 171,233,137,116,36,24,232,251,1,21,252,233,244,3,255,248,141,137,116,36,24, 391 36,255,211,205,137,193,252,233,244,126,248,118,184,237,252,233,244,56,248,
412 255,248,142,255,137,116,36,24,131,206,1,248,1,255,141,68,194,252,248,139, 392 120,184,237,248,56,139,108,36,48,139,114,252,252,137,116,36,24,137,149,233,
413 108,36,48,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,22,199, 393 141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,
414 68,36,24,0,0,0,0,255,131,230,252,254,255,139,149,233,137,193,139,133,233, 394 244,251,137,44,36,252,255,144,233,139,149,233,133,192,15,143,244,70,248,1,
415 41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248,143, 395 255,139,141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,
416 255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137, 396 133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,
417 125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131, 397 36,171,248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253,252,
418 233,137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,17,117,208, 398 247,213,141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252,248,41,
419 252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,252,242, 399 252,234,252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149,233,
420 15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147, 400 49,192,252,233,244,1,248,67,93,137,108,36,16,139,108,36,48,137,116,36,24,
421 233,137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,36,16,141,139,233, 401 137,149,233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,20,139,
422 232,251,1,23,139,141,233,129,225,239,137,204,137,169,233,139,149,233,139, 402 149,233,139,133,233,41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,137,
423 177,233,255,248,144,255,133,192,15,136,244,249,137,68,36,20,139,122,252,248, 403 255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,
424 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182, 404 15,132,244,247,252,255,139,233,252,233,244,247,255,248,138,15,182,131,233,
425 204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,139,68, 405 168,235,15,133,244,251,252,233,244,247,248,139,15,182,131,233,168,235,15,
426 36,20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,194,232,251, 406 133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244,247,168,235,
427 1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102, 407 15,132,244,251,248,1,255,139,108,36,48,137,149,233,137,252,242,137,252,233,
428 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4, 408 232,251,1,21,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,
429 139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102,15,115, 409 252,15,183,70,252,254,252,255,164,253,171,233,248,140,131,198,4,139,77,232,
430 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84, 410 137,76,36,20,252,233,244,4,248,141,255,139,106,252,248,139,173,233,15,182,
431 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242, 411 133,233,141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139,
412 233,137,171,233,137,116,36,24,232,251,1,22,252,233,244,3,255,248,142,137,
413 116,36,24,255,248,143,255,137,116,36,24,131,206,1,248,1,255,141,68,194,252,
414 248,139,108,36,48,137,149,233,137,133,233,137,252,242,137,252,233,232,251,
415 1,23,199,68,36,24,0,0,0,0,255,131,230,252,254,255,139,149,233,137,193,139,
416 133,233,41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,
417 248,144,255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,
418 248,137,125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,
419 137,131,233,137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,
420 17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,
421 252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,
422 139,147,233,137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,36,16,141,
423 139,233,232,251,1,24,139,141,233,129,225,239,137,204,137,169,233,139,149,
424 233,139,177,233,255,248,145,255,133,192,15,136,244,249,137,68,36,20,139,122,
425 252,248,139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,
426 15,182,204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,
427 139,68,36,20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,194,232,
428 251,1,25,255,248,83,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,
429 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
430 36,4,139,68,36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,
431 115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,
432 84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,
432 15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210, 433 15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210,
433 81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 434 81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,
434 248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252, 435 248,85,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,
435 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68, 436 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,
436 36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184, 437 36,8,195,255,248,147,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,
437 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15, 438 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,
438 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102, 439 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
439 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15, 440 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15,
440 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255, 441 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,105,255,
441 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217, 442 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,
442 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,102,15,252, 443 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,148,102,15,252,
443 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102, 444 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,
444 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 445 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,
445 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102, 446 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102,
446 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15, 447 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15,
447 92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15, 448 92,200,102,15,86,202,15,40,193,248,1,195,248,149,255,15,40,232,252,242,15,
448 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102, 449 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,
449 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134, 450 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134,
450 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184, 451 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184,
@@ -453,10 +454,10 @@ static const unsigned char build_actionlist[15694] = {
453 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216, 454 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216,
454 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102, 455 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,
455 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195, 456 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,
456 255,248,88,217,252,234,222,201,248,149,217,84,36,4,129,124,36,4,0,0,128,127, 457 255,248,89,217,252,234,222,201,248,150,217,84,36,4,129,124,36,4,0,0,128,127,
457 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,150,217,192, 458 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,151,217,192,
458 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 459 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
459 217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,219,84,36,4,219,68, 460 217,248,1,195,248,2,221,216,217,252,238,195,255,248,108,219,84,36,4,219,68,
460 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138, 461 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138,
461 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0, 462 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0,
462 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251, 463 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,
@@ -465,14 +466,14 @@ static const unsigned char build_actionlist[15694] = {
465 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221, 466 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,
466 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224, 467 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224,
467 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0, 468 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0,
468 0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9,255,217,232,255, 469 0,252,255,15,132,244,250,217,252,241,252,233,244,151,248,9,255,217,232,255,
469 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1, 470 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1,
470 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217, 471 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217,
471 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201, 472 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201,
472 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216, 473 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216,
473 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217, 474 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217,
474 68,36,4,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102, 475 68,36,4,195,255,248,108,255,248,152,252,242,15,45,193,252,242,15,42,208,102,
475 15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244, 476 15,46,202,15,133,244,254,15,138,244,255,248,153,131,252,248,1,15,142,244,
476 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244, 477 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,
477 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232, 478 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,
478 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252, 479 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,
@@ -491,30 +492,30 @@ static const unsigned char build_actionlist[15694] = {
491 102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136, 492 102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,
492 196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192, 493 196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192,
493 102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87, 494 102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87,
494 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255, 495 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,154,255,
495 139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244, 496 139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244,
496 248,232,244,82,252,233,244,253,248,1,232,244,84,252,233,244,253,248,2,131, 497 248,232,244,83,252,233,244,253,248,1,232,244,85,252,233,244,253,248,2,131,
497 252,248,3,15,132,244,247,15,135,244,248,232,244,104,255,252,233,244,253,248, 498 252,248,3,15,132,244,247,15,135,244,248,232,244,105,255,252,233,244,253,248,
498 1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221, 499 1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221,
499 68,36,4,131,252,248,5,15,130,244,88,15,132,244,149,248,2,131,252,248,7,15, 500 68,36,4,131,252,248,5,15,130,244,89,15,132,244,150,248,2,131,252,248,7,15,
500 132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217, 501 132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,
501 232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244, 502 232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244,
502 248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131, 503 248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,
503 252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242, 504 252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,
504 221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,82,15,132, 505 221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,83,15,132,
505 244,84,131,252,248,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2, 506 244,85,131,252,248,3,15,130,244,105,15,135,244,248,217,252,250,195,248,2,
506 131,252,248,5,15,130,244,88,15,132,244,149,131,252,248,7,15,132,244,247,15, 507 131,252,248,5,15,130,244,89,15,132,244,150,131,252,248,7,15,132,244,247,15,
507 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217, 508 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,
508 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252, 509 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252,
509 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15, 510 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15,
510 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195, 511 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,
511 255,248,9,204,255,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,242, 512 255,248,9,204,255,248,155,255,139,68,36,20,252,242,15,16,68,36,4,252,242,
512 15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88, 513 15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,
513 193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252, 514 193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,
514 233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89, 515 233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,
515 193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248, 516 193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,
516 5,15,132,244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,232, 517 5,15,132,244,247,255,15,135,244,248,232,244,149,252,233,244,7,248,1,90,232,
517 244,107,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248, 518 244,108,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,
518 184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248, 519 184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,
519 1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244, 520 1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,
520 7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132, 521 7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,
@@ -523,16 +524,16 @@ static const unsigned char build_actionlist[15694] = {
523 1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4, 524 1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,
524 221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248, 525 221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,
525 1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201, 526 1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,
526 195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107, 527 195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,149,15,132,244,108,
527 131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1, 528 131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,
528 221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217, 529 221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,
529 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15, 530 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,
530 132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, 531 132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
531 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, 532 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
532 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, 533 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
533 244,248,217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242, 534 244,248,217,201,248,2,221,216,195,255,248,156,156,90,137,209,129,252,242,
534 0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15, 535 0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,
535 162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,248,156, 536 162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,248,157,
536 255,85,137,229,83,137,203,43,163,233,255,137,163,233,255,15,182,139,233,131, 537 255,85,137,229,83,137,203,43,163,233,255,137,163,233,255,15,182,139,233,131,
537 252,233,1,15,136,244,248,248,1,139,132,253,139,233,137,4,140,131,252,233, 538 252,233,1,15,136,244,248,248,1,139,132,253,139,233,137,4,140,131,252,233,
538 1,15,137,244,1,248,2,139,139,233,139,147,233,252,255,147,233,137,131,233, 539 1,15,137,244,1,248,2,139,139,233,139,147,233,252,255,147,233,137,131,233,
@@ -547,230 +548,236 @@ static const unsigned char build_actionlist[15694] = {
547 253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255, 548 253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,
548 221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248, 549 221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,
549 15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255, 550 15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,
550 248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4, 551 248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,5,255,129,252,253,
551 15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15, 552 239,15,132,244,46,129,124,253,202,4,239,15,132,244,46,255,57,108,202,4,15,
552 132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244, 553 133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,
553 2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252, 554 244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,
554 233,244,45,255,252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248, 555 246,133,233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,
555 139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255, 556 45,255,248,3,129,252,253,239,15,133,244,2,252,233,244,46,255,252,247,208,
556 252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252,247,208, 557 139,108,202,4,131,198,4,129,252,253,239,15,133,244,249,139,12,202,59,12,135,
557 131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15, 558 255,139,108,202,4,131,198,4,129,252,253,239,15,135,244,249,255,252,242,15,
558 131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255, 559 16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252,247,208,139,108,
559 15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131, 560 202,4,131,198,4,57,197,255,15,133,244,249,15,183,70,252,254,141,180,253,134,
560 198,4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4, 561 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
561 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, 562 248,3,129,252,253,239,15,133,244,2,252,233,244,46,255,15,132,244,248,129,
562 255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182, 563 252,253,239,15,132,244,46,15,183,70,252,254,141,180,253,134,233,248,2,139,
563 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4, 564 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,
564 239,15,135,244,48,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102, 565 4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,
565 15,112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28, 566 108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253,134,233,
566 202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252, 567 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
567 242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28, 568 139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204,15,182,232,
568 202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 569 131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253,194,4,239,
569 2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255, 570 129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
570 252,242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36,255,15,182, 571 252,255,36,171,255,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,
571 78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252, 572 4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,242,15,
572 234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255, 573 17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,
573 221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252, 574 244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,
574 242,15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129, 575 4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,15,182,232,131,
575 124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255, 576 198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,15,133,244,51,
576 252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255, 577 139,12,194,137,213,232,251,1,19,255,252,242,15,42,192,137,252,234,255,137,
577 252,242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199, 578 4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1,255,15,182,
578 255,252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252, 579 252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,
579 234,255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220, 580 15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,
580 36,194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234, 581 253,252,234,4,239,15,135,244,48,255,252,242,15,16,4,199,252,242,15,88,4,252,
581 220,12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199, 582 234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,
582 220,12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4, 583 50,129,124,253,194,4,239,15,135,244,50,255,252,242,15,16,4,252,234,252,242,
583 252,234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221, 584 15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,
584 4,252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255, 585 15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,
585 221,4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194, 586 15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,
586 255,221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12, 587 252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,
587 199,255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12, 588 234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,
588 252,234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15, 589 199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,
589 16,12,194,255,221,4,252,234,221,4,194,255,248,157,232,244,148,255,252,233, 590 4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,
590 244,157,255,232,244,107,255,15,182,252,236,15,182,192,141,12,194,41,232,137, 591 16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,
591 76,36,4,137,68,36,8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36, 592 15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,
592 24,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182, 593 242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,
593 78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6, 594 252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,
594 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208, 595 255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,
595 139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198, 596 234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,
596 4,193,232,16,252,255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17, 597 4,194,255,248,158,232,244,149,255,252,233,244,158,255,232,244,108,255,15,
597 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17, 598 182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248,33,139,
598 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182, 599 108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,26,139,149,233,133,
599 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141, 600 192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,
600 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244, 601 44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,
601 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139, 602 193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68,202,4,237,137,
602 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202, 603 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
603 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 604 15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,
604 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139, 605 202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,
605 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235, 606 255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,
606 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 607 16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,
607 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233, 608 248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,
608 235,15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,234,252,233, 609 198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,133,233,139,
609 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139, 610 173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182,204,15,182,
610 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6, 611 232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253,141,
611 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129, 612 233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,
612 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233, 613 132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,
613 232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15, 614 182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239,129,252,248,
614 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221, 615 239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,255,
615 25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65, 616 232,251,1,27,137,252,234,252,233,244,1,255,252,247,208,139,106,252,248,139,
616 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141, 617 172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,
617 180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,149,233,141, 618 235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
618 20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,15,182, 619 252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,
619 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248,139, 620 244,1,137,213,137,194,141,139,233,232,251,1,27,137,252,234,252,233,244,1,
620 4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116, 621 255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,
621 36,24,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237, 622 233,255,252,242,15,17,1,255,221,25,255,252,247,208,139,106,252,248,139,172,
622 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108, 623 253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,
623 36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15,131,244,251,248, 624 232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48,131,189,233,0,
624 1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15, 625 15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,28,139,149,233,
625 132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,29,139,149,233,15,182,78, 626 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
627 252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76,36,8,137,68,36,
628 4,137,44,36,137,149,233,137,116,36,24,232,251,1,29,139,149,233,15,182,78,
626 252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4, 629 252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,
627 193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233, 630 193,232,16,252,255,36,171,255,139,108,36,48,137,149,233,139,139,233,59,139,
628 232,251,1,30,15,183,70,252,254,252,233,244,1,255,252,247,208,139,108,36,48, 631 233,137,116,36,24,15,131,244,251,248,1,137,193,37,252,255,7,0,0,193,252,233,
629 139,139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139, 632 11,137,76,36,8,61,252,255,7,0,0,15,132,244,249,248,2,137,44,36,137,68,36,
630 20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199, 633 4,232,251,1,30,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,
631 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 634 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,184,1,8,
632 171,248,3,137,252,233,232,251,1,30,15,183,70,252,254,252,247,208,252,233, 635 0,0,252,233,244,2,248,5,137,252,233,232,251,1,31,15,183,70,252,254,252,233,
633 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158, 636 244,1,255,252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,
634 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,159,255, 637 137,149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,32,139,
635 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44, 638 149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,
636 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252, 639 182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,31,
637 242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219, 640 15,183,70,252,254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248,
638 4,36,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120, 641 139,173,233,139,4,135,252,233,244,159,255,252,247,208,139,106,252,248,139,
639 253,4,239,15,132,244,248,139,40,139,64,4,137,44,202,137,68,202,4,248,1,139, 642 173,233,139,4,135,252,233,244,160,255,15,182,252,236,15,182,192,129,124,253,
640 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189, 643 252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244,
641 233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15,182, 644 251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,
642 78,252,253,248,3,255,199,68,202,4,237,252,233,244,1,248,5,129,124,253,194, 645 193,255,221,4,194,219,20,36,219,4,36,255,15,133,244,36,59,133,233,15,131,
643 4,239,15,133,244,36,139,4,194,252,233,244,158,255,15,182,252,236,15,182,192, 646 244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,139,40,139,64,
644 252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252, 647 4,137,44,202,137,68,202,4,248,1,139,6,15,182,204,15,182,232,131,198,4,193,
645 234,248,158,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233, 648 232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,249,139,141,233,252,
646 239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244, 649 246,129,233,235,15,132,244,36,15,182,78,252,253,248,3,255,199,68,202,4,237,
647 251,15,182,70,252,253,139,41,139,73,4,137,44,194,137,76,194,4,248,2,255,139, 650 252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,
648 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,15,182, 651 244,159,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,
649 70,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133, 652 234,4,239,15,133,244,34,139,44,252,234,248,159,139,141,233,35,136,233,105,
650 244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244, 653 201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,
651 3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239, 654 244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,
652 15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233, 655 4,137,44,194,137,76,194,4,248,2,255,139,6,15,182,204,15,182,232,131,198,4,
653 129,120,253,4,239,15,132,244,248,139,40,139,64,4,137,44,202,137,68,202,4, 656 193,232,16,252,255,36,171,248,3,15,182,70,252,253,199,68,194,4,237,252,233,
654 248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, 657 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,
655 2,131,189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244, 658 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,
656 35,255,15,182,78,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182, 659 236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,
657 252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234, 660 133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,
658 129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59,133,233,15,131, 661 139,40,139,64,4,137,44,202,137,68,202,4,248,1,139,6,15,182,204,15,182,232,
659 244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246, 662 131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,249,139,
660 133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8, 663 141,233,252,246,129,233,235,15,132,244,35,255,15,182,78,252,253,248,3,199,
661 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131, 664 68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,
662 189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,15,132,244,39, 665 234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,
663 15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,39, 666 255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,
664 139,4,194,252,233,244,159,248,7,128,165,233,235,139,139,233,137,171,233,137, 667 4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,
665 141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,192,252, 668 202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,
666 247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,252,234, 669 232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,
667 248,159,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248,1, 670 246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,
668 129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4,239, 671 253,194,4,239,15,133,244,39,139,4,194,252,233,244,160,248,7,128,165,233,235,
669 15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,253,248,3,15,182, 672 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,
670 70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15,182, 673 182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,
671 232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244,2, 674 133,244,37,139,44,252,234,248,160,139,141,233,35,136,233,105,201,239,198,
672 137,76,36,16,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,16,252, 675 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,
673 233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,201, 676 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,
674 15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,16,199,68, 677 133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,
675 36,20,237,137,108,36,12,141,68,36,16,137,108,36,4,139,108,36,48,137,68,36, 678 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,
676 8,137,44,36,137,149,233,137,116,36,24,232,251,1,32,139,149,233,139,108,36, 679 189,233,0,15,132,244,2,137,76,36,16,139,141,233,252,246,129,233,235,15,132,
677 12,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,137, 680 244,37,139,76,36,16,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,
678 133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 681 255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,
679 239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133, 682 248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,36,16,137,108,36,
680 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244, 683 4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1,
681 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182, 684 33,139,149,233,139,108,36,12,137,193,252,233,244,2,248,7,128,165,233,235,
682 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1, 685 139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,
683 255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233, 686 192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,
684 244,1,248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78, 687 131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,
685 252,253,252,233,244,2,255,137,124,36,16,139,60,199,248,1,141,12,202,139,105, 688 246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,
686 252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,20,131,232,1,15, 689 8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131,
687 132,244,250,1,252,248,59,133,233,15,135,244,251,41,252,248,193,231,3,3,189, 690 189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,
688 233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1, 691 15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171,
689 15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193, 692 233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,36,16,139,60,
690 232,16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137,149,233,137,68, 693 199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,
691 36,8,137,44,36,137,116,36,24,232,251,1,33,139,149,233,15,182,78,252,253,252, 694 2,139,68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,233,15,135,244,251,
692 233,244,1,248,7,255,128,165,233,235,139,131,233,137,171,233,137,133,233,252, 695 41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,
693 233,244,2,255,3,68,36,20,255,129,124,253,202,4,239,139,44,202,15,133,244, 696 111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,
694 51,141,84,202,8,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182, 697 15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,
695 205,131,198,4,252,255,36,171,255,141,76,202,8,137,215,139,105,252,248,129, 698 36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,34,139,149,
696 121,253,252,252,239,15,133,244,28,248,52,139,114,252,252,252,247,198,237, 699 233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,
697 15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232,1,15,132,244,249, 700 137,171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,
698 248,2,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199,8,131,232,1,15, 701 4,239,139,44,202,15,133,244,52,141,84,202,8,137,114,252,252,139,181,233,139,
699 133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233,1,15,135,244,251, 702 14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,
700 248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171, 703 215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,53,139,114,
701 248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253,252,247,209,141, 704 252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,
702 12,202,139,121,252,248,139,191,233,139,191,233,252,233,244,4,248,7,129,252, 705 131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,131,193,8,137,111,
703 238,239,252,247,198,237,15,133,244,254,41,252,242,137,215,139,114,252,252, 706 4,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,
704 252,233,244,1,248,8,129,198,239,252,233,244,1,255,141,76,202,8,139,105,232, 707 189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,
705 139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137, 708 131,198,4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,
706 65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239, 709 252,253,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,
707 184,237,15,133,244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252, 710 233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,
708 233,15,182,205,131,198,4,252,255,36,171,255,137,124,36,16,137,92,36,20,139, 711 137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,
709 108,202,252,240,139,68,202,252,248,139,157,233,131,198,4,139,189,233,248, 712 141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,
710 1,57,216,15,131,244,251,129,124,253,199,4,239,15,132,244,250,255,252,242, 713 65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,
711 15,42,192,255,219,68,202,252,248,255,139,108,199,4,137,108,202,12,139,44, 714 65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,
712 199,137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,70,252,254, 715 139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,
713 141,180,253,134,233,248,3,139,92,36,20,139,124,36,16,139,6,15,182,204,15, 716 137,124,36,16,137,92,36,20,139,108,202,252,240,139,68,202,252,248,139,157,
714 182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,192,1,255,137,68,202, 717 233,131,198,4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,
715 252,248,255,252,233,244,1,248,5,41,216,248,6,59,133,233,15,135,244,3,105, 718 15,132,244,250,255,252,242,15,42,192,255,219,68,202,252,248,255,139,108,199,
716 252,248,239,3,189,233,129,191,233,239,15,132,244,253,141,92,24,1,139,175, 719 4,137,108,202,12,139,44,199,137,108,202,8,131,192,1,255,137,68,202,252,248,
717 233,139,135,233,137,44,202,137,68,202,4,139,175,233,139,135,233,137,108,202, 720 248,2,15,183,70,252,254,141,180,253,134,233,248,3,139,92,36,20,139,124,36,
718 8,137,68,202,12,137,92,202,252,248,252,233,244,2,248,7,255,131,192,1,252, 721 16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,
719 233,244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232, 722 131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,41,216,248,6,59,
720 129,124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15, 723 133,233,15,135,244,3,105,252,248,239,3,189,233,129,191,233,239,15,132,244,
721 133,244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202, 724 253,141,92,24,1,139,175,233,139,135,233,137,44,202,137,68,202,4,139,175,233,
722 252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 725 139,135,233,137,108,202,8,137,68,202,12,137,92,202,252,248,252,233,244,2,
723 255,36,171,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252,233, 726 248,7,255,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133,
724 244,1,255,15,182,252,236,15,182,192,137,124,36,16,141,188,253,194,233,141, 727 244,251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124,
725 12,202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248, 728 253,202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,180,
726 57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131,199,8, 729 253,134,233,199,68,202,252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,
727 137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199, 730 131,198,4,193,232,16,252,255,36,171,248,5,198,70,252,252,235,141,180,253,
728 65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,16,139,6,15,182, 731 134,233,198,6,235,252,233,244,1,255,15,182,252,236,15,182,192,137,124,36,
729 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199,68,36,20,1,0, 732 16,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132,244,251,
730 0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108, 733 141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,
731 36,20,139,108,36,48,1,200,59,133,233,15,135,244,253,248,6,255,139,71,252, 734 139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,
732 248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,215,15,130,244,6, 735 215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,
733 252,233,244,3,248,7,137,149,233,137,141,233,137,116,36,24,41,215,139,84,36, 736 3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
734 20,131,252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252, 737 36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,
735 233,244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20,252,247,198, 738 193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,
736 237,15,133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,139, 739 244,253,248,6,255,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,
737 44,15,137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15, 740 131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,
738 133,244,2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197,15,135,244,252, 741 137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1,0,139,
739 255,139,108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70, 742 149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139,114,252,
740 252,255,15,135,244,252,255,15,182,78,252,253,252,247,209,141,20,202,139,122, 743 252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13,137,215,131,232,
741 252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193, 744 1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137,111,252,
742 232,16,252,255,36,171,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194, 745 252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110,252,255,
743 252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233,252,247,197,237, 746 248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139,44,10,137,
744 15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209,252,237,129,229, 747 106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,
745 239,102,131,172,253,43,233,1,15,132,244,140,255,141,12,202,255,129,121,253, 748 252,247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,
746 4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129, 749 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199,71,252,252,
747 252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252, 750 237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,
748 242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244, 751 7,141,174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,
749 249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220, 752 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,141,
750 65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244, 753 255,141,12,202,255,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,
751 247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,244,248,141,180,253, 754 135,244,54,255,139,105,20,255,129,252,253,239,15,135,244,54,255,252,242,15,
752 134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,245,255,15,130,244, 755 16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,
753 248,141,180,253,134,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12, 756 15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,
754 202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137, 757 24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,
755 105,252,248,252,233,245,255,141,180,253,134,233,139,1,137,105,252,252,137, 758 247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,
756 65,252,248,255,139,139,233,139,4,129,139,128,233,139,108,36,48,137,147,233, 759 255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,
757 137,171,233,252,255,224,255,141,180,253,134,233,139,6,15,182,204,15,182,232, 760 252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,
758 131,198,4,193,232,16,252,255,36,171,255,137,252,245,209,252,237,129,229,239, 761 46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,
759 102,131,172,253,43,233,1,15,132,244,142,255,139,190,233,139,108,36,48,141, 762 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,
760 12,202,59,141,233,15,135,244,23,15,182,142,233,57,200,15,134,244,249,248, 763 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,139,
761 2,255,15,183,70,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131, 764 128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,253,
762 192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,139, 765 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
763 122,252,248,137,104,252,252,137,120,252,248,139,108,36,48,141,12,200,59,141, 766 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,143,
764 233,15,135,244,22,137,209,137,194,15,182,174,233,133,252,237,15,132,244,248, 767 255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,23,15,182,
765 248,1,131,193,8,57,209,15,131,244,249,139,121,252,248,137,56,139,121,252, 768 142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,
766 252,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248, 769 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,
767 2,255,139,190,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255, 770 255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,
768 36,171,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233, 771 248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,
769 244,2,255,139,106,252,248,139,189,233,139,108,36,48,141,68,194,252,248,137, 772 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
770 149,233,141,136,233,59,141,233,137,133,233,255,137,44,36,255,137,124,36,4, 773 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
771 137,44,36,255,15,135,244,21,199,131,233,237,255,252,255,215,255,252,255,147, 774 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,
772 233,255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139, 775 15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,131,
773 114,252,252,252,233,244,12,255,254,0 776 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,139,189,
777 233,139,108,36,48,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,
778 133,233,255,137,44,36,255,137,124,36,4,137,44,36,255,15,135,244,21,199,131,
779 233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,237,139,149,233,
780 141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,244,12,255,254,0
774}; 781};
775 782
776enum { 783enum {
@@ -810,6 +817,7 @@ enum {
810 GLOB_cont_condt, 817 GLOB_cont_condt,
811 GLOB_cont_condf, 818 GLOB_cont_condf,
812 GLOB_vmeta_equal, 819 GLOB_vmeta_equal,
820 GLOB_vmeta_equal_cd,
813 GLOB_vmeta_arith_vn, 821 GLOB_vmeta_arith_vn,
814 GLOB_vmeta_arith_nv, 822 GLOB_vmeta_arith_nv,
815 GLOB_vmeta_unm, 823 GLOB_vmeta_unm,
@@ -963,6 +971,7 @@ static const char *const globnames[] = {
963 "cont_condt", 971 "cont_condt",
964 "cont_condf", 972 "cont_condf",
965 "vmeta_equal", 973 "vmeta_equal",
974 "vmeta_equal_cd",
966 "vmeta_arith_vn", 975 "vmeta_arith_vn",
967 "vmeta_arith_nv", 976 "vmeta_arith_nv",
968 "vmeta_unm", 977 "vmeta_unm",
@@ -1085,6 +1094,7 @@ static const char *const extnames[] = {
1085 "lj_meta_tset", 1094 "lj_meta_tset",
1086 "lj_meta_comp", 1095 "lj_meta_comp",
1087 "lj_meta_equal", 1096 "lj_meta_equal",
1097 "lj_meta_equal_cd@8",
1088 "lj_meta_arith", 1098 "lj_meta_arith",
1089 "lj_meta_len@8", 1099 "lj_meta_len@8",
1090 "lj_meta_call", 1100 "lj_meta_call",
@@ -1160,428 +1170,432 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1160 } 1170 }
1161 dasm_put(Dst, 1057, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base)); 1171 dasm_put(Dst, 1057, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, 3+1, Dt1(->base), Dt1(->base));
1162 dasm_put(Dst, 1251, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1172 dasm_put(Dst, 1251, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1163 dasm_put(Dst, 1358, Dt1(->base), Dt1(->base), FRAME_CONT); 1173 dasm_put(Dst, 1358);
1164 dasm_put(Dst, 1482, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1174#if LJ_HASFFI
1165 dasm_put(Dst, 1663, 1+1, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 1175 dasm_put(Dst, 1373, Dt1(->base));
1176#endif
1177 dasm_put(Dst, 1404, Dt1(->base), Dt1(->base), FRAME_CONT, 2+1);
1178 dasm_put(Dst, 1524, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC, 1+1, LJ_TISTRUECOND);
1179 dasm_put(Dst, 1712, 1+1, ~LJ_TNUMX);
1166 if (cmov) { 1180 if (cmov) {
1167 dasm_put(Dst, 1765); 1181 dasm_put(Dst, 1799);
1168 } else { 1182 } else {
1169 dasm_put(Dst, 1769); 1183 dasm_put(Dst, 1803);
1170 } 1184 }
1171 dasm_put(Dst, 1778, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB); 1185 dasm_put(Dst, 1812, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(gcroot)+4*(GCROOT_MMNAME+MM_metatable), LJ_TTAB);
1172 dasm_put(Dst, 1861, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1186 dasm_put(Dst, 1895, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL);
1173 dasm_put(Dst, 1919, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1); 1187 dasm_put(Dst, 1953, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1);
1174 dasm_put(Dst, 1982, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1188 dasm_put(Dst, 2016, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1175 dasm_put(Dst, 2054, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1189 dasm_put(Dst, 2088, 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1176 if (sse) { 1190 if (sse) {
1177 dasm_put(Dst, 2147); 1191 dasm_put(Dst, 2181);
1178 } else { 1192 } else {
1179 dasm_put(Dst, 2157); 1193 dasm_put(Dst, 2191);
1180 } 1194 }
1181 dasm_put(Dst, 2164, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1195 dasm_put(Dst, 2198, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1182 dasm_put(Dst, 2230, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1196 dasm_put(Dst, 2264, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1183 dasm_put(Dst, 2297, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1197 dasm_put(Dst, 2331, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1184 dasm_put(Dst, 2402, LJ_TTAB); 1198 dasm_put(Dst, 2436, LJ_TTAB);
1185#ifdef LUAJIT_ENABLE_LUA52COMPAT 1199#ifdef LUAJIT_ENABLE_LUA52COMPAT
1186 dasm_put(Dst, 2414, Dt6(->metatable)); 1200 dasm_put(Dst, 2448, Dt6(->metatable));
1187#endif 1201#endif
1188 dasm_put(Dst, 2423, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1202 dasm_put(Dst, 2457, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1189 if (sse) { 1203 if (sse) {
1190 dasm_put(Dst, 2486); 1204 dasm_put(Dst, 2520);
1191 } else { 1205 } else {
1192 dasm_put(Dst, 2525); 1206 dasm_put(Dst, 2559);
1193 } 1207 }
1194 dasm_put(Dst, 2543, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1208 dasm_put(Dst, 2577, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1195 dasm_put(Dst, 2624, 1+1, LJ_TTAB); 1209 dasm_put(Dst, 2658, 1+1, LJ_TTAB);
1196#ifdef LUAJIT_ENABLE_LUA52COMPAT 1210#ifdef LUAJIT_ENABLE_LUA52COMPAT
1197 dasm_put(Dst, 2414, Dt6(->metatable)); 1211 dasm_put(Dst, 2448, Dt6(->metatable));
1198#endif 1212#endif
1199 dasm_put(Dst, 2644, Dt8(->upvalue[0]), LJ_TFUNC); 1213 dasm_put(Dst, 2678, Dt8(->upvalue[0]), LJ_TFUNC);
1200 if (sse) { 1214 if (sse) {
1201 dasm_put(Dst, 2665); 1215 dasm_put(Dst, 2699);
1202 } else { 1216 } else {
1203 dasm_put(Dst, 2675); 1217 dasm_put(Dst, 2709);
1204 } 1218 }
1205 dasm_put(Dst, 2682, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1219 dasm_put(Dst, 2716, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1206 dasm_put(Dst, 2746, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1220 dasm_put(Dst, 2780, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1207 dasm_put(Dst, 2834, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1221 dasm_put(Dst, 2868, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1208 dasm_put(Dst, 2935, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1222 dasm_put(Dst, 2969, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1209 dasm_put(Dst, 3049, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1223 dasm_put(Dst, 3083, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1210 dasm_put(Dst, 3147, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1224 dasm_put(Dst, 3181, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1211 dasm_put(Dst, 3213, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1225 dasm_put(Dst, 3247, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1212 dasm_put(Dst, 3314, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1226 dasm_put(Dst, 3348, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1213 dasm_put(Dst, 3427, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1227 dasm_put(Dst, 3461, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1214 if (sse) { 1228 if (sse) {
1215 dasm_put(Dst, 3453, 1+1, LJ_TISNUM); 1229 dasm_put(Dst, 3487, 1+1, LJ_TISNUM);
1216 } else { 1230 } else {
1217 dasm_put(Dst, 3522, 1+1, LJ_TISNUM); 1231 dasm_put(Dst, 3556, 1+1, LJ_TISNUM);
1218 } 1232 }
1219 dasm_put(Dst, 3558, 1+1, FRAME_TYPE, LJ_TNIL); 1233 dasm_put(Dst, 3592, 1+1, FRAME_TYPE, LJ_TNIL);
1220 if (sse) { 1234 if (sse) {
1221 dasm_put(Dst, 3648, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1235 dasm_put(Dst, 3682, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1222 dasm_put(Dst, 3710, 1+1, LJ_TISNUM); 1236 dasm_put(Dst, 3744, 1+1, LJ_TISNUM);
1223 } else { 1237 } else {
1224 dasm_put(Dst, 3740, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1238 dasm_put(Dst, 3774, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1225 dasm_put(Dst, 3799, 1+1, LJ_TISNUM); 1239 dasm_put(Dst, 3833, 1+1, LJ_TISNUM);
1226 } 1240 }
1227 dasm_put(Dst, 3826, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1241 dasm_put(Dst, 3860, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1228 dasm_put(Dst, 3895, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1242 dasm_put(Dst, 3929, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1229 dasm_put(Dst, 3952, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1243 dasm_put(Dst, 3986, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1230 dasm_put(Dst, 4015, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1244 dasm_put(Dst, 4049, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1231 dasm_put(Dst, 4105); 1245 dasm_put(Dst, 4139);
1232 if (sse) { 1246 if (sse) {
1233 dasm_put(Dst, 4117, 1+1, LJ_TISNUM); 1247 dasm_put(Dst, 4151, 1+1, LJ_TISNUM);
1234 } else { 1248 } else {
1235 dasm_put(Dst, 4148, 1+1, LJ_TISNUM); 1249 dasm_put(Dst, 4182, 1+1, LJ_TISNUM);
1236 } 1250 }
1237 dasm_put(Dst, 4173); 1251 dasm_put(Dst, 4207);
1238 if (sse) { 1252 if (sse) {
1239 dasm_put(Dst, 4187, 1+1, LJ_TISNUM); 1253 dasm_put(Dst, 4221, 1+1, LJ_TISNUM);
1240 } else { 1254 } else {
1241 dasm_put(Dst, 4218, 1+1, LJ_TISNUM); 1255 dasm_put(Dst, 4252, 1+1, LJ_TISNUM);
1242 } 1256 }
1243 dasm_put(Dst, 4243); 1257 dasm_put(Dst, 4277);
1244 if (sse) { 1258 if (sse) {
1245 dasm_put(Dst, 4257, 1+1, LJ_TISNUM); 1259 dasm_put(Dst, 4291, 1+1, LJ_TISNUM);
1246 } else { 1260 } else {
1247 dasm_put(Dst, 4288, 1+1, LJ_TISNUM); 1261 dasm_put(Dst, 4322, 1+1, LJ_TISNUM);
1248 } 1262 }
1249 dasm_put(Dst, 4313); 1263 dasm_put(Dst, 4347);
1250 if (sse) { 1264 if (sse) {
1251 dasm_put(Dst, 4329, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1265 dasm_put(Dst, 4363, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1252 } else { 1266 } else {
1253 dasm_put(Dst, 4368, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1267 dasm_put(Dst, 4402, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1254 } 1268 }
1255 dasm_put(Dst, 4401, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1269 dasm_put(Dst, 4435, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1256 dasm_put(Dst, 4466, 1+1, LJ_TISNUM); 1270 dasm_put(Dst, 4500, 1+1, LJ_TISNUM);
1257 if (sse) { 1271 if (sse) {
1258 dasm_put(Dst, 4565); 1272 dasm_put(Dst, 4599);
1259 } else { 1273 } else {
1260 dasm_put(Dst, 4571); 1274 dasm_put(Dst, 4605);
1261 } 1275 }
1262 dasm_put(Dst, 4580); 1276 dasm_put(Dst, 4614);
1263 if (sse) { 1277 if (sse) {
1264 dasm_put(Dst, 4605); 1278 dasm_put(Dst, 4639);
1265 } else { 1279 } else {
1266 dasm_put(Dst, 4611); 1280 dasm_put(Dst, 4645);
1267 } 1281 }
1268 dasm_put(Dst, 4614, 1+2); 1282 dasm_put(Dst, 4648, 1+2);
1269 if (sse) { 1283 if (sse) {
1270 dasm_put(Dst, 4623); 1284 dasm_put(Dst, 4657);
1271 } else { 1285 } else {
1272 dasm_put(Dst, 4631); 1286 dasm_put(Dst, 4665);
1273 } 1287 }
1274 dasm_put(Dst, 4639); 1288 dasm_put(Dst, 4673);
1275 if (sse) { 1289 if (sse) {
1276 dasm_put(Dst, 4642); 1290 dasm_put(Dst, 4676);
1277 } else { 1291 } else {
1278 dasm_put(Dst, 4674); 1292 dasm_put(Dst, 4708);
1279 } 1293 }
1280 dasm_put(Dst, 4693); 1294 dasm_put(Dst, 4727);
1281 if (sse) { 1295 if (sse) {
1282 dasm_put(Dst, 4709, 1+1, LJ_TISNUM); 1296 dasm_put(Dst, 4743, 1+1, LJ_TISNUM);
1283 } else { 1297 } else {
1284 dasm_put(Dst, 4734, 1+1, LJ_TISNUM); 1298 dasm_put(Dst, 4768, 1+1, LJ_TISNUM);
1285 } 1299 }
1286 dasm_put(Dst, 4756); 1300 dasm_put(Dst, 4790);
1287 if (sse) { 1301 if (sse) {
1288 dasm_put(Dst, 4778); 1302 dasm_put(Dst, 4812);
1289 } else { 1303 } else {
1290 dasm_put(Dst, 4804); 1304 dasm_put(Dst, 4838);
1291 } 1305 }
1292 dasm_put(Dst, 4821, 1+2); 1306 dasm_put(Dst, 4855, 1+2);
1293 if (sse) { 1307 if (sse) {
1294 dasm_put(Dst, 4861); 1308 dasm_put(Dst, 4895);
1295 } else { 1309 } else {
1296 dasm_put(Dst, 4869); 1310 dasm_put(Dst, 4903);
1297 } 1311 }
1298 dasm_put(Dst, 4879, 2+1, LJ_TISNUM, LJ_TISNUM); 1312 dasm_put(Dst, 4913, 2+1, LJ_TISNUM, LJ_TISNUM);
1299 if (sse) { 1313 if (sse) {
1300 dasm_put(Dst, 4931, 2+1, LJ_TISNUM, LJ_TISNUM); 1314 dasm_put(Dst, 4965, 2+1, LJ_TISNUM, LJ_TISNUM);
1301 } else { 1315 } else {
1302 dasm_put(Dst, 4978, 2+1, LJ_TISNUM, LJ_TISNUM); 1316 dasm_put(Dst, 5012, 2+1, LJ_TISNUM, LJ_TISNUM);
1303 } 1317 }
1304 if (sse) { 1318 if (sse) {
1305 dasm_put(Dst, 5019, 1+1, LJ_TISNUM, LJ_TISNUM); 1319 dasm_put(Dst, 5053, 1+1, LJ_TISNUM, LJ_TISNUM);
1306 } else { 1320 } else {
1307 dasm_put(Dst, 5090, 1+1, LJ_TISNUM, LJ_TISNUM); 1321 dasm_put(Dst, 5124, 1+1, LJ_TISNUM, LJ_TISNUM);
1308 if (cmov) { 1322 if (cmov) {
1309 dasm_put(Dst, 5143); 1323 dasm_put(Dst, 5177);
1310 } else { 1324 } else {
1311 dasm_put(Dst, 5151); 1325 dasm_put(Dst, 5185);
1312 } 1326 }
1313 dasm_put(Dst, 5082); 1327 dasm_put(Dst, 5116);
1314 } 1328 }
1315 if (sse) { 1329 if (sse) {
1316 dasm_put(Dst, 5172, 1+1, LJ_TISNUM, LJ_TISNUM); 1330 dasm_put(Dst, 5206, 1+1, LJ_TISNUM, LJ_TISNUM);
1317 } else { 1331 } else {
1318 dasm_put(Dst, 5243, 1+1, LJ_TISNUM, LJ_TISNUM); 1332 dasm_put(Dst, 5277, 1+1, LJ_TISNUM, LJ_TISNUM);
1319 if (cmov) { 1333 if (cmov) {
1320 dasm_put(Dst, 5296); 1334 dasm_put(Dst, 5330);
1321 } else { 1335 } else {
1322 dasm_put(Dst, 5304); 1336 dasm_put(Dst, 5338);
1323 } 1337 }
1324 dasm_put(Dst, 5082); 1338 dasm_put(Dst, 5116);
1325 } 1339 }
1326 if (!sse) { 1340 if (!sse) {
1327 dasm_put(Dst, 5325); 1341 dasm_put(Dst, 5359);
1328 } 1342 }
1329 dasm_put(Dst, 5334, 1+1, LJ_TSTR); 1343 dasm_put(Dst, 5368, 1+1, LJ_TSTR);
1330 if (sse) { 1344 if (sse) {
1331 dasm_put(Dst, 5356, Dt5(->len)); 1345 dasm_put(Dst, 5390, Dt5(->len));
1332 } else { 1346 } else {
1333 dasm_put(Dst, 5367, Dt5(->len)); 1347 dasm_put(Dst, 5401, Dt5(->len));
1334 } 1348 }
1335 dasm_put(Dst, 5375, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1349 dasm_put(Dst, 5409, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1336 if (sse) { 1350 if (sse) {
1337 dasm_put(Dst, 5413); 1351 dasm_put(Dst, 5447);
1338 } else { 1352 } else {
1339 dasm_put(Dst, 5423); 1353 dasm_put(Dst, 5457);
1340 } 1354 }
1341 dasm_put(Dst, 5436, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1355 dasm_put(Dst, 5470, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1342 if (sse) { 1356 if (sse) {
1343 dasm_put(Dst, 5471); 1357 dasm_put(Dst, 5505);
1344 } else { 1358 } else {
1345 dasm_put(Dst, 5493); 1359 dasm_put(Dst, 5527);
1346 } 1360 }
1347 dasm_put(Dst, 5513, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1361 dasm_put(Dst, 5547, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1348 dasm_put(Dst, 2142); 1362 dasm_put(Dst, 2176);
1349 if (sse) { 1363 if (sse) {
1350 dasm_put(Dst, 5616); 1364 dasm_put(Dst, 5650);
1351 } else { 1365 } else {
1352 dasm_put(Dst, 5627); 1366 dasm_put(Dst, 5661);
1353 } 1367 }
1354 dasm_put(Dst, 5635, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1368 dasm_put(Dst, 5669, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1355 if (sse) { 1369 if (sse) {
1356 dasm_put(Dst, 5665); 1370 dasm_put(Dst, 5699);
1357 } else { 1371 } else {
1358 dasm_put(Dst, 5672); 1372 dasm_put(Dst, 5706);
1359 } 1373 }
1360 dasm_put(Dst, 5684, sizeof(GCstr)-1); 1374 dasm_put(Dst, 5718, sizeof(GCstr)-1);
1361 dasm_put(Dst, 5759, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1375 dasm_put(Dst, 5793, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1362 dasm_put(Dst, 5818, LJ_TSTR, LJ_TISNUM); 1376 dasm_put(Dst, 5852, LJ_TSTR, LJ_TISNUM);
1363 if (sse) { 1377 if (sse) {
1364 dasm_put(Dst, 5839); 1378 dasm_put(Dst, 5873);
1365 } else { 1379 } else {
1366 dasm_put(Dst, 5846); 1380 dasm_put(Dst, 5880);
1367 } 1381 }
1368 dasm_put(Dst, 5858, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1382 dasm_put(Dst, 5892, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1369 dasm_put(Dst, 5923, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1383 dasm_put(Dst, 5957, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1370 dasm_put(Dst, 5986, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1384 dasm_put(Dst, 6020, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1371 dasm_put(Dst, 6057, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1385 dasm_put(Dst, 6091, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1372 dasm_put(Dst, 6142, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1386 dasm_put(Dst, 6176, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1373 dasm_put(Dst, 6212, 1+1, LJ_TTAB); 1387 dasm_put(Dst, 6246, 1+1, LJ_TTAB);
1374 if (sse) { 1388 if (sse) {
1375 dasm_put(Dst, 6280); 1389 dasm_put(Dst, 6314);
1376 } else { 1390 } else {
1377 dasm_put(Dst, 6290); 1391 dasm_put(Dst, 6324);
1378 } 1392 }
1379 if (sse) { 1393 if (sse) {
1380 dasm_put(Dst, 6301, 1+1, LJ_TISNUM); 1394 dasm_put(Dst, 6335, 1+1, LJ_TISNUM);
1381 } else { 1395 } else {
1382 dasm_put(Dst, 6358, 1+1, LJ_TISNUM); 1396 dasm_put(Dst, 6392, 1+1, LJ_TISNUM);
1383 } 1397 }
1384 if (sse) { 1398 if (sse) {
1385 dasm_put(Dst, 6402, 1+1, LJ_TISNUM); 1399 dasm_put(Dst, 6436, 1+1, LJ_TISNUM);
1386 } else { 1400 } else {
1387 dasm_put(Dst, 6450, 1+1, LJ_TISNUM); 1401 dasm_put(Dst, 6484, 1+1, LJ_TISNUM);
1388 } 1402 }
1389 dasm_put(Dst, 6490, LJ_TISNUM); 1403 dasm_put(Dst, 6524, LJ_TISNUM);
1390 if (sse) { 1404 if (sse) {
1391 dasm_put(Dst, 6517); 1405 dasm_put(Dst, 6551);
1392 } else { 1406 } else {
1393 dasm_put(Dst, 6534); 1407 dasm_put(Dst, 6568);
1394 } 1408 }
1395 dasm_put(Dst, 6547); 1409 dasm_put(Dst, 6581);
1396 if (sse) { 1410 if (sse) {
1397 dasm_put(Dst, 6555, 1+1, LJ_TISNUM); 1411 dasm_put(Dst, 6589, 1+1, LJ_TISNUM);
1398 } else { 1412 } else {
1399 dasm_put(Dst, 6603, 1+1, LJ_TISNUM); 1413 dasm_put(Dst, 6637, 1+1, LJ_TISNUM);
1400 } 1414 }
1401 dasm_put(Dst, 6490, LJ_TISNUM); 1415 dasm_put(Dst, 6524, LJ_TISNUM);
1402 if (sse) { 1416 if (sse) {
1403 dasm_put(Dst, 6643); 1417 dasm_put(Dst, 6677);
1404 } else { 1418 } else {
1405 dasm_put(Dst, 6660); 1419 dasm_put(Dst, 6694);
1406 } 1420 }
1407 dasm_put(Dst, 6547); 1421 dasm_put(Dst, 6581);
1408 if (sse) { 1422 if (sse) {
1409 dasm_put(Dst, 6673, 1+1, LJ_TISNUM); 1423 dasm_put(Dst, 6707, 1+1, LJ_TISNUM);
1410 } else { 1424 } else {
1411 dasm_put(Dst, 6721, 1+1, LJ_TISNUM); 1425 dasm_put(Dst, 6755, 1+1, LJ_TISNUM);
1412 } 1426 }
1413 dasm_put(Dst, 6490, LJ_TISNUM); 1427 dasm_put(Dst, 6524, LJ_TISNUM);
1414 if (sse) { 1428 if (sse) {
1415 dasm_put(Dst, 6761); 1429 dasm_put(Dst, 6795);
1416 } else { 1430 } else {
1417 dasm_put(Dst, 6778); 1431 dasm_put(Dst, 6812);
1418 } 1432 }
1419 dasm_put(Dst, 6547); 1433 dasm_put(Dst, 6581);
1420 if (sse) { 1434 if (sse) {
1421 dasm_put(Dst, 6791, 1+1, LJ_TISNUM); 1435 dasm_put(Dst, 6825, 1+1, LJ_TISNUM);
1422 } else { 1436 } else {
1423 dasm_put(Dst, 6839, 1+1, LJ_TISNUM); 1437 dasm_put(Dst, 6873, 1+1, LJ_TISNUM);
1424 } 1438 }
1425 dasm_put(Dst, 6879); 1439 dasm_put(Dst, 6913);
1426 if (sse) { 1440 if (sse) {
1427 dasm_put(Dst, 6886, 1+1, LJ_TISNUM); 1441 dasm_put(Dst, 6920, 1+1, LJ_TISNUM);
1428 } else { 1442 } else {
1429 dasm_put(Dst, 6934, 1+1, LJ_TISNUM); 1443 dasm_put(Dst, 6968, 1+1, LJ_TISNUM);
1430 } 1444 }
1431 dasm_put(Dst, 6974); 1445 dasm_put(Dst, 7008);
1432 if (sse) { 1446 if (sse) {
1433 dasm_put(Dst, 6978); 1447 dasm_put(Dst, 7012);
1434 } else { 1448 } else {
1435 dasm_put(Dst, 6990); 1449 dasm_put(Dst, 7024);
1436 } 1450 }
1437 dasm_put(Dst, 7003); 1451 dasm_put(Dst, 7037);
1438 if (sse) { 1452 if (sse) {
1439 dasm_put(Dst, 7014, 2+1, LJ_TISNUM, LJ_TISNUM); 1453 dasm_put(Dst, 7048, 2+1, LJ_TISNUM, LJ_TISNUM);
1440 } else { 1454 } else {
1441 dasm_put(Dst, 7088, 2+1, LJ_TISNUM, LJ_TISNUM); 1455 dasm_put(Dst, 7122, 2+1, LJ_TISNUM, LJ_TISNUM);
1442 } 1456 }
1443 dasm_put(Dst, 7154); 1457 dasm_put(Dst, 7188);
1444 if (sse) { 1458 if (sse) {
1445 dasm_put(Dst, 7163, 2+1, LJ_TISNUM, LJ_TISNUM); 1459 dasm_put(Dst, 7197, 2+1, LJ_TISNUM, LJ_TISNUM);
1446 } else { 1460 } else {
1447 dasm_put(Dst, 7237, 2+1, LJ_TISNUM, LJ_TISNUM); 1461 dasm_put(Dst, 7271, 2+1, LJ_TISNUM, LJ_TISNUM);
1448 } 1462 }
1449 dasm_put(Dst, 7303); 1463 dasm_put(Dst, 7337);
1450 if (sse) { 1464 if (sse) {
1451 dasm_put(Dst, 7313, 2+1, LJ_TISNUM, LJ_TISNUM); 1465 dasm_put(Dst, 7347, 2+1, LJ_TISNUM, LJ_TISNUM);
1452 } else { 1466 } else {
1453 dasm_put(Dst, 7387, 2+1, LJ_TISNUM, LJ_TISNUM); 1467 dasm_put(Dst, 7421, 2+1, LJ_TISNUM, LJ_TISNUM);
1454 } 1468 }
1455 dasm_put(Dst, 7453); 1469 dasm_put(Dst, 7487);
1456 if (sse) { 1470 if (sse) {
1457 dasm_put(Dst, 7463, 2+1, LJ_TISNUM, LJ_TISNUM); 1471 dasm_put(Dst, 7497, 2+1, LJ_TISNUM, LJ_TISNUM);
1458 } else { 1472 } else {
1459 dasm_put(Dst, 7537, 2+1, LJ_TISNUM, LJ_TISNUM); 1473 dasm_put(Dst, 7571, 2+1, LJ_TISNUM, LJ_TISNUM);
1460 } 1474 }
1461 dasm_put(Dst, 7603); 1475 dasm_put(Dst, 7637);
1462 if (sse) { 1476 if (sse) {
1463 dasm_put(Dst, 7612, 2+1, LJ_TISNUM, LJ_TISNUM); 1477 dasm_put(Dst, 7646, 2+1, LJ_TISNUM, LJ_TISNUM);
1464 } else { 1478 } else {
1465 dasm_put(Dst, 7686, 2+1, LJ_TISNUM, LJ_TISNUM); 1479 dasm_put(Dst, 7720, 2+1, LJ_TISNUM, LJ_TISNUM);
1466 } 1480 }
1467 dasm_put(Dst, 7752, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1481 dasm_put(Dst, 7786, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1468 dasm_put(Dst, 7830, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1482 dasm_put(Dst, 7864, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1469 dasm_put(Dst, 7954, Dt1(->top), Dt1(->base), Dt1(->top)); 1483 dasm_put(Dst, 7988, Dt1(->top), Dt1(->base), Dt1(->top));
1470#if LJ_HASJIT 1484#if LJ_HASJIT
1471 dasm_put(Dst, 7992, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1485 dasm_put(Dst, 8026, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1472#endif 1486#endif
1473 dasm_put(Dst, 8023, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1487 dasm_put(Dst, 8057, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1474 dasm_put(Dst, 8074, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1488 dasm_put(Dst, 8108, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1475#if LJ_HASJIT 1489#if LJ_HASJIT
1476 dasm_put(Dst, 8140, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1490 dasm_put(Dst, 8174, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1477#endif 1491#endif
1478 dasm_put(Dst, 8186); 1492 dasm_put(Dst, 8220);
1479#if LJ_HASJIT 1493#if LJ_HASJIT
1480 dasm_put(Dst, 8018); 1494 dasm_put(Dst, 8052);
1481#endif 1495#endif
1482 dasm_put(Dst, 8193); 1496 dasm_put(Dst, 8227);
1483#if LJ_HASJIT 1497#if LJ_HASJIT
1484 dasm_put(Dst, 8196); 1498 dasm_put(Dst, 8230);
1485#endif 1499#endif
1486 dasm_put(Dst, 8206, Dt1(->base), Dt1(->top)); 1500 dasm_put(Dst, 8240, Dt1(->base), Dt1(->top));
1487#if LJ_HASJIT 1501#if LJ_HASJIT
1488 dasm_put(Dst, 8240); 1502 dasm_put(Dst, 8274);
1489#endif 1503#endif
1490 dasm_put(Dst, 8245, Dt1(->base), Dt1(->top)); 1504 dasm_put(Dst, 8279, Dt1(->base), Dt1(->top));
1491#if LJ_HASJIT 1505#if LJ_HASJIT
1492 dasm_put(Dst, 8274, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1506 dasm_put(Dst, 8308, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1493#endif 1507#endif
1494 dasm_put(Dst, 8417); 1508 dasm_put(Dst, 8451);
1495#if LJ_HASJIT 1509#if LJ_HASJIT
1496 dasm_put(Dst, 8420, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1510 dasm_put(Dst, 8454, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1497#endif 1511#endif
1498 dasm_put(Dst, 8498); 1512 dasm_put(Dst, 8532);
1499 if (!sse) { 1513 if (!sse) {
1500 dasm_put(Dst, 8501); 1514 dasm_put(Dst, 8535);
1501 } 1515 }
1502 dasm_put(Dst, 8546); 1516 dasm_put(Dst, 8580);
1503 if (!sse) { 1517 if (!sse) {
1504 dasm_put(Dst, 8648); 1518 dasm_put(Dst, 8682);
1505 } 1519 }
1506 dasm_put(Dst, 8693); 1520 dasm_put(Dst, 8727);
1507 if (!sse) { 1521 if (!sse) {
1508 dasm_put(Dst, 8795); 1522 dasm_put(Dst, 8829);
1509 } 1523 }
1510 dasm_put(Dst, 8834); 1524 dasm_put(Dst, 8868);
1511 if (sse) { 1525 if (sse) {
1512 dasm_put(Dst, 8939); 1526 dasm_put(Dst, 8973);
1513 } else { 1527 } else {
1514 dasm_put(Dst, 9069); 1528 dasm_put(Dst, 9103);
1515 } 1529 }
1516 dasm_put(Dst, 9116); 1530 dasm_put(Dst, 9150);
1517 if (!sse) { 1531 if (!sse) {
1518 dasm_put(Dst, 9190); 1532 dasm_put(Dst, 9224);
1519 if (cmov) { 1533 if (cmov) {
1520 dasm_put(Dst, 9201); 1534 dasm_put(Dst, 9235);
1521 } else { 1535 } else {
1522 dasm_put(Dst, 9205); 1536 dasm_put(Dst, 9239);
1523 } 1537 }
1524 dasm_put(Dst, 9212); 1538 dasm_put(Dst, 9246);
1525 dasm_put(Dst, 9286); 1539 dasm_put(Dst, 9320);
1526 dasm_put(Dst, 9386); 1540 dasm_put(Dst, 9420);
1527 if (cmov) { 1541 if (cmov) {
1528 dasm_put(Dst, 9389); 1542 dasm_put(Dst, 9423);
1529 } else { 1543 } else {
1530 dasm_put(Dst, 9393); 1544 dasm_put(Dst, 9427);
1531 } 1545 }
1532 dasm_put(Dst, 9400); 1546 dasm_put(Dst, 9434);
1533 if (cmov) { 1547 if (cmov) {
1534 dasm_put(Dst, 9201); 1548 dasm_put(Dst, 9235);
1535 } else { 1549 } else {
1536 dasm_put(Dst, 9205); 1550 dasm_put(Dst, 9239);
1537 } 1551 }
1538 dasm_put(Dst, 9418); 1552 dasm_put(Dst, 9452);
1539 } else { 1553 } else {
1540 dasm_put(Dst, 9497); 1554 dasm_put(Dst, 9531);
1541 } 1555 }
1542 dasm_put(Dst, 9500); 1556 dasm_put(Dst, 9534);
1543 dasm_put(Dst, 9585); 1557 dasm_put(Dst, 9619);
1544 dasm_put(Dst, 9716); 1558 dasm_put(Dst, 9750);
1545 dasm_put(Dst, 9915); 1559 dasm_put(Dst, 9949);
1546#if LJ_HASJIT 1560#if LJ_HASJIT
1547 if (sse) { 1561 if (sse) {
1548 dasm_put(Dst, 9938); 1562 dasm_put(Dst, 9972);
1549 dasm_put(Dst, 9995); 1563 dasm_put(Dst, 10029);
1550 dasm_put(Dst, 10086); 1564 dasm_put(Dst, 10120);
1551 } else { 1565 } else {
1552 dasm_put(Dst, 10128); 1566 dasm_put(Dst, 10162);
1553 dasm_put(Dst, 10220); 1567 dasm_put(Dst, 10254);
1554 } 1568 }
1555 dasm_put(Dst, 10266); 1569 dasm_put(Dst, 10300);
1556#endif 1570#endif
1557 dasm_put(Dst, 10270); 1571 dasm_put(Dst, 10304);
1558 if (sse) { 1572 if (sse) {
1559 dasm_put(Dst, 10273); 1573 dasm_put(Dst, 10307);
1560 dasm_put(Dst, 10378); 1574 dasm_put(Dst, 10412);
1561 dasm_put(Dst, 10461); 1575 dasm_put(Dst, 10495);
1562 } else { 1576 } else {
1563 dasm_put(Dst, 10533); 1577 dasm_put(Dst, 10567);
1564 dasm_put(Dst, 10616); 1578 dasm_put(Dst, 10650);
1565 if (cmov) { 1579 if (cmov) {
1566 dasm_put(Dst, 10671); 1580 dasm_put(Dst, 10705);
1567 } else { 1581 } else {
1568 dasm_put(Dst, 10690); 1582 dasm_put(Dst, 10724);
1569 } 1583 }
1570 dasm_put(Dst, 10266); 1584 dasm_put(Dst, 10300);
1571 } 1585 }
1572 dasm_put(Dst, 10731); 1586 dasm_put(Dst, 10765);
1573#if LJ_HASFFI 1587#if LJ_HASFFI
1574#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V) 1588#define DtE(_V) (int)(ptrdiff_t)&(((CCallState *)0)_V)
1575 dasm_put(Dst, 10787, DtE(->spadj)); 1589 dasm_put(Dst, 10821, DtE(->spadj));
1576#if LJ_TARGET_WINDOWS 1590#if LJ_TARGET_WINDOWS
1577 dasm_put(Dst, 10797, DtE(->spadj)); 1591 dasm_put(Dst, 10831, DtE(->spadj));
1578#endif 1592#endif
1579 dasm_put(Dst, 10801, DtE(->nsp), offsetof(CCallState, stack), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->resx87), DtE(->fpr[0].d[0])); 1593 dasm_put(Dst, 10835, DtE(->nsp), offsetof(CCallState, stack), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->func), DtE(->gpr[0]), DtE(->gpr[1]), DtE(->resx87), DtE(->fpr[0].d[0]));
1580 dasm_put(Dst, 10871, DtE(->fpr[0].f[0])); 1594 dasm_put(Dst, 10905, DtE(->fpr[0].f[0]));
1581#if LJ_TARGET_WINDOWS 1595#if LJ_TARGET_WINDOWS
1582 dasm_put(Dst, 10877, DtE(->spadj)); 1596 dasm_put(Dst, 10911, DtE(->spadj));
1583#endif 1597#endif
1584 dasm_put(Dst, 10881); 1598 dasm_put(Dst, 10915);
1585#endif 1599#endif
1586} 1600}
1587 1601
@@ -1589,7 +1603,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1589static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1603static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1590{ 1604{
1591 int vk = 0; 1605 int vk = 0;
1592 dasm_put(Dst, 10888, defop); 1606 dasm_put(Dst, 10922, defop);
1593 1607
1594 switch (op) { 1608 switch (op) {
1595 1609
@@ -1598,639 +1612,657 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1598 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1612 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1599 1613
1600 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1614 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1601 dasm_put(Dst, 10890, LJ_TISNUM, LJ_TISNUM); 1615 dasm_put(Dst, 10924, LJ_TISNUM, LJ_TISNUM);
1602 if (sse) { 1616 if (sse) {
1603 dasm_put(Dst, 10911); 1617 dasm_put(Dst, 10945);
1604 } else { 1618 } else {
1605 dasm_put(Dst, 10926); 1619 dasm_put(Dst, 10960);
1606 if (cmov) { 1620 if (cmov) {
1607 dasm_put(Dst, 10936); 1621 dasm_put(Dst, 10970);
1608 } else { 1622 } else {
1609 dasm_put(Dst, 10942); 1623 dasm_put(Dst, 10976);
1610 } 1624 }
1611 } 1625 }
1612 switch (op) { 1626 switch (op) {
1613 case BC_ISLT: 1627 case BC_ISLT:
1614 dasm_put(Dst, 10949); 1628 dasm_put(Dst, 10983);
1615 break; 1629 break;
1616 case BC_ISGE: 1630 case BC_ISGE:
1617 dasm_put(Dst, 10081); 1631 dasm_put(Dst, 10115);
1618 break; 1632 break;
1619 case BC_ISLE: 1633 case BC_ISLE:
1620 dasm_put(Dst, 6207); 1634 dasm_put(Dst, 6241);
1621 break; 1635 break;
1622 case BC_ISGT: 1636 case BC_ISGT:
1623 dasm_put(Dst, 10954); 1637 dasm_put(Dst, 10988);
1624 break; 1638 break;
1625 default: break; /* Shut up GCC. */ 1639 default: break; /* Shut up GCC. */
1626 } 1640 }
1627 dasm_put(Dst, 10959, -BCBIAS_J*4); 1641 dasm_put(Dst, 10993, -BCBIAS_J*4);
1628 break; 1642 break;
1629 1643
1630 case BC_ISEQV: case BC_ISNEV: 1644 case BC_ISEQV: case BC_ISNEV:
1631 vk = op == BC_ISEQV; 1645 vk = op == BC_ISEQV;
1632 dasm_put(Dst, 10992, LJ_TISNUM, LJ_TISNUM); 1646 dasm_put(Dst, 11026, LJ_TISNUM, LJ_TISNUM);
1633 if (sse) { 1647 if (sse) {
1634 dasm_put(Dst, 11018); 1648 dasm_put(Dst, 11052);
1635 } else { 1649 } else {
1636 dasm_put(Dst, 11030); 1650 dasm_put(Dst, 11064);
1637 if (cmov) { 1651 if (cmov) {
1638 dasm_put(Dst, 10936); 1652 dasm_put(Dst, 10970);
1639 } else { 1653 } else {
1640 dasm_put(Dst, 10942); 1654 dasm_put(Dst, 10976);
1641 } 1655 }
1642 } 1656 }
1643 iseqne_fp: 1657 iseqne_fp:
1644 if (vk) { 1658 if (vk) {
1645 dasm_put(Dst, 11037); 1659 dasm_put(Dst, 11071);
1646 } else { 1660 } else {
1647 dasm_put(Dst, 11046); 1661 dasm_put(Dst, 11080);
1648 } 1662 }
1649 iseqne_end: 1663 iseqne_end:
1650 if (vk) { 1664 if (vk) {
1651 dasm_put(Dst, 11055, -BCBIAS_J*4); 1665 dasm_put(Dst, 11089, -BCBIAS_J*4);
1666 if (!LJ_HASFFI) {
1667 dasm_put(Dst, 4654);
1668 }
1652 } else { 1669 } else {
1653 dasm_put(Dst, 11070, -BCBIAS_J*4); 1670 if (!LJ_HASFFI) {
1671 dasm_put(Dst, 4654);
1672 }
1673 dasm_put(Dst, 11104, -BCBIAS_J*4);
1654 } 1674 }
1655 dasm_put(Dst, 10973); 1675 dasm_put(Dst, 11007);
1656 if (op == BC_ISEQV || op == BC_ISNEV) { 1676 if (op == BC_ISEQV || op == BC_ISNEV) {
1657 dasm_put(Dst, 11085, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1677 dasm_put(Dst, 11119);
1678 if (LJ_HASFFI) {
1679 dasm_put(Dst, 11122, LJ_TCDATA, LJ_TCDATA);
1680 }
1681 dasm_put(Dst, 11141, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1658 if (vk) { 1682 if (vk) {
1659 dasm_put(Dst, 11143); 1683 dasm_put(Dst, 11197);
1660 } else { 1684 } else {
1661 dasm_put(Dst, 11147); 1685 dasm_put(Dst, 11201);
1662 } 1686 }
1663 dasm_put(Dst, 11153); 1687 dasm_put(Dst, 11207);
1688 } else if (LJ_HASFFI) {
1689 dasm_put(Dst, 11212, LJ_TCDATA);
1664 } 1690 }
1665 break; 1691 break;
1666 case BC_ISEQS: case BC_ISNES: 1692 case BC_ISEQS: case BC_ISNES:
1667 vk = op == BC_ISEQS; 1693 vk = op == BC_ISEQS;
1668 dasm_put(Dst, 11158, LJ_TSTR); 1694 dasm_put(Dst, 11227, LJ_TSTR);
1669 iseqne_test: 1695 iseqne_test:
1670 if (vk) { 1696 if (vk) {
1671 dasm_put(Dst, 11041); 1697 dasm_put(Dst, 11075);
1672 } else { 1698 } else {
1673 dasm_put(Dst, 2829); 1699 dasm_put(Dst, 2863);
1674 } 1700 }
1675 goto iseqne_end; 1701 goto iseqne_end;
1676 case BC_ISEQN: case BC_ISNEN: 1702 case BC_ISEQN: case BC_ISNEN:
1677 vk = op == BC_ISEQN; 1703 vk = op == BC_ISEQN;
1678 dasm_put(Dst, 11181, LJ_TISNUM); 1704 dasm_put(Dst, 11252, LJ_TISNUM);
1679 if (sse) { 1705 if (sse) {
1680 dasm_put(Dst, 11195); 1706 dasm_put(Dst, 11268);
1681 } else { 1707 } else {
1682 dasm_put(Dst, 11207); 1708 dasm_put(Dst, 11280);
1683 if (cmov) { 1709 if (cmov) {
1684 dasm_put(Dst, 10936); 1710 dasm_put(Dst, 10970);
1685 } else { 1711 } else {
1686 dasm_put(Dst, 10942); 1712 dasm_put(Dst, 10976);
1687 } 1713 }
1688 } 1714 }
1689 goto iseqne_fp; 1715 goto iseqne_fp;
1690 case BC_ISEQP: case BC_ISNEP: 1716 case BC_ISEQP: case BC_ISNEP:
1691 vk = op == BC_ISEQP; 1717 vk = op == BC_ISEQP;
1692 dasm_put(Dst, 11214); 1718 dasm_put(Dst, 11287);
1693 goto iseqne_test; 1719 if (!LJ_HASFFI) goto iseqne_test;
1720 if (vk) {
1721 dasm_put(Dst, 11300, -BCBIAS_J*4, LJ_TCDATA);
1722 } else {
1723 dasm_put(Dst, 11349, LJ_TCDATA, -BCBIAS_J*4);
1724 }
1725 break;
1694 1726
1695 /* -- Unary test and copy ops ------------------------------------------- */ 1727 /* -- Unary test and copy ops ------------------------------------------- */
1696 1728
1697 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1729 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1698 dasm_put(Dst, 11225, LJ_TISTRUECOND); 1730 dasm_put(Dst, 11392, LJ_TISTRUECOND);
1699 if (op == BC_IST || op == BC_ISTC) { 1731 if (op == BC_IST || op == BC_ISTC) {
1700 dasm_put(Dst, 11237); 1732 dasm_put(Dst, 11404);
1701 } else { 1733 } else {
1702 dasm_put(Dst, 11242); 1734 dasm_put(Dst, 11409);
1703 } 1735 }
1704 if (op == BC_ISTC || op == BC_ISFC) { 1736 if (op == BC_ISTC || op == BC_ISFC) {
1705 dasm_put(Dst, 11247); 1737 dasm_put(Dst, 11414);
1706 } 1738 }
1707 dasm_put(Dst, 11258, -BCBIAS_J*4); 1739 dasm_put(Dst, 11425, -BCBIAS_J*4);
1708 break; 1740 break;
1709 1741
1710 /* -- Unary ops --------------------------------------------------------- */ 1742 /* -- Unary ops --------------------------------------------------------- */
1711 1743
1712 case BC_MOV: 1744 case BC_MOV:
1713 dasm_put(Dst, 11289); 1745 dasm_put(Dst, 11456);
1714 break; 1746 break;
1715 case BC_NOT: 1747 case BC_NOT:
1716 dasm_put(Dst, 11322, LJ_TISTRUECOND, LJ_TTRUE); 1748 dasm_put(Dst, 11489, LJ_TISTRUECOND, LJ_TTRUE);
1717 break; 1749 break;
1718 case BC_UNM: 1750 case BC_UNM:
1719 dasm_put(Dst, 11357, LJ_TISNUM); 1751 dasm_put(Dst, 11524, LJ_TISNUM);
1720 if (sse) { 1752 if (sse) {
1721 dasm_put(Dst, 11368); 1753 dasm_put(Dst, 11535);
1722 } else { 1754 } else {
1723 dasm_put(Dst, 11398); 1755 dasm_put(Dst, 11565);
1724 } 1756 }
1725 dasm_put(Dst, 10973); 1757 dasm_put(Dst, 11007);
1726 break; 1758 break;
1727 case BC_LEN: 1759 case BC_LEN:
1728 dasm_put(Dst, 11407, LJ_TSTR); 1760 dasm_put(Dst, 11574, LJ_TSTR);
1729 if (sse) { 1761 if (sse) {
1730 dasm_put(Dst, 11421, Dt5(->len)); 1762 dasm_put(Dst, 11588, Dt5(->len));
1731 } else { 1763 } else {
1732 dasm_put(Dst, 11439, Dt5(->len)); 1764 dasm_put(Dst, 11606, Dt5(->len));
1733 } 1765 }
1734 dasm_put(Dst, 11448, LJ_TTAB); 1766 dasm_put(Dst, 11615, LJ_TTAB);
1735 if (sse) { 1767 if (sse) {
1736 dasm_put(Dst, 11488); 1768 dasm_put(Dst, 11655);
1737 } else { 1769 } else {
1738 dasm_put(Dst, 11497); 1770 dasm_put(Dst, 11664);
1739 } 1771 }
1740 dasm_put(Dst, 11507); 1772 dasm_put(Dst, 11674);
1741 break; 1773 break;
1742 1774
1743 /* -- Binary ops -------------------------------------------------------- */ 1775 /* -- Binary ops -------------------------------------------------------- */
1744 1776
1745 1777
1746 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1778 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1747 dasm_put(Dst, 11517); 1779 dasm_put(Dst, 11684);
1748 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1780 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1749 switch (vk) { 1781 switch (vk) {
1750 case 0: 1782 case 0:
1751 dasm_put(Dst, 11525, LJ_TISNUM); 1783 dasm_put(Dst, 11692, LJ_TISNUM);
1752 if (sse) { 1784 if (sse) {
1753 dasm_put(Dst, 11537); 1785 dasm_put(Dst, 11704);
1754 } else { 1786 } else {
1755 dasm_put(Dst, 11551); 1787 dasm_put(Dst, 11718);
1756 } 1788 }
1757 break; 1789 break;
1758 case 1: 1790 case 1:
1759 dasm_put(Dst, 11559, LJ_TISNUM); 1791 dasm_put(Dst, 11726, LJ_TISNUM);
1760 if (sse) { 1792 if (sse) {
1761 dasm_put(Dst, 11571); 1793 dasm_put(Dst, 11738);
1762 } else { 1794 } else {
1763 dasm_put(Dst, 11585); 1795 dasm_put(Dst, 11752);
1764 } 1796 }
1765 break; 1797 break;
1766 default: 1798 default:
1767 dasm_put(Dst, 11593, LJ_TISNUM, LJ_TISNUM); 1799 dasm_put(Dst, 11760, LJ_TISNUM, LJ_TISNUM);
1768 if (sse) { 1800 if (sse) {
1769 dasm_put(Dst, 11615); 1801 dasm_put(Dst, 11782);
1770 } else { 1802 } else {
1771 dasm_put(Dst, 11629); 1803 dasm_put(Dst, 11796);
1772 } 1804 }
1773 break; 1805 break;
1774 } 1806 }
1775 if (sse) { 1807 if (sse) {
1776 dasm_put(Dst, 11391); 1808 dasm_put(Dst, 11558);
1777 } else { 1809 } else {
1778 dasm_put(Dst, 11403); 1810 dasm_put(Dst, 11570);
1779 } 1811 }
1780 dasm_put(Dst, 10973); 1812 dasm_put(Dst, 11007);
1781 break; 1813 break;
1782 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1814 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1783 dasm_put(Dst, 11517); 1815 dasm_put(Dst, 11684);
1784 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1816 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1785 switch (vk) { 1817 switch (vk) {
1786 case 0: 1818 case 0:
1787 dasm_put(Dst, 11525, LJ_TISNUM); 1819 dasm_put(Dst, 11692, LJ_TISNUM);
1788 if (sse) { 1820 if (sse) {
1789 dasm_put(Dst, 11637); 1821 dasm_put(Dst, 11804);
1790 } else { 1822 } else {
1791 dasm_put(Dst, 11651); 1823 dasm_put(Dst, 11818);
1792 } 1824 }
1793 break; 1825 break;
1794 case 1: 1826 case 1:
1795 dasm_put(Dst, 11559, LJ_TISNUM); 1827 dasm_put(Dst, 11726, LJ_TISNUM);
1796 if (sse) { 1828 if (sse) {
1797 dasm_put(Dst, 11659); 1829 dasm_put(Dst, 11826);
1798 } else { 1830 } else {
1799 dasm_put(Dst, 11673); 1831 dasm_put(Dst, 11840);
1800 } 1832 }
1801 break; 1833 break;
1802 default: 1834 default:
1803 dasm_put(Dst, 11593, LJ_TISNUM, LJ_TISNUM); 1835 dasm_put(Dst, 11760, LJ_TISNUM, LJ_TISNUM);
1804 if (sse) { 1836 if (sse) {
1805 dasm_put(Dst, 11681); 1837 dasm_put(Dst, 11848);
1806 } else { 1838 } else {
1807 dasm_put(Dst, 11695); 1839 dasm_put(Dst, 11862);
1808 } 1840 }
1809 break; 1841 break;
1810 } 1842 }
1811 if (sse) { 1843 if (sse) {
1812 dasm_put(Dst, 11391); 1844 dasm_put(Dst, 11558);
1813 } else { 1845 } else {
1814 dasm_put(Dst, 11403); 1846 dasm_put(Dst, 11570);
1815 } 1847 }
1816 dasm_put(Dst, 10973); 1848 dasm_put(Dst, 11007);
1817 break; 1849 break;
1818 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1850 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1819 dasm_put(Dst, 11517); 1851 dasm_put(Dst, 11684);
1820 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1852 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1821 switch (vk) { 1853 switch (vk) {
1822 case 0: 1854 case 0:
1823 dasm_put(Dst, 11525, LJ_TISNUM); 1855 dasm_put(Dst, 11692, LJ_TISNUM);
1824 if (sse) { 1856 if (sse) {
1825 dasm_put(Dst, 11703); 1857 dasm_put(Dst, 11870);
1826 } else { 1858 } else {
1827 dasm_put(Dst, 11717); 1859 dasm_put(Dst, 11884);
1828 } 1860 }
1829 break; 1861 break;
1830 case 1: 1862 case 1:
1831 dasm_put(Dst, 11559, LJ_TISNUM); 1863 dasm_put(Dst, 11726, LJ_TISNUM);
1832 if (sse) { 1864 if (sse) {
1833 dasm_put(Dst, 11725); 1865 dasm_put(Dst, 11892);
1834 } else { 1866 } else {
1835 dasm_put(Dst, 11739); 1867 dasm_put(Dst, 11906);
1836 } 1868 }
1837 break; 1869 break;
1838 default: 1870 default:
1839 dasm_put(Dst, 11593, LJ_TISNUM, LJ_TISNUM); 1871 dasm_put(Dst, 11760, LJ_TISNUM, LJ_TISNUM);
1840 if (sse) { 1872 if (sse) {
1841 dasm_put(Dst, 11747); 1873 dasm_put(Dst, 11914);
1842 } else { 1874 } else {
1843 dasm_put(Dst, 11761); 1875 dasm_put(Dst, 11928);
1844 } 1876 }
1845 break; 1877 break;
1846 } 1878 }
1847 if (sse) { 1879 if (sse) {
1848 dasm_put(Dst, 11391); 1880 dasm_put(Dst, 11558);
1849 } else { 1881 } else {
1850 dasm_put(Dst, 11403); 1882 dasm_put(Dst, 11570);
1851 } 1883 }
1852 dasm_put(Dst, 10973); 1884 dasm_put(Dst, 11007);
1853 break; 1885 break;
1854 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1886 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1855 dasm_put(Dst, 11517); 1887 dasm_put(Dst, 11684);
1856 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1888 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1857 switch (vk) { 1889 switch (vk) {
1858 case 0: 1890 case 0:
1859 dasm_put(Dst, 11525, LJ_TISNUM); 1891 dasm_put(Dst, 11692, LJ_TISNUM);
1860 if (sse) { 1892 if (sse) {
1861 dasm_put(Dst, 11769); 1893 dasm_put(Dst, 11936);
1862 } else { 1894 } else {
1863 dasm_put(Dst, 11783); 1895 dasm_put(Dst, 11950);
1864 } 1896 }
1865 break; 1897 break;
1866 case 1: 1898 case 1:
1867 dasm_put(Dst, 11559, LJ_TISNUM); 1899 dasm_put(Dst, 11726, LJ_TISNUM);
1868 if (sse) { 1900 if (sse) {
1869 dasm_put(Dst, 11791); 1901 dasm_put(Dst, 11958);
1870 } else { 1902 } else {
1871 dasm_put(Dst, 11805); 1903 dasm_put(Dst, 11972);
1872 } 1904 }
1873 break; 1905 break;
1874 default: 1906 default:
1875 dasm_put(Dst, 11593, LJ_TISNUM, LJ_TISNUM); 1907 dasm_put(Dst, 11760, LJ_TISNUM, LJ_TISNUM);
1876 if (sse) { 1908 if (sse) {
1877 dasm_put(Dst, 11813); 1909 dasm_put(Dst, 11980);
1878 } else { 1910 } else {
1879 dasm_put(Dst, 11827); 1911 dasm_put(Dst, 11994);
1880 } 1912 }
1881 break; 1913 break;
1882 } 1914 }
1883 if (sse) { 1915 if (sse) {
1884 dasm_put(Dst, 11391); 1916 dasm_put(Dst, 11558);
1885 } else { 1917 } else {
1886 dasm_put(Dst, 11403); 1918 dasm_put(Dst, 11570);
1887 } 1919 }
1888 dasm_put(Dst, 10973); 1920 dasm_put(Dst, 11007);
1889 break; 1921 break;
1890 case BC_MODVN: 1922 case BC_MODVN:
1891 dasm_put(Dst, 11517); 1923 dasm_put(Dst, 11684);
1892 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1924 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1893 switch (vk) { 1925 switch (vk) {
1894 case 0: 1926 case 0:
1895 dasm_put(Dst, 11525, LJ_TISNUM); 1927 dasm_put(Dst, 11692, LJ_TISNUM);
1896 if (sse) { 1928 if (sse) {
1897 dasm_put(Dst, 11835); 1929 dasm_put(Dst, 12002);
1898 } else { 1930 } else {
1899 dasm_put(Dst, 11849); 1931 dasm_put(Dst, 12016);
1900 } 1932 }
1901 break; 1933 break;
1902 case 1: 1934 case 1:
1903 dasm_put(Dst, 11559, LJ_TISNUM); 1935 dasm_put(Dst, 11726, LJ_TISNUM);
1904 if (sse) { 1936 if (sse) {
1905 dasm_put(Dst, 11857); 1937 dasm_put(Dst, 12024);
1906 } else { 1938 } else {
1907 dasm_put(Dst, 11871); 1939 dasm_put(Dst, 12038);
1908 } 1940 }
1909 break; 1941 break;
1910 default: 1942 default:
1911 dasm_put(Dst, 11593, LJ_TISNUM, LJ_TISNUM); 1943 dasm_put(Dst, 11760, LJ_TISNUM, LJ_TISNUM);
1912 if (sse) { 1944 if (sse) {
1913 dasm_put(Dst, 11879); 1945 dasm_put(Dst, 12046);
1914 } else { 1946 } else {
1915 dasm_put(Dst, 11893); 1947 dasm_put(Dst, 12060);
1916 } 1948 }
1917 break; 1949 break;
1918 } 1950 }
1919 dasm_put(Dst, 11901); 1951 dasm_put(Dst, 12068);
1920 if (sse) { 1952 if (sse) {
1921 dasm_put(Dst, 11391); 1953 dasm_put(Dst, 11558);
1922 } else { 1954 } else {
1923 dasm_put(Dst, 11403); 1955 dasm_put(Dst, 11570);
1924 } 1956 }
1925 dasm_put(Dst, 10973); 1957 dasm_put(Dst, 11007);
1926 break; 1958 break;
1927 case BC_MODNV: case BC_MODVV: 1959 case BC_MODNV: case BC_MODVV:
1928 dasm_put(Dst, 11517); 1960 dasm_put(Dst, 11684);
1929 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1961 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1930 switch (vk) { 1962 switch (vk) {
1931 case 0: 1963 case 0:
1932 dasm_put(Dst, 11525, LJ_TISNUM); 1964 dasm_put(Dst, 11692, LJ_TISNUM);
1933 if (sse) { 1965 if (sse) {
1934 dasm_put(Dst, 11835); 1966 dasm_put(Dst, 12002);
1935 } else { 1967 } else {
1936 dasm_put(Dst, 11849); 1968 dasm_put(Dst, 12016);
1937 } 1969 }
1938 break; 1970 break;
1939 case 1: 1971 case 1:
1940 dasm_put(Dst, 11559, LJ_TISNUM); 1972 dasm_put(Dst, 11726, LJ_TISNUM);
1941 if (sse) { 1973 if (sse) {
1942 dasm_put(Dst, 11857); 1974 dasm_put(Dst, 12024);
1943 } else { 1975 } else {
1944 dasm_put(Dst, 11871); 1976 dasm_put(Dst, 12038);
1945 } 1977 }
1946 break; 1978 break;
1947 default: 1979 default:
1948 dasm_put(Dst, 11593, LJ_TISNUM, LJ_TISNUM); 1980 dasm_put(Dst, 11760, LJ_TISNUM, LJ_TISNUM);
1949 if (sse) { 1981 if (sse) {
1950 dasm_put(Dst, 11879); 1982 dasm_put(Dst, 12046);
1951 } else { 1983 } else {
1952 dasm_put(Dst, 11893); 1984 dasm_put(Dst, 12060);
1953 } 1985 }
1954 break; 1986 break;
1955 } 1987 }
1956 dasm_put(Dst, 11907); 1988 dasm_put(Dst, 12074);
1957 break; 1989 break;
1958 case BC_POW: 1990 case BC_POW:
1959 dasm_put(Dst, 11517); 1991 dasm_put(Dst, 11684);
1960 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1992 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1961 switch (vk) { 1993 switch (vk) {
1962 case 0: 1994 case 0:
1963 dasm_put(Dst, 11525, LJ_TISNUM); 1995 dasm_put(Dst, 11692, LJ_TISNUM);
1964 if (sse) { 1996 if (sse) {
1965 dasm_put(Dst, 11835); 1997 dasm_put(Dst, 12002);
1966 } else { 1998 } else {
1967 dasm_put(Dst, 11849); 1999 dasm_put(Dst, 12016);
1968 } 2000 }
1969 break; 2001 break;
1970 case 1: 2002 case 1:
1971 dasm_put(Dst, 11559, LJ_TISNUM); 2003 dasm_put(Dst, 11726, LJ_TISNUM);
1972 if (sse) { 2004 if (sse) {
1973 dasm_put(Dst, 11857); 2005 dasm_put(Dst, 12024);
1974 } else { 2006 } else {
1975 dasm_put(Dst, 11871); 2007 dasm_put(Dst, 12038);
1976 } 2008 }
1977 break; 2009 break;
1978 default: 2010 default:
1979 dasm_put(Dst, 11593, LJ_TISNUM, LJ_TISNUM); 2011 dasm_put(Dst, 11760, LJ_TISNUM, LJ_TISNUM);
1980 if (sse) { 2012 if (sse) {
1981 dasm_put(Dst, 11879); 2013 dasm_put(Dst, 12046);
1982 } else { 2014 } else {
1983 dasm_put(Dst, 11893); 2015 dasm_put(Dst, 12060);
1984 } 2016 }
1985 break; 2017 break;
1986 } 2018 }
1987 dasm_put(Dst, 11912); 2019 dasm_put(Dst, 12079);
1988 if (sse) { 2020 if (sse) {
1989 dasm_put(Dst, 11391); 2021 dasm_put(Dst, 11558);
1990 } else { 2022 } else {
1991 dasm_put(Dst, 11403); 2023 dasm_put(Dst, 11570);
1992 } 2024 }
1993 dasm_put(Dst, 10973); 2025 dasm_put(Dst, 11007);
1994 break; 2026 break;
1995 2027
1996 case BC_CAT: 2028 case BC_CAT:
1997 dasm_put(Dst, 11916, Dt1(->base), Dt1(->base)); 2029 dasm_put(Dst, 12083, Dt1(->base), Dt1(->base));
1998 break; 2030 break;
1999 2031
2000 /* -- Constant ops ------------------------------------------------------ */ 2032 /* -- Constant ops ------------------------------------------------------ */
2001 2033
2002 case BC_KSTR: 2034 case BC_KSTR:
2003 dasm_put(Dst, 12010, LJ_TSTR); 2035 dasm_put(Dst, 12177, LJ_TSTR);
2004 break; 2036 break;
2005 case BC_KCDATA: 2037 case BC_KCDATA:
2006#if LJ_HASFFI 2038#if LJ_HASFFI
2007 dasm_put(Dst, 12010, LJ_TCDATA); 2039 dasm_put(Dst, 12177, LJ_TCDATA);
2008#endif 2040#endif
2009 break; 2041 break;
2010 case BC_KSHORT: 2042 case BC_KSHORT:
2011 if (sse) { 2043 if (sse) {
2012 dasm_put(Dst, 12043); 2044 dasm_put(Dst, 12210);
2013 } else { 2045 } else {
2014 dasm_put(Dst, 12058); 2046 dasm_put(Dst, 12225);
2015 } 2047 }
2016 dasm_put(Dst, 10973); 2048 dasm_put(Dst, 11007);
2017 break; 2049 break;
2018 case BC_KNUM: 2050 case BC_KNUM:
2019 if (sse) { 2051 if (sse) {
2020 dasm_put(Dst, 12066); 2052 dasm_put(Dst, 12233);
2021 } else { 2053 } else {
2022 dasm_put(Dst, 12079); 2054 dasm_put(Dst, 12246);
2023 } 2055 }
2024 dasm_put(Dst, 10973); 2056 dasm_put(Dst, 11007);
2025 break; 2057 break;
2026 case BC_KPRI: 2058 case BC_KPRI:
2027 dasm_put(Dst, 12086); 2059 dasm_put(Dst, 12253);
2028 break; 2060 break;
2029 case BC_KNIL: 2061 case BC_KNIL:
2030 dasm_put(Dst, 12112, LJ_TNIL); 2062 dasm_put(Dst, 12279, LJ_TNIL);
2031 break; 2063 break;
2032 2064
2033 /* -- Upvalue and function ops ------------------------------------------ */ 2065 /* -- Upvalue and function ops ------------------------------------------ */
2034 2066
2035 case BC_UGET: 2067 case BC_UGET:
2036 dasm_put(Dst, 12158, offsetof(GCfuncL, uvptr), DtA(->v)); 2068 dasm_put(Dst, 12325, offsetof(GCfuncL, uvptr), DtA(->v));
2037 break; 2069 break;
2038 case BC_USETV: 2070 case BC_USETV:
2039#define TV2MARKOFS \ 2071#define TV2MARKOFS \
2040 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 2072 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
2041 dasm_put(Dst, 12202, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 2073 dasm_put(Dst, 12369, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
2042 dasm_put(Dst, 12292); 2074 dasm_put(Dst, 12459);
2043 break; 2075 break;
2044#undef TV2MARKOFS 2076#undef TV2MARKOFS
2045 case BC_USETS: 2077 case BC_USETS:
2046 dasm_put(Dst, 12304, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 2078 dasm_put(Dst, 12471, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
2047 break; 2079 break;
2048 case BC_USETN: 2080 case BC_USETN:
2049 dasm_put(Dst, 12395); 2081 dasm_put(Dst, 12562);
2050 if (sse) { 2082 if (sse) {
2051 dasm_put(Dst, 12400); 2083 dasm_put(Dst, 12567);
2052 } else { 2084 } else {
2053 dasm_put(Dst, 11210); 2085 dasm_put(Dst, 11283);
2054 } 2086 }
2055 dasm_put(Dst, 12407, offsetof(GCfuncL, uvptr), DtA(->v)); 2087 dasm_put(Dst, 12574, offsetof(GCfuncL, uvptr), DtA(->v));
2056 if (sse) { 2088 if (sse) {
2057 dasm_put(Dst, 12416); 2089 dasm_put(Dst, 12583);
2058 } else { 2090 } else {
2059 dasm_put(Dst, 12422); 2091 dasm_put(Dst, 12589);
2060 } 2092 }
2061 dasm_put(Dst, 10973); 2093 dasm_put(Dst, 11007);
2062 break; 2094 break;
2063 case BC_USETP: 2095 case BC_USETP:
2064 dasm_put(Dst, 12425, offsetof(GCfuncL, uvptr), DtA(->v)); 2096 dasm_put(Dst, 12592, offsetof(GCfuncL, uvptr), DtA(->v));
2065 break; 2097 break;
2066 case BC_UCLO: 2098 case BC_UCLO:
2067 dasm_put(Dst, 12462, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2099 dasm_put(Dst, 12629, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2068 break; 2100 break;
2069 2101
2070 case BC_FNEW: 2102 case BC_FNEW:
2071 dasm_put(Dst, 12516, Dt1(->base), Dt1(->base), LJ_TFUNC); 2103 dasm_put(Dst, 12683, Dt1(->base), Dt1(->base), LJ_TFUNC);
2072 break; 2104 break;
2073 2105
2074 /* -- Table ops --------------------------------------------------------- */ 2106 /* -- Table ops --------------------------------------------------------- */
2075 2107
2076 case BC_TNEW: 2108 case BC_TNEW:
2077 dasm_put(Dst, 12587, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2109 dasm_put(Dst, 12754, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2078 break; 2110 break;
2079 case BC_TDUP: 2111 case BC_TDUP:
2080 dasm_put(Dst, 12713, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2112 dasm_put(Dst, 12880, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2081 break; 2113 break;
2082 2114
2083 case BC_GGET: 2115 case BC_GGET:
2084 dasm_put(Dst, 12805, Dt7(->env)); 2116 dasm_put(Dst, 12972, Dt7(->env));
2085 break; 2117 break;
2086 case BC_GSET: 2118 case BC_GSET:
2087 dasm_put(Dst, 12823, Dt7(->env)); 2119 dasm_put(Dst, 12990, Dt7(->env));
2088 break; 2120 break;
2089 2121
2090 case BC_TGETV: 2122 case BC_TGETV:
2091 dasm_put(Dst, 12841, LJ_TTAB, LJ_TISNUM); 2123 dasm_put(Dst, 13008, LJ_TTAB, LJ_TISNUM);
2092 if (sse) { 2124 if (sse) {
2093 dasm_put(Dst, 12874); 2125 dasm_put(Dst, 13041);
2094 } else { 2126 } else {
2095 dasm_put(Dst, 12895); 2127 dasm_put(Dst, 13062);
2096 if (cmov) { 2128 if (cmov) {
2097 dasm_put(Dst, 10936); 2129 dasm_put(Dst, 10970);
2098 } else { 2130 } else {
2099 dasm_put(Dst, 10942); 2131 dasm_put(Dst, 10976);
2100 } 2132 }
2101 dasm_put(Dst, 2539); 2133 dasm_put(Dst, 2573);
2102 } 2134 }
2103 dasm_put(Dst, 12905, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2135 dasm_put(Dst, 13072, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2104 dasm_put(Dst, 12993, LJ_TNIL, LJ_TSTR); 2136 dasm_put(Dst, 13160, LJ_TNIL, LJ_TSTR);
2105 break; 2137 break;
2106 case BC_TGETS: 2138 case BC_TGETS:
2107 dasm_put(Dst, 13022, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2139 dasm_put(Dst, 13189, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2108 dasm_put(Dst, 13110, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2140 dasm_put(Dst, 13277, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2109 break; 2141 break;
2110 case BC_TGETB: 2142 case BC_TGETB:
2111 dasm_put(Dst, 13180, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2143 dasm_put(Dst, 13347, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2112 dasm_put(Dst, 13279, LJ_TNIL); 2144 dasm_put(Dst, 13446, LJ_TNIL);
2113 break; 2145 break;
2114 2146
2115 case BC_TSETV: 2147 case BC_TSETV:
2116 dasm_put(Dst, 13296, LJ_TTAB, LJ_TISNUM); 2148 dasm_put(Dst, 13463, LJ_TTAB, LJ_TISNUM);
2117 if (sse) { 2149 if (sse) {
2118 dasm_put(Dst, 12874); 2150 dasm_put(Dst, 13041);
2119 } else { 2151 } else {
2120 dasm_put(Dst, 12895); 2152 dasm_put(Dst, 13062);
2121 if (cmov) { 2153 if (cmov) {
2122 dasm_put(Dst, 10936); 2154 dasm_put(Dst, 10970);
2123 } else { 2155 } else {
2124 dasm_put(Dst, 10942); 2156 dasm_put(Dst, 10976);
2125 } 2157 }
2126 dasm_put(Dst, 2539); 2158 dasm_put(Dst, 2573);
2127 } 2159 }
2128 dasm_put(Dst, 13329, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2160 dasm_put(Dst, 13496, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2129 dasm_put(Dst, 13412, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2161 dasm_put(Dst, 13579, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2130 break; 2162 break;
2131 case BC_TSETS: 2163 case BC_TSETS:
2132 dasm_put(Dst, 13474, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2164 dasm_put(Dst, 13641, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2133 dasm_put(Dst, 13549, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2165 dasm_put(Dst, 13716, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2134 dasm_put(Dst, 13641, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2166 dasm_put(Dst, 13808, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2135 break; 2167 break;
2136 case BC_TSETB: 2168 case BC_TSETB:
2137 dasm_put(Dst, 13737, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2169 dasm_put(Dst, 13904, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2138 dasm_put(Dst, 13835, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2170 dasm_put(Dst, 14002, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2139 break; 2171 break;
2140 2172
2141 case BC_TSETM: 2173 case BC_TSETM:
2142 dasm_put(Dst, 13881, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2174 dasm_put(Dst, 14048, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2143 dasm_put(Dst, 14030, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2175 dasm_put(Dst, 14197, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2144 break; 2176 break;
2145 2177
2146 /* -- Calls and vararg handling ----------------------------------------- */ 2178 /* -- Calls and vararg handling ----------------------------------------- */
2147 2179
2148 case BC_CALL: case BC_CALLM: 2180 case BC_CALL: case BC_CALLM:
2149 dasm_put(Dst, 11521); 2181 dasm_put(Dst, 11688);
2150 if (op == BC_CALLM) { 2182 if (op == BC_CALLM) {
2151 dasm_put(Dst, 14048); 2183 dasm_put(Dst, 14215);
2152 } 2184 }
2153 dasm_put(Dst, 14053, LJ_TFUNC, Dt7(->pc)); 2185 dasm_put(Dst, 14220, LJ_TFUNC, Dt7(->pc));
2154 break; 2186 break;
2155 2187
2156 case BC_CALLMT: 2188 case BC_CALLMT:
2157 dasm_put(Dst, 14048); 2189 dasm_put(Dst, 14215);
2158 break; 2190 break;
2159 case BC_CALLT: 2191 case BC_CALLT:
2160 dasm_put(Dst, 14094, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2192 dasm_put(Dst, 14261, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2161 dasm_put(Dst, 14212, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2193 dasm_put(Dst, 14379, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
2162 break; 2194 break;
2163 2195
2164 case BC_ITERC: 2196 case BC_ITERC:
2165 dasm_put(Dst, 14282, LJ_TFUNC, 2+1, Dt7(->pc)); 2197 dasm_put(Dst, 14449, LJ_TFUNC, 2+1, Dt7(->pc));
2166 break; 2198 break;
2167 2199
2168 case BC_ITERN: 2200 case BC_ITERN:
2169#if LJ_HASJIT 2201#if LJ_HASJIT
2170#endif 2202#endif
2171 dasm_put(Dst, 14362, Dt6(->asize), Dt6(->array), LJ_TNIL); 2203 dasm_put(Dst, 14529, Dt6(->asize), Dt6(->array), LJ_TNIL);
2172 if (sse) { 2204 if (sse) {
2173 dasm_put(Dst, 14408); 2205 dasm_put(Dst, 14575);
2174 } else { 2206 } else {
2175 dasm_put(Dst, 14414); 2207 dasm_put(Dst, 14581);
2176 } 2208 }
2177 dasm_put(Dst, 14420); 2209 dasm_put(Dst, 14587);
2178 if (sse) { 2210 if (sse) {
2179 dasm_put(Dst, 11391); 2211 dasm_put(Dst, 11558);
2180 } else { 2212 } else {
2181 dasm_put(Dst, 11403); 2213 dasm_put(Dst, 11570);
2182 } 2214 }
2183 dasm_put(Dst, 14439, -BCBIAS_J*4); 2215 dasm_put(Dst, 14606, -BCBIAS_J*4);
2184 if (!sse) { 2216 if (!sse) {
2185 dasm_put(Dst, 14490); 2217 dasm_put(Dst, 14657);
2186 } 2218 }
2187 dasm_put(Dst, 14496, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it)); 2219 dasm_put(Dst, 14663, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it));
2188 dasm_put(Dst, 14571); 2220 dasm_put(Dst, 14738);
2189 break; 2221 break;
2190 2222
2191 case BC_ISNEXT: 2223 case BC_ISNEXT:
2192 dasm_put(Dst, 14579, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2224 dasm_put(Dst, 14746, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2193 break; 2225 break;
2194 2226
2195 case BC_VARG: 2227 case BC_VARG:
2196 dasm_put(Dst, 14678, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2228 dasm_put(Dst, 14845, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2197 dasm_put(Dst, 14842, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2229 dasm_put(Dst, 15009, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2198 break; 2230 break;
2199 2231
2200 /* -- Returns ----------------------------------------------------------- */ 2232 /* -- Returns ----------------------------------------------------------- */
2201 2233
2202 case BC_RETM: 2234 case BC_RETM:
2203 dasm_put(Dst, 14048); 2235 dasm_put(Dst, 14215);
2204 break; 2236 break;
2205 2237
2206 case BC_RET: case BC_RET0: case BC_RET1: 2238 case BC_RET: case BC_RET0: case BC_RET1:
2207 if (op != BC_RET0) { 2239 if (op != BC_RET0) {
2208 dasm_put(Dst, 14913); 2240 dasm_put(Dst, 15080);
2209 } 2241 }
2210 dasm_put(Dst, 14917, FRAME_TYPE); 2242 dasm_put(Dst, 15084, FRAME_TYPE);
2211 switch (op) { 2243 switch (op) {
2212 case BC_RET: 2244 case BC_RET:
2213 dasm_put(Dst, 14936); 2245 dasm_put(Dst, 15103);
2214 break; 2246 break;
2215 case BC_RET1: 2247 case BC_RET1:
2216 dasm_put(Dst, 14994); 2248 dasm_put(Dst, 15161);
2217 /* fallthrough */ 2249 /* fallthrough */
2218 case BC_RET0: 2250 case BC_RET0:
2219 dasm_put(Dst, 15010); 2251 dasm_put(Dst, 15177);
2220 default: 2252 default:
2221 break; 2253 break;
2222 } 2254 }
2223 dasm_put(Dst, 15021, Dt7(->pc), PC2PROTO(k)); 2255 dasm_put(Dst, 15188, Dt7(->pc), PC2PROTO(k));
2224 if (op == BC_RET) { 2256 if (op == BC_RET) {
2225 dasm_put(Dst, 15063, LJ_TNIL); 2257 dasm_put(Dst, 15230, LJ_TNIL);
2226 } else { 2258 } else {
2227 dasm_put(Dst, 15072, LJ_TNIL); 2259 dasm_put(Dst, 15239, LJ_TNIL);
2228 } 2260 }
2229 dasm_put(Dst, 15079, -FRAME_VARG, FRAME_TYPEP); 2261 dasm_put(Dst, 15246, -FRAME_VARG, FRAME_TYPEP);
2230 if (op != BC_RET0) { 2262 if (op != BC_RET0) {
2231 dasm_put(Dst, 15103); 2263 dasm_put(Dst, 15270);
2232 } 2264 }
2233 dasm_put(Dst, 4704); 2265 dasm_put(Dst, 4738);
2234 break; 2266 break;
2235 2267
2236 /* -- Loops and branches ------------------------------------------------ */ 2268 /* -- Loops and branches ------------------------------------------------ */
@@ -2238,7 +2270,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2238 2270
2239 case BC_FORL: 2271 case BC_FORL:
2240#if LJ_HASJIT 2272#if LJ_HASJIT
2241 dasm_put(Dst, 15107, HOTCOUNT_PCMASK, GG_DISP2HOT); 2273 dasm_put(Dst, 15274, HOTCOUNT_PCMASK, GG_DISP2HOT);
2242#endif 2274#endif
2243 break; 2275 break;
2244 2276
@@ -2250,57 +2282,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2250 case BC_FORI: 2282 case BC_FORI:
2251 case BC_IFORL: 2283 case BC_IFORL:
2252 vk = (op == BC_IFORL || op == BC_JFORL); 2284 vk = (op == BC_IFORL || op == BC_JFORL);
2253 dasm_put(Dst, 15128); 2285 dasm_put(Dst, 15295);
2254 if (!vk) { 2286 if (!vk) {
2255 dasm_put(Dst, 15132, LJ_TISNUM, LJ_TISNUM); 2287 dasm_put(Dst, 15299, LJ_TISNUM, LJ_TISNUM);
2256 } 2288 }
2257 dasm_put(Dst, 15151); 2289 dasm_put(Dst, 15318);
2258 if (!vk) { 2290 if (!vk) {
2259 dasm_put(Dst, 15155, LJ_TISNUM); 2291 dasm_put(Dst, 15322, LJ_TISNUM);
2260 } 2292 }
2261 if (sse) { 2293 if (sse) {
2262 dasm_put(Dst, 15164); 2294 dasm_put(Dst, 15331);
2263 if (vk) { 2295 if (vk) {
2264 dasm_put(Dst, 15176); 2296 dasm_put(Dst, 15343);
2265 } else { 2297 } else {
2266 dasm_put(Dst, 15195); 2298 dasm_put(Dst, 15362);
2267 } 2299 }
2268 dasm_put(Dst, 15200); 2300 dasm_put(Dst, 15367);
2269 } else { 2301 } else {
2270 dasm_put(Dst, 15213); 2302 dasm_put(Dst, 15380);
2271 if (vk) { 2303 if (vk) {
2272 dasm_put(Dst, 15219); 2304 dasm_put(Dst, 15386);
2273 } else { 2305 } else {
2274 dasm_put(Dst, 15235); 2306 dasm_put(Dst, 15402);
2275 } 2307 }
2276 dasm_put(Dst, 15243); 2308 dasm_put(Dst, 15410);
2277 if (cmov) { 2309 if (cmov) {
2278 dasm_put(Dst, 10936); 2310 dasm_put(Dst, 10970);
2279 } else { 2311 } else {
2280 dasm_put(Dst, 10942); 2312 dasm_put(Dst, 10976);
2281 } 2313 }
2282 if (!cmov) { 2314 if (!cmov) {
2283 dasm_put(Dst, 15248); 2315 dasm_put(Dst, 15415);
2284 } 2316 }
2285 } 2317 }
2286 if (op == BC_FORI) { 2318 if (op == BC_FORI) {
2287 dasm_put(Dst, 15254, -BCBIAS_J*4); 2319 dasm_put(Dst, 15421, -BCBIAS_J*4);
2288 } else if (op == BC_JFORI) { 2320 } else if (op == BC_JFORI) {
2289 dasm_put(Dst, 15264, -BCBIAS_J*4, BC_JLOOP); 2321 dasm_put(Dst, 15431, -BCBIAS_J*4, BC_JLOOP);
2290 } else if (op == BC_IFORL) { 2322 } else if (op == BC_IFORL) {
2291 dasm_put(Dst, 15278, -BCBIAS_J*4); 2323 dasm_put(Dst, 15445, -BCBIAS_J*4);
2292 } else { 2324 } else {
2293 dasm_put(Dst, 15274, BC_JLOOP); 2325 dasm_put(Dst, 15441, BC_JLOOP);
2294 } 2326 }
2295 dasm_put(Dst, 10971); 2327 dasm_put(Dst, 11005);
2296 if (sse) { 2328 if (sse) {
2297 dasm_put(Dst, 15288); 2329 dasm_put(Dst, 15455);
2298 } 2330 }
2299 break; 2331 break;
2300 2332
2301 case BC_ITERL: 2333 case BC_ITERL:
2302#if LJ_HASJIT 2334#if LJ_HASJIT
2303 dasm_put(Dst, 15107, HOTCOUNT_PCMASK, GG_DISP2HOT); 2335 dasm_put(Dst, 15274, HOTCOUNT_PCMASK, GG_DISP2HOT);
2304#endif 2336#endif
2305 break; 2337 break;
2306 2338
@@ -2309,33 +2341,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2309 break; 2341 break;
2310#endif 2342#endif
2311 case BC_IITERL: 2343 case BC_IITERL:
2312 dasm_put(Dst, 15299, LJ_TNIL); 2344 dasm_put(Dst, 15466, LJ_TNIL);
2313 if (op == BC_JITERL) { 2345 if (op == BC_JITERL) {
2314 dasm_put(Dst, 15314, BC_JLOOP); 2346 dasm_put(Dst, 15481, BC_JLOOP);
2315 } else { 2347 } else {
2316 dasm_put(Dst, 15328, -BCBIAS_J*4); 2348 dasm_put(Dst, 15495, -BCBIAS_J*4);
2317 } 2349 }
2318 dasm_put(Dst, 11268); 2350 dasm_put(Dst, 11435);
2319 break; 2351 break;
2320 2352
2321 case BC_LOOP: 2353 case BC_LOOP:
2322#if LJ_HASJIT 2354#if LJ_HASJIT
2323 dasm_put(Dst, 15107, HOTCOUNT_PCMASK, GG_DISP2HOT); 2355 dasm_put(Dst, 15274, HOTCOUNT_PCMASK, GG_DISP2HOT);
2324#endif 2356#endif
2325 break; 2357 break;
2326 2358
2327 case BC_ILOOP: 2359 case BC_ILOOP:
2328 dasm_put(Dst, 10973); 2360 dasm_put(Dst, 11007);
2329 break; 2361 break;
2330 2362
2331 case BC_JLOOP: 2363 case BC_JLOOP:
2332#if LJ_HASJIT 2364#if LJ_HASJIT
2333 dasm_put(Dst, 15344, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2365 dasm_put(Dst, 15511, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2334#endif 2366#endif
2335 break; 2367 break;
2336 2368
2337 case BC_JMP: 2369 case BC_JMP:
2338 dasm_put(Dst, 15367, -BCBIAS_J*4); 2370 dasm_put(Dst, 15534, -BCBIAS_J*4);
2339 break; 2371 break;
2340 2372
2341 /* -- Function headers -------------------------------------------------- */ 2373 /* -- Function headers -------------------------------------------------- */
@@ -2349,7 +2381,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2349 2381
2350 case BC_FUNCF: 2382 case BC_FUNCF:
2351#if LJ_HASJIT 2383#if LJ_HASJIT
2352 dasm_put(Dst, 15391, HOTCOUNT_PCMASK, GG_DISP2HOT); 2384 dasm_put(Dst, 15558, HOTCOUNT_PCMASK, GG_DISP2HOT);
2353#endif 2385#endif
2354 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2386 case BC_FUNCV: /* NYI: compiled vararg functions. */
2355 break; 2387 break;
@@ -2359,47 +2391,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2359 break; 2391 break;
2360#endif 2392#endif
2361 case BC_IFUNCF: 2393 case BC_IFUNCF:
2362 dasm_put(Dst, 15412, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2394 dasm_put(Dst, 15579, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2363 if (op == BC_JFUNCF) { 2395 if (op == BC_JFUNCF) {
2364 dasm_put(Dst, 15442, BC_JLOOP); 2396 dasm_put(Dst, 15609, BC_JLOOP);
2365 } else { 2397 } else {
2366 dasm_put(Dst, 10973); 2398 dasm_put(Dst, 11007);
2367 } 2399 }
2368 dasm_put(Dst, 15451, LJ_TNIL); 2400 dasm_put(Dst, 15618, LJ_TNIL);
2369 break; 2401 break;
2370 2402
2371 case BC_JFUNCV: 2403 case BC_JFUNCV:
2372#if !LJ_HASJIT 2404#if !LJ_HASJIT
2373 break; 2405 break;
2374#endif 2406#endif
2375 dasm_put(Dst, 10268); 2407 dasm_put(Dst, 10302);
2376 break; /* NYI: compiled vararg functions. */ 2408 break; /* NYI: compiled vararg functions. */
2377 2409
2378 case BC_IFUNCV: 2410 case BC_IFUNCV:
2379 dasm_put(Dst, 15473, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2411 dasm_put(Dst, 15640, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2380 if (op == BC_JFUNCV) { 2412 if (op == BC_JFUNCV) {
2381 dasm_put(Dst, 15442, BC_JLOOP); 2413 dasm_put(Dst, 15609, BC_JLOOP);
2382 } else { 2414 } else {
2383 dasm_put(Dst, 15564, -4+PC2PROTO(k)); 2415 dasm_put(Dst, 15731, -4+PC2PROTO(k));
2384 } 2416 }
2385 dasm_put(Dst, 15586, LJ_TNIL); 2417 dasm_put(Dst, 15753, LJ_TNIL);
2386 break; 2418 break;
2387 2419
2388 case BC_FUNCC: 2420 case BC_FUNCC:
2389 case BC_FUNCCW: 2421 case BC_FUNCCW:
2390 dasm_put(Dst, 15608, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2422 dasm_put(Dst, 15775, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2391 if (op == BC_FUNCC) { 2423 if (op == BC_FUNCC) {
2392 dasm_put(Dst, 15637); 2424 dasm_put(Dst, 15804);
2393 } else { 2425 } else {
2394 dasm_put(Dst, 15641); 2426 dasm_put(Dst, 15808);
2395 } 2427 }
2396 dasm_put(Dst, 15649, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2428 dasm_put(Dst, 15816, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2397 if (op == BC_FUNCC) { 2429 if (op == BC_FUNCC) {
2398 dasm_put(Dst, 15658); 2430 dasm_put(Dst, 15825);
2399 } else { 2431 } else {
2400 dasm_put(Dst, 15662, DISPATCH_GL(wrapf)); 2432 dasm_put(Dst, 15829, DISPATCH_GL(wrapf));
2401 } 2433 }
2402 dasm_put(Dst, 15667, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2434 dasm_put(Dst, 15834, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2403 break; 2435 break;
2404 2436
2405 /* ---------------------------------------------------------------------- */ 2437 /* ---------------------------------------------------------------------- */
@@ -2427,7 +2459,7 @@ static int build_backend(BuildCtx *ctx)
2427 2459
2428 build_subroutines(ctx, cmov, sse); 2460 build_subroutines(ctx, cmov, sse);
2429 2461
2430 dasm_put(Dst, 15692); 2462 dasm_put(Dst, 15859);
2431 for (op = 0; op < BC__MAX; op++) 2463 for (op = 0; op < BC__MAX; op++)
2432 build_ins(ctx, (BCOp)op, op, cmov, sse); 2464 build_ins(ctx, (BCOp)op, op, cmov, sse);
2433 2465