diff --git a/TODO.md b/TODO.md index 10f1f79..3ebb036 100644 --- a/TODO.md +++ b/TODO.md @@ -1,8 +1,10 @@ ## TODO: - better (flat) level mesh for testing grid position +- reduce verbosity of assimp loading - make hashmap grid type - in-game editor for adding removing hexes to line up with terrain/indoor meshes + - need to update json schema with "oneOf" to validate different grid types - position entities on grid hexes - gooey - add object inspector window @@ -24,6 +26,7 @@ - show debug mesh for light positions - attenuate point lights in shader - simplify render_object buffers into 2d array or vector, and use stride when pushing to GL + - render debug bounding boxes for meshes (including hexgrid) - remove checks for colors, textures from render_group functions - actually cannot remove checks for texture because some meshes aren't loaded properly - maybe can cause loading mesh to fail when more than one mesh per file diff --git a/data/hashmap_scene.json b/data/hashmap_scene.json new file mode 100644 index 0000000..19e79a1 --- /dev/null +++ b/data/hashmap_scene.json @@ -0,0 +1,62 @@ +{ + "camera" : { + "position" : {"x":400,"y":-275,"z":325}, + "target" : {"x":140,"y":0,"z":0}, + "world_up" : {"x":0,"y":0,"z":1} + }, + + "hex_grid" : { + "position" : {"x":0,"y":0,"z":0}, + "hex_size" : 10, + "fill_color" : 6, + "selected_fill_color": 7, + "hex_line_color": 5, + "hexlib_orientation" : "layout_flat", + "grid_type" : "hash_map", + "map_file" : "hashmap_scene_hexmap.json" + }, + + "entities" : [ + { + "name" : "catepillar 1", + "model_file" : "catepillar.dae", + "position" : {"x":-140,"y":50,"z":0}, + "rotation" : {"x":0,"y":0,"z":0,"w":0}, + "scale" : {"x":10,"y":10,"z":10} + }, + { + "name" : "catepillar 2", + "model_file" : "catepillar.dae", + "position" : {"x" :140,"y":0,"z":0}, + "rotation" : {"x":0,"y":0,"z":0,"w":0}, + "scale" : {"x":10,"y":10,"z":10} + }, + { + "name" : "box", + "model_file" : "block2.dae", + "position" : {"x":140,"y":-100,"z":0}, + "rotation" : {"x":0,"y":0,"z":0,"w":0}, + "scale" : {"x":10,"y":10,"z":10} + }, + { + "name" : "ground", + "model_file" : "level.2.dae", + "position" : {"x":0,"y":0,"z":-1}, + "rotation" : {"x":0,"y":0,"z":0,"w":0}, + "scale" : {"x":300,"y":300,"z":300} + } + ], + + "lights" : [ + { + "intensity" : 1.0, + "color" : {"r":0,"g":0,"b":0}, + "position" : {"x":-1000,"y":0,"z":200} + }, + { + "intensity" : 1.0, + "color" : {"r":0,"g":0,"b":0}, + "position" : {"x":200,"y":0,"z":200} + } + ] +} diff --git a/data/hashmap_scene_hexmap.json b/data/hashmap_scene_hexmap.json new file mode 100644 index 0000000..e69de29 diff --git a/data/level.2.dae b/data/level.2.dae index 554dd55..a299fda 100644 --- a/data/level.2.dae +++ b/data/level.2.dae @@ -5,18 +5,18 @@ Blender User Blender 2.79.6 commit date:2018-12-22, commit time:14:10, hash:2c0c1f494dcf - 2019-01-08T13:41:11 - 2019-01-08T13:41:11 + 2019-01-17T17:04:24 + 2019-01-17T17:04:24 Z_UP - palette.png + /home/doug/dev/blender.projects/palette.png - + @@ -30,29 +30,41 @@ + + 0 0 0 1 + + + 0 0 0 1 + - + - 0 0 0 1 + 0.5 0.5 0.5 1 + + 50 + + + 1 + - - + + - 1 -1 0 -1 1 0 -1 0 0 1 0 0 0 0 0 -1 -0.5 0 0.5 -1 0 -0.5 1 0 -1 0.5 0 -0.5 -1 0 0 0.5 0 0 -0.5 0 -0.5 -0.5 0 0.5 0.5 0 -1 -0.75 0 1 0.75 0 -0.75 1 0 -1 0.25 0 -0.25 -1 0 1 -0.25 0 0 -0.25 0 0.25 0 0 -1 -0.25 0 -0.75 -1 0 1 -0.75 0 0.75 1 0 0 0.25 0 -0.25 0 0 0.5 -0.75 0 0.25 -0.5 0 0.75 -0.5 0 -0.5 -0.75 0 -0.5 0.75 0 -0.75 0.5 0 0.5 0.75 0 0.75 0.5 0 0.75 0.25 0 -0.75 0.25 0 -0.75 0.75 0 0.75 -0.75 0 0.25 -0.75 0 -0.25 -0.25 0 -0.25 0.75 0 -1.99973 0 0 -1.99973 -0.25 0 -1.99973 0.25 0 -3.99973 0 0 -2.99973 0 0 -2.49973 0 0 -1.99973 -0.75 0 -3.99973 -0.25 0 -2.49973 1 0 -3.49973 0 0 -2.99973 -0.75 0 -2.99973 -0.25 0 -2.49973 -0.25 0 -3.49973 -0.25 0 -1 -1 0 0.75 -1 0 1 1 0 0 -1 0 0.25 1 0 0 1 0 0 0.75 0 -0.75 0 0 0.25 -1 0 1 0.25 0 1 0.5 0 -0.25 1 0 -1 0.75 0 1 -0.5 0 0.5 1 0 0 -0.75 0 -0.5 0 0 0.75 0 0 0.5 0 0 0.5 -0.25 0 0.5 -0.5 0 -0.5 -0.25 0 -0.75 -0.5 0 -0.25 -0.5 0 -0.5 0.25 0 -0.5 0.5 0 -0.25 0.5 0 0.5 0.25 0 0.25 0.5 0 0.25 0.25 0 0.25 0.75 0 -0.25 0.25 0 -0.25 -0.75 0 -0.75 -0.75 0 -0.75 -0.25 0 0.25 -0.25 0 0.75 -0.25 0 0.75 0.75 0 -3.99973 0.75 0 -3.99973 1 0 -1.99973 -1 0 -2.49973 -1 0 -1.99973 1 0 -3.99973 0.25 0 -3.99973 0.5 0 -3.49973 -1 0 -2.99973 -1 0 -3.99973 -0.75 0 -3.99973 -0.5 0 -1.99973 0.75 0 -1.99973 0.5 0 -3.49973 1 0 -2.99973 1 0 -2.99973 0.75 0 -2.99973 0.25 0 -2.99973 0.5 0 -2.49973 0.5 0 -3.49973 0.5 0 -2.99973 -0.5 0 -3.49973 -0.5 0 -2.49973 -0.5 0 -1.99973 -0.5 0 -3.99973 -1 0 -3.49973 -0.75 0 -3.49973 0.25 0 -2.49973 0.25 0 -2.49973 0.75 0 -3.49973 0.75 0 -2.49973 -0.75 0 -1 1 0.3738793 1 0 0.3738793 -0.5 1 0.3738793 -1 -0.75 0.3738793 1 0.75 0.3738793 -0.75 1 0.3738793 -1 0.25 0.3738793 -0.75 -1 0.3738793 0.75 1 0.3738793 -1.99973 -0.25 0.3738793 -1.99973 -0.75 0.3738793 -3.99973 -0.25 0.3738793 -2.49973 1 0.3738793 -1 -1 0.3738793 0 1 0.3738793 0.25 -1 0.3738793 1 0.25 0.3738793 1 0.5 0.3738793 -1 0.75 0.3738793 -3.99973 1 0.3738793 -2.49973 -1 0.3738793 -3.99973 -0.75 0.3738793 -1.99973 0.5 0.3738793 -3.49973 1 0.3738793 1 -1 0.3738793 -1 -0.5 0.3738793 0.5 -1 0.3738793 -1 0.5 0.3738793 -0.5 -1 0.3738793 -0.25 -1 0.3738793 1 -0.25 0.3738793 -1 -0.25 0.3738793 1 -0.75 0.3738793 -1.99973 0.25 0.3738793 -3.99973 0 0.3738793 0.75 -1 0.3738793 1 1 0.3738793 0 -1 0.3738793 0.25 1 0.3738793 -0.25 1 0.3738793 1 -0.5 0.3738793 0.5 1 0.3738793 -3.99973 0.75 0.3738793 -1.99973 -1 0.3738793 -1.99973 1 0.3738793 -3.99973 0.25 0.3738793 -3.99973 0.5 0.3738793 -3.49973 -1 0.3738793 -2.99973 -1 0.3738793 -3.99973 -0.5 0.3738793 -1.99973 0.75 0.3738793 -2.99973 1 0.3738793 -1.99973 -0.5 0.3738793 -3.99973 -1 0.3738793 -2 1 0.3738793 -2 0.25 0.3738793 -2 0.75 0.3738793 -2 0.5 0.3738793 -2 -0.75 0.3738793 -2 -1 0.3738793 -2 -0.5 0.3738793 -2 -0.25 0.3738793 -0.75 -2 0.3738793 -1 -2 0.3738793 0.25 -2 0.3738793 -2.49973 -2 0.3738793 1 -2 0.3738793 0.5 -2 0.3738793 -0.5 -2 0.3738793 -0.25 -2 0.3738793 0.75 -2 0.3738793 0 -2 0.3738793 -1.99973 -2 0.3738793 -3.49973 -2 0.3738793 -2.99973 -2 0.3738793 -3.99973 -2 0.3738793 -2 -2 0.3738793 -1 2 0.3738793 -0.5 2 0.3738793 -0.75 2 0.3738793 0.75 2 0.3738793 -2.49973 2 0.3738793 0 2 0.3738793 -3.99973 2 0.3738793 -3.49973 2 0.3738793 1 2 0.3738793 0.25 2 0.3738793 -0.25 2 0.3738793 0.5 2 0.3738793 -1.99973 2 0.3738793 -2.99973 2 0.3738793 -2 2 0.3738793 2 0 0.3738793 2 0.75 0.3738793 2 0.25 0.3738793 2 0.5 0.3738793 2 -1 0.3738793 2 -0.25 0.3738793 2 -0.75 0.3738793 2 1 0.3738793 2 -0.5 0.3738793 2 -2 0.3738793 2 2 0.3738793 -4.99973 -0.25 0.3738793 -4.99973 1 0.3738793 -4.99973 -0.75 0.3738793 -4.99973 0 0.3738793 -4.99973 0.75 0.3738793 -4.99973 0.25 0.3738793 -4.99973 0.5 0.3738793 -4.99973 -0.5 0.3738793 -4.99973 -1 0.3738793 -4.99973 -2 0.3738793 -4.99973 2 0.3738793 + 1 -1 0 -1 1 0 -1 0 0 1 0 0 -1 -0.5 0 0.5 -1 0 -0.5 1 0 -1 0.5 0 -0.5 -1 0 0 0.5 0 0 -0.5 0 -0.5 -0.5 0 0.5 0.5 0 -1 -0.75 0 1 0.75 0 -0.75 1 0 -1 0.25 0 -0.25 -1 0 1 -0.25 0 0 -0.25 0 0.25 0 0 -1 -0.25 0 -0.75 -1 0 1 -0.75 0 0.75 1 0 0 0.25 0 -0.25 0 0 0.5 -0.75 0 0.25 -0.5 0 0.75 -0.5 0 -0.5 -0.75 0 -0.5 0.75 0 -0.75 0.5 0 0.5 0.75 0 0.75 0.5 0 0.75 0.25 0 -0.75 0.25 0 -0.75 0.75 0 0.75 -0.75 0 0.25 -0.75 0 -0.25 -0.25 0 -0.25 0.75 0 -1.99973 0 0 -1.99973 -0.25 0 -1.99973 0.25 0 -3.99973 0 0 -2.99973 0 0 -2.49973 0 0 -1.99973 -0.75 0 -3.99973 -0.25 0 -2.49973 1 0 -3.49973 0 0 -2.99973 -0.75 0 -2.99973 -0.25 0 -2.49973 -0.25 0 -3.49973 -0.25 0 -1 -1 0 0.75 -1 0 1 1 0 0 -1 0 0.25 1 0 0 1 0 0 0.75 0 -0.75 0 0 0.25 -1 0 1 0.25 0 1 0.5 0 -0.25 1 0 -1 0.75 0 1 -0.5 0 0.5 1 0 0 -0.75 0 -0.5 0 0 0.75 0 0 0.5 0 0 0.5 -0.25 0 0.5 -0.5 0 -0.5 -0.25 0 -0.75 -0.5 0 -0.25 -0.5 0 -0.5 0.25 0 -0.5 0.5 0 -0.25 0.5 0 0.5 0.25 0 0.25 0.5 0 0.25 0.25 0 0.25 0.75 0 -0.25 0.25 0 -0.25 -0.75 0 -0.75 -0.75 0 -0.75 -0.25 0 0.25 -0.25 0 0.75 -0.25 0 0.75 0.75 0 -3.99973 0.75 0 -3.99973 1 0 -1.99973 -1 0 -2.49973 -1 0 -1.99973 1 0 -3.99973 0.25 0 -3.99973 0.5 0 -3.49973 -1 0 -2.99973 -1 0 -3.99973 -0.75 0 -3.99973 -0.5 0 -1.99973 0.75 0 -1.99973 0.5 0 -3.49973 1 0 -2.99973 1 0 -2.99973 0.75 0 -2.99973 0.25 0 -2.99973 0.5 0 -2.49973 0.5 0 -3.49973 0.5 0 -2.99973 -0.5 0 -3.49973 -0.5 0 -2.49973 -0.5 0 -1.99973 -0.5 0 -3.99973 -1 0 -3.49973 -0.75 0 -3.49973 0.25 0 -2.49973 0.25 0 -2.49973 0.75 0 -3.49973 0.75 0 -2.49973 -0.75 0 -1 1 0.3738793 1 0 0.3738793 -0.5 1 0.3738793 -1 -0.75 0.3738793 1 0.75 0.3738793 -0.75 1 0.3738793 -1 0.25 0.3738793 -0.75 -1 0.3738793 0.75 1 0.3738793 -1.99973 -0.25 0.3738793 -1.99973 -0.75 0.3738793 -3.99973 -0.25 0.3738793 -2.49973 1 0.3738793 -1 -1 0.3738793 0 1 0.3738793 0.25 -1 0.3738793 1 0.25 0.3738793 1 0.5 0.3738793 -1 0.75 0.3738793 -3.99973 1 0.3738793 -2.49973 -1 0.3738793 -3.99973 -0.75 0.3738793 -1.99973 0.5 0.3738793 -3.49973 1 0.3738793 1 -1 0.3738793 -1 -0.5 0.3738793 0.5 -1 0.3738793 -1 0.5 0.3738793 -0.5 -1 0.3738793 -0.25 -1 0.3738793 1 -0.25 0.3738793 -1 -0.25 0.3738793 1 -0.75 0.3738793 -1.99973 0.25 0.3738793 -3.99973 0 0.3738793 0.75 -1 0.3738793 1 1 0.3738793 0 -1 0.3738793 0.25 1 0.3738793 -0.25 1 0.3738793 1 -0.5 0.3738793 0.5 1 0.3738793 -3.99973 0.75 0.3738793 -1.99973 -1 0.3738793 -1.99973 1 0.3738793 -3.99973 0.25 0.3738793 -3.99973 0.5 0.3738793 -3.49973 -1 0.3738793 -2.99973 -1 0.3738793 -3.99973 -0.5 0.3738793 -1.99973 0.75 0.3738793 -2.99973 1 0.3738793 -1.99973 -0.5 0.3738793 -3.99973 -1 0.3738793 -2 1 0.3738793 -2 0.25 0.3738793 -2 0.75 0.3738793 -2 0.5 0.3738793 -2 -0.75 0.3738793 -2 -1 0.3738793 -2 -0.5 0.3738793 -2 -0.25 0.3738793 -0.75 -2 0.3738793 -1 -2 0.3738793 0.25 -2 0.3738793 -2.49973 -2 0.3738793 1 -2 0.3738793 0.5 -2 0.3738793 -0.5 -2 0.3738793 -0.25 -2 0.3738793 0.75 -2 0.3738793 0 -2 0.3738793 -1.99973 -2 0.3738793 -3.49973 -2 0.3738793 -2.99973 -2 0.3738793 -3.99973 -2 0.3738793 -2 -2 0.3738793 -1 2 0.3738793 -0.5 2 0.3738793 -0.75 2 0.3738793 0.75 2 0.3738793 -2.49973 2 0.3738793 0 2 0.3738793 -3.99973 2 0.3738793 -3.49973 2 0.3738793 1 2 0.3738793 0.25 2 0.3738793 -0.25 2 0.3738793 0.5 2 0.3738793 -1.99973 2 0.3738793 -2.99973 2 0.3738793 -2 2 0.3738793 2 0 0.3738793 2 0.75 0.3738793 2 0.25 0.3738793 2 0.5 0.3738793 2 -1 0.3738793 2 -0.25 0.3738793 2 -0.75 0.3738793 2 1 0.3738793 2 -0.5 0.3738793 2 -2 0.3738793 2 2 0.3738793 -4.99973 -0.25 0.3738793 -4.99973 1 0.3738793 -4.99973 -0.75 0.3738793 -4.99973 0 0.3738793 -4.99973 0.75 0.3738793 -4.99973 0.25 0.3738793 -4.99973 0.5 0.3738793 -4.99973 -0.5 0.3738793 -4.99973 -1 0.3738793 -4.99973 -2 0.3738793 -4.99973 2 0.3738793 0 -0.06736016 0 -0.09407478 0 0 0 0.1467587 0 0.05943375 0.1396645 0 0.09548628 -0.09413194 0 0.1141108 0.1032794 0 -0.09860295 0.1012229 0 0.02711778 -0.09911984 0 -0.07455623 -0.02787786 0 0.1127713 0 0 0.1306452 0.05046314 0 -0.0492832 0.1416522 0 0.003868877 -0.04649567 -0.2199188 -0.07062458 0.006843686 -0.2199188 0.003868877 0.1230552 -0.2199188 0.05093175 0.1174376 -0.2199188 0.02534222 -0.07164472 -0.2199188 0.07948005 -0.06769508 -0.2199188 -0.05516874 -0.01523149 -0.2199188 0.0931673 0.006843686 -0.2199188 0.09422791 0.0886259 -0.2199188 0.1073207 0.04680311 -0.2199188 -0.07421028 0.08699744 -0.2199188 -0.03515619 0.1190115 -0.2199188 - + @@ -60,9 +72,9 @@ - 0 0 1 0 -1 0 0 1 0 1 0 0 -1 0 0 + 0 0 1 0 -1 0 0 1 0 1 0 0 -1 0 0 -0.9932342 -0.04443252 -0.1072923 0.9489938 0.2970873 -0.1055938 -0.8146814 -0.5703937 -0.1046205 0.938445 -0.3323935 -0.09399878 -0.1024564 0.9888157 -0.1083804 0.55094 0.8279162 -0.1049758 -0.4660212 -0.88001 -0.09168797 0.07219845 -0.9896247 -0.1242196 0.9793028 -0.179825 -0.09289312 0.1178753 0.9875289 -0.1043654 -0.6294174 0.767827 -0.11948 -0.7583656 -0.6475265 -0.07477444 0 0 -1 -0.9932342 -0.0444321 -0.1072923 0.9489939 0.2970869 -0.1055938 -0.8146812 -0.5703938 -0.1046205 0.9384449 -0.3323934 -0.09399878 -0.1024565 0.9888157 -0.1083802 0.5509403 0.827916 -0.1049758 -0.4660212 -0.88001 -0.09168791 0.07219845 -0.9896246 -0.1242195 0.9793028 -0.1798248 -0.09289318 0.1178753 0.9875289 -0.1043655 -0.6294173 0.767827 -0.11948 -0.7583657 -0.6475264 -0.07477444 1.57155e-7 0 -1 7.44322e-7 0 -1 -1.08274e-6 0 -1 - + @@ -70,9 +82,9 @@ - 0.09179294 0.9732168 0.09210407 0.9734588 0.09179294 0.9734588 0.09179294 0.9741848 0.09210407 0.9744268 0.09179294 0.9744268 0.09054845 0.9741848 0.09085959 0.9744268 0.09054845 0.9744268 0.09054845 0.9732168 0.09085959 0.9734588 0.09054845 0.9734588 0.09054845 0.9737008 0.09085959 0.9739428 0.09054845 0.9739428 0.08992624 0.9737008 0.09023737 0.9739428 0.08992624 0.9739428 0.08992624 0.9732168 0.09023731 0.9734588 0.08992624 0.9734588 0.08992624 0.9746688 0.09023731 0.9749107 0.08992624 0.9749107 0.08992624 0.9741848 0.09023737 0.9744268 0.08992624 0.9744268 0.09179294 0.9746688 0.09210407 0.9749107 0.09179294 0.9749107 0.09117072 0.9746688 0.09148186 0.9749107 0.09117072 0.9749107 0.09117072 0.9741848 0.09148186 0.9744268 0.09117072 0.9744268 0.09179294 0.9737008 0.09210407 0.9739428 0.09179294 0.9739428 0.09117072 0.9737008 0.09148186 0.9739428 0.09117072 0.9739428 0.09117072 0.9732168 0.09148186 0.9734588 0.09117072 0.9734588 0.09117072 0.9734588 0.09148186 0.9737008 0.09117072 0.9737008 0.09085959 0.9734588 0.09117072 0.9737008 0.09085959 0.9737008 0.09085959 0.9732168 0.09117072 0.9734588 0.09085959 0.9734588 0.09117072 0.9739428 0.09148186 0.9741848 0.09117072 0.9741848 0.09085959 0.9739428 0.09117072 0.9741848 0.09085959 0.9741848 0.09085959 0.9737008 0.09117072 0.9739428 0.09085959 0.9739428 0.09148186 0.9739428 0.09179294 0.9741848 0.09148186 0.9741848 0.09148186 0.9737008 0.09179294 0.9739428 0.09148186 0.9739428 0.09085959 0.9744268 0.09117072 0.9746688 0.09085959 0.9746688 0.09085959 0.9741848 0.09117072 0.9744268 0.09085959 0.9744268 0.09117072 0.9749107 0.09148186 0.9751527 0.09117072 0.9751527 0.09085959 0.9749107 0.09117072 0.9751527 0.09085959 0.9751527 0.09085959 0.9746688 0.09117072 0.9749107 0.09085959 0.9749107 0.09179294 0.9749107 0.09210407 0.9751527 0.09179294 0.9751527 0.09148186 0.9749107 0.09179294 0.9751527 0.09148186 0.9751527 0.09148186 0.9746688 0.09179294 0.9749107 0.09148186 0.9749107 0.08992624 0.9744268 0.09023731 0.9746688 0.08992624 0.9746688 0.0896151 0.9744268 0.08992624 0.9746688 0.0896151 0.9746688 0.0896151 0.9741848 0.08992624 0.9744268 0.0896151 0.9744268 0.08992624 0.9749107 0.09023731 0.9751527 0.08992624 0.9751527 0.0896151 0.9749107 0.08992624 0.9751527 0.0896151 0.9751527 0.0896151 0.9746688 0.08992624 0.9749107 0.0896151 0.9749107 0.09054845 0.9749107 0.09085959 0.9751527 0.09054845 0.9751527 0.09023731 0.9749107 0.09054845 0.9751527 0.09023731 0.9751527 0.09023731 0.9746688 0.09054845 0.9749107 0.09023731 0.9749107 0.08992624 0.9734588 0.09023731 0.9737008 0.08992624 0.9737008 0.0896151 0.9734588 0.08992624 0.9737008 0.0896151 0.9737008 0.0896151 0.9732168 0.08992624 0.9734588 0.0896151 0.9734588 0.08992624 0.9739428 0.09023737 0.9741848 0.08992624 0.9741848 0.0896151 0.9739428 0.08992624 0.9741848 0.0896151 0.9741848 0.0896151 0.9737008 0.08992624 0.9739428 0.0896151 0.9739428 0.09054845 0.9739428 0.09085959 0.9741848 0.09054845 0.9741848 0.09023737 0.9739428 0.09054845 0.9741848 0.09023737 0.9741848 0.09023731 0.9737008 0.09054845 0.9739428 0.09023737 0.9739428 0.09023731 0.9734588 0.09054845 0.9737008 0.09023731 0.9737008 0.09023731 0.9732168 0.09054845 0.9734588 0.09023731 0.9734588 0.09054845 0.9744268 0.09085959 0.9746688 0.09054845 0.9746688 0.09023737 0.9744268 0.09054845 0.9746688 0.09023731 0.9746688 0.09023737 0.9741848 0.09054845 0.9744268 0.09023737 0.9744268 0.09179294 0.9744268 0.09210407 0.9746688 0.09179294 0.9746688 0.09148186 0.9744268 0.09179294 0.9746688 0.09148186 0.9746688 0.09148186 0.9741848 0.09179294 0.9744268 0.09148186 0.9744268 0.09179294 0.9734588 0.09210407 0.9737008 0.09179294 0.9737008 0.09148186 0.9734588 0.09179294 0.9737008 0.09148186 0.9737008 0.09148186 0.9732168 0.09179294 0.9734588 0.09148186 0.9734588 0.09085959 0.9751527 0.09054845 0.9761205 0.09054845 0.9751527 0.09117072 0.9751527 0.09085959 0.9761205 0.09085959 0.9751527 0.0896151 0.9766045 0.08992624 0.9761205 0.08992624 0.9766045 0.09210407 0.9766045 0.09179294 0.9770884 0.09179294 0.9766045 0.0896151 0.9775724 0.08992624 0.9770884 0.08992624 0.9775724 0.09023731 0.9775724 0.09054845 0.9770884 0.09054845 0.9775724 0.09023737 0.9766045 0.09054845 0.9761205 0.09054845 0.9766045 0.09023731 0.9770884 0.09054845 0.9766045 0.09054845 0.9770884 0.09054845 0.9770884 0.09085959 0.9766045 0.09085959 0.9770884 0.09054845 0.9766045 0.09085959 0.9761205 0.09085959 0.9766045 0.09023731 0.9780564 0.09054845 0.9775724 0.09054845 0.9780564 0.09054845 0.9780564 0.09085959 0.9775724 0.09085959 0.9780564 0.09054845 0.9775724 0.09085959 0.9770884 0.09085959 0.9775724 0.08992624 0.9775724 0.09023731 0.9770884 0.09023731 0.9775724 0.09117072 0.9770884 0.09085959 0.9775724 0.09085959 0.9770884 0.09117072 0.9775724 0.09085959 0.9780564 0.09085959 0.9775724 0.09148186 0.9761205 0.09117072 0.9766045 0.09117072 0.9761205 0.09117072 0.9761205 0.09085959 0.9766045 0.09085959 0.9761205 0.09117072 0.9766045 0.09085959 0.9770884 0.09085959 0.9766045 0.09210407 0.9761205 0.09179294 0.9766045 0.09179294 0.9761205 0.0896151 0.9770884 0.08992624 0.9766045 0.08992624 0.9770884 0.08992624 0.9770884 0.09023737 0.9766045 0.09023731 0.9770884 0.08992624 0.9766045 0.09023731 0.9761205 0.09023737 0.9766045 0.09054845 0.9746688 0.09085959 0.9749107 0.09054845 0.9749107 0.09179294 0.9739428 0.09210407 0.9741848 0.09179294 0.9741848 0.09117072 0.9744268 0.09148186 0.9746688 0.09117072 0.9746688 0.09054845 0.9734588 0.09085959 0.9737008 0.09054845 0.9737008 0.09210407 0.9775724 0.09179294 0.9780564 0.09179294 0.9775724 0.09148186 0.9766045 0.09117072 0.9770884 0.09117072 0.9766045 0.09148186 0.9775724 0.09117072 0.9780564 0.09117072 0.9775724 0.0896151 0.9780564 0.08992624 0.9775724 0.08992624 0.9780564 0.08992624 0.9780564 0.09023731 0.9775724 0.09023731 0.9780564 0.09148186 0.9770884 0.09117072 0.9775724 0.09117072 0.9770884 0.09179294 0.9761205 0.09148186 0.9766045 0.09148186 0.9761205 0.09179294 0.9766045 0.09148186 0.9770884 0.09148186 0.9766045 0.09210407 0.9770884 0.09179294 0.9775724 0.09179294 0.9770884 0.09179294 0.9770884 0.09148186 0.9775724 0.09148186 0.9770884 0.09179294 0.9775724 0.09148186 0.9780564 0.09148186 0.9775724 0.09349995 0.9732168 0.09396523 0.9734588 0.09349995 0.9734588 0.09256935 0.9734588 0.09210407 0.9732168 0.09256935 0.9732168 0.09489583 0.9734588 0.09443056 0.9732168 0.09489583 0.9732168 0.09489583 0.9744268 0.09443056 0.9741848 0.09489583 0.9741848 0.09349995 0.9749107 0.09396523 0.9751527 0.09349995 0.9751527 0.09443056 0.9734588 0.09396523 0.9732168 0.09443056 0.9732168 0.09675699 0.9741848 0.09629172 0.9739428 0.09675699 0.9739428 0.09582638 0.9741845 0.09536111 0.9732168 0.09582638 0.9732168 0.09256935 0.9744268 0.09210407 0.9741848 0.09256935 0.9741848 0.09303468 0.9746688 0.09349995 0.9751527 0.09303468 0.9751527 0.09443056 0.9744268 0.09396523 0.9741848 0.09443056 0.9741848 0.09256935 0.9739428 0.09210407 0.9737008 0.09256935 0.9737008 0.09349995 0.9739428 0.09396523 0.9741848 0.09349995 0.9741848 0.09349995 0.9744268 0.09396523 0.9746688 0.09349995 0.9746688 0.09582638 0.9741848 0.09629172 0.9744268 0.09582638 0.9744268 0.09629172 0.9739428 0.09582638 0.9737008 0.09629172 0.9737008 0.09443056 0.9739428 0.09396523 0.9737008 0.09443056 0.9737008 0.09256935 0.9749107 0.09210407 0.9746688 0.09256935 0.9746688 0.09443056 0.9749107 0.09396523 0.9746688 0.09443056 0.9746688 0.09349995 0.9734588 0.09396523 0.9737008 0.09349995 0.9737008 0.09489583 0.9751527 0.09443056 0.9749107 0.09489583 0.9749107 0.09675699 0.9734588 0.09629172 0.9732168 0.09675699 0.9732168 0.09303468 0.9737008 0.09256935 0.9732168 0.09303468 0.9732168 0.09675699 0.9746688 0.09629172 0.9744268 0.09675699 0.9744268 0.09489583 0.9746688 0.09443056 0.9744268 0.09489583 0.9744268 0.09349995 0.9737008 0.09396523 0.9739428 0.09349995 0.9739428 0.09303468 0.9746688 0.09256935 0.9741848 0.09303468 0.9741848 0.09629172 0.9737008 0.09582638 0.9734588 0.09629172 0.9734588 0.09489583 0.9737008 0.09443056 0.9734588 0.09489583 0.9734588 0.09256935 0.9741848 0.09210407 0.9739428 0.09256935 0.9739428 0.09489583 0.9732168 0.09536111 0.9741845 0.09489583 0.9741845 0.09349995 0.9746688 0.09396523 0.9749107 0.09349995 0.9749107 0.09675699 0.9744268 0.09629172 0.9741848 0.09675699 0.9741848 0.09349995 0.9741848 0.09396523 0.9744268 0.09349995 0.9744268 0.09582638 0.9744268 0.09629172 0.9746688 0.09582638 0.9746688 0.09303468 0.9741848 0.09349995 0.9746688 0.09303468 0.9746688 0.09489583 0.9741848 0.09443056 0.9739428 0.09489583 0.9739428 0.09256935 0.9746688 0.09210407 0.9744268 0.09256935 0.9744268 0.09256935 0.9737008 0.09210407 0.9734588 0.09256935 0.9734588 0.09443056 0.9737008 0.09396523 0.9734588 0.09443056 0.9734588 0.09675699 0.9739428 0.09629172 0.9737008 0.09675699 0.9737008 0.09443056 0.9746688 0.09396523 0.9744268 0.09443056 0.9744268 0.09443056 0.9751527 0.09396523 0.9749107 0.09443056 0.9749107 0.09303468 0.9732168 0.09349995 0.9737008 0.09303468 0.9737008 0.09443056 0.9741848 0.09396523 0.9739428 0.09443056 0.9739428 0.09489583 0.9749107 0.09443056 0.9746688 0.09489583 0.9746688 0.09675699 0.9737008 0.09629172 0.9734588 0.09675699 0.9734588 0.09582638 0.9739428 0.09629172 0.9741848 0.09582638 0.9741848 0.09303468 0.9741848 0.09256935 0.9737008 0.09303468 0.9737008 0.09489583 0.9739428 0.09443056 0.9737008 0.09489583 0.9737008 0.09256935 0.9751527 0.09210407 0.9749107 0.09256935 0.9749107 0.09629172 0.9734588 0.09582638 0.9732168 0.09629172 0.9732168 0.09303468 0.9751527 0.09256935 0.9746688 0.09303468 0.9746688 0.09303468 0.9737008 0.09349995 0.9741848 0.09303468 0.9741848 0.09303742 0.9722489 0.09272634 0.9732168 0.09272634 0.9722489 0.09272634 0.9722489 0.09241521 0.9732168 0.09241521 0.9722489 0.09334856 0.9722489 0.09303742 0.9732168 0.09303742 0.9722489 0.09148186 0.9722489 0.09117072 0.9732168 0.09117072 0.9722489 0.09179294 0.9722489 0.09148186 0.9732168 0.09148186 0.9722489 0.09117072 0.9722489 0.09085959 0.9732168 0.09085959 0.9722489 0.09085959 0.9715229 0.0896151 0.9712809 0.09085959 0.9712809 0.09085959 0.9710389 0.0896151 0.970797 0.09085959 0.970797 0.09770429 0.970313 0.09832656 0.969345 0.09832656 0.970313 0.09085959 0.970797 0.0896151 0.970555 0.09085959 0.970555 0.09085959 0.9722489 0.0896151 0.9720069 0.09085959 0.9720069 0.0964598 0.970313 0.09708207 0.969345 0.09708207 0.970313 0.09085959 0.9732168 0.0896151 0.9722489 0.09085959 0.9722489 0.09583759 0.970313 0.0964598 0.969345 0.0964598 0.970313 0.09708207 0.970313 0.09770429 0.969345 0.09770429 0.970313 0.09085959 0.9712809 0.0896151 0.9710389 0.09085959 0.9710389 0.09085959 0.9717649 0.0896151 0.9715229 0.09085959 0.9715229 0.09085959 0.9720069 0.0896151 0.9717649 0.09085959 0.9717649 0.09085959 0.970555 0.0896151 0.970313 0.09085959 0.970313 0.09832656 0.9722489 0.09770429 0.9732168 0.09770429 0.9722489 0.09334856 0.970797 0.0945931 0.9710389 0.09334856 0.9710389 0.09334856 0.9720069 0.0945931 0.9722489 0.09334856 0.9722489 0.09334856 0.9715229 0.0945931 0.9717649 0.09334856 0.9717649 0.09334856 0.9717649 0.0945931 0.9720069 0.09334856 0.9720069 0.09770429 0.9722489 0.09708207 0.9732168 0.09708207 0.9722489 0.09334856 0.970555 0.0945931 0.970797 0.09334856 0.970797 0.09708207 0.9722489 0.0964598 0.9732168 0.0964598 0.9722489 0.0964598 0.9722489 0.09583759 0.9732168 0.09583759 0.9722489 0.09334856 0.9722489 0.0945931 0.9732168 0.09334856 0.9732168 0.09334856 0.9710389 0.0945931 0.9712809 0.09334856 0.9712809 0.09334856 0.970313 0.0945931 0.970555 0.09334856 0.970555 0.09334856 0.9712809 0.0945931 0.9715229 0.09334856 0.9715229 0.09272634 0.970313 0.09303742 0.969345 0.09303742 0.970313 0.09148186 0.970313 0.09179294 0.969345 0.09179294 0.970313 0.09241521 0.970313 0.09272634 0.969345 0.09272634 0.970313 0.09210407 0.970313 0.09241521 0.969345 0.09241521 0.970313 0.0896151 0.970313 0.09085959 0.969345 0.09085959 0.970313 0.09117072 0.970313 0.09148186 0.969345 0.09148186 0.970313 0.09334856 0.970313 0.0945931 0.969345 0.0945931 0.970313 0.09179294 0.970313 0.09210407 0.969345 0.09210407 0.970313 0.09303742 0.970313 0.09334856 0.969345 0.09334856 0.970313 0.09085959 0.970313 0.09117072 0.969345 0.09117072 0.970313 0.09583759 0.9720069 0.0945931 0.9717649 0.09583759 0.9717649 0.09583759 0.9712809 0.0945931 0.9710389 0.09583759 0.9710389 0.09583759 0.970797 0.0945931 0.970555 0.09583759 0.970555 0.09583759 0.9710389 0.0945931 0.970797 0.09583759 0.970797 0.09583759 0.9715229 0.0945931 0.9712809 0.09583759 0.9712809 0.09583759 0.970555 0.0945931 0.970313 0.09583759 0.970313 0.09583759 0.9717649 0.0945931 0.9715229 0.09583759 0.9715229 0.09583759 0.9722489 0.0945931 0.9720069 0.09583759 0.9720069 0.09583759 0.9732168 0.0945931 0.9722489 0.09583759 0.9722489 0.09583759 0.970313 0.0945931 0.969345 0.09583759 0.969345 0.09179294 0.9732168 0.09210407 0.9732168 0.09210407 0.9734588 0.09179294 0.9741848 0.09210407 0.9741848 0.09210407 0.9744268 0.09054845 0.9741848 0.09085959 0.9741848 0.09085959 0.9744268 0.09054845 0.9732168 0.09085959 0.9732168 0.09085959 0.9734588 0.09054845 0.9737008 0.09085959 0.9737008 0.09085959 0.9739428 0.08992624 0.9737008 0.09023731 0.9737008 0.09023737 0.9739428 0.08992624 0.9732168 0.09023731 0.9732168 0.09023731 0.9734588 0.08992624 0.9746688 0.09023731 0.9746688 0.09023731 0.9749107 0.08992624 0.9741848 0.09023737 0.9741848 0.09023737 0.9744268 0.09179294 0.9746688 0.09210407 0.9746688 0.09210407 0.9749107 0.09117072 0.9746688 0.09148186 0.9746688 0.09148186 0.9749107 0.09117072 0.9741848 0.09148186 0.9741848 0.09148186 0.9744268 0.09179294 0.9737008 0.09210407 0.9737008 0.09210407 0.9739428 0.09117072 0.9737008 0.09148186 0.9737008 0.09148186 0.9739428 0.09117072 0.9732168 0.09148186 0.9732168 0.09148186 0.9734588 0.09117072 0.9734588 0.09148186 0.9734588 0.09148186 0.9737008 0.09085959 0.9734588 0.09117072 0.9734588 0.09117072 0.9737008 0.09085959 0.9732168 0.09117072 0.9732168 0.09117072 0.9734588 0.09117072 0.9739428 0.09148186 0.9739428 0.09148186 0.9741848 0.09085959 0.9739428 0.09117072 0.9739428 0.09117072 0.9741848 0.09085959 0.9737008 0.09117072 0.9737008 0.09117072 0.9739428 0.09148186 0.9739428 0.09179294 0.9739428 0.09179294 0.9741848 0.09148186 0.9737008 0.09179294 0.9737008 0.09179294 0.9739428 0.09085959 0.9744268 0.09117072 0.9744268 0.09117072 0.9746688 0.09085959 0.9741848 0.09117072 0.9741848 0.09117072 0.9744268 0.09117072 0.9749107 0.09148186 0.9749107 0.09148186 0.9751527 0.09085959 0.9749107 0.09117072 0.9749107 0.09117072 0.9751527 0.09085959 0.9746688 0.09117072 0.9746688 0.09117072 0.9749107 0.09179294 0.9749107 0.09210407 0.9749107 0.09210407 0.9751527 0.09148186 0.9749107 0.09179294 0.9749107 0.09179294 0.9751527 0.09148186 0.9746688 0.09179294 0.9746688 0.09179294 0.9749107 0.08992624 0.9744268 0.09023737 0.9744268 0.09023731 0.9746688 0.0896151 0.9744268 0.08992624 0.9744268 0.08992624 0.9746688 0.0896151 0.9741848 0.08992624 0.9741848 0.08992624 0.9744268 0.08992624 0.9749107 0.09023731 0.9749107 0.09023731 0.9751527 0.0896151 0.9749107 0.08992624 0.9749107 0.08992624 0.9751527 0.0896151 0.9746688 0.08992624 0.9746688 0.08992624 0.9749107 0.09054845 0.9749107 0.09085959 0.9749107 0.09085959 0.9751527 0.09023731 0.9749107 0.09054845 0.9749107 0.09054845 0.9751527 0.09023731 0.9746688 0.09054845 0.9746688 0.09054845 0.9749107 0.08992624 0.9734588 0.09023731 0.9734588 0.09023731 0.9737008 0.0896151 0.9734588 0.08992624 0.9734588 0.08992624 0.9737008 0.0896151 0.9732168 0.08992624 0.9732168 0.08992624 0.9734588 0.08992624 0.9739428 0.09023737 0.9739428 0.09023737 0.9741848 0.0896151 0.9739428 0.08992624 0.9739428 0.08992624 0.9741848 0.0896151 0.9737008 0.08992624 0.9737008 0.08992624 0.9739428 0.09054845 0.9739428 0.09085959 0.9739428 0.09085959 0.9741848 0.09023737 0.9739428 0.09054845 0.9739428 0.09054845 0.9741848 0.09023731 0.9737008 0.09054845 0.9737008 0.09054845 0.9739428 0.09023731 0.9734588 0.09054845 0.9734588 0.09054845 0.9737008 0.09023731 0.9732168 0.09054845 0.9732168 0.09054845 0.9734588 0.09054845 0.9744268 0.09085959 0.9744268 0.09085959 0.9746688 0.09023737 0.9744268 0.09054845 0.9744268 0.09054845 0.9746688 0.09023737 0.9741848 0.09054845 0.9741848 0.09054845 0.9744268 0.09179294 0.9744268 0.09210407 0.9744268 0.09210407 0.9746688 0.09148186 0.9744268 0.09179294 0.9744268 0.09179294 0.9746688 0.09148186 0.9741848 0.09179294 0.9741848 0.09179294 0.9744268 0.09179294 0.9734588 0.09210407 0.9734588 0.09210407 0.9737008 0.09148186 0.9734588 0.09179294 0.9734588 0.09179294 0.9737008 0.09148186 0.9732168 0.09179294 0.9732168 0.09179294 0.9734588 0.09085959 0.9751527 0.09085959 0.9761205 0.09054845 0.9761205 0.09117072 0.9751527 0.09117072 0.9761205 0.09085959 0.9761205 0.0896151 0.9766045 0.0896151 0.9761205 0.08992624 0.9761205 0.09210407 0.9766045 0.09210407 0.9770884 0.09179294 0.9770884 0.0896151 0.9775724 0.0896151 0.9770884 0.08992624 0.9770884 0.09023731 0.9775724 0.09023731 0.9770884 0.09054845 0.9770884 0.09023737 0.9766045 0.09023731 0.9761205 0.09054845 0.9761205 0.09023731 0.9770884 0.09023737 0.9766045 0.09054845 0.9766045 0.09054845 0.9770884 0.09054845 0.9766045 0.09085959 0.9766045 0.09054845 0.9766045 0.09054845 0.9761205 0.09085959 0.9761205 0.09023731 0.9780564 0.09023731 0.9775724 0.09054845 0.9775724 0.09054845 0.9780564 0.09054845 0.9775724 0.09085959 0.9775724 0.09054845 0.9775724 0.09054845 0.9770884 0.09085959 0.9770884 0.08992624 0.9775724 0.08992624 0.9770884 0.09023731 0.9770884 0.09117072 0.9770884 0.09117072 0.9775724 0.09085959 0.9775724 0.09117072 0.9775724 0.09117072 0.9780564 0.09085959 0.9780564 0.09148186 0.9761205 0.09148186 0.9766045 0.09117072 0.9766045 0.09117072 0.9761205 0.09117072 0.9766045 0.09085959 0.9766045 0.09117072 0.9766045 0.09117072 0.9770884 0.09085959 0.9770884 0.09210407 0.9761205 0.09210407 0.9766045 0.09179294 0.9766045 0.0896151 0.9770884 0.0896151 0.9766045 0.08992624 0.9766045 0.08992624 0.9770884 0.08992624 0.9766045 0.09023737 0.9766045 0.08992624 0.9766045 0.08992624 0.9761205 0.09023731 0.9761205 0.09054845 0.9746688 0.09085959 0.9746688 0.09085959 0.9749107 0.09179294 0.9739428 0.09210407 0.9739428 0.09210407 0.9741848 0.09117072 0.9744268 0.09148186 0.9744268 0.09148186 0.9746688 0.09054845 0.9734588 0.09085959 0.9734588 0.09085959 0.9737008 0.09210407 0.9775724 0.09210407 0.9780564 0.09179294 0.9780564 0.09148186 0.9766045 0.09148186 0.9770884 0.09117072 0.9770884 0.09148186 0.9775724 0.09148186 0.9780564 0.09117072 0.9780564 0.0896151 0.9780564 0.0896151 0.9775724 0.08992624 0.9775724 0.08992624 0.9780564 0.08992624 0.9775724 0.09023731 0.9775724 0.09148186 0.9770884 0.09148186 0.9775724 0.09117072 0.9775724 0.09179294 0.9761205 0.09179294 0.9766045 0.09148186 0.9766045 0.09179294 0.9766045 0.09179294 0.9770884 0.09148186 0.9770884 0.09210407 0.9770884 0.09210407 0.9775724 0.09179294 0.9775724 0.09179294 0.9770884 0.09179294 0.9775724 0.09148186 0.9775724 0.09179294 0.9775724 0.09179294 0.9780564 0.09148186 0.9780564 0.09349995 0.9732168 0.09396523 0.9732168 0.09396523 0.9734588 0.09256935 0.9734588 0.09210407 0.9734588 0.09210407 0.9732168 0.09489583 0.9734588 0.09443056 0.9734588 0.09443056 0.9732168 0.09489583 0.9744268 0.09443056 0.9744268 0.09443056 0.9741848 0.09349995 0.9749107 0.09396523 0.9749107 0.09396523 0.9751527 0.09443056 0.9734588 0.09396523 0.9734588 0.09396523 0.9732168 0.09675699 0.9741848 0.09629172 0.9741848 0.09629172 0.9739428 0.09582638 0.9741845 0.09536111 0.9741845 0.09536111 0.9732168 0.09256935 0.9744268 0.09210407 0.9744268 0.09210407 0.9741848 0.09303468 0.9746688 0.09349995 0.9746688 0.09349995 0.9751527 0.09443056 0.9744268 0.09396523 0.9744268 0.09396523 0.9741848 0.09256935 0.9739428 0.09210407 0.9739428 0.09210407 0.9737008 0.09349995 0.9739428 0.09396523 0.9739428 0.09396523 0.9741848 0.09349995 0.9744268 0.09396523 0.9744268 0.09396523 0.9746688 0.09582638 0.9741848 0.09629172 0.9741848 0.09629172 0.9744268 0.09629172 0.9739428 0.09582638 0.9739428 0.09582638 0.9737008 0.09443056 0.9739428 0.09396523 0.9739428 0.09396523 0.9737008 0.09256935 0.9749107 0.09210407 0.9749107 0.09210407 0.9746688 0.09443056 0.9749107 0.09396523 0.9749107 0.09396523 0.9746688 0.09349995 0.9734588 0.09396523 0.9734588 0.09396523 0.9737008 0.09489583 0.9751527 0.09443056 0.9751527 0.09443056 0.9749107 0.09675699 0.9734588 0.09629172 0.9734588 0.09629172 0.9732168 0.09303468 0.9737008 0.09256935 0.9737008 0.09256935 0.9732168 0.09675699 0.9746688 0.09629172 0.9746688 0.09629172 0.9744268 0.09489583 0.9746688 0.09443056 0.9746688 0.09443056 0.9744268 0.09349995 0.9737008 0.09396523 0.9737008 0.09396523 0.9739428 0.09303468 0.9746688 0.09256935 0.9746688 0.09256935 0.9741848 0.09629172 0.9737008 0.09582638 0.9737008 0.09582638 0.9734588 0.09489583 0.9737008 0.09443056 0.9737008 0.09443056 0.9734588 0.09256935 0.9741848 0.09210407 0.9741848 0.09210407 0.9739428 0.09489583 0.9732168 0.09536111 0.9732168 0.09536111 0.9741845 0.09349995 0.9746688 0.09396523 0.9746688 0.09396523 0.9749107 0.09675699 0.9744268 0.09629172 0.9744268 0.09629172 0.9741848 0.09349995 0.9741848 0.09396523 0.9741848 0.09396523 0.9744268 0.09582638 0.9744268 0.09629172 0.9744268 0.09629172 0.9746688 0.09303468 0.9741848 0.09349995 0.9741848 0.09349995 0.9746688 0.09489583 0.9741848 0.09443056 0.9741848 0.09443056 0.9739428 0.09256935 0.9746688 0.09210407 0.9746688 0.09210407 0.9744268 0.09256935 0.9737008 0.09210407 0.9737008 0.09210407 0.9734588 0.09443056 0.9737008 0.09396523 0.9737008 0.09396523 0.9734588 0.09675699 0.9739428 0.09629172 0.9739428 0.09629172 0.9737008 0.09443056 0.9746688 0.09396523 0.9746688 0.09396523 0.9744268 0.09443056 0.9751527 0.09396523 0.9751527 0.09396523 0.9749107 0.09303468 0.9732168 0.09349995 0.9732168 0.09349995 0.9737008 0.09443056 0.9741848 0.09396523 0.9741848 0.09396523 0.9739428 0.09489583 0.9749107 0.09443056 0.9749107 0.09443056 0.9746688 0.09675699 0.9737008 0.09629172 0.9737008 0.09629172 0.9734588 0.09582638 0.9739428 0.09629172 0.9739428 0.09629172 0.9741848 0.09303468 0.9741848 0.09256935 0.9741848 0.09256935 0.9737008 0.09489583 0.9739428 0.09443056 0.9739428 0.09443056 0.9737008 0.09256935 0.9751527 0.09210407 0.9751527 0.09210407 0.9749107 0.09629172 0.9734588 0.09582638 0.9734588 0.09582638 0.9732168 0.09303468 0.9751527 0.09256935 0.9751527 0.09256935 0.9746688 0.09303468 0.9737008 0.09349995 0.9737008 0.09349995 0.9741848 0.09303742 0.9722489 0.09303742 0.9732168 0.09272634 0.9732168 0.09272634 0.9722489 0.09272634 0.9732168 0.09241521 0.9732168 0.09334856 0.9722489 0.09334856 0.9732168 0.09303742 0.9732168 0.09148186 0.9722489 0.09148186 0.9732168 0.09117072 0.9732168 0.09179294 0.9722489 0.09179294 0.9732168 0.09148186 0.9732168 0.09117072 0.9722489 0.09117072 0.9732168 0.09085959 0.9732168 0.09085959 0.9715229 0.0896151 0.9715229 0.0896151 0.9712809 0.09085959 0.9710389 0.0896151 0.9710389 0.0896151 0.970797 0.09770429 0.970313 0.09770429 0.969345 0.09832656 0.969345 0.09085959 0.970797 0.0896151 0.970797 0.0896151 0.970555 0.09085959 0.9722489 0.0896151 0.9722489 0.0896151 0.9720069 0.0964598 0.970313 0.0964598 0.969345 0.09708207 0.969345 0.09085959 0.9732168 0.0896151 0.9732168 0.0896151 0.9722489 0.09583759 0.970313 0.09583759 0.969345 0.0964598 0.969345 0.09708207 0.970313 0.09708207 0.969345 0.09770429 0.969345 0.09085959 0.9712809 0.0896151 0.9712809 0.0896151 0.9710389 0.09085959 0.9717649 0.0896151 0.9717649 0.0896151 0.9715229 0.09085959 0.9720069 0.0896151 0.9720069 0.0896151 0.9717649 0.09085959 0.970555 0.0896151 0.970555 0.0896151 0.970313 0.09832656 0.9722489 0.09832656 0.9732168 0.09770429 0.9732168 0.09334856 0.970797 0.0945931 0.970797 0.0945931 0.9710389 0.09334856 0.9720069 0.0945931 0.9720069 0.0945931 0.9722489 0.09334856 0.9715229 0.0945931 0.9715229 0.0945931 0.9717649 0.09334856 0.9717649 0.0945931 0.9717649 0.0945931 0.9720069 0.09770429 0.9722489 0.09770429 0.9732168 0.09708207 0.9732168 0.09334856 0.970555 0.0945931 0.970555 0.0945931 0.970797 0.09708207 0.9722489 0.09708207 0.9732168 0.0964598 0.9732168 0.0964598 0.9722489 0.0964598 0.9732168 0.09583759 0.9732168 0.09334856 0.9722489 0.0945931 0.9722489 0.0945931 0.9732168 0.09334856 0.9710389 0.0945931 0.9710389 0.0945931 0.9712809 0.09334856 0.970313 0.0945931 0.970313 0.0945931 0.970555 0.09334856 0.9712809 0.0945931 0.9712809 0.0945931 0.9715229 0.09272634 0.970313 0.09272634 0.969345 0.09303742 0.969345 0.09148186 0.970313 0.09148186 0.969345 0.09179294 0.969345 0.09241521 0.970313 0.09241521 0.969345 0.09272634 0.969345 0.09210407 0.970313 0.09210407 0.969345 0.09241521 0.969345 0.0896151 0.970313 0.0896151 0.969345 0.09085959 0.969345 0.09117072 0.970313 0.09117072 0.969345 0.09148186 0.969345 0.09334856 0.970313 0.09334856 0.969345 0.0945931 0.969345 0.09179294 0.970313 0.09179294 0.969345 0.09210407 0.969345 0.09303742 0.970313 0.09303742 0.969345 0.09334856 0.969345 0.09085959 0.970313 0.09085959 0.969345 0.09117072 0.969345 0.09583759 0.9720069 0.0945931 0.9720069 0.0945931 0.9717649 0.09583759 0.9712809 0.0945931 0.9712809 0.0945931 0.9710389 0.09583759 0.970797 0.0945931 0.970797 0.0945931 0.970555 0.09583759 0.9710389 0.0945931 0.9710389 0.0945931 0.970797 0.09583759 0.9715229 0.0945931 0.9715229 0.0945931 0.9712809 0.09583759 0.970555 0.0945931 0.970555 0.0945931 0.970313 0.09583759 0.9717649 0.0945931 0.9717649 0.0945931 0.9715229 0.09583759 0.9722489 0.0945931 0.9722489 0.0945931 0.9720069 0.09583759 0.9732168 0.0945931 0.9732168 0.0945931 0.9722489 0.09583759 0.970313 0.0945931 0.970313 0.0945931 0.969345 + 0.08769345 0.9632831 0.08806288 0.9635704 0.08769345 0.9635704 0.08769345 0.9644325 0.08806288 0.9647199 0.08769345 0.9647199 0.08621561 0.9644325 0.0864855 0.9644325 0.08654385 0.9645182 0.08621561 0.9632831 0.0865851 0.9635704 0.08621561 0.9635704 0.08621561 0.9638578 0.08658504 0.9641451 0.08621561 0.9641451 0.08547669 0.9638578 0.08584618 0.9641451 0.08547669 0.9641451 0.08547669 0.9632831 0.08584612 0.9635704 0.08547669 0.9635704 0.08547669 0.9650072 0.08584612 0.9652946 0.08547669 0.9652946 0.08547669 0.9644325 0.08584618 0.9647199 0.08547669 0.9647199 0.08769345 0.9650072 0.08806288 0.9652946 0.08769345 0.9652946 0.08695453 0.9650072 0.08732396 0.9652946 0.08695453 0.9652946 0.08695453 0.9644325 0.08732396 0.9647199 0.08695453 0.9647199 0.08769345 0.9638578 0.08806288 0.9641451 0.08769345 0.9641451 0.08695453 0.9638578 0.08732396 0.9641451 0.08695453 0.9641451 0.08695453 0.9632831 0.08732396 0.9635704 0.08695453 0.9635704 0.08695453 0.9635704 0.08732396 0.9638578 0.08695453 0.9638578 0.0865851 0.9635704 0.08695453 0.9638578 0.08658504 0.9638578 0.0865851 0.9632831 0.08695453 0.9635704 0.0865851 0.9635704 0.08695453 0.9641451 0.08732396 0.9644325 0.08695453 0.9644325 0.08658504 0.9638578 0.08695453 0.9641451 0.08658504 0.9641451 0.08732396 0.9641451 0.08769345 0.9644325 0.08732396 0.9644325 0.08732396 0.9638578 0.08769345 0.9641451 0.08732396 0.9641451 0.08658504 0.9647199 0.08695453 0.9650072 0.08658504 0.9650072 0.08695453 0.9641451 0.08679145 0.9643642 0.08673769 0.9643014 0.08695453 0.9652946 0.08732396 0.9655819 0.08695453 0.9655819 0.08658504 0.9652946 0.08695453 0.9655819 0.08658504 0.9655819 0.08658504 0.9650072 0.08695453 0.9652946 0.08658504 0.9652946 0.08769345 0.9652946 0.08806288 0.9655819 0.08769345 0.9655819 0.08732396 0.9652946 0.08769345 0.9655819 0.08732396 0.9655819 0.08732402 0.9650072 0.08769345 0.9652946 0.08732396 0.9652946 0.08547669 0.9647199 0.08584612 0.9650072 0.08547669 0.9650072 0.08510726 0.9647199 0.08547669 0.9650072 0.08510726 0.9650072 0.08510726 0.9644325 0.08547669 0.9647199 0.08510726 0.9647199 0.08547669 0.9652946 0.08584612 0.9655819 0.08547669 0.9655819 0.08510726 0.9652946 0.08547669 0.9655819 0.08510726 0.9655819 0.08510726 0.9650072 0.08547669 0.9652946 0.08510726 0.9652946 0.08621561 0.9652946 0.08658504 0.9655819 0.08621561 0.9655819 0.08584612 0.9652946 0.08621561 0.9655819 0.08584612 0.9655819 0.08584612 0.9650072 0.08621561 0.9652946 0.08584612 0.9652946 0.08547669 0.9635704 0.08584612 0.9638578 0.08547669 0.9638578 0.08510726 0.9635704 0.08547669 0.9638578 0.08510726 0.9638578 0.08510726 0.9632831 0.08547669 0.9635704 0.08510726 0.9635704 0.08547669 0.9641451 0.08584618 0.9644325 0.08547669 0.9644325 0.08510726 0.9641451 0.08547669 0.9644325 0.08510726 0.9644325 0.08510726 0.9638578 0.08547669 0.9641451 0.08510726 0.9641451 0.08695453 0.9647199 0.08673471 0.9645459 0.08679437 0.9644891 0.08584618 0.9641451 0.08621561 0.9644325 0.08584618 0.9644325 0.08584612 0.9638578 0.08621561 0.9641451 0.08584618 0.9641451 0.08584612 0.9635704 0.08621561 0.9638578 0.08584612 0.9638578 0.08584612 0.9632831 0.08621561 0.9635704 0.08584612 0.9635704 0.08621561 0.9647199 0.08658504 0.9650072 0.08621561 0.9650072 0.08584618 0.9647199 0.08621561 0.9650072 0.08584612 0.9650072 0.08584618 0.9644325 0.08621561 0.9647199 0.08584618 0.9647199 0.08769345 0.9647199 0.08806288 0.9650072 0.08769345 0.9650072 0.08732396 0.9647199 0.08769345 0.9650072 0.08732402 0.9650072 0.08732396 0.9644325 0.08769345 0.9647199 0.08732396 0.9647199 0.08769345 0.9635704 0.08806288 0.9638578 0.08769345 0.9638578 0.08732396 0.9635704 0.08769345 0.9638578 0.08732396 0.9638578 0.08732396 0.9632831 0.08769345 0.9635704 0.08732396 0.9635704 0.08658504 0.9655819 0.08621561 0.9667311 0.08621561 0.9655819 0.08695453 0.9655819 0.08658504 0.9667311 0.08658504 0.9655819 0.08510726 0.9673058 0.08547669 0.9667311 0.08547669 0.9673058 0.08806288 0.9673058 0.08769345 0.9678805 0.08769345 0.9673058 0.08510726 0.9684552 0.08547669 0.9678805 0.08547669 0.9684552 0.08584612 0.9684552 0.08621561 0.9678805 0.08621561 0.9684552 0.08584618 0.9673058 0.08621561 0.9667311 0.08621561 0.9673058 0.08584612 0.9678805 0.08621561 0.9673058 0.08621561 0.9678805 0.08621561 0.9678805 0.08658504 0.9673058 0.08658504 0.9678805 0.08621561 0.9673058 0.08658504 0.9667311 0.08658504 0.9673058 0.08584612 0.96903 0.08621561 0.9684552 0.08621561 0.96903 0.08621561 0.96903 0.08658504 0.9684552 0.0865851 0.96903 0.08621561 0.9684552 0.08658504 0.9678805 0.08658504 0.9684552 0.08547669 0.9684552 0.08584612 0.9678805 0.08584612 0.9684552 0.08695453 0.9678805 0.08658504 0.9684552 0.08658504 0.9678805 0.08695453 0.9684552 0.0865851 0.96903 0.08658504 0.9684552 0.08732396 0.9667311 0.08695453 0.9673058 0.08695453 0.9667311 0.08695453 0.9667311 0.08658504 0.9673058 0.08658504 0.9667311 0.08695453 0.9673058 0.08658504 0.9678805 0.08658504 0.9673058 0.08806288 0.9667311 0.08769345 0.9673058 0.08769345 0.9667311 0.08510726 0.9678805 0.08547669 0.9673058 0.08547669 0.9678805 0.08547669 0.9678805 0.08584618 0.9673058 0.08584612 0.9678805 0.08547669 0.9673058 0.08584612 0.9667311 0.08584618 0.9673058 0.08621561 0.9650072 0.08658504 0.9652946 0.08621561 0.9652946 0.08769345 0.9641451 0.08806288 0.9644325 0.08769345 0.9644325 0.08695453 0.9647199 0.08732402 0.9650072 0.08695453 0.9650072 0.08621561 0.9635704 0.08658504 0.9638578 0.08621561 0.9638578 0.08806288 0.9684552 0.08769345 0.96903 0.08769345 0.9684552 0.08732396 0.9673058 0.08695453 0.9678805 0.08695453 0.9673058 0.08732396 0.9684552 0.08695453 0.96903 0.08695453 0.9684552 0.08510726 0.96903 0.08547669 0.9684552 0.08547669 0.96903 0.08547669 0.96903 0.08584612 0.9684552 0.08584612 0.96903 0.08732402 0.9678805 0.08695453 0.9684552 0.08695453 0.9678805 0.08769345 0.9667311 0.08732396 0.9673058 0.08732396 0.9667311 0.08769345 0.9673058 0.08732402 0.9678805 0.08732396 0.9673058 0.08806288 0.9678805 0.08769345 0.9684552 0.08769345 0.9678805 0.08769345 0.9678805 0.08732396 0.9684552 0.08732402 0.9678805 0.08769345 0.9684552 0.08732396 0.96903 0.08732396 0.9684552 0.09082525 0.9632831 0.09137773 0.9635705 0.09082525 0.9635703 0.08916789 0.9652946 0.08972036 0.9655819 0.08916789 0.9655819 0.09027278 0.9635705 0.08972036 0.9632831 0.09027278 0.9632831 0.09027278 0.9647198 0.08972036 0.9644324 0.09027278 0.9644325 0.09082525 0.9652939 0.09137773 0.9655813 0.09082525 0.9655812 0.08861541 0.9635704 0.08806288 0.9632831 0.08861541 0.9632831 0.09303522 0.9635704 0.09248268 0.9632831 0.09303522 0.9632831 0.09193021 0.9644321 0.09137773 0.9632831 0.09193021 0.9632831 0.08916789 0.9641451 0.08972036 0.9644325 0.08916789 0.9644325 0.09082525 0.9638577 0.09027278 0.9632831 0.09082525 0.9632832 0.08861541 0.9647198 0.08806288 0.9644325 0.08861541 0.9644325 0.08916789 0.9647199 0.08972036 0.9650072 0.08916789 0.9650072 0.09082525 0.9641448 0.09137773 0.9644322 0.09082525 0.9644321 0.09082525 0.9647193 0.09137773 0.9650067 0.09082525 0.9650066 0.09303522 0.9644325 0.09358763 0.9647199 0.09303522 0.9647198 0.09358763 0.9641452 0.09303522 0.9638577 0.09358763 0.9638578 0.08861541 0.9641451 0.08806288 0.9638578 0.08861541 0.9638578 0.08916789 0.9635704 0.08972036 0.9638578 0.08916789 0.9638578 0.08861541 0.9652946 0.08806288 0.9650072 0.08861541 0.9650072 0.09082525 0.9635703 0.09137773 0.9638578 0.09082525 0.9638575 0.09027278 0.9655818 0.08972036 0.9652944 0.09027278 0.9652945 0.09248268 0.9647199 0.09303522 0.9650072 0.09248268 0.9650072 0.08916789 0.9638578 0.08861541 0.9632831 0.08916789 0.9632831 0.09303522 0.9641451 0.09248268 0.9638578 0.09303522 0.9638578 0.09027278 0.9650072 0.08972036 0.9647198 0.09027278 0.9647198 0.09082525 0.9638575 0.09137773 0.964145 0.09082525 0.9641448 0.08916789 0.9650072 0.08861541 0.9644325 0.08916789 0.9644325 0.09358763 0.9638578 0.09303522 0.9635704 0.09358763 0.9635705 0.09027278 0.9638578 0.08972036 0.9635704 0.09027278 0.9635705 0.08916789 0.9644325 0.08972036 0.9647199 0.08916789 0.9647199 0.09248268 0.9644319 0.09193021 0.9632831 0.09248268 0.9632832 0.09082525 0.9650066 0.09137773 0.965294 0.09082525 0.9652939 0.09303522 0.9638578 0.09248268 0.9635704 0.09303522 0.9635704 0.09082525 0.9644321 0.09137773 0.9647195 0.09082525 0.9647193 0.09303522 0.9647198 0.09358763 0.9650073 0.09303522 0.9650072 0.09082525 0.9644322 0.09027278 0.9638575 0.09082525 0.9638577 0.09027278 0.9644325 0.08972036 0.9641451 0.09027278 0.9641452 0.08916789 0.9638578 0.08972036 0.9641451 0.08916789 0.9641451 0.08916789 0.9650072 0.08972036 0.9652946 0.08916789 0.9652946 0.08861541 0.9638578 0.08806288 0.9635704 0.08861541 0.9635704 0.09248268 0.9641452 0.09303522 0.9644325 0.09248268 0.9644325 0.08861541 0.9650072 0.08806288 0.9647199 0.08861541 0.9647198 0.08861541 0.9655819 0.08806288 0.9652946 0.08861541 0.9652946 0.09082525 0.9655813 0.09027278 0.9650066 0.09082525 0.9650067 0.08861541 0.9644325 0.08806288 0.9641451 0.08861541 0.9641451 0.09027278 0.9652945 0.08972036 0.9650071 0.09027278 0.9650072 0.09248268 0.9644325 0.09303522 0.9647199 0.09248268 0.9647199 0.09303522 0.9641452 0.09358763 0.9644326 0.09303522 0.9644325 0.08916789 0.9644325 0.08861541 0.9638578 0.08916789 0.9638578 0.09027278 0.9641452 0.08972036 0.9638577 0.09027278 0.9638578 0.08916789 0.9632831 0.08972036 0.9635704 0.08916789 0.9635704 0.09358763 0.9635705 0.09303522 0.9632831 0.09358763 0.9632831 0.08916789 0.9655819 0.08861541 0.9650072 0.08916789 0.9650072 0.09082525 0.9650067 0.09027278 0.9644321 0.09082525 0.9644322 0.08917123 0.9621335 0.0888018 0.9632831 0.0888018 0.9621335 0.0888018 0.9621335 0.08843237 0.9632831 0.08843237 0.9621335 0.08954071 0.9621335 0.08917123 0.9632831 0.08917123 0.9621335 0.08732396 0.9621335 0.08695453 0.9632831 0.08695453 0.9621335 0.08769345 0.9621335 0.08732396 0.9632831 0.08732396 0.9621335 0.08695453 0.9621335 0.08658504 0.9632831 0.0865851 0.9621335 0.08658504 0.9612715 0.08510726 0.9609841 0.08658504 0.9609841 0.08658504 0.9606968 0.08510726 0.9604094 0.08658504 0.9604094 0.09471309 0.9598347 0.09545201 0.9586852 0.09545201 0.9598347 0.08658504 0.9604094 0.08510726 0.960122 0.08658504 0.960122 0.0865851 0.9621335 0.08510726 0.9618462 0.0865851 0.9618462 0.09323531 0.9598347 0.09397417 0.9586852 0.09397417 0.9598347 0.08658504 0.9632831 0.08510726 0.9621335 0.0865851 0.9621335 0.09249639 0.9598347 0.09323531 0.9586852 0.09323531 0.9598347 0.09397417 0.9598347 0.09471309 0.9586852 0.09471309 0.9598347 0.08658504 0.9609841 0.08510726 0.9606968 0.08658504 0.9606968 0.08658504 0.9615588 0.08510726 0.9612715 0.08658504 0.9612715 0.0865851 0.9618462 0.08510726 0.9615588 0.08658504 0.9615588 0.08658504 0.960122 0.08510726 0.9598347 0.08658504 0.9598347 0.09545201 0.9621335 0.09471309 0.9632831 0.09471309 0.9621335 0.08954071 0.9604094 0.09101855 0.9606968 0.08954071 0.9606968 0.08954071 0.9618462 0.09101855 0.9621335 0.08954071 0.9621335 0.08954071 0.9612715 0.09101855 0.9615588 0.08954071 0.9615588 0.08954071 0.9615588 0.09101855 0.9618462 0.08954071 0.9618462 0.09471309 0.9621335 0.09397417 0.9632831 0.09397417 0.9621335 0.08954071 0.960122 0.09101855 0.9604094 0.08954071 0.9604094 0.09397417 0.9621335 0.09323531 0.9632831 0.09323531 0.9621335 0.09323531 0.9621335 0.09249639 0.9632831 0.09249639 0.9621335 0.08954071 0.9621335 0.09101855 0.9632831 0.08954071 0.9632831 0.08954071 0.9606968 0.09101855 0.9609841 0.08954071 0.9609841 0.08954071 0.9598347 0.09101855 0.960122 0.08954071 0.960122 0.08954071 0.9609841 0.09101855 0.9612715 0.08954071 0.9612715 0.0888018 0.9598347 0.08917123 0.9586852 0.08917123 0.9598347 0.08732396 0.9598347 0.08769345 0.9586852 0.08769345 0.9598347 0.08843237 0.9598347 0.0888018 0.9586852 0.0888018 0.9598347 0.08806288 0.9598347 0.08843237 0.9586852 0.08843237 0.9598347 0.08510726 0.9598347 0.08658504 0.9586852 0.08658504 0.9598347 0.08695453 0.9598347 0.08732396 0.9586852 0.08732396 0.9598347 0.08954071 0.9598347 0.09101855 0.9586852 0.09101855 0.9598347 0.08769345 0.9598347 0.08806288 0.9586852 0.08806288 0.9598347 0.08917123 0.9598347 0.08954071 0.9586852 0.08954071 0.9598347 0.08658504 0.9598347 0.08695453 0.9586852 0.08695453 0.9598347 0.09249639 0.9618462 0.09101855 0.9615588 0.09249639 0.9615588 0.09249639 0.9609841 0.09101855 0.9606967 0.09249639 0.9606967 0.09249639 0.9604094 0.09101855 0.960122 0.09249639 0.960122 0.09249639 0.9606967 0.09101855 0.9604094 0.09249639 0.9604094 0.09249639 0.9612715 0.09101855 0.9609841 0.09249639 0.9609841 0.09249639 0.960122 0.09101855 0.9598347 0.09249639 0.9598347 0.09249639 0.9615588 0.09101855 0.9612715 0.09249639 0.9612715 0.09249639 0.9621335 0.09101855 0.9618462 0.09249639 0.9618462 0.09249639 0.9632831 0.09101855 0.9621335 0.09249639 0.9621335 0.09249639 0.9598347 0.09101855 0.9586852 0.09249639 0.9586852 0.08644598 0.9643227 0.08643859 0.9644013 0.08621561 0.9644325 0.09228587 0.9644319 0.0924139 0.964685 0.09229546 0.964685 0.09145545 0.9644321 0.0914002 0.9646857 0.09137773 0.9644326 0.09224456 0.964432 0.09229546 0.964685 0.09226274 0.964685 0.09153038 0.9644325 0.09146177 0.9646853 0.09145545 0.9644321 0.09207588 0.9644319 0.0920239 0.9646851 0.09200304 0.964432 0.09216368 0.964432 0.09221518 0.9646857 0.0921511 0.9646852 0.09178149 0.9646853 0.09169304 0.9644327 0.09178149 0.9644321 0.09188228 0.964433 0.09180247 0.9646856 0.09178149 0.9644321 0.09153038 0.9644325 0.09163153 0.9646857 0.09152108 0.9646856 0.09216368 0.964432 0.09208154 0.9646851 0.09207588 0.9644319 0.09200304 0.964432 0.09196621 0.9646857 0.09193021 0.9644326 0.09248268 0.9644351 0.09244555 0.9646865 0.09243583 0.9644319 0.09195375 0.9647724 0.09208911 0.9647156 0.09207791 0.9649103 0.08769345 0.9632831 0.08806288 0.9632831 0.08806288 0.9635704 0.08769345 0.9644325 0.08806288 0.9644325 0.08806288 0.9647199 0.08658504 0.9645406 0.08658504 0.9647199 0.08654385 0.9645182 0.08658504 0.9647199 0.08621561 0.9647199 0.08654385 0.9645182 0.08621561 0.9647199 0.08621561 0.9644325 0.08654385 0.9645182 0.08621561 0.9632831 0.0865851 0.9632831 0.0865851 0.9635704 0.08621561 0.9638578 0.08658504 0.9638578 0.08658504 0.9641451 0.08547669 0.9638578 0.08584612 0.9638578 0.08584618 0.9641451 0.08547669 0.9632831 0.08584612 0.9632831 0.08584612 0.9635704 0.08547669 0.9650072 0.08584612 0.9650072 0.08584612 0.9652946 0.08547669 0.9644325 0.08584618 0.9644325 0.08584618 0.9647199 0.08769345 0.9650072 0.08806288 0.9650072 0.08806288 0.9652946 0.08695453 0.9650072 0.08732402 0.9650072 0.08732396 0.9652946 0.08695453 0.9644325 0.08732396 0.9644325 0.08732396 0.9647199 0.08769345 0.9638578 0.08806288 0.9638578 0.08806288 0.9641451 0.08695453 0.9638578 0.08732396 0.9638578 0.08732396 0.9641451 0.08695453 0.9632831 0.08732396 0.9632831 0.08732396 0.9635704 0.08695453 0.9635704 0.08732396 0.9635704 0.08732396 0.9638578 0.0865851 0.9635704 0.08695453 0.9635704 0.08695453 0.9638578 0.0865851 0.9632831 0.08695453 0.9632831 0.08695453 0.9635704 0.08695453 0.9641451 0.08732396 0.9641451 0.08732396 0.9644325 0.08658504 0.9638578 0.08695453 0.9638578 0.08695453 0.9641451 0.08732396 0.9641451 0.08769345 0.9641451 0.08769345 0.9644325 0.08732396 0.9638578 0.08769345 0.9638578 0.08769345 0.9641451 0.08658504 0.9647199 0.08695453 0.9647199 0.08695453 0.9650072 0.08695453 0.9641451 0.08695453 0.9644325 0.08679145 0.9643642 0.08695453 0.9644325 0.08680194 0.9644325 0.08679145 0.9643642 0.08658504 0.9643029 0.08658504 0.9641451 0.08665961 0.9642823 0.08658504 0.9641451 0.08695453 0.9641451 0.08673769 0.9643014 0.08665961 0.9642823 0.08658504 0.9641451 0.08673769 0.9643014 0.08695453 0.9652946 0.08732396 0.9652946 0.08732396 0.9655819 0.08658504 0.9652946 0.08695453 0.9652946 0.08695453 0.9655819 0.08658504 0.9650072 0.08695453 0.9650072 0.08695453 0.9652946 0.08769345 0.9652946 0.08806288 0.9652946 0.08806288 0.9655819 0.08732396 0.9652946 0.08769345 0.9652946 0.08769345 0.9655819 0.08732402 0.9650072 0.08769345 0.9650072 0.08769345 0.9652946 0.08547669 0.9647199 0.08584618 0.9647199 0.08584612 0.9650072 0.08510726 0.9647199 0.08547669 0.9647199 0.08547669 0.9650072 0.08510726 0.9644325 0.08547669 0.9644325 0.08547669 0.9647199 0.08547669 0.9652946 0.08584612 0.9652946 0.08584612 0.9655819 0.08510726 0.9652946 0.08547669 0.9652946 0.08547669 0.9655819 0.08510726 0.9650072 0.08547669 0.9650072 0.08547669 0.9652946 0.08621561 0.9652946 0.08658504 0.9652946 0.08658504 0.9655819 0.08584612 0.9652946 0.08621561 0.9652946 0.08621561 0.9655819 0.08584612 0.9650072 0.08621561 0.9650072 0.08621561 0.9652946 0.08547669 0.9635704 0.08584612 0.9635704 0.08584612 0.9638578 0.08510726 0.9635704 0.08547669 0.9635704 0.08547669 0.9638578 0.08510726 0.9632831 0.08547669 0.9632831 0.08547669 0.9635704 0.08547669 0.9641451 0.08584618 0.9641451 0.08584618 0.9644325 0.08510726 0.9641451 0.08547669 0.9641451 0.08547669 0.9644325 0.08510726 0.9638578 0.08547669 0.9638578 0.08547669 0.9641451 0.08680194 0.9644325 0.08695453 0.9644325 0.08679437 0.9644891 0.08695453 0.9644325 0.08695453 0.9647199 0.08679437 0.9644891 0.08695453 0.9647199 0.08658504 0.9647199 0.08673471 0.9645459 0.08658504 0.9647199 0.08658504 0.9645406 0.08673471 0.9645459 0.08584618 0.9641451 0.08621561 0.9641451 0.08621561 0.9644325 0.08584612 0.9638578 0.08621561 0.9638578 0.08621561 0.9641451 0.08584612 0.9635704 0.08621561 0.9635704 0.08621561 0.9638578 0.08584612 0.9632831 0.08621561 0.9632831 0.08621561 0.9635704 0.08621561 0.9647199 0.08658504 0.9647199 0.08658504 0.9650072 0.08584618 0.9647199 0.08621561 0.9647199 0.08621561 0.9650072 0.08584618 0.9644325 0.08621561 0.9644325 0.08621561 0.9647199 0.08769345 0.9647199 0.08806288 0.9647199 0.08806288 0.9650072 0.08732396 0.9647199 0.08769345 0.9647199 0.08769345 0.9650072 0.08732396 0.9644325 0.08769345 0.9644325 0.08769345 0.9647199 0.08769345 0.9635704 0.08806288 0.9635704 0.08806288 0.9638578 0.08732396 0.9635704 0.08769345 0.9635704 0.08769345 0.9638578 0.08732396 0.9632831 0.08769345 0.9632831 0.08769345 0.9635704 0.08658504 0.9655819 0.08658504 0.9667311 0.08621561 0.9667311 0.08695453 0.9655819 0.08695453 0.9667311 0.08658504 0.9667311 0.08510726 0.9673058 0.08510726 0.9667311 0.08547669 0.9667311 0.08806288 0.9673058 0.08806288 0.9678805 0.08769345 0.9678805 0.08510726 0.9684552 0.08510726 0.9678805 0.08547669 0.9678805 0.08584612 0.9684552 0.08584612 0.9678805 0.08621561 0.9678805 0.08584618 0.9673058 0.08584612 0.9667311 0.08621561 0.9667311 0.08584612 0.9678805 0.08584618 0.9673058 0.08621561 0.9673058 0.08621561 0.9678805 0.08621561 0.9673058 0.08658504 0.9673058 0.08621561 0.9673058 0.08621561 0.9667311 0.08658504 0.9667311 0.08584612 0.96903 0.08584612 0.9684552 0.08621561 0.9684552 0.08621561 0.96903 0.08621561 0.9684552 0.08658504 0.9684552 0.08621561 0.9684552 0.08621561 0.9678805 0.08658504 0.9678805 0.08547669 0.9684552 0.08547669 0.9678805 0.08584612 0.9678805 0.08695453 0.9678805 0.08695453 0.9684552 0.08658504 0.9684552 0.08695453 0.9684552 0.08695453 0.96903 0.0865851 0.96903 0.08732396 0.9667311 0.08732396 0.9673058 0.08695453 0.9673058 0.08695453 0.9667311 0.08695453 0.9673058 0.08658504 0.9673058 0.08695453 0.9673058 0.08695453 0.9678805 0.08658504 0.9678805 0.08806288 0.9667311 0.08806288 0.9673058 0.08769345 0.9673058 0.08510726 0.9678805 0.08510726 0.9673058 0.08547669 0.9673058 0.08547669 0.9678805 0.08547669 0.9673058 0.08584618 0.9673058 0.08547669 0.9673058 0.08547669 0.9667311 0.08584612 0.9667311 0.08621561 0.9650072 0.08658504 0.9650072 0.08658504 0.9652946 0.08769345 0.9641451 0.08806288 0.9641451 0.08806288 0.9644325 0.08695453 0.9647199 0.08732396 0.9647199 0.08732402 0.9650072 0.08621561 0.9635704 0.0865851 0.9635704 0.08658504 0.9638578 0.08806288 0.9684552 0.08806288 0.96903 0.08769345 0.96903 0.08732396 0.9673058 0.08732402 0.9678805 0.08695453 0.9678805 0.08732396 0.9684552 0.08732396 0.96903 0.08695453 0.96903 0.08510726 0.96903 0.08510726 0.9684552 0.08547669 0.9684552 0.08547669 0.96903 0.08547669 0.9684552 0.08584612 0.9684552 0.08732402 0.9678805 0.08732396 0.9684552 0.08695453 0.9684552 0.08769345 0.9667311 0.08769345 0.9673058 0.08732396 0.9673058 0.08769345 0.9673058 0.08769345 0.9678805 0.08732402 0.9678805 0.08806288 0.9678805 0.08806288 0.9684552 0.08769345 0.9684552 0.08769345 0.9678805 0.08769345 0.9684552 0.08732396 0.9684552 0.08769345 0.9684552 0.08769345 0.96903 0.08732396 0.96903 0.09082525 0.9632831 0.09137773 0.9632832 0.09137773 0.9635705 0.08916789 0.9652946 0.08972036 0.9652946 0.08972036 0.9655819 0.09027278 0.9635705 0.08972036 0.9635704 0.08972036 0.9632831 0.09027278 0.9647198 0.08972036 0.9647198 0.08972036 0.9644324 0.09082525 0.9652939 0.09137773 0.965294 0.09137773 0.9655813 0.08861541 0.9635704 0.08806288 0.9635704 0.08806288 0.9632831 0.09303522 0.9635704 0.09248268 0.9635704 0.09248268 0.9632831 0.09193021 0.9644321 0.09137773 0.9644321 0.09137773 0.9632831 0.08916789 0.9641451 0.08972036 0.9641451 0.08972036 0.9644325 0.09082525 0.9638577 0.09027278 0.9638575 0.09027278 0.9632831 0.08861541 0.9647198 0.08806288 0.9647199 0.08806288 0.9644325 0.08916789 0.9647199 0.08972036 0.9647199 0.08972036 0.9650072 0.09082525 0.9641448 0.09137773 0.964145 0.09137773 0.9644322 0.09082525 0.9647193 0.09137773 0.9647195 0.09137773 0.9650067 0.09303522 0.9644325 0.09358763 0.9644326 0.09358763 0.9647199 0.09358763 0.9641452 0.09303522 0.9641451 0.09303522 0.9638577 0.08861541 0.9641451 0.08806288 0.9641451 0.08806288 0.9638578 0.08916789 0.9635704 0.08972036 0.9635704 0.08972036 0.9638578 0.08861541 0.9652946 0.08806288 0.9652946 0.08806288 0.9650072 0.09082525 0.9635703 0.09137773 0.9635705 0.09137773 0.9638578 0.09027278 0.9655818 0.08972036 0.9655818 0.08972036 0.9652944 0.09248268 0.9647199 0.09303522 0.9647199 0.09303522 0.9650072 0.08916789 0.9638578 0.08861541 0.9638578 0.08861541 0.9632831 0.09303522 0.9641451 0.09248268 0.9641451 0.09248268 0.9638578 0.09027278 0.9650072 0.08972036 0.9650071 0.08972036 0.9647198 0.09082525 0.9638575 0.09137773 0.9638578 0.09137773 0.964145 0.08916789 0.9650072 0.08861541 0.9650072 0.08861541 0.9644325 0.09358763 0.9638578 0.09303522 0.9638577 0.09303522 0.9635704 0.09027278 0.9638578 0.08972036 0.9638577 0.08972036 0.9635704 0.08916789 0.9644325 0.08972036 0.9644325 0.08972036 0.9647199 0.09248268 0.9644319 0.09193021 0.9644318 0.09193021 0.9632831 0.09082525 0.9650066 0.09137773 0.9650067 0.09137773 0.965294 0.09303522 0.9638578 0.09248268 0.9638578 0.09248268 0.9635704 0.09082525 0.9644321 0.09137773 0.9644322 0.09137773 0.9647195 0.09303522 0.9647198 0.09358763 0.9647199 0.09358763 0.9650073 0.09082525 0.9644322 0.09027278 0.9644321 0.09027278 0.9638575 0.09027278 0.9644325 0.08972036 0.9644324 0.08972036 0.9641451 0.08916789 0.9638578 0.08972036 0.9638578 0.08972036 0.9641451 0.08916789 0.9650072 0.08972036 0.9650072 0.08972036 0.9652946 0.08861541 0.9638578 0.08806288 0.9638578 0.08806288 0.9635704 0.09248268 0.9641452 0.09303522 0.9641451 0.09303522 0.9644325 0.08861541 0.9650072 0.08806288 0.9650072 0.08806288 0.9647199 0.08861541 0.9655819 0.08806288 0.9655819 0.08806288 0.9652946 0.09082525 0.9655813 0.09027278 0.9655812 0.09027278 0.9650066 0.08861541 0.9644325 0.08806288 0.9644325 0.08806288 0.9641451 0.09027278 0.9652945 0.08972036 0.9652944 0.08972036 0.9650071 0.09248268 0.9644325 0.09303522 0.9644325 0.09303522 0.9647199 0.09303522 0.9641452 0.09358763 0.9641452 0.09358763 0.9644326 0.08916789 0.9644325 0.08861541 0.9644325 0.08861541 0.9638578 0.09027278 0.9641452 0.08972036 0.9641451 0.08972036 0.9638577 0.08916789 0.9632831 0.08972036 0.9632831 0.08972036 0.9635704 0.09358763 0.9635705 0.09303522 0.9635704 0.09303522 0.9632831 0.08916789 0.9655819 0.08861541 0.9655819 0.08861541 0.9650072 0.09082525 0.9650067 0.09027278 0.9650066 0.09027278 0.9644321 0.08917123 0.9621335 0.08917123 0.9632831 0.0888018 0.9632831 0.0888018 0.9621335 0.0888018 0.9632831 0.08843237 0.9632831 0.08954071 0.9621335 0.08954071 0.9632831 0.08917123 0.9632831 0.08732396 0.9621335 0.08732396 0.9632831 0.08695453 0.9632831 0.08769345 0.9621335 0.08769345 0.9632831 0.08732396 0.9632831 0.08695453 0.9621335 0.08695453 0.9632831 0.08658504 0.9632831 0.08658504 0.9612715 0.08510726 0.9612715 0.08510726 0.9609841 0.08658504 0.9606968 0.08510726 0.9606968 0.08510726 0.9604094 0.09471309 0.9598347 0.09471309 0.9586852 0.09545201 0.9586852 0.08658504 0.9604094 0.08510726 0.9604094 0.08510726 0.960122 0.0865851 0.9621335 0.08510726 0.9621335 0.08510726 0.9618462 0.09323531 0.9598347 0.09323531 0.9586852 0.09397417 0.9586852 0.08658504 0.9632831 0.08510726 0.9632831 0.08510726 0.9621335 0.09249639 0.9598347 0.09249639 0.9586852 0.09323531 0.9586852 0.09397417 0.9598347 0.09397417 0.9586852 0.09471309 0.9586852 0.08658504 0.9609841 0.08510726 0.9609841 0.08510726 0.9606968 0.08658504 0.9615588 0.08510726 0.9615588 0.08510726 0.9612715 0.0865851 0.9618462 0.08510726 0.9618462 0.08510726 0.9615588 0.08658504 0.960122 0.08510726 0.960122 0.08510726 0.9598347 0.09545201 0.9621335 0.09545201 0.9632831 0.09471309 0.9632831 0.08954071 0.9604094 0.09101855 0.9604094 0.09101855 0.9606968 0.08954071 0.9618462 0.09101855 0.9618462 0.09101855 0.9621335 0.08954071 0.9612715 0.09101855 0.9612715 0.09101855 0.9615588 0.08954071 0.9615588 0.09101855 0.9615588 0.09101855 0.9618462 0.09471309 0.9621335 0.09471309 0.9632831 0.09397417 0.9632831 0.08954071 0.960122 0.09101855 0.960122 0.09101855 0.9604094 0.09397417 0.9621335 0.09397417 0.9632831 0.09323531 0.9632831 0.09323531 0.9621335 0.09323531 0.9632831 0.09249639 0.9632831 0.08954071 0.9621335 0.09101855 0.9621335 0.09101855 0.9632831 0.08954071 0.9606968 0.09101855 0.9606968 0.09101855 0.9609841 0.08954071 0.9598347 0.09101855 0.9598347 0.09101855 0.960122 0.08954071 0.9609841 0.09101855 0.9609841 0.09101855 0.9612715 0.0888018 0.9598347 0.0888018 0.9586852 0.08917123 0.9586852 0.08732396 0.9598347 0.08732396 0.9586852 0.08769345 0.9586852 0.08843237 0.9598347 0.08843237 0.9586852 0.0888018 0.9586852 0.08806288 0.9598347 0.08806288 0.9586852 0.08843237 0.9586852 0.08510726 0.9598347 0.08510726 0.9586852 0.08658504 0.9586852 0.08695453 0.9598347 0.08695453 0.9586852 0.08732396 0.9586852 0.08954071 0.9598347 0.08954071 0.9586852 0.09101855 0.9586852 0.08769345 0.9598347 0.08769345 0.9586852 0.08806288 0.9586852 0.08917123 0.9598347 0.08917123 0.9586852 0.08954071 0.9586852 0.08658504 0.9598347 0.08658504 0.9586852 0.08695453 0.9586852 0.09249639 0.9618462 0.09101855 0.9618462 0.09101855 0.9615588 0.09249639 0.9609841 0.09101855 0.9609841 0.09101855 0.9606967 0.09249639 0.9604094 0.09101855 0.9604094 0.09101855 0.960122 0.09249639 0.9606967 0.09101855 0.9606967 0.09101855 0.9604094 0.09249639 0.9612715 0.09101855 0.9612715 0.09101855 0.9609841 0.09249639 0.960122 0.09101855 0.960122 0.09101855 0.9598347 0.09249639 0.9615588 0.09101855 0.9615588 0.09101855 0.9612715 0.09249639 0.9621335 0.09101855 0.9621335 0.09101855 0.9618462 0.09249639 0.9632831 0.09101855 0.9632831 0.09101855 0.9621335 0.09249639 0.9598347 0.09101855 0.9598347 0.09101855 0.9586852 0.08621561 0.9644325 0.08621561 0.9641451 0.08644598 0.9643227 0.08621561 0.9641451 0.08658504 0.9641451 0.08644598 0.9643227 0.08658504 0.9641451 0.08658504 0.9643029 0.08644598 0.9643227 0.08643859 0.9644013 0.0864855 0.9644325 0.08621561 0.9644325 0.09228587 0.9644319 0.09243547 0.964432 0.0924139 0.964685 0.09145545 0.9644321 0.09146177 0.9646853 0.0914002 0.9646857 0.09224456 0.964432 0.09228587 0.9644319 0.09229546 0.964685 0.09153038 0.9644325 0.09152108 0.9646856 0.09146177 0.9646853 0.09207588 0.9644319 0.09208154 0.9646851 0.0920239 0.9646851 0.09216368 0.964432 0.09224456 0.9644326 0.09221518 0.9646857 0.09178149 0.9646853 0.09166979 0.964686 0.09169304 0.9644327 0.09188228 0.964433 0.09188228 0.9646862 0.09180247 0.9646856 0.09153038 0.9644325 0.09166979 0.9644326 0.09163153 0.9646857 0.09216368 0.964432 0.0921511 0.9646852 0.09208154 0.9646851 0.09200304 0.964432 0.0920239 0.9646851 0.09196621 0.9646857 0.09248268 0.9644351 0.09248268 0.9646891 0.09244555 0.9646865 0.09219557 0.964873 0.09213578 0.9649077 0.09219557 0.9647807 0.09213578 0.9649077 0.09207791 0.9649103 0.09219557 0.9647807 0.09207791 0.9649103 0.09200882 0.9649015 0.09195375 0.9647724 0.09200882 0.9649015 0.09194678 0.9648662 0.09195375 0.9647724 0.09194678 0.9648662 0.09193021 0.9648174 0.09195375 0.9647724 0.09195375 0.9647724 0.0919789 0.9646874 0.09208911 0.9647156 0.0919789 0.9646874 0.09205907 0.9646857 0.09208911 0.9647156 0.09208911 0.9647156 0.09217423 0.9647546 0.09207791 0.9649103 0.09217423 0.9647546 0.09219557 0.9647807 0.09207791 0.9649103 - + @@ -81,11 +93,11 @@ - + -

15 0 0 25 0 1 94 0 2 63 0 3 68 0 4 42 0 5 20 0 6 27 0 7 41 0 8 19 0 9 74 0 10 93 0 11 76 0 12 21 0 13 92 0 14 28 0 15 29 0 16 40 0 17 24 0 18 30 0 19 39 0 20 31 0 21 79 0 22 90 0 23 72 0 24 80 0 25 89 0 26 32 0 27 16 0 28 38 0 29 81 0 30 33 0 31 37 0 32 26 0 33 83 0 34 88 0 35 34 0 36 61 0 37 87 0 38 84 0 39 85 0 40 86 0 41 66 0 42 35 0 43 36 0 44 36 0 45 13 0 46 84 0 47 74 0 48 84 0 49 75 0 50 3 0 51 36 0 52 74 0 53 86 0 54 10 0 55 26 0 56 21 0 57 26 0 58 4 0 59 75 0 60 86 0 61 21 0 62 85 0 63 63 0 64 10 0 65 13 0 66 87 0 67 85 0 68 27 0 69 81 0 70 73 0 71 4 0 72 88 0 73 27 0 74 37 0 75 8 0 76 17 0 77 64 0 78 17 0 79 2 0 80 73 0 81 37 0 82 64 0 83 38 0 84 1 0 85 69 0 86 33 0 87 69 0 88 8 0 89 82 0 90 38 0 91 33 0 92 89 0 93 12 0 94 31 0 95 18 0 96 31 0 97 9 0 98 60 0 99 89 0 100 18 0 101 90 0 102 5 0 103 14 0 104 23 0 105 14 0 106 57 0 107 9 0 108 90 0 109 23 0 110 91 0 111 2 0 112 22 0 113 79 0 114 22 0 115 5 0 116 12 0 117 91 0 118 79 0 119 39 0 120 77 0 121 28 0 122 58 0 123 28 0 124 6 0 125 0 0 126 39 0 127 58 0 128 40 0 129 11 0 130 72 0 131 65 0 132 72 0 133 60 0 134 6 0 135 40 0 136 65 0 137 92 0 138 4 0 139 20 0 140 29 0 141 20 0 142 11 0 143 77 0 144 92 0 145 29 0 146 30 0 147 76 0 148 77 0 149 70 0 150 93 0 151 30 0 152 41 0 153 73 0 154 78 0 155 80 0 156 78 0 157 12 0 158 11 0 159 41 0 160 80 0 161 42 0 162 7 0 163 32 0 164 83 0 165 32 0 166 82 0 167 10 0 168 42 0 169 83 0 170 94 0 171 71 0 172 34 0 173 35 0 174 34 0 175 13 0 176 67 0 177 94 0 178 35 0 179 2 0 180 44 0 181 22 0 182 17 0 183 43 0 184 2 0 185 98 0 186 49 0 187 125 0 188 51 0 189 110 0 190 123 0 191 102 0 192 53 0 193 120 0 194 116 0 195 54 0 196 56 0 197 117 0 198 44 0 199 55 0 200 115 0 201 55 0 202 54 0 203 54 0 204 48 0 205 47 0 206 55 0 207 43 0 208 48 0 209 105 0 210 56 0 211 50 0 212 50 0 213 52 0 214 46 0 215 56 0 216 47 0 217 52 0 218 120 0 219 115 0 220 116 0 221 111 0 222 52 0 223 47 0 224 121 0 225 46 0 226 52 0 227 107 0 228 122 0 229 45 0 230 45 0 231 48 0 232 43 0 233 122 0 234 47 0 235 48 0 236 99 0 237 123 0 238 106 0 239 103 0 240 125 0 241 53 0 242 53 0 243 117 0 244 115 0 245 125 0 246 118 0 247 117 0 248 78 0 249 64 0 250 91 0 251 87 0 252 62 0 253 63 0 254 88 0 255 82 0 256 81 0 257 93 0 258 75 0 259 76 0 260 108 0 261 95 0 262 124 0 263 113 0 264 111 0 265 122 0 266 114 0 267 100 0 268 121 0 269 119 0 270 120 0 271 104 0 272 104 0 273 116 0 274 105 0 275 112 0 276 121 0 277 111 0 278 106 0 279 113 0 280 107 0 281 123 0 282 112 0 283 113 0 284 109 0 285 124 0 286 110 0 287 110 0 288 114 0 289 112 0 290 124 0 291 101 0 292 114 0 293 59 1 294 134 1 295 25 1 296 58 2 297 150 2 298 0 2 299 104 3 300 179 3 301 119 3 302 100 3 303 160 3 304 46 3 305 16 1 306 126 1 307 1 1 308 15 4 309 162 4 310 59 4 311 106 4 312 170 4 313 99 4 314 44 2 315 157 2 316 22 2 317 18 2 318 163 2 319 60 2 320 108 1 321 145 1 322 96 1 323 19 4 324 127 4 325 3 4 326 65 2 327 152 2 328 6 2 329 61 1 330 140 1 331 62 1 332 68 1 333 128 1 334 7 1 335 69 3 336 153 3 337 8 3 338 22 3 339 151 3 340 5 3 341 66 4 342 143 4 343 67 4 344 23 2 345 154 2 346 9 2 347 24 4 348 166 4 349 70 4 350 25 1 351 167 1 352 71 1 353 96 3 354 168 3 355 95 3 356 118 4 357 135 4 358 44 4 359 98 2 360 169 2 361 97 2 362 45 4 363 148 4 364 107 4 365 101 3 366 171 3 367 100 3 368 71 1 369 164 1 370 61 1 371 102 2 372 174 2 373 103 2 374 5 3 375 129 3 376 14 3 377 105 3 378 147 3 379 104 3 380 60 2 381 141 2 382 65 2 383 17 1 384 159 1 385 45 1 386 7 1 387 131 1 388 16 1 389 107 4 390 176 4 391 106 4 392 62 1 393 165 1 394 68 1 395 8 3 396 132 3 397 17 3 398 109 1 399 149 1 400 108 1 401 46 3 402 137 3 403 50 3 404 9 2 405 155 2 406 18 2 407 6 2 408 161 2 409 58 2 410 67 4 411 130 4 412 15 4 413 97 4 414 136 4 415 49 4 416 70 4 417 156 4 418 19 4 419 0 4 420 158 4 421 24 4 422 99 1 423 138 1 424 51 1 425 3 4 426 142 4 427 66 4 428 95 3 429 172 3 430 101 3 431 49 4 432 178 4 433 118 4 434 1 3 435 144 3 436 69 3 437 103 2 438 146 2 439 98 2 440 50 3 441 175 3 442 105 3 443 57 2 444 133 2 445 23 2 446 14 3 447 139 3 448 57 3 449 119 2 450 173 2 451 102 2 452 51 1 453 177 1 454 109 1 455 144 0 456 183 0 457 153 0 458 153 0 459 181 0 460 132 0 461 126 0 462 182 0 463 144 0 464 151 0 465 184 0 466 129 0 467 157 0 468 186 0 469 151 0 470 129 0 471 185 0 472 139 0 473 155 0 474 197 0 475 163 0 476 141 0 477 193 0 478 152 0 479 146 0 480 198 0 481 169 0 482 152 0 483 196 0 484 161 0 485 139 0 486 188 0 487 133 0 488 173 0 489 200 0 490 174 0 491 185 0 492 189 0 493 139 0 494 179 0 495 199 0 496 173 0 497 174 0 498 191 0 499 146 0 500 163 0 501 190 0 502 141 0 503 154 0 504 195 0 505 155 0 506 133 0 507 194 0 508 154 0 509 161 0 510 192 0 511 150 0 512 170 0 513 207 0 514 138 0 515 167 0 516 212 0 517 164 0 518 131 0 519 203 0 520 126 0 521 165 0 522 204 0 523 128 0 524 128 0 525 205 0 526 131 0 527 138 0 528 216 0 529 177 0 530 134 0 531 214 0 532 167 0 533 177 0 534 210 0 535 149 0 536 149 0 537 209 0 538 145 0 539 126 0 540 217 0 541 180 0 542 164 0 543 208 0 544 140 0 545 162 0 546 206 0 547 134 0 548 140 0 549 213 0 550 165 0 551 143 0 552 219 0 553 130 0 554 166 0 555 223 0 556 156 0 557 142 0 558 221 0 559 143 0 560 127 0 561 220 0 562 142 0 563 192 0 564 222 0 565 150 0 566 158 0 567 226 0 568 166 0 569 162 0 570 228 0 571 211 0 572 156 0 573 218 0 574 127 0 575 130 0 576 225 0 577 162 0 578 150 0 579 224 0 580 158 0 581 168 0 582 235 0 583 172 0 584 160 0 585 229 0 586 137 0 587 175 0 588 231 0 589 147 0 590 137 0 591 236 0 592 175 0 593 171 0 594 232 0 595 160 0 596 147 0 597 237 0 598 179 0 599 172 0 600 234 0 601 171 0 602 145 0 603 233 0 604 168 0 605 209 0 606 230 0 607 145 0 608 179 0 609 238 0 610 201 0 611 15 0 612 59 0 613 25 0 614 63 0 615 62 0 616 68 0 617 20 0 618 4 0 619 27 0 620 19 0 621 3 0 622 74 0 623 76 0 624 75 0 625 21 0 626 28 0 627 77 0 628 29 0 629 24 0 630 70 0 631 30 0 632 31 0 633 12 0 634 79 0 635 72 0 636 11 0 637 80 0 638 32 0 639 7 0 640 16 0 641 81 0 642 82 0 643 33 0 644 26 0 645 10 0 646 83 0 647 34 0 648 71 0 649 61 0 650 84 0 651 13 0 652 85 0 653 66 0 654 67 0 655 35 0 656 36 0 657 35 0 658 13 0 659 74 0 660 36 0 661 84 0 662 3 0 663 66 0 664 36 0 665 86 0 666 85 0 667 10 0 668 21 0 669 86 0 670 26 0 671 75 0 672 84 0 673 86 0 674 85 0 675 87 0 676 63 0 677 13 0 678 34 0 679 87 0 680 27 0 681 88 0 682 81 0 683 4 0 684 26 0 685 88 0 686 37 0 687 33 0 688 8 0 689 64 0 690 37 0 691 17 0 692 73 0 693 81 0 694 37 0 695 38 0 696 16 0 697 1 0 698 33 0 699 38 0 700 69 0 701 82 0 702 32 0 703 38 0 704 89 0 705 80 0 706 12 0 707 18 0 708 89 0 709 31 0 710 60 0 711 72 0 712 89 0 713 90 0 714 79 0 715 5 0 716 23 0 717 90 0 718 14 0 719 9 0 720 31 0 721 90 0 722 91 0 723 64 0 724 2 0 725 79 0 726 91 0 727 22 0 728 12 0 729 78 0 730 91 0 731 39 0 732 30 0 733 77 0 734 58 0 735 39 0 736 28 0 737 0 0 738 24 0 739 39 0 740 40 0 741 29 0 742 11 0 743 65 0 744 40 0 745 72 0 746 6 0 747 28 0 748 40 0 749 92 0 750 21 0 751 4 0 752 29 0 753 92 0 754 20 0 755 77 0 756 76 0 757 92 0 758 30 0 759 93 0 760 76 0 761 70 0 762 19 0 763 93 0 764 41 0 765 27 0 766 73 0 767 80 0 768 41 0 769 78 0 770 11 0 771 20 0 772 41 0 773 42 0 774 68 0 775 7 0 776 83 0 777 42 0 778 32 0 779 10 0 780 63 0 781 42 0 782 94 0 783 25 0 784 71 0 785 35 0 786 94 0 787 34 0 788 67 0 789 15 0 790 94 0 791 2 0 792 43 0 793 44 0 794 17 0 795 45 0 796 43 0 797 98 0 798 97 0 799 49 0 800 51 0 801 109 0 802 110 0 803 102 0 804 103 0 805 53 0 806 116 0 807 115 0 808 54 0 809 117 0 810 118 0 811 44 0 812 115 0 813 117 0 814 55 0 815 54 0 816 55 0 817 48 0 818 55 0 819 44 0 820 43 0 821 105 0 822 116 0 823 56 0 824 50 0 825 56 0 826 52 0 827 56 0 828 54 0 829 47 0 830 120 0 831 53 0 832 115 0 833 111 0 834 121 0 835 52 0 836 121 0 837 100 0 838 46 0 839 107 0 840 113 0 841 122 0 842 45 0 843 122 0 844 48 0 845 122 0 846 111 0 847 47 0 848 99 0 849 51 0 850 123 0 851 103 0 852 98 0 853 125 0 854 53 0 855 125 0 856 117 0 857 125 0 858 49 0 859 118 0 860 78 0 861 73 0 862 64 0 863 87 0 864 61 0 865 62 0 866 88 0 867 83 0 868 82 0 869 93 0 870 74 0 871 75 0 872 108 0 873 96 0 874 95 0 875 113 0 876 112 0 877 111 0 878 114 0 879 101 0 880 100 0 881 119 0 882 102 0 883 120 0 884 104 0 885 120 0 886 116 0 887 112 0 888 114 0 889 121 0 890 106 0 891 123 0 892 113 0 893 123 0 894 110 0 895 112 0 896 109 0 897 108 0 898 124 0 899 110 0 900 124 0 901 114 0 902 124 0 903 95 0 904 101 0 905 59 1 906 162 1 907 134 1 908 58 2 909 161 2 910 150 2 911 104 3 912 147 3 913 179 3 914 100 3 915 171 3 916 160 3 917 16 1 918 131 1 919 126 1 920 15 4 921 130 4 922 162 4 923 106 4 924 176 4 925 170 4 926 44 2 927 135 2 928 157 2 929 18 2 930 155 2 931 163 2 932 108 1 933 149 1 934 145 1 935 19 4 936 156 4 937 127 4 938 65 2 939 141 2 940 152 2 941 61 1 942 164 1 943 140 1 944 68 1 945 165 1 946 128 1 947 69 3 948 144 3 949 153 3 950 22 3 951 157 3 952 151 3 953 66 4 954 142 4 955 143 4 956 23 2 957 133 2 958 154 2 959 24 4 960 158 4 961 166 4 962 25 1 963 134 1 964 167 1 965 96 3 966 145 3 967 168 3 968 118 4 969 178 4 970 135 4 971 98 2 972 146 2 973 169 2 974 45 4 975 159 4 976 148 4 977 101 3 978 172 3 979 171 3 980 71 1 981 167 1 982 164 1 983 102 2 984 173 2 985 174 2 986 5 3 987 151 3 988 129 3 989 105 3 990 175 3 991 147 3 992 60 2 993 163 2 994 141 2 995 17 1 996 132 1 997 159 1 998 7 1 999 128 1 1000 131 1 1001 107 4 1002 148 4 1003 176 4 1004 62 1 1005 140 1 1006 165 1 1007 8 3 1008 153 3 1009 132 3 1010 109 1 1011 177 1 1012 149 1 1013 46 3 1014 160 3 1015 137 3 1016 9 2 1017 154 2 1018 155 2 1019 6 2 1020 152 2 1021 161 2 1022 67 4 1023 143 4 1024 130 4 1025 97 4 1026 169 4 1027 136 4 1028 70 4 1029 166 4 1030 156 4 1031 0 4 1032 150 4 1033 158 4 1034 99 1 1035 170 1 1036 138 1 1037 3 4 1038 127 4 1039 142 4 1040 95 3 1041 168 3 1042 172 3 1043 49 4 1044 136 4 1045 178 4 1046 1 3 1047 126 3 1048 144 3 1049 103 2 1050 174 2 1051 146 2 1052 50 3 1053 137 3 1054 175 3 1055 57 2 1056 139 2 1057 133 2 1058 14 3 1059 129 3 1060 139 3 1061 119 2 1062 179 2 1063 173 2 1064 51 1 1065 138 1 1066 177 1 1067 144 0 1068 182 0 1069 183 0 1070 153 0 1071 183 0 1072 181 0 1073 126 0 1074 180 0 1075 182 0 1076 151 0 1077 186 0 1078 184 0 1079 157 0 1080 187 0 1081 186 0 1082 129 0 1083 184 0 1084 185 0 1085 155 0 1086 195 0 1087 197 0 1088 141 0 1089 190 0 1090 193 0 1091 146 0 1092 191 0 1093 198 0 1094 152 0 1095 193 0 1096 196 0 1097 139 0 1098 189 0 1099 188 0 1100 173 0 1101 199 0 1102 200 0 1103 185 0 1104 202 0 1105 189 0 1106 179 0 1107 201 0 1108 199 0 1109 174 0 1110 200 0 1111 191 0 1112 163 0 1113 197 0 1114 190 0 1115 154 0 1116 194 0 1117 195 0 1118 133 0 1119 188 0 1120 194 0 1121 161 0 1122 196 0 1123 192 0 1124 170 0 1125 215 0 1126 207 0 1127 167 0 1128 214 0 1129 212 0 1130 131 0 1131 205 0 1132 203 0 1133 165 0 1134 213 0 1135 204 0 1136 128 0 1137 204 0 1138 205 0 1139 138 0 1140 207 0 1141 216 0 1142 134 0 1143 206 0 1144 214 0 1145 177 0 1146 216 0 1147 210 0 1148 149 0 1149 210 0 1150 209 0 1151 126 0 1152 203 0 1153 217 0 1154 164 0 1155 212 0 1156 208 0 1157 162 0 1158 211 0 1159 206 0 1160 140 0 1161 208 0 1162 213 0 1163 143 0 1164 221 0 1165 219 0 1166 166 0 1167 226 0 1168 223 0 1169 142 0 1170 220 0 1171 221 0 1172 127 0 1173 218 0 1174 220 0 1175 192 0 1176 227 0 1177 222 0 1178 158 0 1179 224 0 1180 226 0 1181 162 0 1182 225 0 1183 228 0 1184 156 0 1185 223 0 1186 218 0 1187 130 0 1188 219 0 1189 225 0 1190 150 0 1191 222 0 1192 224 0 1193 168 0 1194 233 0 1195 235 0 1196 160 0 1197 232 0 1198 229 0 1199 175 0 1200 236 0 1201 231 0 1202 137 0 1203 229 0 1204 236 0 1205 171 0 1206 234 0 1207 232 0 1208 147 0 1209 231 0 1210 237 0 1211 172 0 1212 235 0 1213 234 0 1214 145 0 1215 230 0 1216 233 0 1217 209 0 1218 239 0 1219 230 0 1220 179 0 1221 237 0 1222 238 0 1223

+

14 0 0 24 0 1 93 0 2 62 0 3 67 0 4 41 0 5 19 0 6 239 0 7 247 0 8 18 0 9 73 0 10 92 0 11 75 0 12 20 0 13 91 0 14 27 0 15 28 0 16 39 0 17 23 0 18 29 0 19 38 0 20 30 0 21 78 0 22 89 0 23 71 0 24 79 0 25 88 0 26 31 0 27 15 0 28 37 0 29 80 0 30 32 0 31 36 0 32 25 0 33 82 0 34 87 0 35 33 0 36 60 0 37 86 0 38 83 0 39 84 0 40 85 0 41 65 0 42 34 0 43 35 0 44 35 0 45 12 0 46 83 0 47 73 0 48 83 0 49 74 0 50 3 0 51 35 0 52 73 0 53 85 0 54 9 0 55 25 0 56 74 0 57 85 0 58 20 0 59 84 0 60 62 0 61 9 0 62 12 0 63 86 0 64 84 0 65 26 0 66 80 0 67 72 0 68 85 0 69 242 0 70 244 0 71 36 0 72 7 0 73 16 0 74 63 0 75 16 0 76 2 0 77 72 0 78 36 0 79 63 0 80 37 0 81 1 0 82 68 0 83 32 0 84 68 0 85 7 0 86 81 0 87 37 0 88 32 0 89 88 0 90 11 0 91 30 0 92 17 0 93 30 0 94 8 0 95 59 0 96 88 0 97 17 0 98 89 0 99 4 0 100 13 0 101 22 0 102 13 0 103 56 0 104 8 0 105 89 0 106 22 0 107 90 0 108 2 0 109 21 0 110 78 0 111 21 0 112 4 0 113 11 0 114 90 0 115 78 0 116 38 0 117 76 0 118 27 0 119 57 0 120 27 0 121 5 0 122 0 0 123 38 0 124 57 0 125 39 0 126 10 0 127 71 0 128 64 0 129 71 0 130 59 0 131 5 0 132 39 0 133 64 0 134 87 0 135 245 0 136 250 0 137 28 0 138 19 0 139 10 0 140 76 0 141 91 0 142 28 0 143 29 0 144 75 0 145 76 0 146 69 0 147 92 0 148 29 0 149 40 0 150 72 0 151 77 0 152 79 0 153 77 0 154 11 0 155 10 0 156 40 0 157 79 0 158 41 0 159 6 0 160 31 0 161 82 0 162 31 0 163 81 0 164 9 0 165 41 0 166 82 0 167 93 0 168 70 0 169 33 0 170 34 0 171 33 0 172 12 0 173 66 0 174 93 0 175 34 0 176 2 0 177 43 0 178 21 0 179 16 0 180 42 0 181 2 0 182 97 0 183 48 0 184 124 0 185 50 0 186 109 0 187 122 0 188 101 0 189 52 0 190 119 0 191 115 0 192 53 0 193 55 0 194 116 0 195 43 0 196 54 0 197 114 0 198 54 0 199 53 0 200 53 0 201 47 0 202 46 0 203 54 0 204 42 0 205 47 0 206 104 0 207 55 0 208 49 0 209 49 0 210 51 0 211 45 0 212 55 0 213 46 0 214 51 0 215 119 0 216 114 0 217 115 0 218 110 0 219 51 0 220 46 0 221 120 0 222 45 0 223 51 0 224 106 0 225 121 0 226 44 0 227 44 0 228 47 0 229 42 0 230 121 0 231 46 0 232 47 0 233 98 0 234 122 0 235 105 0 236 102 0 237 124 0 238 52 0 239 52 0 240 116 0 241 114 0 242 124 0 243 117 0 244 116 0 245 77 0 246 63 0 247 90 0 248 86 0 249 61 0 250 62 0 251 87 0 252 81 0 253 80 0 254 92 0 255 74 0 256 75 0 257 107 0 258 94 0 259 123 0 260 112 0 261 110 0 262 121 0 263 113 0 264 99 0 265 120 0 266 118 0 267 119 0 268 103 0 269 103 0 270 115 0 271 104 0 272 111 0 273 120 0 274 110 0 275 105 0 276 112 0 277 106 0 278 122 0 279 111 0 280 112 0 281 108 0 282 123 0 283 109 0 284 109 0 285 113 0 286 111 0 287 123 0 288 100 0 289 113 0 290 58 1 291 133 1 292 24 1 293 57 2 294 149 2 295 0 2 296 103 3 297 178 3 298 118 3 299 99 3 300 159 3 301 45 3 302 15 1 303 125 1 304 1 1 305 14 4 306 161 4 307 58 4 308 105 4 309 169 4 310 98 4 311 43 2 312 156 2 313 21 2 314 17 2 315 162 2 316 59 2 317 107 1 318 144 1 319 95 1 320 18 4 321 126 4 322 3 4 323 64 2 324 151 2 325 5 2 326 60 1 327 139 1 328 61 1 329 67 1 330 127 1 331 6 1 332 68 3 333 152 3 334 7 3 335 21 3 336 150 3 337 4 3 338 65 4 339 142 4 340 66 4 341 22 2 342 153 2 343 8 2 344 23 4 345 165 4 346 69 4 347 24 1 348 166 1 349 70 1 350 95 3 351 167 3 352 94 3 353 117 4 354 134 4 355 43 4 356 97 2 357 168 2 358 96 2 359 44 4 360 147 4 361 106 4 362 100 3 363 170 3 364 99 3 365 70 1 366 163 1 367 60 1 368 101 2 369 173 2 370 102 2 371 4 3 372 128 3 373 13 3 374 104 3 375 146 3 376 103 3 377 59 2 378 140 2 379 64 2 380 16 1 381 158 1 382 44 1 383 6 1 384 130 1 385 15 1 386 106 4 387 175 4 388 105 4 389 61 1 390 164 1 391 67 1 392 7 3 393 131 3 394 16 3 395 108 1 396 148 1 397 107 1 398 45 3 399 136 3 400 49 3 401 8 2 402 154 2 403 17 2 404 5 2 405 160 2 406 57 2 407 66 4 408 129 4 409 14 4 410 96 4 411 135 4 412 48 4 413 69 4 414 155 4 415 18 4 416 0 4 417 157 4 418 23 4 419 98 1 420 137 1 421 50 1 422 3 4 423 141 4 424 65 4 425 94 3 426 171 3 427 100 3 428 48 4 429 177 4 430 117 4 431 1 3 432 143 3 433 68 3 434 102 2 435 145 2 436 97 2 437 49 3 438 174 3 439 104 3 440 56 2 441 132 2 442 22 2 443 13 3 444 138 3 445 56 3 446 118 2 447 172 2 448 101 2 449 50 1 450 176 1 451 108 1 452 143 0 453 182 0 454 152 0 455 152 0 456 180 0 457 131 0 458 125 0 459 181 0 460 143 0 461 150 0 462 183 0 463 128 0 464 156 0 465 185 0 466 150 0 467 128 0 468 184 0 469 138 0 470 154 0 471 196 0 472 162 0 473 140 0 474 192 0 475 151 0 476 145 0 477 197 0 478 168 0 479 151 0 480 195 0 481 160 0 482 138 0 483 187 0 484 132 0 485 172 0 486 199 0 487 173 0 488 184 0 489 188 0 490 138 0 491 178 0 492 198 0 493 172 0 494 173 0 495 190 0 496 145 0 497 162 0 498 189 0 499 140 0 500 153 0 501 194 0 502 154 0 503 132 0 504 193 0 505 153 0 506 160 0 507 191 0 508 149 0 509 169 0 510 206 0 511 137 0 512 166 0 513 211 0 514 163 0 515 130 0 516 202 0 517 125 0 518 164 0 519 203 0 520 127 0 521 127 0 522 204 0 523 130 0 524 137 0 525 215 0 526 176 0 527 133 0 528 213 0 529 166 0 530 176 0 531 209 0 532 148 0 533 148 0 534 208 0 535 144 0 536 125 0 537 216 0 538 179 0 539 163 0 540 207 0 541 139 0 542 161 0 543 205 0 544 133 0 545 139 0 546 212 0 547 164 0 548 142 0 549 218 0 550 129 0 551 165 0 552 222 0 553 155 0 554 141 0 555 220 0 556 142 0 557 126 0 558 219 0 559 141 0 560 191 0 561 221 0 562 149 0 563 157 0 564 225 0 565 165 0 566 161 0 567 227 0 568 210 0 569 155 0 570 217 0 571 126 0 572 129 0 573 224 0 574 161 0 575 149 0 576 223 0 577 157 0 578 167 0 579 234 0 580 171 0 581 159 0 582 228 0 583 136 0 584 174 0 585 230 0 586 146 0 587 136 0 588 235 0 589 174 0 590 170 0 591 231 0 592 159 0 593 146 0 594 236 0 595 178 0 596 171 0 597 233 0 598 170 0 599 144 0 600 232 0 601 167 0 602 208 0 603 229 0 604 144 0 605 178 0 606 237 0 607 200 0 608 243 0 609 246 0 610 19 0 611 240 5 612 261 5 613 252 5 614 249 6 615 259 6 616 244 6 617 247 7 618 252 7 619 257 7 620 248 8 621 260 8 622 249 8 623 241 9 624 262 9 625 250 9 626 242 10 627 259 10 628 254 10 629 239 11 630 257 11 631 251 11 632 246 12 633 256 12 634 243 12 635 248 13 636 256 13 637 258 13 638 242 14 639 253 14 640 241 14 641 250 15 642 261 15 643 245 15 644 239 16 645 255 16 646 246 16 647 258 17 648 251 17 649 253 17 650 14 0 651 58 0 652 24 0 653 62 0 654 61 0 655 67 0 656 240 0 657 26 0 658 247 0 659 26 0 660 40 0 661 247 0 662 40 0 663 19 0 664 247 0 665 18 0 666 3 0 667 73 0 668 75 0 669 74 0 670 20 0 671 27 0 672 76 0 673 28 0 674 23 0 675 69 0 676 29 0 677 30 0 678 11 0 679 78 0 680 71 0 681 10 0 682 79 0 683 31 0 684 6 0 685 15 0 686 80 0 687 81 0 688 32 0 689 25 0 690 9 0 691 82 0 692 33 0 693 70 0 694 60 0 695 83 0 696 12 0 697 84 0 698 65 0 699 66 0 700 34 0 701 35 0 702 34 0 703 12 0 704 73 0 705 35 0 706 83 0 707 3 0 708 65 0 709 35 0 710 85 0 711 84 0 712 9 0 713 74 0 714 83 0 715 85 0 716 84 0 717 86 0 718 62 0 719 12 0 720 33 0 721 86 0 722 26 0 723 87 0 724 80 0 725 85 0 726 25 0 727 242 0 728 25 0 729 241 0 730 242 0 731 248 0 732 20 0 733 249 0 734 20 0 735 85 0 736 244 0 737 249 0 738 20 0 739 244 0 740 36 0 741 32 0 742 7 0 743 63 0 744 36 0 745 16 0 746 72 0 747 80 0 748 36 0 749 37 0 750 15 0 751 1 0 752 32 0 753 37 0 754 68 0 755 81 0 756 31 0 757 37 0 758 88 0 759 79 0 760 11 0 761 17 0 762 88 0 763 30 0 764 59 0 765 71 0 766 88 0 767 89 0 768 78 0 769 4 0 770 22 0 771 89 0 772 13 0 773 8 0 774 30 0 775 89 0 776 90 0 777 63 0 778 2 0 779 78 0 780 90 0 781 21 0 782 11 0 783 77 0 784 90 0 785 38 0 786 29 0 787 76 0 788 57 0 789 38 0 790 27 0 791 0 0 792 23 0 793 38 0 794 39 0 795 28 0 796 10 0 797 64 0 798 39 0 799 71 0 800 5 0 801 27 0 802 39 0 803 241 0 804 25 0 805 250 0 806 25 0 807 87 0 808 250 0 809 87 0 810 26 0 811 245 0 812 26 0 813 240 0 814 245 0 815 28 0 816 91 0 817 19 0 818 76 0 819 75 0 820 91 0 821 29 0 822 92 0 823 75 0 824 69 0 825 18 0 826 92 0 827 40 0 828 26 0 829 72 0 830 79 0 831 40 0 832 77 0 833 10 0 834 19 0 835 40 0 836 41 0 837 67 0 838 6 0 839 82 0 840 41 0 841 31 0 842 9 0 843 62 0 844 41 0 845 93 0 846 24 0 847 70 0 848 34 0 849 93 0 850 33 0 851 66 0 852 14 0 853 93 0 854 2 0 855 42 0 856 43 0 857 16 0 858 44 0 859 42 0 860 97 0 861 96 0 862 48 0 863 50 0 864 108 0 865 109 0 866 101 0 867 102 0 868 52 0 869 115 0 870 114 0 871 53 0 872 116 0 873 117 0 874 43 0 875 114 0 876 116 0 877 54 0 878 53 0 879 54 0 880 47 0 881 54 0 882 43 0 883 42 0 884 104 0 885 115 0 886 55 0 887 49 0 888 55 0 889 51 0 890 55 0 891 53 0 892 46 0 893 119 0 894 52 0 895 114 0 896 110 0 897 120 0 898 51 0 899 120 0 900 99 0 901 45 0 902 106 0 903 112 0 904 121 0 905 44 0 906 121 0 907 47 0 908 121 0 909 110 0 910 46 0 911 98 0 912 50 0 913 122 0 914 102 0 915 97 0 916 124 0 917 52 0 918 124 0 919 116 0 920 124 0 921 48 0 922 117 0 923 77 0 924 72 0 925 63 0 926 86 0 927 60 0 928 61 0 929 87 0 930 82 0 931 81 0 932 92 0 933 73 0 934 74 0 935 107 0 936 95 0 937 94 0 938 112 0 939 111 0 940 110 0 941 113 0 942 100 0 943 99 0 944 118 0 945 101 0 946 119 0 947 103 0 948 119 0 949 115 0 950 111 0 951 113 0 952 120 0 953 105 0 954 122 0 955 112 0 956 122 0 957 109 0 958 111 0 959 108 0 960 107 0 961 123 0 962 109 0 963 123 0 964 113 0 965 123 0 966 94 0 967 100 0 968 58 1 969 161 1 970 133 1 971 57 2 972 160 2 973 149 2 974 103 3 975 146 3 976 178 3 977 99 3 978 170 3 979 159 3 980 15 1 981 130 1 982 125 1 983 14 4 984 129 4 985 161 4 986 105 4 987 175 4 988 169 4 989 43 2 990 134 2 991 156 2 992 17 2 993 154 2 994 162 2 995 107 1 996 148 1 997 144 1 998 18 4 999 155 4 1000 126 4 1001 64 2 1002 140 2 1003 151 2 1004 60 1 1005 163 1 1006 139 1 1007 67 1 1008 164 1 1009 127 1 1010 68 3 1011 143 3 1012 152 3 1013 21 3 1014 156 3 1015 150 3 1016 65 4 1017 141 4 1018 142 4 1019 22 2 1020 132 2 1021 153 2 1022 23 4 1023 157 4 1024 165 4 1025 24 1 1026 133 1 1027 166 1 1028 95 3 1029 144 3 1030 167 3 1031 117 4 1032 177 4 1033 134 4 1034 97 2 1035 145 2 1036 168 2 1037 44 4 1038 158 4 1039 147 4 1040 100 3 1041 171 3 1042 170 3 1043 70 1 1044 166 1 1045 163 1 1046 101 2 1047 172 2 1048 173 2 1049 4 3 1050 150 3 1051 128 3 1052 104 3 1053 174 3 1054 146 3 1055 59 2 1056 162 2 1057 140 2 1058 16 1 1059 131 1 1060 158 1 1061 6 1 1062 127 1 1063 130 1 1064 106 4 1065 147 4 1066 175 4 1067 61 1 1068 139 1 1069 164 1 1070 7 3 1071 152 3 1072 131 3 1073 108 1 1074 176 1 1075 148 1 1076 45 3 1077 159 3 1078 136 3 1079 8 2 1080 153 2 1081 154 2 1082 5 2 1083 151 2 1084 160 2 1085 66 4 1086 142 4 1087 129 4 1088 96 4 1089 168 4 1090 135 4 1091 69 4 1092 165 4 1093 155 4 1094 0 4 1095 149 4 1096 157 4 1097 98 1 1098 169 1 1099 137 1 1100 3 4 1101 126 4 1102 141 4 1103 94 3 1104 167 3 1105 171 3 1106 48 4 1107 135 4 1108 177 4 1109 1 3 1110 125 3 1111 143 3 1112 102 2 1113 173 2 1114 145 2 1115 49 3 1116 136 3 1117 174 3 1118 56 2 1119 138 2 1120 132 2 1121 13 3 1122 128 3 1123 138 3 1124 118 2 1125 178 2 1126 172 2 1127 50 1 1128 137 1 1129 176 1 1130 143 0 1131 181 0 1132 182 0 1133 152 0 1134 182 0 1135 180 0 1136 125 0 1137 179 0 1138 181 0 1139 150 0 1140 185 0 1141 183 0 1142 156 0 1143 186 0 1144 185 0 1145 128 0 1146 183 0 1147 184 0 1148 154 0 1149 194 0 1150 196 0 1151 140 0 1152 189 0 1153 192 0 1154 145 0 1155 190 0 1156 197 0 1157 151 0 1158 192 0 1159 195 0 1160 138 0 1161 188 0 1162 187 0 1163 172 0 1164 198 0 1165 199 0 1166 184 0 1167 201 0 1168 188 0 1169 178 0 1170 200 0 1171 198 0 1172 173 0 1173 199 0 1174 190 0 1175 162 0 1176 196 0 1177 189 0 1178 153 0 1179 193 0 1180 194 0 1181 132 0 1182 187 0 1183 193 0 1184 160 0 1185 195 0 1186 191 0 1187 169 0 1188 214 0 1189 206 0 1190 166 0 1191 213 0 1192 211 0 1193 130 0 1194 204 0 1195 202 0 1196 164 0 1197 212 0 1198 203 0 1199 127 0 1200 203 0 1201 204 0 1202 137 0 1203 206 0 1204 215 0 1205 133 0 1206 205 0 1207 213 0 1208 176 0 1209 215 0 1210 209 0 1211 148 0 1212 209 0 1213 208 0 1214 125 0 1215 202 0 1216 216 0 1217 163 0 1218 211 0 1219 207 0 1220 161 0 1221 210 0 1222 205 0 1223 139 0 1224 207 0 1225 212 0 1226 142 0 1227 220 0 1228 218 0 1229 165 0 1230 225 0 1231 222 0 1232 141 0 1233 219 0 1234 220 0 1235 126 0 1236 217 0 1237 219 0 1238 191 0 1239 226 0 1240 221 0 1241 157 0 1242 223 0 1243 225 0 1244 161 0 1245 224 0 1246 227 0 1247 155 0 1248 222 0 1249 217 0 1250 129 0 1251 218 0 1252 224 0 1253 149 0 1254 221 0 1255 223 0 1256 167 0 1257 232 0 1258 234 0 1259 159 0 1260 231 0 1261 228 0 1262 174 0 1263 235 0 1264 230 0 1265 136 0 1266 228 0 1267 235 0 1268 170 0 1269 233 0 1270 231 0 1271 146 0 1272 230 0 1273 236 0 1274 171 0 1275 234 0 1276 233 0 1277 144 0 1278 229 0 1279 232 0 1280 208 0 1281 238 0 1282 229 0 1283 178 0 1284 236 0 1285 237 0 1286 19 0 1287 91 0 1288 243 0 1289 91 0 1290 20 0 1291 243 0 1292 20 0 1293 248 0 1294 243 0 1295 246 0 1296 239 0 1297 19 0 1298 240 18 1299 245 18 1300 261 18 1301 249 19 1302 260 19 1303 259 19 1304 247 20 1305 240 20 1306 252 20 1307 248 21 1308 258 21 1309 260 21 1310 241 22 1311 253 22 1312 262 22 1313 242 23 1314 244 23 1315 259 23 1316 239 24 1317 247 24 1318 257 24 1319 246 25 1320 255 25 1321 256 25 1322 248 26 1323 243 26 1324 256 26 1325 242 27 1326 254 27 1327 253 27 1328 250 28 1329 262 28 1330 261 28 1331 239 29 1332 251 29 1333 255 29 1334 261 17 1335 262 17 1336 252 17 1337 262 17 1338 253 17 1339 252 17 1340 253 17 1341 254 17 1342 258 17 1343 254 17 1344 259 17 1345 258 17 1346 259 17 1347 260 17 1348 258 17 1349 258 30 1350 256 30 1351 251 30 1352 256 17 1353 255 17 1354 251 17 1355 251 31 1356 257 31 1357 253 31 1358 257 32 1359 252 32 1360 253 32 1361

@@ -97,9 +109,7 @@ - - - + @@ -109,4 +119,4 @@ - + \ No newline at end of file diff --git a/data/scene_schema.json b/data/scene_schema.json index 6a55791..1e80095 100644 --- a/data/scene_schema.json +++ b/data/scene_schema.json @@ -55,8 +55,11 @@ "hex_line_color" : { "type": "number" }, "hexlib_orientation" : { "type": "string" }, "hex_size" : { "type": "number" }, - "grid_type" : { "type": "string" }, - "hex_radius" : { "type": "number" } + "grid_type" : { "enum": ["hexagon", "hash_map"] }, + "oneOf": [ + {"properties": {"hex_radius": { "type": "number" }}, "required": ["hex_radius"]}, + {"properties": {"map_file": {"type": "string"}}, "required": ["map_file"]} + ] }, "required": [ "position", @@ -65,8 +68,7 @@ "hex_line_color", "hexlib_orientation", "hex_size", - "grid_type", - "hex_radius" + "grid_type" ] }, diff --git a/src/gooey.cpp b/src/gooey.cpp index 6234e82..cc40c24 100644 --- a/src/gooey.cpp +++ b/src/gooey.cpp @@ -15,6 +15,7 @@ #include "hexgrid.h" #include "util.h" #include "gooey.h" +#include "scene_loader.h" // forward declarations @@ -135,10 +136,18 @@ void renderHexgridWindow(hexgrid& grid, ImGuiWindowFlags window_flags) { ImGui::SetNextWindowPos(ImVec2(0,270)); - ImGui::SetNextWindowSize(ImVec2(350, 350)); + ImGui::SetNextWindowSize(ImVec2(350, 370)); ImGui::SetNextWindowBgAlpha(0.3f); ImGui::Begin("Hexgrid", nullptr, window_flags); + // NOTE: only show file dialog for hash_map grid type + if (grid.gridT == HASH_MAP) { + ImGui::Text(grid.map_file); + if (ImGui::Button("Save")) { + slSaveGridFile(grid); + } + } + ImGui::Text("Draw Mode:"); if (ImGui::RadioButton("None", (grid.draw_mode == NONE))) grid.draw_mode = NONE; diff --git a/src/hexgame.cpp b/src/hexgame.cpp index 76f5908..24b4d79 100644 --- a/src/hexgame.cpp +++ b/src/hexgame.cpp @@ -7,7 +7,7 @@ #define VSYNC_ENABLED true #define DATA_DIR "../data" -#define DEFAULT_SCENE_FILE "test_scene.json" +#define DEFAULT_SCENE_FILE "hashmap_scene.json" #define SCENE_SCHEMA_FILE "scene_schema.json" #define MAX_ENTITIES 1000 @@ -62,7 +62,7 @@ loadSceneFromJson(game_state* s, render_state* rs) slParseHexGrid(sd, gs->grid, rs->palette_image); if (slCreateHexRenderGroups(gs->grid, rs)) { - if (!hgInit(gs->grid, rs->filled_hex_render_group, rs->hex_line_render_group)) { + if (!hgInit(gs->grid, rs->filled_hex_render_group, rs->hex_line_render_group, DATA_DIR)) { slFreeSceneDoc(sd); return false; } diff --git a/src/hexgrid.cpp b/src/hexgrid.cpp index 663ba11..7fdc04a 100644 --- a/src/hexgrid.cpp +++ b/src/hexgrid.cpp @@ -7,6 +7,7 @@ // forward declarations hex_info createHexInfo(hexgrid& hg, int q, int r); void createHexagonGrid(hexgrid& hg); +bool createHashMapGrid(hexgrid& hg, const char* data_dir); void populateFilledHexGLBuffers(hexgrid& hg, hex_info& hxi, render_group* rg_filled); void populateLineGLBuffers(hexgrid& hg, hex_info& hxi, render_group* rg_lines); @@ -14,16 +15,22 @@ void populateLineGLBuffers(hexgrid& hg, hex_info& hxi, render_group* rg_lines); // interface bool -hgInit(hexgrid& hg, render_group* rg_filled, render_group* rg_lines) +hgInit(hexgrid& hg, render_group* rg_filled, render_group* rg_lines, const char* data_dir) { Orientation o = (hg.layout_mode == LAYOUT_FLAT) ? layout_flat : layout_pointy; hg.hexlib_layout = Layout(o, Point(hg.hex_size, hg.hex_size), Point(hg.position.x, hg.position.y)); - if (hg.gridT == HEXAGON) { - createHexagonGrid(hg); - } else { - LOG(ERROR) << "Unhandled grid type\n"; - return false; + switch (hg.gridT) { + case HEXAGON: + createHexagonGrid(hg); + break; + case HASH_MAP: + if (!createHashMapGrid(hg, data_dir)) + return false; + break; + default: + LOG(ERROR) << "Unhandled grid type\n"; + return false; } uint hex_count = hg.hex_map.size(); @@ -338,6 +345,23 @@ createHexagonGrid(hexgrid& hg) } } +bool +createHashMapGrid(hexgrid& hg, const char* data_dir) +{ + LOG(DEBUG) << "starting createHashMapGrid with map_file: " << hg.map_file << "\n"; + + uint max_len = 256; + char full_path[max_len]; + if (utilConcatPath(full_path, data_dir, hg.map_file, max_len)) { + char* hashmap_contents = utilDumpTextFile(full_path); + // parse contents + // insert hexes into hex_map + return true; + } + + return false; +} + void populateFilledHexGLBuffers(hexgrid& hg, hex_info& hxi, render_group* rg_filled) { diff --git a/src/hexgrid.h b/src/hexgrid.h index 63fae7f..796cef3 100644 --- a/src/hexgrid.h +++ b/src/hexgrid.h @@ -69,6 +69,9 @@ struct hexgrid v3f position; v3f normal; uint hex_size; + + // NOTE: all these properties aren't used by every map type + char map_file[256]; uint hex_radius; v2f fill_color_uv; @@ -84,7 +87,7 @@ struct hexgrid }; -bool hgInit(hexgrid& hg, render_group* rg_filled, render_group* rg_lines); +bool hgInit(hexgrid& hg, render_group* rg_filled, render_group* rg_lines, const char* data_dir); bool hgAddHex(hexgrid& hg, v3f hex_coords, render_group* rg_filled, render_group* rg_lines); diff --git a/src/scene_loader.cpp b/src/scene_loader.cpp index f71079e..06b9b57 100644 --- a/src/scene_loader.cpp +++ b/src/scene_loader.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "aixlog.hpp" #include "entity.h" @@ -19,6 +20,10 @@ struct slSceneDoc rapidjson::Document* doc; }; +// TODO: find a better way to avoid threading 'data_dir' through gooey +// this would be a good candidate to go in some global application config structure +static const char* g_data_dir; + // forward declarations bool parseFile(rapidjson::Document* doc, const char* data_dir, const char* file_name); @@ -46,6 +51,7 @@ slLoadFile(const char* data_dir, const char* scene_file, const char* schema_file return nullptr; } + g_data_dir = data_dir; return sd; } @@ -114,20 +120,26 @@ slParseHexGrid(slSceneDoc* sd, hexgrid& hg, util_image& palette_image) const rapidjson::Value& json_grid = (*sd->doc)["hex_grid"]; std::string grid_type_str = json_grid["grid_type"].GetString(); - if (grid_type_str == "hexagon") + if (grid_type_str == "hexagon") { hg.gridT = HEXAGON; + hg.hex_radius = json_grid["hex_radius"].GetInt(); + } else if (grid_type_str == "parallelogram") hg.gridT = PARALLELOGRAM; else if (grid_type_str == "rhombus") hg.gridT = RHOMBUS; - else if (grid_type_str == "hash_map") + else if (grid_type_str == "hash_map") { hg.gridT = HASH_MAP; + // NOTE: 256 is the size of hg.map_file[256] + // TODO: should probably define max_len as a constant somewhere + utilCopyCStr(hg.map_file, utilBaseName(json_grid["map_file"].GetString()), 256); + } - hg.hex_size = json_grid["hex_size"].GetInt(); glm::vec3 pos = parseVec3(json_grid["position"]); hg.position.x = pos.x; hg.position.y = pos.y; hg.position.z = pos.z; + hg.hex_size = json_grid["hex_size"].GetInt(); hg.fill_color_uv = utilGetPaletteCoords(palette_image, json_grid["fill_color"].GetInt()); hg.selected_fill_color_uv = utilGetPaletteCoords(palette_image, @@ -136,10 +148,6 @@ slParseHexGrid(slSceneDoc* sd, hexgrid& hg, util_image& palette_image) std::string orientation_str = json_grid["hexlib_orientation"].GetString(); hg.layout_mode = (orientation_str == "layout_flat") ? LAYOUT_FLAT : LAYOUT_POINTY; - - if (hg.gridT == HEXAGON) { - hg.hex_radius = json_grid["hex_radius"].GetInt(); - } } bool @@ -182,6 +190,38 @@ slParseLights(slSceneDoc* sd, rg_point_light* lights, uint& num_lights, uint max return true; } +bool +slSaveGridFile(hexgrid& hg) +{ + uint max_len = 256; + char full_path[max_len]; + if (utilConcatPath(full_path, g_data_dir, hg.map_file, max_len)) { + LOG(INFO) << "saving grid file: " << full_path << "\n"; + + // assemble json from hexgrid + rapidjson::Document doc; + // need to store grid properties: hex_size, world origin, world normal?, layout_mode? + // hex properties: hex space coordinates, world XPos/YPos, world hex vertices + + // write document to buffer + rapidjson::StringBuffer sb; + rapidjson::Writer writer(sb); + doc.Accept(writer); + + // write buffer to file + if (utilWriteTextFile(full_path, sb.GetString())) { + LOG(INFO) << "save successful\n"; + return true; + } + + LOG(ERROR) << "error saving file: " << full_path << "\n"; + return false; + } + + LOG(ERROR) << "error creating path\n"; + return false; +} + // internal diff --git a/src/scene_loader.h b/src/scene_loader.h index 3c9a736..a92b41d 100644 --- a/src/scene_loader.h +++ b/src/scene_loader.h @@ -30,3 +30,6 @@ void slParseHexGrid(slSceneDoc* sd, hexgrid& hg, util_image& palette_image); bool slCreateHexRenderGroups(hexgrid& hg, render_state* rs); bool slParseLights(slSceneDoc* sd, rg_point_light* lights, uint& num_lights, uint max_lights); + +// TODO: this is pretty hacky atm just for testing +bool slSaveGridFile(hexgrid& hg); diff --git a/src/util.cpp b/src/util.cpp index 2474bdd..d10598e 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -30,6 +30,35 @@ utilBaseName(const char* path_str) return path_str; } +bool +utilCopyCStr(char* dest, const char* src, uint max_len) +{ + assert(std::strlen(src) < MAX_STRING_LENGTH && max_len <= MAX_STRING_LENGTH); + if (std::strlen(src) + 1 > max_len) + return false; + + std::memcpy(dest, src, std::strlen(src) + 1); + return true; +} + +bool +utilConcatPath(char* out, const char* base_dir, const char* file_name, uint max_len) +{ + size_t l1 = std::strlen(base_dir); + size_t l2 = std::strlen(file_name); + size_t padded = l1 + l2 + 2; // NOTE: null term + '/' + + if (padded <= MAX_STRING_LENGTH && padded <= max_len) { + int c = std::snprintf(out, padded, "%s/%s", base_dir, file_name); + if (c > 0) + return true; + else + return false; + } + + return false; +} + // TODO: don't use ftell() to get filesize // https://wiki.sei.cmu.edu/confluence/display/c/FIO19-C.+Do+not+use+fseek%28%29+and+ftell%28%29+to+compute+the+size+of+a+regular+file char * @@ -54,6 +83,13 @@ utilDumpTextFile(const char* filename) return buf; } +bool +utilWriteTextFile(const char* filename, const char* text) +{ + + return false; +} + void * utilLogAlloc(uint item_count, uint type_size, const char* file_name, const int line) { @@ -85,7 +121,8 @@ utilLoadImage(const char* base_dir, const char* filename) { const uint max_path = 256; // NOTE: util_image.file_path is char[256] const char* base_name = utilBaseName(filename); - uint l = std::strlen(base_dir) + std::strlen(base_name) + 1; // NOTE: +1 for '/' char + // NOTE: +1 for '/' char, +1 for null + uint l = std::strlen(base_dir) + std::strlen(base_name) + 2; assert(l < max_path); char full_path[l]; std::memcpy(full_path, base_dir, std::strlen(base_dir) + 1); diff --git a/src/util.h b/src/util.h index 6432408..9538994 100644 --- a/src/util.h +++ b/src/util.h @@ -101,6 +101,13 @@ utilConvertColor(GLfloat buf[3], uint32 color) buf[2] = (GLfloat) ((color >> 8) & 0xFF) / (GLfloat) 255; } +// NOTE: max_len should be the allocated size of dest +bool utilCopyCStr(char* dest, const char* src, uint max_len); + +// NOTE: returns new string with '/' between +// NOTE: max_len should be the size of return buffer. +bool utilConcatPath(char* out, const char* base_dir, const char* file_name, uint max_len); + const char* utilBaseName(const char* path_str); // NOTE: Wrapper for calloc that will send error message on out of memory @@ -111,6 +118,8 @@ void utilSafeFree(const void* mem); char* utilDumpTextFile(const char* filename); +bool utilWriteTextFile(const char* filename, const char* text); + util_image utilLoadImage(const char* base_dir, const char* filename); void utilFreeImage(util_image image);