From 63b5b54db042df426a289d593bf0a4e513ed6f73 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 24 May 2024 15:15:23 +0200 Subject: [PATCH] feat: tweaks to various mechanics --- godot/GameObjects/aiming_beam.tscn | 2 +- godot/GameObjects/drone.tscn | 2 +- godot/GameObjects/player_turret.tscn | 4 +- godot/GameObjects/shield_powerup.tscn | 4 +- godot/GameObjects/turret.tscn | 6 ++- godot/Models/{World/City => }/city.tres | 0 .../{World/Harbour => }/containers.tres | 0 godot/Models/{World/Harbour => }/crane.tres | 0 godot/Models/{World/Forest => }/forest.tres | 0 godot/WorldObjects/City/building_square.tscn | 2 +- godot/WorldObjects/City/building_tall.tscn | 2 +- godot/WorldObjects/Forest/tree_1.tscn | 2 +- godot/WorldObjects/Harbour/container_1.tscn | 2 +- godot/WorldObjects/Harbour/crane.tscn | 2 +- godot/WorldObjects/Harbour/warehouse.tscn | 2 +- godot/WorldObjects/wall.tscn | 2 +- godot/project.godot | 6 ++- src/beam.cpp | 12 ++++-- src/car_physics.cpp | 4 ++ src/car_physics.hpp | 1 + src/car_player.cpp | 15 ++++++++ src/car_player.hpp | 17 +++++++-- src/damage_area.cpp | 2 +- src/drone.cpp | 2 +- src/turret.cpp | 37 ++++++++++++++++--- src/turret.hpp | 5 ++- src/weapon_pickup.cpp | 3 +- 27 files changed, 104 insertions(+), 32 deletions(-) rename godot/Models/{World/City => }/city.tres (100%) rename godot/Models/{World/Harbour => }/containers.tres (100%) rename godot/Models/{World/Harbour => }/crane.tres (100%) rename godot/Models/{World/Forest => }/forest.tres (100%) diff --git a/godot/GameObjects/aiming_beam.tscn b/godot/GameObjects/aiming_beam.tscn index d26c223..1b414c2 100644 --- a/godot/GameObjects/aiming_beam.tscn +++ b/godot/GameObjects/aiming_beam.tscn @@ -6,7 +6,7 @@ albedo_color = Color(0.535553, 0.57272, 1, 1) [sub_resource type="CapsuleMesh" id="CapsuleMesh_2fqgx"] material = SubResource("StandardMaterial3D_36cjj") -radius = 0.195 +radius = 0.05 [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_v1t6q"] radius = 0.308023 diff --git a/godot/GameObjects/drone.tscn b/godot/GameObjects/drone.tscn index 1042df5..df2a183 100644 --- a/godot/GameObjects/drone.tscn +++ b/godot/GameObjects/drone.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=9 format=3 uid="uid://ccfpovpj7uvo"] [ext_resource type="PackedScene" uid="uid://dxyimydfpu8jp" path="res://GameObjects/damage_area.tscn" id="1_fajyr"] -[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/World/City/city.tres" id="2_2ou5w"] +[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/city.tres" id="2_2ou5w"] [sub_resource type="SphereShape3D" id="SphereShape3D_i7yu8"] radius = 2.1793 diff --git a/godot/GameObjects/player_turret.tscn b/godot/GameObjects/player_turret.tscn index cb97f71..ed0d7b1 100644 --- a/godot/GameObjects/player_turret.tscn +++ b/godot/GameObjects/player_turret.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=7 format=3 uid="uid://1eawpg0buvah"] +[gd_scene load_steps=8 format=3 uid="uid://1eawpg0buvah"] [ext_resource type="PackedScene" uid="uid://b74cqcryut76c" path="res://GameObjects/anti_air_beam.tscn" id="1_newd3"] +[ext_resource type="PackedScene" uid="uid://g5cbht0novdc" path="res://GameObjects/aiming_beam.tscn" id="2_blu28"] [ext_resource type="PackedScene" uid="uid://v5p6ih28q6ro" path="res://Models/SM_Wep_Shotgun_Plasma_01.fbx" id="2_vsdye"] [sub_resource type="CylinderMesh" id="CylinderMesh_1btvq"] @@ -19,6 +20,7 @@ radius = 0.392821 [node name="Turret" type="Turret"] attack_classes = [&"EnemyTargetBody"] beam_scene = ExtResource("1_newd3") +guiding_beam_scene = ExtResource("2_blu28") fire_time = 0.2 charge_time = 0.0 lock_time = 0.5 diff --git a/godot/GameObjects/shield_powerup.tscn b/godot/GameObjects/shield_powerup.tscn index 6348d03..f22a932 100644 --- a/godot/GameObjects/shield_powerup.tscn +++ b/godot/GameObjects/shield_powerup.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://36ngfq558txm" path="res://Models/World/City/PolygonScifi_Emissive_01.png" id="2_lmfp5"] [ext_resource type="Texture2D" uid="uid://bdvpld7jdk44r" path="res://Models/World/City/PolygonSciFiCity_Texture_Metallic.tga" id="3_r3h52"] [ext_resource type="Texture2D" uid="uid://dem18e85bmfw8" path="res://Models/World/City/PolygonSciFiCity_Texture_Normal.png" id="4_pmkye"] -[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/World/City/city.tres" id="5_h2bqu"] +[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/city.tres" id="5_g1d5n"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bvv8o"] transparency = 1 @@ -45,7 +45,7 @@ _surfaces = [{ "index_count": 5868, "index_data": PackedByteArray(0, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 3, 0, 4, 0, 0, 0, 5, 0, 7, 0, 6, 0, 5, 0, 6, 0, 8, 0, 8, 0, 9, 0, 5, 0, 9, 0, 8, 0, 10, 0, 11, 0, 13, 0, 12, 0, 12, 0, 14, 0, 11, 0, 14, 0, 16, 0, 15, 0, 15, 0, 11, 0, 14, 0, 17, 0, 19, 0, 18, 0, 18, 0, 21, 0, 20, 0, 18, 0, 22, 0, 17, 0, 20, 0, 22, 0, 18, 0, 23, 0, 25, 0, 24, 0, 23, 0, 24, 0, 26, 0, 26, 0, 27, 0, 23, 0, 27, 0, 26, 0, 28, 0, 29, 0, 31, 0, 30, 0, 29, 0, 30, 0, 32, 0, 32, 0, 34, 0, 33, 0, 33, 0, 29, 0, 32, 0, 35, 0, 37, 0, 36, 0, 36, 0, 38, 0, 35, 0, 38, 0, 36, 0, 39, 0, 39, 0, 40, 0, 38, 0, 41, 0, 43, 0, 42, 0, 42, 0, 43, 0, 44, 0, 44, 0, 46, 0, 45, 0, 45, 0, 42, 0, 44, 0, 47, 0, 49, 0, 48, 0, 48, 0, 51, 0, 50, 0, 48, 0, 50, 0, 47, 0, 50, 0, 51, 0, 52, 0, 53, 0, 55, 0, 54, 0, 53, 0, 54, 0, 56, 0, 56, 0, 58, 0, 57, 0, 57, 0, 53, 0, 56, 0, 59, 0, 61, 0, 60, 0, 60, 0, 62, 0, 59, 0, 62, 0, 60, 0, 63, 0, 63, 0, 64, 0, 62, 0, 65, 0, 67, 0, 66, 0, 66, 0, 69, 0, 68, 0, 66, 0, 70, 0, 65, 0, 68, 0, 70, 0, 66, 0, 71, 0, 73, 0, 72, 0, 72, 0, 73, 0, 74, 0, 74, 0, 76, 0, 75, 0, 75, 0, 72, 0, 74, 0, 77, 0, 79, 0, 78, 0, 77, 0, 78, 0, 80, 0, 80, 0, 81, 0, 77, 0, 81, 0, 80, 0, 82, 0, 83, 0, 85, 0, 84, 0, 84, 0, 87, 0, 86, 0, 87, 0, 88, 0, 86, 0, 86, 0, 83, 0, 84, 0, 89, 0, 91, 0, 90, 0, 89, 0, 92, 0, 91, 0, 90, 0, 93, 0, 89, 0, 92, 0, 94, 0, 91, 0, 95, 0, 97, 0, 96, 0, 96, 0, 98, 0, 95, 0, 98, 0, 96, 0, 99, 0, 99, 0, 100, 0, 98, 0, 101, 0, 103, 0, 102, 0, 102, 0, 103, 0, 104, 0, 104, 0, 106, 0, 105, 0, 105, 0, 102, 0, 104, 0, 107, 0, 109, 0, 108, 0, 108, 0, 109, 0, 110, 0, 110, 0, 112, 0, 111, 0, 111, 0, 108, 0, 110, 0, 113, 0, 115, 0, 114, 0, 113, 0, 114, 0, 116, 0, 116, 0, 117, 0, 113, 0, 117, 0, 116, 0, 118, 0, 119, 0, 121, 0, 120, 0, 120, 0, 123, 0, 122, 0, 123, 0, 124, 0, 122, 0, 122, 0, 119, 0, 120, 0, 125, 0, 127, 0, 126, 0, 125, 0, 128, 0, 127, 0, 126, 0, 130, 0, 129, 0, 126, 0, 129, 0, 125, 0, 131, 0, 133, 0, 132, 0, 132, 0, 134, 0, 131, 0, 133, 0, 136, 0, 135, 0, 133, 0, 135, 0, 132, 0, 137, 0, 139, 0, 138, 0, 138, 0, 141, 0, 140, 0, 138, 0, 142, 0, 137, 0, 140, 0, 142, 0, 138, 0, 143, 0, 145, 0, 144, 0, 144, 0, 145, 0, 146, 0, 146, 0, 148, 0, 147, 0, 147, 0, 144, 0, 146, 0, 149, 0, 151, 0, 150, 0, 150, 0, 152, 0, 149, 0, 152, 0, 154, 0, 153, 0, 153, 0, 149, 0, 152, 0, 155, 0, 157, 0, 156, 0, 156, 0, 158, 0, 155, 0, 157, 0, 155, 0, 159, 0, 159, 0, 160, 0, 157, 0, 161, 0, 163, 0, 162, 0, 162, 0, 165, 0, 164, 0, 165, 0, 166, 0, 164, 0, 164, 0, 161, 0, 162, 0, 167, 0, 169, 0, 168, 0, 168, 0, 170, 0, 167, 0, 169, 0, 172, 0, 171, 0, 171, 0, 168, 0, 169, 0, 173, 0, 175, 0, 174, 0, 174, 0, 176, 0, 173, 0, 175, 0, 173, 0, 177, 0, 177, 0, 178, 0, 175, 0, 179, 0, 181, 0, 180, 0, 180, 0, 182, 0, 179, 0, 181, 0, 179, 0, 183, 0, 183, 0, 184, 0, 181, 0, 185, 0, 187, 0, 186, 0, 186, 0, 188, 0, 185, 0, 187, 0, 185, 0, 189, 0, 189, 0, 190, 0, 187, 0, 191, 0, 193, 0, 192, 0, 192, 0, 194, 0, 191, 0, 193, 0, 195, 0, 192, 0, 193, 0, 196, 0, 195, 0, 197, 0, 199, 0, 198, 0, 198, 0, 200, 0, 197, 0, 199, 0, 201, 0, 198, 0, 199, 0, 202, 0, 201, 0, 203, 0, 205, 0, 204, 0, 203, 0, 206, 0, 205, 0, 204, 0, 207, 0, 203, 0, 204, 0, 208, 0, 207, 0, 209, 0, 211, 0, 210, 0, 209, 0, 213, 0, 212, 0, 210, 0, 214, 0, 209, 0, 212, 0, 211, 0, 209, 0, 215, 0, 217, 0, 216, 0, 216, 0, 218, 0, 215, 0, 217, 0, 215, 0, 219, 0, 219, 0, 220, 0, 217, 0, 221, 0, 223, 0, 222, 0, 221, 0, 224, 0, 223, 0, 222, 0, 225, 0, 221, 0, 223, 0, 224, 0, 226, 0, 227, 0, 229, 0, 228, 0, 227, 0, 230, 0, 229, 0, 228, 0, 232, 0, 231, 0, 231, 0, 227, 0, 228, 0, 233, 0, 235, 0, 234, 0, 233, 0, 236, 0, 235, 0, 234, 0, 237, 0, 233, 0, 234, 0, 238, 0, 237, 0, 239, 0, 241, 0, 240, 0, 240, 0, 243, 0, 242, 0, 240, 0, 242, 0, 239, 0, 242, 0, 243, 0, 244, 0, 245, 0, 247, 0, 246, 0, 245, 0, 249, 0, 248, 0, 246, 0, 250, 0, 245, 0, 248, 0, 247, 0, 245, 0, 251, 0, 253, 0, 252, 0, 251, 0, 254, 0, 253, 0, 252, 0, 0, 1, 255, 0, 255, 0, 251, 0, 252, 0, 1, 1, 3, 1, 2, 1, 1, 1, 4, 1, 3, 1, 2, 1, 5, 1, 1, 1, 2, 1, 6, 1, 5, 1, 7, 1, 9, 1, 8, 1, 8, 1, 11, 1, 10, 1, 8, 1, 10, 1, 7, 1, 10, 1, 11, 1, 12, 1, 13, 1, 15, 1, 14, 1, 13, 1, 16, 1, 15, 1, 14, 1, 17, 1, 13, 1, 15, 1, 16, 1, 18, 1, 19, 1, 21, 1, 20, 1, 19, 1, 22, 1, 21, 1, 20, 1, 24, 1, 23, 1, 23, 1, 19, 1, 20, 1, 25, 1, 27, 1, 26, 1, 25, 1, 28, 1, 27, 1, 26, 1, 30, 1, 29, 1, 29, 1, 25, 1, 26, 1, 31, 1, 33, 1, 32, 1, 31, 1, 34, 1, 33, 1, 32, 1, 35, 1, 31, 1, 32, 1, 36, 1, 35, 1, 37, 1, 39, 1, 38, 1, 38, 1, 40, 1, 37, 1, 39, 1, 37, 1, 41, 1, 41, 1, 42, 1, 39, 1, 43, 1, 45, 1, 44, 1, 43, 1, 46, 1, 45, 1, 44, 1, 47, 1, 43, 1, 44, 1, 48, 1, 47, 1, 49, 1, 51, 1, 50, 1, 49, 1, 52, 1, 51, 1, 50, 1, 53, 1, 49, 1, 50, 1, 54, 1, 53, 1, 55, 1, 57, 1, 56, 1, 55, 1, 58, 1, 57, 1, 56, 1, 60, 1, 59, 1, 56, 1, 59, 1, 55, 1, 61, 1, 63, 1, 62, 1, 61, 1, 64, 1, 63, 1, 62, 1, 66, 1, 65, 1, 65, 1, 61, 1, 62, 1, 67, 1, 69, 1, 68, 1, 68, 1, 70, 1, 67, 1, 69, 1, 72, 1, 71, 1, 71, 1, 68, 1, 69, 1, 73, 1, 75, 1, 74, 1, 74, 1, 76, 1, 73, 1, 76, 1, 78, 1, 77, 1, 77, 1, 73, 1, 76, 1, 79, 1, 81, 1, 80, 1, 79, 1, 82, 1, 81, 1, 80, 1, 83, 1, 79, 1, 83, 1, 84, 1, 79, 1, 85, 1, 87, 1, 86, 1, 86, 1, 88, 1, 85, 1, 88, 1, 89, 1, 85, 1, 89, 1, 90, 1, 85, 1, 91, 1, 93, 1, 92, 1, 91, 1, 94, 1, 93, 1, 93, 1, 96, 1, 95, 1, 95, 1, 92, 1, 93, 1, 97, 1, 99, 1, 98, 1, 97, 1, 100, 1, 99, 1, 99, 1, 102, 1, 101, 1, 101, 1, 98, 1, 99, 1, 103, 1, 105, 1, 104, 1, 104, 1, 106, 1, 103, 1, 105, 1, 108, 1, 107, 1, 107, 1, 104, 1, 105, 1, 109, 1, 111, 1, 110, 1, 109, 1, 110, 1, 112, 1, 112, 1, 113, 1, 109, 1, 112, 1, 114, 1, 113, 1, 115, 1, 117, 1, 116, 1, 115, 1, 119, 1, 118, 1, 116, 1, 120, 1, 115, 1, 118, 1, 117, 1, 115, 1, 121, 1, 123, 1, 122, 1, 121, 1, 122, 1, 124, 1, 124, 1, 125, 1, 121, 1, 123, 1, 126, 1, 122, 1, 127, 1, 129, 1, 128, 1, 128, 1, 130, 1, 127, 1, 129, 1, 127, 1, 131, 1, 131, 1, 132, 1, 129, 1, 133, 1, 135, 1, 134, 1, 133, 1, 137, 1, 136, 1, 134, 1, 137, 1, 133, 1, 137, 1, 138, 1, 136, 1, 139, 1, 141, 1, 140, 1, 139, 1, 142, 1, 141, 1, 140, 1, 144, 1, 143, 1, 140, 1, 143, 1, 139, 1, 145, 1, 147, 1, 146, 1, 146, 1, 148, 1, 145, 1, 147, 1, 145, 1, 149, 1, 149, 1, 150, 1, 147, 1, 151, 1, 153, 1, 152, 1, 151, 1, 155, 1, 154, 1, 152, 1, 155, 1, 151, 1, 154, 1, 156, 1, 151, 1, 157, 1, 159, 1, 158, 1, 157, 1, 161, 1, 160, 1, 158, 1, 161, 1, 157, 1, 161, 1, 162, 1, 160, 1, 163, 1, 165, 1, 164, 1, 163, 1, 166, 1, 165, 1, 164, 1, 167, 1, 163, 1, 167, 1, 164, 1, 168, 1, 169, 1, 171, 1, 170, 1, 170, 1, 172, 1, 169, 1, 171, 1, 169, 1, 173, 1, 173, 1, 174, 1, 171, 1, 175, 1, 177, 1, 176, 1, 176, 1, 178, 1, 175, 1, 177, 1, 175, 1, 179, 1, 179, 1, 180, 1, 177, 1, 181, 1, 183, 1, 182, 1, 181, 1, 185, 1, 184, 1, 182, 1, 185, 1, 181, 1, 185, 1, 186, 1, 184, 1, 187, 1, 189, 1, 188, 1, 187, 1, 191, 1, 190, 1, 188, 1, 191, 1, 187, 1, 191, 1, 192, 1, 190, 1, 193, 1, 195, 1, 194, 1, 193, 1, 196, 1, 195, 1, 194, 1, 197, 1, 193, 1, 195, 1, 196, 1, 198, 1, 199, 1, 201, 1, 200, 1, 200, 1, 202, 1, 199, 1, 201, 1, 204, 1, 203, 1, 203, 1, 200, 1, 201, 1, 205, 1, 207, 1, 206, 1, 206, 1, 208, 1, 205, 1, 207, 1, 210, 1, 209, 1, 209, 1, 206, 1, 207, 1, 211, 1, 213, 1, 212, 1, 211, 1, 215, 1, 214, 1, 212, 1, 215, 1, 211, 1, 214, 1, 216, 1, 211, 1, 217, 1, 219, 1, 218, 1, 218, 1, 220, 1, 217, 1, 219, 1, 217, 1, 221, 1, 221, 1, 222, 1, 219, 1, 223, 1, 225, 1, 224, 1, 224, 1, 226, 1, 223, 1, 225, 1, 223, 1, 227, 1, 227, 1, 228, 1, 225, 1, 229, 1, 231, 1, 230, 1, 230, 1, 233, 1, 232, 1, 232, 1, 229, 1, 230, 1, 233, 1, 234, 1, 232, 1, 235, 1, 237, 1, 236, 1, 238, 1, 240, 1, 239, 1, 239, 1, 236, 1, 238, 1, 239, 1, 235, 1, 236, 1, 241, 1, 243, 1, 242, 1, 244, 1, 246, 1, 245, 1, 245, 1, 242, 1, 244, 1, 245, 1, 241, 1, 242, 1, 247, 1, 249, 1, 248, 1, 248, 1, 250, 1, 247, 1, 249, 1, 251, 1, 248, 1, 251, 1, 249, 1, 252, 1, 253, 1, 255, 1, 254, 1, 253, 1, 0, 2, 255, 1, 254, 1, 1, 2, 253, 1, 255, 1, 0, 2, 2, 2, 3, 2, 5, 2, 4, 2, 3, 2, 6, 2, 5, 2, 4, 2, 8, 2, 7, 2, 7, 2, 3, 2, 4, 2, 9, 2, 11, 2, 10, 2, 9, 2, 12, 2, 11, 2, 10, 2, 14, 2, 13, 2, 13, 2, 9, 2, 10, 2, 15, 2, 17, 2, 16, 2, 16, 2, 18, 2, 15, 2, 17, 2, 15, 2, 19, 2, 19, 2, 20, 2, 17, 2, 21, 2, 23, 2, 22, 2, 21, 2, 25, 2, 24, 2, 22, 2, 26, 2, 21, 2, 24, 2, 23, 2, 21, 2, 27, 2, 29, 2, 28, 2, 27, 2, 30, 2, 29, 2, 28, 2, 31, 2, 27, 2, 28, 2, 32, 2, 31, 2, 33, 2, 35, 2, 34, 2, 33, 2, 36, 2, 35, 2, 34, 2, 37, 2, 33, 2, 36, 2, 38, 2, 35, 2, 39, 2, 41, 2, 40, 2, 39, 2, 42, 2, 41, 2, 40, 2, 44, 2, 43, 2, 43, 2, 39, 2, 40, 2, 45, 2, 47, 2, 46, 2, 45, 2, 48, 2, 47, 2, 46, 2, 49, 2, 45, 2, 46, 2, 50, 2, 49, 2, 51, 2, 53, 2, 52, 2, 51, 2, 54, 2, 53, 2, 52, 2, 55, 2, 51, 2, 54, 2, 56, 2, 53, 2, 57, 2, 59, 2, 58, 2, 57, 2, 61, 2, 60, 2, 58, 2, 62, 2, 57, 2, 60, 2, 59, 2, 57, 2, 63, 2, 65, 2, 64, 2, 63, 2, 66, 2, 65, 2, 64, 2, 68, 2, 67, 2, 67, 2, 63, 2, 64, 2, 69, 2, 71, 2, 70, 2, 69, 2, 72, 2, 71, 2, 70, 2, 73, 2, 69, 2, 70, 2, 74, 2, 73, 2, 75, 2, 77, 2, 76, 2, 75, 2, 78, 2, 77, 2, 76, 2, 79, 2, 75, 2, 77, 2, 78, 2, 80, 2, 81, 2, 83, 2, 82, 2, 81, 2, 84, 2, 83, 2, 82, 2, 85, 2, 81, 2, 84, 2, 86, 2, 83, 2, 87, 2, 89, 2, 88, 2, 87, 2, 90, 2, 89, 2, 88, 2, 92, 2, 91, 2, 91, 2, 87, 2, 88, 2, 93, 2, 95, 2, 94, 2, 94, 2, 97, 2, 96, 2, 95, 2, 93, 2, 98, 2, 96, 2, 93, 2, 94, 2, 99, 2, 101, 2, 100, 2, 99, 2, 102, 2, 101, 2, 100, 2, 103, 2, 99, 2, 100, 2, 104, 2, 103, 2, 105, 2, 107, 2, 106, 2, 105, 2, 108, 2, 107, 2, 106, 2, 109, 2, 105, 2, 107, 2, 108, 2, 110, 2, 111, 2, 113, 2, 112, 2, 112, 2, 115, 2, 114, 2, 114, 2, 111, 2, 112, 2, 115, 2, 116, 2, 114, 2, 117, 2, 119, 2, 118, 2, 118, 2, 121, 2, 120, 2, 120, 2, 117, 2, 118, 2, 121, 2, 122, 2, 120, 2, 123, 2, 125, 2, 124, 2, 124, 2, 126, 2, 123, 2, 125, 2, 127, 2, 124, 2, 126, 2, 128, 2, 123, 2, 129, 2, 131, 2, 130, 2, 130, 2, 132, 2, 129, 2, 131, 2, 134, 2, 133, 2, 133, 2, 130, 2, 131, 2, 135, 2, 137, 2, 136, 2, 136, 2, 137, 2, 138, 2, 139, 2, 136, 2, 138, 2, 138, 2, 140, 2, 139, 2, 141, 2, 143, 2, 142, 2, 144, 2, 146, 2, 145, 2, 145, 2, 142, 2, 144, 2, 145, 2, 141, 2, 142, 2, 147, 2, 149, 2, 148, 2, 148, 2, 151, 2, 150, 2, 148, 2, 150, 2, 152, 2, 152, 2, 147, 2, 148, 2, 153, 2, 155, 2, 154, 2, 154, 2, 157, 2, 156, 2, 154, 2, 158, 2, 157, 2, 156, 2, 153, 2, 154, 2, 159, 2, 161, 2, 160, 2, 160, 2, 163, 2, 162, 2, 160, 2, 162, 2, 164, 2, 164, 2, 159, 2, 160, 2, 165, 2, 167, 2, 166, 2, 166, 2, 169, 2, 168, 2, 166, 2, 168, 2, 170, 2, 170, 2, 165, 2, 166, 2, 171, 2, 173, 2, 172, 2, 172, 2, 174, 2, 171, 2, 173, 2, 175, 2, 172, 2, 174, 2, 176, 2, 171, 2, 177, 2, 179, 2, 178, 2, 177, 2, 181, 2, 180, 2, 180, 2, 182, 2, 177, 2, 178, 2, 181, 2, 177, 2, 183, 2, 185, 2, 184, 2, 184, 2, 186, 2, 183, 2, 185, 2, 183, 2, 187, 2, 187, 2, 188, 2, 185, 2, 189, 2, 191, 2, 190, 2, 190, 2, 192, 2, 189, 2, 193, 2, 189, 2, 192, 2, 192, 2, 194, 2, 193, 2, 195, 2, 197, 2, 196, 2, 196, 2, 198, 2, 195, 2, 197, 2, 195, 2, 199, 2, 199, 2, 200, 2, 197, 2, 201, 2, 203, 2, 202, 2, 201, 2, 205, 2, 204, 2, 202, 2, 206, 2, 201, 2, 204, 2, 203, 2, 201, 2, 207, 2, 209, 2, 208, 2, 208, 2, 210, 2, 207, 2, 211, 2, 207, 2, 210, 2, 210, 2, 212, 2, 211, 2, 213, 2, 215, 2, 214, 2, 214, 2, 216, 2, 213, 2, 215, 2, 213, 2, 217, 2, 217, 2, 218, 2, 215, 2, 219, 2, 221, 2, 220, 2, 220, 2, 222, 2, 219, 2, 221, 2, 219, 2, 223, 2, 223, 2, 224, 2, 221, 2, 225, 2, 227, 2, 226, 2, 226, 2, 228, 2, 225, 2, 229, 2, 225, 2, 228, 2, 228, 2, 230, 2, 229, 2, 231, 2, 233, 2, 232, 2, 232, 2, 234, 2, 231, 2, 235, 2, 231, 2, 234, 2, 234, 2, 236, 2, 235, 2, 237, 2, 239, 2, 238, 2, 240, 2, 242, 2, 241, 2, 241, 2, 238, 2, 240, 2, 241, 2, 237, 2, 238, 2, 243, 2, 245, 2, 244, 2, 244, 2, 246, 2, 243, 2, 245, 2, 243, 2, 247, 2, 247, 2, 248, 2, 245, 2, 249, 2, 251, 2, 250, 2, 249, 2, 253, 2, 252, 2, 250, 2, 254, 2, 249, 2, 252, 2, 251, 2, 249, 2, 255, 2, 1, 3, 0, 3, 0, 3, 2, 3, 255, 2, 1, 3, 3, 3, 0, 3, 2, 3, 4, 3, 255, 2, 5, 3, 7, 3, 6, 3, 6, 3, 8, 3, 5, 3, 7, 3, 9, 3, 6, 3, 8, 3, 10, 3, 5, 3, 11, 3, 13, 3, 12, 3, 12, 3, 14, 3, 11, 3, 13, 3, 11, 3, 15, 3, 15, 3, 16, 3, 13, 3, 17, 3, 19, 3, 18, 3, 18, 3, 20, 3, 17, 3, 19, 3, 17, 3, 21, 3, 21, 3, 22, 3, 19, 3, 23, 3, 25, 3, 24, 3, 24, 3, 26, 3, 23, 3, 25, 3, 27, 3, 24, 3, 25, 3, 28, 3, 27, 3, 29, 3, 31, 3, 30, 3, 29, 3, 32, 3, 31, 3, 30, 3, 34, 3, 33, 3, 33, 3, 29, 3, 30, 3, 35, 3, 37, 3, 36, 3, 35, 3, 38, 3, 37, 3, 36, 3, 40, 3, 39, 3, 39, 3, 35, 3, 36, 3, 41, 3, 43, 3, 42, 3, 41, 3, 44, 3, 43, 3, 42, 3, 45, 3, 41, 3, 44, 3, 46, 3, 43, 3, 47, 3, 49, 3, 48, 3, 48, 3, 50, 3, 47, 3, 49, 3, 51, 3, 48, 3, 52, 3, 54, 3, 53, 3, 53, 3, 54, 3, 55, 3, 53, 3, 56, 3, 52, 3, 55, 3, 57, 3, 53, 3, 58, 3, 60, 3, 59, 3, 58, 3, 62, 3, 61, 3, 59, 3, 62, 3, 58, 3, 61, 3, 63, 3, 58, 3, 64, 3, 66, 3, 65, 3, 64, 3, 68, 3, 67, 3, 65, 3, 69, 3, 64, 3, 67, 3, 66, 3, 64, 3, 70, 3, 72, 3, 71, 3, 71, 3, 73, 3, 70, 3, 73, 3, 74, 3, 70, 3, 74, 3, 75, 3, 70, 3, 76, 3, 78, 3, 77, 3, 76, 3, 80, 3, 79, 3, 77, 3, 80, 3, 76, 3, 79, 3, 81, 3, 76, 3, 82, 3, 84, 3, 83, 3, 82, 3, 86, 3, 85, 3, 83, 3, 87, 3, 82, 3, 85, 3, 84, 3, 82, 3, 88, 3, 90, 3, 89, 3, 88, 3, 92, 3, 91, 3, 91, 3, 93, 3, 88, 3, 89, 3, 92, 3, 88, 3, 94, 3, 96, 3, 95, 3, 95, 3, 97, 3, 94, 3, 97, 3, 99, 3, 98, 3, 98, 3, 94, 3, 97, 3, 100, 3, 102, 3, 101, 3, 101, 3, 103, 3, 100, 3, 102, 3, 100, 3, 104, 3, 104, 3, 105, 3, 102, 3, 106, 3, 108, 3, 107, 3, 106, 3, 109, 3, 108, 3, 107, 3, 110, 3, 106, 3, 108, 3, 109, 3, 111, 3, 112, 3, 114, 3, 113, 3, 112, 3, 116, 3, 115, 3, 113, 3, 117, 3, 112, 3, 115, 3, 114, 3, 112, 3, 118, 3, 120, 3, 119, 3, 118, 3, 119, 3, 121, 3, 121, 3, 123, 3, 122, 3, 122, 3, 118, 3, 121, 3, 124, 3, 126, 3, 125, 3, 125, 3, 127, 3, 124, 3, 127, 3, 129, 3, 128, 3, 128, 3, 124, 3, 127, 3, 130, 3, 132, 3, 131, 3, 131, 3, 133, 3, 130, 3, 132, 3, 130, 3, 134, 3, 134, 3, 135, 3, 132, 3, 136, 3, 138, 3, 137, 3, 136, 3, 139, 3, 138, 3, 137, 3, 140, 3, 136, 3, 140, 3, 137, 3, 141, 3, 142, 3, 144, 3, 143, 3, 142, 3, 143, 3, 145, 3, 142, 3, 146, 3, 144, 3, 145, 3, 147, 3, 142, 3, 148, 3, 150, 3, 149, 3, 149, 3, 152, 3, 151, 3, 150, 3, 153, 3, 149, 3, 151, 3, 148, 3, 149, 3, 154, 3, 156, 3, 155, 3, 155, 3, 157, 3, 154, 3, 156, 3, 158, 3, 155, 3, 157, 3, 159, 3, 154, 3, 160, 3, 162, 3, 161, 3, 161, 3, 164, 3, 163, 3, 163, 3, 160, 3, 161, 3, 164, 3, 165, 3, 163, 3, 166, 3, 168, 3, 167, 3, 166, 3, 169, 3, 168, 3, 167, 3, 170, 3, 166, 3, 167, 3, 171, 3, 170, 3, 172, 3, 174, 3, 173, 3, 173, 3, 175, 3, 172, 3, 174, 3, 176, 3, 173, 3, 176, 3, 174, 3, 177, 3, 178, 3, 180, 3, 179, 3, 179, 3, 180, 3, 181, 3, 179, 3, 182, 3, 178, 3, 181, 3, 183, 3, 179, 3, 184, 3, 186, 3, 185, 3, 185, 3, 188, 3, 187, 3, 188, 3, 189, 3, 187, 3, 187, 3, 184, 3, 185, 3, 190, 3, 192, 3, 191, 3, 191, 3, 194, 3, 193, 3, 192, 3, 195, 3, 191, 3, 193, 3, 190, 3, 191, 3, 196, 3, 198, 3, 197, 3, 197, 3, 199, 3, 196, 3, 198, 3, 200, 3, 197, 3, 199, 3, 201, 3, 196, 3, 202, 3, 204, 3, 203, 3, 205, 3, 202, 3, 203, 3, 205, 3, 203, 3, 206, 3, 206, 3, 207, 3, 205, 3, 208, 3, 210, 3, 209, 3, 209, 3, 211, 3, 208, 3, 210, 3, 212, 3, 209, 3, 210, 3, 213, 3, 212, 3, 214, 3, 216, 3, 215, 3, 214, 3, 218, 3, 217, 3, 215, 3, 218, 3, 214, 3, 218, 3, 219, 3, 217, 3, 220, 3, 222, 3, 221, 3, 220, 3, 224, 3, 223, 3, 221, 3, 224, 3, 220, 3, 224, 3, 225, 3, 223, 3, 226, 3, 228, 3, 227, 3, 227, 3, 229, 3, 226, 3, 228, 3, 226, 3, 230, 3, 230, 3, 231, 3, 228, 3, 232, 3, 234, 3, 233, 3, 233, 3, 235, 3, 232, 3, 234, 3, 236, 3, 233, 3, 234, 3, 237, 3, 236, 3, 238, 3, 240, 3, 239, 3, 241, 3, 239, 3, 242, 3, 241, 3, 238, 3, 239, 3, 242, 3, 243, 3, 241, 3, 244, 3, 246, 3, 245, 3, 247, 3, 245, 3, 248, 3, 247, 3, 244, 3, 245, 3, 248, 3, 249, 3, 247, 3, 250, 3, 252, 3, 251, 3, 251, 3, 253, 3, 250, 3, 252, 3, 250, 3, 254, 3, 255, 3, 1, 4, 0, 4, 255, 3, 0, 4, 2, 4, 2, 4, 3, 4, 255, 3, 2, 4, 4, 4, 3, 4, 5, 4, 7, 4, 6, 4, 6, 4, 9, 4, 8, 4, 8, 4, 5, 4, 6, 4, 9, 4, 10, 4, 8, 4, 11, 4, 13, 4, 12, 4, 12, 4, 13, 4, 14, 4, 14, 4, 16, 4, 15, 4, 15, 4, 12, 4, 14, 4, 17, 4, 19, 4, 18, 4, 18, 4, 20, 4, 17, 4, 20, 4, 22, 4, 21, 4, 21, 4, 17, 4, 20, 4, 23, 4, 25, 4, 24, 4, 24, 4, 27, 4, 26, 4, 28, 4, 23, 4, 24, 4, 26, 4, 28, 4, 24, 4, 29, 4, 31, 4, 30, 4, 30, 4, 32, 4, 29, 4, 30, 4, 34, 4, 33, 4, 33, 4, 32, 4, 30, 4, 35, 4, 37, 4, 36, 4, 36, 4, 37, 4, 38, 4, 38, 4, 40, 4, 39, 4, 39, 4, 36, 4, 38, 4, 41, 4, 43, 4, 42, 4, 42, 4, 44, 4, 41, 4, 44, 4, 46, 4, 45, 4, 45, 4, 41, 4, 44, 4, 47, 4, 49, 4, 48, 4, 48, 4, 50, 4, 47, 4, 49, 4, 51, 4, 48, 4, 50, 4, 52, 4, 47, 4, 53, 4, 55, 4, 54, 4, 53, 4, 57, 4, 56, 4, 54, 4, 57, 4, 53, 4, 56, 4, 58, 4, 53, 4, 59, 4, 61, 4, 60, 4, 59, 4, 60, 4, 62, 4, 60, 4, 63, 4, 62, 4, 62, 4, 64, 4, 59, 4, 65, 4, 67, 4, 66, 4, 66, 4, 68, 4, 65, 4, 66, 4, 70, 4, 69, 4, 69, 4, 68, 4, 66, 4, 71, 4, 73, 4, 72, 4, 72, 4, 74, 4, 71, 4, 74, 4, 76, 4, 75, 4, 75, 4, 71, 4, 74, 4, 77, 4, 79, 4, 78, 4, 77, 4, 78, 4, 80, 4, 79, 4, 81, 4, 78, 4, 80, 4, 82, 4, 77, 4, 83, 4, 85, 4, 84, 4, 83, 4, 84, 4, 86, 4, 85, 4, 87, 4, 84, 4, 86, 4, 88, 4, 83, 4, 89, 4, 91, 4, 90, 4, 89, 4, 93, 4, 92, 4, 90, 4, 93, 4, 89, 4, 92, 4, 94, 4, 89, 4, 95, 4, 97, 4, 96, 4, 96, 4, 98, 4, 95, 4, 98, 4, 99, 4, 95, 4, 99, 4, 100, 4, 95, 4, 101, 4, 103, 4, 102, 4, 102, 4, 104, 4, 101, 4, 103, 4, 105, 4, 102, 4, 105, 4, 106, 4, 102, 4, 107, 4, 109, 4, 108, 4, 108, 4, 110, 4, 107, 4, 110, 4, 112, 4, 111, 4, 111, 4, 107, 4, 110, 4, 113, 4, 115, 4, 114, 4, 113, 4, 116, 4, 115, 4, 116, 4, 117, 4, 115, 4, 114, 4, 118, 4, 113, 4, 119, 4, 121, 4, 120, 4, 122, 4, 124, 4, 123, 4, 123, 4, 120, 4, 122, 4, 123, 4, 119, 4, 120, 4, 125, 4, 127, 4, 126, 4, 128, 4, 130, 4, 129, 4, 129, 4, 126, 4, 128, 4, 129, 4, 125, 4, 126, 4, 131, 4, 133, 4, 132, 4, 134, 4, 136, 4, 135, 4, 135, 4, 131, 4, 132, 4, 135, 4, 132, 4, 134, 4, 137, 4, 139, 4, 138, 4, 138, 4, 140, 4, 137, 4, 139, 4, 141, 4, 138, 4, 140, 4, 142, 4, 137, 4, 143, 4, 145, 4, 144, 4, 144, 4, 146, 4, 143, 4, 145, 4, 147, 4, 144, 4, 147, 4, 148, 4, 144, 4, 149, 4, 151, 4, 150, 4, 150, 4, 152, 4, 149, 4, 152, 4, 154, 4, 153, 4, 153, 4, 149, 4, 152, 4, 155, 4, 157, 4, 156, 4, 156, 4, 158, 4, 155, 4, 157, 4, 160, 4, 159, 4, 159, 4, 156, 4, 157, 4, 161, 4, 163, 4, 162, 4, 162, 4, 164, 4, 161, 4, 163, 4, 165, 4, 162, 4, 166, 4, 168, 4, 167, 4, 167, 4, 169, 4, 166, 4, 168, 4, 171, 4, 170, 4, 170, 4, 167, 4, 168, 4, 172, 4, 174, 4, 173, 4, 172, 4, 176, 4, 175, 4, 175, 4, 174, 4, 172, 4, 173, 4, 177, 4, 172, 4, 178, 4, 180, 4, 179, 4, 178, 4, 182, 4, 181, 4, 181, 4, 180, 4, 178, 4, 179, 4, 183, 4, 178, 4, 184, 4, 186, 4, 185, 4, 185, 4, 188, 4, 187, 4, 185, 4, 189, 4, 184, 4, 187, 4, 189, 4, 185, 4, 190, 4, 192, 4, 191, 4, 191, 4, 194, 4, 193, 4, 191, 4, 195, 4, 190, 4, 193, 4, 195, 4, 191, 4, 196, 4, 198, 4, 197, 4, 197, 4, 199, 4, 196, 4, 198, 4, 201, 4, 200, 4, 200, 4, 197, 4, 198, 4, 202, 4, 204, 4, 203, 4, 204, 4, 206, 4, 205, 4, 205, 4, 203, 4, 204, 4, 207, 4, 209, 4, 208, 4, 207, 4, 210, 4, 209, 4, 208, 4, 211, 4, 207, 4, 209, 4, 210, 4, 212, 4, 213, 4, 215, 4, 214, 4, 214, 4, 216, 4, 213, 4, 216, 4, 218, 4, 217, 4, 217, 4, 213, 4, 216, 4, 219, 4, 221, 4, 220, 4, 220, 4, 223, 4, 222, 4, 222, 4, 219, 4, 220, 4, 223, 4, 224, 4, 222, 4, 225, 4, 227, 4, 226, 4, 226, 4, 229, 4, 228, 4, 228, 4, 225, 4, 226, 4, 229, 4, 230, 4, 228, 4, 231, 4, 233, 4, 232, 4, 231, 4, 232, 4, 234, 4, 233, 4, 235, 4, 232, 4, 234, 4, 236, 4, 231, 4, 237, 4, 239, 4, 238, 4, 238, 4, 240, 4, 237, 4, 239, 4, 242, 4, 241, 4, 241, 4, 238, 4, 239, 4, 243, 4, 245, 4, 244, 4, 244, 4, 247, 4, 246, 4, 246, 4, 248, 4, 244, 4, 248, 4, 243, 4, 244, 4, 249, 4, 251, 4, 250, 4, 249, 4, 252, 4, 251, 4, 250, 4, 254, 4, 253, 4, 253, 4, 249, 4, 250, 4, 255, 4, 1, 5, 0, 5, 255, 4, 0, 5, 2, 5, 1, 5, 3, 5, 0, 5, 2, 5, 4, 5, 255, 4, 5, 5, 7, 5, 6, 5, 6, 5, 8, 5, 5, 5, 8, 5, 10, 5, 9, 5, 9, 5, 5, 5, 8, 5, 11, 5, 13, 5, 12, 5, 12, 5, 15, 5, 14, 5, 14, 5, 11, 5, 12, 5, 15, 5, 16, 5, 14, 5, 17, 5, 19, 5, 18, 5, 17, 5, 18, 5, 20, 5, 20, 5, 21, 5, 17, 5, 18, 5, 22, 5, 20, 5, 23, 5, 25, 5, 24, 5, 24, 5, 26, 5, 23, 5, 25, 5, 28, 5, 27, 5, 27, 5, 24, 5, 25, 5, 29, 5, 31, 5, 30, 5, 30, 5, 32, 5, 29, 5, 31, 5, 33, 5, 30, 5, 32, 5, 34, 5, 29, 5, 35, 5, 37, 5, 36, 5, 36, 5, 38, 5, 35, 5, 38, 5, 40, 5, 39, 5, 39, 5, 35, 5, 38, 5, 41, 5, 43, 5, 42, 5, 42, 5, 45, 5, 44, 5, 44, 5, 41, 5, 42, 5, 45, 5, 46, 5, 44, 5, 47, 5, 49, 5, 48, 5, 48, 5, 51, 5, 50, 5, 50, 5, 47, 5, 48, 5, 51, 5, 52, 5, 50, 5, 53, 5, 55, 5, 54, 5, 54, 5, 56, 5, 53, 5, 55, 5, 57, 5, 54, 5, 57, 5, 58, 5, 54, 5, 59, 5, 61, 5, 60, 5, 60, 5, 63, 5, 62, 5, 62, 5, 64, 5, 60, 5, 64, 5, 59, 5, 60, 5, 65, 5, 67, 5, 66, 5, 66, 5, 68, 5, 65, 5, 67, 5, 69, 5, 66, 5, 69, 5, 70, 5, 66, 5, 71, 5, 73, 5, 72, 5, 72, 5, 74, 5, 71, 5, 74, 5, 76, 5, 75, 5, 75, 5, 71, 5, 74, 5, 77, 5, 79, 5, 78, 5, 78, 5, 80, 5, 77, 5, 80, 5, 82, 5, 81, 5, 81, 5, 77, 5, 80, 5, 83, 5, 85, 5, 84, 5, 86, 5, 84, 5, 87, 5, 86, 5, 83, 5, 84, 5, 87, 5, 88, 5, 86, 5, 89, 5, 91, 5, 90, 5, 90, 5, 93, 5, 92, 5, 92, 5, 89, 5, 90, 5, 93, 5, 94, 5, 92, 5, 95, 5, 97, 5, 96, 5, 96, 5, 99, 5, 98, 5, 98, 5, 95, 5, 96, 5, 99, 5, 100, 5, 98, 5, 101, 5, 103, 5, 102, 5, 102, 5, 105, 5, 104, 5, 103, 5, 106, 5, 102, 5, 104, 5, 101, 5, 102, 5, 107, 5, 109, 5, 108, 5, 108, 5, 111, 5, 110, 5, 110, 5, 107, 5, 108, 5, 111, 5, 112, 5, 110, 5, 113, 5, 115, 5, 114, 5, 114, 5, 116, 5, 113, 5, 116, 5, 117, 5, 113, 5, 118, 5, 120, 5, 119, 5, 119, 5, 121, 5, 118, 5, 120, 5, 122, 5, 119, 5, 120, 5, 123, 5, 122, 5, 124, 5, 126, 5, 125, 5, 125, 5, 127, 5, 124, 5, 126, 5, 128, 5, 125, 5, 126, 5, 129, 5, 128, 5, 130, 5, 132, 5, 131, 5, 130, 5, 133, 5, 132, 5, 131, 5, 134, 5, 130, 5, 132, 5, 133, 5, 135, 5, 136, 5, 138, 5, 137, 5, 136, 5, 139, 5, 138, 5, 137, 5, 140, 5, 136, 5, 138, 5, 139, 5, 141, 5, 142, 5, 144, 5, 143, 5, 142, 5, 145, 5, 144, 5, 143, 5, 146, 5, 142, 5, 145, 5, 147, 5, 144, 5, 148, 5, 150, 5, 149, 5, 148, 5, 151, 5, 150, 5, 149, 5, 153, 5, 152, 5, 152, 5, 148, 5, 149, 5, 154, 5, 156, 5, 155, 5, 155, 5, 157, 5, 154, 5, 156, 5, 158, 5, 155, 5, 159, 5, 161, 5, 160, 5, 160, 5, 162, 5, 159, 5, 161, 5, 163, 5, 160, 5, 162, 5, 164, 5, 159, 5, 165, 5, 167, 5, 166, 5, 166, 5, 167, 5, 168, 5, 169, 5, 166, 5, 168, 5, 168, 5, 170, 5, 169, 5, 171, 5, 173, 5, 172, 5, 172, 5, 174, 5, 171, 5, 173, 5, 175, 5, 172, 5, 173, 5, 176, 5, 175, 5, 177, 5, 179, 5, 178, 5, 178, 5, 180, 5, 177, 5, 180, 5, 181, 5, 177, 5, 180, 5, 182, 5, 181, 5, 183, 5, 185, 5, 184, 5, 183, 5, 186, 5, 185, 5, 184, 5, 187, 5, 183, 5, 187, 5, 184, 5, 188, 5, 189, 5, 191, 5, 190, 5, 190, 5, 192, 5, 189, 5, 190, 5, 191, 5, 193, 5, 193, 5, 194, 5, 190, 5, 195, 5, 197, 5, 196, 5, 196, 5, 199, 5, 198, 5, 198, 5, 195, 5, 196, 5, 199, 5, 200, 5, 198, 5, 201, 5, 203, 5, 202, 5, 202, 5, 204, 5, 201, 5, 204, 5, 205, 5, 201, 5, 204, 5, 206, 5, 205, 5, 207, 5, 209, 5, 208, 5, 207, 5, 210, 5, 209, 5, 208, 5, 211, 5, 207, 5, 209, 5, 210, 5, 212, 5, 213, 5, 215, 5, 214, 5, 213, 5, 214, 5, 216, 5, 214, 5, 217, 5, 216, 5, 216, 5, 218, 5, 213, 5, 219, 5, 221, 5, 220, 5, 220, 5, 222, 5, 219, 5, 221, 5, 224, 5, 223, 5, 223, 5, 220, 5, 221, 5, 225, 5, 227, 5, 226, 5, 226, 5, 228, 5, 225, 5, 227, 5, 229, 5, 226, 5, 228, 5, 230, 5, 225, 5, 231, 5, 233, 5, 232, 5, 231, 5, 232, 5, 234, 5, 234, 5, 235, 5, 231, 5, 234, 5, 236, 5, 235, 5, 237, 5, 239, 5, 238, 5, 237, 5, 240, 5, 239, 5, 238, 5, 241, 5, 237, 5, 239, 5, 240, 5, 242, 5, 243, 5, 245, 5, 244, 5, 244, 5, 247, 5, 246, 5, 246, 5, 248, 5, 244, 5, 248, 5, 243, 5, 244, 5, 249, 5, 251, 5, 250, 5, 250, 5, 252, 5, 249, 5, 251, 5, 254, 5, 253, 5, 253, 5, 250, 5, 251, 5, 255, 5, 1, 6, 0, 6, 0, 6, 2, 6, 255, 5, 1, 6, 4, 6, 3, 6, 3, 6, 0, 6, 1, 6, 5, 6, 7, 6, 6, 6, 6, 6, 8, 6, 5, 6, 7, 6, 9, 6, 6, 6, 8, 6, 10, 6, 5, 6, 11, 6, 13, 6, 12, 6, 12, 6, 15, 6, 14, 6, 12, 6, 16, 6, 11, 6, 14, 6, 16, 6, 12, 6, 17, 6, 19, 6, 18, 6, 17, 6, 21, 6, 20, 6, 17, 6, 22, 6, 19, 6, 18, 6, 21, 6, 17, 6, 23, 6, 25, 6, 24, 6, 24, 6, 26, 6, 23, 6, 25, 6, 28, 6, 27, 6, 27, 6, 24, 6, 25, 6, 29, 6, 31, 6, 30, 6, 30, 6, 32, 6, 29, 6, 31, 6, 34, 6, 33, 6, 33, 6, 30, 6, 31, 6, 35, 6, 37, 6, 36, 6, 36, 6, 38, 6, 35, 6, 37, 6, 40, 6, 39, 6, 39, 6, 36, 6, 37, 6, 41, 6, 43, 6, 42, 6, 42, 6, 45, 6, 44, 6, 44, 6, 41, 6, 42, 6, 45, 6, 46, 6, 44, 6, 47, 6, 49, 6, 48, 6, 48, 6, 51, 6, 50, 6, 50, 6, 47, 6, 48, 6, 51, 6, 52, 6, 50, 6, 53, 6, 55, 6, 54, 6, 54, 6, 56, 6, 53, 6, 56, 6, 58, 6, 57, 6, 57, 6, 53, 6, 56, 6, 59, 6, 61, 6, 60, 6, 59, 6, 63, 6, 62, 6, 59, 6, 62, 6, 64, 6, 64, 6, 61, 6, 59, 6, 65, 6, 67, 6, 66, 6, 66, 6, 69, 6, 68, 6, 68, 6, 65, 6, 66, 6, 70, 6, 72, 6, 71, 6, 73, 6, 71, 6, 74, 6, 73, 6, 70, 6, 71, 6, 74, 6, 75, 6, 73, 6, 76, 6, 78, 6, 77, 6, 77, 6, 79, 6, 76, 6, 78, 6, 80, 6, 77, 6, 80, 6, 78, 6, 81, 6, 82, 6, 84, 6, 83, 6, 83, 6, 85, 6, 82, 6, 84, 6, 86, 6, 83, 6, 86, 6, 84, 6, 87, 6, 88, 6, 90, 6, 89, 6, 89, 6, 91, 6, 88, 6, 90, 6, 92, 6, 89, 6, 92, 6, 90, 6, 93, 6, 94, 6, 96, 6, 95, 6, 95, 6, 97, 6, 94, 6, 96, 6, 94, 6, 98, 6, 98, 6, 99, 6, 96, 6, 100, 6, 102, 6, 101, 6, 101, 6, 103, 6, 100, 6, 102, 6, 100, 6, 104, 6, 104, 6, 105, 6, 102, 6, 106, 6, 108, 6, 107, 6, 107, 6, 110, 6, 109, 6, 109, 6, 106, 6, 107, 6, 111, 6, 113, 6, 112, 6, 112, 6, 114, 6, 111, 6, 113, 6, 116, 6, 115, 6, 115, 6, 112, 6, 113, 6, 117, 6, 119, 6, 118, 6, 118, 6, 120, 6, 117, 6, 118, 6, 121, 6, 120, 6, 121, 6, 122, 6, 120, 6, 123, 6, 125, 6, 124, 6, 123, 6, 124, 6, 126, 6, 126, 6, 124, 6, 127, 6, 127, 6, 128, 6, 126, 6, 129, 6, 131, 6, 130, 6, 130, 6, 132, 6, 129, 6, 132, 6, 133, 6, 129, 6, 133, 6, 134, 6, 129, 6, 135, 6, 137, 6, 136, 6, 136, 6, 138, 6, 135, 6, 136, 6, 139, 6, 138, 6, 139, 6, 140, 6, 138, 6, 141, 6, 143, 6, 142, 6, 141, 6, 144, 6, 143, 6, 142, 6, 143, 6, 145, 6, 145, 6, 146, 6, 142, 6, 147, 6, 149, 6, 148, 6, 147, 6, 151, 6, 150, 6, 148, 6, 151, 6, 147, 6, 150, 6, 152, 6, 147, 6, 153, 6, 155, 6, 154, 6, 153, 6, 154, 6, 156, 6, 156, 6, 158, 6, 157, 6, 156, 6, 157, 6, 153, 6, 159, 6, 161, 6, 160, 6, 160, 6, 162, 6, 159, 6, 160, 6, 163, 6, 162, 6, 163, 6, 164, 6, 162, 6, 165, 6, 167, 6, 166, 6, 165, 6, 169, 6, 168, 6, 166, 6, 169, 6, 165, 6, 168, 6, 170, 6, 165, 6, 171, 6, 173, 6, 172, 6, 171, 6, 174, 6, 173, 6, 173, 6, 175, 6, 172, 6, 172, 6, 176, 6, 171, 6, 177, 6, 179, 6, 178, 6, 178, 6, 181, 6, 180, 6, 182, 6, 177, 6, 178, 6, 180, 6, 182, 6, 178, 6, 183, 6, 185, 6, 184, 6, 184, 6, 186, 6, 183, 6, 186, 6, 187, 6, 183, 6, 186, 6, 188, 6, 187, 6, 189, 6, 191, 6, 190, 6, 190, 6, 193, 6, 192, 6, 190, 6, 192, 6, 189, 6, 193, 6, 194, 6, 192, 6, 195, 6, 197, 6, 196, 6, 195, 6, 198, 6, 197, 6, 195, 6, 199, 6, 198, 6, 196, 6, 200, 6, 195, 6, 201, 6, 203, 6, 202, 6, 202, 6, 205, 6, 204, 6, 206, 6, 201, 6, 202, 6, 204, 6, 206, 6, 202, 6, 207, 6, 209, 6, 208, 6, 208, 6, 211, 6, 210, 6, 212, 6, 207, 6, 208, 6, 210, 6, 212, 6, 208, 6, 213, 6, 215, 6, 214, 6, 214, 6, 216, 6, 213, 6, 215, 6, 218, 6, 217, 6, 217, 6, 214, 6, 215, 6, 219, 6, 221, 6, 220, 6, 220, 6, 222, 6, 219, 6, 222, 6, 223, 6, 219, 6, 222, 6, 224, 6, 223, 6, 225, 6, 227, 6, 226, 6, 226, 6, 228, 6, 225, 6, 226, 6, 229, 6, 228, 6, 229, 6, 230, 6, 228, 6, 231, 6, 233, 6, 232, 6, 231, 6, 234, 6, 233, 6, 231, 6, 235, 6, 234, 6, 232, 6, 236, 6, 231, 6, 237, 6, 239, 6, 238, 6, 238, 6, 240, 6, 237, 6, 239, 6, 242, 6, 241, 6, 241, 6, 238, 6, 239, 6, 243, 6, 245, 6, 244, 6, 244, 6, 246, 6, 243, 6, 245, 6, 248, 6, 247, 6, 247, 6, 244, 6, 245, 6, 249, 6, 251, 6, 250, 6, 250, 6, 252, 6, 249, 6, 251, 6, 254, 6, 253, 6, 253, 6, 250, 6, 251, 6, 255, 6, 1, 7, 0, 7, 0, 7, 2, 7, 255, 6, 1, 7, 4, 7, 3, 7, 3, 7, 0, 7, 1, 7, 5, 7, 7, 7, 6, 7, 5, 7, 6, 7, 8, 7, 8, 7, 9, 7, 5, 7, 6, 7, 7, 7, 10, 7, 11, 7, 13, 7, 12, 7, 12, 7, 14, 7, 11, 7, 12, 7, 15, 7, 14, 7, 15, 7, 16, 7, 14, 7, 17, 7, 19, 7, 18, 7, 17, 7, 18, 7, 20, 7, 20, 7, 21, 7, 17, 7, 22, 7, 24, 7, 23, 7, 23, 7, 25, 7, 22, 7, 24, 7, 26, 7, 23, 7, 25, 7, 27, 7, 22, 7, 28, 7, 30, 7, 29, 7, 29, 7, 30, 7, 31, 7, 29, 7, 32, 7, 28, 7, 31, 7, 33, 7, 29, 7, 34, 7, 36, 7, 35, 7, 35, 7, 36, 7, 37, 7, 35, 7, 38, 7, 34, 7, 37, 7, 39, 7, 35, 7, 40, 7, 42, 7, 41, 7, 41, 7, 42, 7, 43, 7, 41, 7, 44, 7, 40, 7, 43, 7, 45, 7, 41, 7, 46, 7, 48, 7, 47, 7, 47, 7, 49, 7, 46, 7, 47, 7, 48, 7, 50, 7, 50, 7, 51, 7, 47, 7, 52, 7, 54, 7, 53, 7, 55, 7, 57, 7, 56, 7, 56, 7, 52, 7, 53, 7, 56, 7, 53, 7, 55, 7, 58, 7, 60, 7, 59, 7, 59, 7, 62, 7, 61, 7, 61, 7, 58, 7, 59, 7, 63, 7, 65, 7, 64, 7, 64, 7, 67, 7, 66, 7, 66, 7, 63, 7, 64, 7, 67, 7, 68, 7, 66, 7, 69, 7, 71, 7, 70, 7, 70, 7, 72, 7, 69, 7, 71, 7, 74, 7, 73, 7, 73, 7, 70, 7, 71, 7, 75, 7, 77, 7, 76, 7, 76, 7, 79, 7, 78, 7, 78, 7, 80, 7, 76, 7, 80, 7, 75, 7, 76, 7, 81, 7, 83, 7, 82, 7, 82, 7, 84, 7, 81, 7, 83, 7, 86, 7, 85, 7, 85, 7, 82, 7, 83, 7, 87, 7, 89, 7, 88, 7, 88, 7, 91, 7, 90, 7, 90, 7, 87, 7, 88, 7, 91, 7, 92, 7, 90, 7, 93, 7, 95, 7, 94, 7, 93, 7, 96, 7, 95, 7, 94, 7, 97, 7, 93, 7, 95, 7, 98, 7, 94, 7, 99, 7, 101, 7, 100, 7, 100, 7, 102, 7, 99, 7, 101, 7, 104, 7, 103, 7, 103, 7, 100, 7, 101, 7, 105, 7, 107, 7, 106, 7, 106, 7, 109, 7, 108, 7, 108, 7, 105, 7, 106, 7, 109, 7, 110, 7, 108, 7, 111, 7, 113, 7, 112, 7, 112, 7, 115, 7, 114, 7, 114, 7, 111, 7, 112, 7, 115, 7, 116, 7, 114, 7, 117, 7, 119, 7, 118, 7, 118, 7, 120, 7, 117, 7, 119, 7, 121, 7, 118, 7, 121, 7, 122, 7, 118, 7, 123, 7, 125, 7, 124, 7, 124, 7, 126, 7, 123, 7, 125, 7, 128, 7, 127, 7, 127, 7, 124, 7, 125, 7, 129, 7, 131, 7, 130, 7, 130, 7, 132, 7, 129, 7, 131, 7, 134, 7, 133, 7, 133, 7, 130, 7, 131, 7, 135, 7, 137, 7, 136, 7, 138, 7, 136, 7, 139, 7, 138, 7, 135, 7, 136, 7, 139, 7, 140, 7, 138, 7, 141, 7, 143, 7, 142, 7, 142, 7, 145, 7, 144, 7, 144, 7, 141, 7, 142, 7, 145, 7, 146, 7, 144, 7, 147, 7, 149, 7, 148, 7, 148, 7, 151, 7, 150, 7, 150, 7, 147, 7, 148, 7, 151, 7, 152, 7, 150, 7, 153, 7, 155, 7, 154, 7, 154, 7, 156, 7, 153, 7, 157, 7, 153, 7, 156, 7, 156, 7, 158, 7, 157, 7, 159, 7, 161, 7, 160, 7, 159, 7, 163, 7, 162, 7, 160, 7, 163, 7, 159, 7, 162, 7, 164, 7, 159, 7, 165, 7, 167, 7, 166, 7, 166, 7, 168, 7, 165, 7, 169, 7, 165, 7, 168, 7, 168, 7, 170, 7, 169, 7, 171, 7, 173, 7, 172, 7, 171, 7, 175, 7, 174, 7, 172, 7, 175, 7, 171, 7, 174, 7, 176, 7, 171, 7, 177, 7, 179, 7, 178, 7, 177, 7, 178, 7, 180, 7, 178, 7, 181, 7, 180, 7, 180, 7, 182, 7, 177, 7, 183, 7, 185, 7, 184, 7, 183, 7, 187, 7, 186, 7, 184, 7, 187, 7, 183, 7, 186, 7, 188, 7, 183, 7, 189, 7, 191, 7, 190, 7, 189, 7, 190, 7, 192, 7, 191, 7, 193, 7, 190, 7, 192, 7, 194, 7, 189, 7, 195, 7, 197, 7, 196, 7, 195, 7, 199, 7, 198, 7, 196, 7, 199, 7, 195, 7, 198, 7, 200, 7, 195, 7, 201, 7, 203, 7, 202, 7, 202, 7, 204, 7, 201, 7, 204, 7, 205, 7, 201, 7, 205, 7, 206, 7, 201, 7, 207, 7, 209, 7, 208, 7, 208, 7, 210, 7, 207, 7, 209, 7, 211, 7, 208, 7, 211, 7, 212, 7, 208, 7, 213, 7, 215, 7, 214, 7, 213, 7, 214, 7, 216, 7, 215, 7, 217, 7, 214, 7, 216, 7, 218, 7, 213, 7, 219, 7, 221, 7, 220, 7, 219, 7, 220, 7, 222, 7, 221, 7, 223, 7, 220, 7, 222, 7, 224, 7, 219, 7, 225, 7, 227, 7, 226, 7, 225, 7, 226, 7, 228, 7, 227, 7, 229, 7, 226, 7, 228, 7, 230, 7, 225, 7, 231, 7, 233, 7, 232, 7, 232, 7, 234, 7, 231, 7, 233, 7, 235, 7, 232, 7, 234, 7, 236, 7, 231, 7, 237, 7, 239, 7, 238, 7, 238, 7, 240, 7, 237, 7, 239, 7, 241, 7, 238, 7, 241, 7, 242, 7, 238, 7, 243, 7, 245, 7, 244, 7, 243, 7, 247, 7, 246, 7, 244, 7, 248, 7, 243, 7, 246, 7, 245, 7, 243, 7, 249, 7, 251, 7, 250, 7, 249, 7, 253, 7, 252, 7, 250, 7, 254, 7, 249, 7, 252, 7, 251, 7, 249, 7, 255, 7, 1, 8, 0, 8, 255, 7, 3, 8, 2, 8, 0, 8, 4, 8, 255, 7, 2, 8, 1, 8, 255, 7, 5, 8, 7, 8, 6, 8, 5, 8, 8, 8, 7, 8, 6, 8, 9, 8, 5, 8, 7, 8, 8, 8, 10, 8, 11, 8, 13, 8, 12, 8, 11, 8, 15, 8, 14, 8, 12, 8, 16, 8, 11, 8, 14, 8, 13, 8, 11, 8, 17, 8, 19, 8, 18, 8, 17, 8, 20, 8, 19, 8, 18, 8, 22, 8, 21, 8, 21, 8, 17, 8, 18, 8, 23, 8, 25, 8, 24, 8, 23, 8, 26, 8, 25, 8, 24, 8, 27, 8, 23, 8, 27, 8, 24, 8, 28, 8, 29, 8, 31, 8, 30, 8, 29, 8, 33, 8, 32, 8, 29, 8, 32, 8, 31, 8, 30, 8, 34, 8, 29, 8, 35, 8, 37, 8, 36, 8, 36, 8, 39, 8, 38, 8, 37, 8, 40, 8, 36, 8, 38, 8, 35, 8, 36, 8, 41, 8, 43, 8, 42, 8, 42, 8, 44, 8, 41, 8, 43, 8, 45, 8, 42, 8, 44, 8, 46, 8, 41, 8, 47, 8, 49, 8, 48, 8, 48, 8, 50, 8, 47, 8, 49, 8, 51, 8, 48, 8, 51, 8, 49, 8, 52, 8, 53, 8, 55, 8, 54, 8, 54, 8, 55, 8, 56, 8, 54, 8, 57, 8, 53, 8, 56, 8, 58, 8, 54, 8, 59, 8, 61, 8, 60, 8, 60, 8, 63, 8, 62, 8, 63, 8, 64, 8, 62, 8, 62, 8, 59, 8, 60, 8, 65, 8, 67, 8, 66, 8, 66, 8, 69, 8, 68, 8, 67, 8, 70, 8, 66, 8, 68, 8, 65, 8, 66, 8, 71, 8, 73, 8, 72, 8, 72, 8, 74, 8, 71, 8, 73, 8, 75, 8, 72, 8, 74, 8, 76, 8, 71, 8, 77, 8, 79, 8, 78, 8, 78, 8, 80, 8, 77, 8, 78, 8, 81, 8, 80, 8, 81, 8, 82, 8, 80, 8, 83, 8, 85, 8, 84, 8, 84, 8, 86, 8, 83, 8, 84, 8, 87, 8, 86, 8, 87, 8, 88, 8, 86, 8, 89, 8, 91, 8, 90, 8, 90, 8, 92, 8, 89, 8, 90, 8, 94, 8, 93, 8, 93, 8, 92, 8, 90, 8, 95, 8, 97, 8, 96, 8, 96, 8, 98, 8, 95, 8, 96, 8, 100, 8, 99, 8, 99, 8, 98, 8, 96, 8, 101, 8, 103, 8, 102, 8, 101, 8, 104, 8, 103, 8, 102, 8, 105, 8, 101, 8, 103, 8, 106, 8, 102, 8, 107, 8, 109, 8, 108, 8, 108, 8, 111, 8, 110, 8, 109, 8, 112, 8, 108, 8, 110, 8, 107, 8, 108, 8, 113, 8, 115, 8, 114, 8, 113, 8, 117, 8, 116, 8, 113, 8, 114, 8, 117, 8, 116, 8, 118, 8, 113, 8, 119, 8, 121, 8, 120, 8, 120, 8, 123, 8, 122, 8, 121, 8, 124, 8, 120, 8, 122, 8, 119, 8, 120, 8, 125, 8, 127, 8, 126, 8, 126, 8, 129, 8, 128, 8, 127, 8, 130, 8, 126, 8, 128, 8, 125, 8, 126, 8, 131, 8, 133, 8, 132, 8, 132, 8, 134, 8, 131, 8, 134, 8, 136, 8, 135, 8, 135, 8, 131, 8, 134, 8, 137, 8, 139, 8, 138, 8, 137, 8, 138, 8, 140, 8, 137, 8, 141, 8, 139, 8, 140, 8, 142, 8, 137, 8, 143, 8, 145, 8, 144, 8, 144, 8, 146, 8, 143, 8, 146, 8, 148, 8, 147, 8, 147, 8, 143, 8, 146, 8, 149, 8, 151, 8, 150, 8, 150, 8, 152, 8, 149, 8, 152, 8, 154, 8, 153, 8, 153, 8, 149, 8, 152, 8, 155, 8, 157, 8, 156, 8, 156, 8, 158, 8, 155, 8, 158, 8, 160, 8, 159, 8, 159, 8, 155, 8, 158, 8, 161, 8, 163, 8, 162, 8, 162, 8, 164, 8, 161, 8, 164, 8, 166, 8, 165, 8, 165, 8, 161, 8, 164, 8, 167, 8, 169, 8, 168, 8, 168, 8, 170, 8, 167, 8, 169, 8, 172, 8, 171, 8, 169, 8, 171, 8, 168, 8, 173, 8, 175, 8, 174, 8, 174, 8, 175, 8, 176, 8, 174, 8, 177, 8, 173, 8, 176, 8, 178, 8, 174, 8, 179, 8, 181, 8, 180, 8, 180, 8, 183, 8, 182, 8, 182, 8, 179, 8, 180, 8, 183, 8, 184, 8, 182, 8, 185, 8, 187, 8, 186, 8, 185, 8, 186, 8, 188, 8, 186, 8, 189, 8, 188, 8, 188, 8, 190, 8, 185, 8, 191, 8, 193, 8, 192, 8, 192, 8, 194, 8, 191, 8, 193, 8, 196, 8, 195, 8, 195, 8, 192, 8, 193, 8, 197, 8, 199, 8, 198, 8, 198, 8, 201, 8, 200, 8, 201, 8, 202, 8, 200, 8, 200, 8, 197, 8, 198, 8, 203, 8, 205, 8, 204, 8, 204, 8, 207, 8, 206, 8, 206, 8, 208, 8, 204, 8, 208, 8, 203, 8, 204, 8, 209, 8, 211, 8, 210, 8, 210, 8, 212, 8, 209, 8, 211, 8, 214, 8, 213, 8, 213, 8, 210, 8, 211, 8, 215, 8, 217, 8, 216, 8, 216, 8, 218, 8, 215, 8, 217, 8, 220, 8, 219, 8, 219, 8, 216, 8, 217, 8, 221, 8, 223, 8, 222, 8, 222, 8, 225, 8, 224, 8, 225, 8, 226, 8, 224, 8, 224, 8, 221, 8, 222, 8, 227, 8, 229, 8, 228, 8, 228, 8, 230, 8, 227, 8, 229, 8, 232, 8, 231, 8, 231, 8, 228, 8, 229, 8, 233, 8, 235, 8, 234, 8, 234, 8, 236, 8, 233, 8, 235, 8, 238, 8, 237, 8, 237, 8, 234, 8, 235, 8, 239, 8, 241, 8, 240, 8, 240, 8, 242, 8, 239, 8, 241, 8, 244, 8, 243, 8, 243, 8, 240, 8, 241, 8, 245, 8, 247, 8, 246, 8, 246, 8, 249, 8, 248, 8, 249, 8, 250, 8, 248, 8, 248, 8, 245, 8, 246, 8, 251, 8, 253, 8, 252, 8, 252, 8, 255, 8, 254, 8, 255, 8, 0, 9, 254, 8, 254, 8, 251, 8, 252, 8, 1, 9, 3, 9, 2, 9, 2, 9, 5, 9, 4, 9, 2, 9, 4, 9, 1, 9, 6, 9, 8, 9, 7, 9, 7, 9, 9, 9, 6, 9, 8, 9, 6, 9, 10, 9, 10, 9, 11, 9, 8, 9, 12, 9, 14, 9, 13, 9, 13, 9, 15, 9, 12, 9, 15, 9, 17, 9, 16, 9, 16, 9, 12, 9, 15, 9, 18, 9, 20, 9, 19, 9, 18, 9, 22, 9, 21, 9, 19, 9, 23, 9, 18, 9, 21, 9, 20, 9, 18, 9, 24, 9, 26, 9, 25, 9, 24, 9, 27, 9, 26, 9, 25, 9, 28, 9, 24, 9, 25, 9, 29, 9, 28, 9, 30, 9, 32, 9, 31, 9, 31, 9, 33, 9, 30, 9, 33, 9, 35, 9, 34, 9, 34, 9, 30, 9, 33, 9, 36, 9, 38, 9, 37, 9, 36, 9, 39, 9, 38, 9, 37, 9, 40, 9, 36, 9, 38, 9, 39, 9, 41, 9, 42, 9, 44, 9, 43, 9, 42, 9, 43, 9, 45, 9, 45, 9, 47, 9, 46, 9, 46, 9, 42, 9, 45, 9, 48, 9, 50, 9, 49, 9, 49, 9, 51, 9, 48, 9, 50, 9, 48, 9, 52, 9, 52, 9, 53, 9, 50, 9, 54, 9, 56, 9, 55, 9, 55, 9, 57, 9, 54, 9, 57, 9, 59, 9, 58, 9, 58, 9, 54, 9, 57, 9, 60, 9, 62, 9, 61, 9, 61, 9, 64, 9, 63, 9, 61, 9, 63, 9, 60, 9, 63, 9, 64, 9, 65, 9, 66, 9, 68, 9, 67, 9, 66, 9, 70, 9, 69, 9, 69, 9, 71, 9, 66, 9, 67, 9, 70, 9, 66, 9, 72, 9, 74, 9, 73, 9, 72, 9, 75, 9, 74, 9, 73, 9, 77, 9, 76, 9, 76, 9, 72, 9, 73, 9, 78, 9, 80, 9, 79, 9, 78, 9, 81, 9, 80, 9, 79, 9, 82, 9, 78, 9, 79, 9, 83, 9, 82, 9, 84, 9, 86, 9, 85, 9, 85, 9, 88, 9, 87, 9, 87, 9, 84, 9, 85, 9, 88, 9, 89, 9, 87, 9, 90, 9, 92, 9, 91, 9, 91, 9, 93, 9, 90, 9, 91, 9, 94, 9, 93, 9, 93, 9, 94, 9, 95, 9, 96, 9, 98, 9, 97, 9, 96, 9, 99, 9, 98, 9, 97, 9, 100, 9, 96, 9, 98, 9, 99, 9, 101, 9, 102, 9, 104, 9, 103, 9, 102, 9, 105, 9, 104, 9, 103, 9, 107, 9, 106, 9, 106, 9, 102, 9, 103, 9, 108, 9, 110, 9, 109, 9, 108, 9, 111, 9, 110, 9, 109, 9, 113, 9, 112, 9, 112, 9, 108, 9, 109, 9, 114, 9, 116, 9, 115, 9, 115, 9, 117, 9, 114, 9, 116, 9, 114, 9, 118, 9, 118, 9, 119, 9, 116, 9, 120, 9, 122, 9, 121, 9, 121, 9, 124, 9, 123, 9, 123, 9, 120, 9, 121, 9, 124, 9, 125, 9, 123, 9, 126, 9, 128, 9, 127, 9, 126, 9, 129, 9, 128, 9, 127, 9, 130, 9, 126, 9, 128, 9, 129, 9, 131, 9, 132, 9, 134, 9, 133, 9, 132, 9, 133, 9, 135, 9, 135, 9, 136, 9, 132, 9, 136, 9, 135, 9, 137, 9, 138, 9, 140, 9, 139, 9, 138, 9, 139, 9, 141, 9, 141, 9, 142, 9, 138, 9, 142, 9, 141, 9, 143, 9, 144, 9, 146, 9, 145, 9, 144, 9, 145, 9, 147, 9, 147, 9, 148, 9, 144, 9, 148, 9, 147, 9, 149, 9, 150, 9, 152, 9, 151, 9, 150, 9, 153, 9, 152, 9, 151, 9, 155, 9, 154, 9, 154, 9, 150, 9, 151, 9, 156, 9, 158, 9, 157, 9, 157, 9, 159, 9, 156, 9, 158, 9, 161, 9, 160, 9, 160, 9, 157, 9, 158, 9, 162, 9, 164, 9, 163, 9, 163, 9, 165, 9, 162, 9, 164, 9, 162, 9, 166, 9, 166, 9, 167, 9, 164, 9, 168, 9, 170, 9, 169, 9, 168, 9, 169, 9, 171, 9, 171, 9, 173, 9, 172, 9, 172, 9, 168, 9, 171, 9, 174, 9, 176, 9, 175, 9, 175, 9, 178, 9, 177, 9, 175, 9, 179, 9, 174, 9, 177, 9, 179, 9, 175, 9, 180, 9, 182, 9, 181, 9, 181, 9, 184, 9, 183, 9, 184, 9, 185, 9, 183, 9, 183, 9, 180, 9, 181, 9, 186, 9, 188, 9, 187, 9, 187, 9, 189, 9, 186, 9, 189, 9, 187, 9, 190, 9, 190, 9, 191, 9, 189, 9, 192, 9, 194, 9, 193, 9, 193, 9, 194, 9, 195, 9, 195, 9, 197, 9, 196, 9, 196, 9, 193, 9, 195, 9, 198, 9, 200, 9, 199, 9, 198, 9, 199, 9, 201, 9, 201, 9, 203, 9, 202, 9, 202, 9, 198, 9, 201, 9, 204, 9, 206, 9, 205, 9, 205, 9, 207, 9, 204, 9, 207, 9, 205, 9, 208, 9, 208, 9, 209, 9, 207, 9, 210, 9, 212, 9, 211, 9, 211, 9, 214, 9, 213, 9, 211, 9, 215, 9, 210, 9, 213, 9, 215, 9, 211, 9, 216, 9, 218, 9, 217, 9, 217, 9, 218, 9, 219, 9, 219, 9, 221, 9, 220, 9, 220, 9, 217, 9, 219, 9, 222, 9, 224, 9, 223, 9, 222, 9, 223, 9, 225, 9, 225, 9, 227, 9, 226, 9, 226, 9, 222, 9, 225, 9, 228, 9, 230, 9, 229, 9, 228, 9, 231, 9, 230, 9, 229, 9, 232, 9, 228, 9, 231, 9, 233, 9, 230, 9, 234, 9, 236, 9, 235, 9, 235, 9, 237, 9, 234, 9, 237, 9, 235, 9, 238, 9, 238, 9, 239, 9, 237, 9, 240, 9, 242, 9, 241, 9, 241, 9, 242, 9, 243, 9, 243, 9, 245, 9, 244, 9, 244, 9, 241, 9, 243, 9, 246, 9, 248, 9, 247, 9, 247, 9, 248, 9, 249, 9, 249, 9, 251, 9, 250, 9, 250, 9, 247, 9, 249, 9, 252, 9, 254, 9, 253, 9, 253, 9, 0, 10, 255, 9, 0, 10, 1, 10, 255, 9, 255, 9, 252, 9, 253, 9, 2, 10, 4, 10, 3, 10, 2, 10, 5, 10, 4, 10, 3, 10, 7, 10, 6, 10, 3, 10, 6, 10, 2, 10, 8, 10, 10, 10, 9, 10, 9, 10, 11, 10, 8, 10, 10, 10, 13, 10, 12, 10, 10, 10, 12, 10, 9, 10, 14, 10, 16, 10, 15, 10, 15, 10, 18, 10, 17, 10, 15, 10, 19, 10, 14, 10, 17, 10, 19, 10, 15, 10, 20, 10, 22, 10, 21, 10, 21, 10, 22, 10, 23, 10, 23, 10, 25, 10, 24, 10, 24, 10, 21, 10, 23, 10, 26, 10, 28, 10, 27, 10, 27, 10, 29, 10, 26, 10, 28, 10, 31, 10, 30, 10, 30, 10, 27, 10, 28, 10, 32, 10, 34, 10, 33, 10, 32, 10, 33, 10, 35, 10, 35, 10, 36, 10, 32, 10, 36, 10, 35, 10, 37, 10, 38, 10, 40, 10, 39, 10, 39, 10, 41, 10, 38, 10, 41, 10, 43, 10, 42, 10, 42, 10, 38, 10, 41, 10, 44, 10, 46, 10, 45, 10, 44, 10, 48, 10, 47, 10, 47, 10, 49, 10, 44, 10, 45, 10, 48, 10, 44, 10, 50, 10, 52, 10, 51, 10, 51, 10, 53, 10, 50, 10, 53, 10, 55, 10, 54, 10, 54, 10, 50, 10, 53, 10, 56, 10, 58, 10, 57, 10, 57, 10, 59, 10, 56, 10, 58, 10, 56, 10, 60, 10, 60, 10, 61, 10, 58, 10, 62, 10, 64, 10, 63, 10, 63, 10, 65, 10, 62, 10, 66, 10, 62, 10, 65, 10, 65, 10, 67, 10, 66, 10, 68, 10, 70, 10, 69, 10, 69, 10, 71, 10, 68, 10, 70, 10, 73, 10, 72, 10, 72, 10, 69, 10, 70, 10, 74, 10, 76, 10, 75, 10, 75, 10, 77, 10, 74, 10, 76, 10, 74, 10, 78, 10, 78, 10, 79, 10, 76, 10, 80, 10, 82, 10, 81, 10, 80, 10, 84, 10, 83, 10, 81, 10, 85, 10, 80, 10, 83, 10, 82, 10, 80, 10, 86, 10, 88, 10, 87, 10, 87, 10, 89, 10, 86, 10, 90, 10, 86, 10, 89, 10, 89, 10, 91, 10, 90, 10, 92, 10, 94, 10, 93, 10, 93, 10, 95, 10, 92, 10, 94, 10, 97, 10, 96, 10, 96, 10, 93, 10, 94, 10, 98, 10, 100, 10, 99, 10, 99, 10, 101, 10, 98, 10, 100, 10, 98, 10, 102, 10, 102, 10, 103, 10, 100, 10, 104, 10, 106, 10, 105, 10, 105, 10, 107, 10, 104, 10, 106, 10, 104, 10, 108, 10, 108, 10, 109, 10, 106, 10, 110, 10, 112, 10, 111, 10, 111, 10, 113, 10, 110, 10, 114, 10, 110, 10, 113, 10, 113, 10, 115, 10, 114, 10, 116, 10, 118, 10, 117, 10, 117, 10, 119, 10, 116, 10, 120, 10, 116, 10, 119, 10, 119, 10, 121, 10, 120, 10, 122, 10, 124, 10, 123, 10, 123, 10, 125, 10, 122, 10, 124, 10, 127, 10, 126, 10, 126, 10, 123, 10, 124, 10, 128, 10, 130, 10, 129, 10, 131, 10, 129, 10, 132, 10, 131, 10, 128, 10, 129, 10, 132, 10, 133, 10, 131, 10, 134, 10, 136, 10, 135, 10, 135, 10, 137, 10, 134, 10, 136, 10, 134, 10, 138, 10, 138, 10, 139, 10, 136, 10, 140, 10, 142, 10, 141, 10, 140, 10, 144, 10, 143, 10, 141, 10, 145, 10, 140, 10, 143, 10, 142, 10, 140, 10, 146, 10, 148, 10, 147, 10, 147, 10, 149, 10, 146, 10, 148, 10, 150, 10, 147, 10, 149, 10, 151, 10, 146, 10, 152, 10, 154, 10, 153, 10, 153, 10, 155, 10, 152, 10, 154, 10, 156, 10, 153, 10, 155, 10, 157, 10, 152, 10, 158, 10, 160, 10, 159, 10, 159, 10, 161, 10, 158, 10, 160, 10, 163, 10, 162, 10, 160, 10, 162, 10, 159, 10, 164, 10, 166, 10, 165, 10, 165, 10, 168, 10, 167, 10, 168, 10, 169, 10, 167, 10, 167, 10, 164, 10, 165, 10, 170, 10, 172, 10, 171, 10, 170, 10, 174, 10, 173, 10, 171, 10, 175, 10, 170, 10, 173, 10, 172, 10, 170, 10, 176, 10, 178, 10, 177, 10, 177, 10, 180, 10, 179, 10, 180, 10, 181, 10, 179, 10, 179, 10, 176, 10, 177, 10, 182, 10, 184, 10, 183, 10, 182, 10, 185, 10, 184, 10, 183, 10, 186, 10, 182, 10, 185, 10, 187, 10, 184, 10, 188, 10, 190, 10, 189, 10, 188, 10, 191, 10, 190, 10, 189, 10, 193, 10, 192, 10, 192, 10, 188, 10, 189, 10, 194, 10, 196, 10, 195, 10, 195, 10, 198, 10, 197, 10, 198, 10, 199, 10, 197, 10, 197, 10, 194, 10, 195, 10, 200, 10, 202, 10, 201, 10, 200, 10, 203, 10, 202, 10, 201, 10, 204, 10, 200, 10, 203, 10, 205, 10, 202, 10, 206, 10, 208, 10, 207, 10, 206, 10, 210, 10, 209, 10, 209, 10, 211, 10, 206, 10, 207, 10, 210, 10, 206, 10, 212, 10, 214, 10, 213, 10, 212, 10, 215, 10, 214, 10, 213, 10, 217, 10, 216, 10, 216, 10, 212, 10, 213, 10, 218, 10, 220, 10, 219, 10, 219, 10, 222, 10, 221, 10, 222, 10, 223, 10, 221, 10, 221, 10, 218, 10, 219, 10, 224, 10, 226, 10, 225, 10, 224, 10, 225, 10, 227, 10, 227, 10, 228, 10, 224, 10, 225, 10, 226, 10, 229, 10, 230, 10, 232, 10, 231, 10, 230, 10, 233, 10, 232, 10, 231, 10, 234, 10, 230, 10, 233, 10, 235, 10, 232, 10, 236, 10, 238, 10, 237, 10, 236, 10, 239, 10, 238, 10, 237, 10, 241, 10, 240, 10, 240, 10, 236, 10, 237, 10, 242, 10, 244, 10, 243, 10, 243, 10, 246, 10, 245, 10, 244, 10, 242, 10, 247, 10, 245, 10, 242, 10, 243, 10, 248, 10, 250, 10, 249, 10, 249, 10, 252, 10, 251, 10, 252, 10, 253, 10, 251, 10, 251, 10, 248, 10, 249, 10, 254, 10, 0, 11, 255, 10, 254, 10, 1, 11, 0, 11, 255, 10, 2, 11, 254, 10, 0, 11, 1, 11, 3, 11, 4, 11, 6, 11, 5, 11, 4, 11, 8, 11, 7, 11, 5, 11, 8, 11, 4, 11, 6, 11, 9, 11, 5, 11, 10, 11, 12, 11, 11, 11, 10, 11, 14, 11, 13, 11, 11, 11, 14, 11, 10, 11, 12, 11, 15, 11, 11, 11, 16, 11, 18, 11, 17, 11, 16, 11, 20, 11, 19, 11, 17, 11, 20, 11, 16, 11, 18, 11, 21, 11, 17, 11, 22, 11, 24, 11, 23, 11, 22, 11, 25, 11, 24, 11, 23, 11, 27, 11, 26, 11, 26, 11, 22, 11, 23, 11, 28, 11, 30, 11, 29, 11, 29, 11, 32, 11, 31, 11, 32, 11, 33, 11, 31, 11, 31, 11, 28, 11, 29, 11, 34, 11, 36, 11, 35, 11, 34, 11, 38, 11, 37, 11, 35, 11, 38, 11, 34, 11, 37, 11, 39, 11, 34, 11, 40, 11, 42, 11, 41, 11, 41, 11, 43, 11, 40, 11, 42, 11, 40, 11, 44, 11, 44, 11, 45, 11, 42, 11, 46, 11, 48, 11, 47, 11, 46, 11, 50, 11, 49, 11, 47, 11, 50, 11, 46, 11, 50, 11, 51, 11, 49, 11, 52, 11, 54, 11, 53, 11, 53, 11, 55, 11, 52, 11, 54, 11, 52, 11, 56, 11, 56, 11, 57, 11, 54, 11, 58, 11, 60, 11, 59, 11, 58, 11, 62, 11, 61, 11, 59, 11, 63, 11, 58, 11, 61, 11, 60, 11, 58, 11, 64, 11, 66, 11, 65, 11, 64, 11, 68, 11, 67, 11, 65, 11, 68, 11, 64, 11, 68, 11, 69, 11, 67, 11, 70, 11, 72, 11, 71, 11, 71, 11, 73, 11, 70, 11, 72, 11, 70, 11, 74, 11, 74, 11, 75, 11, 72, 11, 76, 11, 78, 11, 77, 11, 77, 11, 79, 11, 76, 11, 78, 11, 76, 11, 80, 11, 80, 11, 81, 11, 78, 11, 82, 11, 84, 11, 83, 11, 82, 11, 86, 11, 85, 11, 85, 11, 84, 11, 82, 11, 84, 11, 87, 11, 83, 11, 88, 11, 90, 11, 89, 11, 88, 11, 92, 11, 91, 11, 89, 11, 92, 11, 88, 11, 92, 11, 93, 11, 91, 11, 94, 11, 96, 11, 95, 11, 95, 11, 97, 11, 94, 11, 96, 11, 99, 11, 98, 11, 98, 11, 95, 11, 96, 11, 100, 11, 102, 11, 101, 11, 101, 11, 103, 11, 100, 11, 102, 11, 105, 11, 104, 11, 104, 11, 101, 11, 102, 11, 106, 11, 108, 11, 107, 11, 106, 11, 110, 11, 109, 11, 107, 11, 110, 11, 106, 11, 109, 11, 111, 11, 106, 11, 112, 11, 114, 11, 113, 11, 113, 11, 115, 11, 112, 11, 114, 11, 112, 11, 116, 11, 116, 11, 117, 11, 114, 11, 118, 11, 120, 11, 119, 11, 119, 11, 121, 11, 118, 11, 120, 11, 118, 11, 122, 11, 122, 11, 123, 11, 120, 11), "lods": [0.227354, PackedByteArray(0, 0, 2, 0, 1, 0, 2, 0, 52, 0, 1, 0, 2, 0, 0, 0, 219, 0, 52, 0, 2, 0, 10, 0, 219, 0, 10, 0, 2, 0, 10, 0, 219, 0, 255, 0, 10, 0, 211, 0, 52, 0, 255, 0, 211, 0, 10, 0, 31, 1, 255, 0, 219, 0, 31, 1, 219, 0, 35, 1, 0, 0, 35, 1, 219, 0, 255, 0, 31, 1, 65, 1, 25, 1, 211, 0, 255, 0, 65, 1, 25, 1, 255, 0, 65, 1, 31, 1, 238, 1, 35, 1, 238, 1, 31, 1, 61, 1, 25, 1, 65, 1, 97, 1, 61, 1, 65, 1, 25, 1, 61, 1, 91, 1, 97, 1, 91, 1, 61, 1, 91, 1, 89, 1, 25, 1, 65, 1, 70, 1, 97, 1, 238, 1, 70, 1, 65, 1, 97, 1, 107, 1, 91, 1, 107, 1, 97, 1, 70, 1, 91, 1, 107, 1, 89, 1, 70, 1, 108, 1, 107, 1, 108, 1, 70, 1, 240, 1, 238, 1, 240, 1, 70, 1, 240, 1, 206, 4, 108, 1, 107, 1, 108, 1, 206, 4, 230, 4, 240, 1, 238, 1, 206, 4, 240, 1, 230, 4, 238, 1, 35, 1, 236, 1, 238, 1, 236, 1, 44, 8, 44, 8, 230, 4, 238, 1, 35, 1, 244, 1, 236, 1, 236, 1, 244, 1, 44, 8, 35, 1, 36, 1, 244, 1, 0, 0, 36, 1, 35, 1, 44, 8, 252, 7, 230, 4, 36, 8, 44, 8, 244, 1, 252, 7, 44, 8, 36, 8, 34, 8, 36, 8, 244, 1, 13, 8, 252, 7, 36, 8, 28, 8, 13, 8, 36, 8, 36, 8, 34, 8, 28, 8, 28, 8, 252, 7, 13, 8, 28, 8, 34, 8, 7, 2, 7, 2, 34, 8, 244, 1, 28, 8, 27, 8, 252, 7, 7, 2, 27, 8, 28, 8, 230, 4, 252, 7, 63, 5, 27, 8, 251, 7, 252, 7, 252, 7, 251, 7, 20, 6, 252, 7, 20, 6, 63, 5, 188, 5, 251, 7, 27, 8, 20, 6, 251, 7, 188, 5, 8, 2, 27, 8, 7, 2, 63, 5, 27, 5, 230, 4, 27, 5, 206, 4, 230, 4, 27, 8, 8, 2, 13, 2, 188, 5, 27, 8, 13, 2, 194, 1, 8, 2, 7, 2, 8, 2, 194, 1, 195, 1, 13, 2, 8, 2, 232, 1, 232, 1, 8, 2, 195, 1, 232, 1, 14, 2, 13, 2, 13, 2, 14, 2, 188, 5, 195, 1, 233, 1, 232, 1, 14, 2, 232, 1, 234, 1, 233, 1, 234, 1, 232, 1, 234, 1, 146, 2, 14, 2, 188, 5, 14, 2, 158, 5, 146, 2, 158, 5, 14, 2, 144, 2, 146, 2, 234, 1, 158, 5, 146, 2, 144, 2, 234, 1, 233, 1, 142, 2, 234, 1, 142, 2, 144, 2, 158, 5, 237, 5, 188, 5, 233, 1, 107, 2, 142, 2, 159, 5, 158, 5, 144, 2, 158, 5, 159, 5, 237, 5, 144, 2, 142, 2, 158, 2, 148, 2, 142, 2, 107, 2, 148, 2, 158, 2, 142, 2, 107, 2, 110, 2, 148, 2, 107, 2, 77, 2, 110, 2, 110, 2, 77, 2, 148, 2, 233, 1, 77, 2, 107, 2, 154, 2, 158, 2, 148, 2, 154, 2, 148, 2, 77, 2, 114, 1, 77, 2, 233, 1, 233, 1, 195, 1, 114, 1, 77, 2, 80, 2, 154, 2, 80, 2, 83, 2, 154, 2, 80, 2, 77, 2, 38, 2, 38, 2, 83, 2, 80, 2, 23, 2, 38, 2, 77, 2, 114, 1, 23, 2, 77, 2, 38, 2, 59, 2, 83, 2, 59, 2, 86, 2, 83, 2, 160, 2, 154, 2, 83, 2, 83, 2, 86, 2, 160, 2, 160, 2, 158, 2, 154, 2, 126, 2, 86, 2, 59, 2, 86, 2, 126, 2, 160, 2, 91, 2, 59, 2, 38, 2, 91, 2, 126, 2, 59, 2, 38, 2, 23, 2, 91, 2, 166, 2, 160, 2, 126, 2, 126, 2, 91, 2, 166, 2, 166, 2, 158, 2, 160, 2, 130, 2, 91, 2, 23, 2, 91, 2, 130, 2, 166, 2, 130, 2, 23, 2, 67, 2, 67, 2, 23, 2, 114, 1, 166, 2, 130, 2, 133, 2, 133, 2, 130, 2, 67, 2, 158, 2, 166, 2, 172, 2, 172, 2, 166, 2, 133, 2, 114, 1, 4, 0, 67, 2, 67, 2, 45, 2, 133, 2, 45, 2, 67, 2, 4, 0, 138, 2, 133, 2, 45, 2, 133, 2, 138, 2, 172, 2, 45, 2, 4, 0, 32, 2, 138, 2, 45, 2, 104, 2, 32, 2, 104, 2, 45, 2, 104, 2, 137, 2, 138, 2, 172, 2, 138, 2, 137, 2, 135, 2, 137, 2, 104, 2, 135, 2, 104, 2, 215, 2, 32, 2, 215, 2, 104, 2, 135, 2, 215, 2, 240, 2, 240, 2, 137, 2, 135, 2, 215, 2, 32, 2, 188, 2, 240, 2, 215, 2, 188, 2, 16, 0, 188, 2, 32, 2, 3, 0, 16, 0, 32, 2, 32, 2, 4, 0, 3, 0, 58, 0, 16, 0, 3, 0, 58, 0, 188, 2, 16, 0, 3, 0, 4, 0, 0, 0, 4, 0, 114, 1, 0, 0, 1, 0, 3, 0, 0, 0, 3, 0, 1, 0, 58, 0, 0, 0, 114, 1, 124, 1, 114, 1, 195, 1, 124, 1, 194, 1, 124, 1, 195, 1, 124, 1, 206, 0, 0, 0, 194, 1, 188, 1, 124, 1, 206, 0, 124, 1, 188, 1, 7, 2, 188, 1, 194, 1, 36, 1, 0, 0, 206, 0, 0, 2, 188, 1, 7, 2, 244, 1, 0, 2, 7, 2, 244, 1, 36, 1, 242, 1, 242, 1, 0, 2, 244, 1, 36, 1, 206, 1, 242, 1, 0, 2, 242, 1, 206, 1, 206, 0, 171, 1, 36, 1, 206, 1, 36, 1, 171, 1, 188, 1, 117, 1, 206, 0, 171, 1, 206, 0, 117, 1, 188, 1, 191, 1, 117, 1, 0, 2, 217, 1, 188, 1, 191, 1, 188, 1, 217, 1, 215, 1, 0, 2, 206, 1, 217, 1, 0, 2, 215, 1, 217, 1, 182, 1, 191, 1, 191, 1, 182, 1, 117, 1, 215, 1, 212, 1, 217, 1, 182, 1, 217, 1, 212, 1, 212, 1, 185, 1, 182, 1, 212, 1, 215, 1, 180, 1, 180, 1, 185, 1, 212, 1, 206, 1, 209, 1, 215, 1, 180, 1, 215, 1, 209, 1, 209, 1, 206, 1, 174, 1, 171, 1, 174, 1, 206, 1, 209, 1, 177, 1, 180, 1, 174, 1, 177, 1, 209, 1, 185, 1, 180, 1, 155, 1, 155, 1, 180, 1, 177, 1, 182, 1, 185, 1, 155, 1, 132, 1, 177, 1, 174, 1, 174, 1, 171, 1, 132, 1, 177, 1, 132, 1, 155, 1, 182, 1, 155, 1, 132, 1, 117, 1, 132, 1, 171, 1, 132, 1, 117, 1, 182, 1, 7, 0, 1, 0, 20, 0, 20, 0, 22, 0, 7, 0, 20, 0, 1, 0, 111, 0, 111, 0, 22, 0, 20, 0, 113, 0, 111, 0, 1, 0, 1, 0, 52, 0, 113, 0, 1, 0, 7, 0, 54, 0, 1, 0, 54, 0, 58, 0, 59, 0, 54, 0, 7, 0, 7, 0, 22, 0, 59, 0, 54, 0, 166, 0, 58, 0, 166, 0, 8, 3, 58, 0, 54, 0, 59, 0, 48, 3, 166, 0, 54, 0, 48, 3, 188, 2, 58, 0, 8, 3, 188, 2, 8, 3, 0, 3, 8, 3, 166, 0, 43, 3, 48, 3, 43, 3, 166, 0, 2, 3, 0, 3, 8, 3, 203, 2, 188, 2, 0, 3, 0, 3, 2, 3, 203, 2, 245, 2, 188, 2, 203, 2, 188, 2, 245, 2, 240, 2, 224, 2, 203, 2, 2, 3, 203, 2, 224, 2, 245, 2, 2, 3, 245, 2, 224, 2, 137, 2, 240, 2, 245, 2, 8, 3, 35, 3, 2, 3, 2, 3, 35, 3, 245, 2, 42, 3, 35, 3, 8, 3, 8, 3, 43, 3, 42, 3, 35, 3, 12, 3, 245, 2, 245, 2, 12, 3, 137, 2, 35, 3, 42, 3, 12, 3, 11, 3, 137, 2, 12, 3, 42, 3, 43, 3, 65, 3, 65, 3, 43, 3, 48, 3, 14, 3, 12, 3, 42, 3, 12, 3, 14, 3, 11, 3, 137, 2, 11, 3, 118, 6, 118, 6, 172, 2, 137, 2, 145, 6, 118, 6, 11, 3, 114, 6, 11, 3, 14, 3, 11, 3, 114, 6, 145, 6, 42, 3, 207, 8, 14, 3, 118, 6, 140, 6, 172, 2, 207, 8, 42, 3, 60, 3, 65, 3, 60, 3, 42, 3, 14, 3, 207, 8, 226, 8, 14, 3, 226, 8, 114, 6, 60, 3, 77, 3, 207, 8, 207, 8, 217, 8, 226, 8, 76, 3, 60, 3, 65, 3, 77, 3, 60, 3, 76, 3, 204, 8, 207, 8, 77, 3, 217, 8, 207, 8, 204, 8, 77, 3, 105, 3, 204, 8, 105, 3, 189, 8, 204, 8, 204, 8, 189, 8, 217, 8, 105, 3, 77, 3, 135, 3, 186, 8, 189, 8, 105, 3, 135, 3, 186, 8, 105, 3, 193, 8, 189, 8, 186, 8, 202, 8, 217, 8, 189, 8, 189, 8, 193, 8, 202, 8, 217, 8, 202, 8, 131, 6, 129, 6, 226, 8, 217, 8, 131, 6, 129, 6, 217, 8, 226, 8, 129, 6, 114, 6, 202, 8, 157, 6, 131, 6, 157, 6, 202, 8, 193, 8, 129, 6, 131, 6, 130, 6, 130, 6, 131, 6, 157, 6, 125, 6, 114, 6, 129, 6, 130, 6, 125, 6, 129, 6, 153, 6, 157, 6, 193, 8, 130, 6, 157, 6, 153, 6, 186, 8, 178, 8, 193, 8, 135, 3, 178, 8, 186, 8, 184, 8, 193, 8, 178, 8, 193, 8, 184, 8, 153, 6, 178, 8, 176, 8, 184, 8, 176, 8, 178, 8, 135, 3, 184, 8, 187, 6, 153, 6, 187, 6, 184, 8, 176, 8, 153, 6, 148, 6, 130, 6, 125, 6, 130, 6, 148, 6, 155, 6, 153, 6, 187, 6, 153, 6, 155, 6, 148, 6, 183, 6, 187, 6, 176, 8, 155, 6, 187, 6, 183, 6, 176, 8, 223, 6, 183, 6, 135, 3, 223, 6, 176, 8, 178, 6, 155, 6, 183, 6, 148, 6, 155, 6, 178, 6, 185, 6, 183, 6, 223, 6, 183, 6, 185, 6, 178, 6, 219, 6, 223, 6, 135, 3, 185, 6, 223, 6, 219, 6, 151, 6, 148, 6, 178, 6, 148, 6, 151, 6, 125, 6, 181, 6, 178, 6, 185, 6, 185, 6, 219, 6, 181, 6, 173, 6, 151, 6, 178, 6, 178, 6, 181, 6, 173, 6, 125, 6, 151, 6, 144, 6, 144, 6, 151, 6, 173, 6, 144, 6, 114, 6, 125, 6, 114, 6, 144, 6, 166, 6, 144, 6, 173, 6, 166, 6, 114, 6, 166, 6, 145, 6, 173, 6, 181, 6, 208, 6, 208, 6, 181, 6, 219, 6, 173, 6, 175, 6, 166, 6, 175, 6, 173, 6, 208, 6, 166, 6, 175, 6, 202, 6, 202, 6, 175, 6, 208, 6, 166, 6, 169, 6, 145, 6, 169, 6, 166, 6, 202, 6, 219, 6, 221, 6, 208, 6, 208, 6, 221, 6, 202, 6, 200, 6, 169, 6, 202, 6, 200, 6, 202, 6, 221, 6, 145, 6, 169, 6, 231, 6, 231, 6, 169, 6, 200, 6, 213, 3, 221, 6, 219, 6, 213, 3, 219, 6, 135, 3, 213, 3, 135, 3, 77, 3, 213, 3, 77, 3, 76, 3, 221, 6, 232, 6, 200, 6, 231, 6, 200, 6, 232, 6, 1, 7, 221, 6, 213, 3, 232, 6, 221, 6, 1, 7, 76, 3, 208, 3, 213, 3, 9, 7, 213, 3, 208, 3, 213, 3, 9, 7, 1, 7, 76, 3, 218, 3, 208, 3, 53, 7, 9, 7, 208, 3, 1, 7, 9, 7, 53, 7, 208, 3, 218, 3, 53, 7, 4, 7, 1, 7, 53, 7, 254, 6, 1, 7, 4, 7, 1, 7, 254, 6, 232, 6, 4, 7, 53, 7, 55, 7, 55, 7, 53, 7, 218, 3, 55, 7, 48, 7, 4, 7, 4, 7, 48, 7, 254, 6, 254, 6, 48, 7, 50, 7, 227, 10, 48, 7, 55, 7, 48, 7, 225, 10, 50, 7, 227, 10, 225, 10, 48, 7, 50, 7, 42, 7, 254, 6, 225, 10, 42, 7, 50, 7, 254, 6, 42, 7, 248, 6, 248, 6, 232, 6, 254, 6, 43, 7, 42, 7, 225, 10, 248, 6, 42, 7, 43, 7, 225, 10, 229, 10, 43, 7, 225, 10, 187, 10, 229, 10, 227, 10, 187, 10, 225, 10, 229, 10, 232, 10, 43, 7, 187, 10, 232, 10, 229, 10, 43, 7, 36, 7, 248, 6, 232, 10, 36, 7, 43, 7, 242, 6, 232, 6, 248, 6, 248, 6, 36, 7, 242, 6, 37, 7, 36, 7, 232, 10, 242, 6, 36, 7, 37, 7, 232, 10, 235, 10, 37, 7, 236, 6, 232, 6, 242, 6, 210, 10, 235, 10, 232, 10, 187, 10, 210, 10, 232, 10, 235, 10, 236, 10, 37, 7, 236, 10, 235, 10, 210, 10, 37, 7, 30, 7, 242, 6, 236, 10, 30, 7, 37, 7, 242, 6, 30, 7, 236, 6, 31, 7, 30, 7, 236, 10, 236, 6, 30, 7, 31, 7, 236, 10, 210, 10, 240, 10, 236, 10, 240, 10, 31, 7, 240, 10, 210, 10, 187, 10, 236, 6, 31, 7, 240, 10, 240, 10, 187, 10, 127, 10, 236, 6, 240, 10, 127, 10, 232, 6, 236, 6, 231, 6, 231, 6, 236, 6, 23, 7, 23, 7, 236, 6, 127, 10, 127, 10, 187, 10, 43, 10, 43, 10, 187, 10, 227, 10, 127, 10, 124, 10, 23, 7, 43, 10, 2, 9, 127, 10, 124, 10, 127, 10, 2, 9, 227, 10, 177, 10, 43, 10, 2, 9, 43, 10, 177, 10, 177, 10, 227, 10, 249, 10, 55, 7, 249, 10, 227, 10, 21, 7, 23, 7, 124, 10, 23, 7, 21, 7, 231, 6, 249, 10, 55, 7, 218, 3, 181, 10, 177, 10, 249, 10, 181, 10, 2, 9, 177, 10, 249, 10, 252, 10, 181, 10, 218, 3, 216, 3, 249, 10, 216, 3, 252, 10, 249, 10, 218, 3, 76, 3, 65, 3, 218, 3, 65, 3, 141, 3, 141, 3, 216, 3, 218, 3, 252, 10, 253, 10, 181, 10, 216, 3, 253, 10, 252, 10, 253, 10, 216, 3, 221, 3, 221, 3, 92, 11, 253, 10, 253, 10, 92, 11, 181, 10, 221, 3, 216, 3, 183, 3, 92, 11, 221, 3, 222, 3, 183, 3, 222, 3, 221, 3, 222, 3, 85, 11, 92, 11, 181, 10, 92, 11, 38, 11, 92, 11, 85, 11, 38, 11, 181, 10, 38, 11, 9, 9, 181, 10, 9, 9, 5, 9, 2, 9, 181, 10, 5, 9, 72, 11, 9, 9, 38, 11, 2, 9, 5, 9, 4, 9, 5, 9, 9, 9, 4, 9, 45, 11, 38, 11, 85, 11, 38, 11, 45, 11, 72, 11, 85, 11, 60, 11, 45, 11, 85, 11, 84, 11, 60, 11, 229, 3, 84, 11, 85, 11, 85, 11, 222, 3, 229, 3, 84, 11, 81, 11, 60, 11, 81, 11, 84, 11, 229, 3, 227, 3, 229, 3, 222, 3, 229, 3, 227, 3, 81, 11, 222, 3, 183, 3, 227, 3, 78, 11, 45, 11, 60, 11, 60, 11, 81, 11, 78, 11, 45, 11, 78, 11, 75, 11, 75, 11, 72, 11, 45, 11, 237, 3, 78, 11, 81, 11, 75, 11, 78, 11, 237, 3, 81, 11, 227, 3, 237, 3, 237, 3, 234, 3, 75, 11, 234, 3, 237, 3, 227, 3, 72, 11, 75, 11, 234, 3, 234, 3, 227, 3, 183, 3, 234, 3, 242, 3, 72, 11, 194, 3, 234, 3, 183, 3, 242, 3, 234, 3, 194, 3, 119, 9, 72, 11, 242, 3, 9, 9, 72, 11, 119, 9, 194, 3, 239, 3, 242, 3, 242, 3, 239, 3, 119, 9, 183, 3, 191, 3, 194, 3, 194, 3, 191, 3, 239, 3, 9, 9, 119, 9, 116, 9, 116, 9, 119, 9, 239, 3, 9, 9, 116, 9, 115, 9, 239, 3, 248, 3, 116, 9, 191, 3, 248, 3, 239, 3, 115, 9, 116, 9, 248, 3, 191, 3, 183, 3, 177, 3, 183, 3, 216, 3, 177, 3, 177, 3, 147, 3, 191, 3, 177, 3, 216, 3, 141, 3, 141, 3, 147, 3, 177, 3, 147, 3, 149, 3, 191, 3, 149, 3, 147, 3, 141, 3, 149, 3, 248, 3, 191, 3, 141, 3, 114, 3, 149, 3, 141, 3, 85, 3, 114, 3, 114, 3, 85, 3, 149, 3, 85, 3, 141, 3, 65, 3, 248, 3, 149, 3, 92, 3, 85, 3, 92, 3, 149, 3, 245, 3, 248, 3, 92, 3, 248, 3, 245, 3, 115, 9, 67, 3, 92, 3, 85, 3, 92, 3, 67, 3, 245, 3, 56, 3, 85, 3, 65, 3, 67, 3, 85, 3, 56, 3, 48, 3, 56, 3, 65, 3, 56, 3, 53, 3, 67, 3, 53, 3, 56, 3, 48, 3, 67, 3, 70, 3, 245, 3, 70, 3, 67, 3, 53, 3, 48, 3, 168, 0, 53, 3, 168, 0, 48, 3, 59, 0, 59, 0, 130, 0, 168, 0, 53, 3, 168, 0, 171, 0, 171, 0, 168, 0, 130, 0, 59, 0, 22, 0, 130, 0, 171, 0, 74, 3, 53, 3, 53, 3, 74, 3, 70, 3, 171, 0, 122, 7, 74, 3, 74, 3, 99, 3, 70, 3, 74, 3, 122, 7, 115, 7, 99, 3, 74, 3, 115, 7, 171, 0, 104, 7, 122, 7, 104, 7, 115, 7, 122, 7, 202, 0, 104, 7, 171, 0, 115, 7, 104, 7, 24, 4, 104, 7, 202, 0, 24, 4, 115, 7, 98, 7, 99, 3, 115, 7, 84, 7, 98, 7, 84, 7, 115, 7, 24, 4, 99, 3, 98, 7, 91, 7, 84, 7, 91, 7, 98, 7, 70, 3, 99, 3, 207, 3, 84, 7, 24, 4, 25, 4, 207, 3, 202, 3, 70, 3, 202, 3, 245, 3, 70, 3, 25, 4, 50, 4, 84, 7, 91, 7, 84, 7, 50, 4, 23, 4, 25, 4, 24, 4, 50, 4, 25, 4, 23, 4, 11, 4, 23, 4, 24, 4, 48, 4, 50, 4, 23, 4, 50, 4, 48, 4, 91, 7, 29, 4, 23, 4, 11, 4, 23, 4, 29, 4, 48, 4, 12, 4, 11, 4, 24, 4, 11, 4, 12, 4, 29, 4, 12, 4, 24, 4, 202, 0, 74, 7, 91, 7, 48, 4, 29, 4, 51, 4, 48, 4, 48, 4, 80, 4, 74, 7, 80, 4, 48, 4, 51, 4, 53, 4, 51, 4, 29, 4, 29, 4, 12, 4, 53, 4, 51, 4, 78, 4, 80, 4, 51, 4, 53, 4, 78, 4, 79, 7, 74, 7, 80, 4, 91, 7, 74, 7, 79, 7, 80, 4, 78, 4, 79, 7, 91, 7, 79, 7, 129, 3, 129, 3, 99, 3, 91, 7, 114, 4, 79, 7, 78, 4, 79, 7, 114, 4, 129, 3, 99, 3, 129, 3, 207, 3, 114, 4, 78, 4, 81, 4, 53, 4, 81, 4, 78, 4, 129, 3, 114, 4, 115, 4, 115, 4, 207, 3, 129, 3, 81, 4, 115, 4, 114, 4, 81, 4, 53, 4, 58, 4, 81, 4, 83, 4, 115, 4, 83, 4, 81, 4, 58, 4, 207, 3, 115, 4, 117, 4, 83, 4, 117, 4, 115, 4, 53, 4, 12, 4, 58, 4, 83, 4, 58, 4, 86, 4, 86, 4, 117, 4, 83, 4, 58, 4, 64, 4, 86, 4, 86, 4, 64, 4, 92, 4, 92, 4, 117, 4, 86, 4, 62, 4, 64, 4, 58, 4, 92, 4, 64, 4, 62, 4, 58, 4, 12, 4, 62, 4, 62, 4, 68, 4, 92, 4, 12, 4, 36, 4, 62, 4, 39, 4, 68, 4, 62, 4, 62, 4, 36, 4, 39, 4, 68, 4, 102, 4, 92, 4, 68, 4, 39, 4, 102, 4, 117, 4, 92, 4, 104, 4, 102, 4, 104, 4, 92, 4, 36, 4, 12, 4, 15, 4, 39, 4, 36, 4, 15, 4, 15, 4, 12, 4, 1, 4, 1, 4, 12, 4, 202, 0, 15, 4, 255, 3, 39, 4, 1, 4, 255, 3, 15, 4, 39, 4, 41, 4, 102, 4, 41, 4, 39, 4, 255, 3, 202, 0, 199, 0, 1, 4, 199, 0, 255, 3, 1, 4, 199, 0, 202, 0, 172, 0, 171, 0, 172, 0, 202, 0, 130, 0, 172, 0, 171, 0, 255, 3, 199, 0, 159, 0, 172, 0, 144, 0, 199, 0, 159, 0, 199, 0, 144, 0, 135, 0, 172, 0, 130, 0, 144, 0, 172, 0, 135, 0, 40, 0, 135, 0, 130, 0, 130, 0, 22, 0, 40, 0, 144, 0, 135, 0, 100, 0, 70, 0, 100, 0, 135, 0, 100, 0, 70, 0, 144, 0, 135, 0, 40, 0, 70, 0, 147, 0, 70, 0, 40, 0, 40, 0, 22, 0, 147, 0, 144, 0, 70, 0, 147, 0, 147, 0, 22, 0, 108, 0, 108, 0, 22, 0, 111, 0, 152, 0, 144, 0, 147, 0, 147, 0, 108, 0, 152, 0, 144, 0, 152, 0, 159, 0, 108, 0, 111, 0, 113, 0, 113, 0, 152, 0, 108, 0, 159, 0, 152, 0, 113, 0, 113, 0, 158, 0, 159, 0, 52, 0, 158, 0, 113, 0, 76, 1, 159, 0, 158, 0, 159, 0, 76, 1, 255, 3, 52, 0, 37, 1, 158, 0, 52, 0, 211, 0, 37, 1, 158, 0, 37, 1, 74, 1, 74, 1, 76, 1, 158, 0, 37, 1, 211, 0, 12, 1, 74, 1, 37, 1, 12, 1, 12, 1, 211, 0, 226, 0, 74, 1, 12, 1, 45, 1, 226, 0, 45, 1, 12, 1, 226, 0, 211, 0, 23, 1, 25, 1, 23, 1, 211, 0, 226, 0, 247, 0, 45, 1, 23, 1, 247, 0, 226, 0, 23, 1, 25, 1, 89, 1, 45, 1, 247, 0, 18, 1, 19, 1, 247, 0, 23, 1, 19, 1, 18, 1, 247, 0, 89, 1, 19, 1, 23, 1, 83, 1, 45, 1, 18, 1, 18, 1, 19, 1, 83, 1, 45, 1, 83, 1, 74, 1, 19, 1, 89, 1, 83, 1, 83, 1, 76, 1, 74, 1, 89, 1, 76, 1, 83, 1, 76, 1, 89, 1, 107, 1, 107, 1, 210, 7, 76, 1, 210, 7, 22, 4, 76, 1, 76, 1, 22, 4, 255, 3, 255, 3, 22, 4, 41, 4, 22, 4, 210, 7, 205, 7, 205, 7, 210, 7, 198, 7, 205, 7, 187, 7, 22, 4, 187, 7, 205, 7, 198, 7, 107, 1, 194, 7, 210, 7, 194, 7, 198, 7, 210, 7, 107, 1, 234, 4, 194, 7, 198, 7, 194, 7, 192, 7, 192, 7, 194, 7, 234, 4, 192, 7, 182, 7, 198, 7, 180, 7, 187, 7, 198, 7, 198, 7, 182, 7, 180, 7, 174, 7, 182, 7, 192, 7, 180, 7, 182, 7, 174, 7, 234, 4, 176, 7, 192, 7, 192, 7, 176, 7, 174, 7, 234, 4, 107, 1, 211, 4, 206, 4, 211, 4, 107, 1, 234, 4, 232, 4, 176, 7, 174, 7, 176, 7, 232, 4, 211, 4, 215, 4, 234, 4, 215, 4, 232, 4, 234, 4, 215, 4, 211, 4, 220, 4, 211, 4, 206, 4, 220, 4, 220, 4, 224, 4, 215, 4, 215, 4, 224, 4, 232, 4, 220, 4, 206, 4, 244, 4, 224, 4, 220, 4, 244, 4, 232, 4, 163, 7, 174, 7, 174, 7, 163, 7, 160, 7, 174, 7, 160, 7, 180, 7, 0, 5, 163, 7, 232, 4, 160, 7, 163, 7, 67, 5, 67, 5, 163, 7, 0, 5, 180, 7, 160, 7, 156, 7, 67, 5, 156, 7, 160, 7, 156, 7, 76, 4, 180, 7, 76, 4, 187, 7, 180, 7, 22, 4, 187, 7, 76, 4, 22, 4, 76, 4, 154, 4, 76, 4, 156, 7, 154, 4, 154, 4, 41, 4, 22, 4, 156, 7, 67, 5, 65, 5, 65, 5, 154, 4, 156, 7, 65, 5, 67, 5, 40, 5, 41, 4, 154, 4, 149, 4, 149, 4, 102, 4, 41, 4, 154, 4, 65, 5, 75, 5, 149, 4, 154, 4, 113, 5, 154, 4, 75, 5, 113, 5, 75, 5, 65, 5, 74, 5, 40, 5, 74, 5, 65, 5, 102, 4, 149, 4, 144, 4, 104, 4, 102, 4, 144, 4, 113, 5, 200, 4, 149, 4, 144, 4, 149, 4, 200, 4, 124, 9, 200, 4, 113, 5, 104, 4, 144, 4, 122, 4, 122, 4, 117, 4, 104, 4, 200, 4, 197, 4, 144, 4, 123, 4, 117, 4, 122, 4, 117, 4, 123, 4, 207, 3, 202, 3, 207, 3, 123, 4, 123, 4, 245, 3, 202, 3, 123, 4, 124, 4, 245, 3, 122, 4, 124, 4, 123, 4, 170, 4, 245, 3, 124, 4, 170, 4, 115, 9, 245, 3, 124, 4, 122, 4, 130, 4, 124, 4, 171, 4, 170, 4, 130, 4, 171, 4, 124, 4, 170, 4, 171, 4, 112, 9, 112, 9, 115, 9, 170, 4, 175, 4, 171, 4, 130, 4, 171, 4, 175, 4, 108, 9, 171, 4, 108, 9, 112, 9, 130, 4, 176, 4, 175, 4, 176, 4, 108, 9, 175, 4, 130, 4, 122, 4, 136, 4, 136, 4, 176, 4, 130, 4, 136, 4, 122, 4, 142, 4, 144, 4, 142, 4, 122, 4, 181, 4, 176, 4, 136, 4, 108, 9, 176, 4, 181, 4, 136, 4, 182, 4, 181, 4, 142, 4, 182, 4, 136, 4, 181, 4, 106, 9, 108, 9, 142, 4, 144, 4, 146, 4, 182, 4, 102, 9, 181, 4, 181, 4, 102, 9, 106, 9, 187, 4, 182, 4, 142, 4, 102, 9, 182, 4, 187, 4, 142, 4, 188, 4, 187, 4, 146, 4, 188, 4, 142, 4, 187, 4, 101, 9, 102, 9, 146, 4, 144, 4, 197, 4, 188, 4, 98, 9, 187, 4, 187, 4, 98, 9, 101, 9, 102, 9, 101, 9, 70, 9, 102, 9, 70, 9, 106, 9, 98, 9, 70, 9, 101, 9, 193, 4, 188, 4, 146, 4, 98, 9, 188, 4, 193, 4, 106, 9, 70, 9, 41, 9, 41, 9, 70, 9, 98, 9, 41, 9, 20, 9, 106, 9, 108, 9, 106, 9, 20, 9, 41, 9, 98, 9, 95, 9, 193, 4, 95, 9, 98, 9, 95, 9, 20, 9, 41, 9, 108, 9, 20, 9, 112, 9, 193, 4, 93, 9, 95, 9, 93, 9, 20, 9, 95, 9, 146, 4, 194, 4, 193, 4, 194, 4, 93, 9, 193, 4, 197, 4, 194, 4, 146, 4, 90, 9, 93, 9, 194, 4, 90, 9, 194, 4, 197, 4, 90, 9, 20, 9, 93, 9, 112, 9, 20, 9, 21, 9, 197, 4, 121, 9, 90, 9, 121, 9, 197, 4, 200, 4, 11, 9, 20, 9, 90, 9, 21, 9, 20, 9, 11, 9, 55, 9, 90, 9, 121, 9, 90, 9, 55, 9, 11, 9, 200, 4, 124, 9, 121, 9, 21, 9, 4, 9, 112, 9, 11, 9, 4, 9, 21, 9, 4, 9, 11, 9, 55, 9, 115, 9, 112, 9, 4, 9, 4, 9, 9, 9, 115, 9, 17, 9, 55, 9, 121, 9, 55, 9, 17, 9, 4, 9, 121, 9, 124, 9, 17, 9, 1, 9, 4, 9, 17, 9, 2, 9, 4, 9, 1, 9, 124, 9, 125, 9, 17, 9, 1, 9, 3, 9, 2, 9, 68, 10, 2, 9, 3, 9, 2, 9, 68, 10, 124, 10, 1, 9, 173, 9, 3, 9, 3, 9, 173, 9, 68, 10, 122, 10, 124, 10, 68, 10, 247, 9, 125, 9, 124, 9, 21, 7, 124, 10, 122, 10, 125, 9, 191, 9, 17, 9, 247, 9, 191, 9, 125, 9, 124, 9, 123, 5, 247, 9, 113, 5, 123, 5, 124, 9, 129, 5, 247, 9, 123, 5, 126, 5, 123, 5, 113, 5, 123, 5, 126, 5, 129, 5, 126, 5, 113, 5, 75, 5, 244, 9, 247, 9, 129, 5, 244, 9, 191, 9, 247, 9, 129, 5, 126, 5, 244, 9, 76, 5, 126, 5, 75, 5, 74, 5, 76, 5, 75, 5, 76, 5, 133, 5, 126, 5, 76, 5, 74, 5, 100, 5, 100, 5, 133, 5, 76, 5, 126, 5, 241, 9, 244, 9, 135, 5, 241, 9, 126, 5, 126, 5, 133, 5, 135, 5, 241, 9, 215, 9, 244, 9, 244, 9, 215, 9, 191, 9, 239, 9, 241, 9, 135, 5, 239, 9, 215, 9, 241, 9, 135, 5, 133, 5, 239, 9, 215, 9, 239, 9, 237, 9, 237, 9, 191, 9, 215, 9, 239, 9, 133, 5, 141, 5, 141, 5, 237, 9, 239, 9, 133, 5, 139, 5, 141, 5, 237, 9, 141, 5, 139, 5, 100, 5, 139, 5, 133, 5, 191, 9, 237, 9, 233, 9, 237, 9, 139, 5, 147, 5, 233, 9, 237, 9, 147, 5, 145, 5, 147, 5, 139, 5, 100, 5, 145, 5, 139, 5, 147, 5, 230, 9, 233, 9, 191, 9, 233, 9, 230, 9, 230, 9, 147, 5, 145, 5, 229, 9, 191, 9, 230, 9, 17, 9, 191, 9, 229, 9, 229, 9, 1, 9, 17, 9, 152, 5, 229, 9, 230, 9, 230, 9, 145, 5, 152, 5, 1, 9, 229, 9, 253, 9, 152, 5, 253, 9, 229, 9, 1, 9, 253, 9, 173, 9, 145, 5, 100, 5, 99, 5, 145, 5, 99, 5, 152, 5, 99, 5, 100, 5, 74, 5, 253, 9, 152, 5, 153, 5, 64, 5, 99, 5, 74, 5, 152, 5, 99, 5, 63, 5, 99, 5, 64, 5, 63, 5, 153, 5, 152, 5, 104, 5, 104, 5, 152, 5, 63, 5, 253, 9, 153, 5, 68, 6, 68, 6, 153, 5, 104, 5, 63, 5, 20, 6, 104, 5, 68, 6, 104, 5, 20, 6, 63, 5, 64, 5, 27, 5, 74, 5, 40, 5, 64, 5, 64, 5, 57, 5, 27, 5, 57, 5, 24, 5, 27, 5, 206, 4, 27, 5, 24, 5, 57, 5, 64, 5, 51, 5, 40, 5, 51, 5, 64, 5, 24, 5, 57, 5, 51, 5, 24, 5, 18, 5, 206, 4, 18, 5, 24, 5, 51, 5, 244, 4, 206, 4, 18, 5, 51, 5, 40, 5, 38, 5, 40, 5, 30, 5, 38, 5, 67, 5, 30, 5, 40, 5, 10, 5, 51, 5, 38, 5, 10, 5, 38, 5, 30, 5, 51, 5, 22, 5, 18, 5, 51, 5, 10, 5, 22, 5, 18, 5, 22, 5, 15, 5, 244, 4, 18, 5, 15, 5, 10, 5, 15, 5, 22, 5, 0, 5, 30, 5, 67, 5, 30, 5, 9, 5, 10, 5, 30, 5, 0, 5, 3, 5, 3, 5, 9, 5, 30, 5, 8, 5, 10, 5, 9, 5, 15, 5, 10, 5, 8, 5, 9, 5, 3, 5, 8, 5, 247, 4, 15, 5, 8, 5, 15, 5, 247, 4, 244, 4, 8, 5, 3, 5, 247, 4, 244, 4, 247, 4, 239, 4, 3, 5, 239, 4, 247, 4, 239, 4, 224, 4, 244, 4, 241, 4, 3, 5, 0, 5, 239, 4, 3, 5, 241, 4, 235, 4, 241, 4, 0, 5, 241, 4, 235, 4, 239, 4, 224, 4, 239, 4, 235, 4, 235, 4, 0, 5, 232, 4, 224, 4, 235, 4, 232, 4, 144, 2, 162, 5, 159, 5, 162, 5, 144, 2, 136, 8, 158, 2, 136, 8, 144, 2, 162, 5, 164, 5, 159, 5, 164, 5, 162, 5, 181, 5, 136, 8, 181, 5, 162, 5, 164, 5, 175, 5, 159, 5, 136, 8, 158, 2, 118, 8, 172, 2, 118, 8, 158, 2, 172, 2, 140, 6, 118, 8, 118, 8, 120, 8, 136, 8, 120, 8, 118, 8, 140, 6, 181, 5, 136, 8, 126, 8, 126, 8, 136, 8, 120, 8, 164, 5, 181, 5, 177, 5, 175, 5, 164, 5, 177, 5, 126, 8, 111, 8, 181, 5, 177, 5, 181, 5, 111, 8, 120, 8, 106, 8, 126, 8, 106, 8, 111, 8, 126, 8, 99, 8, 106, 8, 120, 8, 111, 8, 106, 8, 99, 8, 98, 8, 99, 8, 120, 8, 140, 6, 98, 8, 120, 8, 99, 8, 98, 8, 194, 6, 194, 6, 98, 8, 140, 6, 194, 6, 86, 8, 99, 8, 230, 6, 194, 6, 140, 6, 230, 6, 86, 8, 194, 6, 99, 8, 86, 8, 80, 8, 230, 6, 80, 8, 86, 8, 80, 8, 111, 8, 99, 8, 160, 6, 230, 6, 140, 6, 160, 6, 140, 6, 118, 6, 118, 6, 145, 6, 160, 6, 231, 6, 160, 6, 145, 6, 160, 6, 231, 6, 21, 7, 21, 7, 230, 6, 160, 6, 53, 6, 80, 8, 230, 6, 21, 7, 53, 6, 230, 6, 16, 6, 111, 8, 80, 8, 101, 6, 53, 6, 21, 7, 53, 6, 11, 6, 80, 8, 11, 6, 16, 6, 80, 8, 11, 6, 53, 6, 51, 6, 201, 5, 111, 8, 16, 6, 111, 8, 201, 5, 205, 5, 111, 8, 205, 5, 177, 5, 179, 5, 177, 5, 205, 5, 179, 5, 205, 5, 201, 5, 177, 5, 179, 5, 175, 5, 193, 5, 175, 5, 179, 5, 179, 5, 201, 5, 193, 5, 216, 5, 175, 5, 193, 5, 159, 5, 175, 5, 216, 5, 201, 5, 194, 5, 193, 5, 193, 5, 194, 5, 216, 5, 194, 5, 201, 5, 203, 5, 203, 5, 201, 5, 231, 5, 231, 5, 194, 5, 203, 5, 16, 6, 231, 5, 201, 5, 216, 5, 194, 5, 214, 5, 214, 5, 194, 5, 231, 5, 216, 5, 237, 5, 159, 5, 214, 5, 217, 5, 216, 5, 231, 5, 217, 5, 214, 5, 237, 5, 216, 5, 244, 5, 216, 5, 217, 5, 244, 5, 217, 5, 231, 5, 233, 5, 231, 5, 16, 6, 8, 6, 8, 6, 233, 5, 231, 5, 233, 5, 8, 6, 217, 5, 244, 5, 217, 5, 8, 6, 8, 6, 16, 6, 11, 6, 246, 5, 237, 5, 244, 5, 11, 6, 13, 6, 8, 6, 240, 5, 237, 5, 246, 5, 237, 5, 240, 5, 188, 5, 188, 5, 240, 5, 20, 6, 240, 5, 246, 5, 18, 6, 244, 5, 18, 6, 246, 5, 8, 6, 18, 6, 244, 5, 18, 6, 8, 6, 13, 6, 18, 6, 20, 6, 240, 5, 51, 6, 13, 6, 11, 6, 13, 6, 51, 6, 18, 6, 20, 6, 18, 6, 27, 6, 25, 6, 18, 6, 51, 6, 27, 6, 18, 6, 25, 6, 20, 6, 27, 6, 68, 6, 51, 6, 40, 6, 25, 6, 25, 6, 28, 6, 27, 6, 28, 6, 25, 6, 40, 6, 68, 6, 27, 6, 71, 6, 27, 6, 28, 6, 71, 6, 40, 6, 51, 6, 54, 6, 54, 6, 51, 6, 53, 6, 101, 6, 54, 6, 53, 6, 54, 6, 90, 6, 40, 6, 90, 6, 54, 6, 101, 6, 40, 6, 84, 6, 28, 6, 90, 6, 84, 6, 40, 6, 78, 6, 71, 6, 28, 6, 84, 6, 78, 6, 28, 6, 78, 6, 84, 6, 87, 6, 71, 6, 78, 6, 81, 6, 78, 6, 87, 6, 113, 10, 81, 6, 78, 6, 113, 10, 109, 10, 113, 10, 87, 6, 87, 6, 84, 6, 109, 10, 109, 10, 84, 6, 93, 6, 84, 6, 90, 6, 93, 6, 93, 6, 106, 10, 109, 10, 106, 10, 93, 6, 90, 6, 113, 10, 109, 10, 82, 10, 82, 10, 109, 10, 106, 10, 113, 10, 111, 10, 81, 6, 82, 10, 111, 10, 113, 10, 111, 10, 119, 10, 81, 6, 71, 6, 81, 6, 119, 10, 111, 10, 82, 10, 61, 10, 106, 10, 61, 10, 82, 10, 119, 10, 111, 10, 61, 10, 90, 6, 103, 10, 106, 10, 61, 10, 106, 10, 103, 10, 103, 10, 90, 6, 97, 6, 101, 6, 97, 6, 90, 6, 97, 6, 100, 10, 103, 10, 61, 10, 103, 10, 100, 10, 97, 6, 101, 6, 103, 6, 103, 6, 100, 10, 97, 6, 122, 10, 103, 6, 101, 6, 103, 6, 122, 10, 100, 10, 101, 6, 21, 7, 122, 10, 122, 10, 99, 10, 100, 10, 100, 10, 99, 10, 61, 10, 68, 10, 99, 10, 122, 10, 99, 10, 68, 10, 173, 9, 173, 9, 61, 10, 99, 10, 1, 10, 61, 10, 173, 9, 61, 10, 1, 10, 119, 10, 0, 10, 1, 10, 173, 9, 173, 9, 253, 9, 0, 10, 68, 6, 0, 10, 253, 9, 1, 10, 0, 10, 74, 6, 0, 10, 68, 6, 74, 6, 119, 10, 1, 10, 74, 6, 68, 6, 71, 6, 74, 6, 74, 6, 71, 6, 119, 10), 0.319507, PackedByteArray(206, 0, 2, 0, 7, 0, 206, 0, 36, 1, 2, 0, 2, 0, 52, 0, 7, 0, 2, 0, 226, 0, 52, 0, 65, 1, 2, 0, 36, 1, 65, 1, 226, 0, 2, 0, 52, 0, 226, 0, 76, 1, 52, 0, 76, 1, 158, 0, 52, 0, 158, 0, 159, 0, 159, 0, 158, 0, 76, 1, 7, 0, 52, 0, 159, 0, 76, 1, 226, 0, 247, 0, 23, 1, 247, 0, 226, 0, 19, 1, 247, 0, 23, 1, 247, 0, 19, 1, 89, 1, 89, 1, 19, 1, 23, 1, 247, 0, 89, 1, 76, 1, 25, 1, 23, 1, 226, 0, 89, 1, 23, 1, 25, 1, 25, 1, 226, 0, 65, 1, 25, 1, 97, 1, 89, 1, 97, 1, 25, 1, 65, 1, 97, 1, 108, 1, 89, 1, 76, 1, 89, 1, 108, 1, 65, 1, 70, 1, 97, 1, 108, 1, 97, 1, 70, 1, 238, 1, 70, 1, 65, 1, 108, 1, 210, 7, 76, 1, 36, 1, 238, 1, 65, 1, 70, 1, 211, 4, 108, 1, 230, 4, 70, 1, 238, 1, 211, 4, 70, 1, 230, 4, 238, 1, 36, 1, 244, 1, 234, 4, 108, 1, 211, 4, 108, 1, 234, 4, 210, 7, 36, 8, 230, 4, 238, 1, 238, 1, 244, 1, 36, 8, 36, 8, 252, 7, 230, 4, 27, 8, 36, 8, 244, 1, 13, 8, 252, 7, 36, 8, 27, 8, 13, 8, 36, 8, 27, 8, 252, 7, 13, 8, 7, 2, 27, 8, 244, 1, 230, 4, 252, 7, 63, 5, 242, 1, 7, 2, 244, 1, 244, 1, 36, 1, 242, 1, 242, 1, 36, 1, 171, 1, 206, 0, 171, 1, 36, 1, 209, 1, 242, 1, 171, 1, 209, 1, 7, 2, 242, 1, 117, 1, 209, 1, 171, 1, 171, 1, 206, 0, 117, 1, 209, 1, 117, 1, 155, 1, 191, 1, 155, 1, 117, 1, 217, 1, 209, 1, 155, 1, 191, 1, 217, 1, 155, 1, 217, 1, 7, 2, 209, 1, 188, 1, 191, 1, 117, 1, 191, 1, 188, 1, 217, 1, 188, 1, 117, 1, 206, 0, 7, 2, 217, 1, 188, 1, 206, 0, 194, 1, 188, 1, 7, 2, 188, 1, 194, 1, 206, 0, 114, 1, 194, 1, 194, 1, 195, 1, 7, 2, 114, 1, 195, 1, 194, 1, 7, 2, 195, 1, 232, 1, 13, 2, 7, 2, 232, 1, 27, 8, 7, 2, 13, 2, 232, 1, 195, 1, 144, 2, 188, 5, 27, 8, 13, 2, 232, 1, 146, 2, 13, 2, 188, 5, 13, 2, 146, 2, 144, 2, 146, 2, 232, 1, 188, 5, 252, 7, 27, 8, 20, 6, 252, 7, 188, 5, 252, 7, 20, 6, 63, 5, 146, 2, 237, 5, 188, 5, 237, 5, 20, 6, 188, 5, 216, 5, 237, 5, 146, 2, 237, 5, 216, 5, 244, 5, 246, 5, 237, 5, 244, 5, 20, 6, 237, 5, 246, 5, 11, 6, 246, 5, 244, 5, 244, 5, 216, 5, 11, 6, 20, 6, 246, 5, 28, 6, 146, 2, 175, 5, 216, 5, 11, 6, 51, 6, 246, 5, 28, 6, 246, 5, 51, 6, 231, 5, 11, 6, 216, 5, 216, 5, 175, 5, 194, 5, 216, 5, 194, 5, 231, 5, 175, 5, 203, 5, 194, 5, 231, 5, 194, 5, 203, 5, 175, 5, 177, 5, 203, 5, 231, 5, 203, 5, 177, 5, 162, 5, 175, 5, 146, 2, 175, 5, 162, 5, 177, 5, 144, 2, 162, 5, 146, 2, 126, 8, 231, 5, 177, 5, 177, 5, 162, 5, 126, 8, 231, 5, 126, 8, 11, 6, 162, 5, 144, 2, 136, 8, 162, 5, 136, 8, 126, 8, 158, 2, 136, 8, 144, 2, 118, 8, 126, 8, 136, 8, 136, 8, 158, 2, 118, 8, 11, 6, 126, 8, 53, 6, 118, 8, 99, 8, 126, 8, 53, 6, 126, 8, 99, 8, 11, 6, 53, 6, 51, 6, 99, 8, 118, 8, 194, 6, 194, 6, 53, 6, 99, 8, 21, 7, 53, 6, 194, 6, 21, 7, 51, 6, 53, 6, 118, 8, 118, 6, 194, 6, 21, 7, 194, 6, 118, 6, 172, 2, 118, 6, 118, 8, 172, 2, 118, 8, 158, 2, 118, 6, 231, 6, 21, 7, 90, 6, 51, 6, 21, 7, 118, 6, 172, 2, 137, 2, 90, 6, 78, 6, 51, 6, 51, 6, 78, 6, 28, 6, 21, 7, 97, 6, 90, 6, 103, 10, 90, 6, 97, 6, 21, 7, 103, 10, 97, 6, 90, 6, 103, 10, 109, 10, 109, 10, 78, 6, 90, 6, 21, 7, 122, 10, 103, 10, 61, 10, 109, 10, 103, 10, 103, 10, 122, 10, 61, 10, 109, 10, 82, 10, 78, 6, 109, 10, 61, 10, 82, 10, 71, 6, 78, 6, 82, 10, 78, 6, 71, 6, 28, 6, 111, 10, 82, 10, 61, 10, 82, 10, 111, 10, 71, 6, 74, 6, 28, 6, 71, 6, 74, 6, 71, 6, 111, 10, 20, 6, 28, 6, 74, 6, 61, 10, 1, 10, 111, 10, 111, 10, 1, 10, 74, 6, 74, 6, 104, 5, 20, 6, 63, 5, 20, 6, 104, 5, 74, 6, 152, 5, 104, 5, 104, 5, 152, 5, 63, 5, 74, 6, 1, 10, 229, 9, 229, 9, 152, 5, 74, 6, 1, 10, 61, 10, 173, 9, 173, 9, 61, 10, 122, 10, 17, 9, 229, 9, 1, 10, 17, 9, 1, 10, 173, 9, 152, 5, 229, 9, 233, 9, 229, 9, 191, 9, 233, 9, 17, 9, 191, 9, 229, 9, 233, 9, 145, 5, 152, 5, 17, 9, 173, 9, 43, 10, 122, 10, 43, 10, 173, 9, 233, 9, 139, 5, 145, 5, 191, 9, 139, 5, 233, 9, 145, 5, 100, 5, 152, 5, 100, 5, 145, 5, 139, 5, 152, 5, 100, 5, 63, 5, 139, 5, 191, 9, 215, 9, 215, 9, 239, 9, 139, 5, 244, 9, 215, 9, 191, 9, 239, 9, 215, 9, 244, 9, 239, 9, 126, 5, 139, 5, 100, 5, 139, 5, 126, 5, 126, 5, 239, 9, 244, 9, 244, 9, 191, 9, 125, 9, 125, 9, 191, 9, 17, 9, 129, 5, 126, 5, 244, 9, 129, 5, 244, 9, 123, 5, 123, 5, 126, 5, 129, 5, 125, 9, 123, 5, 244, 9, 100, 5, 126, 5, 75, 5, 126, 5, 123, 5, 75, 5, 17, 9, 11, 9, 125, 9, 75, 5, 74, 5, 100, 5, 43, 10, 11, 9, 17, 9, 57, 5, 100, 5, 74, 5, 100, 5, 57, 5, 63, 5, 75, 5, 65, 5, 74, 5, 74, 5, 40, 5, 57, 5, 40, 5, 74, 5, 65, 5, 57, 5, 24, 5, 63, 5, 63, 5, 24, 5, 230, 4, 230, 4, 24, 5, 211, 4, 57, 5, 10, 5, 24, 5, 10, 5, 57, 5, 40, 5, 24, 5, 244, 4, 211, 4, 244, 4, 24, 5, 10, 5, 10, 5, 40, 5, 30, 5, 65, 5, 30, 5, 40, 5, 0, 5, 10, 5, 30, 5, 0, 5, 30, 5, 65, 5, 10, 5, 0, 5, 244, 4, 215, 4, 211, 4, 244, 4, 211, 4, 215, 4, 234, 4, 244, 4, 224, 4, 215, 4, 215, 4, 224, 4, 232, 4, 224, 4, 244, 4, 232, 4, 0, 5, 232, 4, 244, 4, 215, 4, 232, 4, 234, 4, 0, 5, 176, 7, 232, 4, 234, 4, 232, 4, 176, 7, 65, 5, 176, 7, 0, 5, 176, 7, 180, 7, 234, 4, 180, 7, 176, 7, 65, 5, 234, 4, 180, 7, 198, 7, 234, 4, 198, 7, 210, 7, 180, 7, 210, 7, 198, 7, 65, 5, 154, 4, 180, 7, 154, 4, 210, 7, 180, 7, 154, 4, 65, 5, 75, 5, 75, 5, 123, 5, 154, 4, 154, 4, 255, 3, 210, 7, 255, 3, 154, 4, 123, 5, 210, 7, 255, 3, 76, 1, 255, 3, 202, 0, 76, 1, 159, 0, 76, 1, 202, 0, 123, 5, 102, 4, 255, 3, 15, 4, 255, 3, 102, 4, 15, 4, 11, 4, 255, 3, 255, 3, 11, 4, 202, 0, 68, 4, 15, 4, 102, 4, 15, 4, 68, 4, 62, 4, 62, 4, 11, 4, 15, 4, 62, 4, 68, 4, 86, 4, 68, 4, 102, 4, 86, 4, 58, 4, 62, 4, 86, 4, 58, 4, 11, 4, 62, 4, 115, 4, 86, 4, 102, 4, 115, 4, 58, 4, 86, 4, 102, 4, 123, 5, 144, 4, 51, 4, 11, 4, 58, 4, 124, 4, 115, 4, 102, 4, 102, 4, 144, 4, 124, 4, 115, 4, 114, 4, 58, 4, 51, 4, 58, 4, 114, 4, 123, 4, 115, 4, 124, 4, 51, 4, 23, 4, 11, 4, 115, 4, 123, 4, 207, 3, 207, 3, 114, 4, 115, 4, 51, 4, 114, 4, 80, 4, 245, 3, 207, 3, 123, 4, 123, 4, 124, 4, 245, 3, 11, 4, 23, 4, 104, 7, 11, 4, 104, 7, 202, 0, 51, 4, 50, 4, 23, 4, 50, 4, 104, 7, 23, 4, 50, 4, 51, 4, 98, 7, 80, 4, 98, 7, 51, 4, 50, 4, 122, 7, 104, 7, 122, 7, 50, 4, 98, 7, 98, 7, 80, 4, 79, 7, 80, 4, 114, 4, 79, 7, 98, 7, 79, 7, 99, 3, 79, 7, 114, 4, 99, 3, 122, 7, 98, 7, 99, 3, 114, 4, 207, 3, 99, 3, 99, 3, 74, 3, 122, 7, 171, 0, 104, 7, 122, 7, 171, 0, 122, 7, 74, 3, 202, 0, 104, 7, 171, 0, 74, 3, 99, 3, 53, 3, 53, 3, 99, 3, 207, 3, 171, 0, 74, 3, 53, 3, 207, 3, 245, 3, 53, 3, 171, 0, 144, 0, 202, 0, 159, 0, 202, 0, 144, 0, 144, 0, 171, 0, 135, 0, 144, 0, 135, 0, 70, 0, 159, 0, 144, 0, 147, 0, 144, 0, 70, 0, 147, 0, 135, 0, 40, 0, 70, 0, 147, 0, 70, 0, 40, 0, 40, 0, 135, 0, 171, 0, 147, 0, 111, 0, 159, 0, 147, 0, 40, 0, 111, 0, 159, 0, 111, 0, 7, 0, 111, 0, 40, 0, 20, 0, 20, 0, 7, 0, 111, 0, 20, 0, 40, 0, 7, 0, 59, 0, 40, 0, 171, 0, 7, 0, 40, 0, 59, 0, 59, 0, 171, 0, 53, 3, 59, 0, 54, 0, 7, 0, 53, 3, 48, 3, 59, 0, 54, 0, 59, 0, 48, 3, 4, 0, 7, 0, 54, 0, 7, 0, 4, 0, 206, 0, 4, 0, 114, 1, 206, 0, 4, 0, 54, 0, 166, 0, 48, 3, 166, 0, 54, 0, 114, 1, 4, 0, 133, 2, 166, 0, 188, 2, 4, 0, 133, 2, 4, 0, 32, 2, 4, 0, 188, 2, 32, 2, 188, 2, 166, 0, 0, 3, 0, 3, 166, 0, 48, 3, 240, 2, 32, 2, 188, 2, 203, 2, 188, 2, 0, 3, 188, 2, 245, 2, 240, 2, 245, 2, 188, 2, 203, 2, 0, 3, 2, 3, 203, 2, 2, 3, 245, 2, 203, 2, 0, 3, 42, 3, 2, 3, 2, 3, 42, 3, 245, 2, 0, 3, 48, 3, 42, 3, 32, 2, 240, 2, 137, 2, 137, 2, 240, 2, 245, 2, 32, 2, 137, 2, 133, 2, 42, 3, 14, 3, 245, 2, 245, 2, 14, 3, 137, 2, 42, 3, 207, 8, 14, 3, 138, 2, 133, 2, 137, 2, 172, 2, 138, 2, 137, 2, 133, 2, 138, 2, 172, 2, 11, 3, 137, 2, 14, 3, 137, 2, 11, 3, 118, 6, 145, 6, 118, 6, 11, 3, 11, 3, 14, 3, 145, 6, 231, 6, 118, 6, 145, 6, 14, 3, 166, 6, 145, 6, 145, 6, 166, 6, 231, 6, 172, 2, 130, 2, 133, 2, 130, 2, 23, 2, 133, 2, 23, 2, 130, 2, 172, 2, 133, 2, 23, 2, 114, 1, 59, 2, 23, 2, 172, 2, 172, 2, 160, 2, 59, 2, 172, 2, 158, 2, 160, 2, 83, 2, 59, 2, 160, 2, 23, 2, 59, 2, 83, 2, 160, 2, 158, 2, 83, 2, 23, 2, 83, 2, 80, 2, 80, 2, 83, 2, 158, 2, 114, 1, 23, 2, 77, 2, 80, 2, 77, 2, 23, 2, 77, 2, 80, 2, 158, 2, 114, 1, 77, 2, 195, 1, 144, 2, 77, 2, 158, 2, 195, 1, 77, 2, 144, 2, 23, 7, 21, 7, 231, 6, 21, 7, 23, 7, 127, 10, 21, 7, 127, 10, 122, 10, 231, 6, 236, 6, 23, 7, 23, 7, 236, 6, 127, 10, 43, 10, 122, 10, 127, 10, 231, 6, 200, 6, 236, 6, 231, 6, 166, 6, 200, 6, 200, 6, 166, 6, 208, 6, 200, 6, 208, 6, 219, 6, 219, 6, 236, 6, 200, 6, 166, 6, 181, 6, 208, 6, 208, 6, 181, 6, 219, 6, 125, 6, 181, 6, 166, 6, 14, 3, 125, 6, 166, 6, 181, 6, 223, 6, 219, 6, 223, 6, 181, 6, 178, 6, 181, 6, 155, 6, 178, 6, 178, 6, 155, 6, 223, 6, 155, 6, 181, 6, 125, 6, 125, 6, 14, 3, 226, 8, 14, 3, 207, 8, 226, 8, 187, 6, 155, 6, 125, 6, 155, 6, 187, 6, 223, 6, 226, 8, 157, 6, 125, 6, 125, 6, 157, 6, 187, 6, 226, 8, 207, 8, 77, 3, 207, 8, 42, 3, 77, 3, 157, 6, 226, 8, 189, 8, 77, 3, 189, 8, 226, 8, 187, 6, 157, 6, 193, 8, 189, 8, 193, 8, 157, 6, 187, 6, 193, 8, 178, 8, 223, 6, 187, 6, 178, 8, 193, 8, 189, 8, 105, 3, 105, 3, 178, 8, 193, 8, 105, 3, 189, 8, 77, 3, 105, 3, 223, 6, 178, 8, 58, 3, 77, 3, 42, 3, 77, 3, 58, 3, 105, 3, 42, 3, 48, 3, 58, 3, 213, 3, 223, 6, 105, 3, 213, 3, 105, 3, 58, 3, 219, 6, 223, 6, 213, 3, 1, 7, 219, 6, 213, 3, 58, 3, 208, 3, 213, 3, 1, 7, 213, 3, 208, 3, 48, 3, 56, 3, 58, 3, 53, 3, 56, 3, 48, 3, 107, 3, 58, 3, 56, 3, 58, 3, 107, 3, 208, 3, 85, 3, 56, 3, 53, 3, 56, 3, 141, 3, 107, 3, 85, 3, 141, 3, 56, 3, 215, 3, 208, 3, 107, 3, 141, 3, 215, 3, 107, 3, 85, 3, 53, 3, 245, 3, 141, 3, 85, 3, 114, 3, 114, 3, 85, 3, 149, 3, 141, 3, 114, 3, 149, 3, 239, 3, 149, 3, 85, 3, 245, 3, 239, 3, 85, 3, 141, 3, 149, 3, 177, 3, 177, 3, 215, 3, 141, 3, 149, 3, 239, 3, 191, 3, 177, 3, 149, 3, 191, 3, 191, 3, 239, 3, 234, 3, 191, 3, 234, 3, 177, 3, 239, 3, 245, 3, 115, 9, 249, 10, 215, 3, 177, 3, 208, 3, 215, 3, 249, 10, 170, 4, 115, 9, 245, 3, 170, 4, 245, 3, 124, 4, 115, 9, 119, 9, 239, 3, 234, 3, 239, 3, 119, 9, 112, 9, 115, 9, 170, 4, 170, 4, 124, 4, 112, 9, 9, 9, 119, 9, 115, 9, 115, 9, 112, 9, 11, 9, 11, 9, 9, 9, 115, 9, 21, 9, 11, 9, 112, 9, 112, 9, 41, 9, 21, 9, 21, 9, 41, 9, 11, 9, 124, 4, 106, 9, 112, 9, 106, 9, 41, 9, 112, 9, 124, 4, 175, 4, 106, 9, 136, 4, 175, 4, 124, 4, 106, 9, 175, 4, 136, 4, 136, 4, 124, 4, 142, 4, 136, 4, 102, 9, 106, 9, 102, 9, 101, 9, 106, 9, 102, 9, 136, 4, 101, 9, 106, 9, 101, 9, 41, 9, 101, 9, 136, 4, 142, 4, 41, 9, 101, 9, 98, 9, 142, 4, 98, 9, 101, 9, 144, 4, 142, 4, 124, 4, 41, 9, 98, 9, 95, 9, 98, 9, 142, 4, 95, 9, 121, 9, 41, 9, 95, 9, 11, 9, 41, 9, 121, 9, 95, 9, 142, 4, 146, 4, 142, 4, 144, 4, 146, 4, 121, 9, 95, 9, 146, 4, 146, 4, 144, 4, 197, 4, 121, 9, 146, 4, 197, 4, 200, 4, 197, 4, 144, 4, 121, 9, 197, 4, 200, 4, 144, 4, 123, 5, 200, 4, 121, 9, 125, 9, 11, 9, 125, 9, 200, 4, 123, 5, 200, 4, 125, 9, 121, 9, 43, 10, 9, 9, 11, 9, 43, 10, 181, 10, 9, 9, 181, 10, 45, 11, 9, 9, 181, 10, 43, 10, 249, 10, 72, 11, 9, 9, 45, 11, 9, 9, 72, 11, 119, 9, 119, 9, 72, 11, 234, 3, 45, 11, 78, 11, 72, 11, 72, 11, 78, 11, 234, 3, 181, 10, 253, 10, 45, 11, 249, 10, 253, 10, 181, 10, 78, 11, 45, 11, 81, 11, 234, 3, 78, 11, 81, 11, 253, 10, 85, 11, 45, 11, 85, 11, 81, 11, 45, 11, 177, 3, 253, 10, 249, 10, 85, 11, 84, 11, 81, 11, 253, 10, 177, 3, 221, 3, 221, 3, 85, 11, 253, 10, 221, 3, 177, 3, 234, 3, 229, 3, 84, 11, 85, 11, 85, 11, 221, 3, 229, 3, 81, 11, 84, 11, 229, 3, 234, 3, 229, 3, 221, 3, 229, 3, 234, 3, 81, 11, 249, 10, 55, 7, 208, 3, 55, 7, 1, 7, 208, 3, 55, 7, 249, 10, 227, 10, 227, 10, 249, 10, 43, 10, 4, 7, 1, 7, 55, 7, 227, 10, 4, 7, 55, 7, 43, 10, 187, 10, 227, 10, 227, 10, 229, 10, 4, 7, 227, 10, 187, 10, 229, 10, 127, 10, 187, 10, 43, 10, 4, 7, 229, 10, 50, 7, 248, 6, 4, 7, 50, 7, 248, 6, 50, 7, 229, 10, 248, 6, 1, 7, 4, 7, 187, 10, 232, 10, 229, 10, 232, 10, 36, 7, 229, 10, 229, 10, 36, 7, 248, 6, 235, 10, 36, 7, 232, 10, 187, 10, 235, 10, 232, 10, 248, 6, 36, 7, 235, 10, 240, 10, 187, 10, 127, 10, 240, 10, 235, 10, 187, 10, 235, 10, 30, 7, 248, 6, 30, 7, 235, 10, 240, 10, 236, 6, 240, 10, 127, 10, 236, 6, 30, 7, 240, 10, 248, 6, 30, 7, 236, 6, 1, 7, 248, 6, 236, 6, 236, 6, 219, 6, 1, 7), 0.412913, PackedByteArray(2, 0, 231, 11, 206, 0, 206, 0, 36, 1, 2, 0, 206, 0, 209, 1, 36, 1, 209, 1, 206, 0, 155, 1, 217, 1, 209, 1, 155, 1, 188, 1, 155, 1, 206, 0, 188, 1, 217, 1, 155, 1, 206, 0, 231, 11, 188, 1, 217, 1, 7, 2, 209, 1, 7, 2, 217, 1, 188, 1, 244, 1, 36, 1, 209, 1, 209, 1, 7, 2, 244, 1, 70, 1, 36, 1, 244, 1, 70, 1, 2, 0, 36, 1, 7, 2, 27, 8, 244, 1, 188, 1, 232, 1, 7, 2, 27, 8, 7, 2, 232, 1, 231, 11, 232, 1, 188, 1, 27, 8, 230, 4, 244, 1, 70, 1, 244, 1, 230, 4, 27, 8, 232, 1, 144, 2, 231, 11, 77, 2, 232, 1, 232, 1, 77, 2, 144, 2, 144, 2, 246, 5, 27, 8, 27, 8, 20, 6, 230, 4, 246, 5, 20, 6, 27, 8, 230, 4, 20, 6, 104, 5, 20, 6, 246, 5, 78, 6, 1, 10, 104, 5, 20, 6, 20, 6, 78, 6, 1, 10, 78, 6, 246, 5, 53, 6, 1, 10, 78, 6, 111, 10, 1, 10, 229, 9, 104, 5, 109, 10, 111, 10, 78, 6, 173, 9, 1, 10, 111, 10, 111, 10, 109, 10, 173, 9, 17, 9, 229, 9, 1, 10, 17, 9, 1, 10, 173, 9, 229, 9, 17, 9, 145, 5, 145, 5, 104, 5, 229, 9, 109, 10, 78, 6, 90, 6, 90, 6, 78, 6, 53, 6, 173, 9, 109, 10, 103, 10, 90, 6, 103, 10, 109, 10, 103, 10, 122, 10, 173, 9, 21, 7, 103, 10, 90, 6, 21, 7, 122, 10, 103, 10, 90, 6, 53, 6, 21, 7, 122, 10, 43, 10, 173, 9, 43, 10, 122, 10, 21, 7, 17, 9, 173, 9, 43, 10, 17, 9, 239, 9, 145, 5, 104, 5, 145, 5, 239, 9, 244, 9, 239, 9, 17, 9, 104, 5, 239, 9, 129, 5, 129, 5, 239, 9, 244, 9, 104, 5, 129, 5, 75, 5, 129, 5, 244, 9, 200, 4, 129, 5, 200, 4, 75, 5, 244, 9, 17, 9, 121, 9, 121, 9, 200, 4, 244, 9, 17, 9, 11, 9, 121, 9, 43, 10, 11, 9, 17, 9, 57, 5, 104, 5, 75, 5, 104, 5, 57, 5, 230, 4, 230, 4, 57, 5, 211, 4, 30, 5, 57, 5, 75, 5, 211, 4, 70, 1, 230, 4, 156, 7, 30, 5, 75, 5, 75, 5, 200, 4, 156, 7, 244, 4, 57, 5, 30, 5, 211, 4, 57, 5, 244, 4, 30, 5, 0, 5, 244, 4, 0, 5, 30, 5, 156, 7, 234, 4, 211, 4, 244, 4, 234, 4, 244, 4, 0, 5, 0, 5, 198, 7, 234, 4, 0, 5, 156, 7, 198, 7, 234, 4, 97, 1, 211, 4, 70, 1, 211, 4, 97, 1, 234, 4, 198, 7, 22, 4, 156, 7, 22, 4, 198, 7, 97, 1, 234, 4, 22, 4, 156, 7, 255, 3, 22, 4, 255, 3, 156, 7, 200, 4, 97, 1, 22, 4, 76, 1, 76, 1, 22, 4, 255, 3, 97, 1, 23, 1, 70, 1, 23, 1, 97, 1, 89, 1, 76, 1, 89, 1, 97, 1, 23, 1, 226, 0, 70, 1, 226, 0, 23, 1, 89, 1, 226, 0, 89, 1, 76, 1, 70, 1, 226, 0, 2, 0, 2, 0, 226, 0, 76, 1, 2, 0, 76, 1, 159, 0, 159, 0, 76, 1, 202, 0, 255, 3, 202, 0, 76, 1, 159, 0, 20, 0, 2, 0, 159, 0, 202, 0, 147, 0, 159, 0, 147, 0, 20, 0, 147, 0, 70, 0, 20, 0, 147, 0, 172, 0, 70, 0, 172, 0, 20, 0, 70, 0, 172, 0, 147, 0, 202, 0, 2, 0, 20, 0, 54, 0, 54, 0, 20, 0, 172, 0, 231, 11, 2, 0, 54, 0, 202, 0, 104, 7, 172, 0, 11, 4, 104, 7, 202, 0, 255, 3, 11, 4, 202, 0, 172, 0, 104, 7, 122, 7, 11, 4, 122, 7, 104, 7, 54, 0, 172, 0, 48, 3, 172, 0, 122, 7, 48, 3, 11, 4, 91, 7, 122, 7, 62, 4, 11, 4, 255, 3, 11, 4, 51, 4, 91, 7, 62, 4, 255, 3, 102, 4, 86, 4, 11, 4, 62, 4, 51, 4, 11, 4, 86, 4, 62, 4, 102, 4, 86, 4, 51, 4, 115, 4, 91, 7, 51, 4, 86, 4, 115, 4, 91, 7, 115, 4, 122, 7, 115, 4, 86, 4, 102, 4, 200, 4, 102, 4, 255, 3, 115, 4, 207, 3, 122, 7, 48, 3, 122, 7, 207, 3, 124, 4, 115, 4, 102, 4, 115, 4, 124, 4, 207, 3, 146, 4, 102, 4, 200, 4, 121, 9, 146, 4, 200, 4, 121, 9, 11, 9, 146, 4, 142, 4, 102, 4, 146, 4, 102, 4, 142, 4, 124, 4, 101, 9, 142, 4, 146, 4, 11, 9, 101, 9, 146, 4, 142, 4, 175, 4, 124, 4, 106, 9, 142, 4, 101, 9, 106, 9, 175, 4, 142, 4, 106, 9, 101, 9, 11, 9, 175, 4, 170, 4, 124, 4, 170, 4, 175, 4, 106, 9, 170, 4, 207, 3, 124, 4, 207, 3, 170, 4, 48, 3, 106, 9, 11, 9, 115, 9, 170, 4, 106, 9, 115, 9, 11, 9, 9, 9, 115, 9, 191, 3, 170, 4, 115, 9, 43, 10, 9, 9, 11, 9, 115, 9, 72, 11, 191, 3, 9, 9, 72, 11, 115, 9, 170, 4, 191, 3, 85, 3, 85, 3, 48, 3, 170, 4, 191, 3, 149, 3, 85, 3, 48, 3, 85, 3, 107, 3, 85, 3, 149, 3, 216, 3, 216, 3, 149, 3, 191, 3, 85, 3, 216, 3, 107, 3, 234, 3, 191, 3, 72, 11, 191, 3, 234, 3, 216, 3, 72, 11, 78, 11, 234, 3, 9, 9, 78, 11, 72, 11, 229, 3, 234, 3, 78, 11, 229, 3, 216, 3, 234, 3, 85, 11, 78, 11, 9, 9, 78, 11, 85, 11, 229, 3, 229, 3, 85, 11, 253, 10, 253, 10, 85, 11, 9, 9, 253, 10, 216, 3, 229, 3, 249, 10, 253, 10, 9, 9, 216, 3, 253, 10, 249, 10, 9, 9, 43, 10, 249, 10, 55, 7, 216, 3, 249, 10, 216, 3, 55, 7, 107, 3, 249, 10, 43, 10, 229, 10, 249, 10, 4, 7, 55, 7, 249, 10, 229, 10, 4, 7, 107, 3, 55, 7, 213, 3, 4, 7, 213, 3, 55, 7, 213, 3, 178, 8, 107, 3, 4, 7, 229, 10, 50, 7, 4, 7, 219, 6, 213, 3, 213, 3, 219, 6, 178, 8, 248, 6, 4, 7, 50, 7, 248, 6, 50, 7, 229, 10, 4, 7, 248, 6, 231, 6, 231, 6, 219, 6, 4, 7, 235, 10, 248, 6, 229, 10, 43, 10, 235, 10, 229, 10, 231, 6, 248, 6, 235, 10, 240, 10, 235, 10, 43, 10, 240, 10, 231, 6, 235, 10, 240, 10, 43, 10, 21, 7, 231, 6, 240, 10, 21, 7, 231, 6, 166, 6, 219, 6, 166, 6, 178, 6, 219, 6, 118, 6, 231, 6, 21, 7, 166, 6, 231, 6, 118, 6, 125, 6, 178, 6, 166, 6, 125, 6, 166, 6, 118, 6, 178, 6, 157, 6, 219, 6, 157, 6, 178, 6, 125, 6, 219, 6, 157, 6, 178, 8, 226, 8, 157, 6, 125, 6, 157, 6, 226, 8, 178, 8, 77, 3, 178, 8, 226, 8, 77, 3, 107, 3, 178, 8, 107, 3, 77, 3, 48, 3, 20, 3, 77, 3, 226, 8, 20, 3, 226, 8, 125, 6, 48, 3, 77, 3, 42, 3, 42, 3, 77, 3, 20, 3, 48, 3, 42, 3, 54, 0, 231, 11, 54, 0, 42, 3, 42, 3, 20, 3, 2, 3, 42, 3, 2, 3, 203, 2, 203, 2, 2, 3, 20, 3, 203, 2, 32, 2, 42, 3, 20, 3, 32, 2, 203, 2, 42, 3, 32, 2, 231, 11, 125, 6, 240, 2, 20, 3, 32, 2, 20, 3, 240, 2, 240, 2, 125, 6, 118, 6, 138, 2, 231, 11, 32, 2, 32, 2, 240, 2, 138, 2, 138, 2, 59, 2, 231, 11, 231, 11, 59, 2, 77, 2, 172, 2, 138, 2, 240, 2, 172, 2, 59, 2, 138, 2, 118, 6, 172, 2, 240, 2, 77, 2, 59, 2, 160, 2, 172, 2, 160, 2, 59, 2, 144, 2, 77, 2, 160, 2, 172, 2, 118, 6, 118, 8, 172, 2, 118, 8, 160, 2, 118, 8, 118, 6, 194, 6, 21, 7, 194, 6, 118, 6, 21, 7, 53, 6, 194, 6, 118, 8, 194, 6, 126, 8, 126, 8, 160, 2, 118, 8, 53, 6, 126, 8, 194, 6, 160, 2, 126, 8, 144, 2, 8, 6, 126, 8, 53, 6, 8, 6, 53, 6, 246, 5, 162, 5, 144, 2, 126, 8, 126, 8, 8, 6, 162, 5, 162, 5, 175, 5, 144, 2, 8, 6, 203, 5, 162, 5, 175, 5, 162, 5, 203, 5, 246, 5, 216, 5, 8, 6, 216, 5, 246, 5, 144, 2, 216, 5, 203, 5, 8, 6, 144, 2, 175, 5, 216, 5, 216, 5, 175, 5, 203, 5), 0.446191, PackedByteArray(228, 11, 70, 0, 166, 0, 166, 0, 70, 0, 172, 0, 202, 0, 172, 0, 70, 0, 229, 11, 202, 0, 70, 0, 229, 11, 70, 0, 228, 11, 172, 0, 202, 0, 122, 7, 166, 0, 172, 0, 230, 11, 172, 0, 122, 7, 230, 11, 11, 4, 122, 7, 202, 0, 229, 11, 11, 4, 202, 0, 11, 4, 91, 7, 122, 7, 91, 7, 207, 3, 122, 7, 11, 4, 207, 3, 91, 7, 230, 11, 122, 7, 207, 3, 62, 4, 11, 4, 229, 11, 11, 4, 62, 4, 207, 3, 200, 4, 207, 3, 62, 4, 200, 4, 62, 4, 229, 11, 207, 3, 115, 9, 230, 11, 175, 4, 207, 3, 200, 4, 115, 9, 207, 3, 175, 4, 175, 4, 200, 4, 142, 4, 101, 9, 175, 4, 142, 4, 175, 4, 101, 9, 115, 9, 101, 9, 142, 4, 200, 4, 21, 9, 101, 9, 200, 4, 101, 9, 21, 9, 115, 9, 21, 9, 9, 9, 115, 9, 9, 9, 21, 9, 200, 4, 9, 9, 72, 11, 115, 9, 115, 9, 72, 11, 191, 3, 115, 9, 191, 3, 230, 11, 78, 11, 191, 3, 72, 11, 9, 9, 78, 11, 72, 11, 191, 3, 78, 11, 221, 3, 221, 3, 78, 11, 9, 9, 230, 11, 191, 3, 221, 3, 55, 7, 221, 3, 9, 9, 230, 11, 221, 3, 55, 7, 17, 9, 9, 9, 200, 4, 173, 9, 9, 9, 17, 9, 9, 9, 173, 9, 55, 7, 239, 9, 17, 9, 200, 4, 17, 9, 239, 9, 145, 5, 17, 9, 145, 5, 1, 10, 17, 9, 1, 10, 173, 9, 104, 5, 145, 5, 239, 9, 1, 10, 145, 5, 104, 5, 239, 9, 200, 4, 75, 5, 104, 5, 239, 9, 75, 5, 75, 5, 200, 4, 156, 7, 229, 11, 156, 7, 200, 4, 57, 5, 104, 5, 75, 5, 156, 7, 57, 5, 75, 5, 229, 11, 198, 7, 156, 7, 244, 4, 57, 5, 156, 7, 156, 7, 198, 7, 232, 4, 156, 7, 232, 4, 244, 4, 97, 1, 232, 4, 198, 7, 244, 4, 232, 4, 97, 1, 97, 1, 198, 7, 229, 11, 57, 5, 244, 4, 97, 1, 104, 5, 57, 5, 236, 1, 236, 1, 57, 5, 97, 1, 159, 0, 89, 1, 97, 1, 226, 0, 89, 1, 229, 11, 89, 1, 226, 0, 97, 1, 228, 11, 226, 0, 229, 11, 97, 1, 226, 0, 228, 11, 97, 1, 228, 11, 236, 1, 27, 8, 104, 5, 236, 1, 228, 11, 209, 1, 236, 1, 209, 1, 27, 8, 236, 1, 18, 6, 104, 5, 27, 8, 104, 5, 18, 6, 1, 10, 194, 1, 27, 8, 209, 1, 194, 1, 209, 1, 228, 11, 194, 1, 162, 5, 27, 8, 162, 5, 18, 6, 27, 8, 228, 11, 59, 2, 194, 1, 194, 1, 59, 2, 162, 5, 172, 2, 59, 2, 228, 11, 172, 2, 160, 2, 59, 2, 162, 5, 59, 2, 160, 2, 172, 2, 162, 5, 160, 2, 18, 6, 162, 5, 203, 5, 136, 8, 203, 5, 162, 5, 136, 8, 162, 5, 172, 2, 203, 5, 53, 6, 18, 6, 203, 5, 136, 8, 53, 6, 1, 10, 18, 6, 78, 6, 172, 2, 194, 6, 136, 8, 53, 6, 136, 8, 194, 6, 109, 10, 1, 10, 78, 6, 90, 6, 78, 6, 18, 6, 53, 6, 90, 6, 18, 6, 78, 6, 90, 6, 109, 10, 90, 6, 53, 6, 231, 6, 231, 6, 109, 10, 90, 6, 231, 6, 53, 6, 194, 6, 1, 10, 109, 10, 173, 9, 109, 10, 122, 10, 173, 9, 231, 6, 122, 10, 109, 10, 240, 10, 173, 9, 122, 10, 231, 6, 240, 10, 122, 10, 173, 9, 240, 10, 50, 7, 231, 6, 50, 7, 240, 10, 55, 7, 173, 9, 50, 7, 55, 7, 50, 7, 231, 6, 166, 6, 231, 6, 194, 6, 231, 6, 178, 6, 55, 7, 231, 6, 166, 6, 178, 6, 55, 7, 178, 6, 178, 8, 55, 7, 178, 8, 230, 11, 125, 6, 178, 6, 166, 6, 125, 6, 166, 6, 194, 6, 178, 6, 125, 6, 178, 8, 38, 3, 230, 11, 178, 8, 38, 3, 178, 8, 125, 6, 230, 11, 38, 3, 166, 0, 240, 2, 125, 6, 194, 6, 240, 2, 38, 3, 125, 6, 194, 6, 172, 2, 240, 2, 166, 0, 38, 3, 32, 2, 32, 2, 38, 3, 240, 2, 32, 2, 240, 2, 172, 2, 166, 0, 32, 2, 228, 11, 172, 2, 228, 11, 32, 2), 0.571759, PackedByteArray(213, 11, 70, 0, 217, 11, 217, 11, 70, 0, 172, 0, 220, 11, 172, 0, 70, 0, 220, 11, 70, 0, 213, 11, 217, 11, 172, 0, 219, 11, 220, 11, 219, 11, 172, 0, 217, 11, 240, 2, 213, 11, 220, 11, 62, 4, 219, 11, 219, 11, 62, 4, 200, 4, 62, 4, 220, 11, 200, 4, 219, 11, 245, 3, 217, 11, 245, 3, 219, 11, 200, 4, 240, 2, 217, 11, 216, 11, 214, 11, 240, 2, 216, 11, 85, 3, 217, 11, 245, 3, 217, 11, 85, 3, 224, 11, 217, 11, 218, 11, 216, 11, 217, 11, 224, 11, 218, 11, 178, 6, 216, 11, 218, 11, 224, 11, 178, 6, 218, 11, 223, 11, 216, 11, 178, 6, 223, 11, 178, 6, 224, 11, 85, 3, 221, 3, 224, 11, 85, 3, 245, 3, 221, 3, 245, 3, 72, 11, 221, 3, 221, 3, 72, 11, 226, 11, 226, 11, 72, 11, 245, 3, 224, 11, 221, 3, 226, 11, 101, 9, 226, 11, 245, 3, 101, 9, 245, 3, 200, 4, 226, 11, 101, 9, 200, 4, 226, 11, 240, 10, 224, 11, 223, 11, 224, 11, 240, 10, 239, 9, 226, 11, 200, 4, 240, 10, 227, 11, 223, 11, 226, 11, 239, 9, 221, 11, 239, 9, 200, 4, 225, 11, 221, 11, 239, 9, 225, 11, 220, 11, 225, 11, 200, 4, 221, 11, 109, 10, 227, 11, 109, 10, 223, 11, 227, 11, 223, 11, 109, 10, 221, 11, 203, 5, 223, 11, 221, 11, 244, 4, 221, 11, 225, 11, 203, 5, 144, 2, 223, 11, 144, 2, 203, 5, 221, 11, 221, 11, 244, 4, 215, 11, 223, 11, 144, 2, 118, 8, 223, 11, 118, 8, 216, 11, 216, 11, 118, 8, 144, 2, 144, 2, 59, 2, 216, 11, 225, 11, 97, 1, 244, 4, 244, 4, 97, 1, 215, 11, 220, 11, 97, 1, 225, 11, 226, 0, 97, 1, 220, 11, 213, 11, 226, 0, 220, 11, 97, 1, 226, 0, 213, 11, 216, 11, 59, 2, 213, 11, 97, 1, 213, 11, 215, 11, 194, 1, 221, 11, 215, 11, 194, 1, 215, 11, 213, 11, 213, 11, 59, 2, 194, 1, 194, 1, 59, 2, 144, 2, 144, 2, 222, 11, 194, 1), 0.810312, PackedByteArray(187, 11, 193, 11, 184, 11, 184, 11, 189, 11, 187, 11, 193, 11, 208, 11, 186, 11, 208, 11, 193, 11, 195, 11, 200, 11, 189, 11, 185, 11, 184, 11, 191, 11, 200, 11, 186, 11, 160, 2, 191, 11, 207, 11, 160, 2, 186, 11, 207, 11, 192, 11, 160, 2, 207, 11, 209, 11, 192, 11, 210, 11, 207, 11, 195, 11, 210, 11, 195, 11, 198, 11, 194, 11, 198, 11, 195, 11, 212, 11, 210, 11, 199, 11, 194, 11, 196, 11, 198, 11, 187, 11, 196, 11, 194, 11, 198, 11, 196, 11, 211, 11, 101, 9, 211, 11, 196, 11, 211, 11, 101, 9, 204, 11, 209, 11, 212, 11, 122, 10, 122, 10, 206, 11, 209, 11, 205, 11, 122, 10, 212, 11, 205, 11, 191, 11, 209, 11, 191, 11, 205, 11, 200, 11, 211, 11, 239, 9, 205, 11, 239, 9, 211, 11, 202, 11, 101, 9, 197, 11, 202, 11, 205, 11, 239, 9, 203, 11, 200, 11, 205, 11, 203, 11, 197, 11, 188, 11, 202, 11, 200, 11, 203, 11, 188, 11, 190, 11, 201, 11, 188, 11), 1.2289, PackedByteArray(171, 11, 167, 11, 163, 11, 163, 11, 160, 11, 171, 11, 167, 11, 166, 11, 164, 11, 166, 11, 176, 11, 164, 11, 177, 11, 166, 11, 168, 11, 165, 11, 176, 11, 175, 11, 176, 11, 109, 10, 175, 11, 175, 11, 109, 10, 239, 9, 165, 11, 174, 11, 162, 11, 181, 11, 161, 11, 174, 11, 173, 11, 161, 11, 181, 11, 101, 9, 172, 11, 181, 11, 172, 11, 179, 11, 169, 11, 182, 11, 183, 11, 178, 11, 182, 11, 178, 11, 170, 11, 170, 11, 180, 11, 182, 11), 2.21728, PackedByteArray(144, 11, 140, 11, 136, 11, 156, 11, 145, 11, 148, 11, 137, 11, 152, 11, 149, 11, 153, 11, 138, 11, 141, 11, 146, 11, 157, 11, 142, 11, 139, 11, 150, 11, 147, 11, 158, 11, 151, 11, 154, 11, 159, 11, 155, 11, 143, 11), 2.80508, PackedByteArray(132, 11, 124, 11, 128, 11, 133, 11, 129, 11, 126, 11, 127, 11, 130, 11, 134, 11, 135, 11, 131, 11, 125, 11)], -"material": ExtResource("5_h2bqu"), +"material": ExtResource("5_g1d5n"), "name": "lambert27", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), diff --git a/godot/GameObjects/turret.tscn b/godot/GameObjects/turret.tscn index ee27672..7a14d04 100644 --- a/godot/GameObjects/turret.tscn +++ b/godot/GameObjects/turret.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=7 format=3 uid="uid://brpccv2gy7pjs"] +[gd_scene load_steps=8 format=3 uid="uid://brpccv2gy7pjs"] [ext_resource type="PackedScene" uid="uid://d0ir0dpghkikq" path="res://GameObjects/beam.tscn" id="1_7e7bw"] +[ext_resource type="PackedScene" uid="uid://g5cbht0novdc" path="res://GameObjects/aiming_beam.tscn" id="2_616om"] [ext_resource type="PackedScene" uid="uid://v5p6ih28q6ro" path="res://Models/SM_Wep_Shotgun_Plasma_01.fbx" id="2_snu5d"] [sub_resource type="CylinderMesh" id="CylinderMesh_sewkr"] @@ -19,6 +20,9 @@ size = Vector3(0.205, 1, 0.83) [node name="Turret" type="Turret"] attack_classes = [&"CarPlayer"] beam_scene = ExtResource("1_7e7bw") +guiding_beam_scene = ExtResource("2_616om") +fire_time = 0.15 +charge_time = 1.3 collision_layer = 9 collision_mask = 9 axis_lock_linear_x = true diff --git a/godot/Models/World/City/city.tres b/godot/Models/city.tres similarity index 100% rename from godot/Models/World/City/city.tres rename to godot/Models/city.tres diff --git a/godot/Models/World/Harbour/containers.tres b/godot/Models/containers.tres similarity index 100% rename from godot/Models/World/Harbour/containers.tres rename to godot/Models/containers.tres diff --git a/godot/Models/World/Harbour/crane.tres b/godot/Models/crane.tres similarity index 100% rename from godot/Models/World/Harbour/crane.tres rename to godot/Models/crane.tres diff --git a/godot/Models/World/Forest/forest.tres b/godot/Models/forest.tres similarity index 100% rename from godot/Models/World/Forest/forest.tres rename to godot/Models/forest.tres diff --git a/godot/WorldObjects/City/building_square.tscn b/godot/WorldObjects/City/building_square.tscn index e30d5a9..513dce2 100644 --- a/godot/WorldObjects/City/building_square.tscn +++ b/godot/WorldObjects/City/building_square.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=5 format=3 uid="uid://dro5j4614bj8d"] -[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/World/City/city.tres" id="1_tjjf4"] +[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/city.tres" id="1_tjjf4"] [sub_resource type="ArrayMesh" id="ArrayMesh_ihi1d"] _surfaces = [{ diff --git a/godot/WorldObjects/City/building_tall.tscn b/godot/WorldObjects/City/building_tall.tscn index b82a7d3..63a9ec3 100644 --- a/godot/WorldObjects/City/building_tall.tscn +++ b/godot/WorldObjects/City/building_tall.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=5 format=3 uid="uid://dw47vdyt678og"] -[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/World/City/city.tres" id="1_nxymn"] +[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/city.tres" id="1_nxymn"] [sub_resource type="ArrayMesh" id="ArrayMesh_qnxxj"] _surfaces = [{ diff --git a/godot/WorldObjects/Forest/tree_1.tscn b/godot/WorldObjects/Forest/tree_1.tscn index c23d4e2..34ebf87 100644 --- a/godot/WorldObjects/Forest/tree_1.tscn +++ b/godot/WorldObjects/Forest/tree_1.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=5 format=3 uid="uid://d2ltua7nsbicf"] -[ext_resource type="Material" uid="uid://cbfimnkdsgwdi" path="res://Models/World/Forest/forest.tres" id="1_cupkv"] +[ext_resource type="Material" uid="uid://cbfimnkdsgwdi" path="res://Models/forest.tres" id="1_cupkv"] [sub_resource type="ArrayMesh" id="ArrayMesh_tcqye"] _surfaces = [{ diff --git a/godot/WorldObjects/Harbour/container_1.tscn b/godot/WorldObjects/Harbour/container_1.tscn index 627f9f8..b1657d4 100644 --- a/godot/WorldObjects/Harbour/container_1.tscn +++ b/godot/WorldObjects/Harbour/container_1.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=5 format=3 uid="uid://dcljtjjyxymd"] -[ext_resource type="Material" uid="uid://k8w3xmh1vhia" path="res://Models/World/Harbour/containers.tres" id="1_fgu0h"] +[ext_resource type="Material" uid="uid://k8w3xmh1vhia" path="res://Models/containers.tres" id="1_fgu0h"] [sub_resource type="ArrayMesh" id="ArrayMesh_3g704"] _surfaces = [{ diff --git a/godot/WorldObjects/Harbour/crane.tscn b/godot/WorldObjects/Harbour/crane.tscn index 7e8659c..ee61cf8 100644 --- a/godot/WorldObjects/Harbour/crane.tscn +++ b/godot/WorldObjects/Harbour/crane.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=60 format=3 uid="uid://coc0bvuqnit2x"] -[ext_resource type="Material" uid="uid://45e28s7j77mx" path="res://Models/World/Harbour/crane.tres" id="1_ginbe"] +[ext_resource type="Material" uid="uid://45e28s7j77mx" path="res://Models/crane.tres" id="1_ginbe"] [sub_resource type="ArrayMesh" id="ArrayMesh_6ken0"] _surfaces = [{ diff --git a/godot/WorldObjects/Harbour/warehouse.tscn b/godot/WorldObjects/Harbour/warehouse.tscn index b2a4a2f..c765202 100644 --- a/godot/WorldObjects/Harbour/warehouse.tscn +++ b/godot/WorldObjects/Harbour/warehouse.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=13 format=3 uid="uid://bqeot1gwbtwd"] -[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/World/City/city.tres" id="1_d8gyh"] +[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/city.tres" id="1_d8gyh"] [sub_resource type="ArrayMesh" id="ArrayMesh_gde8f"] _surfaces = [{ diff --git a/godot/WorldObjects/wall.tscn b/godot/WorldObjects/wall.tscn index 710eb50..6e4d3c8 100644 --- a/godot/WorldObjects/wall.tscn +++ b/godot/WorldObjects/wall.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://boh0mf73cpyk3"] -[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/World/City/city.tres" id="1_0mlbt"] +[ext_resource type="Material" uid="uid://b151co1fkexdi" path="res://Models/city.tres" id="1_0mlbt"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vnx1q"] resource_name = "lambert10" diff --git a/godot/project.godot b/godot/project.godot index 681b110..183a3ff 100644 --- a/godot/project.godot +++ b/godot/project.godot @@ -10,11 +10,15 @@ config_version=5 [application] -config/name="godot cpp template" +config/name="rally rush" run/main_scene="res://boot.tscn" config/features=PackedStringArray("4.2", "Forward Plus") config/icon="res://icon.svg" +[display] + +window/size/mode=3 + [input] steer_left={ diff --git a/src/beam.cpp b/src/beam.cpp index ab1219f..288d4ec 100644 --- a/src/beam.cpp +++ b/src/beam.cpp @@ -10,11 +10,15 @@ void Beam::_bind_methods() { void Beam::_enter_tree() { GDGAMEONLY(); this->mesh_instance = this->get_node("MeshInstance3D"); - if(this->mesh_instance) - this->mesh = this->mesh_instance->get_mesh(); + if(this->mesh_instance) { + this->mesh = this->mesh_instance->get_mesh()->duplicate(); + this->mesh_instance->set_mesh(this->mesh); + } this->collision_shape = this->get_node("CollisionShape3D"); - if(this->collision_shape) - this->shape = this->collision_shape->get_shape(); + if(this->collision_shape) { + this->shape = this->collision_shape->get_shape()->duplicate(); + this->collision_shape->set_shape(shape); + } this->connect("body_entered", callable_mp(this, &Beam::body_entered)); } diff --git a/src/car_physics.cpp b/src/car_physics.cpp index 2b91e2d..cd8f243 100644 --- a/src/car_physics.cpp +++ b/src/car_physics.cpp @@ -165,6 +165,10 @@ float CarPhysics::get_current_acceleration() const { : (this->engine_brake_force * (1.f-Math::abs(this->current_oversteer * this->oversteer_brake_penalty))))); } +Vector3 CarPhysics::get_local_velocity() const { + return this->local_velocity; +} + Vector3 CarPhysics::local_to_world_velocity() const { Basis const basis = this->get_global_basis(); Vector3 world_velocity{ diff --git a/src/car_physics.hpp b/src/car_physics.hpp index d0e2407..69dab8a 100644 --- a/src/car_physics.hpp +++ b/src/car_physics.hpp @@ -38,6 +38,7 @@ protected: float get_current_acceleration() const; public: // convert the local_velocity to world coordinates + Vector3 get_local_velocity() const; Vector3 local_to_world_velocity() const; Vector3 world_to_local_velocity() const; float get_current_speed() const; diff --git a/src/car_player.cpp b/src/car_player.cpp index 9f89100..d910d40 100644 --- a/src/car_player.cpp +++ b/src/car_player.cpp @@ -19,12 +19,23 @@ void CarPlayer::_bind_methods() { void CarPlayer::_ready() { GDGAMEONLY(); this->roof_slot = this->get_node("RoofSlot"); + this->camera = this->get_node("Camera3D"); } void CarPlayer::_process(double delta_time) { GDGAMEONLY(); if(this->roof_slot->get_child_count() > 0 && Time::get_singleton()->get_ticks_msec() * 0.001 > this->end_of_powerup) { this->destroy_all_powerups(); } + double time = Time::get_singleton()->get_ticks_msec() * 0.001; + this->set_visible(time > grace_timer_end || (int(time / this->grace_time_flash) % 2 == 0)); + + Vector3 const camera_direction{-(this->get_local_velocity().length() > 3.f ? this->local_to_world_velocity() : this->get_global_basis().get_column(2)).normalized()}; + this->camera->set_global_position(this->get_global_position() + camera_direction * this->camera_distance + Vector3{0.f, camera_height, 0.f}); + float speed_fraction = this->get_current_speed() / this->max_speed; + this->camera->set_fov(Math::move_toward(float(this->camera->get_fov()), float(this->camera_stopped_fov + (this->camera_fullspeed_fov - this->camera_stopped_fov) * speed_fraction), float(this->fov_lerp_delta * delta_time))); + Vector3 const x = Vector3{0.f, 1.f, 0.f}.cross(camera_direction); + Vector3 const y = camera_direction.cross(x); + this->camera->set_global_basis({x, y, camera_direction}); } void CarPlayer::setup_player_input(PlayerInput *input) { @@ -53,11 +64,15 @@ void CarPlayer::on_accelerate(Ref input, float value) { } void CarPlayer::damage() { + double time = Time::get_singleton()->get_ticks_msec() * 0.001; + if(time < this->grace_timer_end) + return; --this->health; if(this->health <= 0) { RallyRushGameMode *game_mode = Ref(GameRoot3D::get_singleton()->get_game_mode()).ptr(); game_mode->notify_player_death(); } + this->grace_timer_end = time + this->grace_time; } void CarPlayer::destroy_all_powerups() { diff --git a/src/car_player.hpp b/src/car_player.hpp index d8dfbd7..fdea20b 100644 --- a/src/car_player.hpp +++ b/src/car_player.hpp @@ -2,6 +2,7 @@ #define CAR_PLAYER_HPP #include "car_physics.hpp" +#include "godot_cpp/classes/camera3d.hpp" #include "godot_cpp/classes/packed_scene.hpp" #include "utils/player.hpp" #include @@ -42,17 +43,25 @@ private: int health{5}; double end_of_powerup{0.0}; bool takes_damage{true}; + float grace_timer_end{0.f}; Node3D *roof_slot{nullptr}; + Camera3D *camera{nullptr}; Ref turret; Ref beacon; Ref shield; - const float max_speed{40.f}; - const float max_speed_reverse{10.f}; - const float steering_factor{0.7f}; - const float powerup_duration{10.f}; + float const max_speed{40.f}; + float const steering_factor{0.7f}; + float const powerup_duration{10.f}; + float const camera_distance{4.f}; + float const camera_height{2.f}; + float const camera_fullspeed_fov{90.f}; + float const camera_stopped_fov{70.f}; + float const fov_lerp_delta{40.f}; + float const grace_time{1.f}; + float const grace_time_flash{0.1f}; }; }; diff --git a/src/damage_area.cpp b/src/damage_area.cpp index 4c74a76..088fafa 100644 --- a/src/damage_area.cpp +++ b/src/damage_area.cpp @@ -21,7 +21,7 @@ void DamageArea::_process(double delta_time) { } void DamageArea::body_entered(Node3D *node) { - if(this->target_classes.has(node->get_class()) && (!this->car || this->car->get_current_speed() > 30)) { + if(this->target_classes.has(node->get_class()) && (!this->car || this->car->get_current_speed() > 10.f)) { node->call("damage"); } } diff --git a/src/drone.cpp b/src/drone.cpp index 471431f..b91545e 100644 --- a/src/drone.cpp +++ b/src/drone.cpp @@ -81,7 +81,7 @@ void Drone::spawn_explosion() { void Drone::key_found(int total) { if(total == 2) { - this->speed *= 2; + this->speed *= 3; } } diff --git a/src/turret.cpp b/src/turret.cpp index 2c5af81..473967a 100644 --- a/src/turret.cpp +++ b/src/turret.cpp @@ -13,6 +13,7 @@ void Turret::_bind_methods() { #define CLASSNAME Turret GDPROPERTY_HINTED(attack_classes, Variant::ARRAY, PROPERTY_HINT_ARRAY_TYPE, "StringName"); GDPROPERTY_HINTED(beam_scene, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"); + GDPROPERTY_HINTED(guiding_beam_scene, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"); GDPROPERTY(fire_time, Variant::FLOAT); GDPROPERTY(charge_time, Variant::FLOAT); GDPROPERTY(lock_time, Variant::FLOAT); @@ -125,8 +126,13 @@ void Turret::try_next_state() { return; else this->state = next_state; this->last_state_switch = time; - if(state == TurretState::FIRING) { + switch(this->state) { + case TurretState::FIRING: this->create_beam(); + break; + case TurretState::CHARGING: + this->create_guiding_beam(); + default: break; } } @@ -134,16 +140,27 @@ void Turret::create_beam() { Vector3 const from = this->gun_node->get_global_position(); Vector3 const to = from + this->gun_node->get_global_basis().get_column(2) * 1000.f; Ref query{PhysicsRayQueryParameters3D::create(from, to)}; - Dictionary result = this->get_world_3d()->get_direct_space_state()->intersect_ray(query); - if(result.is_empty()) - return; - Beam *beam = Object::cast_to(this->beam_scene->instantiate()); - this->add_child(beam); + Dictionary result{this->get_world_3d()->get_direct_space_state()->intersect_ray(query)}; + if(result.is_empty()) return; + Beam *beam{Object::cast_to(this->beam_scene->instantiate())}; + this->gun_node->add_child(beam); beam->set_from_to(from, result["position"]); beam->set_end_time(this->fire_time); beam->connect("tree_exited", callable_mp(this, &Turret::beam_ended)); } +void Turret::create_guiding_beam() { + Vector3 const from = this->gun_node->get_global_position(); + Vector3 const to = from + this->gun_node->get_global_basis().get_column(2) * 1000.f; + Ref query{PhysicsRayQueryParameters3D::create(from, to)}; + Dictionary result{this->get_world_3d()->get_direct_space_state()->intersect_ray(query)}; + if(result.is_empty()) return; + Beam *beam{Object::cast_to(this->guiding_beam_scene->instantiate())}; + this->gun_node->add_child(beam); + beam->set_from_to(from, result["position"]); + beam->set_end_time(this->charge_time); +} + void Turret::beam_ended() { this->state = TurretState::LOCKING; this->last_state_switch = Time::get_singleton()->get_ticks_msec() * 0.001f; @@ -206,4 +223,12 @@ void Turret::set_beam_scene(Ref scene) { Ref Turret::get_beam_scene() const { return this->beam_scene; } + +void Turret::set_guiding_beam_scene(Ref scene) { + this->guiding_beam_scene = scene; +} + +Ref Turret::get_guiding_beam_scene() const { + return this->guiding_beam_scene; +} } diff --git a/src/turret.hpp b/src/turret.hpp index 51716ab..8451de2 100644 --- a/src/turret.hpp +++ b/src/turret.hpp @@ -30,7 +30,7 @@ public: void lose_node(Node3D *node); void try_next_state(); void create_beam(); - + void create_guiding_beam(); void beam_ended(); @@ -46,6 +46,8 @@ public: Array get_attack_classes() const; void set_beam_scene(Ref scene); Ref get_beam_scene() const; + void set_guiding_beam_scene(Ref scene); + Ref get_guiding_beam_scene() const; private: Node3D *current_target{nullptr}; bool invert_attack_classes{false}; @@ -63,6 +65,7 @@ private: HashSet awareness{}; Ref beam_scene{}; + Ref guiding_beam_scene{}; float fire_time{1.0f}; float charge_time{1.f}; diff --git a/src/weapon_pickup.cpp b/src/weapon_pickup.cpp index 9e89df0..54c0de6 100644 --- a/src/weapon_pickup.cpp +++ b/src/weapon_pickup.cpp @@ -1,13 +1,14 @@ #include "weapon_pickup.hpp" #include "car_player.hpp" #include "godot_cpp/classes/random_number_generator.hpp" +#include "utils/godot_macros.h" namespace godot { void WeaponPickup::_bind_methods() { #define CLASSNAME WeaponPickup } -void WeaponPickup::_enter_tree() { +void WeaponPickup::_enter_tree() { GDGAMEONLY(); this->connect("body_entered", callable_mp(this, &WeaponPickup::body_entered)); }