Create a gist now

Instantly share code, notes, and snippets.

Table implentation evaluation for Ruby 2.4

Author: Koichi Sasada

About this report

MRI uses hash table for various puporse. Of course, Hash object implementation is one of biggest usage. Furthermore, any kind of key <-> value pairs are maintained by tables, like required libraries, symbol tables, and so on.

MRI 2.3 and 2.4 dev employs st.c. We use this code long time. MRI 1.9 introduced several optimizations for small size of entries and ordered hash table. But basic data structure is not changed.

Now, we have two proposals to change hash data strucuture dramatically are discussed at Feature #12142. There are many discussions about it, but most important changes are the following two points:

  • (1) Change from close addressing to open addressing.
  • (2) Chagne separated entries (key/value pairs) to sequential block.

Originally, Vladimir Makarov (vlad) proposed initial implementation and Yura Sokolov (funny falcon or ffalcon) tried to make other implementations with similar idea. Yura proposed two type of implementation so that there are three types of implementations.

As a results, I measured with the following implementations:

Environment is:

  • CPU: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
  • OS: Linux 4.4.0-45-generic (Ubuntu 16.04)
  • gcc: gcc version 5.4.0 20160609

This report tries to evaluate implementations and to help decision which implementation should be introduced to MRI 2.4.

I measured the following items:

  • Usage of tables with Rails 5 application
  • Consumed memory measured by st_memsize()
  • Measuring looking up overhead
  • Measuring insertion overhead

BTW, Ruby 2.3 introduces rb_id_table struct which is specialized table for ID key tables. For example, method tables are used this data structure.

Suggestions

My findings and suggestions:

  • Proposed implementations are definitely fast.
  • Proposed implementations are mostly small memory usages. Especially ffalcon's implementations are smaller.
  • ffalcon and ffalcon_64 is not so big difference.
  • Some case vlad is faster and some case ffalcon (two impls) are faster. No decisive differences.
  • I want to introduce proposed improvements. Checking results, ffalcon_64 is slightly better?
  • But I agree to determine the implementation with coin toss.

usage

At first, I checked st table usage by modifying MRI st.c. https://github.com/ruby/ruby/compare/trunk...ko1:st_profile

Sample application is very simple Rails 5 application. It has simple model and pagenate index page (by kaminari gem).

I measured it with development and production mode, with accessing 10,000 accesses with ab.

st_usage_dev st_usage_prod

Y-axis is operation counts and X-axis is table size when the operations are worked (table size just before the operation).

As you can see, most frequent operation is a looking up. It is reasonable. Furthermore, any other operations such as insert or delete should contains lookup. So that I decided to measure only lookup overhead. (Also, I believe insert/delete operations should be similar overhead for both implementations).

Another characteristics is table size. Most of operations are invoked for small size of tables. Most of operations are invoked for under 64 entries. For lookup operations, most invoked tables are tables whcih has only 2 or 3 entries. So that we need to care about small number of tables.

memsize

The following pictures are illustrate how a table consumes memories. X-axis shows entry count and Y-axis shows the memory size measured by st_memsize().

st_memsize_40000 st_memsize_256 st_memsize_64 st_memsize_16

Some cases, vlad exceed trunk memory usage. ffalcon and ffalcon_64 are smaller mostly. I wonder that ffalcon and ffalcon_64 is not so big different.

Lookup performance

I measured three types of benchmarks.

  • (1) Big tables (< 50,000 entries)
  • (2) Small tables (< 256 entries)
  • (3) Small tables (< 256 entries) with multiple tables

(1) and (2) is no problem to understand I believe. But (3) needs explanation.

(3) try to simulate some kind of cache-miss situations. In Ruby code, (3) tries:

  tables = (1..10_000).map{
    make_table_with_some_entries
  }
  measure{
    (10_000_000/10_000).each{
       tables.each{|table|
         table.lookup(something)
       }
    }
  }

This code will touch many tables and introduce huge number of cache-misses.

All of core benchmarks are written in C (see https://gist.githubusercontent.com/ko1/dda8243134bc40f7fc05e293abc5f4b2/raw/st_bench.c) and driver is written in Ruby (see https://gist.githubusercontent.com/ko1/dda8243134bc40f7fc05e293abc5f4b2/raw/stbench.rb).

I use 4 kind of keys.

  • (1) C integer (initialized by st_init_numtable())
  • (2) C str (NUL-terminated string) (initialized by st_init_strtable())
  • (3) Ruby String (initialized by st_init_table() with objhash)
  • (4) Ruby Symbol (initialized by st_init_table() with objhash)

For (2) to (4), this benchmark read words file Ubuntu provided. C integers and Ruby Symbols uses identical hash function (object ids or integer values are (mostly) a hash value). C strs and Ruby Strings need to check string bodies to generate hash value.

I also measure hit and miss cases. To measure "hit" case and "miss" case, benchmark prepare a "existing keys" set (unique, as Ruby's Hash, it equals to table.keys) and "non-existing keys" set (can be not unique).

  # check hit cases
  measure{
    table.keys.shuffle.each{|k|
      table.lookup(k)
    }
  }

  #check miss cases
  measure{
    table.non_existing_keys.each{|k|
      table.lookup(k)
    }
  }

Note that these benchmarks are extended version of https://github.com/spinute/ruby/tree/stbench/ext/stbench by Horie-san worked as a topic of GSoC 2016.

Big tables (< 50,000 entries)

integer

result_big_int_hit result_big_int_miss

cstr (NUL terminated chars)

result_big_cstr_hit result_big_cstr_miss

Ruby String

result_big_rstr_hit result_big_rstr_miss

Ruby Symbol

result_big_symbol_hit result_big_symbol_miss

Small tables (< 256 entries)

integer

result_small_int_hit result_small_int_hit_nallow result_small_int_miss result_small_int_miss_nallow

cstr

result_small_cstr_hit result_small_cstr_hit_nallow result_small_cstr_miss result_small_cstr_miss_nallow

Ruby String

result_small_rstr_hit result_small_rstr_hit_nallow result_small_rstr_miss result_small_rstr_miss_nallow

Ruby Symbols

result_small_symbol_hit result_small_symbol_hit_nallow result_small_symbol_miss result_small_symbol_miss_nallow

Small tables (< 256 entries) with multiple tables

integer

result_many_int_hit result_many_int_hit_nallow result_many_int_miss result_many_int_miss_nallow

cstr

result_many_cstr_hit result_many_cstr_hit_nallow result_many_cstr_miss result_many_cstr_miss_nallow

Ruby String

result_many_rstr_hit result_many_rstr_hit_nallow result_many_rstr_miss result_many_rstr_miss_nallow

Ruby Symbols

result_many_symbol_hit result_many_symbol_hit_nallow result_many_symbol_miss result_many_symbol_miss_nallow

Insertion overhead

Hash table requires rehash at insertion (and sometimes deletion). So that I measured an insertion overhead.

Benchmark is described by the following Ruby code but implemented by C to remove Ruby execution overhead.

tables = MAX_TABLE.map{ make_empty_table }
obj = make_obj_for_table_type
measure{
  tables.each{|table|
    table.insert(obj)
  }
}

I can only measure ffalcon_64 and vlad2 (and original st).

insert_1000 insert_1000_ffalcon_vlad insert_32

insert_average_median insert_max insert_sum

Seeing results, there are no big difference between ffalcon_64 and vlad2. But both implementations are faster than original st.

size trunk ffalcon ffalcon_64 vlad vlad2
0 192 128 144 256 160
1 192 128 144 256 160
2 192 128 144 256 160
3 192 128 144 256 160
4 192 128 144 256 160
5 192 224 240 256 256
6 192 224 240 256 256
7 512 224 240 256 256
8 560 224 240 256 256
9 608 400 416 512 448
10 656 400 416 512 448
11 704 400 416 512 448
12 752 400 416 512 448
13 800 400 416 512 448
14 848 400 416 512 448
15 896 544 560 512 448
16 944 544 560 512 448
17 992 544 560 960 896
18 1040 544 560 960 896
19 1088 544 560 960 896
20 1136 544 560 960 896
21 1184 792 808 960 896
22 1232 792 808 960 896
23 1280 792 808 960 896
24 1328 792 808 960 896
25 1376 792 808 960 896
26 1424 792 808 960 896
27 1472 792 808 960 896
28 1520 792 808 960 896
29 1568 792 808 960 896
30 1616 1056 1072 960 896
31 1664 1056 1072 960 896
32 1712 1056 1072 960 896
33 1760 1056 1072 1856 1728
34 1808 1056 1072 1856 1728
35 1856 1056 1072 1856 1728
36 1904 1056 1072 1856 1728
37 1952 1056 1072 1856 1728
38 2000 1056 1072 1856 1728
39 2048 1056 1072 1856 1728
40 2096 1056 1072 1856 1728
41 2144 1552 1568 1856 1728
42 2192 1552 1568 1856 1728
43 2240 1552 1568 1856 1728
44 2288 1552 1568 1856 1728
45 2336 1552 1568 1856 1728
46 2384 1552 1568 1856 1728
47 2432 1552 1568 1856 1728
48 2480 1552 1568 1856 1728
49 2528 1552 1568 1856 1728
50 2576 1552 1568 1856 1728
51 2624 1552 1568 1856 1728
52 2672 1552 1568 1856 1728
53 2720 1552 1568 1856 1728
54 2768 1552 1568 1856 1728
55 2816 1552 1568 1856 1728
56 2864 1552 1568 1856 1728
57 2912 1552 1568 1856 1728
58 2960 1552 1568 1856 1728
59 3008 2080 2096 1856 1728
60 3056 2080 2096 1856 1728
61 3104 2080 2096 1856 1728
62 3152 2080 2096 1856 1728
63 3200 2080 2096 1856 1728
64 3248 2080 2096 1856 1728
65 3296 2080 2096 3648 3392
66 3344 2080 2096 3648 3392
67 3392 2080 2096 3648 3392
68 3440 2080 2096 3648 3392
69 3488 2080 2096 3648 3392
70 3536 2080 2096 3648 3392
71 3584 2080 2096 3648 3392
72 3632 2080 2096 3648 3392
73 3680 2080 2096 3648 3392
74 3728 2080 2096 3648 3392
75 3776 2080 2096 3648 3392
76 3824 2080 2096 3648 3392
77 3872 2080 2096 3648 3392
78 3920 2080 2096 3648 3392
79 3968 2080 2096 3648 3392
80 4016 2080 2096 3648 3392
81 4064 3096 3112 3648 3392
82 4240 3096 3112 3648 3392
83 4288 3096 3112 3648 3392
84 4336 3096 3112 3648 3392
85 4384 3096 3112 3648 3392
86 4432 3096 3112 3648 3392
87 4480 3096 3112 3648 3392
88 4528 3096 3112 3648 3392
89 4576 3096 3112 3648 3392
90 4624 3096 3112 3648 3392
91 4672 3096 3112 3648 3392
92 4720 3096 3112 3648 3392
93 4768 3096 3112 3648 3392
94 4816 3096 3112 3648 3392
95 4864 3096 3112 3648 3392
96 4912 3096 3112 3648 3392
97 4960 3096 3112 3648 3392
98 5008 3096 3112 3648 3392
99 5056 3096 3112 3648 3392
100 5104 3096 3112 3648 3392
101 5152 3096 3112 3648 3392
102 5200 3096 3112 3648 3392
103 5248 3096 3112 3648 3392
104 5296 3096 3112 3648 3392
105 5344 3096 3112 3648 3392
106 5392 3096 3112 3648 3392
107 5440 3096 3112 3648 3392
108 5488 3096 3112 3648 3392
109 5536 3096 3112 3648 3392
110 5584 3096 3112 3648 3392
111 5632 3096 3112 3648 3392
112 5680 3096 3112 3648 3392
113 5728 3096 3112 3648 3392
114 5776 3096 3112 3648 3392
115 5824 3096 3112 3648 3392
116 5872 3096 3112 3648 3392
117 5920 3096 3112 3648 3392
118 5968 4128 4144 3648 3392
119 6016 4128 4144 3648 3392
120 6064 4128 4144 3648 3392
121 6112 4128 4144 3648 3392
122 6160 4128 4144 3648 3392
123 6208 4128 4144 3648 3392
124 6256 4128 4144 3648 3392
125 6304 4128 4144 3648 3392
126 6352 4128 4144 3648 3392
127 6400 4128 4144 3648 3392
128 6448 4128 4144 3648 3392
129 6496 4128 4144 8256 7232
130 6544 4128 4144 8256 7232
131 6592 4128 4144 8256 7232
132 6640 4128 4144 8256 7232
133 6688 4128 4144 8256 7232
134 6736 4128 4144 8256 7232
135 6784 4128 4144 8256 7232
136 6832 4128 4144 8256 7232
137 6880 4128 4144 8256 7232
138 6928 4128 4144 8256 7232
139 6976 4128 4144 8256 7232
140 7024 4128 4144 8256 7232
141 7072 4128 4144 8256 7232
142 7120 4128 4144 8256 7232
143 7168 4128 4144 8256 7232
144 7216 4128 4144 8256 7232
145 7264 4128 4144 8256 7232
146 7312 4128 4144 8256 7232
147 7360 4128 4144 8256 7232
148 7408 4128 4144 8256 7232
149 7456 4128 4144 8256 7232
150 7504 4128 4144 8256 7232
151 7552 4128 4144 8256 7232
152 7600 4128 4144 8256 7232
153 7648 4128 4144 8256 7232
154 7696 4128 4144 8256 7232
155 7744 4128 4144 8256 7232
156 7792 4128 4144 8256 7232
157 7840 4128 4144 8256 7232
158 7888 4128 4144 8256 7232
159 7936 4128 4144 8256 7232
160 7984 4128 4144 8256 7232
161 8032 5656 5672 8256 7232
162 8336 5656 5672 8256 7232
163 8384 5656 5672 8256 7232
164 8432 5656 5672 8256 7232
165 8480 5656 5672 8256 7232
166 8528 5656 5672 8256 7232
167 8576 5656 5672 8256 7232
168 8624 5656 5672 8256 7232
169 8672 5656 5672 8256 7232
170 8720 5656 5672 8256 7232
171 8768 5656 5672 8256 7232
172 8816 5656 5672 8256 7232
173 8864 5656 5672 8256 7232
174 8912 5656 5672 8256 7232
175 8960 5656 5672 8256 7232
176 9008 5656 5672 8256 7232
177 9056 5656 5672 8256 7232
178 9104 5656 5672 8256 7232
179 9152 5656 5672 8256 7232
180 9200 5656 5672 8256 7232
181 9248 5656 5672 8256 7232
182 9296 5656 5672 8256 7232
183 9344 5656 5672 8256 7232
184 9392 5656 5672 8256 7232
185 9440 5656 5672 8256 7232
186 9488 5656 5672 8256 7232
187 9536 5656 5672 8256 7232
188 9584 5656 5672 8256 7232
189 9632 5656 5672 8256 7232
190 9680 5656 5672 8256 7232
191 9728 5656 5672 8256 7232
192 9776 5656 5672 8256 7232
193 9824 5656 5672 8256 7232
194 9872 5656 5672 8256 7232
195 9920 5656 5672 8256 7232
196 9968 5656 5672 8256 7232
197 10016 5656 5672 8256 7232
198 10064 5656 5672 8256 7232
199 10112 5656 5672 8256 7232
200 10160 5656 5672 8256 7232
201 10208 5656 5672 8256 7232
202 10256 5656 5672 8256 7232
203 10304 5656 5672 8256 7232
204 10352 5656 5672 8256 7232
205 10400 5656 5672 8256 7232
206 10448 5656 5672 8256 7232
207 10496 5656 5672 8256 7232
208 10544 5656 5672 8256 7232
209 10592 5656 5672 8256 7232
210 10640 5656 5672 8256 7232
211 10688 5656 5672 8256 7232
212 10736 5656 5672 8256 7232
213 10784 5656 5672 8256 7232
214 10832 8208 8224 8256 7232
215 10880 8208 8224 8256 7232
216 10928 8208 8224 8256 7232
217 10976 8208 8224 8256 7232
218 11024 8208 8224 8256 7232
219 11072 8208 8224 8256 7232
220 11120 8208 8224 8256 7232
221 11168 8208 8224 8256 7232
222 11216 8208 8224 8256 7232
223 11264 8208 8224 8256 7232
224 11312 8208 8224 8256 7232
225 11360 8208 8224 8256 7232
226 11408 8208 8224 8256 7232
227 11456 8208 8224 8256 7232
228 11504 8208 8224 8256 7232
229 11552 8208 8224 8256 7232
230 11600 8208 8224 8256 7232
231 11648 8208 8224 8256 7232
232 11696 8208 8224 8256 7232
233 11744 8208 8224 8256 7232
234 11792 8208 8224 8256 7232
235 11840 8208 8224 8256 7232
236 11888 8208 8224 8256 7232
237 11936 8208 8224 8256 7232
238 11984 8208 8224 8256 7232
239 12032 8208 8224 8256 7232
240 12080 8208 8224 8256 7232
241 12128 8208 8224 8256 7232
242 12176 8208 8224 8256 7232
243 12224 8208 8224 8256 7232
244 12272 8208 8224 8256 7232
245 12320 8208 8224 8256 7232
246 12368 8208 8224 8256 7232
247 12416 8208 8224 8256 7232
248 12464 8208 8224 8256 7232
249 12512 8208 8224 8256 7232
250 12560 8208 8224 8256 7232
251 12608 8208 8224 8256 7232
252 12656 8208 8224 8256 7232
253 12704 8208 8224 8256 7232
254 12752 8208 8224 8256 7232
255 12800 8208 8224 8256 7232
256 12848 8208 8224 8256 7232
257 12896 8208 8224 16448 14400
258 12944 8208 8224 16448 14400
259 12992 8208 8224 16448 14400
260 13040 8208 8224 16448 14400
261 13088 8208 8224 16448 14400
262 13136 8208 8224 16448 14400
263 13184 8208 8224 16448 14400
264 13232 8208 8224 16448 14400
265 13280 8208 8224 16448 14400
266 13328 8208 8224 16448 14400
267 13376 8208 8224 16448 14400
268 13424 8208 8224 16448 14400
269 13472 8208 8224 16448 14400
270 13520 8208 8224 16448 14400
271 13568 8208 8224 16448 14400
272 13616 8208 8224 16448 14400
273 13664 8208 8224 16448 14400
274 13712 8208 8224 16448 14400
275 13760 8208 8224 16448 14400
276 13808 8208 8224 16448 14400
277 13856 8208 8224 16448 14400
278 13904 8208 8224 16448 14400
279 13952 8208 8224 16448 14400
280 14000 8208 8224 16448 14400
281 14048 8208 8224 16448 14400
282 14096 8208 8224 16448 14400
283 14144 8208 8224 16448 14400
284 14192 8208 8224 16448 14400
285 14240 8208 8224 16448 14400
286 14288 8208 8224 16448 14400
287 14336 8208 8224 16448 14400
288 14384 8208 8224 16448 14400
289 14432 8208 8224 16448 14400
290 14480 8208 8224 16448 14400
291 14528 8208 8224 16448 14400
292 14576 8208 8224 16448 14400
293 14624 8208 8224 16448 14400
294 14672 8208 8224 16448 14400
295 14720 8208 8224 16448 14400
296 14768 8208 8224 16448 14400
297 14816 8208 8224 16448 14400
298 14864 8208 8224 16448 14400
299 14912 12304 12320 16448 14400
300 14960 12304 12320 16448 14400
301 15008 12304 12320 16448 14400
302 15056 12304 12320 16448 14400
303 15104 12304 12320 16448 14400
304 15152 12304 12320 16448 14400
305 15200 12304 12320 16448 14400
306 15248 12304 12320 16448 14400
307 15296 12304 12320 16448 14400
308 15344 12304 12320 16448 14400
309 15392 12304 12320 16448 14400
310 15440 12304 12320 16448 14400
311 15488 12304 12320 16448 14400
312 15536 12304 12320 16448 14400
313 15584 12304 12320 16448 14400
314 15632 12304 12320 16448 14400
315 15680 12304 12320 16448 14400
316 15728 12304 12320 16448 14400
317 15776 12304 12320 16448 14400
318 15824 12304 12320 16448 14400
319 15872 12304 12320 16448 14400
320 15920 12304 12320 16448 14400
321 15968 12304 12320 16448 14400
322 16528 12304 12320 16448 14400
323 16576 12304 12320 16448 14400
324 16624 12304 12320 16448 14400
325 16672 12304 12320 16448 14400
326 16720 12304 12320 16448 14400
327 16768 12304 12320 16448 14400
328 16816 12304 12320 16448 14400
329 16864 12304 12320 16448 14400
330 16912 12304 12320 16448 14400
331 16960 12304 12320 16448 14400
332 17008 12304 12320 16448 14400
333 17056 12304 12320 16448 14400
334 17104 12304 12320 16448 14400
335 17152 12304 12320 16448 14400
336 17200 12304 12320 16448 14400
337 17248 12304 12320 16448 14400
338 17296 12304 12320 16448 14400
339 17344 12304 12320 16448 14400
340 17392 12304 12320 16448 14400
341 17440 12304 12320 16448 14400
342 17488 12304 12320 16448 14400
343 17536 12304 12320 16448 14400
344 17584 12304 12320 16448 14400
345 17632 12304 12320 16448 14400
346 17680 12304 12320 16448 14400
347 17728 12304 12320 16448 14400
348 17776 12304 12320 16448 14400
349 17824 12304 12320 16448 14400
350 17872 12304 12320 16448 14400
351 17920 12304 12320 16448 14400
352 17968 12304 12320 16448 14400
353 18016 12304 12320 16448 14400
354 18064 12304 12320 16448 14400
355 18112 12304 12320 16448 14400
356 18160 12304 12320 16448 14400
357 18208 12304 12320 16448 14400
358 18256 12304 12320 16448 14400
359 18304 12304 12320 16448 14400
360 18352 12304 12320 16448 14400
361 18400 12304 12320 16448 14400
362 18448 12304 12320 16448 14400
363 18496 12304 12320 16448 14400
364 18544 12304 12320 16448 14400
365 18592 12304 12320 16448 14400
366 18640 12304 12320 16448 14400
367 18688 12304 12320 16448 14400
368 18736 12304 12320 16448 14400
369 18784 12304 12320 16448 14400
370 18832 12304 12320 16448 14400
371 18880 12304 12320 16448 14400
372 18928 12304 12320 16448 14400
373 18976 12304 12320 16448 14400
374 19024 12304 12320 16448 14400
375 19072 12304 12320 16448 14400
376 19120 12304 12320 16448 14400
377 19168 12304 12320 16448 14400
378 19216 12304 12320 16448 14400
379 19264 12304 12320 16448 14400
380 19312 12304 12320 16448 14400
381 19360 12304 12320 16448 14400
382 19408 12304 12320 16448 14400
383 19456 12304 12320 16448 14400
384 19504 12304 12320 16448 14400
385 19552 12304 12320 16448 14400
386 19600 12304 12320 16448 14400
387 19648 12304 12320 16448 14400
388 19696 12304 12320 16448 14400
389 19744 12304 12320 16448 14400
390 19792 12304 12320 16448 14400
391 19840 12304 12320 16448 14400
392 19888 12304 12320 16448 14400
393 19936 12304 12320 16448 14400
394 19984 12304 12320 16448 14400
395 20032 12304 12320 16448 14400
396 20080 12304 12320 16448 14400
397 20128 12304 12320 16448 14400
398 20176 12304 12320 16448 14400
399 20224 12304 12320 16448 14400
400 20272 12304 12320 16448 14400
401 20320 12304 12320 16448 14400
402 20368 12304 12320 16448 14400
403 20416 12304 12320 16448 14400
404 20464 12304 12320 16448 14400
405 20512 12304 12320 16448 14400
406 20560 12304 12320 16448 14400
407 20608 12304 12320 16448 14400
408 20656 12304 12320 16448 14400
409 20704 12304 12320 16448 14400
410 20752 12304 12320 16448 14400
411 20800 12304 12320 16448 14400
412 20848 12304 12320 16448 14400
413 20896 12304 12320 16448 14400
414 20944 12304 12320 16448 14400
415 20992 12304 12320 16448 14400
416 21040 12304 12320 16448 14400
417 21088 12304 12320 16448 14400
418 21136 12304 12320 16448 14400
419 21184 12304 12320 16448 14400
420 21232 12304 12320 16448 14400
421 21280 12304 12320 16448 14400
422 21328 12304 12320 16448 14400
423 21376 12304 12320 16448 14400
424 21424 12304 12320 16448 14400
425 21472 12304 12320 16448 14400
426 21520 12304 12320 16448 14400
427 21568 16408 16424 16448 14400
428 21616 16408 16424 16448 14400
429 21664 16408 16424 16448 14400
430 21712 16408 16424 16448 14400
431 21760 16408 16424 16448 14400
432 21808 16408 16424 16448 14400
433 21856 16408 16424 16448 14400
434 21904 16408 16424 16448 14400
435 21952 16408 16424 16448 14400
436 22000 16408 16424 16448 14400
437 22048 16408 16424 16448 14400
438 22096 16408 16424 16448 14400
439 22144 16408 16424 16448 14400
440 22192 16408 16424 16448 14400
441 22240 16408 16424 16448 14400
442 22288 16408 16424 16448 14400
443 22336 16408 16424 16448 14400
444 22384 16408 16424 16448 14400
445 22432 16408 16424 16448 14400
446 22480 16408 16424 16448 14400
447 22528 16408 16424 16448 14400
448 22576 16408 16424 16448 14400
449 22624 16408 16424 16448 14400
450 22672 16408 16424 16448 14400
451 22720 16408 16424 16448 14400
452 22768 16408 16424 16448 14400
453 22816 16408 16424 16448 14400
454 22864 16408 16424 16448 14400
455 22912 16408 16424 16448 14400
456 22960 16408 16424 16448 14400
457 23008 16408 16424 16448 14400
458 23056 16408 16424 16448 14400
459 23104 16408 16424 16448 14400
460 23152 16408 16424 16448 14400
461 23200 16408 16424 16448 14400
462 23248 16408 16424 16448 14400
463 23296 16408 16424 16448 14400
464 23344 16408 16424 16448 14400
465 23392 16408 16424 16448 14400
466 23440 16408 16424 16448 14400
467 23488 16408 16424 16448 14400
468 23536 16408 16424 16448 14400
469 23584 16408 16424 16448 14400
470 23632 16408 16424 16448 14400
471 23680 16408 16424 16448 14400
472 23728 16408 16424 16448 14400
473 23776 16408 16424 16448 14400
474 23824 16408 16424 16448 14400
475 23872 16408 16424 16448 14400
476 23920 16408 16424 16448 14400
477 23968 16408 16424 16448 14400
478 24016 16408 16424 16448 14400
479 24064 16408 16424 16448 14400
480 24112 16408 16424 16448 14400
481 24160 16408 16424 16448 14400
482 24208 16408 16424 16448 14400
483 24256 16408 16424 16448 14400
484 24304 16408 16424 16448 14400
485 24352 16408 16424 16448 14400
486 24400 16408 16424 16448 14400
487 24448 16408 16424 16448 14400
488 24496 16408 16424 16448 14400
489 24544 16408 16424 16448 14400
490 24592 16408 16424 16448 14400
491 24640 16408 16424 16448 14400
492 24688 16408 16424 16448 14400
493 24736 16408 16424 16448 14400
494 24784 16408 16424 16448 14400
495 24832 16408 16424 16448 14400
496 24880 16408 16424 16448 14400
497 24928 16408 16424 16448 14400
498 24976 16408 16424 16448 14400
499 25024 16408 16424 16448 14400
500 25072 16408 16424 16448 14400
501 25120 16408 16424 16448 14400
502 25168 16408 16424 16448 14400
503 25216 16408 16424 16448 14400
504 25264 16408 16424 16448 14400
505 25312 16408 16424 16448 14400
506 25360 16408 16424 16448 14400
507 25408 16408 16424 16448 14400
508 25456 16408 16424 16448 14400
509 25504 16408 16424 16448 14400
510 25552 16408 16424 16448 14400
511 25600 16408 16424 16448 14400
512 25648 16408 16424 16448 14400
513 25696 16408 16424 32832 28736
514 25744 16408 16424 32832 28736
515 25792 16408 16424 32832 28736
516 25840 16408 16424 32832 28736
517 25888 16408 16424 32832 28736
518 25936 16408 16424 32832 28736
519 25984 16408 16424 32832 28736
520 26032 16408 16424 32832 28736
521 26080 16408 16424 32832 28736
522 26128 16408 16424 32832 28736
523 26176 16408 16424 32832 28736
524 26224 16408 16424 32832 28736
525 26272 16408 16424 32832 28736
526 26320 16408 16424 32832 28736
527 26368 16408 16424 32832 28736
528 26416 16408 16424 32832 28736
529 26464 16408 16424 32832 28736
530 26512 16408 16424 32832 28736
531 26560 16408 16424 32832 28736
532 26608 16408 16424 32832 28736
533 26656 16408 16424 32832 28736
534 26704 16408 16424 32832 28736
535 26752 16408 16424 32832 28736
536 26800 16408 16424 32832 28736
537 26848 16408 16424 32832 28736
538 26896 16408 16424 32832 28736
539 26944 16408 16424 32832 28736
540 26992 16408 16424 32832 28736
541 27040 16408 16424 32832 28736
542 27088 16408 16424 32832 28736
543 27136 16408 16424 32832 28736
544 27184 16408 16424 32832 28736
545 27232 16408 16424 32832 28736
546 27280 16408 16424 32832 28736
547 27328 16408 16424 32832 28736
548 27376 16408 16424 32832 28736
549 27424 16408 16424 32832 28736
550 27472 16408 16424 32832 28736
551 27520 16408 16424 32832 28736
552 27568 16408 16424 32832 28736
553 27616 16408 16424 32832 28736
554 27664 16408 16424 32832 28736
555 27712 16408 16424 32832 28736
556 27760 16408 16424 32832 28736
557 27808 16408 16424 32832 28736
558 27856 16408 16424 32832 28736
559 27904 16408 16424 32832 28736
560 27952 16408 16424 32832 28736
561 28000 16408 16424 32832 28736
562 28048 16408 16424 32832 28736
563 28096 16408 16424 32832 28736
564 28144 16408 16424 32832 28736
565 28192 16408 16424 32832 28736
566 28240 16408 16424 32832 28736
567 28288 16408 16424 32832 28736
568 28336 16408 16424 32832 28736
569 28384 16408 16424 32832 28736
570 28432 16408 16424 32832 28736
571 28480 16408 16424 32832 28736
572 28528 16408 16424 32832 28736
573 28576 16408 16424 32832 28736
574 28624 16408 16424 32832 28736
575 28672 16408 16424 32832 28736
576 28720 16408 16424 32832 28736
577 28768 16408 16424 32832 28736
578 28816 16408 16424 32832 28736
579 28864 16408 16424 32832 28736
580 28912 16408 16424 32832 28736
581 28960 16408 16424 32832 28736
582 29008 16408 16424 32832 28736
583 29056 16408 16424 32832 28736
584 29104 16408 16424 32832 28736
585 29152 16408 16424 32832 28736
586 29200 16408 16424 32832 28736
587 29248 16408 16424 32832 28736
588 29296 16408 16424 32832 28736
589 29344 16408 16424 32832 28736
590 29392 16408 16424 32832 28736
591 29440 16408 16424 32832 28736
592 29488 16408 16424 32832 28736
593 29536 16408 16424 32832 28736
594 29584 16408 16424 32832 28736
595 29632 16408 16424 32832 28736
596 29680 16408 16424 32832 28736
597 29728 16408 16424 32832 28736
598 29776 24600 24616 32832 28736
599 29824 24600 24616 32832 28736
600 29872 24600 24616 32832 28736
601 29920 24600 24616 32832 28736
602 29968 24600 24616 32832 28736
603 30016 24600 24616 32832 28736
604 30064 24600 24616 32832 28736
605 30112 24600 24616 32832 28736
606 30160 24600 24616 32832 28736
607 30208 24600 24616 32832 28736
608 30256 24600 24616 32832 28736
609 30304 24600 24616 32832 28736
610 30352 24600 24616 32832 28736
611 30400 24600 24616 32832 28736
612 30448 24600 24616 32832 28736
613 30496 24600 24616 32832 28736
614 30544 24600 24616 32832 28736
615 30592 24600 24616 32832 28736
616 30640 24600 24616 32832 28736
617 30688 24600 24616 32832 28736
618 30736 24600 24616 32832 28736
619 30784 24600 24616 32832 28736
620 30832 24600 24616 32832 28736
621 30880 24600 24616 32832 28736
622 30928 24600 24616 32832 28736
623 30976 24600 24616 32832 28736
624 31024 24600 24616 32832 28736
625 31072 24600 24616 32832 28736
626 31120 24600 24616 32832 28736
627 31168 24600 24616 32832 28736
628 31216 24600 24616 32832 28736
629 31264 24600 24616 32832 28736
630 31312 24600 24616 32832 28736
631 31360 24600 24616 32832 28736
632 31408 24600 24616 32832 28736
633 31456 24600 24616 32832 28736
634 31504 24600 24616 32832 28736
635 31552 24600 24616 32832 28736
636 31600 24600 24616 32832 28736
637 31648 24600 24616 32832 28736
638 31696 24600 24616 32832 28736
639 31744 24600 24616 32832 28736
640 31792 24600 24616 32832 28736
641 31840 24600 24616 32832 28736
642 32912 24600 24616 32832 28736
643 32960 24600 24616 32832 28736
644 33008 24600 24616 32832 28736
645 33056 24600 24616 32832 28736
646 33104 24600 24616 32832 28736
647 33152 24600 24616 32832 28736
648 33200 24600 24616 32832 28736
649 33248 24600 24616 32832 28736
650 33296 24600 24616 32832 28736
651 33344 24600 24616 32832 28736
652 33392 24600 24616 32832 28736
653 33440 24600 24616 32832 28736
654 33488 24600 24616 32832 28736
655 33536 24600 24616 32832 28736
656 33584 24600 24616 32832 28736
657 33632 24600 24616 32832 28736
658 33680 24600 24616 32832 28736
659 33728 24600 24616 32832 28736
660 33776 24600 24616 32832 28736
661 33824 24600 24616 32832 28736
662 33872 24600 24616 32832 28736
663 33920 24600 24616 32832 28736
664 33968 24600 24616 32832 28736
665 34016 24600 24616 32832 28736
666 34064 24600 24616 32832 28736
667 34112 24600 24616 32832 28736
668 34160 24600 24616 32832 28736
669 34208 24600 24616 32832 28736
670 34256 24600 24616 32832 28736
671 34304 24600 24616 32832 28736
672 34352 24600 24616 32832 28736
673 34400 24600 24616 32832 28736
674 34448 24600 24616 32832 28736
675 34496 24600 24616 32832 28736
676 34544 24600 24616 32832 28736
677 34592 24600 24616 32832 28736
678 34640 24600 24616 32832 28736
679 34688 24600 24616 32832 28736
680 34736 24600 24616 32832 28736
681 34784 24600 24616 32832 28736
682 34832 24600 24616 32832 28736
683 34880 24600 24616 32832 28736
684 34928 24600 24616 32832 28736
685 34976 24600 24616 32832 28736
686 35024 24600 24616 32832 28736
687 35072 24600 24616 32832 28736
688 35120 24600 24616 32832 28736
689 35168 24600 24616 32832 28736
690 35216 24600 24616 32832 28736
691 35264 24600 24616 32832 28736
692 35312 24600 24616 32832 28736
693 35360 24600 24616 32832 28736
694 35408 24600 24616 32832 28736
695 35456 24600 24616 32832 28736
696 35504 24600 24616 32832 28736
697 35552 24600 24616 32832 28736
698 35600 24600 24616 32832 28736
699 35648 24600 24616 32832 28736
700 35696 24600 24616 32832 28736
701 35744 24600 24616 32832 28736
702 35792 24600 24616 32832 28736
703 35840 24600 24616 32832 28736
704 35888 24600 24616 32832 28736
705 35936 24600 24616 32832 28736
706 35984 24600 24616 32832 28736
707 36032 24600 24616 32832 28736
708 36080 24600 24616 32832 28736
709 36128 24600 24616 32832 28736
710 36176 24600 24616 32832 28736
711 36224 24600 24616 32832 28736
712 36272 24600 24616 32832 28736
713 36320 24600 24616 32832 28736
714 36368 24600 24616 32832 28736
715 36416 24600 24616 32832 28736
716 36464 24600 24616 32832 28736
717 36512 24600 24616 32832 28736
718 36560 24600 24616 32832 28736
719 36608 24600 24616 32832 28736
720 36656 24600 24616 32832 28736
721 36704 24600 24616 32832 28736
722 36752 24600 24616 32832 28736
723 36800 24600 24616 32832 28736
724 36848 24600 24616 32832 28736
725 36896 24600 24616 32832 28736
726 36944 24600 24616 32832 28736
727 36992 24600 24616 32832 28736
728 37040 24600 24616 32832 28736
729 37088 24600 24616 32832 28736
730 37136 24600 24616 32832 28736
731 37184 24600 24616 32832 28736
732 37232 24600 24616 32832 28736
733 37280 24600 24616 32832 28736
734 37328 24600 24616 32832 28736
735 37376 24600 24616 32832 28736
736 37424 24600 24616 32832 28736
737 37472 24600 24616 32832 28736
738 37520 24600 24616 32832 28736
739 37568 24600 24616 32832 28736
740 37616 24600 24616 32832 28736
741 37664 24600 24616 32832 28736
742 37712 24600 24616 32832 28736
743 37760 24600 24616 32832 28736
744 37808 24600 24616 32832 28736
745 37856 24600 24616 32832 28736
746 37904 24600 24616 32832 28736
747 37952 24600 24616 32832 28736
748 38000 24600 24616 32832 28736
749 38048 24600 24616 32832 28736
750 38096 24600 24616 32832 28736
751 38144 24600 24616 32832 28736
752 38192 24600 24616 32832 28736
753 38240 24600 24616 32832 28736
754 38288 24600 24616 32832 28736
755 38336 24600 24616 32832 28736
756 38384 24600 24616 32832 28736
757 38432 24600 24616 32832 28736
758 38480 24600 24616 32832 28736
759 38528 24600 24616 32832 28736
760 38576 24600 24616 32832 28736
761 38624 24600 24616 32832 28736
762 38672 24600 24616 32832 28736
763 38720 24600 24616 32832 28736
764 38768 24600 24616 32832 28736
765 38816 24600 24616 32832 28736
766 38864 24600 24616 32832 28736
767 38912 24600 24616 32832 28736
768 38960 24600 24616 32832 28736
769 39008 24600 24616 32832 28736
770 39056 24600 24616 32832 28736
771 39104 24600 24616 32832 28736
772 39152 24600 24616 32832 28736
773 39200 24600 24616 32832 28736
774 39248 24600 24616 32832 28736
775 39296 24600 24616 32832 28736
776 39344 24600 24616 32832 28736
777 39392 24600 24616 32832 28736
778 39440 24600 24616 32832 28736
779 39488 24600 24616 32832 28736
780 39536 24600 24616 32832 28736
781 39584 24600 24616 32832 28736
782 39632 24600 24616 32832 28736
783 39680 24600 24616 32832 28736
784 39728 24600 24616 32832 28736
785 39776 24600 24616 32832 28736
786 39824 24600 24616 32832 28736
787 39872 24600 24616 32832 28736
788 39920 24600 24616 32832 28736
789 39968 24600 24616 32832 28736
790 40016 24600 24616 32832 28736
791 40064 24600 24616 32832 28736
792 40112 24600 24616 32832 28736
793 40160 24600 24616 32832 28736
794 40208 24600 24616 32832 28736
795 40256 24600 24616 32832 28736
796 40304 24600 24616 32832 28736
797 40352 24600 24616 32832 28736
798 40400 24600 24616 32832 28736
799 40448 24600 24616 32832 28736
800 40496 24600 24616 32832 28736
801 40544 24600 24616 32832 28736
802 40592 24600 24616 32832 28736
803 40640 24600 24616 32832 28736
804 40688 24600 24616 32832 28736
805 40736 24600 24616 32832 28736
806 40784 24600 24616 32832 28736
807 40832 24600 24616 32832 28736
808 40880 24600 24616 32832 28736
809 40928 24600 24616 32832 28736
810 40976 24600 24616 32832 28736
811 41024 24600 24616 32832 28736
812 41072 24600 24616 32832 28736
813 41120 24600 24616 32832 28736
814 41168 24600 24616 32832 28736
815 41216 24600 24616 32832 28736
816 41264 24600 24616 32832 28736
817 41312 24600 24616 32832 28736
818 41360 24600 24616 32832 28736
819 41408 24600 24616 32832 28736
820 41456 24600 24616 32832 28736
821 41504 24600 24616 32832 28736
822 41552 24600 24616 32832 28736
823 41600 24600 24616 32832 28736
824 41648 24600 24616 32832 28736
825 41696 24600 24616 32832 28736
826 41744 24600 24616 32832 28736
827 41792 24600 24616 32832 28736
828 41840 24600 24616 32832 28736
829 41888 24600 24616 32832 28736
830 41936 24600 24616 32832 28736
831 41984 24600 24616 32832 28736
832 42032 24600 24616 32832 28736
833 42080 24600 24616 32832 28736
834 42128 24600 24616 32832 28736
835 42176 24600 24616 32832 28736
836 42224 24600 24616 32832 28736
837 42272 24600 24616 32832 28736
838 42320 24600 24616 32832 28736
839 42368 24600 24616 32832 28736
840 42416 24600 24616 32832 28736
841 42464 24600 24616 32832 28736
842 42512 24600 24616 32832 28736
843 42560 24600 24616 32832 28736
844 42608 24600 24616 32832 28736
845 42656 24600 24616 32832 28736
846 42704 24600 24616 32832 28736
847 42752 24600 24616 32832 28736
848 42800 24600 24616 32832 28736
849 42848 24600 24616 32832 28736
850 42896 24600 24616 32832 28736
851 42944 24600 24616 32832 28736
852 42992 24600 24616 32832 28736
853 43040 24600 24616 32832 28736
854 43088 32784 32800 32832 28736
855 43136 32784 32800 32832 28736
856 43184 32784 32800 32832 28736
857 43232 32784 32800 32832 28736
858 43280 32784 32800 32832 28736
859 43328 32784 32800 32832 28736
860 43376 32784 32800 32832 28736
861 43424 32784 32800 32832 28736
862 43472 32784 32800 32832 28736
863 43520 32784 32800 32832 28736
864 43568 32784 32800 32832 28736
865 43616 32784 32800 32832 28736
866 43664 32784 32800 32832 28736
867 43712 32784 32800 32832 28736
868 43760 32784 32800 32832 28736
869 43808 32784 32800 32832 28736
870 43856 32784 32800 32832 28736
871 43904 32784 32800 32832 28736
872 43952 32784 32800 32832 28736
873 44000 32784 32800 32832 28736
874 44048 32784 32800 32832 28736
875 44096 32784 32800 32832 28736
876 44144 32784 32800 32832 28736
877 44192 32784 32800 32832 28736
878 44240 32784 32800 32832 28736
879 44288 32784 32800 32832 28736
880 44336 32784 32800 32832 28736
881 44384 32784 32800 32832 28736
882 44432 32784 32800 32832 28736
883 44480 32784 32800 32832 28736
884 44528 32784 32800 32832 28736
885 44576 32784 32800 32832 28736
886 44624 32784 32800 32832 28736
887 44672 32784 32800 32832 28736
888 44720 32784 32800 32832 28736
889 44768 32784 32800 32832 28736
890 44816 32784 32800 32832 28736
891 44864 32784 32800 32832 28736
892 44912 32784 32800 32832 28736
893 44960 32784 32800 32832 28736
894 45008 32784 32800 32832 28736
895 45056 32784 32800 32832 28736
896 45104 32784 32800 32832 28736
897 45152 32784 32800 32832 28736
898 45200 32784 32800 32832 28736
899 45248 32784 32800 32832 28736
900 45296 32784 32800 32832 28736
901 45344 32784 32800 32832 28736
902 45392 32784 32800 32832 28736
903 45440 32784 32800 32832 28736
904 45488 32784 32800 32832 28736
905 45536 32784 32800 32832 28736
906 45584 32784 32800 32832 28736
907 45632 32784 32800 32832 28736
908 45680 32784 32800 32832 28736
909 45728 32784 32800 32832 28736
910 45776 32784 32800 32832 28736
911 45824 32784 32800 32832 28736
912 45872 32784 32800 32832 28736
913 45920 32784 32800 32832 28736
914 45968 32784 32800 32832 28736
915 46016 32784 32800 32832 28736
916 46064 32784 32800 32832 28736
917 46112 32784 32800 32832 28736
918 46160 32784 32800 32832 28736
919 46208 32784 32800 32832 28736
920 46256 32784 32800 32832 28736
921 46304 32784 32800 32832 28736
922 46352 32784 32800 32832 28736
923 46400 32784 32800 32832 28736
924 46448 32784 32800 32832 28736
925 46496 32784 32800 32832 28736
926 46544 32784 32800 32832 28736
927 46592 32784 32800 32832 28736
928 46640 32784 32800 32832 28736
929 46688 32784 32800 32832 28736
930 46736 32784 32800 32832 28736
931 46784 32784 32800 32832 28736
932 46832 32784 32800 32832 28736
933 46880 32784 32800 32832 28736
934 46928 32784 32800 32832 28736
935 46976 32784 32800 32832 28736
936 47024 32784 32800 32832 28736
937 47072 32784 32800 32832 28736
938 47120 32784 32800 32832 28736
939 47168 32784 32800 32832 28736
940 47216 32784 32800 32832 28736
941 47264 32784 32800 32832 28736
942 47312 32784 32800 32832 28736
943 47360 32784 32800 32832 28736
944 47408 32784 32800 32832 28736
945 47456 32784 32800 32832 28736
946 47504 32784 32800 32832 28736
947 47552 32784 32800 32832 28736
948 47600 32784 32800 32832 28736
949 47648 32784 32800 32832 28736
950 47696 32784 32800 32832 28736
951 47744 32784 32800 32832 28736
952 47792 32784 32800 32832 28736
953 47840 32784 32800 32832 28736
954 47888 32784 32800 32832 28736
955 47936 32784 32800 32832 28736
956 47984 32784 32800 32832 28736
957 48032 32784 32800 32832 28736
958 48080 32784 32800 32832 28736
959 48128 32784 32800 32832 28736
960 48176 32784 32800 32832 28736
961 48224 32784 32800 32832 28736
962 48272 32784 32800 32832 28736
963 48320 32784 32800 32832 28736
964 48368 32784 32800 32832 28736
965 48416 32784 32800 32832 28736
966 48464 32784 32800 32832 28736
967 48512 32784 32800 32832 28736
968 48560 32784 32800 32832 28736
969 48608 32784 32800 32832 28736
970 48656 32784 32800 32832 28736
971 48704 32784 32800 32832 28736
972 48752 32784 32800 32832 28736
973 48800 32784 32800 32832 28736
974 48848 32784 32800 32832 28736
975 48896 32784 32800 32832 28736
976 48944 32784 32800 32832 28736
977 48992 32784 32800 32832 28736
978 49040 32784 32800 32832 28736
979 49088 32784 32800 32832 28736
980 49136 32784 32800 32832 28736
981 49184 32784 32800 32832 28736
982 49232 32784 32800 32832 28736
983 49280 32784 32800 32832 28736
984 49328 32784 32800 32832 28736
985 49376 32784 32800 32832 28736
986 49424 32784 32800 32832 28736
987 49472 32784 32800 32832 28736
988 49520 32784 32800 32832 28736
989 49568 32784 32800 32832 28736
990 49616 32784 32800 32832 28736
991 49664 32784 32800 32832 28736
992 49712 32784 32800 32832 28736
993 49760 32784 32800 32832 28736
994 49808 32784 32800 32832 28736
995 49856 32784 32800 32832 28736
996 49904 32784 32800 32832 28736
997 49952 32784 32800 32832 28736
998 50000 32784 32800 32832 28736
999 50048 32784 32800 32832 28736
1000 50096 32784 32800 32832 28736
2000 100144 65560 65576 65600 57408
3000 152240 98328 98344 131136 114752
4000 200240 131088 131104 131136 114752
5000 248240 196624 196640 262208 229440
6000 304432 196624 196640 262208 229440
7000 352432 262168 262184 262208 229440
8000 400432 262168 262184 262208 229440
9000 448432 262168 262184 524352 458816
10000 496432 393240 393256 524352 458816
11000 560816 393240 393256 524352 458816
12000 608816 393240 393256 524352 458816
13000 656816 393240 393256 524352 458816
14000 704816 524304 524320 524352 458816
15000 752816 524304 524320 524352 458816
16000 800816 524304 524320 524352 458816
17000 848816 524304 524320 1048640 917568
18000 896816 524304 524320 1048640 917568
19000 944816 524304 524320 1048640 917568
20000 992816 786448 786464 1048640 917568
21000 1073584 786448 786464 1048640 917568
22000 1121584 786448 786464 1048640 917568
23000 1169584 786448 786464 1048640 917568
24000 1217584 786448 786464 1048640 917568
25000 1265584 786448 786464 1048640 917568
26000 1313584 786448 786464 1048640 917568
27000 1361584 786448 786464 1048640 917568
28000 1409584 1048600 1048616 1048640 917568
29000 1457584 1048600 1048616 1048640 917568
30000 1505584 1048600 1048616 1048640 917568
31000 1553584 1048600 1048616 1048640 917568
32000 1601584 1048600 1048616 1048640 917568
33000 1649584 1048600 1048616 2621504 2097216
34000 1697584 1048600 1048616 2621504 2097216
35000 1745584 1048600 1048616 2621504 2097216
36000 1793584 1048600 1048616 2621504 2097216
37000 1841584 1048600 1048616 2621504 2097216
38000 1889584 1048600 1048616 2621504 2097216
39000 1937584 2097184 2097200 2621504 2097216
40000 1985584 2097184 2097200 2621504 2097216
View Raw

(Sorry about that, but we can’t show files that are this big right now.)

View Raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment