Last active
September 19, 2024 22:32
-
-
Save charlesastaylor/18c7c8005fed9d0af1a3ee2b24fcd724 to your computer and use it in GitHub Desktop.
8086 assembly snake game!
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ------------------------------------------------------------------- | |
; Sna86. | |
; An 8086 simulator snake! | |
; ------------------------------------------------------------------- | |
; | |
; Assembly program intended to run in an 8086 simulator with functionaliy equal* to one made for homeworks | |
; up to Part 1 Episode 10 of the Peformance-Aware Programming Series (https://www.computerenhance.com/) | |
; by Casey Muratori. Demo - https://youtu.be/s_S4-QHeFMc. | |
; | |
; * mov, add, sub, cmp, je and jne was the target instructions. However I also added loop for convenience, | |
; and jmp because conditional jumps have limited range! They are both simple enough to implment if you | |
; already have the above. | |
; * int is also needed for a couple of things: | |
; - int 0 is used to signal the size of the frame buffer to the simulator. Width is put in ax, height | |
; into bx. | |
; - int 15h is used for the program to signal it has finished a frame to allow the simulator to draw the | |
; frame buffer to the screen | |
; | |
; Input is handled via the input "register" at memory address 0xFFFE, with each bit corresponding to an input | |
; button. Starting from the low bit the buttons are: Up, Down, Left, Right, Menu. Ie the low bit is used for | |
; the up button, the 5th bit is used for the menu button, and the top 3 bits are unused. | |
; | |
; Compiled with `nasm sna86.asm`. Or `nasm sna86.asm -DUSE_TITLE_SCREEN` to use the fancy title screen! | |
; | |
; Memory Layout: | |
; [0x0000] Program | |
; Code | |
; Data | |
; [0x0000 + program_size] FrameBuffer | |
; u8 frame_buffer[frame_buffer_num_bytes] | |
; [¯\_(ツ)_/¯] Snake | |
; u16 length | |
; u16 head | |
; // x, y coordinates stores as u16s. ie XXYYXXYYXXYYXX | |
; // These could be u8s. But simulator doesnt handle lots of u8 things. so u16 easier for now | |
; u16 *parts | |
; | |
; NOTE(Charles): <label> resb/resw <num_bytes/words>, can be used to reserve space in binary! eg: | |
; scratch resb 256 ; create 256 byte scratch space. | |
; | |
; @TODO | |
; - Display the score! | |
; - Seed the rng with some interrupt to get start value | |
; - Speed up menu transition with by adding interrupt to specifiy frame pointer. Then flip screens. | |
; - sometimes on eating an apple the new one can spawn in such a way that to gets eaten right away | |
; and you get stuck with no apples? | |
; NOTE(Charles): SI, DI and the segment registers are not currently used, so my simulator is configured to | |
; use these for deubgging. It will print the contents of SI, DI each frame. And, if any segment registers | |
; are set, it will print out the word at that address in memory. | |
bits 16 | |
%define MEMORY_SCRATCH 0xFF00 | |
%define REGISTER_INPUT 0xFFFE | |
%define INPUT_UP 0x01 | |
%define INPUT_DOWN 0x02 | |
%define INPUT_LEFT 0x04 | |
%define INPUT_RIGHT 0x08 | |
%define INPUT_MENU 0x10 | |
%define GAME_STATE_MENU 0 | |
%define GAME_STATE_PLAY 1 | |
%define SCREEN_SIZE 64 | |
; @TODO Setting this to 100 giffs big bug! Must be overwriting something somewhere. Pls fix. | |
%define screen_color 30 | |
%define SCREEN_RGB screen_color, screen_color, screen_color | |
; Result of the input register mapping. This is probably bad! | |
%define Direction_up 1 | |
%define Direction_down 2 | |
%define Direction_left 4 | |
%define Direction_right 8 | |
%define SNAKE_START_LENGTH 25 | |
%define SNAKE_R 100 | |
%define SNAKE_G 220 | |
%define SNAKE_B 100 | |
%define SNAKE_RGB SNAKE_R, SNAKE_G, SNAKE_B | |
%define APPLE_R 250 | |
%define APPLE_G 100 | |
%define APPLE_B 100 | |
%define APPLE_RGB APPLE_R, APPLE_G, APPLE_B | |
; Simulator maxes out at some number of instructions per frame. Not measured number but at 32x32 | |
; we can just about get 60fps. Above that not so much. Did some basic measurements and looks like | |
; it's the instruction decode that is the slow part. Thanks Casey ;). Joke obv. | |
; For snake, don't actually need to draw screen everytime, just draw pixels that need to update! | |
%define DRAW_SCREEN_EVERY_FRAME 0 | |
; ------------------------------------------------------------------- | |
; Macros! | |
; ------------------------------------------------------------------- | |
; @TODO implement call, ret (probably requires push, pop too) to use actual functions! Can only do macros | |
; for now. | |
; NOTE(Charles): Macros seemed like a great idea at first. But holy moly they make keeping track of | |
; which registers are used hard! (Or I guess only really cos I went and nested macros :roll:) | |
; Don't have mul yet, just use adds! | |
; uses cx register as counter (loop instruction), result will be in ax. | |
; Only works for memory or immediate parameters atm! | |
; This loops b times so it is consderiably quicker if you put the smaller number in b! | |
; @TODO Implement mul instruction in simulator! | |
; ax multiply(a, b) | |
%macro multiply 2 | |
mov ax, 0 | |
mov cx, 0 ; mov then add so can use zero flag | |
add cx, %2 | |
jz %%done | |
%%who_needs_mul: | |
add ax, %1 | |
loop %%who_needs_mul | |
%%done: | |
%endmacro | |
%macro divide 2 | |
; @TODO can do a similar thing for divsion using subtraction. | |
; if a is divisible by b, then loop doing a - b - b - b - b until you get 0. Number of loops equal answer! | |
%endmacro | |
; This is a no go for a few reasons atm: | |
; 1) without mul the multiply with large numbers is _very_ slow! | |
; 2) even if I had mul modding the result so its in a useful range seems hard (impossible?) without div and, | |
; more cruicially jl, jg etc | |
; Sticking with table of random numbers with optional seed from host. | |
%define LCG_INITIAL_SEED 1234 | |
%macro lcg_generate_random_number 0 | |
; Generate a pseudo-random number using a linear congruential generator (LCG) | |
; Algorithm: Xn+1 = (a * Xn + c) mod m | |
%define LCG_A 11969 | |
%define LCG_C 52429 | |
%define LCG_M 65536 ; 2^16 | |
multiply LCG_A, [lcg_seed] ; Welp, this is gonna be slow as shit... | |
add ax, LCG_C | |
mov [lcg_seed], ax ; Store new seed | |
%endmacro | |
%define RNG_NUM 1000 | |
; Returns in ax | |
%macro generate_random_number 0 | |
mov bp, [random_number_index] | |
add bp, bp ; have to multiply the index by two because the numbers are words! | |
add bp, rng_4096_1000 | |
mov ax, [bp] | |
add [random_number_index], word 1 | |
cmp [random_number_index], word RNG_NUM | |
jne %%end | |
mov [random_number_index], word 0 | |
%%end: | |
%endmacro | |
; Fill a pixel with color. | |
; void draw_pixel(x, y, r=255, g=255, b=255) | |
; Hmm this now uses ax, bx and cx (in the multiply macro) | |
%macro draw_pixel 2-5 255, 255, 255 | |
; framebuffer + 4 * (width * y + x) | |
multiply [screen_size], %2 ; width * y | |
add ax, %1 ; + x | |
add ax, ax ; * 2 | |
add ax, ax ; * 2 | |
add ax, [frame_buffer] | |
mov bx, ax | |
mov byte [bx + 0], %5 ; Blue | |
mov byte [bx + 1], %4 ; Green | |
mov byte [bx + 2], %3 ; Red | |
; mov word [bx], 0xffff | |
; mov word [bx + 2], 0xffff | |
%endmacro | |
; Draw pixel with pre flattened coord z, in ax | |
; Q: Nasm docs say you can overload macros if the number of arguments is different, but I am | |
; getting a warning if this macro is called draw_pixel too? | |
%macro draw_pixel_flat 0-3 255, 255, 255 | |
; framebuffer + 4 * (flat_coord) | |
add ax, ax ; * 2 | |
add ax, ax ; * 2 | |
add ax, [frame_buffer] | |
mov bx, ax | |
mov byte [bx + 0], %3 ; Blue | |
mov byte [bx + 1], %2 ; Green | |
mov byte [bx + 2], %1 ; Red | |
; mov word [bx], 0xffff | |
; mov word [bx + 2], 0xffff | |
%endmacro | |
; Compare pixel pointed to by bp to given immediate r, g, b | |
%macro cmp_pixel_color 3 | |
; Just checking first word for now @TODO check full rgb | |
cmp [bp], word (%2 << 8) | %3 | |
%endmacro | |
; Fewer instructions than doing the nested loop. | |
%macro clear_screen 1 | |
mov bp, [frame_buffer] | |
mov cx, [frame_buffer_num_pixels] | |
mov al, %1 | |
mov ah, %1 | |
%%loop_start: | |
mov [bp], ax | |
mov [bp + 2], al | |
mov [bp + 3], byte 0xFF ; Do you respect alpha? | |
add bp, 4 | |
loop %%loop_start | |
%endmacro | |
%macro draw_title_screen 0 | |
; Copy title screen to frame buffer. This is slow | |
; @TODO Implement ability for program to specificy the frame pointer via interrupt for fast switching! | |
mov bp, [frame_buffer] | |
mov bx, title_screen | |
mov cx, [frame_buffer_num_pixels] | |
mov di, 0 | |
%%copy_title_screen_loop: | |
mov ax, [bx + di] | |
mov [bp + di], ax | |
mov ax, [bx + di + 2] | |
; mov [bp + di + 2], ax | |
; @HACK It didn't affect me but TheGag96 trying to run this wanted 0xFF in alpha channel. | |
; title screen image has alpha < 0xFF for some pixels. Fix that up here. Should really just fix | |
; the image. Adds an extra frame_buffer_num_pixels instructions. | |
mov [bp + di + 2], al | |
mov [bp + di + 3], byte 0xFF | |
add di, 4 | |
loop %%copy_title_screen_loop | |
%endmacro | |
; ------------------------------------------------------------------- | |
; Game Code Starts Here! | |
; ------------------------------------------------------------------- | |
; NOTE(Charles): Pretty needlessly dynamically done. | |
multiply [screen_size], [screen_size] | |
mov [frame_buffer_num_pixels], ax | |
add ax, ax ; *4 | |
add ax, ax | |
mov [frame_buffer_num_bytes], ax | |
; Set initial game state based on whether title screen is present. | |
mov [game_state], word GAME_STATE_PLAY | |
mov ax, end | |
mov bx, title_screen | |
cmp ax, bx | |
je no_title_screen | |
mov [game_state], word GAME_STATE_MENU | |
mov [has_title_screen], word 1 | |
no_title_screen: | |
; snake_init | |
mov ax, [program_size] | |
add ax, [frame_buffer_num_bytes] | |
mov [snake], ax | |
; Request frame buffer size using int 0 | |
mov ax, [screen_size] | |
mov bx, [screen_size] | |
int 0 | |
%if !DRAW_SCREEN_EVERY_FRAME | |
; Draw background | |
; Have to use constant color so that when we are "deleting" snake parts we know what color to use. | |
; @TODO If did want nicer background could load it into memory separate to frame buffer to refer to! | |
; Frame buffer sits just after the code. | |
clear_screen screen_color | |
%endif | |
cmp [game_state], word GAME_STATE_PLAY | |
je start_playing | |
draw_title_screen | |
state_title_screen: | |
mov bp, REGISTER_INPUT | |
mov ax, [bp] | |
cmp ax, 0 | |
jne start_playing | |
jmp update_end | |
start_playing: | |
mov [REGISTER_INPUT], word 0 ; clear the input used to start the game so we start in correct direction! | |
mov [game_state], word GAME_STATE_PLAY | |
clear_screen screen_color | |
reset: | |
mov ax, SNAKE_START_LENGTH | |
mov [score], word 0 | |
mov bp, [snake] | |
mov [bp], ax ; snake.length = SNAKE_START_LENGTH | |
sub ax, 1 | |
mov [bp + 2], ax; snake.head = bla | |
%define SNAKE_START SCREEN_SIZE / 2 | |
mov [snake_x], word SNAKE_START | |
sub [snake_x], word 1 ; @HACK to align snake_x with snake parts | |
mov [snake_y], word SNAKE_START | |
mov [direction], word Direction_right | |
; No bounds checking for if the start length puts us off screen! | |
mov cx, [bp] | |
add bp, 4 ; bp = snake.parts | |
init_snake_parts: | |
mov bx, SNAKE_START | |
mov [bp + 2], bx ; y | |
sub bx, cx | |
mov [bp], bx ; x | |
add bp, 4 | |
loop init_snake_parts | |
%macro draw_snake 0 | |
mov bp, [snake] | |
mov dx, [bp] | |
add bp, 4 ; point to snake.parts | |
%%draw_snake_loop: | |
draw_pixel [bp], [bp + 2], SNAKE_RGB;, SNAKE_G, SNAKE_B | |
add bp, 4 | |
sub dx, 1 | |
jnz %%draw_snake_loop | |
%endmacro | |
; Should really do this during the init above, but awkward to do while not really fully supporting | |
; byte operations. | |
draw_snake | |
; apple_init | |
%macro spawn_apple 0 | |
; This can potentially infinte loop! | |
%%loop: | |
generate_random_number | |
; check this position isn't occupied! | |
mov bp, ax | |
mov bp, bp | |
mov bp, bp | |
add bp, [frame_buffer] | |
cmp_pixel_color SCREEN_RGB | |
jne %%loop | |
draw_pixel_flat APPLE_RGB | |
; Q: Do I actually even need to store this? Can just check color of frame buffer? I'll be checking frame | |
; buffer to detect self collisions anyway. | |
mov [apple_position], ax | |
%endmacro | |
spawn_apple | |
do_one_frame: | |
; Read input | |
mov ax, [REGISTER_INPUT] | |
; Up Key | |
cmp ax, INPUT_UP | |
jne up_not_pressed | |
; Can't change to up if we are currently going down. | |
cmp [direction], word Direction_down | |
je read_input_end | |
mov [direction], word Direction_up | |
jmp read_input_end | |
up_not_pressed: | |
; Down Key | |
cmp ax, INPUT_DOWN | |
jne down_not_pressed | |
; Can't change to down if we are currently going up. | |
cmp [direction], word Direction_up | |
je read_input_end | |
mov [direction], word Direction_down | |
jmp read_input_end | |
down_not_pressed: | |
; Left Key | |
cmp ax, INPUT_LEFT | |
jne left_not_pressed | |
; Can't change to left if we are currently going right. | |
cmp [direction], word Direction_right | |
je read_input_end | |
mov [direction], word Direction_left | |
jmp read_input_end | |
left_not_pressed: | |
; Right Key | |
cmp ax, INPUT_RIGHT | |
jne right_not_pressed | |
; Can't change to right if we are currently going left. | |
cmp [direction], word Direction_left | |
je read_input_end | |
mov [direction], word Direction_right | |
jmp read_input_end | |
right_not_pressed: | |
; Menu Key | |
cmp ax, INPUT_MENU | |
jne menu_not_pressed | |
mov [game_state], word GAME_STATE_MENU | |
draw_title_screen | |
jmp update_end | |
menu_not_pressed: | |
read_input_end: | |
; Update player position | |
update_player_position: | |
%define DEBUG_SNAKE_POSITION 0 | |
%if DEBUG_SNAKE_POSITION | |
draw_pixel [snake_x], [snake_y], screen_color, screen_color, screen_color | |
%endif | |
; Handle left/right movement | |
mov ax, [snake_x] | |
; Move right | |
cmp [direction], word Direction_right | |
je direction_is_right | |
jmp direction_not_right ; Too big a jump for conditional now! | |
direction_is_right: | |
; Update the snake_x | |
add ax, 1 | |
cmp ax, [screen_size] | |
jne no_wrap_right | |
mov ax, 0 | |
no_wrap_right: | |
mov [snake_x], ax | |
jmp update_player_position_end | |
direction_not_right: | |
; Move left | |
cmp [direction], word Direction_left | |
je direction_is_left | |
jmp direction_not_left | |
direction_is_left: | |
; Update the snake_x | |
add ax, -1 | |
cmp ax, -1 | |
jne no_wrap_left | |
mov ax, [screen_size] | |
sub ax, 1 | |
no_wrap_left: | |
mov [snake_x], ax | |
jmp update_player_position_end | |
direction_not_left: | |
; Handle up/down movement | |
mov ax, [snake_y] | |
; Move up | |
cmp [direction], word Direction_up | |
je direction_is_up | |
jmp direction_not_up | |
direction_is_up: | |
; Update the snake_y | |
add ax, 1 | |
cmp ax, [screen_size] | |
jne no_wrap_up | |
mov ax, 0 | |
no_wrap_up: | |
mov [snake_y], ax | |
jmp update_player_position_end | |
direction_not_up: | |
; Move down | |
cmp [direction], word Direction_down | |
je direction_is_down | |
jmp direction_not_down | |
direction_is_down: | |
; Update the snake_y | |
add ax, -1 | |
cmp ax, -1 | |
jne no_wrap_down | |
mov ax, [screen_size] | |
sub ax, 1 | |
no_wrap_down: | |
mov [snake_y], ax | |
jmp update_player_position_end | |
direction_not_down: | |
update_player_position_end: | |
; Check what the new x, y contains. Apple, snake or nothing | |
; Given x, y coord but the address of the pixel into ax | |
%macro get_pixel 2 | |
multiply [screen_size], %2 ; width * y | |
add ax, %1 ; + x | |
add ax, ax ; * 2 | |
add ax, ax ; * 2 | |
add ax, [frame_buffer] | |
%endmacro | |
get_pixel [snake_x], [snake_y] | |
mov bp, ax | |
cmp_pixel_color SNAKE_RGB | |
jne i_atent_dead | |
; Just clearing whole screen for now, will be slow | |
; @TODO clear all snake parts and apple, not entire screen. | |
; I actually kind of like the delay when you die that this causes so not doing this because would then need | |
; to implement that delay! | |
clear_screen screen_color | |
jmp reset | |
i_atent_dead: | |
; Either we eat an apple and grow, or just move snake. Either way we need the to increment the head! | |
mov bx, [snake] | |
mov cx, [bx + 2] ; snake.head | |
add cx, 1; | |
cmp cx, [bx] | |
jne no_wrap_head | |
mov cx, 0 | |
no_wrap_head: | |
mov [bx + 2], cx ; snake.head = new_head_index | |
cmp_pixel_color APPLE_RGB | |
; @TODO I had to change to unconditnal jump here because lots instrucitnos. but many instrucitons below | |
; can be removed then this might go back to unconditnoial (if want to save more instructions) | |
je eaten_an_apple | |
jmp no_apple | |
eaten_an_apple: | |
add [score], word 1 | |
spawn_apple | |
; Grow the snake! | |
mov bp, [snake] | |
add bp, 4 ; bx = snake.parts | |
; bp -> snake.parts | |
; cx == snake.head | |
add cx, cx | |
add cx, cx ; cx * 4 (cx is index but size of part is 4 [2xu16]) | |
add bp, cx ; bp = &snake.parts[snake.head] | |
; move all parts from snake.head (new_index) -> snake.length up one | |
; @TODO being bit lazy with registers here, can remove some of these instructinos. | |
mov bx, [snake] | |
mov cx, [bx] ; cx = snake.length - snake.head | |
sub cx, [bx + 2] ; - | |
add cx, cx ; bx -> snake.parts + snake.length | |
add cx, cx ; - | |
mov bx, bp ; - | |
add bx, cx ; - | |
add bx, 3 | |
; @TODO re work this to go forward and not be so awkward lol! | |
realloc_snake_part: | |
; have to do a byte at a time to have negative address displacement I think. But why Am I doing this | |
; backwards at all?! | |
mov al, [bx - 4] ; each part is 4 bytes | |
mov [bx], al | |
sub bx, 1 | |
cmp bx, bp | |
jne realloc_snake_part | |
mov bp, [snake] | |
add [bp], word 1 ; snake.length++ | |
; set new head | |
mov ax, [snake_x] | |
mov [bx], ax | |
mov ax, [snake_y] | |
mov [bx + 2], ax | |
; draw new head | |
draw_pixel [bx], [bx + 2], SNAKE_RGB | |
jmp update_end | |
no_apple: | |
; replace_tail_with_head | |
; @TODO maybe rework where bp, bx point, depending on how eating code plays out! | |
mov bp, [snake] | |
add bp, 4 ; bx = snake.parts | |
; bp -> snake.parts | |
; cx == snake.head | |
add cx, cx | |
add cx, cx ; cx * 4 (cx is index but size of part is 4 [2 x u16]) | |
add bp, cx ; bp = &snake.parts[snake.head] | |
; clear tail | |
draw_pixel [bp], [bp + 2], SCREEN_RGB | |
; set new head | |
mov ax, [snake_x] | |
mov [bp], ax | |
mov ax, [snake_y] | |
mov [bp + 2], ax | |
; draw new head | |
draw_pixel [bp], [bp + 2], SNAKE_RGB | |
%if DEBUG_SNAKE_POSITION | |
draw_pixel [snake_x], [snake_y], 255, 0, 255 | |
%endif | |
update_end: | |
; @TMP debugging | |
mov ax, [score] | |
mov si, ax | |
%if DRAW_SCREEN_EVERY_FRAME | |
; Clear the screen | |
; Frame buffer sits just after the code. | |
mov bp, [frame_buffer] | |
mov dx, [screen_size] | |
y_loop_start: | |
mov cx, [screen_size] | |
x_loop_start: | |
mov byte [bp + 0], screen_color ; Blue | |
mov byte [bp + 1], screen_color ; Green | |
mov byte [bp + 2], cl ; Red | |
; mov byte [bp + 3], 255 ; Alpha | |
add bp, 4 | |
loop x_loop_start | |
sub dx, 1 | |
jnz y_loop_start | |
draw_snake | |
%endif | |
; Use int 15 as a hacky way to signal to hosting simualtor to draw frame and sleep till next frame | |
; There is something about on actualy 8086 used to call int 15h with ah=86h to do micro second sleeps but | |
; 1) details of it aren't obvious to me but also 2) that would require asm code to keep track of timings! | |
; mov ah, 86h | |
; mov cx, micro_seconds | |
int 15h | |
; @TODO: Clean up handling of menu screen. This is very spaghetti! | |
cmp [game_state], word GAME_STATE_PLAY | |
je is_playing | |
jmp state_title_screen | |
is_playing: | |
; NOTE(Charles): I actually _had_ to implement jmp to change the jnz that was here before because | |
; conditional jumps only have 1 byte offset. Once I had enough instruciotns I started getting weird assembled | |
; code. Eg I got a pop and a test instead of the jnz! | |
jmp do_one_frame | |
; ------------------------------------------------------------------- | |
; Data | |
; ------------------------------------------------------------------- | |
; Need some way to mark data stuff to not be executed (or even decoded/printed?). Atm int3 will force us | |
; to break the loop | |
int3 | |
int3 | |
int3 | |
; NOTE(Charles): The below variable names are really just labels! eg `program_size: dw end` is equivalent. | |
; gets the size of the program so we can check we arent gonna run out of memory! | |
program_size dw end | |
game_state dw 0 ; 0: MENU, 1: PLAY | |
score dw 0; | |
has_title_screen dw 0 | |
frame_buffer_num_bytes dw 0 | |
frame_buffer_num_pixels dw 0 | |
frame_buffer dw end | |
snake dw 0 | |
screen_size dw SCREEN_SIZE; Using a variable instead of a constant as could then dynamically change screen size! | |
; Technically all the information we need is in the snake struct. But it is much more convienet | |
; to keep track of the current position in these statics! | |
snake_x dw 0 | |
snake_y dw 0 | |
apple_position dw 0 ; flattened coordinate to make easier to randomly generate. | |
direction dw 0 | |
rng_seed dw LCG_INITIAL_SEED | |
random_number_index dw 0 | |
; rng_limt_number | |
; ", ".join([str(random.randint(0, 4096)) for _ in range(100)]) | |
; When testing if want first apple to be in path use 2050 | |
rng_4096_10 dw 630, 2080, 3762, 1334, 2310, 2790, 960, 3855, 3001, 1035 | |
rng_4096_100 dw 3818, 2323, 3807, 1082, 2237, 1101, 1694, 1536, 71, 3289, 3184, 3167, 2734, 626, 3559, 2094, 2178, 1158, 4009, 2958, 3170, 367, 3947, 3555, 120, 4021, 645, 1329, 832, 3553, 2819, 2478, 1071, 1754, 1572, 3580, 1230, 2058, 3843, 960, 3460, 1315, 1891, 1112, 2333, 1811, 3124, 436, 1789, 4027, 2957, 1815, 528, 953, 940, 4043, 472, 1978, 2388, 1869, 2830, 2758, 3024, 688, 3538, 1031, 2239, 94, 555, 2960, 4049, 3431, 1205, 663, 395, 1329, 3835, 459, 3404, 995, 632, 2964, 3507, 933, 2154, 2404, 362, 3960, 1083, 1894, 490, 3111, 1871, 2082, 3730, 2426, 2321, 2352, 4074, 3110 | |
rng_4096_1000 dw 1511, 771, 2197, 2256, 1133, 1022, 3580, 1786, 2204, 3182, 713, 2126, 3942, 148, 3438, 2714, 1825, 1861, 2634, 3926, 872, 1327, 2635, 3078, 369, 2189, 1399, 323, 1200, 2015, 1470, 152, 3544, 3251, 618, 2481, 1168, 37, 1255, 790, 3564, 2581, 209, 1921, 1075, 2593, 1197, 2245, 3943, 2359, 4057, 3449, 1581, 3058, 3226, 2498, 2119, 2845, 116, 2892, 1840, 879, 2691, 1581, 678, 1927, 1368, 1377, 2657, 3152, 1401, 243, 1703, 1388, 2612, 979, 3605, 1806, 373, 3295, 1000, 2379, 2886, 1920, 3090, 373, 1284, 3741, 992, 1057, 2990, 1008, 2425, 1679, 3819, 1335, 744, 121, 3746, 1549, 1353, 5, 1999, 359, 1795, 2974, 1875, 1608, 427, 3973, 3719, 1699, 961, 2611, 3426, 383, 1296, 1755, 3989, 4067, 1875, 601, 187, 2960, 2298, 940, 392, 359, 239, 900, 3971, 16, 1611, 355, 1873, 1592, 2253, 1638, 1156, 296, 624, 3490, 2692, 1800, 1167, 1680, 634, 2137, 3783, 3562, 3697, 1542, 694, 1793, 1048, 2890, 197, 2081, 107, 2341, 3734, 2962, 3839, 3139, 462, 2317, 2145, 1612, 1518, 408, 2641, 1436, 1108, 1042, 3067, 1290, 449, 3036, 3298, 1692, 4048, 237, 2517, 1894, 1709, 4084, 761, 780, 3071, 3064, 2022, 904, 3649, 2729, 2067, 4075, 1474, 3837, 2327, 712, 205, 2863, 2320, 1912, 2601, 2853, 472, 2700, 2818, 3969, 3604, 641, 962, 771, 194, 2879, 1980, 2812, 1526, 1832, 464, 2031, 2463, 3605, 296, 2682, 3701, 144, 3420, 4083, 825, 806, 3552, 350, 2672, 1718, 3792, 1830, 695, 2121, 1504, 839, 3134, 3895, 2447, 1217, 3959, 3193, 1464, 2623, 4065, 693, 2894, 3951, 4014, 2211, 4084, 2902, 895, 4052, 2237, 453, 2307, 2980, 3425, 729, 2617, 3410, 546, 318, 1957, 3505, 1283, 1365, 992, 991, 1563, 3827, 1960, 854, 2065, 12, 919, 75, 258, 3221, 4050, 3340, 2196, 2126, 4050, 3546, 434, 2154, 267, 1038, 2627, 1329, 4059, 2963, 3863, 3483, 1778, 1505, 1705, 3973, 5, 513, 2184, 3180, 1625, 2732, 3075, 1663, 1592, 1061, 2606, 3156, 3068, 2833, 2226, 3578, 2795, 3545, 3622, 1835, 804, 3955, 1070, 2165, 886, 2756, 1852, 1658, 1495, 809, 3376, 2316, 1106, 1798, 3085, 4001, 2227, 8, 1026, 770, 3896, 3254, 3316, 1264, 1275, 3383, 391, 3442, 1218, 1210, 3404, 425, 20, 1757, 131, 3305, 1740, 383, 2244, 2011, 4062, 1154, 1615, 1879, 366, 1463, 3660, 1185, 949, 1477, 2423, 2875, 2999, 3166, 43, 865, 675, 3873, 1548, 2585, 1011, 1276, 3314, 553, 2688, 283, 2188, 2496, 3015, 3567, 2239, 954, 1561, 1258, 508, 2821, 524, 2918, 2532, 961, 996, 906, 2553, 2052, 488, 1077, 2383, 1948, 124, 952, 2750, 257, 2174, 893, 46, 117, 3224, 93, 1150, 3615, 1679, 3405, 3306, 1665, 252, 2724, 1608, 76, 1906, 3551, 3141, 2935, 1824, 1652, 1610, 2735, 2049, 788, 1304, 80, 3317, 2477, 2729, 2943, 835, 490, 2714, 2116, 3810, 4005, 3719, 10, 4019, 2855, 244, 3582, 2841, 4087, 3967, 858, 356, 2477, 3716, 2504, 2178, 2568, 3310, 1244, 3190, 194, 2478, 2855, 1445, 3406, 3907, 1273, 2007, 1586, 2258, 1732, 3091, 3399, 2912, 1297, 406, 3768, 3781, 1193, 3704, 2718, 4068, 1517, 219, 2281, 745, 1356, 304, 1843, 3531, 2693, 3534, 132, 2671, 2786, 1006, 2483, 222, 1966, 3385, 782, 548, 1054, 1094, 1096, 2031, 3245, 270, 3701, 3200, 1256, 2138, 468, 2589, 1728, 2435, 2386, 3725, 3834, 287, 3709, 2116, 3061, 1305, 426, 2504, 1500, 409, 2352, 2284, 1028, 850, 3883, 2852, 1955, 3184, 2197, 2228, 2804, 443, 1960, 1311, 208, 2755, 677, 1659, 1611, 2759, 145, 3229, 2895, 2347, 1411, 2203, 2450, 1776, 2406, 1408, 3667, 3671, 811, 281, 2786, 3027, 3365, 2957, 3794, 1407, 1558, 4047, 1972, 169, 351, 2933, 1922, 3476, 3652, 104, 1145, 2807, 4029, 1615, 2147, 149, 937, 319, 3210, 3398, 1118, 1358, 3462, 658, 2106, 3808, 1088, 407, 2195, 1470, 1736, 3714, 735, 1411, 251, 1776, 2035, 2942, 3469, 953, 4082, 2776, 479, 3026, 1812, 1140, 3522, 928, 4083, 2578, 3552, 3296, 3869, 1604, 353, 3300, 1943, 3854, 192, 670, 1455, 3558, 1468, 1018, 880, 1946, 566, 2023, 2962, 4076, 425, 3403, 286, 3803, 640, 2199, 1677, 191, 3167, 2688, 3918, 1829, 2079, 990, 209, 905, 827, 3001, 2805, 795, 1157, 2521, 3645, 2870, 1668, 3812, 79, 1664, 474, 3768, 1823, 957, 3656, 3983, 2151, 3024, 403, 211, 2961, 2675, 1550, 3031, 2846, 79, 996, 290, 3149, 2408, 1137, 1833, 1537, 3047, 4024, 799, 2434, 2573, 3104, 3641, 2401, 1792, 2579, 3077, 3911, 1832, 3519, 449, 1980, 426, 702, 868, 2053, 3675, 2720, 3229, 3853, 1275, 1087, 2210, 2687, 702, 178, 3687, 1269, 2635, 2617, 2718, 1362, 885, 69, 3396, 943, 728, 2895, 2858, 1489, 586, 869, 2915, 2647, 705, 401, 2832, 3295, 2676, 3794, 1709, 2211, 3335, 2423, 2237, 2424, 748, 3382, 1848, 2606, 2534, 1761, 479, 3921, 3738, 3129, 3438, 199, 2560, 2002, 8, 436, 1700, 440, 1169, 2338, 1750, 3915, 129, 2474, 2175, 3285, 1244, 2175, 1380, 2373, 3282, 1071, 2969, 2783, 606, 541, 2715, 2376, 1485, 3649, 296, 146, 2924, 2754, 3801, 3128, 851, 4053, 2960, 858, 3836, 2002, 1008, 446, 1395, 3275, 507, 2923, 3351, 711, 113, 3985, 104, 2605, 3556, 64, 1072, 1266, 3376, 723, 2491, 864, 2797, 645, 2712, 2861, 437, 1971, 2570, 2252, 990, 1709, 824, 2261, 2328, 1583, 2035, 896, 3212, 2876, 3216, 3664, 1087, 435, 979, 1672, 153, 3927, 1089, 1679, 3947, 1720, 1608, 2473, 454, 3613, 2280, 814, 1688, 2237, 3221, 2293, 916, 2821, 2069, 618, 3844, 3767, 185, 371, 1841, 3189, 2642, 1551, 1009, 1594, 53, 2631, 1324, 3080, 1468, 3227, 1164, 2882, 3451, 794, 3220, 2582, 3855, 1934, 1587, 2512, 3210, 2579, 2249, 2088, 522, 2960, 197, 3464, 3191, 2404, 3957, 3824, 127, 3503, 221, 2149, 3360, 3027, 1058, 3787, 2609, 1913, 1302, 1211, 2370, 3646, 1659, 4068, 1535, 2500, 1809, 2654, 3212, 3196, 3503, 323, 2614, 4085, 1044, 796, 2252, 3154, 850, 2669, 1071, 3269, 1885, 4036, 3199, 2090, 1311, 286, 1132, 3425, 332, 3542, 143, 332, 1388, 2999, 1107, 2974, 2478, 1698, 3923, 554, 2318, 1896, 3331, 2217, 1971, 1484, 372, 2163, 116, 4057, 3419, 745, 2044, 1295, 474, 1313, 1916, 3243, 1680, 4086, 3617, 2547, 2203, 2649, 3589, 3630, 1316, 148 | |
; Somethign weird is happening when using 10k. At some point the snake stops clearing its tail. Presumably | |
; I'm overwriting some memory I shouldn't but I can't see where :shrug:. | |
; 10k random numbers for snake is proooobably overkill anyway. It's almost as much memory as the frame buffer... | |
; rng_4096_10000 dw 909, 3655, 4062, 2186, 1144, 2097, 2338, 235, 1071, 3344, 84, 3637, 3035, 1454, 533, 1205, 1369, 2584, 1584, 3986, 2731, 3914, 529, 3891, 1243, 2820, 3718, 292, 6, 1553, 1973, 3302, 2352, 605, 1067, 3239, 3895, 1109, 1330, 552, 1328, 1655, 1923, 2537, 1810, 229, 2226, 2380, 3735, 899, 1613, 3405, 836, 513, 678, 810, 2399, 2944, 1417, 2441, 631, 3153, 3267, 2762, 2748, 2589, 1397, 907, 2083, 1265, 2100, 639, 2386, 2177, 1302, 117, 4010, 373, 3146, 2859, 3139, 2804, 2160, 28, 3609, 3529, 503, 3895, 2422, 3597, 2492, 2417, 2198, 3465, 3229, 2921, 895, 3370, 3750, 247, 826, 3258, 4028, 3672, 2681, 3736, 1486, 3052, 372, 3421, 3662, 4005, 2436, 716, 3568, 1316, 2296, 1110, 162, 3064, 1705, 859, 11, 1587, 3791, 3653, 3071, 2895, 3786, 819, 2674, 2168, 459, 4014, 986, 1148, 2182, 1846, 261, 2616, 2048, 1472, 3647, 1697, 657, 1788, 3526, 111, 315, 2512, 1515, 3502, 3500, 1882, 2965, 3358, 1952, 265, 1141, 842, 1570, 2600, 2109, 725, 2471, 594, 2528, 772, 3014, 143, 1402, 2917, 3019, 728, 2566, 176, 1081, 3830, 343, 2896, 769, 3843, 3015, 1510, 3103, 402, 291, 3474, 2950, 1463, 2828, 3468, 3847, 3461, 3746, 1382, 2049, 1153, 461, 3005, 1220, 2493, 3269, 1133, 1935, 3760, 1172, 1985, 4005, 3417, 1119, 3193, 3289, 3018, 348, 3011, 1266, 1368, 3421, 138, 669, 971, 200, 3364, 2924, 3115, 2478, 2826, 3578, 593, 51, 3404, 1629, 1271, 3261, 1717, 2349, 3068, 2721, 3330, 1007, 1560, 4082, 269, 2532, 3496, 99, 3742, 352, 803, 2889, 3263, 1385, 2954, 332, 1695, 388, 1574, 3780, 3252, 3752, 2275, 1699, 3809, 413, 642, 1866, 3163, 1033, 3691, 214, 1544, 188, 1178, 1234, 1778, 365, 3693, 3508, 936, 417, 2270, 3303, 239, 1301, 3411, 1737, 3156, 3051, 3352, 951, 4023, 1329, 765, 831, 2319, 1146, 2336, 1934, 70, 3255, 2799, 2077, 2474, 1328, 2247, 1762, 820, 3988, 3459, 957, 2103, 2476, 3911, 1886, 1722, 4030, 502, 7, 1772, 3353, 1763, 1116, 2194, 3127, 1636, 2446, 3954, 371, 1503, 147, 3995, 3767, 1692, 541, 3163, 1200, 3213, 2412, 2901, 2028, 2830, 1405, 2989, 3517, 2052, 3381, 3159, 2102, 2736, 3440, 3057, 1904, 3218, 678, 1080, 2256, 2629, 2254, 2572, 3074, 2760, 517, 3510, 561, 550, 4028, 330, 2426, 304, 1315, 1989, 3370, 4080, 3071, 3866, 1456, 4031, 442, 3234, 2728, 2033, 2254, 453, 597, 609, 3483, 3475, 1001, 1823, 3672, 3124, 2634, 414, 2012, 402, 3129, 660, 63, 1091, 3557, 3254, 2034, 1140, 3335, 3092, 2859, 131, 3345, 2525, 782, 3832, 1868, 1974, 590, 4015, 2638, 1217, 1566, 2174, 653, 303, 671, 2841, 3150, 162, 977, 1115, 2856, 1557, 3129, 2100, 3585, 3205, 3608, 1289, 2797, 1201, 2537, 2652, 588, 1853, 3932, 1779, 3831, 3885, 2820, 3466, 4026, 3863, 1281, 1873, 2970, 1165, 3470, 779, 3579, 1059, 2025, 3321, 1339, 2415, 2963, 4082, 3493, 644, 181, 1364, 2338, 3719, 2899, 627, 761, 2780, 2942, 3399, 840, 3437, 1166, 2735, 4075, 2795, 1073, 3051, 2790, 300, 3358, 1581, 2243, 3706, 3410, 1134, 74, 3699, 2820, 2052, 1490, 911, 448, 1838, 2918, 291, 2701, 1965, 4026, 2446, 1036, 3968, 707, 3144, 2599, 1098, 1925, 297, 3584, 3770, 3425, 1115, 3971, 689, 2465, 850, 522, 861, 268, 4050, 867, 1106, 1605, 2376, 2940, 1936, 364, 72, 2461, 2815, 558, 3094, 4025, 254, 2521, 1924, 73, 1187, 127, 3374, 1930, 34, 2103, 3345, 1750, 2242, 3409, 1647, 1476, 3862, 2792, 972, 1602, 2682, 3385, 1651, 3527, 3930, 3737, 3081, 666, 2258, 385, 3208, 2854, 3424, 2511, 2827, 124, 2351, 1192, 2194, 1878, 3489, 1887, 2203, 3729, 1146, 4096, 2380, 391, 1704, 2399, 581, 2894, 2533, 1263, 1580, 3290, 3816, 1386, 755, 1169, 3223, 1124, 2831, 3409, 1590, 2131, 2136, 2541, 643, 1075, 3075, 1016, 2888, 3166, 1373, 2841, 12, 3437, 331, 3892, 3254, 1986, 2418, 2786, 904, 2189, 3372, 166, 3703, 3450, 1621, 3343, 1407, 3084, 44, 3777, 3930, 413, 912, 319, 3091, 481, 2152, 1902, 3262, 2523, 1165, 2553, 602, 80, 3013, 3808, 997, 3894, 1448, 3710, 2828, 3107, 1537, 2898, 3834, 4063, 3628, 3004, 2875, 2949, 1982, 736, 1503, 3071, 113, 2849, 2632, 1089, 1286, 3104, 1362, 2059, 1555, 2823, 434, 237, 58, 2614, 4028, 793, 4069, 1648, 485, 1201, 2254, 823, 2085, 1990, 2280, 879, 2865, 3851, 3154, 616, 1803, 2640, 3738, 1928, 2325, 3009, 2579, 3102, 230, 597, 3433, 1525, 2804, 1699, 2971, 1601, 1533, 1325, 3940, 334, 754, 244, 341, 1071, 3691, 340, 2655, 2630, 1278, 2697, 2868, 2091, 3079, 1726, 1524, 1788, 861, 894, 2751, 1057, 1040, 755, 2341, 2836, 2020, 3532, 3446, 1, 1107, 3125, 3421, 707, 3649, 205, 3163, 3774, 336, 2291, 3553, 39, 2565, 3763, 631, 780, 1630, 3170, 2061, 3853, 2777, 4083, 3723, 291, 1297, 3414, 997, 1683, 3286, 2259, 3396, 1416, 109, 1327, 1855, 2101, 3301, 3090, 3738, 1119, 3473, 994, 3441, 338, 2818, 1967, 2756, 102, 1442, 2691, 3773, 1548, 3127, 2733, 1832, 2702, 2549, 3938, 3096, 1548, 2871, 3295, 3466, 3327, 2942, 3809, 3365, 3153, 1761, 419, 2636, 3117, 1988, 3999, 1307, 3315, 3117, 2023, 1668, 2318, 246, 3811, 1525, 1747, 2254, 3760, 60, 3625, 2702, 131, 563, 4009, 3964, 1584, 2401, 2342, 341, 2522, 2205, 1362, 1975, 2030, 1480, 2016, 4009, 3154, 2614, 123, 3967, 2922, 2790, 2532, 1622, 1286, 1577, 2313, 424, 3853, 376, 3395, 2641, 1789, 466, 1565, 2238, 1764, 2578, 1852, 2283, 3061, 1948, 4004, 2933, 3900, 1709, 2105, 3008, 2855, 3765, 1043, 960, 853, 2018, 1684, 748, 142, 350, 1679, 1056, 1459, 2637, 3471, 2532, 811, 3008, 2552, 2686, 3626, 920, 2893, 1994, 768, 2180, 3599, 1910, 563, 2182, 1295, 2823, 2182, 3592, 3072, 1893, 2561, 491, 2948, 2771, 3952, 159, 846, 2664, 4075, 854, 3088, 1340, 401, 3555, 546, 484, 789, 618, 2901, 3736, 163, 1806, 952, 1271, 3324, 3357, 3144, 3076, 2629, 3758, 189, 1031, 745, 838, 2529, 2128, 3246, 2914, 1495, 3214, 2328, 649, 2752, 2971, 3944, 455, 1236, 20, 2708, 1090, 4022, 511, 2944, 3430, 1003, 2284, 3255, 3710, 1815, 1552, 2082, 2636, 1498, 2225, 3184, 2039, 909, 3740, 2950, 2670, 1077, 2316, 3719, 2767, 1061, 2490, 2788, 3608, 3100, 2961, 2022, 2417, 243, 2033, 3519, 746, 2071, 81, 3704, 3794, 1864, 2374, 2132, 143, 2078, 432, 887, 3090, 2280, 3304, 3814, 299, 1578, 1587, 2291, 2030, 558, 3430, 3099, 3004, 1131, 2490, 1977, 899, 24, 3711, 379, 2763, 3269, 3535, 3539, 417, 1359, 2806, 2543, 3683, 3823, 1710, 3243, 2483, 48, 1021, 94, 1492, 3055, 703, 1215, 2847, 1271, 974, 1686, 3709, 465, 3153, 2078, 3424, 301, 2594, 1766, 825, 1891, 3624, 3748, 334, 1363, 3117, 3462, 3130, 361, 2255, 3645, 3700, 2850, 46, 2547, 2305, 405, 2120, 965, 4077, 2639, 1535, 1227, 834, 1095, 3958, 2248, 532, 801, 2865, 4092, 3037, 1739, 1582, 3467, 3612, 1452, 3773, 2131, 948, 1033, 1326, 3963, 1652, 1407, 345, 2550, 3411, 1192, 3514, 97, 3091, 526, 3023, 2621, 211, 655, 1535, 388, 1733, 534, 702, 352, 277, 3819, 1151, 1053, 3627, 3455, 3538, 3386, 1429, 610, 2072, 960, 2659, 3454, 1263, 2297, 1650, 3706, 1644, 3648, 878, 3302, 2803, 2993, 3626, 3957, 1904, 2443, 1945, 1824, 2399, 2678, 2245, 3746, 345, 1105, 1282, 998, 3495, 670, 672, 307, 2252, 2530, 2518, 526, 321, 1303, 3895, 719, 1630, 2360, 3700, 3834, 2268, 2909, 2166, 901, 3233, 1187, 2371, 30, 3092, 2707, 2636, 3194, 780, 3732, 2432, 1626, 2670, 3872, 3153, 2454, 2766, 3978, 3586, 2931, 1918, 2985, 3989, 4021, 3369, 2045, 1037, 647, 1968, 1886, 980, 2483, 856, 3675, 397, 2082, 2033, 433, 1081, 3921, 4090, 3256, 1232, 2489, 1975, 2422, 2486, 410, 2473, 3420, 2090, 2464, 812, 3173, 1799, 2195, 1708, 742, 2471, 2490, 310, 1527, 1783, 3908, 2582, 3944, 266, 740, 1968, 1408, 2435, 1698, 2091, 1779, 3625, 786, 104, 3670, 3254, 38, 4027, 1388, 2943, 927, 40, 2569, 3323, 2831, 294, 182, 4072, 633, 1829, 2318, 326, 2425, 676, 3383, 3945, 1598, 1065, 3437, 246, 929, 3250, 1966, 3355, 3632, 888, 1773, 2829, 2235, 2769, 2762, 3447, 1168, 3151, 109, 2863, 146, 2717, 2988, 2779, 3325, 2960, 1687, 36, 620, 1175, 140, 1428, 479, 1778, 1291, 2715, 1104, 3022, 1470, 2549, 864, 1535, 297, 3956, 1646, 3190, 3877, 3018, 1331, 1121, 3296, 3515, 2365, 1668, 1791, 1232, 1199, 1480, 3172, 2845, 2030, 2974, 2085, 2834, 138, 3725, 234, 378, 72, 2972, 2421, 2128, 1541, 186, 3163, 58, 681, 3649, 3423, 909, 3351, 452, 3389, 2235, 2598, 502, 307, 1358, 1688, 2176, 3121, 3776, 211, 2157, 591, 1536, 2182, 2435, 2937, 3384, 359, 1151, 2962, 657, 3403, 837, 3341, 1473, 426, 502, 3158, 2227, 2005, 1117, 1179, 4023, 1776, 2917, 1298, 47, 2301, 2691, 3919, 3238, 595, 2363, 3201, 2072, 1423, 1429, 1900, 516, 1215, 2842, 3697, 1928, 2750, 3258, 519, 1313, 130, 413, 3846, 2238, 1592, 2117, 3224, 115, 214, 1850, 2372, 3684, 3943, 2439, 841, 2183, 2045, 4032, 1193, 2488, 513, 3393, 1835, 3863, 3869, 2310, 1467, 3882, 1156, 2768, 2938, 2325, 3142, 1835, 3802, 2518, 1929, 3924, 129, 290, 3416, 3155, 384, 2025, 260, 481, 2215, 2615, 1169, 2118, 2809, 1799, 662, 49, 1574, 2740, 1889, 1469, 486, 2033, 3071, 2947, 3153, 447, 3680, 2083, 1368, 1922, 3470, 4038, 3333, 570, 1434, 2419, 3165, 1410, 1940, 3797, 719, 1018, 208, 1915, 1042, 3843, 3126, 1549, 28, 838, 2542, 1571, 1461, 2437, 3183, 2127, 1368, 3481, 2675, 3017, 784, 1236, 607, 1814, 1432, 1260, 1447, 243, 1299, 2674, 2963, 1964, 3128, 2654, 1918, 414, 2192, 1316, 2779, 1382, 603, 3120, 3047, 3552, 684, 3952, 3529, 2728, 3396, 1487, 1235, 1031, 1052, 737, 1751, 391, 387, 1199, 3494, 4076, 1917, 2689, 4002, 3558, 3911, 1251, 732, 2179, 4046, 923, 2859, 304, 1679, 4052, 2210, 1083, 823, 1073, 1268, 2379, 515, 3094, 2549, 3977, 2516, 727, 59, 254, 515, 1032, 2129, 442, 46, 2128, 1464, 1436, 2321, 2503, 3154, 1427, 3989, 3599, 419, 1451, 3698, 1990, 1211, 1592, 4060, 1230, 3455, 2158, 2042, 3005, 2558, 1870, 3873, 634, 959, 1459, 3211, 3696, 2745, 204, 1823, 143, 3035, 1291, 197, 3141, 870, 3897, 2646, 1192, 198, 1793, 2513, 1229, 1074, 2787, 1556, 3378, 1764, 2890, 2918, 307, 1354, 2858, 2135, 3005, 999, 1697, 1967, 1593, 1447, 2120, 196, 3476, 3546, 451, 2186, 522, 4035, 1461, 960, 1434, 1265, 3607, 894, 3728, 4024, 661, 779, 949, 3245, 127, 1711, 3198, 3647, 3956, 3539, 2291, 3912, 2367, 1814, 1242, 3492, 1019, 1728, 2612, 3275, 686, 861, 2958, 375, 1245, 456, 169, 3287, 4051, 2061, 3077, 59, 3766, 2135, 1326, 2157, 315, 2144, 206, 2130, 353, 737, 993, 2317, 1967, 2056, 2233, 1680, 3692, 1122, 143, 2189, 3770, 3611, 3830, 3525, 699, 325, 1105, 2421, 2424, 2220, 336, 3365, 1142, 3403, 3724, 3167, 1768, 3749, 2037, 1656, 1593, 3092, 1110, 4063, 1979, 3611, 3168, 1202, 3603, 1428, 1692, 2317, 1183, 720, 1261, 1066, 1278, 1500, 164, 572, 3938, 485, 608, 2809, 3056, 3691, 587, 545, 3130, 544, 2356, 2338, 2868, 1463, 3762, 961, 3859, 1246, 2877, 3266, 459, 3301, 1404, 2931, 1795, 1923, 3165, 2111, 1279, 2694, 3024, 3262, 1325, 359, 309, 493, 3423, 3024, 1944, 201, 2143, 1148, 3211, 1214, 2050, 2296, 2528, 3196, 381, 3692, 3111, 1750, 2335, 210, 3866, 3464, 3572, 1208, 343, 995, 3356, 2332, 3386, 3496, 719, 413, 829, 2336, 2039, 3429, 15, 2200, 3367, 1193, 2242, 1349, 4081, 1496, 303, 68, 914, 1660, 339, 237, 362, 114, 2906, 1944, 619, 114, 1569, 339, 1335, 1313, 2500, 1562, 53, 289, 2989, 3213, 349, 3842, 4038, 1559, 2784, 1782, 132, 978, 1033, 1517, 1856, 3568, 2219, 3832, 1736, 2246, 1889, 61, 935, 3737, 94, 1152, 3955, 102, 3055, 2461, 3214, 3367, 120, 443, 339, 1340, 3075, 3083, 14, 3777, 2849, 2920, 3910, 3806, 1235, 962, 1382, 583, 1790, 3514, 1665, 1053, 3668, 1731, 3017, 4080, 2408, 4063, 3679, 3427, 3974, 2974, 4030, 1972, 2852, 3141, 1957, 3392, 3042, 2206, 1971, 1895, 2446, 3484, 1780, 2565, 1647, 3897, 3358, 1552, 2692, 3366, 1783, 779, 3993, 2801, 1830, 1842, 159, 1476, 791, 577, 3753, 2868, 1202, 3192, 2732, 2615, 1674, 2390, 864, 3871, 3518, 239, 3226, 3770, 1776, 2262, 4030, 3389, 524, 1881, 1957, 218, 1467, 1964, 2036, 698, 1496, 1973, 331, 277, 1710, 3734, 2538, 3368, 993, 3779, 2398, 1624, 4077, 3902, 483, 216, 1269, 1035, 2919, 3598, 410, 2579, 881, 3449, 305, 3997, 3211, 155, 513, 2856, 1320, 3739, 1397, 972, 3823, 943, 2319, 1779, 2577, 1751, 3695, 2422, 442, 3962, 3172, 4016, 1870, 3561, 2187, 1113, 738, 3431, 2833, 647, 862, 1007, 3878, 2507, 753, 2614, 142, 975, 3328, 2381, 1271, 2409, 4037, 2793, 2416, 3405, 2785, 2964, 1196, 1858, 2382, 3832, 2559, 1753, 640, 1011, 2353, 3655, 1996, 597, 2759, 549, 3640, 24, 2684, 2921, 2133, 3947, 1985, 1491, 1458, 566, 2609, 3035, 2094, 3046, 2729, 1101, 2888, 1267, 1335, 3588, 1831, 2625, 2660, 1152, 2900, 150, 1883, 3004, 1041, 364, 4087, 1853, 3591, 895, 2699, 655, 1269, 2676, 3256, 3310, 1231, 152, 718, 1595, 1693, 1267, 3907, 542, 1778, 2942, 926, 649, 239, 1038, 3305, 2432, 2604, 3447, 361, 52, 50, 2427, 3439, 2133, 1366, 1102, 3173, 3802, 46, 2026, 2388, 1347, 2368, 2464, 3067, 470, 2229, 2482, 3069, 3334, 402, 1002, 1455, 81, 876, 1615, 3570, 3461, 1288, 2627, 1418, 2572, 1902, 1436, 2289, 1113, 2044, 2947, 2121, 997, 3988, 1517, 3068, 2093, 1466, 556, 2421, 65, 3928, 559, 3392, 497, 3686, 1521, 3170, 2437, 254, 1, 3999, 39, 3081, 3778, 2797, 56, 872, 1513, 2543, 422, 3694, 3591, 4072, 592, 430, 3289, 1181, 1506, 3524, 397, 3781, 2498, 1122, 1621, 3708, 3103, 3187, 2244, 263, 57, 3112, 2747, 3655, 2301, 392, 3181, 1488, 995, 3697, 267, 3022, 1187, 2860, 527, 1001, 3183, 344, 3308, 3231, 2819, 3814, 2072, 3179, 1930, 1474, 3615, 1125, 197, 398, 985, 1719, 1789, 1800, 3037, 444, 941, 1263, 1303, 847, 2624, 1939, 2791, 52, 150, 252, 3061, 1595, 3182, 894, 2475, 325, 1026, 1734, 1393, 923, 66, 1014, 799, 1744, 4074, 2922, 2893, 374, 1174, 703, 981, 280, 1898, 2090, 2391, 1387, 1234, 3782, 726, 1486, 1309, 1859, 1491, 3692, 2296, 2802, 1424, 801, 3808, 3740, 3148, 3694, 3575, 904, 3976, 577, 2608, 3194, 2099, 3756, 744, 990, 1557, 720, 4, 2083, 786, 1949, 1386, 957, 196, 257, 292, 3567, 246, 2136, 2738, 2891, 270, 3836, 2814, 2389, 2087, 552, 3385, 2647, 2172, 3676, 1609, 814, 74, 1411, 3658, 835, 461, 3302, 187, 281, 2595, 1103, 823, 1083, 1221, 864, 3097, 3650, 3402, 2358, 2878, 3177, 937, 4034, 3902, 2953, 1188, 3357, 1372, 1801, 841, 3625, 3084, 588, 2893, 909, 641, 2829, 1441, 1110, 3822, 2352, 3950, 3320, 3145, 2890, 2149, 440, 1219, 1502, 933, 3084, 2387, 2940, 2654, 2589, 2713, 121, 300, 3512, 1914, 1317, 1262, 2022, 374, 3349, 3518, 3362, 3852, 1719, 1146, 564, 685, 3928, 1236, 2847, 2210, 1687, 3664, 1334, 505, 1626, 1099, 2665, 1979, 1162, 2926, 3272, 3448, 2678, 451, 33, 3907, 3902, 3330, 19, 1079, 80, 3138, 2381, 1227, 382, 2541, 840, 1110, 387, 1853, 1490, 2951, 145, 2301, 357, 1048, 1107, 2675, 2383, 3666, 2155, 470, 4014, 2135, 3161, 3795, 904, 342, 3524, 350, 2284, 1697, 909, 359, 1731, 3523, 387, 2041, 264, 3914, 3948, 3925, 190, 2732, 632, 2005, 1122, 3617, 1365, 549, 771, 1474, 596, 1180, 3010, 2338, 3370, 1831, 3587, 852, 1817, 2651, 47, 3098, 2770, 1057, 1928, 2144, 2806, 3579, 2782, 2034, 2427, 1291, 500, 513, 3814, 234, 2210, 3775, 3152, 1666, 3742, 3296, 2356, 3549, 1893, 212, 1114, 522, 1061, 1979, 573, 175, 801, 4003, 1544, 1211, 2206, 3363, 2396, 2386, 3799, 3056, 3405, 2890, 3547, 691, 1703, 15, 892, 1694, 2493, 2372, 3872, 1738, 2957, 3809, 1812, 2487, 1638, 3579, 3402, 3956, 480, 2286, 1830, 762, 2570, 3974, 1499, 866, 365, 3997, 3380, 2120, 2081, 3312, 3330, 2933, 956, 1713, 325, 725, 571, 2945, 1194, 1794, 2092, 56, 440, 866, 3912, 1559, 2240, 2821, 468, 2306, 1458, 1251, 3289, 2973, 4019, 2606, 3150, 3373, 137, 3952, 87, 1901, 693, 3246, 984, 2855, 3197, 1823, 1718, 592, 2910, 2104, 1239, 2914, 1000, 1279, 2362, 1746, 46, 2141, 1779, 1897, 3671, 327, 3497, 2581, 3095, 610, 2989, 1649, 13, 272, 524, 638, 2994, 891, 2170, 2058, 1858, 1193, 298, 381, 912, 4065, 3097, 1395, 1422, 1379, 840, 4021, 409, 1774, 3787, 885, 3722, 3736, 847, 2960, 1665, 3189, 3073, 3322, 389, 2699, 1532, 3410, 1190, 2840, 3088, 2814, 232, 2116, 1106, 3326, 3378, 992, 3800, 2961, 1442, 612, 3669, 3813, 1154, 3506, 4023, 1363, 2725, 1540, 1223, 1874, 2312, 152, 2790, 1914, 3866, 1696, 783, 3166, 20, 594, 491, 2393, 1861, 380, 3461, 1897, 2702, 3319, 3629, 694, 1144, 3101, 1731, 72, 1920, 3360, 3147, 548, 2859, 1259, 2027, 3589, 824, 3687, 920, 1368, 1368, 3221, 2875, 3355, 2973, 2725, 2726, 416, 278, 3691, 628, 784, 882, 357, 537, 83, 567, 527, 3139, 3407, 3828, 2106, 3365, 1411, 1315, 1126, 3533, 965, 2954, 3461, 2616, 930, 1479, 3080, 3346, 1357, 2132, 1897, 733, 2692, 3759, 157, 3061, 778, 2368, 47, 1440, 99, 2966, 2118, 3697, 1071, 2161, 1584, 3877, 1490, 167, 3559, 3986, 846, 2799, 1113, 385, 1713, 1103, 2415, 2870, 2760, 3743, 1160, 1652, 3717, 1220, 2963, 3695, 1258, 2725, 3002, 2878, 2969, 3912, 2103, 1180, 3364, 1282, 265, 1101, 3724, 653, 1936, 120, 504, 3396, 1258, 1164, 2404, 1663, 2762, 2620, 725, 2761, 3974, 281, 3750, 1992, 800, 4086, 3131, 622, 3428, 2546, 1425, 2701, 2506, 387, 888, 2200, 3797, 2497, 729, 491, 3056, 2551, 2069, 3109, 619, 1270, 1065, 1156, 2858, 3689, 544, 25, 3607, 962, 2619, 3646, 2630, 3584, 1568, 4056, 2719, 1311, 240, 3135, 1418, 3882, 2283, 2350, 2282, 2653, 535, 2353, 1753, 426, 3670, 895, 790, 4012, 2015, 20, 1377, 1751, 3766, 2880, 2592, 2221, 3827, 3265, 1853, 2626, 386, 1152, 1253, 2248, 3022, 3100, 2583, 3594, 3005, 305, 763, 1900, 3586, 1420, 3764, 3409, 3350, 702, 3006, 1295, 2536, 3861, 316, 1799, 3607, 1549, 3062, 3889, 382, 1522, 1958, 0, 615, 3945, 176, 1396, 1460, 2466, 3103, 1084, 3432, 3974, 679, 633, 2394, 1315, 2340, 2468, 2313, 593, 826, 2208, 2174, 1703, 2257, 1362, 2386, 3259, 4030, 40, 1712, 822, 897, 1077, 3296, 789, 1724, 3157, 3960, 2695, 3184, 596, 170, 2896, 951, 2324, 1142, 3511, 222, 3879, 2165, 2550, 1405, 563, 2455, 908, 1008, 491, 2941, 1339, 628, 3987, 1138, 3106, 3479, 2494, 3413, 466, 325, 2894, 2666, 1447, 3637, 1078, 2397, 4012, 1901, 2254, 3845, 3168, 1806, 3936, 3964, 2905, 2034, 1266, 867, 94, 2559, 3350, 2450, 3544, 1399, 3779, 3385, 3681, 3252, 1804, 2338, 58, 2735, 2052, 2685, 3857, 1910, 3362, 3416, 3010, 3875, 4086, 3285, 3676, 3119, 307, 1639, 4021, 3447, 826, 2653, 116, 1095, 2644, 276, 1692, 1885, 943, 2435, 1701, 1486, 3120, 2963, 1477, 272, 241, 1139, 1922, 2680, 500, 2606, 641, 2280, 2780, 1346, 1928, 3610, 1290, 3529, 763, 2610, 3186, 29, 2069, 1395, 648, 1275, 3075, 1166, 93, 2176, 2766, 3542, 285, 3614, 2009, 622, 1979, 477, 1019, 690, 1647, 1456, 626, 2606, 1548, 1798, 2992, 1240, 3299, 3715, 2224, 2430, 3408, 3704, 2881, 2062, 29, 2853, 1880, 1687, 565, 3742, 830, 2352, 3809, 272, 597, 2836, 1757, 1397, 2483, 1248, 241, 1271, 624, 3966, 3449, 164, 3920, 1169, 1017, 2367, 2366, 2536, 1020, 2915, 528, 301, 150, 3564, 52, 233, 3212, 3901, 3786, 2932, 1771, 203, 3616, 888, 2200, 387, 1997, 1685, 1989, 1839, 339, 856, 3263, 2374, 14, 1971, 516, 2133, 413, 3668, 992, 3227, 1725, 3076, 1038, 3898, 698, 3497, 1126, 353, 2672, 2468, 1999, 736, 368, 3508, 2257, 2736, 2289, 3722, 724, 4088, 3674, 1934, 1088, 1325, 873, 1996, 2337, 3123, 2303, 758, 1637, 5, 469, 1346, 2475, 285, 3985, 3828, 2794, 1430, 3782, 2122, 3762, 1580, 283, 3385, 446, 3724, 276, 3079, 3808, 3784, 515, 3306, 212, 3570, 2072, 1007, 172, 3394, 1284, 2776, 2708, 2855, 2232, 293, 1509, 2229, 2948, 3565, 790, 3326, 2619, 2789, 3151, 3163, 1643, 36, 1857, 286, 1102, 197, 1916, 1159, 3315, 669, 1064, 2263, 3423, 2299, 1541, 3293, 3190, 266, 2356, 1944, 1156, 3258, 2284, 189, 2072, 1560, 1537, 1339, 2216, 2822, 2415, 1805, 2033, 105, 3243, 2946, 508, 3003, 1301, 2565, 3661, 653, 3446, 1783, 2043, 2992, 3607, 2598, 2285, 1018, 1928, 746, 3388, 2860, 1705, 2381, 2981, 905, 1906, 2769, 3388, 1628, 3926, 628, 2553, 3304, 2707, 3964, 1276, 1073, 505, 30, 1975, 1791, 2399, 3669, 3139, 3380, 2203, 2186, 3540, 3374, 3966, 3664, 2506, 51, 583, 3772, 2528, 455, 1397, 357, 2863, 3707, 2504, 1347, 813, 794, 2631, 1849, 3149, 2087, 3574, 873, 1171, 2315, 2090, 3975, 3216, 3135, 100, 1477, 796, 1117, 3934, 539, 3159, 3321, 1064, 3645, 3498, 412, 136, 977, 2169, 2919, 3979, 3813, 705, 1569, 754, 3366, 3588, 3319, 2905, 3931, 1534, 3562, 3918, 2910, 2692, 2972, 2276, 1511, 2207, 3469, 1837, 112, 1834, 134, 625, 3111, 2019, 1008, 3074, 485, 3824, 1188, 3153, 2365, 2095, 733, 752, 2802, 856, 3186, 1570, 984, 1777, 3888, 915, 3516, 2412, 1974, 3951, 1997, 3094, 102, 1089, 467, 2482, 1276, 2214, 2904, 632, 2143, 2399, 3148, 1821, 615, 3664, 736, 1750, 3711, 3234, 499, 3186, 1739, 3116, 2954, 1521, 3313, 3733, 3303, 811, 891, 60, 45, 2538, 3811, 1167, 2870, 1901, 3917, 1563, 3600, 2767, 1159, 1730, 1057, 3642, 3816, 1410, 2454, 2882, 2862, 3504, 3133, 4002, 1175, 1647, 1821, 63, 2213, 1510, 3589, 238, 855, 1066, 3881, 525, 1648, 3900, 3292, 3236, 2790, 3051, 1893, 2508, 1939, 3119, 696, 3476, 2837, 369, 3864, 3930, 1517, 1936, 772, 1087, 1474, 3235, 2748, 1031, 3331, 3918, 2251, 2372, 1070, 459, 1443, 39, 2181, 1996, 404, 3776, 188, 3824, 153, 2603, 2290, 3055, 940, 3347, 3557, 784, 2874, 2883, 1069, 873, 3336, 1748, 1808, 1157, 3573, 1609, 3642, 3321, 2752, 1502, 885, 1902, 2952, 2652, 3771, 890, 2693, 3611, 4063, 768, 3067, 1289, 953, 2444, 2080, 2507, 1314, 1416, 3973, 784, 2381, 3434, 299, 2503, 3264, 241, 3197, 1563, 3546, 1175, 605, 1909, 3716, 2100, 751, 2922, 476, 3525, 400, 1373, 3196, 3438, 308, 2275, 3055, 1421, 2374, 3012, 1502, 3544, 606, 375, 967, 1702, 4077, 1595, 431, 2694, 1628, 2753, 1461, 1864, 1297, 1993, 3735, 419, 259, 2181, 3119, 2769, 164, 2909, 1560, 924, 191, 2291, 3490, 344, 2622, 3333, 3353, 2625, 1252, 3357, 1031, 3355, 964, 3235, 2084, 2270, 2328, 3298, 3094, 2726, 427, 726, 1507, 3276, 50, 2672, 874, 3340, 182, 2114, 3779, 445, 2129, 3458, 1631, 3404, 3507, 2435, 2036, 2468, 1707, 3182, 2163, 234, 1273, 3850, 1735, 804, 1003, 1622, 2210, 1421, 415, 2389, 3226, 1590, 608, 3048, 953, 3174, 3727, 1385, 1924, 207, 2907, 80, 3064, 2727, 3049, 2231, 393, 2721, 1458, 1754, 3241, 3474, 1290, 3259, 1867, 3359, 2181, 2580, 3595, 2802, 2805, 294, 2798, 4054, 1287, 2364, 3580, 2439, 569, 600, 2116, 2838, 3621, 2271, 2744, 1514, 3364, 3236, 1679, 712, 1079, 467, 2244, 3143, 2074, 148, 1316, 3086, 3587, 1111, 1267, 2293, 1749, 3630, 1483, 3266, 2349, 2302, 2742, 2983, 78, 1133, 259, 2682, 1023, 2949, 2313, 506, 876, 2205, 3406, 3057, 1390, 1697, 3576, 1411, 1247, 1166, 2886, 1968, 2191, 845, 3670, 3093, 2661, 4050, 1283, 693, 2353, 712, 1157, 1855, 1339, 3373, 1266, 3872, 1760, 4035, 2799, 2047, 2641, 1683, 4035, 1402, 2809, 4001, 510, 2621, 604, 2139, 3714, 2782, 2906, 1002, 2005, 1215, 670, 3754, 689, 450, 2798, 3814, 1191, 1410, 571, 760, 3675, 2778, 3256, 3848, 3710, 3661, 3916, 1597, 539, 4056, 41, 2568, 229, 1395, 1465, 1338, 2840, 609, 174, 2053, 679, 2536, 3098, 2330, 2916, 2713, 707, 3227, 1164, 412, 1317, 3207, 1991, 3536, 1247, 3032, 1823, 3698, 3912, 1922, 458, 756, 3387, 447, 2427, 3568, 65, 810, 2809, 2004, 803, 1677, 1921, 1944, 1081, 311, 2865, 3787, 3312, 1238, 3432, 3390, 550, 1090, 2715, 862, 1411, 3426, 3359, 4027, 152, 2716, 1961, 1673, 336, 1443, 2608, 2776, 3596, 1714, 3300, 1646, 1274, 994, 480, 2957, 3525, 2931, 2765, 3430, 802, 2844, 577, 3275, 3510, 878, 2961, 3145, 934, 419, 801, 1151, 2713, 2467, 3679, 1650, 2361, 404, 1309, 3084, 2084, 934, 3437, 252, 304, 534, 4091, 1845, 3996, 2981, 1548, 1411, 2137, 3605, 415, 131, 1302, 3314, 3127, 2471, 3274, 1210, 857, 1095, 2891, 283, 2241, 1535, 89, 1532, 749, 1521, 1670, 2673, 117, 2196, 3419, 1604, 2234, 3348, 2592, 3763, 2979, 3211, 2026, 2063, 361, 1569, 3189, 3192, 112, 3844, 3779, 1849, 2545, 311, 3808, 2172, 3757, 2978, 1829, 1400, 1267, 1419, 3807, 1238, 371, 2782, 179, 3631, 2455, 551, 456, 659, 644, 1299, 269, 3828, 1482, 1204, 1856, 3598, 165, 2338, 664, 2067, 1257, 2888, 2383, 2971, 2652, 1987, 1473, 2223, 3825, 1305, 679, 2063, 1750, 1563, 1228, 1869, 320, 2125, 1241, 336, 783, 75, 1018, 1413, 3484, 3025, 764, 364, 954, 3116, 3422, 410, 1297, 306, 2247, 1982, 2500, 63, 137, 2543, 643, 1649, 1410, 2818, 1665, 1842, 1910, 1026, 2526, 2251, 3058, 541, 619, 1430, 3356, 566, 292, 720, 1711, 1630, 3512, 1070, 3158, 1777, 640, 1340, 3374, 3085, 1511, 1841, 142, 2042, 443, 2440, 3948, 3013, 3073, 3336, 433, 2162, 1532, 3932, 3402, 2630, 881, 38, 3987, 416, 550, 183, 337, 1592, 1437, 765, 429, 2262, 19, 1372, 1953, 1064, 1416, 3830, 3088, 1300, 3262, 1384, 3175, 3661, 3328, 482, 2547, 3504, 1364, 2978, 1054, 4041, 1995, 1424, 3553, 414, 205, 2801, 2549, 3597, 3001, 3981, 851, 1333, 1955, 2380, 1031, 4067, 1669, 2858, 2752, 1923, 3319, 2558, 292, 3539, 2311, 4012, 478, 820, 1990, 1755, 3947, 3987, 627, 3541, 51, 2078, 3681, 594, 935, 2242, 1397, 960, 1454, 2024, 2062, 3035, 3932, 1978, 246, 1919, 1472, 1783, 274, 2342, 3695, 3296, 1910, 2819, 4052, 2786, 1850, 366, 2166, 2318, 2028, 3502, 2286, 890, 3646, 2660, 112, 903, 1743, 893, 2871, 162, 3132, 4057, 3805, 1677, 3351, 3239, 3312, 2886, 101, 3392, 2417, 508, 3991, 3298, 171, 2256, 1086, 1625, 765, 3143, 1374, 2119, 1712, 1084, 1754, 3838, 2524, 1935, 1189, 1963, 2531, 340, 3196, 1583, 3576, 64, 3328, 410, 825, 86, 2742, 1135, 95, 1494, 1738, 1212, 1994, 2594, 3527, 949, 2121, 512, 108, 4032, 545, 3908, 3907, 3946, 1301, 2403, 275, 447, 460, 1052, 3667, 2953, 737, 2046, 3829, 3652, 499, 821, 3939, 1318, 3821, 299, 2558, 2712, 1412, 2870, 2787, 1982, 2998, 1054, 1194, 4005, 976, 1047, 3914, 3347, 1890, 2229, 2740, 316, 3039, 2343, 4057, 345, 3124, 665, 747, 851, 1633, 2101, 1491, 2606, 3033, 210, 104, 1164, 770, 285, 2040, 3038, 3485, 2534, 2551, 2069, 3475, 3684, 1457, 1065, 3060, 3130, 877, 4037, 3772, 3848, 1637, 3272, 3395, 3288, 3779, 1480, 150, 1890, 1774, 1861, 2575, 1863, 3587, 3521, 2906, 1875, 719, 3588, 177, 2526, 2607, 1496, 1048, 3344, 3040, 1523, 1774, 247, 2264, 1869, 3575, 2160, 1817, 3484, 2469, 3333, 549, 1621, 559, 3290, 2720, 3320, 624, 1252, 999, 2181, 3549, 3147, 2117, 2981, 1631, 412, 1963, 468, 3923, 1742, 2455, 3132, 738, 515, 3990, 1063, 3607, 1108, 3165, 3159, 2298, 1814, 1742, 3534, 797, 3114, 3228, 1899, 3470, 3049, 210, 2891, 456, 360, 318, 4061, 124, 2349, 3885, 2911, 3909, 1556, 1048, 1575, 3136, 2236, 209, 868, 983, 2338, 3447, 1465, 1794, 2386, 1438, 192, 2956, 1829, 691, 1881, 2506, 915, 616, 1154, 968, 1480, 2597, 752, 3630, 1703, 2728, 3655, 1312, 2676, 17, 3612, 399, 3333, 1925, 1136, 843, 4071, 3530, 3162, 697, 2431, 1886, 2844, 3059, 2411, 2620, 1105, 2085, 1191, 302, 3590, 3684, 399, 985, 799, 3419, 3492, 1811, 3948, 3003, 1716, 1983, 2746, 1501, 1704, 1577, 2179, 1495, 1246, 2575, 2565, 794, 2758, 2418, 1904, 3624, 3472, 1564, 2807, 2194, 415, 2158, 107, 196, 317, 1539, 3518, 30, 2482, 3519, 3264, 435, 577, 579, 3061, 3336, 3274, 3834, 1459, 2272, 3788, 1480, 650, 2672, 3007, 3295, 3305, 3097, 3760, 3845, 1926, 2891, 3479, 406, 1156, 2976, 1169, 1398, 29, 1045, 447, 949, 690, 2285, 427, 3152, 1108, 1255, 81, 1684, 2775, 2335, 4001, 4095, 2220, 2634, 3606, 3190, 2142, 3469, 4016, 3339, 3319, 3601, 433, 568, 2114, 3199, 2783, 341, 973, 1220, 809, 159, 1276, 2622, 2360, 1622, 1068, 547, 2496, 605, 2122, 1233, 342, 2986, 1045, 3579, 2605, 889, 1384, 2076, 1694, 232, 1583, 71, 1266, 3246, 657, 1065, 451, 3014, 2886, 2519, 2247, 764, 802, 1162, 3706, 2915, 3425, 1703, 2389, 671, 1168, 2534, 75, 3272, 1498, 660, 3040, 3581, 0, 1986, 2995, 2437, 893, 1699, 2620, 2261, 2862, 2942, 3426, 636, 1151, 851, 3767, 401, 3742, 2492, 1890, 230, 98, 2590, 2630, 3407, 1635, 1123, 2350, 963, 2112, 3690, 3331, 3335, 1299, 2186, 104, 295, 3999, 514, 2520, 2349, 3301, 319, 1735, 3623, 3675, 3599, 3750, 3836, 39, 709, 3364, 2379, 503, 1459, 3406, 344, 3263, 2014, 2875, 3963, 2874, 3090, 2539, 1587, 702, 3103, 922, 693, 1338, 2404, 2891, 1221, 1966, 2732, 607, 2272, 3733, 2842, 1363, 860, 2107, 1548, 3954, 763, 2194, 981, 2590, 1236, 2412, 268, 804, 2164, 2162, 717, 3770, 328, 3936, 1206, 1471, 3472, 3710, 1017, 681, 3775, 2218, 3001, 880, 3455, 1235, 3132, 2867, 3884, 2499, 1348, 2945, 3201, 2179, 835, 219, 1288, 331, 1212, 350, 475, 1556, 1211, 1569, 3457, 2861, 3437, 3719, 1861, 2854, 164, 3322, 3475, 1852, 4013, 184, 3306, 2216, 251, 683, 638, 1293, 2870, 3686, 2679, 2838, 1641, 942, 2886, 798, 3870, 1482, 3763, 3491, 2502, 486, 3487, 1515, 2392, 345, 1461, 992, 464, 2894, 1213, 3331, 1699, 2224, 3072, 3694, 3574, 2486, 797, 1681, 2048, 2598, 1957, 3644, 490, 3576, 1384, 2004, 2616, 3767, 518, 3127, 495, 2299, 2223, 3346, 3286, 99, 575, 275, 2545, 898, 1655, 879, 3094, 3333, 3088, 2306, 1068, 671, 3892, 2806, 3156, 1553, 3736, 2858, 2819, 577, 1664, 1092, 3483, 209, 2874, 1856, 3694, 3121, 703, 3315, 2473, 197, 143, 1599, 2539, 2273, 3454, 2776, 3943, 2195, 447, 4092, 1508, 1545, 1021, 3775, 2999, 1065, 2832, 3560, 1144, 1354, 2636, 1074, 3869, 273, 3087, 2605, 3445, 1659, 2898, 1435, 1853, 2610, 1286, 69, 2687, 624, 2271, 3763, 241, 2390, 2481, 1020, 3890, 1154, 416, 2548, 275, 1860, 1488, 844, 840, 4094, 1882, 1400, 1129, 1523, 3139, 1932, 686, 2609, 3267, 1673, 1294, 1976, 546, 1750, 3271, 2610, 3172, 2627, 2726, 49, 553, 1497, 2073, 3428, 80, 962, 541, 1830, 3127, 1899, 419, 3160, 2766, 358, 3021, 2563, 2984, 3860, 2091, 118, 3346, 3349, 2429, 752, 1955, 402, 1663, 1450, 1031, 1184, 2847, 1668, 3539, 2277, 1709, 1846, 3513, 300, 2514, 2425, 136, 2396, 1031, 3019, 1229, 242, 3367, 3559, 3427, 1753, 3751, 4001, 3624, 2033, 3605, 2445, 2729, 1983, 2619, 384, 1390, 3187, 4057, 511, 521, 1867, 3668, 1059, 429, 2462, 3591, 277, 3334, 2350, 995, 3909, 1764, 1681, 1739, 3728, 2494, 533, 2813, 2913, 857, 3111, 3999, 189, 614, 2814, 1447, 133, 3600, 2727, 415, 3985, 3381, 1216, 744, 3692, 410, 106, 185, 103, 1707, 1705, 798, 2250, 2734, 480, 885, 2214, 299, 2698, 2844, 476, 3046, 2579, 3361, 3764, 3481, 236, 1484, 181, 3982, 941, 1518, 2602, 1491, 1841, 3971, 2285, 2821, 3021, 2005, 2651, 500, 339, 1601, 1338, 3952, 637, 1482, 2456, 2126, 1757, 833, 2311, 3431, 1260, 3707, 3146, 592, 479, 3156, 691, 4059, 1155, 1453, 1661, 1896, 1554, 159, 2780, 3414, 344, 3773, 2348, 3682, 3661, 3518, 766, 1529, 1539, 889, 2024, 1732, 69, 1153, 3384, 1454, 1692, 2608, 1074, 554, 3503, 1656, 319, 459, 3787, 818, 898, 3611, 1958, 3602, 1491, 473, 1710, 1258, 248, 3240, 3315, 672, 3144, 2950, 1824, 2641, 513, 146, 901, 1498, 3589, 3680, 2079, 829, 1766, 3700, 1773, 2085, 1293, 2751, 67, 2422, 3837, 2059, 2487, 3256, 2105, 3692, 3032, 4021, 2557, 1835, 1233, 3204, 856, 2313, 2065, 3432, 2053, 1188, 1006, 258, 1180, 2963, 2945, 685, 3998, 1221, 1124, 401, 1289, 3294, 3242, 2329, 1275, 3904, 3764, 186, 2249, 1938, 1, 1564, 295, 3336, 519, 2899, 381, 1692, 3356, 2822, 1962, 2282, 3153, 75, 2073, 3681, 933, 2756, 3036, 3988, 2965, 2699, 1618, 914, 2763, 2245, 2260, 1252, 615, 2277, 861, 1783, 3218, 4076, 2206, 3180, 2668, 73, 3794, 1797, 3449, 286, 3998, 352, 3948, 2770, 3492, 1024, 1551, 578, 3687, 1581, 2042, 1255, 2900, 2744, 2436, 2558, 1008, 3539, 637, 3507, 1087, 972, 163, 52, 3912, 2183, 1779, 3570, 1358, 180, 605, 893, 3862, 1429, 1903, 942, 664, 1943, 2686, 3152, 2183, 2475, 3684, 884, 3294, 2370, 976, 1762, 2570, 1992, 3801, 3223, 959, 628, 2185, 2188, 3524, 2792, 1329, 1988, 604, 3675, 2384, 2193, 3032, 1832, 3657, 3748, 221, 1239, 2396, 1441, 3107, 3319, 4040, 3374, 3972, 91, 3572, 1107, 112, 2605, 2915, 3079, 3785, 3499, 3334, 2974, 363, 736, 3303, 187, 1264, 1632, 2033, 2685, 3329, 1393, 438, 1846, 1130, 1729, 4063, 550, 3523, 2805, 892, 1671, 3616, 1704, 2104, 3136, 2765, 277, 1175, 1510, 1184, 511, 3614, 1287, 924, 1159, 2434, 821, 3583, 371, 4090, 776, 1817, 878, 4005, 1931, 3280, 3019, 3990, 2607, 501, 2503, 1867, 3824, 1790, 2369, 2727, 3652, 3745, 1863, 3105, 3146, 2373, 439, 3465, 1424, 319, 1459, 413, 380, 947, 2044, 745, 3534, 1908, 428, 3894, 2104, 3704, 3408, 3861, 1082, 4087, 1702, 199, 879, 1070, 342, 744, 2372, 2351, 3727, 1456, 2514, 1824, 2250, 2351, 2008, 2753, 3434, 339, 1188, 374, 3939, 1362, 3538, 2745, 3782, 4026, 343, 1323, 792, 418, 1401, 1399, 1983, 2588, 3081, 1470, 1197, 933, 199, 2569, 2166, 2734, 3900, 236, 4061, 3666, 2307, 1172, 3058, 1772, 53, 811, 3859, 2768, 1940, 2584, 604, 2292, 1699, 2673, 3504, 3055, 2804, 927, 3432, 1630, 314, 3730, 791, 3332, 1327, 1612, 1968, 3679, 2636, 2829, 367, 2614, 3821, 1993, 2782, 3515, 3264, 2766, 3519, 3394, 3023, 1112, 970, 3721, 1984, 1510, 145, 581, 295, 144, 3675, 2820, 277, 806, 655, 2736, 637, 695, 1140, 2657, 558, 875, 1715, 1660, 4079, 1582, 916, 680, 2374, 2288, 2776, 2670, 22, 3042, 1901, 2255, 431, 145, 3436, 3466, 1830, 310, 2078, 2234, 179, 3811, 10, 428, 2036, 2938, 1676, 2197, 3089, 3737, 3255, 1444, 2678, 1680, 1401, 2604, 2499, 2254, 1197, 4034, 2691, 4031, 1008, 1264, 3700, 1643, 995, 2547, 147, 2124, 3449, 479, 1565, 867, 2444, 4011, 2097, 2166, 3182, 460, 2594, 3086, 3243, 1938, 1604, 2449, 2999, 906, 1399, 3618, 3778, 3896, 1115, 372, 1900, 3417, 2436, 2341, 1781, 2788, 2374, 1919, 2986, 437, 4023, 150, 598, 3677, 3103, 1075, 3741, 1820, 2060, 2760, 709, 802, 2680, 1119, 3727, 3394, 2539, 3836, 3045, 2802, 244, 3692, 764, 496, 3563, 2155, 3942, 1710, 255, 3398, 2916, 2295, 547, 2409, 622, 186, 2031, 3645, 2826, 3212, 1780, 3092, 2103, 2698, 2560, 3001, 1589, 3600, 15, 870, 3853, 2184, 3663, 1867, 2712, 3526, 3182, 4033, 3006, 3020, 1729, 2797, 2736, 1557, 1449, 102, 517, 2669, 2205, 297, 3151, 1472, 2677, 2633, 562, 3173, 354, 3784, 3916, 1687, 755, 3441, 1955, 4014, 3131, 1832, 2153, 2965, 312, 3577, 762, 1600, 2056, 265, 3423, 1355, 758, 1518, 3130, 3258, 624, 390, 3303, 2921, 359, 3877, 467, 979, 1121, 1589, 347, 2076, 3228, 1210, 1267, 3806, 47, 3168, 2277, 1103, 651, 4087, 3018, 2321, 1483, 3257, 2880, 984, 1072, 3939, 3204, 2268, 2075, 2872, 1583, 1719, 2682, 1975, 2790, 2972, 1651, 1319, 2914, 3560, 2538, 2818, 1252, 1712, 308, 2179, 842, 221, 2146, 496, 795, 2936, 715, 408, 2582, 3635, 2480, 2295, 3355, 2629, 2699, 206, 1521, 3584, 2820, 3222, 2541, 1702, 2266, 3950, 3751, 1298, 1106, 2187, 2202, 3118, 3053, 3303, 3319, 3400, 164, 1530, 1726, 3379, 1684, 2538, 1066, 458, 2123, 2180, 2054, 790, 2639, 2353, 3908, 3097, 3644, 1002, 2116, 2338, 774, 4095, 3524, 2006, 2752, 2036, 3183, 2794, 2073, 4027, 3923, 541, 3209, 1818, 710, 3430, 3439, 785, 3087, 666, 1737, 3173, 3193, 749, 1408, 4076, 24, 3068, 888, 1438, 22, 2340, 2863, 2910, 2611, 3736, 1081, 2084, 1641, 2790, 1235, 3489, 4060, 1485, 1013, 254, 2576, 3872, 2527, 1784, 737, 2116, 186, 1378, 2282, 3652, 2829, 3907, 3537, 696, 2574, 2257, 1261, 217, 200, 737, 2764, 1285, 2482, 1530, 2878, 3897, 1305, 4074, 849, 1802, 3529, 3939, 2179, 1423, 2004, 1795, 256, 543, 209, 2038, 1115, 3887, 525, 183, 3260, 1211, 1575, 642, 2627, 1991, 3111, 1193, 3403, 1706, 3835, 3671, 3784, 0, 713, 2619, 3963, 2934, 1795, 1535, 945, 3160, 1182, 3191, 2511, 2946, 1952, 1198, 470, 1585, 1844, 2794, 2907, 638, 2590, 606, 2920, 329, 1781, 2350, 3057, 4006, 4005, 3921, 3271, 3561, 1718, 98, 993, 1719, 409, 2694, 974, 1791, 3438, 3681, 44, 2648, 4066, 2975, 2086, 714, 1143, 482, 619, 989, 508, 2959, 295, 1668, 2088, 2017, 1153, 3014, 315, 298, 3302, 1550, 1810, 2364, 4006, 1456, 2575, 1665, 2632, 1738, 3169, 3851, 3524, 1374, 2545, 1611, 3342, 3136, 78, 2614, 3381, 827, 1159, 2913, 999, 1959, 1933, 2505, 416, 3108, 2245, 2492, 541, 3765, 770, 2983, 3062, 1327, 562, 1636, 752, 1196, 3490, 2544, 1857, 925, 621, 61, 2823, 1267, 3050, 3208, 1027, 3637, 3961, 2429, 3575, 3882, 982, 820, 1416, 1955, 3306, 2292, 569, 8, 3184, 790, 970, 2183, 739, 1765, 4023, 2727, 149, 3720, 3935, 3027, 3112, 1382, 2436, 4069, 2554, 3058, 2190, 3491, 2099, 352, 3416, 929, 2539, 142, 3204, 124, 230, 1478, 331, 1385, 3675, 1264, 3089, 3628, 854, 3328, 2762, 3711, 3701, 3197, 3747, 675, 3036, 2665, 2215, 3134, 44, 2849, 697, 420, 394, 3837, 3207, 2391, 701, 977, 3194, 670, 2684, 258, 1186, 1010, 4, 1014, 788, 2914, 43, 3261, 1049, 434, 2561, 143, 2318, 387, 1507, 1817, 1726, 3989, 1087, 1436, 1040, 1443, 2049, 2131, 2787, 3792, 3831, 771, 3749, 463, 1344, 1140, 3444, 2856, 553, 2134, 3051, 1885, 1270, 2653, 1342, 987, 4049, 1626, 2115, 3605, 1872, 3189, 1716, 1970, 930, 1331, 3808, 3503, 1221, 3912, 2374, 1336, 4038, 2379, 1868, 853, 1078, 283, 2790, 2035, 3351, 3639, 2988, 2886, 2032, 3606, 3665, 2461, 2093, 2788, 3053, 1423, 3110, 3048, 1223, 2416, 3863, 1039, 463, 3378, 2256, 1249, 2143, 2550, 96, 2387, 3783, 2609, 3504, 1030, 2134, 3255, 2219, 1012, 3488, 2299, 2072, 293, 661, 2853, 1173, 1087, 3978, 1351, 833, 863, 2937, 2287, 1694, 185, 3881, 606, 2832, 1946, 3538, 3759, 1512, 3655, 3015, 1728, 3877, 3042, 3514, 2435, 2360, 1868, 1602, 4026, 1377, 3136, 2672, 826, 1663, 2369, 3037, 782, 1272, 1970, 1743, 1619, 1786, 303, 3161, 2919, 871, 3113, 1774, 97, 508, 1328, 1541, 1604, 3483, 2654, 2018, 3470, 1493, 2528, 3542, 1327, 1098, 3934, 1703, 3496, 3119, 2627, 2762, 2429, 2636, 1138, 1513, 2034, 2812, 2459, 2210, 425, 574, 299, 1087, 2215, 3450, 1190, 1789, 135, 2081, 455, 4056, 3251, 1607, 3775, 1454, 1705, 2814, 3265, 217, 3, 1060, 2216, 2395, 1656, 1595, 1602, 460, 2149, 1953, 736, 843, 1547, 1026, 2373, 4000, 2650, 2907, 2725, 3847, 757, 1515, 452, 2496, 2667, 1727, 3255, 1712, 2966, 1221, 1458, 962, 2980, 1890, 1400, 312, 4095, 1576, 2099, 1044, 295, 2921, 1590, 1757, 636, 1683, 267, 3450, 2036, 1225, 3113, 3419, 1455, 2337, 3679, 3922, 3844, 1468, 2915, 3806, 3805, 2116, 912, 2737, 2270, 4037, 483, 280, 713, 3527, 2710, 2762, 863, 2178, 1919, 1628, 105, 1471, 1442, 704, 1851, 2746, 1752, 41, 1751, 3273, 1008, 2463, 1172, 3230, 3659, 2804, 3292, 1053, 3000, 580, 3934, 3884, 542, 2292, 2564, 3110, 2015, 2621, 1214, 1036, 2515, 2173, 2630, 3267, 3546, 3514, 3271, 4073, 526, 1750, 3592, 1754, 2380, 1153, 3405, 95, 4011, 2020, 1663, 1177, 3719, 142, 2535, 3208, 2123, 3406, 2021, 914, 1033, 308, 3794, 3646, 3963, 225, 934, 2504, 1399, 2804, 2828, 3295, 2363, 953, 1096, 3471, 1806, 3419, 3065, 603, 901, 1916, 2382, 3357, 1715, 3789, 2622, 1071, 1306, 2688, 1690, 1829, 1116, 3144, 1259, 3254, 1879, 301, 3859, 1698, 2685, 1870, 2760, 3613, 3613, 1444, 2076, 440, 2023, 1788, 1262, 121, 3225, 3428, 386, 2323, 3429, 3075, 348, 2060, 1634, 3049, 3909, 4027, 4072, 2468, 3288, 3402, 558, 3198, 2195, 986, 2900, 1651, 56, 2525, 3271, 1544, 2197, 2790, 2231, 3607, 802, 1622, 1843, 832, 2514, 293, 2511, 3922, 1997, 1719, 2622, 216, 3815, 846, 3004, 3495, 3834, 3071, 1630, 1906, 2013, 3376, 3137, 3921, 395, 2494, 2337, 2035, 1569, 3417, 724, 744, 3222, 599, 524, 546, 1677, 1402, 3143, 3267, 3495, 649, 43, 508, 3781, 1924, 2254, 3269, 1505, 3827, 2626, 578, 156, 3797, 3243, 205, 2391, 3235, 97, 635, 3955, 3189, 3563, 1390, 4022, 2086, 939, 2092, 3420, 3621, 3007, 308, 594, 3888, 1304, 769, 3055, 29, 1146, 1844, 2233, 1036, 1808, 2100, 1226, 4047, 2882, 2358, 869, 3386, 2598, 1496, 2323, 1391, 3305, 2398, 3654, 2859, 2828, 2654, 1467, 1324, 3824, 2654, 299, 3196, 1392, 719, 3437, 848, 2559, 1530, 1751, 1564, 410, 3306, 8, 1606, 3187, 884, 1121, 952, 20, 2500, 2358, 1511, 2792, 2168, 966, 502, 236, 1198, 2306, 3120, 2648, 1468, 1083, 1570, 3328, 2202, 3503, 2301, 1689, 2654, 197, 411, 2853, 2916, 1337, 465, 1213, 3816, 886, 2596, 3278, 1651, 884, 247, 2111, 2039, 609, 2938, 3790, 343, 337, 3466, 1648, 3401, 1773, 2388, 902, 1781, 494, 785, 4025, 1529, 1182, 475, 2797, 3916, 3056, 2473, 2564, 2958, 1422, 1174, 3304, 2114, 1531, 4044, 1054, 4022, 3762, 1530, 3461, 1685, 3163, 2387, 4018, 2193, 2360, 199, 1631, 3724, 3020, 3828, 954, 1032, 3860, 379, 3645, 2786, 2463, 1753, 1231, 697, 709, 2101, 221, 2409, 2110, 3626, 365, 1182, 1877, 1990, 2806, 832, 3181, 3166, 2717, 2210, 284, 1919, 2192, 4027, 2551, 2268, 315, 827, 2144, 2670, 2176, 3269, 841, 2454, 3929, 3702, 2891, 3569, 3309, 3139, 1189, 1919, 764, 1562, 2308, 3698, 3020, 1080, 3876, 2458, 2006, 899, 817, 3899, 2209, 3701, 1574, 2438, 4062, 289, 18, 2570, 148, 693, 1188, 2208, 1307, 3902, 1977, 1959, 1951, 2275, 938, 1181, 1775, 3887, 1474, 574, 441, 1222, 2310, 1269, 2605, 2453, 1773, 2181, 2804, 797, 1736, 2577, 3008, 914, 2685, 1076, 2700, 1823, 902, 2305, 3470, 3175, 108, 3412, 3616, 2420, 2199, 4092, 3275, 990, 1505, 701, 1275, 3268, 3371, 1164, 3754, 1008, 3885, 1452, 4094, 1314, 1761, 3596, 3601, 2205, 170, 2887, 194, 3883, 867, 2147, 2953, 2522, 2235, 3853, 823, 2410, 1579, 3009, 303, 1500, 390, 3623, 2604, 3236, 832, 1028, 1449, 1260, 60, 2648, 3362, 2471, 2512, 2338, 3937, 1378, 4040, 1570, 1140, 1991, 1641, 314, 2334, 3266, 1115, 265, 4085, 2371, 466, 913, 1758, 90, 1429, 1824, 3339, 3737, 1012, 3001, 606, 1595, 5, 868, 4082, 1739, 4054, 2172, 4040, 2558, 3748, 1492, 3489, 2253, 2202, 236, 1811, 1015, 3208, 727, 3298, 2713, 2584, 2319, 2709, 1022, 866, 1202, 3729, 203, 3264, 3536, 2061, 2214, 975, 325, 1359, 537, 1498, 1970, 1548, 2966, 1270, 2023, 3979, 1819, 3915, 3782, 843, 1629, 2431, 2982, 1159, 1617, 816, 3405, 839, 1052, 3455, 2368, 2166, 3632, 3412, 2858, 3780, 2970, 2778, 1723, 3055, 2784, 623, 1468, 388, 2945, 2901, 2721, 1354, 3972, 847, 1866, 1900, 3012, 2485, 445, 680, 2757, 2857, 3187, 1509, 1167, 2758, 1059, 3738, 315, 2696, 2117, 1473, 375, 3579, 1358, 2155, 791, 4090, 3306, 482, 3610, 2470, 3214, 3567, 2932, 202, 918, 3412, 1539, 3501, 729, 3910, 1347, 2876, 495, 1961, 3256, 2112, 1717, 659, 719, 1956, 2524, 2048, 543, 2059, 1278, 3614, 1111, 3878, 90, 559, 1257, 3773, 1188, 3453, 1227, 3019, 558, 3273, 1221, 2156, 1870, 2230, 3385, 3098, 3831, 3592, 489, 3289, 2113, 2077, 2084, 1284, 3142, 1022, 3146, 3423, 2425, 754, 321, 3610, 2748, 3256, 1006, 3894, 1860, 287, 856, 586, 377, 1519, 3109, 361, 1713, 3696, 3353, 1786, 3454, 956, 197, 3815, 2258, 1568, 280, 3408, 789, 3145, 3822, 2846, 3644, 420, 2041, 1343, 735, 862, 2854, 2206, 377, 519, 3401, 541, 3349, 3996, 874, 2971, 2296, 3015, 3710, 1166, 836, 40, 3630, 1289, 3895, 3266, 3604, 2340, 3944, 3212, 330, 2071, 3784, 785, 2113, 1780, 330, 1932, 2694, 1422, 1470, 3173, 1, 2750, 2793, 1785, 3474, 1665, 682, 1417, 2598, 3681, 3413, 1963, 2036, 1549, 964, 1151, 2297, 1018, 2949, 3807, 421, 3968, 1069, 2339, 180, 3759, 2259, 1033, 219, 3550, 1999, 518, 1629, 3237, 3916, 3005, 331, 111, 3030, 2274, 3982, 2529, 3213, 883, 3290, 3519, 3686, 1196, 4078, 1046, 2002, 89, 3829, 1404, 2506, 2793, 1432, 2688, 937, 3951, 621, 96, 382, 2235, 2449, 3599, 40, 3068, 3035, 449, 2236, 895, 1216, 3463, 393, 1119, 774, 1557, 2652, 1490, 8, 156, 1948, 2229, 2627, 4016, 725, 797, 1766, 3244, 2019, 3, 3259, 1344, 3954, 3155, 1117, 1023, 3632, 2442, 1771, 402, 4004, 2020, 2584, 3263, 3278, 558, 1866, 1237, 850, 1142, 1424, 944, 803, 3838, 965, 3065, 1544, 1081, 4036, 1629, 57, 1596, 703, 682, 1328, 2833, 3026, 3080, 1793, 1885, 904, 3661, 2483, 575, 2824, 3372, 1267, 1381, 3318, 3583, 2022, 2827, 738, 3995, 3541, 2776, 2397, 873, 1058, 622, 1776, 305, 3026, 1117, 825, 4065, 362, 3576, 1733, 2728, 1049, 3031, 3932, 3373, 738, 3059, 894, 3603, 3153, 929, 2496, 3655, 1210, 1192, 2132, 360, 98, 2805, 3764, 3162, 1862, 968, 337, 2860, 1648, 2177, 1527, 2711, 933, 130, 4082, 932, 2151, 2716, 688, 1408, 733, 3478, 2929, 3562, 3754, 756, 2468, 2028, 2424, 859, 1010, 1564, 918, 2609, 3338, 327, 2839, 69, 2331, 570, 2114, 2172, 2003, 2130, 2554, 76, 1905, 75, 48, 93, 229, 2448, 3730, 1311, 1558, 1100, 1109, 2333, 3403, 3173, 906, 3867, 2684, 1074, 3241, 456, 150, 2976, 1194, 2910, 1644, 3368, 2084, 2118, 1974, 1065, 1218, 2153, 148, 407, 2967, 199, 2138, 2797, 2697, 3767, 2689, 934, 1981, 1362, 3430, 2550, 2329, 1878, 3321, 3840, 3840, 3032, 3082, 1763, 251, 3410, 152, 3659, 471, 379, 3958, 918, 2341, 2821, 3993, 753, 1360, 3275, 257, 2326, 2211, 47, 2123, 2802, 3076, 3383, 2767, 4044, 529, 347, 2065, 2731, 1358, 623, 1051, 2324, 656, 1990, 1184, 269, 1034, 3032, 783, 3762, 1545, 136, 3407, 3024, 3762, 2545, 3610, 2618, 1301, 2441, 3753, 1631, 3127, 1082, 553, 2803, 3806, 652, 3003, 3624, 3374, 827, 2332, 3043, 1821, 100, 636, 3456, 3482, 786, 3944, 1213, 3540, 1639, 774, 1936, 2965, 1114, 161, 979, 2259, 500, 339, 3427, 1392, 3149, 3498, 3042, 2227, 3426, 2465, 2463, 3569, 2698, 3727, 815, 1978, 4027, 3731, 3074, 1746, 3427, 2641, 1542, 601, 963, 4092, 1515, 1026, 1418, 1373, 3645, 3029, 3124, 1316, 3160, 650, 2014, 250, 291, 522, 3685, 2323, 3581, 2668, 3461, 1903, 726, 3570, 3535, 1891, 3817, 3672, 2839, 2523, 1440, 3771, 774, 3193, 603, 2152, 791, 2852, 3260, 2358, 3788, 1984, 3132, 691, 3572, 3786, 1766, 2682, 4089, 1367, 3664, 226, 960, 335, 3321, 432, 185, 2717, 904, 4021, 3253, 883, 2708, 3652, 1803, 2535, 2898, 3185, 1757, 2608, 3807, 3304, 1650, 95, 2320, 2360, 2501, 3620, 460, 2427, 1894, 3884, 3262, 3678, 3187, 3703, 2890, 3510, 2508, 3506, 1482, 2844, 38, 2869, 2829, 1174, 3957, 2836, 3461, 804, 787, 3949, 3656, 1031, 2593, 784, 932, 3604, 2727, 3251, 3595, 1635, 508, 2768, 1011, 1625, 2265, 2066, 3521, 1520, 3273, 969, 2508, 2110, 2978, 3439, 996, 1159, 1681, 1248, 2406, 2389, 3772, 3691, 2328, 975, 2452, 4075, 1373, 3119, 144, 2878, 3282, 2608, 1477, 1139, 1717, 3547, 610, 1216, 2700, 3133, 4046, 3919, 83, 2168, 3094, 853, 1712, 283, 252, 3915, 3230, 3498, 182, 3753, 737, 848, 2787, 1243, 1841, 2642, 613, 148, 603, 1319, 1412, 23, 2600, 3050, 502, 3050, 803, 2929, 1726, 581, 3308, 1267, 3620, 3362, 2421, 980, 3302, 3326, 1496, 2722, 721, 213, 2499, 1266, 357, 3977, 2380, 2726, 3916, 387, 1634, 1214, 1199, 937, 1139, 3142, 1819, 1806, 2893, 1410, 1461, 1580, 65, 2667, 1342, 3990, 3178, 3518, 2848, 1082, 1763, 1215, 1735, 917, 673, 3608, 1734, 2567, 271, 837, 2235, 1141, 1008, 3820, 1372, 1357, 3457, 2954, 1407, 1557, 725, 1108, 2728, 3768, 1044, 2432, 3519, 1727, 392, 949, 3916, 1677, 3404, 2953, 2994, 3705, 913, 3561, 1615, 353, 2411, 891, 1749, 3325, 961, 1683, 2340, 3749, 3008, 3429, 1620, 1291, 1126, 3936, 1130, 2093, 2923, 415, 1689, 2718, 3501, 2321, 437, 3923, 1247, 3459, 1580, 1303, 3281, 3978, 3124, 2500, 307, 1104, 3624, 2875, 1593, 2774, 2473, 2258, 1398, 2335, 2012, 625, 2046, 2487, 1705, 3932, 664, 677, 3486, 3408, 1156, 2945, 1790, 3805, 116, 2178, 3672, 157, 1813, 4016, 872, 1284, 3338, 1736, 3507, 462, 1532, 1056, 3079, 277, 227, 1271, 26, 237, 3353, 1760, 2291, 2485, 2505, 3793, 366, 1938, 1061, 306, 2062, 613, 3513, 120, 3337, 3192, 2232, 2040, 2779, 505, 2296, 2759, 2339, 2355, 998, 1157, 1238, 2290, 2557, 2604, 2797, 3802, 814, 1691, 149, 317, 3241, 296, 531, 3354, 2132, 216, 2036, 3167, 970, 1864, 2913, 1400, 2022, 1178, 1547, 2252, 3887, 3372, 2891, 2991, 1148, 2483, 3970, 2601, 2330, 1007, 234, 1296, 1695, 3419, 2555, 3148, 3556, 3738, 1286, 891, 2703, 2248, 2070, 2479, 2115, 117, 2799, 2578, 1776, 3750, 1086, 2832, 357, 2255, 2592, 45, 3677, 1567, 3183, 2498, 1570, 3275, 1254, 2042, 2871, 3231, 3129, 1416, 1000, 2293, 3131, 2502, 1092, 0, 542, 1704, 3851, 3845, 1544, 1727, 1710, 71, 633, 2570, 3629, 3657, 2358, 3878, 1221, 2041, 403, 868, 3301, 926, 2064, 2565, 3570, 90, 4084, 1793, 894, 995, 1467, 1172, 1399, 3252, 781, 965, 924, 1019, 3638, 1065, 3455, 1406, 1746, 573, 311, 3320, 221, 532, 2309, 1130, 2533, 939, 1421, 657, 3705, 3212, 3103, 1173, 3688, 3075, 1133, 2226, 320, 747, 3527, 2887, 488, 2488, 4093, 1945, 1681, 3121, 3419, 3171, 1171, 2596, 3350, 34, 3591, 1206, 3179, 448, 2381, 1603, 3893, 2727, 1213, 1589, 3751, 3135, 2320, 1197, 3561, 979, 1158, 454, 1123, 1382, 1211, 1598, 973, 417, 4054, 3099, 868, 2928, 1304, 1922, 3705, 163, 198, 2588, 1358, 244, 761, 5, 588, 1143, 1971, 1664, 2686, 1817, 701, 1373, 843, 2673, 5, 3751, 4087, 2585, 2729, 2069, 3593, 3778, 1094, 703, 1745, 3848, 1496, 2503, 2361, 3229, 1829, 1990, 1153, 2827, 1502, 1700, 2998, 1576, 2327, 2561, 3394, 2857, 1194, 3127, 4007, 2712, 2496, 1318, 749, 3764, 417, 1424, 2267, 1892, 2643, 3553, 2167, 663, 602, 2012, 2483, 2168, 680, 2298, 3000, 2282, 2964, 1118, 1012, 212, 3580, 1660, 979, 550, 3213, 520, 2193, 3098, 778, 2247, 149, 3918, 2272, 435, 3655, 2034, 757, 3658, 3975, 750, 1093, 3134, 281, 2802, 1691, 540, 3270, 347, 2057, 3011, 2525, 902, 2614, 1601, 4031, 1193, 1497, 518, 2517, 2584, 582, 3470, 3194, 169, 2585, 1950, 128, 520, 2671, 2633, 1625, 1140, 226, 659, 2115, 136, 2877, 49, 1997, 506, 414, 2770, 115, 2179, 3782, 3842, 320, 1971, 2831, 2939, 2738, 3817, 3842, 334, 659, 2209, 2743, 3684, 1849, 35, 135, 2714, 3415, 2177, 3954, 994, 1156, 1261, 2638, 2705, 970, 1881, 1598, 3510, 2575, 3446, 2119, 3459, 1159, 1313, 2481, 2671, 3672, 405, 3341, 2765, 3680, 2994, 1959, 3758, 2053, 16, 3149, 281, 2375, 2093, 854, 3672, 2440, 2287, 3307, 1781, 3308, 2076, 2253, 543, 2298, 2325, 3265, 658, 2345, 3280, 3314, 3829, 1149, 160, 3071, 2907, 2372, 3341, 3083, 1403, 1294, 2897, 2652, 2779, 1463, 2965, 1147, 380, 600, 3035, 1444, 3086, 2736, 1517, 1307, 305, 750, 2847, 2331, 618, 1946, 87, 183, 1848, 1226, 3251, 194, 3452, 4021, 2140, 2334, 843, 554, 1742, 1898, 4074, 2156, 3526, 3188, 2710, 1179, 416, 78, 2014, 2125, 2916, 947, 226, 367, 394, 3622, 1724, 1251, 0, 1869, 2207, 602, 3091, 831, 2391, 2627, 1544, 3996, 943, 3823, 2530, 3648, 1357, 63, 3442, 116, 2726, 941, 15, 2731, 290, 3225, 3492, 2458, 2976, 3202, 3256, 2926, 3939, 1977, 2476, 1524, 285, 3958, 340, 3795, 3578, 2264, 137, 2770, 1091, 1014, 2443, 2785, 3032, 3673, 2578, 743, 948, 993, 1547, 2625, 2986, 553, 1976, 3852, 2837, 2130, 1407, 1455, 2072, 1017, 2546, 1543, 3439, 1990, 1878, 644, 1018, 1020, 2189, 1290, 913, 2575, 530, 1063, 3247, 2182, 2802, 1690, 3721, 980, 2882, 3925, 272, 2271, 1686, 656, 3293, 3132, 3109, 997, 2194, 2233, 2271, 3195, 3734, 2431, 2333, 889, 4044, 2437, 1633, 3749, 3395, 3573, 257, 277, 1818, 569, 2896, 172, 2082, 537, 1774, 1320, 793, 826, 283, 242, 1909, 3383, 418, 1740, 1634, 2820, 2055, 822, 738, 1561, 3277, 3431, 381, 1447, 3808, 370, 400, 3186, 4055, 3410, 1523, 1674, 3266, 4048, 1048, 3217, 3641, 275, 2845, 3376, 3139, 899, 907, 3755, 830, 585, 2272, 2983, 584, 1586, 4080, 2606, 2872, 2319, 969, 28, 1529, 2357, 1840, 2905, 1695, 1898, 1657, 2198, 2784, 651, 1868, 2892, 2174, 3477, 2821, 420, 3765, 3063, 3517, 2908, 3195, 2303, 2135, 2421, 261, 3069, 2142, 3532, 3433, 1213, 2920, 2417, 511, 2392, 1685, 1907, 2998, 801, 2644, 1377, 2807, 1444, 1867, 2240, 2384, 3072, 3485, 2484, 2356, 797, 1014, 223, 3517, 4068, 1654, 723, 614, 1768, 2867, 223, 1672, 1196, 2516, 3826, 3805, 3716, 1598, 3759, 2405, 3080, 1531, 1342, 739, 1035, 758, 3520, 214, 4012, 378, 2735, 1050, 3473, 3236, 1302, 2683, 438, 3653, 596, 35, 1567, 12, 2940, 2233, 108, 1351, 3488, 1504, 695, 3934, 31, 3407, 2660, 2800, 1876, 864, 4073, 3421, 1454, 2883, 1219, 421, 3586, 3430, 2740, 333, 1415, 3929, 1949, 263, 137, 1563, 1778, 307, 3576, 1019, 3891, 300, 3792, 2135, 35, 2137, 887, 1867, 475, 492, 2906, 846, 766, 2911, 3509, 3518, 3588, 1635, 4034, 3537, 2834, 792, 179, 3195, 3687, 653, 3462, 3790, 1889, 2091, 3813, 471, 3145, 2674, 2460, 2865, 579, 3257, 3043, 3, 2265, 311, 2801, 3354, 250, 350, 688, 3339, 1912, 2141, 2508, 99, 829, 689, 2340, 508, 2172, 1271, 278, 2991, 2969, 923, 3144, 4089, 3072, 3707, 1565, 1614, 1983, 2699, 884, 2307, 3634, 3563, 470, 591, 3484, 567, 1659, 2349, 2650, 798, 1822, 346, 2772, 1300, 2001, 1145, 3681, 3902, 3080, 125, 3856, 2206, 566, 3235, 2987, 1215, 1646, 2440, 3619, 2638, 2885, 2363, 1769, 2512, 828, 2755, 2270, 1469, 3017, 1250, 3372, 2351, 3198, 961, 4028, 3092, 434, 2004, 980, 3866, 3809, 3872, 1905, 2812, 3253, 1431, 3992, 2441, 4075, 98, 1579, 523, 348, 233, 504, 535, 3654, 1228, 348, 3931, 4064, 1915, 3416, 2961, 192, 1402, 1170, 3403, 2563, 764, 229, 2679, 15, 2220, 397, 2937, 3795, 2551, 2111, 3427, 1267, 2256, 2235, 3123, 2145, 2755, 430, 2708, 1216, 1865, 2515, 3895, 1413, 2713, 2344, 1939, 2496, 1774, 2016, 2324, 493, 1185, 2840, 353, 1349, 3615, 692, 3911, 2183, 212, 2676, 3520, 1282, 2769, 3230, 2687, 2708, 3280, 1864, 2727, 2502, 3497, 54, 900, 4077, 2525, 1324, 628, 1364, 165, 3918, 310, 633, 2096, 2869, 2573, 2248, 2594, 2296, 658, 2138, 1581, 2543, 1340, 1334, 1039, 1543, 1276, 3522, 3359, 3909, 3502, 3641, 1421, 4071, 3546, 2440, 445, 1267, 22, 3713, 654, 1827, 3170, 2115, 1802, 722, 2344, 2553, 680, 71, 3537, 3584, 1281, 3552, 2550, 1555, 601, 1903, 1338, 4093, 3806, 2704, 967, 1996, 3539, 46, 2520, 2991, 3530, 436, 446, 1564, 1373, 1960, 2199, 3006, 3155, 1649, 3931, 2609, 795, 3571, 3398, 105, 3824, 3608, 1889, 3468, 2648, 1544, 1683, 1067, 2945, 3854, 136, 269, 3305, 1831, 3539, 1011, 2937, 1600, 1476, 3158, 7, 3330, 1369, 1655, 621, 52, 1649, 2615, 2702, 1079, 2171, 2177, 576, 1320, 390, 993, 1204, 3090, 341, 617, 394, 3729, 2748, 3044, 3559, 1106, 2639, 1895, 1636, 3351, 440, 935, 3954, 3578, 1815, 4059, 2632, 1080, 1644, 1513, 1613, 2973, 3921, 4028, 2181, 2581, 2354, 3362, 4000, 3953, 1655, 690, 3480, 41, 3375, 3519, 3342, 2861, 1635, 1514, 64, 1538, 3551, 2181, 2320, 3098, 2716, 2844, 82, 1557, 4024, 3099, 638, 324, 3944, 343, 2249, 3485, 2043, 1874, 674, 2755, 1228, 3537, 2483, 3720, 1742, 3373, 3209, 2407, 1364, 418, 3857, 3989, 1503, 3301, 2195, 3063, 3023, 3156, 2470, 861, 952, 507, 3756, 2400, 3507, 2478, 1694, 2491, 1247, 3890, 544, 2535, 2554, 2128, 3626, 1146, 570, 1482, 1353, 486, 2924, 2436, 1914, 3141, 901, 3126, 1613, 2872, 727, 3042, 1193, 3606, 1627, 564, 3812, 2982, 581, 3099, 1116, 3391, 3270, 3774, 159, 2298, 2089, 740, 2022, 1480, 887, 896, 501, 1163, 3001, 3860, 1329, 1504, 1814, 3319, 2823, 814, 2566, 2750, 1425, 718, 2778, 284, 3032, 3230, 1498, 568, 287, 3756, 3810, 3368, 1341, 93, 2, 2851, 3541, 2694, 2162, 1168, 1319, 1803, 2154, 3536, 1937, 357, 3930, 2373, 2757, 539, 163, 2014, 32, 1653, 2103, 1186, 983, 3709, 3157, 2890, 2612, 294, 761, 2037, 2955, 398, 1865, 3191, 3637, 341, 2598, 370, 938, 212, 126, 2742, 3953, 3732, 2745, 2307, 2806, 3211, 3549, 3045, 2085, 1500, 2028, 3665, 3930, 995, 584, 2879, 1070, 1806, 293, 1422, 436, 3930, 3934, 1591, 1350, 1150, 603, 1582, 2075, 1442, 2359, 2024, 2507, 1089, 2288, 4077, 2100, 2651, 1271, 1770, 2707, 2684, 1762, 3165, 2959, 1196, 2769, 3655, 2330, 3405, 2374, 688, 600, 3830, 122, 2101, 1469, 2254, 3085, 3748, 2260, 2302, 2194, 1222, 3541, 404, 3265, 1641, 1889, 1214, 2164, 2255, 1965, 2534, 2639, 893, 3194, 857, 863, 874, 1513, 142, 2235, 3324, 1293, 3383, 1893, 3595, 2175, 1923, 2082, 3739, 1413, 559, 2377, 993, 615, 1300, 2702, 181, 2977, 1676, 3957, 3205, 3887, 2576, 740, 1626, 2442, 2454, 2323, 236, 3956, 1367, 1755, 2829, 2845, 1064, 2454, 225, 1884, 409, 2281, 74, 3392, 3532, 4043, 926, 124, 3664, 2955, 2409, 1623, 1668, 3046, 2553, 1489, 2489, 1505, 3222, 1723, 3707, 3126, 903, 2909, 4039, 3788, 3784, 1789, 3462, 1701, 281, 327, 1793, 442, 2091, 226, 1581, 2569, 3522, 1734, 3760, 415, 3790, 1654, 2457, 432, 4017, 3719, 697, 1134, 887, 939, 3774, 1758, 2237, 571, 3516, 1878, 3395, 49, 770, 2921, 1947, 1274, 3320, 2803, 3394, 2364, 1055, 3670, 2201, 3323, 348, 2807, 3760, 3380, 3244, 3755, 2920, 816, 1128, 2186, 1412, 2330, 283, 1328, 3816, 2936, 326, 3393, 2019, 3578, 3227, 3988, 3495, 2334, 3692, 2704, 2223, 399, 1589, 104, 147, 1800, 1976, 142, 3297, 3626, 1182, 128, 113, 1260, 3509, 288, 3471, 148, 3128, 256, 3471, 3030, 144, 748, 1376, 3105, 1814, 4004, 1459, 1731, 302, 645, 1571, 1506, 337, 3621, 369, 600, 704, 24, 3534, 3277, 1330, 3179, 708, 1012, 2789, 1300, 263, 1592, 1781, 2391, 1455, 3517, 804, 1793, 307, 223, 3566, 3950, 2744, 1123, 758, 860, 502, 4046, 1208, 615, 1980, 3307, 2325, 615, 3741, 1469, 813, 3251, 2858, 998, 3851, 3237, 3199, 2839, 3333, 391, 1168, 615, 268, 995, 1418, 1102, 704, 3688, 3820, 3884, 2884, 2492, 3623, 1084, 1195, 3099, 144, 933, 3673, 1185, 518, 1182, 3411, 3495, 1733, 3179, 2167, 541, 1914, 2273, 523, 1821, 443, 1140, 1834, 3370, 2432, 3263, 3095, 2308, 3539, 2412, 1881, 755, 1989, 2722, 1226, 3767, 4027, 257, 1643, 3099, 488, 2869, 1098, 3583, 3549, 2135, 3291, 1611, 3930, 1809, 2244, 2252, 1052, 4059, 790, 1079, 2368, 2129, 4054, 2347, 43, 898, 3757, 2130, 3312, 3395, 1272, 1172, 1094, 947, 2330, 746, 3752, 3588, 1761, 3692, 2945, 472, 3483, 3398, 3816, 2820, 2502, 2982, 136, 660, 1419, 2644, 2460, 1497, 2678, 1558, 3288, 1590, 2194, 2241, 1614, 1119, 2787, 343, 354, 2385, 3570, 1726, 870, 92, 3224, 3779, 847, 262, 1439, 845, 2718, 361, 1138, 2015, 2785, 3687, 928, 3412, 1217, 1686, 3761, 395, 2227, 1462, 1247, 2660, 3829, 2865, 3884, 1463, 707, 3463, 3719, 3795, 2111, 3849, 106, 2472, 2784, 1991, 2549, 69, 1082, 701, 1615, 812, 3185, 3477, 1863, 974, 3123, 1781, 2099, 334, 3202, 2102, 3232, 608, 2346, 4011, 333, 1780, 3664, 1437, 1153, 3435, 891, 2058, 3794, 2148, 1471, 3852, 664, 3343, 2597, 1115, 1699, 2967, 996, 921, 3440, 274, 1543, 2622, 1042, 658, 1592, 3392, 1013, 395, 2497, 2823, 1157, 3042, 574, 1640, 2153, 2421, 3952, 3140, 2187, 3620, 287, 1472, 1119, 377, 3477, 2197, 1857, 1197, 975, 3403, 1019, 3998, 3605, 2186, 507, 3352, 2897, 1644, 3896, 1442, 3601, 3740, 2677, 103, 2218, 2406, 3764, 3201, 564, 3186, 3924, 1450, 536, 1439, 1108, 3089, 3282, 3815, 1979, 1284, 982, 1046, 977, 3455, 1114, 202, 2277, 4090, 2294, 3263, 3535, 825, 2776, 1233, 447, 1541, 1651, 551, 1331, 529, 1696, 1327, 2353, 328, 696, 2843, 626, 3223, 2783, 1426, 464, 571, 298, 3849, 2550, 526, 1985, 132, 1862, 3350, 2859, 1884, 2524, 1965, 3898, 3877, 2467, 3335, 549, 3567, 1398, 1751, 1515, 77, 1049, 1320, 920, 1859, 3415, 1225, 1201, 3093, 3333, 101, 4038, 2936, 4070, 1361, 3343, 1625, 2622, 3183, 3939, 783, 3397, 2144, 4072, 4095, 2984, 1796, 2630, 397, 3716, 2338, 1260, 2846, 932, 2827, 3186, 365, 692, 1179, 2392, 413, 3127, 1338, 505, 3017, 166, 1851, 524, 2868, 397, 243, 3938, 920, 3634, 2380, 929, 1921, 1849, 935, 214, 1541, 2707, 3702, 97, 900, 2405, 926, 4082, 907, 2865, 338, 3027, 1781, 196, 1888, 2892, 174, 281, 3946, 917, 1187, 1687, 3317, 1476, 425, 3539, 2905, 1130, 3828, 313, 1080, 2232, 366, 1450, 1465, 2951, 3460, 1728, 889, 54, 1967, 3369, 3036, 1206, 1533, 4081, 1954, 3773, 3615, 1043, 1055, 3535, 607, 639, 2260, 1630, 3516, 2324, 5, 3640, 3507, 3402, 3781, 2678, 3236, 2007, 1333, 2416, 3018, 2053, 1117, 2187, 2454, 1465, 4033, 257, 112, 2953, 318, 3413, 1323, 1554, 90, 2334, 3796, 1106, 3857, 1786, 663, 4022, 3669, 2818, 796, 2350, 3209, 3718, 1475, 1941, 3821, 3260, 3593, 1801, 2853, 115, 3022, 2161, 3031, 3039, 848, 628, 708, 1345, 1966, 3416, 1804, 1840, 1184, 2923, 1777, 3615, 1409, 2855, 1150, 207, 2947, 3115, 3461, 3503, 1212, 4012, 453, 1516, 2764, 2709, 1720, 717, 3936, 4022, 46, 199, 1475, 3720, 2513, 3950, 2154, 1579, 2590, 1392, 2278, 3645, 1575, 1305, 3396, 3434, 1312, 1753, 1964, 3274, 3542, 1037, 625, 3322, 880, 2102 | |
title_screen: | |
%ifdef USE_TITLE_SCREEN | |
%include "sim86_title_screen.dat" | |
%endif | |
end: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 3927777066, 3641906217, 3591178777, 3591112211, 3591309848, 3591705904, 3592563549, 3592894067, 4280957820, 4280957821, 4280958076, 4280892286, 4280892540, 4280958335, 4281024128, 4281024129, 4281090179, 4281090179, 4281090692, 4281156228, 4281156230, 4281090437, 4281090437, 4281156230, 4281221766, 4281156230, 4281090436, 4281090436, 4281090436, 4281090694, 4281155974, 4281156744, 4281419147, 4281550732, 4281616525, 4281747854, 4281879697, 4281945491, 4282011028, 4281945232, 4281943689, 4282533245, 4283056498, 4282204535, 4281215826, 4279044386, 4279241504, 4280161574 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4246609438, 4246609442, 4229635635, 4229107489, 4229237527, 4229828120, 4230287646, 4230551339, 4230357060, 4230294624, 4281089406, 4281023871, 4280892542, 4281023870, 4281089920, 4281024129, 4281089923, 4281090178, 4281221765, 4281221766, 4281222023, 4281222023, 4281222023, 4281222023, 4281222023, 4281222023, 4281156232, 4281222023, 4281156230, 4281156231, 4281222025, 4281287818, 4281288073, 4281288331, 4281485199, 4281616782, 4281616783, 4281616526, 4281616269, 4281550474, 4281418373, 4281154424, 4281283694, 4283971934, 4283245371, 4283706180, 4284821574, 4285018950, 4283313474, 4279899177 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229668, 4280426551, 4280751654, 4282063400, 4283310642, 4284558399, 4284493379, 4283115330, 4281279566, 4281088891, 4281089922, 4281155459, 4281155454, 4281221764, 4281155972, 4281221254, 4281287301, 4281353096, 4281353096, 4281222023, 4281287816, 4281353610, 4281288073, 4281287817, 4281287817, 4281353610, 4281287819, 4281288074, 4281353356, 4281353356, 4281419407, 4281485198, 4281485454, 4281551248, 4281616785, 4281550733, 4281353352, 4281155458, 4281023870, 4280892281, 4281022323, 4282792044, 4287120228, 4284490297, 4286264392, 4285342259, 4287379272, 4289287530, 4285218390 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280426275, 4281804088, 4283442487, 4285148736, 4286198858, 4288301668, 4287972704, 4287577949, 4282788433, 4281219964, 4281286786, 4282404747, 4286547118, 4285823912, 4284639644, 4282601357, 4282601360, 4281484425, 4281419145, 4281484936, 4281550730, 4281682060, 4281550476, 4281484940, 4281550733, 4281484685, 4281419404, 4281550476, 4282403205, 4281681805, 4281550991, 4281550991, 4281419918, 4281617043, 4281748116, 4281616526, 4281353094, 4281286531, 4281155200, 4281154428, 4281547126, 4287386497, 4289418615, 4287707220, 4290205810, 4288758361, 4289087325, 4290534259, 4289224055 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280819748, 4283771963, 4287052110, 4287511120, 4289418349, 4290403962, 4289285227, 4290338943, 4285614969, 4281482882, 4281418117, 4284179349, 4284310935, 4284902558, 4286348969, 4285231520, 4287270581, 4284574367, 4284442783, 4286416308, 4284180380, 4285495464, 4284969123, 4284837540, 4284180123, 4283128472, 4282468999, 4284636293, 4284243855, 4284181154, 4282273939, 4282208401, 4279046170, 4278783256, 4278848792, 4278980121, 4278717207, 4278717206, 4281286786, 4281220736, 4282071154, 4287714173, 4290338177, 4290665853, 4290202473, 4290729843, 4292507281, 4290795894, 4289684611 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229407, 4281082662, 4285413447, 4288628061, 4290140018, 4290007919, 4290205042, 4290797438, 4290997389, 4284370317, 4281483656, 4281418120, 4283982489, 4284376216, 4283192460, 4284376217, 4283719318, 4286547116, 4282470028, 4283850901, 4286087855, 4285167014, 4282405010, 4278783000, 4278782999, 4279506205, 4279769117, 4279768860, 4279834654, 4283852192, 4284180638, 4286350514, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4278717207, 4278717206, 4281351809, 4284499582, 4284102760, 4288500352, 4290862978, 4291254393, 4291254905, 4291848326, 4291062407, 4286731906 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4278519045, 4278519045, 4278519045, 4278519045, 4278519045, 4278519045, 4280229407, 4281213991, 4286070608, 4290008687, 4290928763, 4291191423, 4291191166, 4291061124, 4287124865, 4281811079, 4281352584, 4281352583, 4281680774, 4284179353, 4284047766, 4284442783, 4282404237, 4284640929, 4285889708, 4286481585, 4285166760, 4285824688, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4279768861, 4278980121, 4285232812, 4284800100, 4284800100, 4284800100, 4286219706, 4283392420, 4284800100, 4284800100, 4284800100, 4278782999, 4281615754, 4282664326, 4279110678, 4279110164, 4290536075, 4292045453, 4292243856, 4292311447, 4289948564, 4283843956 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4278519045, 4278519045, 4281148457, 4285677398, 4280225299, 4280356885, 4291585155, 4291256704, 4288762736, 4278715918, 4278716950, 4281287048, 4281287048, 4281812360, 4285296801, 4285429416, 4282075784, 4283128215, 4283457180, 4282930065, 4283324822, 4282601873, 4284800100, 4284800100, 4284800100, 4285487220, 4286601827, 4284800100, 4284800100, 4284800100, 4279111962, 4285035178, 4284800100, 4284800100, 4279309084, 4284049574, 4282537886, 4284181162, 4284800100, 4284800100, 4278848793, 4282142874, 4284800100, 4284800100, 4278979093, 4291258514, 4291982488, 4289751698, 4285418876, 4281809274, 4281482612 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4284800100, 4280163870, 4280163870, 4284800100, 4284800100, 4284800100, 4278519045, 4280558121, 4284800100, 4284800100, 4279831828, 4290928254, 4291783305, 4284800100, 4284800100, 4278651413, 4281287049, 4281352842, 4281747082, 4279374620, 4279308827, 4279308826, 4279243290, 4279506205, 4279045912, 4279506205, 4285428385, 4284800100, 4284800100, 4279440668, 4289109689, 4287264656, 4283848070, 4284800100, 4284800100, 4279309084, 4285166762, 4284800100, 4284800100, 4279572255, 4285430447, 4285956274, 4283852968, 4284800100, 4284800100, 4278849051, 4282406561, 4284800100, 4284800100, 4284759930, 4290470540, 4285682572, 4282796938, 4280495466, 4281417864, 4281417342 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4278519045, 4280295721, 4284800100, 4284800100, 4278782484, 4287583876, 4291126662, 4284800100, 4284800100, 4278651155, 4281287049, 4281287306, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4279045914, 4284048541, 4284800100, 4284800100, 4279703582, 4279703326, 4285232041, 4284114592, 4284800100, 4284800100, 4279374877, 4284509610, 4284800100, 4284800100, 4279374878, 4279374877, 4279506206, 4284800100, 4284800100, 4284800100, 4282340769, 4281945239, 4281549450, 4282925959, 4289614979, 4289816728, 4281549187, 4282668445, 4280956792, 4281023876, 4281615750 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4278519045, 4280230185, 4284800100, 4284800100, 4278651412, 4281285756, 4287647358, 4284800100, 4284800100, 4278519311, 4281221254, 4284800100, 4284800100, 4278717207, 4281288078, 4281287822, 4281419407, 4284800100, 4284800100, 4278914328, 4284838313, 4284800100, 4284800100, 4284800100, 4279572254, 4279111706, 4284800100, 4284800100, 4284800100, 4282077855, 4282012062, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4282275236, 4282011033, 4281418892, 4281615242, 4279307287, 4280488473, 4286666637, 4282405528, 4282273691, 4280891776, 4281549964, 4281088890 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4278519045, 4278519045, 4278519045, 4284800100, 4284800100, 4284800100, 4280163871, 4280230185, 4284800100, 4284800100, 4278651413, 4281088894, 4285548411, 4284800100, 4284800100, 4278453516, 4281221254, 4284800100, 4284800100, 4278717207, 4278717207, 4278717464, 4278717464, 4284800100, 4284800100, 4279571998, 4284574114, 4285231782, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4278783258, 4278783514, 4281947297, 4284800100, 4284800100, 4278849051, 4282209956, 4282209955, 4282144164, 4282078629, 4281946526, 4281616275, 4281549967, 4284800100, 4284800100, 4280554523, 4283779975, 4281879186, 4282076567, 4281616273, 4282142620, 4280825458 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4280163870, 4280163871, 4280230185, 4284800100, 4284800100, 4278651412, 4281023357, 4284302460, 4284800100, 4284800100, 4278453258, 4281155458, 4281287561, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4278783000, 4286153913, 4284800100, 4284800100, 4284800100, 4283457445, 4281880219, 4284800100, 4284800100, 4284800100, 4278849051, 4282013090, 4284800100, 4284800100, 4278849051, 4282209956, 4282144419, 4282143907, 4282011807, 4281748374, 4281616275, 4281616276, 4284800100, 4284800100, 4280357658, 4282138491, 4281286793, 4281944983, 4282011289, 4282077856, 4281352575 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4284800100, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163871, 4280230185, 4284800100, 4284800100, 4278651156, 4278651412, 4278848020, 4284800100, 4284800100, 4279439403, 4280891255, 4281221769, 4278717207, 4278717207, 4281222541, 4281222544, 4281353872, 4284800100, 4284800100, 4278783000, 4282010771, 4284800100, 4284800100, 4279638047, 4282274461, 4281815198, 4281881248, 4284800100, 4284800100, 4278849051, 4282013091, 4284800100, 4284800100, 4278849051, 4278849051, 4282078369, 4281946270, 4278783001, 4278783000, 4278783000, 4281814427, 4284800100, 4284800100, 4279832600, 4280627048, 4281616016, 4281682322, 4282209439, 4281749405, 4282011279 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4278519045, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163871, 4280230185, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4288500597, 4279439144, 4280429152, 4284800100, 4284800100, 4278717207, 4278717208, 4278717208, 4278717464, 4284800100, 4284800100, 4281616533, 4281616789, 4284800100, 4284800100, 4278980378, 4278783258, 4281749660, 4281881247, 4284800100, 4284800100, 4278849051, 4282078626, 4284800100, 4284800100, 4284800100, 4278849051, 4278848794, 4284800100, 4284800100, 4284800100, 4281879961, 4282472103, 4284800100, 4284800100, 4279438614, 4280824694, 4281814169, 4281616785, 4282275491, 4281814686, 4282077845 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4278519045, 4278519045, 4280163870, 4280163870, 4278519045, 4278519045, 4278519045, 4280230185, 4280561495, 4280760436, 4280760440, 4280892028, 4281351037, 4288302972, 4290273931, 4280293946, 4279704645, 4281154945, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4281550739, 4281616790, 4281551509, 4284800100, 4284800100, 4284800100, 4278783258, 4278783258, 4284800100, 4284800100, 4284800100, 4282078625, 4282078114, 4282078114, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4281815197, 4282472615, 4282406308, 4284800100, 4284800100, 4279045142, 4281352589, 4282011038, 4281814680, 4282144933, 4282012834, 4281814676 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4284800100, 4278519045, 4278519045, 4284800100, 4284800100, 4284800100, 4280163871, 4280230185, 4280495959, 4280694645, 4280760439, 4280826233, 4280957564, 4286072956, 4291060107, 4282331742, 4279112496, 4280561766, 4281287309, 4281287821, 4281353614, 4281353616, 4281419407, 4281485202, 4281419923, 4281485717, 4281617303, 4281748633, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4282012576, 4282078112, 4282078368, 4282012319, 4281946269, 4281748889, 4281748377, 4281616790, 4281748120, 4282143137, 4282472873, 4282407337, 4282864029, 4284800100, 4284800100, 4278848535, 4281484947, 4281880479, 4282143647, 4282276262, 4282407846, 4281814418 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4284800100, 4280163870, 4280163871, 4280230184, 4280495701, 4280694387, 4280760438, 4280760439, 4280892026, 4283973753, 4291257227, 4284499579, 4279704900, 4279770695, 4281155203, 4281287820, 4281287824, 4281353617, 4281419665, 4281485459, 4281485459, 4281616789, 4281748888, 4281748889, 4281814682, 4281814683, 4281749403, 4281880733, 4281880734, 4281880991, 4281946783, 4281946783, 4282077854, 4281880732, 4281879960, 4281682839, 4281748120, 4281813913, 4281946528, 4282407080, 4282669994, 4282603946, 4286077852, 4284800100, 4284800100, 4281944722, 4281485204, 4281749406, 4282209956, 4282407592, 4282473641, 4281814676 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163871, 4280230184, 4280495444, 4280628592, 4280628851, 4280760180, 4280891512, 4282268279, 4290864007, 4286337155, 4280889446, 4279572543, 4280627821, 4281287307, 4281288079, 4281419408, 4281484945, 4281550995, 4281682324, 4281616789, 4281748888, 4281748889, 4281814426, 4281814426, 4281880219, 4281814683, 4281815197, 4281946527, 4281946526, 4281880990, 4281946268, 4281879703, 4281747858, 4281616531, 4281813913, 4282143650, 4282209701, 4282406822, 4282670508, 4282997416, 4290079646, 4290735505, 4280819792, 4282208666, 4281550998, 4281749406, 4282209956, 4282407336, 4282408104, 4282078105 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163871, 4280229927, 4280429393, 4280562797, 4280563056, 4280628594, 4280760181, 4281088376, 4289485444, 4288567946, 4281415796, 4279836230, 4280165973, 4281287047, 4281419151, 4281484944, 4281485202, 4281616531, 4281682067, 4281550995, 4281616788, 4281550995, 4281748116, 4281813912, 4281879962, 4281880219, 4281880733, 4281880990, 4281880990, 4281880990, 4281880731, 4281814168, 4281616532, 4281682326, 4282077599, 4282407334, 4282341028, 4282143907, 4282605229, 4284242849, 4292309916, 4288239736, 4280558935, 4282537634, 4281683097, 4281815198, 4282341284, 4282275750, 4282407592, 4282275223 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163871, 4280229926, 4280429131, 4280561764, 4280562541, 4280628335, 4280694129, 4280957301, 4287189632, 4289944454, 4282269048, 4280099147, 4279375671, 4280825974, 4281484431, 4281484945, 4281550735, 4281681295, 4281550479, 4281550223, 4281550736, 4281550480, 4281747347, 4281681809, 4281550480, 4281747602, 4281945497, 4282076829, 4282011807, 4282011550, 4281814426, 4281617046, 4281682581, 4281880218, 4282275749, 4282473384, 4282407079, 4281945757, 4282735272, 4287259296, 4292438930, 4284365401, 4280033875, 4282077082, 4282077596, 4281880219, 4282407076, 4282209954, 4282473124, 4282406293 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229923, 4280362558, 4280429653, 4280495967, 4280562279, 4280694127, 4280890994, 4284696186, 4291192718, 4283121784, 4280297043, 4279045929, 4280429409, 4281286534, 4281418121, 4281614724, 4282533765, 4283388297, 4283782283, 4284374164, 4283979667, 4283256720, 4282666641, 4282141846, 4282142105, 4282076824, 4281879959, 4281747603, 4281878931, 4281748374, 4281682324, 4282011546, 4282274978, 4282341799, 4282407848, 4282473127, 4281945756, 4282405020, 4290013848, 4292050595, 4281214535, 4280297562, 4281550223, 4282340510, 4281748631, 4282406560, 4282406302, 4282208913, 4282010752 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163871, 4280229668, 4280230188, 4280296763, 4280495185, 4280627555, 4280759405, 4282464880, 4291454862, 4284171644, 4280626786, 4279572019, 4282070617, 4286541193, 4289564055, 4290811799, 4291271575, 4291533202, 4291664531, 4292190873, 4292058772, 4291270030, 4290218378, 4289102225, 4287001234, 4284506006, 4282338965, 4281944723, 4281681292, 4281220740, 4281616013, 4282208925, 4282340768, 4282275747, 4282407333, 4282538405, 4282340255, 4283189648, 4291521943, 4289359256, 4280492874, 4280692063, 4281549961, 4282142871, 4282274196, 4282076551, 4281812338, 4281152847, 4280625463 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163871, 4280164131, 4280230446, 4280428873, 4280889693, 4283121003, 4291521940, 4285944453, 4281546602, 4283448649, 4286469968, 4290875781, 4291467404, 4291204489, 4291006598, 4291137415, 4291597966, 4291993235, 4291795600, 4291203462, 4291137930, 4291072138, 4290940809, 4291400846, 4290154134, 4284965266, 4281614980, 4280956535, 4281351296, 4282142102, 4281945234, 4281879185, 4282208667, 4282209180, 4282405531, 4285485197, 4292769694, 4285420422, 4281479773, 4281021023, 4281679990, 4282075262, 4282140791, 4281152589, 4280559667, 4280361511, 4280229665 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163872, 4280229928, 4280493107, 4282528588, 4289092479, 4289552265, 4286143344, 4287521628, 4285745476, 4289297008, 4290809474, 4291138438, 4291269512, 4291203721, 4291400844, 4291137929, 4290611841, 4289624691, 4288835692, 4288112741, 4289559159, 4291137417, 4291795088, 4291007116, 4287655548, 4281610842, 4280560735, 4281482621, 4281548669, 4281153136, 4281812616, 4281878666, 4282075017, 4288897172, 4292376220, 4284106612, 4281348697, 4280691266, 4280625467, 4280691000, 4280559410, 4280295718, 4280229664, 4280163871, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163871, 4280295458, 4281936434, 4288697713, 4292044939, 4287585383, 4287456093, 4285285696, 4287258454, 4290020216, 4290809987, 4291072388, 4291203465, 4291269514, 4291138184, 4290479999, 4289756537, 4288770415, 4287718754, 4289033586, 4290414465, 4290808707, 4290742913, 4289624176, 4284233785, 4281412172, 4281087338, 4281088108, 4280625485, 4281416301, 4281088365, 4282532475, 4290667922, 4288699774, 4282594894, 4280558641, 4280229926, 4280229666, 4280229665, 4280164128, 4280163871, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229663, 4281476650, 4286924892, 4291060097, 4282329655, 4281872194, 4283842117, 4284629051, 4288507747, 4290152569, 4290941060, 4291400843, 4291269514, 4290546304, 4289954684, 4289691770, 4289494394, 4289625978, 4289230451, 4289230193, 4289229419, 4289755759, 4289623148, 4285152055, 4285747801, 4281678186, 4281087333, 4280362043, 4281086297, 4280493889, 4282660182, 4289289342, 4286401117, 4281411630, 4280229665, 4280163871, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280951333, 4284626757, 4288500842, 4281410599, 4280163870, 4280098077, 4280491807, 4284499265, 4289165676, 4290743424, 4290808705, 4290217852, 4289691767, 4289165940, 4288771955, 4288311920, 4287785318, 4287258717, 4287652191, 4288045920, 4289229415, 4289755247, 4286335044, 4287454813, 4282333014, 4280954447, 4280493105, 4280361262, 4280163872, 4283641920, 4289158006, 4283446077, 4280623394, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280623138, 4283182904, 4288304489, 4282001710, 4280163870, 4280163870, 4280098077, 4280754208, 4288377189, 4290152057, 4289427823, 4288573544, 4287587424, 4285418573, 4283446583, 4282526512, 4282920757, 4283709501, 4284892231, 4286337364, 4287849825, 4289361262, 4288308578, 4286533710, 4282726470, 4280624433, 4280163870, 4280163870, 4280163870, 4289157235, 4288961395, 4282133296, 4280295199, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280492065, 4282789429, 4287976295, 4281935917, 4280163870, 4280163870, 4280163613, 4280294685, 4287916641, 4289362541, 4288047201, 4286272337, 4284300863, 4283315255, 4282987064, 4282724150, 4282592820, 4282986550, 4283906365, 4285548619, 4286797910, 4288046948, 4289493106, 4285548101, 4280688931, 4280098078, 4280163870, 4280163870, 4280294430, 4291915663, 4286597723, 4281345577, 4280229663, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280426272, 4282460978, 4287318879, 4281607209, 4280163870, 4280163870, 4280163870, 4280229149, 4287193177, 4288046686, 4286534993, 4285286470, 4285024327, 4285089865, 4284629572, 4283314999, 4282986548, 4283643705, 4284169278, 4285351753, 4287191641, 4288112483, 4288638824, 4286272335, 4280294429, 4280163613, 4280163870, 4280163870, 4280950562, 4288632172, 4284036416, 4280754723, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280426273, 4282395186, 4287252829, 4281804074, 4280163870, 4280163870, 4280163870, 4280163870, 4286601299, 4287191892, 4286272078, 4286469715, 4287259228, 4287915871, 4288507237, 4289231215, 4289559152, 4289689709, 4290216053, 4290544762, 4289821553, 4289032809, 4288770663, 4287916643, 4280294685, 4280163613, 4280163870, 4280163870, 4282197549, 4288107624, 4282723893, 4280492065, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280426272, 4282264113, 4287252831, 4283116340, 4280163870, 4280163870, 4280163870, 4280163870, 4286075469, 4286863441, 4287587422, 4289100144, 4289888885, 4290874237, 4291663240, 4292650133, 4292912533, 4292582543, 4292187528, 4292582542, 4291925125, 4290347378, 4289690989, 4289034092, 4281805353, 4280098077, 4280163870, 4280229149, 4284888130, 4287056475, 4281870381, 4280295199, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280360736, 4281935661, 4286990171, 4286069836, 4280163870, 4280163870, 4280163870, 4280163870, 4285812298, 4287718749, 4289823348, 4290875265, 4291663492, 4292385931, 4292649361, 4293175193, 4293240214, 4293042322, 4292778893, 4292647306, 4292450183, 4291398522, 4291137150, 4290281586, 4287325277, 4280426014, 4280294685, 4282914845, 4289875041, 4286334033, 4281410856, 4280229406, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4281279271, 4285480012, 4288038749, 4280294685, 4280163870, 4280163870, 4280163870, 4286403407, 4289559150, 4291334790, 4291861388, 4292255373, 4292582797, 4292713869, 4292910479, 4292317571, 4290344553, 4289357916, 4289554780, 4290278760, 4291003507, 4291597444, 4290676600, 4289427307, 4281607974, 4280621852, 4286715931, 4290921813, 4287187286, 4281607721, 4280294943, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280820003, 4284035904, 4288695653, 4283244326, 4280490780, 4280098077, 4280557086, 4287981151, 4291005055, 4292189070, 4292583825, 4292519060, 4292451983, 4292449926, 4291922813, 4290145893, 4289881952, 4290539112, 4290407526, 4289421914, 4290147944, 4291992203, 4290939515, 4290478453, 4286008135, 4280491036, 4285732378, 4290459201, 4288040796, 4281936172, 4280360735, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280688674, 4283707966, 4288696423, 4288886856, 4283177245, 4280097820, 4282329898, 4289492331, 4291661958, 4292583572, 4292912792, 4293242269, 4293044632, 4291793024, 4291922813, 4292315522, 4290997101, 4289288025, 4290077025, 4290537831, 4290017386, 4291926409, 4291202688, 4290478965, 4289754221, 4280687387, 4283372824, 4289276211, 4288171867, 4282067245, 4280360735, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280491809, 4282986040, 4289091696, 4291781244, 4286914341, 4280556058, 4284760384, 4290675062, 4291990665, 4292517522, 4292847513, 4293242526, 4293242012, 4292385419, 4290870900, 4289486938, 4283111959, 4281273097, 4282979605, 4287515976, 4289557609, 4291531396, 4291465603, 4290544760, 4290213742, 4281737761, 4283175957, 4289605691, 4287186771, 4281739049, 4280295199, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280295199, 4282001711, 4288238956, 4291585926, 4289343290, 4283176728, 4286007621, 4291200634, 4291793285, 4292583570, 4292913563, 4293308319, 4293307547, 4292912022, 4292319120, 4291068026, 4286792512, 4288569182, 4289292903, 4289819242, 4290412148, 4291924614, 4291925897, 4290610808, 4290345840, 4283313709, 4283765780, 4287836215, 4284888637, 4281082404, 4280229406, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229663, 4281345577, 4286531675, 4291258502, 4291118937, 4286192672, 4284889140, 4290871414, 4292187529, 4292846486, 4292979101, 4293176478, 4293307548, 4293503131, 4292713360, 4292252813, 4292252555, 4291859082, 4291661958, 4290082925, 4290739572, 4291989123, 4292254093, 4291333503, 4290609269, 4284496695, 4282848789, 4287245874, 4282984748, 4280557344, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280885796, 4284627271, 4289747831, 4291715965, 4288817715, 4284294949, 4290805621, 4292385165, 4293043864, 4293110684, 4293242014, 4293504414, 4293304981, 4293304470, 4292449164, 4292054663, 4290871417, 4289950571, 4288239695, 4288435791, 4291002228, 4292121992, 4291661699, 4290937464, 4285153341, 4284027924, 4287048239, 4282327589, 4280360478, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280623137, 4283182905, 4289157236, 4291850127, 4290857047, 4286126874, 4290936694, 4292516496, 4293043353, 4293242269, 4293636770, 4293701280, 4293502105, 4293172112, 4291065453, 4288172876, 4289093979, 4288107340, 4286265650, 4287580483, 4290804336, 4292121220, 4291858820, 4291069048, 4285153340, 4284290581, 4286850859, 4282130723, 4280360478, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280426272, 4282395186, 4288369260, 4290930310, 4291122797, 4287569697, 4290211689, 4292582286, 4293044121, 4293307035, 4293569950, 4293568666, 4293699227, 4293304211, 4292381056, 4290868591, 4291922821, 4291791235, 4289620323, 4289225562, 4291396985, 4292253060, 4291990146, 4291002739, 4284824631, 4284487447, 4286653480, 4281933602, 4280294686, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280360736, 4281935918, 4287647077, 4290339201, 4291059065, 4288358191, 4288566351, 4292515978, 4292913048, 4293307547, 4293504926, 4293373082, 4293371029, 4293369491, 4292841095, 4292644233, 4293435804, 4292514444, 4290080101, 4290213482, 4292056457, 4292188554, 4291398521, 4290674030, 4284363568, 4285864219, 4286587944, 4281736736, 4280294685, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280294943, 4281607466, 4286858843, 4289682297, 4290994816, 4288885828, 4286461747, 4291924614, 4292846741, 4293110683, 4293111710, 4293112226, 4292650134, 4292449158, 4292446336, 4292316038, 4292381573, 4291854713, 4289619549, 4290411634, 4291334277, 4291400068, 4290478447, 4290609009, 4282721572, 4286454046, 4286326315, 4281540128, 4280294685, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229407, 4281279271, 4285611342, 4289156465, 4290535550, 4289348954, 4284553757, 4289360492, 4292387219, 4292387474, 4291926155, 4292454302, 4291795603, 4291464323, 4291528572, 4291987843, 4292316548, 4291198067, 4287122499, 4288111196, 4287652444, 4289361774, 4289425766, 4288111966, 4280687387, 4284291099, 4285934385, 4281344033, 4280229406, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280819747, 4283969854, 4287974243, 4290076284, 4290797435, 4285146158, 4282323985, 4286795848, 4289097055, 4286794817, 4286929235, 4284430643, 4288505438, 4290149488, 4290806134, 4292317577, 4290804851, 4286600012, 4285877321, 4285943114, 4288440415, 4288307799, 4284695361, 4281737505, 4287441712, 4285607991, 4281213219, 4280229406, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280426016, 4282328879, 4287185753, 4289484403, 4290864515, 4289877874, 4285016887, 4283770409, 4286205776, 4287256659, 4289164656, 4287717721, 4288176214, 4289229159, 4288637022, 4291070594, 4288767840, 4287849307, 4287717206, 4289032037, 4289229669, 4286402374, 4283441441, 4287308329, 4287575104, 4284034099, 4280819746, 4280229406, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280294943, 4281476137, 4286266704, 4289088874, 4290337658, 4291586699, 4291651462, 4290993787, 4288498528, 4285148980, 4286663497, 4289557871, 4289163881, 4288834146, 4289030756, 4290937979, 4290543477, 4287847252, 4285414969, 4285742906, 4286002994, 4285997346, 4288423729, 4289347407, 4287512140, 4282853422, 4280557344, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4281082405, 4285019461, 4288825700, 4289548400, 4290272379, 4288894061, 4289287535, 4290994815, 4291125886, 4289484137, 4285674041, 4284427309, 4285347123, 4286855993, 4287972161, 4288826183, 4288165172, 4287439909, 4287897895, 4288751666, 4290136155, 4290204521, 4288957794, 4287184719, 4282525228, 4280491808, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280754467, 4283772474, 4287644249, 4289154152, 4288959855, 4285028700, 4286147438, 4286144616, 4286403422, 4288237927, 4291322753, 4289875045, 4289413204, 4289017155, 4289081404, 4289080633, 4289607751, 4290069591, 4290136419, 4290467439, 4290270061, 4288434534, 4287841879, 4286988110, 4282263083, 4280426272, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280557345, 4282722353, 4286922066, 4288825186, 4289351787, 4290084753, 4291342774, 4291871173, 4291346368, 4287200127, 4287387240, 4290994303, 4290992761, 4290861175, 4290992760, 4291190138, 4291188854, 4291057269, 4290728562, 4290072169, 4288892514, 4286472040, 4288238690, 4286726221, 4282000681, 4280360735, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280426272, 4282131499, 4286396749, 4288431199, 4288890978, 4289219689, 4289745263, 4289747829, 4290280076, 4290938263, 4290879401, 4289748341, 4290465648, 4290728307, 4290728819, 4290925936, 4290397529, 4289738304, 4289145136, 4288620849, 4287187281, 4289036678, 4287775059, 4286003782, 4281606951, 4280294943, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280294943, 4281606696, 4285805897, 4287840088, 4288365661, 4288628319, 4289350248, 4289022308, 4289548139, 4289941357, 4289743977, 4289744491, 4290267490, 4289803329, 4289473073, 4289144103, 4288815394, 4288749854, 4288552992, 4287831071, 4286459446, 4286924112, 4285806919, 4284100409, 4281016611, 4280229406, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4281213221, 4285150019, 4287315026, 4287971416, 4288168795, 4288628065, 4287911269, 4285019200, 4288956516, 4289217890, 4289415009, 4289081659, 4288618016, 4288552478, 4288421149, 4288092956, 4287962394, 4284487191, 4283109909, 4286523702, 4285346627, 4283312953, 4281541160, 4280360479, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280754210, 4283575094, 4286330696, 4287511889, 4287709014, 4286463053, 4284756797, 4282920241, 4285936454, 4288626778, 4288758618, 4288161840, 4287961884, 4285995544, 4284684056, 4287109402, 4286454040, 4281208846, 4282717209, 4286460224, 4282787641, 4282460211, 4280688675, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280491552, 4282328363, 4285674564, 4286921037, 4287380051, 4285612877, 4282264104, 4284237641, 4284558394, 4287970389, 4288101716, 4287506224, 4287240734, 4282061331, 4281404943, 4286519580, 4286847516, 4286323485, 4286721078, 4286593611, 4284624957, 4282459950, 4280557601, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280294943, 4280819490, 4282853167, 4285806149, 4286855243, 4287051850, 4287249230, 4286528842, 4284363575, 4285215037, 4285613138, 4285285710, 4284489254, 4286191388, 4286060314, 4285797914, 4286322974, 4286391083, 4286065975, 4285477180, 4284362296, 4283575605, 4281344549, 4280294943, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280294943, 4281082148, 4282590766, 4285412162, 4286724426, 4286855499, 4286854987, 4286921036, 4287051853, 4287183438, 4286986573, 4286730844, 4289173144, 4282527281, 4285343539, 4286785845, 4286786359, 4286658629, 4284889671, 4283903288, 4282655788, 4282197034, 4281541414, 4280491808, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280688674, 4282656558, 4284558907, 4286068036, 4287051850, 4287183437, 4286854985, 4286724171, 4286658635, 4286723915, 4286133318, 4285214525, 4286004299, 4285608000, 4286986059, 4287248972, 4286987086, 4285682782, 4285025878, 4282789686, 4281540903, 4280819490, 4280426015, 4280229406, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280491808, 4281803561, 4283640630, 4284690236, 4285412160, 4286396488, 4287249231, 4286790475, 4286790221, 4286396491, 4284952896, 4281014046, 4280750615, 4283442222, 4286593099, 4286527563, 4284953412, 4285615448, 4283382593, 4281148711, 4280426272, 4280294943, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280229406, 4280426272, 4280885282, 4281147684, 4281738280, 4283772215, 4285609283, 4286003014, 4285871428, 4285740100, 4285609285, 4285084738, 4284625212, 4284690234, 4286330956, 4285871944, 4285610311, 4284955718, 4281476906, 4280360736, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4263386654, 4246609438, 4229832222, 4229832222, 4229832222, 4229832222, 4229832222, 4229832222, 4229832222, 4229832222, 4229897758, 4229897759, 4230029087, 4230553890, 4231078950, 4231275815, 4231275560, 4231537961, 4232128302, 4233112885, 4234097470, 4234753346, 4234819139, 4233506617, 4231800877, 4231079207, 4230094880, 4229832222, 4229832222, 4229832222, 4229832222, 4229832222, 4229832222, 4229832222, 4229832222, 4229832222, 4246609438, 4246609438, 4263386654, 4263386654, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 | |
dd 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4263386654, 4246609438, 4196277790, 4196277790, 4196277790, 4213055006, 4229832222, 4213055006, 4196277790, 4129168926, 4112391710, 4078837278, 4078902814, 4095680030, 4062125598, 3927973407, 3844218656, 3777372193, 3744014884, 3727434533, 3744145957, 3844415522, 4011859743, 4162723358, 4246609438, 4263386654, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870, 4280163870 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Great work! I only had to tweak this a little to get it working in my simulator. Notably, I had to change
%if !DRAW_SCREEN_EVERY_FRAME
to%if DRAW_SCREEN_EVERY_FRAME == 1
to get it working with my (probably older) NASM. I also changed the interrupts to use interrupt0x21
and then made the first interrupt set up the frame buffer address in addition to the width and height, so I know where in memory to pull the image from.Image of the first frame (still working on the graphical part of my simulator to support more than one frame):
Here's the full changelog:
Thanks for the fun challenge, and I hope to actually get it playable soon.