diff --git a/HBoxContainer.gd b/HBoxContainer.gd new file mode 100644 index 0000000..d221048 --- /dev/null +++ b/HBoxContainer.gd @@ -0,0 +1,43 @@ +extends Control + +var cursor = load('res://assets/sprites/downarrow.png') + +func _ready(): + pass + +func _process(delta): + update() + + +var cursor_sprites = [ + null, + load('res://assets/sprites/belt.tres'), + load('res://assets/sprites/channel.tres'), + load('res://assets/sprites/2x2belt.tres'), + load('res://assets/sprites/smelter.tres'), + load('res://assets/sprites/forge.tres'), + load('res://assets/sprites/lathe.tres'), + load('res://assets/sprites/welder.tres'), +] +func _draw(): + var p1_s = $"/root/Main".p1_selection + var x_offsets = [0, 16, 28, 44, 68, 96, 128, 164] + var pos1 = Vector2(x_offsets[p1_s]+4, 336) + draw_texture(cursor, pos1, Color.yellow) + + if p1_s > 0: + var mouse_pos = get_viewport().get_mouse_position() + mouse_pos = Vector2(floor(mouse_pos.x/8)*8, floor(mouse_pos.y/8)*8) + draw_texture(cursor_sprites[p1_s], mouse_pos, Color(0.75, 0.75, 0.75, 0.75)) + + +func _input(event): + if event is InputEventMouseButton and event.pressed: + if event.button_mask & BUTTON_MASK_LEFT: + if $HBoxContainer.get_rect().has_point(event.position): + for i in 8: + if $HBoxContainer.get_child(i).get_global_rect().has_point(event.position): + $"/root/Main".p1_selection = i + break + elif event is InputEventMouseMotion: + pass diff --git a/Main.gd b/Main.gd index 0473567..391770c 100644 --- a/Main.gd +++ b/Main.gd @@ -1,4 +1,5 @@ extends Node2D +var p1_selection = 0 var crosshair_16 = preload("res://assets/sprites/cursor_16.tres") var crosshair_32 = preload("res://assets/sprites/cursor_32.tres") @@ -7,6 +8,7 @@ var crosshair_64 = preload("res://assets/sprites/cursor_64.tres") func _ready(): update_cursor(1) + func update_cursor(size): match size: 0: @@ -17,3 +19,4 @@ func update_cursor(size): Input.set_custom_mouse_cursor(crosshair_48, Input.CURSOR_ARROW, Vector2(24, 24)) 3: Input.set_custom_mouse_cursor(crosshair_64, Input.CURSOR_ARROW, Vector2(32, 32)) + diff --git a/Main.tscn b/Main.tscn index 47b4b57..b646e3d 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,56 +1,36 @@ -[gd_scene load_steps=32 format=2] +[gd_scene load_steps=28 format=2] -[ext_resource path="res://spritesheet.png" type="Texture" id=1] +[ext_resource path="res://machines/Forge.tscn" type="PackedScene" id=1] [ext_resource path="res://assets/TileSet.tres" type="TileSet" id=2] [ext_resource path="res://assets/sprites/smelter.tres" type="Texture" id=3] [ext_resource path="res://assets/sprites/forge.tres" type="Texture" id=4] [ext_resource path="res://assets/sprites/lathe.tres" type="Texture" id=5] [ext_resource path="res://assets/sprites/welder.tres" type="Texture" id=6] [ext_resource path="res://assets/belt.shader" type="Shader" id=7] -[ext_resource path="res://assets/machine.shader" type="Shader" id=8] -[ext_resource path="res://assets/sprites/arrow_in.tres" type="Texture" id=9] -[ext_resource path="res://assets/sprites/arrow_out.tres" type="Texture" id=10] -[ext_resource path="res://objects/IronRod.tscn" type="PackedScene" id=11] -[ext_resource path="res://objects/IronStock.tscn" type="PackedScene" id=12] -[ext_resource path="res://objects/IronOre.tscn" type="PackedScene" id=13] +[ext_resource path="res://machines/Welder.tscn" type="PackedScene" id=8] +[ext_resource path="res://machines/Lathe.tscn" type="PackedScene" id=9] +[ext_resource path="res://assets/narration.ogg" type="AudioStream" id=10] [ext_resource path="res://Main.gd" type="Script" id=14] [ext_resource path="res://assets/sprites/cursor_16.tres" type="Texture" id=15] [ext_resource path="res://assets/sprites/2x2belt.tres" type="Texture" id=16] [ext_resource path="res://assets/sprites/belt.tres" type="Texture" id=17] [ext_resource path="res://assets/sprites/channel.tres" type="Texture" id=18] [ext_resource path="res://assets/BeltSet.tres" type="TileSet" id=19] -[ext_resource path="res://machine.gd" type="Script" id=20] +[ext_resource path="res://machines/Smelter.tscn" type="PackedScene" id=20] [ext_resource path="res://assets/bgm.ogg" type="AudioStream" id=21] [ext_resource path="res://objects/BigLadder.tscn" type="PackedScene" id=22] [ext_resource path="res://objects/MedLadder.tscn" type="PackedScene" id=23] [ext_resource path="res://objects/SmallLadder.tscn" type="PackedScene" id=24] [ext_resource path="res://bgm.gd" type="Script" id=25] [ext_resource path="res://bgm_slider.gd" type="Script" id=26] +[ext_resource path="res://HBoxContainer.gd" type="Script" id=27] +[ext_resource path="res://portals/OreSpawner.tscn" type="PackedScene" id=28] +[ext_resource path="res://portals/LadderEater.tscn" type="PackedScene" id=29] [sub_resource type="ShaderMaterial" id=1] shader = ExtResource( 7 ) shader_param/rps = 1.0 -[sub_resource type="ShaderMaterial" id=2] -shader = ExtResource( 8 ) -shader_param/rps = 0.0 -shader_param/bg_color = Vector3( 0.251, 0.251, 0.251 ) - -[sub_resource type="ShaderMaterial" id=3] -shader = ExtResource( 8 ) -shader_param/rps = 1.0 -shader_param/bg_color = Vector3( 0.251, 0.251, 0.251 ) - -[sub_resource type="ShaderMaterial" id=4] -shader = ExtResource( 8 ) -shader_param/rps = 1.0 -shader_param/bg_color = Vector3( 0.251, 0.251, 0.251 ) - -[sub_resource type="ShaderMaterial" id=5] -shader = ExtResource( 8 ) -shader_param/rps = 1.0 -shader_param/bg_color = Vector3( 0.251, 0.251, 0.251 ) - [node name="Main" type="Node2D"] script = ExtResource( 14 ) @@ -59,13 +39,16 @@ stream = ExtResource( 21 ) autoplay = true script = ExtResource( 25 ) +[node name="narration" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 10 ) + [node name="TileMap" type="TileMap" parent="."] tile_set = ExtResource( 2 ) cell_size = Vector2( 8, 8 ) collision_friction = 0.75 collision_bounce = 0.05 format = 1 -tile_data = PoolIntArray( -1, 3, 7, -65536, 3, 196612, -65535, 3, 196612, -65534, 3, 196612, -65533, 3, 196612, -65532, 3, 196612, -65531, 3, 196612, -65530, 3, 196612, -65529, 3, 196612, -65528, 3, 196612, -65527, 3, 196612, -65526, 3, 196612, -65525, 3, 196612, -65524, 3, 196612, -65523, 3, 196612, -65522, 3, 196612, -65521, 3, 196612, -65520, 3, 196612, -65519, 3, 196612, -65518, 3, 196612, -65517, 3, 196612, -65516, 3, 196612, -65515, 3, 196612, -65514, 3, 196612, -65513, 3, 196612, -65512, 3, 196612, -65511, 3, 196612, -65510, 3, 196612, -65509, 3, 196612, -65508, 3, 196612, -65507, 3, 196612, -65506, 3, 196612, -65505, 3, 196612, -65504, 3, 196612, -65503, 3, 196612, -65502, 3, 196612, -65501, 3, 196612, -65500, 3, 196612, -65499, 3, 196612, -65498, 3, 196612, -65497, 3, 196612, -65496, 3, 196612, -65495, 3, 196612, -65494, 3, 196612, -65493, 3, 196612, -65492, 3, 196612, -65491, 3, 196612, -65490, 3, 196612, -65489, 3, 196612, -65488, 3, 196612, -65487, 3, 196612, -65486, 3, 196612, -65485, 3, 196612, -65484, 3, 196612, -65483, 3, 196612, -65482, 3, 196612, -65481, 3, 196612, -65480, 3, 196612, -65479, 3, 196612, -65478, 3, 196612, -65477, 3, 196612, -65476, 3, 8, 65535, 3, 131076, 0, 3, 131078, 1, 3, 131078, 2, 3, 131078, 3, 3, 131078, 4, 3, 131078, 5, 3, 131078, 6, 3, 131078, 7, 3, 131078, 8, 3, 131078, 9, 3, 131078, 10, 3, 131078, 11, 3, 131078, 12, 3, 131078, 13, 3, 131078, 14, 3, 131078, 15, 3, 131078, 16, 3, 131078, 17, 3, 131078, 18, 3, 131078, 19, 3, 131078, 20, 3, 131078, 21, 3, 131078, 22, 3, 131078, 23, 3, 131078, 24, 3, 131078, 25, 3, 131078, 26, 3, 131078, 27, 3, 131078, 28, 3, 131078, 29, 3, 131078, 30, 3, 131078, 31, 3, 131078, 32, 3, 131078, 33, 3, 131078, 34, 3, 131078, 35, 3, 131078, 36, 3, 131078, 37, 3, 131078, 38, 3, 131080, 39, 3, 131080, 40, 3, 131078, 41, 3, 131078, 42, 3, 131080, 43, 3, 131080, 44, 3, 131078, 45, 3, 131080, 46, 3, 131080, 47, 3, 131078, 48, 3, 131078, 49, 3, 131078, 50, 3, 131078, 51, 3, 131080, 52, 3, 131078, 53, 3, 131080, 54, 3, 131080, 55, 3, 131078, 56, 3, 131080, 57, 3, 131078, 58, 3, 131080, 59, 3, 131078, 60, 3, 131077, 131071, 3, 131076, 65536, 3, 131078, 65537, 3, 131072, 65538, 3, 196613, 65539, 3, 196613, 65540, 3, 196613, 65541, 3, 196613, 65542, 3, 196613, 65543, 3, 196613, 65544, 3, 196613, 65545, 3, 196613, 65546, 3, 196613, 65547, 3, 196613, 65548, 3, 196613, 65549, 3, 196613, 65550, 3, 196613, 65551, 3, 196613, 65552, 3, 196613, 65553, 3, 196613, 65554, 3, 196613, 65555, 3, 196613, 65556, 3, 196613, 65557, 3, 196613, 65558, 3, 196613, 65559, 3, 196613, 65560, 3, 196613, 65561, 3, 196613, 65562, 3, 196613, 65563, 3, 196613, 65564, 3, 196613, 65565, 3, 196613, 65566, 3, 196613, 65567, 3, 196613, 65568, 3, 196613, 65569, 3, 196613, 65570, 3, 196613, 65571, 3, 131073, 65572, 3, 131078, 65573, 3, 131078, 65574, 3, 131078, 65575, 3, 131078, 65576, 3, 131078, 65577, 3, 131080, 65578, 3, 131078, 65579, 3, 131080, 65580, 3, 131078, 65581, 3, 131080, 65582, 3, 131080, 65583, 3, 131080, 65584, 3, 131080, 65585, 3, 131078, 65586, 3, 131080, 65587, 3, 131078, 65588, 3, 131080, 65589, 3, 131080, 65590, 3, 131080, 65591, 3, 131080, 65592, 3, 131078, 65593, 3, 131080, 65594, 3, 131080, 65595, 3, 131078, 65596, 3, 131077, 196607, 3, 131076, 131072, 3, 131078, 131073, 3, 131077, 131074, 1, 0, 131075, 1, 0, 131076, 1, 0, 131077, 1, 0, 131078, 1, 0, 131079, 1, 0, 131080, 1, 0, 131081, 1, 0, 131082, 1, 0, 131083, 1, 0, 131084, 1, 0, 131085, 1, 0, 131086, 1, 0, 131087, 1, 0, 131088, 1, 0, 131089, 1, 0, 131090, 1, 0, 131091, 1, 0, 131092, 1, 0, 131093, 1, 0, 131094, 1, 0, 131095, 1, 0, 131096, 1, 0, 131097, 1, 0, 131098, 1, 0, 131099, 1, 0, 131100, 1, 0, 131101, 1, 0, 131102, 1, 0, 131103, 1, 0, 131104, 1, 0, 131105, 1, 0, 131106, 1, 0, 131107, 3, 131076, 131108, 3, 131078, 131109, 3, 131078, 131110, 3, 131080, 131111, 3, 131080, 131112, 3, 131080, 131113, 3, 131078, 131114, 3, 131080, 131115, 3, 131078, 131116, 3, 131080, 131117, 3, 131078, 131118, 3, 131078, 131119, 3, 131078, 131120, 3, 131080, 131121, 3, 131078, 131122, 3, 131078, 131123, 3, 131078, 131124, 3, 131078, 131125, 3, 131080, 131126, 3, 131078, 131127, 3, 131080, 131128, 3, 131078, 131129, 3, 131078, 131130, 3, 131078, 131131, 3, 131080, 131132, 3, 131077, 262143, 3, 131076, 196608, 3, 131078, 196609, 3, 131077, 196610, 1, 0, 196611, 1, 0, 196612, 1, 0, 196613, 1, 0, 196614, 1, 0, 196615, 1, 0, 196616, 1, 0, 196617, 1, 0, 196618, 1, 0, 196619, 1, 0, 196620, 1, 0, 196621, 1, 0, 196622, 1, 0, 196623, 1, 0, 196624, 1, 0, 196625, 1, 0, 196626, 1, 0, 196627, 1, 0, 196628, 1, 0, 196629, 1, 0, 196630, 1, 0, 196631, 1, 0, 196632, 1, 0, 196633, 1, 0, 196634, 1, 0, 196635, 1, 0, 196636, 1, 0, 196637, 1, 0, 196638, 1, 0, 196639, 1, 0, 196640, 1, 0, 196641, 1, 0, 196642, 1, 0, 196643, 3, 131076, 196644, 3, 131078, 196645, 3, 131080, 196646, 3, 131080, 196647, 3, 131078, 196648, 3, 131078, 196649, 3, 131080, 196650, 3, 131078, 196651, 3, 131078, 196652, 3, 131078, 196653, 3, 131080, 196654, 3, 131078, 196655, 3, 131078, 196656, 3, 131080, 196657, 3, 131078, 196658, 3, 131078, 196659, 3, 131078, 196660, 3, 131080, 196661, 3, 131080, 196662, 3, 131078, 196663, 3, 131078, 196664, 3, 131078, 196665, 3, 131080, 196666, 3, 131078, 196667, 3, 131080, 196668, 3, 131077, 327679, 3, 131076, 262144, 3, 131078, 262145, 3, 131077, 262146, 1, 0, 262147, 1, 0, 262148, 1, 0, 262149, 3, 0, 262150, 3, 2, 262151, 3, 2, 262152, 3, 262148, 262153, 3, 196612, 262154, 3, 8, 262155, 1, 0, 262156, 1, 0, 262157, 1, 0, 262158, 1, 0, 262159, 1, 0, 262160, 1, 0, 262161, 1, 0, 262162, 1, 0, 262163, 1, 0, 262164, 1, 0, 262165, 1, 0, 262166, 1, 0, 262167, 1, 0, 262168, 1, 0, 262169, 1, 0, 262170, 1, 0, 262171, 1, 0, 262172, 1, 0, 262173, 1, 0, 262174, 1, 0, 262175, 1, 0, 262176, 1, 0, 262177, 1, 0, 262178, 1, 0, 262179, 3, 131076, 262180, 3, 131078, 262181, 3, 131080, 262182, 3, 131078, 262183, 3, 131078, 262184, 3, 131080, 262185, 3, 131078, 262186, 3, 131078, 262187, 3, 131078, 262188, 3, 131078, 262189, 3, 131078, 262190, 3, 131078, 262191, 3, 131080, 262192, 3, 131080, 262193, 3, 131080, 262194, 3, 131080, 262195, 3, 131078, 262196, 3, 131078, 262197, 3, 131080, 262198, 3, 131080, 262199, 3, 131078, 262200, 3, 131078, 262201, 3, 131078, 262202, 3, 131080, 262203, 3, 131080, 262204, 3, 131077, 393215, 3, 131076, 327680, 3, 131078, 327681, 3, 131077, 327682, 1, 0, 327683, 1, 0, 327684, 1, 0, 327685, 3, 6, 327686, 1, 0, 327687, 1, 0, 327688, 3, 65543, 327689, 3, 196613, 327690, 3, 65544, 327691, 1, 0, 327692, 1, 0, 327693, 1, 0, 327694, 1, 0, 327695, 1, 0, 327696, 1, 0, 327697, 1, 0, 327698, 1, 0, 327699, 1, 0, 327700, 1, 0, 327701, 1, 0, 327702, 1, 0, 327703, 1, 0, 327704, 1, 0, 327705, 1, 0, 327706, 1, 0, 327707, 1, 0, 327708, 1, 0, 327709, 1, 0, 327710, 1, 0, 327711, 1, 0, 327712, 1, 0, 327713, 1, 0, 327714, 1, 0, 327715, 3, 131076, 327716, 3, 131078, 327717, 3, 131078, 327718, 3, 131078, 327719, 3, 131080, 327720, 3, 131078, 327721, 3, 131080, 327722, 3, 131080, 327723, 3, 131078, 327724, 3, 131078, 327725, 3, 131080, 327726, 3, 131080, 327727, 3, 131078, 327728, 3, 131078, 327729, 3, 131080, 327730, 3, 131080, 327731, 3, 131078, 327732, 3, 131078, 327733, 3, 131078, 327734, 3, 131080, 327735, 3, 131078, 327736, 3, 131078, 327737, 3, 131078, 327738, 3, 131078, 327739, 3, 131078, 327740, 3, 131077, 458751, 3, 327682, 393216, 3, 196613, 393217, 3, 65544, 393218, 1, 0, 393219, 1, 0, 393220, 1, 0, 393221, 1, 0, 393222, 1, 0, 393223, 1, 0, 393224, 1, 0, 393225, 1, 0, 393226, 1, 0, 393227, 1, 0, 393228, 1, 0, 393229, 1, 0, 393230, 1, 0, 393231, 1, 0, 393232, 1, 0, 393233, 1, 0, 393234, 1, 0, 393235, 1, 0, 393236, 1, 0, 393237, 1, 0, 393238, 1, 0, 393239, 1, 0, 393240, 1, 0, 393241, 1, 0, 393242, 1, 0, 393243, 1, 0, 393244, 1, 0, 393245, 1, 0, 393246, 1, 0, 393247, 1, 0, 393248, 1, 0, 393249, 1, 0, 393250, 1, 0, 393251, 3, 131076, 393252, 3, 131078, 393253, 3, 131080, 393254, 3, 131078, 393255, 3, 131080, 393256, 3, 131078, 393257, 3, 131078, 393258, 3, 131080, 393259, 3, 131080, 393260, 3, 131080, 393261, 3, 131078, 393262, 3, 131080, 393263, 3, 131080, 393264, 3, 131080, 393265, 3, 131080, 393266, 3, 131080, 393267, 3, 131080, 393268, 3, 131078, 393269, 3, 131078, 393270, 3, 131080, 393271, 3, 131080, 393272, 3, 131080, 393273, 3, 131080, 393274, 3, 131078, 393275, 3, 131080, 393276, 3, 131077, 524287, 3, 65538, 458754, 1, 0, 458755, 1, 0, 458756, 1, 0, 458757, 1, 0, 458758, 1, 0, 458759, 1, 0, 458760, 1, 0, 458761, 1, 0, 458762, 1, 0, 458763, 1, 0, 458764, 1, 0, 458765, 1, 0, 458766, 1, 0, 458767, 1, 0, 458768, 1, 0, 458769, 1, 0, 458770, 1, 0, 458771, 1, 0, 458772, 1, 0, 458773, 1, 0, 458774, 1, 0, 458775, 1, 0, 458776, 1, 0, 458777, 1, 0, 458778, 1, 0, 458779, 1, 0, 458780, 1, 0, 458781, 1, 0, 458782, 1, 0, 458783, 1, 0, 458784, 1, 0, 458785, 1, 0, 458786, 1, 0, 458787, 3, 131076, 458788, 3, 131078, 458789, 3, 131080, 458790, 3, 131078, 458791, 3, 131078, 458792, 3, 131080, 458793, 3, 131080, 458794, 3, 131078, 458795, 3, 131080, 458796, 3, 131078, 458797, 3, 131080, 458798, 3, 131078, 458799, 3, 131080, 458800, 3, 131080, 458801, 3, 131080, 458802, 3, 131080, 458803, 3, 131080, 458804, 3, 131078, 458805, 3, 131080, 458806, 3, 131080, 458807, 3, 131080, 458808, 3, 131078, 458809, 3, 131080, 458810, 3, 131078, 458811, 3, 131080, 458812, 3, 131077, 589823, 3, 262146, 524288, 3, 196612, 524289, 3, 8, 524290, 1, 0, 524291, 1, 0, 524292, 1, 0, 524293, 1, 0, 524294, 1, 0, 524295, 1, 0, 524296, 1, 0, 524297, 1, 0, 524298, 1, 0, 524299, 1, 0, 524300, 1, 0, 524301, 1, 0, 524302, 1, 0, 524303, 1, 0, 524304, 1, 0, 524305, 1, 0, 524306, 1, 0, 524307, 1, 0, 524308, 1, 0, 524309, 1, 0, 524310, 1, 0, 524311, 1, 0, 524312, 1, 0, 524313, 1, 0, 524314, 1, 0, 524315, 1, 0, 524316, 1, 0, 524317, 1, 0, 524318, 1, 0, 524319, 1, 0, 524320, 1, 0, 524321, 1, 0, 524322, 1, 0, 524323, 3, 131076, 524324, 3, 131078, 524325, 3, 131078, 524326, 3, 131080, 524327, 3, 131078, 524328, 3, 131078, 524329, 3, 131080, 524330, 3, 131078, 524331, 3, 131078, 524332, 3, 131078, 524333, 3, 131080, 524334, 3, 131078, 524335, 3, 131078, 524336, 3, 131080, 524337, 3, 131080, 524338, 3, 131080, 524339, 3, 131080, 524340, 3, 131078, 524341, 3, 131078, 524342, 3, 131078, 524343, 3, 131078, 524344, 3, 131078, 524345, 3, 131080, 524346, 3, 131078, 524347, 3, 131080, 524348, 3, 131077, 655359, 3, 131076, 589824, 3, 131078, 589825, 3, 131077, 589826, 1, 0, 589827, 1, 0, 589828, 1, 0, 589829, 3, 65541, 589830, 1, 0, 589831, 1, 0, 589832, 1, 0, 589833, 1, 0, 589834, 3, 65541, 589835, 1, 0, 589836, 1, 0, 589837, 1, 0, 589838, 1, 0, 589839, 1, 0, 589840, 1, 0, 589841, 1, 0, 589842, 1, 0, 589843, 1, 0, 589844, 1, 0, 589845, 1, 0, 589846, 1, 0, 589847, 1, 0, 589848, 1, 0, 589849, 1, 0, 589850, 1, 0, 589851, 1, 0, 589852, 1, 0, 589853, 1, 0, 589854, 1, 0, 589855, 1, 0, 589856, 1, 0, 589857, 1, 0, 589858, 1, 0, 589859, 3, 131076, 589860, 3, 131078, 589861, 3, 131078, 589862, 3, 131080, 589863, 3, 131080, 589864, 3, 131080, 589865, 3, 131078, 589866, 3, 131078, 589867, 3, 131080, 589868, 3, 131080, 589869, 3, 131078, 589870, 3, 131080, 589871, 3, 131078, 589872, 3, 131078, 589873, 3, 131078, 589874, 3, 131080, 589875, 3, 131080, 589876, 3, 131078, 589877, 3, 131080, 589878, 3, 131080, 589879, 3, 131080, 589880, 3, 131078, 589881, 3, 131080, 589882, 3, 131078, 589883, 3, 131080, 589884, 3, 131077, 720895, 3, 131076, 655360, 3, 131078, 655361, 3, 131077, 655362, 1, 0, 655363, 1, 0, 655364, 1, 0, 655365, 3, 6, 655366, 1, 0, 655367, 1, 0, 655368, 1, 0, 655369, 1, 0, 655370, 3, 65538, 655371, 1, 0, 655372, 1, 0, 655373, 1, 0, 655374, 1, 0, 655375, 1, 0, 655376, 1, 0, 655377, 1, 0, 655378, 1, 0, 655379, 1, 0, 655380, 1, 0, 655381, 1, 0, 655382, 1, 0, 655383, 1, 0, 655384, 1, 0, 655385, 1, 0, 655386, 1, 0, 655387, 1, 0, 655388, 1, 0, 655389, 1, 0, 655390, 1, 0, 655391, 1, 0, 655392, 1, 0, 655393, 1, 0, 655394, 1, 0, 655395, 3, 131076, 655396, 3, 131078, 655397, 3, 131078, 655398, 3, 131078, 655399, 3, 131080, 655400, 3, 131080, 655401, 3, 131078, 655402, 3, 131080, 655403, 3, 131078, 655404, 3, 131080, 655405, 3, 131078, 655406, 3, 131078, 655407, 3, 131078, 655408, 3, 131080, 655409, 3, 131080, 655410, 3, 131078, 655411, 3, 131080, 655412, 3, 131078, 655413, 3, 131080, 655414, 3, 131078, 655415, 3, 131080, 655416, 3, 131080, 655417, 3, 131078, 655418, 3, 131080, 655419, 3, 131078, 655420, 3, 131077, 786431, 3, 131076, 720896, 3, 131078, 720897, 3, 131077, 720898, 1, 0, 720899, 1, 0, 720900, 1, 0, 720901, 1, 0, 720902, 1, 0, 720903, 1, 0, 720904, 1, 0, 720905, 1, 0, 720906, 3, 65538, 720907, 1, 0, 720908, 1, 0, 720909, 1, 0, 720910, 1, 0, 720911, 1, 0, 720912, 1, 0, 720913, 1, 0, 720914, 1, 0, 720915, 1, 0, 720916, 1, 0, 720917, 1, 0, 720918, 1, 0, 720919, 1, 0, 720920, 1, 0, 720921, 1, 0, 720922, 1, 0, 720923, 1, 0, 720924, 1, 0, 720925, 1, 0, 720926, 1, 0, 720927, 1, 0, 720928, 1, 0, 720929, 1, 0, 720930, 1, 0, 720931, 3, 131076, 720932, 3, 131078, 720933, 3, 131080, 720934, 3, 131080, 720935, 3, 131080, 720936, 3, 131080, 720937, 3, 131080, 720938, 3, 131078, 720939, 3, 131080, 720940, 3, 131080, 720941, 3, 131080, 720942, 3, 131080, 720943, 3, 131078, 720944, 3, 131078, 720945, 3, 131078, 720946, 3, 131078, 720947, 3, 131078, 720948, 3, 131080, 720949, 3, 131080, 720950, 3, 131080, 720951, 3, 131080, 720952, 3, 131080, 720953, 3, 131078, 720954, 3, 131080, 720955, 3, 131080, 720956, 3, 131077, 851967, 3, 131076, 786432, 3, 131078, 786433, 3, 131077, 786434, 1, 0, 786435, 1, 0, 786436, 1, 0, 786437, 3, 65541, 786438, 1, 0, 786439, 1, 0, 786440, 1, 0, 786441, 1, 0, 786442, 3, 65538, 786443, 1, 0, 786444, 1, 0, 786445, 1, 0, 786446, 1, 0, 786447, 1, 0, 786448, 1, 0, 786449, 1, 0, 786450, 1, 0, 786451, 1, 0, 786452, 1, 0, 786453, 1, 0, 786454, 1, 0, 786455, 1, 0, 786456, 1, 0, 786457, 1, 0, 786458, 1, 0, 786459, 1, 0, 786460, 1, 0, 786461, 1, 0, 786462, 1, 0, 786463, 1, 0, 786464, 1, 0, 786465, 1, 0, 786466, 1, 0, 786467, 3, 131076, 786468, 3, 131078, 786469, 3, 131078, 786470, 3, 131080, 786471, 3, 131080, 786472, 3, 131080, 786473, 3, 131080, 786474, 3, 131080, 786475, 3, 131080, 786476, 3, 131080, 786477, 3, 131080, 786478, 3, 131080, 786479, 3, 131080, 786480, 3, 131078, 786481, 3, 131080, 786482, 3, 131080, 786483, 3, 131078, 786484, 3, 131080, 786485, 3, 131080, 786486, 3, 131078, 786487, 3, 131080, 786488, 3, 131080, 786489, 3, 131078, 786490, 3, 131080, 786491, 3, 131080, 786492, 3, 131077, 917503, 3, 131076, 851968, 3, 131078, 851969, 3, 131077, 851970, 1, 0, 851971, 1, 0, 851972, 1, 0, 851973, 3, 65538, 851974, 1, 0, 851975, 1, 0, 851976, 1, 0, 851977, 1, 0, 851978, 3, 65538, 851979, 1, 0, 851980, 1, 0, 851981, 1, 0, 851982, 1, 0, 851983, 1, 0, 851984, 1, 0, 851985, 1, 0, 851986, 1, 0, 851987, 1, 0, 851988, 1, 0, 851989, 1, 0, 851990, 1, 0, 851991, 1, 0, 851992, 1, 0, 851993, 1, 0, 851994, 1, 0, 851995, 1, 0, 851996, 1, 0, 851997, 1, 0, 851998, 1, 0, 851999, 1, 0, 852000, 1, 0, 852001, 1, 0, 852002, 1, 0, 852003, 3, 131076, 852004, 3, 131078, 852005, 3, 131078, 852006, 3, 131078, 852007, 3, 131080, 852008, 3, 131078, 852009, 3, 131080, 852010, 3, 131078, 852011, 3, 131080, 852012, 3, 131080, 852013, 3, 131080, 852014, 3, 131080, 852015, 3, 131080, 852016, 3, 131080, 852017, 3, 131080, 852018, 3, 131080, 852019, 3, 131078, 852020, 3, 131080, 852021, 3, 131080, 852022, 3, 131078, 852023, 3, 131080, 852024, 3, 131078, 852025, 3, 131080, 852026, 3, 131080, 852027, 3, 131078, 852028, 3, 131077, 983039, 3, 131076, 917504, 3, 131078, 917505, 3, 131077, 917506, 1, 0, 917507, 1, 0, 917508, 1, 0, 917509, 3, 65538, 917510, 1, 0, 917511, 1, 0, 917512, 1, 0, 917513, 1, 0, 917514, 3, 65538, 917515, 1, 0, 917516, 1, 0, 917517, 1, 0, 917518, 1, 0, 917519, 1, 0, 917520, 1, 0, 917521, 1, 0, 917522, 1, 0, 917523, 1, 0, 917524, 1, 0, 917525, 1, 0, 917526, 1, 0, 917527, 1, 0, 917528, 1, 0, 917529, 1, 0, 917530, 1, 0, 917531, 1, 0, 917532, 1, 0, 917533, 1, 0, 917534, 1, 0, 917535, 1, 0, 917536, 1, 0, 917537, 1, 0, 917538, 1, 0, 917539, 3, 131076, 917540, 3, 131078, 917541, 3, 131078, 917542, 3, 131078, 917543, 3, 131078, 917544, 3, 131080, 917545, 3, 131078, 917546, 3, 131078, 917547, 3, 131080, 917548, 3, 131078, 917549, 3, 131078, 917550, 3, 131078, 917551, 3, 131080, 917552, 3, 131080, 917553, 3, 131080, 917554, 3, 131078, 917555, 3, 131080, 917556, 3, 131078, 917557, 3, 131078, 917558, 3, 131078, 917559, 3, 131080, 917560, 3, 131080, 917561, 3, 131080, 917562, 3, 131078, 917563, 3, 131078, 917564, 3, 131077, 1048575, 3, 131076, 983040, 3, 131078, 983041, 3, 131077, 983042, 1, 0, 983043, 1, 0, 983044, 1, 0, 983045, 3, 65538, 983046, 1, 0, 983047, 1, 0, 983048, 1, 0, 983049, 1, 0, 983050, 3, 65538, 983051, 1, 0, 983052, 1, 0, 983053, 1, 0, 983054, 1, 0, 983055, 1, 0, 983056, 1, 0, 983057, 1, 0, 983058, 1, 0, 983059, 1, 0, 983060, 1, 0, 983061, 1, 0, 983062, 1, 0, 983063, 1, 0, 983064, 1, 0, 983065, 1, 0, 983066, 1, 0, 983067, 1, 0, 983068, 1, 0, 983069, 1, 0, 983070, 1, 0, 983071, 1, 0, 983072, 1, 0, 983073, 1, 0, 983074, 1, 0, 983075, 3, 131076, 983076, 3, 131078, 983077, 3, 131078, 983078, 3, 131080, 983079, 3, 131080, 983080, 3, 131078, 983081, 3, 131080, 983082, 3, 131078, 983083, 3, 131078, 983084, 3, 131080, 983085, 3, 131078, 983086, 3, 131080, 983087, 3, 131078, 983088, 3, 131080, 983089, 3, 131078, 983090, 3, 131078, 983091, 3, 131080, 983092, 3, 131080, 983093, 3, 131078, 983094, 3, 131078, 983095, 3, 131080, 983096, 3, 131078, 983097, 3, 131078, 983098, 3, 131080, 983099, 3, 131078, 983100, 3, 131077, 1114111, 3, 131076, 1048576, 3, 131078, 1048577, 3, 131077, 1048578, 1, 0, 1048579, 1, 0, 1048580, 1, 0, 1048581, 3, 65538, 1048582, 1, 0, 1048583, 1, 0, 1048584, 1, 0, 1048585, 1, 0, 1048586, 3, 6, 1048587, 1, 0, 1048588, 1, 0, 1048589, 1, 0, 1048590, 1, 0, 1048591, 1, 0, 1048592, 1, 0, 1048593, 1, 0, 1048594, 1, 0, 1048595, 1, 0, 1048596, 1, 0, 1048597, 1, 0, 1048598, 1, 0, 1048599, 1, 0, 1048600, 1, 0, 1048601, 1, 0, 1048602, 1, 0, 1048603, 1, 0, 1048604, 1, 0, 1048605, 1, 0, 1048606, 1, 0, 1048607, 1, 0, 1048608, 1, 0, 1048609, 1, 0, 1048610, 1, 0, 1048611, 3, 131076, 1048612, 3, 131078, 1048613, 3, 131078, 1048614, 3, 131080, 1048615, 3, 131078, 1048616, 3, 131078, 1048617, 3, 131078, 1048618, 3, 131080, 1048619, 3, 131080, 1048620, 3, 131078, 1048621, 3, 131080, 1048622, 3, 131078, 1048623, 3, 131078, 1048624, 3, 131078, 1048625, 3, 131078, 1048626, 3, 131078, 1048627, 3, 131080, 1048628, 3, 131080, 1048629, 3, 131078, 1048630, 3, 131078, 1048631, 3, 131080, 1048632, 3, 131080, 1048633, 3, 131080, 1048634, 3, 131078, 1048635, 3, 131080, 1048636, 3, 131077, 1179647, 3, 131076, 1114112, 3, 131078, 1114113, 3, 131077, 1114114, 1, 0, 1114115, 1, 0, 1114116, 1, 0, 1114117, 3, 65538, 1114118, 1, 0, 1114119, 1, 0, 1114120, 1, 0, 1114121, 1, 0, 1114122, 1, 0, 1114123, 1, 0, 1114124, 1, 0, 1114125, 1, 0, 1114126, 1, 0, 1114127, 1, 0, 1114128, 1, 0, 1114129, 1, 0, 1114130, 3, 65541, 1114131, 1, 0, 1114132, 1, 0, 1114133, 1, 0, 1114134, 1, 0, 1114135, 1, 0, 1114136, 1, 0, 1114137, 1, 0, 1114138, 1, 0, 1114139, 1, 0, 1114140, 1, 0, 1114141, 1, 0, 1114142, 1, 0, 1114143, 1, 0, 1114144, 1, 0, 1114145, 1, 0, 1114146, 1, 0, 1114147, 3, 131076, 1114148, 3, 131078, 1114149, 3, 131080, 1114150, 3, 131078, 1114151, 3, 131078, 1114152, 3, 131078, 1114153, 3, 131078, 1114154, 3, 131080, 1114155, 3, 131078, 1114156, 3, 131078, 1114157, 3, 131080, 1114158, 3, 131078, 1114159, 3, 131078, 1114160, 3, 131078, 1114161, 3, 131078, 1114162, 3, 131078, 1114163, 3, 131078, 1114164, 3, 131078, 1114165, 3, 131078, 1114166, 3, 131080, 1114167, 3, 131078, 1114168, 3, 131078, 1114169, 3, 131080, 1114170, 3, 131078, 1114171, 3, 131080, 1114172, 3, 131077, 1245183, 3, 131076, 1179648, 3, 131078, 1179649, 3, 131077, 1179650, 1, 0, 1179651, 1, 0, 1179652, 1, 0, 1179653, 3, 65538, 1179654, 1, 0, 1179655, 1, 0, 1179656, 1, 0, 1179657, 1, 0, 1179658, 3, 65541, 1179659, 1, 0, 1179660, 1, 0, 1179661, 1, 0, 1179662, 1, 0, 1179663, 1, 0, 1179664, 1, 0, 1179665, 1, 0, 1179666, 3, 65536, 1179667, 3, 5, 1179668, 1, 0, 1179669, 1, 0, 1179670, 1, 0, 1179671, 1, 0, 1179672, 1, 0, 1179673, 1, 0, 1179674, 1, 0, 1179675, 1, 0, 1179676, 1, 0, 1179677, 1, 0, 1179678, 1, 0, 1179679, 1, 0, 1179680, 1, 0, 1179681, 1, 0, 1179682, 1, 0, 1179683, 3, 131076, 1179684, 3, 131078, 1179685, 3, 131078, 1179686, 3, 131078, 1179687, 3, 131078, 1179688, 3, 131078, 1179689, 3, 131080, 1179690, 3, 131080, 1179691, 3, 131078, 1179692, 3, 131078, 1179693, 3, 131078, 1179694, 3, 131078, 1179695, 3, 131080, 1179696, 3, 131078, 1179697, 3, 131078, 1179698, 3, 131080, 1179699, 3, 131080, 1179700, 3, 131078, 1179701, 3, 131078, 1179702, 3, 131080, 1179703, 3, 131078, 1179704, 3, 131080, 1179705, 3, 131078, 1179706, 3, 131080, 1179707, 3, 131080, 1179708, 3, 131077, 1310719, 3, 131076, 1245184, 3, 131078, 1245185, 3, 131077, 1245186, 1, 0, 1245187, 1, 0, 1245188, 1, 0, 1245189, 3, 6, 1245190, 1, 0, 1245191, 1, 0, 1245192, 1, 0, 1245193, 1, 0, 1245194, 3, 65538, 1245195, 1, 0, 1245196, 1, 0, 1245197, 1, 0, 1245198, 1, 0, 1245199, 1, 0, 1245200, 1, 0, 1245201, 1, 0, 1245202, 1, 0, 1245203, 1, 0, 1245204, 1, 0, 1245205, 1, 0, 1245206, 1, 0, 1245207, 1, 0, 1245208, 1, 0, 1245209, 1, 0, 1245210, 1, 0, 1245211, 1, 0, 1245212, 1, 0, 1245213, 1, 0, 1245214, 1, 0, 1245215, 1, 0, 1245216, 1, 0, 1245217, 1, 0, 1245218, 1, 0, 1245219, 3, 131076, 1245220, 3, 131078, 1245221, 3, 131080, 1245222, 3, 131078, 1245223, 3, 131080, 1245224, 3, 131080, 1245225, 3, 131078, 1245226, 3, 131080, 1245227, 3, 131080, 1245228, 3, 131080, 1245229, 3, 131080, 1245230, 3, 131078, 1245231, 3, 131078, 1245232, 3, 131078, 1245233, 3, 131080, 1245234, 3, 131078, 1245235, 3, 131080, 1245236, 3, 131078, 1245237, 3, 131078, 1245238, 3, 131080, 1245239, 3, 131080, 1245240, 3, 131080, 1245241, 3, 131078, 1245242, 3, 131078, 1245243, 3, 131078, 1245244, 3, 131077, 1376255, 3, 131076, 1310720, 3, 131078, 1310721, 3, 131077, 1310722, 1, 0, 1310723, 1, 0, 1310724, 1, 0, 1310725, 1, 0, 1310726, 1, 0, 1310727, 1, 0, 1310728, 1, 0, 1310729, 1, 0, 1310730, 3, 65538, 1310731, 1, 0, 1310732, 1, 0, 1310733, 1, 0, 1310734, 1, 0, 1310735, 1, 0, 1310736, 1, 0, 1310737, 1, 0, 1310738, 1, 0, 1310739, 1, 0, 1310740, 1, 0, 1310741, 1, 0, 1310742, 1, 0, 1310743, 1, 0, 1310744, 1, 0, 1310745, 1, 0, 1310746, 1, 0, 1310747, 1, 0, 1310748, 1, 0, 1310749, 1, 0, 1310750, 1, 0, 1310751, 1, 0, 1310752, 1, 0, 1310753, 1, 0, 1310754, 1, 0, 1310755, 3, 131076, 1310756, 3, 131078, 1310757, 3, 131078, 1310758, 3, 131080, 1310759, 3, 131080, 1310760, 3, 131078, 1310761, 3, 131080, 1310762, 3, 131080, 1310763, 3, 131078, 1310764, 3, 131080, 1310765, 3, 131078, 1310766, 3, 131078, 1310767, 3, 131080, 1310768, 3, 131078, 1310769, 3, 131080, 1310770, 3, 131078, 1310771, 3, 131080, 1310772, 3, 131078, 1310773, 3, 131080, 1310774, 3, 131078, 1310775, 3, 131080, 1310776, 3, 131080, 1310777, 3, 131080, 1310778, 3, 131078, 1310779, 3, 131078, 1310780, 3, 131077, 1441791, 3, 131076, 1376256, 3, 131078, 1376257, 3, 131077, 1376258, 1, 0, 1376259, 1, 0, 1376260, 1, 0, 1376261, 3, 65541, 1376262, 1, 0, 1376263, 1, 0, 1376264, 1, 0, 1376265, 1, 0, 1376266, 3, 65538, 1376267, 1, 0, 1376268, 1, 0, 1376269, 1, 0, 1376270, 1, 0, 1376271, 1, 0, 1376272, 1, 0, 1376273, 1, 0, 1376274, 1, 0, 1376275, 1, 0, 1376276, 1, 0, 1376277, 1, 0, 1376278, 1, 0, 1376279, 1, 0, 1376280, 1, 0, 1376281, 1, 0, 1376282, 1, 0, 1376283, 1, 0, 1376284, 1, 0, 1376285, 1, 0, 1376286, 1, 0, 1376287, 1, 0, 1376288, 1, 0, 1376289, 1, 0, 1376290, 1, 0, 1376291, 3, 131076, 1376292, 3, 131078, 1376293, 3, 131078, 1376294, 3, 131080, 1376295, 3, 131080, 1376296, 3, 131078, 1376297, 3, 131078, 1376298, 3, 131080, 1376299, 3, 131078, 1376300, 3, 131078, 1376301, 3, 131078, 1376302, 3, 131080, 1376303, 3, 131080, 1376304, 3, 131078, 1376305, 3, 131078, 1376306, 3, 131080, 1376307, 3, 131078, 1376308, 3, 131078, 1376309, 3, 131078, 1376310, 3, 131078, 1376311, 3, 131080, 1376312, 3, 131080, 1376313, 3, 131078, 1376314, 3, 131080, 1376315, 3, 131078, 1376316, 3, 131077, 1507327, 3, 131076, 1441792, 3, 131078, 1441793, 3, 131077, 1441794, 1, 0, 1441795, 1, 0, 1441796, 1, 0, 1441797, 3, 65538, 1441798, 1, 0, 1441799, 1, 0, 1441800, 1, 0, 1441801, 1, 0, 1441802, 3, 65539, 1441803, 3, 2, 1441804, 3, 2, 1441805, 3, 2, 1441806, 3, 2, 1441807, 3, 2, 1441808, 3, 5, 1441809, 1, 0, 1441810, 1, 0, 1441811, 1, 0, 1441812, 1, 0, 1441813, 1, 0, 1441814, 1, 0, 1441815, 1, 0, 1441816, 1, 0, 1441817, 1, 0, 1441818, 1, 0, 1441819, 1, 0, 1441820, 1, 0, 1441821, 1, 0, 1441822, 1, 0, 1441823, 1, 0, 1441824, 1, 0, 1441825, 1, 0, 1441826, 1, 0, 1441827, 3, 131076, 1441828, 3, 131078, 1441829, 3, 131080, 1441830, 3, 131078, 1441831, 3, 131078, 1441832, 3, 131078, 1441833, 3, 131078, 1441834, 3, 131078, 1441835, 3, 131078, 1441836, 3, 131078, 1441837, 3, 131078, 1441838, 3, 131078, 1441839, 3, 131080, 1441840, 3, 131080, 1441841, 3, 131078, 1441842, 3, 131080, 1441843, 3, 131080, 1441844, 3, 131078, 1441845, 3, 131080, 1441846, 3, 131078, 1441847, 3, 131078, 1441848, 3, 131080, 1441849, 3, 131080, 1441850, 3, 131078, 1441851, 3, 131080, 1441852, 3, 131077, 1572863, 3, 131076, 1507328, 3, 131078, 1507329, 3, 131077, 1507330, 1, 0, 1507331, 1, 0, 1507332, 1, 0, 1507333, 3, 65538, 1507334, 1, 0, 1507335, 1, 0, 1507336, 1, 0, 1507337, 1, 0, 1507338, 3, 65538, 1507339, 1, 0, 1507340, 1, 0, 1507341, 1, 0, 1507342, 1, 0, 1507343, 1, 0, 1507344, 1, 0, 1507345, 1, 0, 1507346, 1, 0, 1507347, 1, 0, 1507348, 1, 0, 1507349, 1, 0, 1507350, 1, 0, 1507351, 1, 0, 1507352, 1, 0, 1507353, 1, 0, 1507354, 1, 0, 1507355, 1, 0, 1507356, 1, 0, 1507357, 1, 0, 1507358, 1, 0, 1507359, 1, 0, 1507360, 1, 0, 1507361, 1, 0, 1507362, 1, 0, 1507363, 3, 131076, 1507364, 3, 131078, 1507365, 3, 131078, 1507366, 3, 131080, 1507367, 3, 131080, 1507368, 3, 131080, 1507369, 3, 131080, 1507370, 3, 131080, 1507371, 3, 131080, 1507372, 3, 131080, 1507373, 3, 131078, 1507374, 3, 131080, 1507375, 3, 131080, 1507376, 3, 131080, 1507377, 3, 131078, 1507378, 3, 131078, 1507379, 3, 131078, 1507380, 3, 131078, 1507381, 3, 131080, 1507382, 3, 131080, 1507383, 3, 131080, 1507384, 3, 131078, 1507385, 3, 131080, 1507386, 3, 131080, 1507387, 3, 131078, 1507388, 3, 131077, 1638399, 3, 131076, 1572864, 3, 131078, 1572865, 3, 131077, 1572866, 1, 0, 1572867, 1, 0, 1572868, 1, 0, 1572869, 3, 65538, 1572870, 1, 0, 1572871, 1, 0, 1572872, 1, 0, 1572873, 1, 0, 1572874, 3, 65538, 1572875, 1, 0, 1572876, 1, 0, 1572877, 1, 0, 1572878, 1, 0, 1572879, 1, 0, 1572880, 1, 0, 1572881, 1, 0, 1572882, 1, 0, 1572883, 1, 0, 1572884, 1, 0, 1572885, 1, 0, 1572886, 1, 0, 1572887, 1, 0, 1572888, 1, 0, 1572889, 1, 0, 1572890, 1, 0, 1572891, 1, 0, 1572892, 1, 0, 1572893, 1, 0, 1572894, 1, 0, 1572895, 1, 0, 1572896, 1, 0, 1572897, 1, 0, 1572898, 1, 0, 1572899, 3, 131076, 1572900, 3, 131078, 1572901, 3, 131078, 1572902, 3, 131080, 1572903, 3, 131078, 1572904, 3, 131078, 1572905, 3, 131080, 1572906, 3, 131080, 1572907, 3, 131078, 1572908, 3, 131078, 1572909, 3, 131080, 1572910, 3, 131080, 1572911, 3, 131078, 1572912, 3, 131078, 1572913, 3, 131078, 1572914, 3, 131080, 1572915, 3, 131078, 1572916, 3, 131078, 1572917, 3, 131080, 1572918, 3, 131080, 1572919, 3, 131078, 1572920, 3, 131078, 1572921, 3, 131078, 1572922, 3, 131080, 1572923, 3, 131078, 1572924, 3, 131077, 1703935, 3, 131076, 1638400, 3, 131078, 1638401, 3, 131077, 1638402, 1, 0, 1638403, 1, 0, 1638404, 1, 0, 1638405, 3, 65538, 1638406, 1, 0, 1638407, 1, 0, 1638408, 1, 0, 1638409, 1, 0, 1638410, 3, 65538, 1638411, 1, 0, 1638412, 1, 0, 1638413, 1, 0, 1638414, 1, 0, 1638415, 1, 0, 1638416, 1, 0, 1638417, 1, 0, 1638418, 1, 0, 1638419, 1, 0, 1638420, 1, 0, 1638421, 1, 0, 1638422, 1, 0, 1638423, 1, 0, 1638424, 1, 0, 1638425, 1, 0, 1638426, 1, 0, 1638427, 1, 0, 1638428, 1, 0, 1638429, 1, 0, 1638430, 1, 0, 1638431, 1, 0, 1638432, 1, 0, 1638433, 1, 0, 1638434, 1, 0, 1638435, 3, 131076, 1638436, 3, 131078, 1638437, 3, 131078, 1638438, 3, 131080, 1638439, 3, 131078, 1638440, 3, 131080, 1638441, 3, 131080, 1638442, 3, 131078, 1638443, 3, 131078, 1638444, 3, 131078, 1638445, 3, 131080, 1638446, 3, 131078, 1638447, 3, 131080, 1638448, 3, 131078, 1638449, 3, 131080, 1638450, 3, 131078, 1638451, 3, 131078, 1638452, 3, 131078, 1638453, 3, 131078, 1638454, 3, 131078, 1638455, 3, 131080, 1638456, 3, 131078, 1638457, 3, 131078, 1638458, 3, 131078, 1638459, 3, 131080, 1638460, 3, 131077, 1769471, 3, 131076, 1703936, 3, 131078, 1703937, 3, 131077, 1703938, 1, 0, 1703939, 1, 0, 1703940, 1, 0, 1703941, 3, 65538, 1703942, 1, 0, 1703943, 1, 0, 1703944, 1, 0, 1703945, 1, 0, 1703946, 3, 65538, 1703947, 1, 0, 1703948, 1, 0, 1703949, 1, 0, 1703950, 1, 0, 1703951, 1, 0, 1703952, 1, 0, 1703953, 1, 0, 1703954, 1, 0, 1703955, 1, 0, 1703956, 1, 0, 1703957, 1, 0, 1703958, 1, 0, 1703959, 1, 0, 1703960, 1, 0, 1703961, 1, 0, 1703962, 1, 0, 1703963, 1, 0, 1703964, 1, 0, 1703965, 1, 0, 1703966, 1, 0, 1703967, 1, 0, 1703968, 1, 0, 1703969, 1, 0, 1703970, 1, 0, 1703971, 3, 131076, 1703972, 3, 131078, 1703973, 3, 131078, 1703974, 3, 131078, 1703975, 3, 131078, 1703976, 3, 131080, 1703977, 3, 131080, 1703978, 3, 131080, 1703979, 3, 131080, 1703980, 3, 131078, 1703981, 3, 131078, 1703982, 3, 131080, 1703983, 3, 131080, 1703984, 3, 131078, 1703985, 3, 131080, 1703986, 3, 131078, 1703987, 3, 131080, 1703988, 3, 131078, 1703989, 3, 131078, 1703990, 3, 131080, 1703991, 3, 131078, 1703992, 3, 131078, 1703993, 3, 131080, 1703994, 3, 131078, 1703995, 3, 131080, 1703996, 3, 131077, 1835007, 3, 131076, 1769472, 3, 131078, 1769473, 3, 131077, 1769474, 1, 0, 1769475, 1, 0, 1769476, 1, 0, 1769477, 3, 65538, 1769478, 1, 0, 1769479, 1, 0, 1769480, 1, 0, 1769481, 1, 0, 1769482, 3, 6, 1769483, 1, 0, 1769484, 1, 0, 1769485, 1, 0, 1769486, 1, 0, 1769487, 1, 0, 1769488, 1, 0, 1769489, 1, 0, 1769490, 1, 0, 1769491, 1, 0, 1769492, 1, 0, 1769493, 1, 0, 1769494, 1, 0, 1769495, 1, 0, 1769496, 1, 0, 1769497, 1, 0, 1769498, 1, 0, 1769499, 1, 0, 1769500, 1, 0, 1769501, 1, 0, 1769502, 1, 0, 1769503, 1, 0, 1769504, 1, 0, 1769505, 1, 0, 1769506, 1, 0, 1769507, 3, 131076, 1769508, 3, 131078, 1769509, 3, 131080, 1769510, 3, 131080, 1769511, 3, 131080, 1769512, 3, 131078, 1769513, 3, 131078, 1769514, 3, 131078, 1769515, 3, 131078, 1769516, 3, 131078, 1769517, 3, 131080, 1769518, 3, 131078, 1769519, 3, 131078, 1769520, 3, 131080, 1769521, 3, 131080, 1769522, 3, 131080, 1769523, 3, 131080, 1769524, 3, 131080, 1769525, 3, 131078, 1769526, 3, 131078, 1769527, 3, 131080, 1769528, 3, 131078, 1769529, 3, 131078, 1769530, 3, 131078, 1769531, 3, 131080, 1769532, 3, 131077, 1900543, 3, 131076, 1835008, 3, 131078, 1835009, 3, 131077, 1835010, 1, 0, 1835011, 1, 0, 1835012, 1, 0, 1835013, 3, 65538, 1835014, 1, 0, 1835015, 1, 0, 1835016, 1, 0, 1835017, 1, 0, 1835018, 1, 0, 1835019, 1, 0, 1835020, 1, 0, 1835021, 1, 0, 1835022, 1, 0, 1835023, 1, 0, 1835024, 1, 0, 1835025, 1, 0, 1835026, 1, 0, 1835027, 1, 0, 1835028, 1, 0, 1835029, 1, 0, 1835030, 1, 0, 1835031, 1, 0, 1835032, 1, 0, 1835033, 1, 0, 1835034, 1, 0, 1835035, 1, 0, 1835036, 1, 0, 1835037, 1, 0, 1835038, 1, 0, 1835039, 1, 0, 1835040, 1, 0, 1835041, 1, 0, 1835042, 1, 0, 1835043, 3, 131076, 1835044, 3, 131078, 1835045, 3, 131080, 1835046, 3, 131080, 1835047, 3, 131078, 1835048, 3, 131080, 1835049, 3, 131080, 1835050, 3, 131080, 1835051, 3, 131080, 1835052, 3, 131078, 1835053, 3, 131080, 1835054, 3, 131080, 1835055, 3, 131078, 1835056, 3, 131078, 1835057, 3, 131078, 1835058, 3, 131080, 1835059, 3, 131080, 1835060, 3, 131078, 1835061, 3, 131078, 1835062, 3, 131078, 1835063, 3, 131078, 1835064, 3, 131080, 1835065, 3, 131080, 1835066, 3, 131080, 1835067, 3, 131080, 1835068, 3, 131077, 1966079, 3, 131076, 1900544, 3, 131078, 1900545, 3, 131077, 1900546, 1, 0, 1900547, 1, 0, 1900548, 1, 0, 1900549, 3, 65538, 1900550, 1, 0, 1900551, 1, 0, 1900552, 1, 0, 1900553, 1, 0, 1900554, 3, 65541, 1900555, 1, 0, 1900556, 1, 0, 1900557, 1, 0, 1900558, 1, 0, 1900559, 1, 0, 1900560, 1, 0, 1900561, 1, 0, 1900562, 1, 0, 1900563, 1, 0, 1900564, 1, 0, 1900565, 1, 0, 1900566, 1, 0, 1900567, 1, 0, 1900568, 1, 0, 1900569, 1, 0, 1900570, 1, 0, 1900571, 1, 0, 1900572, 1, 0, 1900573, 1, 0, 1900574, 1, 0, 1900575, 1, 0, 1900576, 1, 0, 1900577, 1, 0, 1900578, 1, 0, 1900579, 3, 131076, 1900580, 3, 131078, 1900581, 3, 131078, 1900582, 3, 131078, 1900583, 3, 131080, 1900584, 3, 131080, 1900585, 3, 131080, 1900586, 3, 131080, 1900587, 3, 131080, 1900588, 3, 131080, 1900589, 3, 131080, 1900590, 3, 131080, 1900591, 3, 131078, 1900592, 3, 131080, 1900593, 3, 131080, 1900594, 3, 131080, 1900595, 3, 131078, 1900596, 3, 131080, 1900597, 3, 131080, 1900598, 3, 131080, 1900599, 3, 131080, 1900600, 3, 131078, 1900601, 3, 131078, 1900602, 3, 131080, 1900603, 3, 131078, 1900604, 3, 131077, 2031615, 3, 131076, 1966080, 3, 131078, 1966081, 3, 131077, 1966082, 1, 0, 1966083, 1, 0, 1966084, 1, 0, 1966085, 3, 6, 1966086, 1, 0, 1966087, 1, 0, 1966088, 1, 0, 1966089, 1, 0, 1966090, 3, 65538, 1966091, 1, 0, 1966092, 1, 0, 1966093, 1, 0, 1966094, 1, 0, 1966095, 1, 0, 1966096, 1, 0, 1966097, 1, 0, 1966098, 1, 0, 1966099, 1, 0, 1966100, 1, 0, 1966101, 1, 0, 1966102, 1, 0, 1966103, 1, 0, 1966104, 1, 0, 1966105, 1, 0, 1966106, 1, 0, 1966107, 1, 0, 1966108, 1, 0, 1966109, 1, 0, 1966110, 1, 0, 1966111, 1, 0, 1966112, 1, 0, 1966113, 1, 0, 1966114, 1, 0, 1966115, 3, 131076, 1966116, 3, 131078, 1966117, 3, 131080, 1966118, 3, 131080, 1966119, 3, 131078, 1966120, 3, 131078, 1966121, 3, 131080, 1966122, 3, 131078, 1966123, 3, 131078, 1966124, 3, 131080, 1966125, 3, 131078, 1966126, 3, 131080, 1966127, 3, 131080, 1966128, 3, 131078, 1966129, 3, 131078, 1966130, 3, 131080, 1966131, 3, 131078, 1966132, 3, 131080, 1966133, 3, 131078, 1966134, 3, 131080, 1966135, 3, 131078, 1966136, 3, 131078, 1966137, 3, 131080, 1966138, 3, 131080, 1966139, 3, 131078, 1966140, 3, 131077, 2097151, 3, 131076, 2031616, 3, 131078, 2031617, 3, 131077, 2031618, 1, 0, 2031619, 1, 0, 2031620, 1, 0, 2031621, 1, 0, 2031622, 1, 0, 2031623, 1, 0, 2031624, 1, 0, 2031625, 1, 0, 2031626, 3, 65538, 2031627, 1, 0, 2031628, 1, 0, 2031629, 1, 0, 2031630, 1, 0, 2031631, 1, 0, 2031632, 1, 0, 2031633, 1, 0, 2031634, 1, 0, 2031635, 1, 0, 2031636, 1, 0, 2031637, 1, 0, 2031638, 1, 0, 2031639, 1, 0, 2031640, 1, 0, 2031641, 1, 0, 2031642, 1, 0, 2031643, 1, 0, 2031644, 1, 0, 2031645, 1, 0, 2031646, 1, 0, 2031647, 1, 0, 2031648, 1, 0, 2031649, 1, 0, 2031650, 1, 0, 2031651, 3, 131076, 2031652, 3, 131078, 2031653, 3, 131078, 2031654, 3, 131080, 2031655, 3, 131080, 2031656, 3, 131080, 2031657, 3, 131078, 2031658, 3, 131080, 2031659, 3, 131078, 2031660, 3, 131078, 2031661, 3, 131080, 2031662, 3, 131080, 2031663, 3, 131080, 2031664, 3, 131080, 2031665, 3, 131080, 2031666, 3, 131080, 2031667, 3, 131078, 2031668, 3, 131078, 2031669, 3, 131078, 2031670, 3, 131078, 2031671, 3, 131078, 2031672, 3, 131080, 2031673, 3, 131078, 2031674, 3, 131078, 2031675, 3, 131080, 2031676, 3, 131077, 2162687, 3, 327682, 2097152, 3, 196613, 2097153, 3, 65544, 2097154, 1, 0, 2097155, 1, 0, 2097156, 1, 0, 2097157, 1, 0, 2097158, 1, 0, 2097159, 1, 0, 2097160, 1, 0, 2097161, 3, 65542, 2097162, 3, 131079, 2097163, 3, 5, 2097164, 1, 0, 2097165, 1, 0, 2097166, 1, 0, 2097167, 1, 0, 2097168, 1, 0, 2097169, 1, 0, 2097170, 1, 0, 2097171, 1, 0, 2097172, 1, 0, 2097173, 1, 0, 2097174, 1, 0, 2097175, 1, 0, 2097176, 1, 0, 2097177, 1, 0, 2097178, 1, 0, 2097179, 1, 0, 2097180, 1, 0, 2097181, 1, 0, 2097182, 1, 0, 2097183, 1, 0, 2097184, 1, 0, 2097185, 1, 0, 2097186, 1, 0, 2097187, 3, 131076, 2097188, 3, 131078, 2097189, 3, 131080, 2097190, 3, 131078, 2097191, 3, 131078, 2097192, 3, 131080, 2097193, 3, 131080, 2097194, 3, 131078, 2097195, 3, 131080, 2097196, 3, 131078, 2097197, 3, 131080, 2097198, 3, 131078, 2097199, 3, 131078, 2097200, 3, 131078, 2097201, 3, 131078, 2097202, 3, 131078, 2097203, 3, 131078, 2097204, 3, 131080, 2097205, 3, 131078, 2097206, 3, 131078, 2097207, 3, 131078, 2097208, 3, 131080, 2097209, 3, 131080, 2097210, 3, 131078, 2097211, 3, 131078, 2097212, 3, 131077, 2228223, 3, 65538, 2162690, 1, 0, 2162691, 1, 0, 2162692, 1, 0, 2162693, 1, 0, 2162694, 1, 0, 2162695, 1, 0, 2162696, 1, 0, 2162697, 1, 0, 2162698, 3, 65538, 2162699, 1, 0, 2162700, 1, 0, 2162701, 1, 0, 2162702, 1, 0, 2162703, 1, 0, 2162704, 1, 0, 2162705, 1, 0, 2162706, 1, 0, 2162707, 1, 0, 2162708, 1, 0, 2162709, 1, 0, 2162710, 1, 0, 2162711, 1, 0, 2162712, 1, 0, 2162713, 1, 0, 2162714, 1, 0, 2162715, 1, 0, 2162716, 1, 0, 2162717, 1, 0, 2162718, 1, 0, 2162719, 1, 0, 2162720, 1, 0, 2162721, 1, 0, 2162722, 1, 0, 2162723, 3, 131076, 2162724, 3, 131078, 2162725, 3, 131078, 2162726, 3, 131078, 2162727, 3, 131080, 2162728, 3, 131078, 2162729, 3, 131078, 2162730, 3, 131078, 2162731, 3, 131080, 2162732, 3, 131080, 2162733, 3, 131080, 2162734, 3, 131080, 2162735, 3, 131078, 2162736, 3, 131078, 2162737, 3, 131080, 2162738, 3, 131080, 2162739, 3, 131080, 2162740, 3, 131080, 2162741, 3, 131078, 2162742, 3, 131080, 2162743, 3, 131078, 2162744, 3, 131080, 2162745, 3, 131080, 2162746, 3, 131078, 2162747, 3, 131078, 2162748, 3, 131077, 2293759, 3, 262146, 2228224, 3, 196612, 2228225, 3, 8, 2228226, 1, 0, 2228227, 1, 0, 2228228, 1, 0, 2228229, 1, 0, 2228230, 1, 0, 2228231, 1, 0, 2228232, 1, 0, 2228233, 1, 0, 2228234, 3, 65539, 2228235, 3, 2, 2228236, 3, 5, 2228237, 1, 0, 2228238, 1, 0, 2228239, 1, 0, 2228240, 1, 0, 2228241, 1, 0, 2228242, 1, 0, 2228243, 1, 0, 2228244, 1, 0, 2228245, 1, 0, 2228246, 1, 0, 2228247, 1, 0, 2228248, 1, 0, 2228249, 1, 0, 2228250, 1, 0, 2228251, 1, 0, 2228252, 1, 0, 2228253, 1, 0, 2228254, 1, 0, 2228255, 1, 0, 2228256, 1, 0, 2228257, 1, 0, 2228258, 1, 0, 2228259, 3, 131076, 2228260, 3, 131078, 2228261, 3, 131080, 2228262, 3, 131078, 2228263, 3, 131080, 2228264, 3, 131078, 2228265, 3, 131078, 2228266, 3, 131078, 2228267, 3, 131080, 2228268, 3, 131080, 2228269, 3, 131080, 2228270, 3, 131080, 2228271, 3, 131078, 2228272, 3, 131078, 2228273, 3, 131078, 2228274, 3, 131080, 2228275, 3, 131080, 2228276, 3, 131080, 2228277, 3, 131080, 2228278, 3, 131080, 2228279, 3, 131078, 2228280, 3, 131080, 2228281, 3, 131080, 2228282, 3, 131080, 2228283, 3, 131078, 2228284, 3, 131077, 2359295, 3, 131076, 2293760, 3, 131078, 2293761, 3, 131077, 2293762, 1, 0, 2293763, 1, 0, 2293764, 1, 0, 2293765, 1, 0, 2293766, 1, 0, 2293767, 1, 0, 2293768, 1, 0, 2293769, 1, 0, 2293770, 3, 6, 2293771, 1, 0, 2293772, 1, 0, 2293773, 1, 0, 2293774, 1, 0, 2293775, 1, 0, 2293776, 1, 0, 2293777, 1, 0, 2293778, 1, 0, 2293779, 1, 0, 2293780, 1, 0, 2293781, 1, 0, 2293782, 1, 0, 2293783, 1, 0, 2293784, 1, 0, 2293785, 1, 0, 2293786, 1, 0, 2293787, 1, 0, 2293788, 1, 0, 2293789, 1, 0, 2293790, 1, 0, 2293791, 1, 0, 2293792, 1, 0, 2293793, 1, 0, 2293794, 1, 0, 2293795, 3, 131076, 2293796, 3, 131078, 2293797, 3, 131080, 2293798, 3, 131078, 2293799, 3, 131080, 2293800, 3, 131078, 2293801, 3, 131078, 2293802, 3, 131080, 2293803, 3, 131078, 2293804, 3, 131078, 2293805, 3, 131080, 2293806, 3, 131080, 2293807, 3, 131080, 2293808, 3, 131080, 2293809, 3, 131080, 2293810, 3, 131080, 2293811, 3, 131080, 2293812, 3, 131080, 2293813, 3, 131080, 2293814, 3, 131078, 2293815, 3, 131080, 2293816, 3, 131078, 2293817, 3, 131080, 2293818, 3, 131078, 2293819, 3, 131080, 2293820, 3, 131077, 2424831, 3, 131076, 2359296, 3, 131078, 2359297, 3, 131077, 2359298, 1, 0, 2359299, 1, 0, 2359300, 1, 0, 2359301, 1, 0, 2359302, 1, 0, 2359303, 1, 0, 2359304, 1, 0, 2359305, 1, 0, 2359306, 1, 0, 2359307, 1, 0, 2359308, 1, 0, 2359309, 1, 0, 2359310, 1, 0, 2359311, 1, 0, 2359312, 1, 0, 2359313, 1, 0, 2359314, 1, 0, 2359315, 1, 0, 2359316, 1, 0, 2359317, 1, 0, 2359318, 1, 0, 2359319, 1, 0, 2359320, 1, 0, 2359321, 1, 0, 2359322, 1, 0, 2359323, 1, 0, 2359324, 1, 0, 2359325, 1, 0, 2359326, 1, 0, 2359327, 1, 0, 2359328, 1, 0, 2359329, 1, 0, 2359330, 1, 0, 2359331, 3, 131076, 2359332, 3, 131078, 2359333, 3, 131078, 2359334, 3, 131078, 2359335, 3, 131078, 2359336, 3, 131078, 2359337, 3, 131080, 2359338, 3, 131080, 2359339, 3, 131078, 2359340, 3, 131080, 2359341, 3, 131080, 2359342, 3, 131078, 2359343, 3, 131080, 2359344, 3, 131078, 2359345, 3, 131078, 2359346, 3, 131080, 2359347, 3, 131080, 2359348, 3, 131078, 2359349, 3, 131078, 2359350, 3, 131078, 2359351, 3, 131080, 2359352, 3, 131080, 2359353, 3, 131080, 2359354, 3, 131080, 2359355, 3, 131078, 2359356, 3, 131077, 2490367, 3, 131076, 2424832, 3, 131078, 2424833, 3, 131077, 2424834, 1, 0, 2424835, 1, 0, 2424836, 1, 0, 2424837, 1, 0, 2424838, 1, 0, 2424839, 1, 0, 2424840, 1, 0, 2424841, 1, 0, 2424842, 1, 0, 2424843, 1, 0, 2424844, 1, 0, 2424845, 1, 0, 2424846, 1, 0, 2424847, 1, 0, 2424848, 1, 0, 2424849, 1, 0, 2424850, 1, 0, 2424851, 1, 0, 2424852, 1, 0, 2424853, 1, 0, 2424854, 1, 0, 2424855, 1, 0, 2424856, 1, 0, 2424857, 1, 0, 2424858, 1, 0, 2424859, 1, 0, 2424860, 1, 0, 2424861, 1, 0, 2424862, 1, 0, 2424863, 1, 0, 2424864, 1, 0, 2424865, 1, 0, 2424866, 1, 0, 2424867, 3, 65543, 2424868, 3, 131073, 2424869, 3, 131080, 2424870, 3, 131080, 2424871, 3, 131080, 2424872, 3, 131080, 2424873, 3, 131078, 2424874, 3, 131078, 2424875, 3, 131078, 2424876, 3, 131080, 2424877, 3, 131080, 2424878, 3, 131078, 2424879, 3, 131080, 2424880, 3, 131080, 2424881, 3, 131080, 2424882, 3, 131078, 2424883, 3, 131078, 2424884, 3, 131078, 2424885, 3, 131080, 2424886, 3, 131078, 2424887, 3, 131080, 2424888, 3, 131080, 2424889, 3, 131080, 2424890, 3, 131080, 2424891, 3, 131078, 2424892, 3, 131077, 2555903, 3, 131076, 2490368, 3, 131078, 2490369, 3, 131077, 2490370, 1, 0, 2490371, 1, 0, 2490372, 1, 0, 2490373, 3, 65541, 2490374, 1, 0, 2490375, 1, 0, 2490376, 1, 0, 2490377, 1, 0, 2490378, 1, 0, 2490379, 1, 0, 2490380, 1, 0, 2490381, 1, 0, 2490382, 1, 0, 2490383, 1, 0, 2490384, 1, 0, 2490385, 1, 0, 2490386, 1, 0, 2490387, 1, 0, 2490388, 1, 0, 2490389, 1, 0, 2490390, 1, 0, 2490391, 1, 0, 2490392, 1, 0, 2490393, 1, 0, 2490394, 1, 0, 2490395, 1, 0, 2490396, 1, 0, 2490397, 1, 0, 2490398, 1, 0, 2490399, 1, 0, 2490400, 1, 0, 2490401, 1, 0, 2490402, 1, 0, 2490404, 3, 131076, 2490405, 3, 131080, 2490406, 3, 131078, 2490407, 3, 131080, 2490408, 3, 131080, 2490409, 3, 131078, 2490410, 3, 131078, 2490411, 3, 131078, 2490412, 3, 131078, 2490413, 3, 131080, 2490414, 3, 131078, 2490415, 3, 131078, 2490416, 3, 131078, 2490417, 3, 131080, 2490418, 3, 131078, 2490419, 3, 131078, 2490420, 3, 131078, 2490421, 3, 131080, 2490422, 3, 131080, 2490423, 3, 131078, 2490424, 3, 131078, 2490425, 3, 131080, 2490426, 3, 131080, 2490427, 3, 131078, 2490428, 3, 131077, 2621439, 3, 131076, 2555904, 3, 131078, 2555905, 3, 131077, 2555906, 1, 0, 2555907, 1, 0, 2555908, 1, 0, 2555909, 3, 65538, 2555910, 1, 0, 2555911, 1, 0, 2555912, 1, 0, 2555913, 1, 0, 2555914, 1, 0, 2555915, 1, 0, 2555916, 1, 0, 2555917, 1, 0, 2555918, 1, 0, 2555919, 1, 0, 2555920, 1, 0, 2555921, 1, 0, 2555922, 1, 0, 2555923, 1, 0, 2555924, 1, 0, 2555925, 1, 0, 2555926, 1, 0, 2555927, 1, 0, 2555928, 1, 0, 2555929, 1, 0, 2555930, 1, 0, 2555931, 1, 0, 2555932, 1, 0, 2555933, 1, 0, 2555934, 1, 0, 2555935, 1, 0, 2555936, 1, 0, 2555937, 1, 0, 2555938, 1, 0, 2555940, 3, 131076, 2555941, 3, 131078, 2555942, 3, 131078, 2555943, 3, 131080, 2555944, 3, 131080, 2555945, 3, 131078, 2555946, 3, 131080, 2555947, 3, 131078, 2555948, 3, 131078, 2555949, 3, 131080, 2555950, 3, 131078, 2555951, 3, 131078, 2555952, 3, 131080, 2555953, 3, 131080, 2555954, 3, 131078, 2555955, 3, 131078, 2555956, 3, 131080, 2555957, 3, 131078, 2555958, 3, 131080, 2555959, 3, 131078, 2555960, 3, 131080, 2555961, 3, 131078, 2555962, 3, 131078, 2555963, 3, 131078, 2555964, 3, 131077, 2686975, 3, 131076, 2621440, 3, 131078, 2621441, 3, 131077, 2621442, 1, 0, 2621443, 1, 0, 2621444, 1, 0, 2621445, 3, 262146, 2621446, 3, 196612, 2621447, 3, 196612, 2621448, 3, 196612, 2621449, 3, 8, 2621450, 1, 0, 2621451, 1, 0, 2621452, 1, 0, 2621453, 1, 0, 2621454, 3, 7, 2621455, 3, 196612, 2621456, 3, 196612, 2621457, 3, 196612, 2621458, 3, 196612, 2621459, 3, 8, 2621460, 1, 0, 2621461, 1, 0, 2621462, 1, 0, 2621463, 3, 7, 2621464, 3, 196612, 2621465, 3, 196612, 2621466, 3, 196612, 2621467, 3, 196612, 2621468, 3, 8, 2621469, 1, 0, 2621470, 1, 0, 2621471, 1, 0, 2621472, 1, 0, 2621473, 1, 0, 2621474, 1, 0, 2621475, 3, 7, 2621476, 3, 196609, 2621477, 3, 131078, 2621478, 3, 131080, 2621479, 3, 131080, 2621480, 3, 131078, 2621481, 3, 131078, 2621482, 3, 131080, 2621483, 3, 131080, 2621484, 3, 131080, 2621485, 3, 131080, 2621486, 3, 131080, 2621487, 3, 131080, 2621488, 3, 131080, 2621489, 3, 131080, 2621490, 3, 131080, 2621491, 3, 131080, 2621492, 3, 131080, 2621493, 3, 131078, 2621494, 3, 131080, 2621495, 3, 131080, 2621496, 3, 131080, 2621497, 3, 131080, 2621498, 3, 131080, 2621499, 3, 131078, 2621500, 3, 131077, 2752511, 3, 131076, 2686976, 3, 131078, 2686977, 3, 131077, 2686978, 1, 0, 2686979, 1, 0, 2686980, 1, 0, 2686981, 3, 131076, 2686982, 3, 131078, 2686983, 3, 131080, 2686984, 3, 131078, 2686985, 3, 196608, 2686986, 3, 196612, 2686987, 3, 196612, 2686988, 3, 196612, 2686989, 3, 196612, 2686990, 3, 196609, 2686991, 3, 131080, 2686992, 3, 131078, 2686993, 3, 131080, 2686994, 3, 131080, 2686995, 3, 196608, 2686996, 3, 196612, 2686997, 3, 196612, 2686998, 3, 196612, 2686999, 3, 196609, 2687000, 3, 131078, 2687001, 3, 131078, 2687002, 3, 131078, 2687003, 3, 131080, 2687004, 3, 196608, 2687005, 3, 196612, 2687006, 3, 196612, 2687007, 3, 196612, 2687008, 3, 196612, 2687009, 3, 196612, 2687010, 3, 196612, 2687011, 3, 196609, 2687012, 3, 131078, 2687013, 3, 131078, 2687014, 3, 131080, 2687015, 3, 131080, 2687016, 3, 131080, 2687017, 3, 131080, 2687018, 3, 131078, 2687019, 3, 131078, 2687020, 3, 131078, 2687021, 3, 131078, 2687022, 3, 131080, 2687023, 3, 131080, 2687024, 3, 131078, 2687025, 3, 131080, 2687026, 3, 131080, 2687027, 3, 131078, 2687028, 3, 131080, 2687029, 3, 131080, 2687030, 3, 131078, 2687031, 3, 131080, 2687032, 3, 131080, 2687033, 3, 131078, 2687034, 3, 131080, 2687035, 3, 131078, 2687036, 3, 131077, 2818047, 3, 131076, 2752512, 3, 131078, 2752513, 3, 196608, 2752514, 3, 196612, 2752515, 3, 196612, 2752516, 3, 196612, 2752517, 3, 196609, 2752518, 3, 131078, 2752519, 3, 131078, 2752520, 3, 131078, 2752521, 3, 131080, 2752522, 3, 131078, 2752523, 3, 131078, 2752524, 3, 131080, 2752525, 3, 131078, 2752526, 3, 131080, 2752527, 3, 131080, 2752528, 3, 131078, 2752529, 3, 131078, 2752530, 3, 131080, 2752531, 3, 131080, 2752532, 3, 131080, 2752533, 3, 131080, 2752534, 3, 131080, 2752535, 3, 131078, 2752536, 3, 131078, 2752537, 3, 131080, 2752538, 3, 131078, 2752539, 3, 131080, 2752540, 3, 131078, 2752541, 3, 131080, 2752542, 3, 131078, 2752543, 3, 131080, 2752544, 3, 131080, 2752545, 3, 131080, 2752546, 3, 131078, 2752547, 3, 131080, 2752548, 3, 131078, 2752549, 3, 131078, 2752550, 3, 131080, 2752551, 3, 131078, 2752552, 3, 131080, 2752553, 3, 131078, 2752554, 3, 131080, 2752555, 3, 131078, 2752556, 3, 131080, 2752557, 3, 131080, 2752558, 3, 131080, 2752559, 3, 131078, 2752560, 3, 131080, 2752561, 3, 131078, 2752562, 3, 131080, 2752563, 3, 131080, 2752564, 3, 131078, 2752565, 3, 131080, 2752566, 3, 131078, 2752567, 3, 131078, 2752568, 3, 131078, 2752569, 3, 131078, 2752570, 3, 131080, 2752571, 3, 131080, 2752572, 3, 131077, 2883583, 3, 131076, 2818048, 3, 131078, 2818049, 3, 131078, 2818050, 3, 131080, 2818051, 3, 131080, 2818052, 3, 131078, 2818053, 3, 131078, 2818054, 3, 131078, 2818055, 3, 131078, 2818056, 3, 131078, 2818057, 3, 131078, 2818058, 3, 131080, 2818059, 3, 131080, 2818060, 3, 131080, 2818061, 3, 131080, 2818062, 3, 131080, 2818063, 3, 131078, 2818064, 3, 131080, 2818065, 3, 131078, 2818066, 3, 131078, 2818067, 3, 131078, 2818068, 3, 131080, 2818069, 3, 131078, 2818070, 3, 131078, 2818071, 3, 131080, 2818072, 3, 131080, 2818073, 3, 131078, 2818074, 3, 131080, 2818075, 3, 131080, 2818076, 3, 131080, 2818077, 3, 131080, 2818078, 3, 131080, 2818079, 3, 131078, 2818080, 3, 131080, 2818081, 3, 131080, 2818082, 3, 131080, 2818083, 3, 131078, 2818084, 3, 131078, 2818085, 3, 131078, 2818086, 3, 131080, 2818087, 3, 131080, 2818088, 3, 131080, 2818089, 3, 131080, 2818090, 3, 131078, 2818091, 3, 131080, 2818092, 3, 131078, 2818093, 3, 131080, 2818094, 3, 131078, 2818095, 3, 131078, 2818096, 3, 131080, 2818097, 3, 131080, 2818098, 3, 131078, 2818099, 3, 131080, 2818100, 3, 131078, 2818101, 3, 131080, 2818102, 3, 131080, 2818103, 3, 131080, 2818104, 3, 131078, 2818105, 3, 131078, 2818106, 3, 131080, 2818107, 3, 131078, 2818108, 3, 131077, 2949119, 3, 131076, 2883584, 3, 131078, 2883585, 3, 131080, 2883586, 3, 131078, 2883587, 3, 131078, 2883588, 3, 131078, 2883589, 3, 131078, 2883590, 3, 131080, 2883591, 3, 131078, 2883592, 3, 131080, 2883593, 3, 131080, 2883594, 3, 131078, 2883595, 3, 131078, 2883596, 3, 131080, 2883597, 3, 131080, 2883598, 3, 131078, 2883599, 3, 131078, 2883600, 3, 131080, 2883601, 3, 131080, 2883602, 3, 131080, 2883603, 3, 131080, 2883604, 3, 131078, 2883605, 3, 131078, 2883606, 3, 131080, 2883607, 3, 131080, 2883608, 3, 131078, 2883609, 3, 131080, 2883610, 3, 131078, 2883611, 3, 131078, 2883612, 3, 131078, 2883613, 3, 131080, 2883614, 3, 131078, 2883615, 3, 131078, 2883616, 3, 131080, 2883617, 3, 131080, 2883618, 3, 131080, 2883619, 3, 131080, 2883620, 3, 131078, 2883621, 3, 131078, 2883622, 3, 131080, 2883623, 3, 131078, 2883624, 3, 131078, 2883625, 3, 131078, 2883626, 3, 131078, 2883627, 3, 131078, 2883628, 3, 131078, 2883629, 3, 131080, 2883630, 3, 131080, 2883631, 3, 131080, 2883632, 3, 131078, 2883633, 3, 131078, 2883634, 3, 131080, 2883635, 3, 131078, 2883636, 3, 131078, 2883637, 3, 131080, 2883638, 3, 131078, 2883639, 3, 131078, 2883640, 3, 131078, 2883641, 3, 131078, 2883642, 3, 131078, 2883643, 3, 131080, 2883644, 3, 131077, 3014655, 3, 65543, 2949120, 3, 196613, 2949121, 3, 196613, 2949122, 3, 196613, 2949123, 3, 196613, 2949124, 3, 196613, 2949125, 3, 196613, 2949126, 3, 196613, 2949127, 3, 196613, 2949128, 3, 196613, 2949129, 3, 196613, 2949130, 3, 196613, 2949131, 3, 196613, 2949132, 3, 196613, 2949133, 3, 196613, 2949134, 3, 196613, 2949135, 3, 196613, 2949136, 3, 196613, 2949137, 3, 196613, 2949138, 3, 196613, 2949139, 3, 196613, 2949140, 3, 196613, 2949141, 3, 196613, 2949142, 3, 196613, 2949143, 3, 196613, 2949144, 3, 196613, 2949145, 3, 196613, 2949146, 3, 196613, 2949147, 3, 196613, 2949148, 3, 196613, 2949149, 3, 196613, 2949150, 3, 196613, 2949151, 3, 196613, 2949152, 3, 196613, 2949153, 3, 196613, 2949154, 3, 196613, 2949155, 3, 196613, 2949156, 3, 196613, 2949157, 3, 196613, 2949158, 3, 196613, 2949159, 3, 196613, 2949160, 3, 196613, 2949161, 3, 196613, 2949162, 3, 196613, 2949163, 3, 196613, 2949164, 3, 196613, 2949165, 3, 196613, 2949166, 3, 196613, 2949167, 3, 196613, 2949168, 3, 196613, 2949169, 3, 196613, 2949170, 3, 196613, 2949171, 3, 196613, 2949172, 3, 196613, 2949173, 3, 196613, 2949174, 3, 196613, 2949175, 3, 196613, 2949176, 3, 196613, 2949177, 3, 196613, 2949178, 3, 196613, 2949179, 3, 196613, 2949180, 3, 65544 ) +tile_data = PoolIntArray( -1, 3, 7, -65536, 3, 196612, -65535, 3, 196612, -65534, 3, 196612, -65533, 3, 196612, -65532, 3, 196612, -65531, 3, 196612, -65530, 3, 196612, -65529, 3, 196612, -65528, 3, 196612, -65527, 3, 196612, -65526, 3, 196612, -65525, 3, 196612, -65524, 3, 196612, -65523, 3, 196612, -65522, 3, 196612, -65521, 3, 196612, -65520, 3, 196612, -65519, 3, 196612, -65518, 3, 196612, -65517, 3, 196612, -65516, 3, 196612, -65515, 3, 196612, -65514, 3, 196612, -65513, 3, 196612, -65512, 3, 196612, -65511, 3, 196612, -65510, 3, 196612, -65509, 3, 196612, -65508, 3, 196612, -65507, 3, 196612, -65506, 3, 196612, -65505, 3, 196612, -65504, 3, 196612, -65503, 3, 196612, -65502, 3, 196612, -65501, 3, 196612, -65500, 3, 196612, -65499, 3, 196612, -65498, 3, 196612, -65497, 3, 196612, -65496, 3, 196612, -65495, 3, 196612, -65494, 3, 196612, -65493, 3, 196612, -65492, 3, 196612, -65491, 3, 196612, -65490, 3, 196612, -65489, 3, 196612, -65488, 3, 196612, -65487, 3, 196612, -65486, 3, 196612, -65485, 3, 196612, -65484, 3, 196612, -65483, 3, 196612, -65482, 3, 196612, -65481, 3, 196612, -65480, 3, 196612, -65479, 3, 196612, -65478, 3, 196612, -65477, 3, 196612, -65476, 3, 8, 65535, 3, 131076, 0, 3, 131078, 1, 3, 131078, 2, 3, 131078, 3, 3, 131078, 4, 3, 131078, 5, 3, 131078, 6, 3, 131078, 7, 3, 131078, 8, 3, 131078, 9, 3, 131078, 10, 3, 131078, 11, 3, 131078, 12, 3, 131078, 13, 3, 131078, 14, 3, 131078, 15, 3, 131078, 16, 3, 131078, 17, 3, 131078, 18, 3, 131078, 19, 3, 131078, 20, 3, 131078, 21, 3, 131078, 22, 3, 131078, 23, 3, 131078, 24, 3, 131078, 25, 3, 131078, 26, 3, 131078, 27, 3, 131078, 28, 3, 131078, 29, 3, 131078, 30, 3, 131078, 31, 3, 131078, 32, 3, 131078, 33, 3, 131078, 34, 3, 131078, 35, 3, 131078, 36, 3, 131078, 37, 3, 131078, 38, 3, 131080, 39, 3, 131080, 40, 3, 131078, 41, 3, 131078, 42, 3, 131080, 43, 3, 131080, 44, 3, 131078, 45, 3, 131080, 46, 3, 131080, 47, 3, 131078, 48, 3, 131078, 49, 3, 131078, 50, 3, 131078, 51, 3, 131080, 52, 3, 131078, 53, 3, 131080, 54, 3, 131080, 55, 3, 131078, 56, 3, 131080, 57, 3, 131078, 58, 3, 131080, 59, 3, 131078, 60, 3, 131077, 131071, 3, 131076, 65536, 3, 131078, 65537, 3, 131072, 65538, 3, 196613, 65539, 3, 196613, 65540, 3, 196613, 65541, 3, 196613, 65542, 3, 196613, 65543, 3, 196613, 65544, 3, 196613, 65545, 3, 196613, 65546, 3, 196613, 65547, 3, 196613, 65548, 3, 196613, 65549, 3, 196613, 65550, 3, 196613, 65551, 3, 196613, 65552, 3, 196613, 65553, 3, 196613, 65554, 3, 196613, 65555, 3, 196613, 65556, 3, 196613, 65557, 3, 196613, 65558, 3, 196613, 65559, 3, 196613, 65560, 3, 196613, 65561, 3, 196613, 65562, 3, 196613, 65563, 3, 196613, 65564, 3, 196613, 65565, 3, 196613, 65566, 3, 196613, 65567, 3, 196613, 65568, 3, 196613, 65569, 3, 196613, 65570, 3, 196613, 65571, 3, 131073, 65572, 3, 131078, 65573, 3, 131078, 65574, 3, 131078, 65575, 3, 131078, 65576, 3, 131078, 65577, 3, 131080, 65578, 3, 131078, 65579, 3, 131080, 65580, 3, 131078, 65581, 3, 131080, 65582, 3, 131080, 65583, 3, 131080, 65584, 3, 131080, 65585, 3, 131078, 65586, 3, 131080, 65587, 3, 131078, 65588, 3, 131080, 65589, 3, 131080, 65590, 3, 131080, 65591, 3, 131080, 65592, 3, 131078, 65593, 3, 131080, 65594, 3, 131080, 65595, 3, 131078, 65596, 3, 131077, 196607, 3, 131076, 131072, 3, 131078, 131073, 3, 131077, 131074, 1, 0, 131075, 1, 0, 131076, 1, 0, 131077, 1, 0, 131078, 1, 0, 131079, 1, 0, 131080, 1, 0, 131081, 1, 0, 131082, 1, 0, 131083, 1, 0, 131084, 1, 0, 131085, 1, 0, 131086, 1, 0, 131087, 1, 0, 131088, 1, 0, 131089, 1, 0, 131090, 1, 0, 131091, 1, 0, 131092, 1, 0, 131093, 1, 0, 131094, 1, 0, 131095, 1, 0, 131096, 1, 0, 131097, 1, 0, 131098, 1, 0, 131099, 1, 0, 131100, 1, 0, 131101, 1, 0, 131102, 1, 0, 131103, 1, 0, 131104, 1, 0, 131105, 1, 0, 131106, 1, 0, 131107, 3, 131076, 131108, 3, 131078, 131109, 3, 131078, 131110, 3, 131080, 131111, 3, 131080, 131112, 3, 131080, 131113, 3, 131078, 131114, 3, 131080, 131115, 3, 131078, 131116, 3, 131080, 131117, 3, 131078, 131118, 3, 131078, 131119, 3, 131078, 131120, 3, 131080, 131121, 3, 131078, 131122, 3, 131078, 131123, 3, 131078, 131124, 3, 131078, 131125, 3, 131080, 131126, 3, 131078, 131127, 3, 131080, 131128, 3, 131078, 131129, 3, 131078, 131130, 3, 131078, 131131, 3, 131080, 131132, 3, 131077, 262143, 3, 131076, 196608, 3, 131078, 196609, 3, 131077, 196610, 1, 0, 196611, 1, 0, 196612, 1, 0, 196613, 1, 0, 196614, 1, 0, 196615, 1, 0, 196616, 1, 0, 196617, 1, 0, 196618, 1, 0, 196619, 1, 0, 196620, 1, 0, 196621, 1, 0, 196622, 1, 0, 196623, 1, 0, 196624, 1, 0, 196625, 1, 0, 196626, 1, 0, 196627, 1, 0, 196628, 1, 0, 196629, 1, 0, 196630, 1, 0, 196631, 1, 0, 196632, 1, 0, 196633, 1, 0, 196634, 1, 0, 196635, 1, 0, 196636, 1, 0, 196637, 1, 0, 196638, 1, 0, 196639, 1, 0, 196640, 1, 0, 196641, 1, 0, 196642, 1, 0, 196643, 3, 131076, 196644, 3, 131078, 196645, 3, 131080, 196646, 3, 131080, 196647, 3, 131078, 196648, 3, 131078, 196649, 3, 131080, 196650, 3, 131078, 196651, 3, 131078, 196652, 3, 131078, 196653, 3, 131080, 196654, 3, 131078, 196655, 3, 131078, 196656, 3, 131080, 196657, 3, 131078, 196658, 3, 131078, 196659, 3, 131078, 196660, 3, 131080, 196661, 3, 131080, 196662, 3, 131078, 196663, 3, 131078, 196664, 3, 131078, 196665, 3, 131080, 196666, 3, 131078, 196667, 3, 131080, 196668, 3, 131077, 327679, 3, 131076, 262144, 3, 131078, 262145, 3, 131077, 262146, 1, 0, 262147, 1, 0, 262148, 1, 0, 262149, 3, 0, 262150, 3, 2, 262151, 3, 2, 262152, 3, 262148, 262153, 3, 196612, 262154, 3, 8, 262155, 1, 0, 262156, 1, 0, 262157, 1, 0, 262158, 1, 0, 262159, 1, 0, 262160, 1, 0, 262161, 1, 0, 262162, 1, 0, 262163, 1, 0, 262164, 1, 0, 262165, 1, 0, 262166, 1, 0, 262167, 1, 0, 262168, 1, 0, 262169, 1, 0, 262170, 1, 0, 262171, 1, 0, 262172, 1, 0, 262173, 1, 0, 262174, 1, 0, 262175, 1, 0, 262176, 1, 0, 262177, 1, 0, 262178, 1, 0, 262179, 3, 131076, 262180, 3, 131078, 262181, 3, 131080, 262182, 3, 131078, 262183, 3, 131078, 262184, 3, 131080, 262185, 3, 131078, 262186, 3, 131078, 262187, 3, 131078, 262188, 3, 131078, 262189, 3, 131078, 262190, 3, 131078, 262191, 3, 131080, 262192, 3, 131080, 262193, 3, 131080, 262194, 3, 131080, 262195, 3, 131078, 262196, 3, 131078, 262197, 3, 131080, 262198, 3, 131080, 262199, 3, 131078, 262200, 3, 131078, 262201, 3, 131078, 262202, 3, 131080, 262203, 3, 131080, 262204, 3, 131077, 393215, 3, 131076, 327680, 3, 131078, 327681, 3, 131077, 327682, 1, 0, 327683, 1, 0, 327684, 1, 0, 327685, 3, 6, 327686, 1, 0, 327687, 1, 0, 327688, 3, 65543, 327689, 3, 196613, 327690, 3, 65544, 327691, 1, 0, 327692, 1, 0, 327693, 1, 0, 327694, 1, 0, 327695, 1, 0, 327696, 1, 0, 327697, 1, 0, 327698, 1, 0, 327699, 1, 0, 327700, 1, 0, 327701, 1, 0, 327702, 1, 0, 327703, 1, 0, 327704, 1, 0, 327705, 1, 0, 327706, 1, 0, 327707, 1, 0, 327708, 1, 0, 327709, 1, 0, 327710, 1, 0, 327711, 1, 0, 327712, 1, 0, 327713, 1, 0, 327714, 1, 0, 327715, 3, 131076, 327716, 3, 131078, 327717, 3, 131078, 327718, 3, 131078, 327719, 3, 131080, 327720, 3, 131078, 327721, 3, 131080, 327722, 3, 131080, 327723, 3, 131078, 327724, 3, 131078, 327725, 3, 131080, 327726, 3, 131080, 327727, 3, 131078, 327728, 3, 131078, 327729, 3, 131080, 327730, 3, 131080, 327731, 3, 131078, 327732, 3, 131078, 327733, 3, 131078, 327734, 3, 131080, 327735, 3, 131078, 327736, 3, 131078, 327737, 3, 131078, 327738, 3, 131078, 327739, 3, 131078, 327740, 3, 131077, 458751, 3, 327682, 393216, 3, 196613, 393217, 3, 65544, 393218, 1, 0, 393219, 1, 0, 393220, 1, 0, 393221, 1, 0, 393222, 1, 0, 393223, 1, 0, 393224, 1, 0, 393225, 1, 0, 393226, 1, 0, 393227, 1, 0, 393228, 1, 0, 393229, 1, 0, 393230, 1, 0, 393231, 1, 0, 393232, 1, 0, 393233, 1, 0, 393234, 1, 0, 393235, 1, 0, 393236, 1, 0, 393237, 1, 0, 393238, 1, 0, 393239, 1, 0, 393240, 1, 0, 393241, 1, 0, 393242, 1, 0, 393243, 1, 0, 393244, 1, 0, 393245, 1, 0, 393246, 1, 0, 393247, 1, 0, 393248, 1, 0, 393249, 1, 0, 393250, 1, 0, 393251, 3, 131076, 393252, 3, 131078, 393253, 3, 131080, 393254, 3, 131078, 393255, 3, 131080, 393256, 3, 131078, 393257, 3, 131078, 393258, 3, 131080, 393259, 3, 131080, 393260, 3, 131080, 393261, 3, 131078, 393262, 3, 131080, 393263, 3, 131080, 393264, 3, 131080, 393265, 3, 131080, 393266, 3, 131080, 393267, 3, 131080, 393268, 3, 131078, 393269, 3, 131078, 393270, 3, 131080, 393271, 3, 131080, 393272, 3, 131080, 393273, 3, 131080, 393274, 3, 131078, 393275, 3, 131080, 393276, 3, 131077, 524287, 3, 65538, 458754, 1, 0, 458755, 1, 0, 458756, 1, 0, 458757, 1, 0, 458758, 1, 0, 458759, 1, 0, 458760, 1, 0, 458761, 1, 0, 458762, 1, 0, 458763, 1, 0, 458764, 1, 0, 458765, 1, 0, 458766, 1, 0, 458767, 1, 0, 458768, 1, 0, 458769, 1, 0, 458770, 1, 0, 458771, 1, 0, 458772, 1, 0, 458773, 1, 0, 458774, 1, 0, 458775, 1, 0, 458776, 1, 0, 458777, 1, 0, 458778, 1, 0, 458779, 1, 0, 458780, 1, 0, 458781, 1, 0, 458782, 1, 0, 458783, 1, 0, 458784, 1, 0, 458785, 1, 0, 458786, 1, 0, 458787, 3, 131076, 458788, 3, 131078, 458789, 3, 131080, 458790, 3, 131078, 458791, 3, 131078, 458792, 3, 131080, 458793, 3, 131080, 458794, 3, 131078, 458795, 3, 131080, 458796, 3, 131078, 458797, 3, 131080, 458798, 3, 131078, 458799, 3, 131080, 458800, 3, 131080, 458801, 3, 131080, 458802, 3, 131080, 458803, 3, 131080, 458804, 3, 131078, 458805, 3, 131080, 458806, 3, 131080, 458807, 3, 131080, 458808, 3, 131078, 458809, 3, 131080, 458810, 3, 131078, 458811, 3, 131080, 458812, 3, 131077, 589823, 3, 262146, 524288, 3, 196612, 524289, 3, 8, 524290, 1, 0, 524291, 1, 0, 524292, 1, 0, 524293, 1, 0, 524294, 1, 0, 524295, 1, 0, 524296, 1, 0, 524297, 1, 0, 524298, 1, 0, 524299, 1, 0, 524300, 1, 0, 524301, 1, 0, 524302, 1, 0, 524303, 1, 0, 524304, 1, 0, 524305, 1, 0, 524306, 1, 0, 524307, 1, 0, 524308, 1, 0, 524309, 1, 0, 524310, 1, 0, 524311, 1, 0, 524312, 1, 0, 524313, 1, 0, 524314, 1, 0, 524315, 1, 0, 524316, 1, 0, 524317, 1, 0, 524318, 1, 0, 524319, 1, 0, 524320, 1, 0, 524321, 1, 0, 524322, 1, 0, 524323, 3, 131076, 524324, 3, 131078, 524325, 3, 131078, 524326, 3, 131080, 524327, 3, 131078, 524328, 3, 131078, 524329, 3, 131080, 524330, 3, 131078, 524331, 3, 131078, 524332, 3, 131078, 524333, 3, 131080, 524334, 3, 131078, 524335, 3, 131078, 524336, 3, 131080, 524337, 3, 131080, 524338, 3, 131080, 524339, 3, 131080, 524340, 3, 131078, 524341, 3, 131078, 524342, 3, 131078, 524343, 3, 131078, 524344, 3, 131078, 524345, 3, 131080, 524346, 3, 131078, 524347, 3, 131080, 524348, 3, 131077, 655359, 3, 131076, 589824, 3, 131078, 589825, 3, 131077, 589826, 1, 0, 589827, 1, 0, 589828, 1, 0, 589829, 3, 65541, 589830, 1, 0, 589831, 1, 0, 589832, 1, 0, 589833, 1, 0, 589834, 3, 65541, 589835, 1, 0, 589836, 1, 0, 589837, 1, 0, 589838, 1, 0, 589839, 1, 0, 589840, 1, 0, 589841, 1, 0, 589842, 1, 0, 589843, 1, 0, 589844, 1, 0, 589845, 1, 0, 589846, 1, 0, 589847, 1, 0, 589848, 1, 0, 589849, 1, 0, 589850, 1, 0, 589851, 1, 0, 589852, 1, 0, 589853, 1, 0, 589854, 1, 0, 589855, 1, 0, 589856, 1, 0, 589857, 1, 0, 589858, 1, 0, 589859, 3, 131076, 589860, 3, 131078, 589861, 3, 131078, 589862, 3, 131080, 589863, 3, 131080, 589864, 3, 131080, 589865, 3, 131078, 589866, 3, 131078, 589867, 3, 131080, 589868, 3, 131080, 589869, 3, 131078, 589870, 3, 131080, 589871, 3, 131078, 589872, 3, 131078, 589873, 3, 131078, 589874, 3, 131080, 589875, 3, 131080, 589876, 3, 131078, 589877, 3, 131080, 589878, 3, 131080, 589879, 3, 131080, 589880, 3, 131078, 589881, 3, 131080, 589882, 3, 131078, 589883, 3, 131080, 589884, 3, 131077, 720895, 3, 131076, 655360, 3, 131078, 655361, 3, 131077, 655362, 1, 0, 655363, 1, 0, 655364, 1, 0, 655365, 3, 6, 655366, 1, 0, 655367, 1, 0, 655368, 1, 0, 655369, 1, 0, 655370, 3, 65538, 655371, 1, 0, 655372, 1, 0, 655373, 1, 0, 655374, 1, 0, 655375, 1, 0, 655376, 1, 0, 655377, 1, 0, 655378, 1, 0, 655379, 1, 0, 655380, 1, 0, 655381, 1, 0, 655382, 1, 0, 655383, 1, 0, 655384, 1, 0, 655385, 1, 0, 655386, 1, 0, 655387, 1, 0, 655388, 1, 0, 655389, 1, 0, 655390, 1, 0, 655391, 1, 0, 655392, 1, 0, 655393, 1, 0, 655394, 1, 0, 655395, 3, 131076, 655396, 3, 131078, 655397, 3, 131078, 655398, 3, 131078, 655399, 3, 131080, 655400, 3, 131080, 655401, 3, 131078, 655402, 3, 131080, 655403, 3, 131078, 655404, 3, 131080, 655405, 3, 131078, 655406, 3, 131078, 655407, 3, 131078, 655408, 3, 131080, 655409, 3, 131080, 655410, 3, 131078, 655411, 3, 131080, 655412, 3, 131078, 655413, 3, 131080, 655414, 3, 131078, 655415, 3, 131080, 655416, 3, 131080, 655417, 3, 131078, 655418, 3, 131080, 655419, 3, 131078, 655420, 3, 131077, 786431, 3, 131076, 720896, 3, 131078, 720897, 3, 131077, 720898, 1, 0, 720899, 1, 0, 720900, 1, 0, 720901, 1, 0, 720902, 1, 0, 720903, 1, 0, 720904, 1, 0, 720905, 1, 0, 720906, 3, 65538, 720907, 1, 0, 720908, 1, 0, 720909, 1, 0, 720910, 1, 0, 720911, 1, 0, 720912, 1, 0, 720913, 1, 0, 720914, 1, 0, 720915, 1, 0, 720916, 1, 0, 720917, 1, 0, 720918, 1, 0, 720919, 1, 0, 720920, 1, 0, 720921, 1, 0, 720922, 1, 0, 720923, 1, 0, 720924, 1, 0, 720925, 1, 0, 720926, 1, 0, 720927, 1, 0, 720928, 1, 0, 720929, 1, 0, 720930, 1, 0, 720931, 3, 131076, 720932, 3, 131078, 720933, 3, 131080, 720934, 3, 131080, 720935, 3, 131080, 720936, 3, 131080, 720937, 3, 131080, 720938, 3, 131078, 720939, 3, 131080, 720940, 3, 131080, 720941, 3, 131080, 720942, 3, 131080, 720943, 3, 131078, 720944, 3, 131078, 720945, 3, 131078, 720946, 3, 131078, 720947, 3, 131078, 720948, 3, 131080, 720949, 3, 131080, 720950, 3, 131080, 720951, 3, 131080, 720952, 3, 131080, 720953, 3, 131078, 720954, 3, 131080, 720955, 3, 131080, 720956, 3, 131077, 851967, 3, 131076, 786432, 3, 131078, 786433, 3, 131077, 786434, 1, 0, 786435, 1, 0, 786436, 1, 0, 786437, 3, 65541, 786438, 1, 0, 786439, 1, 0, 786440, 1, 0, 786441, 1, 0, 786442, 3, 65538, 786443, 1, 0, 786444, 1, 0, 786445, 1, 0, 786446, 1, 0, 786447, 1, 0, 786448, 1, 0, 786449, 1, 0, 786450, 1, 0, 786451, 1, 0, 786452, 1, 0, 786453, 1, 0, 786454, 1, 0, 786455, 1, 0, 786456, 1, 0, 786457, 1, 0, 786458, 1, 0, 786459, 1, 0, 786460, 1, 0, 786461, 1, 0, 786462, 1, 0, 786463, 1, 0, 786464, 1, 0, 786465, 1, 0, 786466, 1, 0, 786467, 3, 131076, 786468, 3, 131078, 786469, 3, 131078, 786470, 3, 131080, 786471, 3, 131080, 786472, 3, 131080, 786473, 3, 131080, 786474, 3, 131080, 786475, 3, 131080, 786476, 3, 131080, 786477, 3, 131080, 786478, 3, 131080, 786479, 3, 131080, 786480, 3, 131078, 786481, 3, 131080, 786482, 3, 131080, 786483, 3, 131078, 786484, 3, 131080, 786485, 3, 131080, 786486, 3, 131078, 786487, 3, 131080, 786488, 3, 131080, 786489, 3, 131078, 786490, 3, 131080, 786491, 3, 131080, 786492, 3, 131077, 917503, 3, 131076, 851968, 3, 131078, 851969, 3, 131077, 851970, 1, 0, 851971, 1, 0, 851972, 1, 0, 851973, 3, 65538, 851974, 1, 0, 851975, 1, 0, 851976, 1, 0, 851977, 1, 0, 851978, 3, 65538, 851979, 1, 0, 851980, 1, 0, 851981, 1, 0, 851982, 1, 0, 851983, 1, 0, 851984, 1, 0, 851985, 1, 0, 851986, 1, 0, 851987, 1, 0, 851988, 1, 0, 851989, 1, 0, 851990, 1, 0, 851991, 1, 0, 851992, 1, 0, 851993, 1, 0, 851994, 1, 0, 851995, 1, 0, 851996, 1, 0, 851997, 1, 0, 851998, 1, 0, 851999, 1, 0, 852000, 1, 0, 852001, 1, 0, 852002, 1, 0, 852003, 3, 131076, 852004, 3, 131078, 852005, 3, 131078, 852006, 3, 131078, 852007, 3, 131080, 852008, 3, 131078, 852009, 3, 131080, 852010, 3, 131078, 852011, 3, 131080, 852012, 3, 131080, 852013, 3, 131080, 852014, 3, 131080, 852015, 3, 131080, 852016, 3, 131080, 852017, 3, 131080, 852018, 3, 131080, 852019, 3, 131078, 852020, 3, 131080, 852021, 3, 131080, 852022, 3, 131078, 852023, 3, 131080, 852024, 3, 131078, 852025, 3, 131080, 852026, 3, 131080, 852027, 3, 131078, 852028, 3, 131077, 983039, 3, 131076, 917504, 3, 131078, 917505, 3, 131077, 917506, 1, 0, 917507, 1, 0, 917508, 1, 0, 917509, 3, 65538, 917510, 1, 0, 917511, 1, 0, 917512, 1, 0, 917513, 1, 0, 917514, 3, 65538, 917515, 1, 0, 917516, 1, 0, 917517, 1, 0, 917518, 1, 0, 917519, 1, 0, 917520, 1, 0, 917521, 1, 0, 917522, 1, 0, 917523, 1, 0, 917524, 1, 0, 917525, 1, 0, 917526, 1, 0, 917527, 1, 0, 917528, 1, 0, 917529, 1, 0, 917530, 1, 0, 917531, 1, 0, 917532, 1, 0, 917533, 1, 0, 917534, 1, 0, 917535, 1, 0, 917536, 1, 0, 917537, 1, 0, 917538, 1, 0, 917539, 3, 131076, 917540, 3, 131078, 917541, 3, 131078, 917542, 3, 131078, 917543, 3, 131078, 917544, 3, 131080, 917545, 3, 131078, 917546, 3, 131078, 917547, 3, 131080, 917548, 3, 131078, 917549, 3, 131078, 917550, 3, 131078, 917551, 3, 131080, 917552, 3, 131080, 917553, 3, 131080, 917554, 3, 131078, 917555, 3, 131080, 917556, 3, 131078, 917557, 3, 131078, 917558, 3, 131078, 917559, 3, 131080, 917560, 3, 131080, 917561, 3, 131080, 917562, 3, 131078, 917563, 3, 131078, 917564, 3, 131077, 1048575, 3, 131076, 983040, 3, 131078, 983041, 3, 131077, 983042, 1, 0, 983043, 1, 0, 983044, 1, 0, 983045, 3, 65538, 983046, 1, 0, 983047, 1, 0, 983048, 1, 0, 983049, 1, 0, 983050, 3, 65538, 983051, 1, 0, 983052, 1, 0, 983053, 1, 0, 983054, 1, 0, 983055, 1, 0, 983056, 1, 0, 983057, 1, 0, 983058, 1, 0, 983059, 1, 0, 983060, 1, 0, 983061, 1, 0, 983062, 1, 0, 983063, 1, 0, 983064, 1, 0, 983065, 1, 0, 983066, 1, 0, 983067, 1, 0, 983068, 1, 0, 983069, 1, 0, 983070, 1, 0, 983071, 1, 0, 983072, 1, 0, 983073, 1, 0, 983074, 1, 0, 983075, 3, 131076, 983076, 3, 131078, 983077, 3, 131078, 983078, 3, 131080, 983079, 3, 131080, 983080, 3, 131078, 983081, 3, 131080, 983082, 3, 131078, 983083, 3, 131078, 983084, 3, 131080, 983085, 3, 131078, 983086, 3, 131080, 983087, 3, 131078, 983088, 3, 131080, 983089, 3, 131078, 983090, 3, 131078, 983091, 3, 131080, 983092, 3, 131080, 983093, 3, 131078, 983094, 3, 131078, 983095, 3, 131080, 983096, 3, 131078, 983097, 3, 131078, 983098, 3, 131080, 983099, 3, 131078, 983100, 3, 131077, 1114111, 3, 131076, 1048576, 3, 131078, 1048577, 3, 131077, 1048578, 1, 0, 1048579, 1, 0, 1048580, 1, 0, 1048581, 3, 65538, 1048582, 1, 0, 1048583, 1, 0, 1048584, 1, 0, 1048585, 1, 0, 1048586, 3, 6, 1048587, 1, 0, 1048588, 1, 0, 1048589, 1, 0, 1048590, 1, 0, 1048591, 1, 0, 1048592, 1, 0, 1048593, 1, 0, 1048594, 1, 0, 1048595, 1, 0, 1048596, 1, 0, 1048597, 1, 0, 1048598, 1, 0, 1048599, 1, 0, 1048600, 1, 0, 1048601, 1, 0, 1048602, 1, 0, 1048603, 1, 0, 1048604, 1, 0, 1048605, 1, 0, 1048606, 1, 0, 1048607, 1, 0, 1048608, 1, 0, 1048609, 1, 0, 1048610, 1, 0, 1048611, 3, 131076, 1048612, 3, 131078, 1048613, 3, 131078, 1048614, 3, 131080, 1048615, 3, 131078, 1048616, 3, 131078, 1048617, 3, 131078, 1048618, 3, 131080, 1048619, 3, 131080, 1048620, 3, 131078, 1048621, 3, 131080, 1048622, 3, 131078, 1048623, 3, 131078, 1048624, 3, 131078, 1048625, 3, 131078, 1048626, 3, 131078, 1048627, 3, 131080, 1048628, 3, 131080, 1048629, 3, 131078, 1048630, 3, 131078, 1048631, 3, 131080, 1048632, 3, 131080, 1048633, 3, 131080, 1048634, 3, 131078, 1048635, 3, 131080, 1048636, 3, 131077, 1179647, 3, 131076, 1114112, 3, 131078, 1114113, 3, 131077, 1114114, 1, 0, 1114115, 1, 0, 1114116, 1, 0, 1114117, 3, 65538, 1114118, 1, 0, 1114119, 1, 0, 1114120, 1, 0, 1114121, 1, 0, 1114122, 1, 0, 1114123, 1, 0, 1114124, 1, 0, 1114125, 1, 0, 1114126, 1, 0, 1114127, 1, 0, 1114128, 1, 0, 1114129, 1, 0, 1114130, 3, 65541, 1114131, 1, 0, 1114132, 1, 0, 1114133, 1, 0, 1114134, 1, 0, 1114135, 1, 0, 1114136, 1, 0, 1114137, 1, 0, 1114138, 1, 0, 1114139, 1, 0, 1114140, 1, 0, 1114141, 1, 0, 1114142, 1, 0, 1114143, 1, 0, 1114144, 1, 0, 1114145, 1, 0, 1114146, 1, 0, 1114147, 3, 131076, 1114148, 3, 131078, 1114149, 3, 131080, 1114150, 3, 131078, 1114151, 3, 131078, 1114152, 3, 131078, 1114153, 3, 131078, 1114154, 3, 131080, 1114155, 3, 131078, 1114156, 3, 131078, 1114157, 3, 131080, 1114158, 3, 131078, 1114159, 3, 131078, 1114160, 3, 131078, 1114161, 3, 131078, 1114162, 3, 131078, 1114163, 3, 131078, 1114164, 3, 131078, 1114165, 3, 131078, 1114166, 3, 131080, 1114167, 3, 131078, 1114168, 3, 131078, 1114169, 3, 131080, 1114170, 3, 131078, 1114171, 3, 131080, 1114172, 3, 131077, 1245183, 3, 131076, 1179648, 3, 131078, 1179649, 3, 131077, 1179650, 1, 0, 1179651, 1, 0, 1179652, 1, 0, 1179653, 3, 65538, 1179654, 1, 0, 1179655, 1, 0, 1179656, 1, 0, 1179657, 1, 0, 1179658, 3, 65541, 1179659, 1, 0, 1179660, 1, 0, 1179661, 1, 0, 1179662, 1, 0, 1179663, 1, 0, 1179664, 1, 0, 1179665, 1, 0, 1179666, 3, 65536, 1179667, 3, 5, 1179668, 1, 0, 1179669, 1, 0, 1179670, 1, 0, 1179671, 1, 0, 1179672, 1, 0, 1179673, 1, 0, 1179674, 1, 0, 1179675, 1, 0, 1179676, 1, 0, 1179677, 1, 0, 1179678, 1, 0, 1179679, 1, 0, 1179680, 1, 0, 1179681, 1, 0, 1179682, 1, 0, 1179683, 3, 131076, 1179684, 3, 131078, 1179685, 3, 131078, 1179686, 3, 131078, 1179687, 3, 131078, 1179688, 3, 131078, 1179689, 3, 131080, 1179690, 3, 131080, 1179691, 3, 131078, 1179692, 3, 131078, 1179693, 3, 131078, 1179694, 3, 131078, 1179695, 3, 131080, 1179696, 3, 131078, 1179697, 3, 131078, 1179698, 3, 131080, 1179699, 3, 131080, 1179700, 3, 131078, 1179701, 3, 131078, 1179702, 3, 131080, 1179703, 3, 131078, 1179704, 3, 131080, 1179705, 3, 131078, 1179706, 3, 131080, 1179707, 3, 131080, 1179708, 3, 131077, 1310719, 3, 131076, 1245184, 3, 131078, 1245185, 3, 131077, 1245186, 1, 0, 1245187, 1, 0, 1245188, 1, 0, 1245189, 3, 6, 1245190, 1, 0, 1245191, 1, 0, 1245192, 1, 0, 1245193, 1, 0, 1245194, 3, 65538, 1245195, 1, 0, 1245196, 1, 0, 1245197, 1, 0, 1245198, 1, 0, 1245199, 1, 0, 1245200, 1, 0, 1245201, 1, 0, 1245202, 1, 0, 1245203, 1, 0, 1245204, 1, 0, 1245205, 1, 0, 1245206, 1, 0, 1245207, 1, 0, 1245208, 1, 0, 1245209, 1, 0, 1245210, 1, 0, 1245211, 1, 0, 1245212, 1, 0, 1245213, 1, 0, 1245214, 1, 0, 1245215, 1, 0, 1245216, 1, 0, 1245217, 1, 0, 1245218, 1, 0, 1245219, 3, 131076, 1245220, 3, 131078, 1245221, 3, 131080, 1245222, 3, 131078, 1245223, 3, 131080, 1245224, 3, 131080, 1245225, 3, 131078, 1245226, 3, 131080, 1245227, 3, 131080, 1245228, 3, 131080, 1245229, 3, 131080, 1245230, 3, 131078, 1245231, 3, 131078, 1245232, 3, 131078, 1245233, 3, 131080, 1245234, 3, 131078, 1245235, 3, 131080, 1245236, 3, 131078, 1245237, 3, 131078, 1245238, 3, 131080, 1245239, 3, 131080, 1245240, 3, 131080, 1245241, 3, 131078, 1245242, 3, 131078, 1245243, 3, 131078, 1245244, 3, 131077, 1376255, 3, 131076, 1310720, 3, 131078, 1310721, 3, 131077, 1310722, 1, 0, 1310723, 1, 0, 1310724, 1, 0, 1310725, 1, 0, 1310726, 1, 0, 1310727, 1, 0, 1310728, 1, 0, 1310729, 1, 0, 1310730, 3, 65538, 1310731, 1, 0, 1310732, 1, 0, 1310733, 1, 0, 1310734, 1, 0, 1310735, 1, 0, 1310736, 1, 0, 1310737, 1, 0, 1310738, 1, 0, 1310739, 1, 0, 1310740, 1, 0, 1310741, 1, 0, 1310742, 1, 0, 1310743, 1, 0, 1310744, 1, 0, 1310745, 1, 0, 1310746, 1, 0, 1310747, 1, 0, 1310748, 1, 0, 1310749, 1, 0, 1310750, 1, 0, 1310751, 1, 0, 1310752, 1, 0, 1310753, 1, 0, 1310754, 1, 0, 1310755, 3, 131076, 1310756, 3, 131078, 1310757, 3, 131078, 1310758, 3, 131080, 1310759, 3, 131080, 1310760, 3, 131078, 1310761, 3, 131080, 1310762, 3, 131080, 1310763, 3, 131078, 1310764, 3, 131080, 1310765, 3, 131078, 1310766, 3, 131078, 1310767, 3, 131080, 1310768, 3, 131078, 1310769, 3, 131080, 1310770, 3, 131078, 1310771, 3, 131080, 1310772, 3, 131078, 1310773, 3, 131080, 1310774, 3, 131078, 1310775, 3, 131080, 1310776, 3, 131080, 1310777, 3, 131080, 1310778, 3, 131078, 1310779, 3, 131078, 1310780, 3, 131077, 1441791, 3, 131076, 1376256, 3, 131078, 1376257, 3, 131077, 1376258, 1, 0, 1376259, 1, 0, 1376260, 1, 0, 1376261, 3, 65541, 1376262, 1, 0, 1376263, 1, 0, 1376264, 1, 0, 1376265, 1, 0, 1376266, 3, 65538, 1376267, 1, 0, 1376268, 1, 0, 1376269, 1, 0, 1376270, 1, 0, 1376271, 1, 0, 1376272, 1, 0, 1376273, 1, 0, 1376274, 1, 0, 1376275, 1, 0, 1376276, 1, 0, 1376277, 1, 0, 1376278, 1, 0, 1376279, 1, 0, 1376280, 1, 0, 1376281, 1, 0, 1376282, 1, 0, 1376283, 1, 0, 1376284, 1, 0, 1376285, 1, 0, 1376286, 1, 0, 1376287, 1, 0, 1376288, 1, 0, 1376289, 1, 0, 1376290, 1, 0, 1376291, 3, 131076, 1376292, 3, 131078, 1376293, 3, 131078, 1376294, 3, 131080, 1376295, 3, 131080, 1376296, 3, 131078, 1376297, 3, 131078, 1376298, 3, 131080, 1376299, 3, 131078, 1376300, 3, 131078, 1376301, 3, 131078, 1376302, 3, 131080, 1376303, 3, 131080, 1376304, 3, 131078, 1376305, 3, 131078, 1376306, 3, 131080, 1376307, 3, 131078, 1376308, 3, 131078, 1376309, 3, 131078, 1376310, 3, 131078, 1376311, 3, 131080, 1376312, 3, 131080, 1376313, 3, 131078, 1376314, 3, 131080, 1376315, 3, 131078, 1376316, 3, 131077, 1507327, 3, 131076, 1441792, 3, 131078, 1441793, 3, 131077, 1441794, 1, 0, 1441795, 1, 0, 1441796, 1, 0, 1441797, 3, 65538, 1441798, 1, 0, 1441799, 1, 0, 1441800, 1, 0, 1441801, 1, 0, 1441802, 3, 65539, 1441803, 3, 2, 1441804, 3, 2, 1441805, 3, 2, 1441806, 3, 2, 1441807, 3, 2, 1441808, 3, 5, 1441809, 1, 0, 1441810, 1, 0, 1441811, 1, 0, 1441812, 1, 0, 1441813, 1, 0, 1441814, 1, 0, 1441815, 1, 0, 1441816, 1, 0, 1441817, 1, 0, 1441818, 1, 0, 1441819, 1, 0, 1441820, 1, 0, 1441821, 1, 0, 1441822, 1, 0, 1441823, 1, 0, 1441824, 1, 0, 1441825, 1, 0, 1441826, 1, 0, 1441827, 3, 65543, 1441828, 3, 131073, 1441829, 3, 131080, 1441830, 3, 131078, 1441831, 3, 131078, 1441832, 3, 131078, 1441833, 3, 131078, 1441834, 3, 131078, 1441835, 3, 131078, 1441836, 3, 131078, 1441837, 3, 131078, 1441838, 3, 131078, 1441839, 3, 131080, 1441840, 3, 131080, 1441841, 3, 131078, 1441842, 3, 131080, 1441843, 3, 131080, 1441844, 3, 131078, 1441845, 3, 131080, 1441846, 3, 131078, 1441847, 3, 131078, 1441848, 3, 131080, 1441849, 3, 131080, 1441850, 3, 131078, 1441851, 3, 131080, 1441852, 3, 131077, 1572863, 3, 131076, 1507328, 3, 131078, 1507329, 3, 131077, 1507330, 1, 0, 1507331, 1, 0, 1507332, 1, 0, 1507333, 3, 65538, 1507334, 1, 0, 1507335, 1, 0, 1507336, 1, 0, 1507337, 1, 0, 1507338, 3, 65538, 1507339, 1, 0, 1507340, 1, 0, 1507341, 1, 0, 1507342, 1, 0, 1507343, 1, 0, 1507344, 1, 0, 1507345, 1, 0, 1507346, 1, 0, 1507347, 1, 0, 1507348, 1, 0, 1507349, 1, 0, 1507350, 1, 0, 1507351, 1, 0, 1507352, 1, 0, 1507353, 1, 0, 1507354, 1, 0, 1507355, 1, 0, 1507356, 1, 0, 1507357, 1, 0, 1507358, 1, 0, 1507359, 1, 0, 1507360, 1, 0, 1507361, 1, 0, 1507362, 1, 0, 1507364, 3, 65543, 1507365, 3, 196613, 1507366, 3, 131073, 1507367, 3, 131080, 1507368, 3, 131080, 1507369, 3, 131080, 1507370, 3, 131080, 1507371, 3, 131080, 1507372, 3, 131080, 1507373, 3, 131078, 1507374, 3, 131080, 1507375, 3, 131080, 1507376, 3, 131080, 1507377, 3, 131078, 1507378, 3, 131078, 1507379, 3, 131078, 1507380, 3, 131078, 1507381, 3, 131080, 1507382, 3, 131080, 1507383, 3, 131080, 1507384, 3, 131078, 1507385, 3, 131080, 1507386, 3, 131080, 1507387, 3, 131078, 1507388, 3, 131077, 1638398, 3, 0, 1638399, 3, 327684, 1572864, 3, 196613, 1572865, 3, 65544, 1572866, 1, 0, 1572867, 1, 0, 1572868, 1, 0, 1572869, 3, 65538, 1572870, 1, 0, 1572871, 1, 0, 1572872, 1, 0, 1572873, 1, 0, 1572874, 3, 65538, 1572875, 1, 0, 1572876, 1, 0, 1572877, 1, 0, 1572878, 1, 0, 1572879, 1, 0, 1572880, 1, 0, 1572881, 1, 0, 1572882, 1, 0, 1572883, 1, 0, 1572884, 1, 0, 1572885, 1, 0, 1572886, 1, 0, 1572887, 1, 0, 1572888, 1, 0, 1572889, 1, 0, 1572890, 1, 0, 1572891, 1, 0, 1572892, 1, 0, 1572893, 1, 0, 1572894, 1, 0, 1572895, 1, 0, 1572896, 1, 0, 1572897, 1, 0, 1572898, 1, 0, 1572902, 3, 131076, 1572903, 3, 131078, 1572904, 3, 131078, 1572905, 3, 131080, 1572906, 3, 131080, 1572907, 3, 131078, 1572908, 3, 131078, 1572909, 3, 131080, 1572910, 3, 131080, 1572911, 3, 131078, 1572912, 3, 131078, 1572913, 3, 131078, 1572914, 3, 131080, 1572915, 3, 131078, 1572916, 3, 131078, 1572917, 3, 131080, 1572918, 3, 131080, 1572919, 3, 131078, 1572920, 3, 131078, 1572921, 3, 131078, 1572922, 3, 131080, 1572923, 3, 131078, 1572924, 3, 131077, 1703934, 3, 65538, 1638402, 1, 0, 1638403, 1, 0, 1638404, 1, 0, 1638405, 3, 65538, 1638406, 1, 0, 1638407, 1, 0, 1638408, 1, 0, 1638409, 1, 0, 1638410, 3, 65538, 1638411, 1, 0, 1638412, 1, 0, 1638413, 1, 0, 1638414, 1, 0, 1638415, 1, 0, 1638416, 1, 0, 1638417, 1, 0, 1638418, 1, 0, 1638419, 1, 0, 1638420, 1, 0, 1638421, 1, 0, 1638422, 1, 0, 1638423, 1, 0, 1638424, 1, 0, 1638425, 1, 0, 1638426, 1, 0, 1638427, 1, 0, 1638428, 1, 0, 1638429, 1, 0, 1638430, 1, 0, 1638431, 1, 0, 1638432, 1, 0, 1638433, 1, 0, 1638434, 1, 0, 1638438, 3, 131076, 1638439, 3, 131078, 1638440, 3, 131080, 1638441, 3, 131080, 1638442, 3, 131078, 1638443, 3, 131078, 1638444, 3, 131078, 1638445, 3, 131080, 1638446, 3, 131078, 1638447, 3, 131080, 1638448, 3, 131078, 1638449, 3, 131080, 1638450, 3, 131078, 1638451, 3, 131078, 1638452, 3, 131078, 1638453, 3, 131078, 1638454, 3, 131078, 1638455, 3, 131080, 1638456, 3, 131078, 1638457, 3, 131078, 1638458, 3, 131078, 1638459, 3, 131080, 1638460, 3, 131077, 1769470, 3, 65536, 1769471, 3, 262148, 1703936, 3, 196612, 1703937, 3, 8, 1703938, 1, 0, 1703939, 1, 0, 1703940, 1, 0, 1703941, 3, 65538, 1703942, 1, 0, 1703943, 1, 0, 1703944, 1, 0, 1703945, 1, 0, 1703946, 3, 65538, 1703947, 1, 0, 1703948, 1, 0, 1703949, 1, 0, 1703950, 1, 0, 1703951, 1, 0, 1703952, 1, 0, 1703953, 1, 0, 1703954, 1, 0, 1703955, 1, 0, 1703956, 1, 0, 1703957, 1, 0, 1703958, 1, 0, 1703959, 1, 0, 1703960, 1, 0, 1703961, 1, 0, 1703962, 1, 0, 1703963, 1, 0, 1703964, 1, 0, 1703965, 1, 0, 1703966, 1, 0, 1703967, 1, 0, 1703968, 1, 0, 1703969, 1, 0, 1703970, 1, 0, 1703972, 3, 7, 1703973, 3, 196612, 1703974, 3, 196609, 1703975, 3, 131078, 1703976, 3, 131080, 1703977, 3, 131080, 1703978, 3, 131080, 1703979, 3, 131080, 1703980, 3, 131078, 1703981, 3, 131078, 1703982, 3, 131080, 1703983, 3, 131080, 1703984, 3, 131078, 1703985, 3, 131080, 1703986, 3, 131078, 1703987, 3, 131080, 1703988, 3, 131078, 1703989, 3, 131078, 1703990, 3, 131080, 1703991, 3, 131078, 1703992, 3, 131078, 1703993, 3, 131080, 1703994, 3, 131078, 1703995, 3, 131080, 1703996, 3, 131077, 1835007, 3, 131076, 1769472, 3, 131078, 1769473, 3, 131077, 1769474, 1, 0, 1769475, 1, 0, 1769476, 1, 0, 1769477, 3, 65538, 1769478, 1, 0, 1769479, 1, 0, 1769480, 1, 0, 1769481, 1, 0, 1769482, 3, 6, 1769483, 1, 0, 1769484, 1, 0, 1769485, 1, 0, 1769486, 1, 0, 1769487, 1, 0, 1769488, 1, 0, 1769489, 1, 0, 1769490, 1, 0, 1769491, 1, 0, 1769492, 1, 0, 1769493, 1, 0, 1769494, 1, 0, 1769495, 1, 0, 1769496, 1, 0, 1769497, 1, 0, 1769498, 1, 0, 1769499, 1, 0, 1769500, 1, 0, 1769501, 1, 0, 1769502, 1, 0, 1769503, 1, 0, 1769504, 1, 0, 1769505, 1, 0, 1769506, 1, 0, 1769507, 3, 7, 1769508, 3, 196609, 1769509, 3, 131080, 1769510, 3, 131080, 1769511, 3, 131080, 1769512, 3, 131078, 1769513, 3, 131078, 1769514, 3, 131078, 1769515, 3, 131078, 1769516, 3, 131078, 1769517, 3, 131080, 1769518, 3, 131078, 1769519, 3, 131078, 1769520, 3, 131080, 1769521, 3, 131080, 1769522, 3, 131080, 1769523, 3, 131080, 1769524, 3, 131080, 1769525, 3, 131078, 1769526, 3, 131078, 1769527, 3, 131080, 1769528, 3, 131078, 1769529, 3, 131078, 1769530, 3, 131078, 1769531, 3, 131080, 1769532, 3, 131077, 1900542, 3, 0, 1900543, 3, 327684, 1835008, 3, 196613, 1835009, 3, 65544, 1835010, 1, 0, 1835011, 1, 0, 1835012, 1, 0, 1835013, 3, 65538, 1835014, 1, 0, 1835015, 1, 0, 1835016, 1, 0, 1835017, 1, 0, 1835018, 1, 0, 1835019, 1, 0, 1835020, 1, 0, 1835021, 1, 0, 1835022, 1, 0, 1835023, 1, 0, 1835024, 1, 0, 1835025, 1, 0, 1835026, 1, 0, 1835027, 1, 0, 1835028, 1, 0, 1835029, 1, 0, 1835030, 1, 0, 1835031, 1, 0, 1835032, 1, 0, 1835033, 1, 0, 1835034, 1, 0, 1835035, 1, 0, 1835036, 1, 0, 1835037, 1, 0, 1835038, 1, 0, 1835039, 1, 0, 1835040, 1, 0, 1835041, 1, 0, 1835042, 1, 0, 1835043, 3, 65543, 1835044, 3, 131073, 1835045, 3, 131080, 1835046, 3, 131080, 1835047, 3, 131078, 1835048, 3, 131080, 1835049, 3, 131080, 1835050, 3, 131080, 1835051, 3, 131080, 1835052, 3, 131078, 1835053, 3, 131080, 1835054, 3, 131080, 1835055, 3, 131078, 1835056, 3, 131078, 1835057, 3, 131078, 1835058, 3, 131080, 1835059, 3, 131080, 1835060, 3, 131078, 1835061, 3, 131078, 1835062, 3, 131078, 1835063, 3, 131078, 1835064, 3, 131080, 1835065, 3, 131080, 1835066, 3, 131080, 1835067, 3, 131080, 1835068, 3, 131077, 1966078, 3, 65538, 1900546, 1, 0, 1900547, 1, 0, 1900548, 1, 0, 1900549, 3, 65538, 1900550, 1, 0, 1900551, 1, 0, 1900552, 1, 0, 1900553, 1, 0, 1900554, 3, 65541, 1900555, 1, 0, 1900556, 1, 0, 1900557, 1, 0, 1900558, 1, 0, 1900559, 1, 0, 1900560, 1, 0, 1900561, 1, 0, 1900562, 1, 0, 1900563, 1, 0, 1900564, 1, 0, 1900565, 1, 0, 1900566, 1, 0, 1900567, 1, 0, 1900568, 1, 0, 1900569, 1, 0, 1900570, 1, 0, 1900571, 1, 0, 1900572, 1, 0, 1900573, 1, 0, 1900574, 1, 0, 1900575, 1, 0, 1900576, 1, 0, 1900577, 1, 0, 1900578, 1, 0, 1900580, 3, 65543, 1900581, 3, 196613, 1900582, 3, 131073, 1900583, 3, 131080, 1900584, 3, 131080, 1900585, 3, 131080, 1900586, 3, 131080, 1900587, 3, 131080, 1900588, 3, 131080, 1900589, 3, 131080, 1900590, 3, 131080, 1900591, 3, 131078, 1900592, 3, 131080, 1900593, 3, 131080, 1900594, 3, 131080, 1900595, 3, 131078, 1900596, 3, 131080, 1900597, 3, 131080, 1900598, 3, 131080, 1900599, 3, 131080, 1900600, 3, 131078, 1900601, 3, 131078, 1900602, 3, 131080, 1900603, 3, 131078, 1900604, 3, 131077, 2031614, 3, 65536, 2031615, 3, 262148, 1966080, 3, 196612, 1966081, 3, 8, 1966082, 1, 0, 1966083, 1, 0, 1966084, 1, 0, 1966085, 3, 6, 1966086, 1, 0, 1966087, 1, 0, 1966088, 1, 0, 1966089, 1, 0, 1966090, 3, 65538, 1966091, 1, 0, 1966092, 1, 0, 1966093, 1, 0, 1966094, 1, 0, 1966095, 1, 0, 1966096, 1, 0, 1966097, 1, 0, 1966098, 1, 0, 1966099, 1, 0, 1966100, 1, 0, 1966101, 1, 0, 1966102, 1, 0, 1966103, 1, 0, 1966104, 1, 0, 1966105, 1, 0, 1966106, 1, 0, 1966107, 1, 0, 1966108, 1, 0, 1966109, 1, 0, 1966110, 1, 0, 1966111, 1, 0, 1966112, 1, 0, 1966113, 1, 0, 1966114, 1, 0, 1966118, 3, 131076, 1966119, 3, 131078, 1966120, 3, 131078, 1966121, 3, 131080, 1966122, 3, 131078, 1966123, 3, 131078, 1966124, 3, 131080, 1966125, 3, 131078, 1966126, 3, 131080, 1966127, 3, 131080, 1966128, 3, 131078, 1966129, 3, 131078, 1966130, 3, 131080, 1966131, 3, 131078, 1966132, 3, 131080, 1966133, 3, 131078, 1966134, 3, 131080, 1966135, 3, 131078, 1966136, 3, 131078, 1966137, 3, 131080, 1966138, 3, 131080, 1966139, 3, 131078, 1966140, 3, 131077, 2097151, 3, 131076, 2031616, 3, 131078, 2031617, 3, 131077, 2031618, 1, 0, 2031619, 1, 0, 2031620, 1, 0, 2031621, 1, 0, 2031622, 1, 0, 2031623, 1, 0, 2031624, 1, 0, 2031625, 1, 0, 2031626, 3, 65538, 2031627, 1, 0, 2031628, 1, 0, 2031629, 1, 0, 2031630, 1, 0, 2031631, 1, 0, 2031632, 1, 0, 2031633, 1, 0, 2031634, 1, 0, 2031635, 1, 0, 2031636, 1, 0, 2031637, 1, 0, 2031638, 1, 0, 2031639, 1, 0, 2031640, 1, 0, 2031641, 1, 0, 2031642, 1, 0, 2031643, 1, 0, 2031644, 1, 0, 2031645, 1, 0, 2031646, 1, 0, 2031647, 1, 0, 2031648, 1, 0, 2031649, 1, 0, 2031650, 1, 0, 2031654, 3, 131076, 2031655, 3, 131080, 2031656, 3, 131080, 2031657, 3, 131078, 2031658, 3, 131080, 2031659, 3, 131078, 2031660, 3, 131078, 2031661, 3, 131080, 2031662, 3, 131080, 2031663, 3, 131080, 2031664, 3, 131080, 2031665, 3, 131080, 2031666, 3, 131080, 2031667, 3, 131078, 2031668, 3, 131078, 2031669, 3, 131078, 2031670, 3, 131078, 2031671, 3, 131078, 2031672, 3, 131080, 2031673, 3, 131078, 2031674, 3, 131078, 2031675, 3, 131080, 2031676, 3, 131077, 2162686, 3, 0, 2162687, 3, 327684, 2097152, 3, 196613, 2097153, 3, 65544, 2097154, 1, 0, 2097155, 1, 0, 2097156, 1, 0, 2097157, 1, 0, 2097158, 1, 0, 2097159, 1, 0, 2097160, 1, 0, 2097161, 3, 65542, 2097162, 3, 131079, 2097163, 3, 5, 2097164, 1, 0, 2097165, 1, 0, 2097166, 1, 0, 2097167, 1, 0, 2097168, 1, 0, 2097169, 1, 0, 2097170, 1, 0, 2097171, 1, 0, 2097172, 1, 0, 2097173, 1, 0, 2097174, 1, 0, 2097175, 1, 0, 2097176, 1, 0, 2097177, 1, 0, 2097178, 1, 0, 2097179, 1, 0, 2097180, 1, 0, 2097181, 1, 0, 2097182, 1, 0, 2097183, 1, 0, 2097184, 1, 0, 2097185, 1, 0, 2097186, 1, 0, 2097188, 3, 7, 2097189, 3, 196612, 2097190, 3, 196609, 2097191, 3, 131078, 2097192, 3, 131080, 2097193, 3, 131080, 2097194, 3, 131078, 2097195, 3, 131080, 2097196, 3, 131078, 2097197, 3, 131080, 2097198, 3, 131078, 2097199, 3, 131078, 2097200, 3, 131078, 2097201, 3, 131078, 2097202, 3, 131078, 2097203, 3, 131078, 2097204, 3, 131080, 2097205, 3, 131078, 2097206, 3, 131078, 2097207, 3, 131078, 2097208, 3, 131080, 2097209, 3, 131080, 2097210, 3, 131078, 2097211, 3, 131078, 2097212, 3, 131077, 2228222, 3, 65538, 2162690, 1, 0, 2162691, 1, 0, 2162692, 1, 0, 2162693, 1, 0, 2162694, 1, 0, 2162695, 1, 0, 2162696, 1, 0, 2162697, 1, 0, 2162698, 3, 65538, 2162699, 1, 0, 2162700, 1, 0, 2162701, 1, 0, 2162702, 1, 0, 2162703, 1, 0, 2162704, 1, 0, 2162705, 1, 0, 2162706, 1, 0, 2162707, 1, 0, 2162708, 1, 0, 2162709, 1, 0, 2162710, 1, 0, 2162711, 1, 0, 2162712, 1, 0, 2162713, 1, 0, 2162714, 1, 0, 2162715, 1, 0, 2162716, 1, 0, 2162717, 1, 0, 2162718, 1, 0, 2162719, 1, 0, 2162720, 1, 0, 2162721, 1, 0, 2162722, 1, 0, 2162723, 3, 7, 2162724, 3, 196609, 2162725, 3, 131078, 2162726, 3, 131078, 2162727, 3, 131080, 2162728, 3, 131078, 2162729, 3, 131078, 2162730, 3, 131078, 2162731, 3, 131080, 2162732, 3, 131080, 2162733, 3, 131080, 2162734, 3, 131080, 2162735, 3, 131078, 2162736, 3, 131078, 2162737, 3, 131080, 2162738, 3, 131080, 2162739, 3, 131080, 2162740, 3, 131080, 2162741, 3, 131078, 2162742, 3, 131080, 2162743, 3, 131078, 2162744, 3, 131080, 2162745, 3, 131080, 2162746, 3, 131078, 2162747, 3, 131078, 2162748, 3, 131077, 2293758, 3, 65536, 2293759, 3, 262148, 2228224, 3, 196612, 2228225, 3, 8, 2228226, 1, 0, 2228227, 1, 0, 2228228, 1, 0, 2228229, 1, 0, 2228230, 1, 0, 2228231, 1, 0, 2228232, 1, 0, 2228233, 1, 0, 2228234, 3, 65539, 2228235, 3, 2, 2228236, 3, 5, 2228237, 1, 0, 2228238, 1, 0, 2228239, 1, 0, 2228240, 1, 0, 2228241, 1, 0, 2228242, 1, 0, 2228243, 1, 0, 2228244, 1, 0, 2228245, 1, 0, 2228246, 1, 0, 2228247, 1, 0, 2228248, 1, 0, 2228249, 1, 0, 2228250, 1, 0, 2228251, 1, 0, 2228252, 1, 0, 2228253, 1, 0, 2228254, 1, 0, 2228255, 1, 0, 2228256, 1, 0, 2228257, 1, 0, 2228258, 1, 0, 2228259, 3, 131076, 2228260, 3, 131078, 2228261, 3, 131080, 2228262, 3, 131078, 2228263, 3, 131080, 2228264, 3, 131078, 2228265, 3, 131078, 2228266, 3, 131078, 2228267, 3, 131080, 2228268, 3, 131080, 2228269, 3, 131080, 2228270, 3, 131080, 2228271, 3, 131078, 2228272, 3, 131078, 2228273, 3, 131078, 2228274, 3, 131080, 2228275, 3, 131080, 2228276, 3, 131080, 2228277, 3, 131080, 2228278, 3, 131080, 2228279, 3, 131078, 2228280, 3, 131080, 2228281, 3, 131080, 2228282, 3, 131080, 2228283, 3, 131078, 2228284, 3, 131077, 2359295, 3, 131076, 2293760, 3, 131078, 2293761, 3, 131077, 2293762, 1, 0, 2293763, 1, 0, 2293764, 1, 0, 2293765, 1, 0, 2293766, 1, 0, 2293767, 1, 0, 2293768, 1, 0, 2293769, 1, 0, 2293770, 3, 6, 2293771, 1, 0, 2293772, 1, 0, 2293773, 1, 0, 2293774, 1, 0, 2293775, 1, 0, 2293776, 1, 0, 2293777, 1, 0, 2293778, 1, 0, 2293779, 1, 0, 2293780, 1, 0, 2293781, 1, 0, 2293782, 1, 0, 2293783, 1, 0, 2293784, 1, 0, 2293785, 1, 0, 2293786, 1, 0, 2293787, 1, 0, 2293788, 1, 0, 2293789, 1, 0, 2293790, 1, 0, 2293791, 1, 0, 2293792, 1, 0, 2293793, 1, 0, 2293794, 1, 0, 2293795, 3, 65543, 2293796, 3, 196613, 2293797, 3, 196613, 2293798, 3, 131073, 2293799, 3, 131080, 2293800, 3, 131078, 2293801, 3, 131078, 2293802, 3, 131080, 2293803, 3, 131078, 2293804, 3, 131078, 2293805, 3, 131080, 2293806, 3, 131080, 2293807, 3, 131080, 2293808, 3, 131080, 2293809, 3, 131080, 2293810, 3, 131080, 2293811, 3, 131080, 2293812, 3, 131080, 2293813, 3, 131080, 2293814, 3, 131078, 2293815, 3, 131080, 2293816, 3, 131078, 2293817, 3, 131080, 2293818, 3, 131078, 2293819, 3, 131080, 2293820, 3, 131077, 2424831, 3, 131076, 2359296, 3, 131078, 2359297, 3, 131077, 2359298, 1, 0, 2359299, 1, 0, 2359300, 1, 0, 2359301, 3, 65541, 2359302, 1, 0, 2359303, 1, 0, 2359304, 1, 0, 2359305, 1, 0, 2359306, 1, 0, 2359307, 1, 0, 2359308, 1, 0, 2359309, 1, 0, 2359310, 1, 0, 2359311, 1, 0, 2359312, 1, 0, 2359313, 1, 0, 2359314, 1, 0, 2359315, 1, 0, 2359316, 1, 0, 2359317, 1, 0, 2359318, 1, 0, 2359319, 1, 0, 2359320, 1, 0, 2359321, 1, 0, 2359322, 1, 0, 2359323, 1, 0, 2359324, 1, 0, 2359325, 1, 0, 2359326, 1, 0, 2359327, 1, 0, 2359328, 1, 0, 2359329, 1, 0, 2359330, 1, 0, 2359334, 3, 131076, 2359335, 3, 131078, 2359336, 3, 131078, 2359337, 3, 131080, 2359338, 3, 131080, 2359339, 3, 131078, 2359340, 3, 131080, 2359341, 3, 131080, 2359342, 3, 131078, 2359343, 3, 131080, 2359344, 3, 131078, 2359345, 3, 131078, 2359346, 3, 131080, 2359347, 3, 131080, 2359348, 3, 131078, 2359349, 3, 131078, 2359350, 3, 131078, 2359351, 3, 131080, 2359352, 3, 131080, 2359353, 3, 131080, 2359354, 3, 131080, 2359355, 3, 131078, 2359356, 3, 131077, 2490367, 3, 131076, 2424832, 3, 131078, 2424833, 3, 131077, 2424834, 1, 0, 2424835, 1, 0, 2424836, 1, 0, 2424837, 3, 65538, 2424838, 1, 0, 2424839, 1, 0, 2424840, 1, 0, 2424841, 1, 0, 2424842, 1, 0, 2424843, 1, 0, 2424844, 1, 0, 2424845, 1, 0, 2424846, 1, 0, 2424847, 1, 0, 2424848, 1, 0, 2424849, 1, 0, 2424850, 1, 0, 2424851, 1, 0, 2424852, 1, 0, 2424853, 1, 0, 2424854, 1, 0, 2424855, 1, 0, 2424856, 1, 0, 2424857, 1, 0, 2424858, 1, 0, 2424859, 1, 0, 2424860, 1, 0, 2424861, 1, 0, 2424862, 1, 0, 2424863, 1, 0, 2424864, 1, 0, 2424865, 1, 0, 2424866, 1, 0, 2424870, 3, 131076, 2424871, 3, 131080, 2424872, 3, 131080, 2424873, 3, 131078, 2424874, 3, 131078, 2424875, 3, 131078, 2424876, 3, 131080, 2424877, 3, 131080, 2424878, 3, 131078, 2424879, 3, 131080, 2424880, 3, 131080, 2424881, 3, 131080, 2424882, 3, 131078, 2424883, 3, 131078, 2424884, 3, 131078, 2424885, 3, 131080, 2424886, 3, 131078, 2424887, 3, 131080, 2424888, 3, 131080, 2424889, 3, 131080, 2424890, 3, 131080, 2424891, 3, 131078, 2424892, 3, 131077, 2555903, 3, 131076, 2490368, 3, 131078, 2490369, 3, 131077, 2490370, 1, 0, 2490371, 1, 0, 2490372, 1, 0, 2490373, 3, 65538, 2490374, 1, 0, 2490375, 1, 0, 2490376, 1, 0, 2490377, 1, 0, 2490378, 1, 0, 2490379, 1, 0, 2490380, 1, 0, 2490381, 1, 0, 2490382, 1, 0, 2490383, 1, 0, 2490384, 1, 0, 2490385, 1, 0, 2490386, 1, 0, 2490387, 1, 0, 2490388, 1, 0, 2490389, 1, 0, 2490390, 1, 0, 2490391, 1, 0, 2490392, 1, 0, 2490393, 1, 0, 2490394, 1, 0, 2490395, 1, 0, 2490396, 1, 0, 2490397, 1, 0, 2490398, 1, 0, 2490399, 1, 0, 2490400, 1, 0, 2490401, 1, 0, 2490402, 1, 0, 2490403, 3, 7, 2490404, 3, 196612, 2490405, 3, 196612, 2490406, 3, 196609, 2490407, 3, 131080, 2490408, 3, 131080, 2490409, 3, 131078, 2490410, 3, 131078, 2490411, 3, 131078, 2490412, 3, 131078, 2490413, 3, 131080, 2490414, 3, 131078, 2490415, 3, 131078, 2490416, 3, 131078, 2490417, 3, 131080, 2490418, 3, 131078, 2490419, 3, 131078, 2490420, 3, 131078, 2490421, 3, 131080, 2490422, 3, 131080, 2490423, 3, 131078, 2490424, 3, 131078, 2490425, 3, 131080, 2490426, 3, 131080, 2490427, 3, 131078, 2490428, 3, 131077, 2621439, 3, 131076, 2555904, 3, 131078, 2555905, 3, 131077, 2555906, 1, 0, 2555907, 1, 0, 2555908, 1, 0, 2555909, 3, 262146, 2555910, 3, 196612, 2555911, 3, 196612, 2555912, 3, 196612, 2555913, 3, 196612, 2555914, 3, 196612, 2555915, 3, 196612, 2555916, 3, 196612, 2555917, 3, 196612, 2555918, 3, 196612, 2555919, 3, 196612, 2555920, 3, 196612, 2555921, 3, 196612, 2555922, 3, 196612, 2555923, 3, 196612, 2555924, 3, 196612, 2555925, 3, 196612, 2555926, 3, 196612, 2555927, 3, 196612, 2555928, 3, 196612, 2555929, 3, 196612, 2555930, 3, 196612, 2555931, 3, 196612, 2555932, 3, 196612, 2555933, 3, 196612, 2555934, 3, 196612, 2555935, 3, 196612, 2555936, 3, 196612, 2555937, 3, 196612, 2555938, 3, 196612, 2555939, 3, 196609, 2555940, 3, 131078, 2555941, 3, 131078, 2555942, 3, 131078, 2555943, 3, 131080, 2555944, 3, 131080, 2555945, 3, 131078, 2555946, 3, 131080, 2555947, 3, 131078, 2555948, 3, 131078, 2555949, 3, 131080, 2555950, 3, 131078, 2555951, 3, 131078, 2555952, 3, 131080, 2555953, 3, 131080, 2555954, 3, 131078, 2555955, 3, 131078, 2555956, 3, 131080, 2555957, 3, 131078, 2555958, 3, 131080, 2555959, 3, 131078, 2555960, 3, 131080, 2555961, 3, 131078, 2555962, 3, 131078, 2555963, 3, 131078, 2555964, 3, 131077, 2686975, 3, 131076, 2621440, 3, 131078, 2621441, 3, 196608, 2621442, 3, 196612, 2621443, 3, 196612, 2621444, 3, 196612, 2621445, 3, 196609, 2621446, 3, 131078, 2621447, 3, 131080, 2621448, 3, 131080, 2621449, 3, 131080, 2621450, 3, 131080, 2621451, 3, 131080, 2621452, 3, 131078, 2621453, 3, 131080, 2621454, 3, 131080, 2621455, 3, 131078, 2621456, 3, 131078, 2621457, 3, 131080, 2621458, 3, 131078, 2621459, 3, 131078, 2621460, 3, 131078, 2621461, 3, 131080, 2621462, 3, 131080, 2621463, 3, 131078, 2621464, 3, 131080, 2621465, 3, 131078, 2621466, 3, 131080, 2621467, 3, 131080, 2621468, 3, 131080, 2621469, 3, 131078, 2621470, 3, 131078, 2621471, 3, 131078, 2621472, 3, 131080, 2621473, 3, 131078, 2621474, 3, 131078, 2621475, 3, 131080, 2621476, 3, 131080, 2621477, 3, 131078, 2621478, 3, 131080, 2621479, 3, 131080, 2621480, 3, 131078, 2621481, 3, 131078, 2621482, 3, 131080, 2621483, 3, 131080, 2621484, 3, 131080, 2621485, 3, 131080, 2621486, 3, 131080, 2621487, 3, 131080, 2621488, 3, 131080, 2621489, 3, 131080, 2621490, 3, 131080, 2621491, 3, 131080, 2621492, 3, 131080, 2621493, 3, 131078, 2621494, 3, 131080, 2621495, 3, 131080, 2621496, 3, 131080, 2621497, 3, 131080, 2621498, 3, 131080, 2621499, 3, 131078, 2621500, 3, 131077, 2752511, 3, 131076, 2686976, 3, 131078, 2686977, 3, 131080, 2686978, 3, 131080, 2686979, 3, 131078, 2686980, 3, 131080, 2686981, 3, 131080, 2686982, 3, 131078, 2686983, 3, 131080, 2686984, 3, 131078, 2686985, 3, 131080, 2686986, 3, 131078, 2686987, 3, 131080, 2686988, 3, 131080, 2686989, 3, 131080, 2686990, 3, 131080, 2686991, 3, 131080, 2686992, 3, 131078, 2686993, 3, 131080, 2686994, 3, 131080, 2686995, 3, 131080, 2686996, 3, 131078, 2686997, 3, 131080, 2686998, 3, 131078, 2686999, 3, 131078, 2687000, 3, 131078, 2687001, 3, 131078, 2687002, 3, 131078, 2687003, 3, 131080, 2687004, 3, 131078, 2687005, 3, 131080, 2687006, 3, 131078, 2687007, 3, 131078, 2687008, 3, 131080, 2687009, 3, 131080, 2687010, 3, 131080, 2687011, 3, 131080, 2687012, 3, 131078, 2687013, 3, 131078, 2687014, 3, 131080, 2687015, 3, 131080, 2687016, 3, 131080, 2687017, 3, 131080, 2687018, 3, 131078, 2687019, 3, 131078, 2687020, 3, 131078, 2687021, 3, 131078, 2687022, 3, 131080, 2687023, 3, 131080, 2687024, 3, 131078, 2687025, 3, 131080, 2687026, 3, 131080, 2687027, 3, 131078, 2687028, 3, 131080, 2687029, 3, 131080, 2687030, 3, 131078, 2687031, 3, 131080, 2687032, 3, 131080, 2687033, 3, 131078, 2687034, 3, 131080, 2687035, 3, 131078, 2687036, 3, 131077, 2818047, 3, 131076, 2752512, 3, 131078, 2752513, 3, 131080, 2752514, 3, 131080, 2752515, 3, 131078, 2752516, 3, 131080, 2752517, 3, 131078, 2752518, 3, 131078, 2752519, 3, 131078, 2752520, 3, 131078, 2752521, 3, 131080, 2752522, 3, 131078, 2752523, 3, 131078, 2752524, 3, 131080, 2752525, 3, 131078, 2752526, 3, 131080, 2752527, 3, 131080, 2752528, 3, 131078, 2752529, 3, 131078, 2752530, 3, 131080, 2752531, 3, 131080, 2752532, 3, 131080, 2752533, 3, 131080, 2752534, 3, 131080, 2752535, 3, 131078, 2752536, 3, 131078, 2752537, 3, 131080, 2752538, 3, 131078, 2752539, 3, 131080, 2752540, 3, 131078, 2752541, 3, 131080, 2752542, 3, 131078, 2752543, 3, 131080, 2752544, 3, 131080, 2752545, 3, 131080, 2752546, 3, 131078, 2752547, 3, 131080, 2752548, 3, 131078, 2752549, 3, 131078, 2752550, 3, 131080, 2752551, 3, 131078, 2752552, 3, 131080, 2752553, 3, 131078, 2752554, 3, 131080, 2752555, 3, 131078, 2752556, 3, 131080, 2752557, 3, 131080, 2752558, 3, 131080, 2752559, 3, 131078, 2752560, 3, 131080, 2752561, 3, 131078, 2752562, 3, 131080, 2752563, 3, 131080, 2752564, 3, 131078, 2752565, 3, 131080, 2752566, 3, 131078, 2752567, 3, 131078, 2752568, 3, 131078, 2752569, 3, 131078, 2752570, 3, 131080, 2752571, 3, 131080, 2752572, 3, 131077, 2883583, 3, 131076, 2818048, 3, 131078, 2818049, 3, 131078, 2818050, 3, 131080, 2818051, 3, 131080, 2818052, 3, 131078, 2818053, 3, 131078, 2818054, 3, 131078, 2818055, 3, 131078, 2818056, 3, 131078, 2818057, 3, 131078, 2818058, 3, 131080, 2818059, 3, 131080, 2818060, 3, 131080, 2818061, 3, 131080, 2818062, 3, 131080, 2818063, 3, 131078, 2818064, 3, 131080, 2818065, 3, 131078, 2818066, 3, 131078, 2818067, 3, 131078, 2818068, 3, 131080, 2818069, 3, 131078, 2818070, 3, 131078, 2818071, 3, 131080, 2818072, 3, 131080, 2818073, 3, 131078, 2818074, 3, 131080, 2818075, 3, 131080, 2818076, 3, 131080, 2818077, 3, 131080, 2818078, 3, 131080, 2818079, 3, 131078, 2818080, 3, 131080, 2818081, 3, 131080, 2818082, 3, 131080, 2818083, 3, 131078, 2818084, 3, 131078, 2818085, 3, 131078, 2818086, 3, 131080, 2818087, 3, 131080, 2818088, 3, 131080, 2818089, 3, 131080, 2818090, 3, 131078, 2818091, 3, 131080, 2818092, 3, 131078, 2818093, 3, 131080, 2818094, 3, 131078, 2818095, 3, 131078, 2818096, 3, 131080, 2818097, 3, 131080, 2818098, 3, 131078, 2818099, 3, 131080, 2818100, 3, 131078, 2818101, 3, 131080, 2818102, 3, 131080, 2818103, 3, 131080, 2818104, 3, 131078, 2818105, 3, 131078, 2818106, 3, 131080, 2818107, 3, 131078, 2818108, 3, 131077, 2949119, 3, 131076, 2883584, 3, 131078, 2883585, 3, 131080, 2883586, 3, 131078, 2883587, 3, 131078, 2883588, 3, 131078, 2883589, 3, 131078, 2883590, 3, 131080, 2883591, 3, 131078, 2883592, 3, 131080, 2883593, 3, 131080, 2883594, 3, 131078, 2883595, 3, 131078, 2883596, 3, 131080, 2883597, 3, 131080, 2883598, 3, 131078, 2883599, 3, 131078, 2883600, 3, 131080, 2883601, 3, 131080, 2883602, 3, 131080, 2883603, 3, 131080, 2883604, 3, 131078, 2883605, 3, 131078, 2883606, 3, 131080, 2883607, 3, 131080, 2883608, 3, 131078, 2883609, 3, 131080, 2883610, 3, 131078, 2883611, 3, 131078, 2883612, 3, 131078, 2883613, 3, 131080, 2883614, 3, 131078, 2883615, 3, 131078, 2883616, 3, 131080, 2883617, 3, 131080, 2883618, 3, 131080, 2883619, 3, 131080, 2883620, 3, 131078, 2883621, 3, 131078, 2883622, 3, 131080, 2883623, 3, 131078, 2883624, 3, 131078, 2883625, 3, 131078, 2883626, 3, 131078, 2883627, 3, 131078, 2883628, 3, 131078, 2883629, 3, 131080, 2883630, 3, 131080, 2883631, 3, 131080, 2883632, 3, 131078, 2883633, 3, 131078, 2883634, 3, 131080, 2883635, 3, 131078, 2883636, 3, 131078, 2883637, 3, 131080, 2883638, 3, 131078, 2883639, 3, 131078, 2883640, 3, 131078, 2883641, 3, 131078, 2883642, 3, 131078, 2883643, 3, 131080, 2883644, 3, 131077, 3014655, 3, 65543, 2949120, 3, 196613, 2949121, 3, 196613, 2949122, 3, 196613, 2949123, 3, 196613, 2949124, 3, 196613, 2949125, 3, 196613, 2949126, 3, 196613, 2949127, 3, 196613, 2949128, 3, 196613, 2949129, 3, 196613, 2949130, 3, 196613, 2949131, 3, 196613, 2949132, 3, 196613, 2949133, 3, 196613, 2949134, 3, 196613, 2949135, 3, 196613, 2949136, 3, 196613, 2949137, 3, 196613, 2949138, 3, 196613, 2949139, 3, 196613, 2949140, 3, 196613, 2949141, 3, 196613, 2949142, 3, 196613, 2949143, 3, 196613, 2949144, 3, 196613, 2949145, 3, 196613, 2949146, 3, 196613, 2949147, 3, 196613, 2949148, 3, 196613, 2949149, 3, 196613, 2949150, 3, 196613, 2949151, 3, 196613, 2949152, 3, 196613, 2949153, 3, 196613, 2949154, 3, 196613, 2949155, 3, 196613, 2949156, 3, 196613, 2949157, 3, 196613, 2949158, 3, 196613, 2949159, 3, 196613, 2949160, 3, 196613, 2949161, 3, 196613, 2949162, 3, 196613, 2949163, 3, 196613, 2949164, 3, 196613, 2949165, 3, 196613, 2949166, 3, 196613, 2949167, 3, 196613, 2949168, 3, 196613, 2949169, 3, 196613, 2949170, 3, 196613, 2949171, 3, 196613, 2949172, 3, 196613, 2949173, 3, 196613, 2949174, 3, 196613, 2949175, 3, 196613, 2949176, 3, 196613, 2949177, 3, 196613, 2949178, 3, 196613, 2949179, 3, 196613, 2949180, 3, 65544 ) __meta__ = { "_edit_lock_": true } @@ -75,172 +58,72 @@ material = SubResource( 1 ) tile_set = ExtResource( 19 ) cell_size = Vector2( 8, 8 ) format = 1 -tile_data = PoolIntArray( 458753, 0, 0, 458754, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 458762, 0, 0, 458763, 0, 0, 458764, -1610612736, 0, 458765, -1610612736, 0, 458766, -1610612736, 0, 458767, -1610612736, 0, 458768, -1610612736, 0, 458769, -1610612736, 0, 524291, 0, 0, 524292, 0, 0, 524293, 0, 0, 524294, 0, 0, 524295, 0, 0, 524296, 0, 0, 524299, 0, 0, 524300, 0, 0, 524301, -1610612736, 0, 524302, -1610612736, 0, 524303, -1610612736, 0, 524304, -1610612736, 0, 524305, -1610612736, 0, 589825, 0, 0, 589837, -1610612736, 0, 589838, -1610612736, 0, 589839, -1610612736, 0, 589840, -1610612736, 0, 589841, -1610612736, 0, 655373, -1610612736, 0, 655374, -1610612736, 0, 655375, -1610612736, 0, 655376, -1610612736, 0, 655377, -1610612736, 0, 720897, 0, 0, 720909, -1610612736, 0, 720910, -1610612736, 0, 720911, -1610612736, 0, 720912, -1610612736, 0, 720913, -1610612736, 0, 786445, -1610612736, 0, 786446, -1610612736, 0, 786447, -1610612736, 0, 786448, -1610612736, 0, 786449, -1610612736, 0, 851969, 0, 0, 851980, -1610612736, 0, 851981, -1610612736, 0, 851982, -1610612736, 0, 851983, -1610612736, 0, 851984, -1610612736, 0, 851985, -1610612736, 0, 917516, -1610612736, 0, 917517, -1610612736, 0, 917518, -1610612736, 0, 917519, -1610612736, 0, 917520, -1610612736, 0, 917521, -1610612736, 0, 917522, 1610612736, 0, 983041, 0, 0, 983052, -1610612736, 0, 983053, -1610612736, 0, 983054, -1610612736, 0, 983055, -1610612736, 0, 983056, -1610612736, 0, 983057, -1610612736, 0, 983058, 1610612736, 0, 1048588, -1610612736, 0, 1048589, -1610612736, 0, 1048590, -1610612736, 0, 1048591, -1610612736, 0, 1048592, -1610612736, 0, 1048593, -1610612736, 0, 1048594, 1610612736, 0, 1048601, 0, 0, 1048602, -1610612736, 0, 1114113, 0, 0, 1114124, -1610612736, 0, 1114125, -1610612736, 0, 1114126, -1610612736, 0, 1114127, -1610612736, 0, 1114128, -1610612736, 0, 1114129, -1610612736, 0, 1114137, -1073741824, 0, 1114138, 0, 0, 1114139, 0, 0, 1114140, 0, 0, 1114141, 0, 0, 1114142, -1610612736, 0, 1179660, -1610612736, 0, 1179661, -1610612736, 0, 1179662, -1610612736, 0, 1179663, -1610612736, 0, 1179664, -1610612736, 0, 1179665, -1610612736, 0, 1179673, -1073741824, 0, 1179674, -1610612734, 0, 1179675, -1610612735, 0, 1179676, 1610612736, 0, 1179677, 1610612736, 0, 1179678, -1610612736, 0, 1245185, 0, 0, 1245196, -1610612736, 0, 1245197, 1, 0, 1245198, 1, 0, 1245199, 1, 0, 1245200, 1, 0, 1245201, 1, 0, 1245202, 1, 0, 1245203, 1, 0, 1245204, 1, 0, 1245205, 1, 0, 1245206, 1, 0, 1245209, -1073741824, 0, 1245210, -1610612734, 0, 1245211, -1610612735, 0, 1245213, -1073741824, 0, 1245214, 0, 0, 1245215, 0, 0, 1245216, -1610612736, 0, 1310732, 3, 0, 1310733, 3, 0, 1310734, 3, 0, 1310735, 3, 0, 1310736, 3, 0, 1310737, 3, 0, 1310738, 3, 0, 1310739, 3, 0, 1310740, 3, 0, 1310741, 3, 0, 1310742, 3, 0, 1310745, -1073741824, 0, 1310746, -1610612734, 0, 1310747, -1610612735, 0, 1310749, -1073741824, 0, 1310750, -1610612736, 0, 1310751, 1610612736, 0, 1310752, -1610612736, 0, 1376257, 0, 0, 1376268, 2, 0, 1376269, 2, 0, 1376270, 2, 0, 1376271, 2, 0, 1376272, 2, 0, 1376273, 2, 0, 1376274, 2, 0, 1376275, 2, 0, 1376276, 2, 0, 1376277, 2, 0, 1376278, 2, 0, 1376281, -1073741824, 0, 1376282, -1610612734, 0, 1376283, -1610612735, 0, 1376285, -1073741824, 0, 1376286, 1610612736, 0, 1376287, -1073741824, 0, 1376288, 1610612736, 0, 1441817, -1073741824, 0, 1441818, 1610612736, 0, 1441819, 1610612736, 0, 1507329, 0, 0, 1572890, -1610612736, 0, 1572891, 1610612738, 0, 1572892, 1610612738, 0, 1638401, 0, 0, 1638425, 1, 0, 1638426, 1, 0, 1638427, 1610612739, 0, 1638428, 1610612739, 0, 1703957, -1610612736, 0, 1703961, 3, 0, 1703962, 3, 0, 1703963, 1610612739, 0, 1703964, 1610612739, 0, 1769473, 0, 0, 1769493, -1610612736, 0, 1769497, 2, 0, 1769498, 2, 0, 1769499, 1610612739, 0, 1769500, 1610612739, 0, 1835027, 0, 0, 1835028, 0, 0, 1835030, 1610612736, 0, 1835031, 1610612736, 0, 1835034, -1073741824, 0, 1835035, 1610612737, 0, 1835036, 1610612737, 0, 1900545, 0, 0, 1900565, -1073741824, 0, 1966101, -1073741824, 0, 2031617, 0, 0, 2162689, 0, 0, 2162690, 0, 0, 2162691, -1610612736, 0, 2228227, -1610612736, 0, 2293763, -1610612736, 0, 2359299, -1610612736, 0, 2424835, -1610612736, 0, 2424839, 0, 0, 2424840, -1610612736, 0, 2424841, -1610612736, 0, 2490371, -1610612736, 0, 2490372, -1073741820, 0, 2490376, 0, 0, 2490377, 0, 0, 2490378, 0, 0, 2490379, 0, 0, 2490380, 0, 0, 2490381, 0, 0, 2490382, 0, 0, 2490383, 0, 0, 2490395, 1, 0, 2490396, 1, 0, 2490397, 1, 0, 2490398, 1, 0, 2490399, 1, 0, 2490400, 1, 0, 2490401, 1, 0, 2490402, 1, 0, 2490403, 1, 0, 2555907, -1610612736, 0, 2555908, -1073741820, 0, 2555924, 0, 0, 2555925, 0, 0, 2555926, 0, 0, 2555931, 2, 0, 2555932, 2, 0, 2555933, 2, 0, 2555934, 2, 0, 2555935, 2, 0, 2555936, 2, 0, 2555937, 2, 0, 2555938, 2, 0, 2555939, 2, 0 ) +tile_data = PoolIntArray( 458753, 0, 0, 458754, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 458762, 0, 0, 458763, 0, 0, 458764, -1610612736, 0, 458765, -1610612736, 0, 458766, -1610612736, 0, 458767, -1610612736, 0, 458768, -1610612736, 0, 458769, -1610612736, 0, 524291, 0, 0, 524292, 0, 0, 524293, 0, 0, 524294, 0, 0, 524295, 0, 0, 524296, 0, 0, 524299, 0, 0, 524300, 0, 0, 524301, -1610612736, 0, 524302, -1610612736, 0, 524303, -1610612736, 0, 524304, -1610612736, 0, 524305, -1610612736, 0, 589825, 0, 0, 589837, -1610612736, 0, 589838, -1610612736, 0, 589839, -1610612736, 0, 589840, -1610612736, 0, 589841, -1610612736, 0, 655373, -1610612736, 0, 655374, -1610612736, 0, 655375, -1610612736, 0, 655376, -1610612736, 0, 655377, -1610612736, 0, 720897, 0, 0, 720909, -1610612736, 0, 720910, -1610612736, 0, 720911, -1610612736, 0, 720912, -1610612736, 0, 720913, -1610612736, 0, 786445, -1610612736, 0, 786446, -1610612736, 0, 786447, -1610612736, 0, 786448, -1610612736, 0, 786449, -1610612736, 0, 851969, 0, 0, 851980, -1610612736, 0, 851981, -1610612736, 0, 851982, -1610612736, 0, 851983, -1610612736, 0, 851984, -1610612736, 0, 851985, -1610612736, 0, 917516, -1610612736, 0, 917517, -1610612736, 0, 917518, -1610612736, 0, 917519, -1610612736, 0, 917520, -1610612736, 0, 917521, -1610612736, 0, 917522, 1610612736, 0, 983041, 0, 0, 983052, -1610612736, 0, 983053, -1610612736, 0, 983054, -1610612736, 0, 983055, -1610612736, 0, 983056, -1610612736, 0, 983057, -1610612736, 0, 983058, 1610612736, 0, 1048588, -1610612736, 0, 1048589, -1610612736, 0, 1048590, -1610612736, 0, 1048591, -1610612736, 0, 1048592, -1610612736, 0, 1048593, -1610612736, 0, 1048594, 1610612736, 0, 1048601, 0, 0, 1048602, -1610612736, 0, 1114113, 0, 0, 1114124, -1610612736, 0, 1114125, -1610612736, 0, 1114126, -1610612736, 0, 1114127, -1610612736, 0, 1114128, -1610612736, 0, 1114129, -1610612736, 0, 1114137, -1073741824, 0, 1114138, 0, 0, 1114139, 0, 0, 1114140, 0, 0, 1114141, 0, 0, 1114142, -1610612736, 0, 1179660, -1610612736, 0, 1179661, -1610612736, 0, 1179662, -1610612736, 0, 1179663, -1610612736, 0, 1179664, -1610612736, 0, 1179665, -1610612736, 0, 1179673, -1073741824, 0, 1179674, -1610612734, 0, 1179675, -1610612735, 0, 1179676, 1610612736, 0, 1179677, 1610612736, 0, 1179678, -1610612736, 0, 1245185, 0, 0, 1245196, -1610612736, 0, 1245197, 1, 0, 1245198, 1, 0, 1245199, 1, 0, 1245200, 1, 0, 1245201, 1, 0, 1245202, 1, 0, 1245203, 1, 0, 1245204, 1, 0, 1245205, 1, 0, 1245206, 1, 0, 1245209, -1073741824, 0, 1245210, -1610612734, 0, 1245211, -1610612735, 0, 1245213, -1073741824, 0, 1245214, 0, 0, 1245215, 0, 0, 1245216, -1610612736, 0, 1310732, 3, 0, 1310733, 3, 0, 1310734, 3, 0, 1310735, 3, 0, 1310736, 3, 0, 1310737, 3, 0, 1310738, 3, 0, 1310739, 3, 0, 1310740, 3, 0, 1310741, 3, 0, 1310742, 3, 0, 1310745, -1073741824, 0, 1310746, -1610612734, 0, 1310747, -1610612735, 0, 1310749, -1073741824, 0, 1310750, -1610612736, 0, 1310751, 1610612736, 0, 1310752, -1610612736, 0, 1376257, 0, 0, 1376268, 2, 0, 1376269, 2, 0, 1376270, 2, 0, 1376271, 2, 0, 1376272, 2, 0, 1376273, 2, 0, 1376274, 2, 0, 1376275, 2, 0, 1376276, 2, 0, 1376277, 2, 0, 1376278, 2, 0, 1376281, -1073741824, 0, 1376282, -1610612734, 0, 1376283, -1610612735, 0, 1376285, -1073741824, 0, 1376286, 1610612736, 0, 1376287, -1073741824, 0, 1376288, 1610612736, 0, 1441817, -1073741824, 0, 1441818, 1610612736, 0, 1441819, 1610612736, 0, 1507329, 0, 0, 1507363, -1610612736, 0, 1572890, -1610612736, 0, 1572891, 1610612738, 0, 1572892, 1610612738, 0, 1572899, 1, 0, 1703935, 0, 0, 1638400, 0, 0, 1638401, 0, 0, 1638425, 1, 0, 1638426, 1, 0, 1638427, 1610612739, 0, 1638428, 1610612739, 0, 1638435, 2, 0, 1703957, -1610612736, 0, 1703961, 3, 0, 1703962, 3, 0, 1703963, 1610612739, 0, 1703964, 1610612739, 0, 1703971, -1073741824, 0, 1769473, 0, 0, 1769493, -1610612736, 0, 1769497, 2, 0, 1769498, 2, 0, 1769499, 1610612739, 0, 1769500, 1610612739, 0, 1835027, 0, 0, 1835028, 0, 0, 1835030, 1610612736, 0, 1835031, 1610612736, 0, 1835034, -1073741824, 0, 1835035, 1610612737, 0, 1835036, 1610612737, 0, 1966079, 0, 0, 1900544, 0, 0, 1900545, 0, 0, 1900546, 0, 0, 1900565, -1073741824, 0, 1900579, -1610612736, 0, 1966101, -1073741824, 0, 1966115, 1, 0, 2031617, 0, 0, 2031651, 2, 0, 2097187, -1073741824, 0, 2228223, 0, 0, 2162688, 0, 0, 2162689, 0, 0, 2162690, 0, 0, 2162691, -1610612736, 0, 2228227, -1610612736, 0, 2293763, -1610612736, 0, 2293767, 0, 0, 2293768, -1610612736, 0, 2293769, -1610612736, 0, 2359299, -1610612736, 0, 2359300, -1073741820, 0, 2359303, 0, 0, 2359304, 0, 0, 2359305, 0, 0, 2359306, 0, 0, 2359307, 0, 0, 2359312, 0, 0, 2359313, 0, 0, 2359314, 0, 0, 2359315, 0, 0, 2359316, 0, 0, 2359317, 0, 0, 2359318, 0, 0, 2359323, 1, 0, 2359324, 1, 0, 2359325, 1, 0, 2359326, 1, 0, 2359327, 1, 0, 2359328, 1, 0, 2359329, 1, 0, 2359330, 1, 0, 2359331, 1, 0, 2359332, 1, 0, 2424835, -1610612736, 0, 2424836, -1073741820, 0, 2424859, 2, 0, 2424860, 2, 0, 2424861, 2, 0, 2424862, 2, 0, 2424863, 2, 0, 2424864, 2, 0, 2424865, 2, 0, 2424866, 2, 0, 2424867, 2, 0, 2424868, 2, 0 ) __meta__ = { "_edit_lock_": true } -[node name="Smelter" type="StaticBody2D" parent="TileMap"] -position = Vector2( 28, 328 ) -script = ExtResource( 20 ) +[node name="Objects" type="Node2D" parent="TileMap"] -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="TileMap/Smelter"] -polygon = PoolVector2Array( -12, -8, -12, 8, 12, 8, 12, -8 ) -__meta__ = { -"_edit_lock_": true -} - -[node name="sprite" type="Sprite" parent="TileMap/Smelter"] -material = SubResource( 2 ) -texture = ExtResource( 1 ) -region_enabled = true -region_rect = Rect2( 32, 240, 24, 16 ) -__meta__ = { -"_edit_lock_": true -} - -[node name="SuckArea" type="Area2D" parent="TileMap/Smelter"] -__meta__ = { -"_edit_lock_": true -} - -[node name="Polygon2D" type="CollisionPolygon2D" parent="TileMap/Smelter/SuckArea"] -polygon = PoolVector2Array( -12, -12, 12, -12, 16, -8, 16, 8, 12, 12, -12, 12, -16, 8, -16, -8 ) -__meta__ = { -"_edit_lock_": true -} - -[node name="SprForge" type="Sprite" parent="TileMap"] -material = SubResource( 3 ) -position = Vector2( 32, 288 ) -texture = ExtResource( 1 ) -centered = false -region_enabled = true -region_rect = Rect2( 56, 240, 24, 16 ) - -[node name="SprWelder" type="Sprite" parent="TileMap"] -material = SubResource( 4 ) -position = Vector2( 184, 304 ) -texture = ExtResource( 6 ) -centered = false - -[node name="SprLathe" type="Sprite" parent="TileMap"] -material = SubResource( 5 ) -position = Vector2( 128, 304 ) -texture = ExtResource( 5 ) -centered = false -region_rect = Rect2( 80, 240, 32, 16 ) - -[node name="BigLadder" parent="TileMap" instance=ExtResource( 22 )] +[node name="BigLadder" parent="TileMap/Objects" instance=ExtResource( 22 )] position = Vector2( 48, 64 ) -[node name="BigLadder2" parent="TileMap" instance=ExtResource( 22 )] -position = Vector2( 192, 48 ) - -[node name="BigLadder3" parent="TileMap" instance=ExtResource( 22 )] +[node name="BigLadder3" parent="TileMap/Objects" instance=ExtResource( 22 )] position = Vector2( 208, 96 ) rotation = 0.610865 -[node name="MedLadder" parent="TileMap" instance=ExtResource( 23 )] +[node name="MedLadder" parent="TileMap/Objects" instance=ExtResource( 23 )] position = Vector2( 165, 74 ) -[node name="MedLadder2" parent="TileMap" instance=ExtResource( 23 )] -position = Vector2( 179, 126 ) +[node name="SmallLadder" parent="TileMap/Objects" instance=ExtResource( 24 )] +position = Vector2( 184, 112 ) -[node name="SmallLadder" parent="TileMap" instance=ExtResource( 24 )] -position = Vector2( 216, 288 ) +[node name="Machines" type="Node2D" parent="TileMap"] -[node name="IronStock" parent="TileMap" instance=ExtResource( 12 )] -position = Vector2( 56, 280 ) +[node name="Smelter" parent="TileMap/Machines" instance=ExtResource( 20 )] +position = Vector2( 28, 312 ) -[node name="IronRod" parent="TileMap" instance=ExtResource( 11 )] -position = Vector2( 159.8, 300 ) +[node name="Forge" parent="TileMap/Machines" instance=ExtResource( 1 )] +position = Vector2( 44, 280 ) -[node name="IronOre" parent="TileMap" instance=ExtResource( 13 )] -position = Vector2( 8, 268 ) +[node name="Lathe" parent="TileMap/Machines" instance=ExtResource( 9 )] +position = Vector2( 112, 288 ) -[node name="Sprite4" type="Sprite" parent="TileMap"] -position = Vector2( 56, 304 ) -texture = ExtResource( 1 ) -centered = false -offset = Vector2( 0, -4 ) -region_enabled = true -region_rect = Rect2( 16, 232, 8, 8 ) +[node name="Welder" parent="TileMap/Machines" instance=ExtResource( 8 )] +position = Vector2( 200, 296 ) -[node name="Sprite5" type="Sprite" parent="TileMap"] -position = Vector2( 40, 304 ) -rotation = 3.14159 -texture = ExtResource( 9 ) -centered = false -offset = Vector2( 0, -4 ) -region_rect = Rect2( 16, 232, 8, 8 ) +[node name="Portals" type="Node2D" parent="."] -[node name="Sprite10" type="Sprite" parent="TileMap"] -position = Vector2( 128, 312 ) -rotation = 4.71239 -texture = ExtResource( 9 ) -centered = false -offset = Vector2( 0, -4 ) -region_rect = Rect2( 16, 232, 8, 8 ) +[node name="OreSpawner" parent="Portals" instance=ExtResource( 28 )] +position = Vector2( -4, 268 ) -[node name="Sprite11" type="Sprite" parent="TileMap"] -position = Vector2( 184, 320 ) -rotation = 4.71239 -texture = ExtResource( 9 ) -centered = false -offset = Vector2( 0, -4 ) -region_rect = Rect2( 16, 232, 8, 8 ) +[node name="OreSpawner2" parent="Portals" instance=ExtResource( 28 )] +position = Vector2( -4, 236 ) -[node name="Sprite7" type="Sprite" parent="TileMap"] -position = Vector2( 216, 320 ) -rotation = 4.71239 -texture = ExtResource( 10 ) -centered = false -offset = Vector2( 0, -4 ) -region_rect = Rect2( 16, 232, 8, 8 ) +[node name="OreSpawner3" parent="Portals" instance=ExtResource( 28 )] +position = Vector2( -4, 204 ) -[node name="Sprite8" type="Sprite" parent="TileMap"] -position = Vector2( 216, 312 ) -rotation = 4.71239 -texture = ExtResource( 10 ) -centered = false -offset = Vector2( 0, -4 ) -region_rect = Rect2( 16, 232, 8, 8 ) +[node name="LadderEater" parent="Portals" instance=ExtResource( 29 )] +position = Vector2( 296, 296 ) -[node name="Sprite12" type="Sprite" parent="TileMap"] -position = Vector2( 160, 320 ) -rotation = 4.71239 -texture = ExtResource( 10 ) -centered = false -offset = Vector2( 0, -4 ) -region_rect = Rect2( 16, 232, 8, 8 ) +[node name="LadderEater2" parent="Portals" instance=ExtResource( 29 )] +position = Vector2( 296, 248 ) -[node name="Sprite13" type="Sprite" parent="TileMap"] -position = Vector2( 56, 304 ) -rotation = 4.71239 -texture = ExtResource( 10 ) -centered = false -offset = Vector2( 0, -4 ) -region_rect = Rect2( 16, 232, 8, 8 ) - -[node name="Sprite14" type="Sprite" parent="TileMap"] -position = Vector2( 40, 320 ) -rotation = 3.14159 -texture = ExtResource( 10 ) -centered = false -offset = Vector2( 0, -4 ) -region_rect = Rect2( 16, 232, 8, 8 ) +[node name="LadderEater3" parent="Portals" instance=ExtResource( 29 )] +position = Vector2( 296, 200 ) [node name="GUI" type="Control" parent="."] margin_right = 480.0 margin_bottom = 360.0 mouse_filter = 1 +script = ExtResource( 27 ) __meta__ = { "_edit_lock_": true, "_edit_use_anchors_": true } [node name="HBoxContainer" type="HBoxContainer" parent="GUI"] +show_behind_parent = true anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 @@ -251,66 +134,77 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Belt2" type="TextureRect" parent="GUI/HBoxContainer"] +[node name="Cursor" type="TextureRect" parent="GUI/HBoxContainer"] +show_behind_parent = true margin_right = 16.0 margin_bottom = 16.0 texture = ExtResource( 15 ) [node name="Belt" type="TextureRect" parent="GUI/HBoxContainer"] +show_behind_parent = true margin_left = 20.0 margin_right = 28.0 margin_bottom = 16.0 texture = ExtResource( 17 ) [node name="Channel" type="TextureRect" parent="GUI/HBoxContainer"] +show_behind_parent = true margin_left = 32.0 margin_right = 40.0 margin_bottom = 16.0 texture = ExtResource( 18 ) [node name="Widebelt" type="TextureRect" parent="GUI/HBoxContainer"] +show_behind_parent = true margin_left = 44.0 margin_right = 60.0 margin_bottom = 16.0 texture = ExtResource( 16 ) [node name="Smelter" type="TextureRect" parent="GUI/HBoxContainer"] +show_behind_parent = true margin_left = 64.0 margin_right = 88.0 margin_bottom = 16.0 texture = ExtResource( 3 ) [node name="Forge" type="TextureRect" parent="GUI/HBoxContainer"] +show_behind_parent = true margin_left = 92.0 margin_right = 116.0 margin_bottom = 16.0 texture = ExtResource( 4 ) [node name="Lathe" type="TextureRect" parent="GUI/HBoxContainer"] +show_behind_parent = true margin_left = 120.0 margin_right = 152.0 margin_bottom = 16.0 texture = ExtResource( 5 ) [node name="Welder" type="TextureRect" parent="GUI/HBoxContainer"] +show_behind_parent = true margin_left = 156.0 margin_right = 188.0 margin_bottom = 16.0 texture = ExtResource( 6 ) [node name="BGMSlider" type="HBoxContainer" parent="GUI/HBoxContainer"] +show_behind_parent = true margin_left = 192.0 margin_right = 480.0 margin_bottom = 16.0 size_flags_horizontal = 3 [node name="Label" type="Label" parent="GUI/HBoxContainer/BGMSlider"] +show_behind_parent = true margin_top = 1.0 margin_right = 31.0 margin_bottom = 15.0 text = "BGM" [node name="HSlider" type="HSlider" parent="GUI/HBoxContainer/BGMSlider"] +show_behind_parent = true margin_left = 35.0 margin_right = 288.0 margin_bottom = 16.0 diff --git a/assets/UI_module_names.tres b/assets/UI_module_names.tres index ee8488a..f4abb12 100644 --- a/assets/UI_module_names.tres +++ b/assets/UI_module_names.tres @@ -1,6 +1,9 @@ [gd_resource type="DynamicFont" load_steps=2 format=2] -[sub_resource type="DynamicFontData" id=1] +[ext_resource path="res://assets/NotoSans.tres" type="DynamicFontData" id=1] [resource] -font_data = SubResource( 1 ) +size = 5 +outline_size = 1 +outline_color = Color( 0, 0, 0, 1 ) +font_data = ExtResource( 1 ) diff --git a/assets/sprites/downarrow.png b/assets/sprites/downarrow.png new file mode 100644 index 0000000..e8be446 Binary files /dev/null and b/assets/sprites/downarrow.png differ diff --git a/assets/sprites/downarrow.png.import b/assets/sprites/downarrow.png.import new file mode 100644 index 0000000..f4451be --- /dev/null +++ b/assets/sprites/downarrow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/downarrow.png-08119f1ff9a5cbf3528c37872329e05f.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/downarrow.png" +dest_files=[ "res://.import/downarrow.png-08119f1ff9a5cbf3528c37872329e05f.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/bgm.gd b/bgm.gd index 6c770df..0f06579 100644 --- a/bgm.gd +++ b/bgm.gd @@ -1,11 +1,20 @@ extends AudioStreamPlayer -const BAR_LENGTH = 0.5 -const SEGMENT_TIMES = [1.0, 9.0, 15.0, 33.0, 41.0, 57.0, 83.0] -enum SEGMENT_NAMES {Intro, Bass, Piano, KeyChange, Return, Outro, Fanfare} +const START_DELAY = 1.0 +const BAR_LENGTH = 2.0 +#const SEGMENT_TIMES = [0.0, 8.0, 16.0, 32.0, 40.0, 56.0, 76.0, 82.0]+1 +const SEGMENT_TIMES = [1.0, 9.0, 17.0, 33.0, 41.0, 57.0, 77.0, 83.0] +enum SEGMENT_NAMES {Intro, Bass, Piano, KeyChange, Return, Outro, Ending, Fanfare} +var queue = [SEGMENT_NAMES.Intro, SEGMENT_NAMES.Bass, SEGMENT_NAMES.Bass, SEGMENT_NAMES.Bass] func _ready(): pass +func get_bartime(realtime): + return (realtime - START_DELAY) / BAR_LENGTH + +func queue_fanfare(): + var current_bartime = get_bartime(get_playback_position()) + func set_volume(value): set_volume_db(linear2db(value)) diff --git a/constants.gd b/constants.gd index f9875d2..ae86bad 100644 --- a/constants.gd +++ b/constants.gd @@ -1,3 +1,4 @@ +tool extends Node enum MATERIAL_TYPE {iORE, iSTOCK, iROD, iLADDER, iLADDER2, iLADDER4, iMOLTEN} @@ -7,5 +8,23 @@ var RECIPES = { MACHINE_TYPE.SMELTER: {input=MATERIAL_TYPE.iORE, output=MATERIAL_TYPE.iMOLTEN, time=4.0}, MACHINE_TYPE.FORGE: {input=MATERIAL_TYPE.iMOLTEN, output=MATERIAL_TYPE.iSTOCK, time=4.0}, MACHINE_TYPE.LATHE: {input=MATERIAL_TYPE.iSTOCK, output=MATERIAL_TYPE.iROD, time=4.0}, - MACHINE_TYPE.WELDER: {input=MATERIAL_TYPE.iROD, output=MATERIAL_TYPE.iLADDER, time=8.0}, + MACHINE_TYPE.WELDER: {input=MATERIAL_TYPE.iROD, output=MATERIAL_TYPE.iLADDER, time=4.0}, } + +onready var MACHINE_SCENES = { + MACHINE_TYPE.SMELTER: load("res://machines/Smelter.tscn"), + MACHINE_TYPE.FORGE: load("res://machines/Forge.tscn"), + MACHINE_TYPE.LATHE: load("res://machines/Lathe.tscn"), + MACHINE_TYPE.WELDER: load("res://machines/Welder.tscn"), +} + +onready var MATERIAL_SCENES = { + MATERIAL_TYPE.iORE: load("res://objects/IronOre.tscn"), + MATERIAL_TYPE.iSTOCK: load("res://objects/IronStock.tscn"), + MATERIAL_TYPE.iROD: load("res://objects/IronRod.tscn"), + MATERIAL_TYPE.iLADDER: load("res://objects/SmallLadder.tscn"), + MATERIAL_TYPE.iLADDER2: load("res://objects/MedLadder.tscn"), + MATERIAL_TYPE.iLADDER4: load("res://objects/BigLadder.tscn"), +} + +var font = preload("res://assets/UI_module_names.tres") diff --git a/machine.gd b/machine.gd index 15e9908..5c30625 100644 --- a/machine.gd +++ b/machine.gd @@ -6,22 +6,118 @@ export var max_input_buffer := 3 var num_inputs = 0 var working := false setget set_working var idle_time := 0.0 +var work_time := 0.0 var anim_speed = 1.0 +onready var rect = $sprite.get_rect() +onready var width = rect.size.x +onready var height = rect.size.y +onready var w_cells = width/8 +onready var h_cells = height/8 +onready var beltmap = $"/root/Main/TileMap/BeltTiles" +var surrounding_tilename_indices +var surrounding_tilename_indices_internal +var surrounding_tilename_indices_dir +var was_started = false - +var dir_vectors = [Vector2(1,0), Vector2(0,-1), Vector2(-1,0), Vector2(0,1)] +var dir_angles = [0, 90, 0, 90] # Angles to rotate output by +func get_belt_direction(tx, ty): + var xflip = beltmap.is_cell_x_flipped(tx, ty) + var tp = beltmap.is_cell_transposed(tx, ty) + return int(tp) + int(xflip)*2 onready var recipe = Constants.RECIPES[machine_type] func _ready(): - pass + var top_left_corner_tile = position - Vector2(width/2-4, height/2-4) + var tlct = beltmap.world_to_map(top_left_corner_tile) + surrounding_tilename_indices = [] + surrounding_tilename_indices_internal = [] + surrounding_tilename_indices_dir = [] + # Add all orthogonal cells in clockwise order + for i in w_cells: + surrounding_tilename_indices.append(tlct+Vector2(i,-1)) + surrounding_tilename_indices_internal.append(tlct+Vector2(i,0)) + surrounding_tilename_indices_dir.append(1) + for i in h_cells: + surrounding_tilename_indices.append(tlct+Vector2(w_cells,i)) + surrounding_tilename_indices_internal.append(tlct+Vector2(w_cells-1,i)) + surrounding_tilename_indices_dir.append(0) + for i in w_cells: + surrounding_tilename_indices.append(tlct+Vector2(w_cells-1-i,h_cells)) + surrounding_tilename_indices_internal.append(tlct+Vector2(w_cells-1-i,h_cells-1)) + surrounding_tilename_indices_dir.append(3) + for i in h_cells: + surrounding_tilename_indices.append(tlct+Vector2(-1,h_cells-1-i)) + surrounding_tilename_indices_internal.append(tlct+Vector2(0,h_cells-1-i)) + surrounding_tilename_indices_dir.append(2) func _process(delta): - if num_inputs < max_input_buffer: + if num_inputs < max_input_buffer and recipe.input != Constants.MATERIAL_TYPE.iMOLTEN: suck_materials() + + if working: + if work_time >= recipe.time: + output() + else: + work_time += delta + return + if num_inputs <= 0: + if not was_started: + return self.working = false idle_time += delta + var overspeed = clamp(floor(idle_time/2)*2, 1, 8) + $sprite.material.set_shader_param('rps', overspeed*anim_speed) else: self.working = true + was_started = true + num_inputs -= 1 + work_time = 0 + idle_time = 0 + +func output(): + if recipe.output == Constants.MATERIAL_TYPE.iMOLTEN: + for i in len(surrounding_tilename_indices): + var ind = surrounding_tilename_indices[i] + if beltmap.get_cell(ind.x, ind.y) == 4: # Channel + var dir = get_belt_direction(ind.x, ind.y) + if dir != surrounding_tilename_indices_dir[i]: + continue + else: + var xy = ind + while(true): + xy += dir_vectors[dir] + if beltmap.get_cell(xy.x, xy.y) == 4: + if get_belt_direction(xy.x, xy.y) == dir: + continue + else: + for child in get_parent().get_children(): # Check if a suitable machine is on this tile + if child.rect.has_point(child.to_local(beltmap.map_to_world(xy) + Vector2(4,4))): + child.feed(null) + return + break + else: + for i in len(surrounding_tilename_indices): + var ind = surrounding_tilename_indices[i] + var celltype = beltmap.get_cell(ind.x, ind.y) + if celltype >= 0 and celltype != 4: # Belt + # For correct logic on 2wide outputs, we'd have to check for 2 adjacent belts + # Since we have no time, we'll just throw it out as if there was a second belt + # If people think they're exploiting the game, they're only playing themselves + var dir = get_belt_direction(ind.x, ind.y) + if dir != surrounding_tilename_indices_dir[i]: + continue + var product = Constants.MATERIAL_SCENES[recipe.output].instance() + var outpos = beltmap.map_to_world(surrounding_tilename_indices_internal[i]) + Vector2(4, 4) + if recipe.output > 2: # Make a proper check later + outpos += dir_vectors[surrounding_tilename_indices_dir[i]-1]*4 # the list progresses CCW, we want CW + product.position = outpos + product.rotation_degrees = dir_angles[surrounding_tilename_indices_dir[i]] + outpos -= dir_vectors[surrounding_tilename_indices_dir[i]] # Hack to make feed exit work + product.leave_machine(self, outpos) + $"/root/Main/TileMap/Objects".add_child(product) + return func set_working(state): working = state @@ -30,5 +126,15 @@ func set_working(state): func suck_materials(): for candidate in $SuckArea.get_overlapping_bodies(): if candidate.has_method('enter_machine'): - if candidate.material_type == recipe.input: - pass + if candidate.material_type == recipe.input and not candidate.entering_machine: + var displacement = candidate.position - position + var nearest_col = clamp(round((displacement.x + width/2 - 4)/8), 0, w_cells-1) + var nearest_row = clamp(round((displacement.y + height/2 - 4)/8), 0, h_cells-1) + var port = position + Vector2(nearest_col*8-width/2+4, nearest_row*8-height/2+4) + candidate.enter_machine(self, port) + +func feed(object): + if object: + object.get_parent().remove_child(object) + object.queue_free() + num_inputs += 1 diff --git a/machines/Forge.tscn b/machines/Forge.tscn new file mode 100644 index 0000000..463eefe --- /dev/null +++ b/machines/Forge.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://machine.gd" type="Script" id=1] +[ext_resource path="res://assets/sprites/forge.tres" type="Texture" id=2] +[ext_resource path="res://assets/machine.shader" type="Shader" id=3] +[ext_resource path="res://machines/text.gd" type="Script" id=4] + +[sub_resource type="ShaderMaterial" id=1] +shader = ExtResource( 3 ) +shader_param/rps = 0.0 +shader_param/bg_color = Vector3( 0.251, 0.251, 0.251 ) + +[node name="Forge" type="StaticBody2D"] +script = ExtResource( 1 ) +machine_type = 1 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( -12, -8, -12, 8, 12, 8, 12, -8 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="sprite" type="Sprite" parent="."] +material = SubResource( 1 ) +texture = ExtResource( 2 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="SuckArea" type="Area2D" parent="."] +script = ExtResource( 4 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Polygon2D" type="CollisionPolygon2D" parent="SuckArea"] +polygon = PoolVector2Array( -12, -12, 12, -12, 16, -8, 16, 8, 12, 12, -12, 12, -16, 8, -16, -8 ) +__meta__ = { +"_edit_lock_": true +} diff --git a/machines/Lathe.tscn b/machines/Lathe.tscn new file mode 100644 index 0000000..74a9104 --- /dev/null +++ b/machines/Lathe.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://machine.gd" type="Script" id=1] +[ext_resource path="res://assets/sprites/lathe.tres" type="Texture" id=2] +[ext_resource path="res://assets/machine.shader" type="Shader" id=3] +[ext_resource path="res://machines/text.gd" type="Script" id=4] + +[sub_resource type="ShaderMaterial" id=1] +shader = ExtResource( 3 ) +shader_param/rps = 0.0 +shader_param/bg_color = Vector3( 0.251, 0.251, 0.251 ) + +[node name="Lathe" type="StaticBody2D"] +script = ExtResource( 1 ) +machine_type = 2 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( -16, -8, -16, 8, 16, 8, 16, -8 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="sprite" type="Sprite" parent="."] +material = SubResource( 1 ) +texture = ExtResource( 2 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="SuckArea" type="Area2D" parent="."] +script = ExtResource( 4 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Polygon2D" type="CollisionPolygon2D" parent="SuckArea"] +polygon = PoolVector2Array( -16, -12, 16, -12, 20, -8, 20, 8, 16, 12, -16, 12, -20, 8, -20, -8 ) +__meta__ = { +"_edit_lock_": true +} diff --git a/machines/Smelter.tscn b/machines/Smelter.tscn new file mode 100644 index 0000000..982157b --- /dev/null +++ b/machines/Smelter.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://machine.gd" type="Script" id=1] +[ext_resource path="res://assets/sprites/smelter.tres" type="Texture" id=2] +[ext_resource path="res://assets/machine.shader" type="Shader" id=3] +[ext_resource path="res://machines/text.gd" type="Script" id=4] + +[sub_resource type="ShaderMaterial" id=1] +shader = ExtResource( 3 ) +shader_param/rps = 0.0 +shader_param/bg_color = Vector3( 0.251, 0.251, 0.251 ) + +[node name="Smelter" type="StaticBody2D"] +script = ExtResource( 1 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( -12, -8, -12, 8, 12, 8, 12, -8 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="sprite" type="Sprite" parent="."] +material = SubResource( 1 ) +texture = ExtResource( 2 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="SuckArea" type="Area2D" parent="."] +script = ExtResource( 4 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Polygon2D" type="CollisionPolygon2D" parent="SuckArea"] +polygon = PoolVector2Array( -12, -12, 12, -12, 16, -8, 16, 8, 12, 12, -12, 12, -16, 8, -16, -8 ) +__meta__ = { +"_edit_lock_": true +} diff --git a/machines/Welder.tscn b/machines/Welder.tscn new file mode 100644 index 0000000..f7882c2 --- /dev/null +++ b/machines/Welder.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://machine.gd" type="Script" id=1] +[ext_resource path="res://assets/sprites/welder.tres" type="Texture" id=2] +[ext_resource path="res://assets/machine.shader" type="Shader" id=3] +[ext_resource path="res://machines/text.gd" type="Script" id=5] + +[sub_resource type="ShaderMaterial" id=1] +shader = ExtResource( 3 ) +shader_param/rps = 0.0 +shader_param/bg_color = Vector3( 0.251, 0.251, 0.251 ) + +[node name="Welder" type="StaticBody2D"] +script = ExtResource( 1 ) +machine_type = 3 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( -16, -8, -16, 8, 16, 8, 16, -8 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="sprite" type="Sprite" parent="."] +material = SubResource( 1 ) +texture = ExtResource( 2 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="SuckArea" type="Area2D" parent="."] +script = ExtResource( 5 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Polygon2D" type="CollisionPolygon2D" parent="SuckArea"] +polygon = PoolVector2Array( -16, -12, 16, -12, 20, -8, 20, 8, 16, 12, -16, 12, -20, 8, -20, -8 ) +__meta__ = { +"_edit_lock_": true +} diff --git a/machines/text.gd b/machines/text.gd new file mode 100644 index 0000000..f8fd1db --- /dev/null +++ b/machines/text.gd @@ -0,0 +1,20 @@ +extends Area2D + +var font = preload("res://assets/UI_module_names.tres") + +func _process(delta): + update() + +func _draw(): + if not $"..".was_started: + return + if $"..".working: + if $"..".num_inputs > 0: + draw_string(font, Vector2(5.25, -2.75), str($"..".num_inputs)) + draw_rect(Rect2(6.5, -1, 1, 6), Color.black, true) + var progress = $"..".work_time/$"..".recipe.time + draw_rect(Rect2(6.5, 6*(1-progress)-1, 1, 6*progress), Color.green, true) + else: + var death_eta = max($"..".max_idle_time - $"..".idle_time, 0) + draw_string(font, Vector2(5.25, -2.75), '%.0f'%death_eta, Color.red) + diff --git a/object.gd b/object.gd index 91a50f2..21b64ba 100644 --- a/object.gd +++ b/object.gd @@ -8,7 +8,7 @@ var leaving_machine = null var feed_position: Vector2 var held = false var grabbed_vector = null -onready var beltmap = $"../BeltTiles" +onready var beltmap = $"/root/Main/TileMap/BeltTiles" var dir_vectors = [Vector2(1,0), Vector2(0,-1), Vector2(-1,0), Vector2(0,1)] @@ -19,6 +19,7 @@ export var cy := 5.0 # offset for edge feet var foot_vectors var foot_weights var total_weight +onready var rect = $sprite.get_rect() #var stuck_vec = null #var stuck_dir = -1 # For going off the end of belts @@ -51,10 +52,13 @@ func _physics_process(delta): if entering_machine: move_and_slide(position.direction_to(feed_position) * belt_speed) + if position.distance_to(feed_position) <= 1.0: + entering_machine.feed(self) return elif leaving_machine: - move_and_slide(feed_position.direction_to(position) * belt_speed) - if position.distance_to(feed_position) > $sprite.width/2: + var dir = feed_position.direction_to(position) + move_and_slide(dir * belt_speed) + if position.distance_to(feed_position) > rect.size.x/2 + 9: remove_collision_exception_with(leaving_machine) leaving_machine = null return @@ -97,16 +101,18 @@ func _input(event): if event is InputEventMouseButton: if not event.pressed: held = false - elif $sprite.get_rect().has_point(to_local(event.position)): + elif rect.has_point(to_local(event.position)) and event.button_mask & BUTTON_MASK_LEFT and $"/root/Main".p1_selection == 0: held = true grabbed_vector = to_local(event.position) -func enter_machine(machine): +func enter_machine(machine, feed_vec): add_collision_exception_with(machine) entering_machine = machine + self.feed_position = feed_vec held = false -func leave_machine(machine): +func leave_machine(machine, feed_vec): add_collision_exception_with(machine) leaving_machine = machine + self.feed_position = feed_vec diff --git a/portals/LadderEater.gd b/portals/LadderEater.gd new file mode 100644 index 0000000..343f869 --- /dev/null +++ b/portals/LadderEater.gd @@ -0,0 +1,10 @@ +extends Node2D + +func _ready(): + pass + +func _process(delta): + # For now, just delete everything. EVERYTHING. + for object in $EatZone.get_overlapping_bodies(): + object.get_parent().remove_child(object) + object.queue_free() diff --git a/portals/LadderEater.tscn b/portals/LadderEater.tscn new file mode 100644 index 0000000..600d14e --- /dev/null +++ b/portals/LadderEater.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://portals/LadderEater.gd" type="Script" id=1] + +[node name="LadderEater" type="Node2D"] +script = ExtResource( 1 ) + +[node name="EatZone" type="Area2D" parent="."] +__meta__ = { +"_edit_lock_": true +} + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="EatZone"] +polygon = PoolVector2Array( -7, 7, -7, -7, 7, -7, 7, 7 ) +__meta__ = { +"_edit_lock_": true +} diff --git a/portals/OreSpawner.gd b/portals/OreSpawner.gd new file mode 100644 index 0000000..a3d4a9f --- /dev/null +++ b/portals/OreSpawner.gd @@ -0,0 +1,15 @@ +extends Node2D + +func _ready(): + pass + +func spawn_ore(): + if len($DumpZone.get_overlapping_bodies()) <= 0: + var product = Constants.MATERIAL_SCENES[Constants.MATERIAL_TYPE.iORE].instance() + var outpos = position + product.position = outpos + $"/root/Main/TileMap/Objects".add_child(product) + + +func _on_Timer_timeout(): + spawn_ore() diff --git a/portals/OreSpawner.tscn b/portals/OreSpawner.tscn new file mode 100644 index 0000000..0222003 --- /dev/null +++ b/portals/OreSpawner.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://portals/OreSpawner.gd" type="Script" id=1] + +[node name="OreSpawner" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Timer" type="Timer" parent="."] +wait_time = 4.0 +autostart = true + +[node name="DumpZone" type="Area2D" parent="."] +__meta__ = { +"_edit_lock_": true +} + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="DumpZone"] +polygon = PoolVector2Array( -3, 3, -3, -3, 3, -3, 3, 3 ) +__meta__ = { +"_edit_lock_": true +} +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"]