From 15beb60ade240af4e00b0d204f7e89a4d35dca36 Mon Sep 17 00:00:00 2001 From: hgn Date: Wed, 19 Oct 2022 03:22:15 +0100 Subject: [PATCH] MENY --- main.c | 65 +++++++++++------ menu.h | 135 +++++++++++++++++++++++++++++++++++ models_src/ch_jordan.mdl | Bin 612140 -> 612140 bytes models_src/rs_menu.mdl | Bin 0 -> 108353 bytes player.h | 4 +- player_animation.h | 6 +- render.h | 2 - shaders.sh | 2 +- shaders/alphatest.h | 12 ++-- shaders/gpos.h | 12 ++-- shaders/menu.fs | 19 +++++ shaders/menu.h | 89 +++++++++++++++++++++++ shaders/planeinf.h | 12 ++-- shaders/route.h | 12 ++-- shaders/sky.h | 12 ++-- shaders/standard.h | 12 ++-- shaders/standard.vs | 2 +- shaders/terrain.h | 12 ++-- shaders/unlit.fs | 2 +- shaders/vblend.h | 12 ++-- shaders/water.h | 12 ++-- textures_src/graffitibox.png | Bin 566894 -> 568970 bytes 22 files changed, 350 insertions(+), 84 deletions(-) create mode 100644 menu.h create mode 100644 models_src/rs_menu.mdl create mode 100644 shaders/menu.fs create mode 100644 shaders/menu.h diff --git a/main.c b/main.c index 5cce721..bbb4c32 100644 --- a/main.c +++ b/main.c @@ -27,6 +27,7 @@ #include "world.h" #include "player.h" #include "network.h" +#include "menu.h" static int cl_ui = 1, cl_menu = 0; @@ -70,13 +71,13 @@ vg_info(" ' ' '--' [] '----- '----- ' ' '---' " steam_init(); vg_loader_highwater( NULL, steam_end, NULL ); - vg_loader_highwater( network_init, network_end, NULL ); } void vg_load(void) { vg_loader_highwater( render_init, render_free, NULL ); + vg_loader_highwater( menu_init, menu_free, NULL ); vg_loader_highwater( world_init, world_free, NULL ); vg_loader_highwater( player_init, NULL, NULL ); @@ -92,7 +93,7 @@ void vg_load(void) static void vg_start(void) { - player_load_model( "ch_outlaw" ); + player_load_model( "ch_jordan" ); reset_player( 1, (const char *[]){ "start" } ); } @@ -109,21 +110,27 @@ void vg_update( int loaded ) if( loaded ) { + if( vg_get_button_down( "menu" ) ) + { + cl_menu = !cl_menu; + } + draw_origin_axis(); network_update(); - player_update_pre(); - world_update( player.phys.rb.co ); - } - if( vg_get_button_down( "menu" ) ) - { - cl_menu = !cl_menu; + if( !cl_menu ) + { + player_update_pre(); + world_update( player.phys.rb.co ); + } + + menu_update( cl_menu ); } } static void vg_update_fixed( int loaded ) { - if( loaded ) + if( loaded && !cl_menu ) { player_update_fixed(); } @@ -131,7 +138,7 @@ static void vg_update_fixed( int loaded ) static void vg_update_post( int loaded ) { - if( loaded ) + if( loaded && !cl_menu ) { player_update_post(); } @@ -146,17 +153,32 @@ static void vg_framebuffer_resize( int w, int h ) static void render_main_game(void) { + v3f *active_cam_inv = NULL, + *active_cam = NULL; + m4x4f world_4x4; - m4x3_expand( player.camera_inverse, world_4x4 ); + + if( cl_menu ) + { + active_cam = menu_cam; + active_cam_inv = menu_cam_inv; + } + else + { + active_cam_inv = player.camera_inverse; + active_cam = player.camera; + } + + m4x3_expand( active_cam_inv, world_4x4 ); static float fov = 97.0f; - float fov_target = player.phys.on_board? 125.0f: 108.0f; + float fov_target = (player.phys.on_board&&!cl_menu)? 125.0f: 108.0f; fov = vg_lerpf( fov, fov_target, vg.time_delta * 2.0f ); gpipeline.fov = freecam? 60.0f: fov; /* 120 */ m4x4_projection( vg.pv, gpipeline.fov, (float)vg.window_x / (float)vg.window_y, - 0.02f, 2100.0f ); + 0.1f, 2100.0f ); m4x4_mul( vg.pv, world_4x4, vg.pv ); glEnable( GL_DEPTH_TEST ); @@ -167,15 +189,18 @@ static void render_main_game(void) int draw_solid = player.is_dead | freecam; - render_world( vg.pv, player.camera ); + render_world( vg.pv, active_cam ); if( draw_solid ) - draw_player(); - render_water_texture( player.camera ); + draw_player( active_cam ); + + render_water_texture( active_cam ); glBindFramebuffer( GL_FRAMEBUFFER, 0 ); - render_water_surface( vg.pv, player.camera ); + render_water_surface( vg.pv, active_cam ); + render_world_gates( vg.pv, player.phys.rb.co, active_cam ); - render_world_gates( vg.pv, player.phys.rb.co, player.camera ); + if( cl_menu ) + menu_render( vg.pv ); /* Copy the RGB of what we have into the background buffer */ glBindFramebuffer( GL_READ_FRAMEBUFFER, 0 ); @@ -200,7 +225,7 @@ static void render_main_game(void) (float)vg.window_x / (float)vg.window_y, 0.01f, 600.0f ); m4x4_mul( vg.pv, world_4x4, vg.pv ); - draw_player(); + draw_player( active_cam ); } /* Draw back in the background @@ -242,6 +267,7 @@ void vg_render(void) void vg_ui(void) { +#if 0 if( cl_menu ) { ui_rect menu = @@ -275,7 +301,6 @@ void vg_ui(void) } } -#if 0 if( lightedit ) { ui_global_ctx.cursor[0] = 10; diff --git a/menu.h b/menu.h new file mode 100644 index 0000000..e062b30 --- /dev/null +++ b/menu.h @@ -0,0 +1,135 @@ +#ifndef MENU_H +#define MENU_H + +#include "common.h" +#include "model.h" +#include "world_render.h" +#include "player.h" + +#include "shaders/menu.h" + +static mdl_header *menu_model; +static glmesh menu_glmesh; +static v3f menu_cam_pos, + menu_target_cam_pos; +static v4f menu_cam_q = { 0.0f, 0.0f, 0.0f, 1.0f }, + menu_target_cam_q; +static m4x3f menu_cam, menu_cam_inv; +static float menu_opacity = 0.0f; + +static void menu_init(void) +{ + menu_model = mdl_load( "models/rs_menu.mdl" ); + + if( !menu_model ) + vg_fatal_exit_loop( "No menu model" ); + + vg_acquire_thread_sync(); + mdl_unpack_glmesh( menu_model, &menu_glmesh ); + vg_release_thread_sync(); + + shader_menu_register(); +} + +static void menu_update( int enabled ) +{ + static int enabled_last = 0; + + if( enabled && !enabled_last ) + { + v3_copy( player.camera[3], menu_cam_pos ); + m3x3_q( player.camera, menu_cam_q ); + + if( player.phys.on_board ) + { + v4f r90; + q_axis_angle( r90, player.phys.rb.up, VG_PIf*-0.5f ); + q_mul( r90, player.phys.rb.q, menu_target_cam_q ); + m4x3_mulv( player.phys.rb.to_world, (v3f){-1.0f,1.6f,0.0f}, + menu_target_cam_pos ); + } + else + { + v4f r180; + q_axis_angle( r180, player.phys.rb.up, VG_PIf ); + q_mul( r180, player.phys.rb.q, menu_target_cam_q ); + m4x3_mulv( player.phys.rb.to_world, (v3f){0.0f,1.6f,-1.0f}, + menu_target_cam_pos ); + } + + q_normalize( menu_target_cam_q ); + q_normalize( menu_cam_q ); + menu_opacity = 0.0f; + } + + if( enabled_last && !enabled ) + { + m3x3_q( player.camera, menu_target_cam_q ); + v3_copy( player.camera[3], menu_target_cam_pos ); + } + + float dt = vg.time_delta * 6.0f; + + q_nlerp( menu_cam_q, menu_target_cam_q, dt, menu_cam_q ); + v3_lerp( menu_cam_pos, menu_target_cam_pos, dt, menu_cam_pos ); + + q_m3x3( menu_cam_q, menu_cam ); + v3_copy( menu_cam_pos, menu_cam[3] ); + m4x3_invert_affine( menu_cam, menu_cam_inv ); + menu_opacity = vg_lerpf( menu_opacity, enabled, dt ); + + enabled_last = enabled; +} + +static void menu_render( m4x4f projection ) +{ + glEnable(GL_BLEND); + glDisable(GL_DEPTH_TEST); + glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); + glBlendEquation(GL_FUNC_ADD); + + shader_fscolour_use(); + shader_fscolour_uColour( (v4f){ 0.1f, 0.1f, 0.3f, menu_opacity*0.5f } ); + render_fsquad(); + + glEnable( GL_DEPTH_TEST ); + glDisable( GL_BLEND ); + + m4x3f mtx; + + shader_menu_use(); + shader_menu_uColour( (v4f){ 1.0f,1.0f,1.0f,1.0f} ); + shader_menu_uTexMain( 1 ); + vg_tex2d_bind( &tex_graffiti, 1 ); + + shader_menu_uPv( projection ); + mesh_bind( &menu_glmesh ); + + m4x3_identity( mtx ); + shader_menu_uMdl( mtx ); + mesh_draw( &menu_glmesh ); + + for( int i=0; inode_count; i++ ) + { + mdl_node *pnode = mdl_node_from_id( menu_model, i ); + + for( int j=0; jsubmesh_count; j++ ) + { + mdl_submesh *sm = + mdl_submesh_from_id( menu_model, pnode->submesh_start+j ); + + mdl_node_transform( pnode, mtx ); + m4x3_mul( player.phys.rb.to_world, mtx, mtx ); + shader_menu_uMdl( mtx ); + + mdl_draw_submesh( sm ); + } + } +} + +static void menu_free(void *_) +{ + mesh_free( &menu_glmesh ); +} + +#endif /* MENU_H */ diff --git a/models_src/ch_jordan.mdl b/models_src/ch_jordan.mdl index a191251303fd2bbaf9dbd915b23fc4446a303c4e..3af60ac1f22eb24213dc6e4e6a060c3d6d805cb7 100644 GIT binary patch delta 407 zcmXYqPbh<79LM`^V{g1zDH%!1Fzw(XZ;j`nNy=$T8WKg}VsW9=UWfTp{?%sBmdPk5 zi;H^E_DW6WAc_O0ofK-Ql`@hibNF07{eGWsc;6J>H_3-+wTow6HhK{IQKzL_;`jJ|)wmHvf}OjO5?UTcRioQV*t^Up?&nYkVaOpjWi8K8wzkOg<^^nsVzjeD z?R{}lpA_J?+uT2UkX0Ulc>wkOiOpGX-2pE5zMtV2sF=< zB;Din%;n($ApoZqZZ;jns$h#HN%VT~|Dk3RL9u^goy?Tk=y0+yqm`#kM37r4r-{5& zOSg**e<2p%LbE<~aTQIh^ss~vCCnVcr0&r*OfvgNAsFCSE<@OZh)>X}t+R-3sxOnB X_wRtC;b=KJP8KJdqgVVpg7@$jfkUKw delta 407 zcmXYqTPTBJ9Ebh3u`m0|O35L~#bVlp8~FH&6fn^9!t+0;?u@9c5N=x4M+B?fB!Mwr8n6lJp-85)!**R?1x$A7;|Waus-*m=aBWTYxmKhCxK z(Fv&Wm3i!0MheSz!G{}m;KHjwuG`ckR{>!!GM~5_L@tD8n_Lt--bdNg2+x~`F(-=K zRher2ql3C7FTY*n{$U1TjnMRUOulTFDwC&?%+xYyDBq8e&{@;}L-ss;Vq@nl=}j-C_DEt>EBEsV!eEj= ziE}K6E+!fOLhN_}#rn6S(@=P#j)mPwWoAFRbhpkH65ZeM!w9!>;>QZam=93X!d_6< b-4M+Vd6vM@aI_p9Czcb((JP)MVP^doX{e-R diff --git a/models_src/rs_menu.mdl b/models_src/rs_menu.mdl new file mode 100644 index 0000000000000000000000000000000000000000..a8524864eb40ae59fdd02312257d1729975b2874 GIT binary patch literal 108353 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%0AI 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 literal 0 HcmV?d00001 diff --git a/player.h b/player.h index 0d77338..38c3224 100644 --- a/player.h +++ b/player.h @@ -318,7 +318,7 @@ static void player_update_post(void) player_camera_update(); } -static void draw_player(void) /* 3 */ +static void draw_player( m4x3f cam ) { if( player.is_dead ) player_model_copy_ragdoll(); @@ -326,7 +326,7 @@ static void draw_player(void) /* 3 */ shader_viewchar_use(); vg_tex2d_bind( &tex_characters, 0 ); shader_viewchar_uTexMain( 0 ); - shader_viewchar_uCamera( player.camera[3] ); + shader_viewchar_uCamera( cam[3] ); shader_viewchar_uPv( vg.pv ); shader_link_standard_ub( _shader_viewchar.id, 2 ); glUniformMatrix4x3fv( _uniform_viewchar_uTransforms, diff --git a/player_animation.h b/player_animation.h index ea7d566..9f0c0d5 100644 --- a/player_animation.h +++ b/player_animation.h @@ -139,8 +139,8 @@ static void player_animate(void) offset[1] *= -0.3f; offset[2] *= 0.01f; - offset[0] = vg_clampf( offset[0], -0.8f, 0.8f ); - offset[1] = vg_clampf( offset[1], -0.5f, 0.0f ); + offset[0]=vg_clampf(offset[0],-0.8f,0.8f)*(1.0f-fabsf(player.fslide)*0.9f); + offset[1]=vg_clampf(offset[1],-0.5f,0.0f); /* * Animation blending @@ -245,7 +245,7 @@ static void player_animate(void) skeleton_lerp_pose( sk, ground_pose, air_pose, player.ffly, apose ); - float add_grab_mod = 1.0f - player.ffly*phys->grab; + float add_grab_mod = 1.0f - player.ffly;//*phys->grab; /* additive effects */ { diff --git a/render.h b/render.h index f97d612..8122b2a 100644 --- a/render.h +++ b/render.h @@ -8,7 +8,6 @@ #include "shaders/blit.h" #include "shaders/standard.h" #include "shaders/vblend.h" -#include "shaders/unlit.h" static void render_water_texture( m4x3f camera ); static void render_water_surface( m4x4f pv, m4x3f camera ); @@ -347,7 +346,6 @@ static void render_init(void) shader_blit_register(); shader_standard_register(); shader_vblend_register(); - shader_unlit_register(); vg_acquire_thread_sync(); { diff --git a/shaders.sh b/shaders.sh index b4b0f03..4d78657 100755 --- a/shaders.sh +++ b/shaders.sh @@ -13,7 +13,6 @@ shader(){ shader blit blit.vs blit.fs shader standard standard.vs standard.fs shader vblend standard.vs vblend.fs -shader unlit standard.vs unlit.fs shader terrain standard.vs terrain.fs shader sky standard.vs sky.fs shader planeinf standard.vs planeinf.fs @@ -27,6 +26,7 @@ shader gatelq gate.vs gate_lq.fs shader route standard.vs route.fs shader routeui routeui.vs routeui.fs shader viewchar standard_skinned.vs viewchar.fs +shader menu standard.vs unlit.fs cd shaders ../bin/linux/tools/shader $target_shaders diff --git a/shaders/alphatest.h b/shaders/alphatest.h index 80ce028..9b161c1 100644 --- a/shaders/alphatest.h +++ b/shaders/alphatest.h @@ -18,8 +18,8 @@ static struct vg_shader _shader_alphatest = { "\n" "#line 2 0 \n" "\n" -"uniform mat4 uPv;\n" "uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" "\n" "out vec4 aColour;\n" "out vec2 aUv;\n" @@ -186,19 +186,19 @@ static struct vg_shader _shader_alphatest = { ""}, }; -static GLuint _uniform_alphatest_uPv; static GLuint _uniform_alphatest_uMdl; +static GLuint _uniform_alphatest_uPv; static GLuint _uniform_alphatest_uTexGarbage; static GLuint _uniform_alphatest_uTexMain; static GLuint _uniform_alphatest_uCamera; static GLuint _uniform_alphatest_uPlane; static GLuint _uniform_alphatest_g_world_depth; -static void shader_alphatest_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_alphatest_uPv, 1, GL_FALSE, (float *)m ); -} static void shader_alphatest_uMdl(m4x3f m){ glUniformMatrix4x3fv( _uniform_alphatest_uMdl, 1, GL_FALSE, (float *)m ); } +static void shader_alphatest_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_alphatest_uPv, 1, GL_FALSE, (float *)m ); +} static void shader_alphatest_uTexGarbage(int i){ glUniform1i( _uniform_alphatest_uTexGarbage, i ); } @@ -219,8 +219,8 @@ static void shader_alphatest_register(void){ } static void shader_alphatest_use(void){ glUseProgram(_shader_alphatest.id); } static void shader_alphatest_link(void){ - _uniform_alphatest_uPv = glGetUniformLocation( _shader_alphatest.id, "uPv" ); _uniform_alphatest_uMdl = glGetUniformLocation( _shader_alphatest.id, "uMdl" ); + _uniform_alphatest_uPv = glGetUniformLocation( _shader_alphatest.id, "uPv" ); _uniform_alphatest_uTexGarbage = glGetUniformLocation( _shader_alphatest.id, "uTexGarbage" ); _uniform_alphatest_uTexMain = glGetUniformLocation( _shader_alphatest.id, "uTexMain" ); _uniform_alphatest_uCamera = glGetUniformLocation( _shader_alphatest.id, "uCamera" ); diff --git a/shaders/gpos.h b/shaders/gpos.h index 1cb364e..8b7dbf4 100644 --- a/shaders/gpos.h +++ b/shaders/gpos.h @@ -18,8 +18,8 @@ static struct vg_shader _shader_gpos = { "\n" "#line 2 0 \n" "\n" -"uniform mat4 uPv;\n" "uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" "\n" "out vec4 aColour;\n" "out vec2 aUv;\n" @@ -174,16 +174,16 @@ static struct vg_shader _shader_gpos = { ""}, }; -static GLuint _uniform_gpos_uPv; static GLuint _uniform_gpos_uMdl; +static GLuint _uniform_gpos_uPv; static GLuint _uniform_gpos_uCamera; static GLuint _uniform_gpos_g_world_depth; -static void shader_gpos_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_gpos_uPv, 1, GL_FALSE, (float *)m ); -} static void shader_gpos_uMdl(m4x3f m){ glUniformMatrix4x3fv( _uniform_gpos_uMdl, 1, GL_FALSE, (float *)m ); } +static void shader_gpos_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_gpos_uPv, 1, GL_FALSE, (float *)m ); +} static void shader_gpos_uCamera(v3f v){ glUniform3fv( _uniform_gpos_uCamera, 1, v ); } @@ -195,8 +195,8 @@ static void shader_gpos_register(void){ } static void shader_gpos_use(void){ glUseProgram(_shader_gpos.id); } static void shader_gpos_link(void){ - _uniform_gpos_uPv = glGetUniformLocation( _shader_gpos.id, "uPv" ); _uniform_gpos_uMdl = glGetUniformLocation( _shader_gpos.id, "uMdl" ); + _uniform_gpos_uPv = glGetUniformLocation( _shader_gpos.id, "uPv" ); _uniform_gpos_uCamera = glGetUniformLocation( _shader_gpos.id, "uCamera" ); _uniform_gpos_g_world_depth = glGetUniformLocation( _shader_gpos.id, "g_world_depth" ); } diff --git a/shaders/menu.fs b/shaders/menu.fs new file mode 100644 index 0000000..e957ddf --- /dev/null +++ b/shaders/menu.fs @@ -0,0 +1,19 @@ +out vec4 FragColor; + +uniform sampler2D uTexMain; +uniform vec4 uColour; + +in vec4 aColour; +in vec2 aUv; +in vec3 aNorm; +in vec3 aCo; + +void main() +{ + vec4 diffuse = texture( uTexMain, aUv ); + + if( diffuse.a < 0.5 ) + discard; + + FragColor = vec4( diffuse.rgb, 1.0 ) * uColour; +} diff --git a/shaders/menu.h b/shaders/menu.h new file mode 100644 index 0000000..67700e8 --- /dev/null +++ b/shaders/menu.h @@ -0,0 +1,89 @@ +#ifndef SHADER_menu_H +#define SHADER_menu_H +static void shader_menu_link(void); +static void shader_menu_register(void); +static struct vg_shader _shader_menu = { + .name = "menu", + .link = shader_menu_link, + .vs = +{ +.orig_file = "../../shaders/standard.vs", +.static_src = +"layout (location=0) in vec3 a_co;\n" +"layout (location=1) in vec3 a_norm;\n" +"layout (location=2) in vec2 a_uv;\n" +"layout (location=3) in vec4 a_colour;\n" +"layout (location=4) in vec4 a_weights;\n" +"layout (location=5) in ivec4 a_groups;\n" +"\n" +"#line 2 0 \n" +"\n" +"uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" +"\n" +"out vec4 aColour;\n" +"out vec2 aUv;\n" +"out vec3 aNorm;\n" +"out vec3 aCo;\n" +"out vec3 aWorldCo;\n" +"\n" +"void main()\n" +"{\n" +" vec3 world_pos = uMdl * vec4(a_co,1.0);\n" +" gl_Position = uPv * vec4( world_pos, 1.0 );\n" +" aColour = a_colour;\n" +" aUv = a_uv;\n" +" aNorm = mat3(uMdl) * a_norm;\n" +" aCo = a_co;\n" +" aWorldCo = world_pos;\n" +"}\n" +""}, + .fs = +{ +.orig_file = "../../shaders/unlit.fs", +.static_src = +"out vec4 FragColor;\n" +"\n" +"uniform sampler2D uTexMain;\n" +"uniform vec4 uColour;\n" +"\n" +"in vec4 aColour;\n" +"in vec2 aUv;\n" +"in vec3 aNorm;\n" +"in vec3 aCo;\n" +"\n" +"void main()\n" +"{\n" +" vec3 diffuse = texture( uTexMain, aUv ).rgb;\n" +" FragColor = vec4( diffuse, 1.0 );\n" +"}\n" +""}, +}; + +static GLuint _uniform_menu_uMdl; +static GLuint _uniform_menu_uPv; +static GLuint _uniform_menu_uTexMain; +static GLuint _uniform_menu_uColour; +static void shader_menu_uMdl(m4x3f m){ + glUniformMatrix4x3fv( _uniform_menu_uMdl, 1, GL_FALSE, (float *)m ); +} +static void shader_menu_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_menu_uPv, 1, GL_FALSE, (float *)m ); +} +static void shader_menu_uTexMain(int i){ + glUniform1i( _uniform_menu_uTexMain, i ); +} +static void shader_menu_uColour(v4f v){ + glUniform4fv( _uniform_menu_uColour, 1, v ); +} +static void shader_menu_register(void){ + vg_shader_register( &_shader_menu ); +} +static void shader_menu_use(void){ glUseProgram(_shader_menu.id); } +static void shader_menu_link(void){ + _uniform_menu_uMdl = glGetUniformLocation( _shader_menu.id, "uMdl" ); + _uniform_menu_uPv = glGetUniformLocation( _shader_menu.id, "uPv" ); + _uniform_menu_uTexMain = glGetUniformLocation( _shader_menu.id, "uTexMain" ); + _uniform_menu_uColour = glGetUniformLocation( _shader_menu.id, "uColour" ); +} +#endif /* SHADER_menu_H */ diff --git a/shaders/planeinf.h b/shaders/planeinf.h index a0272a8..bb2a89a 100644 --- a/shaders/planeinf.h +++ b/shaders/planeinf.h @@ -18,8 +18,8 @@ static struct vg_shader _shader_planeinf = { "\n" "#line 2 0 \n" "\n" -"uniform mat4 uPv;\n" "uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" "\n" "out vec4 aColour;\n" "out vec2 aUv;\n" @@ -72,16 +72,16 @@ static struct vg_shader _shader_planeinf = { ""}, }; -static GLuint _uniform_planeinf_uPv; static GLuint _uniform_planeinf_uMdl; +static GLuint _uniform_planeinf_uPv; static GLuint _uniform_planeinf_uCamera; static GLuint _uniform_planeinf_uPlane; -static void shader_planeinf_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_planeinf_uPv, 1, GL_FALSE, (float *)m ); -} static void shader_planeinf_uMdl(m4x3f m){ glUniformMatrix4x3fv( _uniform_planeinf_uMdl, 1, GL_FALSE, (float *)m ); } +static void shader_planeinf_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_planeinf_uPv, 1, GL_FALSE, (float *)m ); +} static void shader_planeinf_uCamera(v3f v){ glUniform3fv( _uniform_planeinf_uCamera, 1, v ); } @@ -93,8 +93,8 @@ static void shader_planeinf_register(void){ } static void shader_planeinf_use(void){ glUseProgram(_shader_planeinf.id); } static void shader_planeinf_link(void){ - _uniform_planeinf_uPv = glGetUniformLocation( _shader_planeinf.id, "uPv" ); _uniform_planeinf_uMdl = glGetUniformLocation( _shader_planeinf.id, "uMdl" ); + _uniform_planeinf_uPv = glGetUniformLocation( _shader_planeinf.id, "uPv" ); _uniform_planeinf_uCamera = glGetUniformLocation( _shader_planeinf.id, "uCamera" ); _uniform_planeinf_uPlane = glGetUniformLocation( _shader_planeinf.id, "uPlane" ); } diff --git a/shaders/route.h b/shaders/route.h index 2ecff91..271a47f 100644 --- a/shaders/route.h +++ b/shaders/route.h @@ -18,8 +18,8 @@ static struct vg_shader _shader_route = { "\n" "#line 2 0 \n" "\n" -"uniform mat4 uPv;\n" "uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" "\n" "out vec4 aColour;\n" "out vec2 aUv;\n" @@ -199,19 +199,19 @@ static struct vg_shader _shader_route = { ""}, }; -static GLuint _uniform_route_uPv; static GLuint _uniform_route_uMdl; +static GLuint _uniform_route_uPv; static GLuint _uniform_route_uTexGarbage; static GLuint _uniform_route_uTexGradients; static GLuint _uniform_route_uCamera; static GLuint _uniform_route_uColour; static GLuint _uniform_route_g_world_depth; -static void shader_route_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_route_uPv, 1, GL_FALSE, (float *)m ); -} static void shader_route_uMdl(m4x3f m){ glUniformMatrix4x3fv( _uniform_route_uMdl, 1, GL_FALSE, (float *)m ); } +static void shader_route_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_route_uPv, 1, GL_FALSE, (float *)m ); +} static void shader_route_uTexGarbage(int i){ glUniform1i( _uniform_route_uTexGarbage, i ); } @@ -232,8 +232,8 @@ static void shader_route_register(void){ } static void shader_route_use(void){ glUseProgram(_shader_route.id); } static void shader_route_link(void){ - _uniform_route_uPv = glGetUniformLocation( _shader_route.id, "uPv" ); _uniform_route_uMdl = glGetUniformLocation( _shader_route.id, "uMdl" ); + _uniform_route_uPv = glGetUniformLocation( _shader_route.id, "uPv" ); _uniform_route_uTexGarbage = glGetUniformLocation( _shader_route.id, "uTexGarbage" ); _uniform_route_uTexGradients = glGetUniformLocation( _shader_route.id, "uTexGradients" ); _uniform_route_uCamera = glGetUniformLocation( _shader_route.id, "uCamera" ); diff --git a/shaders/sky.h b/shaders/sky.h index 0abd65a..53fb5a6 100644 --- a/shaders/sky.h +++ b/shaders/sky.h @@ -18,8 +18,8 @@ static struct vg_shader _shader_sky = { "\n" "#line 2 0 \n" "\n" -"uniform mat4 uPv;\n" "uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" "\n" "out vec4 aColour;\n" "out vec2 aUv;\n" @@ -78,17 +78,17 @@ static struct vg_shader _shader_sky = { ""}, }; -static GLuint _uniform_sky_uPv; static GLuint _uniform_sky_uMdl; +static GLuint _uniform_sky_uPv; static GLuint _uniform_sky_uColour; static GLuint _uniform_sky_uTexGarbage; static GLuint _uniform_sky_uTime; -static void shader_sky_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_sky_uPv, 1, GL_FALSE, (float *)m ); -} static void shader_sky_uMdl(m4x3f m){ glUniformMatrix4x3fv( _uniform_sky_uMdl, 1, GL_FALSE, (float *)m ); } +static void shader_sky_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_sky_uPv, 1, GL_FALSE, (float *)m ); +} static void shader_sky_uColour(v4f v){ glUniform4fv( _uniform_sky_uColour, 1, v ); } @@ -103,8 +103,8 @@ static void shader_sky_register(void){ } static void shader_sky_use(void){ glUseProgram(_shader_sky.id); } static void shader_sky_link(void){ - _uniform_sky_uPv = glGetUniformLocation( _shader_sky.id, "uPv" ); _uniform_sky_uMdl = glGetUniformLocation( _shader_sky.id, "uMdl" ); + _uniform_sky_uPv = glGetUniformLocation( _shader_sky.id, "uPv" ); _uniform_sky_uColour = glGetUniformLocation( _shader_sky.id, "uColour" ); _uniform_sky_uTexGarbage = glGetUniformLocation( _shader_sky.id, "uTexGarbage" ); _uniform_sky_uTime = glGetUniformLocation( _shader_sky.id, "uTime" ); diff --git a/shaders/standard.h b/shaders/standard.h index 16f36ce..cf98fb0 100644 --- a/shaders/standard.h +++ b/shaders/standard.h @@ -18,8 +18,8 @@ static struct vg_shader _shader_standard = { "\n" "#line 2 0 \n" "\n" -"uniform mat4 uPv;\n" "uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" "\n" "out vec4 aColour;\n" "out vec2 aUv;\n" @@ -65,16 +65,16 @@ static struct vg_shader _shader_standard = { ""}, }; -static GLuint _uniform_standard_uPv; static GLuint _uniform_standard_uMdl; +static GLuint _uniform_standard_uPv; static GLuint _uniform_standard_uTexMain; static GLuint _uniform_standard_uColour; -static void shader_standard_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_standard_uPv, 1, GL_FALSE, (float *)m ); -} static void shader_standard_uMdl(m4x3f m){ glUniformMatrix4x3fv( _uniform_standard_uMdl, 1, GL_FALSE, (float *)m ); } +static void shader_standard_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_standard_uPv, 1, GL_FALSE, (float *)m ); +} static void shader_standard_uTexMain(int i){ glUniform1i( _uniform_standard_uTexMain, i ); } @@ -86,8 +86,8 @@ static void shader_standard_register(void){ } static void shader_standard_use(void){ glUseProgram(_shader_standard.id); } static void shader_standard_link(void){ - _uniform_standard_uPv = glGetUniformLocation( _shader_standard.id, "uPv" ); _uniform_standard_uMdl = glGetUniformLocation( _shader_standard.id, "uMdl" ); + _uniform_standard_uPv = glGetUniformLocation( _shader_standard.id, "uPv" ); _uniform_standard_uTexMain = glGetUniformLocation( _shader_standard.id, "uTexMain" ); _uniform_standard_uColour = glGetUniformLocation( _shader_standard.id, "uColour" ); } diff --git a/shaders/standard.vs b/shaders/standard.vs index ac062ae..33f4154 100644 --- a/shaders/standard.vs +++ b/shaders/standard.vs @@ -1,7 +1,7 @@ #include "vertex_standard.glsl" -uniform mat4 uPv; uniform mat4x3 uMdl; +uniform mat4 uPv; out vec4 aColour; out vec2 aUv; diff --git a/shaders/terrain.h b/shaders/terrain.h index 0635662..5ebef38 100644 --- a/shaders/terrain.h +++ b/shaders/terrain.h @@ -18,8 +18,8 @@ static struct vg_shader _shader_terrain = { "\n" "#line 2 0 \n" "\n" -"uniform mat4 uPv;\n" "uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" "\n" "out vec4 aColour;\n" "out vec2 aUv;\n" @@ -200,18 +200,18 @@ static struct vg_shader _shader_terrain = { ""}, }; -static GLuint _uniform_terrain_uPv; static GLuint _uniform_terrain_uMdl; +static GLuint _uniform_terrain_uPv; static GLuint _uniform_terrain_uTexGarbage; static GLuint _uniform_terrain_uTexGradients; static GLuint _uniform_terrain_uCamera; static GLuint _uniform_terrain_g_world_depth; -static void shader_terrain_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_terrain_uPv, 1, GL_FALSE, (float *)m ); -} static void shader_terrain_uMdl(m4x3f m){ glUniformMatrix4x3fv( _uniform_terrain_uMdl, 1, GL_FALSE, (float *)m ); } +static void shader_terrain_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_terrain_uPv, 1, GL_FALSE, (float *)m ); +} static void shader_terrain_uTexGarbage(int i){ glUniform1i( _uniform_terrain_uTexGarbage, i ); } @@ -229,8 +229,8 @@ static void shader_terrain_register(void){ } static void shader_terrain_use(void){ glUseProgram(_shader_terrain.id); } static void shader_terrain_link(void){ - _uniform_terrain_uPv = glGetUniformLocation( _shader_terrain.id, "uPv" ); _uniform_terrain_uMdl = glGetUniformLocation( _shader_terrain.id, "uMdl" ); + _uniform_terrain_uPv = glGetUniformLocation( _shader_terrain.id, "uPv" ); _uniform_terrain_uTexGarbage = glGetUniformLocation( _shader_terrain.id, "uTexGarbage" ); _uniform_terrain_uTexGradients = glGetUniformLocation( _shader_terrain.id, "uTexGradients" ); _uniform_terrain_uCamera = glGetUniformLocation( _shader_terrain.id, "uCamera" ); diff --git a/shaders/unlit.fs b/shaders/unlit.fs index ec4d7ae..bc57d62 100644 --- a/shaders/unlit.fs +++ b/shaders/unlit.fs @@ -11,5 +11,5 @@ in vec3 aCo; void main() { vec3 diffuse = texture( uTexMain, aUv ).rgb; - FragColor = vec4(pow(diffuse,vec3(1.0)),1.0); + FragColor = vec4( diffuse, 1.0 ); } diff --git a/shaders/vblend.h b/shaders/vblend.h index b8027c1..61b0cce 100644 --- a/shaders/vblend.h +++ b/shaders/vblend.h @@ -18,8 +18,8 @@ static struct vg_shader _shader_vblend = { "\n" "#line 2 0 \n" "\n" -"uniform mat4 uPv;\n" "uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" "\n" "out vec4 aColour;\n" "out vec2 aUv;\n" @@ -199,18 +199,18 @@ static struct vg_shader _shader_vblend = { ""}, }; -static GLuint _uniform_vblend_uPv; static GLuint _uniform_vblend_uMdl; +static GLuint _uniform_vblend_uPv; static GLuint _uniform_vblend_uTexGarbage; static GLuint _uniform_vblend_uTexGradients; static GLuint _uniform_vblend_uCamera; static GLuint _uniform_vblend_g_world_depth; -static void shader_vblend_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_vblend_uPv, 1, GL_FALSE, (float *)m ); -} static void shader_vblend_uMdl(m4x3f m){ glUniformMatrix4x3fv( _uniform_vblend_uMdl, 1, GL_FALSE, (float *)m ); } +static void shader_vblend_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_vblend_uPv, 1, GL_FALSE, (float *)m ); +} static void shader_vblend_uTexGarbage(int i){ glUniform1i( _uniform_vblend_uTexGarbage, i ); } @@ -228,8 +228,8 @@ static void shader_vblend_register(void){ } static void shader_vblend_use(void){ glUseProgram(_shader_vblend.id); } static void shader_vblend_link(void){ - _uniform_vblend_uPv = glGetUniformLocation( _shader_vblend.id, "uPv" ); _uniform_vblend_uMdl = glGetUniformLocation( _shader_vblend.id, "uMdl" ); + _uniform_vblend_uPv = glGetUniformLocation( _shader_vblend.id, "uPv" ); _uniform_vblend_uTexGarbage = glGetUniformLocation( _shader_vblend.id, "uTexGarbage" ); _uniform_vblend_uTexGradients = glGetUniformLocation( _shader_vblend.id, "uTexGradients" ); _uniform_vblend_uCamera = glGetUniformLocation( _shader_vblend.id, "uCamera" ); diff --git a/shaders/water.h b/shaders/water.h index 0171a52..ca3ab47 100644 --- a/shaders/water.h +++ b/shaders/water.h @@ -18,8 +18,8 @@ static struct vg_shader _shader_water = { "\n" "#line 2 0 \n" "\n" -"uniform mat4 uPv;\n" "uniform mat4x3 uMdl;\n" +"uniform mat4 uPv;\n" "\n" "out vec4 aColour;\n" "out vec2 aUv;\n" @@ -220,8 +220,8 @@ static struct vg_shader _shader_water = { ""}, }; -static GLuint _uniform_water_uPv; static GLuint _uniform_water_uMdl; +static GLuint _uniform_water_uPv; static GLuint _uniform_water_uTexMain; static GLuint _uniform_water_uTexDudv; static GLuint _uniform_water_uTexBack; @@ -230,12 +230,12 @@ static GLuint _uniform_water_uTime; static GLuint _uniform_water_uCamera; static GLuint _uniform_water_uSurfaceY; static GLuint _uniform_water_g_world_depth; -static void shader_water_uPv(m4x4f m){ - glUniformMatrix4fv( _uniform_water_uPv, 1, GL_FALSE, (float *)m ); -} static void shader_water_uMdl(m4x3f m){ glUniformMatrix4x3fv( _uniform_water_uMdl, 1, GL_FALSE, (float *)m ); } +static void shader_water_uPv(m4x4f m){ + glUniformMatrix4fv( _uniform_water_uPv, 1, GL_FALSE, (float *)m ); +} static void shader_water_uTexMain(int i){ glUniform1i( _uniform_water_uTexMain, i ); } @@ -265,8 +265,8 @@ static void shader_water_register(void){ } static void shader_water_use(void){ glUseProgram(_shader_water.id); } static void shader_water_link(void){ - _uniform_water_uPv = glGetUniformLocation( _shader_water.id, "uPv" ); _uniform_water_uMdl = glGetUniformLocation( _shader_water.id, "uMdl" ); + _uniform_water_uPv = glGetUniformLocation( _shader_water.id, "uPv" ); _uniform_water_uTexMain = glGetUniformLocation( _shader_water.id, "uTexMain" ); _uniform_water_uTexDudv = glGetUniformLocation( _shader_water.id, "uTexDudv" ); _uniform_water_uTexBack = glGetUniformLocation( _shader_water.id, "uTexBack" ); diff --git a/textures_src/graffitibox.png b/textures_src/graffitibox.png index 3f5521f9da01da80cf9fc21485884a86a3091441..0376d45097fbba5a44c7d0d1b9f566f969fde258 100644 GIT binary patch delta 35370 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 z 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 delta 33251 zcmX_n1yEG)_xGg{knWHU0ZA#PTS2;8y1QYyq%?>qC5=c*cXxMpH_~0pfBpXEeRuYm zxih;nyZ1TgIp-7SMl91D57B(31B0z3B$Pf#NKiRCJD6M9ngIY)93)Oiwo{b6+fX-G zg$0uk2WLnrjWsNS-Fj$SdW`m9wz|UJfv1>LaxL!C`-Q~&d|t=Xow?Dyu8;7mUYQP6!7Cu z$qjE#&#u^dDw{^11iZhe_5&HBf`hJ|G%Hl;D^;!|4_!DK-|;tGHaLUWWFPz7=C}Dq zkV2mXxs89RUUcCYXN~nZlT~JC;VR;hT*TwqtMFsG zw#;4kqGB&0k@74;g=>y_USNA7msBORs-Tz)e<-c4+QS)Ze5t2b`_>DqZV3)K-L?NK z`D@Y1j8TLWi_1^inJ0v(f9jigZk+CcUj;>5FC86GqX?ONmN%F6X^xtoe16ZbVo8%Z z|G?^>qyPW_*;r0S5*P-k0qQiWqSW|qI4V>OTo!sZuOh;rBe>8bxPJ>Cwh&+o5w?(E z3mLXhYLDPh{pi7~r`5Fa4W4qm-toXxc|xkMUDTqu*P(<=N=$MADHC}w<+KOz)~vEz zvsleo@R>p;#L@BZ+vG^m^s{Vpb4583{zqT3G zDsPtXnwZkan9FR}i>P=O5a7lA_9MSoxheMG2JyG0aF~Z?gr7YS+xl#b$>>?Cg2l&mJ~Ce0I&OTltD(dl%`xo(TB)Rh<@cKk z9hUguvq{9jY(pcQmE_4W_ys4d5J)P6`=c&^cbOF=@Z+J*(WRzse9p4MwN z;=!%5+dth{^F)iW+$`0w%hriS^7AjyW(e3mv$-)E%CA}sH@U>g@0rtFuE$>a%WQvf zao0{Lg3T|GN`*c-Pm0-qm=5|P+p)W~rAbNB_noOAivQX*nv(vV-TT$^CUcG7o>`^h znwb&?1t`GEZBP{v#u^&UZxP*Sw$m>-z5;=cLyFFrs9z-Y^#aIC-QN)6_dW(AWfFtI zRcp$4XWfduiKxmCaQ#2V*%o%wF+Co+deIF3B#6g2wRU+poZBM#w@|2*8UM~@$g&IR ztq~!P^0l-L+`l{Zl-jxG+PSV6O`CN8Gd?HQ74Dp#N z|9&q=v0pk3`qa~!(R!EgGxk?yyahh^rZ_D3Y=}JJCdLD=_bHuw;{eCRpM#s}ZNy7= z{o8lPH>p-M3o<$MrqR6*^d}V5hI^1cRIL?AlQTy3mXK!z_Ninrr>S{@No&1VXklUxN$-Mf)G(pwGk^ZD*+x67bjk`-OiON!xeSj=)|UB$O?U*Qo>L ztQSr0VWJP_qcwYqAA)K{6+y7ef&6rb{A1UtNdimQX=WEmBo8Y`ZDK&c>(|6^_sBFy zMxs~bgYEbEP1)5xot+aFf>dX+k#8S+d&y_XuGudyr5^z$eLI1q2YLe?Oq4n=OaC?H zycch0#@+HA=v{o0GueoGJ-+QB^YOr2zIe88IorYV6IlPDr^(zO@!Wq*utwzqH zv{*;RkAMF182Pqbt!vWqkYFE$Hk92nuy;O_d-Y=35o2(%Y&dwJ)6bj zGfKriZ@tpLvyCT?Hn(4a)|Vs%-yW!CULx)J)i<&rg`l;!a{G)t?x6&ATTuMDd<==Uj_GqwzG3Bs4EbaRbu}ZL9}zH zJoqX@-u3dOj76^iqYbVgv3!hdq>=})nOD^v5VLbz6Bvc-`4n+pnJ z%+DOhjP*2wVU9=@*ggOkCvt0vmIIpIjCBx?$OwQAE1S+wUFsUSY-h2M}Jzeo)m1lOa&6YSmw`v zyI!!vmhzGJ!4*U|;}qMF`M2S+G#JBO`VH9*O^dyWy9`@}Y^uw$MsM+xywIX%!@kCQ z?>26>T$>Gn2LkF%c=cjuA5z1^uF2m-Zn*5({FDi-x$7@879=jtTk9}sCXb+*0l+>nZA9X z_A)eaGLc&1J#ZojChJDl4SYIq+dOl6crm~NB#|ee)GUz7;T@}r{Zh6qV_Q~Tq|=D- z#zm};D=y2i(**tJ}dMbEZfy}x8J&L-%bsSvLGMC5Azp1|5*w8gkRq>-0-*c$q z`#wIch>a)~B}0BF&hcYAc|}+mR`p$I&i;lZjIj~zatN~;6<^@5_J)thwA?H8c`(M` zjta>GW^i<2XPJGS2l4s}uW;$4@dgUIy6ZJxsqgdR{jT<V>s(xSqvKOVWJ28wUF~#WM_WU zMzOzcF2D7Ij7DdNb220+BBO}EM}A(hbYP7q`hH&g|C3SV81o_L9i%^0iG)C4EtUl3UoRv_ObKPy&)E}l(dGA zzW$<;(^u*x7lF1e)OylF>PzR9$FJ(jK3{&hJ(aOytdhlc(+4M^?XBsS{OG!<> ztNi%)Xu@&PC+4}FaAZ};rCs*u52810i8ap^E zhAzDN#8{c{DMx&|CENWmKcY9c@p1dS_9auxo=v|57q@>1j;Q1N(tW)LYTs>d?3UQ|_6(5>)@$*E>0&lrmDjCnmt{vsE z!J=y8upO5CADYfNB0pDJEOq(ov?sdg|H!SDd)eA-JV^3&yhVF?nMwzX6a(Eo-cy<^ zY7AqIU>r7uqV2tw8+Qp=(Xr|wM)!oXT2PP^ z5EcEH#CWENJsJNU1CU_xF_NiICK9hW!aa7Vb7!~R7*a+?`jpa(eo;sMqP&{;t|w>m zF`0~DjOlIJLcjtWeq?3#AVKi9P!>bEWa_k5p*MwOtcC1-9((-5R?VO7XoUvnf4L-2 z0;u3D6`&2Obv=Vxi?Kg4?TZmTRfS%!snM|u05kga_5^N_>$=_b<1ZBmO_)39XcRs) z85~GxyGk9@7~gIg!}j|pR&+q-WD(LxQgc{2;XPG2={*0s6a-gqbMr)DAusueAPU2B z@YMB0*4{0ayw5XoO_87SxW4Cj;bYT6C7c~Db!Cq!=|QM~=i68~1i@I(mIbW|{>I(y zmBnls0wV&8MNH8+{>F1_nLq8=aC02i3Gn6eu46wWV0B4;3j3?9uj2P|X{hSFU(<&J z**V3(O+;J*LRrI~hL_zNAv^mowh=vo}3AetFLhkW0^vi>u`Za=P z>XJLu6|{OVxlu29dQ`ra`yw#|MTj|r1e74t(B4c%$C&J_{JpQ`J!vj@?@O&*WI0J} zoi2xqasIdH>!0``XYLEXTXEp^XR=z#+MxiUj z@&ckD&;m*fMBjjQBaXhH04i`Znhz>3Bu>|)A$W|&#(uV1jw z*I!b)=HeiVVHbq8nNA*%Bqp0(^691@s6h&5UXS0a{RYTS%JUZMGcc}(!b3JXZ$x}Y z_uXHOw6D9q>t`0HYxVN|hVj|-5(~o`6n1bM`o>-Bp`u_|e`690N*8ozF`FxJbK8VgVcJF(K$4GhsEzM=&F+u%SAT{7;;({}>S!!U zY%I=1DW;g+8X-^A5xgdM;SJ}CGQTW-u~?*P-f>HAWd+=zq~BlWE4E5Ci(?~#V%U;2 z2yLdPKwraGoksVgcFe?0N5?e}MX0@A$zv2}N4Ju5-g>)fjk1nIDeA?`LnucCi$wpL6DDVNYGgu5U zbT`&ZythNA9QWCp%m|x)ACjX$2!GDfhABMaIDBLBEsB3wpyTfh(kswK@cMX_Jl0~k ztbBQLN$rH>$38?kdi(Z=+#AE(Suyw5=?(%)tb~I`M1$0A$jYp^McqNR(;F(d&-?2_ zs}D*!b4E5*d?Qq_YJw7L56Ft`Dwr`-}>f`Af_{-@LC8CEI1KpB2^3jCL7mCq^J{6G*)BIq1X^c|0OgeAvhp138u^CeBZIWJ>OQ zD;khtw>H|6K8mU5y!I%6(^-<%=$`ofyV?!bWi7i-6%#4g;I!Fu|Frb*2iZT2oaEY5 zP%6YTD;2Uc&x0j&sRW|q5qHEnY8>`MaAz&O&rZrlcOJA_ zJAc+{MhHl112DTHLBk@4FivwgKuY5~Gyuxxf-ZI5vJured+?Chxow1*7bKvs5IMPB z1wGF)^xKcjgPf_@Q4+@Xy8N9>qYmRXA9A$Fp`0#KZEz|q%TpVpQI)AlWn5UCl1TrH*09(kQs0P{J8nur|q^|Hh?CksVy7~_p zQnrI&+Z7yWr2S)`mPbSxCwhfB>-vj@PR87fo~4*xSLV;b=xfsSS)6 z{-cQEL1UISO598Fw~Vk3@H?q(phxyycQqa!*vwm0RAeHosqdyfQ!*Jyw}!>kF8cKW z0#&x(Y&ZIM@yq_+E`WE1&{l3i+vLye4c;kINB=<6Sq~X#gI;w8LN78#Es8_}17Jr1 zp#looWqcphb6<s3Q+))r~o+o*hO6SU=re`SG9ISP)X$ba5#C>554L(f;=(-aJ`h^ z<9xE^LpPCO(_;_ivZuAY3D`!BD(>1;RaNX-QVuDox@z$`dAR@blI(ckL>-fZI?|q1 z&`a|al?I^F`C82p+< z$TG=6l`HbT-=dQ@kZEUptOC=Oy@*)>@!E} zTX&5r2;%2A5rm`_6!h=Kz?kaS)@cz_R#iPUz4T)U5eDK9UXaWIw(pDf&413$<=CHH zY%8^+Dz<&QKD;9iqfmafT$E|_b3Ykvc?CvYjEX$>o5TuVHx^9g%`Z09zM1QRylH_- zn!!UwyH*bra2zbKME`A0E9A>xkwPE!k8yg#JB$_K*<@HE%Iv42jTk zD1m{GtSG)cM>l7;F$a3-5jNv(^?J5k4+s=`Q|)D(Z+ZV*rw!a_oAQTa(O< z$-n^zu+?vU^AYfj!n>d+GOYM}P*mbaO^k8Q4&DvMA|kZ!;RpTXv$K!lw7vx&JITra zRWiLo3xrLKK&mK0w=cgle9!w0Q8X{8yK3WuOe{U~b%_qV{Q&KRPLuHZ8Y40k6c>Jq z@!0WG$H`B85NuRL{?K=wfsH+OtxqwFhM35KT)WoqFYi;Kxs#y%LSB@~gUsU33g_*; zK%V|-5=>e|B4F23kmaSSfU4eVS zgVKGgXmeJ|_)LZ+jUdK`0VhuAAn(}oDa1tW7h+%&>>R*)w*xwu|2$fd;(~1=uVv8q zXv!p7;bVW8@MlqAbNs0aY0;AddkcmreM*|n2h_(+2J~j4G3AZc)&@kMMJ=M3Hp+Xx z$WZ#Y%2{ac%IK}*0B9(&jw7@mC0{H%AHK2Za?O?^wwp5Y$IU=aizbZLNkWXud47jZ z_$F!d=D{omhw>PVDTz5M2$o7ZQoMmT(z^-^WA7x!>sUYaH}_uysG=&2qm)$ixLC+$ zF=NyD=;W7(Nu{xZw`hDF6D=HOHAY8nw|#27Qh1vW?jVonvXK_2C_T1MCItq(Edg%G z`OSq%!QHI^r`wh0p_KWi6QhTjBIdh@0|=Wc)~I;$6tGAz9mn1j^zp;v3R zsg$ce>G$jA1t+r}>INLI$O1OvO}iQUFTMZOV^kWGRbI6DHGeLBh`Vzut_w zf949P1wBp-PW~3oqrkTvc`W&L1z`zmIcStPWIA|wd3m{dx3&kg3!xLeNzEa_FwGl$ zU1-cUW9-yN9ZH^VtxCXD(O#D27y_dNh>rnbgGVZP@3$goj3kw8Xs@hU8%6T@mlddc zH~>+6NjUPg2%YKxXuz`h7lO1|L!YO4#9eV5Fo|R1$;eo8Ej7p7;8TG$3GSR$XV3CO z!_P_+L6zr3uMI7)qL7@W&E_dFn3y|;0`$|5zlF4Xgh0$f%>1N~cDhqV zGVlX{@lAgeAdu2ixNM%&KwaS+2g6~eCyER#P0?0rCCMs?MnC9Ud(X%5%163)Nt%%KzX!>U53N; zwxFdH!Jn0uE~3n(wTlM}kppvNX@z)mL@C}PW7s;my()L;hzEjmyjxR@88Qa$Uo9&l z^ha~tUk$@R))U|*eqQ7EUlwcJqeDH=8$ip&(qDBi&M| z*%OhBB&}vt_B(P+toM4DJ^W;8>KVP4v)G8!CdSamJ4QP6EUh}r_1C}MiF$HYh|c;^ zH>22=Ed6C&nUKE_uxJ$b?Q~Dh#xB2jqp6`aEWJkiXX5nle8N*SL`%=KAgoj{vhg|@ zh~r#~pmcqH1(0J74rp_~K?gTuAM$#cOLzUkxrZO9ay_ASs@B!o1INt;8=Xb$e{NMj zMQ_W-4ptnLEo_v!WOSW0*Jq14Olgj?HfpcV{3a1h8XQd0ec;Hf=%5)E9BZTm{_a*4 z!z0|^kJ%^hzKJ0n@TSS=HYiGY*~Z~Uc_SCGY@dwdHe+!RCIl>jF5ouFA2Oj6>ur9( zKC#IRa6H=n!Q!S&`E*M!{P)Lw_AC|(RiWFgiN3Jc;01GY%D*ER*jJ@YHGgw!7CsP5 zV2mxY`=DjaMp6)ijTiD78n3LcPZ5u2MDqn$M&+==03wQ$v=@!ab$U`;jvT>*szY~L)B%`b#9N)6%BpAgI9!niR3Vt7=(~cs#sn+eM9-@8BvO4-l4MA>)*%DO587H*dMAMuCwbAgY*3g6H?OCVNG;2BDd;DQ0 zzd4G${iatJxZpwi8Gglklq?YS=S&TbQ&Ci$n;~A|6J!sViu0({f^@U@TcoO-;cZqZ zAwpiaewRk%$0vzf|9ojTPw1sVbomm-)elajep;8onSa+^0>&CU@c@4%Vg#T}EAR&j z9TEVt@~qJ0WJ$lERrB-bW7s$NvD1wmBPl*~WHz)-fKQS|d>Fn1rLjat28?w4LeN`P zuE+e?2AN+e386-%BislsEgPBd?k(Zn&CNMNx(s37oug5?=^c4<`hTG!E^Uh?It|~r z9v-0QLjBc1nNud`X6nKEStKsWDVw7kY@PRF?Yj8Mg8-oLEx+IOHJuWYCh2xw*w521 z?AES?am=gztAE(~e){!=-)$#l%a0)n;a82z20g)XL20lKTM8f)nyVjSQ5`^q4HO<3 z_}NGRfC~5^DW=vDPQRwazqz#T%8@7MwjE1ZAab`A|NJmqyYguDcnyQgATs7#9-gD| z#O8;UMl62>XGu)Bw!-P67_`uiX7bd=rILKjfaX5oN&DK-utX#8j*fqP7D3Fuc;I)> zCqebo3W@RcOKd!EJ35NZzocG~&72IRU!j%}738eEn0kxgPXsN$ z*~vfav=c}un8mQLFU@2GmrZEq@*^k9B(FbwcFeQ|9e98}`x|N6jx{zbEEDT@LOa*e zr40cAvYO1p^*1oHYRXPsLSl|(#`BNVw_4x3@Ro~9uF&*}>s2!p&$O{r9#+CRxXh}q z4W$!`z9sfE#gzncK+6y-um=i{(B);|Lvz?!V&0Su64*>RL*9deV%>S9c!)uRA}H8s z1=^1mY-dM#WbEmWPb-nb*D$x^Hv|#p@ZDs!bY{Qb@bCQWNm}-ojPhUY45Zo!`OJI$ znQ%74vWw48l0OZ{INP!7Ifcij%&0w3Im5L-fk;%t1t4Bt&3PxK(UC1x1>Z*0a*EVD z$lkh?(3hJg1*ZL&F1TW=TMI-;_q*Sxxc4ra))B;v3@&_-_F8aBj!p>MG=^coAce$9 zRvNvr`2GDbg!LcO@z7ytzYJT!%?@xm`W;)KTu)Kjo?aW$V zxx3hvsTI1KQf0SBuhLJ-7dj@b6&f+Zt2D@XLuF$LhAuXfQT|*&_EnJ-@v_jHgXFbD zg&%m$$mGw7Sf={Cf7!Z3i2FTdkdvqx14sM$Ept%&zpxfh4*yLi%3jk(=Zo-BC+&?BhjLs*0(NHV*Cgs)wJflf? zQ4nitb9TZS@)Z$@TwLo5sW-Jm06?v*(xP_P-cYf+df|8@4)7mNZDbT0V71f>QaL$h z)}dCm1AS{)g5@`{xfm#G`a(1J3!0y`2!2mQ^9^LgC|h{CtHMk9981G2rbLLeSn+Fk=wl z>L%qrl5VD5Wo~vx542d}|E^F(bJ1VwG3!D>Nn)6^_}(G#F1b65hwcaOvX9BOl|0-g zd|4?aRC0S}=JRJs>A3-;!=)faIDfAunj5($FfXsjHO}E$@}auVKAGfCOUetbnWVU( zA}Vbb633m_-5zjty`brG{@YhB33r$qaN(LGRkD`@H2(^>F&Aq0S=3ao4-jRs#i#Bn z(eBEJXsY|z8wu5W0X}(KSz8a(;ZWJo)+^Mi0tmi;T7tu`CUBlZdY*-@K%zj2G=tcp zEX<4CJMMV9N}Jh|7?`p~X;Tv;QJp=u7@*BuW!Epyn5$!vs#xQlRf%= z$wM;RS+Tg6O-fo8?z@Bj$-~E?&fjxfgSQZ~H!5fW0tXyCu11bb6EA@X!{|FK8IE7V z{HoSylqS*OzIwY^UqrtxmEK_I*mHPj;L86X22@e*6P>wtx`zpQE8D_l5>&oBFxCuJ zcG||DIOB9Q@phDV-fep)Rrk+K_V7<$hvWmI{%F3HTgK4Ac5*fpmxk1#Bd6GX^|6JC z`xBvMAK~V!-rAB0JQPA2AD`=*DAac)U7^Zbp!nmB-`^Lk-&h&*u^dmckyeN~hX|Ow zI|THX(PfhjvB>Y99W)+Y|^%45s*6jkwakI#DZf$ly7JoKUjGSscK+YoRq zK#VAtw%?x!m@HSYme`$+h=jnx$lLMk;js^uJRlKk5whFkB<@SsP~?T zovn9P+q1^61Q%=pdb0$9%ZPs#9V(5cwEtOlx@Z{5i#1dEU zHxzoyNBVVVC^`Xl~cybXcsa#bUzRHg& zc-nS%|1PoDtltfS?D0|m+IT2JA&2Os1WWYPv%4it#ixKmUE=d!7K61vQ?pOEEysMI zuc3$hH)&YMvQzNEz=%P$OB>@rMngj+k@6%TyXTG~B$b7N9V<^SV*=E6Q$HuZZV zW~D{8tZGi>DcXfv=#I51eBkN6pvB?P3)A=@wM(isk8y*Yxjg9$%HvgaOXF<1>KTWm z)>{WuwyrB`7q5B8$SH@)%p^Ele)4^Nr*9{|5Xe4_gLo_7&UHlN%GqO4j$E4bc;D(X zr{^Kux2vQZvNONO2B^Vbw%0P?bh=%7S|z4N9`ir<3^kC+v_dFbMET>#j~uX z(WO6!AER+Mm}TH%@`+L4m9z846|u)iebf5<%R~d0VV>AYdW|~Y$FtrRV;`qGK`R3( z;h0kN3ngL*FPSvg_)q$cL25odeXptES&b(9GtVPUeHHD8ww&eYC6K*ePx&Qw!Qah= zL1xXB3t10|lEW5Q@K5xowRD<0JRGU@ZDJpPoflPF%v0>@Ex1!Id;QZK#PCT|UD6N7 zA6>_y0o@wg&n6-4@<_Cz49>tW=EsX8XhwlAmcaY{H!BIvypeyVR(HVXvQDh`fv*^Y zNm?5!&sh@v{%lx*V*YJrl1Wm-U881_h_SOemRC<(cB3}jAC=sW>{=?*z1hz4Ve>ct zevb;ZDuYnhdA#_z*}bL$6A~yO8tq)xor& zK0AQ>Qc~=!fGA76NcEpms9}@bhUoOryU0iQv033^!b%gce$?Q={#9K1U%0SI@O4!6 zFMH!2&fXnelO%SGN&g3TG_E1W+S0|^Z3 zIgWhZF{V64>5!0+5UO4FTXc#Qf!=CtHta%AmmrZuZ=jFo1mK{}q=27|+@b%p^&9i3 z0GE;BgLRlU1M3z1N&#t8zBjvO2b`Kd5N!$>sy>VJFHb&2=9iPP8caPO%%#~3vDAlcP==96t2wtuNB zT&lFMcZY(oatP!yGPQ&pB)$l~?y@gid3yUY02 zcWDYcjsnC861ru>mp!{^ntM_I{KJ3#%jSoCB9WA|fxQ~-WbsQXS%#5K7leNac26=2 zb@|jF?cWpvFj0hYAjcsn;Rmli0kITrXeF78KbQ~$12Tu^ERjlM%iin7{5m&?`+>Uq zdgUhufWpkoLRUH6OX0DUnEjxRuZ@j3UYt63gbR~)1!4HlvlQt+0FMe9d&kLs&0}8a z<-)*s?(?62`^DtbXUha8j_G7vw9kYgYWP(z!wKjkj}X|V^0CjNc79M`H;K<-B?_j_-tc-g{z97g zyXPn0gk2TvAC5r;L_gud_FMJp$<`B&t1{6vp@tsS_`sMP+@@6A>oTR!Lk4p3BCfZ# zH|TJm9a{ViUtLJ~M%u^j2hHyZA;@_J>l?wVunuJRZiqTLofVgZ?MY;_fzI>K>~?S_~8Q~J;E)7+j%Zw ziY`N5OKWTJW5H4&61uZSo>~*hCD&OvcBNaBIJE^$)4s&xPq-*J>>@P7$D5k$PsfOw z@7iMxf>=Bm>n7mtl6xJeO$F-Z65IR+Z%z#_wMZ!`!AmDqnj46|E{vcG!1Qhy34+C& zGsB1~-|2Y_}XrMq4c=vgrvcrDZXmP8YmgodAA_8AY6lYkQstsWoi ztal*q_ESyqSZqePpPU8dzAf46N_bUeQI-Ont_=jWB+ z+yHT~Haf>@o&C|B*6rA`=cutne?;!>8Hr(M+U4A*mp*aL9jsZx7EAe6$!vABak6z* z7L$>^6yQ=aaJq%3==Th>o*UB6%0W}dkfL;?`xXI?w}MqCl{2Hf`@N65htIyy+ffS8 z{jxVQC4*|+feZ}}hHnca!A;b^rXUA=SL_m_wHz-}u~VZfqGc0`Sc#-3gG`j0qJQ`$ zgh3GX_xs6q;G68$%=Gl`Hju1B+Jm=FT=N!RGwFq+VjJPSA=H0FXycpl+f+dAF~LCo0JD5- zkN9TZkt?8Vt})dRY5Hz9s_;oZk^x<5M;5tT)9!P zr(zNH!Tqm;Tj0Irtt&409I|lTpML3>9S*n{1E{{ipT?)a_?-eouAB(uE_VS6ypSdXgE0rNa~!NFSF4Gnbt6Cj0q!%NC01VTTK1!PU0yn%wdh z0V;}0zPI;xPTV36mUIUsI1?`^`>L?h?P=Iny{J&RKzLJ~u9#}UI2%}xd4Ty~ljp!# zY;x&Xxa5<%zJB!ewfkgn;N$|}IH=FRef;yRrOjF7Xf4>#zA%DJDmU1x2|bla^j9^L zD6#71WRaCIyBCM3zop(z!5RJu=J8H9efN(R!c~8Z^gP6{!Izoii;HAT8Oq1@=v7W5 zbq6V6spw6;GGJtBnXenu7j(7=JzRZmxCon;(R%^l2ymH}YefK=MU^&-72AWjr0Gd* z#b}zh=lvXBuVFS`KvUY3o?=uJh7%jvo!$&KB-3m#MV73XD-5XTZUw@X8h z=L`jI0EU!uV4C{9P#i~TY3b66y7)HUz9F+^YS$lfwstRzFCGaM&uy zH40aGADzdpGS91>L9&=b2Ip)AzD*9pp|bb@JUn2lIe3RPq3i7{<;|(SYYz?FXqIb+11dlphl2AdvKI$-^0%y3(}V$Oxm?P7-G@xlvtCOqXf9 z?ayte`_aNh`r0`e4>Y2I6&`bdDFY=@35h{1;3ei~2g!D90ExV8UWqhA+i*V+{x_Od z7FyKss}BQtv>u`w@7fiGVX{4ho0oLf&JPd7M%1#eBP?}MXSJa7X`LvTA^C7l(ns+X zC1`K|7BORQFx?CPu*C%l+Ej`ZAk?@fwBLH#`Ge(D9k@LKFHTPjCCUhah`;%2_>!2y zXcpGJoAN?(g2KUp<$HHz(Dzob=A*b5L1tk1Z9>+ zgQ@Hy$h(qc1thPC5x&6heL6x4Q10CQh+-;K`O^ruC)4LG2VCHC#Cf5%R&nY3XI#NP zVpcPHM>P#2VSc48Q2_uILj#bUtTvF08xbLkuG2o@E=0qX zc%gkK{LHJm*na8lbo4CyUYyJ?@;O&V#yLCr`mT@3C#%eDa3(fFF2X`WSqPhuRZr=Y zMHE$70jnS0i?#4BlU)h_xHnCJc|hB-9iA0bd;uq<=?q#<%+`TYiZ( z8w3-aHuu1i&F714Xldm9_4W04ME7^cSM}J($#b)k(udK~z~-u(n_IlGdr;tq0mdPX zkV1wk0>E<(C$-*`({@orN_HQZMe_QEfb%J-Uz~uo!BGL}=S#B!p@Oz7|1$+9X+`f( zYA$$ZrF+K8`S9`YWe#lS7?aHBuy>-0)j@voY+#Wo2n8V}1+yp;wk7RaAIee&XlXVogB0?lYe zYosfCagWgnS^L7j8dRDO*X5nL=)XmQrH65F>tVJ4F!6KSC|jNmMO4ge+XA3DLfy~# ztEnHcThc(DEli)0zNavSyUJ;YpB`PV7&NA#1yf0NV)!tRK&j>A9oRD{n5WGTV{dJ6 z2n(@HuasKv-y8r}RDxn5-rj2D%RnruENo31BQ%%tJ22n72CLDaXYwF3voJa!6Nf^urW6yblV6su5Q7^A zp-lu@v_k=zqcUR^Bv+M%jsUUI&q(7OW#jMaG~s7p084qdfTkTPc*|XaQ`puekRx*z znQG0CKt^HfKbjG62q+9_Q3$Ur>;j*zX`K4L4l z<6IoZiD6`m(6dI>02uYi%g>cc4x;=|EQc{v2Hq<}RaMoG8Re44YBF|8d}>T4epIz)I|mL40Ls) zk3{^NZ8pz6`i$g}hga|KhrJ)cjX9oM$`KjdR%J1TVe zU`=TFdj(+>ktj|LS1~x0pwFv08ryN31n7I|!FYUW?6W-OC$Bp9K&^s#mw0RSMAUssDvs(eZ6ZT_xX#IK| zqE}6g*E`t7^Y!IfMg)pzcChQ&ht+@HK?VOShi{GIc+2~A`-7&s2Zx81>7$t~EyCu^ zZE8_S^#kP`adiFyjr*XxLvM|Mi{san;nB?R)m68g^Cxa%7;h2`0&pWT!A1AStFh7b zK-u>l*+66s8$*ttO-WzjeCT4gfNUanBmMIMRmGD5@vHM#C5AG3fYlNmt)o-x#kyN}PqK}hO z;yDxyjOK<7dpt2dT!(nGZ!G{E<0cG0Yd8~ksV0#DZWGZ$m@-UEfHn?rDAS7mUgT6p z5UptFomEyu1o;zisN!xFU5n)}yCpFI0d%;eMnn{>(D9s4A5ehDLrqa!^Puj3GoeLo zUpn^2gNux6Gn)$0B7ruQmn=o_co^k(?;37rCEtNhZl0++Rm(l8Ns| zCCQxUW8|wu@ODL(kLsm`Ycs+ecU}-Hwwi6c8-gXt2QHFl2YG-mfkUCj55^=p9|n5C zDd$a`3ln-la>aUI*nI23L3YONRYRtOg9G2oL)ai3W#aAZs1@7qcW;}qT--9dzo|VI z%)ZYD!3!io*C8S&Gd42aXWUo%Rj9qKl{l?JPrggiB02vGSoUeShsa1Ui+2M&-SShE z$AjlO-}sS>`l@ZU2$ZyM`Z{DR_71!>>X)RbfPBgoZ$c3*MD|w;(P1_KHgO=Zo{Mw@ zr-Ulsg+P^j(_QJ(f^gT~`RQTN_G6nTtyp32cxk-rsGV3SOblZ#{?pk}#D2cyK1$ni zBJ@PA)5F}l`EoQ;gDirGeEog8ckDm*Lk3Jl(~h{Zy0Gcp4#y7dh;3k=Xt_JY`76>+|wyz6STw-`thq+G#THa@#%sIomysSjrMog~n6DpPW_;7kel(BN!7+Nx-`4sw2WZt9WOa^qwUi8rw z_MtQai{0nHmCEP-Jdv|mJXSJ9J-Cd(?x8-gdW4Pf8ZV$iT}|pPUPHO*SBCF{k_>Ld zgqzqID&bi5$uUvLF=YliR+-LWI>>p#-)PwwPQKFW07K`QU-z)o62TRB<3rdSXVCnt)<$hF~`GlKa)0M2p7LV#v!YJ!? z@<8j?aGX5r1k7Xtr_^gn!Y-$itqb+ zE_n%&lr9NL=|(^#1PN)74naU#ItEdYmJlfc1p#Sk$qUjA(%lWxT;Kxt9Y5dSd!PAl z=7Do&_St9ewbx#!+nC9pO8FKXXtqncAPx@j!!TqYji{iU<{nV;_jU1jQ!pywy={0` zu1K+Jz35H_DPBasE&YL)s!L_I!rISV_iv_w!45g=I(PDFN)WPtQj4b`#)i4FflWiJ z?Z4eq&9a{q(8!B#515plU)8x0n*FSX?64{DZ+cvIagK>WB+}hNW=6gi^>@RpHP6lNH zWdW)^##dPmy-3Phy-ctq>zmQDK)ft3sINHte!uHL_1MmOKE8Vq`ASg4N$^!fl@HFg zfI1Yq-IqBQ_|P<6lRBl$eq~j0x~Q;g^7M?a-QTi;-bJ$gHa!B&AqoBs!(T$4zx$9L zd0qY<{8yW?lU4!(*JQIggH<4C5T)zwjoQ1(Il68vGlH#x!=@`_Pj`L^6}id~tvAl1 zT19;iN|!Iz-(^Uhmo_cUg*rTXaS1V)cMTeAQ@K%%Bu)K!Q0FYNak41)TS+E`SZxW!eiFDZZDGFMZoo!-#ZEdkskquuznMy|Z75KNEfH#DIDn0H% zhC}l~kv=%3iOU$+YgLMg_?{*6kFhp!=ZOxCA?_E`Z~VOK2+UyYyK^sm?>#E~ALFG{ zv$O*J5qp5>IaTz!);C(%O5e6T0)jO*tc3|#C1Xc!7O8N)Cihh*cdZEkDeR%vgckhl zm$aq|PAkthW1E_sW@qFpq`S$_B>0ER1BXDvt_)M7I>T@R>Nw?YbckNuQ};RO;y z95O#+@ejY}%qA8{rmxO%-+eSW%lRw&XEp7=qE`r0g(DU}*_zUk%lFb!qJNDN(acPV zo#FN_fJNcN$5BKfAj*CzRB;>e;THGHJ7kS(!@Nvo@vo{h?nsQcZ;>J=E7>cmBJY_5 zK1X7U5_z`E%-G+HQlDIiE&%61*AvZ;HtQ!;;>2ed7IaI&{2q^mH_Y{Yu$COU<);Jg z5h-8k<%HA^3>`FY_g8A5ej5S&b_>k7ukO5rzW9gpJ-YDyPX(SrGN(33(Vrs*xhu&w zj}}{pnd&!qp!V!hT%9(e`@xtdVfTME-3R(jmyNyVrky5-t^YSW$o~pL(?hjGbumm9 zGkR#(%To%r$w6KA@ALag11-vUO@V=dL9Vf02e^e&f#yO6=e})MSGBuh%`lvw$G*|f zvV6S}U@1<%0|n(9B>FO0FlidIxYH%+&chbMU1Iz@$hn{)zJ(ENPBLtPLXA}gKVPG5 z6Ki~o*iR_)N|iuT-UK;j!W_MnLMPx;K%x}xBa$nD&V!OV#CA-N@!li>_c)zzTcLPATzjtUW6%Ou)^R1PebjpdF#g~*BU~ok(=Wpu6ptjFw9fO#O zEBz>okJQV5oi;2m4C`1iocCo#kzgf92RsP9z;K)Cz@X0exm4*W-8Dp z*1IMsFd>c9Oi0q_v@v-!x3bMR#p$WoSEb6lh{{Cbmk*r#E@(q5Ze z^?e(ksFI6eE65;z?AvZtoZfAfG|x z>lAGL4nD;vlCSljskq_U!d_4l6u)FkDJn}ge)J9^j?^jk_Pz0+XY_s1l6}j_>9Ol6 zp2^UP^*An=aj~X==b3lbDrZ*d*Yww$&Vsepf|{nuY8Ux4=xuO8cKR0@e&3v`0}S8@ z9#qK3XT=PDyS)7TZp+ubs0>lQD!a{K$y_sn&A@>#crEJ&AQ+MB{+1pvtZN5iTQ$Z# z&A^q$+Z7??VY4mKplhc=^Y*Vx6dHwd;IxsO+u>oWr~e}ss<_@>{pP;AmEMG~?>i93 zjTX2rHnB3U0iDp820kfC&!Ur5Mr7_NueCy49dGL02K(8rnekTY)g`4PMiDCx_q8*z z#c2Yd#wbeFC^fC^>yMq_)OyQrWe9{*;i8FE%w*b(F?KM<)`?W7joI*LH-zN77AT|U zzI!|X&Brv8sMU%S12Y9%aqdA(!ty_=O|m#rB@g7|oPMAPb*#3&*CY5*Ny#C@+XvEh zD1OG@Kg-`kO`T99RVr2z@4su1p6_%AFRE8(Z=`b19~_ij+oB)*`MZl&_JaXljoX(} z$Y;GD_2$_5O@G5vwJa99GFu#J>AaN>@}Y)OTvi5%Vf_&G z9fUvH!3*I~fJuK?o9)v!pIXhabCW?lMzA=7PD;mf0%a{oL&5$h zsPaTp39u5h?uS_@h+z~PRkCm7&|+1z?u-|8p&3$i`Or|nQEEFpnf&OeyNMEP`nzZT zf#oz(b7o-ojt>K2_=+&PXvmJ%h-c8|uH24KnigZ?F%nFdBl$i{2*4;qUmc=gNJl4)9?^|7mXq zGFw$Et`$ZgR_e0R@%+ufeC`k-|AOS24us(=Gag*@wF>2C7l0^74T^r8*0cm_M^|Eh z;Oo=lK`dY>=(7m$ysrI$B6fAi*3$X<|>WH?~{L@SI)7Qkc6o6qnpg z^Vwfu9cIkdn*+glpSyQMX1Vbh%984u)P{U|ZW1t{TuPeYHlXXS=K00C+Nq_?P@8T9 zV^%*icKZ}-npG*WU<=u{B{|x5@ubzK31BxR0>IL4eDSYTg2x||r$xB$sZT^XUy|f! z*3wgD{_+0&Bj&b}Tp?f7$)e}}!Rwqt3hLKK3CQn~F4f-%Y1h&BG1p&yt^}wD&7VMfkV1`7rR|-W+1bR%z|}3Zjl~~o;C(7V z`)%tjQQnWyV@_1#=}L+!2TO=4ZL6)SAgBr0KCHneu~MTZYCIRMkFm)j;WjTW%(_y?Ynn5V_7lem=EFH2Hm(TmD7M6J3 zFEliFehqbZp6^u-`N6&xUww4|rgj%+Bt4W;ABN5SnBi0^PbTP*%&dGu)txay}~RG}4y5fjUsxljD|u9&jYz;r9t0A?1mm)BG0 z0AG1wvbGsfLf}13*&To!@tr@|z7Ah4UwG_<&^3$PlELLPlQ4AHuGYG<4Y7O6v5{B( z6;4PjZ8poXszN84{`o^ou{wa`rJ7-l=O3t#{Yc?oVl7CJ9}wj|C@}=;USHZsdykqn z(pn$nuQsI@q4LJX-q{M`8XVcEO~(dS7XI zh53L{2ke>qcQih{WWx#{l3x3De9b+}fB`hn3-$L#z2NxG$mkJ(ERLG}8%rZjdT~N{ zCx_tqBZd@s)Erl+!hoEXN%V9N9SVwKzYa#gT30Dl{D>iA;3LJ$HzDYaz^AmnS*^_0 zJiXW+REjIQeFkkknFs}D);iS{y9q`zf$+5=G&}0@!LrN4gqTjil!r2#*+P0n)_9+L zE&gV_$l&CN3WhI<#RL)7^oy#;xL!o@HSAU3ZhzK4@@w+X-@7Y4k5Ak+u^+$LT3w9J z5q;WP*zy+aNZ|UiS$fEeYcPLp{r+LFL|@=DeyjKVO|n$DAIoxNR3G}0YM7=R;^v^9 zFMg8_;m3ULt$)OqZHXCRm@zKw@Hrmb*d1=eXBv0)(r$ z%p=ht+nVZG*TC%n{2Ow#&f(?J5+&s;at2MLI$MY!ZcOn%QZ%wW2B0(WKg0?F@<;>^SG zZORKKb$;uYo#*on-gmvjB<;E=J2o*uIl_WS){wasvk4O%06c`45^A$U0k4JP9r9ooe*p0maUVjU!ms9MP+guwo&A%` z>Jd%NFF|$(3r%R}hu#x=l?!aFTErs{G{0PXLK1D`QBIjOvYtL%LY`M)iw%||WU_wQ zpC1(Z*-?#4eTz5z{zOMan?i(Jd5xNRis9yH%8pcJ&wJ*!cUSzV7u?NB??1TN7?_z< z9rtbHovC#SJ(P3Cdo;UiDReA@Zd{Y-MA&7de}XMl=eMDKj&Q3#QXiC|8_&D1hF0U9 z_}+t`2H&WeoxWW=m|T_SHOY`(v^VBFG9PK;IC2LG+xQ9F`qljW{0y%RUSZIQy8==7 zcpaw7Q#uf%-3aC#@D8(!C};G@&8%}ni3Qe_R!LpC+p5wm(wKP_@j$+s~s9Ju}jn0qq{N}OS{#lh|i)Tilca}YvIx* zU(&Qa;o)!CAIU&Wawp06g@raUwqXTH0SmzFI6m}UpbNZK%Uwnb^_i<#8z9vYClPs!{$ zATnukIOj3cwA{JkbJ&Utt<6}eiFpux!$*BTJ)DCy;_1Dk4D83+q*`&bMcRP7{=2=bdR?M2rpWxzc+kD1+ zpmJAiv*+#QX4$LS)x`_l3;&;LffoPGB~_&==fXRU%!Q)UwqFZacKubl=@t;s_@h}n z2d#hPk|Ag@R_S|UJLfg)6srYnxF^v?8G(E00}#QW(<^^6X<`y?-Rhka&=bFAPyC#< z3LB6&Qr3L_@I%1k>-5N*wFk17eGXSgbCp9kOM_B>udxA+NO^_t&*VwNm~h=kN#)`M zr~Air{dTYb>63n;^nnoR_@|AP{*!;-AJw~PEGGC!-v$+RCo`$&GnW<6kZ^D-+khl7 zN>X&m3=XIyjd>4#w?hRN&4U0EV){zEfzPu?bSB5l`()`gnL&n;Y#{;4kTvl~*T#kF zzeX4Z+7))C5g*jdI&)tM9jxj%`oF}`W%-?<59deNMIRe~EZ5@35RU*)L>mHClejx( zsvWugL<5meWT^B#$MaNT`odKQ$*7`!zu7#<^tNP6KjPsHzqT2N)>7ZKV*I5)I_1R|X5R4># z@$->m?H)Q;34N#4*n#yj;n_pZ_dT<0{X)MWeU_t()sLD{82kkL4(fn)`+TWM!3bL0 zGj&%;nfy~E27mJIHn{C3O;kHVlx*UzqGcmju#Ht6iFSAu;oI!4a8GjkdjU;Bp=w&8 zx_^rfO938JtzU5AkMEo>&OK_uzuM1B8|mV);YNyDT=*_Bl74R(Nk*y}f1T4Re`J`) z296Yuf>tXv^mOY_2Bnfe7b(kG^hi9jk!mf?8`~Qj8xsdi8o~3GK0GXDh2bie;M(nnlgqhT9?V&TW^+!#%kpLF=)(3!&d@G2sCB84ag5O%vaP z?2_y`uKsyAc&2@miieDbVq2Ic?H`5+h3`MP`>FMV+nZ9`6`t}WE&n=B~G0d+X zV!yog_CgK{=>UUL&f7{NxweV8 ziTQ|=jDzcMi&wW(IUk*9!|#}6sC zEN8s5j!~gxUgT93vA1Ku*i4NCMk|ftGVYA!DT0RN#WtOL8`jS>+!%hCLu>c3IlkkY zw>lNFV8c_)vO&bCNC9&0Ry7g08U&agza&GJ7?!WlS?kJHilNVd8`P(6xJOD_pzdW`Rd)ewaA4nn%zOdyxvwIP`9LmDO8 zJpyu?(upPI0zn8~`_vUpU0F7M;iDhn!d@-=W7&}Q5zOR5-xEKP4Iduj$CExypq=KA$Upm!d0v1E1kJ@~fAMQ^#fp#{d zo$6@&`LhN8gBz#Br<6)JDCA#0X?4g3bOrUO+{SfdK7C5iU{565oh&oA6vYFUG!HIE zK^9^tJc+r983~ZMA7xZ&7ka1M_j>AxgxOt!z$|EcJ^!tV!aITe$9j5cqBGn;ERpMp z(`O-@wQxEPQnXTqG6o(q(|cmDuyEq^-4i`MQ!R2;HXR+{a3kI2FTI4g`%0#4)25&L z$WzD&$=Oy7WpZsr6m!;|y8phu^_(s113Bnd{$u_pp-}83&al^n3-v?g?M519$y4V3O7kv_+9fl9s^rx-HX%-*E znHaf-Bmn9Kapykcz7WT=V5Q+yO~3_QAfcz-N`Jc#$zLkhOhp-G44eGURKNbjZxMdi z@?$9F$>R9Dh~3iO+mymW*7qFIH@7b?&+`5$&7iGB$*{2QWmW#-U{QkNJK;$?#i6b3 z54Y#vh60XtvaVw-X{f;2;+MbOoj-vN4h{j^6}j)iREQ&#CeqY#XFn*cHv-O2*>n;w z8wnH-4rVL)*qG!L>Zhr?HKj&k3NT!pK@TL<*)&K&%tU-zEc0@X7Wm4cst;#=3#dFD z#`IHeH6(7~&1zgXzw=HNPBPWxi0uCJ@)>Ti()$sF1^-l?2ZTS>e$J}Bo)1MCKX@w7 zl_8CXMMP>zWy_BDRCY|O1R#}%J2nKVeHYa!mqHV+8qhHJK4WW2R~fTzU*NgjPq?bP zb5@4bg_%D@Dk?x@)fq7q#saK!tRoJ8A1a2r`mC-RlN0Rlyc9|+j4$1thSXwCt^av2 zD4}Nk$=?Y6{J99VDi^y4#;t$pE>g6hy(uM^()ntV>SSE&Bqb8G0|yl*Vp&z_L)xnt zLn>{DBISSz6FLe&ULUUI!Ok}+MG=XPMM{!`X8mTMaK z!2@Qnhb@^r4+bHkc{W)CT7Xv(t!`Uy5;y(sL$;~MUA2q?~!{)RV~mof2}HVZq$-{`y#1|swApm6%k@|=^&&oW!z>D0{?EO$fLDxsTtu$ZW zDXdrKBQ6wZh@Z%DJ=;i_N%<;mB2F5Luco|cg56$sx}~ZEQiRqP?ERBvxXmUw{4_CM z46)b@eaN%qZ)%9i98&BN-C24v6!!mt-A*E-Z`XQ@lL;F0meA_VdB-Q@QXOH@}Y0do{MWh=2oc{^U~w#3{|;xd3Yd2F3LuZ2NVB5TTF< zRzQy8Pfx^)E1fdySE1+gUu5$GoA_ZgzJIUJrTGUa(c=|?C@(DyRz{hCUmP}wu`j+w zKls>ExJ|7WcuzKm^4+`a20P7rd43?z9BVkWxk+WgAhib4sE+!lYD3wYM!oWYKXQ*Z zEiAi$25*$+W0*=@)+`@ffzcRU?!seK!D{)*vXmC1>4$ZWUfZ(DNVqY1MGvV)J#InB zT$X`Ojo0Uxi$StLzl@`of}UQWkB?7(N*fv_hQ9qRFYq|*RX$|T_;@$&j5x}K9&&oR zH|9ate2ZKTf7n-?R!-Zcx?&lhVFc5G1LJHe+RyboaNZGzp!eEAsn9-uU+G7W z9`RD*4GUu~z4b?d`Qt8`kN7$=jjHea=$M224*?bY`(xA8(ox!OlJzV#VC};G;#K+W z`nA?htQxxzHmumR;asTGAH1amZ?h~Vc(Cw-nd&7Q2Jgu;(Gf*an)xh0jlT%vOhiO< zJiEsSMTBm9Q|0jyJrN_1{E@GDxE^2yUGDIK&JW4V>9QK$Z2x(@>S;(s@W&$!bay!R zF(i6+zc%b^L7@r5yT%bYFs*RpjIsH4_Ab=yP0%Tm@olgY3oE<))dO?4{}NOxWXRmd zmBnZY-39wk^_daJFCtzHx)g<>F<-sb|4A_P1nH>R_3<&FtSp4OSFCoW(bC++ay~J4 zyF{wq_d1DB)$F;pbZqRXv8SqOcwtG&V_*=hhf>Irr4^F=@F_s}S@S%3Wwzix^XI+7m5%14vruEGP+?9z zi;We^Vi|j3NtKs-)F!z{*mi--rw{v48|UFD_=z01?sp*Mn_S$axA$Y7 zd%L>Ys!9ppg9{5kWvYI>OGtF8fB1wv=;DrpC}#2Ad?kpSWE$Qs7|jXD{U277M{w#F z@yjm~t$Ju>gD_e~LvD%0EFBOMIRUGM)qKo-%+MVh+kNuDFpQarg954PE@*kh-S!9R zz=&n}!uEWDt;ctpkR2AR?bZ|RmMQ6CP~7-;NggtjrtlNmp1(Om{QWx3bztB zdb!KK)Ot(~X1xiM^uO$d;Kf8W;GVWxL+hyd4&ThY0?daOV?OrUpR>g{mr(;8!AN3g zJKvuTrPNWqZh><2f-&LXFf(22@8$|op)$EESg`0A%kQAC)z61c+yWROby%;p>~h{} zyM=rrJG-yF5a%k%ej=*Z_d3GlQ-CH#;P_)=>n^vSppkpGJwkIXob4{ieXCz*ZS^8C z&>v}E>1W3)oT*LvUQJSnnl>Et)O*oofVdjJn<44Ba{)D6Aqix1AP>_qf;k?}$%mCP z{_8Ni^hIo|I?8$HF#B~8zD4Z~vhZ4%dAJ4D)rVSaactEu!FwKcSX*j|a9>w7fckx& z!nJgMHO8~Fq;OdT?I&HhEK#0U<$KU&7h3*jC59MR9hJJs@qdcvaSE@0a+4 zYa_IB-`-PVV!HvQ;(A;*F-5CWDkar@WK&o9!Lp0UOs6GHM}o)a_iyI}gXF`ZsBx(n zBBE?&`e&{P_3#r~^T|as4#o%*&s80WzG)htMIK)@h{!eyhS0cO=aw4hPPXiyowS{m z=?@!YXHe!`Lzqw_SnIyt`@6M!Eb53M|Kz-|27n8+zcy>e_! z%*wdBq}&{YwNRpwJ$;!M+dZ?rLHyLU%|EVF!hxa-@b>6XEXL`bV?wgNe<9aBG!_%V zmpNL4%Y6EOThOQ5qa9J|^zKnLvNk7_5ZecNZbs#z$Q;{6w9w=0*=6$c19AzieNh&? z%*(PF|MH1upBw7_syNusU4)fpQbHBvd{5#AKs%|*ulXwqs$Vc3zZu-V`|xt?s+lph zwr}|_0cHQ)Oc!2CGh!17P{WlIFsZ6I`9oWJfGVI!xC%87~j1up0QyJ4|obngx{v+9wTV>Nn-@88&$F zii`u|60tdQ5u5-(+*0M{qT1Q>OELWGGZ+?AWb$OroC)ea^q!q?nJ_RTG=N{*Iy2r1 zfVS{l`R`7PVT7CaB412gV1ECt28b~?g+w&rE+_h1e>m0s;+}y)y-&+wY-KF}&7!O> zsNp4XSzR{jZ|mEodMPw9rMiFcCvmL>a)E5F_wVKUg7EU(yH?Mdq3IB|`S4-PN3T?) zwixY>TwM0#(few_?ilrHPS=F|`ZS+0msWNY7+KhYDmmD6?Cbf52*9V8AP@3WG?_|= zf03%~GgeZb-U@_8kZY(Z6(aK?L;Mi?Dm4s_!K6rfKRsGg1@=Za$#96DRc(YoVL11d z)yzm(TPwlamExPQAJsO;$#N}$;0IoP7$F7`{ow0F4ER76tx2y6@NZ|ybBFEZA3F;b z7@XwHJ~Ww(y1a&h^}it1W_G*^hh6W9*r*yHb!6_)zToU%jZ~4mpD?V=#crYa zJSF-(+`X*QUTr!8On*{!^2l8&G`4Dg@V+-q8zrj&uVJdmh9L<1FP;)1*!P25l=U_2 zyOelN&^%^RJEWh!M%7N=Y@%8kHcS6(7N+75n!BKf4_^Y<(|zNCWt~Bpi}C=!8&gpK z6ubGSM%Nc_0oTcrn}f?JTxD}HRZlE|zWc?VMLvIb35clq63aS7@nANiDLhr4kB>1} zs+wPr$#F4&t=L-Fsm3a8k4Su_qy@; z2BK`~-cjBluTtizp2zH=)v^;@LC0p&{BC+Ntw-zU1?;n+$WVCtRPULCj6?E{sXL6_?^#BBZp++kixC@PY$4efprZzq&G7R-o zR?eIBp}vF5$Bq$#8BuB_QzH-9=5)Z;_vQi=DX2g^>5#8p5=Mpk(z@a z_s;O(FaCLItQp*0n2Sr69fOFmXD=8C!wErHQW5LlE7iy}Al|?9Qeb7?%OkLZWsNXl!3~gOq+x+9r2UR6=&EwMfUT2?o ztqYnDJ;t1IPiy;@)aX}b;ThG zDq5Q966lyafn_u($(S{8mX4I+Mj-6%T(}GeWt;_tlEM7f`CK~>k~_*Z9bQR=-d2Jh ze`dt~2w-Dq?8h)>ZV(dl$BQS5y)DQh&g{9demwNw@S+^T4hm)t3XYE4qCb8_olnuw z!{ms+#>QGC#}V_h)@Lf}E08J%N}PJx`dd0TB?#eFP^*!@uLa{>HRbkvCC(dFVxB?h z7Fj|dZX}lHJ)jfWwa7U}+nt2FZUFz$u^GSh!4&T-O9ANNosA|}uE-Rb3so(-l#+H)i;(@C)i0hn0biZqxUs{{rY;LwN;^3@4cFu zO{ZA^+YKD}KAOTI0WK!+XhyP0%0XMo70lv|UBItAO~t?~W9aE*w=WahkiQqxlS?3G zWz+EEg09T*#G`^7DJy?f?lSp|@7!*tYlNRbLK3;R6MfjP?!^j;d~Y0qwA!VTKA)st zw*DJy3F~b-@5(gRE7Qk4RSZGGFq(S8rN)zlP2EaFIQw@~G(}Kk1%2we0lTbKttK+t z2I_5y>tOnsFlfvEM@QV~l=%lsdRC<-EAZG3D^@^pd4`tEBg-G}K->p^%_isR$a_$s zK>YECVI4O?J~EE`ct@Qc+*abrURBEs{0iH6xteC_ zL)B%npWrzj?kLMQ-?@^d9-NuUV15cJAD{HlKydHz()IyjpY^tgO*n4vuW7;;^EVh) z5li2mq&g8Z*~IhWI}UEh@1pl{kCs20M1^{JIxi&nUTjl#HowrOQelEwxQm;8nmPz^ zOb~-e2c+>P;??2o3h0XVujMzJWzm6s5LD+Gdo6j=+fJ^OYq(H6EWoKSSOs287+lHD z37QAn>a>&Un?((Kk}hb>79S)RwUu0yeJ83_Iq%JQA{GzlIi(J>uK`3yp##w*)3g@$ z>pc8S)u$bHUwQe~cDZ;TxQYjQt}JeUsqK@nIU1TAeNRk9Lsy@@ z;1tUDw6wxg*$R(SiZqLkegI_6yrw3a-uLJ^>yiB-C#=FJOMRQZY_92CmS=7-&+nH% zTGLwH(>G9tS*~E<#hQ5!*_}4PO!cDj+;4kJTQ>L zu++f$Pi1Tx3rKyF7k6Z?!j+hoz25xl7_F1gtJ_Nc9I8}}k1J|XB*}k!?!uLtR$TMi zomE0>;MN>{H7P6U^0)D&71j$Hn%AN(J$sDxXsVB#-f*esj2za(7+RRaREE6TxXuZa&Qg z2Wt4DkJZvu4He!^Nv*ijBq{-n=>6 zW|4Yk*e$d<-!gIJE1w+ro@TjmuW^%{PTcgPJ`2LG>j}S#v_5-?A-A@HR?ZnACV>oL z`})cG#*SVQ`a?Mydcy{Ac<|SBSrgG)_f>F8hiS3R+*%SNktv2^gz2p&}Z!d>{?z101+UiT6e8`-f4*e+vSHXfY zjgh1&Dy;N8$hzJ&v4q_Zp^L}d7)t)u`i*;k9*4_8E5&TCZh6qW@$i~J7Ax3s5!|2D zFMH9nU~*nqR93GgN3O`LU_CPURQQh@`UXjGRL4ika%P)7R6Qf|t5FQG#i$?&W4&fj0`U$V6DT+g!;o@T%-Y%Xg9po8`@!YiQF zpvJfXsbF&m696*cas0=C8m2AF>ks_U0%Zl_exe&GSpkf(PpV-liwMX*m)j4iu-eBD z5LfKLRE1|Bi#+_bZ(yGiQ!VSayjOJxBs$69#njycy#&>(?fk4Ds&2NcK4sQ5LPFRZ zPp<(%`YN`Kw*`8xG^jCdON;8?Gq15e31QPnT)7~j^N05htb+czp6G)h^D7&Qx3>6} znYHGiP_Q~q9tB~<*G0+90UIH0xwMHgHPJ){DypqaTS5Si^KM?B%n|}r-ycar2iwvd zNc|!rW|a%!csBi74j=1XtA&g6!seJ4m3k?5 zOMmI$gQ~3%I(ZsTmkr6G31;Rt3Qr2`n!|grqIoV}&?a$(nq0mVAY)7wB z!J@7abKmRHztn_n=~|a@GzdvNdSz8GBREmLWOOLh8EDZYb{!y#f}CV$Hhp1sLg5cq zWg8gK^^u-&+S_6g$~t1AqZ{d>Ivy?_&w!s}U?gxu?55IPdnVb%9<9sG4r;iPF#wh6 zLM7#!AQr|(5*Fd;Te&zU6)bsH8a#+|6M~h%(sMK=SG?JNfmd=+-281E>f|GDLBn9F zuWbX~yb(^0D{Tq7|J>3_-T$dHY>@8xn znI3oVOcwK{AW4PCDg&;YK=c;rF!`XprWJulFON< z!Ss!bOI<^qfsuwra@HPQ?Ks(t%$L2{UZgHt^xe#8;vO`1dkE>jLzSPS*5!8(k~15| zL}3<^raT)kCej!zVZ9vsS?|63#2C;u*uTyQnVuen2mwq*g|nVmp4j~@PFkTBgzUp$ zy;207+938QbFR%lC8;eQAdVHUF(F#)N1>0i*TN=zbjfX|F2SMpQEm)7ZJ|% z_;xqds(BN|-v7W9=kE`VWZv!`)EAoRDXIyFN|sXc`o0uj~9GIv{fYF}IC&X%A+-FhCY z%32}9)kk|ZA}O>kjc!M)A7z^v0m#HhAx4cUK>WEafVVdsYzeYiR5`5mCzmVm`0vA) z$UjovxnaPz2)EwtZW?vWKb{CIi~)${;SKeL_KT%W?(5WHM+`&~F8pB^=nXN1uQf!D zCWSBFpblz59~8~?u=wPC7$v(NwR zXZQPNvnJLyBVStr%b^ZU6=qK)jU8;yS#Ip|?%PPt%79_>bBHckRaD63#tKyh)lf^q z;G86eF}NM%JX7HL(7(ZweqSuBOew;iuU)o{|24p`rZWI*AaRv?Y~pl4lBG*7hQo#Ypx0lc=rVkO}!qYpkXTJa0dvMm2cDO+2! z4hJGpMN7s1%XXG!N-A6v_6k8_C}veX=Uc1~rikudO()ssqP~u!hWLf>VgU==V(RDi z6;g=UAIYk&TlX??{smW6*?3FiPb(G^(c^6a7OS*D3DSkMzE7A zS4J~pw(TCoGX}Xc=58HeM&!#(->UP5V8Hm;a!r#yA7sX~0O31rj5^ZC`;-Ep6GJF+ z_R{*Fi9(m{Mymvn^7(t_@96?(kM2f;!1BQxmoVlQUyT2IBJ2(jcJ#i06*_L38M_g_97iPnEUNU<7MA|*YE$9*T08E0jj)ME5yW&<3P=U zsIpugSR;;tUiW`)>?f>+Ur7Evs$g;A8n#h~PAUcXM+XW1?=JL=aE$iJ`F_o1U?#}h z1tI?b-RbXt&jL_&DzN2j3n_|wto>K>{rAEsd7yuW&!s-s^?y$iu0oCXt&(#+C04Qe Q0Q6H))WB9KmA44_e;M_+djJ3c -- 2.25.1