sreVbriefing.English.htmlkHRkbriefing.Russian.htmlHRdescription.extlSlinit.sqf'S'mission.sqmcSOverview.html SStringtable.csvP1SPcompositions\antiair.sqf S compositions\blockpost.sqfScompositions\fuelbase.sqfmScompositions\helistop.sqfY Scompositions\largebase.sqfDScompositions\radarsite.sqf9S9compositions\roadpost.sqf,DS,compositions\smallbase.sqfQcompositions\smallbase1.sqf ES compositions\smallbase2.sqfScompositions\wiredzone.sqf SDlg\Dialog.hpp%X)Q%Dlg\RscClass.hpphQhmissions\escape.sqfSmissions\final.sqf'Smissions\m0.sqf S missions\m1.sqf S missions\m10.sqfR샳SRmissions\m11.sqf S missions\m12.sqf S missions\m13.sqf!Smissions\m14.sqf 4 S missions\m15.sqf< Smissions\m16.sqf S missions\m2.sqf' S'missions\m3.sqf WS missions\m4.sqf aS missions\m5.sqf oS missions\m6.sqf S missions\m7.sqf nS missions\m8.sqfhShmissions\m9.sqf\S\Pics\LoadingScreen.jpg+ES+Pics\mg.paaH+QH+Pics\mission_accomplished.paa"@R"Pics\mission_failed.paa"\R"Pics\Overview.paaVϔSVPics\Thumbs.db`XS`Pics\topsecret_ru.paa9Q9Pics\Icons\i_ak74.paaRPics\Icons\i_cantrepair.paaRPics\Icons\i_cargo_ca.paa:QPics\Icons\i_commander_ca.paa:QPics\Icons\i_crew.paa RPics\Icons\i_driver_ca.paa:QPics\Icons\i_gunner_ca.paa:QPics\Icons\i_leader.paa:QPics\Icons\i_lock.paaQRPics\Icons\i_medic.paa:QPics\Icons\i_metis.paaaRPics\Icons\i_metish.paa"aRPics\Icons\i_mg.paa:QPics\Icons\i_novehicle.paa/RPics\Icons\i_pilot.paa>RPics\Icons\i_radio.paaRfSPics\Icons\i_repair.paa?RPics\Icons\i_rpg.paaRPics\Icons\i_rpgh.paaLfSPics\Icons\i_sapper.paa:QPics\Icons\i_sniper.paa:QPics\Icons\i_unlock.paaQRPics\Icons\i_zam.paaFRscripts\EX_seats\Ex_seats_GetDown.sqfF3`SFscripts\EX_seats\Ex_seats_Init.sqfP4`Sscripts\EX_seats\Ex_seats_MainLoop.sqfe4`Sscripts\EX_seats\Ex_seats_Processor.sqf7*dS7scripts\EX_seats\Ex_seats_Seat.sqf+dSscripts\LowGear\LowGearOff.sqfcSscripts\LowGear\LowGearOn.sqfsoSsscripts\LowGear\LowGear_Init.sqf oS scripts\player\Briefing.sqf%jSscripts\player\CheckKey.sqfSscripts\player\DisableChat.sqf0 38S0scripts\player\GearPlayer.sqfsSsscripts\player\initclient.sqf䇳Sscripts\player\MarkersPlayer.sqf 1߲S scripts\player\MarkersVehicles.sqf/ڲSscripts\player\MissionEndLooser.sqf1%Rscripts\player\MissionEndWinner.sqfeSscripts\player\NewTask.sqfLSscripts\player\OnRespawned.sqfLSLscripts\player\Options.sqfkYZSscripts\player\RallyPoint.sqfH߲SHscripts\player\RepairVehicle.sqf%Qscripts\player\RespawnButtonDelay.sqfDgtQDscripts\player\StatusGroup.sqf S scripts\player\Teleport.sqfjQSscripts\player\UnloadAmmo.sqfSscripts\player\UnlockVehicle.sqfόQscripts\player\VehicleCrew.sqfJtRJscripts\player\WeaponCheck.sqfۋeSscripts\server\ClearTown.sqffSscripts\server\DefenseObject.sqf )gS scripts\server\DefenseObjectContamination.sqfgSscripts\server\DestroyFinal.sqfE☸SEscripts\server\DestroyObject.sqfDgSscripts\server\DynamicWeather.sqf0OR0scripts\server\Init_UPSMON.sqf}cR}cscripts\server\NewTask.sqfW*@SWscripts\server\objectMapper.sqfOSscripts\server\StillObject.sqfgSscripts\server\UPSMON.sqf&dR&dscripts\server\func\War_func_Arest.sqfKQscripts\server\func\War_func_BotsHouse.sqfZZSscripts\server\func\War_func_CheckFlag.sqfK SKscripts\server\func\War_func_CityAI.sqfSscripts\server\func\War_func_CleanUp.sqfzSscripts\server\func\War_func_Contamination.sqfI6Rscripts\server\func\War_func_CreateAeropatrol.sqf S scripts\server\func\War_func_CreateBlockpost.sqf'1S'scripts\server\func\War_func_CreateGroundpatrol.sqfcGScscripts\server\func\War_func_CreateHardVehGroup.sqfD/SDscripts\server\func\War_func_CreateHardVehGroupBlock.sqf8.S8scripts\server\func\War_func_CreateInfGroup.sqf(kCS>scripts\server\func\War_func_RemoveDead.sqfQscripts\server\func\War_func_RemoveDeadBlock.sqfOSOscripts\server\func\War_func_RespawnVeh.sqfQ吳SQscripts\server\func\War_func_Servicing.sqf cR scripts\server\func\War_func_UnloadAmmo.sqf3DʼS3scripts\server\func\War_func_UpgrageAmmobox.sqf XS scripts\server\gear\ammo_box.sqf.Sscripts\server\gear\ammo_med.sqfgSscripts\server\gear\ammo_rifles.sqfYFSYscripts\server\UPSMON\MON_artillery_add.sqf R scripts\server\UPSMON\MON_spawn.sqfRscripts\server\UPSMON\MON_surrended.sqf:(R:scripts\server\UPSMON\!R\markerAlpha.sqfRscripts\server\UPSMON\!R\R_functions.sqfy"Ny"scripts\server\UPSMON\actions\followme.sqf xK scripts\server\UPSMON\common\MON_functions.sqfNsound\cough.ogg!%R!sound\looser.oggcQcsound\victory.oggI Q!RI

MISSION COMPLETED!


YOU WON!




MISSION COMPLETED!


YOU LOOSE!




МИССИЯ ЗАВЕРШЕНА!


ВЫ ПОБЕДИЛИ!

ПОЗДРАВЛЯЕМ!




МИССИЯ ЗАВЕРШЕНА!


ВЫ ПРОИГРАЛИ!


#include "Dlg\RscClass.hpp" #include "Dlg\Dialog.hpp" showGps = 1; onLoadMissionTime = 0; onLoadMission = ""; loadScreen = "Pics\LoadingScreen.jpg"; class Header { gameType = COOP; minPlayers = 1; maxPlayers = 31; }; class CfgLoadingTexts { priority = 100; titles[] = {"На базе ограниченное количество оружия и боеприпасов - делитесь с другими игроками!"}; }; disableChannels[]={0,2}; disabledAI = 1; Respawn = "BASE"; RespawnDelay = 60; RespawnDialog = 1; class Params { class RIPMISSIONCOUNTFORWIN { title = $STR_RIP_MISSIONCOUNT; values[] = {1,3,5,8,10,12,15,20}; texts[] = {"1","3","5","8","10","12","15","20"}; default = 5; }; class RIPDAY { title = $STR_RIP_TIME; values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23}; default=9; texts[]={"00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"}; }; class RIPRANDOMTIME { title = $STR_RIP_RANDOMTIME; values[]={1,0}; texts[]={$STR_RIP_ENABLE, $STR_RIP_DISABLE}; default=1; }; class RIPMAXDISTANCE { title = $STR_RIP_DISTANCE; values[]={2500,3000,3500,4000,5000,7500}; texts[]={"2500","3000","3500","4000","5000","7500"}; default=5000; }; class RIPWOUNDSTIMER { title = $STR_RIP_WOUNDSTIME; values[] = {0, 1, 2, 3, 4, 5}; texts[] = {"0", "10", "90", "150", "300", "600"}; default = 5; }; class CLEANUP { title = $STR_CLEANUP; values[] = {60, 180, 300, 600, 900, 1200}; texts[] = {"60","180", "300", "600", "900", "1200"}; default = 900; }; class RIPVEHICLEMARKER { title = $STR_RIP_VEHICLEMARKERS; values[] = {1, 2}; texts[] = {$STR_RIP_ENABLE, $STR_RIP_DISABLE}; default = 1; }; class RIPPLAYERMARKER { title = $STR_RIP_PLAYERMARKERS; values[] = {1, 2}; texts[] = {$STR_RIP_ENABLE, $STR_RIP_DISABLE}; default = 1; }; class RIPDEFAULTGRASSLAYER { title = $STR_RIP_GRASSLAYER; values[] = {0,1,2,3,4}; texts[] = {$STR_RIP_DISABLE, $STR_RIP_VERYLOW, $STR_RIP_LOW, $STR_RIP_HIGHT, $STR_RIP_VERYHIGHT}; default = 1; }; class RIPDISABLEGRASSPLAYER { title = $STR_RIP_DISABLEGRASS; values[] = {1,0}; texts[] = {$STR_RIP_YES, $STR_RIP_NO}; default = 1; }; class RIPVEHICLERESPAWNDELAY { title = $STR_RIP_VEHICLERESPAWNTIME; values[] = {60,300,900,1800,3600}; texts[] = {"1","5", "15","30","60"}; default = 1800; }; class RIPDYNAMICWEATHER { title = $STR_RIP_DYNAMICWEATHER; values[] = {1,2}; texts[] = {$STR_RIP_ENABLE, $STR_RIP_DISABLE}; default = 1; }; class RIPWEATHERCHANGETIME { title = $STR_RIP_WEATHERCHANGETIME; values[] = {600,900,1200,1500,1800,2400,3000,3600}; texts[] = {"10","15","20","25","30","40","50","60"}; default = 1200; }; class RIPRALLYPOINTS { title = $STR_RIP_PALLYPOINTS; values[] = {1,0}; texts[] = {$STR_RIP_ENABLE, $STR_RIP_DISABLE}; default = 1; }; class RIPNORALLYPOINTSENEMYNEAR { title = $STR_RIP_DONTSETRALLYPOINTS; values[] = {100,200,300,400,500}; texts[] = {"100M", "200M","300M","400M","500M"}; default = 300; }; class RIPAISKILL { title = $STR_RIP_AISKILL; values[] = {2,3,4}; texts[] = {$STR_RIP_LOW, $STR_RIP_NORMAL, $STR_RIP_HIGHT}; default = 3; }; class RIPAICOUNT { title = $STR_RIP_AICOUNT; values[] = {3,6,12}; texts[] = {$STR_RIP_LITTLE, $STR_RIP_NORMALLY, $STR_RIP_MANY}; default = 3; }; class RIPAILIGHTVEHCOUNT { title = $STR_RIP_AILIGHTVEHCOUNT; values[] = {0,1,2}; texts[] = {$STR_RIP_NO, $STR_RIP_LITTLE, $STR_RIP_NORMALLY}; default = 1; }; class RIPAIHEAVYVEHCOUNT { title = $STR_RIP_AIHEAVYVEHCOUNT; values[] = {0,1,2}; texts[] = {$STR_RIP_NO, $STR_RIP_LITTLE, $STR_RIP_NORMALLY}; default = 1; }; class RIPAIRAIPATROLS { title = $STR_RIP_ENEMYAIRPATROLS; values[] = {1,0}; texts[] = {$STR_RIP_ENABLE, $STR_RIP_DISABLE}; default = 1; }; class AIRPATROLRESPAWNDELAY { title = $STR_AIRPATROLRESPAWNDELAY; values[] = {120,300,600,900,1200,2400,3600}; texts[] = {"2","5","10","15","20","40","60"}; default = 900; }; class RIPTOWNAIPATROLS { title = $STR_RIP_ENEMYTOWNPATROLS; values[] = {1,0}; texts[] = {$STR_RIP_ENABLE, $STR_RIP_DISABLE}; default = 1; }; class RIPWITHACRE { title = $STR_RIP_RADIOADDON; values[] = {0,1,2,3}; texts[] = {$STR_RIP_VON, $STR_RIP_ACRE, $STR_RIP_TASKFORCE, $STR_RIP_TASKFORCESERIOUS}; default = 1; }; class BLOCKPOSTRANDOM { title = $STR_BLOCKPOSTRANDOM; values[] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; texts[] = {"ВЫКЛ.", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "ВКЛ."}; default = 60; }; class PATROLRANDOM { title = $STR_PATROLRANDOM; values[] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; texts[] = {"ВЫКЛ.", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "ВКЛ."}; default = 70; }; class GROUNDPATROLRESPAWNDELAY { title = $STR_GROUNDPATROLRESPAWNDELAY; values[] = {60,150,300,450,600,1200,1800}; texts[] = {"2","5","10","15","20","40","60"}; default = 600; }; class RIP_DISABLECHAT { title = $STR_RIP_DISABLECHAT; values[] = {0,1}; texts[] = {$STR_RIP_NO,$STR_RIP_YES}; default = 0; }; }; class CfgSounds { sounds[] = {}; class Looser { name = ""; sound[] = {"\sound\looser.ogg", db+0, 1.0}; titles[] = {}; }; class Victory { name = ""; sound[] = {"\sound\victory.ogg", db+0, 1.0}; titles[] = {}; }; class Cough { name = ""; sound[] = {"\sound\cough.ogg", db+0, 1.0}; titles[] = {}; }; }; //Params array if (isNil "paramsArray") then { if (isClass (missionConfigFile/"Params")) then { for "_i" from 0 to (count (missionConfigFile/"Params") - 1) do { _paramName = configName ((missionConfigFile >> "Params") select _i); missionNamespace setVariable [_paramName, getNumber (missionConfigFile >> "Params" >> _paramName >> "default")]; }; }; } else { for "_i" from 0 to (count paramsArray - 1) do { missionNamespace setVariable [configName ((missionConfigFile >> "Params") select _i), paramsArray select _i]; }; }; //{ if (side _x == east) then {_x disableai "move";} } foreach allunits; RIPCENTERMAP = getPos Map_Center; RIPPATROLMENS = ["CDF_Soldier_Sniper","CDF_Soldier_GL","CDF_Soldier_RPG","CDF_Soldier_AR","CDF_Soldier_Medic","CDF_Soldier_Marksman","CDF_Soldier_Engineer","CDF_Soldier_MG","CDF_Soldier_Strela","CDF_Soldier_Militia","CDF_Soldier","CDF_Soldier_Sniper","CDF_Soldier_GL","CDF_Soldier_RPG","CDF_Soldier_AR","CDF_Soldier_Medic","CDF_Soldier_Marksman","CDF_Soldier_Engineer","CDF_Soldier_MG","CDF_Commander","CDF_Soldier_Strela","CDF_Soldier_Militia","CDF_Soldier"]; RIPPATROLMENS_PMC = ["ACE_CZ_Soldier_DES_Terp","CZ_Soldier805_DES_ACR","CZ_Soldier_AMG_DES_EP1","CZ_Soldier_AT_DES_EP1","CZ_Soldier_B_DES_EP1","CZ_Soldier_DES_EP1","CZ_Soldier_medik_DES_EP1","CZ_Soldier_MG_DES_EP1","CZ_Soldier_Sniper_EP1"]; War_GetRandomPoint = compile preprocessFileLineNumbers "scripts\server\func\War_func_GetRandomPoint.sqf"; War_func_NearestPlayers = compile preprocessFileLineNumbers "scripts\server\func\War_func_NearestPlayers.sqf"; War_func_CheckFlag = compile preprocessFileLineNumbers "scripts\server\func\War_func_CheckFlag.sqf"; War_func_CityAI = compile preprocessFileLineNumbers "scripts\server\func\War_func_CityAI.sqf"; if (isServer) then { War_GetRandomPointCircleOuter = compile preprocessFileLineNumbers "scripts\server\func\War_func_GetRandomPointCircleOuter.sqf"; War_func_CreateAeropatrol = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateAeropatrol.sqf"; War_func_CreateGroundpatrol = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateGroundpatrol.sqf"; War_func_CreateBlockpost = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateBlockpost.sqf"; War_func_CreateInfGroup = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateInfGroup.sqf"; War_func_CreateInfPatrolGroup = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateInfPatrolGroup.sqf"; War_func_CreateLightVehGroup = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateLightVehGroup.sqf"; War_func_CreateHardVehGroup = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateHardVehGroup.sqf"; War_func_CreateLightVehGroupBlock = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateLightVehGroupBlock.sqf"; War_func_CreateHardVehGroupBlock = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateHardVehGroupBlock.sqf"; War_func_BotsHouse = compile preprocessFileLineNumbers "scripts\server\func\War_func_BotsHouse.sqf"; War_func_CreateStatic = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateStatic.sqf"; War_func_CreateStaticBlock = compile preprocessFileLineNumbers "scripts\server\func\War_func_CreateStaticBlock.sqf"; War_func_RemoveDead = compile preprocessFileLineNumbers "scripts\server\func\War_func_RemoveDead.sqf"; War_func_RemoveDeadBlock = compile preprocessFileLineNumbers "scripts\server\func\War_func_RemoveDeadBlock.sqf"; War_func_RespawnVeh = compile preprocessFileLineNumbers "scripts\server\func\War_func_RespawnVeh.sqf"; War_func_CleanUp = compile preprocessFileLineNumbers "scripts\server\func\War_func_CleanUp.sqf"; RIPPATROLLIGHTVEHICLES = ["ACE_BTR70_CDF","BRDM2_CDF","UAZ_MG_CDF","UAZ_AGS30_CDF","Ural_ZU23_CDF"]; RIPPATROLLIGHTVEHICLES_PMC = ["LandRover_Special_CZ_EP1","HMMWV_M1151_M2_CZ_DES_EP1"]; RIPPATROLGROUNDVEHICLES = ["BRDM2_CDF","BRDM2_CDF","ACE_BTR70_CDF","BMP2_HQ_CDF","UAZ_MG_CDF","UAZ_MG_CDF","UAZ_MG_CDF","UAZ_CDF","UAZ_AGS30_CDF","Ural_CDF","UralReammo_CDF","UralRefuel_CDF"]; RIPPATROLHARDVEHICLES = ["ACE_T72B_CDF","T72_CDF","ACE_BMD_1_CDF","BMP2_CDF","ACE_BMD_2_CDF","ZSU_CDF"]; RIP_TASK_NUMBERS = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]; ace_sys_aitalk_enabled = true;publicVariable "ace_sys_aitalk_enabled"; ace_sys_tracking_markers_enabled = false;publicVariable "ace_sys_tracking_markers_enabled"; ace_sys_eject_fnc_weaponCheckEnabled = false;publicVariable "ace_sys_eject_fnc_weaponCheckEnabled"; ace_sys_wounds_enabled = true;publicVariable "ace_sys_wounds_enabled"; ace_sys_wounds_all_medics = false;publicVariable "ace_sys_wounds_all_medics"; ace_sys_wounds_noai = false;publicVariable "ace_sys_wounds_noai"; ace_sys_wounds_no_rpunish = true;publicVariable "ace_sys_wounds_no_rpunish"; ace_sys_wounds_player_movement_bloodloss = true;publicVariable "ace_sys_wounds_player_movement_bloodloss"; ace_sys_wounds_leftdam = 0.05;publicVariable "ace_sys_wounds_leftdam"; tf_no_auto_long_range_radio = true;publicVariable "tf_no_auto_long_range_radio"; if (RIPWITHACRE == 2) then { tf_radio_channel_name = getText (configFile >> "task_force_radio_settings" >> "tf_radio_channel_coop_name"); tf_radio_channel_password = getText (configFile >> "task_force_radio_settings" >> "tf_radio_channel_coop_password"); Server setvariable ["RIPTFRADIOPASS","qWeYnZ30Mnr618",true]; Server setvariable ["RIPTFRADIOCHAN",tf_radio_channel_name,true]; }; if (RIPWITHACRE == 3) then { tf_radio_channel_name = getText (configFile >> "task_force_radio_settings" >> "tf_radio_channel_coop_name"); tf_radio_channel_password = getText (configFile >> "task_force_radio_settings" >> "tf_radio_channel_coop_password"); Server setvariable ["RIPTFRADIOPASS",tf_radio_channel_password,true]; Server setvariable ["RIPTFRADIOCHAN",tf_radio_channel_name,true]; }; switch (RIPWOUNDSTIMER) do { case 0: {ace_wounds_prevtime = 0;}; case 1: {ace_wounds_prevtime = 10;}; case 2: {ace_wounds_prevtime = 90;}; case 3: {ace_wounds_prevtime = 150;}; case 4: {ace_wounds_prevtime = 300;}; case 5: {ace_wounds_prevtime = 600;}; default {ace_wounds_prevtime = 300;}; }; publicVariable "ace_wounds_prevtime"; Server setvariable ["RIPMISSIONENDWINNER",false,true]; Server setvariable ["RIPMISSIONENDLOOSER",false,true]; Server setVariable ["RIPMISSIONCOMPLETED",true,true]; Server setVariable ["RIPMISSIONCREATED",false,true]; Server setVariable ["RIPMISSIONSUCCEED",-1,true]; RIPMISSIONCOUNT = 1; RIPLASTMISSIONPOS = [0,0,0]; RIPMISSIONOBJ = []; RIPMISSIONGUARDUNITS = []; RIPMISSIONGUARDVEHICLES = []; RIPMISSIONGUARDGROUPS = []; RIPBLOCKGUARDUNITS = []; RIPBLOCKGUARDVEHICLES = []; RIPBLOCKGUARDGROUPS = []; setDate [2015,8,10,RIPDAY,0]; //if (RIPPILOTCHECK == 1) then {[RU18] spawn War_HeliDriverCheck;}; //if (RIPPILOTCHECK == 1) then {[RU21] spawn War_HeliDriverCheck;}; objNull spawn War_func_RespawnVeh; objNull spawn War_func_CleanUp; if (RIPAIRAIPATROLS == 1) then {[8500] spawn War_func_CreateAeropatrol;}; {[_x,"area1"] spawn War_func_CreateGroundpatrol} forEach ["Patrol1_1","Patrol1_2","Patrol1_3","Patrol1_4","Patrol2_1","Patrol2_2","Patrol2_3","Patrol2_4"]; {[_x,"area2"] spawn War_func_CreateGroundpatrol} forEach ["Patrol3_1","Patrol3_2","Patrol3_3","Patrol3_4","Patrol4_1","Patrol4_2","Patrol4_3","Patrol4_4"]; {[_x] spawn War_func_CreateBlockpost} forEach [Blockpost,Blockpost_1,Blockpost_2,Blockpost_3,Blockpost_4,Blockpost_5,Blockpost_6,Blockpost_7,Blockpost_8,Blockpost_9,Blockpost_10,Blockpost_11,Blockpost_12,Blockpost_13]; [] spawn War_func_RemoveDeadBlock; "RIPLOCKEDVEHICLE" addPublicVariableEventHandler { if(locked RIPLOCKEDVEHICLE) then { RIPLOCKEDVEHICLE lock false; } else { RIPLOCKEDVEHICLE lock true; }; }; onplayerconnected "Server setVariable ['RIPTASKTIME',date,true]"; }; "area0" setmarkeralpha 0; "area1" setmarkeralpha 0; "area2" setmarkeralpha 0; waituntil {!isnil "bis_fnc_init"}; if (isMultiplayer) then { setViewDistance 1000; switch (RIPDEFAULTGRASSLAYER) do { case 0: {setTerrainGrid 50;}; case 1: {setTerrainGrid 25;}; case 2: {setTerrainGrid 12.5;}; case 3: {setTerrainGrid 6.25;}; case 4: {setTerrainGrid 3.125;}; }; RIPAIDEFAULTSKILL = RIPAISKILL/10; {_x allowdamage false} forEach (nearestObjects [getMarkerPos "Base", ["static"], 200]); }; if (!(isDedicated)) then { if (RIPWITHACRE > 1) then { tf_radio_channel_name = (Server getvariable "RIPTFRADIOCHAN"); tf_radio_channel_password = (Server getvariable "RIPTFRADIOPASS"); }; waitUntil {!isNull player}; waitUntil {player == player}; [] execVM "scripts\player\UnloadAmmo.sqf"; [] execVM "scripts\player\Briefing.sqf"; [] execVM "scripts\player\initclient.sqf"; [] execVM "scripts\player\GearPlayer.sqf"; [] execVM "scripts\player\RespawnButtonDelay.sqf"; if (RIPTOWNAIPATROLS == 1) then {objNull spawn War_func_CityAI;}; titleCut [localize "STR_RIP_INTROTEXT", "BLACK FADED"]; player addEventHandler ["Respawn", {[(_this select 0),(_this select 1)] execVM "scripts\player\OnRespawned.sqf";}]; if (RIPVEHICLEMARKER == 1) then {[] execVM "scripts\player\MarkersVehicles.sqf";}; [] execVM "scripts\player\MarkersPlayer.sqf"; sleep 0.5; [] execVM "scripts\player\VehicleCrew.sqf"; [] execVM "scripts\EX_seats\Ex_seats_Init.sqf"; [] execVM "scripts\LowGear\LowGear_Init.sqf"; RIP_KEYCHECK = compile preprocessFile "scripts\player\CheckKey.sqf"; (findDisplay 46) displayAddEventHandler ["keyDown","_this call RIP_KEYCHECK"]; RIPMAXVIEWDISTANCE = RIPMAXDISTANCE; }; if (RIPDYNAMICWEATHER == 1) then {[] execVM "scripts\server\DynamicWeather.sqf";}; if (RIP_DISABLECHAT == 1) then {[] execVM "scripts\player\DisableChat.sqf";}; call compile preprocessFileLineNumbers "scripts\server\Init_UPSMON.sqf"; processInitCommands; finishMissionInit;version=11; class Mission { addOns[]= { "smd_sahrani_a2", "ca_modules_functions", "camisc_e_wf", "camisc3", "caweapons_ammoboxes", "CAWheeled_E_ATV", "ace_sys_repair", "ace_sys_aitalk", "ace_sys_crewserved", "ace_sys_playerhud", "ace_sys_wounds", "ace_c_men_gear", "cawheeled_d_baf", "dac_source", "CAWheeled3_M1030", "caweapons_kord", "CAWheeled", "cadata", "acex_ru_c_men_gear", "ace_sys_targets", "acex_veh_gmv", "cawheeled_e_hmmwv", "acex_veh_5ton", "CATracked_E", "CATracked_E_M2A2_Bradley", "acex_veh_m113", "acex_veh_stryker", "acex_usnavy_veh_ah1", "acex_ru_veh_ka50", "acex_ru_veh_btr70", "ca_modules_clouds", "ace_sys_viewblock", "ace_main", "ace_sys_vehicledamage", "cacharacters2", "acex_ru_c_men", "ace_sys_tracking", "cacharacters_e", "acex_c_men_gear", "CAWheeled3_TT650", "CAWheeled_E", "CAWheeled2_V3S", "cawater2_fishing_boat", "CAWater", "map_eu", "ace_c_weapon", "cawheeled_e_s1203", "CA_Modules_Alice2", "ca_modules_silvie", "ca_modules_animals", "CAWheeled_Offroad", "acex_c_vehicle", "acex_ru_c_vehicle", "CASounds", "caweapons", "CAWheeled_E_LandRover", "CAWheeled_E_Volha", "CAWheeled2_Ikarus" }; addOnsAuto[]= { "ca_modules_functions", "ace_sys_aitalk", "ace_sys_wounds", "ca_modules_clouds", "ace_sys_viewblock", "ace_sys_tracking", "ace_main", "cacharacters2", "cacharacters_e", "acex_c_men_gear", "acex_ru_c_men", "ace_sys_repair", "camisc3", "caweapons_ammoboxes", "camisc_e_wf", "CAWheeled3_TT650", "acex_c_vehicle", "acex_ru_c_vehicle", "CAWheeled", "CAWheeled_E", "CAWheeled_E_LandRover", "cadata", "CAWheeled_Offroad", "CAWheeled2_V3S", "cawater2_fishing_boat", "CAWater", "map_eu", "ace_c_weapon", "cawheeled_e_s1203", "CASounds", "caweapons", "cawheeled_e_volha", "CAWheeled2_Ikarus", "smd_sahrani_a2" }; randomSeed=14138913; class Intel { briefingName="[COOP30] Viva la Revolution! v0.7 [CO ACE]"; briefingDescription="By Axell; Based on Delicate Balance by RIP; "; resistanceEast=1; startWeather=0.80000001; forecastWeather=0.80000001; year=2000; month=1; day=1; hour=0; minute=0; }; class Groups { items=12; class Item0 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={12161.25,96.346985,11935.027}; id=2; side="LOGIC"; vehicle="Logic"; leader=1; skill=0.60000002; text="Map_Center"; }; }; }; class Item1 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={4839.2793,0.2986908,19897.912}; azimut=180; special="NONE"; id=7; side="LOGIC"; vehicle="LocationLogic"; leader=1; skill=0.33333331; text="Server"; }; }; }; class Item2 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={4934.584,0.3613281,19895.824}; id=8; side="LOGIC"; vehicle="FunctionsManager"; leader=1; skill=0.60000002; }; }; }; class Item3 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={5180.6504,0.36760786,19894.654}; id=9; side="LOGIC"; vehicle="ACE_AITalk_Logic"; leader=1; lock="UNLOCKED"; skill=0.60000002; }; }; }; class Item4 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={5027.5742,0.28175867,19809.252}; id=10; side="LOGIC"; vehicle="ACE_Wounds_Logic"; leader=1; lock="UNLOCKED"; skill=0.60000002; }; }; }; class Item5 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={5132.5039,0.27824628,19894.881}; id=11; side="LOGIC"; vehicle="BIS_clouds_Logic"; leader=1; lock="UNLOCKED"; skill=0.60000002; }; }; }; class Item6 { side="LOGIC"; class Vehicles { items=2; class Item0 { position[]={5244.9922,0.25986382,19896.998}; id=12; side="LOGIC"; vehicle="ACE_Viewblock_EnableAIGrassVB_Mod"; leader=1; lock="UNLOCKED"; skill=0.60000002; }; class Item1 { position[]={5319.0547,-101.76281,19898.711}; id=14; side="LOGIC"; vehicle="ACE_FBCB2_OFF_Logic"; lock="UNLOCKED"; skill=0.60000002; }; }; }; class Item7 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={5021.9707,0.42649403,19895.557}; id=13; side="LOGIC"; vehicle="ACE_Required_Logic"; leader=1; lock="UNLOCKED"; skill=0.60000002; }; }; }; class Item8 { side="EAST"; class Vehicles { items=9; class Item0 { position[]={14020.51,23.105888,16457.568}; azimut=-83.085503; special="NONE"; id=15; side="EAST"; vehicle="Ins_Soldier_CO"; player="PLAY CDG"; leader=1; skill=0.60000002; text="ins1"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Боевики] Командир"; }; class Item1 { position[]={14019.49,22.98909,16450.031}; azimut=-83.085503; special="NONE"; id=16; side="EAST"; vehicle="Ins_Soldier_1"; player="PLAY CDG"; skill=0.60000002; text="ins8"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Боевики] Боец"; }; class Item2 { position[]={14019.571,23.006643,16451.088}; azimut=-83.085503; special="NONE"; id=17; side="EAST"; vehicle="Ins_Soldier_Medic"; player="PLAY CDG"; skill=0.60000002; text="ins7"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Боевики] Медик"; }; class Item3 { position[]={14019.699,23.023411,16452.146}; azimut=-83.085503; special="NONE"; id=18; side="EAST"; vehicle="Ins_Soldier_GL"; player="PLAY CDG"; skill=0.60000002; text="ins6"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Боевики] Боец"; }; class Item4 { position[]={14019.811,23.037846,16453.061}; azimut=-83.085503; special="NONE"; id=19; side="EAST"; vehicle="Ins_Soldier_MG"; player="PLAY CDG"; skill=0.60000002; text="ins5"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Боевики] Боец"; }; class Item5 { position[]={14019.97,23.054939,16454.168}; azimut=-83.085503; special="NONE"; id=20; side="EAST"; vehicle="Ins_Soldier_Sab"; player="PLAY CDG"; skill=0.60000002; text="ins4"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Боевики] Боец"; }; class Item6 { position[]={14020.09,23.074955,16455.406}; azimut=-83.085503; special="NONE"; id=21; side="EAST"; vehicle="Ins_Soldier_Sapper"; player="PLAY CDG"; skill=0.60000002; text="ins3"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Боевики] Инженер"; }; class Item7 { position[]={14020.334,23.091585,16456.588}; azimut=-83.085503; special="NONE"; id=22; side="EAST"; vehicle="Ins_Soldier_AR"; player="PLAY CDG"; skill=0.60000002; text="ins2"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Боевики] Боец"; }; class Item8 { position[]={14019.408,22.976046,16449.178}; azimut=-83.085503; special="NONE"; id=32; side="EAST"; vehicle="Ins_Soldier_Sniper"; player="PLAY CDG"; skill=0.60000002; text="ins9"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Боевики] Боец"; }; }; }; class Item9 { side="EAST"; class Vehicles { items=9; class Item0 { position[]={14019.061,22.916775,16445.324}; azimut=-83.085503; special="NONE"; id=23; side="EAST"; vehicle="TK_INS_Soldier_TL_EP1"; player="PLAY CDG"; leader=1; skill=0.60000002; text="merc1"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Наемники] Командир"; }; class Item1 { position[]={14018.145,22.839779,16437.607}; azimut=-83.085503; special="NONE"; id=24; side="EAST"; vehicle="TK_INS_Soldier_AR_EP1"; player="PLAY CDG"; skill=0.60000002; text="merc8"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Наемники] Боец"; }; class Item2 { position[]={14018.226,22.847002,16438.664}; azimut=-83.085503; special="NONE"; id=25; side="EAST"; vehicle="TK_INS_Soldier_MG_EP1"; player="PLAY CDG"; skill=0.60000002; text="merc7"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Наемники] Боец"; }; class Item3 { position[]={14018.354,22.852974,16439.723}; azimut=-83.085503; special="NONE"; id=26; side="EAST"; vehicle="TK_INS_Bonesetter_EP1"; player="PLAY CDG"; skill=0.60000002; text="merc6"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Наемники] Медик"; }; class Item4 { position[]={14018.465,22.856783,16440.637}; azimut=-83.085503; special="NONE"; id=27; side="EAST"; vehicle="ACE_TK_INS_Soldier_AKMS_EP1"; player="PLAY CDG"; skill=0.60000002; text="merc5"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Наемники] Инженер"; }; class Item5 { position[]={14018.624,22.863775,16441.744}; azimut=-83.085503; special="NONE"; id=28; side="EAST"; vehicle="TK_INS_Warlord_EP1"; player="PLAY CDG"; skill=0.60000002; text="merc4"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Наемники] Боец"; }; class Item6 { position[]={14018.744,22.882664,16442.982}; azimut=-83.085503; special="NONE"; id=29; side="EAST"; vehicle="TK_INS_Soldier_EP1"; player="PLAY CDG"; skill=0.60000002; text="merc3"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Наемники] Боец"; }; class Item7 { position[]={14018.988,22.898357,16444.164}; azimut=-83.085503; special="NONE"; id=30; side="EAST"; vehicle="TK_INS_Soldier_3_EP1"; player="PLAY CDG"; skill=0.60000002; text="merc2"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Наемники] Боец"; }; class Item8 { position[]={14017.943,22.836046,16436.566}; azimut=-83.085503; special="NONE"; id=31; side="EAST"; vehicle="TK_INS_Soldier_Sniper_EP1"; player="PLAY CDG"; skill=0.60000002; text="merc9"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Наемники] Боец"; }; }; }; class Item10 { side="EAST"; class Vehicles { items=12; class Item0 { position[]={14017.849,22.812487,16433.656}; azimut=-443.32501; special="NONE"; id=33; side="EAST"; vehicle="GUE_Soldier_CO"; player="PLAY CDG"; leader=1; skill=0.60000002; text="gue1"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Командир"; }; class Item1 { position[]={14017.617,22.80971,16432.625}; azimut=-443.32501; special="NONE"; id=34; side="EAST"; vehicle="Woodlander4"; player="PLAY CDG"; skill=0.60000002; text="gue2"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Боец"; }; class Item2 { position[]={14017.432,22.805544,16431.586}; azimut=-443.32501; special="NONE"; id=35; side="EAST"; vehicle="GUE_Soldier_2"; player="PLAY CDG"; skill=0.60000002; text="gue3"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Боец"; }; class Item3 { position[]={14017.191,22.803598,16430.621}; azimut=-443.32501; special="NONE"; id=36; side="EAST"; vehicle="GUE_Soldier_1"; player="PLAY CDG"; skill=0.60000002; text="gue4"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Боец"; }; class Item4 { position[]={14017.03,22.798235,16429.523}; azimut=-443.32401; special="NONE"; id=37; side="EAST"; vehicle="ACE_GUE_Soldier_Engineer"; player="PLAY CDG"; skill=0.60000002; text="gue5"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Инженер"; }; class Item5 { position[]={14016.859,22.794788,16428.609}; azimut=-443.32401; special="NONE"; id=38; side="EAST"; vehicle="GUE_Soldier_Medic"; player="PLAY CDG"; skill=0.60000002; text="gue6"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Медик"; }; class Item6 { position[]={14016.814,22.78779,16427.695}; azimut=-443.32501; special="NONE"; id=39; side="EAST"; vehicle="GUE_Soldier_MG"; player="PLAY CDG"; skill=0.60000002; text="gue7"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Боец"; }; class Item7 { position[]={14016.679,22.784796,16426.938}; azimut=-443.32501; special="NONE"; id=40; side="EAST"; vehicle="GUE_Commander"; player="PLAY CDG"; skill=0.60000002; text="gue8"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Боец"; }; class Item8 { position[]={14016.532,22.781801,16426.148}; azimut=-443.32401; special="NONE"; id=41; side="EAST"; vehicle="GUE_Soldier_3"; player="PLAY CDG"; skill=0.60000002; text="gue9"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Боец"; }; class Item9 { position[]={14016.428,22.776358,16425.221}; azimut=-443.32401; special="NONE"; id=42; side="EAST"; vehicle="GUE_Soldier_1"; player="PLAY CDG"; skill=0.60000002; text="gue10"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Боец"; }; class Item10 { position[]={14016.172,22.774305,16424.195}; azimut=-443.32401; special="NONE"; id=43; side="EAST"; vehicle="GUE_Soldier_AR"; player="PLAY CDG"; skill=0.60000002; text="gue11"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Боец"; }; class Item11 { position[]={14016.059,22.7752,16423.002}; azimut=-445.43399; special="NONE"; id=44; side="EAST"; vehicle="GUE_Soldier_2"; player="PLAY CDG"; skill=0.60000002; text="gue12"; init="removeAllWeapons this; removeBackpack this; removeAllItems this;"; description="[Партизаны] Боец"; }; }; }; class Item11 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={14100.372,21.340677,16432.959}; id=119; side="LOGIC"; vehicle="ace_sys_repair_tyres"; leader=1; lock="UNLOCKED"; skill=0.60000002; }; }; }; }; class Vehicles { items=141; class Item0 { position[]={14006.665,23.293011,16454.09}; special="FLY"; id=0; side="EMPTY"; vehicle="FlagCarrierINS"; leader=1; skill=1; text="Flag_Base_RU"; init="this addEventHandler [""handleDamage"", {0}];"; }; class Item1 { position[]={14006.69,23.27072,16452.199}; azimut=180; special="NONE"; id=1; side="EMPTY"; vehicle="RUVehicleBox"; leader=1; skill=0.60000002; text="ammobox"; init="this addEventHandler [""handleDamage"", {0}];clearMagazineCargo this; clearWeaponCargo this; null = [this] execVM ""scripts\server\gear\ammo_rifles.sqf"";"; }; class Item2 { position[]={14056.45,23.100225,16460.883}; azimut=90.857758; id=3; side="EMPTY"; vehicle="Misc_Backpackheap"; skill=0.60000002; text="RIP_G1_CHECKPOINT"; }; class Item3 { position[]={14056.635,23.1891,16463.156}; azimut=90.857758; id=4; side="EMPTY"; vehicle="Misc_Backpackheap"; skill=0.60000002; text="RIP_M1_CHECKPOINT"; }; class Item4 { position[]={14056.706,23.310387,16465.439}; azimut=90.857758; id=5; side="EMPTY"; vehicle="Misc_Backpackheap"; skill=0.60000002; text="RIP_S1_CHECKPOINT"; }; class Item5 { position[]={13967.687,23.912699,16444.82}; azimut=180; id=6; side="EMPTY"; vehicle="TK_WarfareBUAVterminal_EP1"; skill=0.60000002; init="this setCaptive true;this addAction [(localize ""STR_RIP_MOVETORALLYPOINT""),""scripts\player\Teleport.sqf"",[],0,false,true];this addEventHandler [""handleDamage"", {0}];"; }; class Item6 { position[]={13990.808,23.796822,16468.002}; azimut=225; special="NONE"; id=45; side="EMPTY"; vehicle="TT650_Ins"; leader=1; skill=0.60000002; text="car10"; }; class Item7 { position[]={13992.55,23.751471,16467.002}; azimut=225; special="NONE"; id=46; side="EMPTY"; vehicle="TT650_Ins"; leader=1; skill=0.60000002; text="car11"; }; class Item8 { position[]={13994.553,23.6954,16465.557}; azimut=225; special="NONE"; id=47; side="EMPTY"; vehicle="TT650_Ins"; leader=1; skill=0.60000002; text="car12"; }; class Item9 { position[]={14001.221,23.799784,16478.852}; azimut=307.30099; special="NONE"; id=48; side="EMPTY"; vehicle="ACE_UralOpen_RU"; leader=1; skill=0.60000002; fuel=0.42937607; text="car2"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item10 { position[]={14021.671,29.933018,16548.473}; azimut=247.26401; special="NONE"; id=49; side="EMPTY"; vehicle="hilux1_civil_1_open"; leader=1; skill=0.60000002; fuel=0.44170392; text="car9"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item11 { position[]={13989.202,23.653259,16397.338}; azimut=52.029762; special="NONE"; id=50; side="EMPTY"; vehicle="Lada1_TK_CIV_EP1"; leader=1; skill=0.60000002; fuel=0.63072991; text="car6"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item12 { position[]={13981.532,27.856445,16409.244}; azimut=61.698299; special="NONE"; id=51; side="EMPTY"; vehicle="LandRover_TK_CIV_EP1"; leader=1; skill=0.60000002; fuel=0.49512413; ammo=0.2650058; text="car4"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item13 { position[]={13987.067,23.715542,16400.252}; azimut=58.170502; special="NONE"; id=52; side="EMPTY"; vehicle="Skoda"; leader=1; skill=0.60000002; fuel=0.49512413; text="car7"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item14 { position[]={13971.204,24.084032,16467.627}; azimut=126.123; special="NONE"; id=53; side="EMPTY"; vehicle="Tractor"; leader=1; skill=0.60000002; text="car3"; }; class Item15 { position[]={13983.17,27.831121,16406.088}; azimut=61.8545; special="NONE"; id=54; side="EMPTY"; vehicle="Offroad_DSHKM_INS"; leader=1; skill=0.60000002; fuel=0.50334269; text="car5"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item16 { position[]={14004.477,23.915045,16483.148}; azimut=306.47299; special="NONE"; id=55; side="EMPTY"; vehicle="V3S_Gue"; leader=1; skill=0.60000002; fuel=0.57730943; text="car1"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item17 { position[]={14023.845,29.931686,16544.102}; azimut=247.26401; special="NONE"; id=56; side="EMPTY"; vehicle="UAZ_INS"; leader=1; skill=0.60000002; fuel=0.52388895; text="car8"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item18 { position[]={14276.374,0.43812844,16477.309}; azimut=409.99899; special="NONE"; id=57; side="EMPTY"; vehicle="Fishing_Boat"; leader=1; skill=0.60000002; fuel=0.62251097; text="car13"; init="ClearWeaponCargo this;ClearMagazineCargo this;"; }; class Item19 { position[]={14282.589,0.54164284,16469.287}; azimut=409.99899; special="NONE"; id=58; side="EMPTY"; vehicle="PBX"; leader=1; skill=0.60000002; fuel=0.72935194; text="car14"; init="ClearWeaponCargo this;ClearMagazineCargo this;"; }; class Item20 { position[]={14286.354,0.5339269,16465.523}; azimut=409.99899; special="NONE"; id=59; side="EMPTY"; vehicle="Zodiac"; leader=1; skill=0.60000002; fuel=0.36362812; text="car15"; init="ClearWeaponCargo this;ClearMagazineCargo this;"; }; class Item21 { position[]={14292.182,0.47389942,16460.836}; azimut=409.99899; special="NONE"; id=60; side="EMPTY"; vehicle="PBX"; leader=1; skill=0.60000002; fuel=0.58963698; text="car16"; init="ClearWeaponCargo this;ClearMagazineCargo this;"; }; class Item22 { position[]={19288.439,11.960656,13850.256}; azimut=45.015427; special="NONE"; id=61; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="FD1"; }; class Item23 { position[]={9587.8691,139.98311,9820.4541}; azimut=5; special="NONE"; id=62; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="FD2"; }; class Item24 { position[]={8463.9326,11.674387,9409.5645}; azimut=300; special="NONE"; id=63; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="FD3"; }; class Item25 { position[]={12291.66,25.788139,6848.9346}; azimut=285; special="NONE"; id=64; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="FD4"; }; class Item26 { position[]={13966.564,24.786989,16497.9}; azimut=40; special="NONE"; id=65; side="EMPTY"; vehicle="MAP_Fortress_01"; leader=1; skill=0.60000002; }; class Item27 { position[]={12113.728,25.951591,17669.947}; azimut=5; special="NONE"; id=66; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DFC1"; }; class Item28 { position[]={18824.529,38.616253,13716.396}; special="NONE"; id=67; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DFC2"; }; class Item29 { position[]={17275.588,13.435461,14110.464}; special="NONE"; id=68; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DFC3"; }; class Item30 { position[]={11845.74,152.98817,15360.376}; azimut=15; special="NONE"; id=69; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DFC4"; }; class Item31 { position[]={8189.6147,49.989311,16980.779}; azimut=27.29534; special="NONE"; id=70; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DHQ1"; }; class Item32 { position[]={17738.014,64.96328,12371.828}; azimut=0.080409497; special="NONE"; id=71; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DHQ2"; }; class Item33 { position[]={12383.031,31.990528,8428.4902}; azimut=0.080409497; special="NONE"; id=72; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DHQ3"; }; class Item34 { position[]={17525.635,17.981939,9539.543}; azimut=0.080409497; special="NONE"; id=73; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DHQ4"; }; class Item35 { position[]={12373.882,179.99561,15003.066}; azimut=0.080409497; special="NONE"; id=74; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DHQ5"; }; class Item36 { position[]={18788.531,11.879931,14334.39}; azimut=36.890125; special="NONE"; id=75; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DC1"; }; class Item37 { position[]={10339.539,139.97812,10068.057}; azimut=-1.97351; special="NONE"; id=76; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DC2"; }; class Item38 { position[]={8122.7598,176.97188,7871.9639}; azimut=-1.97351; special="NONE"; id=77; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DC3"; }; class Item39 { position[]={18104.014,8.6912584,18097.922}; azimut=-1.97351; special="NONE"; id=78; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DC4"; }; class Item40 { position[]={2574.3826,13.883385,2757.1985}; azimut=-1.97351; special="NONE"; id=79; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="DC5"; }; class Item41 { position[]={12507.955,28.063068,7117.8325}; azimut=-1.97351; special="NONE"; id=80; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SAT1"; }; class Item42 { position[]={13321.176,12.576168,8958.8926}; azimut=-1.97351; special="NONE"; id=81; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SAT2"; }; class Item43 { position[]={13801.772,34.963108,11489.398}; azimut=-1.97351; special="NONE"; id=82; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SAT3"; }; class Item44 { position[]={7563.3926,42.054913,15674.923}; azimut=-1.97351; special="NONE"; id=83; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SAT4"; }; class Item45 { position[]={12511.138,30.951458,17706.447}; azimut=-1.97351; special="NONE"; id=84; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SAT5"; }; class Item46 { position[]={11484.059,27.210375,6308.0557}; azimut=-1.97351; special="NONE"; id=85; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SAT6"; }; class Item47 { position[]={11450.205,27.609325,6342.1753}; azimut=325; special="NONE"; id=86; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SFT1"; }; class Item48 { position[]={12288.422,25.589685,6816.3916}; azimut=70; special="NONE"; id=87; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SFT2"; }; class Item49 { position[]={14570.566,43.961456,10632.002}; azimut=215; special="NONE"; id=88; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SFT3"; }; class Item50 { position[]={14225.757,55.061062,11892.947}; azimut=85; special="NONE"; id=89; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SFT5"; }; class Item51 { position[]={11191.012,238.88326,14595.939}; azimut=95; special="NONE"; id=90; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SFT4"; }; class Item52 { position[]={11163.123,7.2862873,16921.516}; azimut=180; special="NONE"; id=91; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SFT6"; }; class Item53 { position[]={13475.649,19.965586,9130.7139}; azimut=180; special="NONE"; id=92; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SME1"; }; class Item54 { position[]={17747.67,64.96328,12427.495}; azimut=180; special="NONE"; id=93; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SME2"; }; class Item55 { position[]={14225.9,39.941086,12526.535}; azimut=180; special="NONE"; id=94; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SME3"; }; class Item56 { position[]={11957.467,152.62485,15286.248}; azimut=285; special="NONE"; id=95; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SME4"; }; class Item57 { position[]={8150.4863,49.989311,17070.492}; azimut=120; special="NONE"; id=96; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SME5"; }; class Item58 { position[]={18027.525,8.6912584,18784.971}; azimut=-1.97351; special="NONE"; id=97; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SC4"; }; class Item59 { position[]={19036.322,11.952834,14144.793}; azimut=-1.97351; special="NONE"; id=98; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SC3"; }; class Item60 { position[]={9786.6299,139.98311,10081.543}; azimut=-1.97351; special="NONE"; id=99; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SC2"; }; class Item61 { position[]={2536.7949,13.891479,2458.3481}; azimut=-1.97351; special="NONE"; id=100; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SC1"; }; class Item62 { position[]={8144.6973,9.4346924,9080.7354}; azimut=-1.97351; special="NONE"; id=101; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SC5"; }; class Item63 { position[]={10273.564,65.631332,7370.9814}; azimut=-1.97351; special="NONE"; id=102; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO1"; }; class Item64 { position[]={6405.0483,56.451626,7450.2441}; azimut=-1.97351; special="NONE"; id=103; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO2"; }; class Item65 { position[]={10740.663,139.92494,7349.0112}; azimut=-1.97351; special="NONE"; id=104; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO3"; }; class Item66 { position[]={13871.217,30.234953,10298.866}; azimut=-1.97351; special="NONE"; id=105; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO4"; }; class Item67 { position[]={13428.545,26.28006,11042.844}; azimut=-1.97351; special="NONE"; id=106; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO5"; }; class Item68 { position[]={12539.762,169.94933,12702.343}; azimut=-1.97351; special="NONE"; id=107; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO6"; }; class Item69 { position[]={11540.73,252.57738,14436.733}; azimut=-1.97351; special="NONE"; id=108; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO7"; }; class Item70 { position[]={10417.949,209.06532,15058.41}; azimut=-1.97351; special="NONE"; id=109; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO8"; }; class Item71 { position[]={14901.299,49.171627,13734.52}; azimut=-1.97351; special="NONE"; id=110; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO9"; }; class Item72 { position[]={17178.809,40.69009,13585.039}; azimut=26.451723; special="NONE"; id=111; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO10"; }; class Item73 { position[]={14422.781,34.772442,8643.1436}; azimut=-1.97351; special="NONE"; id=112; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="EO11"; }; class Item74 { position[]={11896.557,152.98817,15461.987}; azimut=-1.97351; special="NONE"; id=113; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SF1"; }; class Item75 { position[]={8182.1997,49.989311,17034.361}; azimut=-1.97351; special="NONE"; id=114; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SF2"; }; class Item76 { position[]={17596.625,17.981939,9552.3574}; azimut=-1.97351; special="NONE"; id=115; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SF3"; }; class Item77 { position[]={12364.665,31.990528,8482.2891}; azimut=-1.97351; special="NONE"; id=116; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SF4"; }; class Item78 { position[]={11436.674,25.238943,6257.1133}; azimut=-1.97351; special="NONE"; id=117; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SF5"; }; class Item79 { position[]={9464.5615,139.98311,9849.6602}; azimut=-1.97351; special="NONE"; id=118; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="SF6"; }; class Item80 { position[]={14019.738,22.650759,16421.564}; azimut=-1.97351; special="NONE"; id=120; side="EMPTY"; vehicle="ACE_Tbox_RU"; leader=1; skill=0.60000002; }; class Item81 { position[]={14021.166,22.624708,16423.498}; azimut=335; special="NONE"; id=121; side="EMPTY"; vehicle="ACE_Tbox_RU"; leader=1; skill=0.60000002; }; class Item82 { position[]={14023.164,22.548416,16421.904}; azimut=185; special="NONE"; id=122; side="EMPTY"; vehicle="ACE_Tbox_RU"; leader=1; skill=0.60000002; }; class Item83 { position[]={14025.434,22.471115,16421.131}; azimut=60; special="NONE"; id=123; side="EMPTY"; vehicle="ACE_Tbox_RU"; leader=1; skill=0.60000002; }; class Item84 { position[]={14026.92,22.432703,16421.984}; azimut=310; special="NONE"; id=124; side="EMPTY"; vehicle="ACE_Tbox_RU"; leader=1; skill=0.60000002; }; class Item85 { position[]={14021.422,22.587725,16420.271}; azimut=175; special="NONE"; id=125; side="EMPTY"; vehicle="ACE_Tbox_RU"; leader=1; skill=0.60000002; }; class Item86 { position[]={4555.3799,30.95631,15287.373}; azimut=175; special="NONE"; id=126; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="MLRS1"; }; class Item87 { position[]={4917.3623,56.95649,15467.329}; azimut=175; special="NONE"; id=127; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="MLRS2"; }; class Item88 { position[]={4398.7754,30.957874,15810.082}; azimut=175; special="NONE"; id=128; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="MLRS3"; }; class Item89 { position[]={13248.07,15.044193,8793.8525}; azimut=175; special="NONE"; id=129; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="CT1"; }; class Item90 { position[]={12341.18,9.7596989,7148.4922}; azimut=175; special="NONE"; id=130; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="CT2"; }; class Item91 { position[]={14298.537,39.941086,12519.526}; azimut=175; special="NONE"; id=131; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="CT3"; }; class Item92 { position[]={17220.67,21.908882,14254.701}; azimut=175; special="NONE"; id=132; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="CT4"; }; class Item93 { position[]={9149.8662,166.97241,8302.7793}; azimut=175; special="NONE"; id=133; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="CT5"; }; class Item94 { position[]={9399.7129,45.094986,5983.4434}; azimut=175; special="NONE"; id=134; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="CT6"; }; class Item95 { position[]={14023.946,22.505713,16419.918}; azimut=247.26401; special="NONE"; id=135; side="EMPTY"; vehicle="ACE_JerryCan_15"; leader=1; skill=0.60000002; }; class Item96 { position[]={14024.903,22.474384,16419.814}; azimut=247.26401; special="NONE"; id=136; side="EMPTY"; vehicle="ACE_JerryCan_15"; leader=1; skill=0.60000002; }; class Item97 { position[]={14023.455,22.524517,16420.254}; azimut=15; special="NONE"; id=137; side="EMPTY"; vehicle="ACE_JerryCan_15"; leader=1; skill=0.60000002; }; class Item98 { position[]={14024.282,22.504019,16420.822}; azimut=15; special="NONE"; id=138; side="EMPTY"; vehicle="ACE_JerryCan_15"; leader=1; skill=0.60000002; }; class Item99 { position[]={14025.393,23.130302,16460.322}; azimut=275; id=139; side="EMPTY"; vehicle="S1203_ambulance_EP1"; skill=0.60000002; text="car17"; }; class Item100 { position[]={14295.398,0.43974817,16456.791}; azimut=409.99899; special="NONE"; id=140; side="EMPTY"; vehicle="PBX"; leader=1; skill=0.60000002; fuel=0.71702379; text="car18"; init="ClearWeaponCargo this;ClearMagazineCargo this;"; }; class Item101 { position[]={13940.321,27.313927,16518.736}; id=141; side="EMPTY"; vehicle="Sound_BirdSinging"; skill=0.60000002; }; class Item102 { position[]={10590.784,122.9685,9474.2793}; azimut=179.375; special="NONE"; id=142; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="FINALTOWN"; }; class Item103 { position[]={10655.11,153.02464,9271.7637}; azimut=335; special="NONE"; id=143; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="FINALESCAPE"; init="this setpos [(getpos this select 0), (getpos this select 1), 0];"; }; class Item104 { position[]={10637.72,152.98784,9288.5625}; azimut=-90.875755; special="NONE"; id=144; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="ESCAPECAR"; }; class Item105 { position[]={10658.665,152.98784,9288.624}; azimut=-90.875801; special="NONE"; id=145; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="ESCAPECAR2"; }; class Item106 { position[]={9494.2383,139.98311,10020.764}; azimut=270; special="NONE"; id=146; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="ESCAPEAIR"; }; class Item107 { position[]={9558.917,171.38649,8564.4541}; azimut=275; special="NONE"; id=147; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="ESCAPEHELI"; }; class Item108 { position[]={9820.374,0.99015993,11141.898}; azimut=5; special="NONE"; id=148; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="ESCAPEBOAT"; }; class Item109 { position[]={13995.189,27.323002,16476.652}; azimut=35; id=149; side="EMPTY"; vehicle="MAP_lampa_sidl"; skill=0.60000002; init="light = ""#lightpoint"" createVehicle getpos this;light setLightBrightness 0.075;light setLightAmbient[1.0, 1.0, 1.0];light setLightColor[1.0, 1.0, 1.0];light lightAttachObject [this, [0,0,3]];"; }; class Item110 { position[]={13977.565,23.80694,16419.225}; azimut=155; id=150; side="EMPTY"; vehicle="MAP_lampa_sidl"; skill=0.60000002; init="light = ""#lightpoint"" createVehicle getpos this;light setLightBrightness 0.075;light setLightAmbient[1.0, 1.0, 1.0];light setLightColor[1.0, 1.0, 1.0];light lightAttachObject [this, [0,0,3]];"; }; class Item111 { position[]={14025.91,25.771696,16531.715}; azimut=340; id=151; side="EMPTY"; vehicle="MAP_lampa_sidl"; skill=0.60000002; init="light = ""#lightpoint"" createVehicle getpos this;light setLightBrightness 0.075;light setLightAmbient[1.0, 1.0, 1.0];light setLightColor[1.0, 1.0, 1.0];light lightAttachObject [this, [0,0,3]];"; }; class Item112 { position[]={13961.797,24.362108,16480.094}; azimut=40; special="NONE"; id=152; side="EMPTY"; vehicle="MAP_Fortress_02"; leader=1; skill=0.60000002; }; class Item113 { position[]={13957.357,24.782419,16487.49}; azimut=121.6573; special="NONE"; id=153; side="EMPTY"; vehicle="Land_fort_bagfence_corner"; leader=1; skill=0.60000002; }; class Item114 { position[]={13954.943,24.90868,16485.373}; azimut=121.6953; special="NONE"; id=154; side="EMPTY"; vehicle="Land_fort_bagfence_long"; leader=1; skill=0.60000002; }; class Item115 { position[]={13954.155,24.609861,16482.166}; azimut=31.215498; special="NONE"; id=155; side="EMPTY"; vehicle="Land_fort_bagfence_corner"; leader=1; skill=0.60000002; }; class Item116 { position[]={13952.675,25.163605,16488.428}; azimut=40; special="NONE"; id=156; side="EMPTY"; vehicle="Hedgehog"; leader=1; skill=0.60000002; }; class Item117 { position[]={13948.929,24.959112,16485.521}; azimut=40; special="NONE"; id=157; side="EMPTY"; vehicle="Hedgehog"; leader=1; skill=0.60000002; }; class Item118 { position[]={13959.231,24.957277,16499.57}; azimut=40; special="NONE"; id=158; side="EMPTY"; vehicle="Hedgehog"; leader=1; skill=0.60000002; }; class Item119 { position[]={13962.779,25.029408,16504.35}; azimut=40; special="NONE"; id=159; side="EMPTY"; vehicle="Hedgehog"; leader=1; skill=0.60000002; }; class Item120 { position[]={13956.125,25.400883,16504.201}; azimut=40; special="NONE"; id=160; side="EMPTY"; vehicle="Hedgehog"; leader=1; skill=0.60000002; }; class Item121 { position[]={13955.999,24.820192,16485.068}; azimut=315; id=161; side="EMPTY"; vehicle="SearchLight_Gue"; skill=0.60000002; }; class Item122 { position[]={14022.151,22.878479,16446.598}; azimut=5; id=162; side="EMPTY"; vehicle="MAP_lampa_sidl"; skill=0.60000002; init="light = ""#lightpoint"" createVehicle getpos this;light setLightBrightness 0.075;light setLightAmbient[1.0, 1.0, 1.0];light setLightColor[1.0, 1.0, 1.0];light lightAttachObject [this, [0,0,3]];"; }; class Item123 { position[]={14008.157,26.234486,16563.701}; azimut=232.896; special="NONE"; id=163; side="EMPTY"; vehicle="car_hatchback"; leader=1; skill=0.60000002; fuel=0.63072991; text="car19"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item124 { position[]={13991.446,23.587399,16394.928}; azimut=42.7034; special="NONE"; id=164; side="EMPTY"; vehicle="VolhaLimo_TK_CIV_EP1"; leader=1; skill=0.60000002; fuel=0.49512413; text="car20"; init="ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"; }; class Item125 { position[]={14027.098,22.363047,16417.107}; azimut=251.76801; special="NONE"; id=165; side="EMPTY"; vehicle="S1203_TK_CIV_EP1"; leader=1; skill=0.60000002; text="car21"; }; class Item126 { position[]={13985.641,24.404472,16492.422}; azimut=208.22099; special="NONE"; id=166; side="EMPTY"; vehicle="Ikarus"; leader=1; skill=0.60000002; text="car22"; }; class Item127 { position[]={11723.814,22.212643,16607.281}; azimut=5; special="NONE"; id=167; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost"; }; class Item128 { position[]={9960.126,25.261084,16655.5}; special="NONE"; id=168; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_12"; }; class Item129 { position[]={12257.384,127.1593,15466.858}; azimut=79.905403; special="NONE"; id=169; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_11"; }; class Item130 { position[]={10151.183,115.02353,14093.242}; azimut=129.89; special="NONE"; id=170; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_13"; }; class Item131 { position[]={11580.563,244.97581,14231.924}; azimut=-188.39799; special="NONE"; id=171; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_10"; }; class Item132 { position[]={13781.857,37.247841,13124.382}; azimut=-199.873; special="NONE"; id=172; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_3"; }; class Item133 { position[]={15634.89,61.889927,13801.816}; azimut=104.641; special="NONE"; id=173; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_2"; }; class Item134 { position[]={14490.907,55.062996,12157.016}; azimut=-32.221802; special="NONE"; id=174; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_9"; }; class Item135 { position[]={13919.567,32.313831,9721.917}; azimut=208.77; special="NONE"; id=175; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_1"; }; class Item136 { position[]={10921.861,17.444717,10649.539}; azimut=-90.765404; special="NONE"; id=176; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_6"; }; class Item137 { position[]={9559.6182,145.89618,9575.376}; special="NONE"; id=177; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_7"; }; class Item138 { position[]={10129.4,124.93201,9298.9844}; azimut=366.23901; special="NONE"; id=178; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_8"; }; class Item139 { position[]={9411.5371,51.659344,6137.5928}; azimut=-166.964; special="NONE"; id=179; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_4"; }; class Item140 { position[]={11190.152,21.197908,5698.9766}; azimut=-29.698; special="NONE"; id=180; side="EMPTY"; vehicle="HeliHEmpty"; leader=1; skill=0.60000002; text="Blockpost_5"; }; }; class Markers { items=26; class Item0 { position[]={14010.872,23.189739,16452.561}; name="respawn_east"; type="Empty"; angle=-123.59013; }; class Item1 { position[]={14024.925,23.354069,16468.488}; name="hospital"; type="o_med"; colorName="ColorGreen"; angle=-97.864799; }; class Item2 { position[]={8401.4043,116.91275,8330.7441}; name="Patrol1_1"; text="Patrol1_1"; type="Empty"; angle=86.984245; }; class Item3 { position[]={9858.2119,15.206758,10981.292}; name="Patrol1_2"; text="Patrol1_2"; type="Empty"; angle=100; }; class Item4 { position[]={12829.492,34.755852,8252.4941}; name="Patrol1_3"; text="Patrol1_3"; type="Empty"; angle=40; }; class Item5 { position[]={10001.804,54.990841,6385.0161}; name="Patrol1_4"; text="Patrol1_4"; type="Empty"; angle=66.151382; }; class Item6 { position[]={17041.994,13.355463,14235.062}; name="Patrol2_1"; text="Patrol2_1"; type="Empty"; angle=210; }; class Item7 { position[]={14080.91,33.135666,10015.626}; name="Patrol2_2"; text="Patrol2_2"; type="Empty"; angle=30; }; class Item8 { position[]={10035.598,25.812618,16591.037}; name="Patrol2_3"; text="Patrol2_3"; type="Empty"; angle=172.55466; }; class Item9 { position[]={10182.817,131.77676,14007.748}; name="Patrol2_4"; text="Patrol2_4"; type="Empty"; angle=120; }; class Item10 { position[]={13967.694,23.913139,16444.914}; name="UAV"; text="Телепорт"; type="n_uav"; colorName="ColorBlack"; }; class Item11 { position[]={4190.3096,0.27773532,19888.355}; name="area0"; text="area0"; markerType="ELLIPSE"; type="Empty"; a=300; b=300; }; class Item12 { position[]={10018.398,196.65016,7766.2168}; name="area1"; text="area1"; markerType="ELLIPSE"; type="Empty"; fillName="Border"; a=3000; b=3000; drawBorder=1; }; class Item13 { position[]={13884.201,21.195387,13358.896}; name="area2"; text="area2"; markerType="ELLIPSE"; type="Empty"; fillName="Border"; a=3000; b=6000; angle=-41.157398; drawBorder=1; }; class Item14 { position[]={8036.3608,68.900101,15783.27}; name="Patrol3_1"; text="Patrol3"; type="Empty"; angle=120; }; class Item15 { position[]={11473.851,26.293148,12131.207}; name="Patrol3_2"; text="Patrol3"; type="Empty"; angle=120; }; class Item16 { position[]={14399.689,57.175713,12257.455}; name="Patrol3_3"; text="Patrol3"; type="Empty"; angle=120; }; class Item17 { position[]={16388.477,12.030082,9138.3105}; name="Patrol3_4"; text="Patrol3"; type="Empty"; angle=180; }; class Item18 { position[]={12205.01,29.018854,17454.668}; name="Patrol4_1"; text="Patrol4"; type="Empty"; angle=120; }; class Item19 { position[]={10814.405,107.61732,15421.325}; name="Patrol4_2"; text="Patrol4"; type="Empty"; angle=120; }; class Item20 { position[]={12440.386,217.07713,14230.141}; name="Patrol4_3"; text="Patrol4"; type="Empty"; angle=120; }; class Item21 { position[]={18896.508,13.008011,14161.557}; name="Patrol4_4"; text="Patrol4"; type="Empty"; angle=120; }; class Item22 { position[]={14284.936,0.65912044,16466.42}; name="boats"; text="Лодки"; type="Boat"; colorName="ColorGreen"; }; class Item23 { position[]={14021.487,23.645061,16478.375}; name="Base"; type="Faction_INS"; a=1.5; }; class Item24 { position[]={14006.716,23.272892,16452.615}; name="box"; text="Оружие"; type="Select"; colorName="ColorGreen"; a=0.5; b=0.5; }; class Item25 { position[]={3896.3416,0.087671481,20514.359}; name="ESCAPE"; type="Empty"; }; }; class Sensors { items=5; class Item0 { position[]={4851.2109,0.33664507,19709.424}; a=20; b=20; rectangular=1; activationBy="LOGIC"; repeating=1; interruptable=1; age="UNKNOWN"; name="RIP_New_task_trig"; expCond="!(Server getVariable ""RIPMISSIONCREATED"") && (Server getVariable ""RIPMISSIONCOMPLETED"")"; expActiv="null = [] execVM ""scripts\server\NewTask.sqf"";"; class Effects { }; }; class Item1 { position[]={4896.8584,0.10925603,19709.818}; a=20; b=20; rectangular=1; activationBy="LOGIC"; repeating=1; interruptable=1; age="UNKNOWN"; name="RIP_New_task_trig_1"; expCond="!(Server getVariable ""RIPMISSIONCOMPLETED"") && (Server getVariable ""RIPMISSIONCREATED"")"; expActiv="null = [] execVM ""scripts\player\NewTask.sqf"";"; class Effects { }; }; class Item2 { position[]={4989.6289,0.28317195,19710.508}; a=20; b=20; rectangular=1; activationBy="LOGIC"; repeating=1; interruptable=1; age="UNKNOWN"; name="rip_mission_endwinner_trig"; expCond="Server getVariable ""RIPMISSIONENDWINNER"""; expActiv="null = [] execVM ""scripts\player\MissionEndWinner.sqf"";"; class Effects { }; }; class Item3 { position[]={5035.3652,0.171534,19710.303}; a=20; b=20; rectangular=1; activationBy="LOGIC"; repeating=1; interruptable=1; age="UNKNOWN"; name="rip_mission_endlooser_trig"; expCond="Server getVariable ""RIPMISSIONENDLOOSER"""; expActiv="null = [] execVM ""scripts\player\MissionEndLooser.sqf"";"; class Effects { }; }; class Item4 { position[]={14006.528,23.272882,16451.836}; a=10; b=10; angle=112.4; activationBy="EAST"; repeating=1; interruptable=1; age="UNKNOWN"; expCond="vehicle player in thislist && (vehicle player isKindOf ""Tank"" or vehicle player isKindOf ""Car"")"; expActiv="vehicle Player removeAction At_z1; At_z1 = vehicle Player addAction [(localize ""STR_RIP_UNLOADAMMO""),""scripts\server\func\War_func_UnloadAmmo.sqf"",1,0, true, true,"""",""""];"; expDesactiv="vehicle Player removeAction At_z1"; class Effects { }; }; }; }; class Intro { addOns[]= { "smd_sahrani_a2" }; addOnsAuto[]= { "smd_sahrani_a2" }; randomSeed=8183096; class Intel { startWeather=0; forecastWeather=0; year=2010; month=1; day=11; hour=12; minute=0; }; }; class OutroWin { addOns[]= { "smd_sahrani_a2" }; addOnsAuto[]= { "smd_sahrani_a2" }; randomSeed=3963371; class Intel { startWeather=0; forecastWeather=0; year=2010; month=1; day=11; hour=12; minute=0; }; }; class OutroLoose { addOns[]= { "smd_sahrani_a2" }; addOnsAuto[]= { "smd_sahrani_a2" }; randomSeed=4118684; class Intel { startWeather=0; forecastWeather=0; year=2010; month=1; day=11; hour=12; minute=0; }; };  Overview

Viva la Revolution!


Based on Delicate Balance



Created for NOVGAMES.RU



LANGUAGE, English, Russian STR_INS_COM, [Insurgents] Commander, [Боевики] Командир STR_INS_MED, [Insurgents] Medic, [Боевики] Медик STR_INS_ENG, [Insurgents] Engineer, [Боевики] Инженер STR_INS_MAN, [Insurgents] Soldier, [Боевики] Боец STR_MERC_COM, [Mercenaries] Commander, [Наемники] Командир STR_MERC_MED, [Mercenaries] Medic, [Наемники] Медик STR_MERC_ENG, [Mercenaries] Engineer, [Наемники] Инженер STR_MERC_MAN, [Mercenaries] Soldier, [Наемники] Боец STR_GUE_COM, [Guerrillas] Commander, [Партизаны] Командир STR_GUE_MED, [Guerrillas] Medic, [Партизаны] Медик STR_GUE_ENG, [Guerrillas] Engineer, [Партизаны] Инженер STR_GUE_MAN, [Guerrillas] Soldier, [Партизаны] Боец STR_RIP_ENABLE, "ENABLE", "ВКЛЮЧЕНО" STR_RIP_DISABLE, "DISABLE", "ОТКЛЮЧЕНО" STR_RIP_YES, "YES", "ДА" STR_RIP_NO, "NO", "НЕТ" STR_RIP_TIME, "Time:", "ВРЕМЯ СУТОК" STR_RIP_DISTANCE, "VIEWDISTANCE, M.:", "ДИСТАНЦИЯ ВИДИМОСТИ, М." STR_RIP_WOUNDSTIME, "WOUNDS TIME, SEC.", "ВРЕМЯ ДО СМЕРТИ ПРИ РАНЕНИИ, СЕК." STR_RIP_VEHICLEMARKERS, "VEHICLE MARKERS", "МАРКЕРЫ ТЕХНИКИ НА КАРТЕ" STR_RIP_PLAYERMARKERS, "PLAYER MARKES", "МАРКЕРЫ ИГРОКОВ НА КАРТЕ" STR_RIP_AISKILL, "AI SKILL", "УРОВЕНЬ БОТОВ" STR_RIP_LOW, "LOW", "НИЗКИЙ" STR_RIP_VERYLOW, "VERY LOW", "ОЧЕНЬ НИЗКО" STR_RIP_NORMAL, "NORMAL", "НОРМАЛЬНЫЙ" STR_RIP_HIGHT, "HIGHT", "ВЫСОКИЙ" STR_RIP_VERYHIGHT, "HIGHT", "МАКСИМАЛЬНО" STR_RIP_LITTLE, "LITTLE", "МАЛО" STR_RIP_NORMALLY, "NORMALLY", "НОРМАЛЬНО" STR_RIP_MANY, "MANY", "МНОГО" STR_RIP_VEHICLERESPAWNTIME, "VEHICLE RESPAWN TIME, MIN.", "ВРЕМЯ ВОЗРОЖДЕНИЯ ТЕХНИКИ, МИН." STR_AIRPATROLRESPAWNDELAY, "AIR PATROLS RESPAWN TIME, MIN.", "ВРЕМЯ ВОЗРОЖДЕНИЯ ВОЗДУШНЫХ ПАТРУЛЕЙ, МИН." STR_GROUNDPATROLRESPAWNDELAY, "GROUND PATROLS RESPAWN TIME, MIN.", "ВРЕМЯ ВОЗРОЖДЕНИЯ НАЗЕМНЫХ ПАТРУЛЕЙ, МИН." STR_RIP_DYNAMICWEATHER, "DINAMIC WEATHER SYSTEM", "ДИНАМИЧЕСКАЯ СИСТЕМА ПОГОДЫ" STR_RIP_WEATHERCHANGETIME, "FORECAST CHANGE EVERY, MIN.", "СМЕНА ПОГОДЫ КАЖДЫЕ, МИН." STR_RIP_GRASSLAYER, "GRASS LAYER ON START", "УРОВЕНЬ ТРАВЫ ПРИ СТАРТЕ" STR_RIP_DISABLEGRASS, "PLAYER CAN DISABLE GRASS", "ИГРОК МОЖЕТ ОТКЛЮЧИТЬ ТРАВУ" STR_CLEANUP, "BATTLEFIELD CLEAN SEC.", "ЧИСТКА ПОЛЯ БОЯ, СЕК." STR_BLOCKPOSTRANDOM, "CHANCE OF BLOCKPOST SPAWN", "ВЕРОЯТНОСТЬ ПОЯВЛЕНИЯ БЛОКПОСТА" STR_PATROLRANDOM, "CHANCE OF GROUND PATROL SPAWN", "ВЕРОЯТНОСТЬ ПОЯВЛЕНИЯ ПАТРУЛЯ" STR_RIP_ENEMYAIRPATROLS, "AIR ENEMY PATROLS", "ВОЗДУШНЫЕ ПАТРУЛИ ПРОТИВНИКА" STR_RIP_ENEMYGROUNDPATROLS, "GROUND ENEMY PATROLS", "НАЗЕМНЫЕ ПАТРУЛИ ПРОТИВНИКА" STR_RIP_ENEMYTOWNPATROLS, "ENEMY PATROLS IN TOWNS", "ПАТРУЛИ ПРОТИВНИКА В ГОРОДАХ" STR_RIP_PALLYPOINTS, "RALLY POINTS", "ТОЧКИ СБОРА" STR_RIP_MISSIONCOUNT, "NUMBER OF MISSIONS", "КОЛИЧЕСТВО МИССИЙ" STR_RIP_DONTSETRALLYPOINTS, "DO NOT SET RALLY POINTS WHEN THE ENEMY IS CLOSER", "НЕ СТАВИТЬ ТОЧКИ СБОРА, ЕСЛИ ПРОТИВНИК БЛИЖЕ" STR_RIP_RADIOADDON, "ADDON RADIO", "МОД РАЦИИ" STR_RIP_VON, "VON", "VON" STR_RIP_ACRE, "ACRE", "ACRE" STR_RIP_TASKFORCE, "TF RADIO (LIGHTWEIGHT MODE)", "TF RADIO (УПРОЩЕННЫЙ РЕЖИМ)" STR_RIP_TASKFORCESERIOUS, "TF RADIO (SERIOUS MODE)", "TF RADIO (СЕРЬЕЗНЫЙ РЕЖИМ)" STR_RIP_PILOTCHECK, "MILITARY HELICOPTERS ONLY FOR PILOTS", "БОЕВЫЕ ВЕРТОЛЕТЫ ТОЛЬКО ДЛЯ ПИЛОТОВ" STR_RIP_AICOUNT, "NUMBER OF ENEMY INFANTRIES", "КОЛИЧЕСТВО ПЕХОТЫ ПРОТИВНИКА" STR_RIP_AILIGHTVEHCOUNT, "NUMBER OF ENEMY LIGHT VEHICLES", "КОЛИЧЕСТВО ЛЕГКОЙ ТЕХНИКИ ПРОТИВНИКА" STR_RIP_AIHEAVYVEHCOUNT, "NUMBER OF ENEMY HEAVY VEHICLES", "КОЛИЧЕСТВО ТЯЖЕЛОЙ ТЕХНИКИ ПРОТИВНИКА" STR_RIP_RANDOMTIME, "RANDOM TIME FOR EVERY MISSION", "СЛУЧАЙНОЕ ВРЕМЯ ДЛЯ КАЖДОГО ЗАДАНИЯ" STR_RIP_RELOADTIME, "TIME TO REPAIR AND RELOAD VEHICLES ON BASE, MIN.", "ВРЕМЯ РЕМОНТА И ПЕРЕЗАРЯДКИ ТЕХНИКИ НА БАЗЕ, МИН." STR_RIP_DISABLECHAT, "DISABLE CHAT :", "ОТКЛЮЧИТЬ ЧАТ" STR_RIP_INTROTEXT, "The mission is designed for team play, so the administration reserves the right to delete from the server to the players who do not want to play as a team. \n\n\n\n Game menu - 'T' button", "Миссия расчитана на командную игру, поэтому администрация оставляет за собой право удалять с сервера игроков, которые не хотят играть в команде.\n\n\n\n Игровое меню - кнопка 'Т'" STR_RIP_RESPAWNTEXT, "Try to avoid the revival of the base. Team irretrievably loses points and status!\n Wait medics!", "Старайтесь избегать возрождения на базе. Команда безвозвратно теряет очки и статус!\n Ждите медиков!" STR_RIP_MARKER_HELISERVICE, "Heli service point", "Ремзона вертолетов" STR_RIP_MARKER_LANDSERVICE, "Vehicle service point", "СТО" STR_RIP_MARKER_UAV, "UAV", "БПЛА" STR_RIP_MARKER_HOSPITAL, "Hospital", "Госпиталь" STR_RIP_MARKER_AMMOBOX, "Ammoboxes", "Ящики с вооружением" STR_RIP_MARKER_BLOCKPOST, "", "" STR_CITYCLEAR, "City %1 is clear", "Город %1 теперь наш!" STR_RIP_MENUOPTIONS, "Settings", "Настройки" STR_RIP_MENUSELECTWEAPONS, "Weapons selection", "Выбор оружия" STR_RIP_MENUMODWEAPONS, "Weapon modification", "Модификация оружия" STR_RIP_MENUGROUPSTATUS, "Team members", "Состав группы" STR_RIP_MENUGROUPSTATUSEMPTY, "Empty", "Никого" STR_RIP_MENUTEAMSTATUS, "Team status", "Статус команды" STR_RIP_MENUREPAIR, "Repair vehicles", "Ремонтировать технику" STR_RIP_LOCKUNLOCK, "Lock\Unlock vehicles", "Блокировать\Разблокировать технику" STR_RIP_SETRALLYPOINT, "Set rally point", "Установить точку сбора" STR_RIP_MOVETORALLYPOINT, "Move to rallypoint", "Выдвинуться к точке сбора" STR_RIP_RALLYPOINT, "Rally point", "Точка сбора" STR_RIP_TAKECONTROL, "Take", "Взять под контроль" STR_RIP_LOWGEAROFF, "High-climbing gear (off)", "Пониженная передача (ВЫКЛ)" STR_RIP_LOWGEARON, "High-climbing gear (on)", "Пониженная передача (ВКЛ)","" STR_RIP_HINTNOVEHICLENEAR, "There are no vehicles nearby.", "Рядом с вами нет техники." STR_RIP_HINTCANTREPAIR, "You can not repair this vehicle. Too much damage.", "Вы не можете это починить. Слишком много повреждений." STR_RIP_HINTREPAIR, "Repairing %1...", "Идет ремонт %1..." STR_RIP_HINTREMAINDAMAGE, "1% damage remaining.", "Осталось %1 повреждений" STR_RIP_HINTUNLOCKVEHICLE, "Unlocking %1...", "Разблокировка %1..." STR_RIP_HINTLOCKVEHICLE, "Locking %1...", "Блокировка %1..." STR_RIP_HINTCANTSETRALLYBASE, "You are too close to the base.
You can not set a rally point.", "Вы слишком близко от базы.
Нельзя установить точку сбора." STR_RIP_HINTCANTSETRALLYENEMY, "The enemy is too close.
You can not set a rally point.", "Противник слишком близко.
Нельзя установить точку сбора." STR_RIP_HINT_NODEPLOYRALLY, "No rally point placed.", "Нет установленной точки сбора." STR_RIP_HINT_MOVETORALLY, "Move to rally point", "Выдвинуться к точке сбора" STR_RIP_HINT_DISABLERALLY, "Rally points disable", "Точки сбора отключены." STR_RIP_HINT_CANTSELECTWEAPON, "You can only choose your weapons at base!", "Выбрать оружие можно только на базе!" STR_RIP_HINT_CANTMODWEAPONBASE, "You can only modify your weapons at base!", "Модифицировать оружие можно только на базе!" STR_RIP_HINT_CANTMODWEAPON, "Your weapons cannot be modified.", "Ваше оружие не может быть модифицировано." STR_RIP_HINT_CANTUSEWEAPON, "You cannot use %1.", "Вы не можете использовать %1." STR_RIP_HINT_CANTUSEHELI, "You cannot use military heli.", "Вы не можете использовать боевой вертолет." STR_RIP_HINT_STARTSERVICING, "Repair, refueling and recharging %1 in %2 minutes. Please stand by...", "Ремонт, заправка и перезарядка %1 займет %2 минут. Ждите..." STR_RIP_HINT_ENDSERVICING, "%1 is ready...", "Обслуживание %1 завершено" STR_RIP_HINT_FINALMISSION, "Government forces defence in the capital. Let's finish it!", "Остатки правительственных сил собрались в столице. Осталось завершить начатое!" STR_RIP_HINT_NEWMISSION, "New mission received", "Получено новое задание" STR_RIP_HINT_NEWSIDEMISSION, "New side mission received", "Получено дополнительное задание" STR_RIP_HINT_SIDEMISSION, "Side mission", "Дополнительное задание" STR_RIP_HINT_MISSION, "Mission", "Задание" STR_RIP_HINT_MISSIONCOMPLETE, "Mission complete", "Задание выполнено. Наши спонсоры прислали некоторое снаряжение на базу." STR_RIP_HINT_MISSIONFAIL, "Mission failed.", "Задание провалено." STR_RIP_HINT_MISSIONDEFENSE10, "Enemy infantry will arrive in 10 min.", "До прибытия пехоты противника осталось около 10 мин." STR_RIP_HINT_MISSIONDEFENSE5, "Enemy infantry will arrive in 5 min.", "До прибытия пехоты противника осталось около 5 мин." STR_RIP_HINT_GOODWIN, "GOOD FIGHTERS, YOU WON!", "ВЫ ПОБЕДИЛИ! КРОВАВЫЙ ДИКТАТОРСКИЙ РЕЖИМ СВЕРГНУТ!" STR_RIP_HINT_ALLSEATSOCCUPIED, "All seats are occupied!", "Все места заняты!" STR_RIP_HINT_TOOMUCHSPEED, "Too much speed!", "Слишком большая скорость!" STR_RIP_HINT_SITONTOP, "Sit on top", "Сесть на броню" STR_RIP_HINT_LEAVEAREA, "LEAVE THE COMBAT AREA", "ПОКИНЬТЕ ЗОНУ ДЕЙСТВИЙ" STR_RIP_DLGSETTINGS, "SETTINGS", "НАСТРОЙКИ" STR_RIP_DLGAPPLY, "Apply", "Применить" STR_RIP_DLGVIEWDISTANCE, "Viewdistance, m.", "Видимость, м." STR_RIP_DLGGRASSLAYER, "Grass layer", "Уровень травы:" STR_RIP_DLGDISABLE, "Disable", "Отключить" STR_RIP_DLGVERYLOW, "Very low", "Очень низко" STR_RIP_DLGLOW, "Low", "Низко" STR_RIP_DLGHIGHT, "Hight", "Высоко" STR_RIP_DLGVERYHIGHT, "Very hight", "Максимально" STR_PRESIDENTE, "The president is trying to escape! Stop him!", "Президент пытается сбежать! Остановите его!" STR_READY, "Ready", "Готово" STR_RIP_DLGMODWEAPONS, "WEAPON MODIFICATION", "МОДИФИКАЦИЯ ОРУЖИЯ" STR_RIP_DLGCOLLIMATOR, "Collimator sight", "Коллиматор" STR_RIP_DLGGRENLAUNCER, "Grenade launcher", "Гранатомет" STR_RIP_DLGOPTICAL, "Optics", "Оптический прицел" STR_RIP_DLGSILENCER, "Silencer", "Глушитель" STR_RIP_DLGREMOVEALL, "Remove all", "Снять все" STR_RIP_DLGAPPLY, "Apply", "Применить" STR_RIP_DLGSELECTWEAPONS, "SELECT WEAPONS", "ВЫБЕРИТЕ ВООРУЖЕНИЕ" STR_RIP_UNLOADAMMO, "Unload weapons in the box", "Выгрузить оружие в ящик" STR_RIP_MISSION0, "Destroy the fuel storage facility in the square %1", "Уничтожить топливное хранилище в квадрате %1" STR_RIP_MISSION1, "Destroy factory in the square %1", "Уничтожить ремонтный пункт тяжелой техники в квадрате %1" STR_RIP_MISSION2, "Destroy HQ terminal in the square %1", "Уничтожить мобильный штаб в квадрате %1" STR_RIP_MISSION3, "Destroy cargo chopper in the square %1", "Уничтожить грузовой вертолет в квадрате %1" STR_RIP_MISSION4, "Capture a ammo truck in a square %1", "Захватите грузовик с боеприпасами в квадрате %1" STR_RIP_MISSION5, "Capture a fuel truck in a square %1", "Захватите топливозаправщик в квадрате %1" STR_RIP_MISSION6, "Capture a BMP (MEDEVAC) in a square %1", "Захватите медицинский БМП в квадрате %1" STR_RIP_MISSION7, "Capture a cargo chopper in a square %1", "Захватите грузовой вертолет в квадрате %1" STR_RIP_MISSION8, "Eliminate the officer in the square %1", "Уничтожьте офицера в квадрате %1" STR_RIP_MISSION9, "Eliminate the spy in the square %1", "Уничтожьте предателя в квадрате %1" STR_RIP_MISSION10, "Arrest an officer in the square %1", "Захватите в плен офицера в квадрате %1" STR_RIP_MISSION11, "Destroy the forward camp in the square %1", "Уничтожить передовой лагерь в квадрате %1" STR_RIP_MISSION12, "Destroy the missile launcher in a square %1", "Уничтожить ракетную установку в квадрате %1" STR_RIP_MISSION13, "Clean up %1 from the enemy forces", "Зачистить от сил противника %1." STR_RIP_MISSION14, "Clean up %1 from the enemy forces", "Зачистить от сил противника %1." STR_RIP_MISSION15, "Clean up %1 from the enemy forces", "Зачистить от сил противника %1." STR_RIP_MISSION16, "Capture a repair truck in a square %1", "Захватите ремонтный грузовик в квадрате %1" STR_RIP_MISSIONFINAL, "Government forces defence in the %1. Let's finish it!", "Остатки правительственных сил собрались в %1. Осталось завершить начатое!" STR_RIP_BLOCKPOST, "Protect blockpost in a square %1. The enemy will be there in 15 minutes.", "Защитите Блокпост в квадрате %1. Противник будет там через 15 минут." STR_RIP_BRIEFING0, "Mission description", "Описание миссии" STR_RIP_BRIEFING1, "Description:
Mission is based on teamplay and close cooperation between players. Players have to leave the combat area after finishing or failing an objective. Enemy is patrolling both air and ground, so be careful when you're leaving your base.

Features:

Game menu
Game menu is available when you press 'T'. When a new window opens, scroll to select an option or use number keys on your keyboard.

Weapon selection and modification
Players can choose any weapon on the base and modify it to fit the mission style.

Gear
The rest of equipment is in the boxes.

Medicine
Only medics can completely heal wounded soldiers. Take good care of them. Medical equipment is in the medical tent.

Rally point
Commanders can set up spawn points (if that option is enabled in mission settings), which can be teleported to through an UAV terminal on the base.

Engineers
Engineers can repair vehicles (except strongly damaged vehicles).
Engineers can lock and unlock vehicles.

Team scoring
Completed task: +5 points
Failed task: -3 points
Respawn at base: -1 point

Ammo refill
Your armory refills when you complete an objective. The worse your team status is - the less ammo will be refilled. Failed objectives do not result in ammo refill.

Finish 5 task to win.
You will loose if your score reaches -30.", "Описание :
Миссия рассчитана на командную игру и плотное взаимодействие между игроками. После выполнения(провала) задания всем игрокам необходимо покинуть район боевых действий. По карте передвигаются наземные и воздушные патрули противника, поэтому будьте осторожны, выдвигаясь с базы.

Особенности :

Игровое меню
Игровое меню доступно через кнопку 'T'. В открывшемся списке выбираем необходимый пункт колесом мыши, либо жмем соответствующую цифру на клавиатуре.

Выбор и модификация оружия
На базе игрок может выбрать любое оружие из доступного и модифицировать его под конкретную задачу.

Снаряжение
Остальное снаряжение лежит в ящиках на базе.

Медицина
Полное лечение раненому может оказать только медик. Берегите их. Медснаряжение и медрюкзаки лежат в палатке.

Точки сбора
Командиры групп могут ставить точки сбора (при включении соответствующей опции в настройках), к которым можно телепортироваться с базы через терминал БПЛА.

Инженеры
Инженеры могут ремонтировать технику (кроме сильно поврежденной).
Инженеры могут блокировать\разблокировать технику.

Система начисления баллов команде
Выполненное задание +5 баллов;
Проваленное задание -3 балла;
Возрождение на базе -1 балл;

Система пополнения боеприпасов
За невыполнение задания - количество боеприпасов в ящиках не увеличивается.
За выполненое задание пополнение боеприпасов в зависимости от статуса команды - чем хуже статус, тем меньше боеприпасов добавится в ящики.

Условие для победы - выполнение 5 заданий.
Условие для поражения - количество баллов команды меньше -30." STR_RIP_BRIEFING2, "Current mission settings", "Текущие настройки миссии" private ["_objs"]; _objs = [ ["Land_BagFenceEnd",[-0.341797,-3.83698,0.00457001],322.019,1,0,{}], ["Fort_Crate_wood",[0.418945,-4.68634,0],0,1,0,{}], ["Land_BagFenceShort",[-1.29102,-5.24957,0],285.427,1,0,{}], ["SearchLight",[-2.8584,-5.09601,-0.168104],175.676,1,0,{}], ["Fort_Crate_wood",[-0.354492,-6.11597,0],26.5568,1,0,{}], ["Land_BagFenceCorner",[-1.48242,-6.94897,-0.00399971],87.3367,1,0,{}], ["MetalBucket",[7.12891,1.54364,0],12.8648,1,0,{}], ["DSHKM_CDF",[-5.74219,-4.59149,0],182.374,1,0,{}], ["ACE_WeaponBox_CDF",[-6.9209,-2.82794,0],32.2068,1,0,{}], ["ACE_BRDM2_SA9_CDF",[-6.03906,4.44452,0],316.164,0,0,{}], ["Land_BagFenceShort",[-3.04688,-7.01367,0.000106812],181.806,1,0,{}], ["ACE_WeaponBox_CDF",[-7.47363,-3.45221,0],67.5021,1,0,{}], ["Land_BagFenceEnd",[-7.7041,-4.13336,0.00253296],204.536,1,0,{}], ["Land_BagFenceShort",[-4.73535,-7.02081,0],0,1,0,{}], ["Land_BagFenceShort",[-6.76758,-5.46729,0],83.5742,1,0,{}], ["Land_BagFenceCorner",[-6.60352,-7.02911,0],178.729,1,0,{}], ["Land_HBarrier3",[10.1699,-2.35529,0],268.626,1,0,{}], ["Stinger_Pod",[5.01953,8.98523,0],33.4957,1,0,{}], ["Land_HBarrier5",[10.1006,1.24628,0],270.969,1,0,{}], ["ACE_WeaponBox_CDF",[-0.825195,10.7431,0],79.3574,1,0,{}], ["ACE_WeaponBox_CDF",[-3.17188,10.278,0],19.8198,1,0,{}], ["Land_CamoNetB_EAST",[-6.29102,9.76385,0.00555992],343.285,1,0,{}], ["Land_BagFenceEnd",[7.45313,8.60565,0],96.6309,1,0,{}], ["Barrel1",[-5.62598,10.4645,0],0,1,0,{}], ["Land_Fire_barrel",[-5.49609,11.2946,0],39.8838,1,0,{}], ["Land_BagFenceEnd",[3.9707,11.6789,0],175.713,1,0,{}], ["Barrel4",[-6.16602,11.1545,0],0,1,0,{}], ["Land_BagFenceRound",[8.08398,10.9626,0],263.689,1,0,{}], ["Land_BagFenceRound",[6.2793,12.5905,0],180.13,1,0,{}], ["Land_Fire_barrel",[-6.57617,12.1245,0],5.16843,1,0,{}], ["DSHKM_CDF",[-15.2998,18.2868,0],330.093,1,0,{}], ["ACE_WeaponBox_CDF",[-12.2998,17.2868,0],21.093,1,0,{}], ["Land_BagFenceRound",[-16.834,19.7021,0],89.9115,1,0,{}], ["Land_BagFenceRound",[-15.1709,21.3578,0],179.358,1,0,{}] ]; _objsprivate ["_objs"]; _objs = [ ["Land_Fort_Watchtower",[-0.43457,1.78296,0.153366],181.627,1,0,{}], ["HeliHEmpty",[1.96484,-2.1369,0],7.50182,1,0,{}], ["Land_HBarrier_large",[4.0625,1.71918,-0.00156784],90.1823,1,0,{}], ["Wooden_barrels",[1.14453,-7.05481,0.000705719],23.7396,1,0,{}], ["Land_CamoNetVar_EAST",[0.526367,-7.77814,0.0156403],7.47683,1,0,{}], ["Land_HBarrier_large",[0.693359,7.35028,0.00271225],6.86484,1,0,{}], ["Land_HBarrier_large",[4.27148,-7.11218,-0.0015831],91.0693,1,0,{}], ["Land_Barrel_sand",[2.51855,-8.02966,0.000358582],272.105,1,0,{}], ["Land_Barrel_sand",[1.97852,-8.22076,0.000358582],272.105,1,0,{}], ["Wooden_barrel",[0.576172,-8.64111,0.000522614],7.50182,1,0,{}], ["Land_HBarrier_large",[-1.02734,-10.4482,0.00130081],1.73283,1,0,{}], ["Land_fortified_nest_big",[-12.8105,0.10498,0.117575],90,1,0,{}], ["DSHKM_CDF",[-9.6914,-12.05249,-0.115555],180.253,1,0,{}], ["AGS_CDF",[-20.14,8.05249,-0.115555],300.253,1,0,{}], ["Land_HBarrier5",[-10.9385,10.4476,-0.0972252],3.24181,1,0,{}], ["Land_fort_bagfence_long",[-6.52441,-11.908,5.72205e-005],149.735,1,0,{}], ["Barrel1",[-13.8516,-5.08569,-0.00113773],272.105,1,0,{}], ["Barrel4",[-13.3887,-8.00122,-0.0382233],272.105,1,0,{}], ["Barrels",[-14.1475,-6.70844,0.000347137],42.1436,1,0,{}], ["Land_fort_bagfence_long",[-9.43066,-12.8892,-5.34058e-005],170.322,1,0,{}], ["Land_fort_bagfence_long",[-12.4492,-12.869,6.10352e-005],187.761,1,0,{}], ["Land_CamoNetVar_EAST",[-17.2314,-6.93304,-0.00414276],99.8451,1,0,{}], ["Land_HBarrier5",[-16.7119,10.9703,-0.0200729],2.84784,1,0,{}], ["Barrel5",[-16.3662,-8.09314,0.000293732],7.51327,1,0,{}], ["Barrel5",[-16.6875,-7.47589,0.000289917],7.51327,1,0,{}], ["Barrel4",[-16.79,-7.77686,0.817194],9.73408,1,0,{}], ["Land_HBarrier5",[-18.7363,0.39679,0.0463219],273.319,1,0,{}], ["Barrel5",[-17.0342,-8.03522,0.000282288],60.1043,1,0,{}], ["Paleta2",[-17.3057,-9.73956,-0.305824],29.8384,1,0,{}], ["Barrel4",[-17.4092,-7.44141,0.000293732],7.51327,1,0,{}], ["Land_HBarrier5",[-18.7236,-0.975952,-0.0456734],93.3305,1,0,{}], //["ACE_WeaponBox_CDF",[-10.9209,-5.82794,0],32.2068,1,0,{}], ["ACE_ItemsBox",[-10.9209,-8.82794,0],32.2068,1,0,{}], ["Land_HBarrier5",[-19.125,-6.68311,-0.0670738],93.2505,1,0,{}] ]; _objsif (!isServer) exitWith{}; private ["_objs"]; _objs = [ ["Land_CamoNet_EAST",[-2.28613,-2.05632,0.797617],163.431,1,0,{}], ["Land_HBarrier5",[-0.432617,-4.45296,0],335.776,1,0,{}], ["Land_HBarrier5",[3.30957,2.03851,0],66.7785,1,0,{}], ["Barrel1",[-2.34961,4.43541,5.72205e-005],347.459,1,0,{}], ["Barrel1",[-0.470703,5.01704,5.91278e-005],347.459,1,0,{}], ["Land_HBarrier5",[1.31152,6.68568,0],66.7785,1,0,{}], ["Barrel1",[-1.58203,4.81078,5.72205e-005],347.459,1,0,{}], ["Land_Ind_TankSmall",[-4.7998,-1.78078,-0.0934029],65.4614,1,0,{}], ["Barrel1",[0.137695,5.27553,6.10352e-005],347.459,1,0,{}], ["Barrel1",[-2.17578,5.12958,5.91278e-005],347.459,1,0,{}], ["Barrel4",[-1.04492,5.61702,5.72205e-005],347.459,1,0,{}], ["Barrel4",[-0.408203,5.74826,5.72205e-005],347.459,1,0,{}], ["Barrel1",[-2.90137,5.02953,6.10352e-005],347.459,1,0,{}], ["Land_HBarrier_large",[2.91602,-5.09143,0],157.304,1,0,{}], ["Barrel4",[-2.08301,5.86736,5.91278e-005],347.459,1,0,{}], ["Barrel4",[-2.82813,5.61974,5.72205e-005],347.459,1,0,{}], ["Barrel1",[-0.286133,6.40025,5.72205e-005],347.459,1,0,{}], ["Land_HBarrier_large",[6.31738,0.276596,0],67.2492,1,0,{}], ["Barrel1",[-1.00977,6.37852,0],347.459,1,0,{}], ["Barrels",[-4.77832,4.39577,7.24792e-005],336.313,1,0,{}], ["Barrel1",[-3.82031,5.36481,0.0377417],49.5611,1,0,{}], ["Land_HBarrier5",[-5.67188,-6.68407,0.0038929],335.776,1,0,{}], ["Land_CncBlock",[-2.36328,6.85646,0],335.743,1,0,{}], ["Land_CncBlock",[-4.83203,5.70277,0],335.067,1,0,{}], ["Land_CncBlock",[0.172852,8.02496,0],335.743,1,0,{}], ["Land_CncBlock",[-7.6582,2.76898,6.29425e-005],245.976,1,0,{}], ["Land_CncBlock",[-7.30664,4.57851,0],335.743,1,0,{}], ["Land_HBarrier_large",[2.68359,8.22734,0],67.2492,1,0,{}], ["UralRefuel_CDF",[-4.62598,8.82146,0],242.464,1,0,{}], ["Land_HBarrier_large",[-5.2627,-8.63167,-0.000759125],156.328,1,0,{}], ["Land_CamoNetB_EAST",[-7.28516,7.6832,0],68.1631,1,0,{}], ["Land_Ind_TankSmall2",[-10.9316,-3.96542,0],63.67,1,0,{}], ["Land_HBarrier5",[-10.9814,-9.243,0.0045433],334.1,1,0,{}], ["UralRefuel_CDF",[-6.23145,12.1727,0],244.015,1,0,{}], ["Land_CamoNet_EAST",[-12.6104,-6.41199,0],152.774,1,0,{}], ["Land_HBarrier_large",[-1.0293,15.9847,0],66.226,1,0,{}], ["Land_Ind_TankSmall",[-15.332,-6.28766,-0.0602989],61.4427,1,0,{}], ["Land_HBarrier5",[-16.167,-11.8359,0.00429344],334.743,1,0,{}], ["Land_HBarrier_large",[-13.0869,-12.6464,-0.000761032],157.026,1,0,{}], ["Land_HBarrier5",[-4.47266,18.6544,0],154.811,1,0,{}], ["Barrel1",[-17.4854,-7.69926,-0.17819],347.459,1,0,{}], ["Land_HBarrier5",[-9.70117,16.1644,0],154.168,1,0,{}], ["Barrel1",[-18.5752,-6.06868,-0.172468],347.459,1,0,{}], ["Barrel4",[-17.9072,-8.24364,-0.172636],346.94,1,0,{}], ["Barrel1",[-18.207,-7.58494,-0.178022],347.459,1,0,{}], ["Barrel4",[-18.5127,-6.90503,0],347.459,1,0,{}], ["Barrel1",[-19.0635,-6.26942,-0.0794883],347.459,1,0,{}], ["Land_HBarrier1",[-3.14551,20.4448,0],64.8379,1,0,{}], ["Land_HBarrier_large",[-8.2373,18.9583,0],337.124,1,0,{}], ["ACE_WeaponBox_CDF",[-24.0908,9.5008,0.1],238.585,1,0,{}], ["Land_fort_bagfence_long",[-18.5938,-10.507,-7.82013e-005],63.5048,1,0,{}], ["Land_fort_bagfence_long",[-19.9531,-7.71566,0.000150681],63.6793,1,0,{}], ["Land_HBarrier_large",[-16.3809,15.3233,0],336.576,1,0,{}], ["Land_HBarrier5",[-17.4336,-12.6368,0],155.33,1,0,{}], ["Land_HBarrier1",[-17.7773,19.3702,0],245.166,1,0,{}], ["Land_HBarrier_large",[-20.9443,-16.3947,0],337.247,1,0,{}], ["Land_HBarrier1",[-19.2314,18.637,0],245.166,1,0,{}], ["Barrack2",[-27.2852,9.39946,-0.533955],246.015,1,0,{}], ["ZavoraAnim",[-31.8984,-2.34096,0.316854],245.957,1,0,{}], ["Land_HBarrier_large",[-23.8213,16.2189,0],335.19,1,0,{}], ["Land_HBarrier5",[-25.6104,-9.5286,0],155.6,1,0,{}], ["Land_BagFenceLong",[-29.7061,1.42552,0],66.4302,1,0,{}], ["Land_BagFenceLong",[-30.2539,-0.648987,-0.00256538],336.847,1,0,{}], ["SmallTable",[-31.1367,-0.0142059,0],340.308,1,0,{}], ["Land_HBarrier1",[-26.9795,-16.1357,0],333.627,1,0,{}], ["Land_GuardShed",[-31.1074,0.390198,0],337.389,1,0,{}], ["FoldChair_with_Cargo",[-32.0342,1.75223,0.00409889],153.682,1,0,{}], ["Land_HBarrier1",[-28.2344,-16.6498,0],245.166,1,0,{}], ["Land_BagFenceShort",[-33.2373,7.62173,0],337.546,1,0,{}], ["Land_HBarrier_large",[-31.8115,12.4337,0],336.502,1,0,{}], ["Land_HBarrier5",[-33.5596,-1.25224,0],245.789,1,0,{}], ["Land_HBarrier5",[-27.998,-21.5176,0],247.363,1,0,{}], ["Land_Toilet",[-33.7578,8.29559,0],66.1017,1,0,{}], ["DSHKM_CDF",[-32.191,-15.2882,0],246.516,1,0,{}], ["Land_HBarrier5",[-30.8613,-11.8948,0],155.845,1,0,{}], ["Land_fortified_nest_small",[-32.9453,-15.5078,0],66.5155,1,0,{}], ["Land_HBarrier_large",[-37.2422,7.41754,0],66.7077,1,0,{}], ["Land_HBarrier1",[-36.6553,10.8377,0],244.968,1,0,{}] ]; _objsif (!isServer) exitWith{}; private ["_objs"]; _objs = [ ["HeliH",[-0.0498047,0.0404053,0],0,1,0,{}], ["Land_coneLight",[-8.94922,-3.22449,0],261.372,1,0,{}], ["Land_coneLight",[5.19043,9.0614,0],17.8059,1,0,{}], ["Land_coneLight",[-7.15137,8.70349,0],354.742,1,0,{}], ["Fort_RazorWire",[-9.60645,-9.72491,0],254.96,1,0,{}], ["Misc_cargo_cont_net1",[9.55078,10.4662,-1.90735e-006],339.694,1,0,{}], ["Fort_Crate_wood",[14.2822,5.89929,-1.90735e-006],192.031,1,0,{}], ["MetalBucket",[15.8877,2.08777,1.90735e-006],348.211,1,0,{}], ["Land_Barrel_water",[15.875,2.80481,0],116.478,1,0,{}], ["Fort_Crate_wood",[15.582,4.55188,3.8147e-006],214.7,1,0,{}], ["Fort_RazorWire",[-4.71289,-16.8331,0],226.208,1,0,{}], ["Land_Barrel_water",[16.333,3.53625,0],109.532,1,0,{}], ["Land_Barrel_water",[16.5801,2.81677,0],98.0662,1,0,{}], ["Fort_Crate_wood",[15.7266,6.0011,0],261.884,1,0,{}], ["Land_Barrel_empty",[16.7373,2.15027,0],13.6275,1,0,{}], ["Fort_Crate_wood",[15.3105,7.20862,0],169.75,1,0,{}], ["Land_Barrel_water",[17.0947,1.07507,0],105.811,1,0,{}], ["Misc_cargo_cont_net2",[12.1416,13.7521,0],110.769,1,0,{}], ["Land_HBarrier_large",[18.0801,4.02307,0],260.108,1,0,{}], ["Fort_RazorWire",[0.175781,-18.6407,0],358.709,1,0,{}], ["Fort_RazorWire",[10.9512,-15.4356,0],145.063,1,0,{}], ["Misc_cargo_cont_net3",[9.96289,17.193,-0.00634384],307.264,1,0,{}], ["ACE_WeaponBox_CDF",[-19.8271,4.46448,0],70.5481,1,0,{}], ["Land_CamoNet_EAST",[12.3096,16.4557,0],39.6884,1,0,{}], ["Fort_RazorWire",[15.1553,-12.5811,0],328.977,1,0,{}], ["Land_HBarrier_large",[20.1865,-4.4884,0],76.4689,1,0,{}], ["Land_BagFenceEnd",[-20.7266,2.63367,0],104.789,1,0,{}], ["Land_BagFenceEnd",[-18.5732,9.18201,0],332.71,1,0,{}], ["Land_BagFenceLong",[-20.9209,4.96106,0],75.5767,1,0,{}], ["Land_BagFenceLong",[-20.3027,7.58313,0],309.113,1,0,{}], ["Land_BagFenceEnd",[5.49023,24.7753,0.000391006],192.11,1,0,{}], ["Land_BagFenceLong",[7.91406,24.6866,0.00132561],355.391,1,0,{}], ["Land_BagFenceShort",[10.1992,24.808,0.000442505],0,1,0,{}], ["Land_BagFenceCorner",[12.0264,24.9018,0.0123272],354.364,1,0,{}], ["Land_BagFenceEnd",[13.0293,23.9228,0],34.119,1,0,{}] ]; _objsif (!isServer) exitWith{}; private ["_objs"]; _objs = [ ["FoldChair",[-6.62891,8.28564,0],283.193,1,0,{}], ["FoldChair",[-5.53809,9.28564,0],341.71,1,0,{}], ["FoldChair",[4.88086,-10.5043,0],353.23,1,0,{}], ["FoldTable",[5.38086,-10.9844,0],0,1,0,{}], ["FoldChair",[4.76172,-12.1042,0],175.549,1,0,{}], ["FoldChair",[5.99121,-12.1442,0],160.662,1,0,{}], ["ACE_WeaponBox_CDF",[-9.8584,-10.6843,0],0,1,0,{}], ["Camp",[2.92188,-16.0742,0],0,1,0,{}], ["Barrel5",[-6.4082,-14.7941,0],238.862,1,0,{}], ["Barrel5",[-10.5381,-12.4443,0],85.7834,1,0,{}], ["Barrel4",[-9.09863,-13.5942,0],330.994,1,0,{}], ["ACE_WeaponBox_CDF",[-12.7588,-10.3643,0],327.72,1,0,{}], ["Barrel1",[-7.27832,-14.8143,0],0,1,0,{}], ["Barrel4",[-4.83887,-16.0242,0],111.146,1,0,{}], ["Barrel5",[-10.2285,-13.4543,0],0,1,0,{}], ["Land_CamoNet_EAST",[-9.79004,-14.1107,0],225.644,1,0,{}], ["Barrel4",[-5.58887,-16.1544,0],301.879,1,0,{}], ["Barrel5",[-6.53809,-15.8043,0],0,1,0,{}], ["Barrack2",[-0.958008,18.1965,-0.533955],0,1,0,{}], ["DSHKM_CDF",[-16.8184,4.01563,-0.0749998],255.645,1,0,{}], ["Barrel1",[-9.20898,-14.7645,0],72.1088,1,0,{}], ["Land_fort_bagfence_corner",[-17.3486,2.77563,0],0,1,0,{}], ["Barrels",[-11.6982,-12.9844,0],54.144,1,0,{}], ["Barrel5",[-4.67871,-16.8542,0],30.0731,1,0,{}], ["Barrel4",[-9.92871,-14.5441,0],330.994,1,0,{}], ["Barrel4",[-7.26855,-16.2742,0],266.064,1,0,{}], ["Land_fort_bagfence_corner",[-17.9199,-4.88257,0],94.7669,1,0,{}], ["Barrel1",[-5.25879,-17.3242,0],0,1,0,{}], ["MASH",[9.71191,-16.3442,0],0,1,0,{}], ["Barrel1",[-11.3984,-14.6342,0],22.3755,1,0,{}], ["Barrels",[-6.59863,-17.6243,0],0,1,0,{}], ["Barrel5",[-8.24805,-16.9844,0],45.0762,1,0,{}], ["Land_fort_bagfence_long",[-18.3994,6.60376,0],271.878,1,0,{}], ["Paleta2",[-14.6787,12.7856,-0.305825],20.503,1,0,{}], ["Barrel4",[-7.98828,-17.9644,0],325.904,1,0,{}], ["Land_HBarrier1",[-18.3789,-7.44434,0],0,1,0,{}], ["Land_HBarrier3",[-17.6006,10.9392,0],102.28,1,0,{}], ["Land_Antenna",[-5.94629,19.856,0],74.2142,1,0,{}], ["Land_HBarrier5",[-18.1953,-8.77466,0],90.7931,1,0,{}], ["Barrack2",[-12.1484,18.6766,-0.533955],0,1,0,{}], ["Land_HBarrier_large",[-3.8252,-22.7332,0],4.42799,1,0,{}], ["Land_HBarrier_large",[4.7207,-22.6141,0],0.806,1,0,{}], ["Land_HBarrier_large",[-17.291,15.7351,0],272.325,1,0,{}], ["Land_HBarrier_large",[-12.4316,-22.0311,0],9.122,1,0,{}], ["Land_HBarrier_large",[-17.8613,-18.325,0],272.325,1,0,{}], ["Land_Fort_Watchtower",[25.6406,6.31909,0],267.839,1,0,{}], ["DSHKM_CDF",[25.6406,6.31909,2.8],80.839,1,0,{}], ["Land_HBarrier_large",[13.3799,-22.564,0],181.631,1,0,{}], ["Land_HBarrier5",[2.10156,26.7457,0],0,1,0,{}], ["Land_HBarrier_large",[-2.9248,27.0969,0],4.37519,1,0,{}], ["Land_fort_bagfence_long",[20.1904,-18.8098,0],142.338,1,0,{}], ["Land_HBarrier5",[27.9443,-0.554688,0],90.7931,1,0,{}], ["Land_HBarrier3",[27.9297,2.9314,0],85.4048,1,0,{}], ["Land_BarGate2",[9.20117,26.6658,0],0,1,0,{}], ["Land_fort_bagfence_long",[22.6338,-16.8809,0],320.682,1,0,{}], ["Land_HBarrier5",[25.7412,14.4834,0],91.7359,1,0,{}], ["Land_HBarrier3",[18.5078,-20.522,0],90.2668,1,0,{}], ["Land_fort_bagfence_long",[27.9609,-7.10577,0],270.543,1,0,{}], ["ACE_WeaponBox_CDF",[24.8213,-15.1342,0],33.4146,1,0,{}], ["Land_fort_bagfence_long",[27.7256,-9.80292,0],98.4684,1,0,{}], ["DSHKM_CDF",[26.1309,-13.6207,-0.0749998],131.692,1,0,{}], ["Land_HBarrier3",[11.7314,26.5057,0],0,1,0,{}], ["Land_HBarrier_large",[-17.3008,24.5176,0],92.4916,1,0,{}], ["Land_HBarrier_large",[-11.625,27.5369,0],4.37519,1,0,{}], ["ACE_WeaponBox_CDF",[25.6016,-15.7144,0],40.8851,1,0,{}], ["Land_fort_bagfence_corner",[26.0557,-16.1552,-0.0866876],307.562,1,0,{}], ["Land_fort_bagfence_long",[25.6533,16.7354,0],91.264,1,0,{}], ["Land_fort_bagfence_corner",[28.3867,-12.5687,0],221.281,1,0,{}], ["Land_fortified_nest_small",[17.3086,26.8796,0],177.733,1,0,{}], ["DSHKM_CDF",[17.5332,26.1011,-0.0749998],0,1,0,{}], ["ACE_WeaponBox_CDF",[17.6914,27.1857,0],248.029,1,0,{}], ["Land_fort_bagfence_long",[25.8408,19.7737,0],271.878,1,0,{}], ["Land_fort_bagfence_long",[20.4111,25.7557,0],0,1,0,{}], ["Land_fort_bagfence_round",[25.7041,24.9996,0],51.7991,1,0,{}], ["DSHKM_CDF",[25.1113,24.1357,-0.0749998],49.2108,1,0,{}], ["Land_CncBlock_D",[5.85156,36.1458,0],0,1,0,{}], ["Land_CncBlock",[12.4014,36.0057,0],0,1,0,{}] ]; _objsif (!isServer) exitWith{}; private ["_objs"]; _objs = [ ["Fort_Crate_wood",[11.084,3.31207,0.00123024],132.857,1,0,{}], ["Barrel1",[11.084,5.55621,5.9127],107.224,1,0,{}], ["Fort_Crate_wood",[11.9443,3.51227,0.977962],196.121,1,0,{}], ["Fort_Crate_wood",[11.8232,4.36212,3.8147e-005],139.365,1,0,{}], ["Fort_Crate_wood",[12.4141,3.06207,4.76837e-005],132.857,1,0,{}], ["Fort_Crate_wood",[12.6836,5.12213,4.19617e-005],129.644,1,0,{}], ["Fort_Crate_wood",[12.124,6.47223,4.3869e-005],253.04,1,0,{}], ["Fort_Crate_wood",[13.2734,4.01227,2.67029e-005],218.868,1,0,{}], ["Barrel1",[13.7236,4.88629,7.43866e-005],33.1301,1,0,{}], ["Barrel1",[13.5439,5.7962,6.29425e-005],71.978,1,0,{}], ["Land_Barrel_empty",[-13.7568,-5.62811,4.57764e-005],0,1,0,{}], ["Barrel1",[13.3643,6.55621,5.53131e-005],102.369,1,0,{}], ["Land_Barrel_empty",[-13.9189,-6.2019,4.57764e-005],20.7724,1,0,{}], ["Land_BagFenceEnd",[6.46875,-13.675,-0.000350952],174.928,1,0,{}], ["Misc_cargo_cont_small2",[-10.626,11.3621,0],240.339,1,0,{}], ["FoldChair",[-15.3115,-3.56952,-0.00141382],165.218,1,0,{}], ["FoldTable",[-15.5498,-2.76086,-0.00596285],359.352,1,0,{}], ["Land_Barrel_empty",[-14.6689,-6.2619,4.00543e-005],51.8552,1,0,{}], ["Land_BagFenceLong",[8.91504,-13.288,0.00018692],348.954,1,0,{}], ["DSHKM_CDF",[10.9795,-11.7241,0.00255775],139.296,1,0,{}], ["SearchLight",[-12.3945,-10.3029,0.0109844],198.534,1,0,{}], ["Land_Barrel_water",[-15.4092,-6.12421,-0.00145149],0,1,0,{}], ["Land_Antenna",[-16.4766,3.8421,0.000854492],324.273,1,0,{}], ["Camp",[-17.0586,-3.93518,0.00594902],91.5841,1,0,{}], ["Barrel4",[-6.62598,15.3721,7.62939e-006],105.698,1,0,{}], ["FoldChair",[-16.5195,-3.68011,-0.0059514],235.747,1,0,{}], ["Land_Barrel_water",[-15.459,-7.08221,1.33514e-005],59.6231,1,0,{}], ["Barrel4",[-7.39648,15.3421,-0.000768661],23.0841,1,0,{}], ["Land_Barrel_empty",[-16.2188,-6.44177,7.43866e-005],26.3593,1,0,{}], ["PowGen_Big",[-4.64648,17.6422,0],308.384,1,0,{}], ["Land_BagFenceLong",[15.4063,-8.40619,0],319.646,1,0,{}], ["Barrel1",[-6.73633,16.2322,0.00193596],33.1275,1,0,{}], ["Land_BagFenceRound",[11.6729,-13.7573,0],359.411,1,0,{}], ["Land_BagFenceEnd",[-14.4043,-9.95428,0],0,1,0,{}], ["Land_Barrel_water",[-16.9092,-6.42212,4.3869e-005],0,1,0,{}], ["Land_BagFenceRound",[14.4033,-10.8831,0],275.662,1,0,{}], ["Land_BagFenceEnd",[17.3311,-6.85541,0],322.775,1,0,{}], ["ACE_WeaponBox_CDF",[-5.1904,11.94232,0],90.4034,1,0,{}], ["Land_BagFenceShort",[13.6416,-12.5195,0],320.033,1,0,{}], ["Barrels",[-8.10645,16.7723,0],120.671,1,0,{}], ["Land_CamoNetB_EAST",[-7.75586,17.4622,0],14.9764,1,0,{}], ["ACE_WeaponBox_CDF",[-3.6396,12.2746,0],271.15,1,0,{}], ["Fort_Crate_wood",[-18.3584,-6.74597,2.09808e-005],0,1,0,{}], ["Land_HBarrier3",[18.8027,1.63531,-0.00986099],302.682,1,0,{}], ["Land_BagFenceLong",[-16.8643,-10.0075,0.000192642],179.284,1,0,{}], ["AGS_CDF", [11, 21, 0], 10,1,0,{}], ["Misc_cargo_cont_small",[-12.8564,16.0721,5.72205e-006],284.539,1,0,{}], ["Fort_Crate_wood",[-20.2939,-3.85272,2.47955e-005],0,1,0,{}], ["Fort_Crate_wood",[-20.2939,-4.63281,0.966772],3.12642,1,0,{}], ["Land_Barrel_empty",[-11.4063,17.4422,0],12.0316,1,0,{}], ["Fort_Crate_wood",[-19.7988,-6.67596,3.8147e-005],90.3786,1,0,{}], ["Fort_Crate_wood",[-20.3145,-4.91278,2.86102e-005],0,1,0,{}], ["Land_Barrel_sand",[-12.0762,17.4622,0],13.6132,1,0,{}], ["MetalBucket",[-11.8359,17.9722,1.14441e-005],0,1,0,{}], ["Land_HBarrier5",[20.46,5.01886,0],268.747,1,0,{}], ["Land_HBarrier5",[14.3477,16.6956,0],43.1885,1,0,{}], ["Land_BagFenceLong",[-19.9072,-9.96887,0],1.44145,1,0,{}], ["Land_HBarrier3",[18.6904,12.8099,0],52.4736,1,0,{}], ["Paleta1",[-21.6465,-9.10791,0.00309753],4.99352,1,0,{}], ["Fort_Crate_wood",[-21.376,-8.64789,-0.204609],138.983,1,0,{}], ["Fort_Crate_wood",[-22.7861,-7.70801,5.14984e-005],113.278,1,0,{}], ["Land_BagFenceShort",[-22.2607,-9.98157,0],357.626,1,0,{}], ["Hedgehog",[24.2158,-3.91687,-0.000947952],115.916,1,0,{}], ["Fort_RazorWire",[24.374,0.67218,-0.0864658],269.727,1,0,{}], ["Land_BagFenceEnd",[-24.542,-3.67572,-0.00551033],253.9,1,0,{}], ["Fort_Crate_wood",[-23.166,-9.10791,6.67572e-005],178.48,1,0,{}], ["Land_BagFenceLong",[-24.3145,-6.1308,0],266.707,1,0,{}], ["Land_BagFenceShort",[-24.1631,-8.50629,0],267.204,1,0,{}], ["Land_BagFenceCorner",[-24.0938,-10.0615,0],178.094,1,0,{}], ["Sign_Danger",[24.9941,-5.69208,0],299.259,1,0,{}], ["UAZ_CDF",[-22.5518,-12.3723,0.000501633],85.1186,1,0,{}], ["Land_BagFenceEnd",[8.0459,25.0691,0],206.68,1,0,{}], ["Land_BagFenceLong",[10.3291,24.4573,0],188.283,1,0,{}], ["Fort_RazorWire",[24.2842,9.36212,-0.000499725],269.727,1,0,{}], ["Fort_RazorWire",[21.3232,17.2322,0],226.272,1,0,{}], ["Land_BagFenceLong",[13.3574,24.3287,0],358.605,1,0,{}], ["Hedgehog",[16.6709,22.7898,0],65.9555,1,0,{}], ["DSHKM_CDF",[-25.9668,12.165,0],288.06,1,0,{}], ["Land_BagFenceEnd",[15.7939,24.4146,0],0,1,0,{}], ["Sign_Danger",[27.7236,9.56207,0],264.979,1,0,{}], ["ACE_WeaponBox_CDF",[-25.9395,13.9996,0],28.1212,1,0,{}], ["Sign_Danger",[19.0957,22.6795,0],207.186,1,0,{}], ["Fort_EnvelopeSmall",[-28.2266,12.9322,0],290.532,1,0,{}] ]; _objsif (!isServer) exitWith{}; private ["_objs"]; _objs = [ ["Land_CncBlock",[2.44922,4.90033,0],18.5764,1,0,{}], ["Land_CncBlock_D",[-0.0771484,5.7359,0],196.384,1,0,{}], ["Land_CncBlock",[5.01855,4.06738,0],18.655,1,0,{}], ["Land_CncBlock",[7.54785,3.21423,0],17.8008,1,0,{}], ["Land_CncBlock",[9.98633,2.40021,0],20.7498,1,0,{}], ["Land_fort_bagfence_long",[10.3984,0.367615,0.000228882],109.41,1,0,{}], ["RoadBarrier_long",[4.90234,10.9714,0.00158691],291.746,1,0,{}], ["FoldChair",[11.9902,-1.03381,0],161.437,1,0,{}], ["FoldTable",[12.4717,-0.327759,0],19.8918,1,0,{}], ["Land_CncBlock",[12.4961,1.45679,0],19.8623,1,0,{}], ["Land_CncBlock",[10.0488,7.77106,0.000120163],19.1216,1,0,{}], ["Land_CncBlock",[9.37402,9.59314,0.000394821],108.199,1,0,{}], ["Land_BagFenceLong",[9.79297,9.61731,0.0429344],108.594,1,0,{}], ["Land_CncBlock",[4.57227,13.1032,0.000114441],20.0139,1,0,{}], ["Land_coneLight",[3.16016,13.5475,0.000320435],90.9532,1,0,{}], ["Land_CncBlock_D",[7.02441,12.2607,0.0004673],199.068,1,0,{}], ["Land_CncBlock",[12.5869,7.39777,0],358.273,1,0,{}], ["SearchLight",[7.58301,13.2955,0],219.689,1,0,{}], ["Land_CncBlock",[10.0977,12.1209,0.00038147],107.272,1,0,{}], ["Land_coneLight",[14.0508,7.3999,0],111.245,1,0,{}], ["Land_fortified_nest_small",[16.5195,-1.83466,-0.00617599],197.299,1,0,{}], ["DSHKM_CDF",[16.5195,-1.83466,0],10.299,1,0,{}], ["Land_CncBlock",[13.2803,9.58545,0.000177383],19.4888,1,0,{}], ["Land_fort_bagfence_long",[16.7988,-5.44525,0],106.831,1,0,{}], ["Land_CncBlock",[15.8301,8.66248,0.000175476],18.5529,1,0,{}], ["Land_fort_bagfence_long",[10.6553,14.9717,-0.204771],106.831,1,0,{}], ["Paleta1",[9.68359,15.1946,0],20.2647,1,0,{}], ["Land_BagFenceLong",[14.3838,12.4357,0.0221252],110.444,1,0,{}], ["Land_CncBlock",[19.0068,0.825073,0.000171661],110.851,1,0,{}], ["Fort_RazorWire",[20.249,-0.215759,-0.00309181],107.605,1,0,{}], ["Land_CncBlock",[18.3389,7.82892,0.000167847],19.3901,1,0,{}], ["Land_Fort_Watchtower",[17.625,11.5977,0],288.573,1,0,{}], ["DSHKM_CDF",[17.625,11.5977,2.8],288.573,1,0,{}], ["Land_fortified_nest_small",[11.083,19.2632,0.0543342],109.042,1,0,{}], ["DSHKM_CDF",[11.083,19.2632,0.0543342],-70.042,1,0,{}], ["Land_CncBlock",[20.8984,7.03589,0],15.4184,1,0,{}], ["Land_CncBlock",[22.2549,-2.09991,0],19.1853,1,0,{}], ["Land_CncBlock",[23.5117,1.9837,0],20.13,1,0,{}], ["Land_HBarrier3",[13.9629,19.5845,0.0364189],20.638,1,0,{}], ["UAZ_MG_CDF",[24.8584,-1.23755,0.000495911],106.507,0,0,{}], ["Barrel1",[23.3887,8.58875,0],48.1189,1,0,{}], ["Land_CncBlock",[24.7549,-3.02338,0],17.6695,1,0,{}], ["Land_CncBlock",[24.1963,6.45099,0],1.15005,1,0,{}], ["Land_HBarrier3",[19.3154,17.8173,0],197.125,1,0,{}], ["Land_HBarrier3",[20.5313,17.2067,0.0305729],107.825,1,0,{}], ["Land_CncBlock",[26.1123,0.990967,0],18.014,1,0,{}], ["Land_HBarrier_large",[17.7129,19.5433,0.00792122],200.142,1,0,{}], ["Land_CncBlock",[25.207,7.58502,0],62.6244,1,0,{}], ["Land_CncBlock",[27.2725,-3.73706,0],14.4507,1,0,{}], ["MetalBucket",[18.46,21.3795,-0.177782],283.727,1,0,{}], ["Land_CncBlock_D",[28.5625,0.278381,0],199.829,1,0,{}], ["Paleta1",[18.8096,21.3488,0.000358582],283.304,1,0,{}], ["Land_Toilet",[20.082,19.8558,-0.0223408],199.43,1,0,{}], ["datsun01Wreck",[27.3994,7.63123,0],146.387,1,0,{}], ["Land_Toilet",[21.1523,19.4382,-0.0202656],199.814,1,0,{}], ["Land_Barrel_water",[19.9854,21.3292,-0.138031],20.8927,1,0,{}], ["Land_CncBlock",[28.5508,9.76733,0.000162125],11.9111,1,0,{}], ["RoadBarrier_light",[30.1465,-0.574036,0.000757217],285.677,1,0,{}], ["Land_fort_bagfence_corner",[21.7002,22.0211,0.0247841],203.107,1,0,{}], ["Land_coneLight",[30.8672,3.9715,0],115.85,1,0,{}], ["Land_Pneu",[29.8955,8.67749,0.00012207],40.8447,1,0,{}], ["Land_CncBlock_D",[31.3525,6.66724,0],54.3927,1,0,{}], ["Land_Pneu",[32.3848,7.77515,0],40.8447,1,0,{}] ]; _objsprivate ["_objs"]; _objs = [ ["Land_fort_bagfence_long",[-0.103516,-2.8363,0.000846863],154.304,1,0,{}], ["Land_fort_bagfence_long",[-3.09473,-3.72107,-0.000274658],353.96,1,0,{}], ["Land_fortified_nest_big",[-0.0810547,8.0824,0.01],175.951,1,0,{}], ["Land_fort_bagfence_corner",[-6.70996,-3.48303,-0.0163841],355.935,1,0,{}], ["Barrel4",[-5.32813,-4.83093,0.000457764],178.747,1,0,{}], ["Barrel5",[-6.00879,-4.77087,0.000453949],178.747,1,0,{}], ["Barrel4",[-6.72266,-4.83533,0.000114441],178.747,1,0,{}], ["Barrel4",[-6.66309,-5.53528,0.000114441],178.747,1,0,{}], ["SmallTable",[-5.55176,-7.19958,-0.000331879],265.574,1,0,{}], ["FoldChair",[-6.37109,-6.9845,9.91821e-005],288.19,1,0,{}], ["Land_fort_bagfence_long",[6.84473,6.55969,0.000335693],90.263,1,0,{}], ["Land_HBarrier_large",[7.19141,-6.75354,0.0027771],267.897,1,0,{}], ["Land_fort_bagfence_long",[-7.52637,-6.34949,8.39233e-005],264.813,1,0,{}], ["Land_Misc_Cargo1B",[-2.27344,-9.96887,-0.000835419],264.25,1,0,{}], ["Land_Toilet",[3.08789,-10.9742,-0.00790024],167.915,1,0,{}], ["Land_fort_bagfence_corner",[5.58887,10.1363,0.0167656],174.71,1,0,{}], ["Land_Barrel_water",[4.15918,-10.8776,-0.311718],178.747,1,0,{}], ["Land_Pneu",[4.1416,-10.9222,-0.107876],178.747,1,0,{}], ["Land_HBarrier3",[-7.07227,-10.725,-0.0102119],265.931,1,0,{}], ["Land_HBarrier_large",[4.34375,-13.0001,-0.00122833],353.075,1,0,{}] ]; _objsif (!isServer) exitWith{}; private ["_objs"]; _objs = [ ["Land_Fort_Watchtower",[-0.43457,1.78296,0.153366],181.627,1,0,{}], ["HeliHEmpty",[1.96484,-2.1369,0],7.50182,1,0,{}], ["Land_HBarrier_large",[4.0625,1.71918,-0.00156784],90.1823,1,0,{}], ["Land_Ind_BoardsPack2",[0.0888672,-4.73431,0.000701904],94.8236,1,0,{}], ["Wooden_barrels",[1.14453,-7.05481,0.000705719],23.7396,1,0,{}], ["Land_CamoNetVar_EAST",[0.526367,-7.77814,0.0156403],7.47683,1,0,{}], ["Land_HBarrier_large",[0.693359,7.35028,0.00271225],6.86484,1,0,{}], ["Land_HBarrier_large",[4.27148,-7.11218,-0.0015831],91.0693,1,0,{}], ["Land_Barrel_sand",[2.51855,-8.02966,0.000358582],272.105,1,0,{}], ["Land_Barrel_sand",[1.97852,-8.22076,0.000358582],272.105,1,0,{}], ["Wooden_barrel",[0.576172,-8.64111,0.000522614],7.50182,1,0,{}], ["Land_WoodenRamp",[-9.35449,-2.64905,-0.714745],182.351,1,0,{}], ["Land_HBarrier_large",[-1.02734,-10.4482,0.00130081],1.73283,1,0,{}], ["Land_fortified_nest_big",[-10.8105,5.10498,0.117575],182.672,1,0,{}], ["Land_WoodenRamp",[-12.2813,-2.52637,-0.712048],183.067,1,0,{}], ["DSHKM_CDF",[-9.6914,-12.05249,-0.115555],180.253,1,0,{}], ["AGS_CDF",[-20.14,8.05249,-0.115555],300.253,1,0,{}], ["Land_Misc_Cargo1Bo",[-11.6914,-6.05249,-0.115555],308.253,1,0,{}], ["Land_HBarrier5",[-10.9385,10.4476,-0.0972252],3.24181,1,0,{}], ["Land_fort_bagfence_long",[-6.52441,-11.908,5.72205e-005],149.735,1,0,{}], ["Barrel1",[-13.8516,-5.08569,-0.00113773],272.105,1,0,{}], ["Barrel4",[-13.3887,-8.00122,-0.0382233],272.105,1,0,{}], ["Barrels",[-14.1475,-6.70844,0.000347137],42.1436,1,0,{}], ["Land_fort_bagfence_long",[-9.43066,-12.8892,-5.34058e-005],170.322,1,0,{}], ["Land_fort_bagfence_long",[-12.4492,-12.869,6.10352e-005],187.761,1,0,{}], ["Land_CamoNetVar_EAST",[-17.2314,-6.93304,-0.00414276],99.8451,1,0,{}], ["Land_HBarrier5",[-16.7119,10.9703,-0.0200729],2.84784,1,0,{}], ["Barrel5",[-16.3662,-8.09314,0.000293732],7.51327,1,0,{}], ["Barrel5",[-16.6875,-7.47589,0.000289917],7.51327,1,0,{}], ["Barrel4",[-16.79,-7.77686,0.817194],9.73408,1,0,{}], ["Land_HBarrier5",[-18.7363,0.39679,0.0463219],273.319,1,0,{}], ["Barrel5",[-17.0342,-8.03522,0.000282288],60.1043,1,0,{}], ["Paleta2",[-17.3057,-9.73956,-0.305824],29.8384,1,0,{}], ["Barrel4",[-17.4092,-7.44141,0.000293732],7.51327,1,0,{}], ["Land_HBarrier5",[-18.7236,-0.975952,-0.0456734],93.3305,1,0,{}], ["Land_HBarrier5",[-19.125,-6.68311,-0.0670738],93.2505,1,0,{}] ]; _objsprivate ["_objs"]; _objs = [ ["Land_HBarrier5",[0.321289,6.70898,0],0.337558,1,0,{}], ["Land_HBarrier5",[-5.53809,6.67889,0],0.701525,1,0,{}], ["DSHkM_Mini_TriPod_CDF",[-0.00878906,-7.65411,0],179.98,1,0,{}], ["Fort_EnvelopeBig",[0.367188,-9.56256,0],180.12,1,0,{}], ["ACE_WeaponBox_CDF",[-3.13281,8.80225,0],91.9082,1,0,{}], ["Land_BagFenceEnd",[8.30371,1.55597,0],180.221,1,0,{}], ["Fort_Crate_wood",[1.06152,9.03656,0],357.226,1,0,{}], ["ACE_WeaponBox_CDF",[3,-8.67029,0],1.90752,1,0,{}], ["ACE_WeaponBox_CDF",[-1.88379,-9.0072,0],42.6645,1,0,{}], ["Garbage_can",[3.6748,8.71869,0],208.748,1,0,{}], ["Land_HBarrier3",[6.19922,6.92963,0],358.833,1,0,{}], ["FoldTable",[5.61133,8.73383,0],358.696,1,0,{}], ["Land_HBarrier3",[-6.86621,6.64185,0],181.18,1,0,{}], ["Land_HBarrier5",[-1.22559,12.6161,0],88.9845,1,0,{}], ["Land_Barrel_sand",[-3.97559,9.69189,0],91.8156,1,0,{}], ["Fort_Crate_wood",[-4.74121,9.34271,0],262.023,1,0,{}], ["Land_BagFenceEnd",[-10.041,1.47205,0],28.8865,1,0,{}], ["Land_BagFenceLong",[10.7686,1.66595,0],177.868,1,0,{}], ["Fort_Crate_wood",[-10.5957,2.81744,0],1.31455,1,0,{}], ["ACE_WeaponBox_CDF",[10.7246,2.46063,0],158.811,1,0,{}], ["Land_Barrel_sand",[-3.99316,10.3559,0],104.079,1,0,{}], ["Fort_Crate_wood",[-10.3799,4.20929,0],266.201,1,0,{}], ["FoldChair",[6.13086,9.45172,0],12.8065,1,0,{}], ["Land_BagFenceCorner",[-11.8184,1.91974,0],177.557,1,0,{}], ["FoldChair",[5.08105,10.471,0],184.17,1,0,{}], ["FoldChair",[3.6416,11.1932,0],269.183,1,0,{}], ["Land_Barrel_sand",[-4.40332,10.9297,0],21.2986,1,0,{}], ["Camp",[5.16992,10.2499,0],359.068,1,0,{}], ["Camp",[-4.16113,10.1879,0],0.188523,1,0,{}], ["Fort_Crate_wood",[-10.5391,5.7074,0],34.8875,1,0,{}], ["Land_Barrel_sand",[-3.82227,11.392,0],84.7095,1,0,{}], ["FoldChair",[6.04688,10.4815,0],173.098,1,0,{}], ["Land_BagFenceShort",[-11.79,3.46582,0],89.6675,1,0,{}], ["Fort_Crate_wood",[0.634766,12.3915,0],286.339,1,0,{}], ["FoldTable",[5.57715,11.1302,0],358.696,1,0,{}], ["Land_BagFenceLong",[12.0615,3.38153,0],267.69,1,0,{}], ["FoldChair",[3.67969,12.3105,0],278.277,1,0,{}], ["Land_BagFenceLong",[-11.7471,5.84991,0],91.149,1,0,{}], ["Land_HBarrier5",[8.06445,12.7228,0],89.904,1,0,{}], ["Fort_Crate_wood",[-5.20508,12.3,0],1.60153,1,0,{}], ["Land_BagFenceLong",[11.9014,6.43433,0],88.7775,1,0,{}], ["Land_HBarrier5",[-8.98145,12.7127,0],89.6675,1,0,{}], ["Fort_Crate_wood",[-0.432617,14.067,0],269.906,1,0,{}], ["FoldChair",[6.31738,12.5788,0],51.9535,1,0,{}], ["Land_BagFenceLong",[-11.8389,8.87671,0],266.634,1,0,{}], ["Land_BagFenceLong",[11.8906,9.48315,0],268.724,1,0,{}], ["Land_BagFenceLong",[-11.9395,11.9172,0],88.3045,1,0,{}], ["Land_BagFenceLong",[11.7217,12.535,0],90.4551,1,0,{}], ["ACE_WeaponBox_CDF",[-10.9395,13.6623,0],85.0805,1,0,{}], ["Land_Ind_BoardsPack2",[10.1582,15.189,0],0.499543,1,0,{}], ["Land_BagFenceLong",[-12.0186,14.9188,0],269.03,1,0,{}], ["Land_BagFenceLong",[11.7002,15.572,0],89.0935,1,0,{}], ["Land_Ind_BoardsPack2",[9.04004,18,0],88.5405,1,0,{}], ["ACE_WeaponBox_CDF",[-9.12109,18.5049,0],159.11,1,0,{}], ["Land_BagFenceEnd",[-7.7998,19.5019,0],348.97,1,0,{}], ["Land_BagFenceShort",[11.6328,17.933,0],89.6675,1,0,{}], ["Land_BagFenceLong",[-12.0342,17.9539,0],92.7115,1,0,{}], ["Land_BagFenceLong",[-10.2686,19.3714,0],179.328,1,0,{}], ["Land_BagFenceEnd",[9.80078,19.8697,0],211.335,1,0,{}], ["Land_BagFenceCorner",[11.6074,19.4475,0],357.693,1,0,{}], ["AGS_CDF",[-3.375,25.3813,0],359.147,1,0,{}], ["SPG9_CDF",[4.78418,26.8167,0],354.691,1,0,{}], ["Fort_EnvelopeBig",[-3.9502,29.5723,0],348.328,1,0,{}], ["ACE_WeaponBox_CDF",[1.04297,28.9831,0],159.341,1,0,{}], ["Fort_EnvelopeBig",[4.02246,29.8705,0],1.31455,1,0,{}], ["ACE_WeaponBox_CDF",[-1.58887,29.5107,0],46.5065,1,0,{}] ]; _objsprivate ["_objs"]; _objs = [ ["Fort_RazorWire",[-1.85449,-8.78613,0],187.873,1,0,{}], ["Fort_RazorWire",[8.6123,3.85669,0],72.5541,1,0,{}], ["Fort_RazorWire",[1.75977,-8.75378,0],359.498,1,0,{}], ["Fort_RazorWire",[5.02148,8.2793,0],35.7012,1,0,{}], ["Fort_RazorWire",[9.26172,-1.59619,0],91.4734,1,0,{}], ["Fort_RazorWire",[-9.73926,-0.995605,0],268.158,1,0,{}], ["Fort_RazorWire",[-0.90625,9.92419,0],0,1,0,{}], ["Fort_RazorWire",[7.57324,-6.67737,0],133.632,1,0,{}], ["Fort_RazorWire",[-5.83105,8.21277,0],142.355,1,0,{}], ["Fort_RazorWire",[-8.96191,4.36267,0],289.454,1,0,{}], ["Fort_RazorWire",[-8.05273,-6.08655,0],52.8497,1,0,{}], ["CDF_WarfareBMGNest_PK",[14.168,9.30652,-0.0856762],60.8469,1,0,{}], ["CDF_WarfareBMGNest_PK",[-16.0479,6.46106,-0.0856762],291.413,1,0,{}], ["Barrel1",[14.1172,-11.0815,0],0,1,0,{}], ["Barrel4",[12.1475,-13.5352,0],0,1,0,{}], ["CDF_WarfareBMGNest_PK",[-2.8457,-17.2725,-0.0856752],188.869,1,0,{}] ]; _objsclass STR_SUB_9 { idd=51010; movingEnable=1; duration=900000; fadein=1; name="OPTIONS"; OnLoad = "OptionsDisplay = _this"; controlsBackground[] = {"DAP_BF_VO_BG","DAP_BF_VO_BG_TITTLE"}; controls[] = {"DAP_BF_VO_BG_TITTLETEXT", "DAP_BF_VO_CLOSE", "DAP_BF_VO_VDLABEL", "DAP_BF_VO_VDVALUE","DAP_BF_VO_VIEWDISTANCESLIDER", "DAP_BF_VO_MARKERSLABEL", "DAP_BF_VO_MARKERSCOMBOBOX"}; class DAP_BF_VO_BG: DAP_OPTIONS_UI_PICTURE { idc = 51011; text = "#(argb,8,8,3)color(1,1,1,1)"; x = 0.565625 * safezoneW + safezoneX; y = 0.204623 * safezoneH + safezoneY; w = 0.2625 * safezoneW; h = 0.300754 * safezoneH; colorText[] = {-1,-1,-1,0.5}; }; class DAP_BF_VO_BG_TITTLE: DAP_OPTIONS_UI_PICTURE { idc = 51012; text = "#(argb,8,8,3)color(1,1,1,1)"; x = 0.565625 * safezoneW + safezoneX; y = 0.204623 * safezoneH + safezoneY; w = 0.2625 * safezoneW; h = 0.0656393 * safezoneH; colorText[] = {0.2,0.2,0.1,0.5}; }; class DAP_BF_VO_BG_TITTLETEXT: DAP_OPTIONS_UI_TEXT { idc = 51013; text = "$STR_RIP_DLGSETTINGS"; x = 0.575 * safezoneW + safezoneX; y = 0.214937 * safezoneH + safezoneY; w = 0.1975 * safezoneW; h = 0.0492295 * safezoneH; }; class DAP_BF_VO_CLOSE: DAP_OPTIONS_UI_BUTTON { idc = 51014; style=0x02; text = "$STR_RIP_DLGAPPLY"; x = 0.58375 * safezoneW + safezoneX; y = 0.46 * safezoneH + safezoneY; w = 0.218437 * safezoneW; h = 0.03 * safezoneH; action="CloseDialog 0;"; }; class DAP_BF_VO_VDLABEL: DAP_OPTIONS_UI_TEXT { idc = 51015; text = "$STR_RIP_DLGVIEWDISTANCE"; x = 0.576563 * safezoneW + safezoneX; y = 0.28 * safezoneH + safezoneY; w = 0.142187 * safezoneW; h = 0.0328197 * safezoneH; }; class DAP_BF_VO_VDVALUE: DAP_OPTIONS_UI_TEXT { idc = 51016; text = "0"; x = 0.75000 * safezoneW + safezoneX; y = 0.28 * safezoneH + safezoneY; w = 0.0984375 * safezoneW; h = 0.0328197 * safezoneH; }; class DAP_BF_VO_VIEWDISTANCESLIDER: DAP_OPTIONS_UI_SLIDER { idc = 51018; type = 43; style = "0x400 + 0x10"; x = 0.58375 * safezoneW + safezoneX; y = 0.318 * safezoneH + safezoneY; w = 0.218437 * safezoneW; h = 0.026412 * safezoneH; default = false; color[] = {1, 1, 1, 0.5}; colorActive[] = {1, 1, 1, 1}; colorDisabled[] = {1, 1, 1, 0.2}; arrowEmpty = "\ca\ui\data\ui_arrow_left_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_left_active_ca.paa"; border = "\ca\ui\data\ui_border_frame_ca.paa"; thumb = "\ca\ui\data\ui_slider_bar_ca.paa"; colorBackground[] = {-1,-1,-1,0.25}; colorBackgroundActive[] = {-1,-1,-1,0.25}; }; class DAP_BF_VO_MARKERSLABEL: DAP_OPTIONS_UI_TEXT { idc = 51020; text = "$STR_RIP_DLGGRASSLAYER"; x = 0.576563 * safezoneW + safezoneX; y = 0.36 * safezoneH + safezoneY; w = 0.152187 * safezoneW; h = 0.0328197 * safezoneH; }; class DAP_BF_VO_MARKERSCOMBOBOX: DAP_OPTIONS_UI_COMBO { idc = 51019; x = 0.58375 * safezoneW + safezoneX; y = 0.40 * safezoneH + safezoneY; w = 0.218437 * safezoneW; h = 0.026412 * safezoneH; colorBackground[] = {-1,-1,-1,0.5}; colorBackgroundActive[] = {-1,-1,-1,0.25}; color[] = {1,1,1,1}; colorText[] = {1,1,1,0.75}; colorSelect[] = {1,1,1,1}; colorSelectBackground[] = {0.05,0.05,0.05,0.75}; }; }; class RscTitles { class RIP_RESPAWN { idd=64431; movingEnable = true; fadein = 0; fadeout = 0; duration = 10800; name = "RIP_RESPAWN_TEXT"; controls[] = { "RIP_CAMERA_TEXT","RIP_VEHICLE_CREW_TEXT"}; onLoad = "uiNamespace setVariable ['RIP_RESPAWN_TEXT', _this select 0]"; class RIP_CAMERA_TEXT { type = 13; idc = 64434; style = 0x00; x = safeZoneX; y = safeZoneY+safeZoneH/2+0.3; w = safeZoneW; h = safeZoneH; font = "Zeppelin33"; size = 0.03; sizeEx = 0.03; colorText[] = { 0, 0.4, 0.8, 0.8}; colorBackground[] ={ 0,0,0,0.0}; text = ""; class Attributes { font = "Zeppelin33"; color = "#347C17"; align = "center"; valign = "middle"; shadow = "1"; shadowColor = "#000000"; size = "1"; }; }; class RIP_VEHICLE_CREW_TEXT { type = 13; idc = 64435; style = 0x00; x = (SafeZoneX + 0.02); y = (SafeZoneY + 0.25); w = 0.3; h = 0.6; size = 0.018; font = "Zeppelin33"; sizeEx = 0.03; colorText[] = { 0, 0.4, 0.8, 0.8}; colorBackground[] ={ 0,0,0,0.0}; text = ""; }; }; }; class RIP_CUSTOM_WEAPON { idd=10001; movingEnable=1; duration=900000; fadein=1; name="OPTIONS"; OnLoad = "[] execVM 'Dlg\Attachments\War_start.sqf'"; controlsBackground[] = {"DAP_BF_VO_BG","DAP_BF_VO_BG_TITTLE"}; controls[] = {"DAP_BF_VO_BG_TITTLETEXT", "DAP_BF_VO_AIM", "DAP_BF_VO_GL", "DAP_BF_VO_PSO", "DAP_BF_VO_SILENCER", "DAP_BF_VO_REMOVE", "DAP_BF_VO_CLOSE", "DAP_BF_VO_WEAPONPIC"}; class DAP_BF_VO_BG: DAP_OPTIONS_UI_PICTURE { idc = 10002; text = "#(argb,8,8,3)color(1,1,1,1)"; x = 0.265625 * safezoneW + safezoneX; y = 0.204623 * safezoneH + safezoneY; w = 0.4625 * safezoneW; h = 0.300754 * safezoneH; colorText[] = {-1,-1,-1,0.5}; }; class DAP_BF_VO_BG_TITTLE: DAP_OPTIONS_UI_PICTURE { idc = 10003; text = "#(argb,8,8,3)color(1,1,1,1)"; x = 0.265625 * safezoneW + safezoneX; y = 0.204623 * safezoneH + safezoneY; w = 0.4625 * safezoneW; h = 0.0656393 * safezoneH; colorText[] = {0.2,0.2,0.1,0.5}; }; class DAP_BF_VO_BG_TITTLETEXT: DAP_OPTIONS_UI_TEXT { idc = 10004; text = "$STR_RIP_DLGMODWEAPONS"; x = 0.35 * safezoneW + safezoneX; y = 0.214937 * safezoneH + safezoneY; w = 0.2975 * safezoneW; h = 0.0492295 * safezoneH; }; class DAP_BF_VO_AIM: DAP_OPTIONS_UI_BUTTON { idc = 10005; style=0x02; text = "$STR_RIP_DLGCOLLIMATOR"; x = 0.27 * safezoneW + safezoneX; y = 0.275 * safezoneH + safezoneY; w = 0.18 * safezoneW; h = 0.03 * safezoneH; action="[] execVM 'Dlg\Attachments\War_add_AIM.sqf'"; }; class DAP_BF_VO_GL: DAP_OPTIONS_UI_BUTTON { idc = 10006; style=0x02; text = "$STR_RIP_DLGGRENLAUNCER"; x = 0.27 * safezoneW + safezoneX; y = 0.315 * safezoneH + safezoneY; w = 0.18 * safezoneW; h = 0.03 * safezoneH; action="[] execVM 'Dlg\Attachments\War_add_GL.sqf'"; }; class DAP_BF_VO_PSO: DAP_OPTIONS_UI_BUTTON { idc = 10007; style=0x02; text = "$STR_RIP_DLGOPTICAL"; x = 0.27 * safezoneW + safezoneX; y = 0.355 * safezoneH + safezoneY; w = 0.18 * safezoneW; h = 0.03 * safezoneH; action="[] execVM 'Dlg\Attachments\War_add_PSO.sqf'"; }; class DAP_BF_VO_SILENCER: DAP_OPTIONS_UI_BUTTON { idc = 10011; style=0x02; text = "$STR_RIP_DLGSILENCER"; x = 0.27 * safezoneW + safezoneX; y = 0.395 * safezoneH + safezoneY; w = 0.18 * safezoneW; h = 0.03 * safezoneH; action="[] execVM 'Dlg\Attachments\War_add_SILENCER.sqf'"; }; class DAP_BF_VO_REMOVE: DAP_OPTIONS_UI_BUTTON { idc = 10008; style=0x02; text = "$STR_RIP_DLGREMOVEALL"; x = 0.27 * safezoneW + safezoneX; y = 0.435 * safezoneH + safezoneY; w = 0.18 * safezoneW; h = 0.03 * safezoneH; action="[] execVM 'Dlg\Attachments\War_remove_all.sqf'"; }; class DAP_BF_VO_CLOSE: DAP_OPTIONS_UI_BUTTON { idc = 10010; style=0x02; text = "$STR_RIP_DLGAPPLY"; x = 0.27 * safezoneW + safezoneX; y = 0.47 * safezoneH + safezoneY; w = 0.18 * safezoneW; h = 0.03 * safezoneH; action="CloseDialog 0;[] execVM 'Dlg\Attachments\War_add_NewWeapon.sqf';"; }; class DAP_BF_VO_WEAPONPIC: DAP_OPTIONS_UI_PICTURE { idc = 10009; text = ""; x = 0.45 * safezoneW + safezoneX; y = 0.28 * safezoneH + safezoneY; w = 0.2625 * safezoneW; h = 0.2 * safezoneH; }; }; class RIPSELECTWEAPON { movingEnable = 1; idd = 11001; onLoad = "[] execVM 'Dlg\SelectWeapon\Dlg_Fill_WeaponList.sqf'"; controlsBackground[] = {"RIP_SELECT_WEAPON_BG","RIP_SELECT_WEAPON_BG_TITTLE"}; controls[] = {"RIP_SELECT_WEAPON_BG_TITTLETEXT","RIP_LISTBOX","RIP_ConfirmButton"}; class RIP_SELECT_WEAPON_BG : DAP_OPTIONS_UI_PICTURE { idc = 11003; text = "#(argb,8,8,3)color(1,1,1,1)"; x = 0.289 * safezoneW + safezoneX; y = 0.277 * safezoneH + safezoneY; w = 0.423 * safezoneW; h = 0.45 * safezoneH; colorText[] = {-1,-1,-1,0.5}; }; class RIP_SELECT_WEAPON_BG_TITTLE: DAP_OPTIONS_UI_PICTURE { idc = 11004; text = "#(argb,8,8,3)color(1,1,1,1)"; x = 0.289 * safezoneW + safezoneX; y = 0.213 * safezoneH + safezoneY; w = 0.423 * safezoneW; h = 0.0656393 * safezoneH; colorText[] = {0.2,0.2,0.1,0.5}; }; class RIP_SELECT_WEAPON_BG_TITTLETEXT: DAP_OPTIONS_UI_TEXT { idc = 11005; text = "$STR_RIP_DLGSELECTWEAPONS"; x = 0.35 * safezoneW + safezoneX; y = 0.213 * safezoneH + safezoneY; w = 0.4 * safezoneW; h = 0.06 * safezoneH; }; class RIP_LISTBOX : RscListBox { idc = 11002; x = 0.29 * safezoneW + safezoneX; y = 0.28 * safezoneH + safezoneY; w = 0.422 * safezoneW; h = 0.35 * safezoneH; colorSelectBackground[] = {1, 1, 1, 0.4}; colorSelectBackground2[] = {1, 1, 1, 0.4}; onLBSelChanged = "[_this] execVM ""Dlg\SelectWeapon\Dlg_SelectedWeapon.sqf"";"; }; class RIP_ConfirmButton : DAP_OPTIONS_UI_BUTTON { idc = 11003; style=0x02; x = 0.42 * safezoneW + safezoneX; y = 0.65 * safezoneH + safezoneY; w = 0.16 * safezoneW; h = 0.06 * safezoneH; text = "$STR_RIP_DLGAPPLY"; action = "[] execVM ""Dlg\SelectWeapon\Dlg_Equip.sqf"";closeDialog 0;"; }; }; class RscListBox { idc = -1; type = 5; style = 0 + 0x10; font = "Zeppelin32"; sizeEx = 0.04221; rowHeight = 0.18; color[] = {1, 1, 1, 1}; colorText[] = {1, 1, 1, 0.75}; colorScrollbar[] = {0.95, 0.95, 0.95, 1}; colorSelect[] = {0.95, 0.95, 0.95, 1}; colorSelect2[] = {0.95, 0.95, 0.95, 1}; colorSelectBackground[] = {0.6, 0.8392, 0.4706, 1.0}; colorSelectBackground2[] = {0.6, 0.8392, 0.4706, 1.0}; columns[] = {0.1, 0.7, 0.1, 0.1}; period = 0; colorBackground[] = {0, 0, 0, 1}; maxHistoryDelay = 1.0; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; soundSelect[] = {"\ca\ui\data\sound\new1", 0.09, 1}; class ScrollBar { color[] = {1, 1, 1, 0.6}; colorActive[] = {1, 1, 1, 1}; colorDisabled[] = {1, 1, 1, 0.3}; thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa"; border = "\ca\ui\data\igui_border_scroll_ca.paa"; }; }; class RscText { type = 0; idc = -1; style = 2; colorBackground[] = {0, 0, 0, 0}; colorText[] = {0, 1, 0.5, 1}; font = "Zeppelin32"; sizeEx = 0.08; x = 0; y = 0; w = 0.1; h = 0.2; }; class DAP_OPTIONS_UI_TEXT { access = 0; type = 0; idc = -1; colorBackground[] = {0,0,0,0}; colorText[] = {0.8784,0.8471,0.651,1}; text = ""; fixedWidth = 0; x = 0; y = 0; h = 0.037; w = 0.3; style = 0; shadow = 2; font = "Zeppelin32"; SizeEx = 0.03* safezoneH; }; class DAP_OPTIONS_UI_PICTURE { access = 0; type = 0; idc = -1; style = 48; colorBackground[] = {0,0,0,0}; colorText[] = {1,1,1,1}; font = "TahomaB"; sizeEx = 0; lineSpacing = 0; text = ""; fixedWidth = 0; shadow = 0; x = 0; y = 0; w = 0.2; h = 0.15; }; class DAP_OPTIONS_UI_BUTTON { access = 0; type = 1; text = ""; colorText[] = {0.8784,0.8471,0.651,1}; colorDisabled[] = {0.4,0.4,0.4,1}; colorBackground[] = {0.3,0.3,0.1,0.5}; colorBackgroundDisabled[] = {0.95,0.95,0.95,1}; colorBackgroundActive[] = {0.3,0.3,0.1,0.5}; colorFocused[] = {0.3,0.3,0.1,0.5}; colorShadow[] = {0.1,0.1,0.1,0}; colorBorder[] = {0.1,0.1,0.1,0}; soundEnter[] = {"\ca\ui\data\sound\onover",0.09,1}; soundPush[] = {"\ca\ui\data\sound\new1",0,0}; soundClick[] = {"\ca\ui\data\sound\onclick",0.07,1}; soundEscape[] = {"\ca\ui\data\sound\onescape",0.09,1}; style = 2; x = 0; y = 0; w = 0.095589; h = 0.039216; shadow = 2; font = "Zeppelin32"; SizeEx = 0.03* safezoneH; offsetX = 0.003; offsetY = 0.003; offsetPressedX = 0.002; offsetPressedY = 0.002; borderSize = 0; }; class DAP_OPTIONS_UI_COMBO { access = 0; type = 4; style = 0; colorSelect[] = {0.023529,0,0.0313725,1}; colorText[] = {0.023529,0,0.0313725,1}; colorBackground[] = {0.95,0.95,0.95,1}; colorScrollbar[] = {0.023529,0,0.0313725,1}; soundSelect[] = {"",0.1,1}; soundExpand[] = {"",0.1,1}; soundCollapse[] = {"",0.1,1}; maxHistoryDelay = 1; class ScrollBar { color[] = {1,1,1,0.6}; colorActive[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.3}; shadow = 0; thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; border = "\ca\ui\data\ui_border_scroll_ca.paa"; }; x = 0; y = 0; w = 0.12; h = 0.035; shadow = 0; colorSelectBackground[] = {0.8784,0.8471,0.651,1}; arrowEmpty = "\ca\ui\data\ui_arrow_combo_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_combo_active_ca.paa"; wholeHeight = 0.45; color[] = {0,0,0,0.6}; colorActive[] = {0,0,0,1}; colorDisabled[] = {0,0,0,0.3}; font = "Zeppelin32"; sizeEx = 0.03921; }; class DAP_OPTIONS_UI_SLIDER { access = 0; type = 3; style = 1024; w = 0.3; color[] = {1,1,1,0.8}; colorActive[] = {1,1,1,1}; shadow = 0; h = 0.025; }; class HUDTEXT { access = 0; type = 0; idc = -1; colorBackground[] = {0,0,0,0}; colorText[] = {0.8784,0.8471,0.651,1}; text = ""; fixedWidth = 0; x = 0; y = 0; h = 0.037; w = 0.3; style = 0; shadow = 2; font = "Bitstream"; SizeEx = 0.03921; };  _vip = _this select 0; sleep 0.1; _isdestroyed = false; _car1 = "ArmoredSUV_PMC" createVehicle getpos ESCAPECAR; _car1 setDir getDir ESCAPECAR; _car2 = "ArmoredSUV_PMC" createVehicle getpos ESCAPECAR2; _car2 setDir getDir ESCAPECAR2; _EscapeGrp = createGroup West; _driver1 = _EscapeGrp createUnit ["CZ_Special_Forces_TL_DES_EP1", [0,0,0], [], 0, "NONE"]; [_driver1] join _EscapeGrp; _driver1 moveInDriver _car1; _driver2 = _EscapeGrp createUnit ["CZ_Special_Forces_TL_DES_EP1", [0,0,0], [], 0, "NONE"]; [_driver2] join _EscapeGrp; _driver2 moveInGunner _car1; { _Guard1 = _EscapeGrp createUnit ["CZ_Special_Forces_TL_DES_EP1", [0,0,0], [], 0, "NONE"]; _Guard1 moveInCargo _car1; sleep 0.1; [_Guard1] join _EscapeGrp; } forEach [0,1]; _driver = _EscapeGrp createUnit ["CZ_Special_Forces_TL_DES_EP1", [0,0,0], [], 0, "NONE"]; [_driver] join _EscapeGrp; _driver moveInDriver _car2; _driver = _EscapeGrp createUnit ["CZ_Special_Forces_TL_DES_EP1", [0,0,0], [], 0, "NONE"]; [_driver] join _EscapeGrp; _driver moveInGunner _car2; {_x disableai "move"} forEach units _driver; { _Guard1 = _EscapeGrp createUnit ["CZ_Special_Forces_TL_DES_EP1", [0,0,0], [], 0, "NONE"]; _Guard1 moveInCargo _car2; sleep 0.1; [_Guard1] join _EscapeGrp; } forEach [0,1]; _vip setunitpos "up"; _randomcar = round(random 1); switch (_randomcar) do { case 0: { _wpo = (group _vip) addWaypoint [getPos _car1, 1]; _wpo waypointAttachVehicle _car1; _wpo setWaypointType "GETIN"; }; case 1: { _wpo = (group _vip) addWaypoint [getPos _car2, 1]; _wpo waypointAttachVehicle _car2; _wpo setWaypointType "GETIN"; }; }; waituntil {(_vip in _car1) or (_vip in _car2)}; [_vip] join _EscapeGrp; _PilotGrp = createGroup West; _random = round(random 2); switch (_random) do { case 0: { _air = "C130J_US_EP1" createVehicle getpos ESCAPEAIR; _air setDir getDir ESCAPEAIR; _pilot = _PilotGrp createUnit ["CDF_Soldier_Pilot", [0,0,0], [], 0, "NONE"]; _pilot moveInDriver _air; _air setFuel 0; {_x enableai "move"} forEach units _driver; _wpd = _EscapeGrp addWaypoint [getPos _air, 1]; _wpd waypointAttachVehicle _air; _wpd setWaypointType "MOVE"; _wpd setWaypointSpeed "FULL"; _wpd setWaypointCombatMode "WHITE"; _wpd setWaypointFormation "STAG COLUMN"; _wpd = _EscapeGrp addWaypoint [getPos _air, 2]; _wpd waypointAttachVehicle _air; _wpd setWaypointType "GETIN"; waituntil {_vip in _air}; _air setFuel 1; _air flyInHeight 1000; _wpp = (group _pilot) addWaypoint [getMarkerPos "ESCAPE", 1]; _wpp setWaypointType "MOVE"; _wpd = _EscapeGrp addWaypoint [getMarkerPos "ESCAPE", 3]; _wpd setWaypointType "MOVE"; waituntil {(_vip distance getpos FINALTOWN) > 5000}; Server setvariable ["RIPMISSIONENDLOOSER",true,true]; }; case 1: { _air = "Mi17_CDF" createVehicle getpos ESCAPEHELI; _air setDir getDir ESCAPEHELI; _pilot = _PilotGrp createUnit ["CDF_Soldier_Pilot", [0,0,0], [], 0, "NONE"]; _pilot moveInDriver _air; {_x enableai "move"} forEach units _driver; _wpd = _EscapeGrp addWaypoint [getPos _air, 1]; _wpd waypointAttachVehicle _air; _wpd setWaypointType "UNLOAD"; _wpd setWaypointSpeed "FULL"; _wpd setWaypointCombatMode "WHITE"; _wpd setWaypointFormation "STAG COLUMN"; _wpd = _EscapeGrp addWaypoint [getPos _air, 2]; _wpd waypointAttachVehicle _air; _wpd setWaypointType "GETIN"; waituntil {_vip in _air}; _air flyInHeight 400; _wpp = (group _pilot) addWaypoint [getMarkerPos "ESCAPE", 1]; _wpp setWaypointType "MOVE"; _wpd = _EscapeGrp addWaypoint [getMarkerPos "ESCAPE", 3]; _wpd setWaypointType "MOVE"; waituntil {(_vip distance getpos FINALTOWN) > 5000}; Server setvariable ["RIPMISSIONENDLOOSER",true,true]; }; case 2: { _air = "RHIB2Turret" createVehicle getpos ESCAPEBOAT; _air setDir getDir ESCAPEBOAT; _pilot = _PilotGrp createUnit ["CZ_Special_Forces_TL_DES_EP1", [0,0,0], [], 0, "NONE"]; _pilot moveInDriver _air; {_x enableai "move"} forEach units _driver; _wpd = _EscapeGrp addWaypoint [getPos _air, 1]; _wpd waypointAttachVehicle _air; _wpd setWaypointType "UNLOAD"; _wpd setWaypointSpeed "FULL"; _wpd setWaypointCombatMode "WHITE"; _wpd setWaypointFormation "STAG COLUMN"; _wpd = _EscapeGrp addWaypoint [getPos _air, 2]; _wpd waypointAttachVehicle _air; _wpd setWaypointType "GETIN"; waituntil {_vip in _air}; _driver1 moveInGunner _air; _driver2 moveInCommander _air; sleep 0.1; { _x MoveInCargo _air; } forEach units _EscapeGrp; sleep 0.1; _driver1 moveInGunner _air; sleep 0.1; _driver2 moveInCommander _air; _wpp = (group _pilot) addWaypoint [getMarkerPos "ESCAPE", 1]; _wpp setWaypointType "MOVE"; _wpd = _EscapeGrp addWaypoint [getMarkerPos "ESCAPE", 3]; _wpd setWaypointType "MOVE"; waituntil {(_vip distance getpos FINALTOWN) > 5000}; Server setvariable ["RIPMISSIONENDLOOSER",true,true]; }; }; private ["_position","_script_handler","_random_point","_townlist","_town","_i","_trg_boom"]; _objposition = getPos FINALTOWN; RIPLASTMISSIONPOS = _objposition; "area0" setMarkerPos _objposition; _townlist = nearestLocations [_objposition, ["NameCityCapital","NameCity", "NameVillage"], 300]; _town = text (_townlist select 0); Server setVariable ["RIPMISSIONTASKSQUAD",_town,true]; sleep 1; _random_point= []; { _random_point = [_objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; } forEach [0,1,2,3,4]; sleep 1; { _random_point = [_objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; sleep 1; { _random_point = [_objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [_objposition] spawn War_func_CreateStatic; sleep 0.5; [_objposition] spawn War_func_BotsHouse; sleep 0.5; _trg_boom = createTrigger["EmptyDetector",_objposition]; _trg_boom setTriggerArea[300,300,0,false]; _trg_boom setTriggerActivation["WEST","PRESENT",false]; _trg_boom setTriggerStatements["west countSide thislist <= 10", "call townClear", ""]; RIPMISSIONOBJ set [count RIPMISSIONOBJ, _trg_boom]; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; townClear = { sleep 1; _grp = createGroup west; _missionobject = _grp createUnit ["CDF_Commander", [0,0,0], [], 0, "NONE"]; sleep 0.1; _missionobject setDir (getDir FINALESCAPE); _missionobject setPos getPos FINALESCAPE; [_missionobject] execVM "scripts\server\DestroyFinal.sqf"; sleep 1; _escape = [_missionobject] execVM "missions\escape.sqf"; sleep 1; hint composeText [parseText format [""+localize "STR_PRESIDENTE"+""]]; _marker = createMarker ["BOSS", position _missionobject]; "BOSS" setMarkerColor "ColorRed"; "BOSS" setMarkerType "hd_destroy"; }; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ FD1, FD2, FD3, FD4 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["fuelbase", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["Land_Ind_TankSmall", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) -120); RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\DestroyObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ DFC1, DFC2, DFC3, DFC4 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["radarsite", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["TK_WarfareBHeavyFactory_EP1", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) -120); RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\DestroyObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ EO1, EO2, EO3, EO4, EO5, EO6, EO7, EO8, EO9, EO10, EO11 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; _grp = createGroup west; missionobject = _grp createUnit ["CDF_Soldier_Officer", [0,0,0], [], 0, "NONE"]; sleep 0.1; missionobject disableAI "MOVE"; sleep 0.1; missionobject setCaptive true; sleep 0.1; missionobject setDir (getDir _position); missionobject setPos objposition; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, missionobject]; RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _grp]; missionobject setVehicleInit "this addAction [''+localize 'STR_RIP_TAKECONTROL'+'', 'scripts\server\func\War_func_Arest.sqf',[],-1,false, true];"; processInitCommands; [missionobject] execVM "scripts\server\StillObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ SF1, SF2, SF3, SF4, SF5, SF6 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["largebase", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["US_WarfareBBarracks_Base_EP1", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) + 90); RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\DestroyObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ MLRS1, MLRS2, MLRS3 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["roadpost", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["GRAD_CDF", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) + 90); RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\DestroyObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_townlist","_town","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ CT1, CT2, CT3, CT4, CT5, CT6 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _townlist = nearestLocations [objposition, ["NameCityCapital","NameCity", "NameVillage"], 300]; _town = text (_townlist select 0); Server setVariable ["RIPMISSIONTASKSQUAD",_town,true]; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; [objposition] execVM "scripts\server\ClearTown.sqf"; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_townlist","_town","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ CT1, CT2, CT3, CT4, CT5, CT6 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _townlist = nearestLocations [objposition, ["NameCityCapital","NameCity", "NameVillage"], 300]; _town = text (_townlist select 0); Server setVariable ["RIPMISSIONTASKSQUAD",_town,true]; sleep 1; _random_point= []; for [{_i=0},{_i<=6},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; [objposition] execVM "scripts\server\ClearTown.sqf"; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_townlist","_town","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ CT1, CT2, CT3, CT4, CT5, CT6 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _townlist = nearestLocations [objposition, ["NameCityCapital","NameCity", "NameVillage"], 300]; _town = text (_townlist select 0); Server setVariable ["RIPMISSIONTASKSQUAD",_town,true]; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0]; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; [objposition] execVM "scripts\server\ClearTown.sqf"; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ SAT1, SAT2, SAT3, SAT4, SAT5, SAT6 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["helistop", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["UralRepair_CDF", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) + 90); missionobject setDamage 0.3; missionobject lock true; RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\StillObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ DHQ1, DHQ2, DHQ3, DHQ4, DHQ5 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["radarsite", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["TK_WarfareBHeavyFactory_EP1", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) -120); RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\DestroyObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ DC1, DC2, DC3, DC4, DC5 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["helistop", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["Mi17_CDF", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) -120); missionobject setFuel 0; missionobject setDamage 0.3; RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\DestroyObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ SAT1, SAT2, SAT3, SAT4, SAT5, SAT6 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["wiredzone", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["UralReammo_CDF", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) + 90); missionobject setDamage 0.3; missionobject lock true; RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\StillObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ SFT1, SFT2, SFT3, SFT4, SFT5, SFT6 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["helistop", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["UralRefuel_CDF", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) + 90); missionobject setDamage 0.3; missionobject lock true; RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\StillObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ SME1, SME2, SME3, SME4, SME5 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["smallbase2", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["BMP2_Ambul_CDF", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) + 90); missionobject setDamage 0.3; missionobject lock true; RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\StillObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ SC1, SC2, SC3, SC4, SC5 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["helistop", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; missionobject = createVehicle ["Mi171Sh_CZ_EP1", objposition , [], 0, "NONE"]; sleep 0.1; missionobject setDir ((getDir _position) + 90); missionobject setDamage 0.3; missionobject lock true; RIPMISSIONOBJ set [count RIPMISSIONOBJ, missionobject]; [missionobject] execVM "scripts\server\StillObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; if (RIPAILIGHTVEHCOUNT > 0) then { if (RIPAILIGHTVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; }; if (RIPAILIGHTVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateLightVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 1; if (RIPAIHEAVYVEHCOUNT > 0) then { if (RIPAIHEAVYVEHCOUNT == 1) then { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; }; if (RIPAIHEAVYVEHCOUNT == 2) then { { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateHardVehGroup; sleep 0.5; } forEach [0,1,2]; }; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ EO1, EO2, EO3, EO4, EO5, EO6, EO7, EO8, EO9, EO10, EO11 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["smallbase1", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; _grp = createGroup west; missionobject = _grp createUnit ["CDF_Soldier_Officer", [0,0,0], [], 0, "NONE"]; sleep 0.1; missionobject disableAI "MOVE"; sleep 0.1; missionobject setDir (getDir _position); missionobject setPos objposition; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, missionobject]; RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _grp]; [missionobject] execVM "scripts\server\DestroyObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 1; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; private ["_randomobjposition","_position","_script_handler","_random_point","_taskquad","_i"]; if !(isServer) exitWith {}; _randomobjposition = [ EO1, EO2, EO3, EO4, EO5, EO6, EO7, EO8, EO9, EO10, EO11 ]; _position = _randomobjposition call BIS_fnc_selectRandom; while {(RIPLASTMISSIONPOS distance _position) < 2000} do { _position = _randomobjposition call BIS_fnc_selectRandom; sleep 0.5; }; objposition = getPosATL _position; RIPLASTMISSIONPOS = objposition; "area0" setMarkerPos objposition; _taskquad = mapGridPosition objposition; Server setVariable ["RIPMISSIONTASKSQUAD",_taskquad,true]; script_handler = ["smallbase1", (getDir _position), objposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; _grp = createGroup west; missionobject = _grp createUnit ["CDF_Soldier_Light", [0,0,0], [], 0, "NONE"]; sleep 0.1; missionobject disableAI "MOVE"; sleep 0.1; missionobject setDir (getDir _position); missionobject setPos objposition; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, missionobject]; RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _grp]; [missionobject] execVM "scripts\server\DestroyObject.sqf"; sleep 1; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [objposition, 300] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfGroup; sleep 0.5; }; sleep 0.5; {nul=[(leader _x),"area0","nosmoke","noveh","spawned"] execVM "scripts\server\upsmon.sqf"} forEach RIPMISSIONGUARDGROUPS; sleep 2; [objposition] spawn War_func_CreateStatic; sleep 0.5; [objposition] spawn War_func_BotsHouse; sleep 0.5; Server setVariable ["RIPMISSIONCOMPLETED",false,true]; Server setVariable ["RIPMISSIONCREATED",true,true]; [] spawn War_func_RemoveDead; ExifMM* (12҇i  ' 'Adobe Photoshop CS6 (Windows)2014:07:02 23:35:110221nv(~HH Adobe_CMAdobed            P" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?锃fO`@iʾ杴wPBrWMvZc-sn&Ȋ_&?o^;#?*%6!ُj<Nlhmk2`mk+U(eyCѩۦ %.LWC9:HZHbDl\qp$4Hl7>#݅[CX Qo"z(C%#Zb`dHk?eca"@?Ps` 5K ˇUor5x.զCA@si:A{gO*-ıa:t 8\&~=' Z <5I  s(1x{y|QsX'_sZ[##mx9Ah~J/}/xI.Q)?P3~w"VDn:?;,Vb13ݳ[Z;{kpH[X0Il҄#R#Kpv8O$NOT:80<ꊷ~kI9ti'4~Y2MsOBPS|C;W&C̍ &6M!rt+um1k\@h:7GfWܬl l?vK[^Uv?s~SWHUǙycwn%nݵ$i^On4y.Pt_ N:m'a&W~2ŧ_ǼcCcwl}@Zq[wfn]Լ~-7Yeue=:έz¤IiOӏ 36v=Zob u'c=װJ˵=P ,i=/W~kg޽`f-EX. C9ޛ%I86uD" VRq#{qSx먦q Y5:Ǵ?F$}D BBQ$>nߤu ,>!;Fdƒͮ"Gq/( T>o W*hp LW}6$L4ߑ_uYhk:5?ӻ+_w4d=4#5o`kwM dNS*6` 7Ur!`ƺT4(xz?1pc\FC_6w`ͿIG] #O["\ԙ)vXo'Q)6MKw ڎN+*i-ׂ֍ILGtA'4e  61c}nt4KPk~UIm-Ipi.qy?井8#BX5EWkWX[^+ִ2X;#UJ{ W Pl`fE)6'mm7^_f˿Һ8>V--vZE{mcYګ/ߒ~sAq`x eWX[Rn%uY软廓KcߑoVoҿHn|S"Lbcuہݗ]Yȹ՗2]ӫm8em޶M5J1oz.6>ƛKNS#f-z crYj޳NGr,kZ+? 3տ-ޥ~lU(={˜~J[ֵMXFȏ%//[/KUHTZRɐjYT/eluV MF'p&[*C# NN%Mn$q;I;ud2Ǐb}F\PHqzOȪݤASݺ㹅O_l_~[sz}7@SQ'&E2õ[k?Bf=.}!::5gi--݆XFȇ&H1 8'FԻ*6m.܁3|PӤh$3cOPa2AqrtU$RօrC#pv폟))]cAJhvYYŵy *x#w{]{6j^o[idfFImWֻ[ lo#BF>ёU -<3u5]lz*]cEW9A4cS_?eSZy,M?(Cw~{r^r(z~_+X~:mttF WVXz,ҿf-K׸Ni ?qL"$՞J zc;XDC&K]@IA>GPƯ6kͳ|kROk^vA}rE }KC@nlBCRNɊ`B8@_r_H@\L;ݷ Q٫\)q{`_ߝf5';I0BB@l0K:PZH&~ 6Xӵ8FuI >_P; ?Gڥ^XhJGJ<>[n %兽})Aw5Tz aOk[}@G#N|Rd:7Ֆ4(>1$H,$tI%)8LJei,IGg7 Hc1˘`l~^R=6^6Nld`06jkHFwm <Ll`c:̓7X׷y]b[̼?*7}NX*o4X#8ېNCN pWv 1@+]Y #{wm?Gkݥh"ԂtQZ99 h;H{ZEwaPў'c~VTeh{K_w;2ָwovU5P?ȟꬱߊ'r|:p+{ٵI sf;q8vc'7W dBdXԒI$Photoshop 3.08BIMZ%GZ%G8BIM%Od*;im+V8BIM: printOutputPstSboolInteenumInteClrmprintSixteenBitbool printerNameTEXTprintProofSetupObjc Proof Setup proofSetupBltnenum builtinProof proofCMYK8BIM;-printOutputOptionsCptnboolClbrboolRgsMboolCrnCboolCntCboolLblsboolNgtvboolEmlDboolIntrboolBckgObjcRGBCRd doub@oGrn doub@oBl doub@oBrdTUntF#RltBld UntF#RltRsltUntF#Pxl@R vectorDataboolPgPsenumPgPsPgPCLeftUntF#RltTop UntF#RltScl UntF#Prc@YcropWhenPrintingboolcropRectBottomlong cropRectLeftlong cropRectRightlong cropRectToplong8BIMHNHN8BIM&?8BIM 8BIM x8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM8BIM08BIM-8BIM@@8BIM8BIMO LoadingScreennullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM .P Adobe_CMAdobed            P" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?锃fO`@iʾ杴wPBrWMvZc-sn&Ȋ_&?o^;#?*%6!ُj<Nlhmk2`mk+U(eyCѩۦ %.LWC9:HZHbDl\qp$4Hl7>#݅[CX Qo"z(C%#Zb`dHk?eca"@?Ps` 5K ˇUor5x.զCA@si:A{gO*-ıa:t 8\&~=' Z <5I  s(1x{y|QsX'_sZ[##mx9Ah~J/}/xI.Q)?P3~w"VDn:?;,Vb13ݳ[Z;{kpH[X0Il҄#R#Kpv8O$NOT:80<ꊷ~kI9ti'4~Y2MsOBPS|C;W&C̍ &6M!rt+um1k\@h:7GfWܬl l?vK[^Uv?s~SWHUǙycwn%nݵ$i^On4y.Pt_ N:m'a&W~2ŧ_ǼcCcwl}@Zq[wfn]Լ~-7Yeue=:έz¤IiOӏ 36v=Zob u'c=װJ˵=P ,i=/W~kg޽`f-EX. C9ޛ%I86uD" VRq#{qSx먦q Y5:Ǵ?F$}D BBQ$>nߤu ,>!;Fdƒͮ"Gq/( T>o W*hp LW}6$L4ߑ_uYhk:5?ӻ+_w4d=4#5o`kwM dNS*6` 7Ur!`ƺT4(xz?1pc\FC_6w`ͿIG] #O["\ԙ)vXo'Q)6MKw ڎN+*i-ׂ֍ILGtA'4e  61c}nt4KPk~UIm-Ipi.qy?井8#BX5EWkWX[^+ִ2X;#UJ{ W Pl`fE)6'mm7^_f˿Һ8>V--vZE{mcYګ/ߒ~sAq`x eWX[Rn%uY软廓KcߑoVoҿHn|S"Lbcuہݗ]Yȹ՗2]ӫm8em޶M5J1oz.6>ƛKNS#f-z crYj޳NGr,kZ+? 3տ-ޥ~lU(={˜~J[ֵMXFȏ%//[/KUHTZRɐjYT/eluV MF'p&[*C# NN%Mn$q;I;ud2Ǐb}F\PHqzOȪݤASݺ㹅O_l_~[sz}7@SQ'&E2õ[k?Bf=.}!::5gi--݆XFȇ&H1 8'FԻ*6m.܁3|PӤh$3cOPa2AqrtU$RօrC#pv폟))]cAJhvYYŵy *x#w{]{6j^o[idfFImWֻ[ lo#BF>ёU -<3u5]lz*]cEW9A4cS_?eSZy,M?(Cw~{r^r(z~_+X~:mttF WVXz,ҿf-K׸Ni ?qL"$՞J zc;XDC&K]@IA>GPƯ6kͳ|kROk^vA}rE }KC@nlBCRNɊ`B8@_r_H@\L;ݷ Q٫\)q{`_ߝf5';I0BB@l0K:PZH&~ 6Xӵ8FuI >_P; ?Gڥ^XhJGJ<>[n %兽})Aw5Tz aOk[}@G#N|Rd:7Ֆ4(>1$H,$tI%)8LJei,IGg7 Hc1˘`l~^R=6^6Nld`06jkHFwm <Ll`c:̓7X׷y]b[̼?*7}NX*o4X#8ېNCN pWv 1@+]Y #{wm?Gkݥh"ԂtQZ99 h;H{ZEwaPў'c~VTeh{K_w;2ָwovU5P?ȟꬱߊ'r|:p+{ٵI sf;q8vc'7W dBdXԒI$8BIM!UAdobe PhotoshopAdobe Photoshop CS68BIMhttp://ns.adobe.com/xap/1.0/ XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmAdobed        ""    !1AQa"2qBRbr#3ᢲCSc$s4DT%du&6'!1"2BAQRbar#q3CScsდ$ ?Y @ @ @vT%8$|X4wЈ@ @TG Gw՚&1r;37V.%gOS|k퍛vLF;֝NgW:l5*p$˥ 5ҪڿM[]N> =2mgU|l6ج1Tݺ\~5pt ւ3j A]G /N^99-Q}Zy%Hik~'/ᷮ(J/ѝ(3:j{TAkYۨ8Y,$n ⪵iI4,i\hmU<4Qrs1xgq>VVn<'f,)MKRZrA@-S=Wslu6}BmPNI-1f7IQ2xxSoꩰb1*  ܶAw3dZ|Tܺij=[־m;vM9PLjF|LtE@!%͚AՖZ#7Lݟl#gUOيڹ.Ǧgt2=]^uG3zzZM/ƟYg")ͳh ]?~&J,{;i9U\~6:乭,k@JGOu0f +iaKgM)^ZSɐ+|؂>.Sx^" @ --$Ht\̮w!3iZ5'-:jٛ}Eqaqh>)q Z I;c(B٣sV1ؔ$D @ >{ VYk7}ݧWZ=<;Cy8Z:ZH9|P@UUUU .[BZ+$~6o'V:ڼU>b @r9CYB@=KZ8o2΁p~e,/YYX*GHjR=FZ$fG ORufJr\&DBH;܍B ';+4yJ_tnap5 b;" %}?3MET5:cV^Qne5Đ8 DJ ɖ؆te[J|-ń>rk'B]Fu4G kgW( c+3=pǷT}ore:> ҰGꛟ?olBD=jU]w#5N<ōp>dg/0+;kdٷ1:dE&,u~cY @ @ @ @ @ ,Zn3Wx*ک7Ǟ,v^Ru[_8.mo!3P27gنKwꩳY:W)~Wy+C(i^ #hKMEEBA#^sqܹ/ph̠JDB @ ƘdN=JRYt7QVQƻDvlքys$Ǘ|2v…hrio ɴɱ5w$Y~Ժ?Y @ @ @ @ @ &׳[Ds}M? iGm5+}t .mc˃nRJy% @ @ %ym4WJrU;k{9ؓDEn_b@ ص1`s5B겤bhK餏V\;vkWkz+ƃPt7<f jcP \\@ \j:m _J1xO43A+cJK;l-<5z.IƢDiollo>JSc=>[5x`@ !sBCj߲WV1( @  @ I?%>fJW.EL.\66hx԰EOwvDk@5jgpZM72\rE6X#up"t>_ܸ_]>&-U";W2 "/0pǻ"A6Y&%@؄k5WPaޠR0%IMGI$w/P"-Q 2n*H_ k B`/! K6yAGNK񽬌)2ti#(\Yg_v;W)~fkZԊzGd8?lsϭ|XfKtb[ #ʥ 7M݂ D  Dͨ@YC*[kt??g\Zp#si\rB@@*ynӮҽL|DB ts b|}?s欩=k}[ Kړ\{xtKo-% χj4 @m@ ]L goPV'󫮇>O5&`[:6 > `J?Lm'Xll{]W~ MM=\$mnqV3HD ߶8VۇWr泲=XdTU30m ~${n_<1u :isBAsk\ +5D ]n#"RfOoe-\CsWdM) {^ KA&8!dT[HD2';K\@$P#\4W˛0N- y 3gͩgW/ )}ii-p8Z"@٭Z\iZBՍ*t;B-n5LJW.\S>_n)ςF;pѣbuKUY @ @ @IV q 7** γ 0JVUibkq&ROчlj*67&p؁RV+ ikjI&3Į0FΩNTUS&tڢw @  $P@~kN%@ &8 x˽n:){asz GJ$bO)Ac@G+:%CRZuh#\jRx!S@8ƕ'AB[-m2 hϸv]J:thߠKs(҄.\MKSwi@  I9IIeWP<1ૹ3b\6mwpKfaG4lj\=|\yVNEkB/G][_?jL;%Vl&[\u6'V׷ $L0eݚ3F igЎ>cĭZ淍::ُ$>g]o6XdWN3Mvm|M=Z?)- R1-2xOXRK۲ȗSAȾt#-tdezl!p䚖u.)>bOBZ@YE=uZ5}\N,q;dr^Bjȕ?j+Z\tP|I!iJvwDP/,`BJb!J CD 4 zۦ2RP@vwjqtŽ@g=~,u{:oLɥ2~uNQߚCҒ3 ?S}5F(]\smJ@cp%8ԳRsA/z~F{⪱ +Â@JɹOlx Io_ێ]QkCGJ|.[s[7|kE ux|߹}˥+ 4A} b- ت7Ʒ&*Ռ679&Ҿ,ڟ* W[s=O۫7dJuƃCU%GK!&  n\B _<ݰa犃WvꗖJL /m;l i՝L y+5WJ\wnGE%"HiPw4u];k^у.r}^omƩ 7 Ai18>w[J3wucb76֎:Iay+^cڬ[@ 4]!0,E*E@¡C&'Ac.N iDMnRR2(h աf}(KcPQ‖Y._ð(jMie_DMT@S@Ptu&!j1Xڍ܄VOuM!We:S5jyF{&j+ҕΪ;QltSY @ @ @PҼ @:gĵrQP%A @`@ # TpQ(Mh`P4 @ @>;qP-MYZ:e< n@wg~]a'~O-*gn{ p[RNO&ئr@ f - V'Q9CR=BDFW’WI- z RT@ ,Y] v[87Ï{/l uF%Iߗj̖DtP̽\3sbG~ p{| *s u\ =+#Y;jF M ]x'r΍xLű杭1 /:xU/,˴IsVK#;pX, V⍠+E(Pfk)ʂо#KT"P٘5()+MyA pW2h3ݤDIĻ-՛<4R6ị=yrBiVp/18w+; /`wTVٲWFF1[02+Ma??S]gς@ @@*@ @%ZKHp_]S3ܫZƒl^[ndQ.eW wh_-^4 xln*{;dM}+ !eN*:m)q+- yO*#+fSBRV{|#bMG ekhJ@ ,.Ԇ)$ҽ+." +Yl|U҄6LV*Vp^R%c0@_*~Kt Ud^||C6标֞7p)Ƭ%vY/G\EKU6pv׃iFhOtnͤZ'뵵{|fNx[J6Ϛcx3X#BjƚNM+K_.Qc]TE=-IJdښMv-QVޢ׋bwo,PaVxZ_R$ۗтUijgk)-0@ @'7Zk$@)i vHF r<m1ۻh^l1Z/=ҟc\jq%t;r@ LHgAU zۢpmn]'Kkx@K {R*[i)3  Tɿ>Et+4\p :O-m|5 >rMqievfq=mۑspY> @ c[ PS?ЅQ# i@PwvG4/3We[6ណl8Zr?ֹ ¦SIgٳL+^+̻_MGx 8-hqR\sN7["vܻck$`'tͷ:4cԓڷ<[MqaX5A\"V=öL)%]/ I R+9hRO@ M27#=\|gE5nx>yёt^cY @ @ @ @ @ @ @ [ھz Uvlxlya#U]ۋoqI-488ڀBd@3@ tZ5~%tfN}DiF2D* ԄB;bJ  pBF4PrℍB  ʫn-4z7/ȿo˷[L £hי߂?0I.~clc}Z\1v3[qͮ rҵPcpb\B`8PF@Tw?=aqs0wwˏ-ky{lsA @ Iih OР |S>*$jAg^M"Y%A_N+*=ni.5^#hV57t}#5rkN2)Uk?5>v +M7MkMsZ0Q)v|![VsqVZWudo{oF[,ܺ\BAƧWZsJWJ˗g?zBhkn=kn{T UW4Sl{ߧOݧ9m()bd&'[&S݉nM!OYu`#<1WAەEnHW cj+Vɹ=NNlVZE2Vǖ9v @ hsL<H9*=춶H @=rpGbC7ÚحcoqlE<.È+ig^^8Y @ @J% F;[L_i,ͦV3a֚W(U[4U @ @W@ @ @Kom$LbLx#JH v_X̳tt-,pp8qK9 MZ'n9֖FR aƼR>꣬ui[sю;P@  kj j @ F FqR&=YnsrwLְ[ TW6g{eRr*D>lPTNWQDmWC7VtƋ 4#?0Ǯ_$]$eŞ*K U4%`av9)7Y`cI;`4f@1J32 xZvSeR\LJJ"iٵ<0} QK͖ )ZUFR{LP@@@*@ T@ ՟L+uLJZdgZl_20h UlJWr2hmrјk\=Eew z ~ɻ\5֠jI5\+ &Y2k;S( OqVV;ws&oQj{ 0TmI{YjIR$D  J @@+^CZ q%&FݷJLOs[:Gn*;,x=2+gFkSD@ #|aixˆ/[F5H#\'jѴ׳g<<\_oKh|cYwk]33꼳]g΂PԆGK9WӒ%9nd; T @ P)Ehq'mi` <[e;//C.h~Mx+'A۽&΃:.ln{W[w;فJ1SjV{|([hqiP\IĠnub!g`n>ϖwjii#һ/{S {{ĶFp8޷u|~j+5l;|rpoʓ=سw3XI;I+J1I@@ @ @Q nXŇгMr^ OSY @ @ 8*:HjI D @G+ń"KVν* @ @ @:(̎ M*MHb`{+G]H#oЫkAO-5aoⵤ\ڸǼ;ːBІvѨ r*7Aq$ԕ!1N&z(s/ZiN_fP= eup]ɸW`]L@  3@*@@*@Q[x4ѾRx۟:C* maV:!o> ;xߎҏ`KTMBTH a i%xM~}=tC =%ݎlQṡI ԝC=g5͸.ڨG/%ucVMӗ D @6Eԃ/pǛ'MH^6dsd{Vmt$BV„(Nq{etU:+WKnR|_+g_)@  @ T 6e͇{^媥>R]-{\.JN%cqZ}]:ڟG68 >yp"@"k\;"W@"@d:Z$);foCЫe* ԱshxsYaw.d(@ ,&ҏ$Tx.\jZNsCu1kvS2|+ۭrrdtk:'iµ3np̹~Wu^# t  ^ZIu#%a=w K48v"8iZ}?3]d u CuC-.kƵwپG\[`t 8j]YjY>b7[GYٺ/#MQikKH= Z(0F0b!t#Ǻgnu!ǰ*^T<|>ܱ84PK|*$,PIL_t~Sh^ҹ3]Y)A9>Ghݼ~;5>cng&d,@gm)摸EKGҷzՔ:(f֦Ux( @ H&Cp^ai%`D @ @Y @ @ @ @SA"@ @Z淝3ps=oU]Ňwu}_+ɧQR\Z'@c " TB і u-Lеbu:,ljh?qe}7 ޖa`zm# T!.Mi5дǓk8|Exq|P!(@ hsq !)KF@BZ<6'N֚P{]0;Ukqdcjb=! @ S5çdA ֘  4v kfY3*ݭ3(@4 @UUH}!V1@Kj 2V45ꬷxFbJ+vq#RP[fu+G6] +#qr]4(Lz\3:SVPhSQB'cDh_Vr7u3>^R>?nK%yIZNvo9Prc&G4V N*H`? bpU7t]f7qZзhqߧh2=rdC$&>)LԎ|/E1h?dz FBTZVZ3B /#\S5jU٘s ||'#&^e(()M=kIMhr6+INY["GknvX *ğOгN;oL8u&$qpЏX%AQ@) @@  @v VيϲU,h7[7J9{*qԷ/g]I%ִˆ[VO;[Re]۶*kЎ JWX/زWFd ww>E´rjy+Qz[yw١k$Ӭ3د;tE˃,]BTٳ۪9"k]sC\*J䅓P:{i 5paP7N'I  Z\407/)Ͼ]HA {pna&N17}'&@ ;YҞ=jX6 ťD?S*]ɛ-'9Z.Nxx-?aMOSrmʾ=ۑv0Z'52cٕgN@$ek0=]Gč GWMiqP@ ӆOAzo\2m͜ȁ=}΢o&k\kLHHnxiu XdQõCRi\[Dy"2x|_{.9RgYQ}f$p8,qCzդ!y{nHoI96<&oo=ƋࡥM*WNFX{?7x 2՘qeTѶ+J]9Ihq@ltķ ^B_alʮc_-wNߤ,m$iLJscW->!Q.JL2KyuѴ8wj2S6JTZgg^ i .|ƇvK&In\1\uɎνUf]KEZ(8arkrU͹lhK<Y<̹U4s35cS@(n VY.[1g~B㵷31`Xk o`C:hCF~*LۺIsWS8[,IVOpwiOTitqkLjJ8Z[Եf43g:s^KjNkcnu`ז֜EI/"H@HΓA4jjNKڈi?&Sj8@=Ņ [ừ*Q%[kZ)ZȄ% f N6(^czqZZ;Ex2vԓ[t 1i "ڣNL7x`mq^7(ec#)0@]ߒfTm·]1Skvw@*iʍ g[xlҴjiY:v'\m3f:ݶZMiMftGcF Eg\ގ{_)4bq]'5@%P@ M  1=r]>ZcȳXaLzݶKUX󥠒xēz#fǧL\|Ƌ=ݹMϴԊڂ8$ҧR1rGelђ\⅝5%CR7am8)3i$ss|Ҙ.SGnnf.Zep1^~nˉ32-p#%c:pn@4VFvexC\ՠ¬ق2% (.LrQԺt<:ejߺ7 4ֽwW;5hKU7M=Ti՝x6m$X(F %IXqWeRBalO<+]7=з FDjtǗj#u0@{å8%ш@C $$2QӊZ:G!hw,?\41>.wF׃PZ 졟wU?^m>%S]\@մ[&[ӯCICҴL2&E iRiUv`_2aŎ$HZ#᝵`#Zhcm}Mojmf7|9ا-Lݯ0 GUyN? ox|>LOLa| -walu1ICSi"y_OV7hOǞ~ce5\vLIYW)0iğ_ rR>ӓZ(yrNm6Q?;.Kn.EKKFB4QOb'DuT[r3>y$qvd5&c8= Ij.:jOD `l׌kZ*h{++I}n!|opQ>>5z4GC Z/Jnp$ֆ H]]21+;^%O8A $s CrC/WzkHpbpwva IOxugqyuTBᶲ$ wZ9ye2Vs̀1FIi<^;R|3}8-]YEBi..̞5BɗvJՌ %9_/몝#Y4-lNJL Y @ XFdP(Y8A @  ApBP@ @ 7]b`q<>%KjCsnmtN Tdd I=n$6ҥUl8 }"cM{T;$-E *BjF!R]S;%&[$- jۖ n>!+WR%229\[ioj Iv,mN.7wmo6JxhNW>;9||~mm"] ,7%_/V'#ִ)(+R*aY+`n yUZ83e|iRI t]-m^uNr'vus@>Bpj #17Wג/Z6^R:(8CC$}Li#P@ k.g0ralʧۯNw%57k[nRpY bK9QSU ǹVURymS䆹mxRk_g6Yl9BdV-@AZ An 1XSKH{˝Ѷ{ JU:/M@(;7mЫJsVb|Ù=X%a|hSwݵf8```O۷S٥)¿,9LA.ͱΨS%RK-DCUFt h5TAsS%"5g'FMx4<ڪ۷̋7RǷV:-1ΊSVqn*ҸzpZ9GTҶ$DYh@эEZG͝D7r*RaT3$F?5vol$P.gj_2 7%pW9( HdI!sEhn1W5у{7JJz1Z8FDAiqujҟw%8uK_կvc:-ki<6-Z!$ ||Y3J'g -lc5҉9*jD@@>]3\>޾?6g6_EÍW.ò +8;@Rb Ûo&bpY<_q#>l@ Q^bAhߏ^3_Mʛ#^D~*}-2tg'r%}n%ocիː_u V0771;|$?W=4Gf^ t( @(T %oʲpĵȟd*vĽ5ur 0 R-C$Dd"RfS $62RA6DeɎʎk[ ۝#'rt=Zd67glAՊqCt7W#W*{[-ծ>Z4ΕovjiRae2|7ƕfӾ;okJ91o)>:i-gM)ٸ}kTmͿ[FbZҾίαgƶ_89o;yה6f~|eZi\ƣܻ+N_ b-雃oh95S5f>gj>-wxƹWTjm1TѣR潾'ƧoҶ1 6g偼Ciss5ax?r49e+I'Һd{~FJmFY+︶zCOjHD,o Ŧ$%6 % N6 ƀ(n ]/-MMTQl/b۰IyG[ ?̳USm|4:[Mպc`N%q[#xġ"$H{*@Vزm$&;\Y<Vⴂ=UtS1D08UDfAǷspT&ZY^56tQGэx4Dj4FuQ(M"\BZs!ᣟGG'0 ٻC[K66fjN8k35,:Щ*TL/|a(EF¤,DkVoRXuдfS e`| ø.yꄽ* Z~b K\ ƅL}dv$"4dtRf(@Ozijm]\/WRbklҺ0J"=^B6@3Ii˙hjuZ^ղ4r5 8=L%ڴ/h"Cҹm&7"0Gfڎo{T?tc+|:hL@  J -+ta},W]n-GcmOD۰ܿ|uy_[2 )G;df;P+wL8a`O@*@)i񵅮/$8yE+_P]%B=8zT5 @[WːPٰҫ_ o^R$H {BڍjF@@ hy.ǀZYN l=#i}tHoxj<>{o>ЄOIP$oac]J }Zi|Ot[ z%b|GAZ9<5^!ny@@ ikc.Ҟ~\ZA&i@@ @9B`Y @  ֗ $`SOQY3{%%wŮ`sB @ @:6nJSGVV|P1@ f 4qdEmkEvbk4ΊLAJ9p@].qVRɾ_%17iJW9["8je0(JSOc?6RKAq8ڏOyk;/8BAJƸ1; N%JRfⷆ6{ck]].N5/#dk5W<+Jes_V@` ڞUqJALJ|`A]FF'LwH^Ihۺ \x֌zmĸpoex3޽dM%j~(^a.RJ "`>GȽ}ufm;}vjՍzyFߕKxSL#^|7$l&=/` F&O2m{He"8VLo^m]"&n#UG|,Ke|\ - ӅE*;Bxu2kݴnVq:ΔSz|M2m]:A +@Yfr cur:W#2v6FFs!gl;p24yI$}KJ^e`X 坖EJJw귅G{|RbuU]Vtx UB-@njAY@/dD]LslLRvrgET8`Rvczr)$UUh?2UGEmbc&TB&-Dmi8dَ5/ ;yZ)G&o]PB¯qrZ :4V1I~֤WhND+We5b6ٍg,<WT*ĒͰP'6L%Ik&*>dti&ԞWU%*IG3 uF;TejѥBDs=KqYD#!>p1y&LZ 4@$.`ue 2ju>Szpyy%Oe,(m[ :gI@ :]:ñsOMO,v޲*8b\Fhu`)ڊȚݥJOʿEJRkAU^QɆluцKgV rM(6i4 G]\])h2Dgo0@Og*V {סmgqYx6UEXMm"JRrg$zWJq3*&grݱ,:~[ kEЪm&5Ħi!̕Px/)(PH jivm?*KI4bs ?b''Õ[<>w=Iu = *סvݛeec.XI @^.zQVZڶ#l z*WCȒ0@ CJ@Ȉ@ ^'  ^dB V\)BtŝCEhm>9B#RP ZF~&B bval%>;\N>G[YdU,GWgZ7fӇr>ZR37!Kgzm`=& VTiklkz7,s9f z1\6C`r+h6wUiZH\Z= , ճ8; zॱ+2cF@B PH pBE#7]xo>x>t"NӀFKLBFhN&?ULKwWw5ly * $c-1!&!գw:+5_7H#@iRd/OE4"kIwVv\G|53% n1Uϼ-rGa驠str ֱ$r[LkIwҤ<+:E :ciq=[:ۢv Y;+ԮCUy6,ᭇOaaB($%q^ۜOڋ*Qv2L֏V]# MNv$v ĮK}7wnepU^bku ΤKkhC+fh|gSND(j:ZCennØ0?etSry d Pɫ9_pF1/(EWĿjk+3u.g 31_BH(φƁINN~d59$HrF֖2JcCyp+ڵͦƢNGTcQn)( τgObe̖5 WLc[86(GzS%桚Q&ުkPL /Xvd;YHՓSiB-q0]M[R/-J9 u!Wv>G>_Vۙ iqfPs VtJI}8"K}8i# @|h_X mb8Kv\DhJ@@ ,nk({MqTeQ[H]WRq\mARyt=OV֊Y\g;7B#m3:Mg>+ܸ(>GȒf[F^QE&i1ˮ 4p h,OCuFQ^==s:]-CC\џ*';/lxw y5VjöVq[>Pf5<]z<@ 3@bxX<ü*mio KoS}gamx[;WMC{Wo۸[Igp}*Wџ𢲹 @+Z]V08HǏ JFP@ @ @ ;]1>& 8w;5agU`2fgŇzjtMk 3)I\)YhaR0tZ+(XnCW4h㍞Fl*$Ō@'LQJ;DjLG! HPԖ\[p߹vM1 bTrzsUR 66"? \}֭mh8p'_%b"4 Bș9h5AhpC@$BSkA@Y @U Q RP@ $R3&?j/H#RP@j{37 N{Pg&M.#[j 4iW*N>F?NWV9 @ ,ZSZ#@rS"U%\^:@<-OerQ%[R08#E$'!j v)Il+94z\>x;VXQ\PlqG)*V#I[yL ,lPˆ $37^4pzt|/+Z_+I JGkUשzvAJ7 {mR_ֺn2Z#md8h=ōnscymlwuuąFt/wx l{mqoqؚ܂OUQ!P\).c)I*)M8 7jqd73_<4&T编b^$@EZSՙf+Q]$9Ç=QUV&kdYӻ~̶w@"bȫ 5+=4ZNOluaU\:6SW9b凝9~5r当{.+uwӻnҁ;qyKqҵ4p:aFPdԈ8GgEz.+'#ݑ/Cq.'vWŖ"fPfUOUUtSt *q*JŸ!Ƨ7']J$R FUGR) jhREfv ~C%rlVM2WZ]hr/95?"x;Ե hqMi."LEs)mYUJF9/ 2jNjdS Jh8 ֥ q*Bܸy>"=*K:o}UPښК+#$h=+9DMjH%4i6pB>h1L Bd"̒RKCF35IxY5fK_<8FRykot`5:&QI! eK\Z z#=ZS8ƒEfctH$ӈ\ZQH_BYUijYk=JM@ޅj4nܯ&qhζ7z(,rV K>߁|''bڐB O.wRV y|666(SPm6j13Sˣ~H2;и2UK#\^;P:n 4֝@R@ @bP}cFW~U1ȮXZ{5%wMS$SJݵzRT@Oi7)đZcUlWΞ84Tg,X+/vnt7&2]PelWV9=$*mM.NTm$.leғSZy]ZUf+U`@ @ }jq?کeӆ՟*H0ڞM 6OD6 ^M5`feJp11Žw%l\1@55Bt@ H @ @ "Wh44<2I^5% kN$ō䖒bpUm] f+nԾ{IF;kUtG֍A,+6uUƄVT$Gj> BFvq!kTy^0eUQ#etOJ(jM7:9Ehme9ʸzOvODrw" *V72ͬ&4|"UD:܋[lZ<corǵsY[gI\\ĩJ ^^jJvK(E}]R.U[nt4wqQJZVUAKMTjLax;n -`{ͥl{+뻇AnZhM pQkRc㼷B),yqmcv+?rfv3iRb1ͩ#\вh/` uH}iL=ϖ=~jCn>=8Mn'9_iׅu>:l<\F.yP|};n^x1@Y @ @>]3lqP"K)mHUElCLm@` VH{" Z w"!:G@Ȉ@ /!$!)NYa6BPzr2Y7\6bsUBA#Hp'an$Pj5'M Zr[ESV>O ]K{;?]]b"v#ޘqo[+˃q+58^tUB<<7ٳ-edBi\憴SŚUmZ﷙m_QܹWBщZSɟL=_驙oacMq'Qnyԍ 5>NTX:y25Y7 72K@7; 5P5ؕA%%Էc]k- Zg5H:՗$P$>JEews5FN4M(:dE+אZAJ+S.f"8@d)VӡÎ,Z%pS3cuS_ ,FBO8m2- #T,.jcӟs (;:I,F6QZ-q> 6tcC/g}/]C*[dxwo,h mN?%Ծ>_ Jp5`V,kZ έdY]Hg/R"}F 䔝D *=EDzǸ'RӵIkզ]LyIp5UXqy ˏdX9qTZѭĕz˙|LL\s$:> ]jSؒ>C/RKSؾ[:OBK'64c\.V}#kShC(3 i6X.v2;TMJMY OYU.ʷQG˔Vť,rՆr7QƠ]yg*-@@{,vP 5^oJnovM~4KtGz֙#Eo'm&{~M@HWk7&;魧((of|=Ϯx#t꺍} <o#қeѼmpNkxo&L#(^C@6eJÐ@ P ;\ MuaE۩tsUMŖN#3A0-9K @D1 @@@ -_#Z3$ʡor o\Eηc#]H ƀ V$WԔJ X%AQ Aj3Jp:Y /vn$Zg.Y-↾ >UL_H5c$$]x9cD6Z+%d0@.@! @ @ iQ  P2^O[t6:,y38%.h*45$xBjԢ#,VP:2H⡗,G7Ek\ܐY=`{=d{$V"M$v,j8Y4I4AUZ\UN,P5)(ܙ)83A]%\H \Fj!3+YPa+|5{u{m^Ct8 7nwhe>2[=h6,˭1,uӸM{HۊMjgҖVݧB8°yZ8;*huٜ ptȭqFZhHo zu߲S& &ǔL4Ln] ^+%! '!Z)3JG35{i5QG8G8D%/&)vZݤjiV4SGg*0FPQQQQ@ 0TԎ*RGwNɘ$ծ jX,rH+K*ӁQk]C8omIc|O3^PsXվ,xuj֤3Uu;MvD̹:DEets^i vRV!shܰ5h'Ce\N[aZZM8%i}EJo"dQ…JFv]HnIonJ"_31[ qxq4Oq^|1vvVƪy\u҅æ6ZZ ?Im\[Jў>f8~bn婧l&: jƼTuVՓ|9}70o:YV ĸ/vIm;XI"ױvc|/Z'wIEß3|{ƈӋo `2 Ѷ-Ɏ:4gnf=*Zl|ePJ+@"DfXeՠ #=jpӶsǣL&0 |3_!ð}H95d&]㒥MX^U2v%wc iNeAYֱ*^<;H+RS3&`f5Ōp2HZUdΫDZ0Tl! di#`Z!>b)_/rWfW T޳z8YSq浣ɽKI@#tU<|xkƾ߸FLW;N_bOq-;5i4r5!ѝUZޭ;~ݤijA b$ 4AZ()L@FQ~$01nc&[0kKh+NJhc-[kLϡI`QTD6fnkt7X4y̍(^a؋[}[V*48"SϢIqhSb0-iL}k3jMS@5%WQ G9.5.+9ZWxDT.HBAhȔcKPwol&fgJu8aR I(eqL$L%oV*H? @*@ 3Jۙ*p#۰Sg'Ƶ+orst@[=LJξ4s]@ UZ++aLh=oĬK2GE-Ŗ=N\U7o2s%v4  K#PP@"@@"jJ;\T!kY#BTDD@ @ %*FKZ3ŵp(@i ]NdxHիbe}S-_i, 3/GW }Jp ZcBض[cfgtE˞OcǙ)ٻ>RwE]@dObޖܤ8}+"H$n iB̨ҙDJL @$I<S֠TQI >׉AAkhweR̖} E13/cjՐ_i[M))+}[kj7^U/u2]-7X헚}t[CM+J.bQ,G;%aC~.kq:MhWM\&jmz$f`vV۬ vx1>Ɵg`vdwdKE3bs-tmn'ⷪv{UlH= ;CXZoXn\ԑ1Zbl3ٕ`ukOK۫9_N,hM29z#篭^gB뫕'@p |i. {^ɩRUr"&کju6Ś؜[n) 2SZs++X@ PP@@ @ P@ @ 2bMEi* ַu}m<Ψ{@U%;]er6$'W؇I[@),wcBvƥEkC߷@Xg F5ŤW6т[}O۶{v$_a|zn:؞QH0;nҎX2iԺ ӎ,jzakPT]*)V0L UgE Mk' -YjL0*z QERZ012+3i*A*Fv * }p6LUu8ꁅT5 u쐈'6}َGf ]>bO#MjG\b!M34m'v.Lr] IZ;Db8jF'֫&7H'Dd6 Bзk>̛? ݿc~#?i'8SV-'V{{~M㎴a^*,hi̩d־Q7;3A01JNZ&tD1QŅj|J߮=6UM]Li\?2999Xr/2 цZ6.:^v5"`=kg/T{LvZZ{Ŕ34e{ff/ ffG;sg'CU&)?qxm_:;H1J*gW-vۻR>Ňrx|)-0"6:j ^Cj uZK5}t?Y @ M1lfֈi N48J7| -juԢWa={+ ڏKyl;z6z4h84dJ*>ɶkw>I[Q1-$~Fv1<0rWي# {dwgnNW*g'nڜ:5wme3biJ55s[_/uCLm Qp6S)QTrQߑ* |z4sS9t3GNP 2}z(848 -Cp_=d'8}Az_wm(X싃>)8c.;k/3s>aD, Ω. +ZpuYtѱM# eƲ2YqpmDk=LűM 徥ͫlJ#'D.Lu5IP@ A3 Nj+IݩQPAi,88eJ*X/4ifv5*(\*VA˒E{xqI%Z”CJNRQ(oe8(7(nFK #Uk\m9(IQΡEy%M ӝ3>4??2TxjPZ$7FQ([Wr|^+nFۈZFՍ1mrz%]R mv\Z =׎/Ts8}f3̽&i ZegucnƘ.iTqv?ռ:NjP5})+ܢf$ 5Z&@ M.j2Xfz>F<ÑG;+d C';&`u n8׋|gvIиv',܈f\v,jNuc^J(f_*)3epk;InU@ (Z(JR@@({-~ i>T6q,3h{z27X9sZş>]*b(;Ύ{S}_4yOUu+V4ROU-wnbhkT%q0G ':*eB{MΌaWԱ^.H h53Ǥ誆SSArS  RJ1ū*?hT_hZ, vƂɃʭ(W{ۿ-ewɴuRPVH}cVK9oi[DgGQ^j]Q³wS,Ĵ͙͂q?ԩX^߉}V/[Z[4ڲvoߋ:PMj#LU"4d8a*9-~ndWv;mR|1ڋ/%~9*F jj8-``Iu}JڌIEp9"d_= v!}pGJ+IdV2䅪5ñAd(.!B/y.YKSЬJ*8s6/O*'H1 JMK>+mxRUx#8Kh WjXEݻϤ5ۙGDE@%͵קh6>F~tt$[}˽T~s+/eKCf5Ҿ1Ahq4 @ mut:kqZwN4}~Vh|(jϑV{=-;~ӰٮݭHo^~Z_KQ*ǘqpdyEVμU*ēw3-f֚zx*R͹96cvY_3%94[YԯRC7zJ $?osgoSn#'l5cyocJ.-û\E9kna*Z:K^#F^ֻͣ?ȱX_ݮ։TÒGHO4m:Ղ6挵 elJǡڵ/wW!TLѾߦwlA$ ѩc|DLԹ){Ur- 홀Ϋ>hn2XkVJ 29R*[޴g5a{NWX-'˲^sD״M>$YdZ5̡.y;2dL -:ԨXF@Ċb(rLh4N%I  *hi^@tSTlaZZ>mU \!'(-% ַWY’R]pLNcbqV&p V5ԡ2R%7gGLZn\Ə-hKwL#̧ξIڼkΥp.b!TN1*Fژe| .ZnoZ>՝'fM#YLA?c螇|r/Vœt8yVFyi09-N,Y_B5q"!&szsH g-!(OBH un S1U SLtߥV_sǴ}?R=w,sˊLI4EjFon2JwOnj0hTK*zXc]9~EZ˩lmnJ>1z|ZQ[4jaΝK=K`dlZ\aFW5ȣ"SZMU ̡5U\Vuf'08US \;PI^a஑ϒ@HLU_SJ=Ղy0UFЅ̯+ɔ x5 >Rׂ1"mk+3\dz$4#qY60%d}sU42a/ } Y㏯&@"Oн/MXB@r%%6 ,@< Phx <{n,-XWKO7> @@ km8. ,Wr;Y;v lr 8/=}n1Өڪq[ȹ|=zTPV_R KKx]Z RP@ @ NbqP/m; s$5z 77Wc@a,z"xeHF9qV$gILj`'l6yco 7w:1qdž,6 scA=WsTWm NUVeZvU+.͈ީ&)Lh#/ʁP2Ȧ58rj8DzF(fDqҔ5B/~ IS[4Z2$uVtFZ&s:I 4 sS&v*]0-*LZXDDF.=miL\BzXꩢ,>cUH#DF ` ;IŜ*^Љ U-+Ab9;7s`׍sDuM=s,ǿ<1]=݊t*\S~}Qh+m^rxf{,>7 kf2Xw2t!JXrK7jF9䶘 -bH$xϩUd1ɵh{pjՍQfX*Z)[(kL몫5hxIN+%&NɁSyB kCPaA!b ª) J58t v(EBU1'5 ֋Tj+dbv/JR7Jp]7>VT{ZW2Z(K[-h`glu;pe֨I]hJ4T2+z^1wE:~p๲:n=r෧.>a':I\{} rmK+{)53U쫡c|eݷ05yMs*iktNū1inxP=JI:s2d2E)*Jg6:Ӣܣm^[.rSsgr+mos29htzpbgⲫ[LϜw0ƭhUZ-M.[g4FP N,kKM0 lXG 帅In #Ɠk,܏Co/nӵ^ڧ'/ՖdAۂҠvīeeq!"OSVur.8jAlgVab[GpҨ gko$F%[K\@T^׉ȶ }Տ Y?#ع!o^ZxSlc1ƴWm-I\ Y @ T8N6sKNԒ}7I :&N hRHTuWNM\^GrA  ‹4`];y,@m^=cÇs9m]\>`(p`iXP|#/wos4@ teZ`Klq?]0ߡƍxg'>7yŏYg-+~#'i&htT <1[h򸼋ROot 7AZ.F;hM=7 bF0V˷9cK[QcŶH-l6#p.mT2啷zuUu1/o ܜ5qz`sem)CD :99b AZ3ޓ@ƓL3FRSiZǖ0Ըv,W2>ĕuY9WWbuAN5 ..or2^\CroJm<yE@Y);kW6rMNeny!T&3ë0UCl.,:ʔ^k>k䷈ۇWG<%w%P TZ %pPV®k&B8tRQ+J;B v '$ގL\-p+[:Z= kQb՞}-~V6K URyr#mX${p)e(icw˦giW^G/\k]ky jD5'6;|$NBܢ4OQMx;=jeMJeqs9!j3}+RRyb4<Ҏ>W6O qUKu:pJ;qW>Mc!N A.] +FAN1X[SĶ-I52hCQѵyd/!C[&GrEFT97#Zi!rݫ<ey$ج-b-U#&ibtSRh/ZkGV-q[n7\7nA]șyxȦhqP@@tMo# -噺i! @mʺe@1NJ'}]v;xjv[ŃWP @BzټG4e^ ;cL;5ms;tQE+{IhqPP19;hK:%A @UU @U GҖBpҹ3}`-NqFB"0MN=CViE'wJ"$$9BU,5XA*d'Nc92Zz^¡XsV֩agͳ# ۠FQ\U[C E%]cjh{$뙟 AFynܙolueƋ;.WIjh \1jz6B) Q/d) `0*C\uvpOS naű ČHUtq9d`>O즈G}t>;~Jm.Ao)Iɒh_r7cxvy!_1]ٞ[n8*XZ[)wU۬ueT^{{ݶmnB *ޥύ}[=Bf$Q~$*VyJɰ1vPqiZIɗĵyw+ooOcLgVկQnn{8Pw㷉x))ٸ}jA{nmBs$Msh׊8v[ , >nepTT #5='Lk8ҽAbYe:0 kݘ 뤝~՟WG6Jᩱ%EC[^ w~CSoc}Pqk+|0n|+NsK4 Ԭ#N_Rϴ,Z4G{ j1gxӏMKS 9*}jͤd>jmW$̍oOX]ko=.-w/0\ɜCd-WpV}Q.Y @ 7&/g٬˓۵S. Cfd_kŶQ]X:c؁\z*mhz~jVcSw{$p$i,uSjH]jNdu)RpUԔ=Bx䤣E;#k΀kgEy7H]s!+%y2zI0}w`)>WsnϠlNsK ks=]'d6fB=OW[8RieU:[ۆ)\X{'{<[W*s|0.he+^f{j:{ƤTV흅WRN\*sX281D KKopfJpUNM2dpc 9 E! {εYݛ]4{[ ( ;.(xn鍷%Lq\[5EF^ U|_Kkp#tƵ< ,D_5Zn'lFyI]Pu{Ռ @h{'f'!Y^8mj:Өbӑ,$8%pPoN 6 iNRN)#޷PkVNjv˙s]pRتC2eG6bBc ?CixsɍVi4kq\M.VJma#=O+ΛtH׆|%Z玛Օv҄.$hTmF-"Iĩ2( 42TP,oCV{.u!W!شv8ey-+h&c;@UvHָe)2)V2@Omq,GLN\T5&jYn€+7X;1gmƔ2:(8%3wy[cG: uXu6 )Aum'kksAҹݹv48;YUEq<ֆA*:HQSu(AZN C^莎É\zWR0 픦2]'"V⽡ʝMʒpmZ.9ҔO'WۂgB󯟑%[yx jkU=7-f^2WTjGw,eT*D*4ۭ]FגC{ \PP$ÚĠ s7Q6їy@@@ o?1+ tUedUny" 5&ք.cx mWW eTTTZWP TTTU mPPP@6jEkZ)W͏Wn:gX CAt5Ƥ)EQ_ `]LwXh\bl:غ?-G*}Wes7 DQ2_cJ^#qagʯcQFE_K?Wd=VQ+:.cxZuTT1_, :iuCdxJEzWeIzWi#g"~3hnƻuU>(wdƥVڌ^k?L 8w ;HtF4FV K~1kV/ gܯ^2oON*mJ,Z82F4jtb*Y[M6[:oH?kGzk>7mHiURvi{,:D_;dUҰlߊb`֊GfvWR XƽVZ*H HMo{g_<ݟIi3g]j1SQd $H$õȧ;VLJΎZ(9ue 2rɝA)h(m14ZXmӘu0Q{m׫ԖxTdLi9C]^,ޭУn^$`pL륥+NԂ[W%Z#%0gA`88Tdt'#\E'H{ ݙ6M3UHІ{U3d7,$4cCV0͑IfIYq4D5R t3e\@Z<{2Z=ښ8Vyղ啬,kZ#2ej6t] o֨AupZk#{*eNUݞܿ[C [ r[wr}V71 :qf{ [uN  UVE=MmhJf:q<QVu~?Q\ݱہ,W ؗl7*?$n&yUt8Y8` $/Mw-00HZtJ KmO.N尴Hđ*YwWoo%Ѡܴ9od'_5޹Y78x-Ja;f/ lmVӋ]♕2NUvmGE5N&lnθ6ϣbi}WaLi)=^O6ǥ<:}H{Z .=['WFVDhs J5Wfj  ^ $ b,D :EGj>={[K,"14~:ogw7WO',GƤA(>2vr 5$IҖҺ(='6{B3ggU]'d)}Aq#ylnѓJy}zM+I@@P4@Koi-˴ܪS\xV&5ҽϰ!VxRvuyTW#_G]Mu:=9m 1W&;9f*ڛCvı ]Pxp{jv|kRkͺ}5qgz!S7rC QM*QC2snX/B˓r϶%(wH8E_-E08|WS^O:iSjW{q6)_ Z@+DyjfI 6{PMkCiɓ"O<>F[d[{<;ΝZXϕ&en]`N{kZ$yV׷NC72Ү"^-Bi9CjkAD/mzX2" `UmhMYY#48hiQVFPkvATqKuN=XsA KbN! ( nk+i<|ݼ[ tz8j9z"ߑɮ  a-pφk-.:Xߨ1ՋKK.).sWelՂ{4 RPtqڻ\ RT@ @nimm~a~E߫>ƓQeP #(ê8iLOEܖ0tRxmtg0O@ @ z~up(Z1\l0co72pesYL+$'%mQQX6~'],<=k&)Z-K%w'G-1u5Ձ Q_JW9{'GI }v[>ov~sk }. ޢ`vEqc2Q 8EX5O9&Ji jcIK DxQ+m ԡv:!q84МgOkTK64͜VJ|:[']$2jfVA7g2M|1Vjt_"uUuIs,5s2$K[F3n=dsh{*^`f*\͛|UVqۋBG-}dlƵտ1bq&µX=L./IGs;[l9- 6zۢKOM=qu?ZC@/XҒ/Wя"4tp"OuzƾUJ ewh4@y44zj_M=V͎kH{Niuv#xkվ`XNC+tS'o_8X' "'{hOzƶ>QZ@ZܺFH|J5őɯ+Y @ hiܡ[rmjH/XĞ e14U ay"[ݽ0Ԋiጎ.sN 1efδy:.Ck-hw09 SÂwgbN2i=`I1E% Q)ݨը ”=%ܹ,ɼO%qiE''Mw=7)-1A'+ R4/93MB6k{fkC+kDzN>;lVw HyVD vy_3>Unv_XȐ35S UP%`@= P5!db,ܶFV+iVN97-nЬs55 ;>0Z7VozKig{n=niM.??gbsYjK`j-} c[Y7SWU㞙o[2 & ࡩ5 ]5OQe%dTեXwP]7飧nˤ"i14}tC+vouGJWI -5nχkUS\ 9z]L+K.lJn;\A7wvIk(K}B[IjJv7N5z'5@MN$?ʡOwiRP[6O=hU\ .|݌B@^hE^H~+)uj\ocVg+\Ktd.r]|m͞%c"X-%9΂kLV;;jl.{t~]5|k*}T )v6ܡd  6g=w O *(@ H2{]:W;hvq}=y|r+˯Z#sƖxCA NHJ)3'R>ҫkAчκݰhyrϬōQB#q֦mf*&>=9ӐDvm@ % &a"!]Fkb"Fmj[de>,&>W2{MUJ ,De`pĴf:몕$( #+Xӧ[rKA!s~-Anw+Ѷ [Bi[>E6'mp/>Q\meƟ5˵8pvV5l[%_RK@zRM:M ȹxVcZGS/!]Woiylm1z8.Rxvud*" %Yy\'ZjQ?_JwgMJL :鉷ՂP3uW;NqX5Ф֎!C#Ds@4Udan'؀퉻{e#j٭WO ?:;RJ(ZA#u xE2UJ yc@@%  D (D@@6 JX oCBYvu=+'d= b\̐nёp~9uࢴ8 D@Q ;'j7eV̼Ͼ:D"C3J⬑ίΠk(g' P*O%݉B>O2+Zˢ@ @ ki36P׳-YZ)ͺ*Ʈ cџA~]4$ںϞmdhsQ$ڰmm<&  Xdck*oCю*8W_mK9q] ϩhjp*G-´=˟5%Io!-8dMۀ|Qo1-9+UɞZRй:NFRny>^  8ؒ Sz"hOبtWD28ӹMpevpRab:nH "9K5"ڠ6P`rBBD Y3 ێMK[k_)d+Q^Dge4֫Si5ШAOh[8'4z]j2ʹm;zQq.#tol2MkZWDxꖲ. Ym4QTM>O:x/8WТ a}$K.^Z \Ya}52Ylyej@4ΈLqsbk/QQ'(ɾJԯmyj+NfaXM̷ڼ#r}l{\ULn<969#7O4-4,~u;An i$q[sr^ pmF0;V~;?-k4727L֙mDz[D“4׸%CϳZߗg|X .Y.h ֳvf>>n%%Y @ YBPt.qPk;9c$^Y*/K,܃S;N ׫nNnkh+MUrZ}>2ėTuq~+ Úu?NbUG6\NxqYZۺj$Ja(Xܲ9x֋qv6+]J Ptng\ ϵ >[y!P7^W>" ^{jH7X7q55eqo wb IPv|0:g*⡸-J;Fۣ2L9vSx,eߦӏY/o/Z$ *@@*L'_ UKV7ԗ]\)Ru`9-IH \3ک*$}Lwtr|}3ԫZx 3t &s~1%=Fι{pŠʳ?݃Zi-idcE3ѵi|x@ϰZɿۊĈoi1q*Ԯշ;NIS趾 .j\@ @ DsKi=;Ux&@Xt{Uͮzmn:oI+ujX=`[OSgn0W =XoE g&׳_QZ@D T  pfق󲨱 'dbzOjctpQYs8-jq_k91-}̭c#IQU. 2VpJeyٸziA׻1I@@ @"@ ClދhhkZUrfX[Le84S]0΄ U3n~ZK%7Xn&oGoOz]/q_w]kM-3/qqŽVNNdk+]cP;Ǚ:;- &P^}Eb:jI,R74^f# {m@m86^sb$ױHeY]# 6*ĠQ :I9(i+%6_! ҁ^I5#?CEhH'b\ۜ"¡ I\1RUᒂȦB^qL_Ao#g  %%rY [AwJEI*p&ͪsxy(K8ǽ݅L{ufsgxXƏʶXR<{DOmD\':%Z T':H.v +j\֎ 9v*ݻijwvXƵq:oU)aӟ $.cM4Eq[S6޴mqqa]+|14f bKA-hhV[+|Һnj퍭{K8K]#IxfH.\_ KCEp=ݴW6'by:OnEx+*o\5xѾ25r+ Kx^*<2j<9r"$e0ƒ@(c[;/GZƷ8|pU۬,ctlaIlYiiJ#=bȂ51aڭUO`W2=kn+unF^=Cph&0a"!Y @*" TpQ&f Д"݋Y̸0\>p$7i.TrՎT^tUc W(;*+E's1yk4J(,pҲҮͿ FgQD,_hZ{ܞWQ[o8w#}|`(}5m:.F#*~=L>]I}| ZֻO?>w8     H:*tpQq˗JK[K :It$F&i@)(=q@dn0E=Z[Dǎ(î".EEMPUI;ͷqj6yyO4?4D@ <"YơP1#vPYHC^#Xbz:JNqu:"@I-^)jNKڎ~$jJP *D@+25@"JWڹp}TY;ۛ{R z'Dnr Zvd}w=ݫWe9wA']˿%A  @ ݅Jha\q=齶jūVLPI4BP2ȡ/^u䤚jnjڨ[PnCjRF;GS| ӹ1iJǏnm|d-(T @@"@ wvo>mhvq2լ"Mt7t(*1j4{}S5:Aev1pLgU[=^mhf5õ8rYWY3ZjwN@IڱF=OTMGs\hAZr>;*APlv{)Y˗ S s*D`hqsexOfَ`ַolf\I"ƌf8E,[Sz0lqHM@ٶ]d*a¿ؙ2'yJC !`0.՟Uh49Õ3M(H>{mG1F/EXmM} %nN. UG9lZ絵ԍ<zEc9\;bskIn[Zs `}N|Vɏo>g {3YƐwqW}exws4kZقҩ|,{~Қ>]3lsP]/vdłIhZpNGgL+Sb^C[+S)$ym$,{pUi>lnkcEOx+5+Q+\u'j}&j[N\ju:05p[%nAfU9=-6gibۤBk^eƽ4MBEq$5 45$S#BgnwaMډ#-k0+%yrzaW26:jhPPQ&%)fAn.g2Ku`lzܞFwo9Y]FꦃOZ>?)I\v2pΪh m{hv+@GµY&O R8v!2" jdt&Vm3m[/̒Q+U^llB -n$f Ly7^H8JW~UxCP*iz ٢~M}*-;-OE+Vv5Q\av bU+U62Wk۩<@Z)l\_ ]}ծ5y 88:L"ػ걬۳@b ,[6b,DڸNSd{ "jEq I9%OȿFˏŠՖT%}EiGQFԷ{$ӵnyD @ @ Y'JpKcBUv[$rVҽJZ'ATD[kq;}ڬ`m-l` P4w5Q4/a| 1_CZ\Dإm*@5#G@۾v' 9R{.")~/$7˝`sLau\rXIk0p-:\ $eՑYeR>U=r{/MWyBD @ |>vWrkZ7Gi M[=+3mu, lMkQ|KޕDQuZ B@ @ ;~г5c.ztM$Xuk2u<ڃZ)սdR_YWX &jqWUHk_I *[94j#YiI0@ @ .WP[H]s1P 0>Kվ_-1SyĴPW9,eԊPJYqZگgpٞ*ў :V+=Q>|nd-:Z}9*b}]H-> $9D*55RѴSQĊcPzUMR:U#k  UpN*d iՒ98] ($/`wjOF#nd>dH#jk˵)lӣlmsϊ2ѷ(+8-k:K 59Qfv' a.5#еŝ9u;P5"ʶRN*4-_FTV= NaT}(WD*@\8bܱEI!T8\3*$ֵ`SRQAW֋YkZg1fNY;fctƃp(ed&}X]QzJۿ|og)L:A=$GnhnIOVTǵJ{,vDžW_)n9Ah!3iJmPrr/iOݢaqɁwUȞk|>c%ly@̡M+ª$$R#('% $ilI*]:Zt 8ԕL ']GlY{ ࢹU"ٽث@] d0IY @Z*YXrmւPEKq˵szԲadupIv*fOj7Dy*}tmj= ii+?ncpnZ4S+Y`OriOηl6@2^Y^:XnԍѺH@rmq:'#HqhxZdǓ;MkMiQ 9+2ȩNߨʺuk oWfZ>==i%7lRPjiĪC^G6ҭe0Q"ũb&NhC1 aT h(Zvp)2任%ѿWlI FÕRenܶR5Ec@Kq/O<> ^~;@P fӒ^F&{l9aRV̪zomeUEm2FTPeby|Uܻ:<@go$J [zqk(eɱNdXcPrnƿt9,7R<*5&ɷ15I @+Z\CF$-]msڷ\r5TպxƦȨs#xw| ,=dW1~FyZp@mW7:b͖{| [7-xd`b`V[})* @ @ @  @ o}0$ة{RΞ?Euni] 44VNu3ˍ㳫)2$k#[)q#Pm+iSj&m1LN.`hjE};Rjv7,dZͶ~k+qVtO.fkm򨶎F ׮vu[4>&pQBˋ4Ѿ,C|$;Sӯump{C.VVZ]r2' ʊSj8PG1J2m s+kSCJffK=dޥ߆ڊjgKB9#.Ÿ;WD%)jCH I(hƇ]t5h9jHߨ % J=桖Hxj @ƒTVs. ^^0bգY!&XWݥjNvL;YuEe}1ۃ .QE['W6 x`6tUcmjyTxc6m*+Ǜh: B^:@pNU~o.Ҭ4Dm\HPnq#حgkCCO|xb>."HϲHjr]k)(+`iڄ@<p/(j :-Z|Ż :+Y>ؗ>~RwuXόSr#Jƕ9-m!iRH;3V:վ綢A(P:G+hf̂Yҝ9Aۥt?5JB =J7)w kj~C/աxkv>`B$8Wn)YjX`wtUiZիW vZZEQG%Y HBZ!)H@45BSܥhp=ˡ 2Iq*ʩ[-Սdg*8K\〮*:mtD e b¢W&G<̥KZG5=*RYݟ\um rφc%jI-n[ 5qJSiѢIhqD-&7VeJ;y=;K_׽GV M YnJAAq45v(F)(mkA`ij;(ąI >BR{ơ}YGexYm%5{Z_Zr|tZZ>/l-5RkmQ $ @gc:%w^%һSZJEB|>2ZH $AJky-khWҡ(4ɓ{U*Lkۍkqad j&ӵld0hi^L@ @8i$pBe@ @ >[z>>g~g(eJZ0@;d޺ f]HX /懾9Ši@r?SKu;͜)tH$>i@糧vU@Fo(oJv=. df&:+~*V1%3@xC. 8PV5O3O~fR dg!4곩&VV0x V~&vycy6GXƮgѵ9= zޥv sC`DuN 7#T@ @ @ @  [npԥB+ܦ kC5`O4r qt ;[uitkܷ<5.W+!<)pY޲uszvn%b74 &CȓZpzFݿQ)iuc7NGnⷎjN3Xm3oiuW\۬Ajχɻ!ksfe6pOp{a3gvɏpb-V498BRI旓S7m" CRdI5ӚB094;S$jL+hrՆ7*WMdڸ~Rks#Qn/NR7k_OSm۴')<@8LqMH /nW{tthoźهaxmZ7ZZZUu'N>C!ww;ӸDˇktU)]sY{?3Y  B$ݦT6^YWk/vW]ĸ㡸K]rm&`1΋>ڠT7$$T$@ 7\FhsN*Rlpمw\\\.lU8P]Jf%J]bMuKޫ4V{n׹e4>p$̬=U{L67 < B{%ӎȄ[~阡I+5W<370OR]uM=9]|Ú{ych<>^.N~VN55Ԗ[ZcC÷r5&ݟm$5PWoVrKZi?v﨩$Cԭhr$=g˒%&%խ2]kYn/wޫK+- y8*Us֒sXB(Q&rVܡaW<(rd 0@ %}ԏ8Iv&UW %ַK[E ה-6RFXKm_m].[ewnn-1(oQ5p?ַgM\xW-Ue j:$`C\aOJ< t cH5QZw( ",lnkJbsV =ݨsOn#k C} [ړT1LAUDtꩯe@ JS7M1ߴUvOZ;sw__Sj,|m'O#W\Sݾa5I@@ @.M\2B`D  4%Os$2HbZ'$JL @Hfq`A/߀]H"UE-m|Ceм hBC50b*&m|U B!@  đ8e ήQ55B$ii"(NKڎT RP@ nؤ[]=̬~kj-!-l-P$nDht@65®^Z}{kkDŐFtwlWdSm"OJg~"F{X qO=t%HuLu22tcA:O_"zvf &&$rS"H&[dv%&DܹlaKGآ +oHDR r"(D$W P!x"*9:r]RxH\$@PmZknwy>t A:X8= {uz!ny'Y B5BNI  3B`@*h;pkNugz;8-4NyŤ`m+CE^Z BA BcZULܦ(.6Y[L4h̩JJZsq E*xCVsi~J8(R+Vp67hڹLk+I;LӢ>isѕ7-qhzޙZy\oDV۔,}K<6Fkcwsi[#90˵nEk]휤YH>KK80]>Rfۻ6\#PMK 6o)(jы (g-ZIwJNr.m^ڳhAnL cy_Twrݥ](9ww/Q`qF)( c!'Z۳\:#ݤрs9)ƜrV=@H+J r!D+WϻEMD VJYߓR>(r[Ǵ֐qBEuci~Z2S[18(6M_>ҮVm9_[IbЛ\3%MScKEEsV0Dc ;T#Kt^)l@I*J%.%<50H8z"HCxj*;BqOP]|$jJP@iwUCpYQI"tgKi"UG%A ZTSJ@4 }9'N{>AEp*nGpU`@5ܷ$\Z(+ء(5ɖ5Bs.% Ж5cNssku~ >z֔UJf 0]u q@69F:_E p,n}kSP/bn$IAr6=@y.~F>臄~9a`hIԓS lsCJy,@x'O6[m627xX4 ˋXGn0F5USxRT܌m1,m\]hxܞ;WK[x%V״-Uyjx%c!ZF A0@>H_ [\EE*9/j:Cta4 ]u-<8GhRuc¯m$3dis ɻCnG [<@ i a.F*6^*)JJ @ @ @ (@ Gf( 5͡PLnt"Rf]1%Ze*RN9v-˱m;|:KAh?QY;)ɂSz 3ZڸXg3nh9ZXtUnce1ӸO{vz2#SXԐuS *|1-R.۶Sr ;npsMFCJD V 0"'fT6% &h۶9=w+¹*Pk2uI8Ñ5#psCEV-*\%3O?cVV\A˗'|h`फW7> ʳ:v|Dm̩n G}fmq:p+:ox}[KgTړc!Ȋ¹(HѸd2HiBH\Zb(N?،7Uko zp93uGpKgN?b;9>f */cM[USt#ǼNJ  A49!2"I+X?v}"{%#RPb-˝UӤOoW?|;'PBf77>-(Wp}&w۔r0<6a,|&aV#t{ZZvU ;6o>ZlGTekYgܦSѶ]-8 j\n^3KY r@ ;[4U-Y:qgx_QY\*TIuFԮ.VBh\F$J+8k} 0NY/6YquLt @ j=JSs):cA- ]k >{'d]<1uT|Խ_{dg᠊ּVƪpry-vRݻL;d\C2%07 Y@pn59b^;ϟ;_ҳ)e׬Lu.էAn -7n}ޙͽ9%q R9V5`{[}6k<{Sk*+=7w-ljAk\G1\ZOs,*sh`p$b>< Q ~Qa`ɵ:!_4FD NϤusKZ#iqs(n cž^jݩ]XRJӤl ^ #؍jwq^Dp#%%Vi VνTl[ M `;rWVth;7^u8ԫQ@ CgV:EM/GilqRʼnqST[eg_[~G 7@DCJ)hq@  @kz,br($,]fڭN1%[[ԟ sw-˵J]m͞ถ7rۤ;ȅBۧq @ @@<27czR 4W@!.X>O`ϨH =Ww7&$ܙvPQtes0#@iu/V\c\\#h>w˲E 5.W-_Qn6H hkd>8/9j}I&d^9BkCtVǏH-|fkѢ@ܰΚ!5;'x6i O?2ْ^թƔqn`vAやLnء|L`#pVwpE0*J%YhrTUU˝J*qc3 jdRܚF0NE,6иv gz*u#xlD0edX69cVlBl'%ĎX?WS]@[3miU Zmn_H=ys[iKo1I@@ @ @ @ D46v!5Ԛ{%mFMr*@ =HAe9|дhWe9yȓz 8D{J<{ufc=mlXY驢֖{qTI9 b}κ4*+شqyе.sHP۸VV&.P&InB} %;m,^*7ZT:qtxVTLz׵-]:JR829 GiFqӍL8e\x`r)Z%itT7mc|ODf= ΔW+O13KiU;`.ж8ee'{v[xYAnB~Up*LA&[n=e[RYJw6es8cKJL mG=SIʪJ*#WS3lΚJqr6j>/)]Xa &R@${'S]n|!RdcsM AJqY_+%9Y ^[uWIm$D*lLW_]bLZ=~fUi-͡OբI7{R,[Y @ &>#AӵA5== Ma=o6%}Z($T$@{)k@25PIX ]xG{u3ZH4­u6vG 彥WR-kUnISO!ƇWgjιgNoikh۶41ǽsZ5q.teu%MSS+E*+uJqie_NY-΍5ZP_Pv{[m,r^BXmWvK vV;qlWf^~y#M<6jv_ Į}fU:䮎;-u5kOq{@m^lš2 78Tn.&ρr^1%tCu+.Mv6L Q+JopoE`u*p⢮MsNNC B@ft7][48ӷԔ۩nN GMUƾcS9Gyu:-D:r8eU|ŖŃ{V{ΕƏ+5:Gi6DžW}KØրMnmvOuOpk`-+#/.>E"@ @h1%L @ FOr} Ck"JָaӘn)l''7&kBYGH$(@ @  @v\-Z;8F;\V:y^Xom=zkt1cC-3ܾS<= ݵEv0& 2I*E5epp4wrmފ [H XAHù,+"uS*9!ќ# cPN5=|v<MVs#ܭdu/SS[kSk.m#.9O3"R?*SMݽ,x#<= >Үgr]s| G=5>cW/򼮿km|7 eAf>ϓ(xǖη]0^}ө$QHO&WWWuL[cz{}oZC@l0{;-e q+x{/I6h)RHTNVAAjƮ?E!1V2z ]~2VrsnJYqZ&*?0]A\}+p]&RA Lbq ի6FXC Hj1h=i2:Mr3Z!Rd_,i:[Ϋ=S8Em Iϝh{>vGqeF'sLwug5aY @ Fda \ {Bs}س6Fv.SZ!I$@VZ<2$cشre[ie3B;op`k. fNs;#ƹM(>%ķ{Xdhs{ uIZ45tRFԱag'22*F"SȶM) BϺZB@bPܺs%āxpԺQ#еqc DVU]ze),EC;F?C $Wz97WQBb.lHSJSM,hz7K츋IF`{irR4~"{sMHK_Ş#+fk(ū%+ 1+iB8m}gBKKZG{ݿčKiY#MGh*zMsGԕ%mgg,9#;]\iUV4^j+]8.@▘ЌnZ6ii q2E7۱h5#tnk\pv+።iP Kh*i %W%$JՈ;=.#65KAq0Ry6i]w5_iGq5yZס2OC!@()|Hԙ@ - qBZ@F*jkKvccDM5mIʫ,tz:bOЭF{,U ~5$n$]*.N=vAe dò*L7xZ#DdmymhiU%@ nN@"|t*+vgVBN8qUm?lNxHӨB {{)tWd|%vIqhUvH3ǚ?gI ̂XGkFWi#k\} b&k^Z4(3,z T %\8ڧGbn3к9|…m:GI|c /.OB6=ޤ@#5u5oGtsK Mh9Je:f>\ $ ?/7'&O kq>n^0I%`!u?QMI00<[@y{qF| p믇VK3c+J\}Ar$cHTIGWlQD+窷Jv W-X'EJneZkJԾކ2Β6(  kuI -垧થzx6Y[솸+|ory,6_EK I^[n8aUd1[#u5b6 ag1TLCX;3ԯ/3._/<;KJW5J:ܻnOmGbM#~FYdzLnoooÖC+?j#Ƶ92cϣ\Hg֩mQJ^[F4w06VWyzȝYdƒMLm>۹T6?bۙ/4q{+#˗t˄@Tݿ_VHor5˜id}J۩O+USwF؆! 6YI" Hm.j,qH: 썥!rVIjdp;>.$[n_3/{uq#\]GoPogۿo|aTCJքp`v}! ;SĨ}Q4vM{yH*K#h:q$)=޿M5:+Ȉ@f|.FK\2!CRZurHC󋋻{k6m؉prG4r!$SRf܂ {K9.*W7ر<$/ii-9E&MAt5G'.LQ{bP۾v_kʣ2gVn1IBĻ|D.#u(}*ɸ7 Vvخ`  RIn w$[+|UsՎtn.j(iv BR!V%8@ Gq$U:5&jn0S*J7"!%yVVe|l~ͽ1Q&s.:feXGC}"V^ST0p8 dV,,49^Lc3o#HS1#mG]_Oo8 և@|li m.]k+frPԚYue2;7M;9⤨ Phjs˩RMhZʭ-E\ɓG#L!陞|N ojH짶]p_5;x,[[; nɆg Zr@Y/pE JLdx0GS{U~u I?rq58Q%g1M\ףocP|-pw.5@_QZM+Yj8g+` =/hZ~$_Uvӌ7:uh@Mۼ}iciitrSnݰCC(xqx#/€ś}gl.l "c <.ٷ]]2 ,x:$~+Hr&uO1뫫xu 6a毳@t.mZVqmy4 vT@xԾK-h|.#-s_.} ̹8=m\|~n!O$܂Swv P`qvIQmv@S8TFVj6#[[Hixp(_0% @ V%@a@Xu>o*7yՒnߥ v (oi:<}њynDfStuEdƴJx[>4,YGy+n *6W$紌EAQ0݈mq4 f"Nn4dP ~g }w'7$8Pm5?'ۋ&5nח8G4Qڮl/hkY,/kpjJ{gŧ/\K %k$?rN[KR|Rh#$2Tδ_iZZt\YRCqf $нD| \ Jl1Fm*:2bUjۼI]/i  Z\h1% JGD-wa ֣Ht4'V B88F{ =Ema%7S٩FV$%8.J# 8 ^oʩG(Smxo_QW8t)Fno4WɚeCGxY @+M4#BSkT!5B^<9 B^','{^9KI"iBdlVm嵲41<=ԸmOË+%E+R+<|wkP[A\bo{<ÞՋ t{kr$:Gؔ5kj܌RPwך 7f(/kB~QJdd qQyZu !Wn5-שmb1י{nr}E_,@lщXcw‡֥8WP6a5âZt;'󮜷VZ7 lYmOt+w:Jzek(GC5Ԋ-oO?Z7>}C ƹfcOS\-UNsrn/ ԺE]M?Es,-qS.ZĦK1X^h 2.:b[)ӷ.*Fr[J|`8.Zvi|íˉ`F>ίZh'Wi>W{oPm}7k9}W*W1mIƋKi7寈YY۵QWyg}NvX2 5b!>sHXM!n (`TA#˚$-g.z BV D4P燇JL˹}S1c#ny)~b2)i:݈hٽt?!VX$̸?UYy9#f\ }ʶ%9ju℁WY行@#I&-RT@  <(JpmyrK_Jˍۡ/%]/rI,bs‹zGȺ]$sP* )õ ! Iծ_F%oB\=˚3qoOt;8[ZтUI"9qq-ǷJeoeUKFXFxQ6pFN'fz&dn[=M'6pP6vGvm $N;`{kmӤpcM\[`y$gqG5ǘ?z~_ulelrj18O({G=![5s n?2#kGlsE$'F0{ؠ9KyFm bd{h;wU\ɽU6o[w{b"pn1|걁Y ۗR6:4hgO3'!E7Qov[H8ECG .X=sd2CAU4庤Rv}W~~S/pks&t:Scw ]\1T@*Wi>=R;ҝ7,8E7ϺtkEb/Ď9K\2!KRRur&uamA>1 /F,D1.%5'JX!f-`3VuoMl?b>_;q7Gw 4*J@ @9@ wF @UuL"Pn{|!Њv,3:Ԕ~r=)ESѝR_oxXѯl"BG]&zi7![  z+65ߤ 96Q?P5BÏi,=XTGkTm4Y9 wzRe?W`"Kz;RfTnaV%G79-Dzs̞5RvGp_ pqgT5)yIT7Z~}$i#x 0?ֽuJrfv}#.̷/~t8UkX:2yOUV9{bU4 ں[mnDE˜Iޱ]}Ǟ=gow{Y @ր MkPY OVLJJҗuO ch50\{a#T7WF+Mg?d;jc-5QP *@;T){Blu%$s</BF|wmmGoy;E(8o}I c]ƙC R'_ gscbx9y4UVu:9 UEE5s[<#6kB{67]C|R8V7/k{yKBFGɣT  {[isZvaUY9fR9,>s1n?4uZR In_vW{]wtG<6ʧ#}O&߸gʹ.s_*~`ut<>Y{_o)u4>v:=.®|)vuARꑘYG!luCp޵KY8jgk}1~#XA¿yaQϓ'ho[l4)W 2=ǡ,u͆ 4\h1Z>)30C1R<;]'̖ `;NӈPԚS%0DJLxdbq-Z8C @X̗@%…VO,rI59c&@KiTIho#-#1K%F!{crڍ-[[D*L $gLCI JIŮ8UVF-un׵k{[I_]|ewI]{uW /!$%)p7FNJ9wN ^ۦfhqh'̓/]>cF;]6Rڦ/b۲M~ !ʧTES¾u+Jiv?)XW~Sts[>փ҅P1 ؚZVr :wSӈfTW9YHYrG$bI5b+G P๸?W?4%}Z@«JЩGڀ%hrDWG-=Fr*\ɥ[VG>[${LPM8JGSriS5lyT1@ 5( @((J7+6U< :[=.|XV+p0>Ϋ{#)Oz1Z,'z#&KY {.TNL!V1@znoNZߋPaaj<2f?n Um ڀj㭄hu~H֌y%ǀ w8ɥGP-~[]w!ԬF>PʤK3mkEh\ @p6QuFk^H˗*(tЀ{-;1y{ԷSAtZ2i[>/i[wۧ:Wwۦ&Y]q+dyX1Ҁw͢z7eΐ['k@O5CѶtᛐ hvTavˤcd2My$sqY< 3~崶"yn7ΥmCA)ѵ=Bfpp &%CTe{Q?]סwZ)6f-4@ ,_U-]83.PR*RS%[KX`䖆1LL[U%A  זЎ! N:@ P 4%)48 D:DNY"Rf @+\ZjB Qn1HgM9Y+qn=O{M?Գx_p~d.EZIx-YmV<lw:T_d#|Ɵi..ŘӰ~}.Vd|ws09eb][DfQRs Ov4uW$7Tj}|Z"Bnł=438rpZHԙZ@!E8  ^y'6SWP 0(J y^)1$.Xi'qbڑ17Im$GRN]HgM2Vͯqg}/h=hϱgJ;yUldyƧֽ[#P@ M/*J?27%XVFbxW-9=5ƒ}l-D?+wKԊrۮC@=(Y9NW̗*SjII~nK_bM[Hd8+}ՒS'R[o7%ݠ2CEcɋV̂fG"e7nҼoWR[9;,:Y}r-ڮ-cϼnӈ}սӍ3y?x $`8-& '{ µNJM趑@@KklZBjA7_6;qZ;8CU /x !-jmXvh~X⨮kV#سmyփڨE߉[h $E#^懀kT2-n+jb-:dkM`DEoN7FfN1-5)Pk/ee5wכw-R UOoYOgY @  D$A^A-T;3LoU߸~~ii>c@\yK76m.S  /4QÓ G_=G<@؛p<{Z/5j'HQWctGу]JwAk F D5 ;-ىikq Zaùc w9jeZ*Gȶ{7g]=$^ۋ]ၪmhm2YLjZ2dw9<=Ftš;Ui=OC5mjo;Frs'Kٙ`ڿWE kK7Q]צE<&-&[84JŞWV0 e *G72"֑5Bk2 \uJ:mkJS\.u9^Wb>jX%A1̥A0Co2@iJjVNhiο"&@wUb%)JX?uK$JZ7 uMhdVN)wOkfS":Vp̼K⪵6*678 f'"gG{}sGIi5p>;WsTHc{[A ֧'Wmm)hSJ{N*4.H𕥁$ii""rE饖5% cUa|UP]D}l/s^"h8%PT{$st! ĩ$%bTJE2Zp! jB@"@ (@ S+?7n63WCq@{6lW泝Y4‭oY6͔P/mo++@ $g@$f(jM1]Q/#jA4WBOWkKV1JDB CmP[4< 2i>ín^h[GN[㴣X)-0@ cBjq.58xT^eyQ\@ EBGvGTtLȽ:2}@OkہY_#[I}i7jƎqXlOxOof֣GȌ#[f(@PÇ*gUcZh\ \ݫU9G###_L4Pѥnzwcȭ԰ (V`SrԊ;[xeGS@qmk[QNd^okX`ʂRh&QNZ(F]v'e 0c#oUfHy{*-ir5 h qJLN-u},w9nn}r`~4ҼKҒ@M,g'54wrmB63+TYd̻on+ _XYv×k5oyXE=(1gmJPi>Ui]+/fmҾƮ+]Ryx.m M۪ec˟&a[:3W 7\Qp4^GZk;lf-p->ޓ_! L6NJڶc3q{EPy=/wmrg0"*2ge^ MK P!7Loc֯C,#p{siFl]>C,P\%2c @BSho.[Wzj'Ou_;al1)ro|jkgu 3ku;վwwZhr ѻ\d8U\3 5 ɞ}/fӮ\ ^\[Z4TU+Sy|CgW()-KjԌSwSr-)_=Dtj|ŶxIn6[: 9w\Tim=9)uiyꛓ"գ؂ @1 UT6si;ZDžkW?~L Ӵ_i#u$th@<)5ƍ)>(13-Zˇ4ik]URWA@ ءX 1$ jI*kb@kKkEI4 JE'Bڮ* .5IIY[$P\Sz)9wq$h&hȝՌ@+]4ǹ nDB.5& nA@iZSܰ>2QZjelhz7Ȧh`AZ FPP7榆HnYW̾To N o*F浞1ٳZZ~9[;hk`jj||vmXȭ&65"k&p1Ę^L Ŀ5wn 84 İ^ʦl}k( dsF8 D T 6v]7GpʗņJ7\xW[ʝttb$;emB5% b- wj ^zhTZN(D{T$ Br_-- T@Qfmcq' k:q7-I >BI|ۧ=c 6ˊ0#cAYl-nu}7aەM88Lf _x-u[@wՄL8s򱽯ܮ,v]5ŴtxFln us䮐u>Z(_w$juIs3Ӧ,h}k rjpA<=K%Yzn l#ZHjk{b(;s]遠OW*r /s4]' #A{?<4my<(LYUGTV0tt!-@ \*; ank3N q@[隚tZ]Oua[]akKnV,;yI";e@^*(2u*^ڿŐY.sR#d4ĒR W.|Yh#hӏ-hҚimS@K*=Wg-M:'TfT}U/Iձoh68iWV\sp9v?6kdٺK6Gj%,;Շu{'טu{]n͵w.sb:R=gF|xen%ͮy`sW"WNRlma@澙aW}oI8 yԋWSF.ZNU:_TXxiPyHUk9-nda{^qMt<b[}Cme!ђhILy-8[m  7G?skȢO9ŎB p,qG0U=,\)DkYmd@0@ 1KcU蛬3PqEq,B\}9*+]  cKEMAZLkGnKVZ9p!љP_ $ϹEUCqSKb 'xyWj1[6nj+@[Kk%ծTNx=^T ,siX4=:5* ҷ_0^ݺWL"eYِL{8-5@H5@ͨi  8)" \(4 SB[B\h1% JA/ms%ီ+,C]6sĐ湫I//eE{fZ?Zv5ī#3`\iRh> jsI D i'!BlL8(n ҎUyK` 0pc\S7_ ܙJ@(ƃPԽ!p`8,kYgC)푾fE{I\JxDr: +c]cS˴om2xC6.y$VV61kl Uq"_iRz:'HLv:I. P(VpS$*| 6.%vaZlp`K簯3ǖښY$j[ݍlڇ1k}JPP$ii=֫UYen?:4DI RO–MNUƊ;omH  b؜вjF!P@*@"@ {<"#OaYS.t}&7-bItP2j*GE%]lEkmkȫZ|Om<:|n-RK^&R gţt7{ X2#@;oy v}.H T\ҀK͖ɥ'4H%楯bo-Wwq-m:jt]3o[hRƏ'P^v]M[4,GۃiʈGW<O/g-;m s`"s}^,4ͳx$;cs\s/.@X@p%,鮶;-B'4-6yZٕ֒M2rpKmq@%mӰoZj!̃|k5͙/6m1ډqÓ tmtյݜՇx>9Y^_$սiٮl-blqsb,{1x]jZTߵm8# -8kV=m#m0[ହf?_˘uT(p{\"%7#Ik&VAM3= pl-^F@j>i&lA0'$-k.@QnDB@F Cp^wW1Uʒi@)-N3vՇir=/%x&7 xNĔT  ,`wi7abײ (B_*SUև!m6#{DžU6rl;n6Oi4:jr>Zq/tn:-HnT)\fO:ŷMDs jԯVY:2%(Ӎ9=bFv|~D՚}dа}ufk#{u9TO+OgX;exʵuZt^ n@18i\;U/{+۠s1ӻ_Z&CR¸»wZ7%r'J{TR@s IU9log%KrӖ}JNuA-?*ȵָw.E''ZlUeʸwD_N] z]^"6m%*/׉Sjy7#j$Ҧþ6E[kH٣4sMBRscV]P/$j(UtEfkn--inоn5$*jtֿhsc$e o5Ԫ묝5YQجsGg42sCFk-=Q ̗mcnAUU''ETop]KpšK)jLԘ~/0@Impy8d4Ǒ{R[Ț׃M.**_-Rz="]_tMt UHdlWV0AA$ pmmY dB5 ?}F&(Z4Tm|8I4qU驶:={EC)SS%UM($0#b:FYd4S^GW}/w4'[$Uƒ},py5ᚃk\]]gV_K C)W~{TlE<5wG=w/p52ǚ I;V7ZZTA,}:(ǹJy}ID3!$h:si8Z-¶g|_ddW}Oky맊sߘku6օRM(P$ FwAAmGogaz|v`w:v蛗$CC.Uit>s<-]ILHcB.{Y5."S)%K=!7-747G)jm3֧ "ecǸ qpU{%L6 {{c45kLkWg 9Lt_/ Y|f-Tee[{۽ R[ +& Vo ]X@ $e~Q،Bҗ$I Ͱsqd|)+ vz>ڐ;A;S_ZzɼǙLf?Ut)03uxOeWD9N4/@ݭ 0 FT${ tkJ2i9kr#RPX`h :؅ݔD~0 - nE Z'CF+'[۳q@\bhvò5ZsݮG*bM zO3&]-驜֗4Tũ)"A!z{A#4JcIݗ%v7QZ +$n9QJd1< h{2֙]\nl%(>'ɓ V6vi\q +}~3”57+s4.!mH8f3{ui}_øQ"Fn 9%)eL-F.8R96EP@@@+]LiTP2m@8ãCK,}3 m{V]̅P@@^1m\ۉ43 gs ιcy;W|w7ZCfۃ4XhL @K-l/|$ by'{$Cˆ kIPZ6k5%wG(]pK=Iii%cpkY ݬNkjnbZ[uFt˭LwtAmh-p^[GW$^c͓nfoM'#J]s5|Ϲߒ>˖Om$~_m4qYŞ&ATTTT +BP **@  L@ $HR47dv]A/8}'Umoу߆2SW9Ḁ:SK~ct @@-P@ 76厏.iW6Lz=/5mٓ;dhfcZ@u+=OXG_m1IlwCcc\:Y \s] GCɑFj3Rf 45(J.[ֿ#ѧXQNr$:V+ޥZwE4GfT; ,:v?[ C#dY(29)IP@+4P;"9jAT655OɗF}ӎ?vFqiH]H(p5IP@/-u&T&4Ch}a(џ,uSΥpjpBm--dV4usCYrގSrqXk*>Idtq{HIiؽ XF+6=ճ5Nkiv= UooMN?zzuױcݕ(hE˸pVn\C$TjN_֔i9+Ȧ[׳S1Oj[!a83/If{_k\R +w~jc{zܕ~"NdD1>[ڶU?|wˑlKثZY/=/e[nԫQ{XèR_6C-ٽv7 Y:Zip<{-&ʸ۷W|;\l@ a&׵V5w*iB\^Kq"Э'i # /k88G.}^N.*bݵo]4(Ue3==%zͶ>Fj]xm5>{pY4۸_ ź^ܠgoy)MDVJ /mͿ% .l\Lv@xȨjΪcYbqH+Y @ !h- 4hGP[3ح!kG\JٟiSwXv* 2+me=\m}=8fLr-L'$U}mcdMc2#+8% u;M9V $QBEw-o2 \ӕVj'H +т$S QVwvYCYUFdɗXj|7یvJ/ Eti⯙9Kj>9!AchvW# wZyaҒX4r nCܰZ?]GپW/:G}Fr4T6cnK3m1\.f]+C${ѐ%t$[-D 1 Lə4IMGAg]s#l.q1 y[[0@ -{H[P3<ǾgEl׆G}ڪ^J:xj2W=2;F[?xoI3."0glJu[;K[җS2SEƴ/NU'Î]h5Ȁ*=DU S n /-ku`>CiѯêZS^חlS.hrleᑩ(   )%GAP5;+/:GGbO)knr#T X^&-ǒDuq?2in- ݍ;6)OlAmEI'!ُօ%0,*7qCҘҤr0Wu5ݗ<ƒ ൰m)(\ iN*:!%uz+ӊes-VCٻ~kpap{W51;u=O6 [|r/~ Owd9;{CeU6)w˻)hr(@(@TR  maDP#\TdO>Z"+~%@(@"B@cou쁂yJ>۝jm? Z1*srլL׹Z/ami|C„hdfFH@l-ݵ@H͓QcD39Sz{N \D70[}X#^uPd)CCLp =^€oS6n3X\]A?5辥uX .69Ka}@G@!ok\8TɈi@rQЏܦaum$mx1۷K7;9RLkA9/IJn嶒C˜J~;\5=?lz}ķS^GlC!E!̌+@|wkuk{5\쬲HZ)z֘n9%3tgҝ, +Bٙcv=-9OpL3YG̯ c崀}3\\Oj8tt5+Jܿ%֎.ŤR[&5yMZP`%([;8,G(jO;k;wb.[.佋\lUz-VmiKuP,gmRs?7 nˀ k`Vsl^y7qI`">n^Yc`Iqd0p+9<UY"uj* 0;Xk]pCRi·#&b 0:F\<2/Ļ[oqʷihhs+iƞWqFR4UݎwLW-QkW(؞;C+mwS^KmI20{?¬bok\ ll`Ogy@I{ԱZ27=c`y'vϞwM<!@ë̀InsBM* jzoZ\n.Έrpq -]8?5=( lS>~[+fI Fp ~^y]Czk&9{I1h~i_Q}|V ~O%8[nVvS'73>t k_Q|=Qm;Ş X]IS- @D5PB`D %@   @8҂%B@ {x%f`7RfOK->Qڇ?s;һ7AečIQQQ u+E[c`I%Q0RIx sKsRQ@9h4ּj(@ Lky<;Z\wUs;v(+{9c)IA>Ziw-: RT@kI^V8} Rq_e47qzK,L=©45s Nc<ꎃX= ?Sd[]HÉ.#>5Ytԭr1ܷ 0+'>DH!Iqcm5<OX9=8mRY)u[&m4S[8#?hRM{6'&0;Œp?m/:34;\6Sp+ZxK H )nM< j ";$8y풑OqjCZ 7.NtTZ pjɍ]m~`U[ԱKlWiV[}A iUN;gŶ{(omK-׺S ӚWk99VlqBɱ5zSkOVr.V ,tpxYQoFږy|Qej dtq+[7,lM8]uFۘ_.-SR7X{g!Rb$R#_(ң*DM q#d`IZ ָQU-&koT-aĹը&{wvz|50[P W85Lv]N֝'H9s1_J/_r! g\i9;m>!k_rY - JՆ3z@,΅3B94\Fow4j⸳:}7ˎG\GR4{*0};ckNF&9 nn ϒm(ЪA 󣙇ZY"Fp  !zh{~BFX)3q GeBJrs_Q)!H*J'R[m{\U._'n:ON&W++F{%[*liuti*sxNoa>WHع/;[ $`@3fشq7c5:pT<{[ھ5Q\GjQ͑nR(,%͞{iyv7+TS:v n!<ݸ8h"!pk,z>' ۴mw7i{jG SǻIJ{q{\MIW9ۗ,D Id"M k^B @5D`-M:WEh2 /jVͼ1IPZH.27݆-R )|6B}ڞ%͋˓j=o,xju2zFF߰.vgY}nܗO^1%>(fO4@Ӯs%{ى 4 WۜY =5_E1\ 8fth暂]ꋷ4B'+[t(Zn2O#kkjȶ;o/%< JQQB#>{g^.3i&=7|{m-&Fhqga!l. ,#KIjNG ,D jH58B\*׻@ {MQ^ɷs{t7n&^ 7>)pQlm51p'ǥھY#6Wm+],*Kn.tk@jTQX|@7OBɨks/%z^~ߙ 1Hw8se\+d,_ɬ&#Os4/;@N1 &?ѐ _^@!Mq#x (\Wnl 3&f]Anh@WVۛ|Ὅ{X#Q_m?]q{Ϙέ2 }|;+⺕hEi]MՖs^`o샪^u>Goӯ |m3˷YH^t/H_w»iUv 9Suh>jY%t9J)t ?E+5HjVU; 9 mݾ^ؤ G0鑄kwOx7YE ѝ/C 6 Ϧ_Mmp'5sNΫe&qm_th, Z|!J)vOǫkg5\H 5:W7T;F'7'q"F?:7f}tk`ni kG9kZrmsaèGiu 40~Imυ0%L#p+WnK}۟lLxmYRAiJe,"!qHkGs-Z8EH4-=Q2wyr| yB9.m:ϲEk$"52&HĀtM.ND 0fr@H" 2q@G>mOe49W€q1ܝ<0⪤6`ǜ8c WV1*ɶ>(4KH0@Y電W $kv#z:Cbop-167{lF[ CMuW[7Dq:H̍c=$v\$<?b@Io 3E ƦWnm,8.\U?/E.sˬ@%)6Tk$MnTTbDa%bIu=Q 5G|-vY\Ђ!7 P)Q֙]Tw'\s92EXu} #aɧvl1v-N_zѱ:{\sp4E1Z#[' 6r˵eTB6ygwEM{\P q+VDhP'$&$![p@ 7GwIAca{E*M1 UK#@.=&Ղ5%r͍<-oUD7%gn+0': =M)$jkYB[Gorpmjʭ~Y @ $20"vѽe4W6N:Ϳ|'N@EpI"Q\0Oq#dž6w8L+[xcn:}b(o*Hҵ8=q:2 |m VL%|AP /j:7>A4)[jۙ,,j{):,FAny@8F<}W\mG96۱27۸L^8UC[ulsxWnS/}Qi[cP" -~ejA='i X]] bh&ˆ@ͳ!kq,}}(Ahp J䀖+g= .5*A1|gm9P{r=GHf~K[7yo|OZY7woI^^<ڹn\թ狽oO7dKcѮ'bW|>T[o;o)n}%W,Ќ)ڀ%9bKr]mnR3{BYc@ᙧ=ltӒn t.{Pcu@U {fidnZsN6ـhf 4Zԗ1dO:Mkڀ DV+(o7q%4 $s#Q0 ڀжP.<վI^Y$cxZ) Mrꗴ qm ` 4S$ "QַVŖCmp@\/b$lgKAƤ9޷ 2Oi;^uy[YW,Ra_}Rn#$Q#o|e趧n*6i#Hv+nF/БoK$8MMN up͝ !:XaSv)(SvOqmrn[h@?ڀK kZjG 6ቛ&P5hHW]rx&c\A'|(g:scg:YFMQ6c$6jHLwsmcZE\87mv0X >4P/cf/ʮ@f\BowޞhM9<֡_mm.c{$`(@nG[F\xӈcnibhզb~^uڷYes^GOiG|l~v=r=Gcc~xKK}wu1c[m=?g/ KakML/OoV3Y/.v۝^٦tl#9y߉S-yGo _pd`*{ItovۗOe3[bggeec {?׮S}d|z}6[Gqm -$CY!{=^ y~nI0o^[RnVJZigx['V})iŋ7F9i##U<z|oeob00-th5@z{Mٹe6f[~K@4>N [ 4Rpo}$>ﻷYtė[)f8Z=7 !?頀Z[0` 7~T|Nys׸ʠ$.,eGi#CJjqDvi_^^nrrt\Q\[ŶZ^k @oLg<[}l퉱\>P *'T@डuV Y$`PDw qSѪ Mlai g?Yh!g€зޡk2$G7GۺAAO'WBi_/]]V$0,m {?w¤ek{ĥ#X( 7@Pê6k7L swOD]:}QoӰ y pkO 뛧RJo`%4?O.|t=M$tnhy92qlPiuQ-_zE>.ؐ=WFC>}0(^#\+Z',|#?t6my[Q5)v-wA렖PӰef BFCUi{?hi5JDB2GFu0тZ}ٗ3))7Y.;̴@jNwTre05HtZLGPi- DFDVUՅ; O0(rǂXv[\w{qkuSgNK6keY @$VJ=``PWmy|Du4&`pJRntrZ%\ZjϗZ϶6קi.fvn5M5?w{ctW}w4^8 u,]{m^Wqֳ5 gjG$zuAi1g,j7|jf^S4h0Thpfs#կKMVLt%e *穮lj-i`>RЬbWD^ C$fIukgHbQ{9{>نWnŷlMstF9_jqk>Hmn1񇗊}ԝ&ݽ~yNͨFTm>/){\\vMi+,QU/nAvn5Pjc˾NJaw JG߫-%1IwzOg][I9kkؒC~Y/.\d8<:Q%QvLI%XnD6}לjַ{K]zvs/OsZֿoL}@L [bF$nsP(49KVk$.4%K0g\)R{ْ,#fXq~BY7iFm>YCδl2=YCOMRc^<;ڤmKu=č#<8n +wOiG05\Ozuᤵ̵D9c>g\[+@p*)Ot"iBAS%:'3*U= 0|?Խ-][Έ#) Cikǻ% {-ə[6?H.'Iɯ$sop\i $RU>zr"fy6(϶//[tfpxźqW8sd.tpĀُmol>lܹACE&ֱK-͍`D@f$@3@Giզqnk?+P0ًϑ{y_'ĀuQޖPV8٫P0۳"cA w;I ytg/> :},s9dkyyDٮscsĚG a~ ){y#( 6买X Hߧct5N; -mN ,n_24i<*57;Qf͍vўdߊ`awTihtq[]+xO 5ϭIĒjOy+rcGZPfZ$c@$W!WUlɞ=~swφnXen. *WW CN殊I`w#Ldurz- ݔİɦ!WO =mVNgn;8vJϺP}YG tCL/n;#k9]tGT@>f7j]kf1dTp4ɮ@b\m⁅BRӬ =1nnbGKnnwq{OyK0csar_O7kXktrAF ZZN:|lr>YQ_}7VvLf@NJlã+6ˋ,b1 ccNǑfiw_ aYnM{_ u;Kk+I/+ɋH; |_@|:z앍ci2G7vbgն۟DtG۹vKߎ?@{食v>]5iЎ 1C9`.bKǻe 4#a?Άd;t_OZҺ؇S#@旰Cl0hV[{M>FjÏw-utǑ 9}映:]HetWS.:^uk!À{+ iĵ {(ۦlX-ϕQ@Vܿhăllu 9?K-ڀhگ6VO5KH>ϤiVIÃMח_dܬ7r!&t.,7jyN:ٗ"R@8o_2Zzi䵱`7$3ח< hysdB{55&ɘDϸ70FȣիFYMj籅Q1̺oRTڂ]MI[\*GIn CF(1>}7jn-w.y)6ܶذjx%ܷF${Pk }|7>265Pƿ۸˂>cxp+onuv1KJ8q\Իv=Gq<. 6ڳ2۬?5bi(TC5Ϣ+UM𠰡 TUA [ř1 y]`WQ S@!@j!% t0T6lEXt*Zh-%v8M\[2<(QJtU @hp(j5Ij-2Ӄj٦:!aUw+(GܽΈ54P]ZT݈ Uim;Km>\:9[r\H``8V~%8^^ϥ#T\ڝMGm;'YcwIۅ Ɵqh1+>>I z!|OknW% NPSҹsg)N3m;(p8gb\O/mnZln_S5pY^8^9A dHZ}?ެ҃{+4ϻܾu$J8Ƿ[vnW1;ja7bsP$gliȲ&v-l*4+tL|g~o1qSY~4 bt,zw_o5Qu̱hL.$u5p֘WRRKߕ /w[&9j-O-݀paź 7.o-e/4ݠ\._Ů\vo& <@@ % sAʢKcz&g.mS\/v|qT spm֘׵ p5ZLel7[F`J5e[&༙ƜJC-[HGsV3=5nd!U3|y5W?Y @|aCN!DVkGPTTfVB#Nf 4xeM3-VmHg]+-菢R܄ZvnKdZʙZ}.[o9*fv]9ŧRyl!2]p$IFq^ +i}E3_;u3[&ևխO1厑 C 4R]% ac?gQ(ⲅ6+YeL0{H㵺!V-*8F(ˉ@o7D3Tte[*JO ].5&\M7̧{Td(ݻFKKZMMsXHK{TY[FzU+txĕEEsp!HqvKՔzݕ|ew(]5W%F+7Y5Xk-#"=SFIm(5Q#`ms̋ q_DE;qۻgS^ա܂ -48%,mE $V0qªM5[o \.pHծyu t à ‡!ef B K9NB+&d~錴Rڠ+qM\%H+5fӅT5&ikwJ9lDLF)ۻ:wWª+1lw=}#Nģ}&̀W6hMW==:Q\~xu؏4J'A5 |䤨 3jr,wWjQ(,\]M`Yڷm+`>Hz uk**ZKH-BApqIV7,RZXMZ^;G\2h/}E 8iUJ:Z՛nO-o 5[;xf% _:nM=֑:ɴ-yw0{ڐ'Սj3ɣ{Fqow9 ͽRz{( F(e*[$PVWvotDqaht v^6P8ZW[so-ndha43(TNޕ5j;5QX:ǚmU}I.eyPUCce*k6e-.[G6Hq j|(g7alYglǓ]_Y@yR;I%_;#0stx#ӡ;6{~^VowfFvU 6|+溽Z 0H̐I#*v`|-ԣ<]oa% [R܎>_N>c$ٟo#h[LØ%ܣNebwp|{vqq>8zy-/Aefs=7.N p.s0ka}=yYI oMGgf+\[od$99ո4IAD[n9h @tq7!"= ]%|6e׌MEG=( V<$$~v@,_$p~uoKbluni^hg/̀RXDžW41o9mØWX':Ҁ֊Œ5ưfQ{%x(LjnKy6>} TZހ~I,͘DQ݇x{d_'͆vOulyžIqypϘx tos 'JnM|={iT{*6]סu涵@y[C=/bO--@,i~/C$6o47W0^Tӗ6'=mwboqlx YC4Q.Ml1ZED.:*Q ~ ?N+k7:+fn$My{4Z `qi[xBy_~Gu6[dK֒4&4Yc U?|}ΪۭVn\or`hɖpkoxՌǨ?Nzɮ# c^qƒi@i\:Q4J;[Gh뿮@qv`lms {Pפ,.d׃&=m|N@m3+Stȡ{6qs 7,]$-伴 3@E1p!ۥ qh_ ykv&P6߫_OE#ft8ů{m5ޠGlkh9MW@pUt[eG=;=:coimmOI? N~4Sҷ9IfkɈ?wNp :bZ=Ɛϓ3ms@90iC@gn9vЀGjoyUNHƟo͹mror8Etߑ~~ `oN(Yb l_T:(,%P v1B4\2Qڣ1Z98U)!]e9m_7WYNwcF%OUp;g TY5(uNN#Rf=Pp%bir^Ehe'nĺ#MBҶ.dsf؏P$I@"@hyȒ=Li"3$АZ}ν冡D]'*~&^ubթlu͓n/ pD]Lk޸/}Oq}mY,k[B4֩tEq)\_ӷ\_4anF єu1>Տ u<.gFE.[#KlIAdk0J+Vѣ1wRvLϕ ޔKTyܾM;Y\$Q{\㮾!:@ =.7*QEy=|ucY {lEFָsMߥb`ZiZ-U/QY;W7 Q:mԍKEq<Aem$JLkHsM@t]/:Wդrgz},l]n®{up\nQl-7veҧpۿ`NyvMk+էC9B)ޮrSi&O1ܡ(5[^%|!5 ޡ1Li?Xsbr~.v wWlGwF#%E&q-"  N[1aah$Tc\[z^{ҵi\KE8ű7,JPrWZT5:S#y幓pcL)OiQ%Dmk=-̳ۤ]55V:u} ۉd%Nq۷Zɇx#pZ{=̢ ğsbssu/}fإ`[}/e6:K@A>,jJaitqq@YvCflƂJ0vz{{eq]Y8HLߓ')D}@>i統.*k9l:%㛙9^y}ڜ3jf8o5hj9e s[ހ\nm(c}$MGū@\tI,i84d^Y HLC6Ȱ=Oov)_sKv ,rvXOysW{mc뎘ݤܬe 2Zwe ;icfHl,.(T6~m{ZA#Ѐ%t=|.ciV_\;,F6e{˧`@7ͣzJ[='I%'5ťsXxy;@S_~tXwW;NcFG7ԀPGRs&i+ZΉ|"t?,>G+c y9PL |(R_ ]LqDṾ_VW}.zmYno:?n۽[t8Pg#mn'\ -zS|d׺|ZZ]@Gli90s^;|?QaһR&tƇf9=/mWp;pwB\_xP>x/-6jw=冻kހ.t\]Zr#sZ`>J[s:˪5?BQExlo e&cpi8yxEUfTϢ)e ͫhX쭏4t̛a F1ط[= LM51#/kj@zmoi${Z+Ҁޝ6M~zHc6cb_{ LǮʲS]s$~YQ\ 6:|:s鮅}#n皊ˆ )ob'.7jhePeui@[URN=\«!o8聭2./f t-(@ iqbJrnLoYcSҿhZA>'w0%Ҽ\Rm3ddvvDY kmM\\{,ޱj~_q[i$%J?l5\..@9ؠlJ4H9Sw5@-AA(4#٩x!PcV `dqXشt S>J; @5u{'TI &L2jDS)~թ\H#ܪ-6m pdyH)Pv""n}&84N=-m|5Xhx>( l= 6 Y ns?jݏƦ ߙkä5w"|nڜƗx L h+uQ[f}isrfSIy&WRP_}`/O 4 -I_k;+k8Zt^u,XkJ1:u + }|Tutg||^sW蒐Uq wO]Rx?b$tgS w&֨n%78ͥIyj:ɽW˻I[HeK#5 ʴu6M5_M&usA*s2knUv:ƶkW,#Lv$[% YOM:9M5QxCecr>~M8+]46c@hh_FˑZ)h F8ArP\ua $4Z]ǭڽf[ϽB1BڭcgNm%Ei_WTxB8Һkunl=t i!\櫇&qoI#"{a%V]lt{EmsBF\]qMi϶ zM0Mw}CVLc-aQ)ݮ}F5Į|ܾNrS_VvoB@+Z\CF$)NX$ΜaYW"¾Y @ @n<0ӟf+=)ԅ}QRߝz|+~fU+~fI4JѤRTlkKFN}HJq !ۮ&g28N=+4C$nfY91]\1J@ 5 %~ Z{CC`{:ŞJ;x9_9txӵg)K#^K@$d8+aZ@ Fֆۊ^Ot+n18`QqI%Ş+:%y}נ%V`@KׅB>wܮ ets˵9%ٌ|AQPLƓ~sSmD[{W>E 87W$Ŏ3^[xqJsʺtv*)rޱ<͆ @O-ZSpav(z:8bE+v9b`x>dD V)("z_ӿ;JDv۰ov r92po7xն]?E6_jEqd4~pqYZK s5> \*+m6MA)ꮒ~dѿdi sL/?KMu=]ٱXk/i1M<.B݁; 'U91PM+zzm֎{yU}uxx c>ye~tI/ْ=|^kohÀv~GXM;1Ҵ?C5 pk,xLI_wm-)htuӹ}A6-Tw>60\jn:, |w}[Kf}s"G7:j8k:Ϥm._#Qkpv^.S'MFQ&Kw 牟"&g}otNd}E P>XZIpo'ɟa,upnonU}/ ogw6r2|=|tIov7N^60 !{M49k>ntT24>3dg7Vmq@ZhfN.'5~,.-&;P5gQ@G]شW7׿( Z=Ib%#׷;@tu-4^54}3&8-mRr>(g惯w* p}E7= -7 PltP@H;ւj jPFrkE^ g-UϚ.ܛ~zgo2|?yu{-X3{Wzfǹ[?ersJ}auv'ᏹ-]{ydʤge_utqG7pP.u (J~nSpC aJ|Ֆa6is\ZڟGZuOt0mooAw-y{]cBmm\h3?)(l}G^!pW H嗵/JT-N|Vu[.ፑits5`+mŻztnl)<U/y[pa,Lle3BHp@y~6{k:ճ@tKϵR_vmoٶ $ d. ,o>o^!}^\ 78 5@>i-_}Ƈ0#%YپrasgGVukIS齚w]MѺI0d6θg舒?';@mgJKۋH{m[kFM@`}b9v=t橹|Pp:Y͗?ltmm*K#~hS6[XYof-G>2q U_o 8n/*Ȯ^CU]YmWV0彯IPԖF]:An pՆGB=^-}|T[ϚGWxT;=$cUsXF NB 8D /PKdGIrt " $ <7ҡDC )v"ၥpk*c|JYnN TH]?j̓FAQofnO*6Vk/4;OGStpg=qK5En"ixjVY'/GcttMnٰnUҶb]m7G"^χW wQ_;M*Zj Z%vZ9b]8r*\ROo6v5Es,u==ֺq'Wum<Y٦}_Դ nnַMHejLk%Ү*<@[Kl*5TڦN^֢qP JF\>&~uϝ=iy%U:}aX235.9S]'Y"]o>@yqTiuv*.ܼ>R|N/{uXdĬo:5ẎzW71}]Z>jLR{BUup1i]S.)rsRhڝ\1d:M8\g"Ze-@E=$A%'cmrR wy⩉:ƔOqq+ev40P ժG{+=|uPzb/Iо921'4:8*&tڣ1 [^ɐi$SgT< 5NXosIԮGPE-m.\َSWxi+i_ ?f+ n,zne?Y @ (4ga& 2 } JڻFs(TFeo8:^8ܷx~'r R|ӂϡ{ vg666>e趥M` 3q>JpaZ+{)λ<7 2o#HyF&UkȽoWB(4@nB!G8k4TZKC-<*vӡk\sJ$ 'rhnZ|۴γs*V{n!gJO%)A匪To7{=wt#V=X>]@{/A1sù:r(ZlNO# Mo>g'x%jx\^<@[7np׸xDݺֻc`Q|.:{Z{<ެY\# 4'Ԁ?A. =Ti:Ā:#bc_f%9aP{[W}M"PvHs0p?ͫRI%ճ≺xTp=ҭ${]ooww#FچP_u,-bf/C19ڼ>LW6ӢK==D.mZ5.oZ۔9Vu~S>꡹Sk|!$kicugUv#lx.Ƶxl{lZۼ>@>Qڞϼr=[QraA>}l Ӑ6ж[V%70@.´|:55mnW @nα[;d}+gJ;lclۍV_Miy\eGy;-smDipo|KkP{ tX\0Kct|] E .X\_OB՝ܯGc5hBGW5ڵudjKUnL9m9=|H K.@?w"px v\?vެ-G?IoGH {as{}>my&ch)kQġ-K:_wo3%DWjp}-nGs {{EAa E2Ef zCR.߼[D6i ]U7º>gWZm%t5v"\s%CThaW@m":5ǁc?yYz?{ ѱ, bcHt?9;p}D76Α @Ēx.D>NT魢golq1֮h3Խ|m6z&mk5i>!RWLbfݺ7smkrܹ<<7K WXOuګAm0m;F5LeBW{zK`K)4OǼ MԖ1;v(dN}2hc/g-x;I4s[x&z8T)jXw o٤[I K%8r|( ޮ6]&{Pho{So 2j{#pL^NwWٺn2 RHmQ@͹tQ2:iI4Ԁg: -iq/I7;{ɾQi!w@yGhڶqȊ0sZpGĀ]7(YFtRC[]0 K"vtysVx=gOueU^n].j`åRoNyyaOt9޺_[xn[;'-j:űWG)v<{@Rovy-7O,OL iA~it86۠% `j4խ 7OY 5H0k[ &1zU,doCO$=W&G]+cRğt~G-n 1p #BVU]qle|y0+W $'J P#D ܟQǦrXA32ɘIBɲZ 7\V[IgAX(ѽr3YLh@{@ @)   @Klܽ^$ɗ"zG;NqΡDQ hz_JEu8btN,`A][9nZ 9ȕ*1F&\爆]7@&DNK&mK*mw6}xZfqaq M {>zUdnuM p?\+gZkj M^8}[<](q8k_Vxt/%h^Iw%R m(%]JOavm{]|JnF<+gwŭG0BP?*莞#yOZdQ3G jmc,K*mo=Ή[;}Tk[~㖼g4Ը{ݘ|jSmhU2_jom;hQ 4/> 8m]9"270-1Z|5wNWqC$Ĉ\sUz ӸCԜ1TFMa}5g3RVm=9˻eb4)+m#"#oYQRĚ߷fYm#Őkk*6bXﶿ$Au<Ɩ(KBnvviKFVԙ!1~-tOPɤOpaU% t 42XF(MY-l]ϮYM^C Vy۟Nt[H^i8zBu>u\n~Y @[۷Y jQ pғO<\E%khq2r::4vO(#RP#KEI$ވ|6@iZkRPҲ Fіh%c1(]ߘxt CFJƫ7*Zv.wH9o1AJS*泭veSkchI kWmvŢw6H$oj)]vWjC Q[;\| ֦YZ(ԛo> (#GF=*hZϑYTWQr"XOM@WpUlژ6W*"`$ Jz>w]ݴ(`{{Z$p!mJF!P@8t:O[kA5/չUU96G] s#{Z t $}*@ m?mx2W^{ΌF5r#[pqwu/x% ,I|! ɽ7]`UoD3V9Pw,mx=L\ZکOy't¶9L9R $TpZp\l34jK{WwͩZ3=8.e\RC6j2sid7fN`PޢՔi/mMF#5#C\$W*e^]1T(<=K;v_j&@4j{:x_^u۴؇b:+gN:=fbOz\kvL)] .Ldv_Y9.kZƸ V d[{jґ@ .m/7ީy.#d嶆mE~5'ZVZKC_?Q[W+#>]F9.g= ;?T"p#ćcJkP{3f*@kǍ2-/ Z3/f*͸ 1ƚԒ֡}@le7JCOYtMSX˷\O4P:S qn8@/]2<[FH1iX!ƃ-7{)p/.oI說{Zw 06S;WXGh:mw@z9LcROzw>@4aSPɤns>!G <=Ow;rv+HpMui72 @ySS=;[7<^81qtDkNNҪ8=I+2]M${$x̲2|~aa{\r$%h·8TdWhn7ӱ2źZdrԵ<}G֧rhOP˨W6k GֆP+PqےAsh 9-Fq6]n=,|> T7ZDaOPr|30 N|q]moFOB-o #۶o /Kgۚ U?ytߴ i5 :ͺkK{|݄ l_m\TݽWƀC~8^ڻ#piVHޣ7v2"#F{޴ز V1"ch @jx+)J[7CjfKkP} iKZx_ݻsgG휝co0c"5\'2Usv)(T.1Jhiջ^=r(hw k@өcWo^7(g?YlCV;23%QYW~[sv Em̞%J=6wܺ&49F?|]ܶt, Z?+J0RTmfKs _Ԏ8 w8MgP .lo5cҀ#<]Ŕ@YQ~.sݴZ_4s\o F[߹0w/o-7 k(H&lmHFt kwa4 @i幡k3@R~kyc{^$kGVh8 [Ynw.$rǮZ5pvvfL>PAڀϿne5 ڗc  gdzvs/푥τɋ|?9_k%u3ts}{V'J4WXvkaj5$S&xL>Jn{lLE6F{iX8, @h!$tv 9m rnXlF-?/ .ZMp,A##Jx} W^şQJ1KyO>VSKs4 HrFD4˜(zڦ/9d;LůddËS:qcg6>q\|F/G=y.y%OM6cxJ7=N_gSw2 \?"᫆}N\{pG k7U7>cQ𸾵Wy/Nz}UUN؆V;oYx ֘2"+ 4ϱ ]M}8[IuAJEk_2_S]U*cIΩڍU5Bס.j/{㘗&J%~(enlrWcaU0Z+mv^ d=b<|7~NU8wefmM:ghtqe&ѢISwߒoݴ܍1 &-ڣs"v;/ŅJ:RΛ6ەᣔ::Ҵ}ջƢ#+#u/rݧ:(~>%(y]o#ngLӥؓZcVG9eБ8m|U|~oob B ǫ>ډs;Q$0յpƙe޻iu>c6sUoNk{Gq'EhݪkR}JZl24@9B5 tNF׵ 8"3Tx(_$jJ?5r8\S.˽a6=Oo:ۼM[sA# N&ROg2ǚ^$Va GzznZ,ut Қ٫2ast&PߪS:nXI YA"I$Ju Y> GtĽD5gF2>DRT;K :6=Exa߇O׿h2YKoW9K8x1N8[y&$bPwi hA=gڭi0Lnm0qԄ&1KhۇĭvjMm[?R\X0y^＀Mmݦ۝q\kb߱udQuڭ\;]t>Jxڀ: Dvr%h /t$HՇS\7sk!@qX ݛgiAo6Flgd<8 *'l9|=9s2 KO9qd~kR2X-V5+yw%ϸ'Qe/R;;CkO ;E̪jl$$[Z#&t4Ӊr ]k4Ҏ`߁^\>6'ά.g6rc c#/isV}K Ձ7\&av瑩C-_AS%כL/a<v9ھ]A3Heͨ` [v]|Pw іI{˨cwLFKƦ=9o ugP\_[D?n54!CIirfa%<.`CGz;Cz2MQ@r{__K,lYk2 o1BR9+?;E)㼺kmQZߴĵOI_XmX߷Ms,l-4^KCqfػ߃xv8Qu͹_i+tFиp-)_xw=8N1"O1֭[Vv]r.[piO|Ln7]A'S[I{+dhdG+>'BٍQv RI&d%Gv]JH-,dZ{AΟyYLDf2;ƠO^3cz>*;ɤUyط{wهסy}[;7ݼEyr-mY8pSY a޼MaSUQ<45ڤ庪ۼ `j9Ryܺ,vڼkƢ1rT/氛l*i}r (@zT_H:j2m2ő_+Ƹ0clc+Q0+hWq$5q5+Dᵝ<N@)!&#EֱD|{ұnA6}ϖWJu8J YmrQbVM1exٹi۵4#!Elo{J[)Րx+JbK _*Y{ZL8]n3cE[tbbNU=2h(9!(KRLCBY'>,[ZH mwVvgV_6c\JB !IXणCg=D#_ kQ܊mSQ Y ]AƤ D Cj Д;VGePi':usa\Qu- A,M7BN5>WM3_G@}>⴩>?1zVI(ч_ZO Ƙԣ5s8vNK_iK;V&NR/܇y#IڢΌ'NjDHkAT֊^iWt=  OZՎk5{v*ު?7!#ԛn&G̞8C aj|Y-bJ.s]YKqey:M k6I=<Nu_9v.^h#Oe=ݺ*LjqOP*VN~EF/iU\[@%%sӃ ֆ]K` .W̞},{ZiϮRS,܄1enVl;|iR܎_Y @ - Npb\aN[I]6*]a%~Fis[5UT;$iLȴ흶FZZ*je{H[̜Uz_3PtdoXPQ{Eu3wKIm niӏmK+-7ح[)M\Xt `h]!fи hBj}FҽUyāZoFY繅XpED9WUWHw@4 &\l(J ]J[7]"n(I8q<ڎٿ/a4= γKӮїf k\Q/!`M+7ks~~Y_Kߜ˹X]䶮ofUmΫQo[<K8iiY@0ΟԸ|^6x~]Ȁ4sKMa jB |^e{:;+w=QI9u1pZIȪNJ@ tV۷9o9GXf}[7i4+Zc6.lkۀ?zµzsb$ۗzE} ð!,j@(ivBJR"k썎q_hs1#\h֧'JV+t}Cj i7n/ұ}z_no?S*߽`w/.i (;JRJyZmgNuR!2"@OlH'VoC\<G-:&Y%Q 8l I'5֠bƙSpO+]٭DA=+C''}6pc A#h*8i[njY5Y5fMWRZJ91_e:++&B59½rSSQ_e}%|,ׯ~jp檳w[G8( -GYbtf' ȵ]z-I04v'7ɽ+>˴z>G(?:.G^o \ɶʻl^mXm8@"@#:s˷nLpE>Fj>а;(gۼQHƹF;,|kt8G>YJ24 "U +{Ou^ n29xP:1C<ý ݲyl=͛$ky3]4!5F+g]E6cu]_ Nw,ld5g+}AWJ?fu܆=͐7g 'moA\\]ݺd ÜOP.Cykxݢ6oA<ڐh5->=֢i; o~#|r4T_Vw;mchlhbg66g Khqå$٤Zy*A#iGb;jn}.ceNϡ[Llk:dw;tPOOm$02WYoܳK̑ \GF-To]7iK ;_En0rj,O@xCjNk jH:*}u}K6SVEGRFt(E\NaN"n F<7ONjoc,z~=>D3Lm cݮmB&73w݉n6o-F?Sln%[m سqu`>&gʀҝAi;vDQpƞoP,z[o8֟iƮ%o27A0Je=G]@|o˯)<$@j 4}AǃM=+KۚY%Ite``;vdp' ]+k9ZE:,eqǰ,ξ:+Ϟ^ J4 lDZss#23'i?/m ܤ7K=DZdl r_uY QJ.+Zu>5$%M\[@soqZ3d8XG ^r|mlmƛ8Qg|-U7gs~Xk!b3:wT~ƏisK^%wx_wNzY]+5qĕԔAƮ:[ڂ>dE]<*^'[SF䡸-CJnkqpX.2]MX( &zCXVI}dUjB$4Q Z [qviصkɭnߤ𝫢GW!pYTJMIX¤#zgcY]=z<@(r@nx!(D &{ґH[wi!CIĠkmuV W;udw˃Ӓ3p1Kj ._r7̱ӿ)YX֝-{wܞC=]99GTۨZ5X]T}SU]:xQ KZdh"}}xOt-Q:Cu +]^=/qr۾H#)"SZZyڲCA#䈆k5-(tO4ލb\5J| k[ݶU4QX/pet/05o ?;xwxh85sZ¼GtLݿb_N|7Cp nmH=n RĖK) 2PTV۵4ͅՌ 1-m<#v Ry4KHKG 3j4`6 qn#$D B/j:~aqiTN {sE0޳6\M~SY XN T%)FXH%PPj m30Pyf{w?Բ;aǍη?[)\sly$!FWСD'554dJr(B{A]8-'`N׈Bح# J+ *|V(oV"ͥ^K}?ڵm`Yh!zGĊWH&!)HK,ј}t9ƤJ BK54%{c D @kH,4$TdYCTOEP:gbbGprfn`/nk]ϩkX.G,,"S<]AkN-:5i6\EO\=Hu1Ȏ)Rr%qe$i]Ngʪ(  % 4v]׹?FQ?j%zLڳ2I p Q%x+k2ckUU;ef׶*~ '1Sjj~Ҩ4XF6m15Q&um2K8Zى5rh>e˳wlgx(Wupk~%rw}>X|HvZYZ7@׿[J!KZ\&*ZH9asP^m j zeF5ə}Տv@̱KSյo9{-K*m*-lKqlFA}ڳyeu:Z_u ncHSWr'fwp4Aʽēv,QI"Xn9me^[,Sc!{e=i BiaJ=O[Ec$ח;a&4bNE&([Ygu q35vU̬-Vz3U|;:c⍕$=4TrμWTog#ktNxٺuJs[ JG9ŀƠm(&4 TFETuardB{>GHjIV(}FQ(jK=yRx$ZXB `p[ܡ'Ѭ򫣅Q ЍI@@_vA n$~=ip^aZ{q!6]mlo26-HךLTIW44( g]G048ov??w+ah!uJg0D[Gڀ`7künh|Wrϛ *ms4m4qJkI]3ڷwqfٞc}OxXzp+Vf?oc{D":F+1>);p˯᥮wF`]{>w{xze};#Uh =W/]ae,8m4Tdy׼žUW-E#qb/lQ[N@fZ[oY KA9@\tZ$p, # <[D1?pdI0" }˫Ktgͭ; ?@UUЛ a"I~b ]^{-@zM6Ͷ+@.w?첃|$x;G?Sof64ӨPO4_8ю,x9( +f~Dh5mG̷7vGp {:;KB׼`]5h 4`mǻRi{^?3V&bQ`+܆W"Y$'Xf eL5iJ䷩i!žjNܝW%vWrg㘖G)$$gvr[{E}4^>Zy\LOy9v8vv[qsa>HWICὺPNz8viÎ&uܷN@ ly25j+'_wʲm^?O+I+:jV=ެFIBAkb!``G\v`]|DiP4;,Vmd`*$Q4+HRXVίi88fQ'QmW0;3\Y)95Z=T)H)(h@ۥ:ۘ]4/+Q 2$mZA>~-[6=K)3sEhA=-VpyVn;QOxiDbSJUڎ7ry*I{GF>7k5޵>=hp[>6H3uf+E4sn^]WnSh9Ujjk*^K[f%f]AW_*[:;Q}3q+C.&SOdE_vIl;Y\.Nm^!jsMC*[g^V+\>C,vjF.>I - cS^; [}NT׿*+(LY 4@+ۤi؄`0)7 W޷9JTpBU[5ۺ[V [S(}+ԻjW5Sͷ#6bǗx+=a_!Z=v[wƄy+Lurr,tm^h )fwA$,1`iUI]Tvھ/*Z3)?I:Y3=H5w~c=\:p'k7S=Sx8)AڹOyl.i\sS*36ܓ'ln76"i ifB*n. '֧'.G#^W}Gp۠VIWe[6;鎕iթG&w&~P4T=Y= 77D(*ћ_[J(DYAq\Mڠ$k^MKCt4mO0_QxhQ H8cTsl| CpqS}K|,#Kh5VUnٟZu_lXcsqU j AS7p\yO*iLv+NS [vA&+VeY5}^뵲F놁o$_/:斒`B>uD wkIE Izף/KhsiwG( =,kk(OAJID|] }+mQ !C|5@ -5 N& ***@ TTغpd8>W .&t lmk \{ʀ %j;6}?xP u̱頺)xV[ ce#\c]3smraF|؃(Z@f]mu!pa6֌MKw{}y|dpk=W0Č(P)rhl8qBJs7I,m-f.J͚mp7ᳳ8q@g]nnڜ5A9g;@gl4}pew{"8x^οtv 7n৵Ԁw~"dPXI1p]p8ܨ ? FqÓ3:/w{MYtRQJiwc>UÓj}W vK9.ӋiY88wWQ՟Lw3tA=VecKv $ltZNgAfj}m^:^P _=IV|oM @'>S:#*jKVκNjJҴխtc\μ6MqLi5ݑ/;2QԙeQx!-3R +!NȋCyU2*D(kЦJ4DEc&4q/sƒtol0'#YJ:6]3 ]W$pU4H%`c:: IUnk\WWg=3bQ##RYy#kHt@@ȟu]Q~យm~=v MA^Y5-fI*Mqt=M z{,kH>5>n8J?+tD~ ]߈WYU`mS#VGհ_FIvdc\m͈Rp+$ۄ:h_ r PjcXB1I ƨڶgްw9ku0}kఽ=n/ MYU[mm㤑ݓ rSz3?? :4C>]5{L}{t@ky@.xrxn;ROu/o-Z\44P|Xvd*ȸyscSWF /`k݂GyO^&R$d156 V6ú߹~ #%d:5-pp^\[GKe?WuK9iJi,Rt3EW58ɦGE?mO9*hiP[ڮ-X$i4Ϋ:[՗|IZFV5KNghsV'QgscZN5YƸ8vQ 5 1T[Cp6wZbvCqwU-48s?Y X릸:!*'Pu*t<m CU.՝2Zʔg&5ukڵ@ee49sI4+g&ֳ[`"|t*+P]Ia+7@~4`a)]X@ KrZ<ձ4vUBEwdM I)⭌WֲhPz{ b1s'{i汳2\(FE`+%+̎q+?3,DcZ-d6c9ɦ=W'WEU3ɂ9fZ&qtɤljMQASVuro{ȼnB|?hCJv+m1 *'GӢA.K2[Qm{e/{G=qV5|h5i 91)mj66ɹD?Quaj T/^:{ -Z큭M1@1.tds@e<" w#7Qs%:l뷑 l8il-۶9# 2v7ߺ-&|H k\ZZnm6n2)P3o0tSgN!ڲo0Q#!o@PŦٖ̝8 gu s&s/#qk7gPǺ26K[#HQƙh`Yq8] \>[v!'M(h=KlVޏ3# 8wv] ͇I&}|H /ktJh( 3^\[kc_\0ʖX+_i[b战mfc?Mm&yq3c:1x>YsMmFӚOPܷ[kupty_n5|їme-Ё_z?3}ۋ%܀:nf7{T\H5wxVd]?wNGs_Z_+"iQĽmY-nu|%w DWM\3qf9qnNs0[_7]xi=<ߵoԮZHkÞ\ |OuQGsGH缸<-%>{$+c{0*0ѩAj"gpuZ Mݹmۯ4< 7>6;ݮ$@v]7л.ELlݰ@F2 =bҸv:"n0>6jƞ2$c|ACIhi { k62hv9jIm'k7sT _uIRݫ(r\@ >``;}Z +ޏ$w^OvՋ&󸞗u|6gu_[k+# uX*9YtA㛷/#Kx"Hg7|:=i廖s_45sI'@U@Ic ӁԡQouOF]tŹիnNtm{ș/WG555s/{M'oݲj%huq0xju<t_}NZ-yU](0u)v½_c9W"D2Eqld8GT5j"$']ٳ:/͑9C.{ vhq9,kHiB=O#'5cq^꽂w uEyk@V9c=tyӷCpnkpsZV9F_f+.WTV\_?-m:])DWC$1?${n&Ld~;z.k{fulីƷ1I4|Jہ$bq튯>!&=-ˁw޶Dyܬtkus>#?[Zw7N2>O]gg.Mbv *zc`">W{CgnVLW #Lm PKGMn4.QA\IE@TgMtgFh-5y_{S X Iڍfܓr̍&LiftgϢf< sgݱ}sdGk@UqBP(BRUZuv-jqgIT綸P .GiI\MGU=D,g.)G$1SX( mbz@Ç 5t:uu48P9-z:5&dm\x H?fUZPAoqěқc etTT*z*|%诛crfTQPG]LMԕ_j~5Ŀ6jZ =*4:sB95uMu- ޥ8Kq+ kAD@}vPCA {r\CEi5t#PW҄EErnu"kj)j>VOQyh45en8;tM!8c$hݤ r҄1Je7gecJ~*mD7ӇS$ix՟Y㘘ƚޡpr=ި L*@ng7ŒpcS9vNrd2qm=C>pA5gzn:xK_\c2uwKjU^WK\77x% (DkŒw҆S4 `qۣ l=)Ô:Ke:s*2bW2h\d\ij ,N6{e-mv,66 >@f7#dDŜLMp-gBRwKZF`07eou7N]\Ccƾvj]e{~Mmn72۰E8#Sor,Pm6Iqu/#vsg\b9_=Yۧ' $sK D[B߇ N,61Ѳxd&*E;|-cmoIX mihfh]#-._^t0sP1xd%;{yDiſ v\b. )} \9+Ge#L,,$e]Bm-ww>kkcuHu(Sj dvƯ0F#5% -ۧvٸ4+0qxOt1oz}wcSpܞeܾQ%9Rv1exJFL\]Mr;FGW>\ls]$Gڀkh0 }Gz_ݴ`ֵʨC.6F59)u~ʆ2Z;Nͣjƶ4WBbH:F p18d `Vyw׺[\€6+wt0H9-#Y 9n3X=2Yk\q%CFZѠy1GS;[34 ٴzkO2{/P.摧 >'Smm! /ypc'sq'9RPۨKi CҀӖ2YG'>W\|1mwm%)^t7]֥`˯.+TGĿmghh|i*J3ݥYL@s]gvM #ho{_\{Wx-_n"_ u NUζ㼱7dm?k}fm6zoewnOt`t<˙"kLC zčI!xyhr*jr-mo[V;tZC@DqSk‰AlVim_I__jki'YuK=y!Eέ-t<,?Cԙ9WnwcmΆq4i> m5T&1Uck? R6O\VlxU\] ~HZF|\]Op斈a{Q]dΗGHJ%[nc!el;v46FǫˠLNX:["td#i١m9sCR^u|Ezǧml31à 1.Zqt(XtS-{JZh۫-.F\VG\\Ic-0Zw/U#.F8,zZ?B>u)n/w2^@Rs/j=_8Ztlt-.c2u։\yT36ߎ女z`٬iel,y [b) IlwI $y. Q4zJԒٷWs}Z5PbiW=c= _,F $ &bH &XͧpUuLֹm^ȶ: <]U=*k(.(p&So/]]+zr;u<q N)Jrۥvy2T mvCɇXi?Tݢ7%x~tn`N[ӤN syZqÁM|LUUzԶ޾:WQF":E e=^'բj܁nֺ6\(OL9ח+QyxJcq`YJ7R_۷v[\3b7 Y;ܵ#e(n0]ƶ9\;|*q׮VKV߫'U#B:08q{*qǮ/ݥPGҸcZk]Z$+r8Fպ_:M(-yPO\yfָq뻺iomCPjNUZŷVyjʕkd^U@ms$]/<ii# %|Lll{_Wm2_jKU$$JLDM) B m+9FU5ƬlK.u!:u{?2FoWbc'=}!S%:x,ƾyvtۂ梖zztg&yT(${]EӁ/)&mǗ$3DP34p@Amq|J3@/c\ =mͺ#uNBPmVHKX`>>0۠٥|R RM_%nuc-N{ E3٧cc鮱CGM p&, |6=,vcQs>OY}^$Y[>R#24͵& p8ȍǗ;r!I>9 H 97}[ s$gi}Z4_>Tn?~z|̘N&Kzunv,n--,7?}!WlPzd : hTt.ck9kvvOhsdwۅxG! ٍ>WuYZz(dz݆ucw k$k1O3KxG}Fk/w(GI ijwH͖>}Vv FCE<5$iK-1ЃS|%#.%!C?GcPô k`?qG!)I;og6F᎚ŚڟIIԜ-˧'UL(KutrMN'鳲4{[K}8t?uZɿ7"Mx/EߨBd(}#s{=Ź.O9Mnc~v;mL1ֿPY%tOuݬ#,__C$@!s#|Z=(twJGaDfc@%av6W{j3w[UiOh?= rV5FcbNu[smbU1,*=N 1\Ц:Aae;Voj+d{Tyd&9oFZNOr:70Ў(Ԋ:sm{s\Y)+Zh=!j߯LaY]~=6ծRlXR+`1̵qrd=ߵ&}qJJ JͥmMK,줌 muzN_IVMw_t"{N>_ VZ+ԫ^jxͻu'иv-jx0sI L2נRN\* />@#/{x*mRv<:}Elfd7qn +rmyGF$,. =}еUT^urB{ZԌp?{ʳN>GJtn|̴0S>%m0z~8.$5oSr<oVuzRRkՆJ'/Y ho$FEGWY6WG+-W>jvuz| LA @*Pm\\l%,D|L,%-; ,Z+[.Ԃ*?Y]p7m+\h&%lȯ8*:S~ϥ5GŲ-pV Y9:]5'׮ҺHȃsˀ-׳Р=,=*ɵs]YU&0 -9`LJ= aYuĭڻ f8Sf5%H9cQXKwbmZ犖+I\/R^_p".5ߑQ-Nd%eUsx#ڀ$ Wq6on9P:XIk*jp+p{m(^_sK@[mK@q";:EtMpb5P2y[ idž pqQ^߸pV3`ZFb@ k-kՈx*ZX.in*9ĸq*3s&+ѓVwJgrdAui^Uԗ:iS4SГ^SxC"Ad{kMG$.gE±p\yCй𴻰,MNf(a}vWԻ_v㣁>N.g**ljsÛA[IZ6j mݑ/`1<^^5VQ-NH#kKhĜ iF26ٲk0\3I-=ҹT;{-yL+|!5*)ri`ܲb |>tAF/Rue\[)3NO:tpԔ4 R 'P 'ϨiE]۸X* 0  @Wyml盖֠i¾X}K6:={biփ<ζdq;Q'?{I/ySW9A vnRsZŮj7GkmpZֲ6CWٍsO06F€Yd18xs^Rca٨PЀ@Ƹj8 =vqk7I <t3&h6Քp 9mm{ǿEK^Qn;Qm6 q^Z\A5ZD=タ6' ԓʐ`}oN&ެMV肧 @IPQs<"ѮkmFY+l{V1]99#\AԦ@9,Zt*_vWMn 7evqɓ _G89ܸz:]#VJ6Q,M%}ZG>0l2uu^5P7g[G:w@|(2}tQZ||]m6}dyvO~s?? >yPӽiaq۵n&I@dM ^_kF߻òu6,m4%{ݫ佨7;tX{qٟGҽɻgXN|" gbe5O>༖f%X?ygP%v CgA|QeQpNCϭGGϭBu%Sɐ d+ C<i;{""pLӇHkag1?W6ޔ= #e1L-of3S{|khQ[Z5fn-y<94$P(FAp Xh]dGG(,8q\6Pϩz !Rh@9Aa!9QDnVFMAY[OKA6j!E^afQ' V܍ٽ+I2P3EBSJ"Y%T廱Yfxks{:m#&q\Iylx.[g\b;Ζ{A|{>tWZ7ZgIok CGp\nG 1TMUSpBLmxm5`2`1^պ~9(ejVJ_l370sZ<.uG'E <ϼ5(G{ėkB]3H~tNKƱ_UqK B`D ͦ=sav-EnF.EJׯCB^S5:#dmVY$nMwFKBav'}UU{m)|n<*#+y!%dfSl]Y)ýCRZf/QߊW&=2m%HЮ>kFndiFoM@YvNtFe $/ŀd+= >bKin0֢fyolc6B٭ldM7/P]$mwV\ȏhvݱIm -qupҀ,nfm+D pl x53@Sݫ{Mv[Im?U>GO,76|]@D7gcI#=hd1QG;.Or~֒\dBAC;g訛d手'@vVقWs |iPߘ7m-ϥa-}^hNn6z @ָkN^חĨtbڋM~jWfn.>僾n?T3V751w#7Ϻz?bٺoKʑ5c\dG{^ 9F,j;q;qŻ0۲c;.n^٢sy64-%%[A.j)mc饌y'u=VA[]u "d岂C"<x}Jzқ7mX|@VHygw#XMJ|`Y~;76öN\%nD 5 םKmr}|>]f7sv32q2Q?vGٺg{ I ]*R{nkj>htK6߅r1|w8t/53r.8XQbK hK8d/}鎘v{[{v ;|r3 SO|g[oVK/_}~%3vqUC\.-'e{uiwG4`D=aEr/N>毫X]v*"a\>yogqS}>E- g 1Eܚ }Ln_h}tץ-nəco9d8 ڠFg#"1*[)J'4v)'p&2 eHpm6Siv{x s`6_'kG"T*_QKg?)cp{YFAq3k(/t u*P@Q 27&m(R%I'-n}OgصOGeqcgZV2ɾ :YMxUaH'iMq9)f|/FtjIBi2è3bTK=֛5ō$Y][~=dة,G8}%hsZۜB@ k#hiH*) )]UDzIgo_b$ZN?!rmneԮ,{0=7[ZWomI^Zi K +ںmOˏӳk  ?*gVbu6Q`w0Rv`IݼqZdPiv* 앞BMc:Tꃌwӻm%ծy[Yr,VCU.<`Ks?ֺ)f#]|o ŤU.Y䱝8`HH`\ڳMUB: ªRG!'*4MO`;m=߅>Gμ@p{E0[V~\ֻC> SrS=ESEWUxSܶe h%Ml6>#?\hQPi&[i.&?+F&Y 6U{ TFj̡Jy\(}jS;UYC9f#\ 2v;L;z*j-(6{ S"HľK$߸Y *F @ӓ=*[*rhz~ި5oeH<Ŵa\Sæk'_6{+N$T$/vأ&~y|oYm2P .K5>{6xlfO<Ӥu:Xځ|Vo xAbTasvf0*ɸ+qn jy@ Q lD W7VN8bjҶLU BQܺ Y%&CF a_"DZ@]#@*@8.[}ܘ[cLu||yPT87T}U=WEa۶ccב_ "w i.>ZgHPJmXx m w=7#;jk;OV=7:Tu]7qc6F4GG=:K-7C=:fJl 򆹆w.W}8Kz?kͺ۸+'5=UevIr1`o||wj|7>xjzE2vw3#DvaGQ=_Y6?~Flyg2@.:ܳz|4˒';Hf;ٙ_kK^k oU6mo]=KHt syZ~=ZlMbO>/;a?[ŭFXõ6;멼mȔ{¾ ](@BMyqI߫ҹ^t=bҕ ziB#VњXl g{kSky4tR##Q/]S_]XYܾb]Ue[t0WvU!EPh.vU@5JF/ioC88@iǏpBH* m$veWdl*h;CkVU{nDC-,% =Z\`E)Ay3=.q=$6s{AZquӗî}|G$nŎp4!z)񖫫"@Y[' M2GUnE2 f˿%+K\z_?&jMdcZ ÍZ[ t9p{uZ/PFac[#\+yNww'c0c.yS>s^SAt96r!7 MM=+LWTdӘ8Akn'dnӋWT׸]“]Uӯle-ε30aXk  1SVI%kT+H/ ")3<ƋWCKL0YvPߩFi]"ZR]Y $S"A@]ڶ_ILo^3ovQ117=OUT.Ag9#tM*(mi}ooU $d6IlpZ78-.lMi9ޥ#GG$*L}$FGU/YGG/i'{LD!WZZ3W#[J SM7,|@q*]J]R[ n? ;H4=hξee-,t45ݻ~c@ @ /O>HOfN򝨩*BׂW j 5gZ 0 -X9n9*Y7vLevvSdvr͎m\\.|DZ[7c@r޳ܚ9]5 vOǷ".ݦdXH>󬶸-8)!8: ֐;} %Z>I>_<5⍯ $!YkRR.c{(ejG#$:CZޜ#zCFL*J:5#TZ @\ڷEAM/#Ѵ[QxM5p]E0Öz\rY*U19.e +WL @  ZHatU/J;Ek&JL+[ӟ|*lS4ZcJ@ wvE(:kQ+ jWXfAi{+\ZZFE \XufmrmOd_nk,:/q˥w?3Yt"mt>}io{$c<(&vo:FF5،sRT^at6+Z{#PZ֒jؤL 042Gj$ +A1 -e3@fzǶ&9-9 4%eh'.vx[_3 G'n |`G@Q(hsH+b\ƻ28(΀'H @f]OwdDiڀme`VWN@Y|xkX.Wd <닖 i$7XGB9-7qUŤ i@v֗|FZA57tT[YZJϺm-cp08V|7֬Ozsme'88jZdO5TzW=hocw;a&)(#d/ W \{$[['jkZP5cpzkkf 8d|2V#x[^ϩOCF3$i.RP5T ש}IA>--P\)C|Qdm%f-v{ b߭Ecꮙy?2%_('ͥ.e5d̡ {H ;?os3>ߘ@ Ū'gTvûCu6>tnldK)Me V]Tӷfw $kCkk(^* VMgr:9\i|Nk2cV9޷I%$0=^TmId-sjk ȾovG˞dydӛ"n9I58ά-$ӈ?A3~'Z|](>)(|KiP7S[=D;-|sWKiCRZux[%xZڋz6}g{&w"׶;[]ɮ]V2=ؤ:rd@\$O1OsQx6nluksǗ_1DWiB: sܠOHMe4.[is74V>-) YX簾uL-c]7o`ng5ɑ.hhs?s3+aY&iXy}4#} Ew,ZXq'~Wxjŧ:_zōp|vtIW9Z>lze/tii _+E[%nio'ϒuԩkAы ߫P>VW@uS,?eakz8[bzAx`3STcTDdֵ8dF}ӜG0=Zmv-m'$Lϸ?mbE맗K1Ge} -uH= `T:Sw!FA}b|;ZqgXsYwep5MM !E-=SD!i)H;:-N_ںiz#tw9|2HjĮ#RP .a͏Y83m*@M8jNJ:}\F!pQβTDP@B@ O6`Hɺ#g.gZ)*G#j7.fmEshUZLJ[f{bLF[!Ȯ$UEY%C jYӡesoU=U)|͔Vv ,XD-E UU&DFQXGiR)^80"I(KF/:;>Օrпz%P j'0}۽y)I]A-4]tsOO_g^dlls|o_vUxȵ8\Vִj''ofy.p GڗWw؛i'ј==%Ct8 1h3(L>5ƃP%&wܶMGSԧ#jەn>BY;D:౾8G}q| 8n%n9u熲&ڻ1|343 W-|n͇0+;-er']mc1mWbݲI:ϬehKNYmI-ܴ]N+ CI]~[vc|`GEG#vZ~+JToWVh O _,Zٍnu$Vt4`<-nKu!E~=\K,|UUC8Daz` MN+ig8Aʙ {*ͭMy8kU(2Qq<#ͫWOB5۶>;U&@@I8\T7GwcX`AEVI [v9QZZN>T~CN44\j +VTPWĄ*Nw͘÷rN4N+#ܵzԲ[\H^[W8xN+$olwn5~2GBk﮵)S%,ZB'@_J8Rg2_!;*{Գ=} %yt b=qQa@ͻ#5}Ꞗt/pJTEhaa׎tp!Y12=ߴ+78YkGmD@9 'u-qbn: +c_nO_ݿd=ň6{@;oOv.AWU=z( Ɖ hr XE'TrCm6B&0ar2ֶᏅ%* ~'ʩ3׫Z(͢F˩q"WõX8)%F CjH1U-Ec"\0 V\^s]_:]Lɧ\LjK2m2-n3BZǸZ_EgӴrb=go4:GWiñeUe9e[A} 7ds[>۹\4[.v (.s]{+6-2]ssq g:%W>5!LWuTE,M2}aL hdv[lzkow8>^B5u\_~l\9[^];Y槻&|(>'^ qo$Ejl73Odc\:I@{ϧMn;qa2b8ʀ錃5H>n~ g@GTNϩWl5;>4%),/wkikn mK#_=hcZvٰOk>_f`qOo>CKP3&V7C~75)_Vo:i[{m܇:#O?PR]mG Kf586].kdGޕ~}4GشC&(m曭Sm۾&E4$nwY 7ocݠ-x>]~Rx^?nFq:r ĻmsS]1ܗSC}v;{~uwe,l{9F 㻹yN|<[mO׉UKX|KWz+Qw-h M\loo뵫W{}jt[o[,Yk%xn&sZH{Qᛔr\s3I,.{}8=OZeS'hq쫓3cqH-:#Y%cJ; JŞ8lZU?p"7ښ)2$ve[y\ܼ޹q{g9KcxYg.OICbh5vz*\ӑ+MSaAqaQ?o{u<7u 9 at*Yr{j1nΣNaUt_*l4h%]9+Wn+PhBG !nnDU.4hֲ̫rʫ׶7 ?:8>ky4ZT8`8/>Y\IU:AӃ:&P+A(GXqH-}xä<-:1OWt4y59"Rf-p@"Wb Iw ӪQ֊!)H@ 66M#8`}?ӓt6fUԨ>WGK+~'rZGUy4q iOmg1k(- @AdPWzO:oK+!iBĮT{Z-vf;{ס]nVr=) Z;|Jbmn}GiceB8qxGwy~Z>X홎H੊r*K O(OJ?Y H̡)HN(63&ici#U#Zb!œאXibζ.xB*N\M8)ZƩ(vf+8 Ufsc8ۉ~ (vbQS97em| E`1d@##ìlsA -햱\"qTihuqW%.PY8H!\}Lmg6|Uly%mI9(Nd2Fk)_ibSkyit𪥵:p?OoiJh] (B98GG bҸ1<7WgS,o( t f=J@hqk( ܲt= C[f y4$֢+x_šNjz+(c/r[uF(+z^O/Xԣ1ly@hZlBnu5N'V\;dֵ_8A /4h$!)OACI W|b/Cg\H$9ĭmo:؈DKҸ֙ӱ$T@Mks.TxjMqdT6iDQnGb@,<(oD55vQ}Ұ}ҁØⰲ= AOy9?H. w=rǟ#yqg2.{pax!- c(l- ?Mlg !l@To7o68F8|]-nߚְͮq/}Lt/u@XnRGq;Q8k&x}WTͱ4|÷=d=_Km>M[3]~Uc8maIu ϽS:{by:zgmn.qk(F4=t9H۷u-Kslܷyt&$Uy'V{m;mʯϤMsq9r¡ITr,܏6=ɝU[߁$j[͌;MGkҴ9m6|CsV!%Џs,76}aYҷQB~^7;_f>Y/frI3o|˓tq|9J;!OKNfvf++i: Z;ko*뿩-v^ խe\ݸ{n7Gw}ePn۔K%qx4{X׷YQ}g: C%i1ILa콎c4Yc':VwT뺃 k`4K __hf|`>ρgŹ[M5Բ])=>g9wsfD)h4ATRAx6 #TVNfLFb仫] )8IcCۅpU^J5vh,ymSwXBC5qzFmj9UW9xi@ /]>oJۺ]>C,b˕ n P2$w3R5/l6+(MupYR2U^b>䡾,B'?4g{נJi/1rd'ycRԝ\m- kHqn +FEfI_lE 1Ib~'%mRPGg#+I,Wr;dm;-Kb$8TP.uսƑ s1gN\{aJRvn1U]ڼBlRUv v!nv;& WGk4cӘX-J{mn}JblsǍ\Y;9m_Ħ|6_4Yohw3лX߆3^߼4|=繽KPMpwjꢷ+$7cY  @t6S hZۏ2\ȱU+._>ڭqis3O) >@K| Mh}cן3#sAL(xJ4B}K;[%%$#ʨƱx@oY>UQL Ǧ́]qpuS7>ڒ︭E xm$UYNNS.ܟBkZa}K*Q/6 t :+3k}>,^lH}^FyLƜyi662 VCtڷۻR.<;Zmfn?7L] Z8^Xr!}̒N9^YV4QǰE*_JhܷoJܜH4,VȰe7%IE^YJWYn#6407pă +KBZ%cu ۡ8ܤ;@k# /:wI&zPb oHvcHmc-N5P 5bVx-\+dRsb~`Vz:= B|4GrHߎ5&dTJ5XHΦӕF3MP;,I)L]gSzf*\`^s8ֳ;5R =]99oG^jJ[kmT5&=.efI8zke6 o[[v-wsBRa6W 2V\RTV%8KNe7fcM$R*y;᥋Vm]'ktnn,XfzM;{wPOjCljIMܣ]X1FKyH-0@Lb08> մ"iA:$*L  SZBd;J-- JWDq jKVήP8O]mk/b|/{CNNojSB pc\p!5Nia-pP5!,ݟnk:p&j{(V#^hg_msYo1 z[g@@p LBC@;W*RӶ\J*@A˽a-[۰-:ᶯcE E=ȲYj{bێksg}/9e9$.xcu//z/͑Pz۵ɋ- N耎#IZݿ!1n;ݨmJ{r5m@^o۬9Ph|mow9ިغX{ r WS]6t-B[(F@_B8 d"}6ɸs _-jc|- >nn֖D#1k>ͷ]ym773E lSK|ܷ*u:: 7_m0cɂL69<(t=ǥi=ܽpɪ Y mĤ[f/Ao_]^jy3K~n7ie_ +8o{Ocm?2OsmokQ̥:[G5s :Vstsӭϸ}+kvΦc1ZѮ>wDža޹7ڴr}NlᲿvIJy=+in>'4y:\zRm 4hwMGw@tVm:mIs&)X@=ߪlwؚLvr & 1#P2Bn}qE!O l#ff֗LEQg?vyn@xQ۽ѯhW:YZ4Ofi(KZ}zUR滘 kƨYY(҃'aęch˽Y]H֨oŒkoE\T#֏%ԊpSW3Jݰ4Gбbı6b&B‣p".GH2.t htTHǸ֜WBrx1p,Ψk=СwF  78r]hq+ZC#x ž#25Ut472_ XfpWi$'\ ^ZW}Γܭ/$2P#% Av`]eƤRԺZmV],1jgl[Z㵆QъΊ:*Բ 'JArؤm(C6R%GڐbȦ+Z8g'" EcSh\6>^ # HoGjǏϟ򧶦<`@=ӭݩv*ڲo3;۟&(-4=\kE!f%bnU+27xD=kz3$̭҃˶GnJL M1\pcRC Hj  @9!djp}YA&t@ 1RCzsPFE0*J Isa! aWǟW#>yasf8 Z*<\sfUaWH\$BP^v1I@@蝎buFZWCi;Y6)3cG F Ydm-qzAF`r4pZ#.<%{&:8ё ƭʾ|20sZ!˿+V#\N$ϓ={-T Xeƪ=.2cWCU[$쮬X,ÙjLƆ4Ox\~"k2tZn~jn,K&Ix0LKYϘikfjØ֩t6˚Vﴦr JmjY {' kjd 60wVGg0tS^7v-|,0fjs"uU.:Z*Od.ROmr ʠUeĽmSg7Xa\AmҹV{=ҵ-2Ynaڵy{bԍQ,^[!uǕr whkT{WOzپ) meXEFgE1v^~ii{F,5=77'yްx{H45^W!eh-I;`h$ n{;#~AI0i$lB`m;e\aF[QQQUlb$/,.k gvsmLg_1uדn+ls\H`I#wm_O7v]ihhŲn2׶wY䝽3R CKu@V:{q;x*I&V7v#ћ]tzˈO*c=rs51uN.5$y] ='As$tKn`k>v˨iOs؀-yqw+&- GwUNg7Ժ}}/Hztΐ۷mu~osu %lZf:+oطړ@u~F6%1k >}<-ˋ~F۞wO{[]e5?kyn@vuPE/{YscrtJyen]Ļ͵ڵkivptS j/]'VncV1(^\4S%)ɞJOqGc.:xskw8~U"3^nLelֆki{å?)uPp؉-l;zۧr7wb8WjuŽ!,j] `q.s@:mpSO+NAWVܗ^n04,s\/.?=%nmYmn#%ܹ߻uA@z" :Sg9{ÍkƉ`cH:c6f|WsLڏ70;Viu5uԎ9wel1qrI'xPoU{ě'2yD<>0{1-uU7VR9K$N,{j3kG7 $~uFŹ]}d}H }sYfG;l6=)#JPLvlI Kg#4?VՓlYmNQ4bABlD* QioJSMȢA].O#=V`ʞS3̇(<{0%M0#rkXyYRbjƴigDi\gѕdPjIm- qWt2M$`u*8V2k&ޫ G DZ\ZvÑtcv6م^'S $y$f5릨3VcbhCP 楲J L紵TOCZkT(`rGb(* ,ݵ^mwĭfom1NOv-Crbڊ{-xȅz]YJ99{a`@9с(-j%A k(,@ P2OK9xi'cyq PGYD*9=/kIh́Q%ST47#msdh19gY܇Ebuߨ58a9-wg,k^WI*J:@-ĬO-Z&PodM;kګ~o:% ^dn0FN dgѭچTjt⡖J 6aJjf55lx+Ɗ5fWwY#f+v9bI֋g*Q?"yes4xzik,*Mxo~,t*gJhѐ*LZ @@@"Het/05 ԳM}IxZd( C|fsb9Ca NrӁyLLީCr'WiȌ}dn0jӇWN<_xtvjAt/@$P 3 8"i@l6qqƵ b/w<^U jDh xXh;VhAB-w6VŎ KiA F3PzU_lW;uḛ\ӏneAfǓ<rZtC!ISw,[D}3d3#sUR\7eU齐^λ+y$kV15o,k)*pQ&k%G^Qq)CbXؘ~&<YMtGʹZ5P&p?|^ϑu lu1$1aw~%EF3ql>jK#]::sed7t8I __o,.qˆ _;o^u31 BLя{?@dt[Xo{uk#l>`;-lۚOOlsn.Y`>vIwr'cwyeб=\.FLlL }u/YId^ c9& x5| Ѷi'3}dtr\KMDQ~ 4ntswĘZy=?gVw^/=XzJiand7G#u9Wkn+ܭ?Ʒ;=l_PhO`NQSvS[WO6Q1]!ck|}N@uR;VH hϋ4W9M}w^%&m bgUR5 y[QƧȦ9[cW*OMu,NREH%YqGG\cEЌ߭#ir5 29()=XR{}]NˍD=H &.(L.%70_+Z3%Jס{jsD1 ov>oYkҾbͤ53ڳ׊"jА wj ^]TI;Ed4I,YTgETЊ78+T+rٸ>| .j򜼛IAhqi㮾!m b@  ֗4T%&P@S@ 擘׀(-g.FF#5%EsˉsIqB[oV">h AB@p'%G^\ȴW15$klUX]JL  i%8$7s]G /FNBRQ) vҧI9W-. #59ҋ9rt=9%*-@@9ŤB35 pMza// US6oȮ`+^CZ*N!)Nv颶lr|m$gtݴ>ˍmWjZ^K0i&#z %I%cY\\{ʄ-FFX)( ؁8&.=@ hF p9!)P@Y  ۷= 1+}N/`/1-waQ[rm]Ӈ{_o)h4{JWӥd8J%mgg/Vkll"tNav5m;{91nrz>wVd'5h;mIlo_g(^l (RnG!\ھ؆J†d&7NIwnVki˜,r*pkwu0Pꝁp'z%e%6K6: 9дr\4d(ڌ.Guqڼ9|$6i 1%-Vݮ*wV\%ghׇm8OMđ)3@N) r#*gʛ 'm\[ɯ[mdcɍaݻ{qO\}t:I'@&(KD2sh$Ҕ>-+WB@@:6kpnUPUKx#֓\Um:1mgY# ԮVkq+]FJXR Pԗ\0-$?#j9>j:׋r486PgDmְPIALk}XF87~ .v/'CF8مx֮ @A@WH5$]Hԕi  Ȝt[6 ^$4p(s$?qꙭ2ڝK%u87kudU5̶BAisk@ (+qh[y@6 '!R"!Sn1,P @I(`wEINJ$g-MC3Q*)2[}Abnƽ8GF?:j/[5zӏ寯ksfnYZ u-R61ڜLRBiHwvۙ7}%#C~wąN۝n;PukQ>3Y2AeUd_Mɯҽ5ǶöMnX]JPg{rjEv5BLJJъn=ynm]@p`y>I2:}ݫyٕw_;~Y7 Glo\=G w[ݟt[^C~X0x%~߿woLǑ_^}G{{bprҶ<㤆4pO{rgFuE,1\۲&XOPs[w8F L"{XCK.YsgKֲeӫBml[y<k%x]}LSjчtn_yb~tϹ'DG2FC\jK7=Ev%˹{^ZHt;F% G8<6b^oOyqth]kď/5v>Pǧ@OyOmrs4[##oɫխ77VYn]u,mu$}(}ACUN?q}L?ހƷI|pW\<:K6#:[aPuٹX5wDi6 euӥ9g[YQٟ*ױo^tM^mMoM`t :aEݑnyguΣ+}-'k։fṂL14?c7?ki950l77mc{c7]H:՛Au FOY ϋ|j4XRan?XsK]''\kMsZUl/s]M#x"۶s\\J| qic}Օ|',6n'BήErqќ;ĕqʮ%/Gq1GJ ?jr_}J](E38cA[UԞ[Y~}X[xH-u 8rY;õqV&?+,I4o(-!ex` bhkfѭmM(܇o/26´\ >Q։WR܄ J|#nPgܵgT8FKkMF|xL]:pf/C*zyL$ÂlkSgn&shi{ȝpiKE:[2% 1mY:ԫq.z%uƵ*[+Z-PΊjW*2+-g\jeim)_̨ΚBCH^zi#jN+Ynf#/8 3JEw]'Fnб o^CEBjjxr-JmLH tMk󥤊2Iz ;ǹ[AԥQt igE%g9=lk4,Mex!B[QDuS:(=ujYn~ZLjo/SW9 lc4QʴI+b4>#5jyƆe$cIks=,z,N-ԁWzK8/Eg,j{Knҭ9[VMexٻmqѾ?Farڭ3ŕZwI-5nTUfW5'=ʦR!4ڒ{c_s89Č8.|Ŝ=tWZӽIQ@C/)5Pԗ-_6fIT Y":~߶Ͷ+]L˨XИ+]HjD{]$qJmtj @"@*W@ 8`F( W ހ|3:#jKPj1@.MTõQTN JNs e&p=;-o.uK@kFu;>mk <pUn Vf@sdt/kYIwv^?69#-.F:/l塮~ #<^tˉ.Z +Fɏ;<( wltm|Ş.vd^/~_]AP}MOmkK@Kt^H#"xo>=8b0[ˎ@5@`}BøرI嶚8¯sرP{-g$sW×Ey6uhb-ĚL:ixg"\yM ,ԐfoF]t4B VXõGt24-đ݉acoe}_ v3`VC :`]{ǩ>f/OhуGn̻z8뙽Q?Uo=c!"C52hpM]'[o{`oLƗ9h{^OoAnmWvס]yl VL~:բ){E %>{Bu|h6G19@sh 653a*p?Rʽ ;-{{W:c/:W} :GԕґZY,R\%5ӒT_-EB@w,9~EV}%}$&(N ,BY]dBFVJ8zWU-;# ʸt Aӗ":Fq%UiWo20%%wC%'nN$79'3MWvִ2F?C { Zpg]af;pя{Jm>'5QdT5NJVݝr!&*qtZb漛s2 CP#skC\vLr³uqI"MMIT6Hpj`pj"Xd Z2/wtE?tWtq&4iiX^陛&$>/Az'ǃ zB@ #,g~>[8F%tE`Oھ&|joj֭Ueh0%e]Bm=ʹG 6).1KEIc8di 2hur}+2ǖr,ƙN^Jtf?hڰkk1o/>kqF9zTUpkԘwB)AEZ<>FUwl'6Dv<*4g_z/N6"WsA-\{Tݩb7݀td[Q8 *+\0PYe5diL))F0vc]dDt 4!jTc#pi!W}NJ0V̡W]>Dn0Hb0*zg6-ZP Wb1F\h9pS3[ {!tb*QnQ0@ &hli"x&حTm%۱p|N9'?M$O5U\'ޜUVOڞ%M42F+{HuP1 @ 4!9MqnwҔt=94 $Et]i|}464c!c=N{],tMۻ3OW uS0P L U |S>k(jKQ{[K bQ_YfdyeG\Kbbs+Jb''(S%nyB.\{wSŶwR_BF5AV))ms@ (6Ph3   זM@4J@f*P*P Mkb#  %dN}'h,eq*2UvHژ- j[Yo47{, |Yt\ [u58{rhoV?苽o8%ֹm~m^&6ї%>FiaPK$1w.<{z۹4ȮɧġJյЃ~Z0%fiqk+YqO*Y8q]{Gk\JAn֊:cN\Lh޺-wVlR]ڶ={ {HkCuKucA{xi”r$2ccmkHG/*=tEvY_]=dђL@vz[͛|^%-] tkgz2cqdy/IusEj<.lc*u}'[֝7wkn>\&9r#:WE'nԋ苇L rk`0Z*tRCOJ{-w6ܢyb oJ]44leϋKգNi3zpŭV1 19kDqė?]Qioj8=;{K-2c`lk#tWS9gC96wh535cK F̙K(hAw9]N>n'j.ŮXdv?%+)]= g #|vqP2/r?ov(jKVήQӮibwh:_r#ܧBw7=!q{$ۙnf؉=;>Kuhg'1u%.LI7ߧ/_ ɥ֎k-om%Oܱ<>::֤js讣> !sO=cQgĄ5LOza[฽ȶZg\!xnV9%dz{vRHeY*^LEB߉e{Lcyh|([[_B m8lc%9sW=9헣 g*;eqǃ~[kq6ѸFKnJ_xt9OXf#;~tɟpo;$H5{*o5T_aaY;k5I?g{ܥy{iUηzϥ.`C`ޭ*Zt<OOevk!}`;ڏPII6zgx3Y;X8UßRQ>N a{N'a9@dAl[M-̓@7НͶc+ECGfRԦrPUjwIbt쏵VwR >Aՠ%gA+5RfwRӪQ(9rR-keSc0t]y*KBbO%ޠƁM V Ym MJPF9&tĿԚkisMk\JY#վ ]Io06PHkӎh`l dQI!aςF]2o! qW3ux۷|@JaڪBd?Epdj(h!4&Bc5c/-Ҳ݃U(Qjpo7nH+U^FnE)Xcڮs@ :p@g\?rZ~Q}Nɋ[9pĶosY!mb)vbg g, tߋK|Ob @ ?Y @ 6)v*}'q 1Ų*Q\Ss K9 RVxbmQ[m+EcL^Yj5%wG+jn}By:jA&˱cL[\'j퍦BLڮ =j^6F'Uso̍ڨNL_Ab~ q7ξZfy„5õmq>Y]Lҹ-X>ww7Nc'Y%٤5u[SQ.}Kq⧩Jkg4WPȅSW"Q Lx NClMQ>~ZdtVU5^]JJ)PPTWJKYۨ%GD|PSF BL£wboM̸pxuݑ#-<#6h =.淡T)VOLmĝHUA @snqtT!ق/En_lk"CW;5dDc+mD4@ i5 `A@!@ uKIಮD;JW3>ʠ8# pfPҁ'6Gxa@1 @-D$c 9Wn j7?k[hN.k#f-Hڬ$pZ[4#xa}%lwK޲im3-cĶ6j廹4=ϡfvһl] ?*i$S |-\gƢuGRdDÊq.~Kծ$mcY=_o|O'h}?bo;󷎰i5`cc3[x`U3ZׇuGYБظϣN~:p{6iy#O1rхp~H^C~#u}܊3۟)'G3w H wWqc9O~X[ah:-xWq-H7Sui8;J>]B;齕",˛CiΒ5K'ujBw!&I :ֵuRR;^;֩Kvms WZDj[iW7Oš+һTݗOR}:!o=ĶWWxwc}_{*ޭqrwB_u~e͸[!>WF|Qwv5KqFxi#;t&O}& G$:66ozbWvxc2 }%)3-ŴZiR;xʓ\[l Ix [moZuGoo7P WǏ LOT5%m3="e LVܤ|{)Gy&g4+ѫ|fzD    [b>ϕ7é"z2VH# Iֲ#JXw82@  5@h1%RhC^0s`O𕛺wӉ-gL 9 M@3:jh؅gg,b+ 8@ MKh@!ߑRԗ'^.M@@ )"Qo/MzsT&( L#O{{#Km?Q3Y ዚ5 *zWsIAύ=!Duk%A خƃnA\k=U:XНz4]:1uvӋsQig N\[*EgBAœU1gO31_\(8kH#085fݯw9i£V:Sӿ/.zk˒7Fts[kjto'W+CzgZ}}?褒i#Yϩ!ЍhZvinFƽ;j]OGۏ1@4ڹze^>;.J#xV:S= cjr}QڈpÂ)[9ԛPU5A"3HF=jv~fjX3TClS%ss$43]̊20hjȒwP/dބjL l5MhZ-k+)vmq[B j2YaӖw.}%n[ KMvTZˡqݷ̿lM:දMO3:ՌA @9C@   hz=b3@:I!SހjDP@N/ A"*]Mk^Ӥ-`ed:'q䳓xXhx}6 4]kS Vp\=k@nj=m\ԜLnHd2t~][P Lχ6 6s9I̵s18m:۶E#V-v]tf)m(?_EUdo<_[AcO)5z?S u" |ѐ@i𷋎z\k.W6OJzXY;vlۥ Y*ݮ_#Tߋ=H:o5CZ?g0\c#6tM_Rq1L̯\DNo_.[c{=<,qo|gMX { 9IyŅںRƵܞ/_^n׷5riFny<UlOoS2GkuSpE3[-E.qtICĄs5-y+fw-1<8h+z6;bn ZbO}ߋ|>bՠ5\6rϫEJgsAkk^dRSFFZUGlӛ}B ëH *W| P߲2V44;=]-gsusjojVmK}e̵mO^&?*vbG76kI ɝj5>ֈ6sVK[΍G:7@^YQM+ZKMmG7ꉎ 4^w[{^ۅOκoݮ0T,g~u? ¹e=Wc>{|iB|KJOcF>8}q4e.cn2_ ysxHo{Ol{]޺i{K4#6%Kj~Kp54u)Ruj~5e8.]vX #O "fNDX xpBSQasDUlhLooN S'&VV9 ^IS^&_R15ovZ:=JWmb-x#Va[4γmux^B} %6x|rU'wym$!3tflD5| Lj{Hk]qN a'Ἰ%0~_)՜ q[6c1fr@%cKh󤸊zd!k[E3iQP MrVWzu6jN5'Zt&IC4Aګ:fIpڅTix*s L. GV5rҝm__)5Ψly5Zdi h@@.MT$&>#P@ mtjGG(mfp#\a{ː]pVF9J=t/5^Eq![qeZtf ^^ɪJRPX FKڎHZ3)ÔKy;OR A[_q @ .N%TP8wWrvq3WXY[JC"v(G\~H)j j!wW{ ί :()5RY uʍR*I2_Q;-IUݬM V0@%8.$\8PU6sXvZ>բ˓ U$S*;rƧ@M*Chmi|$TR;rָR~M6d3 ab\W bju:pr-_2IN 쨺5A?ֲ}E-OM-jS.kI.t>sӻc ȄрTGmKcޟpTzu3b錜[XШr@ ;u3 >>K4;dW%c(8MՕՌ sdaf׹fӓ Uy># BkMB ;A;x#GT5$r9:5'C#,m{q$[jyXV8@gUKnI{'^"Rq.5f[C9]tP9U\ij(VV\_Vw\nnѢGђgbQigg"Sնq'TW9A$̲F:X]3u]ڸmdmHE whPSH \8NJڮ%E@  449-@!9؀MIUlAD΍zte2\Lq>+eWvvX-&HsxcbNzuiP۴v\1˔{\.eqmުf|F60 ހm8f)һUPD|۹Ff67 >};Gc[ ;56ši@nY0K.-i28{185J>,f5G8Cx/k[%RR-:Sԡ5Ǒ5claqk'Q8(=Ojφ>_Lފ/i4HpyP{>U/H[eo#i@8Qsô:ws'jDa0qkMVZS}[C_VȺ4\Zgi{tb)pud~-:z k&Yy]͟7}}wN6?ȕy^ᄍTߵgW*}XCok/slhor{/{i'ܹ[_;WYG}M$6?gk;̭ UF{ {_^ի>s6Ied|Z}Ů;G7췄ҝ-nnoM>{e #>G9i'M>^믨_QLv;ѦyZtG:oHejkVQ`;;&N&mS?K!c f{^%zlKlܬ%65&xƌ{5bƇ9}ugS+*_?wOv1{Ieu JJְ|>{nNNkjhZv63mC[D[r#8s".:nehͮ! K\\N.GӐO֍L [P"q-\[rqs[.wbf^[7k(Xֺ3( )/n."Z߽ހ{scy- wUVWG]sXQ_-]?z.H;N4߉t%59ml#n2K]4}&G֯en0fU89ԯ3]{c/7+KI '˪7.maŭjiqHRUܷym6ΐ#U]ge$K1kmKXpwMg.6uhž|:2ÕWL٠m"]XīXG$d 7jcd,cY\+gΚX;9$0̵I| #* wK~jqiO4zw7ެ2>F҇1QwQ:|Z&*>cf4ѷ#q+7E3rn\b@wc|77J Ch*ljMQJYR۹L%"q9*kZI+&xк*xܲsۻP 5zm2:>Uϙhzے,х}!X/SsY>llŭµQiOv!IB238_5QGIA[JYqo.hx*UZ5C#f`< TIu38=$`kJ_J^I!؄رh9\iGtWMptB|B w5yu:kZwۜ@%A BS@ Cr;3.Ni^z֓~1Fs#ir䀹|j٥!V1 S Y |24qZb@kmm͕܈YJҶ[e\@|ԺJZ9MFCt]"\ũIbPKJ8;i$F{8sმ}5eU|"{:Hp0BSkT!5@ @h;좎g8ge\ͣ? ᪳~3=jp\ں܀ {S\(#MTwnWd,4x~_yL-0'٫_\K[^Kuԭ춓k˅$k屾y5 t>̓~wl85oۓ +eKw_E.g>; ;C3;6 Ë"4-ik_$H ROc7e9%RZe-K_gR-8~h55V %ncmĶi2d'of|G?Ot#DzUv!]Y_Gm};-_oVGy,rUZо}9myKk(H\?vɦ?5/=v6r>SnzpqfK1_ba@t1'­X0xӝC7XZ2 Z #{rO=kv"(o E_?5UGOZU 48yrlX:oq" {YCRC{EQL*ۛs,5JM HƇPpNKrlM1EFU fF:$co5`Van0nh}Ch/\ͳHa[mZWé} 9|Uo/ whY=Z@iB<z铷_uu#e HOof1mwz? hكP^\z۰KAcek]zGHgݭYw9`X$f@c2l{+w%գw;nymL{ z$&ODw `vXM^7F~-䉋Kђ˥V[kiikl$K_'V1=zd֗l m 8x;Â-N_mmkmW5Wq/N^;3\ON*L%:oºm hOwsӝ ]ٻ_4<ݶy6#sM5WKƏ3쨙6+UK=â{\6 dlapq:>L;OBkFJko15Wnw ZZ<ʬd|sVYnEi6V}?Y"Ȁa|D @d766Xonӟv{Qq0 }\}9ĖF ;{ִpr9V<C VW+vLwUv]MԣMGi7];fvU1oSʮ5cv#ltۋVPB~ߕ_'k-] QEʥOĒka#Txxu##˽SC+S+ܹ#TP5:3sy} _rj/_#"0W>9,_2nk[Qrϴ|MvIm8V;VתqwjX[2>ŭm0yyv_A4Qɜq(}Q,+sRw2J<ܱ T$c_ kJp1UZoUkPqE-ӑpUW9 Ŧ N T<{V݇6Z394wQ!cTA"9/tU2hFCݨx\I0IR2IĠ^T< ԣ}LjϰNH/DTQ^"ikSL|k  $!%rYϑVwا+Xᚃ(B9,ki\rRU~#kZ|&B-tAJq8%$y.= $*Oo#xPFUUoljVV0DBWvp8R KNJL @@ Pmtqt^=%Ѭ򫢸W:w":t jP" 4Nˌ>WPU'n3EyekC7@i7n\5SOJҬ~U]7SKWfTDsvR|#>R؞Òj0 1\'_H٬dUQ6Ze]쟺ziVO(YnoaBSq89/*P"鐊6Z5Ex@@ @ 8'Y'rbIW63ǚ %VV†֙t6'w5ڹ,Y 'SϥYƿ}+>1dN}KEi,AJ@[m/EM\Sd.?1&zM". ` (~,ӑ>vІ(帎7y_ʭgU#p kipܸYMŎ*ϒ㦀\A( oZOc$\ɮch%rvFP!5S5:u9>:^;-q3:WkȝD<??pmWl"Ԙ[=ag3Vz4@~}1&5À a'c[qhGO$91ӟ;8'[3KZ'&:7`5 +o۶7>Jjs{c쵪чyLz?۷Ӌƈ덦G~=8P$_b>ͪ:3ibr5/Ԯ }ţH^T#^e >H6ݻ8iᇻJ>ݯIN`e}@~rCZx[kݴ|?=BoѲPYl1V2#|sbkHlXT m@s |,VֲH?ugڻoppG]oJt{;66Z2{RHf67 >Xoep;\0q{ H=rc=ttqr;higg1Y(jBAE{F,{>R2-acK.щpZֲqf˳Vvw϶osQůvR1r+vǂK &Cܬ$dTwj.~b˗:8i#dsM5ZaE`ny`.˚isZ׮9G(wU91[˻]/C٘W9*ߟ+:ce|Q^?L3$%mG$6:V&aHJ޺^ g#j02=O!)W"/kC̚mtmp3d>j;ڪ].pfK9A>ލX@Q̱;7T9N໻q~A C{z43~6*n~"DEZ}?W^)*`ϷOcgx<I)׋>z]NƽjQ}Ũ;C\Ӟt6m]]d7i쒞V+QA##~_+kg cc2ahq^.6*uPiysS*Zxhyc!`Z5pZZCm,][MX3214USwj?Όꭃ$Ltk-:xE|?zEڮ#z@nRS;`"Y".mtih%[dĶyMg;\uqXc`I p0ϜFɶosa\Ƨlj?Q3&t֋[gwm\4Qsr;_;'L,pQ||On=N|vYSpeok9:x^[I6VulygTq@æ",gJ yhppq޻|cݤ r.o)5gG'W7\@YϠ4_j]rx)^-?14GdF`I[[m'E>Әpu4\n}lR^&5j?*=uRHֺeh o$ivii/9᧘m ;B>{mvΖ8[#(4 C!ney{>m63$kxī{kߏ+/9;L֧BJYm͑E&@MP<8- `c#s]WSᲺ  B̻spU޹&\څ]Eie2t  E&eHy\ai>n@Q@*kMFa N5;;I9vWem&K hJ8ȹS9zUrMhXQJN(@   W4 HL B @ V>!!#I{J P]R%&d67Gxb &1hU. &AV454=,S᪤i@ N +Ͳ(Hp;}=e䫯c@+ HJRKno;^hiUjQ;lockW86@ ob6f;ci98| Y #uᦙ|UP]D9yF)( @`76jK6kZ'6|Bʔ((N@+tִU[sk\S{іƓz$ MOU5iPVW9>Z]'GLIhc$9ڨ-_ kn8(e)8Y3xy=J̶^'Ufޮ!V,bLB,㷈ዏzཛgqpcFI= oWm\évb;b;mg73VW0E k@ s&+@7Gw IRP@ @*@ ^B .LU4h߻ `(uYܴ6W4d ^>C*4D{%s 45 z|F)(  գЄ̏Y%{Lj(/|NSkjYE}ab?d-,T$fP@ ldSG$k#OzmϚQ:{iCp^wp2H\cipNEፍP*N{[eβOOyy$z}}/}Cv\$>)[ '.N]ZJ68W6;{Lv{&Q bNpAK鄖qlYFp{[k7Sw@|J =bGz.7M=՛[Pyq2Fyxtz=ZgX|ܦ5vt'7i(jKVνRTm Bm]5ⵠu YI=$xvf[4t:V 1ws#oi Uһ5FPO,RԗUN&U[Pn{g+c4/>8 >S&o>osas,_ 7 vG4ZO'r]L^ulS/71V9ƿjj%XK[m1h`ӳJ٣*)WYCwx\#xZFD˙%0J L]ײc^i1ۨI'q9,hbkHrmq6="Tԫ0Owh,8vPvad7C0ph4'IiKg''U:$|w| C4j4u>yi|L$d5,Y2ܲYb0ZUbk74G -,lWPYpۤz}71?_23G+ =ÎQS.:c!uq.}x%>=װn6}hC _o\3'y.{?NE\lI.Χ1:?UZXm.x sLh]R7=26/LtѻU yP<ƥqEթݷrۢ74s6?,JOu"Kkj,n'K7I@^۷ ^> (l˫uэvA2cyO/{T[i76"(PJh!2YR܈Bǥtg5{CyZc۩X{t#c,ŇVp%+kg6cb}3Ƞ.hZtϖǵP#چJqrr [<%+&񪪣3 ry V0v?-t=a4Y(t,lTIM-lK|5uOF&zuG-/JZVL_yVu9Փ66@u@aF&ڴ?K&cJjoK,~4AfJflڧfI$-=F+=>-]XK}?UO i ñ۶WD&1eXҫ&GC<:zj[ }%+u!wCJZ2)g"Y֏v0Iĕxά6s)(L={o owYDvpExY$' t`))k88.퍂(IkBij _Ss%]Vٶ\?NΤ [r\=*~U $6]%DXֲ5ӧ$d4"Rd @ Y V<")@ 1Fc3RkVI$e&AqQ8-t8}'G}O!8 (J/n[{m"\ÅOoy:N+C@p |D5= zQ1-48{"DRPnflAuxV/OY=~Zx Ώʢ q>!c#N qJ F4MOo[ϛD]ʊ1d6x^^ iah5-iT$eN8e𫣟#M4sѐu՟?9++c/6#G*Z36܆߾']jϽMzjF{Vnc@@ayRS=ְvF ܗi F͢y8FU=} 7}'8zn\FCOR>+Бѹu=)GrJWC㲦D7L}D(@ T@jHqE;K+S5v75⳺uK_BA!&ZM8=**L{K+ņLrW94}K;/I>[w ]:%wwe*bk#F0Mc] v{Jj>\u*tk{t;ϡ=&-Ăbaq/s!ccct _v$ɀ<aUsع|L-ݒDS>C ;IIjD|}'uRZlIKpix Lw#PuwůJ-Hpif׵/ԗuL6 y?<~G >hfmM-9% Wg7HMpznzn!VqMTytbq@~.{W/kpq17شW@s;{&yLڲK#Y'#G{-j73;i~Z6}>Z[imي2#6?@|Ѐ鯨=At[%ŤO5s#hjoï79庸vrLy.@K\>56Xw9 9ٴ4;MrfKis!MK} XIuGsY"+;k6v4>b}>qSj364ߊɝE%/cp$泶nԌNn[#c)F?J51oͿP`Y_cw09Zv$2ͱ;YVĔ*mn,2C K}|]Ow#i6]act M//1i[ Q6m Zu9m~ 9շn-Ԏ3LAjf@S(nSi~_:CK00F0>56Cm6J ?,[DA}^#|ujj%&Fn{gۛkYiiy/m?&֖ -Rfrw;Ù<5~ӗ_xG55fΚjۖ Fo/Kna-cthW'6*lG,n[8՝׊&;d:(FiߊU[FՂ½ʦȏFsMyURʞ;bDZU2A^[&Oq?h'%1*Lc_i%ՠiUj4V}Z|Ü@d!=ozwE+(ߩ.[LvYOC6,\Fj ڃ*VoT95nC=RS?[nȵeu]ЇU-1Z^ޫ$=GS670 ZdG'/*E.p"a Ly\ד"o[:Hz}m[1^ܧXYd; IY:3Y+i.lE<g|;8ߩ[}&= 墕4B̑ZPъҵ&l]2۽ѭ{WEJW7## ~Tޥ" @qCvg,wC v}7>-ny8/m91ly %a'%s0T5%mHJSJp@Ӳgn+2=m6.3nd/S*dɪ>tDSnt,Wj+ b;'#6Mi8:+ڮus )|1I9+7F:N`Tj4K{q;% I8 ֭Þڮ V0,AIP@ ;tܙ .{gVٛ bGi\MIu'$= F^};m@Zi\j OeMYhmV̵^*`~.GcI\NFRH˜+PObIF{dk+#67FYɟ#'Bj3F?<@ )@ A#"lVBhS^xMȈ@ ~^:WD'b&2i>ʮ{M]e9ۋn"m}֭*OɅnO++   %lK ?v ؎見L &kexThhLuVp߸ڃCJ%,/yz# ډ OkL;B>>띦Bo0 &o~,&ۮenH%o'Y(wnT\.W7<Z;T88ig{r):&g=WsڶV\~(PԚc|~ĩ3>A6E&wSsI884^s{zu܏2GK#4o=l}n[f#?]YeR-Hn\5΁Ltcuk?X~6aK%ڠL4 c]3Y=柟RnjHyM>M@HS[0Ķ2i{HKm?gZuXKh2GIdދJu8(IBX  tKM;{Qm-%o3$1=Ѥ -t]mcx~rsc{M~ \>/9P {IذzSRc:) kThꥎdR$Gp<ѬvfvD_;bc;Ft\EoJG䙣[4܍2RA 9O+ˌם=#pdqBE}h#-HR Ϳ&S)+3/I.e=]hag$l{却`u8ഫ8iFvt 1Ya7K{pr`[|\1^㼔V^O/Ӟrs?-LK[Qvn7tő:cox.u \smgOj>@\|z(;bϬnw"i4>9ϳ_e~[rHv0SMdӪ?iU w-Ώ.nnնݲ o cMZ5ߴȭ;a4zm&;9=@lmItLvO,<\GH N??dۛ77_M]ͯF45rm=:b;P>[h0{eO׶({9c㉮k;9rvDz"9(cAx-Iyp4\;0@: ȶơo2ӑV @5p D39aQ#z`Ԣ)"tgKzBnQ:0\xGYrtS6ںR h 3֩u(tKI)qkø1g*ȯ@@ %mGULq7ϑ( i5__j*+1PuSز[g~ե~28Oڵ8mFP@I dAm:X5WNIz("@ .:Ŭ< =%Mϯ8 @)q jHKr"Le@hF!P@9{PhjEP kj D fFsV Uc@ B۸ֿdBC踼 _\BqЯ+mM *ϟL;gg ]`qWV9\@ ]66n8Vte$m*Y K{% I;=˪,GƤ%mgg,jSۘPԗ\{ Зgv:H]BjY2ju V0M!0ѹ(NKް)(uv.̣(hm]9lQeEͶ[ =խnƭ4K6'9ԧCpYU3/ᱶ&yO-_꪿QSu94UN>]ǓEx 1$ PK8zLi f%:I:H9κGDz[mVLl,h9TlUt.bLj}G5;mZCpfYoۍGbܷo#$-[Lթ@IB[B @>(_)"6PTW j۠%A T:"c/2Sr[!VNE9~kE9vr;[1A∀ tRr@p" UÓe&C:xS˝c{:!g vI?=E,չڟǴMvh5} &ּ(˛1 c5y߉lr}6?K-}<֦@ޣ۶з }bw[[t:xѽI2f}onv^+g,iscp{ µ-|Dɥn%vqP]Kfo, 4oX>󿾀vvtWD<QG%OA!uJ{l{tKo8j/>H*du\}Fq-j2=ֻ'ꯦjoYK״i`qik&M4>][:pD@ O d9A5Uf!ԓn#{,v5tð!&VBx?&;B!72aAEqBVk1]\R5-&lp3^x:[ 8k5OM&&kNdNJA[/>aM4B]  8=Eu*Mo*zԲ@v$*dk#C/Z6[I4$T* A40%5BKpqTkgKY Si<њ\h3ճ&x@خǫy/ʬQzT^SBk ǜ(.[Ҙuj߲684Ik֚'ŨkIgwțOKy9ҕҽou[_Njw> SxggˣvV͞\ "{hvVW;1ain-SۦW:1YYH* c GMyxiis\ q=^˚֧lW"W"f+rH;&Ql_ꡋ3[AZ @ mG˖b/񫞱ouIJr\\y9Crt>2ֶ;Ϛ[J9uq*g_ԫohv]-Zqۯb )uLʹO-)u8?2jVs,kEM IT-'cN qPԚc%1$a-c]j5=ǖ@# N%]9i{C+Q5b1 DCQ NWnBQE]J8ˈR9^\Wm#V3.XٶX#%g %7A9"Agn~aBW<P2QfRT@j͑ҐV:p6!.hw`ݦ#RP@ 2fTIܗi2Ŕ9X ]Z7u[&"\[$YYKR!E2tfUW9G+5aQg^35yH&v1IC@n/LiJ,=d-{ @qv|B Y @ !iq,7&K v4*_/8NRu;97؝z2ǔN% :mhh^+^.Uh>"=bA9SR_kŹ$vI.|8;zއN_h])u2ƀ%'j֛WVcotX5VǕB}K6ێiP*8;^" md\4wq*rZ\u϶4cۚMfZE]x`W u(nہ!E*@ȭI՞3$I]܂ [$I47,ݚpwbKcvn-_ L @oLHFrcv=N1`M5q<׺JSQ&VA^ۛcdpcs&CpZvp(\/1X]jjb-O0F<0@"@(45@Y[G ʥkF\ޤhUW9@>Gi!k9A ƍĜJR>KgrikP/@*JHB8 @!fnƷ1a.^U/:dtEs&[?ڊWqN U_ԋsH?@}_O,twkwEkhI z$?_=R{Ht M m(skN!84Rs;jv?'UlM.67%XQr<}+:9^MfCePMK#q5:I$H{ZUsZ;cܦZU:ɽT"Sެj 9KA' JzT :MwG`,L[8>0_gtJ"|npq2xuT%0v?a[̳X6ɏ!-h~dڴ|~n;C9[3EM@G;Sb:?DbڍcC7JҐG 0tjcb 1ۇ68^fe2iZ˻t! H`cҺE5OrghSoFEdIjj;*KW6ԞZYgr"4qD]P!ym69\qvիҖy}:M`oӚkeHCo>m7r#uqcp +Lq~ ʀ8丝0B ϺKxq=Zx㍡|GN %j+)ݯ0{h?][C{g(ʠQgtuqozϷod2m[[\484s٫ 9vcM(g2cR~7/GLQla>0c*ste!ap"@Tnms{`BҩpQڥ%mK;[@W"&t(4N3魽2d;}k=C꽳]M{` @  PPw 3إ$[/`X F}˭>{2>V۞!u\^v-d|RH%:(h/y/9,fsZ'*=V/z-ߥ-Бءqj+RVt.9uf;6;xիi(NB km('X:7i=l\[H  9%& (@atU% zQ6r#!ʇoSۖ_yNM-Uupevթ @ [{WNN3'% 9LuO Wh@`Pvэ;_iz#,VMP܊r0V U\B!V Gb[[%@TXqS%lȳVfLN`5Lt{%[+/9O|:?3Y GkZ.\m25%A @sB[@kWH.>Gn a:Ƙ-]VCS:js[J+c:և"Gϑ rn(J d=ԔxsC Hv-*a# <S^Q[# Kߗ)*hn!5 v燰{V;A2nS*{pwob'Vrs^m|_2u01:qޮe\tc2]'!{^f$iupmW]5cn⺍{d0J\ @*@@(@il1jVǏ+xtw>ԫ A8QpסPU^Nl[Fr0Ø4]YCT@ -l='^VpѯnP *8*2[KG]5-kp5PWBPso`AyҒ*J hAM\9D^͖ kU^5[ҮNk-:u Ι4*}^GSqio0w NcnS8B Mb-vK冄Q VV˺cs yjXeOn գ߮zQo\yttcnloϪ:o4_絒֍j돮_vvS[$irs`$S,Nc=|y=%q$jI-6{tYLlA0yƄS+^ܷ+Y.Pbh =xb}" $yZ)Bc]w[VWLj)7 znwwѹ̌R<ɡ$V}%b|q5?mZSP+ܘόOjU~d_;ZT~'GՍ̑RխJLok} մͺd˺n[е<7\GʘYr9Tlo[.p@渺24ҟ~moJMNWt o31) jMEam.sMLȭ_2긕%w+6cL~'4;dݵcZӊVd\uz^ʐ=R\-VԂw IVKMhVZ;%m|.vU [\Wf+(>w1;dsm^qۖnV-/{u .p'Uʋv9{q,[tl;h'<q8~j]E,kjTwg]Ujt4ŕ{]m\ym=*Rrcۧmń*sw>㛛?s(^^#1ԩKcb!]kO ;{в%͜ jUY>0_%Ps8SТɾdܷ jںi5\']M  JJ@c('ЄA P@)H,ނ!P@D\C-XD}":8!$v(n V E.dA8er=6ut$ez2b)آ ⮿QRf ]>UҜPAB@ q@I#v'BD@"a{[qncmҷB{۶h#mjdw82AkA#7%qya3G 1ɩIS#oLlJXO5}$O8^}!m zKgp/&Q][k/7zKw޺q[FAr$R) vgmoY-ϩ$c gChylth!SNv+= 暀N"6` <*#0e2ew 3tM|qvIgJ~Zj=^n^u &MKcQ hk 9=\TXܭ3aԭlMjzk{W;Qp BX΍Ɛ*{OڒRF   $2i*$j|E(k%D 6w[E#|TȁV9,\QZL(Rƹ}6fJbc.4Q'RE5W/r?s eHM^{+ (,f 9 9( sX7 D WY;m2G=;O-RFZ :{'¢MkOflp.d@Q.7Ɨ,.zHi{u7.zsCUDr[|?G˷6A'­$:8kۻJֆ֊(^{sJMÙplᦦ ;=+eH[~Nux݋0BpQQNx:$@ +Ux 84g k/͈LzIu]5 ( $* ,͈j~JR6yni%1#WE25Q`ԟT=yk9jyiT|KZр5UM$C+48dYCJXCqYdp˰]TrOye:[%ac&]s8ruia-9B<$IXj;*(/l'ҾϦZ$vo%l 9NJ8R_'ʫ6[iR2Qί:+@j(Y-ݩݦLۗ"!C @=Z Umh7ÅpOyAB%/GG I ; 1Ez\ñeZ4;UVBdsAh$ZJA  شvA^}F#(m&#UdJL9͑ՠl=oiiCq3/X]G"UAih(@I bs|ҘSaLUNλ˱J35ƍNkP{LBB7Wl&@`;IWw80ϙb3,H':t;0}GIt] 6HhئK[gMQ^MGa,;ݥ(=J oF}x by8 ՌFYV]6Ҟ2-fp4A+1RH{^&u!5x8e*${V[}Ǩ.bѻג*i͑G7ƵYUU7cn=#"q _,MnGw5F!q,*R]i>*92ƈf bB2Ǎ7;`@sIU IA ˊxjndhLi *pmRӁzt18g2*ccu0foĻ>wUE_ϷyL  FaT nj5I9%[@&jeSiuTWKm .y1*} F[DYq jFFluk}̯%*Ņе6ÓӲn0ChPfY+@(@(@MkrwTdsI,Nwx_AåuCMA#aO# I^juŤY20ډ7!V1knu ^\]{t;GZoK]UK:x{fڜo^tEٴ hyu=)Es`mt\6kM]6g:}:4q:uR}@6ìw J:F%kן=6QmpX>Igmb14/u=1zw-"-_cI*Ltn?ǝxc&tQcLҰ}ǭJuF@X8fFEm.I׳+X8sr7i^ژWe=)v۞ٺ6?AU4yZXf:*en:۩ewB\Fn",{9t9{EGsr0B)R^o./:A{d6Lmyx.'U_|>}mT|C+*糾UE;/P𱗕k'85msoŧ] ʓˉmmV"wf}]!!^KߍV;(=BA A *  Z0B@'4!PABÌaԬ֒s#v7vn5-:pI]+Ƭ$mSi} Zxq x܎#ħ hq 5K#-㮞4PɬN֍q5D@"@ ,*@@*ayΕBR؄i5Jp^qnO³_ko-iӓ%6 kg\?KF} `7޹s=uz@eEZeDq^+P=%Y39h[8FqG_ h^{r}1Zq .qfTɖ\S72G/B徭Y؅XFJ멯grms\N~Mk)bVHСefv(˚A೽|\++i_YI4VS[nFyV\jMJܓMt KYW,C.dyQG5)k NXcסjIDg5#%Tkҿݡ,yw>(c`qqRSN;r+je7P.KuaLJtһCg,¬kH{"B&ZR(`}È`̫7TilA$y0Yd=iYZu)`)EzVZJW9{5 ,m_}JOorPpUυZϹUa];m>bN%us@Y @c kq% Jt$л#(NM/ө @ ׳rr=Oo,{7[79HAsh]Fu9ẛMP7ʎ=`.-ۿaQ:>B6ͦny2K%3OPc{9g Tv:wcxۙ([8D a\~#hԕf/l=wRwY:I,f<#DT 饔Ͳٍ-v(jM)}Ax.`w -?5 Φh- pMD MsBE' +S%#RM|OiyvpWlܪb>u{%YP skj4qcZYÚY,|޹gCp]&]"-(mK`y-$:n-GHE6|yB;íc8 JJ[Cq{%q^Ã,/:.mM7!q v3dSiG-]16Z#"A g{T֐3rQ__Dgd\Ged)0] i{5ej˷_KA5t#f=^~iLaEOv~]n/m?X13 $Kuhq_2I5h?][4>[6Kg7n߶fh(q+5׷`xn)T(@ qBA  A%·쟵Y#d?H"Q ZxRS~FɒVɍ2|CW%_F'0&¡%img@sj֣l.-w Phxmq,u-mCާ@{l]j|c{M,?C29WW7ZGN>p$tmu+mrX988ViKt89<[`pkCX ŧ#NKڎ?0 *M:12AohJer`=Y1\Tn ],{jъdoխ 9zi`h֜zVȑ߃kF66I}.gׂJst?*r⿵[뭢Տ;/&.JkCto*PU'l5R;k?|4Y\ѥg/@F{TEr3VS>]Δ>3FQ[_'>cV(`}h+ook"ι-1-N^}a1BQv).՝f,͛-զ z-3IꉮvxmI5+/ YIۈJz]\=űvou Yv㼇Ea @q||{4NŚ:YL<"/k; #(8֝ }D53GNJڮFIRKy5 I;9AqpݭP2dwrԙVf1;I\7}Olƚ]X2RhjվgZv2 b҄;u{^rkV0P[v5IP@ ,:7e5v*:2:s@ T@*L 4pH's_e76V Y䫲wp Ynxmcs3,܊KC+DP@@*@"@*@ m{^ 9+D/D(K,%cH 4kobr %RͮN RӽӷUa  D(6LQۊr]Xpqnҹi5vSP@@ }COgc6? cuq= 3ۯggp6{;zմlVQXm+(Z{n'uV:I\œOv@{ev{lV-7 % m=(zͯN'E+彮atLqvf6^γmqE/I`lH'kPK4[=anr3OV0-XrC0 }+;#z{uݶ%m L:ۧcv?}c mn^xPg3p7ph,.`/q(ٛNnIW`mAq֭G77ޑskY篨W_{GFB,N[$>nX~?ߊ4 2"hTΫ=ՒX5 N.Q=˽Y|5SQQVE6}#V JmF$S*Ԟ-nЍIBFZX Q?E;Hԙ;(BEwn2TvS_X-b *heK8SF5\V>I,%C =@_C]aGR+-SsΕV68R,2dIhz mjmǟq͎+\ 2iY]i%'V_2l|8Y[$;0q&ܼ[cX3z@5}UB  D?$*.ZI6Mk?2ғ@܎yڢITPչ#r+H%Pj1ƪJ5Tƒ Ar7gU(ˁ^Z)\ 4B(+Σh+Q|{xMs 'U4>L?"hA[2Vghp9a(Z:kguS2'#sO3#íc[u<7>x[xp QFvǭYwym\+-wzWwtn [ sewIX2frU/.ln#%YW }vTܒ 29ʭxKAfć 0x"wz?߶o _>{z~3]gΈ(!:Eh*}JM㨒 ȞKZH(ʍDv@{ZO%ߍ)Qru ^$hPi^4iUR9CHmF|m+op%[:RËs6l`m(|$彏s -='[m,8t=L-ՎuE2]Xq&s4]g5v"5Z-e6C:v H?%}2k+J B lK*3Rɢ2g t*VLx PⱲw8p˵ 6,m&Isc{ucRx`qѭYy5St@ @iشƽqSYYGڥ1Ų8҄wZ3"WduTvmݭ<6+J5!BUiP+©#k RT۷pKZ9]wi͒"w^آ~-[r}IqүJ9y9[GWBrUi\:ͯSбw h.E j'3Ȑ 6w|ϋNb{M |c*'v9W^gjsi Kusu1}qu+C%m @w\5s?%:E,KP}nݒ!;k~La\pkϼ/J>tͣw]v |WAl}Po]Ad%Ŵ4fn-IZdښwO{,捤QW/ڤz"]m'!ytHcG{Oj5&@|mY7=Mp5:C|?R>xp6(]EQߨ~=o6R-bfn@  $8>'v(jzS#:x8/^+qyrd#\g{5u,$n(4PSN=m^BY k84ī*&Z(8N*tdܽ*Wj>+ջ)^) |58+I=4[k:=a(' O~BLOkuQSIҶάs8dp{&G2Zc}]ncpsI:+W=\tYV1$WsBUm7-LIs qc#Vi iwaLJ-FGurD9ùwT|;J! =SƊI< O'WdwWP x|تzg]95-o9{T0܊[`Vz֌WY9ۊk4v#2D22C5/ cSEc@Q#=گt`(js2 XjjO]0xn/ma= ˹fvFiڄ7ˡ{N-qVYʫH>X@w4Nis+]'*jMiO:Z4ִ m&Fdp\vZG [bGlBr-Dz֢}T!ӗ[ca5ly°A)nw4Ŵ*TK5Dʃ UET23Zjg+JhEkjOycAqBrk%uctjU 9Ԁ(J * @ Y @ @ @ @ @ @@  TV72BSKq*t;*@@ Ha12t6ZX 57[Khg(5 88SŤpЩ *W9 wk3 Ӽ*^\\u"7S>r)䦪ϗճ@`@@*P  i5Jp#\js@܈ 5BY_+v}oy85;4|J&#j6n6ޣB[g+#lxXvYm:@_d-s> ֻlLIY6Z_9`$Fo€i荻nn7[x/[ xX/5}a&˶]m糁11M.ojwëʀ ˧-:^\#nn.pp{䅾ͣc=(C{}=GK+ I&Kq>F @ P̹}@r4Zŧ|cxv?-Q0c]Jv/&jQ:om1FZwa{c|7#[gݣ镠 ?W>\m9G,U}?ޡ{Gķŧv-psi\;ᴊؑw;;u:)?Jݍc5Ss#2=rʹhY3m<@hxDzKLdRz%9;_۰wJ>wC*#갱5EM#moo_ح&#~4uY3Y 4%\c";x:6 xR/ma-u1VVkzZ͑L >q?¼seWbo60\IR5jY4Ϗ:Jk%EˇtM˚P[ᨌliX,j"7{;n2 xE lEs0j&+9(,)uq Q[N<4Jr6G9g,ca A 03Ýhjew^GbqVw̰dZj)ZqQɪV m8" ǑXںꦭF[ +l2;qT:[)c49+or֊N>Ua2#I#%ѝXI3Gꮺd qYhB (%Z=\^Rar֓Q}+F#= 7H\Ƕ6 PxTژ܂LR@8(-"B)OSDBW1QzX5>#tQ#H~0,:K1Eކjunӫ7hsq8w. ϫ()[X2ݎe15?Э-}.:ƚ&$ث&a @Wڌk؂#B[OjTuÔFRP Z ӊ=ѡs *J<&T6# oZ+#t$YZdcIks*нqZR6OᢵHI^ݞRc@ |s^6\h+LJ B@Y @ @ @ @ @ .Ff$q೫̴"a P]Jx7LƒybFk'dk!  @"P@^o3S._+N?7̼#vmUڟk)2DoG^CR14X.mj+~$@*@ $׌n"BMrT]3qƀ#pVwpw5ͣ9 iTEmӛ- +C(@*HnBuqBF mgUEr_u_ҀH{7Ya iGHaUZܠ֖.%њt0zʌxrmFKMmko<۹a5:^/{}Z C뷛c=Iy~P:ݟݵO(؄]6v溘SYVp&*|"q->p=r~{M"PIjs%,YQK9ln{g >|禹v_cvO@\s>W<ִ#@哈? 7b} Lے)[PY4z3 bhVgxR7Mn-k#L <hÐUg5_urлa KGxj;x5\o9БP4T+ȎvZug([Zxo$6yUIћrx_gD\asjEᶇbMK$8xhM=nJObv3^&wQ]3%Ty} G1EK5Gry:)3YFTcÈB`iB,4$& iةc|.ˤukbX#&WfWV0 OI,'3E˙[H6͠1G$Zcq<,_VvnK\7}GK.{ $ŝGe@OZשÒQ]@ ,TH̪;ä۴еڙ0]:VB^57Osd4m &uR{9qC1ly. 㒆_,27ʋPq&[ZhVT2Rך7Bۀ(kCްVs_WT$d15Zu62dEmW'Њ|E%ڠ%9h[B5%!V1ZdmwI-1{n;1rQIhq@Q |Qs @N& jp)C\1B@ Y @ @ @ Vj.<Μ,[@V[="̨r@ @  ֞UvaŇ0hV%8A  h剎7`8i3ZSID DT  -nKN 'Kjա&o{Z],qދPZ@btO7EɥiAlҠ4H8+]'hP@@"@@*&is߬{O^\w. M?7Ғhw'Kn('>mGP?un헯:`^ZMhM^gͼka EOGptŻW<=Qy;slB)$k=͏Sk59yYZ'CzxK+;pm. EG/_C[.XY<ͽњZ6:\5 >Iw׻ē'30֠3P;G7ٮZIn1SC\jiOn Rb"@* VTBRu5c2qScdUi5cn-`Kk_Y,jm3\umO<6,{͓)ͥt^;}lii7Q#;u2FJʺx\juo]V+OG6R_juyH'mݩq2ޢꐊWRڸd*iMma9qI]0xMs%2j~DU5H_5PbH]zkMFjJ@P {QרRP:cnPn-4h9zW.{=k+/ 1ql?̱hg8T9+V5N$vSЖMOld#sk'oA P%:"-&g6EwAz^۶ |Gp|u3?TԷr_Hֿ1ؒ^ytuG<}[mloEɝʻNGo{I4y w ZBPPN!#% N ҧFTK\3ԩnLG3HPCsqMTeɱcd7bG-2z =!isCLքRIm+%ٹ wcC!lA[Xk,FYۈT}Ղ{JDEt`{Kjom];Edmy0 ^`/VHjK&dpu+ y>j``JM Q%LΥlp dȎվ 'Uk^ *[)] n?/ zZ!BGqN?˷.+4͈vmv6Q;K"ZBNj‘rE hkL`Uv["_:ᡮ ehTTsۺKV>Յzoq%Tۃ~ik&ocG ۆ"Kأ!{A=[k+lPT60H5DZLVԒ ΣZ:}\WF˓<)_i\OFZ<Z%Ko"dn$֣.՝+,Ϛ)[EUr992*St(u PP̙p]ϡu[a.# 2zoe= %EjI+˙جsHfT5&M-ݺ4KJSkc= wv;͈ϑ Ҍk鮯@z2T5p.6Oۻ 'n9o'|(JRv-жV]A}k_[>'sy+&Q}Zs]i#ubG;,RFƷ~+ ߫ŐRǩM5hkDbMTN> s >'ws(зf sKX[@/_6ʶW+|^Dzb^X5 tz~W% | Y|Ň]LgO=&e\ \A+dnj[O"2 4:V<lpR fu} '6<$W]Ҽ-+3Iec%͎3h0ȖZXbv%WjrYl9gf'VLNX Ƀ9zΞʪF$KKg]H"aFQmaXdaGZߡ4~2Jj}*Zhw.v7Cf"^a+qWLvfYֵ]x<w-gqi-18|/CZ  A{wImy#Xکjc뱽hhνˆTnQLhl7x},5w[fQG}0~~W=Ӿ94-GH<ɫ<^5y-)| w8`ݶ♂Aipu ΧEr}6g۲F:V둭Q :sd D>bn]'*O %2^ӿ-Uy4֍ Nm=5iuq: \0:K_+cշr|'uZ3mmeKhא{*@)vqU(; &fn7p p@ 4,v.(xs>*8ɫߗۣOmnqlWFE$l#C{xHs{je\Jb[QȪ&mZ? &MZ[܉3C)J kfee~b, M5m+\vܤ`n 'RMGثL6ۿBNXKMF!)%ԷT/#I.eG6{ԙ|ٺ`O.rsQw-[5ѬnM J*]KCd8q'{I^nKngp,4Kb2)ZEJzqN.>s^>#st5Ky3t>8{ߨ۸^`mx+ t\ିS K(*)\x5৹Ekx[u:$О4+keOECߣpy:]Oݿ_{ZF-2YGL~)q <έ^9z%cĭ>~{YBPmaspN=Xdz\Emy̭ZC zJ&'\>TmǾ˧ܬm3iRҍ9wGma.CQЅKx뱯vޡyA-n\Ko/~fZ e3`_/]jJ%ŏ5޼[Ո a;ASG|~_R#6(qPߡlU^r^ezЃ]KR~'6.VKt6Fڡ.cpS沞;hHQj%TJ<lw:v龛9e];=)r9^5ׯ).<gvV˖۸s6˗B3E+vY-%#W9ڎ;Ёұ#KE"Itr,s>?)FVi1Dwrԙ%8-CzہpTuwTX.֌sTvU7'L ai~hΜ=Jպf8ƇP;%y07U/8ڹ:KҖ5tDEsR7LU9b}+ѯ3}vܢ6I)!7EI{M<5?ԬbA+ZF)*lLfrVgVPtQfw.kQ*JQƼ;F*[^{*q ZLطv{Fx\Ly51-q<@-Z5aϹRV$E<"0 j&y)UAbs[n\9zU $=9Qe;-e+Cڶ8^%q~\]܋ˁsuLkN4Kt+StC-ҋ}Mjs{Ē$ɹ e 8A @Olmcʪѵ,ߤҟ+&&>Ŭ]PA@[{#Rf VΩġ)6" 'f\Uʜ(IQ; LA @)n(H=ل @@ ț 5.ULҪh` Y @ @ @ H0B`@ @  @@YA}[M ec@{@&iŵ RqƠ5߭j@ =!hch}dv:Mgޢu5TN_I "!aT@\%ݩ@Zf\S'Osi۸[@5 LД,m_`*I4T0[3O {}54ӹY92]\?% a+!J*q R7e[o lpBG^{591>ߤYzJaHxՒ/ёC5祡+FŤ @ .M.Wqo=jN>Y^?/t%Kmcqy;*ʓ tM:+w(أ}k7|*JhU[f-3u5y=2 $mGy`!a5pB{QZ7V*vHc}kf۫R晾4^2O6ѐo|nk^O{$n;/]d[WhѥP@Ms$ofׂi潵!'1@Y/NSثgт4ܛ.v2X2rg]F<0@vkխx-t\[} &B;r>-0)bb'' /͛Q4%t%{5%@Rr=HhcK[' vmCo+%qcœMQ-K9Om\uC1Eq9މGB2'Yw9|F@*Vyl| 5}wvVt}r3{SW1l˩͵t(zƺ>M~fue/͡QJr/k1G0T@%:!I:Fy =@ B ˋ6ڨ- $`RTX.Ƃ-XIncPBo_%jkOgڣ}A~,`́8{ Ƈ 59VtM)g&܇RZ:8K39jy߷ܙq3҃^;L>Rs&H|M4p+jTf|>_IFPcNJ1V)*kt8ia8q=Xdz.=BE~rVۯ?lݷ/? 0֠ϥuƪxei(Cu$.a5jԜ4jL5$n,cubF~_k.<3M3蠷Z׻vu12!ļ{տ^>Vo..K7famCm+V߇+<^yYIuڽbq &0;WCɚoii-pVF5Z $.wrPR"Fa2I!կot 1PԖǕT\[_f4Z:go>Z9WXVLUIR !eҢ YcqQWωbz=Hd5 ܬf_8tDO1IS8Ԡ U Bc:9)PԖ7=,;2~ΞW">zAPѢeKJ5cn^4rhrKRڻy&{ԙVR E$ p5,;)hd yFjA=ڊgIY4[ڜU\6+PXstbAPu#0&*Z-۵=Nv踾#؏z"VVڢmɳBYGd}V;Jԡ}V0kLNGfץzxo.$Tn )DIsa-AJɚel~" H.(eSSt&髅4JVަJ @ @4@ Y @(J @ @j G.5TkSPʪ0 @ TN1ԉۆ4I=5% 6+KZ銢z#'e0+ @@"@=M0`@5ӊ )ހDJ HA 䵪ᎂtD@\s28$8 q{US:ɵKg}+bt #Zp҅dԚ klIimim77sSd,Njn]u/d+?2tк"V[w_+:{.r@ʢ>VuE_o8=}q\iw)w-JQsX]Zp JDB ,n+&2n޾/EnW$ԩzPu3wtxWi2c^ hj_='Ý3#*R2yץJhsZ8w圼UpV_ɮ%zsۑɼRYGnC?蠲>\E8n+oWv۞Vjs@j ޘ(y\;-_g2ik tF|nsMvݫUٱ[ւkNy_wS8 :h;^H-Fw{M4Z-*  Xᮧ7^+-.F ]9>^* wD= LOQz4eTwߔdw  I&f0FrEr*aN iv =@mq5ΈY#Sq?;m+5pzͭj՞+%!DW}NJ_O7m/:Z1;n+,6gnyJ[>g}|fFV4ĭr^8\LY_0-hkHӇEg2{EWTVb&1!ѹkΕ]mp<*zomno2JJu蟗au3PR['n!s\ZG *-FݜZy*<5nd:gWN 7Vg>Z VL[ 3K[FiCڪR{óA4V3j:.7$K:ND.\5j[(lv dX1ƋLWvR>waWb mv)ZUŖn%kO,,uSĶVvag2 ּk7kX怩>lwPPǔ%"B *;V5gX7H:X*Oc*-> ?Yu:`ykrq.{&LdsqW|N|sO)bkkEUU-{lJw!%`J[oNIk!-1sten_ʜffROTM]^-f*s`9(>#+n1t3@[M˸&=1y49 4zz +n!x^.2W]ww#|6ŏQϡ/_@bjNH)VxUg;xuN sPOpTtsFX%P@9-tPP.lq!8T*o uv5icX4`Ѥ~U riV̥8OpN pQcI/1>na0QauߐWmbZi{_`,|\|>BoN~_ ]G[:CN(TD0ބQ@ z5H'?BB :/[!:on#_q\[\ۡ045"8 (n;^ gVVi @k˺՜;k4@n>;Y?^n3&$w&Q<|Z5|S;rM]0:{oO_ *` ZM= $o#RPZ -[mWGt\K&tچtXzǤ*oqcWPVw)N**W.aaiJp68#xq{JU-4]ݧCg;ڵe%82&[K2礐9k$J fs'vf$vSl!h :0.O¹/vϠq}W۽Ā.8~jQL;?)J}rZ3=/ 2nnvMO[reG6!V2s!(j ~`u{OXf𞷵r{͋y--#XPG_Ji{[9p C9|Q3bX'|ΒE+z;5%wNIs,s['I!lķ6VSSMEQ"tj,|ҹ`&wo'{!chI8=Vjĭ+ Ns  Ʌb9`Iʽ<:r0&@bBm2&E.#d`GG \SZUΧpk24s MN֖|ܠ9k™rfh8R~^+;Er=a[zxQlChBE?ǹY-idvAoy)|TB>m,X'Ӽ˗=AWuO. 9};jKKIKq> EVxY8T=׷x 6kҡf8x-VvֿI}PQ81x "d&/5J=>ƾLq\u8=MtHYr_qeS+xQeBڎQrdמV(CZO!d!= 5,_knniМ{-\x"&c)`sFN?nYZ4=p=R8 ⼧MV#2[_i9Ryqvu~Q IRQ)6/zj[xv\,+7mwgX͞8 uVp? w].7P2vG!,6Ia_eeA_9Wc.cK]CJ1NNg9{TҫBN}uHN8,idmf'_ mcŎ} V*ė-> ]P+,.mxWܧg_| [Tn|ݾf{w XPЅ[GtXb0 #NҺ}*L ,ZEp ~AU[|Ucſt0Pi&|815Q@%<$ҽF+`{^֒TI*KD:#)k]0j4jBQϑ( r H#Rԓ!i_# # Abq^6H!*V.OR-FMpaZ1Qڕr͏Ӵ Jt3x)n ҎMqc3Db\t4˽Dt&XZ md,Va"|~`BiQVTNBPOjc@JEFzJ) 8J5:5](3 ְpg ͙ˢ K+BߥւV~;SZ*rdlYőV7.OGXe>W<^G3Uy-c۸MC6of=j=My+P.h'%8,%A  Kv$(|i7;DB"mzT/ĵ˪D @ @ |0Whnjի1IP@ WRЖY @HU@ @ @ @ T @\m|;hwIN3wև( @@"@Ki D&`WÈ@"@)55 6:K}nɸu39VuI!N @F斒 @HZƵ\u:ŏ䧗€s|&2:QVy3E5ssfU J5œe d`^Ֆ<{Ng-fI/B`XFdcQdD:71%Ձ>ƖJkܷu+CC"E8DT 8(}\x[Vhq%xxý]op7[60з@hr۷Cfdi#fa'dn 5\'̺sX }>b{;6(G.]_6vZiEmk<1?+V"2־'%0w)ygiPm$r(<;_B@i[;o|3G wgK+k=/fn6S] AB`r8Opʧ&.<͟ME~o έGKiZ>lyhyi vFYե#{#%@GDZAd#'i|Nvfe &cAƝ7Lew$P'k(NNU`4RTjrM1Ȃ; 3lioRX. ':FՅqv?/EW+vY%7N\첶KH h'Qcx7Vģ]YZK X4.bM#9\ܘZO?Dxxm>\19K+eXMtWjt]K +.=ڞs+ko /O c,Vv,cQy7jCx&LO'5kmYP{4ʲ9o_ Ee WحxN0"@gQtR)nDȴ,}[ZTft89Ϊm+nޛNkv7(]q4ĊVÂjOVUKS9hq i+T$֛&ptBHc\V:hzf 9[Zir=ڢg-Ij;#MVDsXChAJq: m+ 㟭)rkGmc xv`WIO@cčip)gZqtZܗK9t:ףt>;jc{mQmO\|GOS-t϶t@Zr-8ks W(3Q?]I?Kj^<\gjW5%uYy_1M\*~;mQRf[u0B3Q@y e!| SZ9sz՛x UDDUlb50NjGD-тHcU/\k778K {r*65wUW?0)RX< }G$\.zd֤2_KZ1ŠeCE*pXs3]ѫNN#]#NKm,P*Y.*v~Et\25% -s'C@^Щ V{u=^/n~ՅoZ:6"$uÉ=D"Ui IgBZǑӡ1@I8!1B kfH@7QPc⺓@@ 㼒8]nhy ɵsZt^d+Ec(ހ@ f:bmKh*OjUTH-@Kk YbuK\+ؤA@smw`Yuo) PY Y @ @ @ @ DqBP;"  yOګLU+@jEK,B@EN4X<3ӧ֬XBގ%HZ\KET%B5AqsCEUY: wM@@jBb"ADPErt5]:k8j\]iԀ tX؏HXe8QSrLZ<=iKJ9y8;UW9A3biɫJ$Um$*Lqii8 8q8P E&HV f]LvYWrԦ9 0t[ OZ\v sKNaD FĮЕ GfB@lϽkp<ѥV ZO_';~M[JRMyg%E(p5Pe=#؍IJkn.D,%A1tLIrZ۝TU^e][MG> K'`cIN6R|W~dZф溑7~ocgAi.wíW-hoZLUvWFJ6 evJ%ȜpNU\yT38Y m;Aa԰zU: *w'1KrC{RIm+AuPK-t--¦pud\qXt\NбNrȠ]رuAnH8U6ɦ>_7 <]UƑf[&IBS R@p½i}:qj[-kOuZƜ޿nRbw P1 P-'ÀBX p'pBgu]0m̯5.:GpnK;;?owp\`fWF*GγdmxWmJpK4xh͖m{^qc!v2e 5.uG~GU~?0*O*Z :kZp. {P#w!N,/X|P}+, dcH ~oQZk&ElґQuXXiV_Vd=\c&cpѥIo0{,QZ$%fJ%3,§PEkkunld84> Vvs%376:#.!Kh4kAƿbKzWugUL<H-1B@mo@ tM?ec@\K*mh %)\=F^mx|cu07CVlݥrVkj܈det*(i؄P@Kr"҂US5ɷDd @ C(WxRiKm%c @ Y @ @ @ @  B %@*@ Ucb&gu @=h.,=Ɛ2 @9sΖ%)5/֍){B֒ڍNѡhzR͹r5p@- omg޿nik:qobxu0}c^%;1={T- جF[r}K7b!I6pu\y:Ihkq\籸d\}hY{&-9<]"TW pZV\6C1YJ32F+!28TJstA mM}%]p48AoTwG^>5ғĹkk*8׵]I3O wQSF-IxH$q-5 sZ{RZmݮmEFf dsiPXwQ]Gk\37[wyi5ù-Vd9fU#?\%>̧E?Ϛ# Z'j[hC2HrJMJV ml|G*ˡ[%flnp9У~]q^- DJ~Xkwٷ+;Z jV/OJ^5)Wlm̼!Jpn>5^J1|m/uεqo2Yo(-#j@c˅(5}bCG4ii[+m8mKi$qW*UХZYLmѨH<ȩ[li;VZs]ZiNe8mK3'\-Qli_x_v?769mynКHvu\Sw|p[ҘZKB:ev1Kŷ֐MF"#ҩ#ث"+=ԑxxKlZ\Khp5Pi'K/wzRI}7[9P2=Xʘhts.ge/얍 x.w,8Z,K%|V%{>bwH-5SE\=RB<&WqaSyOH@JLmM@iyMkFgPn"@S88F)NꚶWuu4iOlZgTS:o>F1̜iESEdu)Z?pn[o$zYRiL_qE\Ӷق9gYS'Zc5>`FInE;Xm3@ŤzZcQ{g)VigTݮqv,qmEYVLY6wD6 7;ܞ9` g2ϛ$B ;j "d 55B@)$q@"sU*6EwE.tgYZ>a -\wv25>qd}/VZ1Ob`VP538:0HdžCADxGp>G8wbͮ\˪jm0+Tmhoƽ+i+#g>2p M-LZuҤ oXf'pԫ,Ö+ZR#ײt i@kzY[R^P:ˊLlc\>Okƶ4rs1&Km'`)zzmH]WvE2Wb} @j.H Tu'M3ԪsC$,/"1ApPKRPs&?UWSkT qV1NݨɪosKs@ %@!@ @GZBLXj@Y @ @ @ @ @ @h9.Ŏexy^e΢k <'_D# t4դ܄6Y=ōw{sB @"@ R@ @* Njn$c]H :&J:Ӈ"(@"gbY E8ӻa[۳u .#橆t{οQUx&KUM_ǹ6>|@#I +n63̎ `kjq :$xM@LUT /u#I6\`Ւ}ξS7F<5ܜ-zcDMSyIXeއUo {m4s{;1Ί7N9| @8б^G%=7[u)mϲM҄´w(g=uM}wk̔:)+\F6]'"5U!F 4Zv.Tb>ºWm[ ;{ ,6τM. iLvn: Lgw]'=|KfĜjNd+{u83BGmtZ|Y+4g#L'LmQظaػ17QesI-w*Mhks5e|x95 h˝=Z('A!$AxWKK4Ň[ *R){Wfh#p+.yJJj*hݡr1 KTV7RӒ:3Fq?ԩ|tq}ǥNxhdm h#m>ED@  _4/7is*Kmrs1u]&vG+[xn>|ǣIR|7K%u~s^ӧ-^9{|$a~5me[u|ZҊ/ rW nKf::b-rN֖ 5ވ)_^]oRIvu0W9](ZK+q{\x(zAf&6G'˜{*IڳwQ~ij`B ҫFC7IU«haνzSrgLͲ{0 ͠9WպyPT\6eew9X4qQԩӒ&hֿ"UU6'd뻡 ohۢh<^6}'9%Nev6 ֛aᮡvTxpvb<2@ 6mvF818k~GNfNh L*D8f PmӶf1^mǡ|l=59l6%B~َq}'[qbx6{Y']0Sïʀ vZСiL|H+.k!RdtBիATsdsAkI„vef|FSsm1͝ƒ[_ްΦS3#ZǻaJ4)wV^w:! tգ>ecu/CmF_#qc~v`ZpU=;Lt.2amY4mA}ok(/%iҿX:(]5 =Biګg wY/voϴx̷=_\m{-qK>0zW .\=[=riR?<FM$Msּb :^a CZp(JpY!7P3U=MJO+PMrV9@u/ 4)rlȠZb %IF5 JvM)TvLEmpM@8ڱHpzx8]RGM[ѠqRлy3kd-$azH86oUMm s ]?c*fG+dc*t16-4 WJ#(Z呡P@ XK=ZuPBT7]Sm5bF᤟"D- 45Y^fMJȈ@ NC | 4WjL pBC;@ b!@ B@ @Y @ @ @ @ @ (B ,Eb"tšZ쓃zv¤   Q EP@($z4v--wZ')cD#w˫@fP={ɗ+3VQ{v}/qe*B⥡K`a0Hm4^r|FJlpD@$bP-GyA!kUFA {MuaP K08Xwg )T$p7@k] gtm+QXPo:ƅط.\Q{NuVR>\H #d_TIkVP[P|]JƂ#᤻WAHG;x{3 J]󨓕TnDBl-ѷvKǕ}7F 4={;{D2;MhCʾ_A* B Ӆp4PLR@ y:yĊfiS8]ր.\772zҿf7Gdh"ĊzVJ`y:c޷v_5ݏ幼4<@ mdǻ&*CLOm4v{ˏZik>˝o6G#M=]f >XO6t3(&m3!تM4ߩ++@ -3lEM`\kzvUaBP=ukbO[hRеgFkWW3IԬ bCj(hiQآ +5В8  94Zkn%cLmq 90ԙՖ%y|U-En^MHn$yLJ] dWX^U3ZT&DU@@ @3:E5HZ>/QυxYZ-@ T H5sΧIP稈@ @ @ @ @ @Y @ @ @ @ @  F=1ӘQPF Z@He0ZI_@F@ ݮ/. .1W`=^*ۡ Y&6 I8TQ~E|J+V<0jQ y38J&r[;Gһ>Od8(U .5q=Kr"@ b3 'u7CRm+ee"{\s&L"!M-9`\Yo:OzuV-nָ:T:naͮ b-V`5BR;c+ 9(Oo.Z7h7 9u` ҽc00]\4Oelx`fta"WNH"&p4D3[H)MIVOi4jO.RJԽ Q (nNcT=A ,͈jyRue)7v BhV/)28rO-UH--ԑ~cJcsn~Y>sGsk@ -n J wCsj=Di.O;U>?NC_7X\4j1NUSJbILwSr*YV+6ۇcu=uǻXq\#4/Mt>ނm&?ɝT R`YqڟQ|O/slx5s77+'cmacĚcYλT۬f\Fߥ;VɞfJOq'ka&"2 }++MP;+ٰX4֒ #x<{&?UK>шK@`Y{:UYrkli{aaE9{t4U/}WZj󧤷ixxp೮Uc?Jd[P !ّ@cMBb{JS/7V!{$ wR_(<;_p% @ (@hBP@ @ @ Y @ @ @ @ @ P@ }mK3Ex䱽zLv2 @<(cP aƃքK,:7 7>B4 >{ȫߗw!RdᤀGBA 1$ S3ؠRs,IBkkm|.,$q(Jp^_L(Gcǣ=9+??2ǖӗD[ sW{ۖf,twҭ󡟸`s||F)] hBR( @Gi$ (JR BK-ŵFJk(p\٭y ,Z_^\ 4dB;vM:5\.ma I:4+ՍWHy"5mhRt`W֎<Է+mHωⳫՌ@ =ꉄ{/*O1kEQ"uMf߂_uͺWfڷl! *9)|n. SJ"šVͥ V=|S/դP5,wUvL]LlXqlD%kfƒ> [Fy>Z17)'I7.zHd\dtRzH~Npr-h_Oi{,9c *N Dqr/d~")[b9_"^٢4JWIȴwU2v_V6~p&j%Ҧ*8]_3+Sܬ`}đ6b qS@A*wi[O*ɤ8ښz DZ8f@O0{kS|YUkj<~Jj0U ;>5=fQc콶إ+DR/#XrƊcC ܝ7%K=*(Hwwcrnf;cmEX-b.dfk8櫷 :ڲ}|T!DpW9AS *@ : M僞56݋{/s4u   ހtO 5sC" UU| jc/mwy!Rd .]_e}'N\kej; J ͦ@ɨ}@ȴ;8nө88f kPeMȹ0t ʋJZU2_RײA-IZV͜R ׼y{<t< Wt|k]6̆t4kڞҷKa4]Q(w[JKCTUK93[#2ѶGyS# Lvp3mBxIWjW67ǼUJzpԯZ͖}q]X ǖhMMT܈@ @ @ @ @ @ Y @ @ @ @ @ (PG۹lK4JAo$F*JijiLvڅEi['e Rk5  \h3BRs,(T㫽AUwԘ@bQT:0=c ~[;$קā-4* GSk/Y#ă@>%ϛ#C%3}J;n,t5*:>X_kl㾣yg:W%a51]:=mŎCۘ]'[mr#I=Cr"M\*ZOSJklm3[X%T,\3?Un2֧ 'jv\Ul/Q.mZRɏcobޟnc@氻,i7qOҹ=cF.}=@HLJFVOoaJ.2 H84jɪ":\cdcZzLM>Dh\O1!Φ#GNL5L9ͥ+t*}BVe6h\V' "(NCJ*clգtgSNY(yVj6ѧ(dW Z,G9*Ei ``2 J4 eIGxIzix!*@G5biq*T2ɑQKov۩wU6ŝdRI@eicZp!JpJ,wѯ;]]̙yz>Ҽs#23*9Tb5ZM@HpȄ-[:D;uQrUU˾]o?[D6_ֶ[dū6F6V:e1r-¸znW]a<[ܝ!WpW&\S> ehyv41=eg\-;{*{(wΗIꨫaZvϮl;<(Mc0 gz~ړʤ}ԟK:G %"j{ ڼC)L ̴[ѠzI &" VMh;Pt{.mLqu{H¤Lr}LuT{NW!Re[R^A`hڟgsWDE{o7Cۼ+5pn9VjLzse\OP^dZmдQY:;~Klq=өƶn3 uM,F)L2&`PxDsZw,D  MM;Ϡ@ @ $Hk@vt9jK&Ffˈq#UY};>gnD9 :?\UڃZ+ŠszTE##m5J>ҫLڶnM…hr5vy {qYdz,՗yR3HʵJN岏$Hp%Vn_}D?mUi}Ƽ*Ū{-{jAZ)G8P7#P@@"@(@"@  yqBR@D@ @ @ @Y @ @ @ @ @   A;Q"2P^e Z:A#qUw(7ŕ.zo$ ڇ#?i*P@CxkʨZ'bKij0SM~Jf,Ԃ"p+JNx .ƨKr" Il-4Ν:Xf3Fbt3EжY 7$4aEk8mB'%`85~5~5UIwPrZ_So4 XgpsoboQ7>4swn9۸ iU]u>c4ױ 8 n$ý ,:g"s#]fWV0P_o<<v^Uܶ펩pWպ5kn︤8#!Q%t5%h.!ĜKd *1l6 aqeucXKfC?Z+W jtF#dzhm;s(4pNԦmq\VGAf՚h`A8BIciT'Tљ#=d:h i3u{H-$ ?J" , S {k^?-6ɢbES`B@f7e_3;F4[ROI\]{*6wSm`m(ܫgoP](`l!eU#,*{^d|O@l.vdRBz5*%%gv+oOI81nؑoЬĚ- OBxJimGD0GZ5ayRߺOi$g gI7{*IBPM>$>8s 0'oCjҍu2spbb:%Rk\C )Uds$BmRDfq:x};Zj/|k~L k}%Y{YZj];v1FKg"4wWjNLy75.n9~%%gï4۴O*RFM9t>ԣmɲR2Wuv7|~]'.h.!Ĕ%)'H* Z`~*&8jk\p)WocFIwbQej,ã'8rOSoVƟiMXN:@ :t^L>Pu3BZiE1TvadRn6*N'SVd BmUݥY'.X))l~\R̔~]:) +X+-}<ȺΕ\ M&[ߤ6y-g`'dSOtcɸ9'_d\ǒ"*+@I в}QPZ>m_m {R3.Us*r@ 4{:h] r 99&up)* -mE v*Z~WQkh$ڬ]$CF܉!e1OBSG|drdyjJvr)*K"w~,cs;k;ճZi mu^+aڱxY*༘@@.WjfYohEqu8RY3.p[rC)P+7RT @ @ @ @ @ @Y @ @ @ @ @ @CR$ q$UYui3Fj˜rދ_qECGgT:)6EVr} xd{AW<q[cHln)U}YuI-ͳ.c1#VIJ\Baѻ6W*OMuUIH$@L8AgiX:tkL< fE59Gī:qE=D6_^n@H)fT6ke8(mKZu0jo`YjFSICɢҦr)F\KmȎ/(kgS,YQ8RB~T:ΜO;#+x5sReÞז61@R΍1"[߆osmZ?]mt՛n](}iNm`Y]3&xR:<>źrywb 5%w^I#5y$PEjP@i컄Vw48f9(qL$çSm[~ݤVvr\Lt*ֶ,8m7:m 1S!͆Njx{lsK WSR|mZ8>! C>U?* =`iXՍK7U5殎\&#,8jpXe,δZ |)IKZ eS e!1=C|T.Z34P2ѯT,mW3_dgUxܿSK]Dk^z[.4Ā)Jv$G_׮=#Ms +1 m-#g/&uSpz³we|'RVQ{FHS'p:޽#?k@b"Ptnhp/h8ЄܠC :AΊ6i: RT4 hIbM 5*=;N LC˃5:WC>2nOi 8OM J[RZh ;M iZɺ,*cS ԭԁôU[:Ev9|um4ࡸ-Jne.%?#qiXudSt(*BiZxJl`MR:w9l_;w73AoqZ*AǓ/gk3kp\߅6FKڐB@!\۪YTv&{219„zR 65ISKtG2 d?gJζGfz3˻kNBq=ٔ ΣP{uđ;@UvKCze' t2vqXʲDY& “LxYUe%E\TVҤl+Tvmo-d0⢍8G$Z0q>c7x-Ze}glkt$زJdmIv;緃"-=Dr>INO{f1j }G '.ؘdyZ*OpRҦHxlsv:NZWN׏S~󛽰&m;]UC`'Cmѻ C >%qNj1I.9WV4?bXA(,ln<ڊxi%&@DHK94M^ӤZ|4RCPj"@* $V -9=^UH0 5Gg,l8(rvV-{.XiUvkqp OpWHd |;BH68;0+Pnϕf4\z랽=ݷgb.;>fE N >TbEیV(B8٭~U2Q-ȉOWeڭʸ\Vgis=R;U3d2EPyQR6T?dwS !LXt ETZݧC >6s~@S dɝb#]&g VA'韥rpglEb1̮[[s>/NNnCУs3%bETu8]+K!NuWH罚+:5 3"vXUuU"qT[t!5QQj2Ɵo&=㴢W#* L턷%9' J%[Etg:> cǷWr[гvV^_9v^nEeKg}DVc]P9mk]Cɕ2MSSxك s<ݱn& ŻbQ0Sý2][)ɮ )F|վLݦem N-es_u:Ⱥior6FէBj4>WRT y5jOpR5>k9*Eb@0-qeC=j㏥Us=Wt-Q%ǯ=4%EgI΋ kEI:!dcqck`T'!W eT  %PC^BP^vU% [~5a̜TzX8{P 1 +[l;O+C V1ϓQ[,PyB.m՘s|zv>NdmѦ! ̶Lx|mkĽ.\N ]5It<\ٲ[EUs wiBۘ5C0'#qq=  hhd%!u+¨ D [{cƂzWsii-pؤQ j*{O74@BP^I  *Pkn1A`V(ly4q9i jKVήQnFq\QO7mN4T-KQ9ZBN9kWۼAW'f ms|P{__JַkVAZVŗs5.e`;30Oa\hz,~0}jMT8HidrF)[e wB[ETt7^-L΁ShᒣptWrh8̤jǰO֡- CU&tBF\=~|;ԥ&y,EObĵ<_pUsK@*v፴NhlUxMlᒐu iun58u(8h=ұ)Yy,t^B d#[Iqdǡ>OPQ`zq0`|TJFv T{Jp`GqlX!JfY1BA,ppgT94:QqX=݁2]_YNUSVUqn-+S6iIݗOSvW|Ro(k+o>Yn8&OGZ*o6֝,VL2r#DR2HZ\H9}-*l M9kCx+4֢i44UCD zd?:uvܱ6VOS J"nɞ\"۫+A;i!Ѯm4e)g֙ڍ9!p5!XDqYZYߋVKQZlHǁ:z H@==g/*XXTN▍~kݔAOJԴ067ƕ4"eeclmBuw68*2VLwid!VКRe)ٶG kѭ>'.UOi\5ylnр$S(Eo煺#o`8(uLҹU 8`[w9,$Z| rmҿU~v㪡l`ʸ{=ڻ{Wnё)gskm ˤU͍h{=p5icZµ5D.i(~DB5  wnm,[=J'$*L@($b˗3NBᓈ9R4:߻I\ f@"@*@.@Xۦ$B<ԪZNkf-yQGd硞LvJLfA ` /}JLinQ jB @"@@*@"@ @ @ @ @ @ Y @ @ @ @ @ @ i@.Й&yn~d $mk" -#5c /YD+*gvL5ۺ8A ve<*$1I@@7e^#N#)-^,"HȦ^&}U3g~6-U<ܜw^* ]>?Tst=/osRV8z{Ԛ *ͱ<-\A˹Jn2cYSLF8iۻTy 7u;|%[]{%ci[wzVriHm3X$S,Wp/BA# wJ-ʘUl#2I[5K&X7*zpӈfud<+Dn&@FMUhږxZBTfi ڮj9$`Z*h[H@1P[G^e3{ԧY'--O'~_3ri]50BA5ݢ+Y۩anURo\vnruu!";XTJ]Ĝٶ/:+>k[%JLܖO,h-Hʇ'VKLpXxne $PZNGKn1+6uiID^BVlǏ䙑*ěK8kDɑߠ,]Zɀv- 1hTueKĭy\/ m;fRZ~O%&fںB|m#S#==fN_W^|NEzCX*v%c[bK~]k_ùsNdϧꝕ^nѺ5Մ`{ĵɎVſ w0Fm=U+ַ[!G\ٶzM8h3ſ{|[jʸ-IDFd2+"Z5<nMnb=KK8|P@t ֋fאn^_G0:J_yUa8eW- 基pEiwo^!^pSslZOG QPKMu CMT(n zdZ:qeꞋFřd{4Lt $t_ j/kƻËN <|?X @>6O @@=4  0B :jde7޵Þ}G`h1IsmxwKz5y7iS.M>õ2@$h^8"8|eduu SQzAgfRTR(hD,j% ^[s*($P@U>t RaJ,U}Gu&!'_=4 SjO%r)@@fzyUqUU6w'VV9 -;9,:oJ*Bj4D|͆2{mRtqzU%,#GTTׂ;F:mAjpD^0… i!@ @ @ @ @ Y @ @ @ @ @ @ #$4Vxm|9)+h B^ x(kòZT~"2G0զNGq\C$8$%/*S+Q ז5~(x,z_Ww=,uMZW#*ǖҬmOThGq "9 ٕgVL+SĠa34Yfwws =ǂVOAxv(eꠞ&ǵf 'hpT)k9Kx1 ~]xT]vɴF20FuyFAuSrSWrk4glTsFѮ2j@_VJxg}Ւ1o#kImtv-RMydv͑*@ͧP&q*$Vs@ |;kNNܜޛЧ vhZ$7u-B8=' '$䪫}(D|rT aCEfAr 8T5%ӡژZbSpW u> &!ݫ{JͅnF s*6|s{IZv>cn#ihkFT"sb AW% [* k'KT٧sP.4pL(iñ N5 @ =x6C-X_}-B.%20iiU NFEҔs@"@+^Xu4Ў! MPI#vIR T@{MF m!@ @ @ @ @ Y @ @ @ @ @ @ @ BP&/çIp*ɫuBbYmަroYeE"V9$ HG IB{[;S28[VMfxܣj V-?s:<ʴHN4ᩇ" ݤ56iCmUk mB k#5*3Z2h/ zl S:AȺ ƕkc|/h*E_uXM1,aN '%~}풭ǁiCgj TԪ ]] Mh4Z|G rI/j=5lk- #= QgnEr\K%TնIͯDOk- 0'2MNL޳:\ CX\s}EI .O"Gpۆ0<کy܌!xی ų-=_Df`K_DIȜzNcv3j&ܗu"`nKm6U<=!gmgW/X~*6ї<65clkP©=$4ѫUX" cքW UY ѰhNڭ qz)ly Z38 *U[:)P0 `2Ht0 A:3nnkZ^8-uș8|p#5x];"-Xbܑ1^F!o2)[I G+SDcȴR 0h^ 0SNHqVԽVM_3n 4kʶuLkȽ:27ל$h#Q_Bض_CJ emC0哫GLJc4 u-5R(e墀Jcd=LY2R|{L&deo(V;{Xzo%"c3tou-K/s'Oc6 >7vz[ m+FEsp],)ALvnlɡTiaVja.jնg-N  \Ng$ Ax! ;7Gw SgcH v.l{\ [_:SEhZar%|ʜǛ"T*7Оpэ).X YoԳx<ˎ1T:-CXn-vau''ڮ%A@9DL;Q%i{xUU+Vl"F l 5<4Ў! N: Cڢ o2F^9 q# +_'nZe`w}}+u9ykv,ݬ@y}UK|S`I,Jf-O4p@HCZA#N+w &gG!=SH͠eUTtd]Vc,)&oNڛ!xj tİQkD5IP@93GxGIA jB@*dO  jۢE0RT @  VQBR@ @ @ @ @ @Y @ @ @ @ @ @ @ .x{}cCRi#i]@]JZxm)ڎW?AZVqeEs@ -keHŎK=fp.:|N%5JdO'4liL{2zV i*Ѡ>= pÈسl`le:tWRsU*2:WTׂn]܈"٪(y-W|QtA*+[qW9zUcvz2|:B˓o۸j7k7Ɨ I+)m_Cy7֖dF&]ųV|~s}!ڣFJC8UkŒ1buZ9>dp"|RNzLo ]fɺ]#xwL\+w[Yk%xB);oeMRLjJ;Yݝ`s*gV,I*NZ54RUM{)2$~EUft,SCR"1N=jY*:'6^NGFVM``Z9~%JЦMJ2onJ4d/2UzBP-NQsMM D<{E|$w4\rYzYB%~,b*wDd)EkɌcl>*S&%mJj@ZV^8 $b_g~;jG,dm`'́Ɲd{Y Pc@ LV5['UA< !2_w3o+Ltc0xwPfo!OPGq\G^e-};Iy'9c UٮYSlA8H(jjZ^ɲjemfGu#DUiD޵eiY J;[psڻW!`& <8b{Un)4L¾rOb'Z3=EZQe"Rf@ `tVh C9(ziFܴ569 {M',nCSj_J7gNeҪş";GK&ECf{N$(,eu3{s8d=ɋss%֞gW%Ҫxs[,I%q0QcLe!ŮjN$(,Q&? (䣃R_Ct&k19l.io–"HjA㒍׏ htIaJmsM<_bvFoI 4좱Wt:]<ޭW`i,n ~/wj"M3pMsbhsp#? 7#W$Jݦôh3pd9 .\{~Q˸׺enCjw8=V*[`n#:ƣ%Zmgշݕ5Ӏ?GONck2 9^ܝ.lthN+;esۋhfy:8+^<0  j<GPZ y[TGeOݬRWܟY\jH& vAUL"Oh-h\/ եfμr(H*uIA5)wOuuhOgbڬ2ՓZ۹ͩR6 *TmСjEi$-UACEĢK*\8L! DS&JqaiT'R8ZUH*%XGG4{(:{d*]HLM*d|Fմ0:!$M}FAb RDM&i'*4qdUᖱ~&5گU˗"]J6sDbeĀ;O8d{?0ۆω#oY\ܶ6?H['_+N#!t@L5'/B,Rfؚɠ81UC6%T]-}DVDU6p5[Xe|A4(뵵)*t/oP -u[VOgn>nJ(O@Xd:8\Gڍ4ZKS[ܩSzV6GJ<ԪZ @kI JDB FE<C\E*Ş/,%Z6WoS9ǒ%U`x7+227LhVY:n5XY9Z.qobOWJuܭ y]襥G'o(gtuE-I2:= k8\6}Fm 1+|v<^)M:: Q=F @zs_d3B``Cvױ̃*k-i[Pd B@c.H5IRó.LY<&<ԗ7@e^q<\ٞۆNq9n$Q^UB>=k_ ]X]CI x fW. =8# n,4$`Ahy 6bNv j-ZCŸU3jIm|FMtTN5X柁j9.lMi4Zbn58µWFZ5k5ǂh7u Vp'yd\zqPq  ѨZU JGK-ŵ 6PX%<>EB5$\&JDB  @ @ @ @ @ @ Y @ @ @ @ @ @ @ @ %0;BRk&?4,c~]bzi#khmZ=o^ A4YLARqՎ* E "m3T%VjC1jk txylfYLP5SjgIh5Z&ZH׿Qv.%m֋+=n~&B ȭ2re &ܷUZ,lJᨑH*S'ħ# ]6ݨ#W>_ǷīE"cnsZU}7 l1s5]8薯y7u>_ ,4vL4Gp!`z0W*sQGk.{brZU/muBa$|ydKNYl5+NU\c;MB w;YJ!dYnA>(%  hΞ%#Sbj2 K܏KҼ~W'k<*2a=osɻ_r`@  -^$ڳ*w8G4`.=$} -n_lc3jKCgӼ1DB5-5iRU6\IĠnDB5uH:!*$њ(p i+@*@*@@ ''r>fMiJ:o+@ Y toH RlJ!)  ܈@ @ @ @ @Y @ @ @ @ @ @ @,rsړPѭli%&@@ O% I< qnY#^Vl+ЏZlUaSM k^`OZ#K8іa3#h[К7M8b({Uj koSUF5SF4qkf_ jrV@'=h!C\^ªhbBţVfjRciTq!sIZ b?Զ[ÑȔvxVЍCƪ&̽L.o{-Ԣn~%҅вdXTb*<`\i:eisƒpW%ۋK-N1sHTVK:Qw @PkuHrxٹ>cgs})F~oYwVx-]XMOG9~ kx{ʈ. o ڕ}o寗Xl}>j)P[Ex&uw4ڶv<#$jv668 γm}**U*SFK5TUՂ$=ӑjQvjp7]W\SX䶰zP(M05J[¦1'8^UZfjp._&3BE%iӡ1h5Q BT+5 ګ+f]·l&̺f]ĕǓ386]^g@I4]mRT@hΠʺk^=2mR AZ''ᑩ(*@"@ @ -4(KP" @ @ @ @ Y @ @ @ @ @ @ @ ؜hh%݁DUmX_ -=蜓j:c5,?eln%}[ Bιgv_oQ4DΗ8М5ᗶݪK̜+YN78 $]⤬H"$v5T -[4bgKx_+r>wE'XsӆK |RVp浧 Uj:EM0д8- m0BK3\j2܈YAW%y7ڼ&y pq]j{z],?S5k$P!L\tB75 u knLP4M8xvvV5ڏ!Xٴwb\ZisC@^i4DpGXOI-mDxQD}KbZݲ*U/L{cVKJ@SJcңf=-d꣆-UF.U^6eu#2T&n%74N5uWԧ%hWY/m#C`)Ʒ8gznJ`C^2R_ǶsfX%i͢B+|OdXk37n\!=;֮!ҎEiW%qsĜUvr[>݂71h˂UWV4#X$4 /]B[)k3 hiJݭ)wE2VCGj.ɀkFagdvᶐm4q krN@hZnrۀ$9Vg~U{<6WMć(UOY]{> &N押UgDA쥲B0KmMﳻo-kkt=&;ZLٜ08ڴ]{mjцUu||I:kl-9rRGϖ-}^-t4w}ӀcpGG;~\Gؿw*ZY?S%{kOGoˋmY7-dEu@ *|%e?gMe4BiY3ϾS"pV3퍲ƙ}]i&#m$ $L;|a.c8WSySj@FW&KK>Rq#\<Vv=k}sAHujNU]mI萷ԸTU1UՖޜZ(A^*~sj3'NFgպKZsh.lR?n$7mE5!k3IԽJDj,d;Z\h1%t8KImÎ}/S8ɟT-N ~ɯas9Լ8WmJIlQ(Oc"2bG`yhqoh5*QUU I ̀͹΃v[X .244s_2-R_qdm$Ztۏ>Y9YtեǶ$wZ ҃WeEBœmB3(wx?QgF%h] $p] ^%q0@MxH1F׀Z( [RܕЃZ(:ܐAL\JKvv{ݔ2YIskM:6Vǘg QBdj*%,aqPFԡY$=|i 3]ifC} IG=oI[j/ܹ*J=p^Yx3,rKu+`aƌjT5un} vu,N4{KGnkgίFKφ7 ɦ]+EUtDy9a$2ԙКuN|JQKK*o:[`ݚAZbpktnaBjO urn7P;\so&6@f} ix*u?dKN u P@}ֽѼkz|ZMcJ2ʼn=fn#s8 . GE/e#@r\RT@*@IܺZxi4iK+~b%&b @  LBj@ @ @ @ @Y @ @ @ @ @ @ @ Ƥԡ-Ȉ@ 4v]s%EJ-GX[cqx:q.i: Hʉ!ms)#)ءnv^s50#.*ɎrzFE w ~$gNUC! \(}K ʝC6{;X S)Ȥ#X5ä.qҨ|&N܈ zW%F@9r٦zRM'^pY2~ڌr?*f% #en%cM+ uA#hr5 d|GaSSt h9m5˥3KuDQƿ^tS_qfHBSB0P @Ь\[Ѓu٠J q?iܼƻ55 "|u#\)+Hoᆑ*GeI=Uɭ;u_⤛7BM-t܆oFZu4Ƨ e={xkr+89Hxu4>#77mh/kgʹ,l{q.u?Aq /!1BOkrQg>;W5ژPx໱y2-V=&vڳj:u\efu⦒6HČTV"M.Ik#K67Hp.|ݐ8F VwVu"Q#Z1j:M-H= LESB[*[ee B:_bգ8NGi[Iɗ (sek RQoɝlpE  }miZj+H6M B8V+XMTSAJE)iDCԮUv47˙@8j7y:UͧN;EszuC:^I|rP7ъzƥ=-_6n͖)!4ky~/[(rs9WE❻ӘSφ\LEipt_Eʪ8Uvj}Q5͓*z*ٛUYIq(l22Ͻ_۳LqVk[L;.^eǏt%#[ 1Pҝɓ ]|5ubVZ 4Z- -k,}?KtZx 0TJS9aJJ%ծOV-,i{jMnǴ[*Z7J۰hrZp-:\(G @  C&B@@(4jl݂IYue_TZT D( @ @ @ @ @ Y @ @ @ @ @ @ @ @kZH(t.Z8EÈv*gV.]ߘgǁr#3ԙ1G ڦH% %K4&Ft"'>=jf+',]$($q#QcLlq qo Oi8ζ:M?2'Y!hKeǪS'"NN+QԍI@@u3(6 S}ӏR|D`ykJ-}3cZ] x$$TZhTM:lv_0WIoo"24\˶{<~rvnFo֕ȫI2@Ah^Dkjh 'UyW8 a jKQc'K=NFi1{F&UShp- èh}|7}!o-S|V-[_9gۼ(Nz7jL]x4C?dX_Wض[}%ne~b |{KήO5C]G T ]k\+y/zCeuVėq3W**fn7v}I( q!ܩm;X,/8i9}ӏZ%z [Tw'ϺԉICchb>l >K{>5n[SqkF_sI/3ܽ5ܻiXGY.W+k4dIZfm}F$F5νj5gͻ5^C$`/7ytMK]@"hl8q ;aVqU]~ 9d t6Vطժ}^"yhބҎak饣8_2[j.ZGG&dRaI#ǴвN__nPƃQagK Gιtcou՚<̎)kZt4 ks<XY;3j;y;f2;: 2OE{:M2mb T$swߚ^7GN*L·hmy2BHA+'VS 8;TD5PiU#;†]!2[T#aڡB~YS<8E3X@¼W{GR3Uܧ5vpXjz243*q(;3gZFuFa$ǩ%C8dӠՆeCEyNX-ܜ9 Zr8wSѮs籺Hhek6ߴIt2 +VH]5#.Lg\2 anp<ʪ5=]&X^EiRKK#]"Mejp'DtPNKZsmekg|jN?2U;֧ W$%a{[p1;h}Ti]|_iv]lDZwcy=;JZp A@om۳[n]pHpcҹ^*ӽ|>qM&M6aLn2ZJ{n3-/M𿪿I&Gy2̟̣6Vf[h _yWY5Ǖ-m|/ ;!gRnT0޴L 4)N͒k8 ƫմM^;U'6ߗ}K^[r8ӻډem\0oWNVY.뗜wrKCr,?Vؓ:psOMf^d6{Wyu KݚXjwfMr&xVm;$fSk+<ɴv:VuOh)ZK~bKX_eMνNbU5-s k֌jKnH}G f]`)NZkesi]S08_kŭػ|cC᡼;V=7o6e7:"rg[xB. Obsopp450 :FJ]'YINxo>+Cup S Q_v{nmkF2;?̱dr%r[uΑ mAr qVpYudD1ub*KoLh[Dq]ih!q4c랛>"ZT ?K"յ͂(̓+ ]SÂkuW2]N?A$ ;UM:#❥?0s@aTBW]Mpز1WKg8u 척浤Wrm\6ܗi,p.3^iZnz)3{1W{TI{QVԔ/p䆴T5KGwkm$ϴ(}Ɯ*y9xt!j 4 6)E\N!@ @ @ @ @ Y @ @ @ @ @ @ @  Jp>kuHjB;djL$6J(,%mի\<ԸxYqA2BØ Và Lc"($(lҕv`jXhͨq;mw4@5UKЌX|P8568U|е ,TgN4ܓL0_ʪZ'h'\h1 muqY_XU9ͧj&J%l3AUU}&nXdBCY64P$*x;*b t´45cĥ`fa5ixe}ڟw F.I 5E\8?hL.uVJ2[Reע9{y#iÿϛxjA f[cdNb9$ݸ20ob-0CÇYZǡެ>>d&#Bǹ[1oݧuZ Gimo0q5}5Z6Yǖ89BÔ>ӻ[ZS A|G,ضE!!$ӹS%:8Vk~ } 0 竹ţĻceFH>]bϺcɗ]j&=ǧomj͚ܵxhgƯO/q.5ŵӁ8z28{&bjUUo}o !))h 1WwWWY6őG,`QP/l3*L )(jKVήQnulcGB-^Em*k+[Vև%-IvMxXQP.gYLWm&KLue+l'W'()ۡa ?Zo-rp|Lrxakv,uQt!D8c]+gq8v(jKVQ/5S5^6PakwPm2qKTm툇kd?vdfIw/nn_f<p2CQp*~Rd:3lqP"* wix湹F׳ʒײpW55UQNuSUZcnE&qYtgAY#N* m~*'JjUgE5dk&UvgFVRpZShS.i$WG2j$P(Ih)!k5 }VƘz9880RXGs2ϗZE)%kp\,k'cKa`$cU5'Yeng/w\.":qQu-xݲi mms#ae58W% ƦeU$NT+Q()Eaxm \8dkwaPi5  H@ $  D dH[9w V*e9(B!Im; ns7.\~~ ZmH";1YB=N7I$N4T4iGJ⠿Q%DVȇ>)3IRNS:(U͈Y#h޶ˇsDlMW]f5>w:iS zU*>$75 "u$8d~EH(eZ "1@OtC ׵UO"}]Kx:Cީli;qsa2uH֚ Mii\3 %E#^P T5(6t䐺ڎ!pA⸱''sGo).IaF% *kL n]gUKɖ @ R@ @ @ @ @ ?Y @ @ @ @ @ @ @ @{$W _/1$J;Y;f3VW'zisHP_P]LtR'A{$I쀪kEŻ1Dԯ/n'uYަbs<_аSwuΘ-0(ZmLVw\\jFjõRN0hp')KEx iBۉbcM\t3] E`e}k6v{27a ;D%J̝ϛ18E@@@*k[;[8Aȅ[VMexܣ]k5hrx^eO{#H}AtVrev]I9cq~!xi,h;VNR%{[ Zt8$6&Jf=UùgKpvxUݸ`O [V-w}D%cYo}A*lUVҷW9^5tgi*դyl[y\ZY.նdk^>jk^٩VuI.jS9rƪ߽Ry$rʪ-mmD\k5{-tqsb꣔xKDvvM֗8?U,X[HARbuxn0A\jϮwQ4ż0nR E̫ {6O̐k.x',J7y-s~ Ujs=N0X0 "源W&dw{kK*d?Jy3uZw}BYL؛!88ך)# S5#3n`еOC\Id=kv5uN+U]4ΦpX2溎ҿjf6Z  8FE3CԽY]8:b7 ڤH8P]Z$8doMx))mԫ$`:7pwdÓ0<ZU;ɦ˿+Ђs s]BSQ=-PucZک7ȶ+n^/˦t\aEUD[{Y{b4p5CRM[Msu5>p Uzel֛kb;yy2_uKRc+}/qo;{w9X{AW;mpϫ"Tt.p!v+Z=E2-=w2]+ u+J,Ҷfyjо< ;CYUxrakU[eppZ66xm23qs_+T482z M8RS4ZqF S%Mk\)6^R4E{6RRM+mc2JK^dutxH̖NiiZ8Xw& HL N(@ $eČkkk JčIA  sP^u5प%tNiGUd-;r-Fj}>)gz(fO<@ @ @ @ @ @ !#Y @ @ @ @ @ @ @  tBU[>6H2;@_Sp˶keqTW:M~Ued-U 9qJq7>^O\T{Nn{N0TkAi1F `UM1B`tʝE1d]w 0N?rCRBhhF8pw̱zʵzN|ؕ:Z*ҜQX38!)K[9o,0NKn6{٭0P7Y8xo8_Ηgs;QʀqZ, ndklf喖sNfZ">o^gj͚ڞbj7:Oe{q kLxucxAopdc/+c664͓='anpypI#ucz.ds%4>;5NftZ%mI$t MMBʪU d;*yJQ2Q6@ =N|^_ٷh3ЌYdŻSxmݏLHGK[#˻MԔӵ E' Z 8k!~^ca[3^9\yAS4bzsM;U2M\QY +jR]̸'n4Pl "U(ڻCe)aČKޯFr{RӦ*E򜜎s)- @ &-`s vPhNFm$/cI ̎\nRD@frq90$𢥗/"K 8ec)* +HҸd@BAdƩ* @ @ @ -@BGGGATCGVAFFFGGATCXAMGGATSFFO@pw ~(* +3+ UUUUUUUUUs%U_AU^`1{UUUUUUIJUUUBUUUBUUU9UUUQUUUU@jUUBpIJUIJU(BU!UXpaPP`j!WV\\UUUUUUAUUU\ UUUbUUUT}IӜp!UUUU! %VA*0}X\U]|>6*H* P. V|,"&P M<|}fK(>D]K ! #~}^ !>TL4@" >%p Gt͒I̎ܠG !!x!lr@iF ,"0!|d-&7!A$*3d#pm0217x1!L3 "1\20 3}015!r#'I 3\10`ݔ ܐ܀0"&1Ax#%BCv3B"3j0FA>CmPFTS 0ACnhVAC CAAr!A233>ԘnMP<@\[&4AE.H D@ 0ԑ 3 T  Rz}LӐ   /?M2},XMZG .pQc=ڰ j/֠D .-2 z  4P2a rЦ<2P~21E@\} -!TjL9 ЍMS @|_z=*VLčtnBpx\Ot]c?gq:m# M"ƽBVMb\`mB.ѺݖF. P:1Hl@c2t@b$P~mҐ(1 EV=MXg @bs40H =bjDݼܐA],, 2 kpOE=2}LM$*d=>GJĐ~,G81 5! ` ߍx)͘а#: hsDA"5]QrA*  0Na6 `";-r%ZAyjmDh}r6L7 ]@hp@!s pRcU DPfCB`I@Äq DjJccRBj:v}G"}4c !r ;C e`1o!)#L`N=`G!fN3ʣXbj`3 p!2z! H@0 b!$>ZqLqGM`L7 5]$ }l 02!9A  Ҽ B,201qH`e~جc0bF =m,f2}2 `c7   ?d#+ !TC$0m @0@Ru**CZJ#f PB ӵIB,z3~ 2 l@Ta"!e(0@\1@OP$f05p? Ӱ)t9%"1QRzB]<2*1G :B0&0 p4 )  P`]<`=v]Z"~""CD4>IlB. `rJE> hm~3r/(Jt #0@g"@fI)F]`^ ?>@,aG~cJXP ڰK+@b֩k^b<Kɨt(an@Esf4 1^PM ݐ!֥>I/qviH9 Ai4&!&bkBNz'XUD*t Sإ^s@`F pэjC 3m!"2RR%Bmtc"?H?H 1]跬悀6Q36'|y\p|.4`f/F*p08Kg}BS|m!3Dj`zp<0b (PuAzd QMd^ay(J20/P@l,Ap2VT3}1s9l@mAF~@` P=`2 *2`0"֩PInÀtD0Ԑ8BDg"C]^]!(߼PaP\2Ědj1IڄOp̄x " r 0@\$*@-3@cmΐ =&D3mڑ~p=:J:PƩ8z* \d/ =F#pN]1OB`l|Ena3*x<ԾphʩI}(.\M^$'jBiXߐ0wMfT0`UAm 6 sT? <c !ʱ"3>o֮ѽ\H,a8R|J9u(r!jɐO$C@mH xm?# #}!0x@֨=i~| @vN\ <ɍ5vBtIRc& ,qrq̋`l,2M1D@D_ ҀI,򞢔Ạ]OHFꜲ@gAq\P0~p6`ↄ}?\+"Tq?2|pqqAd!qr ҇`Ӕ˪Dr+ PՖȒ某NW^E|OLpq]}A|Z @.:urHgZHBc˶2s H1uȘ̏\\:06Qq 1|<O@aBIs,RTfŝ.HDr6#RjE0E\bAPQtِ ˪@N7DP|]< 3HP^qu&mCZrH$|Yj> !c@0\s _#(JN>r `xL !{LlTPa P8tq Vq=yp3ZyL{¬pѠS ״/':E4騐(`{p\|%tÐDQʜVb`X! гʁA|tPZ:dq2,WIΠp,\ONw[)@40L0"<|`p44Bam"M-'H2F Bbh`&B\Sd'TD0  :4  N 4 ^t 0W#p "@}>VDx}^}A`2|8rz%P 0^a 2m-r^(fM*R2"Z7bB`(J5ݠ2=/9\_ B-"1L0=^%!,lIPfA 98 @D*3M-\ "7H6De!<`hFAM ;jH. !]Jl* =LzcBGM&BhY` x8 Nk0t¬up P` zA>cLJBg JbiDi 6M@ݤ@{2m rm 1f`$ JlVRL1 7VaMp >f{|W 0D =r՜p]fNqXaС@oumLo!@d-R`dH憍 Qt? ve`~~"b"2f 11Apu 2"|(. /t }02`nrm-Pa* TC S_u&e*mesCp :v2"T"y:t,^dAl!tZ"  1"|?r 0}6 nN-4\Ѝ`=3 S TC!!!232""DX ԯf,(Z cc454!4 V E UCPPAcdxF4R   2 u d e  Uw G wWv ߕtd E 3 D T eg ucH, h1L nr 004! 2Dff$4GWgf!! 3mn^2g Bop }-<<,Ԡ,p}w}m]0 +*=]]]m|l\L<<}<dAMv3 %dAqnp pH,N".r0B,VU̠Ɛ‡,2D.@ J$ $XZPjbH""j=-!g3 P-:v(&D0fXrprx.\/^̌,H!!z!& !*!!|*:""6alX1=p1 !M@%vF@^`| X%03(63X.767#^9`9j53! ?"EAXZ^A:$z#"%(%A0{DP\,! q1C 2P{T!xADBNAC3EdA 3( 4J!ERL*}vR2(*"S#G$rd!!!0a@ a rPA"Sp% cQ`l`lL,2 Cɟ w C 𠸁rġE x F 3"3D U x yߐAYۑ 4E f W n  J (  6 4: E g _ PM  3 T v 4DD n" 3 #! C U g ~!lQDDGGATCGVAZGGATCXAMGGATGALFGGATSFFO@E!  5 "     'W U4",+@5 ] H 4 "# V 3_  * | 2dd C B :N k DVD 3 "#V z f C "  0g E3# v 3" _#   S 2 2 "$#?"|(v g Ul !332  B! -M]m|}:$D<D Zw\LM=|~}Vft8`|ll B]rlJ>\U]|>6*H* P. V|,"&P M<|}fK(>D]K ! #~}^ !>TL4@" >%p Gt͒I̎ܠG !!x!lr@iF ,"0!|d-&7!A$*3d#pm0217x1!L3 "1\20 3}015!r#'I 3\10`ݔ ܐ܀0"&1Ax#%BCv3B"3j0FA>CmPFTS 0ACnhVAC CAAr!A233>ԘnMP<@\[&4AE.H D@ 0ԑ 3 T  Rz}LӐ   /?M2},XMZGp! P j/֠D .-2 z  -؂#}" rЦ<2P~21E Ԓ8 f!TjL? ЍMS @|_*lmTx\At]c?  PJᴦ>08$3ޤ21\`mBMJRM8lH6b(De @bs40rPRc51 b2aM ~ 2 02pO5 =:@GaDҐFsA2/2G1 5! }1W .=GLSy[`A3bv@<}A{$tÀa,55F+ *Qm,H2}2 `c    ?dO$@TҠun4B,ÐA$@8"5b3EhŎ;mȬvf Bm<|h"]D!~ss  .2$ @*@( tuRJ3@ qVt ipDbq 5D~hCV p՜0]\6=m}M2" " `f (#$Zb@ =@d 0px":ĕT LPqb,l 4 *a=ƠM"2p[ ( ,2zb>*TҎײ^J b6(Jv ~PUf,2  l@P1m"!e (0@\1M@LOPf05pO`%B+:24 0)@0۪bܐ,vT~00>00*  z]<`=v]0~""C4>IlB. `r%h>]~3r/,aGhJXQW"9k@2V#erAja gP!GNq~D| Z=P:qsabbHd xpDa2 4pUV/,rRq̋`l,M1AD@D_ @^q|TQMJ(JsZr "P3v*?2V)0~ 6`}*p\+""12|Ő V,,\x(ڐСHR$T] rDq@s^MVOxg@CB}|`LpzA]} lJM҂sq^Hj*xH-*H&TbUR|-V 7hHFȡJᶂ\\:06Qq 1|<1/b@aBơ<Р̺j lذ&tpơ>e]$Ag4ŀِ N7DP|<]bp0xCB:QܦrPv2cҼ NdmcI@0nR _(#|N>r `p L !{LlSPa pP#p8'PRSh#6(04l8Hw4b0w ״/旎@:E4(`{\|%0sÄD}rpArpXjaюYʠ@6Cn4(Ρ 7\L\Oއ[|p@"E40L0"<|p4DP~ 1D`|$z=Db@4íT4JF PfUPVDX8HJ  :4 N 4 P^$pD_#p PpMR`dqPP@**pZi8â .: 0rМ^ a 2m-u O4 "1T`m.*XÄ́p=x'ͦpuB53\_ €ͼ"1L0q_oDA`W@ Eh6͜U4|B6De!* FRAM 2/"0#dTM`>Zp"PhZ` x8 Nk0t¬upJp "1vRth}͘K@f2mXrm @/ 2/D*rtMNB`-/p |!|W 0D =RrXq@?n/t1Va,"XpTܐ[\X ЌLp^?>`?KN0>FC|̀ !^~6}<dAMv3 %dA@cAhʹ^$N.r0BV8z,2D.@ G 2$ZPjb4"@2tj=?-!3 P-:&@D0frrprx.\/^̌,!z!! !*!!|"p"6aqX1=p<1 !Mr@%vF@^`|ɺX%03P163X.767#^9`9j53! ?"EAXZ^A:$z#"%(%A.1̈0{DP\,! q1C 2P{T!xABANAC3EHA 3( 4J!DEARL*0}vR2(*"S#G$r@d!!!0a a rP"Sp% c a`@l`lL,2 C w C } rġE x F 3"3D U x y&AYۑ 4E f W n U   *(  6 4: E g PMz  3 T v 4DDҤ Fn" 3 #! C U g ~t!TUGGATCGVAGGATGALFGGATSFFO@pw@~PTUUUU@ø! % øcpC!ðUUU$xHȈ!U袠![TaP"X!XUøaX (hȣx^+ h@@!UUUcx W_W! !UU%ø!UWW\bp rUø  ð0飰hVp bèAP`^A8򞣘aPjbbpaP&?1A`a84Bha@/ޢb`=! ( ^BXp颐bb ͢bXr`P!p@`PP\ ־} u\瀪}ֵpp}bB\4 e)88%*UY9WWV`sAUUWT !A ! ! !A@AAAA !`""ø!`ø *  øA@x Cø!r!`X_]!bø /ø!X\``%!UUUբA  ðBꥣ `PX!bh"@ UVU c@!%U Pr޲a`-?ð{abaH`믯h)''pZ,c壘x ^!] j@ 5øaPA8~! AH&܂␋2a`أaX,޾`j\@ <[\<^ۻ}ﵷf<϶}֢P8=9$6 `! UjU !CBUW]ap Y <bX']%Pܾa 5RRrcC8NUVVZðAh`5+Ð8P`PPXE)`Z!|{}UA!`cHATuUa asZ\VAA]PP@a&`U!ֵ%uUUL8! !Ux`AA //!]UU!WUUA@ A_SUU`A uUaXAuUUA !8AUUA bX!\UUUA8ƀނ %<0 ¨xJhj!`@Bj"@AuU]YAx@! & A!AUUUAd!?_{b A !`AUVUA >ƒA]U$!AuEuEby`( 0@\0!\Q\疵ҝޥ+*>\ \py΂44% 7TW U/ί{ȸZW 0+Pת((U~uxW `TX@Gk8,c+ !8VbYms T8rp׵bH%V\Eau@TTVu`9!8,c8Ƃ`\WBAFA A A AB8$A A A /?BHAUUUbpAAP\VW A= !Wu/!(!}UA`x &A({߂x!a !UU5cAUUWUapA6UUbxATVU!_WUTAUUUA b !Twb`!5Uqb b Aax$AUEUub AUUU֣ %5\ ֣` }Ӝ( \絎\ c@@!8a(\׽(( YX(}}x<粔@@IJTTTT}YΧ.p]U\UTPY &I*4׽ֶʯG֖) }Yu<׽{#ފR==''<Ƣx4(6*<邺Q<Ӝ 2JU*y`Zh̵UUTèA\``WA ?Q!5xAXWUB@!TUU!@!@!@!gA A a!?݃!UU! !UUA !WUUUA0!!FVcAUU¸!V!/kU!\Ub`AUpV!#AUUUA .b A (?:P!sUUU"(AURUUb !UA 8:!|պb Aו59Ɂ}}{ނ ]UÈ%}j(B)q4(H@ XPUUV<8[ֵ`׽*c8+* b(((u{ÈXW 疵Z8UUQ@`yb`aLc<8羀408@LyP4 ޑ` ֲ`U(]w40AUK͋+AUUWT9AA(BA bP!TZUU Ai! AUUMBAvUUXA +?0AVUA(A]UA75bHATTTVA0A^W;!AjA@A}UUA ASSUUA!A0AUUeMA@AUUUmAU- PPXXX}8+5<4]qZ/<Z~ǡUbBiyή@%%*jrWT4h™Ζ"ƊZXubUPE9A$!!VVVV@ ðA0j[Y!U!&!XVWVb` -%%A8 p!Wubh!(*UA(Uxˊ@\ϣ}h`JjyΣ\xxjA ! 55pAVa8!WMA5ׂh!TTVWbX!5UUaPA\UA(!\u!aX`A(!Ko8a5%_Tj~{U(B@`(B!UUWVA(!UU!A0A !TU]{aP!WUH!וjR!UUUR!UUU!0IJ!UUUZ!UUUA!UUU ׽a yujy~Z&_s.4 V\\Y!Օ Ib UWW#A !xZW|!    !"#$%&'()*+,-.Root Entry\256_1e95b4b727019fd2*X&256_9786db827a98709(-@&׉ZSJFIFC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4@&׉ZSJFIFC  !"$"$C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ʊ(<;V?XI2ڳqڦQRVfT.jn۟ėJ}J7gY7*beƋO5 Vݚ xG(I=Q%@hܘ/P}=mט,`m&ᄦ(Ġ 9#=wN'dc'wDU=j1oC3۫$ dsqʝs_Cx==+@# FvhoO;H$qfw> fÜUՙ_cߝ}*u1a1@]c8Uw5=.ϟk t{tJ+[^<3Gy7Zt,}"i1& Lз+hݕ*pu&Y{O3J{u ֳs[Z,T"foN2\~UKH5Va\X~=Fѥge~nحoq$ 쬣z2V0XI&?I犭$S-rP܄jœ:WzX^kR@FBaƪʾ\*9/g4E} >;Xd{_ٍϗtRAq8{鏡4۲BQ6*3p?ҁFy>>h[鲋%%6B==-֦iwCa*'ҲhO.8;EV1>;}xh=nʄFXA9yRV!X}NZЊ.J|6x$u#lRffYIfP?Y2~O(~Q0#2:r%5f:sA*D졓i,v*9z)#u$O(F`҂tUy|;{6vl`ПWzu2TWsk/%Ԟb"aӨXs[& $'Z;RU39F CПϵ:AJwVvUjs] #VXVm'fMJxtE ,̻ y=rr(ĺϕ8U1nm،]n9Yʄt;}KFw Eu4KM6\||U[ChLKs#OW(ȤI K+g|g)o+JܭgciT3{\ܿ-YwD❸SS,8cr;q"_kmN Oҗv-b4>ӭ/aXNwc},.H.*o\[ Up3ZvǓ۫=ϨwQ<Γ~_$'*@{?~>4xg Bi?oҹJ/Ś&:b8dptfy>V'x7Pмma Xaw*m~U򶙷Fs_1I$uЯ.?폄 3mh^&SHmC"T!n\:Ҷzm7%.ڋ.I )=ip̦%9sQ(bvKl5HqҕEsmir%rMMe3#;G+Owiڏ2FBoQsRj.Qc ֌jJoV*:1C5`_?o*}]k͑ڼ"InNn'$4=~cY]؅қ5)._\5ɶ0TdاpVv]PNg$,kkO7Q5! )8=;M]Etvq[&m̃k7jOHT20̸ n,W5KW%[-HhJ)8oùⳞf{9o-G?63sӵuzİ?2fLqOι9$Iݙ[ G+ѡ)J'f)Qۿm5qXَ77wzƫ } Edf#(F3?=x_5wpקWSɭ<8'^^RFk([)o&KBI'HH8){&׳vg2-ö\Y_4ڳD>B*IkWKӬcC+C G _<;Tib1ݩ_{n/, eQjG=[<~Mr!^g>ӭjzʍ #UVQ~f2g#$zF>٭j5?dT08J`g<Ҕ4H9mv1۾.B(ݽHcִrG*3m˹ #ҕ oǭ;lF>gGwLecf -DµЦI4j/_]׃G'#z%Ơɀ S$g]~+ < m^N?ZfmI҂7mmS[v? "Qs߯_͜xX!$Z$ڜ+P?ި[q!I?N?Z$w"GujW$i#I&[c1ƏÅF+J:tr[Q\#$8 =T8<ýF1tU0#S "IEUc%#P.\ṳ۟jeᅦ"qa7w;H/|%1H g|K&@"oZksh9-ptrL,hnEF22):e8|ҲGn?Yŧ] $GF}I1,5<у$~_HVs9rGަckB2I1A&$N#Ǔ eG+pE#*q$RJ={W,gm.mn]M>\zw{~q G Ϡ53:at&@RT!=`;yYG~N:gl}\\{2XҕH23|=AV5vX<L; Ec N~v$#^~gOF+$?tZ:֥heT F@6Լ,*Jw~s,lw80q!k jLV]O'6Yn..W=Rq\sSl9nѷ_+ݯ$zvjHH y<2cUr'8UǙhAd֬/ͤ1q4um,Hk_9oiVu%e{L:SFj4UNKzy C<LD?jVf  O_ZO67, B-m0+f8=62Gȭ} wW.`7Oj[|n^27rZְZXyNr#{]ՙSp?vgmJRW&K,{B†9x3Okg..x˒Y>l| 8i9ԡn/)of@$"$}<bXe喓yiև{"-5w ;# : <G)L? I$[h"))?9+$ԥ)L1v`^}Y|G|C}k(ꗗ a Wh!U]6V:Wh7S$v!e y(SmC id~O/嵙-VBBLthzCX|7hzbPGkaGqku""4$l#P{8*vSw۩"F{4B|J p3ӂyNKyKu""x/0O[I0qs]NI3NjN7MwlWVC!*'h98"`^$Yo':ļj#Xʒ֭İO.Hs #q$c=Mc4Ocթ9ʟyyu1U;$珥E硘 ѽJIFO$R)س}LѲޤiΒ՜O Rs~^鱋P${Vj7ˤV\y``p"0c9ܭGҮpR\."Ty].,+{gי O5?N"t̨[ ef9AIc:d~reU = p8MR3=*A=}qZZ1#̌y}8"c`ۉbil9E=pr1ZF#HyN9OU4$O_FQ; pyNaտGyqk0O Ji_-NxٜNiP+Gx?ޛȼ)X洺n{=6Θ%6hԶv2A(]iY00_hf;Hb_ []aetH?ﺒgpT(}L\[rA001^4x7 ՛HJ9y0Z'Ե;}C}d בU9YX*b 0qxGNς~#HT,u.-)rJWBCZRJ<OR&lNo6D}lpg?=){HSYTu2MM\H3c.wp7ɬ ojJ2A=j.}$9+Е-&y2q88Z9S{iFO͗'wZK4jBIRiq`CG?ιoY0JTunYIo Z3:JQwI'BvFO]R{xhͱsj?oҖ{H%,Ȯg'y[%kW{w*T3Di+=J5Gdjk. Uk1<C];E帼HQTsg_uN? WͰ4|ZK̑nQWݐmy;E.g~gz߄mf ֭<3W8f/ﮣ&CqH y,1i35+]:9tmmU-BZf~sח HV>|sy*=: ^[+3)0$PX#bʮq䞹0-'щ,3*Y<酴H۾\'נSYyf66gɮMt'{WExՔO;O 3`hi&e`J*2zT ٢II#$3ߗZ,N[\kAW-8ꬿ/N}i'X@-nTy?"OOm漞g8 985N2Z|V'5f8g<r)dǙ7cַktdG'>鑃Z0ZXki-d`ːϩE՚K>.~Э9$ ˎr*mw35-I$T P51M cpUרT%cƽƭW~{?\򥅼#owIUaszgҺ{K4݉NpnVI%i]$x)NMM]da |U`A֎d5 "YvGZ箢fhI QjRwWL=2齕 ypI\cʝx X|W y40Lхi#0j,侸 F肴QK3%k'\(>[jD>ߥcKSWV_Ȱc =y,}[Өw\B jU9ZEiZGGOˎ$qP!=A2ZKۺ84I%kJ#zO-eDDV?wqc޳o17a8Y\,Wt-Od-.PW_kHQq՜x[Voөo[9Ve<,++ YVeDuR:z=ϗ!E"rnݧ'9?z>W9%ZҞ_塕i}e %Iw 8px T$C"@#Z,/&40lҫSQ0X$= [vV >gjەҵۅT@ҶvLk v<%ΔLE^ Eq8FrOҮiwŹ ff֓hXڽė5ޭɢUeG(^vxu 4}SI?U9dѿkI'o֓cTݻoWz7MUU ;tѿk<۾cO݅vVMZrͷ-ڼBD{}_Pv=FB'WxKk8[g+#kAMk~FRš܆rimk}KBJdwK2N1~`?Lyme`}%ǯsr3RDiVF_;Ya)&' C7Pp_*(mǂ=i֥fX& r~{UY/͸ѕCV5{{|-#J{~ 'g /GAD%ռ>r\O;i5˔DlR3 rX]Ō}Glz7)u7n=EXEV?}BHe=Jm#Zmoݕ8@M:ɳ?0KlSdʸXZۖs\\" vU-M"sV\.LG`RW?4\"0a}6LS4QnT6eƪR_i-9cO&j&Z&dU'I>_\4&ñYk,1Y913k{V][E]ӇY ?pz)soR-^JMIcXo$G2?ěJ+;vx-c\\]^ΖnȋJ(:5^Cn-ա[ 5L6A VE)[5.y2m=dåcZr쮶>n0+vHdMqn&!@jBK6[Ճ=r)/5ٮt\-Շk_pLG Ǜ-RK~'Vr}VJ*.vpj9%YRGi7ZI&nۏARX[\)ԬJv| cҟ\UU!Uȩצ`*sKn+y6زX=Ǚ]USTG%nʅȻq>m$6I#a=[t4rJ#&ݪRمlލ*OY8#sVsdi쫨սQLK |͒ sEQgS:u+7ݩdd"IcV6j{'OޫH =h%FfƋsTD`voԁٴYn#\.|Ѧ;|[AZ36x_8Xm/ơy<%լ/&{W$\nEWkx4ۙu;{mb[GgX;gfKǠhZju}a*i/W4HDѶCX妓ggq'kw*7͙#Y^gm&aınؤ寑ourqZ1MNZ}r66:r>nGf>k~mE[i&eӡkYql{WUg-úǷ,>~LuAdAi^endd<{Wk3ƛRjsϸf;f$k:4>r4vcBзO:R-Ԗw %2ĥX/qZ^,T.4vd| ߢRI2Hv uVYPԗc;7jIpO;Ԛ2UJgJ "vfrl "wZ;c}6W 5%]f;?1e\>et:m]hq򇅹ϩB.`ioە]J4VWޭƹRPUn?C^U̶Bw `ޥ$~j|_<0"N՚*SWmQ1MKPI#Kcw_ZK&*Ils0K5^`9ǽxfxu&N)KH6^ uh{dUm~F5Ȓۅˀ?t>&EX~\_uջc@\V8?vO[doG? =`~ +Ƌ~j[;[m?Pw'D?g4#:הx3OZ|J!=s]RKtKbJc֕g$0ѹIïqf^m8?c|*iUoWb8n7r!4]"kxcL>dUB "*CӭeFIVASo]i?{t~ʵu*BP;z V$Yl'7eB/> 05 y'j[jmRx*w<*;Ǹ)˚ H4e*R]^d7gIa<`R۳]ZГDT(0SFmUf7Ac괕&jFOumQ_X6c-,?xZVGF lDpos鋛3ˁE^&Z!_|o?ڇ' :GW⽚GY[F%c|<U|V?jp*e&gC>Wi˷tJъ6g+UD{]>^*[mY||9GIҵm*+]v53E[25;XZm|֞L|Fg/gGyNiT[]V]@rWȏ#m=ygEMIi3*F}=ۦ4Q41ۗwSNJhӯLotW)QޡR"6vZ$őWgU?Ұ~(Mо:!|B'Py?"ޗ4a?ff+éDf7ѹnLnߙd޲34{Ic֫\HΣspѴI¢.KS~%%DŽtkkb5ȋoA]G,4?P_1_XQȷFּN4YfcN1*q}rxoeNmly{s^ _DJDvh57ۖ2\lKBE.b9N;GlZ)~уwFnj/ۮ"nmaX~St ^v3-Ig]6:܍o5ʯnamO%Op/ .:ԣ\c5䟸~uCk<=T|s&FNԵmeM(ҟx+KCi&e-4;F:q]ug)EҴƺٮ"\OPռe_dl-G}k֯*H ;J, [c &{By=t'ú:mz*G~OX?|ZV"3}Lmю%NR}>[ca}laiskZ\2mT|+=*j.;> In:9#+k-&xn08h*=rnFfdǛ u?@85l/U0oV J2Z U[1Qm{}xz-.2o۟P[~S4Wg1K]|0V#ǿSVEYwoz(q*+wǣ+{}v3Hg+4*9>,nwa-㲷W嘶wԊ&ly%OuZ 8->fWݔV;uj-fos)lM5.67Pr3g+Ǣ/أ^Fuba*?J [QTٺel=ju+5>z4+0V6iRݛO)L{st&n<ɷ+" ~[{,J߹QZ_k:CK/_ v}k׮oEܪ%qb¿57F41w30vMt]Ʊqsyfʌ>it5٭NGQz,vG=k&kd{yH|\w4%8: ^3XZ͍ͽs5CQRQk_$ -J$͝7ֶnCF dH cRN홝p_=j~r=K.]UF$tfΕdb7}qUf՚4o-ڱ 7LS>$}Q^tXe 䫿~aev/Ypͨ4)$ ;GwoRx#Reԍýr^&ǧM>~Oz Y-'VWLM{[H;IJȮ'\Iwa~Q^/̆[ J)-=c\G =7H \.]޾.kq>w F͌G?xQQo^[3*Uz=E}#5Q ]#]ymN3y?ΪjW\[ˎI^FD|k2kH[tRݷҵ|mBrE̱wֲ4-m0IoW뙴Y5mUzy}%\_Aᄲ*xGJ{HFȷy/5:j[{~9GϮ}9W?ǥtǭC}$r <] S*6: qoo ;j:խźO4uqԜi}o>=%nnmC"|2TnjS<弚He}ۈk,hxfxݬո< ޼uxd>Ԟ563챧k<30"fGӹ#bcm&.eHҢp⟭XyDjӳB8'74 k8Y 5ti]Gkm-<(dỨ5bZmm~]t%-ᑖKkgkgL EJS&thj[öKhO;AR΋-Λ?'v>OaZ#h$Pȹhd1\W%ę//_ﱃ DnbNo\~3yh۶6ZױkmATimOuU B8ё#eHB#~n}kթVNu%wu~K7JbRc95:I"w cix~Kx洆բ%9QV,< ۃ #cٹ#o44S4&ɼ'}$ff둭ƒ͹UJV$wCnp%WKZf/6y5kW^-b{U[ĆKl#Bcc|-.ΓHv-Q+yFX2'iK_*ZiVbE^2*7{4֙66:+7Ehm'To."].܂ԳI,D=EZds)Fn5*貸)*~ .mV&Nctfqcc{ebb9O=S፭ψfKT-1Eeh/VQxiyovAEzይJƾic4S#nڄ2UƩo8Gk4?mu+x/R7ao &{\qٜƟsmo\_]nWS#m*>GvQ+F Ee_=ۭ˵g#Y?4;%BTR]Dۓ>5ė>#[=jk}fm_Ry$a.h 6w[+ A/Iװ^b=BKO;Hwin{żi5NK/o)f<U^=)7IT`kuc*RxQW,>ZUu4xvq匞jōϖjۯ7|2x}ouk}knr舗XV[;cV k7L/y`_+!J׵iwOm!tO"}7vBrE7ŗ~5ԭ>X$8Sw\.&酭*̎~b~zfyL攋̑K}:ZW-KCqsX^0X[ƴPad/j3\Go,Qم%tqW!6gk@K,j0k%-.>9lz7]-ՠ5)_sԵ5]'Bn",4Y]HQʇ5$-^9*)~ZַQ |ڪ+2kL퀲Gr*edduT|A%1;,ۚ9Iyu*S^E G L}޻'o+aчjm]W#~]#-='Z"9M?$ʛr5^׵=ZJu徔["7b?61E+Iy8v>9_\tVu 8n%Du  _^ m=b*Cqd= ycX=ƕ4 JNL}&}> VS3 ٖa+97,ui/os4~LnOvzzq,ڢIq#\Hq疫7γ*[^]K( >-2kxH{O'jƝ,67W3lYgړ{WMx`?*̒\+3$ X$ZF4xքwqwwSov09&YRM:z<3֑ɊE~-Gi72|qh_雖ݑwNCswf9`Mʞcz7j_\弧^ᗵl[ش;IQO\ *4ז a%Wh@Z(ۃ5j51\ijbLA9-߃Y:֑c %]FǥjF/[M=q;'{jf}\=;Owe[VMU6wzW{2_V}>4\ʠkJ&9gŖTqq't+u-/$IV4 I'<'n2~^ ]Ks<(>Ռ/&tǠ[Xzg>_͂2kKA{_%lhдo>.ך*[*(}km&Fft0\'\]Zu!wir_Yq {I:)ߋvn7K.~l|@дI#kWS7F䌚Wԓ~~&u(IM $⓱A]tlJ#Zz;iZQ}.ܴ*+>p=č-'{v7Et=/C_}}K5OoZTƩy]CP< tLž<^z fksul.>ݵHy1-e_7w [d'TB.d;&fcuyo\\hz2[2@6ɩrJZuof7SjiqpXMi:nkmk?Rz{xb/5 co&3v~$Z.$iR>!`W\y?hewzV䶿h,N Gkj`ʟ 9Vloo'q&x.Ře8<飇OԼe(c/j[T ,LjtݝڬbČ{~,v[mF5u2Zf٭0fwmǧ5 =ַڈU/KxfkoTl\w2T^"!/( QUze=/D+g}.o:]4qwėV16cZmis\y=!IBdukٲI%-@#>mnuz[y᛫o!me +̈A(5xT4D,YlY_޼5ھo2.zWUMmxnnߵE$,?|JԚՂ-rNd1U>}˹k0\5x!;ryG2]l9ӳ?׿ұB :;-6ypK>[kn_q׊Tc©"/އ?[2Źcl* n")oտu#V@{"7țXWGޤq.I0WU9%tjE;qmm)O>hb;剻%͵ 2}ƞ6qj-ĉo`:tRzif\#y&V(&fxC`_Em>O5F9SI6I7r\G^M=0G:b +]Z{*f=ú4Vfe,ykS&.aE24i\[M<~Q^8a;4fTJmk{h9b10}IMWԭӯͮ-rEYr!EM#>p+l/KWyQE'ՖO<=|6:sj3bcX|QJE&O4m2eV&2lSE&mRFcdy>Ytls[n[vJiqҊ)GtoKl|;]]𥜮K=kUhݮ-gHgrszQEfIkZ\EJ '= Y[Ic 63E݇aב\~gx ˨>&uyw)CEq 6ʉ#| s5RMM(i+43GE$(32lmMq/Oo??5VxysLʿ0S+62)*()h"3"xzP22D,|rN*D,3,++x,-#-43`)#,$-?#==-,3..W=>=~)**!,,!-!=!..--*C#-"."HX !lM]]ml|{||}v"lս H|{R\\;M]mM m}d~N2Xl`~m^\^   0*2NTm2 pj }@*N,]L~Gn l"t:"F2 &TL!}"^ܼV ̸ :I4B l@%6d 0!!#!D#vP%h0!"".465l2(0\1432"4!1D %!H0!(!j#0 8L T! "1r##H#L8<D3(b(*#,60v1Cn N#(I1AA^"p!7"BA131| P.a$1K&3}BU!(U9|.R2S~)lA$&\B$314%܊P A2 1 C4LC"364#ΰ0:nB= X- &!!++rp=<tb1\K:#<"<Lx1\]]LK:|;YGF6pN:JZ;ZXnc\<",3_=">>6K[.B!\\"]2L!J;":"(557 %'ڂ9|P"J[v!O\M2rnPUnNP}pr D4 ^\ml`BDW,2]NdU=R]@*-Z]L |= x ^.Vބ!"O"|!-l>$d-=\`Nx>vm4 |:`t~M A" 8DNmM3 |nR8R!L*4p$"(&:!F0 |p|\pD":(E,,JjpulZJJm& TN]Φ.fj(^(?v!Mqs ?2%-$]@ܐ\,21 %݈< Bl l"R԰|P"I^ 03jJ}0,"+@ J"M͌"n"H0(7+B#@0CqR8C~:2"^=0uMF@!T`@=-"<Q3mJHM̐tA]@~"",쐞"j"M@^t2mC xl2AAxQT1Sm&ʹ f@Jұ@+@J1}] ,K$2P*QmP Ѐ@#@@Q>RV@!Rb0h@<Ҍ21#)"P36-:!в]Dr4PC!L}PmC4|N*MpI~ҝ$<"qfpQhNLL"rq徎.m\Em0Sl]H2|x0bRΪ~BHqzI\F[J=}@Ѭb첰s"B~3a}|1dhQ"=\r"|e C-@tm*2" 0h`zq8`RA RҮnp ".,b!jD8 p>~-n1lVf1,*vDңC]~a]ctvUlXR\]Tf$4DPkq‚M";;".n L6Q-VQ.~=D`UM0\& 0]@a`+,.B *p.`;b { ,.,+<,|`Sl    .s.lISH^a= VpaL$ፘ pz`~`\©`Vm=2֑Z`2tDDT^ΐ` •*@{p. ސ<BnRQ-H >$P~0@p(*"x2xdìJ x; 8*| @ 3taLXI}о %оЂDVS >0 h1l4  ?Q-$n@!MhPQ>`@0,@Ғ^TH08a-h`̈  *0|f !ܨL$0SNP!1^ba>!!tʁ;["hP.@0D2N R ~0}R2f*0pm@^R |2|~(Q ,\t5@)""lRRBaA']Bl ^SWT.]b``N#"<|PwmL|Fp؀v pQlRpEX[Xr}pBA~`J̢A lB1 `B`N`q ab%(:\bD5pRa "01p3\p ƀp~{&plE@{`` 0-hL2|qLT$npLP >Mb`!}~$JAJѐ*q\}:Ơ\\BQ( 4q,(b~:p0ʑ~`!: >ƸBLq}E6ưqCl"Xҁ|ݺP̽AѪކNh/*v8M2l򠄓Amȡ b=ZV@A0CI* - 2Đ.`i46Ќr""#]O?$M~ }2dQQq|f_؁qԃJV5"6 2Đ "R#)LDm"JE_/&ЈAvT@h 1`$b(LcìV~FƗN,CKœ l(伞T<1 1_B ?E |Qm/ r}lN\U]j봀E6]dDllD T 1Ў&b] H; B`VM,%l?<}+ zr XjT]^q? 9캪 0(lALC 1AHLala^; ђ]~]`p 'Ԅ$FH/\ d,JB.p`t`vH> 5f>" &`C- aX !0<3M!31P+Ş>B܀<`0|= Q 00,@\`Ѳ>@f D\$p]X.ܠ) jA-@|QNxCl Blp=@1Qm0 yP1dy蠐]򱀐l } l>PB֡ānQ"l@TBq< bB*= 2\g!,*qIJPqζbT͸̋8+ȓ ZNo(ƀ|=w 0" Mb/:bE(7qq(.lFs"18R2>4a"hc vұ:}~q̉2,rb1H>&|q2,q B2dc0x@1 ;*Rlz@ = |@Q^GqOJ0f-:!lp"ԅLp̡Qy0B~2 LVց L!N>3 M|8̰~Q)"}Z:<1naxZ1R^sT2#B|~ğ́% ұA 7AROb\A\~rv8j\/f"/q 7oL  b<wEP|{,| f "L2}=  t!~kL-U"f "mb]"' D ? ~M[\L3Uj(QM~ȰTWD :ml.<" T^m=! Z5 BJ w CJ}}mMRnB- 0 "Xb ^f&, NS~0"PN̰ ^4$;  Cx 2n0^W!DA.@`$M-3"),+++!29[lm!m!}"m2\2;4*42(A*A:!9![Z[K!K2<":JZkl[!Z"J$:38389KA\Q[1K!Z!["\2Nm]xN=M!M2=3,"*r'"9!:<"-002(pZR͌P2hr0(\2>̀(,l@l  &dn8tH pU x  h<(`X@3L=d^j&ZtpRld~Vf Z+&## !#$*!-!֠!s!ʦV]'<2#;"5F1 \'307"1103D79lR!5/`%>)"C)E2P"7&'RC$͔0\v !=l"{101"!{"""ENN  @6"Pr^*:"8YL3,VPP!S!AC@t|}}XR*|XR""j[z L," 2Dv U2+*)CC2C343#,","-3#D-D-#+48wF) Jt-"N2"$b(Pj$ B (&68,--*-4p-".2-2+,Ar3C.  |4-,,B,,!"#ED".h 3Шed"    "" 3 " 0 2"<8@ <3#"4"^#n, "--|l!!V3#?" ]m} }S |lLM@B]F2JՍllPT\bf)rz,h,2 Z}*`%\>\B]hx̎W,4&PXhlW~< B |]>.#2 d!+!)GE"!,-"-- !c S ! ,"t!!(. +",,<-!)W&+F *+h-,#-',,l*"%  (+=_>ONH L09-^j%4  0d0}C3L0]A !pB t  Co" =B!A]B~JB^D}@ @E8@!SAW @@PM R-D>C} A=N.m28!PP. BZPs]~PS!VP<kBl2ʐĐ0ʀ}F$"l.<`1nƒ]qf 1)@Qm )>B".Q`sN11L3$Mz-$t4̆A6Bj!ҴFd"] KX@QT !<4ֱ"LN0-d԰j,b v. ނ(UA $ -2,TxT:"A=@=`N2^$Pp"a;"v"ab< ^xv!` "Bx!]2s*i xf1 "!j&BaSa(Bq:q $$|#NA$H&dС,<\ K-N!Mz@.Ѹ2a ‰.62 ѝ.Mnҝ6q\Ja02` \`Zp R  naA@PdaQzq! < UMrpH@pp| Жaqp~"LF;H"tsT!) 8bӁ+@x d,|\amfaTQ^a<6q|b>hm2Mbr`K\FKڠ uUʑ=ްd`2sFn8,RsȳކDSaТ q](s5qm.?? |Bc ucȓx`$N4 xCXJpTq2̨: \ xsE/u.NTcn-f:BRq`, rz.,^R^^lr.p X!]Vs u#R2X ҥmv 20|r"Ml(0`]!ڃѩ|Ģ>ZtZp6mRZe@X!쑗jS"BR=2 41v*# 2 @xAQ~#}QNRMLQÀήO@Qz(FX!X!$1DBk.j] t(zC " 4:5W lK 3]zCJ|X1\LD yH!ql>`n4BbCV`!  ʢ0Hޠ!-``L2}0$,lA .Đ4f|C)B|0JPdMfC ",!klm"]m}"m"l"lk[[\[jU[&\[B Llalxa}!|l [MzRE\6]Fal*] ;2TE2 =MLM]ml\L<,& =*M(l0l6}m}F"R,3ZMX8|mm] l,dnx}RZ|2d Hz~ ]l <" 2]= 4-TB,22w -TM   <."zNm0tm(]-}2}<2-.B=d*lPl,$Nmd=^JLBFv=lݮ*n=r< "-n"0 =f!\r <r Z0,!T.tl & J2-V4,!m 1>L$%0N<}0j !1!J!]T`21: \ 21ld $!0M p9*@,fZ! 0~`"X!T$1:1^ b""05!/*2@=DA*Bm 2(!X ! D@-z@. 2@]. AzRP! ^Bb@:A<DP0r!V`L mGGATCGVABX-GGATCXAMGGATGALFGGATSFFO@@@m۶־UUUPII/UU`+ض {ЕU @ sT\WUI$L$I$I$hd25UUU'?&\ƒ˛ d UUV`H$N$I$I$ ch6d$*5UU y1d@  ?AHն2=/GdU\p m۰I$I$bh6d"UUU7ɳXci\ +h@Jm%; KmX`{I$O'I\UUUTI$I$Jbh6d`UUU`1\ -Ie\*%/)mpmۅJmUU\pI$I$yI$BUUUPW\ -(e\8?e:@ r= mUWWXI$I$|bCaD*UUU0W\@%(e\)e` -dUW\pI$I$I$I$\`վ%eVTUU)e\=@)e:@Ӱ=dUVX@I$N' ڶm۶a,UU<׶i -z2H\a(uY\ '(e\?eC@@@@O'>WVWTra;k{\^WWI$I e^Mc:\xWUU$$2UUU />)5)e2` e2@>>\ UUV\I$I$IIGKUU m\ \WUж'TUUUXO?O$ ۶mor@hX:ex\VW3\ %*maX-؏Gl}UZ` I$O'II$4tI$$I$m;eUQ@U >TWUUbce'T5U_ed* ku\炝g m VX`mۂ UUUTII$ rXh6` g5UWFAe5UU)e P`a;6n%UUU qشm[WTFn#!@MɏJu  )e\)e\ eD*@Agϐoz^%:Ju e'TpegT e%5UaUUUVۇVTXP9vc$^&?ˢ@@%I$I$eUUU8FnAe`eUUW\ ed2@KP@oz^%6Ju eapA&:|^W%ͯKu/`5?d`ZU!:ɜp@@@x;}ڗ}؊JZZZLI$I$UUUH~o M}4)ep,g-} `XVS^,Ju -\!pC->΍^ !ȯJm/?e:@ dUVXpFn6o$?@}۱SSWWobC }%UqC .tP@ m P``a΍ ^%'3Ζ)e\ eC@ \``x^Evn?۷}WWSSI$IUUЂImQM%{B@]`cJmUUUT)e\eGT@<Wea`ZU0 D6nnnx:}٧تZZZJUUUm۶UU#@mIӶUUFn UjY] °eUUUl)eX`eUUUT)?Oy \^VP؃ aVUUUnvo$@9n%Fb7 @@ٶiύe\UUU)e\ku\9( e7p@!e3@5|XVu C\8ՙMذ-ۣWUUT$;I @@@pvoc%UUUa eUWTXefC)e\)e\?egK@)@'diwV2!LذmۡTUUUlz6n;mۣUUMUUWTA?AP@,I$I$UUUTabAVUUU}ر PXTVo!% ]p.O }eWWZXn,e 5)e\)e\ CTTTV6n;m۲U UUWT߁aP@ &?@PvnkʄU# 7_ @6f,U/eUWTW(eB`M$*TWUUFo6?` ۶mTWUUI$I$6b۶m%UUU)Fo#4UUUC@eWxGWAhT%  ۰eUUTm۶ 1IUU/߶mU 6&ATUUU'<@\m۶mXUUU%vnaUUUA$`UU5c 5 6@w mhJma eap`ecq?X!UUU.m۶m#tUUU m[6BNU-Pa)e WakeXppe` ƒ e XVUUo=\?oƟoSkm\;/P8 epۥU'b\` m۶;IUU@@ @#%]D"%FN m U\``pX !oc#n2s]UU%ԧ۰mPPTU VnkU! lpi} Uj t!UUUD P%L۶m@PUU mj$ U1`J eWU5/!dU ¶]UZjj38ڑ}aPPLk \TXy*mgKa:1h\%1ه,\pPP? u-m ]VڣTb  i%6j[ı%>0\՗<`ZPA |ڰm@@PU@)DN+\P`ѭ]Iڴd564¼hi mTTZ)8VAF; Msa=AlܷGGATCGVA8ZQGGATCXAMGGATGALFGGATSFFO@@@hlG\hlG\hlG\hlG\hlG\hlG\1hdBxܶm۶hd)Wڶm۶hd2U hd:-hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\>m۶hdBp6Gd:+hdD2*hdSUhdB_Hd)Wg'd)z>mۗhd! hlG\hlG\hlG\hlG\hlG\hlG\I$IhdGdj{aHd%K$ hdFK ]hd[6%?mۈl\Z#_ضmۈl\#_o#mhdGdz%6hgdHd]ohdGdjhd!z{}GdBxI$I$ddhlG\hlG\hlG\hlG\ScޏhdS@$hdS`=hdSXH$I$l\hlG\hlG\hlG\hlG\XI$I$hdGd6o{gdHdGd2`Shd)7hlG\hlG\hlG\ m6nhd[@@hdS Aǿ}hdC hlG\hlG\hlG\hlG\hlG\2׶m/hd:p 'd)%^m۱}hd!AohdGdGd)x` ]ۇhd!hlG\hlG\@%h$l\9hdC`p( ۶mhdChlG\hlG\hlG\hlG\ec#l\jjjddhdFK@@}۱ hd*(cmۇdHd9l\j IDhd)&hlG\hlG\ l\Hd:<hlG\hlG\hlG\hlG\hlG\%nvnl\hlG\7?Hd:``H$I$ddhlG\ohdGd@Gd)p``hlG\hlG\hlG\@$@$hd*hlG\hlG\hlG\hlG\hlG\nol\hlG\P?hdd:,hlG\hlG\ hlG\hd)````hlG\hlG\hlG\2??hd)&hlG\I$Ihd%K@Umhd:|m hd$2~ömۂhd)ddl\j#ا}hd2 hlG\hlG\2hdGdhd)````hlG\hlG\vhdGdlIGd26hlG\FohdB,hdShdSzHdd:^hdShd:`FM۲ hdD2hlG\hlG\lV&N$l\v?hdD2``8hlG\hlG\CoohdGdGd!p`P ۷hdb!{ovngdHd2<hdGdU2$hdGdU2$hdGdU2F0dd?ahdd:``H$I$ddhlG\Pmohd[@hd[Cÿ}hdB6hlG\hlG\HcmۇdHdl\jGd!'x m۰hd!hlG\hlG\hlG\hlG\hlG\hlG\ m۶a#hdS`֏hdS< HdC`H ۶mhd:hlG\hlG\hlG\AocgdHdhdFK`9Gd!'xGhd) hlG\hlG\hlG\hlG\hd:9FhdfK% hdfKpA?ڱmhdS6hlG\hlG\hlG\hlG\hlG\FomۇdHdxoddꪪhdD2^KHd)-_ 'd$2 1Hd$2_KFHdd2xhd%K-xhdS`>F|ضmhdS hlG\hlG\hlG\hlG\hlG\hlG\hlG\I$I$dHdlomۇdHdiohdGd$hlG\$hlG\i`ۈl\^lmۈl\zH$I$hd[hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\ hlG\hlG\Sֶm6hdBP-5hdD2\hd$25zSֶmۄhdD2^hlG\hlG\hlG\zehdS@ LhdS<'۶mۈl\'cnmۇdHdFnhd:`zHd$2phlG\ hd[@09?HdEK0hlG\hlG\7Ŷeohd:@hdD2 9ohdd:@hd2@hdGdm}ط}hdBhlG\hlG\8hd\ vه}GdD2  mvnohdGd?hdD2 ovnhdGd }اhd$2 +ζm0Hd: 8ѶHd:UMhdS@.۳ hd: o6ol\ۏ}hdB76n;eۇdHd?Gd),@% hd2IBhdGdGmhd&K@@@m۶m;hdS@?hdFKB7Ї۲mhdBhlG\!o6bۈl\jAHdd2\Km۝$hd$2ըKmК$hdD2 AhdB-!mhdShlG\hlG\hlG\#Fn۶mۇdHdI$mۇdHdImۈl\z#l۶mhd[hlG\hlG\m۶chd[`06EGd$2p*WbnhdD2 xm۱}hd:3i>hdK`0hlG\n_GdD2x@ 36bmۇdHd@ݔihdD2@6ʦlhdS > ۶mhdS@3MhdFK3”chdB0n&h^fchdfK p$8ذmhdSkhd[ Fn۶mۇdHd+KahdGdhdS+hd[Khd[ m۶mۈl\kdHd6nhdGdj_HdBx}ۿhdBhlG\Scavnhd[4Gd:`0+hdS+O%GdD2U +Oۿ hd" Om#o{HdD2P7- >hd!*hlG\hlG\hlG\ hd$2@+hd)Ujhdb!ocgdIdS'd)p`Wcm۱}hd! hdS$7ÿhdd:,hlG\@$@$hd2hlG\hlG\Wk?ahdD2pphlG\hlG\hlG\IIhlG\hdfK`I$Ihd)Wphd!7hdS`@$@$hd)dd}؏hd)hlG\Om۶hd:3vn6nhd)Phd)I$I hd)hlG\hlG\hlG\IIhdS@@Grphd)SH$I$l\hlG\ohdGd@$@$hd)ohdGd+ IDHd*&6hlG\@$@hd)^hdb! I$Ihd)Pchd)PhlG\hlG\hd&K@Hd: _Ϗhd)z`hlG\WI$Il\j+l\kڿۇhd)6n;mgdId[Gd!p ʶ}ۏHd"hdfK~hd: $I$hdSP hd:chd2Vcm۰hd!%{I$I$dHdKHdC^hd)b* I$IhdGdjhd%K0, [?Gd:`0(H$I$dHdhlG\soagdHdhd)x?Hd!Chd)U[ hd2*_6hd:p hdFK(Gd!^[ڰ'd)zI$hd)UCm#hd2 hdd:-shdSx۶mhdfKhlG\hlG\hlG\k@dHd?hdGdI$hlG\I$hlG\mhd[hdS  hdGdhdGdI$hlG\I$hlG\?hd[`6kH$I$hd[hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\ hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\Ķm۶chdS@!FGd: [dchdBUoGd!'KGd:t 2bhdBU@ؕohd"x?Em۱}hdb!JHdBb03d?mhdBP0OI$hd)hd$2  hlG\ 6hdD2 |8ʶ#|hd*nʏhdd20|hd$200`9mm?hdD20p@~lM;hd)Ahd) pI$IhdS@KJphd$28[bm۶m;l\jZHdB'^b76jhd:@@hd!\c۰hdBC׃mkhd:PQhd$2 VUUUT a{i;eTVVW)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\He\jꪪ>:;VVTTI$K$߶ac;΍Jm\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\,ů KT\\\ N$J$vc;ce2 )e\)e\)e\)e\)e\)e\)e\)e\)e\)e\ e!p7 ϐ'L\\VU ۱=6b6d /6h@:-UUUB# i\UU\U5(e@U1eU?,eU$eUeU (e@UI)e_U{&e UU-d?d*xUUU=$ H$O$ yI$6cHagl#i`Ж$P$IBIBIB@$ IMlPVI$-$mh$I$  Ͷm۶aUUYҶm`UUJֶm UU mۂϕUUPX IIUUUbeXWUW)e\)e\M eE;@@b=ۅأ!UUUT 6bnQXepP i$\UUG&d\UUe $'\\\TV f6bCaۂUUU+ynEdsqaaN$N$ Jcd^eύaqp!<ذmaVUUU tm۶bsU#yR`j~e*UW&Lz1O<2L}R32?mLuUTpI$I$ 8hd\-m`ۈl\mchdGd^>ochdGdhdCx"??Gd!7~F ۟hd! 7hlG\hlG\hlG\hlG\hlG\ @hdS@дhdfK hdS'g ۶mhdS>hlG\hlG\hlG\hlG\gFnmgdHdꪪohdGdjhd)^xvۇhd) 7hlG\hlG\hlG\hdS@ghdS% ??hdBXm۶ hdShlG\hlG\hlG\hlG\hlG\hlG\c۶mhdGdꪪj l\ꪪo?Hd)x`m۱}hdb!hlG\hlG\I 9l\hlG\Gd$2pDhd) z(H$I$ddhlG\FoohdGdhd)````hlG\hlG\hlG\+?hd)&hlG\hlG\hlG\BohdGdhlG\hlG\BHd*88,hlG\hlG\hlG\+ohdGdhd)````hlG\hlG\^I$K&hdGd:Gd$26hlG\hlG\hlG\6n;mgdHdꪪMhdGdMhdB۶mhdfKhlG\hlG\hlG\:oΏl\^IIGd$2``hlG\hlG\ oFngdHdHd#2p`$-۱}hd! hlG\hlG\hlG\gdHd?Hd2hlG\hlG\hlG\$m[chd[@l\ ?|Hd:8,hlG\hlG\ s6n;aۇdHdUhdS`WÏGd)6xGI$I$hdShlG\hlG\ȏȏgdHdHd2hlG\hlG\GI$Ihd[@WvhdS$ UhdB` s۰mhdBhlG\hlG\hlG\o6bgdHdHdd:`Whd) 7^xm۰hd) hlG\ogdHdHd2hlG\m۶a,hdCxW6GdFK<  hdfK`?ځ hdFK hlG\hlG\hlG\hlG\hlG\/oigdHdghdS`~Gd2xҰP\25ΏhdSHd*xҶ!hd:^~hdB ghdSX/´mhdS&hlG\hlG\hlG\hlG\hlG\hlG\hlG\Fn[mgdHdꪪbhdGdMhdGdhlG\hdGdM l\Wlhd[x/,۶mhd[%hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\ hlG\hlG\m۶ahd%KcԶm`HdBUcԶm)hd:Um۰hd:hlG\hlG\hlG\%ݶm#FhdS4 ?GdFK  mۈl\1mhdGdo+hd$2x%ݶhdD2hlG\'ȶm{chd[@0HdB@!mەhd$2hlG\hlG\!жa۶hdB/Hd$2`&Ͷ=۱}hd) 6nol\ه}HdB  c[hdd:`hd$2i Hd*. g',hdS.Qo6nl\ؿhdd: ovngdId }؟hdD2 hlG\8odHd8GdD2@ hlG\ onl\ۏ}hdB56beۇdHd#пhdd:$P`I$I$hdSuw6nvngdHduw؏hd$2I$Ihd[@#v߿hdfK(B5]۲mhdBhlG\$obhdS@ ԁhdD2 p.{vnAhd$2 .{'\2( 6?hdfK6 $ˑ hdFKp8hlG\hlG\hlG\GVnmgdHdmhdGdmۈd'dzG ۶mhd[ hlG\hlG\I$IhdS@*5yYhdFK *궝chd:^I$N'hdd2NHd%K 5]=ihdd2 adGdC 9jlHd*0 >ahlG\hlG\NPGd:``pf ۶mhdfK(k#6c'hd[@0(?Hd: hlG\&taοhdCpSGdB SoGd$2Vx&thd) 7hlG\(ohd:`(ءhd) fcmۇdHdNPGd)p`hlG\hlG\Zvhd:x@Emhdd2UoHdFKʉG}/hdd:W@жmHd:5/?hdd:+mvnhd$2p2 ۏhd) '/Gd)x`@жmhdD2UGvn@hd:*-?'d$2x@Emhdd2ZvGd)````hlG\hlG\-?hd: I$hdSU(ȏhd[HXhd: -chdS-Hd)p o"hd\?ہmHdd26Ώhd:b- hdSWXhd[- (HdB&I$hdS-hd)````hlG\hlG\}?Gd*p``2I$I$hdSho6nhd[@ }?hd)6hlG\vvn{Gdd:`}?Hd) ר}6GdB% v׏=GdFKPhlG\}vnhd\DhĿ؇}hdd:2I$Idd}'d)``hlG\hlG\oHdd:`}اhd! cmۇdHd_Gd)pPۇhdb!'hlG\$ovnhd\ p$?ڏhdB(hlG\Pm;6hdS_hdBb8 ۶mhd%Kc6ol\jz?Hd:<hlG\hlG\vnchdGdz?Gd)6XpoI$I$hdC6b[mۈddꪪhoGd)xhd) @CGdd2 /hdd:,hdBp hGdS`<-۶mhdFKoI$IhdS@?hdBb}رmhdC hlG\hlG\hlG\4ovn;Hd:`!Ihd! x\I$I$hd&K 6b۶mۇdHdehdSxcolScHdKmhd\b m۶mhdS\I$IhdS@!IvnhdS'4ӏGdFKhlG\hlG\hlG\hlG\hlG\;6oHd:`vGd) xPmہhd) I$I$hdGd6n6nl\zzzz}ڇhd:I$IdHdPm6hd:vvGdB' ;ǧ HdfK`hlG\hlG\hlG\hlG\hlG\hlG\hlG\o+mۈddꪪ!ohd$2zS@PGd)~pHdD2 hdd:WS)Gd$2+!GdfK (ٶmhd[ hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\hlG\ hlG\hlG\ m6hd:`mh"HdBUmI4Hdd2_ mۅhdD2 hlG\hlG\hlG\!eޣhd%K@ yx²mhdS.@/Ұc;Gd:-/ұ۱gHd)~ cHdD2`!\Hd)( GdB̲mhdBhС=hdSnhlG\hlG\hlG\-omhdFK`'mGd:5mHd:-@ضmhdSkhlG\hlG\I$IhdS@#߶ &ghd%K#߶RGdD2z'I$L&hdd:Vhd:8MX2HdB "Md,#`hd:z܈CGdD23!/3XlGdD2(*eD3Gd$2 * Bhd%K)3],hdFK:996bmhdB`KZX`bGdD2(K- ahdFK ۶mhdS@/6mX-hdS/쐍hdB9n6ufGdC6 LhdS{m?  L[%CpGGATCGVAK_GGGATCXAMGGATGALFGGATSFFO@@@?I$IUUUgm۶rUUUPI$IUUUjI$I2UUQܶmcXUHFJm^U?KhUXm۰UUUX m۶beUUUI$H$'m۶m#־UUUmc` )m^U1exWUUeC^e%;}e-UU,΅d` Ȱ}UЀm۰UUUXCm۶m#־UUU=m`U0`־)e_UexWUU\d2x9\_P_ cO ύ@W`r1\@ e2 }e-UU-?\@ /M?UX6m۶دUUUXȏ΍exWUU\$*x \`_~ 3W  SeWUeUd }V`k1t\h1T e; }e-UU ?Jmhx`-h&h&}\d2``` &r@W ~ a 1exWUmKz\!_\ eL ΅e Uj}\_1W\jm'T?gT````mh&h&}ku\?R)e_UU)eCx\b_? L_U88'!XUUUЖ$#*%UUU.c\ U\+eL-e/UUeX_UUGT````m}eECxd_'KWU/ж'bXUUU) m5'I$$I$ FcCmp"5UUUA@7܇T U\+eK-'T@````fotKuyz 'L~WU&ж'"\UUU) m- ضmH$I$I$I$?cCmp!5UUU;hgT UyC ``z}_ud$$ ۶mI$I$9cCm|LdML  I$IUUUm۶SUUUT I$I\UUU0m۶ ;UUUmRUq-!Jm@5 ۏ?}UT6m۶-}UUUT Aem6oU9Fq e"x7BX1A~ O,?KuO( eb-6?Jm@8Ͷ ۧKuUTX\fhnvn}*mx8)@)zJ?OYe ~U",\ Ղ?Jm2-_*m" 99\\\\\Tֶnn#ku6?OY \^UIYN ECxWUUz ضm %bm #bnaۦK-UU e F‡T\\\_KɑI$ b ۶m bm gC'I$  I$IUUUI$I$2UUUT ~m6sUr6E;^u2Km@ ֶ '*mUT@@cku@y ؍}xWUH6j\ U&}jmb`b})f`۶m 19$I$ @0m۶&1UI$hОUTj m mxUUBMftm)eUUG¶jRAUGGATCGVAC^~GGATCXAMGGATGALFGGATSFFO@@@ I$IsUUU|$d*TUUU icm`UUU=)e)e\)e\)e\)e\?]XXXXmIdI+uJm\)e\)e\)e\egT@|'z'2WWVTΏe[X\\)e\)e\)e\)e\ ʇ\\\\TII$UUUM$J$lu\)e\)e\)e\)e\ꪪCّLuVVVֶm۶=,΍UUeTTTV)e\)e\)e\e)]'|KTTVV h)eC)e\)e\)e\)e\ e'] e'])e\)e\)e\)e\ eC@]*TVVW"o6je %U\e Ue"Ue"U e"Ue"Ue"Ue"U e"U$e"UeUE\p^UM؂ I$I$L$I$PImPImQImQImPImQImPImQImPI m1l۶m  +m۶aUU(mC0U-kuU@ mۃ*mUUP@ I$IM}UUVޏd;j ۨ\VUUmmGT UU?efC ۴ۦKUWTT a;a; u)eeC@@@@ ۰ ȏȏ e%2с؁ئCTTTT ĶmcU6lueC@2eUUI2]UUe\WUU"?kuK =ۙ*mUTXXIDI*m)e\)e\eeC`e%; )e\)e\pّ\X\\\nIdI+ue)])e\J?\pPppPn6o)e)e\)e\(؁]GTTTTVI$I$aUUU@*m])e\n e`jvJm)e\eTH$K$;TVVW #o5aeUU+$`(eUU+$`(eUU+$`(eUU+$`(eUU+Tm\zUU< ۶m I$Im}UUU6|Z"k*mP Sm۰ۆCUUWTaFlu? ePP|6nR)e@ eVV@@ooo)e0Oe@e (e````Vvn6be%UIeUI eU) \`pXU@6hg<*mA|b=# ePba0cm\ (_AIej8ތRLVuE;hGGATCGVAH_ZGGATCXAMGGATGALFGGATSFFO@@@II{|Ht)e_|It(]U|It(]U{|IRCzN':ImTVWWIIeXXXX)e\)e\(eEC````ԡ  TTTTIIeXXXX)e\)e\(eEC````ԡ  TTTTII)e^^^\)e\)e\eEC````ԡ  !TTTTmvnUI΍UI΍UI΍U΅U1e\^WU)e\)e\eGT`WI΍UI΍UIsU kKuUPXZ ۳FnFn䍅)ee)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\(e\jjjj`LXXXX#؁FnFn䍅)ee)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\(e\jjjj`LXXXX#؁FnFnku\!U\!U\!U\!egT)e\)e\eC`\!W\!U\!U\!U`KXXZ_#؁WIxɝm$m$m$m$eU^XX)e\)e\eEC````i WTTTm$m$m$ Ѷ$ x'N$IIeXXXX)e\)e\(eEC````ӡ  TTTTIIeXXXX)e\)e\(eEC````ԡ  TTTTIIJmC*W\!U\!U\!Uԡ  TTVVIDI$ ps$m$m$m$3>~$  IdI HR)eWWWIRFL]ّKTWWW II }eTTTTeL@@@@&؁BTTTT c6nύIseUUseUU΅eTWUU(e\j*se UUIseUU}TVVV6b#6b#}e2Ue2(e\egT@e2Ue2UfCTTTV36b[m &Mm &Im }eWTTTeL@@@@&i"VTTT&Im !,ضm II }2We2U&؁"TTTV I$I$ &jbm &Im {-ضm  ߶mvbluUU7߶m )mUUpp `mi%}UUoJmi? epp m NUU`zkImUU`o)e `ePPOl)e`zUU `oc)eUU0i-lۨ\pxUU @8m;luU(؇D)mU\\'@odU e=؇\T\UFJd mAaGGATCGVAE\dGGATCXAMGGATGALFGGATSFFO@@@m۶m#־UUU%eUU قОP* ѦU Ŷ rU@ lmۡUUrSUUU4I$cvvnvn箅 e'] Ie\z*e)])e\@ )e!_N(e' eD*`h@#\pq$&gTUU'Јdo?eC\WUUIm}4m,m6ovo#kue)])e\)e\)e\eC@zG@77 e `@@)e@V >>@VUUU2?I$H$I$ 6b#i+uU7\UI\UIeU4(eaU? e!b'':ld`(Єc>2UU5O||\XpbjC?~' II$`pI$ rIm`Im`{UUU= 蟟 xTݦ 1 xWUU$CEuUUe ,!cn\ % P*mV\WVI$L$=Ŷm۶m#UUY6Wp\3m۴ i\ \WUU) , $I$`$I$ Z6b[aۄ2UUU-ϐz|gTXpc ) ۳ojC1U1)EL\VWUz@ p$I$I$I$cn#)e%55M)e UV\pI$O'.bCmR lH$I$ a6b[aECUUrI'TxWUU-]ّMI$I$j m p$I$ 0m۶UUUa Fe%^b&l}ReUU Xݶ1Emۜ$UUѶm۰ЕUUP:m۶SUUUI$I63UUU@)m]U;mheauCk e'T)e\)e\ku\G G)m@```zmc1*teUU e'](e\)e\ e2`?e_ T \p]UUk;cͅ)e\j* e']p eb _'\xvLeC`UUUv'I$  m۶m Rcm+uUU$$d\UU$b4PH>)mUJoΑGTO%ò ۴TUUTV bm6n;5UU`&x^WUk ضm #OI$"UUUp%hTTXcI$I$ 6bm 7 ضm Vhh6`:UUUJ$O$  KqUX"mUU`жm۶UUU>m۶2UUU/PLu`(e\ eT@ )e^؏PH*mU6RdBsO$gTXSa@m۶m [e;aUU'O$\WUUF`6j'TMU ۱ @׶kuT ʶ=ϖU&a maUv/ئmGT\ZS]&?l m`hGGATCGVAG\>GGATCXAMGGATGALFGGATSFFO@@@#I$IUUUDm۶ԶUUU`Jֶm۶a־UU6b!`{-`UUW^;I$I!UUUAI$I$qm۶m#UU޶auexWUUex TxWU^AǔUQJ?exVUUj]+mUVX0Vm۶صUUUpI$I$ m۶m#UUU޶mVU4e`^UU e'])e\CЈX9K\T\\~$UUU&I$BuUU \ Se5UUU)m@-I/UBxWm6UU3v΍eTUUU)e\(e\ep^99>'L\WUU؁Mm6jU9Ưѯ)e\xp?e XXp` ѫ'@UUUm۶a/UUQ˶eeXUUU)e\)e\ed*`?\@p^Uж_?\UUUXO?$UEU˶mFVePexVUUeAp~3A\ 'U?\!@~'s>!UUTVa6b#T%)e`^UU)e\e:(e\e@xYc:\x^UUШ' :,ضmUUU]ae\WUUepE)W\\VUUX}$j;}UU9'6b0d e5We2(6exW1c>%;WUU$@ v'T UUжdm?*\UUU UUUT+ ۶m;UUU86jȟeTUUU(e@x6-W L \WUUX>}$x$I$@ ضm I$ʏ5h@!UUU'`VUUU t0m 7I$(ضmUUUm#n0V E}eTUUU\x/)W K\WUU@ p$I$y$I$ $I$vo1)e\e!@#Or ;^UU\ @ H$I$xIIUk?0C*^?)7 (e@WU)c]?!UUU :$aTUUUH$K$'II$2UUU nwbxUUU IYN iUUUJ'I$$I$$I$X$I$  #m6U '1UXZZI$I"$UUUP sm۶eUUYѶeo ( e``0P .UU,-Jm`Ͷ-'U\jUm۶m#UUUm+UCeXWUUe p1P<\`\Uΰ VZN/ T T\PpVoo䏟_I$I\p^E?M ]{UOW  WUUrȶaնe? e p\ ,;TUUU:I$D*XUUU bCmB%UUU0m `d۶maUUUPr&DM@ 0exxϐ C*TUUUH$I$ 5e;eRU he')mxWU) m|UUUH$I$ Ò$I$  m6UUA`I$I$UUUTm۶e䔶UU6?/yu™1(^r2Ȃ *m@`H?a)m]U b0 z$ÇqŽz^.۶m!DUUU cOm u]UU9m۶mۡ\UUU @m6%RUU-YDž0UHgI$uU'N$u^UU64d`΍YGGATCGVABZzGGATCXAMGGATGALFGGATSFFO@@@mg;U! PXXx ۃֶa6bDz]p KuT\\\I$M$IX 0- dTVVV`d< K UUTTI$IUUU zğ!```0 ۃ6j#n뮅EWg)e`x``` E=؄6cFo} 39P\XXxxN${' V} :L\\\\ O$LȣͅD` t"?:: WTTT(IdI{П?}`M"UVTT:2 TTTTK$K$e:``@|B'> d UUp@)eppXXG\!```l{2'rU)eX\\Vjg\ x`` '2ύe\VVW>5\XXpp0+0ύ u\|~" gT^^XX N$L$Aȏȏepzz{eL@@@@%p>>Kύe\^^^?(e;````r}eTVVV?e!````-u^M})eemITITT````;@@} e']S TXXXX]؁Dȏȏ}errrregT@*աKu ύe\\WU?eC`,t(M}#}eTVWUII$ ed*`I׃}a )eeh e`U@} )e\U\XXXX؁Dȏȏ}errrr)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\`\XXXX#؁Dȏȏ}errrr)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\`\XXXX#؁Dȏȏ}errrr)e\(e\Ue)]e)](e\)e\(e\z(e\)e\(e\Z(e\)e\`\XXXX#؁Dȏȏ}errrreL@@@xm='EC)e'L e:```iMG\*ku\g\!```w?)m*=5%)eeII\ppp[ e  )e\^ gTXXXX#؁]pN e!ZdbU  !}PN e^1\B`zU!fj*l e!Wg\@z_7NdJm%%%&e!Uz5\pxz pd &eUQ LXX^_؁]9wɝ$ IB>~$ Xd IJfO'~$r$ IJrJN$`n$$F2 M2 GNM؂  1mi;݃' mT\\XlN|ͅ`Aab` ׶g#﭅#ܶ-ۅeCTVTTib=D3nPXxx ѶdFbh-ۄUUWTIdIm}B e\\\\ȉ}``2/B.l} pm}VV5}yG)mpp``\ȏKuz'x'"WWTT!6nvn}&?eAXx?}e;hh3p/?Ku@ (` Lu__ e`` ʯJm KVTTT@@l}(e[H$I$}T~eq_UU)$I$juGL& e[@oeXWUU~LTTTT@@l}e)])e\e)]e)]e)]e)]LTTTTdnn#Ku>w?\PP^ e!~;O/$ ea Ou Ɗd(,)eb@`1ʏ&)eKTTTVU@ I% jI Cm ضm I$ Pcm !,ضm ζmlOUUaa-mې8}UU Ͷm@gKuUUGmmUUPP#V~Jmaa+ɺ Ku( =tV=*mƊ | mPp``co)e9,u]Lu\q ,, e````'~` eUU,dۨ\ (UUF0`gTUUyאlHT``UU@Qj\V\XX ۳II)eI'\TTTV:6nvo΍e`+'^&l} U Il}UikuUrLu UM΍?Ku^@h\@ H?Wexppp;M'{'a2=)ePPX^I$I$ A$6nvnJm Ge `pppm:)e\)e\)e\)e\eGT@@@@{ JmeppppU؁ $pvnnKm e ppppim*\)e\4ep\e-)e\eGT@AA*m(0\ pppXW؁]n#ge)Uyeppr{<`\ U eU΅@' {!*m``g\aUZ?e@~U\@ m H `:\@\VWUD\<I$I(eUUU 6b[aj 1hLl5U-p`W]l(QU0e'T@`璔ju_mқ10 U BS{  |WU' -۰mI$I$eUUUQIdI$eUUI%ز-g\TTVUb[a1fCT -UUfI$keUI$I&\ e!` ezU\IYeAxWUU',۰mA5mePPTUA$I$%m۶e0U"6`%־Kg*h}aUV.%pS*d Wcng\Ap_UQd]?Oz 4aUU5+cUư Wm}U^p m۰@UUUV $I$II)eI$c;\UTVUm۶m#UUa,նexWUU)e\}e5UUUeUUTe UURexUUU)e\e5UUU$kuX ۄl}UWT`I$I$i"$)eQPX]I$I$m6h0U QF)eXVUe)])e\)e\)e\)e\)e\)e\)e\)e\)e\eu\k]G)eU\` `ءUUUTme;ύUޏ(ecp\V)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\?e;@=| LUWV\dնac΍eTWWU)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\د S\\\XX6n6bUU@j)eUUI)eUUI)eUUI)eUUI)eUUI)eUUI)eUUI)eUUI)eUUI)eUUI)eUUI)eUUI)eUUI)eUU@WIEeX_UU I$I$(eUUUQ m6h4־U 6?UlMU  uUTP@ I$I eUUUElI$eqUUUim۶a;1U־eXVWUvb , e@\3 Ku 5|?)eK@ I${'g\ UWVT lI$\EUUUْI$\AaUUac;}Ep ep( )mJ-ҩ)e+[xc~?+ e ']\\\\$ eEEUU IDI)m%%\a6!S eb$V e$*`P f e @T5f eȯ¨\\TVW I$(eUQauI$I$ F e6b}-UrPJmC! -o)eC!`x?llp^Uu<ذm I$ leUEEeI$a\UUAqm6f5־UU|aն6ВAJm`o a`V%WJmpmۑKuUUpI$ Ҭ)mUUEe mn1ue\WUU)e\)e\)e\)e\Km\/ُ\TXp`o0kuU$)eU$)eU$)eU$)eU$)eU$)eU8_GR)e``jUmۀm;ImUT26f| (ޓd@m۰eUV'yk;kku Ԉ eK&ս_ eCޱ؁]LTTV m۶m#W^U"bc?pEOa,ux (m۶ku ՕU%F$0$e%;U$e%;U6ٖe@@ɗ1 }"s"> UUWU۶cn덅km\)e\(e\j? LX\VV؁] 6bcaPjCd U eB)e\)e\e `px>>G6ncJm5$e2We:eKZ gTVW^X H$N$I$I$eUUTT6dvcCO U\I mKuU'&\UUu\UU9r GT XWUU^\-,6bc6dBUUU`n$b\UUU@$B/UUU0F$#*UUU%C:$!XUUU ؁=0bca;]QUU nMm`aXIUUU ђƚ1UU##'2eUU ҂'P`ж}U-΍U`)ύUU(m۰$UU `۶1UUUN`۶UUUXH$I$I$Imk$SHseUU'?@)e^UUku\)e\)e\)e\)e\)e\e)]Jm\ }e+UUU| PGTX\\\ O$K$II$Kt@,u0u\)e\)e\)e\)e\)e\)e\)e\)e\)e\)e\eGT@<9#:gTX^WW؁]=z/V}x: lgT)e\)e\)e\)e\)e\)e\)e\)e\)e\eK`?w \ xWP>"TUUUx$O$ jh)eUs\`+ed*(e\)e\)e\)e\)e\)e\)e\ e!pvX:\ xWUШ'@TUUU L,ذm/bCmpɟ$ В$!5UUU" n'TUU|\ U]eL )e\)e\eEC@?)'TxVWW;$,ذmI$I$!@ccha r$UUUO6@L+UUd .\ +U\@Uv/G\xWUX/:' TUUUx$I$I$I$cmFI${`ɟ$$,ذm  m۶m#RUUm4$ ОZWm$΍UU $ͅUUI&zWdU` m۶ةdUUUX `` oy)ӂ 0}UԶ=| eUTV\ 6d[6bU#@Jmcp ۂ;UUUT"?m;kU-*m)e\$/)eXXXX @kueK@z'h&KTTTVI$I$eUUUTfn e zO.(e@U\X\VU oFcC)e ]U,\@uU(ؑ-&CVTWU\m۶a7sUUfINWU!`00UJ`eVUUDeUU԰}XGkuUڶ ۅًuUTVVSbvk㭅入+m])e\)e\)e\)e\]``2]ل=;TWWUgvo#6dh\UU=h\+UI(e+eE;-)e\o\a`PO GT\WUU' ۶m I$I$ <cm cha2%UUU&f\UU U GT\WUUH$I$ Fm{6j+ mUINVbh a; u% ە\UTP`bb u%_e@@`zX6nvo;KuuY?-e`ppU*ƶa&*mU #X)ekc`e UUUJm@`pX,^nCm'TUUh] U+MeejU ,۶mۤ2TUUU@/6difl,mjmj4`n*m >)< ep^oz.d" bGGATCGVAD\QGGATCXAMGGATGALFGGATSFFO@@@ m6d4׾UUm۲}UUTp m6bU ȟ]x^WU?G e ``p8I$I=UUU`m6j4UƟex^UU? eC!pʐJm+? eB@ް-lUWX`ɶm۶m#UU)mCUڶ }U\m۶2UUUTo? e#!pAJm)e\)e\-?ed2@@I$z>5UWF)e\e)]%/dT\XXbmUUUDɏoKmA)e\)e\ eD*@Agϐoz^%:Ju e'TpegT (e\8ȯ|ˆ\XX\VooJm)e\ ed2@KP@oz^%6Ju eapA&:|^W%ͯKu/`5?d`ZU3'N$TUUUH|oKm)e\,g m@`XTS^,Ju -\!pC->΍^ !ȯJm/?e:@ dUVXpobC m%UqeaIe\*)eP```΍ ^%'3Ζ)e\ eC@ \``x^I$H$I$IUUЈ QU`ͯPl} +\ leĩd!`]`S ebWUU)e\eGT@<Wea`ZU0 UUUm۶UU#@mIӶUUFn UjY] lu\? !? e``X e -(e\)?Oy \^VP؃ aVUUUTUUUٶiύe\UUU)e\ku\9( e7p@!e3?d`XV #UUU fd}UU8ՙMذmTUUU:Զe;6nueTUUUefC)e\)e\?egK@)@'diwV2!LذmۡTUUU6nvne`X/O ۇKWUUXn,e 5)e\)e\ CTTTVvnk eU<ƒ fC\WUUH$I$s6beuUeUWTW(eB`M$*TWUUI$I$H$I$%m۶a#UUF e!`#g\ pXVU@-۰m%vnaUUUA$`'T]UU OINl:XUUU _ ۶m  m۶a;vUUvm?}U[m۶UUUX ??rȟ(eiS dp sm{0U܆BI$L'H\UWTT AFn6nKu% egT@s)mb`qȟb mp8.Ь eAlۗل GTTVUU n6b[*my)e!` #ˏ>w ehJma eap`I$K$ .m۶m#tUUU m[6BNU-P*mD2Ԁ.pʀeJma ,pe` ƒ e XVUU Lm۶a;U%Ɵ]xVUUkm\;/P8 ep? eVUU mfCpUUU  @ }E ep\WU&oJm U\``pX m{c3UU!IkuzUٰmۇT\WUU  "6`Hl}  ۑUV}m)kuUUp` ok ey*mgKa:%? e`ZPX,mvnU5 ?+m'LB eAfUс ۶mۦCTUUUnѶa[y _yd`^ @9gn# mI".(dT@ 䆊ZkT m(,ضm۩\`ZUU)Φf* dPGGATCGVAEYJGGATCXAMGGATGALFGGATSFFO@@@#fm[cU=I?΍Uʶm۰٭UUVXԶmi#uRe_\VW?)e:@ -d UW\pI$I$Zm $0U 6osJmArPIe\j? \ x^(\@`zUU5M UUWW)eUUbFȟReXWUU:e@x^W Ш_?TUUUhi9I(bTWUUI$IUUUI$I)eUUUBm{bն) eXVUU e*@8b?:L \WWU3?}$H$I$I$Il}UUg#bȟGoz0OrD K \WUU wL 5m۶a0նUe ֶm?1Ue RMLuVXx^m,0ep\VU(e\j9\@`p\VX/:C' WUUUx$I$I$I)eUU=m[6bSe\TWUw(e`XXxWX>t'H$I$Vnbcd eb )eeC@-=I?l}W_,̟HK)e\` 9\x\()WN0\WUU8<ذm mFWex^UU` 4e`x\ ЪѣO?TUUU6Mق 2bca!̯5fD*UUU.@Ĉ\-%I$M$imgTe)]??e2@@Or *\WUT[@ mn䵶־eXVUUeEC@D X/:K\\VWa@-yI$ f{b5ύeVTVU\`Xdea 5 ? e^`n ۂSUUU\I$IU7FnS)eApPX(e\j\ap\VC?@TUUU =۰mI$I`)eUUDm۶e#U e`x\We\@OOr)eWW\`y}$aUU\'Po\ -/?dP@z#>2 *j\@x^U#)WN0TUUU A=ذmn6`=)@es_U8e"\e.Ye`Mp \ UVV\=b`0 UUU$`UUU`B }hb:)e@x^UU Ъ' VUUU7,ذmoe eAp/)UC\WUUI˖@2%U7@ uߨ\WUd` հ-lUWX`$I$wɝ$UUU=:~$ WUUU,ضmbhd!5UUUƍo:x_UU>}$h6`5`I$b-fCgT-UU>ez_UAMI$I$@$I$I$I$I$p$I$I$Yk M`&=ذm  da[a;-ҰqXjm۰dUUW\ \UUU6r* 'O\ `XW 'lTXUUUm6셔UU JmUUU'a+v% :` 5)m``X\!LذmۀVUUUmi/RU4ӿQxZVtm۶mrUU6m(0@UP`hζa#v% )e@` •=d2TWUUĶm۶a#־U ;ƿrhzϐ-D*TUUUobC e -U_ e p |?L)!\(eXVWWO$I2UU2F8 'ه\X\VW-۶m da۶a8UU*FnQO4\ W\.΁}>\ \`!n֏Q` &O\ `XWL؂ 0<3m,$!IAe ܯ9 e`h` %I' mUUWXTq$ ZUU'I$ Xjh6`*IUUUfp$I$ I$E;5UUUlgTXWUU $I$  d*UUU`LujGGATCGVABVAGGATCXAMGGATGALFGGATSFFO@@@mf@mۀI$Iֶ0UC Am۶a;1UUTV1Cpx=%;UWVT.ضU΃rUaI$~>"UUWT a[i;ϕ?ͅCxhM:UWVTٶi#n΅eTVWW SgT\XXpN ۰%;1UUpFLpxxx>:2VVTTI$I$Զk;6nύ%ku\||ҧSgTV\XXF΍e)]U_?e@p` ODЕ}\||~$ʧ CT\\\0ALnvnm})eeU?G\XXXXȏʯJm)e\?\```;C?C>}e)]C KX\\\]؁%6n#k{ m%)ee~pTxxX\11 *m e'] (\@`ppx7C>B/KueK@<E;\\VV؅M2c[a;UUUwku\{sr=RfC\\T\@0Cd%ku\xfw/u\x^VWNODKu% )e$*```X/:>TWUUH$N$IIe}\rpp4K\\Xx a[;p }Txxxx!`:9;TTT\ 0n΅% @)eD*````!aUUUTII$ȏo m-X`:: TTTTN#dUUU`u%;b``&#:>!\WWW0 m}%d@```p>3'Poo,u* %;T\\\JJ}3````  TTVVնa[k;(,uxxxxa؅]-`oo,u. %;\\\\ JH}2````  aVTWWca΅%55jmxxxxKp'p'1BoL}4 K\\\\ KJ+lUյ??}2````  @WVTV 36n6o箅%,,jmxxxx@p'p'*ooJu A K\\\\xXHKkuC*````  VUUU/86onl} exxxxAp'p"'vnnku D 'T\\\\xlku!````>>;M6nvo獅v\`XXXX 7؅]vnnluK GT\\\\"IK8t_kub````R`6nn}k \ XXXX-x'z'vn6fC*mUUG K \^UU3MDM,uf*m``zW6o6b[uUEWI%gTX^WU$؅M  I$@UU"m۰x1UUU=΅ PPXxm6fQUU/m۶UUUT 8vb} ʃW΍,Ge`@vnد#̈́]ؑ%;WVTT Uo)m)/Jm&6e!@@Gp*m ;TTTV vn6n*m pd?)m`ppp#Jm]لM؁TUUW ,svnn*mh&p'\VVVW9u xXXXdc'H$I$1mv־% )eXVUU@ImT eK@ZOex^WU ,p$I$ m۶m#UUUڶg־$3j\#*(e\ eC`9#:CT\VW-۲- m۶m8vUUUmվUFFҷI$IeAxP x%hP @eUTVU'\`pX>aTUUUH$N$I$IrU ڶ=1Ur -rUc*z ep^U78ߧ WUUoۃ<}0͡}e; egT@\w\ X\VWu\ك-IId, m OD mWWd߶,2UU%BdVW% d x_UU Ш疾UUU% նim\)e\?]`x>TUUU-۰mI$I$ h%Fc,\ %I ?nWMDI\WU'TUUU4m0br)eL)e\ e*@B`?:\\VWUs3'}$6bCaۣ!UUUXw!`UUUЊ$! ذmI$I1KkLu ^U .l} > He\@ :e `x\WP/:'x$I$I$I$ kp$I$I$I$i(n4U2eZTWU` 9ex^ЪգO?TUUU-p$O$,I$IUUU Q? )ex_Z>BTUUUW<ذm!ɶcn%z' d`x_U' [UUU`<ذm!b6doV$ p$I$  Զm۶a+־UU)m۰ْUUT[ mcU۰'s )|!LَXVWU ۶a#F־2epUUU5w)e`XVUc=۰m ܶm۶a,UU$g?ն'YQ m F! e!@ÑٕM;TWUU ݀$@ 奥OR2rRku@b^r"1@Z%HL\e `pX\J=۰m n#egTU7Qw +upWUlKu*ٴ=d \WWUt}S}n3>)e `pX ۶m  $I$ <aUذmKTUUU @m۶m#UUU6`e{΍`zI1Eȏ}سm\X\VU6felnjyGGATCGVA6kE'GGATCXAMGGATGALFGGATSFFO@@@Am۶m01UUUm۶$}UUUI$I}UUUXm۶}UUUm۶tUUUTI$aRU96> HzWG''l^UU-f \*M >\\\X,l.i\ UU=ۯ< H+m UܶM>+mUX PI$I'lUUUT I$ISUUUAeΗ Qx9?KuxVUUWMr =$ضm3IN9 e\\\\p$J$ 8ZcCmolfK5UUU$'Z-\p 5B-dUUVXcމG`4[ϒKH\\WUUVXO?N$p$I$23c;a-}9 e\\\\H$H$I$I$^ch6d#!UUUተD \` % ۂFCUUUTDɶmcU%@T?}X^VWXP-12c;at9 dXXXXH$H$bcaTUUp=\\XrcI$M'.vk|fP}a` RM H$I$1IIl9 \XXX\H$H$I$I$Fc\z=ؔ!UUUTI$I9KJkupXXXK\ل=c[afCUUU?\^VTT]۳ b6hcd5 LVTTTIIH>KmXXm$}UUm$UUm$UUm$UU;mۉsdUUc$$}UU!K$ mTT:m-΅UU۶m&UU۶m$UU۶m$UU۶m$UUIl}\/gTTTTVIIXI e\\XXb l$a m$a m$am$ UUU^ `d$ ZUUU1؆m$?lVTTT,m6] @n$` m$` m$` m$o md }UՕl/q\VTTTII6S\XPpb M$K'0ai;tUU!@pKuTTXXL$K$#gk#}5 LTTVVI$I$'n}Fh3h\ATMؕUUUT14ac;ѝ2 dX\\\ M۵2n'F΍aZ.P9TUUUn#e\%U|'C\V\Xb m۲4II8 e\\\\H$H$߶m۶e#UUAO<}pX^VT< ɑI$Cy\ % -\ UUTPI$I$4II8 e\\\\H$H$YI$IUUUBvn~z@0x^U(P>TUUUx$I$1bcarByh\ 5 -WdUVP m۰4II8 e\\\\H$H$m۶esUU=nA0x^!ѦM0:TUUU;'O$2yI$ 1f@T UU.ۄWbi+uP- UVe[Q8p $Jm\XX* UU a1yIs_@ &?n^UUUXO?aVUUU;'O$ I$ NZchahIw!5UUU@$D*UUU T$d2*UUU  Gd2xUUU[MR4m ۶m  4m۶TUUzMmlUIBڭ}UV ۩ mQX\VI$I$ œ|\RI%Ƕm۰i\UUVPIINԁ؁TTTTTim۶m#UUUɑGNx^L)ك aTUUU 6bm zɝ$,u UUIl,uU4ԑi\TU''^UUKPm Vhm۶cUUu6M}uJ$l}@Vmہ(TUTPa9:daQQjIId6۳=dVVVmFl$diŅA%/KQQQA@I@UF؁KTTTT{jvg} eavvg#aLUUIĘw+էJ( mV_ ~ƒmNX^UU@M ejd1_!\5H2T@$G`7)jdˎ=}bZ>!OL©d2GGATCGVAC^yGGATCXAMGGATGALFGGATSFFO@@@ I$IsUUU|$d*TUUU icm`UUU=)e)e\)e\)e\)e\?]XXXXmIdI+uJm\)e\)e\)e\egT@|'z'2WWVTΏe[X\\)e\)e\)e\)e\ ʇ\\\\TII$UUUM$J$lu\)e\)e\)e\)e\ꪪCّLuVVVֶm۶=,΍UUeTTTV)e\)e\)e\e)]'|KTTVV h)eC)e\)e\)e\)e\ e'] e'])e\)e\)e\)e\ eC@]*TVVW"o6je %U\e Ue"Ue"U e"Ue"Ue"Ue"U e"U$e"UeUE\p^UM؂ I$I$L$I$PImPImQImQImPImQImPImQImPI m1l۶m  +m۶aUU(mC0U-kuU@ mۃ*mUUP@ I$IM}UUVޏd;j ۨ\VUUmmGT UUG?&eeCU-ۅeCUWTV a;a; u)eeC@@@@ ۰ "Fb۶m m۶m ĶmcU6lueC@2eUUku@I)eU?)eU =ۙ*mUTXXIDI*m)e\)e\eeC`e%; )e\)e\pّ\X\\\nIdI+ue)])e\J?\pPppPn6o)e)e\)e\(؁]GTTTTVI$I$aUUU@*m])e\n e`jvJm)e\eTH$K$;TVVW #o5aeUU+$`(eUU+$`(eUU+$`(eUU+$`(eUU+Tm\zUU< ۶m I$Im}UUU6|Zk3PMm۰:UUWTaFlu? ePPaIkuUUm*mUU@@ooo)e0Oe@e (e````Vvn6be%UIeUI eU) \`pXU@6hg<*mA)D)mPbU0cm\ (_AIej8ތ LV e2@GGATCGVAK^$GGATCXAMGGATGALFGGATSFFO@@@?I$IUUUgm۶rUUUPI$IUUUjI$IUUPܶmcXUHFJm^U?KhUXm۰UUUX m۶beUUUI$H$'m۶m#־UUUmc` )m^U1exWUUeC^e%;}e-UU,΅d` Ȱ}UЀm۰UUUXCm۶m#־UUU=m`U0`־)e_UexWUU\d2x9\_`% fC^UUE@C +UUn1\ e2 }e-UU-?\@ /M?UX6m۶دUUUXȏ΍exWUUeD*z \@~WY% %;^UU'`VUUU|4m+I$aUUUcd^U7?h@: _yc1T ed* }e-UU ?Jmhx`-h&h&u \@~WR% ;^UU'@TWUUw4m$I$ِdI$H`@UUU|I$XuUUR2 UUY1T ?'T```zm㒆f@'TyUU'`VUUUtX]?O$$I$ $I$yI$I$ UUU'3fUUe<I$$I$ vaeU@UI$@$2UUQUI$I$eUUUP cm  ضmII$eUUUِlI$@$I$$I$eAUUU  I$IUUUm۶SUUUT I$I\UUU0m۶ ;UUUmRUq-!Jm@5 ۏ?}UT6m۶-}UUUT Aem6oU9Fq e_ K^UU Ϳ5fT@ UU21e-6?Jm@8Ͷ ۧKuUTX\HnbkuUIr ئK^UUX'I$ x$I$ I$I$ QbmہMUUU!16dK UU9s?TX^_U 6b۶m x$y$eUUQU I$)eUUI$$eUGU$I$  I$IUUUI$I$2UUUT ~m6sU^)go,*m @ ֶ '*mUT@@ m e]UEdm۶m !ɑ$I$TUUU K` mekU[Q @0Ѷm۶1UI$hBl}UT@! l۶mI\XUUU jFc۶mۇ\AUU2Da1AU//by Levrex, 27.03.2014, otstrel.ru private ["_man", "_veh", "_pos", "_num", "_tempAr"]; _man = _this select 0; _veh = _this select 1; _pos = _this select 2; _num = _this select 3; if (local _man) then { _man attachTo [_veh, _pos]; sleep 0.1; detach _man; _man setDir ( direction _veh); _tempAr = (_veh getVariable "EX_SEATS_TAKEN"); _tempAr set [_num, objNull]; _veh setVariable ["EX_SEATS_TAKEN", _tempAr, true]; }; if (alive _man) then {_man switchMove "AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutHigh"} else {_man switchMove "";}; //by Levrex, 27.03.2014, otstrel.ru private ["_cTarget", "_ex_seat_act"]; if (isDedicated) exitWith {}; Ex_seats_MainLoop = compile preprocessFileLineNumbers "scripts\EX_seats\Ex_seats_MainLoop.sqf"; Ex_seats_GetDown = compile preprocessFileLineNumbers "scripts\EX_seats\Ex_seats_GetDown.sqf"; Ex_seats_Seat = compile preprocessFileLineNumbers "scripts\EX_seats\Ex_seats_Seat.sqf"; "Ex_s_down" addPublicVariableEventHandler {(_this select 1) spawn Ex_seats_GetDown}; "Ex_s_taken" addPublicVariableEventHandler {(_this select 1) call Ex_seats_Seat}; while {true} do { sleep 0.003; _ex_seat_act = nil; _cTarget = objNull; _cTarget = cursorTarget; if (!isNull _cTarget && alive _cTarget && player distance _cTarget < 7) then { if (_cTarget isKindOf "BMP2_Base" || _cTarget isKindOf "BMP3" || _cTarget isKindOf "T72_Base" || _cTarget isKindOf "T34" || _cTarget isKindOf "T90" || _cTarget isKindOf "T55_Base" || _cTarget isKindOf "BTR90_Base" || _cTarget isKindOf "BTR60_TK_EP1") then { if !(_cTarget isKindOf "ACE_BMD_1_Base" || _cTarget isKindOf "ACE_BMD_2_Base") then { _ex_seat_act = player addAction [localize "STR_RIP_HINT_SITONTOP", "scripts\EX_seats\Ex_seats_Processor.sqf", cursorTarget, 94, true, true, "", "[_target, _this] call BIS_fnc_relativeDirTo > 60 && [_target, _this] call BIS_fnc_relativeDirTo < 300"]; waitUntil {sleep 0.003; cursorTarget != _cTarget}; if (!isNil "_ex_seat_act") then {player removeAction _ex_seat_act}; }; }; }; };private ["_man","_veh"]; _man = (_this select 0); _veh = (_this select 1); if (local _man) then { EX_PLAYER_ON_ARMOR = true; while {EX_PLAYER_ON_ARMOR && (alive _man) && !(_man call ace_sys_wounds_fnc_isUncon)} do { if ((inputAction "MoveForward") == 1) then { if (speed _veh < 20) then {EX_PLAYER_ON_ARMOR = false;} else {hint composeText [parseText format [""+localize "STR_RIP_HINT_TOOMUCHSPEED"+""]];}; }; _man setVariable ["ace_sys_stamina_fatigue", 0]; sleep 0.5; }; Ex_s_down = EX_CARGO_ARR; _nul = Ex_s_down spawn Ex_seats_GetDown; publicVariable "Ex_s_down"; }; //by Levrex, 27.03.2014, otstrel.ru private ["_veh", "_ex_array", "_type", "_cap", "_i", "_tempAr"]; _veh = _this select 3; _type = -1; _ex_array = [[ ["aav_cargo01", 330, [-0.8,-0.5,-0.1],-2.2], ["aav_cargo01", 150, [0.8,-0.5,-0.1],-2.2], ["aav_cargo01", 340, [-0.85,-1.8,-0.05],-2.2], ["stryker_cargo01", 90, [0.95,-1.8,0.05],-2.2], ["aav_cargo01", 270, [-0.95,-3.3,-0.05],-2.2], ["aav_cargo01", 180, [0.85,-3.4,-0.1],-2.2] ],[ ["aav_cargo01", 330, [-0.5,-0.5,-0.5],-2.2], ["aav_cargo01", 150, [0.5,-0.5,-0.5],-2.2], ["aav_cargo01", 340, [-0.85,-1.8,-0.8],-2.2], ["stryker_cargo01", 90, [0.95,-1.8,-0.7],-2.2], ["aav_cargo01", 270, [-0.95,-3.1,-0.8],-2.2], ["aav_cargo01", 180, [0.95,-3.1,-0.8],-2.2] ],[ ["MH6_Cargo02", 90, [0.7,-0.3,0],-2.2], ["MH6_Cargo02", 270, [-0.7,0,0],-2.2], ["MH6_Cargo02", 90, [0.7,-1.0,0],-2.2], ["MH6_Cargo02", 270, [-0.7,-0.8,0.05],-2.2], ["c5efe_MichalLoop", 270, [0.6,-1.9,-0.4],-2.2], ["MH6_Cargo02", 280, [-0.7,-1.6,0.05],-2.2] ],[ ["MH6_Cargo02", 90, [0.9,-0.2,0.8],-2.2], ["BTR_Cargo02", 270, [-0.8,-1.4,0.9],-2.2], ["MH6_Cargo02", 90, [0.9,-0.9,0.8],-2.2], ["MH6_Cargo02", 270, [-0.9,-2.2,0.9],-2.2] ],[ ["aav_cargo03", 245, [-0.85,0.375,-0.35],-5], ["aav_cargo01", 150, [0.95,0.35,-0.35],-5], ["stryker_cargo01", 270, [-0.9,-1.385,-0.35],-5], ["stryker_cargo01", 90, [0.9,-1.385,-0.3],-5], ["aav_cargo03", 200, [-0.7,-2.35,-0.35],-5], ["aav_cargo01", 185, [0.7,-2.45,-0.35],-5] ],[ ["aav_cargo01", 330, [-1.35,0,-0.5],-2.2], ["aav_cargo01", 150, [1,0,-0.5],-2.2], ["stryker_cargo01", 270, [-1.4,-1.75,-0.5],-2.2], ["stryker_cargo01", 90, [1.13,-2.1,-0.5],-2.2], ["aav_cargo01", 270, [-1.3,-2.85,-0.5],-2.2], ["aav_cargo01", 180, [0.9,-3,-0.5],-2.2] ],[ ["c5efe_MichalLoop", 95, [-0.7,-2,-1.4],-2.2], ["BTR_Cargo02", 220, [-0.7,-3.1,-1],-2.2], ["BTR_Cargo02", 200, [0.7,-3,-1],-2.2] ],[ ["MH6_Cargo02", 90, [1.4,-3.7,-0.7],-2.2], ["MH6_Cargo02", 270, [-1.4,-3.7,-0.7],-2.2], ["MH6_Cargo02", 90, [1.4,-3.0,-0.7],-2.2], ["MH6_Cargo02", 270, [-1.4,-3.0,-0.7],-2.2] ],[ ["MH6_Cargo02", 90, [1.45,-3,-0.45],-2.2], ["AAV_Cargo03", 150, [-1.1,-4.2,-0.55],-2.2], ["AAV_Cargo03", 90, [1.1,-4.2,-0.55],-2.2], ["MH6_Cargo02", 270, [-1.45,-3,-0.45],-2.2] ],[ ["AAV_Cargo03", 100, [1.35,-3.9,-0.82],-2.2], ["AAV_Cargo03", 150, [-1.45,-4.2,-0.82],-2.2], ["MH6_Cargo02", 270, [-1.55,-3.5,-0.72],-2.2], ["MH6_Cargo02", 90, [1.55,-2.7,-0.72],-2.2] ],[ ["aav_cargo03", 245, [-0.85,-0.25,-3.9],-5], ["aav_cargo01", 150, [1,0.3,-3.9],-5], ["stryker_cargo01", 270, [-1,-1.8,-3.9],-5], ["stryker_cargo01", 90, [1,-1.8,-3.9],-5], ["aav_cargo01", 270, [-0.7,-3.1,-3.65],-5], ["aav_cargo01", 185, [0.7,-3.15,-3.65],-5] ],[ ["aav_cargo03", 245, [-1.05,0.375,-0.5],-5], ["aav_cargo01", 150, [1.05,0.35,-0.5],-5], ["stryker_cargo01", 270, [-1.15,-1.385,-0.5],-5], ["stryker_cargo01", 90, [1.0,-1.385,-0.5],-5], ["aav_cargo01", 150, [1.05,0.35,-0.5],-5], ["aav_cargo01", 185, [0.7,-2.45,-0.5],-5] ],[ ["aav_cargo03", 245, [-0.85,0.375,0.4],-5], ["aav_cargo01", 150, [0.95,0.35,0.45],-5], ["stryker_cargo01", 270, [-0.9,-1.385,0.45],-5], ["stryker_cargo01", 90, [0.93,-1.385,0.45],-5], ["aav_cargo03", 200, [-0.7,-2.45,0.4],-5], ["aav_cargo01", 185, [0.7,-2.45,0.45],-5] ]]; switch (typeOf _veh) do { case "BTR90": {_type = 0; _cap = 6;}; case "BTR90_HQ": {_type = 1; _cap = 6;}; case "BTR60_TK_EP1": {_type = 2; _cap = 6;}; case "ACE_BTR70_TK": {_type = 3; _cap = 4;}; case "ACE_BTR70_UN": {_type = 3; _cap = 4;}; case "ACE_BTR70_RU": {_type = 3; _cap = 4;}; case "ACE_BTR70_RU_D": {_type = 3; _cap = 4;}; case "ACE_BTR70_CDF": {_type = 3; _cap = 4;}; case "ACE_BTR70_INS": {_type = 3; _cap = 4;}; case "ACE_BTR70_GUE": {_type = 3; _cap = 4;}; case "BMP2_INS": {_type = 4; _cap = 6;}; case "BMP2_CDF": {_type = 4; _cap = 6;}; case "BMP2_Gue": {_type = 4; _cap = 6;}; case "BMP2_UN_EP1": {_type = 4; _cap = 6;}; case "BMP2_TK_EP1": {_type = 4; _cap = 6;}; case "ACE_BMP2_RU": {_type = 4; _cap = 6;}; case "ACE_BMP2_TK": {_type = 4; _cap = 6;}; case "BMP3": {_type = 5; _cap = 6;}; case "T34": {_type = 6; _cap = 3;}; case "T34_TK_EP1": {_type = 6; _cap = 3;}; case "T34_TK_GUE_EP1": {_type = 6; _cap = 3;}; case "T90": {_type = 7; _cap = 4;}; case "ACE_T90A": {_type = 7; _cap = 4;}; case "ACE_T72B_RU": {_type = 8; _cap = 4;}; case "ACE_T72B_Gue": {_type = 8; _cap = 4;}; case "ACE_T72B_INS": {_type = 8; _cap = 4;}; case "ACE_T72B_Base": {_type = 8; _cap = 4;}; case "ACE_T72B_CDF": {_type = 8; _cap = 4;}; case "ACE_T72BA_Base": {_type = 8; _cap = 4;}; case "T72_RU": {_type = 8; _cap = 4;}; case "T72_INS": {_type = 8; _cap = 4;}; case "T72_CDF": {_type = 8; _cap = 4;}; case "T72_Gue": {_type = 8; _cap = 4;}; case "T72_TK_EP1": {_type = 8; _cap = 4;}; case "T55_TK_EP1": {_type = 9; _cap = 4;}; case "T55_TK_GUE_EP1": {_type = 9; _cap = 4;}; case "BMP2_HQ_INS": {_type = 10; _cap = 6;}; case "BMP2_HQ_CDF": {_type = 10; _cap = 6;}; case "BMP2_HQ_TK_EP1": {_type = 10; _cap = 6;}; case "ACE_BMP2D_RU": {_type = 11; _cap = 6;}; case "ACE_BMP2D_TK": {_type = 11; _cap = 6;}; case "BMP2_Ambul_INS": {_type = 12; _cap = 6;}; case "BMP2_Ambul_CDF": {_type = 12; _cap = 6;}; }; if (_type > -1) then { if (count (_veh getVariable ["EX_SEATS_TAKEN", []]) < 1) then { _tempAr = []; for "_i" from 0 to (_cap - 1) do { _tempAr set [count _tempAr, objNull]; }; _veh setVariable ["EX_SEATS_TAKEN", _tempAr, true]; }; }; _tempAr = (_veh getVariable "EX_SEATS_TAKEN"); _i = _tempAr find objNull; if (_i < 0) exitWith {hint composeText [parseText format [""+localize "STR_RIP_HINT_ALLSEATSOCCUPIED"+""]];}; _tempAr set [_i, player]; _veh setVariable ["EX_SEATS_TAKEN", _tempAr, true]; _tempAr = (_veh getVariable "EX_SEATS_TAKEN"); if ((_tempAr select _i) != player) exitWith {}; Ex_s_taken = [_veh, player, ((_ex_array select _type) select _i), _i]; Ex_s_taken call Ex_seats_Seat; publicVariable "Ex_s_taken"; //by Levrex, 27.03.2014, otstrel.ru private ["_man", "_veh", "_anim", "_dir", "_pos", "_num"]; _veh = (_this select 0); _man = (_this select 1); _anim = (_this select 2) select 0; _dir = (_this select 2) select 1; _pos = (_this select 2) select 2; _posz = (_this select 2) select 3; _num = (_this select 3); if (local _man) then { _man attachTo [_veh, _pos]; if ((_pos select 0) < 0) then {EX_CARGO_ARR = [_man, _veh, [((_pos select 0)-1.3), (_pos select 1), _posz], _num];}; if ((_pos select 0) >= 0) then {EX_CARGO_ARR = [_man, _veh, [((_pos select 0)+1.3), (_pos select 1), _posz], _num];}; null = [_man,_veh] spawn Ex_seats_MainLoop; }; _man switchMove _anim; _man setDir _dir;RIPLOWGEARON = false; // by WINSE _direction= { private["_vel","_veh","_vdir","_dir"]; _vel=_this select 0; _veh=_this select 1; _vdir=(_vel select 0) atan2 (_vel select 1); if (_vdir < 0) then {_vdir=_vdir+360}; _dir=getDir _veh; if (_dir < 0) then {_dir=_dir+360}; _vdir=_vdir-_dir; if (abs(_vdir) < 15) then {true} else {false}; }; _min=30; _max=40; RIPLOWGEARON = true; _veh = vehicle player; _veh removeAction RIP_LOWGEARACTON; RIP_LOWGEARACTON = nil; RIP_LOWGEARACTOFF = _veh addAction [localize "STR_RIP_LOWGEAROFF", "scripts\LowGear\LowGearOff.sqf", "", 0, true, true, "", "driver _target == _this"]; while {(player != _veh) && (player==(driver _veh)) && (RIPLOWGEARON) && (canMove _veh)} do { _speed=speed _veh; _vel=velocity _veh; if (_speed < _min) then { if ((inputAction "MoveForward") == 1) then { if (_speed > 0) then { if ([_vel,_veh] call _direction) then { _vel=[(_vel select 0)*1.3,(_vel select 1)*1.3,(_vel select 2)*1.3]; _veh setVelocity _vel; }; }; }; } else { if (_speed > _max) then { if ([_vel,_veh] call _direction) then { _vel=[(_vel select 0)*0.7,(_vel select 1)*0.7,(_vel select 2)*0.7]; _veh setVelocity _vel; }; }; }; sleep 0.1; }; RIPLOWGEARON = false; _veh removeAction RIP_LOWGEARACTOFF; RIP_LOWGEARACTOFF = nil; private ["_currentVeh","_veh"]; if (isDedicated) exitWith {}; RIPLOWGEARON = false; RIP_LOWGEARACTON = nil; RIP_LOWGEARACTOFF = nil; _currentVeh = vehicle player; while {true} do { sleep 0.003; _veh = vehicle player; if ((player == (driver _veh)) && (canMove _veh)) then { if (_veh isKindOf "Tank" || _veh isKindOf "BTR90_Base") then { if (!RIPLOWGEARON && (isNil "RIP_LOWGEARACTON")) then { RIP_LOWGEARACTON = _veh addAction [localize "STR_RIP_LOWGEARON", "scripts\LowGear\LowGearOn.sqf", "", 0, true, true, "", "driver _target == _this"]; _currentVeh = _veh; }; }; }; if ((player != (driver _currentVeh)) && !(isNil "RIP_LOWGEARACTON")) then {_currentVeh removeAction RIP_LOWGEARACTON;RIP_LOWGEARACTON = nil;}; };private ["_info_arr", "_i", "_pos", "_log_briefing"]; _info_arr = ""; for "_i" from 0 to ((count (missionConfigFile >> "params")) - 1) do { _pos = (getarray (((missionConfigFile >> "params") select _i) >> "values")) find (paramsArray select _i); _info_arr = _info_arr + format ["%1 %2
", (gettext ((missionConfigFile >> "params") select _i >> "title")),((getarray (((missionConfigFile >> "params") select _i) >> "texts")) select _pos)]; }; _log_briefing = player createDiaryRecord ["Diary", [localize "STR_RIP_BRIEFING2", _info_arr]]; _log_briefing = player createDiaryRecord ["Diary", [localize "STR_RIP_BRIEFING0", localize "STR_RIP_BRIEFING1"]];//by RIP private["_handled","_dikCode","_shift"]; #include "\ca\editor\Data\Scripts\dikCodes.h" _handled = false; _dikCode = (_this select 1); _shift = (_this select 2); RIP_MENU_inCommunication = [ ["",false], [localize "STR_RIP_MENUOPTIONS", [2], "", -5, [["expression", "[] execVM ""scripts\player\Options.sqf"" "]], "1", "1"], [localize "STR_RIP_MENUGROUPSTATUS", [3], "", -5, [["expression", "[] execVM ""scripts\player\StatusGroup.sqf"""]], "1", "1"] ]; if (str(player) in ["ins3","merc5","gue5"]) then { RIP_MENU_inCommunication = RIP_MENU_inCommunication + [[localize "STR_RIP_MENUREPAIR", [4], "", -5, [["expression", "[] execVM ""scripts\player\RepairVehicle.sqf"""]], "1", "1"]]; RIP_MENU_inCommunication = RIP_MENU_inCommunication + [[localize "STR_RIP_LOCKUNLOCK", [5], "", -5, [["expression", "[] execVM ""scripts\player\UnlockVehicle.sqf"""]], "1", "1"]]; }; if (RIPRALLYPOINTS == 1) then { if (str(player) in ["ins1","gue1","merc1"]) then { RIP_MENU_inCommunication = RIP_MENU_inCommunication + [[localize "STR_RIP_SETRALLYPOINT", [4], "", -5, [["expression", "[] execVM ""scripts\player\RallyPoint.sqf"""]], "1", "1"]]; }; }; if ((!_shift && (_dikCode in (ActionKeys "ForceCommandingMode")))||(!_shift && (_dikCode in (ActionKeys "TacticalView")))) then { _handled = true; }; switch _dikCode do { //T case DIK_T: { showCommandingMenu "#USER:RIP_MENU_inCommunication"; _handled = true; }; }; _handled; while {true} do { clearRadio; sleep 0.1; };//by RIP if (isDedicated) exitWith {}; removeAllWeapons Player; removeBackpack Player; removeAllItems Player; private ["_hospital","_backpack"]; _hospital = "RU_WarfareBFieldhHospital" createVehicleLocal [0,0,0]; _hospital setDir 290; _hospital setPos (getMarkerPos "hospital"); clearMagazineCargo _hospital; clearWeaponCargo _hospital; _hospital addEventHandler ["handleDamage", {0}]; [_hospital] execVM "scripts\server\gear\ammo_med.sqf"; _backpack = "ACE_RuckBox_East" createVehicleLocal [0,0,0]; _backpack setDir 290; _backpack setPos (getMarkerPos "backpack"); clearMagazineCargo _backpack; clearWeaponCargo _backpack; _backpack addEventHandler ["handleDamage", {0}]; "Veh_serv_1" setMarkerTextLocal localize "STR_RIP_MARKER_HELISERVICE"; "Veh_serv" setMarkerTextLocal localize "STR_RIP_MARKER_LANDSERVICE"; "UAV" setMarkerTextLocal localize "STR_RIP_MARKER_UAV"; "hospital" setMarkerTextLocal localize "STR_RIP_MARKER_HOSPITAL"; "ammoboxes" setMarkerTextLocal localize "STR_RIP_MARKER_AMMOBOX"; //by RIP private ["_markers","_markername","_position","_marker","_markercolor","_veh","_markernametext","_rallypoint"]; _markers=[]; while {true} do { if (local player) then { if (str(player) in ["ins1","ins2","ins3","ins4","ins5","ins6","ins7","ins8","ins9"]) then {_rallypoint = RIP_M1_CHECKPOINT;}; if (str(player) in ["merc1","merc2","merc3","merc4","merc5","merc6","merc7","merc8","merc9"]) then {_rallypoint = RIP_S1_CHECKPOINT;}; if (str(player) in ["gue1","gue2","gue3","gue4","gue5","gue6","gue7","gue8","gue9","gue10","gue11","gue12"]) then {_rallypoint = RIP_G1_CHECKPOINT;}; if (RIPPLAYERMARKER == 1) then { { if ((side (group _x))==(side (group player))) then { _markername = (name _x); _position = getPos _x; if (isPlayer _x) then { if (alive _x) then { if (vehicle _x == _x) then { _marker = createMarkerLocal [_markername, _position]; _marker setMarkerShapeLocal "ICON"; _markername setMarkerTypeLocal "mil_dot"; _markername setMarkerSizeLocal [0.75,0.75]; _markername setMarkerDirLocal 180; if (_x in (units(group player))) then { _markercolor="colorGREEN"; } else { _markercolor="colorBLUE"; }; _markername setMarkerColorLocal _markercolor; _markername setMarkerTextLocal (name _x); _markers = _markers +[_markername]; } else { _veh = vehicle _x; if (_x == driver _veh) then { _marker = createMarkerLocal [_markername, _position]; _marker setMarkerShapeLocal "ICON"; _markername setMarkerTypeLocal "mil_triangle"; _markername setMarkerSizeLocal [0.75,0.75]; _markername setMarkerDirLocal 180; if (_x in (units(group player))) then { _markercolor="colorGREEN"; } else { _markercolor="colorBLUE"; }; _markername setMarkerColorLocal _markercolor; _markernametext = format ["%1(%2)",(getText (configFile >> "CfgVehicles" >> (typeOf _veh) >> "DisplayName")),(name _x)]; _markername setMarkerTextLocal _markernametext; _markers = _markers +[_markername]; }; }; }; }; }; }ForEach AllUnits; }; //точка сбора _markername = (name _rallypoint); _position = getPos _rallypoint; if ((_position distance Flag_Base_RU)>1000) then { _marker = createMarkerLocal [_markername, _position]; _marker setMarkerShapeLocal "ICON"; _markername setMarkerTypeLocal "mil_objective"; _markername setMarkerSizeLocal [0.45,0.45]; _markername setMarkerDirLocal 180; _markercolor="colorGREEN"; _markername setMarkerColorLocal _markercolor; _markername setMarkerTextLocal (localize "STR_RIP_RALLYPOINT"); _markers = _markers +[_markername]; }; sleep 3; { deleteMarkerLocal _x; }ForEach _markers; _markers=[]; }; };private ["_arrayofvehicle","_marker", "_x", "_markername", "_position","_markers","_markercolor"]; _markers=[]; _arrayofvehicle = [car1,car2,car3,car4,car5,car6,car7,car8,car9,car10,car11,car12,car13,car14,car15,car16,car17,car18,car19,car20,car21,car22]; while {true} do { if (local player) then { { if ((alive _x) && !(isPlayer (driver _x)) && (RIPPLAYERMARKER == 1)) then { _markername = str(_x); _position = getPos _x; _marker = createMarkerLocal [_markername, _position]; _marker setMarkerShapeLocal "ICON"; _markername setMarkerTypeLocal "mil_triangle"; _markername setMarkerSizeLocal [0.75,0.75]; _markername setMarkerDirLocal 180; if ((damage _x) < 0.8) then {_markercolor="ColorOrange";} else {_markercolor="colorBLACK";}; _markername setMarkerColorLocal _markercolor; _markername setMarkerTextLocal (getText (configFile >> "CfgVehicles" >> (typeOf _x) >> "DisplayName")); _markers = _markers +[_markername]; }; if ((alive _x) && (RIPPLAYERMARKER == 2)) then { _markername = str(_x); _position = getPos _x; _marker = createMarkerLocal [_markername, _position]; _marker setMarkerShapeLocal "ICON"; _markername setMarkerTypeLocal "mil_triangle"; _markername setMarkerSizeLocal [0.75,0.75]; _markername setMarkerDirLocal 180; if ((damage _x) < 0.8) then {_markercolor="ColorOrange";} else {_markercolor="colorBLACK";}; _markername setMarkerColorLocal _markercolor; _markername setMarkerTextLocal (getText (configFile >> "CfgVehicles" >> (typeOf _x) >> "DisplayName")); _markers = _markers +[_markername]; }; } forEach _arrayofvehicle; sleep 3; { deleteMarkerLocal _x; }ForEach _markers; _markers=[]; _arrayofvehicle = [car1,car2,car3,car4,car5,car6,car7,car8,car9,car10,car11,car12,car13,car14,car15,car16,car17,car18,car19,car20,car21,car22]; }; }; titleCut ["", "BLACK FADED",16]; playSound "Looser"; [""+localize "STR_RIP_HINT_LOSTMISSION"+"",0,(safezoneH)/2,6,2] call BIS_fnc_dynamicText; endMission "END2"; private ["_teamscore","_message"]; _message = localize "STR_RIP_HINT_GOODWIN"; titleCut ["", "BLACK FADED",16]; playSound "Victory"; [""+_message+"",0,(safezoneH)/2,6,2] call BIS_fnc_dynamicText; endMission "END1"; private ["_taskdesc","_squadtask","_numtask","_task","_missiontime","_hour","_done","_currenthour"]; if (isDedicated) exitWith {}; _task = localize "STR_RIP_HINT_MISSION"; _numtask = Server getVariable "RIPMISSIONTASKNUM"; _taskdesc = localize format ["STR_RIP_MISSION%1",_numtask]; _squadtask = Server getVariable "RIPMISSIONTASKSQUAD"; _taskdesc = format [_taskdesc,_squadtask]; waitUntil{!(isNil "BIS_fnc_init")}; switch ((Server getVariable "RIPMISSIONSUCCEED")) do { case 0: {RIPNEWTASK setTaskState "Failed";}; case 1: {RIPNEWTASK setTaskState "Succeeded";}; }; RIPNEWTASK = player createSimpleTask [_task]; RIPNEWTASK setSimpleTaskDescription [_taskdesc, _task, ""]; RIPNEWTASK setTaskState "Assigned"; if (RIPRANDOMTIME == 1) then { _missiontime = Server getVariable "RIPTASKTIME"; _hour = _missiontime select 3; _done = false; while {!_done} do { _currenthour = date select 3; if!(_hour == _currenthour) then { skiptime 0.009; }else{ setDate _missiontime; _done = true; }; sleep 0.0005; }; }; hint composeText [parseText format [""+localize "STR_RIP_HINT_NEWMISSION"+""]]; if !(isNull (Server getVariable "RIPMISSIONOBJECT")) then {[]execVM "scripts\server\func\War_func_Contamination.sqf";}; private ["_unit","_corp","_vehicle"]; _unit = _this select 0; _corp = _this select 1; waitUntil {alive player}; titleCut ["", "BLACK FADED"]; removeAllWeapons Player; removeBackpack Player; removeAllItems Player; sleep 60; _vehicle = vehicle _corp; if ((vehicle _corp) == _corp) then { sleep 3; While {(!(isNull _corp))} do { deleteVehicle _corp; sleep 3; }; } else { sleep 3; While {(!(isNull _corp))} do { if (_corp in crew _vehicle) then { _corp setPos [0,0,-1000]; }; deleteVehicle _corp; sleep 3; }; }; //by RIP private ["_ViewDistance","_SelectedGrid"]; _ViewDistance = ViewDistance; _dialog = createDialog "STR_SUB_9"; ctrlSetText [51016,str(_ViewDistance)]; sliderSetRange [51018, 500, RIPMAXVIEWDISTANCE]; sliderSetPosition [51018, _ViewDistance]; if (RIPDISABLEGRASSPLAYER == 1) then { lbClear 51019; lbAdd [51019,localize "STR_RIP_DLGDISABLE"]; lbAdd [51019,localize "STR_RIP_DLGVERYLOW"]; lbAdd [51019,localize "STR_RIP_DLGLOW"]; lbAdd [51019,localize "STR_RIP_DLGHIGHT"]; lbAdd [51019,localize "STR_RIP_DLGVERYHIGHT"]; } else {ctrlEnable [51019, false];}; While {dialog} do { _ViewDistance = sliderPosition 51018; _SelectedGrid =lbCurSel 51019; SetViewDistance _ViewDistance; ctrlSetText [51016,str(floor(_ViewDistance))]; if (RIPDISABLEGRASSPLAYER == 1) then { switch (_SelectedGrid) do { case 0: {setTerrainGrid 50;}; case 1: {setTerrainGrid 25}; case 2: {setTerrainGrid 12.5}; case 3: {setTerrainGrid 6.25}; case 4: {setTerrainGrid 3.125}; }; }; sleep 1; }; SetViewDistance _ViewDistance; private ["_pos","_list"]; _pos = getPosATL player; if ((_pos distance Flag_Base_RU)<1000) exitWith {hint composeText [parseText format [""+localize "STR_RIP_HINTCANTSETRALLYBASE"+""]];}; _list = _pos nearEntities [["Man","Car","Tank"],RIPNORALLYPOINTSENEMYNEAR]; if ((west countSide _list)>0) exitWith {hint composeText [parseText format [""+localize "STR_RIP_HINTCANTSETRALLYENEMY"+""]];}; player playMove "AinvPknlMstpSlayWrflDnon_medic"; sleep 8; if!(alive player) exitwith {}; switch (str(player)) do { case "ins1":{RIP_S1_CHECKPOINT setPosATL _pos;}; case "gue1":{RIP_M1_CHECKPOINT setPosATL _pos;}; case "merc1":{RIP_G1_CHECKPOINT setPosATL _pos;}; }; if (true) exitWith {};private ["_object", "_list", "_name"]; _list = nearestObjects [position player, ["LandVehicle", "Air", "Tank", "Car"], 10]; if(count _list == 0) exitwith { hintSilent composeText [parseText format ["
"+localize "STR_RIP_HINTNOVEHICLENEAR"+""]]; }; _object = _list select 0; if (getdammage _object > 0.80) then { hintSilent composeText [parseText format ["
"+localize "STR_RIP_HINTCANTREPAIR"+""]]; } else { player playMove "AinvPknlMstpSlayWrflDnon_medic"; _name= getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "DisplayName"); hintSilent composeText [parseText format ["
"+localize "STR_RIP_HINTREPAIR"+"",_name]]; sleep 8; if!(alive player) exitwith {}; _object setdamage (getdammage _object - 0.1); _text = parseText format["
"+localize "STR_RIP_HINTREMAINDAMAGE"+"", format["%1", ceil ((getdammage _object)*100)]+"%"]; hintSilent _text; }; if (true) exitWith {}; private["_ctrl","_stext","_i","_text2"]; if(isDedicated) exitWith {}; disableSerialization; while {true} do { waitUntil {!(isNull (findDisplay 49))}; _ctrl = (findDisplay 49) displayCtrl 1010; _stext = ctrlText _ctrl; _ctrl ctrlEnable false; _i = 30; while {!(isNull (findDisplay 49)) && _i > 0} do { _text2 = _stext + format ["(%1)",_i]; _ctrl ctrlSetText _text2; _i = _i - 1; sleep 1; }; _ctrl ctrlSetText _stext; if (!(isNull (findDisplay 49))) then { _ctrl ctrlEnable true; waitUntil {isNull (findDisplay 49)}; }; };//by RIP private ["_unit","_groupinfo","_groupunits","_name","_groupplayers"]; _unit = player; if ((str _unit) in ["ins1","ins2","ins3","ins4","ins5","ins6","ins7","ins8","ins9"]) then {_groupunits = ["ins1","ins2","ins3","ins4","ins5","ins6","ins7","ins8","ins9"]; _groupplayers = [ins1,ins2,ins3,ins4,ins5,ins6,ins7,ins8,ins9];}; if ((str _unit) in ["merc1","merc2","merc3","merc4","merc5","merc6","merc7","merc8","merc9"]) then {_groupunits = ["merc1","merc2","merc3","merc4","merc5","merc6","merc7","merc8","merc9"]; _groupplayers = [merc1,merc2,merc3,merc4,merc5,merc6,merc7,merc8,merc9];}; if ((str _unit) in ["gue1","gue2","gue3","gue4","gue5","gue6","gue7","gue8","gue9","gue10","gue11","gue12"]) then {_groupunits = ["gue1","gue2","gue3","gue4","gue5","gue6","gue7","gue8","gue9","gue10","gue11","gue12"]; _groupplayers = [gue1,gue2,gue3,gue4,gue5,gue6,gue7,gue8,gue9,gue10,gue11,gue12];}; _groupinfo = format[""+localize "STR_RIP_MENUGROUPSTATUS"+"
"]; _i = 0; { _name = localize "STR_RIP_MENUGROUPSTATUSEMPTY"; if (isPlayer (_groupplayers select _i)) then {_name = name (_groupplayers select _i);}; //командир if (_x in ["ins1","gue1","merc1"]) then {_groupinfo = _groupinfo + (format[" %1
",_name]);}; //инженер if (_x in ["ins3","merc5","gue5"]) then {_groupinfo = _groupinfo + (format[" %1
",_name]);}; //медик if (_x in ["ins7","merc6","gue6"]) then {_groupinfo = _groupinfo + (format[" %1
",_name]);}; //стрелок if (_x in ["ins2","ins4","ins5","ins6","ins8","ins9","merc2","merc3","merc4","merc7","merc8","merc9","gue2","gue3","gue4","gue7","gue8","gue9","gue10","gue11","gue12"]) then {_groupinfo = _groupinfo + (format[" %1
",_name]);}; _i = _i + 1; } forEach _groupunits; HintSilent parseText _groupinfo; sleep 10; HintSilent "";private ["_pos"]; if (RIPRALLYPOINTS==0) exitWith {hint composeText [parseText format [""+localize "STR_RIP_HINT_DISABLERALLY"+""]];}; if ((str(player)) in ["ins1","ins2","ins3","ins4","ins5","ins6","ins7","ins8","ins9"]) then { _pos = getPosATL RIP_S1_CHECKPOINT; }; if ((str(player)) in ["gue1","gue2","gue3","gue4","gue5","gue6","gue7","gue8","gue9","gue10","gue11","gue12","gue13"]) then { _pos = getPosATL RIP_M1_CHECKPOINT; }; if ((str(player)) in ["merc1","merc2","merc3","merc4","merc5","merc6","merc7","merc8","merc9"]) then { _pos = getPosATL RIP_G1_CHECKPOINT; }; if ((_pos distance Flag_Base_RU)<1000) then {hint composeText [parseText format [""+localize "STR_RIP_HINT_NODEPLOYRALLY"+""]];} else { player setPosATL _pos; };private ["_object", "_list", "_name"]; _list = nearestObjects [position player, ["LandVehicle", "Air", "Tank", "Car"], 10]; if(count _list == 0) exitwith { hintSilent composeText [parseText format ["
"+localize "STR_RIP_HINTNOVEHICLENEAR"+""]]; }; _object = _list select 0; player playMove "AinvPknlMstpSlayWrflDnon_medic"; _name= getText (configFile >> "CfgVehicles" >> (typeOf _object) >> "DisplayName"); if(locked _object) then { hintSilent composeText [parseText format ["
"+localize "STR_RIP_HINTUNLOCKVEHICLE"+"",_name]]; sleep 8; if!(alive player) exitwith {}; } else { hintSilent composeText [parseText format ["
"+localize "STR_RIP_HINTLOCKVEHICLE"+"",_name]]; sleep 8; if!(alive player) exitwith {}; }; RIPLOCKEDVEHICLE = _object; publicvariable "RIPLOCKEDVEHICLE"; if((local player) && isServer) then { if(locked _object) then { _object lock false; } else { _object lock true; }; }; if (true) exitWith {};//by RIP private ["_crew","_vehicle","_name","_text","_ctrlText","_check"]; disableSerialization; _check = 0; while {true} do { if(vehicle player != player) then { _crew = crew (vehicle player); _vehicle = vehicle player; titleRsc ["RIP_RESPAWN", "PLAIN"]; _text = ""; _name= getText (configFile >> "CfgVehicles" >> (typeOf vehicle player) >> "DisplayName"); _text= format ["%1
", _name]; { if(!(format["%1", name _x] == "") and !(format["%1", name _x] == "Error: No unit")) then { _role = assignedVehicleRole _x; switch(_x)do { case commander _vehicle: { _text=_text+format [" %1
", name _x]; }; case gunner _vehicle: { _text=_text+format [" %1
", name _x]; }; case driver _vehicle: { _text=_text+format [" %1
", name _x]; }; default { if(format["%1", (_role select 0)] != "Turret") then { _text=_text+format [" %1
", name _x]; } else { _text=_text+format [" %1
", name _x]; }; }; }; }; }forEach _crew; _ctrlText = (uiNamespace getVariable 'RIP_RESPAWN_TEXT') displayCtrl 64435; _ctrlText ctrlSetStructuredText parseText _text; _check = 1; }; if ((vehicle player == player) && (_check == 1)) then { _text = ""; _ctrlText ctrlSetStructuredText parseText _text; _check = 0; }; sleep 1; }; private ["_playerweaponname","_rip_sniperguns","_rip_mashineguns","_vehicle"]; _rip_sniperguns = ["M24","ACE_SVD_Bipod","SVD_NSPU_EP1","KSVK","ACE_Val"]; _rip_mashineguns = ["ACE_RPK74M","ACE_RPK74M_1P29","PK","Pecheneg"]; _rip_specopsguns = ["ACE_oc14","ACE_oc14gl","ACE_oc14sp","ACE_oc14glsp","ACE_oc14sd","ACE_oc14sdsp","ACE_Val","ACE_Val_Kobra","ACE_Val_PSO"]; while {true} do { if (local player) then { if (!(str(player) in ["rus5","rus21"]) && (toUpper(primaryWeapon player) in _rip_sniperguns)) then { _playerweaponname = (getText (configFile >> "CfgWeapons" >> (primaryWeapon player) >> "DisplayName")); hint composeText [parseText format [""+localize "STR_RIP_HINT_CANTUSEWEAPON"+"",_playerweaponname]]; player removeWeapon (primaryWeapon player); }; if (!(str(player) in ["rus3","rus10","rus20"]) && (toUpper(primaryWeapon player) in _rip_mashineguns)) then { _playerweaponname = (getText (configFile >> "CfgWeapons" >> (primaryWeapon player) >> "DisplayName")); hint composeText [parseText format [""+localize "STR_RIP_HINT_CANTUSEWEAPON"+"",_playerweaponname]]; player removeWeapon (primaryWeapon player); }; if (!(str(player) in ["rus18","rus19","rus20","rus21","rus22"]) && (toUpper(primaryWeapon player) in _rip_specopsguns)) then { _playerweaponname = (getText (configFile >> "CfgWeapons" >> (primaryWeapon player) >> "DisplayName")); hint composeText [parseText format [""+localize "STR_RIP_HINT_CANTUSEWEAPON"+"",_playerweaponname]]; player removeWeapon (primaryWeapon player); }; }; sleep 1; };private ["_pos","_trg_boom"]; if !(isServer) exitWith {}; _pos = _this select 0; townClear = { Server setVariable ["RIPMISSIONSUCCEED",1,true]; [nil, nil, rEXECVM, "scripts\server\func\War_func_MissionWinHint.sqf"] call RE; Server setVariable ["RIPMISSIONCOMPLETED",true,true]; [] execVM "scripts\server\func\War_func_EscapeZone.sqf"; }; _trg_boom = createTrigger["EmptyDetector",_pos]; _trg_boom setTriggerArea[300,300,0,false]; _trg_boom setTriggerActivation["WEST","PRESENT",false]; _trg_boom setTriggerStatements["west countSide thislist <= 10", "call townClear;", ""]; RIPMISSIONOBJ set [count RIPMISSIONOBJ, _trg_boom]; if (true) exitWith {}; private ["_obj","_defensetime","_pos","_trg_boom","_tm","_grpskill","_strength","_startPos","_i","_isdestroyed","_grp1","_grp2","_grp3","_grp4","_teamscore","_men"]; if !(isServer) exitWith {}; _obj = _this select 0; _defensetime = _this select 1; _pos = getPos _obj; _isdestroyed = false; _trg_boom = createTrigger["EmptyDetector",_pos]; _trg_boom setTriggerArea[10,10,0,false]; _trg_boom setTriggerActivation["WEST","PRESENT",false]; _trg_boom setTriggerStatements["(West countside thislist)>=3", "bomb = 'Bo_GBU12_LGB' createVehicle (getPos missionobject);", ""]; RIPMISSIONOBJ set [count RIPMISSIONOBJ, _trg_boom]; _tm = time + 300; while {_tm > time} do { sleep 5; }; [nil,nil,rSPAWN, [], {hint composeText [parseText format [""+localize "STR_RIP_HINT_MISSIONDEFENSE10"+""]]}] call RE; _tm = time + 300; while {_tm > time} do { sleep 5; }; [nil,nil,rSPAWN, [], {hint composeText [parseText format [""+localize "STR_RIP_HINT_MISSIONDEFENSE5"+""]]}] call RE; _tm = time + 300; while {_tm > time} do { sleep 5; }; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); _strength = 5 + (random 5); _grp1 = createGroup West; _grp2 = createGroup West; _grp3 = createGroup West; _grp4 = createGroup West; { RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _x]; _startPos = [_pos, 400] call War_GetRandomPointCircleOuter; _i = 0; while {_i < _strength} do { _men = _x createunit [RIPPATROLMENS select floor(random count RIPPATROLMENS),_startPos,[],10,"None"]; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; _i = _i + 1; sleep 0.5; }; sleep 1; _mode = ["YELLOW", "RED"] call BIS_fnc_selectRandom; _formation = ["WEDGE", "DIAMOND"] call BIS_fnc_selectRandom; _x setBehaviour "AWARE"; _x setSpeedMode "LIMITED"; _x setCombatMode _mode; _x setFormation _formation; (leader _x) setSkill _grpskill; sleep 1; } forEach [_grp1,_grp2,_grp3,_grp4]; _tm = time + _defensetime; while {(!_isdestroyed) && (_tm > time)} do { if (!alive _obj) then {_isdestroyed = true;}; {_x move _pos} forEach [_grp1,_grp2,_grp3,_grp4]; { if (count units _x < 3) then { _startPos = [_pos, 400] call War_GetRandomPointCircleOuter; _i = 0; while {_i < _strength} do { _men = _x createunit [RIPPATROLMENS select floor(random count RIPPATROLMENS),_startPos,[],10,"None"]; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; _i = _i + 1; sleep 0.5; }; sleep 1; _mode = ["YELLOW", "RED"] call BIS_fnc_selectRandom; _formation = ["WEDGE", "DIAMOND"] call BIS_fnc_selectRandom; _x setBehaviour "AWARE"; _x setSpeedMode "LIMITED"; _x setCombatMode _mode; _x setFormation _formation; (leader _x) setSkill _grpskill; }; sleep 3; } forEach [_grp1,_grp2,_grp3,_grp4]; sleep 5; }; if (_isdestroyed) then {Server setVariable ["RIPMISSIONSUCCEED",0,true];[nil, nil, rEXECVM, "scripts\server\func\War_func_MissionFailHint.sqf"] call RE;} else {Server setVariable ["RIPMISSIONSUCCEED",1,true];[nil, nil, rEXECVM, "scripts\server\func\War_func_MissionWinHint.sqf"] call RE;}; Server setVariable ["RIPTEAMSCORE",_teamscore,true]; Server setVariable ["RIPMISSIONCOMPLETED",true,true]; [] execVM "scripts\server\func\War_func_EscapeZone.sqf"; if (true) exitWith {};private ["_obj","_defensetime","_pos","_trg_boom","_tm","_grpskill","_strength","_startPos","_i","_isdestroyed","_grp1","_grp2","_grp3","_grp4","_teamscore","_men"]; if !(isServer) exitWith {}; _obj = _this select 0; _defensetime = _this select 1; _pos = getPos _obj; _isdestroyed = false; _trg_boom = createTrigger["EmptyDetector",_pos]; _trg_boom setTriggerArea[10,10,0,false]; _trg_boom setTriggerActivation["WEST","PRESENT",false]; _trg_boom setTriggerStatements["(West countside thislist)>=3", "bomb = 'Bo_GBU12_LGB' createVehicle (getPos missionobject);", ""]; RIPMISSIONOBJ set [count RIPMISSIONOBJ, _trg_boom]; _tm = time + 300; while {_tm > time} do { sleep 5; }; [nil,nil,rSPAWN, [], {hint composeText [parseText format [""+localize "STR_RIP_HINT_MISSIONDEFENSE10"+""]]}] call RE; _tm = time + 300; while {_tm > time} do { sleep 5; }; [nil,nil,rSPAWN, [], {hint composeText [parseText format [""+localize "STR_RIP_HINT_MISSIONDEFENSE5"+""]]}] call RE; _tm = time + 300; while {_tm > time} do { sleep 5; }; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); _strength = 5 + (random 5); _grp1 = createGroup West; _grp2 = createGroup West; _grp3 = createGroup West; _grp4 = createGroup West; { RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _x]; _startPos = [_pos, 400] call War_GetRandomPointCircleOuter; _i = 0; while {_i < _strength} do { _men = _x createunit [RIPPATROLMENS select floor(random count RIPPATROLMENS),_startPos,[],10,"None"]; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; _men addWeapon "ACE_GlassesGasMask_US"; [_men, "ACE_GlassesGasMask_US"] execFSM "x\ace\addons\sys_goggles\use_glasses.fsm"; _i = _i + 1; sleep 0.5; }; sleep 1; _mode = ["YELLOW", "RED"] call BIS_fnc_selectRandom; _formation = ["WEDGE", "DIAMOND"] call BIS_fnc_selectRandom; _x setBehaviour "AWARE"; _x setSpeedMode "LIMITED"; _x setCombatMode _mode; _x setFormation _formation; (leader _x) setSkill _grpskill; sleep 1; } forEach [_grp1,_grp2,_grp3,_grp4]; _tm = time + _defensetime; while {(!_isdestroyed) && (_tm > time)} do { if (!alive _obj) then {_isdestroyed = true;}; {_x move _pos} forEach [_grp1,_grp2,_grp3,_grp4]; { if (count units _x < 3) then { _startPos = [_pos, 400] call War_GetRandomPointCircleOuter; _i = 0; while {_i < _strength} do { _men = _x createunit [RIPPATROLMENS select floor(random count RIPPATROLMENS),_startPos,[],10,"None"]; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; _men addWeapon "ACE_GlassesGasMask_US"; [_men, "ACE_GlassesGasMask_US"] execFSM "x\ace\addons\sys_goggles\use_glasses.fsm"; _i = _i + 1; sleep 0.5; }; sleep 1; _mode = ["YELLOW", "RED"] call BIS_fnc_selectRandom; _formation = ["WEDGE", "DIAMOND"] call BIS_fnc_selectRandom; _x setBehaviour "AWARE"; _x setSpeedMode "LIMITED"; _x setCombatMode _mode; _x setFormation _formation; (leader _x) setSkill _grpskill; }; sleep 3; } forEach [_grp1,_grp2,_grp3,_grp4]; sleep 5; }; if (_isdestroyed) then {Server setVariable ["RIPMISSIONSUCCEED",0,true];[nil, nil, rEXECVM, "scripts\server\func\War_func_MissionFailHint.sqf"] call RE;} else {Server setVariable ["RIPMISSIONSUCCEED",1,true];[nil, nil, rEXECVM, "scripts\server\func\War_func_MissionWinHint.sqf"] call RE;}; Server setVariable ["RIPMISSIONCOMPLETED",true,true]; [] execVM "scripts\server\func\War_func_EscapeZone.sqf"; if (true) exitWith {};private ["_obj","_isdestroyed","_teamscore"]; _obj = _this select 0; if !(isServer) exitWith {}; _isdestroyed = false; while {!_isdestroyed} do { if (!alive _obj) then {_isdestroyed = true;Server setvariable ["RIPMISSIONENDWINNER",true,true]; }; sleep 10; "BOSS" setMarkerPos position _missionobject; }; private ["_obj","_isdestroyed","_teamscore"]; _obj = _this select 0; if !(isServer) exitWith {}; _isdestroyed = false; while {!_isdestroyed} do { if (!alive _obj) then {_isdestroyed = true;Server setVariable ["RIPMISSIONSUCCEED",1,true];}; sleep 10; }; [nil, nil, rEXECVM, "scripts\server\func\War_func_MissionWinHint.sqf"] call RE; Server setVariable ["RIPMISSIONCOMPLETED",true,true]; [] execVM "scripts\server\func\War_func_EscapeZone.sqf"; private ["_ripovercast","_riprain","_ripfog"]; if (isNil "RIPWEATHER") then {RIPWEATHER = [overcast,fog,rain];} else {0 setOvercast (RIPWEATHER select 0);0 setFog (RIPWEATHER select 1);0 setRain (RIPWEATHER select 2);}; "RIPWEATHER" addPublicVariableEventHandler{private ["_ripweather"];_ripweather = _this select 1; 60 setOvercast (_ripweather select 0); 60 setFog (_ripweather select 1); 60 setRain (_ripweather select 2);}; if !(isServer) exitwith {}; while{true} do { _ripovercast = random 1; if (_ripovercast > 0.7) then {_ripfog = random 0.5;_riprain = random 1;} else {_ripfog = 0;_riprain = 0;}; 60 setOvercast _ripovercast; 60 setFog _ripfog; 60 setRain _riprain; RIPWEATHER = [_ripovercast,_ripfog,_riprain]; publicVariable "RIPWEATHER"; sleep RIPWEATHERCHANGETIME; }; // ========================================================================================================= // UPSMON - Urban Patrol Script Mon // Version: 5.1.0 // Author: Monsada (chs.monsada@gmail.com) // // Wiki: http://dev-heaven.net/projects/upsmon/wiki // Forum: http://forums.bistudio.com/showthread.php?t=91696 // Share your missions with upsmon: http://dev-heaven.net/projects/upsmon/boards/86 // --------------------------------------------------------------------------------------------------------- // Based on Urban Patrol Script // Version: 2.0.3 // Author: Kronzky (www.kronzky.info / kronzky@gmail.com) // --------------------------------------------------------------------------------------------------------- // Some little fixes: !Rafalsky (v5.0.8 - 5.0.9) // --------------------------------------------------------------------------------------------------------- //Adding eventhandlers "KRON_UPS_EAST_SURRENDED" addPublicVariableEventHandler { if (_this select 1) then { nul=[east] execvm "scripts\server\UPSMON\MON_surrended.sqf";};}; "KRON_UPS_WEST_SURRENDED" addPublicVariableEventHandler { if (_this select 1) then { nul=[west] execvm "scripts\server\UPSMON\MON_surrended.sqf";};}; "KRON_UPS_GUER_SURRENDED" addPublicVariableEventHandler { if (_this select 1) then { nul=[resistance] execvm "scripts\server\UPSMON\MON_surrended.sqf";};}; "MON_LOCAL_EXEC" addPublicVariableEventHandler { if (local ((_this select 1)select 0)) then { call ( compile format[(_this select 1)select 1,(_this select 1)select 0] ); }; }; if (!isServer) exitWith {}; //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // These Variables should be checked and set as required, to make the mission runs properly. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // ACE Wounds System for AI (set TRUE to On, set FALSE to Off) ! ace_sys_wounds_noai = false; // set it as required //1=Enable or 0=disable debug. In debug could see a mark positioning de leader and another mark of the destination of movement, very useful for editing mission KRON_UPS_Debug = 0; //1=Enable or 0=disable. In game display global chat info about who just killed a civilian. //numbers of Civilians killed by players could be read from array 'KILLED_CIV_COUNTER' -> [Total, by West, by East, by Res, The killer] R_WHO_IS_CIV_KILLER_INFO = 0; // if you are spotted by AI group, how close the other AI group have to be to You , to be informed about your present position. over this, will lose target KRON_UPS_sharedist = 200; // If enabled IA communication between them with radio defined sharedist distance, 0/2 // (must be set to 2 in order to use reinforcement !R) KRON_UPS_comradio = 2; //Sides that are enemies of resistance KRON_UPS_Res_enemy = [west]; // Distance from destination for searching vehicles. (Search area is about 200m), // If your destination point is further than KRON_UPS_searchVehicledist, AI will try to find a vehicle to go there. KRON_UPS_searchVehicledist = 200; // 700, 900 //Enables or disables AI to use static weapons KRON_UPS_useStatics = false; //Enables or disables AI to put mines if armoured enemies near (use ambush2 if needed) KRON_UPS_useMines = false; //------------------------------------------------------------------------------------------------------------------------------ // These Variables can be changed if needed but it is not necessary. //------------------------------------------------------------------------------------------------------------------------------ //% of chanse to use smoke by team members when someone wounded or killed in the group in %(default 13 & 35). // set both to 0 -> to switch off this function R_USE_SMOKE_wounded = 13; R_USE_SMOKE_killed = 35; //Height that heli will fly this input will be randomised in a 10% KRON_UPS_flyInHeight = 80; //Percentage of units to surrender. KRON_UPS_EAST_SURRENDER = 0; // 10 KRON_UPS_WEST_SURRENDER = 0; // 10 KRON_UPS_GUER_SURRENDER = 0; // 10 // knowsAbout 0.5 1.03 , 1.49 to add this enemy to "target list" (1-4) the higher number the less detect ability (original in 5.0.7 was 0.5) // it does not mean the AI will not shoot at you. This means: what must be knowsAbout you to UPSMON adds you to the list of targets (UPSMON list of target) R_knowsAboutEnemy = 0.5; // units will react (change the beahaviour) when dead bodies found R_deadBodiesReact = true; // true OR flase // --------------------------------------------------------------------------------------------------------------------- // Better do not change these variables if you aren't sure !R // --------------------------------------------------------------------------------------------------------------------- //Efective distance for doing perfect ambush (max distance is this x2) KRON_UPS_ambushdist = 70; //Max distance to target for doing para-drop, will be randomised between 0 and 100% of this value. KRON_UPS_paradropdist = 250; //Frequency for doing calculations for each squad. KRON_UPS_Cycle = 10; //org 20 //Time that lider wait until doing another movement, this time reduced dynamically under fire, and on new targets KRON_UPS_react = 60; //Min time to wait for doing another reaction KRON_UPS_minreact = 30; // org 30 //Max waiting is the maximum time patrol groups will wait when arrived to target for doing another target. KRON_UPS_maxwaiting = 30; // how long AI units should be in alert mode after initially spotting an enemy KRON_UPS_alerttime = 90; // how far opfors should move away if they're under attack KRON_UPS_safedist = 300; //org 300 // how close unit has to be to target to generate a new one target or to enter stealth mode KRON_UPS_closeenough = 300; //org 300 //Enable it to send reinforcements, better done it in a trigger inside your mission. KRON_UPS_reinforcement = false; //Artillery support, better control if set in trigger KRON_UPS_ARTILLERY_EAST_FIRE = false; //set to true for doing east to fire KRON_UPS_ARTILLERY_WEST_FIRE = false; //set to true for doing west to fire KRON_UPS_ARTILLERY_GUER_FIRE = false; //set to true for doing resistance to fire //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // Do not touch these variables !!!! !R //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- R_GOTHIT_ARRAY =[0]; AcePresent = isClass(configFile/"CfgPatches"/"ace_main"); UPSMON_Version = "UPSMON 5.1.0 beta1"; KILLED_CIV_COUNTER = [0,0,0,0,0]; KRON_UPS_flankAngle = 45; //Angulo de flanqueo KRON_UPS_INIT = 0; //Variable que indica que ha sido inicializado KRON_UPS_EAST_SURRENDED = false; KRON_UPS_WEST_SURRENDED = false; KRON_UPS_GUER_SURRENDED = false; KRON_AllWest=[]; //All west AI KRON_AllEast=[]; //All east AI KRON_AllRes=[]; //All resistance AI KRON_UPS_East_enemies = []; KRON_UPS_West_enemies = []; KRON_UPS_Guer_enemies = []; KRON_UPS_East_friends = []; KRON_UPS_West_friends = []; KRON_UPS_Guer_friends = []; KRON_targets0 =[];//objetivos west KRON_targets1 =[];//objetivos east KRON_targets2 =[];//resistence KRON_targetsPos =[];//Posiciones de destino actuales. KRON_NPCs = []; //Lideres de los grupos actuales KRON_UPS_Instances=0; KRON_UPS_Total=0; KRON_UPS_Exited=0; KRON_UPS_East_Total = 0; KRON_UPS_West_Total = 0; KRON_UPS_Guer_Total = 0; KRON_UPS_ARTILLERY_UNITS = []; KRON_UPS_ARTILLERY_WEST_TARGET = objnull; KRON_UPS_ARTILLERY_EAST_TARGET = objnull; KRON_UPS_ARTILLERY_GUER_TARGET = objnull; KRON_UPS_TEMPLATES = []; KRON_UPS_MG_WEAPONS = ["MG36","M249","M240","MK_48","PK","PKm","Pecheneg","M249 Para","M249 Para M145","M240G M145","M60"]; //---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // ***************************************** SERVER INITIALIZATION ***************************************** if (isNil("KRON_UPS_INIT") || KRON_UPS_INIT == 0) then { //Init library function, Required Version: 5.0 of mon_functions call compile preprocessFileLineNumbers "scripts\server\UPSMON\common\MON_functions.sqf"; //init !R functions call compile preprocessFileLineNumbers "scripts\server\UPSMON\!R\R_functions.sqf"; if (isNil "RE") then {[] execVM "\ca\Modules\MP\data\scripts\MPframework.sqf"}; //scripts initialization UPSMON = compile preprocessFile "scripts\server\UPSMON.sqf"; UPSMON_surrended = compile preprocessFile "scripts\server\UPSMON\MON_surrended.sqf"; // declaracin de variables privadas private["_obj","_trg","_l","_pos"]; // global functions KRON_randomPos = {private["_cx","_cy","_rx","_ry","_cd","_sd","_ad","_tx","_ty","_xout","_yout"];_cx=_this select 0; _cy=_this select 1; _rx=_this select 2; _ry=_this select 3; _cd=_this select 4; _sd=_this select 5; _ad=_this select 6; _tx=random (_rx*2)-_rx; _ty=random (_ry*2)-_ry; _xout=if (_ad!=0) then {_cx+ (_cd*_tx - _sd*_ty)} else {_cx+_tx}; _yout=if (_ad!=0) then {_cy+ (_sd*_tx + _cd*_ty)} else {_cy+_ty}; [_xout,_yout]}; KRON_PosInfo = {private["_pos","_lst","_bld","_bldpos"];_pos=_this select 0; _lst=_pos nearObjects ["House",12]; if (count _lst==0) then {_bld=0;_bldpos=0} else {_bld=_lst select 0; _bldpos=[_bld] call KRON_BldPos}; [_bld,_bldpos]}; KRON_PosInfo3 = {private["_pos","_lst","_bld","_bldpos"];_pos=_this select 0; _lst= nearestObjects [_pos, [], 3]; if (count _lst==0) then {_bld=objnull;_bldpos=0} else {_bld = nearestbuilding (_lst select 0); _bldpos=[_bld] call KRON_BldPos2}; [_bld,_bldpos]}; KRON_BldPos = {private ["_bld","_bldpos","_posZ","_maxZ"];_bld=_this select 0;_maxZ=0;_bi=0;_bldpos=0;while {_bi>=0} do {if (((_bld BuildingPos _bi) select 0)==0) then {_bi=-99} else {_bz=((_bld BuildingPos _bi) select 2); if (((_bz)>4) && ((_bz>_maxZ) || ((_bz==_maxZ) && (random 1>.8)))) then {_maxZ=_bz; _bldpos=_bi}};_bi=_bi+1};_bldpos}; KRON_BldPos2 = {private ["_bld","_bldpos"]; _bld=_this select 0; _bldpos = 1; while {format ["%1", _bld buildingPos _bldpos] != "[0,0,0]"} do {_bldpos = _bldpos + 1;}; _bldpos = _bldpos - 1; _bldpos;}; KRON_getDirPos = {private["_a","_b","_from","_to","_return"]; _from = _this select 0; _to = _this select 1; _return = 0; _a = ((_to select 0) - (_from select 0)); _b = ((_to select 1) - (_from select 1)); if (_a != 0 || _b != 0) then {_return = _a atan2 _b}; if ( _return < 0 ) then { _return = _return + 360 }; _return}; KRON_distancePosSqr = {round(((((_this select 0) select 0)-((_this select 1) select 0))^2 + (((_this select 0) select 1)-((_this select 1) select 1))^2)^0.5)}; KRON_relPos = {private["_p","_d","_a","_x","_y","_xout","_yout"];_p=_this select 0; _x=_p select 0; _y=_p select 1; _d=_this select 1; _a=_this select 2; _xout=_x + sin(_a)*_d; _yout=_y + cos(_a)*_d;[_xout,_yout,0]}; KRON_rotpoint = {private["_cp","_a","_tx","_ty","_cd","_sd","_cx","_cy","_xout","_yout"];_cp=_this select 0; _cx=_cp select 0; _cy=_cp select 1; _a=_this select 1; _cd=cos(_a*-1); _sd=sin(_a*-1); _tx=_this select 2; _ty=_this select 3; _xout=if (_a!=0) then {_cx+ (_cd*_tx - _sd*_ty)} else {_cx+_tx}; _yout=if (_a!=0) then {_cy+ (_sd*_tx + _cd*_ty)} else {_cy+_ty}; [_xout,_yout,0]}; KRON_stayInside = { private["_np","_nx","_ny","_cp","_cx","_cy","_rx","_ry","_d","_tp","_tx","_ty","_fx","_fy"]; _np=_this select 0; _nx=_np select 0; _ny=_np select 1; _cp=_this select 1; _cx=_cp select 0; _cy=_cp select 1; _rx=_this select 2; _ry=_this select 3; _d=_this select 4; _tp = [_cp,_d,(_nx-_cx),(_ny-_cy)] call KRON_rotpoint; _tx = _tp select 0; _fx=_tx; _ty = _tp select 1; _fy=_ty; if (_tx<(_cx-_rx)) then {_fx=_cx-_rx}; if (_tx>(_cx+_rx)) then {_fx=_cx+_rx}; if (_ty<(_cy-_ry)) then {_fy=_cy-_ry}; if (_ty>(_cy+_ry)) then {_fy=_cy+_ry}; if ((_fx!=_tx) || (_fy!=_ty)) then {_np = [_cp,_d*-1,(_fx-_cx),(_fy-_cy)] call KRON_rotpoint}; _np; }; // Misc KRON_UPSgetArg = {private["_cmd","_arg","_list","_a","_v"]; _cmd=_this select 0; _arg=_this select 1; _list=_this select 2; _a=-1; {_a=_a+1; _v=format["%1",_list select _a]; if (_v==_cmd) then {_arg=(_list select _a+1)}} foreach _list; _arg}; KRON_UPSsetArg = {private["_cmd","_arg","_list","_a","_v"]; _cmd=_this select 0; _arg=_this select 1; _list=_this select 2; _a=-1; { _a=_a+1; _v= format ["%1", _list select _a]; if (_v==_cmd) then { _a=_a+1; _list set [_a,_arg]; }; } foreach _list; _list}; KRON_deleteDead = {private["_u","_s"];_u=_this select 0; _s= _this select 1; _u removeAllEventHandlers "killed"; sleep _s; deletevehicle _u}; // *********************************************************************************************************** // MAIN UPSMON SERVER FUNCTION // *********************************************************************************************************** MON_MAIN_server = { private["_obj","_trg","_l","_pos","_countWestSur","_countEastSur","_countResSur","_WestSur","_EastSur","_ResSur","_target","_targets","_targets0","_targets1","_targets2","_npc","_cycle" ,"_arti","_side","_range","_rounds","_area","_maxcadence","_mincadence","_bullet","_fire","_knownpos","_sharedenemy","_enemyside","_timeout"]; _cycle = 10; //Time to do a call to commander _arti = objnull; _side = ""; _range = 0; _rounds = 0; _area = 0; _maxcadence = 0; _mincadence = 0; _bullet = ""; _fire = false; _target = objnull; _knownpos =[0,0,0]; _enemyside = []; _WestSur = KRON_UPS_WEST_SURRENDED; _EastSur = KRON_UPS_EAST_SURRENDED; _ResSur = KRON_UPS_GUER_SURRENDED; //Main loop while {true} do { _countWestSur = round ( KRON_UPS_West_Total * KRON_UPS_WEST_SURRENDER / 100); _countEastSur = round ( KRON_UPS_East_Total * KRON_UPS_EAST_SURRENDER / 100); _countResSur = round ( KRON_UPS_Guer_Total * KRON_UPS_GUER_SURRENDER / 100); //Checks for WEST surrender if (KRON_UPS_WEST_SURRENDER > 0 && !KRON_UPS_WEST_SURRENDED ) then { { if (!alive _x || !canmove _x) then {KRON_AllWest = KRON_AllWest-[_x]}; }foreach KRON_AllWest; if ( count KRON_AllWest <= _countWestSur ) then { KRON_UPS_WEST_SURRENDED = true; publicvariable "KRON_AllWest"; publicvariable "KRON_UPS_WEST_SURRENDED"; }; }; //Checks for EAST surrender if (KRON_UPS_EAST_SURRENDER > 0 && !KRON_UPS_EAST_SURRENDED ) then { { if (!alive _x || !canmove _x) then {KRON_AllEast = KRON_AllEast-[_x]}; }foreach KRON_AllEast; if ( count KRON_AllEast <= _countEastSur ) then { KRON_UPS_EAST_SURRENDED = true; publicvariable "KRON_AllEast"; publicvariable "KRON_UPS_EAST_SURRENDED"; }; }; //Checks for RESISTANCE surrender if (KRON_UPS_GUER_SURRENDER > 0 && !KRON_UPS_GUER_SURRENDED ) then { { if (!alive _x || !canmove _x) then {KRON_AllRes = KRON_AllRes-[_x]}; }foreach KRON_AllRes; if ( count KRON_AllRes <= _countResSur ) then { KRON_UPS_GUER_SURRENDED = true; publicvariable "KRON_AllRes"; publicvariable "KRON_UPS_GUER_SURRENDED"; }; }; //Exec surrended script if (KRON_UPS_WEST_SURRENDED && !_WestSur ) then { _WestSur = true; [west] spawn UPSMON_surrended; }; if (KRON_UPS_EAST_SURRENDED && !_EastSur ) then { _EastSur = true; [east] spawn UPSMON_surrended; }; if (KRON_UPS_GUER_SURRENDED && !_ResSur ) then { _ResSur = true; [Resistance] spawn UPSMON_surrended; }; sleep 0.5; _sharedenemy = 0; _targets0 = []; _targets1 = []; _targets2 = []; { if (!isnull _x && alive _x && !captive _x ) then { _npc = _x; _targets = []; switch (side _npc) do { //West targets case west: { _sharedenemy = 0; _enemyside = [east]; }; //East targets case east: { _sharedenemy = 1; _enemyside = [west]; }; //Resistance targets case resistance: { _sharedenemy = 2; _enemyside = KRON_UPS_Res_enemy; }; }; if (side _npc in KRON_UPS_Res_enemy) then { _enemyside = _enemyside + [resistance]; }; //Gets known targets on each leader for comunicating enemy position //Has better performance with targetsquery //_targets = _npc nearTargets KRON_UPS_sharedist; _targets = _npc targetsQuery ["","","","",""]; { //_target = _x select 4; //Neartargets _target = _x select 1; //Targetsquery if ( side _target in _enemyside ) then { // if (KRON_UPS_Debug>0) then {player globalchat format["%1: knows about %2, enemies=%3",_npc getVariable ("UPSMON_grpid"),_npc knowsabout _target, _npc countEnemy _targets ]}; if (!isnull _target && alive _target && canmove _target && !captive _target && _npc knowsabout _target > R_knowsAboutEnemy && ( _target iskindof "Land" || _target iskindof "Air" || _target iskindof "Ship" ) && !( _target iskindof "Animal") && ( _target emptyPositions "Gunner" == 0 && _target emptyPositions "Driver" == 0 || (!isnull (gunner _target) && canmove (gunner _target)) || (!isnull (driver _target) && canmove (driver _target))) ) then { //Saves last known position //_knownpos = _x select 0; //Neartargets _knownpos = _x select 4;//Targetsquery _target setvariable ["UPSMON_lastknownpos", _knownpos, false]; // _npc setVariable ["R_knowsAboutTarget", true, false]; // !R call (compile format ["_targets%1 = _targets%1 - [_target]",_sharedenemy]); call (compile format ["_targets%1 = _targets%1 + [_target]",_sharedenemy]); }; }; sleep 0.01; } foreach _targets; }; sleep 0.01; }foreach KRON_NPCs; //Share targets KRON_targets0 = _targets0; KRON_targets1 = _targets1; KRON_targets2 = _targets2; //Target debug console if (KRON_UPS_Debug>0) then {hintsilent parseText format["%1
--------------------------
West(A=%2 C=%3 T=%4)
East(A=%5 C=%6 T=%7)
Res(A=%8 C=%9 T=%10)
" ,UPSMON_Version ,KRON_UPS_West_Total, count KRON_AllWest, count KRON_targets0 ,KRON_UPS_East_Total, count KRON_AllEast, count KRON_targets1 ,KRON_UPS_Guer_Total, count KRON_AllRes, count KRON_targets2 ]}; sleep 0.5; //Artillery module control { _arti = _x select 0; _rounds = _x select 1; _range = _x select 2; _area = _x select 3; _maxcadence = _x select 4; _mincadence = _x select 5; _bullet = _x select 6; _salvobreak = _x select 7; if (isnil{_arti getVariable ("timeout")}) then { _arti setVariable ["timeout", time, false]; sleep 0.1; }; _timeout = _arti getVariable ("timeout"); if (!isnull (gunner _arti) && canmove (gunner _arti) && (time >= _timeout)) then { _side = side gunner _arti; _fire = call (compile format ["KRON_UPS_ARTILLERY_%1_FIRE",_side]); //If fire enabled gets a known target pos for doing fire if no friendly squads near. if (_fire) then { _target = call (compile format ["KRON_UPS_ARTILLERY_%1_TARGET",_side]); if (isnil "_target" ) then {_target = objnull;}; switch (_side) do { //West targets case west: { _targets = KRON_targets0; }; //East targets case east: { _targets = KRON_targets1; }; //Resistance targets case resistance: { _targets = KRON_targets2; }; }; //Check if has a target if (!(_target in _targets ) || isnull _target || !alive _target) then { _target = objnull; { _auxtarget = _x; _targetPos = _auxtarget getvariable ("UPSMON_lastknownpos"); if (!isnil "_targetPos") then { //If target in range check no friendly squad near if (alive _auxtarget && !(_auxtarget iskindof "Air") && (round([position _arti,_targetPos] call KRON_distancePosSqr)) <= _range) then { _target = _auxtarget; //Must check if no friendly squad near fire position { if (!isnull _x && _side == side _x) then { if ((round([position _x,_targetPos] call KRON_distancePosSqr)) < (KRON_UPS_safedist * 0.7)) exitwith {_target = objnull;}; }; } foreach KRON_NPCs; }; }; //If target found exit if (!isnull _target) exitwith {}; } foreach _targets; }; //If target fires artillery if (!isnull _target) then { //Fix current target call (compile format ["KRON_UPS_ARTILLERY_%1_TARGET = _target",_side]); _targetPos = _target getvariable ("UPSMON_lastknownpos"); if (!isnil "_targetPos") then { _arti removeAllEventHandlers "fired"; sleep 0.01; // chatch the bullet in the air and delete it _arti addeventhandler["fired", {deletevehicle (nearestobject[_this select 0, _this select 4])}]; [_arti,_targetPos,_rounds,_area,_maxcadence,_mincadence,_bullet,_salvobreak] spawn MON_artillery_dofire; }; }; }; }; sleep 0.5; } foreach KRON_UPS_ARTILLERY_UNITS; // if (KRON_UPS_Debug>0) then {player globalchat format["Init_upsmon artillery=%1",count KRON_UPS_ARTILLERY_UNITS]}; sleep _cycle; }; }; }; // *********************************************************************************************************** // INITIALIZATION OF UPSMON // *********************************************************************************************************** _l = allunits + vehicles; { if ((_x iskindof "AllVehicles") && (side _x != civilian)) then { _s = side _x; switch (_s) do { case west: { KRON_AllWest=KRON_AllWest+[_x]; }; case east: { KRON_AllEast=KRON_AllEast+[_x]; }; case resistance: { KRON_AllRes=KRON_AllRes+[_x]; }; }; }; } forEach _l; _l = nil; if (isNil("KRON_UPS_Debug")) then {KRON_UPS_Debug=0}; KRON_UPS_East_enemies = KRON_AllWest; KRON_UPS_West_enemies = KRON_AllEast; if (east in KRON_UPS_Res_enemy ) then { KRON_UPS_East_enemies = KRON_UPS_East_enemies+KRON_AllRes; KRON_UPS_Guer_enemies = KRON_AllEast; } else { KRON_UPS_East_friends = KRON_UPS_East_friends+KRON_AllRes; KRON_UPS_Guer_friends = KRON_AllEast; }; if (west in KRON_UPS_Res_enemy ) then { KRON_UPS_West_enemies = KRON_UPS_West_enemies+KRON_AllRes; KRON_UPS_Guer_enemies = KRON_UPS_Guer_enemies+KRON_AllWest; } else { KRON_UPS_West_friends = KRON_UPS_West_friends+KRON_AllRes; KRON_UPS_Guer_friends = KRON_UPS_Guer_friends+KRON_AllWest; }; KRON_UPS_West_Total = count KRON_AllWest; KRON_UPS_East_Total = count KRON_AllEast; KRON_UPS_Guer_Total = count KRON_AllRes; //Initialization done KRON_UPS_INIT=1; //killciv EH _l = allunits; { if (side _x == civilian) then { _x AddEventHandler ["firedNear", {nul = _this spawn R_SN_EHFIREDNEAR}]; sleep 0.01; _x AddEventHandler ["killed", {nul = _this spawn R_SN_EHKILLEDCIV}]; sleep 0.01; }; } forEach _l; _l = nil; // --------------------------------------------------------------------------------------------------------- processInitCommands; //Executes de main process of server [] SPAWN MON_MAIN_server; diag_log "--------------------------------"; diag_log (format["UPSMON started"]); if(true) exitWith {}; private ["_task_number","_hour","_minute","_missiontime"]; if !(isServer) exitWith {}; _task_number = RIP_TASK_NUMBERS select floor(random count RIP_TASK_NUMBERS); RIP_TASK_NUMBERS = RIP_TASK_NUMBERS - [_task_number]; switch ((Server getVariable "RIPMISSIONSUCCEED")) do { case 0: {}; case 1: {RIPMISSIONCOUNT = RIPMISSIONCOUNT + 1;}; }; if (RIPMISSIONCOUNT > RIPMISSIONCOUNTFORWIN) exitWith { sleep 120; {if !(isPlayer (driver _x)) then {deleteVehicle _x;}} forEach RIPMISSIONOBJ; sleep 2; //{if !(isPlayer (driver _x)) then {deleteVehicle _x;}} forEach RIPMISSIONGUARDVEHICLES; sleep 2; {hideBody _x;deleteVehicle _x;} forEach RIPMISSIONGUARDUNITS; sleep 2; {deleteGroup _x;} forEach RIPMISSIONGUARDGROUPS; sleep 2; null = [] execVM "missions\final.sqf"; if (RIPRANDOMTIME == 1) then { _hour = floor(random 23); _minute = floor(random 59); _missiontime = [(date select 0), (date select 1), (date select 2), _hour, _minute]; Server setVariable ["RIPTASKTIME",_missiontime,true]; setDate _missiontime; }; Server setVariable ["RIPMISSIONTASKNUM","FINAL",true]; }; //Server setvariable ["RIPMISSIONENDWINNER",true,true]; //if ((Server getVariable "RIPTEAMSCORE") < -30) exitWith {Server setvariable ["RIPMISSIONENDLOOSER",true,true];}; sleep 120; {if !(isPlayer (driver _x)) then {deleteVehicle _x;}} forEach RIPMISSIONOBJ; sleep 2; //{if !(isPlayer (driver _x)) then {deleteVehicle _x;}} forEach RIPMISSIONGUARDVEHICLES; sleep 2; {hideBody _x;deleteVehicle _x;} forEach RIPMISSIONGUARDUNITS; sleep 2; {deleteGroup _x;} forEach RIPMISSIONGUARDGROUPS; sleep 2; null = [] execVM format ["missions\" + "m%1.sqf",_task_number]; numtask = _task_number; if (RIPRANDOMTIME == 1) then { _hour = floor(random 23); _minute = floor(random 59); _missiontime = [(date select 0), (date select 1), (date select 2), _hour, _minute]; Server setVariable ["RIPTASKTIME",_missiontime,true]; setDate _missiontime; }; Server setVariable ["RIPMISSIONTASKNUM",numtask,true]; _script = _this select 0; _azi = _this select 1; _pos = _this select 2; RIPMISSIONOBJ = []; _objs = []; _objs = call (compile (preprocessFileLineNumbers format ["compositions\%1.sqf",_script])); private ["_posX", "_posY"]; _posX = _pos select 0; _posY = _pos select 1; newObjs = []; private ["_multiplyMatrixFunc"]; _multiplyMatrixFunc = { private ["_array1", "_array2", "_result"]; _array1 = _this select 0; _array2 = _this select 1; _result = [ (((_array1 select 0) select 0) * (_array2 select 0)) + (((_array1 select 0) select 1) * (_array2 select 1)), (((_array1 select 1) select 0) * (_array2 select 0)) + (((_array1 select 1) select 1) * (_array2 select 1)) ]; _result }; for "_i" from 0 to ((count _objs) - 1) do { private ["_obj", "_type", "_relPos", "_azimuth", "_fuel", "_damage", "_newObj", "_newObjinit"]; _obj = _objs select _i; _type = _obj select 0; _relPos = _obj select 1; _azimuth = _obj select 2; _fuel = _obj select 3; _damage = _obj select 4; _newObjinit = _obj select 5; private ["_rotMatrix", "_newRelPos", "_newPos"]; _rotMatrix =[[cos _azi, sin _azi],[-(sin _azi), cos _azi]]; _newRelPos = [_rotMatrix, _relPos] call _multiplyMatrixFunc; private ["_z"]; if ((count _relPos) > 2) then {_z = _relPos select 2} else {_z = 0}; _newPos = [_posX + (_newRelPos select 0), _posY + (_newRelPos select 1), _z]; _newObj = _type createVehicle _newPos; _newObj setDir (_azi + _azimuth); _newObj setPos _newPos; if ((typeOf _newObj) == "ACE_WeaponBox_CDF") then { clearWeaponCargoGlobal _newObj; clearMagazineCargoGlobal _newObj; _newObj addweaponcargoglobal ["ACE_Rucksack_RD54", (10 + round(random 7))]; _newObj addweaponcargoglobal ["ItemWatch", (10 + round(random 10))]; _newObj addweaponcargoglobal ["ItemRadio", (10 + round(random 10))]; _newObj addweaponcargoglobal ["ItemGPS", (5 + round(random 5))]; _newObj addweaponcargoglobal ["ItemMap", (10 + round(random 10))]; _newObj addweaponcargoglobal ["ACE_P159_RD99", round(random 10)]; _newObj addweaponcargoglobal ["ACRE_PRC148_UHF", round(random 10)]; _newObj addweaponcargoglobal ["RPG18", (3 + round(random 7))]; _newObj addweaponcargoglobal ["ACE_RPG22", (3 + round(random 7))]; _newObj addweaponcargoglobal ["AKS_74_NSPU", (1 + round(random 4))]; _newObj addweaponcargoglobal ["AKS_74_U", (3 + round(random 7))]; _newObj addweaponcargoglobal ["ACE_AK74M", (3 + round(random 7))]; _newObj addweaponcargoglobal ["ACE_AK74M_GL", (1 + round(random 7))]; _newObj addweaponcargoglobal ["ACE_AKS74P", (3 + round(random 7))]; _newObj addweaponcargoglobal ["ACE_AKS74P_GL", (1 + round(random 7))]; _newObj addmagazinecargoglobal ["30Rnd_545x39_AK", (10 + round(random 40))]; _newObj addweaponcargoglobal ["AKS_GOLD", round(random 3)]; _newObj addweaponcargoglobal ["ACE_AKMS", (3 + round(random 7))]; _newObj addweaponcargoglobal ["ACE_AKM", (3 + round(random 7))]; _newObj addweaponcargoglobal ["ACE_AKM_GL", (1 + round(random 7))]; _newObj addmagazinecargoglobal ["30Rnd_762x39_AK47", (10 + round(random 40))]; _newObj addmagazinecargoglobal ["1Rnd_HE_GP25", (10 + round(random 40))]; _newObj addmagazinecargoglobal ["1Rnd_SmokeGreen_GP25", (10 + round(random 40))]; _newObj addweaponcargoglobal ["ACE_RPG7V_PGO7", (1 + round(random 7))]; _newObj addmagazinecargoglobal ["ACE_PG7V_PGO7", (5 + round(random 20))]; _newObj addweaponcargoglobal ["revolver_gold_EP1", (1 + round(random 7))]; _newObj addmagazinecargoglobal ["6Rnd_45ACP", (5 + round(random 20))]; _newObj addweaponcargoglobal ["Saiga12K", (1 + round(random 7))]; _newObj addmagazinecargoglobal ["8Rnd_B_Saiga12_74Slug", (5 + round(random 30))]; _newObj addweaponcargoglobal ["ACE_SVD_Bipod", (3 + round(random 7))]; _newObj addmagazinecargoglobal ["10Rnd_762x54_SVD", (5 + round(random 30))]; _newObj addweaponcargoglobal ["PK", (3 + round(random 7))]; _newObj addmagazinecargoglobal ["100Rnd_762x54_PK", (5 + round(random 10))]; _newObj addweaponcargoglobal ["RPK_74", (3 + round(random 7))]; _newObj addmagazinecargoglobal ["75Rnd_545x39_RPK", (5 + round(random 10))]; _newObj addweaponcargoglobal ["Makarov", (3 + round(random 7))]; _newObj addmagazinecargoglobal ["8Rnd_9x18_Makarov", (5 + round(random 10))]; }; if ((typeOf _newObj) == "ACE_ItemsBox") then { clearWeaponCargoGlobal _newObj; clearMagazineCargoGlobal _newObj; _newObj addweaponcargoglobal ["ACE_Rucksack_RD54", (10 + round(random 7))]; _newObj addweaponcargoglobal ["ItemWatch", (3 + round(random 10))]; _newObj addweaponcargoglobal ["ItemRadio", (3 + round(random 10))]; _newObj addweaponcargoglobal ["ItemGPS", (5 + round(random 5))]; _newObj addweaponcargoglobal ["ItemMap", (3 + round(random 10))]; _newObj addweaponcargoglobal ["ACE_P159_RD99", round(random 2)]; _newObj addweaponcargoglobal ["ACRE_PRC148_UHF", round(random 2)]; _newObj addweaponcargoglobal ["RPG18", (3 + round(random 7))]; _newObj addweaponcargoglobal ["AKS_74_U", (3 + round(random 7))]; _newObj addweaponcargoglobal ["AK_74", (3 + round(random 7))]; _newObj addweaponcargoglobal ["AK_74_GL", (1 + round(random 7))]; _newObj addmagazinecargoglobal ["30Rnd_545x39_AK", (10 + round(random 40))]; _newObj addmagazinecargoglobal ["1Rnd_HE_GP25", (10 + round(random 40))]; _newObj addmagazinecargoglobal ["1Rnd_SmokeGreen_GP25", (10 + round(random 40))]; _newObj addweaponcargoglobal ["ACE_RPG7V_PGO7", (1 + round(random 7))]; _newObj addmagazinecargoglobal ["ACE_PG7V_PGO7", (5 + round(random 20))]; _newObj addweaponcargoglobal ["ACE_SVD_Bipod", (3 + round(random 7))]; _newObj addmagazinecargoglobal ["10Rnd_762x54_SVD", (5 + round(random 30))]; _newObj addweaponcargoglobal ["RPK_74", (3 + round(random 7))]; _newObj addmagazinecargoglobal ["75Rnd_545x39_RPK", (5 + round(random 10))]; _newObj addweaponcargoglobal ["M79_EP1", (1 + round(random 1))]; _newObj addmagazinecargoglobal ["1Rnd_HE_M203", (5 + round(random 5))]; _newObj addmagazinecargoglobal ["1Rnd_Smoke_M203", (5 + round(random 5))]; _newObj addmagazinecargoglobal ["1Rnd_SmokeGreen_M203", (5 + round(random 5))]; }; if (_script != "blockpost") then {RIPMISSIONOBJ set [count RIPMISSIONOBJ, _newObj];}; if (!isNil "_fuel") then {_newObj setFuel _fuel}; if (!isNil "_damage") then {_newObj setDamage _damage}; if (!isNil "_newObjinit") then {_newObj setVehicleInit format ["%1;",_newObjinit]}; processInitCommands; newObjs = newObjs + [_newObj]; };private ["_obj","_isdestroyed","_atbase"]; _obj = _this select 0; if !(isServer) exitWith {}; _isdestroyed = false; _atbase = false; while {!(_isdestroyed) && !(_atbase)} do { if (!alive _obj) then {_isdestroyed = true;}; if ((_obj distance Flag_Base_RU) < 80) then {_atbase = true;}; sleep 10; }; if (_isdestroyed) then {Server setVariable ["RIPMISSIONSUCCEED",0,true];[nil, nil, rEXECVM, "scripts\server\func\War_func_MissionFailHint.sqf"] call RE;}; if (_atbase) then {Server setVariable ["RIPMISSIONSUCCEED",1,true];[nil, nil, rEXECVM, "scripts\server\func\War_func_MissionWinHint.sqf"] call RE;}; Server setVariable ["RIPMISSIONCOMPLETED",true,true]; [] execVM "scripts\server\func\War_func_EscapeZone.sqf";// ========================================================================================================= // UPSMON - Urban Patrol Script // version 5.1.0 beta 1 // // Author: Monsada (chs.monsada@gmail.com) // Comunidad Hispana de Simulacin: // // Wiki: http://dev-heaven.net/projects/upsmon/wiki // Forum: http://forums.bistudio.com/showthread.php?t=91696 // Share your missions with upsmon: http://dev-heaven.net/projects/upsmon/boards/86 // --------------------------------------------------------------------------------------------------------- // Based on Urban Patrol Script v2.0.3 // Author: Kronzky (www.kronzky.info / kronzky@gmail.com) // --------------------------------------------------------------------------------------------------------- // Some little fixes: !Rafalsky (v5.0.8 - 5.1.0) // Code improvements: shay_gman(Artillery), Nordin("noveh") // --------------------------------------------------------------------------------------------------------- // Required parameters: // unit = Unit to patrol area (1st argument) // markername = Name of marker that covers the active area. (2nd argument) // // Patrol squad samples: (put in the leader's init field) // nul=[this,"area0"] execVM "scripts\server\upsmon.sqf"; // // Defensive squad samples: // nul=[this,"area0","nomove"] execVM "scripts\server\upsmon.sqf"; // // Reinforcement // nul=[this,"area0","reinforcement:",1] execVM "scripts\server\UPSMON.sqf"; // (in trigger call: KRON_UPS_reinforcement1 = true; // (call pos marker mkr1): KRON_UPS_reinforcement1_pos = getMarkerPos "mkr1"; // // // Optional parameters: _ // random = Place unit at random start position. // randomdn = Only use random positions on ground level. // randomup = Only use random positions at top building positions. // min:n/max:n = Create a random number (between min and max) of 'clones'. ("min:",2,"max:",5) // init:string = Custom init string for created clones. // nomove = Unit will stay or hide in the near buildings until enemy is spotted. // nofollow = Unit will only follow an enemy within the marker area.(When fight sometimes can go outside) // onroad = Unit will get target destination only on the roads // nosmoke = Units will not use smoke when s/o wounded or die. // delete:n = Delete dead units after 'n' seconds. // nowait = Do not wait at patrol end points. // noslow = Keep default behaviour of unit (don't change to "safe" and "limited"). // noai = Don't use enhanced AI for evasive and flanking maneuvers. // trigger = Display a message when no more units are left in sector. // empty:n = Consider area empty, even if 'n' units are left. // reinforcement = Makes squad as reinforcement, when alarm KRON_UPS_reinforcement==true this squad will go where enemy were. // reinforcement:x = Makes squad as reinforcement id, when alarm KRON_UPS_reinforcementx==true this squad will go where enemy were. // fortify = makes leader order to take positions on nearly buildings at distance 200 meters, squad fortified moves less than "nomove" // aware,combat,stealth,careless defines default behaviour of squad // noveh = the group will not search for transport vehicles (unless in fight and only combat vehicles) // nowp = No waypoints will be created for this squad UNTIL ENEMY DETECTED, this squad will comunicate enemies but will not be moved by UPSMON until enemy detected, after that upsmon takes control of squad // nowp2 = No waypoints will be created for this squad UNTIL ENEMY DETECTED and damaged, this squad will comunicate enemies but will not be moved by UPSMON until enemy detected and damaged, after that upsmon takes control of squad // nowp3 = No waypoints will be created for this squad in any way, this squad will comunicate enemies but will not be moved by UPSMON. // ambush = Ambush squad will not move until in combat, will lay mines if enabled and wait for incoming enemies stealth and ambush when near or discovered. // ambush2 = Ambush squad will not move until in combat, will NOT LAY MINES and wait for incoming enemies stealth and ambush when near or discovered. // ambush:n = Creates an anbush and wait maximun the especified time n in seconds. you can put 0 seconds for putting mines and go away if combined with "move" for example // ambush2:n = Same as ambush:n but without laying mines. // respawn = allow squad to respawn when all members are dead and no targets near // respawn:x = allows to define the number of times squad may respawn. // showmarker = Display the area marker. // track = Display a position and destination marker for each unit. // spawned = use only with squads created in runtime, this feature will add squad to UPSMON correctly. // aware,combat,stealth,careless defines default behaviour of squad // numbers of Civilians killed by players could be read from the array 'KILLED_CIV_COUNTER' -> [Total, by West, by East, by Res, The Killer] if (!isServer) exitWith {}; if (isNil("KRON_UPS_INIT")) then { KRON_UPS_INIT=0; }; waitUntil {KRON_UPS_INIT==1}; // convert argument list to uppercase _UCthis = []; for [{_i=0},{_i0) then {player sidechat format["%1: New instance %2 %3 %4",_grpidx,_npc getVariable ("UPSMON_grpid")]}; // == get the name of area marker ============================================== _areamarker = _this select 1; if (isNil ("_areamarker")) exitWith { hint "UPS: Area marker not defined.\n(Typo, or name not enclosed in quotation marks?)"; }; // remember center position of area marker _centerpos = getMarkerPos _areamarker; _centerX = abs(_centerpos select 0); _centerY = abs(_centerpos select 1); _centerpos = [_centerX,_centerY]; // show/hide area marker _showmarker = if ("SHOWMARKER" in _UCthis) then {"SHOWMARKER"} else {"HIDEMARKER"}; if (_showmarker=="HIDEMARKER") then { //_areamarker setMarkerCondition "false"; // VBS2 _areamarker setMarkerPos [-abs(_centerX),-abs(_centerY)]; }; // is anybody alive in the group? _exit = true; if (typename _npc=="OBJECT") then { if (!isnull group _npc) then { _npc = [_npc,units (group _npc)] call MON_getleader; }else{ _vehicles = [_npc,2] call MON_nearestSoldiers; if (count _vehicles>0) then { _npc = [_vehicles select 0,units (_vehicles select 0)] call MON_getleader; }; }; } else { if (count _obj>0) then { _npc = [_obj,count _obj] call MON_getleader; }; }; // set the leader in the vehilce if (!(_npc iskindof "Man")) then { if (!isnull(commander _npc) ) then { _npc = commander _npc; }else{ if (!isnull(driver _npc) ) then { _npc = driver _npc; }else{ _npc = gunner _npc; }; }; group _npc selectLeader _npc; }; // =============================================== if (alive _npc) then {_exit = false;}; if (KRON_UPS_Debug>0 && _exit) then {player sidechat format["%1 There is no alive members %1 %2 %3",_grpidx,typename _npc,typeof _npc, count units _npc]}; // exit if something went wrong during initialization (or if unit is on roof) if (_exit) exitWith { if (KRON_UPS_DEBUG>0) then {hint "Initialization aborted"}; }; // remember the original group members, so we can later find a new leader, in case he dies _members = units _npc; KRON_UPS_Total = KRON_UPS_Total + (count _members); //Fills member soldier types _vehicles = []; { if (vehicle _x != _x ) then { _vehicles = _vehicles - [vehicle _x]; _vehicles = _vehicles + [vehicle _x]; }; _membertypes = _membertypes + [typeof _x]; } foreach _members; //Fills member vehicle types { _vehicletypes = _vehicletypes + [typeof _x]; } foreach _vehicles; // what type of "vehicle" is _npc ? _isman = "Man" countType [ vehicle _npc]>0; _iscar = "LandVehicle" countType [vehicle _npc]>0; _isboat = "Ship" countType [vehicle _npc]>0; _isplane = "Air" countType [vehicle _npc]>0; // we just have to brute-force it for now, and declare *everyone* an enemy who isn't a civilian _isSoldier = _side != civilian; _friends=[]; _enemies=[]; _sharedenemy=0; if (_isSoldier) then { switch (_side) do { case west: { _sharedenemy=0; _friendside = [west]; _enemyside = [east]; }; case east: { _sharedenemy=1; _friendside = [east]; _enemyside = [west]; }; case resistance: { _sharedenemy=2; _enemyside = KRON_UPS_Res_enemy; if (!(east in _enemyside)) then { _friendside = [east]; }; if (!(west in _enemyside)) then { _friendside = [west]; }; }; }; }; if (_side in KRON_UPS_Res_enemy) then { _enemyside = _enemyside + [resistance]; }else { _friendside = _friendside + [resistance]; }; sleep .05; //Sets min units alive for surrender _surrender = call (compile format ["KRON_UPS_%1_SURRENDER",_side]); // Tanks friendlys are contabiliced { if ( side _x in _friendside && ( _x iskindof "Tank" || _x iskindof "Wheeled_APC" )) then { _friendlytanks = _friendlytanks + [_x]; }; }foreach vehicles; // global unit variable to externally influence script //call compile format ["KRON_UPS_%1=1",_npcname]; // X/Y range of target area _areasize = getMarkerSize _areamarker; _rangeX = _areasize select 0; _rangeY = _areasize select 1; _area = abs((_rangeX * _rangeY) ^ 0.5); // marker orientation (needed as negative value!) _areadir = (markerDir _areamarker) * -1; // store some trig calculations _cosdir=cos(_areadir); _sindir=sin(_areadir); // minimum distance of new target position _mindist=(_rangeX^2+_rangeY^2)/3; if (_rangeX==0) exitWith { hint format["UPS: Cannot patrol Sector: %1\nArea Marker doesn't exist",_areamarker]; }; // remember the original mode & speed _orgMode = behaviour _npc; _orgSpeed = speedmode _npc; // set first target to current position (so we'll generate a new one right away) _currPos = getpos _npc; _orgPos = _currPos; _orgDir = getDir _npc; _orgWatch=[_currPos,50,_orgDir] call KRON_relPos; _lastpos = _currPos; _avoidPos = [0,0]; _flankPos = [0,0]; _attackPos = [0,0]; _newattackPos = [0,0]; _fixedtargetpos = [0,0]; _frontPos = [0,0]; _dirf1 = 0;_dirf2=0;_flankPos2=[0,0]; _dist = 10000; _lastdist = 0; _lastmove1 = 0; _lastmove2 = 0; _maxmove=0; _moved=0; _damm=0; _dammchg=0; _lastdamm = 0; _timeontarget = 0; _fightmode = "walk"; _fm=0; _gothit = false; _pursue = false; _hitPos=[0,0,0]; _react = 0; _lastknown = 0; _opfknowval = 0; _sin0=1; _sin90=1; _cos90=0; _sin270=-1; _cos270=0; _targetX =0; _targetY=0; _relTX=0;_relTY=0; _relUX=0;_relUY=0; _supressed = false; _flankdist=0; _nBuilding=nil; _nBuildingt =nil; _speedmode="Limited"; _distnbuid = 0; _distnbuidt = 0; _objsflankPos1 = []; _cntobjs1 = 0; _objsflankPos2 = []; _cntobjs2 = 0; _targettext =""; _dir1 =0;_dir2=0;_dir3=0;_dd=0; _timeontarget=0; _reinforcement =""; _reinforcementsent = false; _target = objnull; _newtarget=objnull; _flankdir=0; //1 tendencia a flankpos1, 2 tendencia a flankpos2 _prov=0; _targets=[]; _planta=0; //Indice de plantas en edificios _newflankAngle = 0; _closeenough = KRON_UPS_closeenough; _gunner = objnull; _driver = objnull; _fortify = false; _buildingdist= 60;//Distance to search buildings near _Behaviour = "SAFE"; _grp = grpnull; _grp = group _npc; _template = 0; _nowpType = 1; _ambushtype = 1; _rstuckControl = 0; _makenewtarget=true; // set target tolerance high for choppers & planes if (_isplane) then {_closeenough = KRON_UPS_closeenough * 2}; // ***************************************** optional arguments ***************************************** // wait at patrol end points _pause = if ("NOWAIT" in _UCthis) then {"NOWAIT"} else {"WAIT"}; // don't move until an enemy is spotted _nomove = if ("NOMOVE" in _UCthis) then {"NOMOVE"} else {"MOVE"}; //fortify group in near places _fortify= if ("FORTIFY" in _UCthis) then {true} else {false}; _fortifyorig = _fortify; if (_fortify) then { _nomove="NOMOVE"; _minreact = KRON_UPS_minreact * 3; _buildingdist = _buildingdist * 2; _makenewtarget = false; _wait = 3000; }; // create _targerpoint on the roads only (by this group) _onroad = if ("ONROAD" in _UCthis) then {true} else {false}; // do not use smoke (by this group) _nosmoke = if ("NOSMOKE" in _UCthis) then {true} else {false}; // do not search for vehicles (unless in fight and combat vehicles) _noveh = if ("NOVEH" in _UCthis) then {true} else {false}; // don't make waypoints _nowp = if ("NOWP" in _UCthis) then {true} else {false}; _nowp = if ("NOWP2" in _UCthis) then {true} else {_nowp}; _nowp = if ("NOWP3" in _UCthis) then {true} else {_nowp}; _nowpType = if ("NOWP2" in _UCthis) then {2} else {_nowpType}; _nowpType = if ("NOWP3" in _UCthis) then {3} else {_nowpType}; //Ambush squad will no move until in combat or so close enemy _ambush= if ("AMBUSH" in _UCthis) then {true} else {false}; _ambush= if ("AMBUSH:" in _UCthis) then {true} else {_ambush}; _ambush= if ("AMBUSH2" in _UCthis) then {true} else {_ambush}; _ambushwait = ["AMBUSH:",_ambushwait,_UCthis] call KRON_UPSgetArg; _ambushwait = ["AMBUSH2:",_ambushwait,_UCthis] call KRON_UPSgetArg; _ambushType = if ("AMBUSH2" in _UCthis) then {2} else {_ambushType}; _ambushType = if ("AMBUSH2:" in _UCthis) then {2} else {_ambushType}; // respawn _respawn = if ("RESPAWN" in _UCthis) then {true} else {false}; _respawn = if ("RESPAWN:" in _UCthis) then {true} else {_respawn}; _respawnmax = ["RESPAWN:",_respawnmax,_UCthis] call KRON_UPSgetArg; if (!_respawn) then {_respawnmax = 0}; // any init strings? _initstr = ["INIT:","",_UCthis] call KRON_UPSgetArg; // don't follow outside of marker area _nofollow = if ("NOFOLLOW" in _UCthis) then {"NOFOLLOW"} else {"FOLLOW"}; // share enemy info _shareinfo = if ("NOSHARE" in _UCthis) then {"NOSHARE"} else {"SHARE"}; // "area cleared" trigger activator _areatrigger = if ("TRIGGER" in _UCthis) then {"TRIGGER"} else {if ("NOTRIGGER" in _UCthis) then {"NOTRIGGER"} else {"SILENTTRIGGER"}}; // suppress fight behaviour if ("NOAI" in _UCthis) then {_isSoldier=false}; // adjust cycle delay _cycle = ["CYCLE:",KRON_UPS_Cycle,_UCthis] call KRON_UPSgetArg; _currcycle=_cycle; //spawned for squads created in runtime _spawned= if ("SPAWNED" in _UCthis) then {true} else {false}; if (_spawned) then { if (KRON_UPS_Debug>0) then {player sidechat format["%1: squad has been spawned, respawns %2",_grpidx,_respawnmax]}; switch (side _npc) do { case west: { KRON_AllWest=KRON_AllWest + units _npc; }; case east: { KRON_AllEast=KRON_AllEast + units _npc; }; case resistance: { KRON_AllRes=KRON_AllRes + units _npc; if (east in KRON_UPS_Res_enemy ) then { KRON_UPS_East_enemies = KRON_UPS_East_enemies+units _npc; } else { KRON_UPS_East_friends = KRON_UPS_East_friends+units _npc; }; if (west in KRON_UPS_Res_enemy ) then { KRON_UPS_West_enemies = KRON_UPS_West_enemies+units _npc; } else { KRON_UPS_West_friends = KRON_UPS_West_friends+units _npc; }; }; }; call (compile format ["KRON_UPS_%1_Total = KRON_UPS_%1_Total + count (units _npc)",side _npc]); _vehicletypes = ["VEHTYPE:",_vehicletypes,_UCthis] call KRON_UPSgetArg; }; // set drop units at random positions _initpos = "ORIGINAL"; if ("RANDOM" in _UCthis) then {_initpos = "RANDOM"}; if ("RANDOMUP" in _UCthis) then {_initpos = "RANDOMUP"}; if ("RANDOMDN" in _UCthis) then {_initpos = "RANDOMDN"}; // don't position groups or vehicles on rooftops if ((_initpos!="ORIGINAL") && ((!_isman) || (count _members)>1)) then {_initpos="RANDOMDN"}; // set behaviour modes (or not) _orgMode = "SAFE"; if ("CARELESS" in _UCthis) then {_orgMode = "CARELESS"}; if ("AWARE" in _UCthis) then {_orgMode = "AWARE"}; if ("COMBAT" in _UCthis) then {_orgMode = "COMBAT"}; if ("STEALTH" in _UCthis) then {_orgMode = "STEALTH"}; // set original beahviour if (!_isSoldier) then { _Behaviour = "CARELESS"; } else { _Behaviour = _orgMode; }; _npc setbehaviour _Behaviour; // set initial speed _noslow = if ("NOSLOW" in _UCthis) then {"NOSLOW"} else {"SLOW"}; if (_noslow!="NOSLOW") then { _orgSpeed = "limited"; } else { _orgSpeed = "FULL"; }; _speedmode = _orgSpeed; _npc setspeedmode _speedmode; // set If enemy detected reinforcements will be sent REIN1 _reinforcement= if ("REINFORCEMENT" in _UCthis) then {"REINFORCEMENT"} else {"NOREINFORCEMENT"}; //rein_yes _rfid = ["REINFORCEMENT:",0,_UCthis] call KRON_UPSgetArg; // rein_# if (_rfid>0) then { _reinforcement="REINFORCEMENT"; //if (KRON_UPS_Debug>0) then {hintsilent format["%1: reinforcement group %2",_grpidx,_rfid,_rfidcalled,_reinforcement]}; }; //set Is a template for spawn module? _template = ["TEMPLATE:",_template,_UCthis] call KRON_UPSgetArg; //Fills template array for spawn if (_template > 0 && !_spawned) then { KRON_UPS_TEMPLATES = KRON_UPS_TEMPLATES + ( [[_template]+[_side]+[_membertypes]+[_vehicletypes]] ); //if (KRON_UPS_Debug>0) then {diag_log format["%1 Adding TEMPLATE %2 _spawned %3",_grpidx,_template,_spawned]}; //if (KRON_UPS_Debug>0) then {player globalchat format["KRON_UPS_TEMPLATES %1",count KRON_UPS_TEMPLATES]}; }; // make start position random if (_initpos!="ORIGINAL") then { // find a random position (try a max of 20 positions) _try=0; _bld=0; _bldpos=0; while {_try<20} do { _currPos=[_centerX,_centerY,_rangeX,_rangeY,_cosdir,_sindir,_areadir] call KRON_randomPos; _posinfo=[_currPos] call KRON_PosInfo3; // _posinfo: [0,0]=no house near, [obj,-1]=house near, but no roof positions, [obj,pos]=house near, with roof pos _bld=_posinfo select 0; _bldpos=_posinfo select 1; if (_isplane || _isboat || !(surfaceiswater _currPos)) then { if (((_initpos=="RANDOM") || (_initpos=="RANDOMUP")) && (_bldpos>0)) then {_try=99}; if (((_initpos=="RANDOM") || (_initpos=="RANDOMDN")) && (_bldpos==0)) then {_try=99}; }; _try=_try+1; sleep .01; }; if (_bldpos==0) then { { //man if (vehicle _x == _x) then { _x setpos _currPos; }; } foreach units _npc; sleep .5; { // vehicles _targetpos = _currPos findEmptyPosition [10, 100]; sleep .4; if (count _targetpos <= 0) then {_targetpos = _currpos}; _x setPos _targetpos; } foreach _vehicles; } else { // put the unit on top of a building _npc setPos (_bld buildingPos _bldpos); _currPos = getPos _npc; _nowp=true; // don't move if on roof }; }; // track unit ====================================================================================== _track = if (("TRACK" in _UCthis) || (KRON_UPS_Debug>0)) then {"TRACK"} else {"NOTRACK"}; _trackername = ""; _destname = ""; if (_track=="TRACK") then { _track = "TRACK"; _trackername=format["trk_%1",_grpidx]; _markerobj = createMarker[_trackername,[0,0]]; _markerobj setMarkerShape "ICON"; _markertype = if (isClass(configFile >> "cfgMarkers" >> "WTF_Dot")) then {"WTF_DOT"} else {"DOT"}; _trackername setMarkerType _markertype; _markercolor = switch (side _npc) do { case west: {"ColorGreen"}; case east: {"ColorRed"}; case resistance: {"ColorBlue"}; default {"ColorBlack"}; }; _trackername setMarkerColor _markercolor; _trackername setMarkerText format["%1",_grpidx]; _trackername setmarkerpos _currPos; _destname=format["dest_%1",_grpidx]; _markerobj = createMarker[_destname,[0,0]]; _markerobj setMarkerShape "ICON"; _markertype = if (isClass(configFile >> "cfgMarkers" >> "WTF_Flag")) then {"WTF_FLAG"} else {"FLAG"}; _destname setMarkerType _markertype; _destname setMarkerColor _markercolor; _destname setMarkerText format["%1",_grpidx]; _destname setMarkerSize [.5,.5]; }; // delete dead units ============================================================================== _deletedead = ["DELETE:",0,_UCthis] call KRON_UPSgetArg; if (_deletedead>0) then { { _x addEventHandler['killed',format["[_this select 0,%1] spawn KRON_deleteDead",_deletedead]]; sleep 0.01; }forEach _members; }; // how many group clones? ========================================================================= // TBD: add to global side arrays? _mincopies = ["MIN:",0,_UCthis] call KRON_UPSgetArg; _maxcopies = ["MAX:",0,_UCthis] call KRON_UPSgetArg; if (_mincopies>_maxcopies) then {_maxcopies = _mincopies}; if (_maxcopies>140) exitWith {hint "Cannot create more than 140 groups!"}; if (_maxcopies>0) then { _copies = _mincopies + random (_maxcopies-_mincopies); // create the clones for "_grpcnt" from 1 to _copies do { // copy groups if (isNil ("KRON_grpindex")) then {KRON_grpindex = 0}; KRON_grpindex = KRON_grpindex+1; // copy group leader _unittype = typeof _npc; // make the clones civilians // use random Civilian models for single unit groups if ((_unittype=="Civilian") && (count _members==1)) then {_rnd=1+round(random 20); if (_rnd>1) then {_unittype=format["Civilian%1",_rnd]}}; _grp=createGroup side _npc; _lead = _grp createUnit [_unittype, getpos _npc, [], 0, "form"]; _lead setVehicleVarName format["l%1",KRON_grpindex]; call compile format["l%1=_lead",KRON_grpindex]; _lead setBehaviour _orgMode; _lead setSpeedmode _orgSpeed; _lead setSkill skill _npc; _lead setVehicleInit _initstr; [_lead] join _grp; _grp selectLeader _lead; // copy team members (skip the leader) _i=0; { _i=_i+1; if (_i>1) then { _newunit = _grp createUnit [typeof _x, getpos _x, [],0,"form"]; _newunit setBehaviour _orgMode; _newunit setSpeedMode _orgSpeed; _newunit setSkill skill _x; _newunit setVehicleInit _initstr; [_newunit] join _grp; }; } foreach _members; nul=[_lead,_areamarker,_pause,_noslow,_nomove,_nofollow,_initpos,_track,_showmarker,_shareinfo,"DELETE:",_dead] execVM "scripts\server\upsmon.sqf"; //sleep .05; }; processInitCommands; sleep .05; }; // units that can be left for area to be "cleared" ============================================================================================= _zoneempty = ["EMPTY:",0,_UCthis] call KRON_UPSgetArg; // create area trigger ========================================================================================================================= if (_areatrigger!="NOTRIGGER") then { _trgside = switch (side _npc) do { case west: {"WEST"}; case east: {"EAST"}; case resistance: {"GUER"}; case civilian: {"CIV"};}; //_trgside = switch (side _npc) do { case west: {"EAST"}; case east: {"WEST"}; case resistance: {"ANY"}; case civilian: {"ANY"};}; _trgname="KRON_Trig_"+_trgside+"_"+_areamarker; _flgname="KRON_Cleared_"+_areamarker; // has the trigger been created already? KRON_TRGFlag=-1; call compile format["%1=false",_flgname]; call compile format["KRON_TRGFlag=%1",_trgname]; if (isNil ("KRON_TRGFlag")) then { // trigger doesn't exist yet, so create one (make it a bit bigger than the marker, to catch path finding 'excursions' and flanking moves) call compile format["%1=createTrigger['EmptyDetector',_centerpos]",_trgname]; call compile format["%1 setTriggerArea[_rangeX*1.5,_rangeY*1.5,markerDir _areamarker,true]",_trgname]; call compile format["%1 setTriggerActivation[_trgside,'PRESENT',true]",_trgname]; call compile format["%1 setEffectCondition 'true'",_trgname]; call compile format["%1 setTriggerTimeout [5,7,10,true]",_trgname]; if (_areatrigger!="SILENTTRIGGER") then { call compile format["%1 setTriggerStatements['count thislist<=%6', 'titletext [''SECTOR <%2> LIMPIO'',''PLAIN''];''%2'' setmarkerpos [-%4,-%5];%3=true;', 'titletext [''SECTOR <%2> HA SIDO REOCUPADO'',''PLAIN''];''%2'' setmarkerpos [%4,%5];%3=false;']", _trgname,_areamarker,_flgname,_centerX,_centerY,_zoneempty]; } else { call compile format["%1 setTriggerStatements['count thislist<=%3', '%2=true;', '%2=false;']", _trgname,_flgname,_zoneempty]; }; }; sleep .05; }; //If a soldier has a useful building takes about ====================================================================================================================== if ( _nomove=="NOMOVE" ) then { sleep 10; _unitsIn = [_grpid,_npc,150] call MON_GetIn_NearestStatic; if ( count _unitsIn > 0 ) then { sleep 10}; [_npc, _buildingdist,false,_wait,true] spawn MON_moveNearestBuildings; }; // init done _newpos = false; _targetPos = [0,0,0];//_currPos; _targettext ="_currPos"; _swimming = false; _waiting = if (_nomove=="NOMOVE") then {9999} else {0}; _sharedist = if (_nomove=="NOMOVE") then {KRON_UPS_sharedist} else {KRON_UPS_sharedist*1.5}; //Gets position of waypoint if no targetpos if (format ["%1", _targetPos] == "[0,0,0]") then { _index = (count waypoints _grp) - 1; _wp = [_grp,_index]; _targetPos = waypointPosition _wp; if (([_currpos,_targetPos] call KRON_distancePosSqr)<= 20) then {_targetPos = [0,0,0];}; }; // *********************************************************************************************************** // ************************************************ MAIN LOOP ************************************************ // *********************************************************************************************************** _loop=true; scopeName "main"; while {_loop} do { //if (KRON_UPS_Debug>0) then {player sidechat format["%1: _cycle=%2 _currcycle=%3 _react=%4 _waiting=%5",_grpidx,_cycle,_currcycle,_react,_waiting]}; _timeontarget=_timeontarget+_currcycle; _react=_react+_currcycle; _waiting = _waiting - _currcycle; _lastreact = _lastreact + _currcycle; _newpos = false; _sokilled = false; _sowounded = false; // CHECK IF did anybody in the group got hit or die? if ((R_GOTHIT_ARRAY select _grpId) != 0) then { _gothit = true; if ((R_GOTHIT_ARRAY select _grpId) == 1) then { _sowounded = true; } else { _sokilled = true; }; sleep 0.01; R_GOTHIT_ARRAY set [_grpId, 0]; }; // nobody left alive, exit routine if (count _members==0) then { _exit=true; } else { // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; }; //exits from loop if (_exit) exitwith {}; //Checks if surrender is enabled if ( _surrender > 0 ) then { _surrended = call (compile format ["KRON_UPS_%1_SURRENDED",_side]); }; //If surrended exits from script if (_surrended) exitwith { { [_x] spawn MON_surrender; }foreach _members; if (KRON_UPS_Debug>0) then {_npc globalchat format["%1: %2 SURRENDED",_grpidx,_side]}; }; //Assign the current leader of the group in the array of group leaders KRON_NPCs set [_grpid,_npc]; // current position _currPos = getpos _npc; _currX = _currPos select 0; _currY = _currPos select 1; if (_track=="TRACK" || KRON_UPS_Debug>0) then { _trackername setmarkerpos _currPos; }; // if the AI is a civilian we don't have to bother checking for enemy encounters if ( _isSoldier && !_exit) then { _pursue=false; //_Behaviour = Behaviour _npc; //Variables to see if the leader is in a vehicle _incar = "LandVehicle" countType [vehicle (_npc)]>0; _inheli = "Air" countType [vehicle (_npc)]>0; _inboat = "Ship" countType [vehicle (_npc)]>0; //If the group is strengthened and the enemies have been detected are sent to target if (_rfid > 0 ) then { _rfidcalled = call (compile format ["KRON_UPS_reinforcement%1",_rfid]); // will be TRUE when variable in triger will be true. if (isnil "_rfidcalled") then {_rfidcalled=false}; _fixedtargetPos = call (compile format ["KRON_UPS_reinforcement%1_pos",_rfid]); // will be position os setfix target of sending reinforcement if (isnil "_fixedtargetPos") then { _fixedtargetPos=[0,0]; }else{ _fixedtargetPos = [abs(_fixedtargetPos select 0),abs(_fixedtargetPos select 1)]; _target = objnull; }; }; sleep .01; //Reinforcement control if (_reinforcement=="REINFORCEMENT") then { // (global call OR id call) AND !send yet if ( (KRON_UPS_reinforcement || _rfidcalled) && (!_reinforcementsent)) then { _reinforcementsent=true; _fortify = false; _minreact = KRON_UPS_minreact; _buildingdist = 60; _react = _react + 100; _waiting = -1; if (format ["%1",_fixedtargetPos] != "[0,0]") then {_nowp = false}; if (KRON_UPS_Debug>0) then {player sidechat format["%1 called for reinforcement %2",_grpidx,_fixedtargetPos]}; } else { // !(global or id call) AND send if ( !(KRON_UPS_reinforcement || _rfidcalled) && (_reinforcementsent)) then { _fixedtargetPos = [0,0]; _attackPos = [0,0]; _fortify = _fortifyorig; _reinforcementsent=false; if (_rfid > 0 ) then { call (compile format ["KRON_UPS_reinforcement%1_pos = [0,0]",_rfid]); call (compile format ["KRON_UPS_reinforcement%1 = false",_rfid]); }; if (KRON_UPS_Debug>0) then {player sidechat format["%1 reinforcement canceled",_grpidx]}; }; }; }; //Gets targets from radio _targets = call (compile format ["KRON_targets%1",_sharedenemy]); // if (KRON_UPS_Debug>0) then {player globalchat format["targets from global upsmon: %1",_targets]}; //Reveal targets found by members to leader { //_NearestEnemy = assignedTarget _x; //if (KRON_UPS_Debug>0) then {player globalchat format["Nearest Enemy %1, know about %2",_NearestEnemy,_x knowsabout _NearestEnemy]}; _NearestEnemy = _x findnearestenemy _x; if (_x knowsabout _NearestEnemy > R_knowsAboutEnemy && (_npc knowsabout _NearestEnemy <= R_knowsAboutEnemy || count _targets <= 0 )) then { if (_npc knowsabout _NearestEnemy <= R_knowsAboutEnemy ) then { _npc reveal _NearestEnemy; if (KRON_UPS_Debug>0) then {player globalchat format["%1: %2 reveals target %3 to leader",_grpidx,typeof _x, typeof _NearestEnemy]}; }; //If no targets adds this if (count _targets <= 0) then { //_target = _NearestEnemy; _targets = _targets + [_NearestEnemy]; _NearestEnemy setvariable ["UPSMON_lastknownpos", position _NearestEnemy, false]; //if (KRON_UPS_Debug>0) then {player globalchat format["%1: %3 added to targets",_grpidx,typeof _x, typeof _target]}; }; }; } foreach units _npc; //if no target but _npc knows enemy then this is _target if (isNull (_target)) then { { if ((_npc knowsabout _x > R_knowsAboutEnemy) && (alive _x) && (canmove _x)) then { _target =_x; if (!isNull (_target)) exitWith{}; }; } foreach _targets; }; //Resets distance to target _dist = 10000; //Gets current known position of target and distance if ( !isNull (_target) && alive _target ) then { _newattackPos = _target getvariable ("UPSMON_lastknownpos"); if ( !isnil "_newattackPos" ) then { _attackPos=_newattackPos; //Gets distance to target known pos _dist = ([_currpos,_attackPos] call KRON_distancePosSqr); }; }; //Initialization for geting new targets //If the current target is dead or no prior knowledge is cleaned if (isNull (_target) || !alive _target || !canmove _target ) then { _lastknown = 0; _opfknowval = 0; _target = objnull; }; _newtarget = _target; if ((_shareinfo=="SHARE")) then { //Requests for radio the enemy's position, if it is within the range of acts if ((KRON_UPS_comradio == 2)) then { _targetsnear = false; //I we have a close target alive do not search another if (!alive _target || !canmove _target || _dist > _closeenough) then { { if ( !isnull _x && canmove _x && alive _x ) then { _newattackPos = _x getvariable ("UPSMON_lastknownpos"); if ( !isnil "_newattackPos" ) then { _dist3 = ([_currpos,_newattackPos] call KRON_distancePosSqr); //Sets if near targets to begin warning IF ( _dist3 <= (_closeenough + KRON_UPS_safedist)) then { _targetsnear = true }; //Sets new target if ( ( isnull (_newtarget) || captive _newtarget|| !alive _newtarget|| !canmove _newtarget || _dist3 < _dist ) && ( _dist3 <= _sharedist || _reinforcementsent ) && ( !(_x iskindof "Air") || (_x iskindof "Air" && _isplane )) && ( !(_x iskindof "Ship") || (_x iskindof "Ship" && _isboat )) && ( _x emptyPositions "Gunner" == 0 && _x emptyPositions "Driver" == 0 || (!isnull (gunner _x) && canmove (gunner _x)) || (!isnull (driver _x) && canmove (driver _x))) ) then { _newtarget = _x; _opfknowval = _npc knowsabout _x; _dist = _dist3; if (_dist < _closeenough) exitWith {}; }; }; }; } foreach _targets; sleep 0.5; }; }; //If you change the target changed direction flanking initialize if ( !isNull (_newtarget) && alive _newtarget && canmove _newtarget && (_newtarget != _target || isNull (_target)) ) then { _timeontarget = 0; _targetdead = false; _flankdir= if (random 100 <= 10) then {0} else {_flankdir}; _target = _newtarget; }; }; // use smoke when hit or s/o killed if !_nosmoke then { { //when hit if (_sowounded && random 100 < R_USE_SMOKE_wounded) then { nul = [_x,_target] spawn MON_throw_grenade; // if (KRON_UPS_Debug>0) then {player sidechat format["%1: We got wounded smoking!",_grpidx]}; }; //when die if (_sokilled && random 100 < R_USE_SMOKE_killed) then { nul = [_x,_target] spawn MON_throw_grenade; //if (KRON_UPS_Debug>0) then {player sidechat format["%1: We got killed one, smoking!",_grpidx]}; }; sleep 0.1; } foreach _members; }; //Gets current known position of target and distance if ( !isNull (_target) && alive _target ) then { //Enemy detected if (_fightmode != "fight" ) then { _fightmode = "fight"; _npc setCombatMode "RED"; // !R _react = KRON_UPS_react; if (KRON_UPS_Debug>0) then {player sidechat format["%1: Enemy detected %2",_grpidx, typeof _target]}; if (_nowpType == 1) then { nul = [_npc] call R_FN_deleteObsoleteWaypoints; _nowp = false; }; }; _newattackPos = _target getvariable ("UPSMON_lastknownpos"); if ( !isnil "_newattackPos" ) then { _attackPos=_newattackPos; //Gets distance to target known pos _dist = ([_currpos,_attackPos] call KRON_distancePosSqr); //Looks at target known pos _members lookat _attackPos; }; }; //If the enemy has moved away from the radio coverage is not a reinforcement sent we will have lost track if ( _fightmode != "walk" && !isnull(_target) && _dist < 15 && _npc knowsabout _target < R_knowsAboutEnemy ) then { //If squad is near last position and no target clear position of target if (KRON_UPS_Debug>0) then {player sidechat format["%1: Target lost",_grpidx]}; _fightmode="walk"; _speedmode = _orgSpeed; _target = objnull; _Behaviour = _orgMode; _waiting = -1; _unitpos = "AUTO"; _pursue=false; _targetdead = true; _makenewtarget = true; //Go back to the original position }; //If knowledge of the target increases accelerate the reaction if (_opfknowval>_lastknown ) then { _react = _react + 20; }; // if spotted an enemy or got shot, so start pursuit, if in combat and exceed time to react or movecompleted if (!_ambushed && (_fightmode != "walk") && ((_react >= KRON_UPS_react && _lastreact >=_minreact) || moveToCompleted _npc )) then { _pursue=true; }; //Ambush ========================================================================================================== if (_ambush && !_ambushed) then { _ambushed = true; _nowp = true; _currcycle = 2; _grp setFormation "LINE"; _npc setBehaviour "STEALTH"; _npc setSpeedMode "FULL"; /* sleep 12; { [_x,"DOWN"] spawn MON_setUnitPos; sleep 2; _x stop true; player sidechat format["%1 %2",_x,_npc]; } foreach units _npc; */ //Puts a mine if near road if ( _ambushType == 1 ) then { if (KRON_UPS_Debug>0) then {player sidechat format["%1: Puting mine for ambush",_grpidx]}; _npc setBehaviour "careless"; _dir1 = getDir _npc; _mineposition = [position _npc,_dir1, (KRON_UPS_ambushdist / 1.2)] call MON_GetPos2D; _roads = _mineposition nearroads 25; // if (KRON_UPS_Debug>0) then {player sidechat format["%1: Roads #:%2",_grpidx, (count _roads)]}; while {_Mines > 0} do { _i = 0; // if (KRON_UPS_Debug>0) then {player sidechat format["%1 Current Roads #:%2 _Mines:%3",_grpidx, (count _roads),_Mines]}; if (count _roads > 0) then { _rnd = floor (random (count _roads)); _mineposition = position (_roads select _rnd); _roads = _roads - [_roads select _rnd]; if ([_npc,_mineposition] call MON_CreateMine) then {_Mines = _Mines -1; _i = 1;}; } else { _mineposition = [position _npc,(_dir1-30) mod 360, (KRON_UPS_ambushdist / 1.2 ) + random 10] call MON_GetPos2D; if ([_npc,_mineposition] call MON_CreateMine) then {_Mines = _Mines -1; _i = 1;}; }; sleep 0.1; if (_i != 1) then {_Mines = _Mines -1;} //in case no mine was set }; _npc setBehaviour "carelesscareless"; sleep 30; { if (!stopped _x) then { _x domove position _npc; waituntil {moveToCompleted _x || moveToFailed _x || !alive _x || !canmove _x || _x distance _npc <= 5}; }; } foreach units _npc; }; // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; _grp setFormation "LINE"; _npc setBehaviour "AWARE"; sleep 10; sleep 0.1; _unitpos ="DOWN"; { [_x,_unitpos] spawn MON_setUnitPos; sleep 0.5; _x stop true; } foreach units _npc; _npc setBehaviour "STEALTH"; _pursue = false; }; // end of ambush mine //Ambushr enemy is nearly aproach //_ambushdist = 50; // if (_npc knowsabout _NearestEnemy <= R_knowsAboutEnemy ) if (_ambush) then { _prov = ((_ambushdist*2 - (_npc distance _NearestEnemy))*3) - 40; // if (KRON_UPS_Debug>0) then {player sidechat format["%1:%6 _ambushdist=%5 last=%2 dist=%3 prov=%4",_grpidx,_lastdist,_npc distance _NearestEnemy,_prov,_ambushdist,typeof _NearestEnemy]}; if (_gothit || _reinforcementsent || time > _ambushwait || ( "Air" countType [_NearestEnemy]<=0 && ( _npc distance _NearestEnemy <= _ambushdist + random 10 || (!isNull (_NearestEnemy) && (( random 100 <= _prov && _npc distance _NearestEnemy > _lastdist) || _npc distance _NearestEnemy > _ambushdist*3 && _lastdist < _ambushdist*3 && _lastdist > 0)) )) ) then { sleep ((random 1) + 1); // let the enemy then get in the area if (KRON_UPS_Debug>0) then {player sidechat format["%1: ATTACK !",_grpidx]}; _nowp = false; _ambush = false; _ambushed = false; _currcycle = _cycle; { _x stop false; _x setUnitPos "Auto"; } foreach _members; _npc setBehaviour "STEALTH"; _npc setCombatMode "RED"; //No engage yet _pursue = false; }; //Sets distance to target _lastdist = _npc distance _NearestEnemy; }; // end of ambush //if (KRON_UPS_Debug>0) then {player sidechat format["%1: _nowp=%2 in vehicle=%3 _inheli=%4 _npc=%5",_grpidx,_nowp,vehicle (_npc) ,_inheli,typeof _npc ]}; //If in vehicle take driver if not controlled by user if (alive _npc && !_nowp) then { if (!_isman || (vehicle (_npc) != _npc && !_inboat && !(vehicle (_npc) iskindof "StaticWeapon"))) then { //If new target is close enough getout vehicle (not heli) _unitsin = []; if (!_inheli) then { if (_fightmode == "walk") then { _GetOutDist = _area / 20; }else{ _GetOutDist = _closeenough * ((random .4) + 0.6); }; //If near target or stuck getout of vehicle and lock or gothit exits inmediately if (_gothit || _dist <= _closeenough * 1.5 || (_lastcurrpos select 0 == _currpos select 0 && _lastcurrpos select 1 == _currpos select 1 && moveToFailed (vehicle (_npc))) || moveTocompleted (vehicle (_npc))) then { _GetOutDist = 10000; }; //if (KRON_UPS_Debug>0) then {player sidechat format["%1: vehicle=%2 _npc=%3",_grpidx,vehicle (_npc) ,typeof _npc ]}; _unitsin = [_npc] call R_FN_allUnitsInCargo; // return units in cargo in all vehs used by the group private ["_handle1"]; _handle1 = [_npc,_targetpos,_GetOutDist] spawn R_SN_GetOutDist; // getout if as close as _GetOutDist to the target _timeout = time + 10; waitUntil {scriptDone _handle1 || time > _timeout}; } else { _GetOutDist = 0; }; // if there was getout of the cargo if (count _unitsin > 0) then { //if (KRON_UPS_Debug>0) then {player sidechat format["%1: Geting out of vehicle, dist=%2 atdist=%3 _area=%4",_grpidx,([_currpos,_targetpos] call KRON_distancePosSqr),_GetOutDist,_area]}; _timeout = time + 7; { waituntil {vehicle _x == _x || !canmove _x || !alive _x || time > _timeout || movetofailed _x }; } foreach _unitsin; // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; if (_fightmode == "fight" || _gothit) then { _npc setBehaviour "COMBAT"; // AWARE _groupOne = group _npc; _groupOne setFormation "DIAMOND"; nul = [_npc,30] spawn MON_move; }; sleep 0.2; // select leader outside of vehicle { if (alive _x && canmove _x) exitwith {group _x selectLeader _x; _npc = _x}; } foreach _unitsin; if (_fightmode == "fight") then { _pursue = true; }else { _pursue = false; _makenewtarget=true; }; }; }; }; //If under attack or increasing knowledge speeds up the response and regain control of the AI if (_gothit) then { _react = if (!_supressed) then {_react + 30}; if (_fightmode != "walk") then { if (_nowpType != 3) then { nul = [_npc] call R_FN_deleteObsoleteWaypoints; _nowp = false; }; }; }; //If there is no objective order is canceled persecution if ((isNull (_target) || !alive _target )) then { _pursue=false; if (_gothit && !_fortify && !_nowp) then { if ((_fightmode == "walk")) then { //It could be a sniper, better be alert and move in case _Behaviour = "COMBAT"; _speedmode = "FULL"; _unitpos = "AUTO"; _gothit = false; _makenewtarget = true; _waiting = -1; if ((random 100 < 20) && !_nosmoke) then { nul= [_npc,_target] spawn MON_throw_grenade; }; if (KRON_UPS_Debug>0) then {player sidechat format["%1: Have been damaged moving",_grpidx,_makenewtarget]}; } else { if ((_react >= KRON_UPS_react && _lastreact >=_minreact && count _targets <= 0) || _sowounded) then { //We shoot and we have no target, we move from position if (KRON_UPS_Debug>0) then {player sidechat format["%1: Under fire by unkown target, moving to newpos",_grpidx]}; //Covers the group with a smoke grenade if (!_supressed && (random 100 < 80) && !_nosmoke) then { nul= [_npc,_target] spawn MON_throw_grenade; }; _gothit = false; _makenewtarget = true; _waiting = -1; _pause="NOWAIT"; _speedmode = "FULL"; _unitpos = "middle"; _Behaviour = "AWARE"; } else { if (_lastreact >=_minreact && !_targetdead) then { _targetdead = true; _pursue = true; //We have run out of targets continue to search if (KRON_UPS_Debug>0) then {player sidechat format["%1: Target defeated, searching",_grpidx]}; }; }; }; }; }; //If no fixed target check if current target is available if (format ["%1",_fixedtargetPos] != "[0,0]") then { //If fixed target check if close enough or near enemy and gothit if (([_currpos,_fixedtargetpos] call KRON_distancePosSqr) <= _closeenough || (_dist <= _closeenough && _gothit)) then { _fixedtargetPos = [0,0]; } else { _pursue = false; _attackPos=_fixedtargetPos; if (_react >= KRON_UPS_react && _lastreact >=_minreact) then { _makenewtarget = true; _unitpos = "AUTO"; _speed = "FULL"; }; }; }; //If captive or surrended do not pursue if ( isnil "_attackPos") then {_pursue = false;}; if ( captive _target || format ["%1", _attackPos] == "[0,0]") then {_pursue = false;}; //If no waypoint do not move if (_nowp) then { _makenewtarget = false; _pursue = false; }; if (_inheli) then { _landing = _heli getVariable "UPSMON_landing"; if (isnil ("_landing")) then {_landing=false;}; if (_landing) then { _pursue = false; }; }; sleep 0.5; // ********************************************************************************************************************** // PURSUE: CHASE BEGINS THE LENS // ********************************************************************************************************************** if (_pursue) then { // if (KRON_UPS_Debug>0) then {player sidechat format["%1: is in pursure",_grpidx]}; _pursue = false; _newpos = true; _react = 0; _lastreact = 0; _timeontarget = 0; _makenewtarget = false; _fm = 1; //Cancel supress effect when reaction time _supressed = false; // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; // get position of spotted unit in player group, and watch that spot _targetPos = _attackPos; _targetX = _targetPos select 0; _targetY = _targetPos select 1; _currPos = getpos _npc; // also go into "combat mode" _pause="NOWAIT"; _waiting=0; // angle from unit to target _dir1 = [_currPos,_targetPos] call KRON_getDirPos; // angle from target to unit (reverse direction) _dir2 = (_dir1+180) mod 360; //Establecemos una distancia de flanqueo _flankdist = ((random 0.5)+0.7)*KRON_UPS_safedist; //La distancia de flanqueo no puede ser superior a la distancia del objetivo o nos pordra pillar por la espalda _flankdist = if ((_flankdist*1.40) >= _dist) then {_dist*.65} else {_flankdist}; if (_inheli) then {_flankdist = _flankdist / 2;}; // avoidance position (right or left of unit) _avoidPos = [_currPos,_dir2, KRON_UPS_safedist] call MON_GetPos2D; //Calculamos posicin de avance frontal _frontPos = [_targetPos,_dir2, _flankdist] call MON_GetPos2D; //Adaptamos el ngulo de flanqueo a la distancia _newflankAngle = ((random(KRON_UPS_flankAngle)+1) * 2 * (_flankdist / KRON_UPS_safedist )) + (KRON_UPS_flankAngle/1.4) ; if (_newflankAngle > KRON_UPS_flankAngle) then {_newflankAngle = KRON_UPS_flankAngle}; //Calculamos posicin de flanqueo 1 45 _dirf1 = (_dir2+_newflankAngle) mod 360; _flankPos = [_targetPos,_dirf1, _flankdist] call MON_GetPos2D; //Calculamos posicin de flanqueo 2 -45 _dirf2 = (_dir2-_newflankAngle+360) mod 360; _flankPos2 = [_targetPos,_dirf2, _flankdist] call MON_GetPos2D; if (KRON_UPS_Debug>0) then { "flank1" setmarkerpos _flankPos; "flank2" setmarkerpos _flankPos2; "target" setmarkerpos _attackPos; }; //Decidir por el mejor punto de flanqueo //Contamos las posiciones de destino de otros grupos ms alejadas _fldest = 0; _fldest2 = 0; _fldestfront = 0; _i = 0; { if (_i != _grpid && format ["%1", _x] != "[0,0]") then { _dist1 = [_x,_flankPos] call KRON_distancePosSqr; _dist2 = [_x,_flankPos2] call KRON_distancePosSqr; _dist3 = [_x,_frontPos] call KRON_distancePosSqr; if (_dist1 <= _flankdist/1.5 || _dist2 <= _flankdist/1.5 || _dist3 <= _flankdist/1.5) then { if (_dist1 < _dist2 && _dist1 < _dist3) then {_fldest = _fldest + 1;}; if (_dist2 < _dist1 && _dist2 < _dist3) then {_fldest2 = _fldest2 + 1;}; if (_dist3 < _dist1 && _dist3 < _dist2) then {_fldestfront = _fldestfront + 1;}; }; }; _i = _i + 1; sleep 0.01; } foreach KRON_targetsPos; //We have the positions of other groups more distant _i = 0; { if (_i != _grpid && !isnull(_x)) then { _dist1 = [getpos(_x),_flankPos] call KRON_distancePosSqr; _dist2 = [getpos(_x),_flankPos2] call KRON_distancePosSqr; _dist3 = [getpos(_x),_frontPos] call KRON_distancePosSqr; if (_dist1 <= _flankdist/1.5 || _dist2 <= _flankdist/1.5 || _dist3 <= _flankdist/1.5) then { if (_dist1 < _dist2 && _dist1 < _dist3) then {_fldest = _fldest + 1;}; if (_dist2 < _dist1 && _dist2 < _dist3) then {_fldest2 = _fldest2 + 1;}; if (_dist3 < _dist1 && _dist3 < _dist2) then {_fldestfront = _fldestfront + 1;}; }; }; _i = _i + 1; sleep 0.01; } foreach KRON_NPCs; //La preferencia es la eleccin inicial de direccin switch (_flankdir) do { case 1: {_prov = 125}; case 2: {_prov = -25}; default {_prov = 50}; }; //Si es positivo significa que hay ms destinos existentes lejanos a la posicion de flanqueo1, tomamos primariamente este if (_fldest<_fldest2) then {_prov = _prov + 50;}; if (_fldest2<_fldest) then {_prov = _prov - 50;}; //Si la provablilidad es negativa indica que tomar el flank2 por lo tanto la provabilidad de coger 1 es 0 if (_prov<0) then {_prov = 0;}; //Evaluamos la direccin en base a la provablilidad calculada if ((random 100) <= _prov) then { _flankdir =1; _flankPos = _flankPos; _targettext = "_flankPos"; } else { _flankdir =2; _flankPos = _flankPos2; _targettext = "_flankPos2"; }; //Posicin de ataque por defecto el flanco _targetPos = _flankPos; _targettext = "_flankPos"; if ((surfaceIsWater _flankPos && !(_isplane || _isboat)) ) then { _targetPos = _attackPos;_targettext ="_attackPos"; _flankdir =0; } else { if (_fldestfront < _fldest && _fldestfront < _fldest2) then { _targetPos = _frontPos;_targettext ="_frontPos"; }; }; //Establish the type of waypoint //DESTROY has worse behavior with and sometimes do not move _wptype = "MOVE"; //Set speed and combat mode _rnd = random 100; if (_dist <= _closeenough) then { //If we are so close we prioritize discretion fire if ( _dist <= _closeenough/2 ) then { //Close combat modeo _speedmode = "LIMITED"; _wpformation = "LINE"; _unitpos = "AUTO"; //"Middle" _react = _react + KRON_UPS_react / 2; _minreact = KRON_UPS_minreact / 2; if ((_nomove == "NOMOVE" && _rnd < 25) && !_reinforcementsent) then { //Defensive combat _Behaviour = "STEALTH"; _wptype = "HOLD"; } else { if (_rnd < 80) then { _Behaviour = "COMBAT"; // (combat / stealth) } else { _Behaviour = "AWARE"; }; _wptype = "MOVE"; _npc setCombatMode "RED"; } } else { //If the troop has the role of not moving tend to keep the position _speedmode = "NORMAL"; _wpformation = "VEE"; //or VEE _unitpos = "AUTO";// "Middle" _minreact = KRON_UPS_minreact / 1.5; if ((_nomove == "NOMOVE" && _rnd < 50) && !_reinforcementsent) then { //Combate defensivo _Behaviour = "COMBAT"; _wptype = "HOLD"; } else { if (_rnd < 70) then { _Behaviour = "AWARE"; } else { _Behaviour = "COMBAT"; }; _wptype = "MOVE"; _npc setCombatMode "YELLOW"; }; }; } else { if (( _dist <= (_closeenough + KRON_UPS_safedist))) then { _speedmode = "FULL"; _wpformation = "WEDGE"; _unitpos = if (_rnd < 90) then {"Middle"} else {"AUTO"}; _minreact = KRON_UPS_minreact; if ((_nomove=="NOMOVE" && _rnd < 75) && !_reinforcementsent) then { //Combate defensivo _Behaviour = "COMBAT"; //AWARE _wptype = "HOLD"; } else { //Movimiento con precaucin (ms rpido) _Behaviour = "AWARE"; _wptype = "MOVE"; }; } else { //In May distance of radio patrol act.. if (( _dist < KRON_UPS_sharedist )) then { //Platoon from the target must move fast and to the point _Behaviour = "AWARE"; _speedmode = "FULL"; _unitpos = if (_rnd < 60) then {"Middle"} else {"AUTO"}; _minreact = KRON_UPS_minreact * 2; if ((_nomove=="NOMOVE" && _rnd < 95) && !_reinforcementsent) then { _wptype = "HOLD"; _wpformation = "WEDGE"; } else { _wptype = "MOVE"; _wpformation = "WEDGE"; }; } else { //Platoon very far from the goal if not move nomove role _Behaviour = "SAFE"; _speedmode = "FULL"; _unitpos = "AUTO"; _minreact = KRON_UPS_minreact * 3; if (((_nomove=="NOMOVE") || (_nomove=="MOVE" && _rnd < 70)) && !_reinforcementsent) then { _wptype = "HOLD"; _wpformation = "WEDGE"; }else{ _wptype = "MOVE"; _wpformation = "FILE"; //COLUMN }; }; }; }; //Always keep the brackets fortified position if ( _fortify && random 100 < 99) then {_wptype = "HOLD"}; // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; //If leader is in vehicle will move in anyway if (vehicle _npc != _npc || !_isman) then { _wptype = "MOVE"; _Behaviour = "AWARE"; if ( _inheli ) then { _speedmode = "FULL"; _unitpos = "AUTO"; _targetPos = _AttackPos; }; }; //Establecemos el target KRON_targetsPos set [_grpid,_targetPos]; sleep 0.01; //If use statics are enabled leader searches for static weapons near. // Tanks enemies are contabiliced if ( KRON_UPS_useMines && _Mines > 0 ) then { _enemytanksnear = false; { if ( ("Tank" countType [_x] > 0 || "Wheeled_APC" countType [_x] >0 || "Tank" countType [vehicle _x] > 0 || "Wheeled_APC" countType [vehicle _x] >0 ) && alive _x && canMove _x && _npc distance _x <= _closeenough + KRON_UPS_safedist ) exitwith { _enemytanksnear = true; _enemytanknear = _x;}; } foreach _targets; //If use mines are enabled and enemy armors near and no friendly armor put mine. if ( _enemytanksnear && !isnull _enemytanknear && alive _enemytanknear ) then { _friendlytanksnear = false; { if (!( alive _x && canMove _x)) then {_friendlytanks = _friendlytanks - [_x]}; if (alive _x && canMove _x && _npc distance _x <= _closeenough + KRON_UPS_safedist ) exitwith { _friendlytanksnear = true;}; }foreach _friendlytanks; if (!_friendlytanksnear && random(100)<30 ) then { _dir1 = [_currPos,position _enemytanknear] call KRON_getDirPos; _mineposition = [position _npc,_dir1, 25] call MON_GetPos2D; _roads = _mineposition nearroads 50; if (count _roads > 0) then {_mineposition = position (_roads select 0);}; if ([_npc,_mineposition] call MON_CreateMine) then { _Mines = _Mines -1; if (KRON_UPS_Debug>0) then {player sidechat format["%1: %3 puting mine for %2",_grpidx,typeof _enemytanknear, side _npc]}; }; }; }; }; //Si es unidad de refuerzo siempre acosar al enemigo if (_reinforcementsent) then { _wptype="MOVE"; _newpos=true; _makenewtarget = false; }; if (_nofollow=="NOFOLLOW" && _wptype != "HOLD") then { _targetPos = [_targetPos,_centerpos,_rangeX,_rangeY,_areadir] call KRON_stayInside; _targetdist = [_currPos,_targetPos] call KRON_distancePosSqr; if ( _targetdist <= 1 ) then { _wptype="HOLD"; }; }; if (_wptype == "HOLD") then { _targetPos = _currPos; _targettext ="_currPos"; }; //Is updated with the latest value, changing the target _lastknown = _opfknowval; //If for whatever reason cancels the new position should make clear the parameters that go into pursuit if (!_newpos) then { //If the unit has decided to maintain position but is being attacked is being suppressed, should have the opportunity to react _newpos = _gothit; if (!_newpos) then { _targetPos=_lastpos; if (KRON_UPS_Debug>0) then {player sidechat format["%1 Mantaining orders %2",_grpidx,_nomove]}; }; }; if (KRON_UPS_Debug>=1) then { "avoid" setmarkerpos _avoidPos; "flank" setmarkerpos _flankPos; _destname setMarkerPos _targetPos; }; }; //END PURSUE sleep 0.1; }; //((_isSoldier) && ((count _enemies)>0) // ********************************************************************************************************************** // NO NEWS // ********************************************************************************************************************** if !(_newpos) then { // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; // calculate new distance // if we're waiting at a waypoint, no calculating necessary _currpos = getpos _npc; //Sets behaviour of squad if nearly changes of target if (_targetsnear) then{ if (( toUpper(_Behaviour) IN _safemode) && _isSoldier) then { _Behaviour = "AWARE"; _npc setBehaviour _Behaviour; }; }; //If in safe mode if find dead bodies change behaviour if ((toUpper(_Behaviour) IN _safemode) && _deadBodiesReact)then { _unitsin = [_npc,_buildingdist] call MON_deadbodies; if (count _unitsin > 0) then { if !_isSoldier then { _npc setSpeedMode "FULL"; } else { if ( random 100 < 75) then { _Behaviour = "AWARE"; } else { _Behaviour = "COMBAT"; }; _react = _react + 30; _npc setBehaviour _Behaviour; if (KRON_UPS_Debug>0) then {player sidechat format["%1 dead bodies found! set %2",_grpidx,_Behaviour, count _targets]}; }; }; }; //Stuck control if (!_nowp && alive _npc && canmove _npc && _wptype == "MOVE" && _timeontarget >= 60 && _lastcurrpos select 0 == _currpos select 0 && _lastcurrpos select 1 == _currpos select 1) then { [_npc] call MON_cancelstop; _makenewtarget = true; if (KRON_UPS_Debug>0) then {player sidechat format["%1 stucked, moving",_grpidx]}; }; _lastpos = _targetPos; _lastcurrpos = _currpos; //sets last currpos for avoiding stuk if (_waiting<0) then { //Gets distance to targetpos _targetdist = [_currPos,_targetPos] call KRON_distancePosSqr; //It assesses whether it has exceeded the maximum waiting time and the objective is already shot to return to the starting position. if (_fightmode!="walk") then { if (_timeontarget > KRON_UPS_alerttime && count _targets <= 0 && ( isNull (_target) || !alive (_target) || captive _target)) then { _pursue = false; _gothit = false; _targetdead = true; _fightmode = "walk"; _speedmode = _orgSpeed; _targetPos = _currPos; _reinforcementsent = false; _target = objnull; _fixedtargetPos = [0,0]; _Behaviour = _orgMode; _waiting = -1; _unitpos = "AUTO"; _wpformation = "WEDGE"; KRON_UPS_reinforcement = false; //there is no threat if (_rfid > 0 ) then { call (compile format ["KRON_UPS_reinforcement%1 = false;",_rfid]); }; {[_x,"AUTO"] spawn MON_setUnitPos;} foreach units _npc; _npc setBehaviour _orgMode; if (KRON_UPS_Debug>0) then {player sidechat format["%1 Without objectives, leaving combat mode",_grpidx]}; }; }; //if (KRON_UPS_Debug>0) then {player globalchat format["%1 _targetdist %2 atdist=%3 dist=%4",_grpidx, _targetdist, _area/8,_dist]}; // if not in combat and we're either close enough, seem to be stuck, or are getting damaged, so find a new target if (!_nowp && (!_gothit) && (!_swimming) && (_fightmode == "walk") && (( _targetdist <= (_area/4) || moveToFailed _npc) && (_timeontarget > KRON_UPS_maxwaiting))) then { _makenewtarget=true; _unitpos = "AUTO"; _Behaviour = _orgMode; }; // make new target if (_makenewtarget) then { _gothit = false; _react = 0; _lastreact = 0; _makenewtarget = false; _timeontarget = 0; _wptype = "MOVE"; if (format ["%1",_fixedtargetPos] !="[0,0]") then { _targetPos = _fixedtargetPos; _targettext ="Reinforcement"; } else { if ((_nomove=="NOMOVE") && (_timeontarget>KRON_UPS_alerttime)) then { if (KRON_UPS_Debug>0) then {player sidechat format["nomove: %1",_nomove]}; if (([_currPos,_orgPos] call KRON_distancePosSqr)<_closeenough) then { _newpos = false; _wptype = "HOLD"; _waiting = 9999; if (_fortify) then { _minreact = KRON_UPS_minreact * 3; _buildingdist = _buildingdist * 2; _wait = 3000; }; } else { _targetPos=_orgPos; _targettext ="_orgPos"; }; } else { //rStuckControl !R _rcurrPos = getpos _npc; if (_rlastPos select 0 == _rcurrPos select 0 && _rlastPos select 1 == _rcurrPos select 1) then { if (KRON_UPS_Debug>0) then {player sidechat format["%1 !RstuckControl try to move",_grpidx]}; if (vehicle _npc != _npc) then { _rstuckControl = _rstuckControl + 1; if (_rstuckControl > 1) then { _jumpers = crew (vehicle _npc); { _x spawn MON_doGetOut; sleep 0.5; } forEach _jumpers; } else { nul = [vehicle _npc] spawn MON_domove; } } else { nul = [_npc,25] spawn MON_domove; }; } else { _rstuckControl = 0; }; _rlastPos = _rcurrPos; // re-read marker position/size _centerpos = getMarkerPos _areamarker; _centerX = abs(_centerpos select 0); _centerY = abs(_centerpos select 1); _centerpos = [_centerX,_centerY]; _areasize = getMarkerSize _areamarker; _rangeX = _areasize select 0; _rangeY = _areasize select 1; _areadir = (markerDir _areamarker) * -1; // find a new target that's not too close to the current position _targetPos=_currPos; _targettext ="newTarget"; _tries=0; while {((([_currPos,_targetPos] call KRON_distancePosSqr) < _mindist)) && (_tries<50)} do { _tries=_tries+1; // generate new target position _targetPos = [_centerX,_centerY,_rangeX,_rangeY,_cosdir,_sindir,_areadir] call KRON_randomPos; _loop2=FALSE; // boat or plane // if (KRON_UPS_Debug>0) then {player sidechat format["%1, type: %2",_npc, typeOf _npc]}; sleep 4; // if (KRON_UPS_Debug>0) then {player sidechat format["%1 isplane",_isplane]}; sleep 4; if (_isplane || _isboat) then { // boat if (_isboat) then { _tries2=0; while {(!_loop2) && (_tries2 <50)} do { _tries2=_tries2+1; _targetPosTemp = [_centerX,_centerY,_rangeX,_rangeY,_cosdir,_sindir,_areadir] call KRON_randomPos; if (surfaceIsWater _targetPosTemp) then { _targetPos = _targetPosTemp; _loop2 = TRUE; // if (KRON_UPS_Debug>0) then {player sidechat format["%1 Boat just got new targetPos",_grpidx]}; }; sleep 0.05; }; // plane } else { _targetPos = [_centerX,_centerY,_rangeX,_rangeY,_cosdir,_sindir,_areadir] call KRON_randomPos; // if (KRON_UPS_Debug>0) then {player sidechat format["%1 Plane just got new targetPos",_grpidx]}; }; // man or car } else { // "_onroad" if _onroad then { _tries2=0; while {(!_loop2) && (_tries2 <100)} do { _tries2=_tries2+1; _targetPosTemp = [_centerX,_centerY,_rangeX,_rangeY,_cosdir,_sindir,_areadir] call KRON_randomPos; _roads = (_targetPosTemp nearRoads 50); if ((count _roads) > 0) then { _targetPosTemp = getpos (_roads select 0); _targetPos = _targetPosTemp; _loop2 = TRUE; // if (KRON_UPS_Debug>0) then {player sidechat format["%1 Onroad just got new targetPos",_grpidx]}; }; sleep 0.05; }; // any place on ground } else { _tries2=0; while {(!_loop2) && (_tries2 <100)} do { _tries2=_tries2+1; _targetPosTemp = [_centerX,_centerY,_rangeX,_rangeY,_cosdir,_sindir,_areadir] call KRON_randomPos; if (!surfaceIsWater _targetPosTemp) then { _targetPos = _targetPosTemp; _loop2 = TRUE; //if (KRON_UPS_Debug>0) then {player sidechat format["%1 Man just got new TP %2, %3",_grpidx,_targetPos,_tries2]}; }; sleep 0.05; }; }; }; }; }; }; sleep 0.05; // distance to target position _avoidPos = [0,0]; _flankPos = [0,0]; _attackPos = [0,0]; _frontPos = [0,0]; _fm=0; _newpos=true; }; }; }; // if in water, get right back out of it again if (surfaceIsWater _currPos) then { if (_isman && !_swimming) then { _drydist=999; // look around, to find a dry spot for [{_a=0}, {_a<=270}, {_a=_a+90}] do { _dp=[_currPos,30,_a] call KRON_relPos; if !(surfaceIsWater _dp) then {_targetPos=_dp}; }; _newpos=true; _swimming=true; }; } else { _swimming=false; }; sleep 0.5; // ********************************************************************************************************************** // NEWPOS: SE EJECUTA LA ORDEN DE MOVIMIENTO // ********************************************************************************************************************** // if (KRON_UPS_Debug>0) then {player sidechat format["%1 rea=%2 wai=%3 tim=%4 tg=%5 %6",_grpidx,_react,_waiting,_timeontarget,typeof _target,alive _target]}; if ((_waiting<=0) && _newpos) then { // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; _currPos = getpos _npc; _newpos = false; _waiting = -1; _swimming=false; _GetIn_NearestVehicles = false; //Gets distance to targetpos _targetdist = [_currPos,_targetPos] call KRON_distancePosSqr; //If gothit and not in vehicle if (_gothit && _npc == vehicle (_npc) && alive _npc ) then { //Unidad suprimida if ((random 100) <50) then { //if (KRON_UPS_Debug>0) then {player sidechat format["%1 supressed by fire",_grpidx]}; //The unit is deleted, delete the current waypoint _supressed = true; _targetPos = _currPos; _targettext ="SUPRESSED"; _wptype = "HOLD"; //Prone { //Motion vanishes if ( _x iskindof "Man" && canmove _x && alive _x) then { if ((random 100)<40 || (primaryWeapon _x ) in KRON_UPS_MG_WEAPONS) then {[_x,"DOWN",20] spawn MON_setUnitPosTime; }else{ [_x,"Middle"] spawn MON_setUnitPos;}; }; sleep 0.01; } foreach units _npc; //All Retreat!! if ((random 100)<=60 && morale _npc < 0) then { _targetPos = _avoidPos;_targettext = "_avoidPos"; _wptype = "MOVE"; _flankdir = 0; if (!_newpos && KRON_UPS_Debug>0) then {player sidechat format["%1 All Retreat!!!",_grpidx]}; }; }; if ((random 100) < 15 && _targettext == "_avoidPos" && !_nosmoke) then { [_npc,_target] call MON_throw_grenade; }; sleep 0.5; }; // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; //If you have not been removed progress continue if (alive _npc) then { _currPos = getpos _npc; if ( _wptype == "MOVE") then { //Try to avoid stucked soldiers out of vehicles if ( _npc == vehicle _npc) then { { if (alive _x && canmove _x) then { //[_x] spawn MON_cancelstop; [_x] dofollow _npc; }; } foreach _members; }; sleep 0.05; //Search for vehicle if ((!_gothit && _targetdist >= ( KRON_UPS_searchVehicledist )) && _isSoldier && !_noveh) then { if ( vehicle _npc == _npc && _dist > _closeenough ) then { _unitsIn = [_grpid,_npc] call MON_GetIn_NearestVehicles; if ( count _unitsIn > 0) then { _GetIn_NearestVehicles = true; _speedmode = "FULL"; _unitpos = "AUTO"; _npc setbehaviour "SAFE"; _npc setspeedmode "FULL"; _timeout = time + 60; _vehicle = objnull; _vehicles = []; { waituntil {vehicle _x != _x || !canmove _x || !canstand _x || !alive _x || time > _timeout || movetofailed _x}; if ( vehicle _x != _x && (isnull _vehicle || _vehicle != vehicle _x)) then { _vehicle = vehicle _x ; _vehicles = _vehicles + [_vehicle] }; }foreach _unitsIn; sleep 1; { _vehicle = _x; _cargo = _vehicle getvariable ("UPSMON_cargo"); if ( isNil("_cargo")) then {_cargo = [];}; _cargo ordergetin true; //Wait for other groups to getin { waituntil {vehicle _x != _x || !canmove _x || !canstand _x || !alive _x || time > _timeout || movetofailed _x}; } foreach _cargo; //Starts gunner control nul = [_vehicle] spawn MON_Gunnercontrol; sleep 0.1; // nul = [_x,30] spawn MON_domove; //!R just little kick to make sure it moves } foreach _vehicles; //Cheks if leader has dead until wait _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc) exitwith {_exit=true;}; if ( "Air" countType [vehicle (_npc)]>0) then { _rnd = (random 2) * 0.1; _flyInHeight = round(KRON_UPS_flyInHeight * (0.9 + _rnd)); vehicle _npc flyInHeight _flyInHeight; //If you just enter the helicopter landing site is defined if (_GetIn_NearestVehicles) then { _GetOutDist = round(((KRON_UPS_paradropdist ) * (random 100) / 100 ) + 150); [vehicle _npc, _TargetPos, _GetOutDist, 90] spawn MON_doParadrop; // org _flyInHeight sleep 1; //Execute control stuck for helys [vehicle _npc] spawn MON_HeliStuckcontrol; if (KRON_UPS_Debug>0 ) then {player sidechat format["%1: flyingheiht=%2 paradrop at dist=%3",_grpidx, _flyInHeight, _GetOutDist,_rnd]}; }; }; }; }; }; }; sleep 0.05; //Get in combat vehicles if (!_gothit && !_GetIn_NearestVehicles && _fightmode != "walk" && _isSoldier) then { _dist2 = _dist / 4; if ( _dist2 <= 100 ) then { _unitsIn = []; _unitsIn = [_grpid,_npc,_dist2,false] call MON_GetIn_NearestCombat; _timeout = time + (_dist2/2); if ( count _unitsIn > 0) then { if (KRON_UPS_Debug>0 ) then {player sidechat format["%1: Geting in combat vehicle targetdist=%2",_grpidx,_npc distance _target]}; _npc setbehaviour "SAFE"; _npc setspeedmode "FULL"; { waituntil {vehicle _x != _x || !canmove _x || !canstand _x || !alive _x || time > _timeout || movetofailed _x}; }foreach _unitsIn; // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; //Return to combat mode _npc setbehaviour _Behaviour; _timeout = time + 150; { waituntil {vehicle _x != _x || !canmove _x || !alive _x || time > _timeout || movetofailed _x}; }foreach _unitsIn; { if ( vehicle _x iskindof "Air") then { //moving hely for avoiding stuck if (driver vehicle _x == _x) then { _vehicle = vehicle (_x); nul = [_vehicle,1000] spawn MON_domove; //Execute control stuck for helys [_vehicle] spawn MON_HeliStuckcontrol; if (KRON_UPS_Debug>0 ) then {player sidechat format["%1: Geting in combat vehicle after",_grpidx,_npc distance _target]}; }; }; if (driver vehicle _x == _x) then { //Starts gunner control nul = [vehicle _x] spawn MON_Gunnercontrol; }; sleep 0.01; }foreach _unitsIn; }; }; }; sleep 0.05; // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; //If use statics are enabled leader searches for static weapons near. if ((KRON_UPS_useStatics && (vehicle _npc == _npc) && !_GetIn_NearestVehicles && _isSoldier ) && ((_wptype == "HOLD" && (random 100) < 80) || (_wptype != "HOLD" && (random 100) < 60))) then { _unitsIn = [_grpid,_npc,_buildingdist] call MON_GetIn_NearestStatic; if ( count _unitsIn > 0) then { _npc setbehaviour "SAFE"; _npc setspeedmode "FULL"; _timeout = time + 60; { waituntil {vehicle _x != _x || !canmove _x || !alive _x || time > _timeout || movetofailed _x}; }foreach _unitsIn; }; sleep 0.05; }; // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; //Buildings usage. if (!_GetIn_NearestVehicles) then { if ( _wptype == "HOLD" && vehicle _npc == _npc && ( _fortify ||(random 100) < 60) ) then { //if (KRON_UPS_Debug>0) then {player sidechat format["%1: Moving to nearest buildings",_grpidx]}; [_npc,_buildingdist,false,_wait] spawn MON_moveNearestBuildings; } else { //If we are close enough patrol in buildings for searching enemies if ((( _wptype != "HOLD" && vehicle _npc == _npc && (random 100) < 90 ) && _npc == vehicle _npc && _dist <= ( _closeenough ))) then { [_npc,_buildingdist,true] spawn MON_moveNearestBuildings; }; }; sleep 0.05; }; // did the leader die? _npc = [_npc,_members] call MON_getleader; if (!alive _npc || !canmove _npc || isplayer _npc ) exitwith {_exit=true;}; if (isnull _grp || _grp != group _npc) then { _grp = group _npc; }; _index = currentWaypoint _grp; //If the waypoing is different than it has or is different from what we set hold IF (_wptype != "HOLD" || _lastwptype != _wptype) then { //Has not completed or are waypoints //_index = 1 Waypoint by default, not use. if ( _index == 1 || _index > count waypoints _grp && !isnull _grp) then { _wp = _grp addWaypoint [_targetPos, 0]; _index = _wp select 1; // if (KRON_UPS_Debug>0) then {player sidechat format["%1: created wp %2 index %3",_grpidx,_wp, _index]}; } else { _wp = [_grp,_index]; // if (KRON_UPS_Debug>0) then {player globalchat format["%1: not created wp %2 index %3 %4",_grpidx,_wp, _index,_targetPos]}; }; }; // _wp = [_grp,_index]; // if iscar the run fast if targetpost is far. if ((!_gothit && _targetdist >= (_closeenough * 1.5)) && (vehicle _npc != _npc)) then { _speedmode = "FULL"; } else { // _speedmode = _orgSpeed; }; //We define the parameters of the new waypoint _wp setWaypointType _wptype; _wp setWaypointPosition [_targetPos, 0]; _wp setWaypointFormation _wpformation; _wp setWaypointSpeed _speedmode; _lastwptype = _wptype; //If you have more than 1 waypoints delete the obsolete { if ( _x select 1 < _index ) then { deleteWaypoint _x; }; sleep 0.05; } foreach waypoints _grp; //if (KRON_UPS_Debug>0) then {diag_log format["%1: waypoints %2 %3 %4 %5",_grpidx,count waypoints _grp, _grp, group _npc, group (leader _npc)]}; //Sets behaviour if (toupper(behaviour _npc) != toupper (_Behaviour)) then { _npc setBehaviour _Behaviour; }; //Refresh position vector KRON_targetsPos set [_grpid,_targetPos]; //Although there are predefined type of movement to a small percentage will vary on an individual level { if ((random 100)<95 && _x == vehicle _x && _x iskindof "Man" && !((primaryWeapon _x ) in KRON_UPS_MG_WEAPONS)) then { nul = [_x,_unitpos] spawn MON_setUnitPos; }else{ nul = [_x,"AUTO"] spawn MON_setUnitPos; }; } foreach units _npc; //If closeenough will leave some soldiers doing supress fire if (_gothit || _dist <= _closeenough) then { { if (!canStand _x || ((primaryWeapon _x ) in KRON_UPS_MG_WEAPONS) || (vehicle _x == _x && _x iskindof "Man" && (random 100) < 50) ) then { _x suppressFor 15; }; } foreach units _npc; }; }; _gothit = false; //if (KRON_UPS_Debug>0) then {player sidechat format["%1: %2 %3 %4 %5 %6 %7 %8 %9 %10",_grpidx, _wptype, _targettext,_dist, _speedmode, _unitpos, _Behaviour, _wpformation,_fightmode,count waypoints _grp];}; }; if (_track=="TRACK") then { switch (_fm) do { case 1: {_destname setmarkerSize [.4,.4]}; case 2: {_destname setmarkerSize [.6,.6]}; default {_destname setmarkerSize [.5,.5]}; }; _destname setMarkerPos _targetPos; }; //If in hely calculations must done faster if (_isplane || _inheli) then { _currcycle = _cycle/2; _flyInHeight = KRON_UPS_flyInHeight; vehicle _npc flyInHeight _flyInHeight; }; if ((_exit) || (isNil("_npc"))) then { _loop=false; } else { // slowly increase the cycle duration after an incident sleep _currcycle; }; }; //while {_loop} if (KRON_UPS_Debug>0) then {hint format["%1 exiting mainloop",_grpidx]}; //Limpiamos variables globales de este grupo KRON_targetsPos set [_grpid,[0,0]]; KRON_NPCs set [_grpid,objnull]; KRON_UPS_Exited=KRON_UPS_Exited+1; if (_track=="TRACK") then { //_trackername setMarkerType "Dot"; _trackername setMarkerType "Empty"; _destname setMarkerType "Empty"; }; //Gets dist from orinal pos if (!isnull _target) then { _dist = ([_orgpos,position _target] call KRON_distancePosSqr); }; // if (KRON_UPS_Debug>0) then {player sidechat format["%1 _dist=%2 _closeenough=%3",_grpidx,_dist,_closeenough]}; //does respawn of group ===================================================================================================== if (_respawn && _respawnmax > 0 && !_surrended && _dist > _closeenough) then { if (KRON_UPS_Debug>0) then {player sidechat format["%1 doing respawn",_grpidx]}; // copy group leader _unittype = _membertypes select 0; // make the clones civilians // use random Civilian models for single unit groups if ((_unittype=="Civilian") && (count _members==1)) then {_rnd=1+round(random 20); if (_rnd>1) then {_unittype=format["Civilian%1",_rnd]}}; _grp=createGroup _side; _lead = _grp createUnit [_unittype, _orgpos, [], 0, "form"]; _lead setVehicleInit _initstr; [_lead] join _grp; _grp selectLeader _lead; // copy team members (skip the leader) _i=0; { _i=_i+1; if (_i>1) then { _newunit = _grp createUnit [_x, _orgpos, [],0,"form"]; _newunit setVehicleInit _initstr; [_newunit] join _grp; sleep 0.1; }; } foreach _membertypes; if ( _lead == vehicle _lead) then { { if (alive _x && canmove _x) then { [_x] dofollow _lead; }; sleep 0.1; } foreach units _lead; }; { _targetpos = _orgpos findEmptyPosition [10, 200]; sleep .4; if (count _targetpos <= 0) then {_targetpos = _orgpos}; //if (KRON_UPS_Debug>0) then {player globalchat format["%1 create vehicle _newpos %2 ",_x,_targetpos]}; _newunit = _x createvehicle (_targetpos); } foreach _vehicletypes; //if (KRON_UPS_Debug>0) then {player globalchat format["%1 _vehicletypes: %2",_grpidx, _vehicletypes]}; //Set new parameters if (!_spawned) then { _UCthis = _UCthis + ["SPAWNED"]; if ((count _vehicletypes) > 0) then { _UCthis = _UCthis + ["VEHTYPE:"] + ["dummyveh"]; }; }; _UCthis set [0,_lead]; _respawnmax = _respawnmax - 1; _UCthis = ["RESPAWN:",_respawnmax,_UCthis] call KRON_UPSsetArg; sleep 0.1; _UCthis = ["VEHTYPE:",_vehicletypes,_UCthis] call KRON_UPSsetArg; // if (KRON_UPS_Debug>0) then {player globalchat format["%1 _UCthis: %2",_grpidx,_UCthis]}; //Exec UPSMON script _UCthis SPAWN UPSMON; sleep 0.1; processInitCommands; }; _friends=nil; _enemies=nil; _enemytanks = nil; _friendlytanks = nil; _roads = nil; _targets = nil; _members = nil; _membertypes = nil; _UCthis = nil; if (!alive _npc) then { deleteGroup _grp; };private ["_officer","_player"]; _officer = _this select 0; _player = _this select 1; [_officer] joinSilent _player; _officer enableAI "MOVE"; if (true) exitWith {};private["_pos","_grp","_grpskill","_men","_bldgPos","_i","_j","_nearbldgs"]; if !(isServer) exitWith{}; _pos = _this select 0; _bldgPos = []; _i = 0; _j = 0; _nearbldgs = nearestObjects [_pos, ["Building"], 300]; { private["_y"]; _y = _x buildingPos _i; while {format["%1", _y] != "[0,0,0]"} do { _bldgPos set [_j, _y]; _i = _i + 1; _j = _j + 1; _y = _x buildingPos _i; sleep 0.01; }; _i = 0; } forEach _nearbldgs; _j = 10; _i = 0; if ((count _bldgPos) < 10) then {_j = (count _bldgPos)}; while {_i < _j} do { _grp = createGroup WEST; RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _grp]; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); _men = objNull; _men = _grp createUnit [RIPPATROLMENS select floor(random count RIPPATROLMENS), _pos, [], 100, "NONE"]; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; _men setCombatMode "YELLOW"; _men setDir (random 360); _men setPos (_bldgPos select floor(random count _bldgPos)); _i = _i + 1; sleep 0.2; {_men addMagazine "ACE_Epinephrine"} forEach [0,0] ; {_men addMagazine "ACE_Morphine"} forEach [0,0] ; if ((typeOf _men) == "CDF_Soldier_Medic") then { {_men addMagazine "ACE_Medkit"} forEach [0,0] ; }; };private ["_result","_pos","_range","_plr"]; _range = _this select 1; _result = 0; { if (!isNil _x) then { _plr = call compile _x; _flags = nearestObjects [vehicle _plr, ["FlagCarrierINS"], 800]; if (!isNull _plr) then { if (((count (_flags)) == 0) && (alive _plr)) then {_result = _result + 1;}; }; }; } forEach ["ins1","ins2","ins3","ins4","ins5","ins6","ins7","ins8","ins9","merc1","merc2","merc3","merc4","merc5","merc6","merc7","merc8","merc9","gue1","gue2","gue3","gue4","gue5","gue6","gue7","gue8","gue9","gue10","gue11","gue12","civ"]; _resultRIPCITYNAMES = nearestLocations [RIPCENTERMAP, ["NameCityCapital","NameCity", "NameVillage"],8000]; _NearBaseCity = nearestLocations [(getMarkerPos "Base"), ["NameCityCapital","NameCity", "NameVillage"],1500]; RIPCITYNAMES = RIPCITYNAMES - _NearBaseCity; if !(isServer) exitWith {}; RIPAISPAWNED = false; SpawnAI = { private ["_town","_man","_i", "_t", "_townUnits","_grpskill", "_trg", "townClear", "_cityobject", "_marker", "_sizevec", "_isFlat", "_units", "_strength", "_side", "_vehgrp", "_arrayofvehicle", "_grp"]; _town = _this select 0; RIPAISPAWNED = true; _townUnits = []; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); sleep 5; for [{_i=0},{_i<5},{_i=_i+1}] do { _grp = format ["_grp%1", _i]; _grp = CreateGroup West; _pos = [(position _town), 300] call War_GetRandomPoint; _strength = 2 + round(random 6); _grpskill = RIPAIDEFAULTSKILL + (random 0.2); _siderandom = round(random 100); _side = 0; if (_siderandom < 70) then {_side = 0;} else {_side = 1;}; switch (_side) do { case 0: { _man = _grp createunit ["CDF_Soldier_TL",_pos,[],10,"None"]; [_man] join _grp; _man setRank "LIEUTENANT"; _townUnits set [count _townUnits, _man]; }; case 1: { _man = _grp createunit ["CZ_Special_Forces_TL_DES_EP1",_pos,[],10,"None"]; [_man] join _grp; _man setRank "LIEUTENANT"; _townUnits set [count _townUnits, _man]; }; }; _t = 0; while {_t < _strength} do { switch (_side) do { case 0: { _man = _grp createUnit [RIPPATROLMENS select floor(random count RIPPATROLMENS), _pos, [], 10, "NONE"]; }; case 1: { _man = _grp createUnit [RIPPATROLMENS_PMC select floor(random count RIPPATROLMENS_PMC), _pos, [], 10, "NONE"]; }; }; _townUnits set [count _townUnits, _man]; [_man] JoinSilent _grp; _man setDir (random 360); {_man addMagazine "ACE_Epinephrine"} forEach [0,0] ; {_man addMagazine "ACE_Morphine"} forEach [0,0] ; if ((typeOf _man) == "CDF_Soldier_Medic") then { {_man addMagazine "ACE_Medkit"} forEach [0,0] ; }; _t = _t + 1; sleep 0.1; }; if (_strength > 4) then { switch (_side) do { case 0: { _arrayofvehicle = [_pos, 180, (RIPPATROLLIGHTVEHICLES select floor(random count RIPPATROLLIGHTVEHICLES)), _grp] call bis_fnc_spawnvehicle; _vehicle = _arrayofvehicle select 0; _townUnits set [count _townUnits, _vehicle]; clearWeaponCargo _vehicle; _units = _arrayofvehicle select 1; _townUnits = _townUnits + _units; _sizevec = sizeOf (typeOf _vehicle); _isFlat = (position _vehicle) isFlatEmpty [_sizevec / 2, 150, 0.7, _sizevec, 0, false, _vehicle]; if (count _isFlat > 1) then { _pos = _isFlat; _pos set [2, 0]; }; _vehicle setPos _pos; }; case 1: { _arrayofvehicle = [_pos, 180, (RIPPATROLLIGHTVEHICLES_PMC select floor(random count RIPPATROLLIGHTVEHICLES_PMC)), _grp] call bis_fnc_spawnvehicle; _vehicle = _arrayofvehicle select 0; _townUnits set [count _townUnits, _vehicle]; clearWeaponCargo _vehicle; _units = _arrayofvehicle select 1; _townUnits = _townUnits + _units; _sizevec = sizeOf (typeOf _vehicle); _isFlat = (position _vehicle) isFlatEmpty [_sizevec / 2, 150, 0.7, _sizevec, 0, false, _vehicle]; if (count _isFlat > 1) then { _pos = _isFlat; _pos set [2, 0]; }; _vehicle setPos _pos; }; }; }; [_grp, (getPos _town), 300] call BIS_fnc_taskPatrol; (leader _grp) setSkill _grpskill; }; _grp setCombatMode "RED"; _grp setBehaviour "SAFE"; townClear = { private ["_town", "_townpos", "_cityobject"]; _townpos = getpos (_this select 0); _cityobject = createVehicle ["FlagCarrierINS", _townpos, [], 0, "NONE"]; _townlist = nearestLocations [_townpos, ["NameCityCapital","NameCity","NameVillage"], 100]; _townText = text (_townlist select 0); hint format [localize "STR_CITYCLEAR", _townText]; deleteVehicle (_this select 0); }; waituntil {!isnil "bis_fnc_init"}; sleep 5; _trg = createTrigger["EmptyDetector",getPos _town]; _trg setTriggerArea[300,300,0,false]; _trg setTriggerActivation["WEST","PRESENT",false]; _trg setTriggerStatements["(west countSide thislist < 1) && RIPAISPAWNED", "[thisTrigger, _town] call townClear; deleteVehicle thisTrigger;", ""]; while {RIPAISPAWNED} do { if (([(position _town), 800] call War_func_NearestPlayers) < 1) then {RIPAISPAWNED = false;}; sleep 1; }; sleep 5; // Игроки покинули зону RIPAISPAWNED = false; {hideBody _x; deleteVehicle _x;} forEach _townUnits; deleteVehicle _trg; deleteGroup _townGroup; }; while {true} do { if !(RIPAISPAWNED) then { if (([800] call War_func_CheckFlag) > 0) then { { if (([_x, 800] call War_func_NearestPlayers) > 0) then {[_x] spawn SpawnAI;}; } forEach RIPCITYNAMES; }; }; sleep 1; };private ["_STime"]; _STime = time; while {true} do { if (time - _STime > CLEANUP) then { { if (([(getPosATL _x), 500] call War_func_NearestPlayers) < 1) then { hideBody _x;deleteVehicle _x; }; sleep 0.001; } forEach allDead; {if((count units _x) == 0) then {deleteGroup _x;};sleep 0.001;} forEach allGroups; _STime = time; }; sleep 30; }; //by RIP private ["_PPGasEff","_object","_distance","_pos"]; if (isDedicated) exitWith {}; _object = Server getVariable "RIPMISSIONOBJECT"; Player setVariable ["ACE_Identity", "ACE_Original_Identity"]; _pos = getPos _object; _distance = Server getVariable "RIPCONTAMINATION"; while {(Server getVariable "RIPMISSIONCREATED")} do { if ((vehicle Player == Player) && ((Player getVariable "ACE_Identity") != "ACE_GlassesGasMask_US") && ((Player distance _pos) < _distance)) then { playSound "Cough"; _PPGasEff = ppEffectCreate ["colorCorrections", 1503]; _PPGasEff ppEffectEnable true; _PPGasEff ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 0]]; _PPGasEff ppEffectCommit 8; sleep 8; _PPGasEff ppEffectAdjust [0.1, 0, 0, [1, 1, 1, 0], [1, 1, 1, 0.0], [1, 1, 1, 1.0]]; _PPGasEff ppEffectCommit 15; sleep 17; _PPGasEff ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 0]]; _PPGasEff ppEffectCommit 15; titleText [" ", "Black Out"]; sleep 5; titleText [" ", "Black In"]; titleFadeOut 5; ppEffectDestroy _PPGasEff; Player setDamage (getDammage Player) + 0.1; }; sleep 5; }; //by RIP private["_startpos","_destination","_grpskill","_typeplane","_radius","_PatrolUnits","_PatrolVeh","_arrayofvehicle","_vehicle","_units","_mode","_formation"]; if(!isServer) exitWith {}; _RIPAVIAPATRLOVEHICLES = ["ACE_Mi24_V_FAB250_CDF","Mi171Sh_CZ_EP1","Mi17_CDF","Mi171Sh_CZ_EP1","Mi17_CDF","Mi171Sh_CZ_EP1","Mi17_CDF","Mi171Sh_CZ_EP1","Mi17_CDF"]; _radius = _this select 0; _destination = []; _startpos = []; waituntil {!isnil "bis_fnc_init"}; sleep 600; while {true} do { _PatrolUnits = []; _PatrolVeh = []; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); _PatrolGrp = createGroup West; _typeplane = _RIPAVIAPATRLOVEHICLES call BIS_fnc_selectRandom; _startpos = [RIPCENTERMAP, _radius] call War_GetRandomPointCircleOuter; _startpos set [2,200]; _dir = round(random 360); { _arrayofvehicle = [_startpos, _dir, _typeplane, _PatrolGrp] call bis_fnc_spawnvehicle; _vehicle = _arrayofvehicle select 0; _vehicle setDir _dir; _PatrolVeh set [count _PatrolVeh, _vehicle]; _units = _arrayofvehicle select 1; _PatrolUnits = _PatrolUnits + _units; _startpos = [(_startpos select 0) - 20*sin _dir, (_startpos select 1) - 20*cos _dir, (_startpos select 2)]; } forEach [0,1]; (leader _PatrolGrp) setSkill _grpskill; _destination = [RIPCENTERMAP, _radius] call War_GetRandomPointCircleOuter; _wp = _PatrolGrp addWayPoint [_destination, 0]; _wp setWaypointType "SAD"; while {canMove (_PatrolVeh select 0) || canMove (_PatrolVeh select 1)} do { _destination = [RIPCENTERMAP, _radius] call War_GetRandomPointCircleOuter; while {_startpos distance _destination < 3500} do { _destination = [RIPCENTERMAP, _radius] call War_GetRandomPointCircleOuter; sleep 0.01; }; _startpos = _destination; _mode = ["YELLOW", "RED"] call BIS_fnc_selectRandom; _formation = ["WEDGE", "VEE","DIAMOND"] call BIS_fnc_selectRandom; _PatrolGrp setCombatMode _mode; _PatrolGrp setFormation _formation; _PatrolGrp setBehaviour "AWARE"; _PatrolGrp setSpeedMode "NORMAL"; [_PatrolGrp, 1] setWaypointPosition [_destination, 0]; while {((leader _PatrolGrp) distance _destination > 1800) && (canMove (_PatrolVeh select 0) || canMove (_PatrolVeh select 1)) || ((leader _PatrolGrp) distance Flag_Base_RU < 2000)} do { sleep 5; }; }; sleep AIRPATROLRESPAWNDELAY; //{if !(isPlayer (driver _x)) then {deleteVehicle _x;}} forEach _PatrolVeh; }; private ["_blockpostposition", "_blockpostdir", "_script_handler","_randomveh", "_random_point", "_randomcreate"]; if !(isServer) exitWith {}; blockpostposition = getPosATL (_this select 0); blockpostdir = getDir (_this select 0); _randomcreate = round(random 100); if (_randomcreate > BLOCKPOSTRANDOM) exitWith {}; script_handler = ["blockpost", blockpostdir, blockpostposition] execVM "scripts\server\objectMapper.sqf"; waitUntil {scriptDone script_handler}; _random_point= []; for [{_i=0},{_i<=RIPAICOUNT},{_i=_i+1}] do { _random_point = [_blockpostposition, 20] call War_GetRandomPoint; [_random_point] spawn War_func_CreateInfPatrolGroup; sleep 0.5; }; _random_point = [blockpostposition, 50] call War_GetRandomPoint; _randomveh = round(random 1); switch (_randomveh) do { case 0: { [_random_point] spawn War_func_CreateHardVehGroupBlock; }; case 1: { [_random_point] spawn War_func_CreateLightVehGroupBlock; }; }; [blockpostposition] spawn War_func_CreateStaticBlock; if (true) exitwith {}; //by RIP private ["_grpskill","_PatrolGrp","_pos","_dir","_PatrolUnits","_PatrolVeh","_arrayofvehicle","_vehicle","_units","_upshandle","_list", "_randomcreate"]; if(!isServer) exitWith{}; waituntil {!isnil "bis_fnc_init"}; _pos = getMarkerPos (_this select 0); _dir = markerDir (_this select 0); _area = (_this select 1); while {true} do { _randomcreate = round(random 100); if (_randomcreate < PATROLRANDOM) then { _PatrolUnits = []; _PatrolVeh = []; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); _list = _pos nearEntities [["Man","Car","Tank"],500]; while {(east countSide _list)>0} do { sleep 5; _list = _pos nearEntities [["Man","Car","Tank"],500]; }; _PatrolGrp = createGroup West; { _arrayofvehicle = [_pos, _dir, (RIPPATROLGROUNDVEHICLES select floor(random count RIPPATROLGROUNDVEHICLES)), _PatrolGrp] call bis_fnc_spawnvehicle; _vehicle = _arrayofvehicle select 0; _vehicle setDir _dir; clearWeaponCargoGlobal _vehicle; clearMagazineCargoGlobal _vehicle; if ((typeOf _vehicle) == "UAZ_CDF") then { _vehicle addweaponcargoglobal ["AK_74", round(random 10)]; _vehicle addmagazinecargoglobal ["30Rnd_545x39_AK", round(random 20)]; _vehicle addweaponcargoglobal ["RPG18", round(random 5)]; }; if ((typeOf _vehicle) == "Ural_CDF") then { _vehicle addweaponcargoglobal ["AK_74", (10 + round(random 30))]; _vehicle addweaponcargoglobal ["AK_74_GL", (3 + round(random 10))]; _vehicle addmagazinecargoglobal ["30Rnd_545x39_AK", (10 + round(random 50))]; _vehicle addmagazinecargoglobal ["1Rnd_HE_GP25", (10 + round(random 10))]; _vehicle addweaponcargoglobal ["PK", (5 + round(random 5))]; _vehicle addmagazinecargoglobal ["100Rnd_762x54_PK", (10 + round(random 20))]; _vehicle addweaponcargoglobal ["RPG18", (10 + round(random 20))]; }; if ((typeOf _vehicle) == "UralReammo_CDF") then { _vehicle addweaponcargoglobal ["AK_74", (10 + round(random 10))]; _vehicle addweaponcargoglobal ["RPK_74", (10 + round(random 10))]; _vehicle addweaponcargoglobal ["AK_74_GL", (10 + round(random 10))]; _vehicle addweaponcargoglobal ["AKS_74", (10 + round(random 10))]; _vehicle addweaponcargoglobal ["AKS_74_NSPU", round(random 15)]; _vehicle addweaponcargoglobal ["AKS_74_pso", round(random 15)]; _vehicle addweaponcargoglobal ["AK_47_M", (10 + round(random 40))]; _vehicle addweaponcargoglobal ["RPG18", (10 + round(random 30))]; _vehicle addmagazinecargoglobal ["30Rnd_762x39_AK47", (30 + round(random 50))]; _vehicle addmagazinecargoglobal ["30Rnd_545x39_AK", (30 + round(random 50))]; _vehicle addmagazinecargoglobal ["1Rnd_HE_GP25", (30 + round(random 50))]; _vehicle addmagazinecargoglobal ["ACE_45Rnd_545x39_S_AK", (30 + round(random 50))]; _vehicle addmagazinecargoglobal ["30Rnd_762x39_AK47", (30 + round(random 50))]; _vehicle addweaponcargoglobal ["RPG7V", (5 + round(random 5))]; _vehicle addmagazinecargoglobal ["PG7VL", (10 + round(random 15))]; _vehicle addweaponcargoglobal ["PK", (5 + round(random 10))]; _vehicle addmagazinecargoglobal ["100Rnd_762x54_PK", (10 + round(random 20))]; _vehicle addweaponcargoglobal ["SVD", (5 + round(random 10))]; _vehicle addmagazinecargoglobal ["10Rnd_762x54_SVD", (10 + round(random 20))]; }; _PatrolVeh set [count _PatrolVeh, _vehicle]; _units = _arrayofvehicle select 1; _PatrolUnits = _PatrolUnits + _units; _pos = [(_pos select 0) - 10*sin _dir, (_pos select 1) - 10*cos _dir]; } forEach [0,1,2,3]; (leader _PatrolGrp) setSkill _grpskill; _upshandle = [(leader _PatrolGrp),_area,"onroad","nosmoke","nowait","spawned"] execVM "scripts\server\upsmon.sqf"; while {canMove (_PatrolVeh select 0) || canMove (_PatrolVeh select 1)} do {sleep 10;}; sleep GROUNDPATROLRESPAWNDELAY; terminate _upshandle; {hideBody _x; deleteVehicle _x;} forEach _PatrolUnits; //{if !(isPlayer (driver _x)) then {deleteVehicle _x;}} forEach _PatrolVeh; deleteGroup _PatrolGrp; }; sleep GROUNDPATROLRESPAWNDELAY; };//by RIP private["_arrayofvehicle","_vehicle","_units","_grp","_grpskill","_startpos","_sizevec","_isFlat"]; if(!isServer) exitWith{}; _startpos = _this select 0; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); { waituntil {!isnil "bis_fnc_init"}; _arrayofvehicle = [_startpos, 180, (RIPPATROLHARDVEHICLES select floor(random count RIPPATROLHARDVEHICLES)), West] call bis_fnc_spawnvehicle; _vehicle = _arrayofvehicle select 0; clearWeaponCargo _vehicle; RIPMISSIONGUARDVEHICLES set [count RIPMISSIONGUARDVEHICLES, _vehicle]; _sizevec = sizeOf (typeOf _vehicle); _isFlat = (position _vehicle) isFlatEmpty [_sizevec / 2, 150, 0.7, _sizevec, 0, false, _vehicle]; if (count _isFlat > 1) then { _startpos = _isFlat; _startpos set [2, 0]; }; _vehicle setPos _startpos; _grp = _arrayofvehicle select 2; RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _grp]; _units = _arrayofvehicle select 1; RIPMISSIONGUARDUNITS = RIPMISSIONGUARDUNITS + _units; (leader _grp) setSkill _grpskill; } forEach [0]; sleep 1; if (true) exitWith {}; //by RIP private["_arrayofvehicle","_vehicle","_units","_grp","_grpskill","_startpos","_sizevec","_isFlat"]; if(!isServer) exitWith{}; _startpos = _this select 0; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); { waituntil {!isnil "bis_fnc_init"}; _arrayofvehicle = [_startpos, 180, (RIPPATROLHARDVEHICLES select floor(random count RIPPATROLHARDVEHICLES)), West] call bis_fnc_spawnvehicle; _vehicle = _arrayofvehicle select 0; clearWeaponCargo _vehicle; RIPBLOCKGUARDVEHICLES set [count RIPBLOCKGUARDVEHICLES, _vehicle]; _sizevec = sizeOf (typeOf _vehicle); _isFlat = (position _vehicle) isFlatEmpty [_sizevec / 2, 150, 0.7, _sizevec, 0, false, _vehicle]; if (count _isFlat > 1) then { _startpos = _isFlat; _startpos set [2, 0]; }; _vehicle setPos _startpos; _grp = _arrayofvehicle select 2; RIPBLOCKGUARDGROUPS set [count RIPBLOCKGUARDGROUPS, _grp]; _units = _arrayofvehicle select 1; RIPBLOCKGUARDUNITS = RIPBLOCKGUARDUNITS + _units; (leader _grp) setSkill _grpskill; } forEach [0]; sleep 1; if (true) exitWith {}; /* [position this, 200] execVM "War_func_CreateInfGroup.sqf";======================================================================================================================= */ if(!isServer) exitWith{}; private["_pos","_group","_groupskill","_men","_strength","_i"]; _pos = _this select 0; waitUntil {!isNil "bis_fnc_init"}; _group = createGroup WEST; RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _group]; _groupskill = RIPAIDEFAULTSKILL + (random 0.2); _strength = 2 + round(random 3); _siderandom = round(random 100); _side = 0; if (_siderandom < 70) then {_side = 0;} else {_side = 1;}; switch (_side) do { case 0: { _men = _group createunit ["CDF_Soldier_TL",_pos,[],10,"None"]; [_men] join _group; _men setRank "LIEUTENANT"; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; }; case 1: { _men = _group createunit ["CZ_Special_Forces_TL_DES_EP1",_pos,[],10,"None"]; [_men] join _group; _men setRank "LIEUTENANT"; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; }; }; _i = 0; while {_i < _strength} do { switch (_side) do { case 0: { _man = _group createUnit [RIPPATROLMENS select floor(random count RIPPATROLMENS), _pos, [], 10, "NONE"]; }; case 1: { _man = _group createUnit [RIPPATROLMENS_PMC select floor(random count RIPPATROLMENS_PMC), _pos, [], 10, "NONE"]; }; }; [_men] join _group; {_men addMagazine "ACE_Epinephrine"} forEach [0,0] ; {_men addMagazine "ACE_Morphine"} forEach [0,0] ; if ((typeOf _men) == "CDF_Soldier_Medic") then { {_men addMagazine "ACE_Medkit"} forEach [0,0] ; }; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; _i = _i + 1; }; sleep 5; (leader _group) setSkill _groupskill; if (true) exitWith {};/* [position this, 200] execVM "War_func_CreateInfGroup.sqf";======================================================================================================================= */ if(!isServer) exitWith{}; private["_pos","_group","_groupskill","_men","_strength","_i"]; _pos = _this select 0; waitUntil {!isNil "bis_fnc_init"}; _group = createGroup WEST; RIPBLOCKGUARDGROUPS set [count RIPBLOCKGUARDGROUPS, _group]; _groupskill = RIPAIDEFAULTSKILL + (random 0.2); _strength = 2 + round(random 3); _siderandom = round(random 100); _side = 0; if (_siderandom < 70) then {_side = 0;} else {_side = 1;}; switch (_side) do { case 0: { _men = _group createunit ["CDF_Soldier_TL",_pos,[],10,"None"]; [_men] join _group; _men setRank "LIEUTENANT"; RIPBLOCKGUARDUNITS set [count RIPBLOCKGUARDUNITS, _men]; }; case 1: { _men = _group createunit ["CZ_Special_Forces_TL_DES_EP1",_pos,[],10,"None"]; [_men] join _group; _men setRank "LIEUTENANT"; RIPBLOCKGUARDUNITS set [count RIPBLOCKGUARDUNITS, _men]; }; }; _i = 0; while {_i < _strength} do { switch (_side) do { case 0: { _man = _group createUnit [RIPPATROLMENS select floor(random count RIPPATROLMENS), _pos, [], 10, "NONE"]; }; case 1: { _man = _group createUnit [RIPPATROLMENS_PMC select floor(random count RIPPATROLMENS_PMC), _pos, [], 10, "NONE"]; }; }; [_men] join _group; {_men addMagazine "ACE_Epinephrine"} forEach [0,0] ; {_men addMagazine "ACE_Morphine"} forEach [0,0] ; if ((typeOf _men) == "CDF_Soldier_Medic") then { {_men addMagazine "ACE_Medkit"} forEach [0,0] ; }; RIPBLOCKGUARDUNITS set [count RIPBLOCKGUARDUNITS, _men]; _i = _i + 1; }; sleep 5; (leader _group) setSkill _groupskill; _group setCombatMode "RED"; _group setBehaviour "SAFE"; [_group, _pos, 50] call BIS_fnc_taskPatrol; if (true) exitWith {};//by RIP private["_arrayofvehicle","_vehicle","_units","_grp","_grpskill","_startpos","_sizevec","_isFlat"]; if(!isServer) exitWith{}; _startpos = _this select 0; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); { waituntil {!isnil "bis_fnc_init"}; _arrayofvehicle = [_startpos, 180, (RIPPATROLLIGHTVEHICLES select floor(random count RIPPATROLLIGHTVEHICLES)), West] call bis_fnc_spawnvehicle; _vehicle = _arrayofvehicle select 0; clearWeaponCargo _vehicle; RIPMISSIONGUARDVEHICLES set [count RIPMISSIONGUARDVEHICLES, _vehicle]; _sizevec = sizeOf (typeOf _vehicle); _isFlat = (position _vehicle) isFlatEmpty [_sizevec / 2, 150, 0.7, _sizevec, 0, false, _vehicle]; if (count _isFlat > 1) then { _startpos = _isFlat; _startpos set [2, 0]; }; _vehicle setPos _startpos; _grp = _arrayofvehicle select 2; RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _grp]; _units = _arrayofvehicle select 1; RIPMISSIONGUARDUNITS = RIPMISSIONGUARDUNITS + _units; (leader _grp) setSkill _grpskill; } forEach [0,1]; sleep 1; if (true) exitWith {}; //by RIP private["_arrayofvehicle","_vehicle","_units","_grp","_grpskill","_startpos","_sizevec","_isFlat"]; if(!isServer) exitWith{}; _startpos = _this select 0; _grpskill = RIPAIDEFAULTSKILL + (random 0.2); { waituntil {!isnil "bis_fnc_init"}; _arrayofvehicle = [_startpos, 180, (RIPPATROLLIGHTVEHICLES select floor(random count RIPPATROLLIGHTVEHICLES)), West] call bis_fnc_spawnvehicle; _vehicle = _arrayofvehicle select 0; clearWeaponCargo _vehicle; RIPBLOCKGUARDVEHICLES set [count RIPBLOCKGUARDVEHICLES, _vehicle]; _sizevec = sizeOf (typeOf _vehicle); _isFlat = (position _vehicle) isFlatEmpty [_sizevec / 2, 150, 0.7, _sizevec, 0, false, _vehicle]; if (count _isFlat > 1) then { _startpos = _isFlat; _startpos set [2, 0]; }; _vehicle setPos _startpos; _grp = _arrayofvehicle select 2; RIPBLOCKGUARDGROUPS set [count RIPBLOCKGUARDGROUPS, _grp]; _units = _arrayofvehicle select 1; RIPBLOCKGUARDUNITS = RIPBLOCKGUARDUNITS + _units; (leader _grp) setSkill _grpskill; } forEach [0,1]; sleep 1; if (true) exitWith {}; //by RIP /* [position this] execVM "War_func_CreateStatic.sqf";======================================================================================================================= */ if(!isServer) exitWith{}; private["_pos","_grp","_grpskill","_men","_statics","_count","_i","_random_point","_mg","_typemg"]; _pos = _this select 0; waitUntil {!isNil "bis_fnc_init"}; _grp = createGroup WEST; RIPMISSIONGUARDGROUPS set [count RIPMISSIONGUARDGROUPS, _grp]; _grpskill = RIPAIDEFAULTSKILL; _statics = _pos nearEntities ["StaticWeapon",30]; sleep 1; if ((count _statics) > 0) then { { _men = _grp createUnit ["CDF_Soldier", _pos, [], 10, "NONE"]; _men moveInGunner _x; _men setBehaviour "COMBAT"; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; } forEach _statics; }; sleep 1; _random_point= []; _count = 3 + (random 3); _i = 0; while {_i < _count} do { _random_point = [_pos, 300] call War_GetRandomPoint; _typemg = ["DSHKM_CDF_US_EP1","AGS_CDF_US_EP1","DSHkM_Mini_TriPod_CDF_US_EP1"] call BIS_fnc_selectRandom; _mg = objNull; _mg = _typemg createVehicle _random_point; RIPMISSIONOBJ set [count RIPMISSIONOBJ, _mg]; _men = _grp createUnit ["CDF_Soldier_TL", _random_point, [], 10, "NONE"]; _men moveInGunner _mg; _men setBehaviour "AWARE"; RIPMISSIONGUARDUNITS set [count RIPMISSIONGUARDUNITS, _men]; _i = _i + 1; }; (leader _grp) setSkill _grpskill; if (true) exitWith {};//by RIP /* [position this] execVM "War_func_CreateStatic.sqf";======================================================================================================================= */ if(!isServer) exitWith{}; private["_pos","_grp","_grpskill","_men","_statics","_count","_i","_random_point","_mg","_typemg"]; _pos = _this select 0; waitUntil {!isNil "bis_fnc_init"}; _grp = createGroup WEST; RIPBLOCKGUARDGROUPS set [count RIPBLOCKGUARDGROUPS, _grp]; _grpskill = RIPAIDEFAULTSKILL; _statics = _pos nearEntities ["StaticWeapon",30]; sleep 1; if ((count _statics) > 0) then { { _men = _grp createUnit ["CDF_Soldier", _pos, [], 10, "NONE"]; _men moveInGunner _x; _men setBehaviour "COMBAT"; RIPBLOCKGUARDUNITS set [count RIPBLOCKGUARDUNITS, _men]; } forEach _statics; }; sleep 1; _random_point= []; _count = 3 + (random 3); _i = 0; while {_i < _count} do { _random_point = [_pos, 300] call War_GetRandomPoint; _typemg = ["DSHKM_CDF_US_EP1","AGS_CDF_US_EP1","DSHkM_Mini_TriPod_CDF_US_EP1"] call BIS_fnc_selectRandom; _mg = objNull; _mg = _typemg createVehicle _random_point; // RIPMISSIONOBJ set [count RIPMISSIONOBJ, _mg]; _men = _grp createUnit ["CDF_Soldier_TL", _random_point, [], 10, "NONE"]; _men moveInGunner _mg; _men setBehaviour "AWARE"; RIPBLOCKGUARDUNITS set [count RIPBLOCKGUARDUNITS, _men]; _i = _i + 1; }; (leader _grp) setSkill _grpskill; if (true) exitWith {};//by RIP private ["_list"]; if !(isServer) exitWith {}; [nil, nil, rEXECVM, "scripts\server\func\War_func_LeaveAreaHint.sqf"] call RE; _list = objposition nearEntities [["RUVehicleBox"],800]; while {(count _list) > 0} do { sleep 30; _list = objposition nearEntities [["RUVehicleBox"],800]; }; Server setVariable ["RIPMISSIONCREATED",false,true]; private ["_center", "_radius", "_co", "_angle", "_x1", "_y1", "_no", "_center_x", "_center_y"]; _center = _this select 0; _radius = _this select 1; _center_x = _center select 0;_center_y = _center select 1; _ret_val = []; for "_co" from 0 to 99 do { _no = []; _angle = floor (random 360); _x1 = _center_x - ((random _radius) * sin _angle); _y1 = _center_y - ((random _radius) * cos _angle); if !(surfaceiswater [_x1, _y1]) then { _no = [_x1, _y1,0] nearEntities [["Car","Tank","StaticWeapon"],15]; if ((count _no) < 1) then {_ret_val = [_x1, _y1,0];}; }; if (count _ret_val != 0) exitWith {}; }; _ret_val private ["_center", "_radius", "_co", "_angle", "_x1", "_y1", "_no", "_valid", "_slope", "_center_x", "_center_y"]; _center = _this select 0; _radius = _this select 1; _center_x = _center select 0;_center_y = _center select 1; _ret_val = []; for "_co" from 0 to 99 do { _angle = floor (random 360); _x1 = _center_x - (_radius * sin _angle); _y1 = _center_y - (_radius * cos _angle); _ret_val = [_x1, _y1,0]; }; _ret_val [""+localize "STR_RIP_HINT_LEAVEAREA"+"",0,(safezoneH)/2,6,2] call BIS_fnc_dynamicText;hint composeText [parseText format ["
"+localize "STR_RIP_HINT_MISSIONFAIL"+""]];hint composeText [parseText format ["
"+localize "STR_RIP_HINT_MISSIONCOMPLETE"+""]]; ammobox addWeaponCargoGlobal ["ACE_ALICE_Backpack", round(random 10)]; ammobox addWeaponCargoGlobal ["ACE_Backpack_CivAssault", round(random 10)]; ammobox addWeaponCargoGlobal ["Binocular", round(random 10)]; ammobox addWeaponCargoGlobal ["ItemRadio", (1 + round(random 9))]; ammobox addWeaponCargoGlobal ["ItemMap", (10 + round(random 10))]; ammobox addWeaponCargoGlobal ["ItemWatch", (10 + round(random 10))]; ammobox addWeaponCargoGlobal ["ItemCompass", (10 + round(random 10))]; ammobox addWeaponCargoGlobal ["ACE_MugLite", (10 + round(random 20))]; ammobox addWeaponCargoGlobal ["Sa61_EP1", round(random 10)]; ammobox addMagazineCargoGlobal ["10Rnd_B_765x17_Ball", round(random 20)]; ammobox addWeaponCargoGlobal ["UZI_EP1", round(random 10)]; ammobox addMagazineCargoGlobal ["30Rnd_9x19_UZI", round(random 20)]; ammobox addWeaponCargoGlobal ["revolver_EP1", round(random 20)]; ammobox addMagazineCargoGlobal ["6Rnd_45ACP", round(random 40)]; ammobox addWeaponCargoGlobal ["ACE_Flaregun", round(random 20)]; ammobox addMagazineCargoGlobal ["ACE_SSGreen_FG", round(random 40)]; ammobox addWeaponCargoGlobal ["LeeEnfield", (30 + round(random 3))]; ammobox addMagazineCargoGlobal ["10x_303", 50]; ammobox addWeaponCargoGlobal ["ACE_SKS", round(random 10)]; ammobox addMagazineCargoGlobal ["ACE_10Rnd_762x39_B_SKS", round(random 20)]; ammobox addWeaponCargoGlobal ["huntingrifle", 1]; ammobox addMagazineCargoGlobal ["5x_22_LR_17_HMR", round(random 6)]; ammobox addMagazineCargoGlobal ["HandGrenade_East", round(random 10)]; ammobox addMagazineCargoGlobal ["SmokeShell", round(random 10)]; ammobox addMagazineCargoGlobal ["BAF_ied_v1", round(random 10)]; ammobox addMagazineCargoGlobal ["BAF_ied_v4", round(random 10)]; ammobox addMagazineCargoGlobal ["PipeBomb", round(random 10)]; _random_present = round(random 8); switch (_random_present) do { case 0: { ammobox addweaponcargoglobal ["ACE_P159_RD99", round(random 10)]; ammobox addweaponcargoglobal ["ACRE_PRC148_UHF", round(random 10)]; }; case 1: { ammobox addweaponcargoglobal ["ACE_AKMS_SD", 5]; ammobox addmagazinecargoglobal ["ACE_75Rnd_762x39_SD_AK47", 15]; ammobox addweaponcargoglobal ["UZI_SD_EP1", 5]; ammobox addmagazinecargoglobal ["30Rnd_9x19_UZI_SD", 15]; }; case 2: { ammobox addweaponcargoglobal ["AK_74", 20]; ammobox addmagazinecargoglobal ["30Rnd_545x39_AK", 60]; }; case 3: { ammobox addweaponcargoglobal ["ACE_RPG7V_PGO7", 5]; ammobox addmagazinecargoglobal ["ACE_PG7V_PGO7", 15]; }; case 4: { ammobox addweaponcargoglobal ["RPG18", 30]; }; case 5: { ammobox addweaponcargoglobal ["ACE_SVD_Bipod", 10]; ammobox addmagazinecargoglobal ["10Rnd_762x54_SVD", 30]; }; case 6: { ammobox addweaponcargoglobal ["Strela", 2]; ammobox addmagazinecargoglobal ["Strela", 8]; }; case 7: { ammobox addweaponcargoglobal ["ACE_DAGR", 1]; ammobox addweaponcargoglobal ["ace_arty_rangeTable_2b14", 1]; ammobox addweaponcargoglobal ["ACE_2b14Proxy", 1]; ammobox addweaponcargoglobal ["ACE_2b14TripodProxy", 1]; ammobox addmagazinecargoglobal ["ACE_2B14HE_CSWDM", 30]; }; case 8: { ammobox addweaponcargoglobal ["PK", 10]; ammobox addmagazinecargoglobal ["100Rnd_762x54_PK", 20]; }; }; private ["_result","_pos","_range","_plr"]; _pos = _this select 0; _range = _this select 1; _result = 0; { if (!isNil _x) then { _plr = call compile _x; if (!isNull _plr) then { if ((((getPos vehicle _plr) distance _pos) <= _range) && (alive _plr)) then {_result = _result + 1;}; }; }; } forEach ["ins1","ins2","ins3","ins4","ins5","ins6","ins7","ins8","ins9","merc1","merc2","merc3","merc4","merc5","merc6","merc7","merc8","merc9","gue1","gue2","gue3","gue4","gue5","gue6","gue7","gue8","gue9","gue10","gue11","gue12","civ"]; _resultif !(isServer) exitWith {}; while {!(Server getVariable "RIPMISSIONCOMPLETED")} do { { if (!alive _x) then { _deadTimer = _x getVariable "gc_deadTimer"; if (isNil "_deadTimer") then { _x setVariable ["gc_deadTimer", 180]; } else { if (_deadTimer > 0) then { _deadTimer = _deadTimer - 30; _x setVariable ["gc_deadTimer", _deadTimer]; } else { RIPMISSIONGUARDUNITS = RIPMISSIONGUARDUNITS - [_x]; hideBody _x;deleteVehicle _x; }; }; }; sleep 0.05; } forEach RIPMISSIONGUARDUNITS; sleep 30; };if !(isServer) exitWith {}; while {true} do { { if (!alive _x) then { _deadTimer = _x getVariable "gc_deadTimer"; if (isNil "_deadTimer") then { _x setVariable ["gc_deadTimer", 300]; } else { if (_deadTimer > 0) then { _deadTimer = _deadTimer - 30; _x setVariable ["gc_deadTimer", _deadTimer]; } else { if (([_x, 200] call War_func_NearestPlayers) < 1) then { RIPBLOCKGUARDUNITS = RIPBLOCKGUARDUNITS - [_x]; hideBody _x;deleteVehicle _x; }; }; }; }; sleep 0.05; } forEach RIPBLOCKGUARDUNITS; sleep 30; };private ["_RIPALLVEHICLES","_RIPALLVEHICLESPARAMS","_deadTimer","_vehicle","_i","_varname","_dir","_pos","_type","_delay"]; if !(isServer) exitWith {}; _RIPALLVEHICLES = [car1,car2,car3,car4,car5,car6,car7,car8,car9,car10,car11,car12,car13,car14,car15,car16,car17,car18,car19,car20,car21,car22]; _RIPALLVEHICLESPARAMS = []; _delay = RIPVEHICLERESPAWNDELAY; _i = 0; { _RIPALLVEHICLESPARAMS set [_i, [(vehicleVarName _x),(typeof _x),(getDir _x),(getPosATL _x)]]; _i = _i + 1; } forEach _RIPALLVEHICLES; while {true} do { _i = 0; { if (!alive _x) then { _deadTimer = _x getVariable "war_deadTimer"; if (isNil "_deadTimer") then { _x setVariable ["war_deadTimer", _delay]; } else { if (_deadTimer > 0) then { _deadTimer = _deadTimer - 30; _x setVariable ["war_deadTimer", _deadTimer]; } else { deleteVehicle _x; _RIPALLVEHICLES = _RIPALLVEHICLES - [_x]; _varname = (_RIPALLVEHICLESPARAMS select _i) select 0; _type = (_RIPALLVEHICLESPARAMS select _i) select 1; _dir = (_RIPALLVEHICLESPARAMS select _i) select 2; _pos = (_RIPALLVEHICLESPARAMS select _i) select 3; sleep 2; _vehicle = _type createvehicle _pos; _vehicle setDir _dir; _vehicle setPosATL _pos; _vehicle setFuel (0.4 + (random 0.6)); _crate = "ACE_Tbox_RU" createvehicle _pos; _JerryCan = "ACE_JerryCan_15" createvehicle _pos; [[_JerryCan,_crate], _vehicle] call ACE_fnc_loadCargo; _varinit = switch (_type) do { case "ACE_Mi17_car": {"ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_M_120"",5];this addMagazineCargo [""ACE_Rope_M5"", 2];this addMagazineCargo [""ACE_Epinephrine"", 10];this addMagazineCargo [""ACE_Medkit"", 10];this addMagazineCargo [""ACE_Morphine"", 10];this addMagazineCargo [""ACE_Bandage"", 10];this addMagazineCargo [""ACE_LargeBandage"", 10];this addMagazineCargo [""PipeBomb"", 2];"}; case "GAZ_Vodnik_MedEvac": {"ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Epinephrine"", 20];this addMagazineCargo [""ACE_Medkit"", 20];this addMagazineCargo [""ACE_Morphine"", 20];this addMagazineCargo [""ACE_Bandage"", 20];this addMagazineCargo [""ACE_LargeBandage"", 20];"}; case "BTR90": {"ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_KonkursM_CSWDM"", 4];this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"}; case "ACE_BMP2_car": {"ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_KonkursM_CSWDM"", 5];this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"}; default {"ClearWeaponCargo this;ClearMagazineCargo this;this addMagazineCargo [""ACE_Rope_TOW_M_5"",1];"}; }; _vehicle setVehicleInit format ["%1 = this; this setVehicleVarName ""%1"";%2",_varname,_varinit]; processInitCommands; _RIPALLVEHICLES = [car1,car2,car3,car4,car5,car6,car7,car8,car9,car10,car11,car12,car13,car14,car15,car16,car17,car18,car19,car20,car21,car22]; }; }; }; sleep 0.5; _i = _i + 1; } forEach _RIPALLVEHICLES; sleep 30; };private ["_object", "_time", "_magazines","_cmagazines"]; _returnVehicleTurrets = { private ["_vehicle", "_turrets", "_cfg", "_i", "_turret", "_turr"]; _vehicle = this select 1; _turrets = []; _cfg = configFile >> "CfgVehicles" >> typeOf _vehicle >> "turrets"; if !(isClass _cfg) exitWith { _turrets }; for "_i" from 0 to (count _cfg) - 1 do { _turret = _cfg select _i; if (isClass _turret) then { _turr = []; _turrets set [count _turrets, _turr]; }; }; _turrets; }; _reloadTurrets = { private ["_turrets", "_path"]; _turrets = _this select 0; _path = _this select 1; private ["_i"]; _i = 0; while {_i < (count _turrets)} do { private ["_turretIndex", "_thisTurret"]; _turretIndex = _turrets select _i; _thisTurret = _path + [_turretIndex]; _magazines = _object magazinesTurret _thisTurret; if (!alive _object) exitWith {}; _removed = []; { if (!(_x in _removed)) then { _object removeMagazinesTurret [_x, _thisTurret]; _removed set [count _removed, _x]; }; } forEach _magazines; if (!alive _object) exitWith {}; { sleep 0.1; if (!alive _object) exitWith {}; _object addMagazineTurret [_x, _thisTurret]; sleep 0.1; if (!alive _object) exitWith {}; } forEach _magazines; if (!alive _object) exitWith {}; [_turrets select (_i + 1), _thisTurret] call _reloadTurrets; _i = _i + 2; if (!alive _object) exitWith {}; }; }; _object = _this select 0; if ((fuel _object) == 1) exitWith {}; _type = typeof _object; _typename = getText (configFile >> "CfgVehicles" >> _type >> "DisplayName"); _time = RIPRELOADTIME / 60; _cmagazines = _object magazinesTurret[0]; _object vehicleChat format[localize "STR_RIP_HINT_STARTSERVICING",_typename,_time]; _object setFuel 0; sleep RIPRELOADTIME; _object setDammage 0; _magazines = getArray(configFile >> "CfgVehicles" >> _type >> "magazines"); if (count _magazines > 0) then { _removed = []; { if (!(_x in _removed)) then { _object removeMagazines _x; _removed set [count _removed, _x]; }; } forEach _magazines; { sleep 0.1; if (!alive _object) exitWith {}; _object addMagazine _x; } forEach _magazines; }; _turrets = [configFile >> "CfgVehicles" >> _type >> "Turrets"] call _returnVehicleTurrets; [_turrets, []] call _reloadTurrets; if (!alive _object) exitWith {}; sleep 2; _object setVehicleAmmo 1; // _object setVehicleInit "this setVehicleAmmo 1"; processInitCommands; sleep 2; _object setFuel 1; if (!alive _object) exitWith {}; _object vehicleChat format[localize "STR_RIP_HINT_ENDSERVICING",_typename]; if (true) exitwith {}; private ["_object", "_weapons", "_box", "_ammo", "_i", "_magazines", "_magazinesType", "_magazinesCount", "_weapons", "_weaponsType", "_weaponsCount"]; _object = _this select 0; _box = ammobox; _weapons = getWeaponCargo _object; _weaponsType = (_weapons select 0); _weaponsCount = (_weapons select 1); _i = 0; { _box addWeaponCargoGlobal [(_weaponsType select _i),(_weaponsCount select _i)]; _i = _i + 1; } forEach _weaponsCount; clearWeaponCargoGlobal _object; _magazines = getMagazineCargo _object; _magazinesType = (_magazines select 0); _magazinesCount = (_magazines select 1); clearMagazineCargoGlobal _object; _i = 0; { if ((_magazinesType select _i) != "ACE_Rope_TOW_M_5") then { _box addMagazineCargoGlobal [(_magazinesType select _i),(_magazinesCount select _i)]; } else {_object addMagazineCargoGlobal [(_magazinesType select _i), (_magazinesCount select _i)];}; _i = _i + 1; } forEach _magazinesCount; _object removeAction At_z1; hint composeText [parseText format [localize "STR_READY"]]; if (true) exitwith {}; private ["_teamscore","_count1","_count2","_count3","_count4"]; if !(isServer) exitWith {}; if ((Server getVariable "RIPMISSIONSUCCEED") == 0) exitWith {}; _teamscore = Server getVariable "RIPTEAMSCORE"; ammobox2 addMagazineCargoGlobal ["1Rnd_HE_GP25", _count1]; ammobox2 addMagazineCargoGlobal ["1Rnd_SMOKE_GP25", _count2]; ammobox2 addMagazineCargoGlobal ["30Rnd_545x39_AK", _count1]; ammobox2 addMagazineCargoGlobal ["ACE_30Rnd_545x39_T_AK", _count2]; ammobox2 addMagazineCargoGlobal ["30Rnd_545x39_AKSD", _count2]; ammobox2 addMagazineCargoGlobal ["30Rnd_762x39_AK47", _count2]; ammobox2 addMagazineCargoGlobal ["ACE_30Rnd_762x39_T_AK47", _count2]; ammobox2 addMagazineCargoGlobal ["20Rnd_9x39_SP5_VSS", _count2]; ammobox2 addMagazineCargoGlobal ["ACE_20Rnd_9x39_B_SP6_OC14", _count1]; //sniper rifles ammobox2 addMagazineCargoGlobal ["5Rnd_127x108_KSVK", _count3]; ammobox2 addMagazineCargoGlobal ["ACE_5Rnd_127x108_T_KSVK", _count3]; ammobox2 addMagazineCargoGlobal ["10Rnd_762x54_SVD", _count2]; ammobox2 addMagazineCargoGlobal ["ACE_10Rnd_762x54_T_SVD", _count2]; ammobox2 addMagazineCargoGlobal ["5Rnd_762x51_M24", _count2]; //machineguns ammobox2 addMagazineCargoGlobal ["100Rnd_762x54_PK", _count4]; ammobox2 addMagazineCargoGlobal ["75Rnd_545x39_RPK", _count3]; ammobox2 addMagazineCargoGlobal ["ACE_75Rnd_545x39_T_RPK", _count3]; //pm ammobox2 addMagazineCargoGlobal ["ACE_20Rnd_9x18_APS", _count2]; //explosive ammobox4 addMagazineCargoGlobal ["ACE_RDGM", _count2]; ammobox4 addMagazineCargoGlobal ["HandGrenade_East", _count2]; ammobox4 addMagazineCargoGlobal ["PipeBomb", _count3]; ammobox4 addMagazineCargoGlobal ["Mine", _count4]; ammobox4 addMagazineCargoGlobal ["ACE_PMN2_M", _count3]; ammobox4 addMagazineCargoGlobal ["ACE_MON50_M", _count4]; if (_teamscore > 0) then {_count1 = 10;_count2 = 5;}; if (_teamscore < -5) then {_count1 = 8;_count2 = 3;}; if (_teamscore < -15) then {_count1 = 5;_count2 = 2;}; if (_teamscore < -30) then {_count1 = 3;_count2 = 1;}; ammobox3 addMagazineCargoGlobal ["ACE_PG7VL_PGO7", _count1]; ammobox3 addMagazineCargoGlobal ["ACE_PG7VR_PGO7", _count1]; ammobox3 addMagazineCargoGlobal ["AT13", _count1]; ammobox3 addMagazineCargoGlobal ["ACE_RPG29_PG29", _count1]; ammobox3 addMagazineCargoGlobal ["ACE_RPG29_TBG29", _count1]; ammobox3 addMagazineCargoGlobal ["Igla", _count1]; ammobox3 addWeaponCargoGlobal ["ACE_RPG27", _count1]; ammobox3 addWeaponCargoGlobal ["RPG18", _count1]; ammobox3 addWeaponCargoGlobal ["ACE_RPOM", _count2];private ["_ammomed"]; if !(isDedicated) then { while {true} do { _ammomed = _this select 0; clearWeaponCargo _ammomed; clearMagazineCargo _ammomed; _ammomed addMagazineCargo ["ACE_Bandage", 30]; _ammomed addMagazineCargo ["ACE_Epinephrine", 30]; _ammomed addMagazineCargo ["ACE_Medkit", 10]; _ammomed addMagazineCargo ["ACE_Morphine", 30]; _ammomed addMagazineCargo ["ACE_Tourniquet", 10]; sleep 1800; }; };private ["_ammorifles"]; if (isServer) then { _ammorifles = _this select 0; //combat rifles _ammorifles addWeaponCargoGlobal ["ACE_ALICE_Backpack", round(random 20)]; _ammorifles addWeaponCargoGlobal ["ACE_Backpack_CivAssault", round(random 30)]; _ammorifles addWeaponCargoGlobal ["Binocular", round(random 10)]; _ammorifles addWeaponCargoGlobal ["ItemRadio", (1 + round(random 9))]; _ammorifles addWeaponCargoGlobal ["ItemMap", (10 + round(random 20))]; _ammorifles addWeaponCargoGlobal ["ItemWatch", (10 + round(random 20))]; _ammorifles addWeaponCargoGlobal ["ItemCompass", (10 + round(random 20))]; _ammorifles addWeaponCargoGlobal ["ACE_MugLite", (10 + round(random 20))]; _ammorifles addWeaponCargoGlobal ["Sa61_EP1", round(random 10)]; _ammorifles addMagazineCargoGlobal ["10Rnd_B_765x17_Ball", round(random 20)]; _ammorifles addWeaponCargoGlobal ["UZI_EP1", round(random 10)]; _ammorifles addMagazineCargoGlobal ["30Rnd_9x19_UZI", round(random 20)]; _ammorifles addWeaponCargoGlobal ["revolver_EP1", round(random 20)]; _ammorifles addMagazineCargoGlobal ["6Rnd_45ACP", round(random 40)]; _ammorifles addWeaponCargoGlobal ["ACE_Flaregun", round(random 20)]; _ammorifles addMagazineCargoGlobal ["ACE_SSGreen_FG", round(random 40)]; _ammorifles addWeaponCargoGlobal ["LeeEnfield", (30 + round(random 3))]; _ammorifles addMagazineCargoGlobal ["10x_303", 50]; _ammorifles addWeaponCargoGlobal ["ACE_SKS", round(random 10)]; _ammorifles addMagazineCargoGlobal ["ACE_10Rnd_762x39_B_SKS", round(random 20)]; _ammorifles addWeaponCargoGlobal ["RPG18", (8 + round(random 3))]; _ammorifles addWeaponCargoGlobal ["huntingrifle", 1]; _ammorifles addMagazineCargoGlobal ["5x_22_LR_17_HMR", round(random 6)]; _ammorifles addMagazineCargoGlobal ["HandGrenade_East", round(random 30)]; _ammorifles addMagazineCargoGlobal ["SmokeShell", round(random 15)]; _ammorifles addMagazineCargoGlobal ["BAF_ied_v1", (100 + round(random 100))]; _ammorifles addMagazineCargoGlobal ["BAF_ied_v4", (100 + round(random 100))]; _ammorifles addMagazineCargoGlobal ["PipeBomb", (20 + round(random 20))]; };/* ===================================================================================================== MON_spawn.sqf Author: Monsada (chs.monsada@gmail.com) Comunidad Hispana de Simulacin: http://www.simulacion-esp.com ===================================================================================================== Parmeters: [_artillery,(_range,_rounds,_area,_cadence,_mincadence)] execvm "scripts\server\UPSMON\MON_artillery_add.sqf"; <- _artillery object to attach artillery script, must be an object with gunner. <- ( _rounds ) rounds to fire each time, default 1 <- ( _range ) range of artillery, default 800 <- ( _area ) Dispersion area, 150m by default <- ( _maxcadence ) Cadence of fire, is random between min, default 10s <- ( _mincadence ) Minimum cadence, default 5s <- ( _bullet ) Class of bullet to fire, default ARTY_Sh_81_HE ===================================================================================================== 1. Place a static weapon on map. 2. Exec module in int of static weapon nul=[this] execVM "scripts\server\UPSMON\MON_artillery_add.sqf"; 1. Be sure static weapon has a gunner or place a "fortify" squad near, this will make squad to take static weapon. 2. Create a trigger in your mission for setting when to fire. Set side artillery variable to true: KRON_UPS_ARTILLERY_EAST_FIRE = true; This sample will do east artilleries to fire on known enemies position, when you want to stop fire set to false. For more info: http://dev-heaven.net/projects/upsmon/wiki/Artillery_module =====================================================================================================*/ if (!isserver) exitWith {}; //Waits until UPSMON is init waitUntil {!isNil("KRON_UPS_INIT")}; waitUntil {KRON_UPS_INIT==1}; private ["_artillery","_smoke1","_i","_area","_position","_maxcadence","_mincadence","_sleep","_rounds","_dummypos","_salvobreak"]; _range = 800; _area = 150; _maxcadence = 10; _mincadence = 5; _sleep = 0; _rounds = 1; _bullet = "ARTY_Sh_81_HE"; _vector =[]; _salvobreak = 10; _artillery = _this select 0; //if (KRON_UPS_Debug>0) then {player globalchat format["MON_artillery_add before %1 %2 %3",isnull _artillery,alive _artillery]}; if (isnull _artillery || !alive _artillery) exitwith{}; if ((count _this) > 1) then {_rounds = _this select 1;}; if ((count _this) > 2) then {_range = _this select 2;}; if ((count _this) > 3) then {_area = _this select 3;}; if ((count _this) > 4) then {_maxcadence = _this select 4;}; if ((count _this) > 5) then {_mincadence = _this select 5;}; if ((count _this) > 6) then {_bullet = _this select 6;}; if ((count _this) > 7) then {_salvobreak = _this select 7;}; //Add artillery to array of artilleries _vector = [_artillery,_rounds,_range,_area,_maxcadence,_mincadence,_bullet,_salvobreak]; if (isnil "KRON_UPS_ARTILLERY_UNITS" ) then {KRON_UPS_ARTILLERY_UNITS = []}; KRON_UPS_ARTILLERY_UNITS = KRON_UPS_ARTILLERY_UNITS + [_vector]; _dummypos = [getpos _artillery, 50, getdir _artillery] call R_relPos3D; (gunner _artillery) lookAt [_dummypos select 0, _dummypos select 1,(_dummypos select 2)+100]; /* ===================================================================================================== MON_spawn.sqf Author: Monsada (chs.monsada@gmail.com) Comunidad Hispana de Simulacin: http://www.simulacion-esp.com ===================================================================================================== Parmeters: [Param1,Param2,Param3,[Param4]] EXECVM "SCRIPTS\server\UPSMON\MON_SPAWN.SQF"; <- Param1 Id of the template to copy. <- Param2 Position to create new squad. <- Param3 N of squads to create <- Param4 Array of parameters of UPSMON, first must be name of marc to patrol ===================================================================================================== Function that allows to spawn UPSMON squads. 1- create a squad in editor. Exec UPSMON and set TEMPLATE id, this will save members of squad, not equipement. nul = [this,"town","TEMPLATE:",1] execVM "scripts\server\upsmon.sqf"; 2- Exec MON_spawn on trigger or where you want telling the copy of the template to create and the position. nul = [1,[0,0,0],3,[mark, upsmon optional params]] EXECVM "SCRIPTS\server\UPSMON\MON_SPAWN.SQF"; =====================================================================================================*/ if (!isserver) exitWith {}; //Waits until UPSMON is init waitUntil {!isNil("KRON_UPS_INIT")}; waitUntil {KRON_UPS_INIT==1}; private ["_template","_position","_params","_copies","_membertypes","_unittype","_side","_UCthis","_initstr","_grp","_lead","_newunit","_i","_newpos","_vehicle","_initlstr"]; //Parameter reading _template = _this select 0; _position = _this select 1; _copies = _this select 2; _params = _this select 3; //Initialization _membertypes = []; _side = ""; _UCthis = []; _initstr = ""; _initlstr = ""; _grp = grpnull; _lead = objnull; _newunit = objnull; _newpos=[]; _vehicle=[]; //Gets parameters of UPSMON for [{_i=0},{_i0) then {player globalchat format["Spawning %3 copies of template %1",_template,_position,_copies,count KRON_UPS_TEMPLATES]}; //if (KRON_UPS_Debug>0) then {diag_log format["Spawning %3 copies of template %1 on %2 templates %4",_template,_position,_copies,count KRON_UPS_TEMPLATES]}; //Search if any template { if ((_x select 0) == _template) then { _side = _x select 1; _membertypes = _x select 2; _vehicletypes = _x select 3; //Gets leader type _unittype= _membertypes select 0; //if (KRON_UPS_Debug>0) then {player globalchat format["template %1:%2 ",_template,_membertypes]}; for [{_i=1},{_i<=_copies},{_i=_i+1}] do { // make the clones civilians // use random Civilian models for single unit groups if ((_unittype=="Civilian") && (count _members==1)) then {_rnd=1+round(random 20); if (_rnd>1) then {_unittype=format["Civilian%1",_rnd]}}; _grp=createGroup _side; _lead = _grp createUnit [_unittype, _position, [], 0, "form"]; _lead setVehicleInit _initlstr; [_lead] join _grp; _grp selectLeader _lead; sleep 1; // copy team members (skip the leader) _c=0; { _c=_c+1; if (_c>1) then { _newpos = _position findEmptyPosition [10, 200]; sleep .4; if (count _newpos <= 0) then {_newpos = _position}; _newunit = _grp createUnit [_x, _newpos, [],0,"form"]; _newunit setVehicleInit _initstr; [_newunit] join _grp; }; } foreach _membertypes; { _newpos = _position findEmptyPosition [10, 200]; sleep .4; if (count _newpos <= 0) then {_newpos = _position}; _newunit = _x createvehicle (_newpos); } foreach _vehicletypes; //Set new parameters _params = [_lead] + _UCthis; //Exec UPSMON script _params SPAWN UPSMON; processInitCommands; }; }; }foreach KRON_UPS_TEMPLATES; if (true) exitwith{}; // ========================================================================================================= // Script for adding the action of follow player. // Version: 1.0 // Author: Monsada (smirall@hotmail.com) // --------------------------------------------------------------------------------------------------------- private ["_side","_soldiers"]; _side = _this select 0; _soldiers = switch (_side) do { case west: {KRON_AllWest}; case east: {KRON_AllEast}; case resistance: {KRON_AllRes}; }; { if ( leader _x == _x ) then { _x addaction ["Order your men to follow me", "scripts\server\UPSMON\actions\followme.sqf", [], 1, false]; } else { _x addaction ["Follow me", "scripts\server\UPSMON\actions\followme.sqf", [], 1, false]; }; }foreach _soldiers; if (true) exitWith {}; /* ============================================= !R Hide area markers. create Game Logic Object put in initialization field: nul = call compile preprocessFile "scripts\server\UPSMON\!R\markerAlpha.sqf"; all markers area must be named area0, area1...area13 ================================================= */ { _x setmarkeralpha 0; } foreach ["area0", "area1", "area2","area3","area4","area5","area6","area7","area8","area9","area10","area11","area12","area13"]; /* autor: !R 5.1.0 */ // get new position [x,y,x] from pos in distance and angle. // [_pos, _distance, _angle] call R_relPos3D; // [newX,newY,Z] R_relPos3D = { private["_p","_d","_a","_x","_y","_z","_xout","_yout"]; _p=_this select 0; _x=_p select 0; _y=_p select 1; _z=_p select 2; _d=_this select 1; _a=_this select 2; _xout=_x + sin(_a) * _d; _yout=_y + cos(_a) * _d; [_xout,_yout,_z] }; // [_unit] spawn R_ThrowSmoke; R_ThrowSmoke = { private ["_unit","_shell", "_moves","_unitPos","_pos","_flare","_direction"]; /* _stanThrow = ["AwopPercMstpSgthWrflDnon_Start1", "AwopPercMstpSgthWrflDnon_Throw1","AwopPercMstpSgthWrflDnon_End1"]; _kneeThrow = ["AwopPknlMstpSgthWrflDnon_Start", "AwopPknlMstpSgthWrflDnon_Throw" ,"AwopPknlMstpSgthWrflDnon_End"]; _proneThrow= ["AwopPpneMstpSgthWrflDnon_Start", "AwopPpneMstpSgthWrflDnon_Throw" ,"AwopPpneMstpSgthWrflDnon_End"]; */ _moves = ["AwopPercMstpSgthWrflDnon_Start1","AwopPknlMstpSgthWrflDnon_Start","AwopPpneMstpSgthWrflDnon_Start"]; _unit = _this select 0; _shell = "SmokeShell"; _unitPos = unitPos _unit; //Animation switch (_unitPos) do { case "Auto": { _unit playMove (_moves select 1); }; case "Up": { _unit playMove (_moves select 0); }; case "Middle": { _unit playMove (_moves select 1); }; case "Down": { _unit playMove (_moves select 2); }; }; sleep 4; _direction = direction _unit; // use such bypass as setvelocity does not work in MP _pos = position _unit; _pos = [(_pos select 0),(_pos select 1),(_pos select 2)+1.5]; _pos = [_pos, 18, _direction] call R_relPos3D; if (alive _unit && canmove _unit) then { _flare = _shell createVehicle _pos; }; // setvelocity does not work in MP http://dev-heaven.net/issues/17949 /* _vector = [18,direction _unit,0] call C B A_fnc_polar2vect; _pos=position _unit; _pos=[(_pos select 0),(_pos select 1),(_pos select 2)+2]; _flare = _shell createVehicle _pos; _flare setPos _pos; _flare setvelocity _vector; */ }; // [_unit] call R_FN_deleteObsoleteWaypoints; // leave only the last way point R_FN_deleteObsoleteWaypoints = { private ["_unit","_grp"]; _unit = _this select 0; _grp = group _unit; while {(count (waypoints _grp)) > 1} do { deleteWaypoint ((waypoints _grp) select 0); }; }; // array = [_npc] call R_FN_vehiclesUsedByGroup; // return array of vehicles used by group R_FN_vehiclesUsedByGroup = { private ["_npc","_vehicles"]; _npc = _this select 0; _vehicles = []; if (!alive _npc) exitwith {}; { if (( vehicle _x != _x || !(_x iskindof "Man")) && !((vehicle _x) in _vehicles)) then { _vehicles = _vehicles + [vehicle _x]; }; } foreach units _npc; _vehicles }; // array = [_vehicle] call R_FN_unitsInCargo; // array of units in cargo of the vehicle (in vehicle and assigned as cargo) R_FN_unitsInCargo = { private ["_vehicle","_x","_unitsInCargo"]; _vehicle = _this select 0; _unitsInCargo = []; { if( (assignedVehicleRole _x) select 0 == "Cargo") then { _unitsInCargo = _unitsInCargo + [_x]; }; } forEach crew _vehicle; _unitsInCargo }; // array = [_npc] call R_FN_allUnitsInCargo; // array of all units in cargo of the group (not driver, commander or gunner) R_FN_allUnitsInCargo = { private ["_npc","_vehicles","_unitsInCargo","_allUnitsInCargo"]; _npc = _this select 0; if (!alive _npc) exitwith {}; _allUnitsInCargo =[]; _vehicles = [_npc] call R_FN_vehiclesUsedByGroup; { _unitsInCargo = [_x] call R_FN_unitsInCargo; _allUnitsInCargo = _allUnitsInCargo + _unitsInCargo; } foreach _vehicles; _allUnitsInCargo }; // old MON_GetOutDist // <- _npc // <- _targetPos: position for exiting(if no waypoint used) // <- _atdist: minimal dist to the _targetpos do getout // -> nothing // nul = [_npc,_targetpos,_atdist] spawn R_SN_GetOutDist; R_SN_GetOutDist = { private["_vehicle","_npc","_target","_atdist","_getout","_dogetout","_driver","_commander","_targetpos","_dist","_vehpos","_vehicles"]; _npc = _this select 0; _targetpos = _this select 1; _atdist = _this select 2; // minimal dist to the target to do getOut _dogetout = []; // units to do getout _vehicles = []; // vehs used by the group if (!alive _npc) exitwith{}; _vehicle = vehicle _npc; _vehpos = getpos _vehicle; _dist = round([_vehpos,_targetpos] call KRON_distancePosSqr); // dist to the target // if (KRON_UPS_Debug>0) then {player sidechat format["%1: Getoutdist dist=%2 atdist=%3 ",typeof _vehicle,_dist, _atdist]}; // if _npc is in vehicle if ( _vehicle != _npc || !(_npc iskindof "Man")) then { if ( (_dist) <= _atdist ) then { _vehicles = [_npc] call R_FN_vehiclesUsedByGroup; // vehicles use by the group { _dogetout = [_x] call R_FN_unitsInCargo; // units cargo in the vehicle _driver = driver _x; if ( count _dogetout > 0 ) then { //Stop the veh for 5.5 sek nul = [_vehicle,5] spawn MON_doStop; sleep 0.8; // give time to actualy stop { _x spawn MON_GetOut; sleep 0.3; } foreach _dogetout; //We removed the id to the vehicle so it can be reused _x setVariable ["UPSMON_grpid", 0, false]; _x setVariable ["UPSMON_cargo", [], false]; [_npc,_x, _driver] spawn MON_checkleaveVehicle; // if every one outside, make sure driver can walk sleep 0.01; }; } foreach _vehicles; }; }; }; // #define GOTHIT(X) ([X] call R_FN_GOTHIT) // nul = [_grpId] call R_FN_GOTHIT; R_FN_GOTHIT = { _grpId = _this select 0; if ((R_GOTHIT_ARRAY select _grpId) != 0) then { true } else { false } }; // use in gothit proces // nul = [_unit, _shooter] spawn R_SN_EHHIT; R_SN_EHHIT = { private ["_unit","_shooter","_grpId"]; _unit = _this select 0; _shooter = _this select 1; _grpId = _unit getVariable ("UPSMON_grpid"); if ((side _unit != side _shooter) && (R_GOTHIT_ARRAY select _grpId) == 0) then { R_GOTHIT_ARRAY set [_grpId, 1]; // if (KRON_UPS_Debug > 0) then {player globalchat format["UNIT: %1, SHOOTER :%2 %3",_unit,_shooter,side _shooter]}; }; }; // use in gothit proces // nul = [_unit, _shooter] spawn R_SN_EHKILLED; R_SN_EHKILLED = { private ["_unit","_shooter","_grpId"]; _unit = _this select 0; _shooter = _this select 1; _grpId = _unit getVariable ("UPSMON_grpid"); if ((side _unit != side _shooter) && (R_GOTHIT_ARRAY select _grpId) == 0) then { R_GOTHIT_ARRAY set [_grpId, 2]; // if (KRON_UPS_Debug > 0) then {player globalchat format["UNIT: %1, SHOOTER :%2 %3",_unit,_shooter,side _shooter]}; }; }; // logic is needed to display rGlobalChat private ["_center","_group"]; _center = createCenter sideLogic; _group = createGroup _center; R_Logic_civkill = _group createUnit ["LOGIC", [2,2,1], [], 0, "NONE"]; _group = nil; _center = nil; // used in gothit proces // nul = [_unit, _shooter] spawn R_SN_EHKILLEDCIV; R_SN_EHKILLEDCIV = { private ["_killer","_side"]; _killer = _this select 1; //only if player killed a civilian if (isPlayer _killer) then { KILLED_CIV_COUNTER set [0,(KILLED_CIV_COUNTER select 0) + 1]; // if (KRON_UPS_Debug > 0) then {player globalchat format["KILLER: %1, %2", side _killer,KILLED_CIV_COUNTER ]}; switch (side _killer) do { case west: { KILLED_CIV_COUNTER set [1,(KILLED_CIV_COUNTER select 1) + 1]; }; case east: { KILLED_CIV_COUNTER set [2,(KILLED_CIV_COUNTER select 2) + 1]; }; case resistance: { KILLED_CIV_COUNTER set [3,(KILLED_CIV_COUNTER select 3) + 1]; }; }; KILLED_CIV_COUNTER set [4,_killer]; //if (KRON_UPS_Debug > 0) then {player globalchat format["KILLER: %1", side _killer ]}; if (KRON_UPS_Debug > 0) then {player globalchat format["KILLED_CIV_COUNTER: %1",KILLED_CIV_COUNTER]}; if (R_WHO_IS_CIV_KILLER_INFO > 0) then { [R_Logic_civkill, nil , rglobalChat, format ["A CIVILIAN WAS KILLED BY %1",_killer]] call RE; }; }; }; //firedNear R_SN_EHFIREDNEAR = { private ["_civ"]; _civ = leader (_this select 0); _civ setspeedmode "FULL"; }; // ========================================================================================================= // Script for action follow me when surrended, adds the soldier to player squad in a random choice. // Version: 1.0 // Author: Monsada (smirall@hotmail.com) // --------------------------------------------------------------------------------------------------------- private ["_obj","_caller","_id","_objtype","_rnd","_join","_direction"]; _npc = _this select 0; _caller = _this select 1; _id = _this select 2; _rnd = 0; _join=true; _npc switchmove ""; _direction = ((getpos _caller select 0) - (getpos _npc select 0)) atan2 ((getpos _caller select 1) - (getpos _npc select 1)); //If positive values are needed then use: if(_direction < 0) then {_direction = _direction + 360}; _npc setdir _direction; _npc dowatch _caller; _npc setSpeedMode "LIMITED"; _npc domove position _caller; sleep 0.5; _rnd = random 100; _npc setmimic "Sad"; if (_rnd <= 30 ) then { _npc globalchat "Ok"; }; if (_rnd > 30 && _rnd <= 50) then { _npc globalchat "Yes"; }; if (_rnd > 50 && _rnd <= 100) then { _join=false; _rnd = random 100; if (_rnd < 20) then { _npc setmimic "angry"; _npc switchmove "CtsPercMstpSnonWnonDnon_idle31rejpaniVnose"; _npc globalchat "Kiss my ass"; }; if (_rnd > 20 && _rnd <= 40) then { _npc setmimic "Agresive"; _npc switchmove "CtsPercMstpSnonWnonDnon_idle33rejpaniVzadku"; sleep 3; _npc globalchat "Que te den"; }; if (_rnd > 40 && _rnd <= 60) then { _npc setmimic "Agresive"; _npc switchmove "CtsPercMstpSnonWnonDnon_idle33rejpaniVzadku"; sleep 1; _npc globalchat "Fuck you"; }; if (_rnd > 60 && _rnd <= 80) then { _npc setmimic "Agresive"; _npc switchmove "CtsPercMstpSnonWnonDnon_idle32podrbaniNanose"; sleep 0.5; _npc globalchat "Follow your mother"; }; if (_rnd > 80 && _rnd <= 100) then { _npc setmimic "angry"; sleep 0.1; _npc switchmove "CtsPercMstpSnonWnonDnon_idle32podrbaniNanose"; _npc globalchat "Fuck you"; }; }; if (_join) then { // remove the action once it is activated _npc stop false; if (_npc == leader _npc) then { _npc globalchat "All follow that man"; { _x switchmove ""; [_x] joinSilent _caller; }foreach units _npc; } else { _npc removeAction _id; [_npc] joinSilent _caller; }; }; if (true) exitWith {}; // ========================================================================================================= // Biblioteca de funciones comunes // Version: 5.1.0 // Author: Monsada (smirall@hotmail.com) // http://www.simulacion-esp.com/ // Comunidad Hispana de Simulacin // ========================================================================================================= MON_bugged_vehicles = ["BIS_alice_emptydoor","ACE_Grenade_Geometry"]; // in Vanilia extra bugged vehicle if !(AcePresent) then { MON_bugged_vehicles = MON_bugged_vehicles + ["HMMWV_M998A2_SOV_DES_EP1"]; }; // --------------------------------------------------------------------------------------------------------- //Funcin que permite posicionar objetos a la altura definida //param1: objeto //param2: altura MON_subir = { if (!isserver) exitwith{}; private ["_object","_altura","_pos","_x","_y","_z","_bld","_bldpos"]; _object = _this select 0; _altura = _this select 1; _x = 0; _y = 0; _z = 0; _pos =0; _bld = objnull; _bldpos =0; _pos = getposasl _object; _x = _pos select 0; _y = ( _pos select 1 ); _z = ( _pos select 2 ) + _altura; _object setposasl [_x,_y ,_z]; }; //Retorna la direccin entre dos posiciones MON_getDirPos = {private["_a","_b","_from","_to","_return"]; _from = _this select 0; _to = _this select 1; _return = 0; _a = ((_to select 0) - (_from select 0)); _b = ((_to select 1) - (_from select 1)); if (_a != 0 || _b != 0) then {_return = _a atan2 _b}; if ( _return < 0 ) then { _return = _return + 360 }; _return}; // --------------------------------------------------------------------------------------------------------- //Funcin de borra unidades que han sido matadas //param1: objeto a borrar cuando muera //param2: tiempo a esperar antes de borrar el objeto MON_deleteDead = {private["_u","_s"];_u=_this select 0; _s= _this select 1; _u removeAllEventHandlers "killed"; sleep _s; deletevehicle _u}; MON_deleteDeadDist = {private["_u","_s","_dist","_OCercanos","_cicle","_deleted","_isplayer"]; _i = 0; _cicle = 10; _deleted = false; _isplayer = false; _u = _this select 0; _s = _this select 1; _dist = _this select 2; _u removeAllEventHandlers "killed"; sleep _s; while {!_deleted} do { _isplayer = false; //Buscamos objetos cercanos _OCercanos = nearestObjects [_u, ["Man"] , _dist]; //Validamos si alguno de los soldados cerca es un jugador y est vivo {if (isplayer _x && alive _x) exitwith {_isplayer = true;}}foreach _OCercanos; if (!_isplayer) then { deletevehicle _u; _deleted = true; }; sleep _cicle; }; }; // --------------------------------------------------------------------------------------------------------- //Funcin tomada de UPS, busca el comando en la lista y devuelve el siguiente elemento //param1: comando a buscar //param2: valor por defecto del comando //param3: array con los comandos //Retorna valor del comando encontrado o valor por defecto MON_getArg = {private["_cmd","_arg","_list","_a","_v"]; _cmd=_this select 0; _arg=_this select 1; _list=_this select 2; _a=-1; {_a=_a+1; _v=format["%1",_list select _a]; if (_v==_cmd) then {_arg=(_list select _a+1)}} foreach _list; _arg}; // --------------------------------------------------------------------------------------------------------- //Funcin que devuelve una posicin en 3D a partir de otra, una direccin y una distancia //param1: posicin //param2: direccin //param3: distancia //Retorna vector de posicion en 3D [0,0,0] MON_GetPos = { private ["_pos","_dir","_dist","_cosU","_cosT","_relTX","_sinU","_sinT","_relTY","_newPos","_newPosX","_newPosY", "_targetZ" ]; _pos = _this select 0; _dir = _this select 1; _dist = _this select 2; _targetX = _pos select 0; _targetY = _pos select 1; _targetZ = _pos select 2; //Calculamos posicin _cosU = [_dir] call MON_GetCOS; _sinU = [_dir] call MON_GetSIN; _cosT = abs cos(_dir); _sinT = abs sin(_dir); _relTX = _sinT * _dist * _cosU; _relTY = _cosT * _dist * _sinU; _newPosX = _targetX + _relTX; _newPosY = _targetY + _relTY; _newPos = [_newPosX,_newPosY,_targetZ]; _newPos; }; // --------------------------------------------------------------------------------------------------------- //Funcin que devuelve una posicin en 2D a partir de otra, una direccin y una distancia //param1: posicin //param2: direccin //param3: distancia //Retorna vector de posicion en 2D [0,0] MON_GetPos2D = { private ["_pos","_dir","_dist","_cosU","_cosT","_relTX","_sinU","_sinT","_relTY","_newPos","_newPosX","_newPosY" ]; _pos = _this select 0; _dir = _this select 1; _dist = _this select 2; _targetX = _pos select 0; _targetY = _pos select 1; //Calculamos posicin _cosU = [_dir] call MON_GetCOS; _sinU = [_dir] call MON_GetSIN; _cosT = abs cos(_dir); _sinT = abs sin(_dir); _relTX = _sinT * _dist * _cosU; _relTY = _cosT * _dist * _sinU; _newPosX = _targetX + _relTX; _newPosY = _targetY + _relTY; _newPos = [_newPosX,_newPosY]; _newPos; }; // --------------------------------------------------------------------------------------------------------- //Funcin que devuelve las posiciones que se pueden ocupar dentro de un edificio //param1: objeto location //Retorna numero de posiciones que tiene el edificio MON_BldPos = {private ["_bld","_bldpos"]; _bld=_this; _bldpos = 1; while {format ["%1", _bld buildingPos _bldpos] != "[0,0,0]"} do {_bldpos = _bldpos + 1;}; _bldpos = _bldpos - 1; _bldpos;}; // --------------------------------------------------------------------------------------------------------- //Funcin que devuelve la casa que hay ms cerca del objeto param1 y las posiciones que se pueden ocupar dentro de ella. //param1: objeto //Retorna vector con [objeto location, posiciones que tiene] MON_PosInfo = { private["_obj","_bld","_bldpos"]; _obj=_this; _bld = nearestbuilding _obj; _bldpos= _bld call MON_BldPos; [_bld,_bldpos]; }; // --------------------------------------------------------------------------------------------------------- //Funcin que devuelve el valor negativo o positivo del seno en base a un angulo MON_GetSIN = { private["_dir","_sin","_cos"]; _dir=_this select 0; if (_dir<90) then { _sin=1; } else { if (_dir<180) then { _sin=-1; } else { if (_dir<270) then { _sin=-1; } else { _sin=1; }; }; }; _sin }; // --------------------------------------------------------------------------------------------------------- //Funcin que devuelve el valor negativo o positivo del coseno en base a un angulo MON_GetCOS = { private["_dir","_cos"]; _dir=_this select 0; if (_dir<90) then { _cos=1; } else { if (_dir<180) then { _cos=1; } else { if (_dir<270) then { _cos=-1; } else { _cos=-1; }; }; }; _cos }; //Funcin que busca vehiculos cercanos y hace entrar a las unidades del lider //Parmeters: [_grpid,_npc] // <- _grpid: id of group to assign to vehicle // <- _npc: lider // -> _getin: true if any getin MON_GetIn_NearestVehicles = { private["_vehicles","_npc","_units","_unitsIn","_grpid","_getin"]; _grpid = _this select 0; _npc = _this select 1; _vehicles=[[]]; _air=[[]]; _units = []; _unitsIn = []; _getin=false; if (leader _npc == _npc) then { _units = units _npc; } else { _units = _units + [_npc]; }; { if ( (_x!= vehicle _x && !((vehicle _x) iskindof "StaticWeapon" )) || !(_x iskindof "Man") || !alive _x || !canmove _x || !canstand _x) then {_units = _units-[_x];}; }foreach _units; _unitsIn = _units; //First catch combat vehicles if ( (count _units) > 0) then { _air = [_npc,200] call MON_NearestsAirTransports; {if (_npc knowsabout (_x select 0) <= 0.5) then{ _air = _air - [_x]};}foreach _air; _units = [_grpid, _units, _air, false] call MON_selectvehicles; }; sleep 0.05; if ( (count _units) > 1) then { _vehicles = [_npc,200,true] call MON_NearestsLandCombat; {if (_npc knowsabout(_x select 0) <= 0.5) then{ _vehicles = _vehicles - [_x]};}foreach _vehicles; _units = [_grpid, _units, _vehicles, false] call MON_selectvehicles; }; sleep 0.05; if ( (count _units) > 0) then { _vehicles = [_npc,200] call MON_NearestsLandTransports; {if (_npc knowsabout (_x select 0) <= 0.5) then{ _vehicles = _vehicles - [_x]};}foreach _vehicles; _units = [_grpid, _units, _vehicles, false] call MON_selectvehicles; }; sleep 0.05; if ( (count _units) > 0 && (count _vehicles) > 0) then { sleep 1; _vehicles = _vehicles + _air; _units = [_grpid, _units, _vehicles, true] call MON_selectvehicles; }; sleep 0.05; _unitsIn = _unitsIn - _units; _unitsIn; //sleep 0.05; }; //Funcin que busca vehiculos cercanos y hace entrar a las unidades del lider //Parmeters: [_grpid,_npc] // <- _grpid: id of group to assign to vehicle // <- _npc: lider // -> _getin: true if any getin MON_GetIn_NearestCombat = { private["_vehicles","_npc","_units","_unitsIn","_grpid","_getin","_dist","_all"]; _grpid = _this select 0; _npc = _this select 1; _dist = _this select 2; _all = _this select 3; _vehicles=[[]]; _units = []; _unitsIn = []; _getin=false; if (leader _npc == _npc) then { _units = units _npc; } else { _units = _units + [_npc]; }; { if ( (_x!= vehicle _x && !((vehicle _x) iskindof "StaticWeapon" )) || !(_x iskindof "Man") || !alive _x || !canmove _x || !canstand _x) then {_units = _units-[_x];}; }foreach _units; //If suficient units leader will not get in if (!all) then { if (count _units > 2 ) then {_units = _units - [leader _npc]}; }; _unitsIn = _units; //We need 2 units available if not any leave vehicle to another squad if ( (count _units) > 1) then { _vehicles = [_npc,_dist,_all] call MON_NearestsAirCombat; {if (_npc knowsabout (_x select 0) <= 0.5) then{ _vehicles = _vehicles - [_x]};}foreach _vehicles; _units = [_grpid, _units, _vehicles, false] call MON_selectvehicles; }; sleep 0.05; if ( (count _units) > 1) then { _vehicles = [_npc,_dist,_all] call MON_NearestsLandCombat; {if (_npc knowsabout(_x select 0) <= 0.5) then{ _vehicles = _vehicles - [_x]};}foreach _vehicles; _units = [_grpid, _units, _vehicles, false] call MON_selectvehicles; }; _unitsIn = _unitsIn - _units; _unitsIn; }; //Funcin que busca vehiculos cercanos y hace entrar a las unidades del lider //Parmeters: [_grpid,_npc] // <- _grpid: id of group to assign to vehicle // <- _npc: lider // -> _getin: true if any getin MON_GetIn_NearestBoat = { private["_vehicles","_npc","_units","_unitsIn","_grpid","_getin","_dist"]; _grpid = _this select 0; _npc = _this select 1; _dist = _this select 2; _vehicles=[[]]; _units = []; _unitsIn = []; _getin=false; if (leader _npc == _npc) then { _units = units _npc; } else { _units = _units + [_npc]; }; { if ( (_x!= vehicle _x && !((vehicle _x) iskindof "StaticWeapon" )) || !(_x iskindof "Man") || !alive _x || !canmove _x || !canstand _x) then {_units = _units-[_x];}; }foreach _units; _unitsIn = _units; //We need 2 units available if not any leave vehicle to another squad if ( (count _units) > 0) then { _vehicles = [_npc,_dist] call MON_Nearestsboats; {if (_npc knowsabout (_x select 0) <= 0.5) then{ _vehicles = _vehicles - [_x]};}foreach _vehicles; _units = [_grpid, _units, _vehicles, false] call MON_selectvehicles; }; if ( (count _units) > 1 && (count _vehicles) > 0) then { sleep 1; _units = [_grpid, _units, _vehicles, true] call MON_selectvehicles; }; _unitsIn = _unitsIn - _units; _unitsIn; }; //Funcin que busca staticos cercanos y hace entrar a las unidades del lider //Parmeters: [_grpid,_npc] // <- _grpid: id of group to assign to vehicle // <- _npc: lider // -> _getin: true if any getin MON_GetIn_NearestStatic = { private["_vehicles","_npc","_units","_unitsIn","_grpid","_getin","_count"]; _grpid = _this select 0; _npc = _this select 1; _count = 0; _distance = 100; if ((count _this) > 2) then {_distance = _this select 2;}; _vehicles=[]; _units = []; _unitsIn = []; _getin=false; //Buscamos staticos cerca _vehicles = [_npc,_distance] call MON_NearestsStaticWeapons; if ( count _vehicles == 0) exitwith {_unitsIn;}; if (leader _npc == _npc) then { _units = (units _npc) - [_npc]; } else { _units = _units + [_npc]; }; //Solo tomamos las unidades vivas y que no estn en vehiculo { if ( (_x iskindof "Man") && _x == vehicle _x && alive _x && canmove _x && canstand _x) then { _unitsIn = _unitsIn + [_x]; }; }foreach _units; //Intentamos tomar solo las que estn disponibles _units = []; { if (unitready _x) then { _units = _units + [_x]; }; }foreach _unitsin; //Si hay unidades disponibles las usamos if (count _units > 0) then { _unitsIn = _units; }; //if (KRON_UPS_Debug>0 ) then {player sidechat format["%1: Found %2 estatic weapons %3 men available",_grpid,count _vehicles, count _unitsIn]}; _units = _unitsIn; if ( count _unitsIn > 0) then { _units = [_grpid, _units, _vehicles, true] call MON_selectvehicles; }; _unitsIn = _unitsIn - _units; _unitsIn; }; //Function to assign units to vehicles //Parmeters: [_grpid,_unitsin,_vehicle] // <- _grpid: id of group to assign to vehicle // <- _units: array of units to getin // <- _vehicles: array of vehicles to use // -> _untis: array of units getin MON_selectvehicles = { private["_vehicles","_emptypositions","_units","_unitsIn","_i","_grpid","_vehgrpid","_unit","_wp","_any","_index","_cargo"]; _grpid = _this select 0; _units = _this select 1; _vehicles = _this select 2; _any = _this select 3; //meter en cualquier vehiculo _wp = []; _vehicle = []; _unitsIn = []; _emptypositions = 0; _i = 0; _vehgrpid = 0; _unit = objnull; _index = 0; _cargo = []; { if ((count _units) == 0 ) exitwith {}; _vehicle = _x select 0 ; _emptypositions = _x select 1; _unitsIn = []; _i = 0; _vehgrpid = _vehicle getvariable ("UPSMON_grpid"); _cargo = _vehicle getvariable ("UPSMON_cargo"); if ( isNil("_vehgrpid") ) then {_vehgrpid = 0;}; if ( isNil("_cargo") ) then {_cargo = [];}; //Asignamos el vehiculo a a la escuadra si contiene las posiciones justas if (_vehgrpid == 0) then { _vehicle setVariable ["UPSMON_grpid", _grpid, false]; _vehicle setVariable ["UPSMON_cargo", _unitsIn, false]; _vehgrpid = _grpid; }; { if (!alive _x || !canmove _x) then {_cargo = _cargo - [_x]; }; }foreach _cargo; _emptypositions = _emptypositions - (count _cargo - count ( crew _vehicle) ); //if (KRON_UPS_Debug>0) then {player sidechat format["%1 %2 positions=%3 cargo=%4 crew=%5",_grpid, typeof _vehicle, _emptypositions, count _cargo,count (crew _vehicle)]}; //ahora buscamos en cualquier vehiculo if ( _vehgrpid == _grpid || (_emptypositions > 0 && _any)) then { while {_i < _emptypositions && _i < count _units} do { _unit = _units select _i; _unitsIn = _unitsIn + [_unit]; _i = _i + 1; }; _units = _units - _unitsIn; if ( (count _unitsIn) > 0) then { //Metemos las unidades en el vehiculo [_grpid,_unitsIn,_vehicle] spawn MON_UnitsGetIn; if (KRON_UPS_Debug>0 ) then {player sidechat format["%1: Get in %2 %3 units of %4 available",_grpid,typeof _vehicle,count _unitsIn,_emptypositions]}; //if (KRON_UPS_Debug>0 ) then {diag_log format["%1: Moving %3 units into %2 with %4 positions",_grpid,typeof _vehicle,count _unitsIn,_emptypositions]}; }; }; _index = _index + 1; sleep 0.05; } foreach _vehicles; _units; }; //Funcion que mete la tropa en el vehiculo //Parmeters: [_grpid,_unitsin,_vehicle] // <- _grpid: id of group to assign to vehicle // <- _unitsin: array of units to getin // <- _vehicle MON_UnitsGetIn = { private["_grpid","_vehicle","_npc","_driver","_gunner", "_unitsin", "_units" , "_Commandercount","_Drivercount","_Gunnercount","_cargo", "_Cargocount","_emptypositions","_commander","_vehgrpid","_cargo"]; _grpid = _this select 0; _unitsin = _this select 1; _vehicle = _this select 2; _units = _unitsin; _driver = objnull; _gunner = objnull; _commander = objnull; _Cargocount = 0; _Gunnercount = 0; _Commandercount = 0; _Drivercount = 0; _cargo = []; _Cargocount = (_vehicle) emptyPositions "Cargo"; _Gunnercount = (_vehicle) emptyPositions "Gunner"; _Commandercount = (_vehicle) emptyPositions "Commander"; _Drivercount = (_vehicle) emptyPositions "Driver"; //Obtenemos el identificador del vehiculo _vehgrpid = _vehicle getvariable ("UPSMON_grpid"); _cargo = _vehicle getvariable ("UPSMON_cargo"); if ( isNil("_vehgrpid") ) then {_vehgrpid = 0;}; if ( isNil("_cargo") ) then {_cargo = [];}; _cargo = _cargo - _unitsin; //Para evitar duplicados _cargo = _cargo + _unitsin; //Aadimos a la carga _vehicle setVariable ["UPSMON_cargo", _cargo, false]; //Hablitamos a la IA para entrar en el vehiculo { [_x,0] call MON_dostop; if ("StaticWeapon" countType [vehicle (_x)]>0) then { _x spawn MON_doGetOut; }; unassignVehicle _x; _x spawn MON_Allowgetin; }foreach _units; //Assigned to the leader as commander or cargo { if ( _vehgrpid == _grpid && _x == leader _x && _Commandercount > 0 ) exitwith { _Commandercount = 0; _commander = _x; _commander assignAsCommander _vehicle; _units = _units - [_x]; [_x] orderGetIn true; }; if ( _x == leader _x && _Cargocount > 0 ) exitwith { _x assignAsCargo _vehicle; _units = _units - [_x]; _Cargocount = _Cargocount - 1; [_x] orderGetIn true; }; }foreach _units; //if (KRON_UPS_Debug>0 ) then {player sidechat format["%1: _vehgrpid %2 ,_Gunnercount %3, %4",_grpid,_vehgrpid,_Gunnercount,count _units]}; //Si el vehiculo pertenece al grupo asignamos posiciones de piloto, sin solo de carga if ( _vehgrpid == _grpid ) then { //Asignamos el conductor if ( _Drivercount > 0 && count (_units) > 0 ) then { _driver = _units select (count _units - 1); [_driver,_vehicle,0] spawn MON_assignasdriver; _units = _units - [_driver]; }; //Asignamos el artillero if ( _Gunnercount > 0 && count (_units) > 0 ) then { _gunner = [_vehicle,_units] call MON_getNearestSoldier; [_gunner,_vehicle] spawn MON_assignasgunner; _units = _units - [_gunner]; }; }; //if (KRON_UPS_Debug>0 ) then {player sidechat format["%1: _vehgrpid=%2 units=%4",_grpid,_vehgrpid,_cargocount,count _units]}; //Movemos el resto como carga if ( _Cargocount > 0 && count (_units) > 0 ) then { { _x assignAsCargo _vehicle; [_x] orderGetIn true; sleep 0.05; } forEach _units; }; { [_x] spawn MON_avoidDissembark; } forEach _unitsin - [_driver] - [_gunner] -[_commander]; }; MON_getNearestSoldier = { private["_units","_obj","_near"]; _obj = _this select 0; _units = _this select 1; _near = objnull; { if (isnull _near) then { _near = _x; } else { if ( _x distance _obj < _near distance _obj ) then {_near = _x;}; }; }foreach _units; _near; }; MON_avoidDissembark = { private["_npc","_vehicle","_timeout"]; _npc = _this select 0; _vehicle = vehicle _npc ; _timeout = 120; _timeout = time + _timeout; while {_npc == vehicle _npc && alive _npc && canmove _npc && time < _timeout} do { sleep 1; }; if (!alive _npc || !canmove _npc || time >= _timeout || driver vehicle _npc == _npc) exitwith{}; _npc stop true; while {_npc != vehicle _npc && alive _npc && canmove _npc} do {sleep 1;}; _npc stop false; sleep 0.5; if (!alive _npc || !canmove _npc) exitwith{}; }; //Funcin que devuelve un vehiculo de transporte cercano //Parmeters: [_npc] // <- _npc: object for position search // -> _vehicle: vehicle MON_NearestLandTransport = { private["_vehicle","_npc","_transportSoldier","_OCercanos","_driver", "_Commandercount","_Drivercount","_Gunnercount","_Cargocount"]; _npc = _this; _OCercanos = []; _transportSoldier = 0; _vehicle = objnull; _Cargocount = 0; _Gunnercount = 0; _Commandercount = 0; _Drivercount = 0; //Buscamos objetos cercanos _OCercanos = nearestObjects [_npc, ["Car","TANK","Truck","Motorcycle"] , 150]; { _Cargocount = (_x) emptyPositions "Cargo"; _Gunnercount = (_x) emptyPositions "Gunner"; _Commandercount = (_x) emptyPositions "Commander"; _Drivercount = (_x) emptyPositions "Driver"; _transportSoldier = _Cargocount + _Gunnercount + _Commandercount + _Drivercount; if (!locked _x && canMove _x && _transportSoldier >= count (units _npc) && !(typeof _x in MON_bugged_vehicles) && (_drivercount > 0 || side _npc == side _x )) exitwith {_vehicle = _x;}; }foreach _OCercanos; _vehicle; }; //Funcin que devuelve un array con los vehiculos terrestres ms cercanos //Parmeters: [_npc,_distance] // <- _npc: object for position search // <- _distance: max distance from npc // -> _vehicles: array of vehicles MON_NearestsLandTransports = { private["_vehicles","_npc","_emptypositions","_OCercanos","_driver", "_Commandercount","_Drivercount","_Gunnercount","_Cargocount","_distance"]; _npc = _this select 0; _distance = _this select 1; _OCercanos = []; _emptypositions = 0; _vehicles = []; _Cargocount = 0; _Gunnercount = 0; _Commandercount = 0; _Drivercount = 0; //Buscamos objetos cercanos _OCercanos = nearestObjects [_npc, ["Car","TANK","Truck","Motorcycle"] , _distance]; { _Cargocount = (_x) emptyPositions "Cargo"; _Gunnercount = (_x) emptyPositions "Gunner"; _Commandercount = (_x) emptyPositions "Commander"; _Drivercount = (_x) emptyPositions "Driver"; _emptypositions = _Cargocount + _Gunnercount + _Commandercount + _Drivercount; if (!locked _x && _emptypositions > 0 && canMove _x && !(typeof _x in MON_bugged_vehicles) && (_drivercount > 0 || side _npc == side _x )) then { _vehicles = _vehicles + [[_x,_emptypositions]];}; }foreach _OCercanos; _vehicles; }; //Funcin que devuelve un array con los vehiculos terrestres ms cercanos //Parmeters: [_npc,_distance] // <- _npc: object for position search // <- _distance: max distance from npc // -> _vehicles: array of vehicles MON_NearestsLandCombat = { private["_vehicles","_npc","_emptypositions","_OCercanos","_driver", "_Commandercount","_Drivercount","_Gunnercount","_Cargocount","_distance","_all"]; _npc = _this select 0; _distance = _this select 1; _all = _this select 2; _OCercanos = []; _emptypositions = 0; _vehicles = []; _Cargocount = 0; _Gunnercount = 0; _Commandercount = 0; _Drivercount = 0; //Buscamos objetos cercanos _OCercanos = nearestObjects [_npc, ["Car","TANK","Truck","Motorcycle"] , _distance]; { if (_all) then { _Cargocount = (_x) emptyPositions "Cargo"; }; _Gunnercount = (_x) emptyPositions "Gunner"; _Drivercount = (_x) emptyPositions "Driver"; _Commandercount = (_x) emptyPositions "Commander"; _emptypositions = _Cargocount + _Gunnercount + _Commandercount + _Drivercount; if (!locked _x && _Gunnercount > 0 && canMove _x && !(typeof _x in MON_bugged_vehicles) && (_drivercount > 0 || side _npc == side _x )) then { _vehicles = _vehicles + [[_x,_emptypositions]];}; }foreach _OCercanos; _vehicles; }; //Funcin que devuelve un array con los vehiculos aereos ms cercanos //Parmeters: [_npc,_distance] // <- _npc: object for position search // <- _distance: max distance from npc // -> _vehicles: array of vehicles MON_NearestsAirTransports = { private["_vehicles","_npc","_emptypositions","_OCercanos","_driver", "_Commandercount","_Drivercount","_Gunnercount","_Cargocount","_distance"]; _npc = _this select 0; _distance = _this select 1; _OCercanos = []; _emptypositions = 0; _vehicles = []; _Cargocount = 0; _Gunnercount = 0; _Commandercount = 0; _Drivercount = 0; //Buscamos objetos cercanos _OCercanos = nearestObjects [_npc, ["Helicopter"] , _distance]; { _Cargocount = (_x) emptyPositions "Cargo"; _Gunnercount = (_x) emptyPositions "Gunner"; _Commandercount = (_x) emptyPositions "Commander"; _Drivercount = (_x) emptyPositions "Driver"; _emptypositions = _Cargocount + _Gunnercount + _Commandercount + _Drivercount; if (!locked _x && _emptypositions > 0 && canMove _x && !(typeof _x in MON_bugged_vehicles) && (_drivercount > 0 || side _npc == side _x )) then { _vehicles = _vehicles + [[_x,_emptypositions]];}; }foreach _OCercanos; _vehicles; }; //Function that returns an array with the closest air vehicles //Parmeters: [_npc,_distance] // <- _npc: object for position search // <- _distance: max distance from npc // -> _vehicles: array of vehicles MON_NearestsAirCombat = { private["_vehicles","_npc","_emptypositions","_OCercanos","_driver", "_Commandercount","_Drivercount","_Gunnercount","_Cargocount","_distance","_all"]; _npc = _this select 0; _distance = _this select 1; _all = _this select 2; _OCercanos = []; _emptypositions = 0; _vehicles = []; _Cargocount = 0; _Gunnercount = 0; _Commandercount = 0; _Drivercount = 0; //Buscamos objetos cercanos _OCercanos = nearestObjects [_npc, ["Helicopter"] , _distance]; { if (_all) then { _Cargocount = (_x) emptyPositions "Cargo"; }; // _Gunnercount = [_x] call RAF_numberOfTurrets; _Gunnercount = (_x) emptyPositions "Gunner"; _Drivercount = (_x) emptyPositions "Driver"; _Commandercount = (_x) emptyPositions "Commander"; _emptypositions = _Cargocount + _Gunnercount + _Commandercount + _Drivercount; if (!locked _x && _Gunnercount > 0 && canMove _x && !(typeof _x in MON_bugged_vehicles) && (_drivercount > 0 || side _npc == side _x )) then { _vehicles = _vehicles + [[_x,_emptypositions]];}; }foreach _OCercanos; _vehicles //return }; //Funcin que devuelve un array con los vehiculos staticos ms cercanos //Parmeters: [_npc,_distance] // <- _npc: object for position search // <- _distance: max distance from npc // -> _vehicles: array of vehicles MON_NearestsStaticWeapons = { private["_vehicles","_npc","_emptypositions","_OCercanos","_driver", "_Commandercount","_Drivercount","_Gunnercount","_Cargocount","_distance"]; _npc = _this select 0; _distance = _this select 1; _OCercanos = []; _emptypositions = 0; _vehicles = []; _Cargocount = 0; _Gunnercount = 0; _Commandercount = 0; _Drivercount = 0; //Buscamos objetos cercanos _OCercanos = nearestObjects [_npc, ["StaticWeapon"] , _distance]; { _Gunnercount = (_x) emptyPositions "Gunner"; _emptypositions = _Gunnercount; if (!locked _x && alive _x && _emptypositions > 0 && !(typeof _x in MON_bugged_vehicles) ) then { _vehicles = _vehicles + [[_x,_emptypositions]];}; }foreach _OCercanos; _vehicles //return }; //Funcin que devuelve un array con los vehiculos marinos ms cercanos //Parmeters: [_npc,_distance] // <- _npc: object for position search // <- _distance: max distance from npc // -> _vehicles: array of vehicles MON_Nearestsboats = { private["_vehicles","_npc","_emptypositions","_OCercanos","_driver", "_Commandercount","_Drivercount","_Gunnercount","_Cargocount","_distance"]; _npc = _this select 0; _distance = _this select 1; _OCercanos = []; _emptypositions = 0; _vehicles = []; _Cargocount =