From 8da0c6e77951b46ce641bb8ab87569fdb2c80f4d Mon Sep 17 00:00:00 2001 From: Lloyd Rowe Date: Sun, 21 Nov 2021 13:58:03 -0500 Subject: [PATCH 1/4] Added how to play instructions Added support for window resizing --- project/project.godot | 31 +++++---- project/src/TitleScreen.gd | 4 ++ project/src/TitleScreen.tscn | 121 +++++++++++++++++++++++++++++++++-- 3 files changed, 139 insertions(+), 17 deletions(-) diff --git a/project/project.godot b/project/project.godot index 6c0f6c8..f277ba4 100644 --- a/project/project.godot +++ b/project/project.godot @@ -24,46 +24,54 @@ config/name="Escape-The-Dungeon" run/main_scene="res://src/TitleScreen.tscn" config/icon="res://icon.png" +[display] + +window/stretch/mode="2d" + +[global] + +window=false + [input] move_up={ "deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null) +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null) +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null) ] } move_down={ "deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null) +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null) ] } attack={ "deadzone": 0.5, "events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) ] } open_inventory={ "deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"unicode":0,"echo":false,"script":null) +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"physical_scancode":0,"unicode":0,"echo":false,"script":null) ] } change_weapon={ "deadzone": 0.5, -"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"unicode":0,"echo":false,"script":null) +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"physical_scancode":0,"unicode":0,"echo":false,"script":null) ] } @@ -74,3 +82,4 @@ common/enable_pause_aware_picking=true [rendering] environment/default_environment="res://default_env.tres" +quality/dynamic_fonts/use_oversampling=false diff --git a/project/src/TitleScreen.gd b/project/src/TitleScreen.gd index c291742..664adfb 100644 --- a/project/src/TitleScreen.gd +++ b/project/src/TitleScreen.gd @@ -3,3 +3,7 @@ extends Node2D func _on_StartButton_pressed(): var _ignored = get_tree().change_scene("res://src/Level.tscn") + + +func _on_Instructions_pressed(): + $InstructionsPopup.popup() diff --git a/project/src/TitleScreen.tscn b/project/src/TitleScreen.tscn index f5902ec..f1f1587 100644 --- a/project/src/TitleScreen.tscn +++ b/project/src/TitleScreen.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=15 format=2] [ext_resource path="res://assets/Screens/logo.png" type="Texture" id=1] [ext_resource path="res://src/TitleScreen.gd" type="Script" id=2] +[ext_resource path="res://assets/Fonts/moiktext.ttf" type="DynamicFontData" id=3] [sub_resource type="GradientTexture" id=1] @@ -19,8 +20,41 @@ corner_radius_top_right = 5 corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 +[sub_resource type="StyleBoxFlat" id=7] +bg_color = Color( 0.803922, 0.784314, 0.784314, 1 ) +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 + +[sub_resource type="DynamicFont" id=4] +size = 28 +font_data = ExtResource( 3 ) + +[sub_resource type="StyleBoxFlat" id=5] +bg_color = Color( 0, 0, 0, 0.180392 ) + +[sub_resource type="StyleBoxFlat" id=6] +bg_color = Color( 0.6, 0.6, 0.6, 0 ) + +[sub_resource type="DynamicFont" id=8] +size = 52 +font_data = ExtResource( 3 ) + +[sub_resource type="DynamicFont" id=9] +font_data = ExtResource( 3 ) + +[sub_resource type="StyleBoxFlat" id=10] +bg_color = Color( 0.6, 0.6, 0.6, 0 ) + +[sub_resource type="StyleBoxFlat" id=11] +bg_color = Color( 0.6, 0.6, 0.6, 0 ) + [node name="TitleScreen" type="Node2D"] script = ExtResource( 2 ) +__meta__ = { +"_edit_horizontal_guides_": [ ] +} [node name="Background" type="Sprite" parent="."] position = Vector2( 506.809, 310.281 ) @@ -33,17 +67,92 @@ scale = Vector2( 0.5, 0.5 ) texture = ExtResource( 1 ) [node name="StartButton" type="Button" parent="."] -margin_left = 441.526 -margin_top = 467.954 -margin_right = 566.526 -margin_bottom = 501.954 +margin_left = 427.0 +margin_top = 415.0 +margin_right = 552.0 +margin_bottom = 449.0 +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_colors/font_color_hover = Color( 0, 0, 0, 1 ) custom_styles/hover = SubResource( 2 ) custom_styles/normal = SubResource( 3 ) +text = "Start Game" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Instructions" type="Button" parent="."] +margin_left = 427.0 +margin_top = 470.0 +margin_right = 552.0 +margin_bottom = 504.0 custom_colors/font_color = Color( 0, 0, 0, 1 ) custom_colors/font_color_hover = Color( 0, 0, 0, 1 ) -text = "Start Game" +custom_styles/hover = SubResource( 2 ) +custom_styles/normal = SubResource( 3 ) +text = "How To Play" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="InstructionsPopup" type="Popup" parent="."] +margin_left = -8.0 +margin_right = 782.0 +margin_bottom = 590.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Panel" type="Panel" parent="InstructionsPopup"] +margin_left = 163.0 +margin_top = 38.0 +margin_right = 863.0 +margin_bottom = 577.0 +custom_styles/panel = SubResource( 7 ) + +[node name="Exit" type="Button" parent="InstructionsPopup"] +margin_left = 797.0 +margin_top = 72.0 +margin_right = 840.0 +margin_bottom = 108.0 +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_colors/font_color_hover = Color( 1, 1, 1, 1 ) +custom_fonts/font = SubResource( 4 ) +custom_styles/hover = SubResource( 5 ) +custom_styles/normal = SubResource( 6 ) +text = "X" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="RichTextLabel" type="RichTextLabel" parent="InstructionsPopup"] +margin_left = 346.0 +margin_top = 64.0 +margin_right = 657.0 +margin_bottom = 130.0 +custom_colors/default_color = Color( 0, 0, 0, 1 ) +custom_fonts/normal_font = SubResource( 8 ) +text = "How To Play" + +[node name="TextEdit" type="TextEdit" parent="InstructionsPopup"] +margin_left = 227.0 +margin_top = 175.0 +margin_right = 808.0 +margin_bottom = 548.0 +custom_colors/font_color_readonly = Color( 0, 0, 0, 1 ) +custom_fonts/font = SubResource( 9 ) +custom_styles/read_only = SubResource( 10 ) +custom_styles/normal = SubResource( 11 ) +text = "Controls +Use the arrow keys to move around +Use the mouse to attack, collect and interact with enemies and objects + +How to Win +Defeat all the enemies to open the door and then excape the dungeon" +readonly = true __meta__ = { "_edit_use_anchors_": false } [connection signal="pressed" from="StartButton" to="." method="_on_StartButton_pressed"] +[connection signal="pressed" from="Instructions" to="." method="_on_Instructions_pressed"] +[connection signal="pressed" from="InstructionsPopup/Exit" to="." method="_on_Exit_pressed"] From b6a654c81893f0508d42abf2cec991670d954f21 Mon Sep 17 00:00:00 2001 From: Lloyd Rowe Date: Sun, 21 Nov 2021 16:30:49 -0500 Subject: [PATCH 2/4] Added escape door Added buttons to access inventory and weapon switching --- project/assets/Tileset/gate.png | Bin 0 -> 777 bytes project/src/Fuzz.tscn | 21 +++--- project/src/HUD.tscn | 32 ++++++--- project/src/Level.gd | 17 +++-- project/src/Level.tscn | 119 ++++++++++++++++++-------------- project/src/Player.gd | 11 +++ project/src/Player.tscn | 72 ++++++++++++++++--- project/src/TitleScreen.tscn | 15 ++-- 8 files changed, 196 insertions(+), 91 deletions(-) create mode 100644 project/assets/Tileset/gate.png diff --git a/project/assets/Tileset/gate.png b/project/assets/Tileset/gate.png new file mode 100644 index 0000000000000000000000000000000000000000..b629752bdd13b6cbf72369538bdec37fc23da997 GIT binary patch literal 777 zcmV+k1NQuhP)Px%!%0LzRCr$PTiZ?oF%a$YYu>&C}6qPnBEhIaB7*thUD}0In`6oI#^AE20i zZZPTq27o;vAPNlH(^Lm!xlYyCKGsW)X3zIFPRn|LON^2GtfWB(fIT2^3Yes@O?pze zZp+_tpKJ}$v_B@Dfzzg%AQm$~3deDruLBqWOO=;BV1a;3+9?GEOli<2g()5YoRb{Y zb%qTX%5mFv498*&oCWkFc*Fo0bO3vRRefEoizO95(MfEvAvC{Q@x z!_(*+P0bmdKV+s_>yV<->y&>YWFHp)mLJR%_9kzoK3$;%$FC@4^Z&el_)*Bqz!1N0spRg>Gax4ibI z*W!J(-l%5{V?BTYU=IkK0+f;%){pmfkFO}FU4ychcZN(C5=sp~@Qsn+0qE35sSdb# zK2$Ze>$CUe_~}TEJGGG->+3f)4|XQ;{JlhqJ^I>+0bmaZoC5XgFpUAd*JH)+=INUn z-@lxwalJZR*50-Co0mX(lss$0A<00000NkvXX Hu0mjf_!C^R literal 0 HcmV?d00001 diff --git a/project/src/Fuzz.tscn b/project/src/Fuzz.tscn index 2190247..b8560c5 100644 --- a/project/src/Fuzz.tscn +++ b/project/src/Fuzz.tscn @@ -19,11 +19,6 @@ height = 11.8597 [sub_resource type="SpriteFrames" id=3] animations = [ { -"frames": [ ExtResource( 2 ) ], -"loop": true, -"name": "default", -"speed": 1.0 -}, { "frames": [ ExtResource( 3 ) ], "loop": true, "name": "hurt 2", @@ -34,19 +29,24 @@ animations = [ { "name": "attack", "speed": 0.5 }, { -"frames": [ ExtResource( 6 ) ], +"frames": [ ExtResource( 4 ) ], "loop": true, -"name": "killed", -"speed": 0.5 +"name": "hurt", +"speed": 1.0 }, { "frames": [ ExtResource( 2 ), ExtResource( 7 ) ], "loop": true, "name": "walk", "speed": 2.0 }, { -"frames": [ ExtResource( 4 ) ], +"frames": [ ExtResource( 6 ) ], "loop": true, -"name": "hurt", +"name": "killed", +"speed": 0.5 +}, { +"frames": [ ExtResource( 2 ) ], +"loop": true, +"name": "default", "speed": 1.0 } ] @@ -70,6 +70,7 @@ shape = SubResource( 2 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="."] frames = SubResource( 3 ) animation = "walk" +frame = 1 playing = true [node name="sound" type="AudioStreamPlayer" parent="."] diff --git a/project/src/HUD.tscn b/project/src/HUD.tscn index 9107614..ef548e9 100644 --- a/project/src/HUD.tscn +++ b/project/src/HUD.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=14 format=2] [ext_resource path="res://assets/Fonts/moiktext.ttf" type="DynamicFontData" id=1] [ext_resource path="res://assets/Screens/Inventory/item-window.png" type="Texture" id=2] @@ -47,6 +47,10 @@ tracks/0/keys = { "values": [ Vector2( 1.1, 1.1 ), Vector2( 1.45, 1.45 ), Vector2( 1.1, 1.1 ) ] } +[sub_resource type="DynamicFont" id=9] +size = 26 +font_data = ExtResource( 1 ) + [node name="HUD" type="Control"] margin_right = 40.0 margin_bottom = 40.0 @@ -104,10 +108,10 @@ margin_left = -76.368 margin_top = 72.293 margin_right = 75.632 margin_bottom = 114.293 -custom_styles/hover = SubResource( 4 ) -custom_styles/normal = SubResource( 5 ) custom_colors/font_color = Color( 0, 0, 0, 1 ) custom_colors/font_color_hover = Color( 0, 0, 0, 1 ) +custom_styles/hover = SubResource( 4 ) +custom_styles/normal = SubResource( 5 ) text = "Return To Title Screen" __meta__ = { "_edit_use_anchors_": false @@ -132,14 +136,14 @@ scale = Vector2( 1.1, 1.1 ) texture = ExtResource( 3 ) [node name="KeyLogo" type="Sprite" parent="."] -position = Vector2( 61.6926, 199.141 ) +position = Vector2( 319, -230 ) texture = ExtResource( 5 ) [node name="KeyLabel" type="Label" parent="."] -margin_left = 93.1643 -margin_top = 184.084 -margin_right = 151.164 -margin_bottom = 235.084 +margin_left = 371.0 +margin_top = -255.0 +margin_right = 429.0 +margin_bottom = -204.0 custom_fonts/font = SubResource( 1 ) text = "x0" __meta__ = { @@ -153,4 +157,16 @@ texture = ExtResource( 6 ) [node name="PrimaryAnimation" type="AnimationPlayer" parent="."] anims/grow = SubResource( 6 ) +[node name="DoorLabel" type="Label" parent="."] +visible = false +margin_left = -114.0 +margin_top = 199.0 +margin_right = 183.0 +margin_bottom = 240.0 +custom_fonts/font = SubResource( 9 ) +text = "The Door Has Opened" +__meta__ = { +"_edit_use_anchors_": false +} + [connection signal="pressed" from="RestartButton" to="." method="_on_RestartButton_pressed"] diff --git a/project/src/Level.gd b/project/src/Level.gd index c8cdbe3..06a4fea 100644 --- a/project/src/Level.gd +++ b/project/src/Level.gd @@ -6,14 +6,12 @@ func _ready(): $Item2.set_item("Key", "null") - func _process(_delta): var no_enemies = get_tree().get_nodes_in_group("Enemies").empty() if no_enemies: - $Player.active = false - $Player/HUD/EndMessage.text = "You Win" - $Player/HUD/RestartButton.visible = true - $Player/HUD/EndMessage.visible = true + $Gate.visible = false; + $Player/HUD/DoorLabel.show() + func pause_enemies(value): @@ -21,7 +19,6 @@ func pause_enemies(value): enemy.pause(value) - func _on_Chest_open(chest): var position = chest.position var new_item: Item = load("res://src/Item.tscn").instance() @@ -29,3 +26,11 @@ func _on_Chest_open(chest): new_item.position = position call_deferred("remove_child", chest) call_deferred("add_child", new_item) + + +func _on_Dungeon_body_exited(body): + if body.name == 'Player': + $Player.is_active = false + $Player/HUD/EndMessage.text = "You Win" + $Player/HUD/RestartButton.visible = true + $Player/HUD/EndMessage.visible = true diff --git a/project/src/Level.tscn b/project/src/Level.tscn index 5c4229c..ab35341 100644 --- a/project/src/Level.tscn +++ b/project/src/Level.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=27 format=2] +[gd_scene load_steps=31 format=2] [ext_resource path="res://src/Item.tscn" type="PackedScene" id=1] [ext_resource path="res://src/Chest.tscn" type="PackedScene" id=2] +[ext_resource path="res://assets/Tileset/gate.png" type="Texture" id=3] [ext_resource path="res://src/Fuzz.tscn" type="PackedScene" id=18] [ext_resource path="res://src/Player.tscn" type="PackedScene" id=19] [ext_resource path="res://src/Beholder.tscn" type="PackedScene" id=20] @@ -19,6 +20,9 @@ [ext_resource path="res://assets/Tileset/floor_wall.png" type="Texture" id=32] [ext_resource path="res://assets/Tileset/wall_3.png" type="Texture" id=33] +[sub_resource type="RectangleShape2D" id=10] +extents = Vector2( 1481.5, 1589.5 ) + [sub_resource type="ConvexPolygonShape2D" id=1] points = PoolVector2Array( 64, 64, 0, 64, 0, 0, 64, 0 ) @@ -28,6 +32,9 @@ points = PoolVector2Array( 64, 64, 0, 64, 0, 0, 64, 0 ) [sub_resource type="ConvexPolygonShape2D" id=3] points = PoolVector2Array( 64, 64, 0, 64, 0, 0, 64, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=9] +points = PoolVector2Array( 0, 0, 64, 0, 64, 64, 0, 64 ) + [sub_resource type="ConvexPolygonShape2D" id=4] points = PoolVector2Array( 64, 64, 0, 64, 0, 0, 64, 0 ) @@ -244,10 +251,40 @@ points = PoolVector2Array( 64, 64, 0, 64, 0, 0, 64, 0 ) "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) } ] 10/z_index = 0 +11/name = "gate.png 11" +11/texture = ExtResource( 3 ) +11/tex_offset = Vector2( 0, 0 ) +11/modulate = Color( 1, 1, 1, 1 ) +11/region = Rect2( 0, 0, 64, 64 ) +11/tile_mode = 0 +11/occluder_offset = Vector2( 0, 0 ) +11/navigation_offset = Vector2( 0, 0 ) +11/shape_offset = Vector2( 0, 0 ) +11/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +11/shape = SubResource( 9 ) +11/shape_one_way = false +11/shape_one_way_margin = 1.0 +11/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 9 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +11/z_index = 0 + +[sub_resource type="RectangleShape2D" id=11] +extents = Vector2( 30.6514, 30.8617 ) [node name="Node2D" type="Node2D"] script = ExtResource( 22 ) +[node name="Dungeon" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Dungeon"] +position = Vector2( 1530.5, 1715.5 ) +shape = SubResource( 10 ) + [node name="ColorRect" type="ColorRect" parent="."] margin_left = -760.0 margin_top = -593.782 @@ -261,86 +298,56 @@ __meta__ = { [node name="TileMap" type="TileMap" parent="."] tile_set = SubResource( 8 ) format = 1 -tile_data = PoolIntArray( 131073, 10, 0, 131074, 9, 0, 131075, 9, 0, 131076, 9, 0, 131077, 9, 0, 131078, 9, 0, 131079, 9, 0, 131080, 9, 0, 131081, 9, 0, 131082, 9, 0, 131083, 9, 0, 131084, 9, 0, 131085, 9, 0, 131086, 9, 0, 131087, 9, 0, 131088, 9, 0, 131089, 9, 0, 131090, 9, 0, 131091, 10, 0, 131092, 9, 0, 131093, 9, 0, 131094, 9, 0, 131095, 9, 0, 131096, 9, 0, 131097, 9, 0, 131098, 9, 0, 131099, 9, 0, 131100, 9, 0, 131101, 9, 0, 131102, 9, 0, 131103, 9, 0, 131104, 9, 0, 131105, 9, 0, 131106, 9, 0, 131107, 9, 0, 131108, 9, 0, 131109, 9, 0, 131110, 9, 0, 131111, 9, 0, 131112, 9, 0, 131113, 9, 0, 131114, 9, 0, 131115, 9, 0, 131116, 9, 0, 131117, 9, 0, 131118, 10, 0, 196609, 10, 0, 196610, 1, 0, 196611, 0, 0, 196612, 536870914, 0, 196613, 4, 0, 196614, 3, 0, 196615, 536870914, 0, 196616, 4, 0, 196617, 0, 0, 196618, 536870914, 0, 196619, 536870914, 0, 196620, 536870914, 0, 196621, 536870914, 0, 196622, 4, 0, 196623, 0, 0, 196624, 536870914, 0, 196625, 4, 0, 196626, 536870913, 0, 196627, 10, 0, 196628, 1, 0, 196629, 0, 0, 196630, 536870914, 0, 196631, 4, 0, 196632, 3, 0, 196633, 536870914, 0, 196634, 4, 0, 196635, 3, 0, 196636, 536870914, 0, 196637, 4, 0, 196638, 0, 0, 196639, 536870914, 0, 196640, 4, 0, 196641, 3, 0, 196642, 0, 0, 196643, 4, 0, 196644, 536870914, 0, 196645, 4, 0, 196646, 0, 0, 196647, 3, 0, 196648, 4, 0, 196649, 3, 0, 196650, 536870914, 0, 196651, 4, 0, 196652, 0, 0, 196653, 536870913, 0, 196654, 10, 0, 262145, 10, 0, 262146, 6, 0, 262147, -1610612729, 0, 262148, -1610612729, 0, 262149, -1610612729, 0, 262150, -1610612729, 0, 262151, -1610612729, 0, 262152, -1610612729, 0, 262153, -1610612729, 0, 262154, -1610612729, 0, 262155, -1610612729, 0, 262156, -1610612729, 0, 262157, -1610612729, 0, 262158, -1610612729, 0, 262159, -1610612729, 0, 262160, -1610612729, 0, 262161, -1610612729, 0, 262162, -1610612730, 0, 262163, 10, 0, 262164, 6, 0, 262165, -1610612729, 0, 262166, -1610612729, 0, 262167, -1610612729, 0, 262168, -1610612729, 0, 262169, -1610612729, 0, 262170, -1610612729, 0, 262171, -1610612729, 0, 262172, -1610612729, 0, 262173, -1610612729, 0, 262174, -1610612729, 0, 262175, -1610612729, 0, 262176, -1610612729, 0, 262177, -1610612729, 0, 262178, -1610612729, 0, 262179, -1610612729, 0, 262180, -1610612729, 0, 262181, -1610612729, 0, 262182, -1610612729, 0, 262183, -1610612729, 0, 262184, -1610612729, 0, 262185, -1610612729, 0, 262186, -1610612729, 0, 262187, -1610612729, 0, 262188, -1610612729, 0, 262189, -1610612730, 0, 262190, 10, 0, 327681, 10, 0, 327682, 7, 0, 327683, 8, 0, 327684, 8, 0, 327685, 8, 0, 327686, 8, 0, 327687, 8, 0, 327688, 8, 0, 327689, 8, 0, 327690, 8, 0, 327691, 8, 0, 327692, 8, 0, 327693, 8, 0, 327694, 8, 0, 327695, 8, 0, 327696, 8, 0, 327697, 8, 0, 327698, 1610612743, 0, 327699, 10, 0, 327700, 7, 0, 327701, 8, 0, 327702, 8, 0, 327703, 8, 0, 327704, 8, 0, 327705, 8, 0, 327706, 8, 0, 327707, 8, 0, 327708, 8, 0, 327709, 8, 0, 327710, 8, 0, 327711, 8, 0, 327712, 8, 0, 327713, 8, 0, 327714, 8, 0, 327715, 8, 0, 327716, 8, 0, 327717, 8, 0, 327718, 8, 0, 327719, 8, 0, 327720, 8, 0, 327721, 8, 0, 327722, 8, 0, 327723, 8, 0, 327724, 8, 0, 327725, 1610612743, 0, 327726, 10, 0, 393217, 10, 0, 393218, 7, 0, 393219, 8, 0, 393220, 8, 0, 393221, 8, 0, 393222, 8, 0, 393223, 8, 0, 393224, 8, 0, 393225, 8, 0, 393226, 8, 0, 393227, 8, 0, 393228, 8, 0, 393229, 8, 0, 393230, 8, 0, 393231, 8, 0, 393232, 8, 0, 393233, 8, 0, 393234, 1610612743, 0, 393235, 10, 0, 393236, 7, 0, 393237, 8, 0, 393238, 8, 0, 393239, 8, 0, 393240, 8, 0, 393241, 8, 0, 393242, 8, 0, 393243, 8, 0, 393244, 8, 0, 393245, 8, 0, 393246, 8, 0, 393247, 8, 0, 393248, 8, 0, 393249, 8, 0, 393250, 8, 0, 393251, 8, 0, 393252, 8, 0, 393253, 8, 0, 393254, 8, 0, 393255, 8, 0, 393256, 8, 0, 393257, 8, 0, 393258, 8, 0, 393259, 8, 0, 393260, 8, 0, 393261, 1610612743, 0, 393262, 10, 0, 458753, 10, 0, 458754, 7, 0, 458755, 8, 0, 458756, 8, 0, 458757, 1610612741, 0, 458758, 9, 0, 458759, 9, 0, 458760, 9, 0, 458761, 9, 0, 458762, 9, 0, 458763, 9, 0, 458764, 9, 0, 458765, 9, 0, 458766, 10, 0, 458767, -1073741819, 0, 458768, 8, 0, 458769, 8, 0, 458770, 1610612743, 0, 458771, 10, 0, 458772, 7, 0, 458773, 8, 0, 458774, 8, 0, 458775, 8, 0, 458776, 8, 0, 458777, 8, 0, 458778, 8, 0, 458779, 8, 0, 458780, 8, 0, 458781, 8, 0, 458782, 8, 0, 458783, 8, 0, 458784, 8, 0, 458785, 8, 0, 458786, 8, 0, 458787, 8, 0, 458788, 8, 0, 458789, 8, 0, 458790, 8, 0, 458791, 8, 0, 458792, 8, 0, 458793, 8, 0, 458794, 8, 0, 458795, 8, 0, 458796, 8, 0, 458797, 1610612743, 0, 458798, 10, 0, 524289, 10, 0, 524290, 7, 0, 524291, 8, 0, 524292, 8, 0, 524293, 536870919, 0, 524294, 4, 0, 524295, 536870914, 0, 524296, 536870914, 0, 524297, 4, 0, 524298, 0, 0, 524299, 536870914, 0, 524300, 4, 0, 524301, 536870913, 0, 524302, 10, 0, 524303, 7, 0, 524304, 8, 0, 524305, 8, 0, 524306, 1610612743, 0, 524307, 10, 0, 524308, 7, 0, 524309, 8, 0, 524310, 8, 0, 524311, 8, 0, 524312, 8, 0, 524313, 8, 0, 524314, 8, 0, 524315, 8, 0, 524316, 8, 0, 524317, 8, 0, 524318, 8, 0, 524319, 8, 0, 524320, 8, 0, 524321, 8, 0, 524322, 8, 0, 524323, 8, 0, 524324, 8, 0, 524325, 8, 0, 524326, 8, 0, 524327, 8, 0, 524328, 8, 0, 524329, 8, 0, 524330, 8, 0, 524331, 8, 0, 524332, 8, 0, 524333, 1610612743, 0, 524334, 10, 0, 589825, 10, 0, 589826, 7, 0, 589827, 8, 0, 589828, 8, 0, 589829, -1610612731, 0, 589830, -1610612729, 0, 589831, -1610612729, 0, 589832, -1610612729, 0, 589833, -1610612729, 0, 589834, -1610612729, 0, 589835, -1610612729, 0, 589836, -1610612729, 0, 589837, -1610612730, 0, 589838, 10, 0, 589839, 7, 0, 589840, 8, 0, 589841, 8, 0, 589842, 1610612743, 0, 589843, 10, 0, 589844, 7, 0, 589845, 8, 0, 589846, 8, 0, 589847, 8, 0, 589848, 8, 0, 589849, 1610612741, 0, 589850, 10, 0, 589851, 9, 0, 589852, 9, 0, 589853, 9, 0, 589854, 9, 0, 589855, 9, 0, 589856, 9, 0, 589857, 9, 0, 589858, 9, 0, 589859, 9, 0, 589860, -1073741819, 0, 589861, 8, 0, 589862, 8, 0, 589863, 8, 0, 589864, 8, 0, 589865, 8, 0, 589866, 8, 0, 589867, 8, 0, 589868, 8, 0, 589869, 1610612743, 0, 589870, 10, 0, 655361, 10, 0, 655362, 7, 0, 655363, 8, 0, 655364, 8, 0, 655365, 8, 0, 655366, 8, 0, 655367, 8, 0, 655368, 8, 0, 655369, 8, 0, 655370, 8, 0, 655371, 8, 0, 655372, 8, 0, 655373, 1610612743, 0, 655374, 10, 0, 655375, 7, 0, 655376, 8, 0, 655377, 8, 0, 655378, 1610612743, 0, 655379, 10, 0, 655380, 7, 0, 655381, 8, 0, 655382, 8, 0, 655383, 8, 0, 655384, 8, 0, 655385, 1610612743, 0, 655386, 10, 0, 655387, 1, 0, 655388, 0, 0, 655389, 536870914, 0, 655390, 4, 0, 655391, 4, 0, 655392, 536870914, 0, 655393, 0, 0, 655394, 4, 0, 655395, 536870914, 0, 655396, 7, 0, 655397, 8, 0, 655398, 8, 0, 655399, 8, 0, 655400, 8, 0, 655401, 8, 0, 655402, 8, 0, 655403, 8, 0, 655404, 8, 0, 655405, 1610612743, 0, 655406, 10, 0, 720897, 10, 0, 720898, 7, 0, 720899, 8, 0, 720900, 8, 0, 720901, 8, 0, 720902, 8, 0, 720903, 8, 0, 720904, 8, 0, 720905, 8, 0, 720906, 1610612741, 0, 720907, 9, 0, 720908, 9, 0, 720909, 9, 0, 720910, 9, 0, 720911, 9, 0, 720912, 9, 0, 720913, 9, 0, 720914, 9, 0, 720915, 10, 0, 720916, 7, 0, 720917, 8, 0, 720918, 8, 0, 720919, 8, 0, 720920, 8, 0, 720921, 1610612743, 0, 720922, 10, 0, 720923, 6, 0, 720924, -1610612729, 0, 720925, -1610612729, 0, 720926, -1610612729, 0, 720927, -1610612729, 0, 720928, -1610612729, 0, 720929, -1610612729, 0, 720930, -1610612729, 0, 720931, -1610612729, 0, 720932, 5, 0, 720933, 8, 0, 720934, 8, 0, 720935, 8, 0, 720936, 8, 0, 720937, 8, 0, 720938, 8, 0, 720939, 8, 0, 720940, 8, 0, 720941, 1610612743, 0, 720942, 10, 0, 786433, 10, 0, 786434, 7, 0, 786435, 8, 0, 786436, 8, 0, 786437, 8, 0, 786438, 8, 0, 786439, 8, 0, 786440, 8, 0, 786441, 8, 0, 786442, 536870919, 0, 786443, 4, 0, 786444, 3, 0, 786445, 536870914, 0, 786446, 4, 0, 786447, 0, 0, 786448, 536870914, 0, 786449, 4, 0, 786450, 536870913, 0, 786451, 10, 0, 786452, 7, 0, 786453, 8, 0, 786454, 8, 0, 786455, 8, 0, 786456, 8, 0, 786457, 536870919, 0, 786458, 10, 0, 786459, 7, 0, 786460, 8, 0, 786461, 8, 0, 786462, 8, 0, 786463, 8, 0, 786464, 8, 0, 786465, 8, 0, 786466, 8, 0, 786467, 8, 0, 786468, 8, 0, 786469, 8, 0, 786470, 8, 0, 786471, 8, 0, 786472, 8, 0, 786473, 8, 0, 786474, 8, 0, 786475, 8, 0, 786476, 8, 0, 786477, 1610612743, 0, 786478, 10, 0, 851969, 10, 0, 851970, 7, 0, 851971, 8, 0, 851972, 8, 0, 851973, 8, 0, 851974, 8, 0, 851975, 8, 0, 851976, 8, 0, 851977, 8, 0, 851978, -1610612731, 0, 851979, -1610612729, 0, 851980, -1610612729, 0, 851981, -1610612729, 0, 851982, -1610612729, 0, 851983, -1610612729, 0, 851984, -1610612729, 0, 851985, -1610612729, 0, 851986, -1610612730, 0, 851987, 10, 0, 851988, 7, 0, 851989, 8, 0, 851990, 1610612741, 0, 851991, 9, 0, 851992, 9, 0, 851993, 9, 0, 851994, 10, 0, 851995, 7, 0, 851996, 8, 0, 851997, 8, 0, 851998, 8, 0, 851999, 8, 0, 852000, 8, 0, 852001, 8, 0, 852002, 8, 0, 852003, 8, 0, 852004, 8, 0, 852005, 8, 0, 852006, 8, 0, 852007, 8, 0, 852008, 8, 0, 852009, 8, 0, 852010, 8, 0, 852011, 8, 0, 852012, 8, 0, 852013, 1610612743, 0, 852014, 10, 0, 917505, 10, 0, 917506, 9, 0, 917507, 9, 0, 917508, 9, 0, 917509, 9, 0, 917510, 9, 0, 917511, -1073741819, 0, 917512, 8, 0, 917513, 8, 0, 917514, 8, 0, 917515, 8, 0, 917516, 8, 0, 917517, 8, 0, 917518, 8, 0, 917519, 8, 0, 917520, 8, 0, 917521, 8, 0, 917522, 1610612743, 0, 917523, 10, 0, 917524, 7, 0, 917525, 8, 0, 917526, 1610612743, 0, 917527, 4, 0, 917528, 0, 0, 917529, 536870913, 0, 917530, 10, 0, 917531, 7, 0, 917532, 8, 0, 917533, 8, 0, 917534, 8, 0, 917535, 8, 0, 917536, 1610612741, 0, 917537, 10, 0, 917538, -1073741819, 0, 917539, 8, 0, 917540, 8, 0, 917541, 8, 0, 917542, 8, 0, 917543, 8, 0, 917544, 8, 0, 917545, 8, 0, 917546, 8, 0, 917547, 8, 0, 917548, 8, 0, 917549, 1610612743, 0, 917550, 10, 0, 983041, 10, 0, 983042, 1, 0, 983043, 536870914, 0, 983044, 4, 0, 983045, 0, 0, 983046, 536870914, 0, 983047, 7, 0, 983048, 8, 0, 983049, 8, 0, 983050, 8, 0, 983051, 8, 0, 983052, 8, 0, 983053, 8, 0, 983054, 8, 0, 983055, 8, 0, 983056, 8, 0, 983057, 8, 0, 983058, 1610612743, 0, 983059, 10, 0, 983060, 7, 0, 983061, 8, 0, 983062, -1610612731, 0, 983063, -1610612729, 0, 983064, -1610612729, 0, 983065, -1610612730, 0, 983066, 10, 0, 983067, 7, 0, 983068, 8, 0, 983069, 8, 0, 983070, 8, 0, 983071, 8, 0, 983072, 1610612743, 0, 983073, 10, 0, 983074, 7, 0, 983075, 8, 0, 983076, 8, 0, 983077, 8, 0, 983078, 8, 0, 983079, 8, 0, 983080, 8, 0, 983081, 8, 0, 983082, 8, 0, 983083, 8, 0, 983084, 8, 0, 983085, 1610612743, 0, 983086, 10, 0, 1048577, 10, 0, 1048578, 6, 0, 1048579, -1610612729, 0, 1048580, -1610612729, 0, 1048581, -1610612729, 0, 1048582, -1610612729, 0, 1048583, 5, 0, 1048584, 8, 0, 1048585, 8, 0, 1048586, 8, 0, 1048587, 8, 0, 1048588, 8, 0, 1048589, 8, 0, 1048590, 8, 0, 1048591, 8, 0, 1048592, 8, 0, 1048593, 8, 0, 1048594, 1610612743, 0, 1048595, 10, 0, 1048596, 7, 0, 1048597, 8, 0, 1048598, 8, 0, 1048599, 8, 0, 1048600, 8, 0, 1048601, 1610612743, 0, 1048602, 9, 0, 1048603, 7, 0, 1048604, 8, 0, 1048605, 8, 0, 1048606, 8, 0, 1048607, 8, 0, 1048608, 1610612743, 0, 1048609, 10, 0, 1048610, 7, 0, 1048611, 8, 0, 1048612, 8, 0, 1048613, 8, 0, 1048614, 8, 0, 1048615, 8, 0, 1048616, 8, 0, 1048617, 8, 0, 1048618, 8, 0, 1048619, 8, 0, 1048620, 8, 0, 1048621, 1610612743, 0, 1048622, 10, 0, 1114113, 10, 0, 1114114, 7, 0, 1114115, 8, 0, 1114116, 8, 0, 1114117, 8, 0, 1114118, 8, 0, 1114119, 8, 0, 1114120, 8, 0, 1114121, 8, 0, 1114122, 8, 0, 1114123, 8, 0, 1114124, 8, 0, 1114125, 8, 0, 1114126, 8, 0, 1114127, 8, 0, 1114128, 8, 0, 1114129, 8, 0, 1114130, 1610612743, 0, 1114131, 10, 0, 1114132, 7, 0, 1114133, 8, 0, 1114134, 8, 0, 1114135, 8, 0, 1114136, 8, 0, 1114137, 1610612743, 0, 1114138, 4, 0, 1114139, 7, 0, 1114140, 8, 0, 1114141, 1610612741, 0, 1114142, 9, 0, 1114143, 9, 0, 1114144, 9, 0, 1114145, 9, 0, 1114146, 9, 0, 1114147, 9, 0, 1114148, 9, 0, 1114149, 9, 0, 1114150, 9, 0, 1114151, 9, 0, 1114152, 9, 0, 1114153, 9, 0, 1114154, 9, 0, 1114155, 9, 0, 1114156, 9, 0, 1114157, 9, 0, 1114158, 10, 0, 1179649, 10, 0, 1179650, 7, 0, 1179651, 8, 0, 1179652, 8, 0, 1179653, 8, 0, 1179654, 8, 0, 1179655, 8, 0, 1179656, 8, 0, 1179657, 8, 0, 1179658, 8, 0, 1179659, 8, 0, 1179660, 8, 0, 1179661, 8, 0, 1179662, 8, 0, 1179663, 8, 0, 1179664, 8, 0, 1179665, 8, 0, 1179666, 1610612743, 0, 1179667, 10, 0, 1179668, 7, 0, 1179669, 8, 0, 1179670, 8, 0, 1179671, 8, 0, 1179672, 8, 0, 1179673, -1610612731, 0, 1179674, -1610612729, 0, 1179675, 5, 0, 1179676, 8, 0, 1179677, 1610612743, 0, 1179678, 4, 0, 1179679, 0, 0, 1179680, 536870914, 0, 1179681, 4, 0, 1179682, 3, 0, 1179683, 536870914, 0, 1179684, 4, 0, 1179685, 3, 0, 1179686, 0, 0, 1179687, 4, 0, 1179688, 3, 0, 1179689, 536870914, 0, 1179690, 4, 0, 1179691, 3, 0, 1179692, 0, 0, 1179693, 536870913, 0, 1179694, 10, 0, 1245185, 10, 0, 1245186, 7, 0, 1245187, 8, 0, 1245188, 8, 0, 1245189, 8, 0, 1245190, 1610612741, 0, 1245191, 9, 0, 1245192, 9, 0, 1245193, 9, 0, 1245194, 9, 0, 1245195, 9, 0, 1245196, 10, 0, 1245197, 9, 0, 1245198, 9, 0, 1245199, 9, 0, 1245200, 9, 0, 1245201, 9, 0, 1245202, 9, 0, 1245203, 9, 0, 1245204, 9, 0, 1245205, 9, 0, 1245206, 10, 0, 1245207, -1073741819, 0, 1245208, 8, 0, 1245209, 8, 0, 1245210, 8, 0, 1245211, 8, 0, 1245212, 8, 0, 1245213, -1610612731, 0, 1245214, -1610612729, 0, 1245215, -1610612729, 0, 1245216, -1610612729, 0, 1245217, -1610612729, 0, 1245218, -1610612729, 0, 1245219, -1610612729, 0, 1245220, -1610612729, 0, 1245221, -1610612729, 0, 1245222, -1610612729, 0, 1245223, -1610612729, 0, 1245224, -1610612729, 0, 1245225, -1610612729, 0, 1245226, -1610612729, 0, 1245227, -1610612729, 0, 1245228, -1610612729, 0, 1245229, -1610612730, 0, 1245230, 10, 0, 1310721, 10, 0, 1310722, 7, 0, 1310723, 8, 0, 1310724, 8, 0, 1310725, 8, 0, 1310726, 1610612743, 0, 1310727, 4, 0, 1310728, 3, 0, 1310729, 536870914, 0, 1310730, 4, 0, 1310731, 536870913, 0, 1310732, 10, 0, 1310733, 1, 0, 1310734, 0, 0, 1310735, 536870914, 0, 1310736, 4, 0, 1310737, 3, 0, 1310738, 536870914, 0, 1310739, 4, 0, 1310740, 3, 0, 1310741, 536870913, 0, 1310742, 10, 0, 1310743, 7, 0, 1310744, 8, 0, 1310745, 8, 0, 1310746, 8, 0, 1310747, 8, 0, 1310748, 8, 0, 1310749, 8, 0, 1310750, 8, 0, 1310751, 8, 0, 1310752, 8, 0, 1310753, 8, 0, 1310754, 8, 0, 1310755, 8, 0, 1310756, 8, 0, 1310757, 8, 0, 1310758, 8, 0, 1310759, 8, 0, 1310760, 8, 0, 1310761, 8, 0, 1310762, 8, 0, 1310763, 8, 0, 1310764, 8, 0, 1310765, 1610612743, 0, 1310766, 10, 0, 1376257, 10, 0, 1376258, 7, 0, 1376259, 8, 0, 1376260, 8, 0, 1376261, 8, 0, 1376262, -1610612731, 0, 1376263, -1610612729, 0, 1376264, -1610612729, 0, 1376265, -1610612729, 0, 1376266, -1610612729, 0, 1376267, -1610612730, 0, 1376268, 10, 0, 1376269, 6, 0, 1376270, -1610612729, 0, 1376271, -1610612729, 0, 1376272, -1610612729, 0, 1376273, -1610612729, 0, 1376274, -1610612729, 0, 1376275, -1610612729, 0, 1376276, -1610612729, 0, 1376277, -1610612730, 0, 1376278, 10, 0, 1376279, 7, 0, 1376280, 8, 0, 1376281, 8, 0, 1376282, 8, 0, 1376283, 8, 0, 1376284, 8, 0, 1376285, 8, 0, 1376286, 8, 0, 1376287, 8, 0, 1376288, 8, 0, 1376289, 8, 0, 1376290, 8, 0, 1376291, 8, 0, 1376292, 8, 0, 1376293, 8, 0, 1376294, 8, 0, 1376295, 8, 0, 1376296, 8, 0, 1376297, 8, 0, 1376298, 8, 0, 1376299, 8, 0, 1376300, 8, 0, 1376301, 1610612743, 0, 1376302, 10, 0, 1441793, 10, 0, 1441794, 7, 0, 1441795, 8, 0, 1441796, 8, 0, 1441797, 8, 0, 1441798, 8, 0, 1441799, 8, 0, 1441800, 8, 0, 1441801, 8, 0, 1441802, 8, 0, 1441803, 1610612743, 0, 1441804, 10, 0, 1441805, 7, 0, 1441806, 8, 0, 1441807, 8, 0, 1441808, 8, 0, 1441809, 8, 0, 1441810, 8, 0, 1441811, 8, 0, 1441812, 8, 0, 1441813, 1610612743, 0, 1441814, 10, 0, 1441815, 7, 0, 1441816, 8, 0, 1441817, 8, 0, 1441818, 8, 0, 1441819, 1610612744, 0, 1441820, 1610612744, 0, 1441821, 1610612744, 0, 1441822, 1610612744, 0, 1441823, 1610612744, 0, 1441824, 1610612744, 0, 1441825, 1610612744, 0, 1441826, 1610612744, 0, 1441827, 1610612744, 0, 1441828, 1610612744, 0, 1441829, 1610612744, 0, 1441830, 1610612744, 0, 1441831, 1610612744, 0, 1441832, 1610612744, 0, 1441833, 1610612744, 0, 1441834, 1610612744, 0, 1441835, 1610612744, 0, 1441836, 1610612744, 0, 1441837, 1610612743, 0, 1441838, 10, 0, 1507329, 10, 0, 1507330, 7, 0, 1507331, 8, 0, 1507332, 8, 0, 1507333, 8, 0, 1507334, 8, 0, 1507335, 8, 0, 1507336, 8, 0, 1507337, 8, 0, 1507338, 8, 0, 1507339, 1610612743, 0, 1507340, 10, 0, 1507341, 7, 0, 1507342, 8, 0, 1507343, 1610612741, 0, 1507344, 9, 0, 1507345, 9, 0, 1507346, 9, 0, 1507347, 9, 0, 1507348, 9, 0, 1507349, 9, 0, 1507350, 10, 0, 1507351, 7, 0, 1507352, 8, 0, 1507353, 8, 0, 1507354, 8, 0, 1507355, 1610612741, 0, 1507356, 10, 0, 1507357, 10, 0, 1507358, 10, 0, 1507359, 10, 0, 1507360, 10, 0, 1507361, 10, 0, 1507362, 10, 0, 1507363, 10, 0, 1507364, 10, 0, 1507365, 10, 0, 1507366, 10, 0, 1507367, 10, 0, 1507368, 10, 0, 1507369, 10, 0, 1507370, 10, 0, 1507371, 10, 0, 1507372, 10, 0, 1507373, 10, 0, 1507374, 10, 0, 1572865, 10, 0, 1572866, 7, 0, 1572867, 8, 0, 1572868, 8, 0, 1572869, 8, 0, 1572870, 8, 0, 1572871, 8, 0, 1572872, 8, 0, 1572873, 8, 0, 1572874, 8, 0, 1572875, 1610612743, 0, 1572876, 10, 0, 1572877, 7, 0, 1572878, 8, 0, 1572879, 1610612743, 0, 1572880, 536870914, 0, 1572881, 4, 0, 1572882, 0, 0, 1572883, 536870914, 0, 1572884, 4, 0, 1572885, 536870913, 0, 1572886, 10, 0, 1572887, 7, 0, 1572888, 8, 0, 1572889, 8, 0, 1572890, 8, 0, 1572891, 1610612743, 0, 1572892, 10, 0, 1638401, 10, 0, 1638402, 7, 0, 1638403, 8, 0, 1638404, 8, 0, 1638405, 8, 0, 1638406, 8, 0, 1638407, 8, 0, 1638408, 8, 0, 1638409, 8, 0, 1638410, 8, 0, 1638411, 1610612743, 0, 1638412, 9, 0, 1638413, 7, 0, 1638414, 8, 0, 1638415, -1610612731, 0, 1638416, -1610612729, 0, 1638417, -1610612729, 0, 1638418, -1610612729, 0, 1638419, -1610612729, 0, 1638420, -1610612729, 0, 1638421, -1610612730, 0, 1638422, 10, 0, 1638423, 7, 0, 1638424, 8, 0, 1638425, 8, 0, 1638426, 8, 0, 1638427, 1610612743, 0, 1638428, 10, 0, 1703937, 10, 0, 1703938, 9, 0, 1703939, 9, 0, 1703940, 9, 0, 1703941, 9, 0, 1703942, 9, 0, 1703943, 9, 0, 1703944, 9, 0, 1703945, -1073741819, 0, 1703946, 8, 0, 1703947, 1610612743, 0, 1703948, 4, 0, 1703949, 7, 0, 1703950, 8, 0, 1703951, 8, 0, 1703952, 8, 0, 1703953, 8, 0, 1703954, 8, 0, 1703955, 8, 0, 1703956, 8, 0, 1703957, 1610612743, 0, 1703958, 9, 0, 1703959, 7, 0, 1703960, 8, 0, 1703961, 8, 0, 1703962, 8, 0, 1703963, 1610612743, 0, 1703964, 10, 0, 1769473, 10, 0, 1769474, 1, 0, 1769475, 0, 0, 1769476, 536870914, 0, 1769477, 4, 0, 1769478, 3, 0, 1769479, 536870914, 0, 1769480, 4, 0, 1769481, 7, 0, 1769482, 8, 0, 1769483, -1610612731, 0, 1769484, -1610612729, 0, 1769485, 5, 0, 1769486, 8, 0, 1769487, 8, 0, 1769488, 8, 0, 1769489, 8, 0, 1769490, 8, 0, 1769491, 8, 0, 1769492, 8, 0, 1769493, 1610612743, 0, 1769494, 4, 0, 1769495, 7, 0, 1769496, 8, 0, 1769497, 8, 0, 1769498, 8, 0, 1769499, 1610612743, 0, 1769500, 10, 0, 1835009, 10, 0, 1835010, 6, 0, 1835011, -1610612729, 0, 1835012, -1610612729, 0, 1835013, -1610612729, 0, 1835014, -1610612729, 0, 1835015, -1610612729, 0, 1835016, -1610612729, 0, 1835017, 5, 0, 1835018, 8, 0, 1835019, 8, 0, 1835020, 8, 0, 1835021, 8, 0, 1835022, 8, 0, 1835023, 8, 0, 1835024, 8, 0, 1835025, 8, 0, 1835026, 8, 0, 1835027, 8, 0, 1835028, 8, 0, 1835029, -1610612731, 0, 1835030, -1610612729, 0, 1835031, 5, 0, 1835032, 8, 0, 1835033, 8, 0, 1835034, 8, 0, 1835035, 1610612743, 0, 1835036, 10, 0, 1900545, 10, 0, 1900546, 7, 0, 1900547, 8, 0, 1900548, 8, 0, 1900549, 8, 0, 1900550, 8, 0, 1900551, 8, 0, 1900552, 8, 0, 1900553, 8, 0, 1900554, 8, 0, 1900555, 8, 0, 1900556, 8, 0, 1900557, 8, 0, 1900558, 8, 0, 1900559, 8, 0, 1900560, 8, 0, 1900561, 8, 0, 1900562, 8, 0, 1900563, 8, 0, 1900564, 8, 0, 1900565, 8, 0, 1900566, 8, 0, 1900567, 8, 0, 1900568, 8, 0, 1900569, 8, 0, 1900570, 8, 0, 1900571, 1610612743, 0, 1900572, 10, 0, 1966081, 10, 0, 1966082, 7, 0, 1966083, 8, 0, 1966084, 8, 0, 1966085, 8, 0, 1966086, 8, 0, 1966087, 8, 0, 1966088, 8, 0, 1966089, 8, 0, 1966090, 8, 0, 1966091, 8, 0, 1966092, 8, 0, 1966093, 8, 0, 1966094, 8, 0, 1966095, 8, 0, 1966096, 8, 0, 1966097, 8, 0, 1966098, 8, 0, 1966099, 8, 0, 1966100, 8, 0, 1966101, 8, 0, 1966102, 8, 0, 1966103, 8, 0, 1966104, 8, 0, 1966105, 8, 0, 1966106, 8, 0, 1966107, 1610612743, 0, 1966108, 10, 0, 2031617, 10, 0, 2031618, 10, 0, 2031619, 10, 0, 2031620, 10, 0, 2031621, 10, 0, 2031622, 10, 0, 2031623, 10, 0, 2031624, 10, 0, 2031625, 10, 0, 2031626, 10, 0, 2031627, 10, 0, 2031628, 10, 0, 2031629, 10, 0, 2031630, 10, 0, 2031631, 10, 0, 2031632, 10, 0, 2031633, 10, 0, 2031634, 10, 0, 2031635, 10, 0, 2031636, 10, 0, 2031637, 10, 0, 2031638, 10, 0, 2031639, -1073741819, 0, 2031640, 8, 0, 2031641, 8, 0, 2031642, 8, 0, 2031643, 1610612743, 0, 2031644, 10, 0, 2097174, 10, 0, 2097175, 7, 0, 2097176, 8, 0, 2097177, 8, 0, 2097178, 8, 0, 2097179, 1610612743, 0, 2097180, 10, 0, 2162710, 10, 0, 2162711, 7, 0, 2162712, 8, 0, 2162713, 8, 0, 2162714, 8, 0, 2162715, 1610612743, 0, 2162716, 10, 0, 2228246, 10, 0, 2228247, 7, 0, 2228248, 8, 0, 2228249, 8, 0, 2228250, 8, 0, 2228251, 1610612743, 0, 2228252, 10, 0, 2293782, 10, 0, 2293783, 7, 0, 2293784, 8, 0, 2293785, 8, 0, 2293786, 8, 0, 2293787, 1610612743, 0, 2293788, 10, 0, 2359318, 10, 0, 2359319, 7, 0, 2359320, 8, 0, 2359321, 8, 0, 2359322, 8, 0, 2359323, 1610612743, 0, 2359324, 10, 0, 2424854, 10, 0, 2424855, 7, 0, 2424856, 8, 0, 2424857, 8, 0, 2424858, 8, 0, 2424859, 1610612743, 0, 2424860, 10, 0, 2490384, 10, 0, 2490385, 9, 0, 2490386, 9, 0, 2490387, 9, 0, 2490388, 9, 0, 2490389, 9, 0, 2490390, 9, 0, 2490391, 7, 0, 2490392, 8, 0, 2490393, 8, 0, 2490394, 8, 0, 2490395, 1610612743, 0, 2490396, 9, 0, 2490397, 9, 0, 2490398, 9, 0, 2490399, 9, 0, 2490400, 9, 0, 2490401, 9, 0, 2490402, 10, 0, 2555920, 10, 0, 2555921, 1, 0, 2555922, 0, 0, 2555923, 2, 0, 2555924, 4, 0, 2555925, 0, 0, 2555926, 2, 0, 2555927, 7, 0, 2555928, 8, 0, 2555929, 8, 0, 2555930, 8, 0, 2555931, 1610612743, 0, 2555932, 4, 0, 2555933, 0, 0, 2555934, 2, 0, 2555935, 4, 0, 2555936, 0, 0, 2555937, 536870913, 0, 2555938, 10, 0, 2621456, 10, 0, 2621457, 6, 0, 2621458, -1610612729, 0, 2621459, -1610612729, 0, 2621460, -1610612729, 0, 2621461, -1610612729, 0, 2621462, -1610612729, 0, 2621463, 5, 0, 2621464, 8, 0, 2621465, 8, 0, 2621466, 8, 0, 2621467, -1610612731, 0, 2621468, -1610612729, 0, 2621469, -1610612729, 0, 2621470, -1610612729, 0, 2621471, -1610612729, 0, 2621472, -1610612729, 0, 2621473, -1610612730, 0, 2621474, 10, 0, 2686992, 10, 0, 2686993, 7, 0, 2686994, 8, 0, 2686995, 8, 0, 2686996, 8, 0, 2686997, 8, 0, 2686998, 8, 0, 2686999, 8, 0, 2687000, 8, 0, 2687001, 8, 0, 2687002, 8, 0, 2687003, 8, 0, 2687004, 8, 0, 2687005, 8, 0, 2687006, 8, 0, 2687007, 8, 0, 2687008, 8, 0, 2687009, 1610612743, 0, 2687010, 10, 0, 2752528, 10, 0, 2752529, 7, 0, 2752530, 8, 0, 2752531, 8, 0, 2752532, 8, 0, 2752533, 8, 0, 2752534, 8, 0, 2752535, 8, 0, 2752536, 8, 0, 2752537, 8, 0, 2752538, 8, 0, 2752539, 8, 0, 2752540, 8, 0, 2752541, 8, 0, 2752542, 8, 0, 2752543, 8, 0, 2752544, 8, 0, 2752545, 1610612743, 0, 2752546, 10, 0, 2818064, 10, 0, 2818065, 7, 0, 2818066, 8, 0, 2818067, 8, 0, 2818068, 8, 0, 2818069, 8, 0, 2818070, 8, 0, 2818071, 8, 0, 2818072, 8, 0, 2818073, 8, 0, 2818074, 8, 0, 2818075, 8, 0, 2818076, 8, 0, 2818077, 8, 0, 2818078, 8, 0, 2818079, 8, 0, 2818080, 8, 0, 2818081, 1610612743, 0, 2818082, 10, 0, 2883600, 10, 0, 2883601, 7, 0, 2883602, 8, 0, 2883603, 8, 0, 2883604, 8, 0, 2883605, 8, 0, 2883606, 8, 0, 2883607, 8, 0, 2883608, 8, 0, 2883609, 8, 0, 2883610, 8, 0, 2883611, 8, 0, 2883612, 8, 0, 2883613, 8, 0, 2883614, 8, 0, 2883615, 8, 0, 2883616, 8, 0, 2883617, 1610612743, 0, 2883618, 10, 0, 2949136, 10, 0, 2949137, 7, 0, 2949138, 8, 0, 2949139, 8, 0, 2949140, 8, 0, 2949141, 8, 0, 2949142, 8, 0, 2949143, 8, 0, 2949144, 8, 0, 2949145, 8, 0, 2949146, 8, 0, 2949147, 8, 0, 2949148, 8, 0, 2949149, 8, 0, 2949150, 8, 0, 2949151, 8, 0, 2949152, 8, 0, 2949153, 1610612743, 0, 2949154, 10, 0, 3014672, 10, 0, 3014673, 7, 0, 3014674, 8, 0, 3014675, 8, 0, 3014676, 8, 0, 3014677, 8, 0, 3014678, 8, 0, 3014679, 8, 0, 3014680, 8, 0, 3014681, 8, 0, 3014682, 8, 0, 3014683, 8, 0, 3014684, 8, 0, 3014685, 8, 0, 3014686, 8, 0, 3014687, 8, 0, 3014688, 8, 0, 3014689, 1610612743, 0, 3014690, 10, 0, 3080208, 10, 0, 3080209, 7, 0, 3080210, 8, 0, 3080211, 8, 0, 3080212, 8, 0, 3080213, 8, 0, 3080214, 8, 0, 3080215, 8, 0, 3080216, 8, 0, 3080217, 8, 0, 3080218, 8, 0, 3080219, 8, 0, 3080220, 8, 0, 3080221, 8, 0, 3080222, 8, 0, 3080223, 8, 0, 3080224, 8, 0, 3080225, 1610612743, 0, 3080226, 10, 0, 3145744, 10, 0, 3145745, 7, 0, 3145746, 8, 0, 3145747, 8, 0, 3145748, 8, 0, 3145749, 8, 0, 3145750, 8, 0, 3145751, 8, 0, 3145752, 8, 0, 3145753, 8, 0, 3145754, 8, 0, 3145755, 8, 0, 3145756, 8, 0, 3145757, 8, 0, 3145758, 8, 0, 3145759, 8, 0, 3145760, 8, 0, 3145761, 1610612743, 0, 3145762, 10, 0, 3211280, 10, 0, 3211281, 7, 0, 3211282, 8, 0, 3211283, 8, 0, 3211284, 8, 0, 3211285, 8, 0, 3211286, 8, 0, 3211287, 8, 0, 3211288, 8, 0, 3211289, 8, 0, 3211290, 8, 0, 3211291, 8, 0, 3211292, 8, 0, 3211293, 8, 0, 3211294, 8, 0, 3211295, 8, 0, 3211296, 8, 0, 3211297, 1610612743, 0, 3211298, 10, 0, 3276816, 10, 0, 3276817, 10, 0, 3276818, 10, 0, 3276819, 10, 0, 3276820, 10, 0, 3276821, 10, 0, 3276822, 10, 0, 3276823, 10, 0, 3276824, 10, 0, 3276825, 10, 0, 3276826, 10, 0, 3276827, 10, 0, 3276828, 10, 0, 3276829, 10, 0, 3276830, 10, 0, 3276831, 10, 0, 3276832, 10, 0, 3276833, 10, 0, 3276834, 10, 0 ) +tile_data = PoolIntArray( 131073, 10, 0, 131074, 9, 0, 131075, 9, 0, 131076, 9, 0, 131077, 9, 0, 131078, 9, 0, 131079, 9, 0, 131080, 9, 0, 131081, 9, 0, 131082, 9, 0, 131083, 9, 0, 131084, 9, 0, 131085, 9, 0, 131086, 9, 0, 131087, 9, 0, 131088, 9, 0, 131089, 9, 0, 131090, 9, 0, 131091, 10, 0, 131092, 9, 0, 131093, 9, 0, 131094, 9, 0, 131095, 9, 0, 131096, 7, 0, 131097, 1610612743, 0, 131098, 9, 0, 131099, 9, 0, 131100, 9, 0, 131101, 9, 0, 131102, 9, 0, 131103, 9, 0, 131104, 9, 0, 131105, 9, 0, 131106, 9, 0, 131107, 9, 0, 131108, 9, 0, 131109, 9, 0, 131110, 9, 0, 131111, 9, 0, 131112, 9, 0, 131113, 9, 0, 131114, 9, 0, 131115, 9, 0, 131116, 9, 0, 131117, 9, 0, 131118, 10, 0, 196609, 10, 0, 196610, 1, 0, 196611, 0, 0, 196612, 536870914, 0, 196613, 4, 0, 196614, 3, 0, 196615, 536870914, 0, 196616, 4, 0, 196617, 0, 0, 196618, 536870914, 0, 196619, 536870914, 0, 196620, 536870914, 0, 196621, 536870914, 0, 196622, 4, 0, 196623, 0, 0, 196624, 536870914, 0, 196625, 4, 0, 196626, 536870913, 0, 196627, 10, 0, 196628, 1, 0, 196629, 0, 0, 196630, 536870914, 0, 196631, 4, 0, 196632, 7, 0, 196633, 1610612743, 0, 196634, 4, 0, 196635, 3, 0, 196636, 536870914, 0, 196637, 4, 0, 196638, 0, 0, 196639, 536870914, 0, 196640, 4, 0, 196641, 3, 0, 196642, 0, 0, 196643, 4, 0, 196644, 536870914, 0, 196645, 4, 0, 196646, 0, 0, 196647, 3, 0, 196648, 4, 0, 196649, 3, 0, 196650, 536870914, 0, 196651, 4, 0, 196652, 0, 0, 196653, 536870913, 0, 196654, 10, 0, 262145, 10, 0, 262146, 6, 0, 262147, -1610612729, 0, 262148, -1610612729, 0, 262149, -1610612729, 0, 262150, -1610612729, 0, 262151, -1610612729, 0, 262152, -1610612729, 0, 262153, -1610612729, 0, 262154, -1610612729, 0, 262155, -1610612729, 0, 262156, -1610612729, 0, 262157, -1610612729, 0, 262158, -1610612729, 0, 262159, -1610612729, 0, 262160, -1610612729, 0, 262161, -1610612729, 0, 262162, -1610612730, 0, 262163, 10, 0, 262164, 6, 0, 262165, -1610612729, 0, 262166, -1610612729, 0, 262167, -1610612729, 0, 262168, -1610612729, 0, 262169, -1610612729, 0, 262170, -1610612729, 0, 262171, -1610612729, 0, 262172, -1610612729, 0, 262173, -1610612729, 0, 262174, -1610612729, 0, 262175, -1610612729, 0, 262176, -1610612729, 0, 262177, -1610612729, 0, 262178, -1610612729, 0, 262179, -1610612729, 0, 262180, -1610612729, 0, 262181, -1610612729, 0, 262182, -1610612729, 0, 262183, -1610612729, 0, 262184, -1610612729, 0, 262185, -1610612729, 0, 262186, -1610612729, 0, 262187, -1610612729, 0, 262188, -1610612729, 0, 262189, -1610612730, 0, 262190, 10, 0, 327681, 10, 0, 327682, 7, 0, 327683, 8, 0, 327684, 8, 0, 327685, 8, 0, 327686, 8, 0, 327687, 8, 0, 327688, 8, 0, 327689, 8, 0, 327690, 8, 0, 327691, 8, 0, 327692, 8, 0, 327693, 8, 0, 327694, 8, 0, 327695, 8, 0, 327696, 8, 0, 327697, 8, 0, 327698, 1610612743, 0, 327699, 10, 0, 327700, 7, 0, 327701, 8, 0, 327702, 8, 0, 327703, 8, 0, 327704, 8, 0, 327705, 8, 0, 327706, 8, 0, 327707, 8, 0, 327708, 8, 0, 327709, 8, 0, 327710, 8, 0, 327711, 8, 0, 327712, 8, 0, 327713, 8, 0, 327714, 8, 0, 327715, 8, 0, 327716, 8, 0, 327717, 8, 0, 327718, 8, 0, 327719, 8, 0, 327720, 8, 0, 327721, 8, 0, 327722, 8, 0, 327723, 8, 0, 327724, 8, 0, 327725, 1610612743, 0, 327726, 10, 0, 393217, 10, 0, 393218, 7, 0, 393219, 8, 0, 393220, 8, 0, 393221, 8, 0, 393222, 8, 0, 393223, 8, 0, 393224, 8, 0, 393225, 8, 0, 393226, 8, 0, 393227, 8, 0, 393228, 8, 0, 393229, 8, 0, 393230, 8, 0, 393231, 8, 0, 393232, 8, 0, 393233, 8, 0, 393234, 1610612743, 0, 393235, 10, 0, 393236, 7, 0, 393237, 8, 0, 393238, 8, 0, 393239, 8, 0, 393240, 8, 0, 393241, 8, 0, 393242, 8, 0, 393243, 8, 0, 393244, 8, 0, 393245, 8, 0, 393246, 8, 0, 393247, 8, 0, 393248, 8, 0, 393249, 8, 0, 393250, 8, 0, 393251, 8, 0, 393252, 8, 0, 393253, 8, 0, 393254, 8, 0, 393255, 8, 0, 393256, 8, 0, 393257, 8, 0, 393258, 8, 0, 393259, 8, 0, 393260, 8, 0, 393261, 1610612743, 0, 393262, 10, 0, 458753, 10, 0, 458754, 7, 0, 458755, 8, 0, 458756, 8, 0, 458757, 1610612741, 0, 458758, 9, 0, 458759, 9, 0, 458760, 9, 0, 458761, 9, 0, 458762, 9, 0, 458763, 9, 0, 458764, 9, 0, 458765, 9, 0, 458766, 10, 0, 458767, -1073741819, 0, 458768, 8, 0, 458769, 8, 0, 458770, 1610612743, 0, 458771, 10, 0, 458772, 7, 0, 458773, 8, 0, 458774, 8, 0, 458775, 8, 0, 458776, 8, 0, 458777, 8, 0, 458778, 8, 0, 458779, 8, 0, 458780, 8, 0, 458781, 8, 0, 458782, 8, 0, 458783, 8, 0, 458784, 8, 0, 458785, 8, 0, 458786, 8, 0, 458787, 8, 0, 458788, 8, 0, 458789, 8, 0, 458790, 8, 0, 458791, 8, 0, 458792, 8, 0, 458793, 8, 0, 458794, 8, 0, 458795, 8, 0, 458796, 8, 0, 458797, 1610612743, 0, 458798, 10, 0, 524289, 10, 0, 524290, 7, 0, 524291, 8, 0, 524292, 8, 0, 524293, 536870919, 0, 524294, 4, 0, 524295, 536870914, 0, 524296, 536870914, 0, 524297, 4, 0, 524298, 0, 0, 524299, 536870914, 0, 524300, 4, 0, 524301, 536870913, 0, 524302, 10, 0, 524303, 7, 0, 524304, 8, 0, 524305, 8, 0, 524306, 1610612743, 0, 524307, 10, 0, 524308, 7, 0, 524309, 8, 0, 524310, 8, 0, 524311, 8, 0, 524312, 8, 0, 524313, 8, 0, 524314, 8, 0, 524315, 8, 0, 524316, 8, 0, 524317, 8, 0, 524318, 8, 0, 524319, 8, 0, 524320, 8, 0, 524321, 8, 0, 524322, 8, 0, 524323, 8, 0, 524324, 8, 0, 524325, 8, 0, 524326, 8, 0, 524327, 8, 0, 524328, 8, 0, 524329, 8, 0, 524330, 8, 0, 524331, 8, 0, 524332, 8, 0, 524333, 1610612743, 0, 524334, 10, 0, 589825, 10, 0, 589826, 7, 0, 589827, 8, 0, 589828, 8, 0, 589829, -1610612731, 0, 589830, -1610612729, 0, 589831, -1610612729, 0, 589832, -1610612729, 0, 589833, -1610612729, 0, 589834, -1610612729, 0, 589835, -1610612729, 0, 589836, -1610612729, 0, 589837, -1610612730, 0, 589838, 10, 0, 589839, 7, 0, 589840, 8, 0, 589841, 8, 0, 589842, 1610612743, 0, 589843, 10, 0, 589844, 7, 0, 589845, 8, 0, 589846, 8, 0, 589847, 8, 0, 589848, 8, 0, 589849, 1610612741, 0, 589850, 10, 0, 589851, 9, 0, 589852, 9, 0, 589853, 9, 0, 589854, 9, 0, 589855, 9, 0, 589856, 9, 0, 589857, 9, 0, 589858, 9, 0, 589859, 9, 0, 589860, -1073741819, 0, 589861, 8, 0, 589862, 8, 0, 589863, 8, 0, 589864, 8, 0, 589865, 8, 0, 589866, 8, 0, 589867, 8, 0, 589868, 8, 0, 589869, 1610612743, 0, 589870, 10, 0, 655361, 10, 0, 655362, 7, 0, 655363, 8, 0, 655364, 8, 0, 655365, 8, 0, 655366, 8, 0, 655367, 8, 0, 655368, 8, 0, 655369, 8, 0, 655370, 8, 0, 655371, 8, 0, 655372, 8, 0, 655373, 1610612743, 0, 655374, 10, 0, 655375, 7, 0, 655376, 8, 0, 655377, 8, 0, 655378, 1610612743, 0, 655379, 10, 0, 655380, 7, 0, 655381, 8, 0, 655382, 8, 0, 655383, 8, 0, 655384, 8, 0, 655385, 1610612743, 0, 655386, 10, 0, 655387, 1, 0, 655388, 0, 0, 655389, 536870914, 0, 655390, 4, 0, 655391, 4, 0, 655392, 536870914, 0, 655393, 0, 0, 655394, 4, 0, 655395, 536870914, 0, 655396, 7, 0, 655397, 8, 0, 655398, 8, 0, 655399, 8, 0, 655400, 8, 0, 655401, 8, 0, 655402, 8, 0, 655403, 8, 0, 655404, 8, 0, 655405, 1610612743, 0, 655406, 10, 0, 720897, 10, 0, 720898, 7, 0, 720899, 8, 0, 720900, 8, 0, 720901, 8, 0, 720902, 8, 0, 720903, 8, 0, 720904, 8, 0, 720905, 8, 0, 720906, 1610612741, 0, 720907, 9, 0, 720908, 9, 0, 720909, 9, 0, 720910, 9, 0, 720911, 9, 0, 720912, 9, 0, 720913, 9, 0, 720914, 9, 0, 720915, 10, 0, 720916, 7, 0, 720917, 8, 0, 720918, 8, 0, 720919, 8, 0, 720920, 8, 0, 720921, 1610612743, 0, 720922, 10, 0, 720923, 6, 0, 720924, -1610612729, 0, 720925, -1610612729, 0, 720926, -1610612729, 0, 720927, -1610612729, 0, 720928, -1610612729, 0, 720929, -1610612729, 0, 720930, -1610612729, 0, 720931, -1610612729, 0, 720932, 5, 0, 720933, 8, 0, 720934, 8, 0, 720935, 8, 0, 720936, 8, 0, 720937, 8, 0, 720938, 8, 0, 720939, 8, 0, 720940, 8, 0, 720941, 1610612743, 0, 720942, 10, 0, 786433, 10, 0, 786434, 7, 0, 786435, 8, 0, 786436, 8, 0, 786437, 8, 0, 786438, 8, 0, 786439, 8, 0, 786440, 8, 0, 786441, 8, 0, 786442, 536870919, 0, 786443, 4, 0, 786444, 3, 0, 786445, 536870914, 0, 786446, 4, 0, 786447, 0, 0, 786448, 536870914, 0, 786449, 4, 0, 786450, 536870913, 0, 786451, 10, 0, 786452, 7, 0, 786453, 8, 0, 786454, 8, 0, 786455, 8, 0, 786456, 8, 0, 786457, 536870919, 0, 786458, 10, 0, 786459, 7, 0, 786460, 8, 0, 786461, 8, 0, 786462, 8, 0, 786463, 8, 0, 786464, 8, 0, 786465, 8, 0, 786466, 8, 0, 786467, 8, 0, 786468, 8, 0, 786469, 8, 0, 786470, 8, 0, 786471, 8, 0, 786472, 8, 0, 786473, 8, 0, 786474, 8, 0, 786475, 8, 0, 786476, 8, 0, 786477, 1610612743, 0, 786478, 10, 0, 851969, 10, 0, 851970, 7, 0, 851971, 8, 0, 851972, 8, 0, 851973, 8, 0, 851974, 8, 0, 851975, 8, 0, 851976, 8, 0, 851977, 8, 0, 851978, -1610612731, 0, 851979, -1610612729, 0, 851980, -1610612729, 0, 851981, -1610612729, 0, 851982, -1610612729, 0, 851983, -1610612729, 0, 851984, -1610612729, 0, 851985, -1610612729, 0, 851986, -1610612730, 0, 851987, 10, 0, 851988, 7, 0, 851989, 8, 0, 851990, 1610612741, 0, 851991, 9, 0, 851992, 9, 0, 851993, 9, 0, 851994, 10, 0, 851995, 7, 0, 851996, 8, 0, 851997, 8, 0, 851998, 8, 0, 851999, 8, 0, 852000, 8, 0, 852001, 8, 0, 852002, 8, 0, 852003, 8, 0, 852004, 8, 0, 852005, 8, 0, 852006, 8, 0, 852007, 8, 0, 852008, 8, 0, 852009, 8, 0, 852010, 8, 0, 852011, 8, 0, 852012, 8, 0, 852013, 1610612743, 0, 852014, 10, 0, 917505, 10, 0, 917506, 9, 0, 917507, 9, 0, 917508, 9, 0, 917509, 9, 0, 917510, 9, 0, 917511, -1073741819, 0, 917512, 8, 0, 917513, 8, 0, 917514, 8, 0, 917515, 8, 0, 917516, 8, 0, 917517, 8, 0, 917518, 8, 0, 917519, 8, 0, 917520, 8, 0, 917521, 8, 0, 917522, 1610612743, 0, 917523, 10, 0, 917524, 7, 0, 917525, 8, 0, 917526, 1610612743, 0, 917527, 4, 0, 917528, 0, 0, 917529, 536870913, 0, 917530, 10, 0, 917531, 7, 0, 917532, 8, 0, 917533, 8, 0, 917534, 8, 0, 917535, 8, 0, 917536, 1610612741, 0, 917537, 10, 0, 917538, -1073741819, 0, 917539, 8, 0, 917540, 8, 0, 917541, 8, 0, 917542, 8, 0, 917543, 8, 0, 917544, 8, 0, 917545, 8, 0, 917546, 8, 0, 917547, 8, 0, 917548, 8, 0, 917549, 1610612743, 0, 917550, 10, 0, 983041, 10, 0, 983042, 1, 0, 983043, 536870914, 0, 983044, 4, 0, 983045, 0, 0, 983046, 536870914, 0, 983047, 7, 0, 983048, 8, 0, 983049, 8, 0, 983050, 8, 0, 983051, 8, 0, 983052, 8, 0, 983053, 8, 0, 983054, 8, 0, 983055, 8, 0, 983056, 8, 0, 983057, 8, 0, 983058, 1610612743, 0, 983059, 10, 0, 983060, 7, 0, 983061, 8, 0, 983062, -1610612731, 0, 983063, -1610612729, 0, 983064, -1610612729, 0, 983065, -1610612730, 0, 983066, 10, 0, 983067, 7, 0, 983068, 8, 0, 983069, 8, 0, 983070, 8, 0, 983071, 8, 0, 983072, 1610612743, 0, 983073, 10, 0, 983074, 7, 0, 983075, 8, 0, 983076, 8, 0, 983077, 8, 0, 983078, 8, 0, 983079, 8, 0, 983080, 8, 0, 983081, 8, 0, 983082, 8, 0, 983083, 8, 0, 983084, 8, 0, 983085, 1610612743, 0, 983086, 10, 0, 1048577, 10, 0, 1048578, 6, 0, 1048579, -1610612729, 0, 1048580, -1610612729, 0, 1048581, -1610612729, 0, 1048582, -1610612729, 0, 1048583, 5, 0, 1048584, 8, 0, 1048585, 8, 0, 1048586, 8, 0, 1048587, 8, 0, 1048588, 8, 0, 1048589, 8, 0, 1048590, 8, 0, 1048591, 8, 0, 1048592, 8, 0, 1048593, 8, 0, 1048594, 1610612743, 0, 1048595, 10, 0, 1048596, 7, 0, 1048597, 8, 0, 1048598, 8, 0, 1048599, 8, 0, 1048600, 8, 0, 1048601, 1610612743, 0, 1048602, 9, 0, 1048603, 7, 0, 1048604, 8, 0, 1048605, 8, 0, 1048606, 8, 0, 1048607, 8, 0, 1048608, 1610612743, 0, 1048609, 10, 0, 1048610, 7, 0, 1048611, 8, 0, 1048612, 8, 0, 1048613, 8, 0, 1048614, 8, 0, 1048615, 8, 0, 1048616, 8, 0, 1048617, 8, 0, 1048618, 8, 0, 1048619, 8, 0, 1048620, 8, 0, 1048621, 1610612743, 0, 1048622, 10, 0, 1114113, 10, 0, 1114114, 7, 0, 1114115, 8, 0, 1114116, 8, 0, 1114117, 8, 0, 1114118, 8, 0, 1114119, 8, 0, 1114120, 8, 0, 1114121, 8, 0, 1114122, 8, 0, 1114123, 8, 0, 1114124, 8, 0, 1114125, 8, 0, 1114126, 8, 0, 1114127, 8, 0, 1114128, 8, 0, 1114129, 8, 0, 1114130, 1610612743, 0, 1114131, 10, 0, 1114132, 7, 0, 1114133, 8, 0, 1114134, 8, 0, 1114135, 8, 0, 1114136, 8, 0, 1114137, 1610612743, 0, 1114138, 4, 0, 1114139, 7, 0, 1114140, 8, 0, 1114141, 1610612741, 0, 1114142, 9, 0, 1114143, 9, 0, 1114144, 9, 0, 1114145, 9, 0, 1114146, 9, 0, 1114147, 9, 0, 1114148, 9, 0, 1114149, 9, 0, 1114150, 9, 0, 1114151, 9, 0, 1114152, 9, 0, 1114153, 9, 0, 1114154, 9, 0, 1114155, 9, 0, 1114156, 9, 0, 1114157, 9, 0, 1114158, 10, 0, 1179649, 10, 0, 1179650, 7, 0, 1179651, 8, 0, 1179652, 8, 0, 1179653, 8, 0, 1179654, 8, 0, 1179655, 8, 0, 1179656, 8, 0, 1179657, 8, 0, 1179658, 8, 0, 1179659, 8, 0, 1179660, 8, 0, 1179661, 8, 0, 1179662, 8, 0, 1179663, 8, 0, 1179664, 8, 0, 1179665, 8, 0, 1179666, 1610612743, 0, 1179667, 10, 0, 1179668, 7, 0, 1179669, 8, 0, 1179670, 8, 0, 1179671, 8, 0, 1179672, 8, 0, 1179673, -1610612731, 0, 1179674, -1610612729, 0, 1179675, 5, 0, 1179676, 8, 0, 1179677, 1610612743, 0, 1179678, 4, 0, 1179679, 0, 0, 1179680, 536870914, 0, 1179681, 4, 0, 1179682, 3, 0, 1179683, 536870914, 0, 1179684, 4, 0, 1179685, 3, 0, 1179686, 0, 0, 1179687, 4, 0, 1179688, 3, 0, 1179689, 536870914, 0, 1179690, 4, 0, 1179691, 3, 0, 1179692, 0, 0, 1179693, 536870913, 0, 1179694, 10, 0, 1245185, 10, 0, 1245186, 7, 0, 1245187, 8, 0, 1245188, 8, 0, 1245189, 8, 0, 1245190, 1610612741, 0, 1245191, 9, 0, 1245192, 9, 0, 1245193, 9, 0, 1245194, 9, 0, 1245195, 9, 0, 1245196, 10, 0, 1245197, 9, 0, 1245198, 9, 0, 1245199, 9, 0, 1245200, 9, 0, 1245201, 9, 0, 1245202, 9, 0, 1245203, 9, 0, 1245204, 9, 0, 1245205, 9, 0, 1245206, 10, 0, 1245207, -1073741819, 0, 1245208, 8, 0, 1245209, 8, 0, 1245210, 8, 0, 1245211, 8, 0, 1245212, 8, 0, 1245213, -1610612731, 0, 1245214, -1610612729, 0, 1245215, -1610612729, 0, 1245216, -1610612729, 0, 1245217, -1610612729, 0, 1245218, -1610612729, 0, 1245219, -1610612729, 0, 1245220, -1610612729, 0, 1245221, -1610612729, 0, 1245222, -1610612729, 0, 1245223, -1610612729, 0, 1245224, -1610612729, 0, 1245225, -1610612729, 0, 1245226, -1610612729, 0, 1245227, -1610612729, 0, 1245228, -1610612729, 0, 1245229, -1610612730, 0, 1245230, 10, 0, 1310721, 10, 0, 1310722, 7, 0, 1310723, 8, 0, 1310724, 8, 0, 1310725, 8, 0, 1310726, 1610612743, 0, 1310727, 4, 0, 1310728, 3, 0, 1310729, 536870914, 0, 1310730, 4, 0, 1310731, 536870913, 0, 1310732, 10, 0, 1310733, 1, 0, 1310734, 0, 0, 1310735, 536870914, 0, 1310736, 4, 0, 1310737, 3, 0, 1310738, 536870914, 0, 1310739, 4, 0, 1310740, 3, 0, 1310741, 536870913, 0, 1310742, 10, 0, 1310743, 7, 0, 1310744, 8, 0, 1310745, 8, 0, 1310746, 8, 0, 1310747, 8, 0, 1310748, 8, 0, 1310749, 8, 0, 1310750, 8, 0, 1310751, 8, 0, 1310752, 8, 0, 1310753, 8, 0, 1310754, 8, 0, 1310755, 8, 0, 1310756, 8, 0, 1310757, 8, 0, 1310758, 8, 0, 1310759, 8, 0, 1310760, 8, 0, 1310761, 8, 0, 1310762, 8, 0, 1310763, 8, 0, 1310764, 8, 0, 1310765, 1610612743, 0, 1310766, 10, 0, 1376257, 10, 0, 1376258, 7, 0, 1376259, 8, 0, 1376260, 8, 0, 1376261, 8, 0, 1376262, -1610612731, 0, 1376263, -1610612729, 0, 1376264, -1610612729, 0, 1376265, -1610612729, 0, 1376266, -1610612729, 0, 1376267, -1610612730, 0, 1376268, 10, 0, 1376269, 6, 0, 1376270, -1610612729, 0, 1376271, -1610612729, 0, 1376272, -1610612729, 0, 1376273, -1610612729, 0, 1376274, -1610612729, 0, 1376275, -1610612729, 0, 1376276, -1610612729, 0, 1376277, -1610612730, 0, 1376278, 10, 0, 1376279, 7, 0, 1376280, 8, 0, 1376281, 8, 0, 1376282, 8, 0, 1376283, 8, 0, 1376284, 8, 0, 1376285, 8, 0, 1376286, 8, 0, 1376287, 8, 0, 1376288, 8, 0, 1376289, 8, 0, 1376290, 8, 0, 1376291, 8, 0, 1376292, 8, 0, 1376293, 8, 0, 1376294, 8, 0, 1376295, 8, 0, 1376296, 8, 0, 1376297, 8, 0, 1376298, 8, 0, 1376299, 8, 0, 1376300, 8, 0, 1376301, 1610612743, 0, 1376302, 10, 0, 1441793, 10, 0, 1441794, 7, 0, 1441795, 8, 0, 1441796, 8, 0, 1441797, 8, 0, 1441798, 8, 0, 1441799, 8, 0, 1441800, 8, 0, 1441801, 8, 0, 1441802, 8, 0, 1441803, 1610612743, 0, 1441804, 10, 0, 1441805, 7, 0, 1441806, 8, 0, 1441807, 8, 0, 1441808, 8, 0, 1441809, 8, 0, 1441810, 8, 0, 1441811, 8, 0, 1441812, 8, 0, 1441813, 1610612743, 0, 1441814, 10, 0, 1441815, 7, 0, 1441816, 8, 0, 1441817, 8, 0, 1441818, 8, 0, 1441819, 1610612744, 0, 1441820, 1610612744, 0, 1441821, 1610612744, 0, 1441822, 1610612744, 0, 1441823, 1610612744, 0, 1441824, 1610612744, 0, 1441825, 1610612744, 0, 1441826, 1610612744, 0, 1441827, 1610612744, 0, 1441828, 1610612744, 0, 1441829, 1610612744, 0, 1441830, 1610612744, 0, 1441831, 1610612744, 0, 1441832, 1610612744, 0, 1441833, 1610612744, 0, 1441834, 1610612744, 0, 1441835, 1610612744, 0, 1441836, 1610612744, 0, 1441837, 1610612743, 0, 1441838, 10, 0, 1507329, 10, 0, 1507330, 7, 0, 1507331, 8, 0, 1507332, 8, 0, 1507333, 8, 0, 1507334, 8, 0, 1507335, 8, 0, 1507336, 8, 0, 1507337, 8, 0, 1507338, 8, 0, 1507339, 1610612743, 0, 1507340, 10, 0, 1507341, 7, 0, 1507342, 8, 0, 1507343, 1610612741, 0, 1507344, 9, 0, 1507345, 9, 0, 1507346, 9, 0, 1507347, 9, 0, 1507348, 9, 0, 1507349, 9, 0, 1507350, 10, 0, 1507351, 7, 0, 1507352, 8, 0, 1507353, 8, 0, 1507354, 8, 0, 1507355, 1610612741, 0, 1507356, 10, 0, 1507357, 10, 0, 1507358, 10, 0, 1507359, 10, 0, 1507360, 10, 0, 1507361, 10, 0, 1507362, 10, 0, 1507363, 10, 0, 1507364, 10, 0, 1507365, 10, 0, 1507366, 10, 0, 1507367, 10, 0, 1507368, 10, 0, 1507369, 10, 0, 1507370, 10, 0, 1507371, 10, 0, 1507372, 10, 0, 1507373, 10, 0, 1507374, 10, 0, 1572865, 10, 0, 1572866, 7, 0, 1572867, 8, 0, 1572868, 8, 0, 1572869, 8, 0, 1572870, 8, 0, 1572871, 8, 0, 1572872, 8, 0, 1572873, 8, 0, 1572874, 8, 0, 1572875, 1610612743, 0, 1572876, 10, 0, 1572877, 7, 0, 1572878, 8, 0, 1572879, 1610612743, 0, 1572880, 536870914, 0, 1572881, 4, 0, 1572882, 0, 0, 1572883, 536870914, 0, 1572884, 4, 0, 1572885, 536870913, 0, 1572886, 10, 0, 1572887, 7, 0, 1572888, 8, 0, 1572889, 8, 0, 1572890, 8, 0, 1572891, 1610612743, 0, 1572892, 10, 0, 1638401, 10, 0, 1638402, 7, 0, 1638403, 8, 0, 1638404, 8, 0, 1638405, 8, 0, 1638406, 8, 0, 1638407, 8, 0, 1638408, 8, 0, 1638409, 8, 0, 1638410, 8, 0, 1638411, 1610612743, 0, 1638412, 9, 0, 1638413, 7, 0, 1638414, 8, 0, 1638415, -1610612731, 0, 1638416, -1610612729, 0, 1638417, -1610612729, 0, 1638418, -1610612729, 0, 1638419, -1610612729, 0, 1638420, -1610612729, 0, 1638421, -1610612730, 0, 1638422, 10, 0, 1638423, 7, 0, 1638424, 8, 0, 1638425, 8, 0, 1638426, 8, 0, 1638427, 1610612743, 0, 1638428, 10, 0, 1703937, 10, 0, 1703938, 9, 0, 1703939, 9, 0, 1703940, 9, 0, 1703941, 9, 0, 1703942, 9, 0, 1703943, 9, 0, 1703944, 9, 0, 1703945, -1073741819, 0, 1703946, 8, 0, 1703947, 1610612743, 0, 1703948, 4, 0, 1703949, 7, 0, 1703950, 8, 0, 1703951, 8, 0, 1703952, 8, 0, 1703953, 8, 0, 1703954, 8, 0, 1703955, 8, 0, 1703956, 8, 0, 1703957, 1610612743, 0, 1703958, 9, 0, 1703959, 7, 0, 1703960, 8, 0, 1703961, 8, 0, 1703962, 8, 0, 1703963, 1610612743, 0, 1703964, 10, 0, 1769473, 10, 0, 1769474, 1, 0, 1769475, 0, 0, 1769476, 536870914, 0, 1769477, 4, 0, 1769478, 3, 0, 1769479, 536870914, 0, 1769480, 4, 0, 1769481, 7, 0, 1769482, 8, 0, 1769483, -1610612731, 0, 1769484, -1610612729, 0, 1769485, 5, 0, 1769486, 8, 0, 1769487, 8, 0, 1769488, 8, 0, 1769489, 8, 0, 1769490, 8, 0, 1769491, 8, 0, 1769492, 8, 0, 1769493, 1610612743, 0, 1769494, 4, 0, 1769495, 7, 0, 1769496, 8, 0, 1769497, 8, 0, 1769498, 8, 0, 1769499, 1610612743, 0, 1769500, 10, 0, 1835009, 10, 0, 1835010, 6, 0, 1835011, -1610612729, 0, 1835012, -1610612729, 0, 1835013, -1610612729, 0, 1835014, -1610612729, 0, 1835015, -1610612729, 0, 1835016, -1610612729, 0, 1835017, 5, 0, 1835018, 8, 0, 1835019, 8, 0, 1835020, 8, 0, 1835021, 8, 0, 1835022, 8, 0, 1835023, 8, 0, 1835024, 8, 0, 1835025, 8, 0, 1835026, 8, 0, 1835027, 8, 0, 1835028, 8, 0, 1835029, -1610612731, 0, 1835030, -1610612729, 0, 1835031, 5, 0, 1835032, 8, 0, 1835033, 8, 0, 1835034, 8, 0, 1835035, 1610612743, 0, 1835036, 10, 0, 1900545, 10, 0, 1900546, 7, 0, 1900547, 8, 0, 1900548, 8, 0, 1900549, 8, 0, 1900550, 8, 0, 1900551, 8, 0, 1900552, 8, 0, 1900553, 8, 0, 1900554, 8, 0, 1900555, 8, 0, 1900556, 8, 0, 1900557, 8, 0, 1900558, 8, 0, 1900559, 8, 0, 1900560, 8, 0, 1900561, 8, 0, 1900562, 8, 0, 1900563, 8, 0, 1900564, 8, 0, 1900565, 8, 0, 1900566, 8, 0, 1900567, 8, 0, 1900568, 8, 0, 1900569, 8, 0, 1900570, 8, 0, 1900571, 1610612743, 0, 1900572, 10, 0, 1966081, 10, 0, 1966082, 7, 0, 1966083, 8, 0, 1966084, 8, 0, 1966085, 8, 0, 1966086, 8, 0, 1966087, 8, 0, 1966088, 8, 0, 1966089, 8, 0, 1966090, 8, 0, 1966091, 8, 0, 1966092, 8, 0, 1966093, 8, 0, 1966094, 8, 0, 1966095, 8, 0, 1966096, 8, 0, 1966097, 8, 0, 1966098, 8, 0, 1966099, 8, 0, 1966100, 8, 0, 1966101, 8, 0, 1966102, 8, 0, 1966103, 8, 0, 1966104, 8, 0, 1966105, 8, 0, 1966106, 8, 0, 1966107, 1610612743, 0, 1966108, 10, 0, 2031617, 10, 0, 2031618, 10, 0, 2031619, 10, 0, 2031620, 10, 0, 2031621, 10, 0, 2031622, 10, 0, 2031623, 10, 0, 2031624, 10, 0, 2031625, 10, 0, 2031626, 10, 0, 2031627, 10, 0, 2031628, 10, 0, 2031629, 10, 0, 2031630, 10, 0, 2031631, 10, 0, 2031632, 10, 0, 2031633, 10, 0, 2031634, 10, 0, 2031635, 10, 0, 2031636, 10, 0, 2031637, 10, 0, 2031638, 10, 0, 2031639, -1073741819, 0, 2031640, 8, 0, 2031641, 8, 0, 2031642, 8, 0, 2031643, 1610612743, 0, 2031644, 10, 0, 2097174, 10, 0, 2097175, 7, 0, 2097176, 8, 0, 2097177, 8, 0, 2097178, 8, 0, 2097179, 1610612743, 0, 2097180, 10, 0, 2162710, 10, 0, 2162711, 7, 0, 2162712, 8, 0, 2162713, 8, 0, 2162714, 8, 0, 2162715, 1610612743, 0, 2162716, 10, 0, 2228246, 10, 0, 2228247, 7, 0, 2228248, 8, 0, 2228249, 8, 0, 2228250, 8, 0, 2228251, 1610612743, 0, 2228252, 10, 0, 2293782, 10, 0, 2293783, 7, 0, 2293784, 8, 0, 2293785, 8, 0, 2293786, 8, 0, 2293787, 1610612743, 0, 2293788, 10, 0, 2359318, 10, 0, 2359319, 7, 0, 2359320, 8, 0, 2359321, 8, 0, 2359322, 8, 0, 2359323, 1610612743, 0, 2359324, 10, 0, 2424854, 10, 0, 2424855, 7, 0, 2424856, 8, 0, 2424857, 8, 0, 2424858, 8, 0, 2424859, 1610612743, 0, 2424860, 10, 0, 2490384, 10, 0, 2490385, 9, 0, 2490386, 9, 0, 2490387, 9, 0, 2490388, 9, 0, 2490389, 9, 0, 2490390, 9, 0, 2490391, 7, 0, 2490392, 8, 0, 2490393, 8, 0, 2490394, 8, 0, 2490395, 1610612743, 0, 2490396, 9, 0, 2490397, 9, 0, 2490398, 9, 0, 2490399, 9, 0, 2490400, 9, 0, 2490401, 9, 0, 2490402, 10, 0, 2555920, 10, 0, 2555921, 1, 0, 2555922, 0, 0, 2555923, 2, 0, 2555924, 4, 0, 2555925, 0, 0, 2555926, 2, 0, 2555927, 7, 0, 2555928, 8, 0, 2555929, 8, 0, 2555930, 8, 0, 2555931, 1610612743, 0, 2555932, 4, 0, 2555933, 0, 0, 2555934, 2, 0, 2555935, 4, 0, 2555936, 0, 0, 2555937, 536870913, 0, 2555938, 10, 0, 2621456, 10, 0, 2621457, 6, 0, 2621458, -1610612729, 0, 2621459, -1610612729, 0, 2621460, -1610612729, 0, 2621461, -1610612729, 0, 2621462, -1610612729, 0, 2621463, 5, 0, 2621464, 8, 0, 2621465, 8, 0, 2621466, 8, 0, 2621467, -1610612731, 0, 2621468, -1610612729, 0, 2621469, -1610612729, 0, 2621470, -1610612729, 0, 2621471, -1610612729, 0, 2621472, -1610612729, 0, 2621473, -1610612730, 0, 2621474, 10, 0, 2686992, 10, 0, 2686993, 7, 0, 2686994, 8, 0, 2686995, 8, 0, 2686996, 8, 0, 2686997, 8, 0, 2686998, 8, 0, 2686999, 8, 0, 2687000, 8, 0, 2687001, 8, 0, 2687002, 8, 0, 2687003, 8, 0, 2687004, 8, 0, 2687005, 8, 0, 2687006, 8, 0, 2687007, 8, 0, 2687008, 8, 0, 2687009, 1610612743, 0, 2687010, 10, 0, 2752528, 10, 0, 2752529, 7, 0, 2752530, 8, 0, 2752531, 8, 0, 2752532, 8, 0, 2752533, 8, 0, 2752534, 8, 0, 2752535, 8, 0, 2752536, 8, 0, 2752537, 8, 0, 2752538, 8, 0, 2752539, 8, 0, 2752540, 8, 0, 2752541, 8, 0, 2752542, 8, 0, 2752543, 8, 0, 2752544, 8, 0, 2752545, 1610612743, 0, 2752546, 10, 0, 2818064, 10, 0, 2818065, 7, 0, 2818066, 8, 0, 2818067, 8, 0, 2818068, 8, 0, 2818069, 8, 0, 2818070, 8, 0, 2818071, 8, 0, 2818072, 8, 0, 2818073, 8, 0, 2818074, 8, 0, 2818075, 8, 0, 2818076, 8, 0, 2818077, 8, 0, 2818078, 8, 0, 2818079, 8, 0, 2818080, 8, 0, 2818081, 1610612743, 0, 2818082, 10, 0, 2883600, 10, 0, 2883601, 7, 0, 2883602, 8, 0, 2883603, 8, 0, 2883604, 8, 0, 2883605, 8, 0, 2883606, 8, 0, 2883607, 8, 0, 2883608, 8, 0, 2883609, 8, 0, 2883610, 8, 0, 2883611, 8, 0, 2883612, 8, 0, 2883613, 8, 0, 2883614, 8, 0, 2883615, 8, 0, 2883616, 8, 0, 2883617, 1610612743, 0, 2883618, 10, 0, 2949136, 10, 0, 2949137, 7, 0, 2949138, 8, 0, 2949139, 8, 0, 2949140, 8, 0, 2949141, 8, 0, 2949142, 8, 0, 2949143, 8, 0, 2949144, 8, 0, 2949145, 8, 0, 2949146, 8, 0, 2949147, 8, 0, 2949148, 8, 0, 2949149, 8, 0, 2949150, 8, 0, 2949151, 8, 0, 2949152, 8, 0, 2949153, 1610612743, 0, 2949154, 10, 0, 3014672, 10, 0, 3014673, 7, 0, 3014674, 8, 0, 3014675, 8, 0, 3014676, 8, 0, 3014677, 8, 0, 3014678, 8, 0, 3014679, 8, 0, 3014680, 8, 0, 3014681, 8, 0, 3014682, 8, 0, 3014683, 8, 0, 3014684, 8, 0, 3014685, 8, 0, 3014686, 8, 0, 3014687, 8, 0, 3014688, 8, 0, 3014689, 1610612743, 0, 3014690, 10, 0, 3080208, 10, 0, 3080209, 7, 0, 3080210, 8, 0, 3080211, 8, 0, 3080212, 8, 0, 3080213, 8, 0, 3080214, 8, 0, 3080215, 8, 0, 3080216, 8, 0, 3080217, 8, 0, 3080218, 8, 0, 3080219, 8, 0, 3080220, 8, 0, 3080221, 8, 0, 3080222, 8, 0, 3080223, 8, 0, 3080224, 8, 0, 3080225, 1610612743, 0, 3080226, 10, 0, 3145744, 10, 0, 3145745, 7, 0, 3145746, 8, 0, 3145747, 8, 0, 3145748, 8, 0, 3145749, 8, 0, 3145750, 8, 0, 3145751, 8, 0, 3145752, 8, 0, 3145753, 8, 0, 3145754, 8, 0, 3145755, 8, 0, 3145756, 8, 0, 3145757, 8, 0, 3145758, 8, 0, 3145759, 8, 0, 3145760, 8, 0, 3145761, 1610612743, 0, 3145762, 10, 0, 3211280, 10, 0, 3211281, 7, 0, 3211282, 8, 0, 3211283, 8, 0, 3211284, 8, 0, 3211285, 8, 0, 3211286, 8, 0, 3211287, 8, 0, 3211288, 8, 0, 3211289, 8, 0, 3211290, 8, 0, 3211291, 8, 0, 3211292, 8, 0, 3211293, 8, 0, 3211294, 8, 0, 3211295, 8, 0, 3211296, 8, 0, 3211297, 1610612743, 0, 3211298, 10, 0, 3276816, 10, 0, 3276817, 10, 0, 3276818, 10, 0, 3276819, 10, 0, 3276820, 10, 0, 3276821, 10, 0, 3276822, 10, 0, 3276823, 10, 0, 3276824, 10, 0, 3276825, 10, 0, 3276826, 10, 0, 3276827, 10, 0, 3276828, 10, 0, 3276829, 10, 0, 3276830, 10, 0, 3276831, 10, 0, 3276832, 10, 0, 3276833, 10, 0, 3276834, 10, 0 ) -[node name="Fuzz" parent="." groups=[ -"Enemies", -] instance=ExtResource( 18 )] +[node name="Fuzz" parent="." groups=["Enemies"] instance=ExtResource( 18 )] position = Vector2( 1584.31, 2490.97 ) -[node name="Fuzz2" parent="." groups=[ -"Enemies", -] instance=ExtResource( 18 )] +[node name="Fuzz2" parent="." groups=["Enemies"] instance=ExtResource( 18 )] position = Vector2( 1735.76, 2394.75 ) [node name="Player" parent="." instance=ExtResource( 19 )] position = Vector2( 1659.14, 3027.29 ) -[node name="Fuzz3" parent="." groups=[ -"Enemies", -] instance=ExtResource( 18 )] +[node name="Fuzz3" parent="." groups=["Enemies"] instance=ExtResource( 18 )] position = Vector2( 956.916, 1784.36 ) rotation = -0.00252581 -[node name="Fuzz4" parent="." groups=[ -"Enemies", -] instance=ExtResource( 18 )] +[node name="Fuzz4" parent="." groups=["Enemies"] instance=ExtResource( 18 )] position = Vector2( 1084.05, 1708.07 ) rotation = -0.00252581 -[node name="Fuzz5" parent="." groups=[ -"Enemies", -] instance=ExtResource( 18 )] +[node name="Fuzz5" parent="." groups=["Enemies"] instance=ExtResource( 18 )] position = Vector2( 952.678, 1608.48 ) -[node name="Fuzz6" parent="." groups=[ -"Enemies", -] instance=ExtResource( 18 )] +[node name="Fuzz6" parent="." groups=["Enemies"] instance=ExtResource( 18 )] position = Vector2( 2135.04, 1267.34 ) -[node name="Fuzz7" parent="." groups=[ -"Enemies", -] instance=ExtResource( 18 )] +[node name="Fuzz7" parent="." groups=["Enemies"] instance=ExtResource( 18 )] position = Vector2( 336.071, 1487.71 ) -[node name="Fuzz8" parent="." groups=[ -"Enemies", -] instance=ExtResource( 18 )] +[node name="Fuzz8" parent="." groups=["Enemies"] instance=ExtResource( 18 )] position = Vector2( 1442.15, 1082.99 ) -[node name="Beholder" parent="." groups=[ -"Enemies", -] instance=ExtResource( 20 )] +[node name="Beholder" parent="." groups=["Enemies"] instance=ExtResource( 20 )] position = Vector2( 360.114, 1102.07 ) -[node name="Beholder2" parent="." groups=[ -"Enemies", -] instance=ExtResource( 20 )] +[node name="Beholder2" parent="." groups=["Enemies"] instance=ExtResource( 20 )] position = Vector2( 842.773, 1104.32 ) -[node name="Beholder3" parent="." groups=[ -"Enemies", -] instance=ExtResource( 20 )] +[node name="Beholder3" parent="." groups=["Enemies"] instance=ExtResource( 20 )] position = Vector2( 506.034, 729.416 ) -[node name="Beholder4" parent="." groups=[ -"Enemies", -] instance=ExtResource( 20 )] +[node name="Beholder4" parent="." groups=["Enemies"] instance=ExtResource( 20 )] position = Vector2( 2510.75, 922.479 ) -[node name="Beholder5" parent="." groups=[ -"Enemies", -] instance=ExtResource( 20 )] +[node name="Beholder5" parent="." groups=["Enemies"] instance=ExtResource( 20 )] position = Vector2( 1475.84, 540.842 ) -[node name="Beholder6" parent="." groups=[ -"Enemies", -] instance=ExtResource( 20 )] +[node name="Beholder6" parent="." groups=["Enemies"] instance=ExtResource( 20 )] position = Vector2( 2648.35, 361.2 ) -[node name="Beholder7" parent="." groups=[ -"Enemies", -] instance=ExtResource( 20 )] +[node name="Beholder7" parent="." groups=["Enemies"] instance=ExtResource( 20 )] position = Vector2( 2189.31, 396.876 ) [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] @@ -348,12 +355,24 @@ stream = ExtResource( 21 ) autoplay = true [node name="Item" parent="." instance=ExtResource( 1 )] -position = Vector2( 1640.55, 2922.1 ) +position = Vector2( 2829, 1042 ) [node name="Item2" parent="." instance=ExtResource( 1 )] -position = Vector2( 1547.8, 3020.78 ) +position = Vector2( 1185, 2655 ) [node name="Chest" parent="." instance=ExtResource( 2 )] -position = Vector2( 1546.87, 3088.12 ) +position = Vector2( 1324, 1422 ) + +[node name="Gate" type="Sprite" parent="."] +position = Vector2( 1600.75, 191.75 ) +scale = Vector2( 2.03906, 1.97656 ) +texture = ExtResource( 3 ) + +[node name="StaticBody2D" type="StaticBody2D" parent="Gate"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Gate/StaticBody2D"] +position = Vector2( 1.34882, -0.37944 ) +shape = SubResource( 11 ) +[connection signal="body_exited" from="Dungeon" to="." method="_on_Dungeon_body_exited"] [connection signal="open" from="Chest" to="." method="_on_Chest_open"] diff --git a/project/src/Player.gd b/project/src/Player.gd index 4357b4b..6f623f6 100644 --- a/project/src/Player.gd +++ b/project/src/Player.gd @@ -214,3 +214,14 @@ func spawn_particles(par_tex): particles.emitting = true particles.z_index = 100 get_parent().call_deferred("add_child", particles) + + +func _on_InventoryButton_toggled(button_pressed): + if button_pressed: + pause() + else: + unpause() + + +func _on_WeaponButton_pressed(): + switch_weapon() diff --git a/project/src/Player.tscn b/project/src/Player.tscn index acb5a83..f0bf3a4 100644 --- a/project/src/Player.tscn +++ b/project/src/Player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=2] +[gd_scene load_steps=18 format=2] [ext_resource path="res://src/Player.gd" type="Script" id=1] [ext_resource path="res://assets/Player/walk.png" type="Texture" id=2] @@ -12,16 +12,6 @@ [sub_resource type="SpriteFrames" id=1] animations = [ { -"frames": [ ExtResource( 3 ) ], -"loop": true, -"name": "idle", -"speed": 5.0 -}, { -"frames": [ ExtResource( 5 ) ], -"loop": true, -"name": "killed", -"speed": 0.5 -}, { "frames": [ ExtResource( 6 ) ], "loop": true, "name": "attack", @@ -36,12 +26,45 @@ animations = [ { "loop": true, "name": "walk", "speed": 5.0 +}, { +"frames": [ ExtResource( 5 ) ], +"loop": true, +"name": "killed", +"speed": 0.5 +}, { +"frames": [ ExtResource( 3 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 } ] [sub_resource type="CapsuleShape2D" id=2] radius = 28.9106 height = 13.416 +[sub_resource type="StyleBoxFlat" id=3] +bg_color = Color( 0.6, 0.6, 0.6, 0 ) +border_color = Color( 0.8, 0.8, 0.8, 0 ) + +[sub_resource type="StyleBoxFlat" id=9] +bg_color = Color( 0.6, 0.6, 0.6, 0 ) +border_color = Color( 0.8, 0.8, 0.8, 0 ) + +[sub_resource type="StyleBoxFlat" id=4] +bg_color = Color( 0.6, 0.6, 0.6, 0 ) +border_color = Color( 0.8, 0.8, 0.8, 0 ) + +[sub_resource type="StyleBoxFlat" id=7] +bg_color = Color( 0.6, 0.6, 0.6, 0 ) +border_color = Color( 0.8, 0.8, 0.8, 0 ) + +[sub_resource type="StyleBoxFlat" id=8] +bg_color = Color( 0.6, 0.6, 0.6, 0 ) +border_color = Color( 0.8, 0.8, 0.8, 0 ) + +[sub_resource type="StyleBoxFlat" id=6] +bg_color = Color( 0.6, 0.6, 0.6, 0 ) + [node name="Player" type="KinematicBody2D"] z_index = 2 script = ExtResource( 1 ) @@ -70,4 +93,31 @@ margin_top = -300.507 margin_right = -501.347 margin_bottom = -300.507 +[node name="InventoryButton" type="Button" parent="."] +margin_left = -440.0 +margin_top = -256.0 +margin_right = -383.0 +margin_bottom = -203.0 +custom_styles/hover = SubResource( 3 ) +custom_styles/pressed = SubResource( 9 ) +custom_styles/normal = SubResource( 4 ) +toggle_mode = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="WeaponButton" type="Button" parent="."] +margin_left = 240.0 +margin_top = 152.0 +margin_right = 454.0 +margin_bottom = 242.0 +custom_styles/hover = SubResource( 7 ) +custom_styles/pressed = SubResource( 8 ) +custom_styles/normal = SubResource( 6 ) +__meta__ = { +"_edit_use_anchors_": false +} + [connection signal="animation_finished" from="AnimatedSprite" to="." method="_on_AnimatedSprite_animation_finished"] +[connection signal="toggled" from="InventoryButton" to="." method="_on_InventoryButton_toggled"] +[connection signal="pressed" from="WeaponButton" to="." method="_on_WeaponButton_pressed"] diff --git a/project/src/TitleScreen.tscn b/project/src/TitleScreen.tscn index f1f1587..aeed9fe 100644 --- a/project/src/TitleScreen.tscn +++ b/project/src/TitleScreen.tscn @@ -67,10 +67,10 @@ scale = Vector2( 0.5, 0.5 ) texture = ExtResource( 1 ) [node name="StartButton" type="Button" parent="."] -margin_left = 427.0 -margin_top = 415.0 -margin_right = 552.0 -margin_bottom = 449.0 +margin_left = 448.0 +margin_top = 413.0 +margin_right = 573.0 +margin_bottom = 447.0 custom_colors/font_color = Color( 0, 0, 0, 1 ) custom_colors/font_color_hover = Color( 0, 0, 0, 1 ) custom_styles/hover = SubResource( 2 ) @@ -81,9 +81,9 @@ __meta__ = { } [node name="Instructions" type="Button" parent="."] -margin_left = 427.0 +margin_left = 448.0 margin_top = 470.0 -margin_right = 552.0 +margin_right = 573.0 margin_bottom = 504.0 custom_colors/font_color = Color( 0, 0, 0, 1 ) custom_colors/font_color_hover = Color( 0, 0, 0, 1 ) @@ -145,6 +145,9 @@ custom_styles/normal = SubResource( 11 ) text = "Controls Use the arrow keys to move around Use the mouse to attack, collect and interact with enemies and objects +Click the backback (top left) or press E to access inventory +Click the weapons (bottom right) to change weapons + How to Win Defeat all the enemies to open the door and then excape the dungeon" From 676cdad8c983ad7794715e02678526236023e5d8 Mon Sep 17 00:00:00 2001 From: Lloyd Rowe Date: Sun, 21 Nov 2021 16:40:37 -0500 Subject: [PATCH 3/4] Fix for opening gate --- project/src/Level.gd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/project/src/Level.gd b/project/src/Level.gd index 06a4fea..251a9e9 100644 --- a/project/src/Level.gd +++ b/project/src/Level.gd @@ -9,7 +9,8 @@ func _ready(): func _process(_delta): var no_enemies = get_tree().get_nodes_in_group("Enemies").empty() if no_enemies: - $Gate.visible = false; + $Gate.visible = false + $Gate/StaticBody2D/CollisionShape2D.disabled = true $Player/HUD/DoorLabel.show() From 70501602ae9f3a31b1d2268ad78b53fb140ba7c3 Mon Sep 17 00:00:00 2001 From: Lloyd Rowe Date: Sun, 21 Nov 2021 16:44:34 -0500 Subject: [PATCH 4/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 09a8a78..1bbb346 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Repository for final project. Created by Michael Heckman, Cameron Slash, and Lloyd Rowe. ## Instructions -Use the arrow keys or wasd to move around. Aim and left-click with the mouse to attack enemies. Stun enemies by running into them with your bow out. Open your inventory with E. Pick up items on the ground by attacking them/running into them with a bow. Win the game by defeating all the monsters. +Use the arrow keys or wasd to move around. Aim and left-click with the mouse to attack enemies. Stun enemies by running into them with your bow out. Open your inventory with E or by clicking the backpack icon. Switch weapons by pressing R or clicking the weapons icon. Pick up items on the ground by attacking them/running into them with a bow. Win the game by defeating all the monsters and escaping through the door that opens. ## Project Report