sreVprefixz\ace\addons\weatherMikeroDePbo.dll.7.97version8bd4922f$PBOPREFIX$.backupуH`ACE_Settings.hppмЖ‡A`мCfgEventhandlers.hppPЖ‡A`PCfgVehicles.hppMЖ‡A`MCfgWorlds.hppЫЖ‡A`Ыconfig.cpp=Ж‡A`=functions\fnc_calculateAirDensity.sqf•Ж‡A`•functions\fnc_calculateBarometricPressure.sqf Ж‡A` functions\fnc_calculateDensityAltitude.sqfНЖ‡A`Нfunctions\fnc_calculateDewPoint.sqf‚Ж‡A`‚functions\fnc_calculateHeatIndex.sqf|Ж‡A`|functions\fnc_calculateRoughnessLength.sqfдЖ‡A`дfunctions\fnc_calculateSpeedOfSound.sqflЖ‡A`lfunctions\fnc_calculateTemperatureAtHeight.sqfzЖ‡A`zfunctions\fnc_calculateWetBulb.sqfўЖ‡A`ўfunctions\fnc_calculateWindChill.sqfcЖ‡A`cfunctions\fnc_calculateWindSpeed.sqfg Ж‡A`g functions\fnc_displayAirTemp.sqfѓЖ‡A`ѓfunctions\fnc_displayWindInfo.sqffЖ‡A`ffunctions\fnc_getApproximateAirTemp.sqf Ж‡A` functions\fnc_getMapData.sqf;Ж‡A`;functions\fnc_initModuleSettings.sqf~Ж‡A`~functions\fnc_initWind.sqfлЖ‡A`лfunctions\fnc_updateHumidity.sqfЖ‡A`functions\fnc_updateTemperature.sqfќЖ‡A`ќfunctions\fnc_updateWeather.sqfфЖ‡A`фfunctions\fnc_updateWind.sqfЎЖ‡A`Ўfunctions\script_component.hpp5ыї\5init3DEN.sqf9Ж‡A`9initSettings.sqfeЖ‡A`eREADME.mdтЖ‡A`тRscTitles.hppќЖ‡A`ќscript_component.hpp0Ж‡A`0stringtable.xmlх3Ж‡A`х3UI\Icon_Module_Wind_ca.paaљыї\љUI\temp_ca.paaVЖ‡A`VUI\wind_arrow_ca.paa4Ж‡A`4UI\wind_dot_ca.paaVЖ‡A`VUI\wind_noneCircle_ca.paaVЖ‡A`VXEH_postInit.sqfmЖ‡A`mXEH_postServerInit.sqfœЖ‡A`œXEH_preInit.sqfЖ‡A`XEH_PREP.hpp1Ж‡A`1XEH_preStart.sqf<Ж‡A`<Texheaders.binBуH`Bz\ace\addons\weatherclass ACE_Settings { class GVAR(enabled) { movedToSQF = 1; }; class GVAR(updateInterval) { movedToSQF = 1; }; class GVAR(windSimulation) { movedToSQF = 1; }; }; class Extended_PreStart_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; class Extended_PreInit_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preInit)); }; }; class Extended_PostInit_EventHandlers { class ADDON { serverInit = QUOTE(call COMPILE_FILE(XEH_PostServerInit)); init = QUOTE(call COMPILE_FILE(XEH_postInit)); }; }; class Extended_DisplayLoad_EventHandlers { class Display3DEN { ADDON = QUOTE(call COMPILE_FILE(init3DEN)); }; }; class CfgVehicles { class Man; class CAManBase: Man { class ACE_SelfActions { class ACE_CheckAirTemperature { displayName = CSTRING(CheckAirTemperature); condition = QUOTE(GVAR(enabled) && GVAR(showCheckAirTemperature)); exceptions[] = {"isNotInside", "isNotSitting"}; statement = QUOTE([ACE_player] call FUNC(getApproximateAirTemp)); icon = QPATHTOF(UI\temp_ca.paa); }; }; }; class ACE_Module; class GVAR(ModuleSettings): ACE_Module { scope = 1; displayName = CSTRING(Module_DisplayName); icon = QPATHTOF(UI\Icon_Module_Wind_ca.paa); category = "ACE"; function = QUOTE(DFUNC(initModuleSettings)); functionPriority = 1; isGlobal = 1; isSingular = 1; isTriggerActivated = 0; author = ECSTRING(common,ACETeam); class Arguments { class enabled { displayName = CSTRING(enabled_DisplayName); description = CSTRING(enabled_Description); typeName = "BOOL"; defaultValue = 1; }; class updateInterval { displayName = CSTRING(updateInterval_DisplayName); description = CSTRING(updateInterval_Description); typeName = "NUMBER"; defaultValue = 60; }; class windSimulation { displayName = CSTRING(windSimulation_DisplayName); description = CSTRING(windSimulation_Description); typeName = "BOOL"; defaultValue = 1; }; }; class ModuleDescription { description = CSTRING(Module_Description); }; }; }; class CfgWorlds { class CAWorld; class Stratis: CAWorld { // Source: http://www.iten-online.ch/klima/europa/griechenland/limnos.htm ACE_TempDay[] = {10, 10, 12, 16, 21, 26, 29, 28, 25, 20, 15, 11}; ACE_TempNight[] = {4, 4, 6, 8, 13, 17, 20, 20, 16, 12, 8, 6}; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Limnos,Greece ACE_Humidity[] = {78, 77, 78, 74, 71, 60, 59, 61, 65, 72, 79, 80}; // Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece ACE_WindSpeedMax[] = {{8.8, 5.5}, {8.8, 5}, {8.6, 4.8}, {7.6, 3.4}, {7.0, 3.0}, {7.1, 3.0}, {7.5, 3.1}, {8.0, 3.2}, {7.6, 3.5}, {7.8, 4.6}, {7.9, 5.0}, {8.2, 5.5}}; ACE_WindSpeedMean[] = {4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0}; ACE_WindSpeedMin[] = {{0.2, 5.0}, {0.1, 5.0}, {0.2, 4.3}, {0.0, 3.0}, {0.0, 2.1}, {0.0, 2.0}, {0.1, 3.1}, {0.3, 3.1}, {0.0, 3.6}, {0.0, 4.2}, {0.1, 5.0}, {0.2, 5.5}}; // using the "Fraction of Time Spent with Various Wind Directions in (month)" graph ACE_WindDirectionProbabilities[] = {{0.06, 0.32, 0.05, 0.04, 0.15, 0.06, 0.02, 0.02}, // January {0.08, 0.32, 0.04, 0.04, 0.18, 0.06, 0.02, 0.02}, // February {0.09, 0.30, 0.04, 0.04, 0.20, 0.06, 0.02, 0.03}, // March {0.10, 0.25, 0.03, 0.04, 0.22, 0.06, 0.02, 0.04}, // April {0.18, 0.25, 0.03, 0.04, 0.18, 0.04, 0.01, 0.05}, // May {0.25, 0.25, 0.03, 0.03, 0.15, 0.03, 0.00, 0.08}, // June {0.32, 0.30, 0.02, 0.02, 0.10, 0.01, 0.00, 0.09}, // July {0.28, 0.35, 0.02, 0.01, 0.08, 0.01, 0.00, 0.08}, // August {0.20, 0.37, 0.03, 0.01, 0.11, 0.01, 0.01, 0.05}, // September {0.10, 0.39, 0.04, 0.02, 0.15, 0.02, 0.01, 0.03}, // October {0.08, 0.38, 0.06, 0.04, 0.19, 0.03, 0.02, 0.02}, // November {0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02}};// December // N , NE , E , SE , S , SW , W , NW }; class Altis: CAWorld { // Source: http://www.iten-online.ch/klima/europa/griechenland/limnos.htm ACE_TempDay[] = {10, 10, 12, 16, 21, 26, 29, 28, 25, 20, 15, 11}; ACE_TempNight[] = {4, 4, 6, 8, 13, 17, 20, 20, 16, 12, 8, 6}; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Limnos,Greece ACE_Humidity[] = {78, 77, 78, 74, 71, 60, 59, 61, 65, 72, 79, 80}; // Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece ACE_WindSpeedMax[] = {{8.8, 5.5}, {8.8, 5}, {8.6, 4.8}, {7.6, 3.4}, {7.0, 3.0}, {7.1, 3.0}, {7.5, 3.1}, {8.0, 3.2}, {7.6, 3.5}, {7.8, 4.6}, {7.9, 5.0}, {8.2, 5.5}}; ACE_WindSpeedMean[] = {4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0}; ACE_WindSpeedMin[] = {{0.2, 5.0}, {0.1, 5.0}, {0.2, 4.3}, {0.0, 3.0}, {0.0, 2.1}, {0.0, 2.0}, {0.1, 3.1}, {0.3, 3.1}, {0.0, 3.6}, {0.0, 4.2}, {0.1, 5.0}, {0.2, 5.5}}; // using the "Fraction of Time Spent with Various Wind Directions in (month)" graph ACE_WindDirectionProbabilities[] = {{0.06, 0.32, 0.05, 0.04, 0.15, 0.06, 0.02, 0.02}, // January {0.08, 0.32, 0.04, 0.04, 0.18, 0.06, 0.02, 0.02}, // February {0.09, 0.30, 0.04, 0.04, 0.20, 0.06, 0.02, 0.03}, // March {0.10, 0.25, 0.03, 0.04, 0.22, 0.06, 0.02, 0.04}, // April {0.18, 0.25, 0.03, 0.04, 0.18, 0.04, 0.01, 0.05}, // May {0.25, 0.25, 0.03, 0.03, 0.15, 0.03, 0.00, 0.08}, // June {0.32, 0.30, 0.02, 0.02, 0.10, 0.01, 0.00, 0.09}, // July {0.28, 0.35, 0.02, 0.01, 0.08, 0.01, 0.00, 0.08}, // August {0.20, 0.37, 0.03, 0.01, 0.11, 0.01, 0.01, 0.05}, // September {0.10, 0.39, 0.04, 0.02, 0.15, 0.02, 0.01, 0.03}, // October {0.08, 0.38, 0.06, 0.04, 0.19, 0.03, 0.02, 0.02}, // November {0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02}};// December // N , NE , E , SE , S , SW , W , NW }; class Tanoa: CAWorld { // Source: http://www.iten-online.ch/klima/australien/fidschi/suva.htm ACE_TempDay[] = {31, 31, 31, 30, 28, 28, 27, 27, 28, 20, 29, 30}; ACE_TempNight[] = {24, 24, 24, 23, 22, 21, 20, 21, 21, 22, 23, 23}; // Source: https://weather-and-climate.com/average-monthly-Humidity-perc,suva,Fiji ACE_Humidity[] = {81, 83, 85, 84, 80, 80, 78, 76, 77, 78, 79, 80}; // https://weatherspark.com/averages/32711/Suva-Central-Division-Fiji ACE_WindSpeedMax[] = {{6.9, 4.9}, {6.5, 4.8}, {6.4, 4.5}, {6.5, 4.3}, {6.4, 4.2}, {6.6, 4.5}, {6.5, 4.8}, {7.0, 4.9}, {7.3, 5.1}, {7.3, 5.1}, {7.2, 5.2}, {6.8, 5.1}}; ACE_WindSpeedMean[] = {2.2, 2, 1.9, 1.6, 1.9, 2, 2.1, 2.3, 2.7, 3, 2.7, 2.4}; ACE_WindSpeedMin[] = {{0.0, 0.1}, {0.1, 0.1}, {0.0, 0.0}, {0.0, 0.4}, {0.0, 0.4}, {0.0, 0.2}, {0.0, 0.5}, {0.0, 0.5}, {0.1, 1.0}, {0.2, 1.3}, {0.0, 0.5}, {0.0, 0.5}}; // using the "Fraction of Time Spent with Various Wind Directions in (month)" graph ACE_WindDirectionProbabilities[] = {{0.05, 0.08, 0.18, 0.13, 0.05, 0.01, 0.02, 0.05}, // January {0.06, 0.08, 0.14, 0.11, 0.05, 0.01, 0.02, 0.06}, // February {0.06, 0.08, 0.12, 0.09, 0.04, 0.01, 0.03, 0.06}, // March {0.05, 0.08, 0.13, 0.13, 0.05, 0.01, 0.02, 0.06}, // April {0.02, 0.06, 0.15, 0.16, 0.06, 0.01, 0.01, 0.03}, // May {0.02, 0.07, 0.17, 0.17, 0.06, 0.01, 0.01, 0.03}, // June {0.02, 0.07, 0.14, 0.18, 0.08, 0.02, 0.01, 0.02}, // July {0.02, 0.05, 0.18, 0.18, 0.09, 0.03, 0.01, 0.02}, // August {0.01, 0.04, 0.21, 0.22, 0.08, 0.01, 0.01, 0.01}, // September {0.01, 0.06, 0.24, 0.24, 0.07, 0.01, 0.01, 0.02}, // October {0.02, 0.07, 0.25, 0.20, 0.04, 0.01, 0.01, 0.02}, // November {0.03, 0.08, 0.22, 0.16, 0.05, 0.01, 0.01, 0.03}};// December // N , NE , E , SE , S , SW , W , NW }; }; #include "script_component.hpp" class CfgPatches { class ADDON { name = COMPONENT_NAME; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; author = ECSTRING(common,ACETeam); authors[] = {"q1184", "Rocko", "esteldunedain", "Ruthberg"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; }; #include "CfgEventhandlers.hpp" #include "CfgWorlds.hpp" #include "RscTitles.hpp" #include "CfgVehicles.hpp" #include "ACE_Settings.hpp" #include "script_component.hpp" /* * Author: Ruthberg * Calculates the air density * * Arguments: * 0: temperature - degrees celsius * 1: pressure - hPa * 2: relativeHumidity - value between 0.0 and 1.0 * * Return Value: * density of air - kg * m^(-3) * * Example: * [0, 1020, 0.5] call ace_weather_fnc_calculateAirDensity * * Public: No */ params ["_temperature", "_pressure", "_relativeHumidity"]; _pressure = _pressure * 100; // hPa to Pa if (_relativeHumidity > 0) then { // Saturation vapor pressure calculated according to: http://wahiduddin.net/calc/density_algorithms.htm // 610.78 gives pressure in Pa - https://en.wikipedia.org/wiki/Density_of_air private _pSat = 610.78 * 10 ^ ((7.5 * _temperature) / (_temperature + 237.3)); private _vaporPressure = _relativeHumidity * _pSat; private _partialPressure = _pressure - _vaporPressure; (_partialPressure * DRY_AIR_MOLAR_MASS + _vaporPressure * WATER_VAPOR_MOLAR_MASS) / (UNIVERSAL_GAS_CONSTANT * KELVIN(_temperature)) } else { _pressure / (SPECIFIC_GAS_CONSTANT_DRY_AIR * KELVIN(_temperature)) }; #include "script_component.hpp" /* * Author: Ruthberg * Calculates the barometric pressure based on altitude and weather * * Arguments: * altitude - meters * * Return Value: * barometric pressure - hPA * * Example: * 0 call ace_weather_fnc_calculateBarometricPressure * * Public: No */ ((1013.25 - 10 * GVAR(currentOvercast)) * (1 - (0.0065 * (EGVAR(common,mapAltitude) + _this)) / (KELVIN(GVAR(currentTemperature)) + 0.0065 * EGVAR(common,mapAltitude))) ^ 5.255754495); #include "script_component.hpp" /* * Author: Ruthberg * Calculates density altitude for a given air density * * Arguments: * density of air - kg * m^(-3) * * Return Value: * density altitude - m * * Example: * 1.225 call ace_weather_fnc_calculateDensityAltitude * * Public: No */ // Source: http://wahiduddin.net/calc/density_altitude.htm ((44.3308 - 42.2665 * _this ^ 0.2349692456) * 1000) #include "script_component.hpp" /* * Author: Ruthberg * Calculates dew point based on temperature and relative humidity * * Arguments: * 0: temperature - degrees celsius * 1: relativeHumidity - value between 0.0 and 1.0 * * Return Value: * dew point * * Example: * [32, 0.4] call ace_weather_fnc_calculateDewPoint * * Public: No */ #define __b 17.67 #define __c 243.5 params ["_t", "_rh"]; if (_rh == 0) exitWith { CELSIUS(0) }; // Source: https://en.wikipedia.org/wiki/Dew_point private _gamma = ln(_rh) + (__b * _t) / (__c + _t); (__c * _gamma) / (__b - _gamma) #include "script_component.hpp" /* * Author: Ruthberg * Calculates heat index based on temperature and relative humidity * * Arguments: * 0: temperature - degrees celsius * 1: relativeHumidity - value between 0.0 and 1.0 * * Return Value: * heat index * * Example: * [36, 0.75] call ace_weather_fnc_calculateHeatIndex * * Public: No */ #define __C1 0.363445176 #define __C2 0.988622465 #define __C3 4.777114035 #define __C4 -0.114037667 #define __C5 -0.000850208 #define __C6 -0.020716198 #define __C7 0.000687678 #define __C8 0.000274954 params ["_t", "_rh"]; // Source: https://en.wikipedia.org/wiki/Heat_index _t = TO_FAHRENHEIT(_t); _rh = _rh * 100; // relative humidity in % TO_CELSIUS(__C1 + __C2 * _t + __C3 * _rh + __C4 * _t * _rh + __C5 * _t^2 + __C6 * _rh^2 + __C7 * _t^2 * _rh + __C8 * _t * _rh^2) #include "script_component.hpp" /* * Author: Ruthberg * Calculates the terrain roughness length at a given world position * * Arguments: * world position * * Return Value: * roughness length * * Example: * (getPosASL player) call ace_weather_fnc_calculateRoughnessLength * * Public: No */ // Source: http://es.ucsc.edu/~jnoble/wind/extrap/index.html #define ROUGHNESS_LENGTHS [0.0002, 0.0005, 0.0024, 0.03, 0.055, 0.1, 0.2, 0.4, 0.8, 1.6] private _windSource = _this vectorDiff ((vectorNormalized wind) vectorMultiply 25); private _nearBuildings = { // Filter lights - fixes high roughness on airports (#6602) str _x find "light" == -1 } count (_windSource nearObjects ["Building", 50]); private _isWater = surfaceIsWater _windSource; if (_nearBuildings == 0 && _isWater) exitWith { 0.0005 }; if (_nearBuildings >= 10) exitWith { 1.6 }; ROUGHNESS_LENGTHS select (2 + (_nearBuildings min 6)) #include "script_component.hpp" /* * Author: Ruthberg * Calculates the speed of sound for a given temperature * * Arguments: * temperature - degrees celsius * * Return Value: * speed of sound - m/s * * Example: * 0 call ace_weather_fnc_calculateSpeedOfSound * * Public: No */ (331.3 * sqrt(1 + (_this / 273.15))) #include "script_component.hpp" /* * Author: Ruthberg * Calculates the temperature based on altitude and weather * * Arguments: * height - meters * * Return Value: * temperature - degrees celsius * * Example: * 500 call ace_weather_fnc_calculateTemperatureAtHeight * * Public: No */ (GVAR(currentTemperature) - 0.0065 * _this) #include "script_component.hpp" /* * Author: Ruthberg * Calculates wet bulb based on temperature and relative humidity * * Arguments: * 0: temperature - degrees celsius * 1: pressure - hPa * 2: relativeHumidity - value between 0.0 and 1.0 * * Return Value: * wet bulb * * Example: * [0, 1020, 0.5] call ace_weather_fnc_calculateWetBulb * * Public: No */ params ["_temperature", "_pressure", "_relativeHumidity"]; // Source: http://cosmoquest.org/forum/showthread.php?155366-Calculating-Wet-Bulb-Temperature-from-RH-amp-Dry-Bulb private _es = 6.112 * exp((17.67 * _temperature) / (_temperature + 243.5)); private _e = _es * _relativeHumidity; private _eDiff = _es - _e; private _eGuessPrev = _es; private _cTempDelta = 3.3145; private _twGuess = _temperature; for "_j" from 1 to 50 do { _twGuess = _twGuess - _cTempDelta; private _eguess = 6.112 * exp((17.67 * _twGuess) / (_twGuess + 243.5)); _eguess = _eguess - (_pressure * (_temperature - _twGuess) * 0.00066 * (1 + (0.00115 * _twGuess))); _eDiff = _eguess - _e; if (abs(_eDiff) <= 0.001) exitWith {}; _cTempDelta = _eDiff / ((_eguessprev - _eguess) / _cTempDelta); _eguessprev = _eguess; }; _twGuess #include "script_component.hpp" /* * Author: Ruthberg * Calculates wind chill based on temperature and wind speed * * Arguments: * 0: temperature - degrees celsius * 1: wind speed - m/s * * Return Value: * wind chill * * Example: * [0, 10] call ace_weather_fnc_calculateWindChill * * Public: No */ params ["_t", "_v"]; // Source: https://en.wikipedia.org/wiki/Wind_chill if (_t > 10) exitWith { _t }; if (_v < 1.39) exitWith { _t }; _v = _v * 3,6; // wind speed in km/h (13.12 + 0.6215 * _t - 11.37 * _v ^ 0.16 + 0.3965 * _t * _v ^ 0.16) #include "script_component.hpp" /* * Author: Ruthberg * Calculates the true wind speed at a given world position * * Arguments: * 0: world position - posASL * 1: Account for wind gradient (used in advanced ballistics) * 2: Account for terrain * 3: Account for obstacles * * Return Value: * wind speed - m/s * * Example: * [eyePos ACE_player, true, true, true] call ace_weather_fnc_calculateWindSpeed; * * Public: No */ params ["_position", "_windGradientEnabled", "_terrainEffectEnabled", "_obstacleEffectEnabled"]; private _fnc_polar2vect = { params ["_mag","_dir","_elev"]; private _mag2D = _mag * cos(_elev); [_mag2D * sin(_dir), _mag2D * cos(_dir), _mag * sin(_elev)]; }; private _windSpeed = vectorMagnitude wind; private _windDir = (wind select 0) atan2 (wind select 1); private _windDirAdjusted = _windDir + 180; // Wind gradient if (_windGradientEnabled) then { if (_windSpeed > 0.05) then { private _height = (ASLToATL _position) select 2; if (_height > 0 && _height < 20) then { private _roughnessLength = _position call FUNC(calculateRoughnessLength); _windSpeed = _windSpeed * (0 max (ln(_height / _roughnessLength) / ln(20 / _roughnessLength))); }; }; }; // Terrain effect on wind if (_terrainEffectEnabled) then { if (_windSpeed > 0.05) then { private _newWindSpeed = 0; { private _windSource = [100, _windDirAdjusted, _x] call _fnc_polar2vect; if (!(terrainIntersectASL [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 9) * _windSpeed; }; _windSource = [100, _windDirAdjusted + _x, 0] call _fnc_polar2vect; if (!(terrainIntersectASL [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 9) * _windSpeed; }; _windSource = [100, _windDirAdjusted - _x, 0] call _fnc_polar2vect; if (!(terrainIntersectASL [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 9) * _windSpeed; }; nil } count [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; _windSpeed = _newWindSpeed; }; }; // Obstacle effect on wind if (_obstacleEffectEnabled) then { if (_windSpeed > 0.05) then { private _newWindSpeed = 0; { private _windSource = [20, _windDirAdjusted, _x] call _fnc_polar2vect; if (!(lineIntersects [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 2) * _windSpeed; }; _windSource = [20, _windDirAdjusted + _x, 0] call _fnc_polar2vect; if (!(lineIntersects [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 2) * _windSpeed; }; _windSource = [20, _windDirAdjusted - _x, 0] call _fnc_polar2vect; if (!(lineIntersects [_position, _position vectorAdd _windSource])) exitWith { _newWindSpeed = cos(_x * 2) * _windSpeed; }; nil } count [0, 5, 10, 15, 20, 25, 30, 35, 40, 45]; _windSpeed = _newWindSpeed; }; }; _windSpeed = 0 max _windSpeed; _windSpeed #include "script_component.hpp" /* * Author: LorenLuke * Displays an abstracted depiction of air temperature to a unit. * * Arguments: * 0: Temperature * 1: Unit Bias range * * Return Value: * None * * Example: * [15.8] call ace_weather_fnc_displayAirTemp * * Public: No */ params ["_apparent_temperature", "_bias"]; TRACE_2("params",_temperature, _bias); _temperature1 = floor(_temperature + (_bias select 0) - (random 2)); _temperature2 = floor(_temperature + (_bias select 1) + (random 2)); private _color1 = [ // Colors obtained by quartic regression formula of RGB values at corresponding temperatures as marked on advanced_ballistics rangecard ( (((-0.000238348 * (_temperature1 ^ 4)) - (0.00865642 * (_temperature1 ^ 3)) + (0.794548 * (_temperature1 ^2)) - (0.323314 * _temperature1) +6.78445) min 255) /255) max 0, ( (((-0.000308515 * (_temperature1 ^ 4)) + (0.000245732 * (_temperature1 ^ 3)) + (0.308531 * (_temperature1 ^2)) - (02.78916 * _temperature1) +164.326) min 255) /255) max 0, ( (((-0.000107648 * (_temperature1 ^ 4)) + (0.00106365 * (_temperature1 ^ 3)) - (0.0989707 * (_temperature1 ^2)) - (9.66256 * _temperature1) +171.402) min 255) /255) max 0 ]; private _text = composeText ["", [format ["%1C", _temperature1],_color1] call EFUNC(common,stringToColoredText)]; _text = composeText [_text, [" --- ", [1,1,1]] call EFUNC(common,stringToColoredText)]; private _color2 = [ // Colors obtained by quartic regression formula of RGB values at corresponding temperatures as marked on advanced_ballistics rangecard ( (((-0.000238348 * (_temperature2 ^ 4)) - (0.00865642 * (_temperature2 ^ 3)) + (0.794548 * (_temperature2 ^2)) - (0.323314 * _temperature2) +6.78445) min 255) /255) max 0, ( (((-0.000308515 * (_temperature2 ^ 4)) + (0.000245732 * (_temperature2 ^ 3)) + (0.308531 * (_temperature2 ^2)) - (02.78916 * _temperature2) +164.326) min 255) /255) max 0, ( (((-0.000107648 * (_temperature2 ^ 4)) + (0.00106365 * (_temperature2 ^ 3)) - (0.0989707 * (_temperature2 ^2)) - (9.66256 * _temperature2) +171.402) min 255) /255) max 0 ]; _text = composeText [_text, [format ["%1C", _temperature2], _color2] call EFUNC(common,stringToColoredText)]; [_text, QPATHTOF(UI\temp_ca.paa),_color, ACE_player, 2] call EFUNC(common,displayTextPicture); /* for "_i" from -40 to 40 step 4 do { _temp_color = _color; if (_i == 0) then { _text = composeText [_text, ["[", _temp_color] call EFUNC(common,stringToColoredText)]; _text = composeText [_text, ["0", [0.6, 1, 0.6]] call EFUNC(common,stringToColoredText)]; _text = composeText [_text, ["]", _temp_color] call EFUNC(common,stringToColoredText)]; } else { _string = "I"; }; if (abs( _i - _apparent_temperature) < 8.5) then { _temp_color = [ // Colors obtained by quartic regression formula of RGB values at corresponding temperatures as marked on advanced_ballistics rangecard ( (((-0.000238348 * (_i ^ 4)) - (0.00865642 * (_i ^ 3)) + (0.794548 * (_i ^2)) - (0.323314 * _i) +6.78445) min 255) /255) max 0, ( (((-0.000308515 * (_i ^ 4)) + (0.000245732 * (_i ^ 3)) + (0.308531 * (_i ^2)) - (02.78916 * _i) +164.326) min 255) /255) max 0, ( (((-0.000107648 * (_i ^ 4)) + (0.00106365 * (_i ^ 3)) - (0.0989707 * (_i ^2)) - (9.66256 * _i) +171.402) min 255) /255) max 0 ]; }; _text = composeText [_text, [_string, [_temp_color select 0, _temp_color select 1, _temp_color select 2]] call EFUNC(common,stringToColoredText)]; }; _text = composeText [_text, [" +40C", [1,0,0]] call EFUNC(common,stringToColoredText)]; */ [_text, QPATHTOF(UI\temp_ca.paa),[1,1,1], ACE_player, 2] call EFUNC(common,displayTextPicture); #include "script_component.hpp" /* * Author: Ruthberg * Displays a wind info (colored arrow) in the top left corner of the screen * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_displayWindInfo * * Public: No */ #define __dsp (uiNamespace getVariable "RscWindIntuitive") #define __ctrl (__dsp displayCtrl 132948) if (GVAR(WindInfo)) exitWith { GVAR(WindInfo) = false; (["RscWindIntuitive"] call BIS_fnc_rscLayer) cutText ["", "PLAIN"]; true }; EGVAR(advanced_ballistics,Protractor) = false; 1 cutText ["", "PLAIN"]; GVAR(WindInfo) = true; TRACE_1("Starting Wind Info PFEH", GVAR(WindInfo)); [{ disableSerialization; params ["", "_pfID"]; if ((!GVAR(WindInfo)) || {!([ACE_player, ACE_player, []] call EFUNC(common,canInteractWith))}) exitWith { TRACE_1("Ending Wind Info PFEH", GVAR(WindInfo)); GVAR(WindInfo) = false; (["RscWindIntuitive"] call BIS_fnc_rscLayer) cutText ["", "PLAIN"]; [_pfID] call CBA_fnc_removePerFrameHandler; }; //Keeps the display open: (["RscWindIntuitive"] call BIS_fnc_rscLayer) cutRsc ["RscWindIntuitive", "PLAIN", 1, false]; private _windSpeed = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { // With wind gradient [eyePos ACE_player, true, true, true] call FUNC(calculateWindSpeed); } else { // Without wind gradient [eyePos ACE_player, false, true, true] call FUNC(calculateWindSpeed); }; private _playerDir = (ACE_player call CBA_fnc_headDir) select 0; private _windDir = (wind select 0) atan2 (wind select 1); _windDir = 30 * (round(((_windDir - _playerDir + 360) % 360) / 30)); // Color Codes from https://en.wikipedia.org/wiki/Beaufort_scale#Modern_scale private _beaufortNumber = 0; private _windColor = [1, 1, 1, 1]; if (_windSpeed > 0.3) then { _windColor = [0.796, 1, 1, 1]; _beaufortNumber = 1; }; if (_windSpeed > 1.5) then { _windColor = [0.596, 0.996, 0.796, 1]; _beaufortNumber = 2; }; if (_windSpeed > 3.3) then { _windColor = [0.596, 0.996, 0.596, 1]; _beaufortNumber = 3; }; if (_windSpeed > 5.4) then { _windColor = [0.6, 0.996, 0.4, 1]; _beaufortNumber = 4; }; if (_windSpeed > 7.9) then { _windColor = [0.6, 0.996, 0.047, 1]; _beaufortNumber = 5; }; if (_windSpeed > 10.7) then { _windColor = [0.8, 0.996, 0.059, 1]; _beaufortNumber = 6; }; if (_windSpeed > 13.8) then { _windColor = [1, 0.996, 0.067, 1]; _beaufortNumber = 7; }; if (_windSpeed > 17.1) then { _windColor = [1, 0.796, 0.051, 1]; _beaufortNumber = 8; }; if (_windSpeed > 20.7) then { _windColor = [1, 0.596, 0.039, 1]; _beaufortNumber = 9; }; if (_windSpeed > 24.4) then { _windColor = [1, 0.404, 0.031, 1]; _beaufortNumber = 10; }; if (_windSpeed > 28.4) then { _windColor = [1, 0.22, 0.027, 1]; _beaufortNumber = 11; }; if (_windSpeed > 32.6) then { _windColor = [1, 0.078, 0.027, 1]; _beaufortNumber = 12; }; TRACE_3("update display",_beaufortNumber,_windDir,_windSpeed); __ctrl ctrlSetTextColor _windColor; if (_beaufortNumber > 0) then { __ctrl ctrlSetText QPATHTOF(UI\wind_arrow_ca.paa); __ctrl ctrlSetAngle [_windDir, 0.5, 0.5]; } else { __ctrl ctrlSetText QPATHTOF(UI\wind_noneCircle_ca.paa); }; __ctrl ctrlCommit 0; //Update the beaufort balls: (ctrlPosition __ctrl) params ["_ctrlX", "_ctrlY", "_ctrlWidth", "_ctrlHeight"]; private _centerX = _ctrlX + _ctrlWidth / 2; private _centerY = _ctrlY + _ctrlHeight / 2; private _ballHeight = _ctrlHeight / 17; private _ballWidth = _ballHeight * 3/4; for "_index" from 0 to (_beaufortNumber - 1) do { private _ball = __dsp ctrlCreate ["RscPicture", _index]; _ball ctrlSetText QPATHTOF(UI\wind_dot_ca.paa); _ball ctrlSetTextColor [1,1,1,1]; private _ballCenterX = _centerX - (_ballWidth / 2) + ((sin _windDir) * 0.013333) * (_index - 4.9) + ((cos _windDir) * 0.0125); private _ballCenterY = _centerY - (_ballHeight / 2) - ((1 * cos _windDir) * 4/3*0.013333) * (_index - 4.9) + ((sin _windDir) * 0.0125); _ball ctrlSetPosition [_ballCenterX, _ballCenterY, _ballWidth, _ballHeight]; _ball ctrlCommit 0; }; }, 0.5, []] call CBA_fnc_addPerFrameHandler; true #include "script_component.hpp" /* * Author: LorenLuke * Returns an approximate representation of temperature at a unit's location. * * Arguments: * 0: Unit * * Return Value: * None * * Example: * [ACE_player] call ace_weather_fnc_getApproximateAirTemp * * Public: No */ params ["_unit"]; TRACE_1("params",_unit); if (isNil (format ["%1", _unit getVariable "ACE_airTemperatureBias"])) then { _unit setVariable ["ACE_airTemperatureBias", [-(random(3) + 1), random(3) + 1]]; }; private _temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight); private _humidity = EGVAR(weather,currentHumidity); private _heatIndex = [_temperature, _humidity] call EFUNC(weather,calculateHeatIndex); private _chill = [_temperature, _humidity] call EFUNC(weather,calculateWindChill); private _e = 2^(1/(ln 2)); /* // Windchill calc with wind vars; https://en.wikipedia.org/wiki/Wind_chill#Australian_Apparent_Temperature private _windspeed = [getPosASL _unit, true, true, true] call EFUNC(weather,calculateWindSpeed); private _water_vapor_pressure = _humidity * 6.105 *(_e ^ ((17.27 * _temperature)/(237.7 + _temperature))) / 100; private _chill = _temperature + (0.33 * _water_vapor_pressure) - (0.70 * _windspeed) - 400; */ // sigmoid = f(x) = L / (1 + e^(-k * (x - x_0))); // L max value, e = euler, k = steepness, // L = max value private _sigmoid_L = 1; // x_0 = sigmoid midpoint, aka 50% proportion; 18.5C, ~65F private _sigmoid_midpoint = 18.5; // place +- midpoint with desired proportion private _sigmoid_valuation = 8.5; // desired upper and proportion on sigmoid private _sigmoid_proportion_at_valuation = 0.95; private _sigmoid_proportion_at_lower_valuation = 1 - _sigmoid_proportion_at_valuation; // k = steepness private _sigmoid_k = (ln ((_sigmoid_proportion_at_lower_valuation^-1) - 1) ) / _sigmoid_valuation; // 5$/95% @ 10C/27C; [5% and 95% values at 50F and ~80F]; // 5% = 0.05 = 1/20 = f(_midpoint - _valuation) = L / (1 + e^(-k * ((_midpoint - _valuation) - _midpoint) // (0.05)^-1 = 20 = (L / (1 + e^(-k * (-_valuation))) )^-1 = (1 + e^(-k * -_valuation))/L; // L = 1;> 20 = (1 + e^(k * valuation)); 20 - 1 = e^(k * valuation); // 19 = e^(k * 8.5); (log_e 19) = (k * 8.5); (log_e 19)/8.5 = k; // retrieve sigmoid proportion at _temperature private _temperature_sigmoid = _sigmoid_L / (1 + _e^(-_sigmoid_k * (_temperature - _sigmoid_midpoint))); // Weighted average between windchill and heat index based on sigmoid levels, plus +- 4deg randomisation private _apparent_temperature = ((_temperature_sigmoid * _heatIndex) + ((1 - _temperature_sigmoid) * _chill) + random(8) - 4); [_apparent_temperature, (_unit getVariable "ACE_airTemperatureBias")] call FUNC(displayAirTemp); #include "script_component.hpp" /* * Author: Ruthberg, esteldunedain * Get the weather data for the current map * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_getMapData * * Public: No */ private _worldName = toLower worldName; TRACE_1("getting map data",_worldName); // Set default values // Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece GVAR(WindSpeedMax) = [[8.8, 5.5], [8.8, 5], [8.6, 4.8], [7.6, 3.4], [7.0, 3.0], [7.1, 3.0], [7.5, 3.1], [8.0, 3.2], [7.6, 3.5], [7.8, 4.6], [7.9, 5.0], [8.2, 5.5]]; GVAR(WindSpeedMean) = [4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0]; GVAR(WindSpeedMin) = [[0.2, 5.0], [0.1, 5.0], [0.2, 4.3], [0.0, 3.0], [0.0, 2.1], [0.0, 2.0], [0.1, 3.1], [0.3, 3.1], [0.0, 3.6], [0.0, 4.2], [0.1, 5.0], [0.2, 5.5]]; GVAR(WindDirectionProbabilities) = [ [0.06, 0.32, 0.05, 0.04, 0.15, 0.06, 0.02, 0.02], // January [0.08, 0.32, 0.04, 0.04, 0.18, 0.06, 0.02, 0.02], // February [0.09, 0.30, 0.04, 0.04, 0.20, 0.06, 0.02, 0.03], // March [0.10, 0.25, 0.03, 0.04, 0.22, 0.06, 0.02, 0.04], // April [0.18, 0.25, 0.03, 0.04, 0.18, 0.04, 0.01, 0.05], // May [0.25, 0.25, 0.03, 0.03, 0.15, 0.03, 0.00, 0.08], // June [0.32, 0.30, 0.02, 0.02, 0.10, 0.01, 0.00, 0.09], // July [0.28, 0.35, 0.02, 0.01, 0.08, 0.01, 0.00, 0.08], // August [0.20, 0.37, 0.03, 0.01, 0.11, 0.01, 0.01, 0.05], // September [0.10, 0.39, 0.04, 0.02, 0.15, 0.02, 0.01, 0.03], // October [0.08, 0.38, 0.06, 0.04, 0.19, 0.03, 0.02, 0.02], // November [0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02] // December ]; GVAR(TempDay) = [1, 3, 9, 14, 19, 23, 25, 24, 21, 13, 7, 2]; GVAR(TempNight) = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2]; GVAR(Humidity) = [82, 80, 78, 70, 71, 72, 70, 73, 78, 80, 83, 82]; GVAR(currentTemperature) = 15; GVAR(currentHumidity) = 0; GVAR(currentOvercast) = 0; // Get all non inherited arrays to filter maps that inherit from Stratis/Altis/Tanoa private _nonInheritedArrays = configProperties [configFile >> "CfgWorlds" >> _worldName, "isArray _x", false]; // And check if any custom non-inherited weather is defined through config and use that if so if ((configFile >> "CfgWorlds" >> _worldName >> "ACE_TempDay") in _nonInheritedArrays) exitWith { if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempDay")) then { GVAR(TempDay) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempDay"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempNight")) then { GVAR(TempNight) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempNight"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_Humidity")) then { GVAR(Humidity) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_Humidity"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMin")) then { GVAR(WindSpeedMin) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMin"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMean")) then { GVAR(WindSpeedMean) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMean"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMax")) then { GVAR(WindSpeedMax) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMax"); }; if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindDirectionProbabilities")) then { GVAR(WindDirectionProbabilities) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindDirectionProbabilities"); }; }; // Check if the map is among the most popular if (_worldName in ["chernarus", "bootcamp_acr", "woodland_acr", "utes"]) then { // Source: http://www.iten-online.ch/klima/europa/tschechien/prag.htm GVAR(TempDay) = [1, 3, 9, 14, 19, 23, 25, 24, 21, 13, 7, 2]; GVAR(TempNight) = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Prague,Czech-Republic GVAR(Humidity) = [82, 80, 78, 70, 71, 72, 70, 73, 78, 80, 83, 82]; // Source: https://weatherspark.com/averages/32335/Prague-Central-Bohemia-Czech-Republic GVAR(WindSpeedMax) = [[6.7, 2.4], [6.8, 2.2], [7.1, 2.0], [6.7, 1.9], [6.5, 1.8], [6.4, 1.8], [6.4, 1.8], [5.9, 1.9], [5.8, 2.1], [5.9, 2.3], [6.4, 2.8], [7.0, 3.0]]; GVAR(WindSpeedMean) = [4.5, 4.3, 4.4, 4.1, 3.6, 3.6, 3.6, 3.4, 3.6, 0, 4.1, 4.6]; GVAR(WindSpeedMin) = [[1.5, 1.1], [1.5, 1.1], [1.5, 1.0], [1.2, 0.9], [1.1, 0.8], [1.0, 0.8], [1.0, 1.0], [1.0, 0.9], [1.1, 1.0], [1.0, 1.0], [1.3, 1.1], [1.8, 1.2]]; GVAR(WindDirectionProbabilities) = [ [0.06, 0.02, 0.06, 0.06, 0.10, 0.23, 0.15, 0.06], // January [0.08, 0.03, 0.08, 0.06, 0.08, 0.18, 0.15, 0.08], // February [0.08, 0.02, 0.10, 0.06, 0.07, 0.17, 0.15, 0.08], // March [0.12, 0.04, 0.10, 0.05, 0.06, 0.12, 0.13, 0.10], // April [0.12, 0.05, 0.09, 0.05, 0.05, 0.10, 0.13, 0.10], // May [0.12, 0.04, 0.06, 0.03, 0.05, 0.13, 0.16, 0.10], // June [0.09, 0.03, 0.07, 0.04, 0.06, 0.16, 0.18, 0.10], // July [0.09, 0.03, 0.08, 0.04, 0.06, 0.15, 0.16, 0.09], // August [0.07, 0.03, 0.08, 0.06, 0.08, 0.18, 0.15, 0.08], // September [0.06, 0.03, 0.10, 0.07, 0.10, 0.19, 0.13, 0.05], // October [0.06, 0.02, 0.08, 0.07, 0.10, 0.15, 0.13, 0.05], // November [0.06, 0.02, 0.06, 0.06, 0.10, 0.24, 0.15, 0.05] // December ]; }; if (_worldName in ["takistan", "zargabad", "mountains_acr", "shapur_baf", "provinggrounds_pmc"]) exitWith { // Source: http://www.iten-online.ch/klima/asien/afghanistan/kabul.htm GVAR(TempDay) = [4.5, 5.5, 12.5, 19.2, 24.4, 30.2, 32.1, 32, 28.5, 22.4, 15, 8.3]; GVAR(TempNight) = [-7.1, -5.7, 0.7, 6, 8.8, 12.4, 15.3, 14.3, 9.4, 3.9, -1.2, -4.7]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Kabul,Afghanistan GVAR(Humidity) = [68, 69, 62, 60, 49, 37, 38, 39, 40, 41, 56, 61]; // Source: https://weatherspark.com/averages/32750/Kabul-Afghanistan GVAR(WindSpeedMax) = [[4.0, 1.0], [4.1, 1.0], [5.1, 1.1], [6.9, 1.2], [8.9, 1.2], [10.0, 1.1], [9.1,1.0], [8.2, 1.0], [6.9, 1.0], [5.2, 1.0], [3.8, 0.9], [3.7, 0.9]]; GVAR(WindSpeedMean) = [2.2, 2.2, 2.5, 2.8, 3.8, 4.4, 0, 3.3, 2.7, 2.4, 1.8, 1.9]; GVAR(WindSpeedMin) = [[0.2, 0.4], [0.2, 0.4], [0.2, 0.4], [0.3, 0.4], [0.6, 0.4], [0.9, 0.4], [0.7, 0.4], [0.5, 0.4], [0.2, 0.5], [0.1, 0.1], [0, 0.1], [0, 0.1]]; GVAR(WindDirectionProbabilities) = [ [0.04, 0.02, 0.05, 0.04, 0.05, 0.04, 0.11, 0.29], // January [0.08, 0.04, 0.06, 0.04, 0.06, 0.04, 0.10, 0.20], // February [0.12, 0.06, 0.08, 0.04, 0.05, 0.04, 0.09, 0.19], // March [0.18, 0.07, 0.09, 0.05, 0.05, 0.04, 0.08, 0.16], // April [0.27, 0.05, 0.05, 0.03, 0.04, 0.03, 0.08, 0.16], // May [0.35, 0.04, 0.04, 0.02, 0.02, 0.02, 0.07, 0.13], // June [0.30, 0.07, 0.09, 0.04, 0.02, 0.02, 0.05, 0.10], // July [0.23, 0.07, 0.08, 0.06, 0.03, 0.02, 0.05, 0.10], // August [0.15, 0.06, 0.10, 0.06, 0.04, 0.02, 0.07, 0.13], // September [0.12, 0.04, 0.07, 0.06, 0.04, 0.03, 0.10, 0.17], // October [0.07, 0.03, 0.06, 0.05, 0.06, 0.02, 0.10, 0.20], // November [0.05, 0.03, 0.06, 0.05, 0.06, 0.04, 0.11, 0.26] // December ]; }; if (_worldName in ["fallujah"]) exitWith { // Source: http://www.iten-online.ch/klima/asien/irak/bagdad.htm GVAR(TempDay) = [16, 19, 23, 29, 36, 41, 43, 43, 40, 33, 24, 17]; GVAR(TempNight) = [4, 6, 10, 15, 20, 23, 25, 25, 21, 16, 10, 5]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Bagdad,Iraq GVAR(Humidity) = [69, 60, 55, 50, 36, 23, 21, 22, 29, 38, 58, 68]; }; if (_worldName in ["fata", "abbottabad"]) exitWith { // Source: http://www.iten-online.ch/klima/asien/pakistan/zhob.htm GVAR(TempDay) = [12.4, 15.8, 20.8, 26.9, 32.8, 37, 36.8, 35.9, 33.8, 28.2, 22.2, 16.2]; GVAR(TempNight) = [-0.6, 2.4, 7.4, 13.1, 18.2, 22.8, 23.8, 22.9, 19.2, 12, 5.6, 1.2]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Zhob,Pakistan GVAR(Humidity) = [50, 40, 42, 40, 30, 30, 50, 49, 40, 32, 38, 41]; // Source: https://weatherspark.com/averages/31382/Shkin-Paktika-Afghanistan GVAR(WindSpeedMax) = [[3.0, 1.0], [3.3, 1.0], [4.0, 1.0], [4.3, 1.4], [4.3, 1.5], [4.6, 1.4], [4.5, 1.3], [4.0, 0.9], [4.0, 1.0], [3.5, 1.0], [3.4, 1.0], [3.1, 1.0]]; GVAR(WindSpeedMean) = [1.3, 1.5, 1.6, 1.7, 1.7, 1.7, 1.6, 1.5, 1.5, 1.4, 1.4, 1.2]; GVAR(WindSpeedMin) = [[0.2, 0.1], [0.2, 0.1], [0.2, 0.1], [0.2, 0.1], [0.1, 0.1], [0.1, 0.1], [0.3, 0.1], [0.2, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1], [0.1, 0.1]]; GVAR(WindDirectionProbabilities) = [ [0.09, 0.03, 0.02, 0.03, 0.05, 0.07, 0.07, 0.18], // January [0.07, 0.02, 0.01, 0.05, 0.10, 0.10, 0.06, 0.12], // February [0.07, 0.02, 0.01, 0.07, 0.14, 0.11, 0.08, 0.12], // March [0.07, 0.04, 0.03, 0.05, 0.12, 0.08, 0.06, 0.13], // April [0.10, 0.03, 0.02, 0.04, 0.10, 0.09, 0.08, 0.18], // May [0.12, 0.05, 0.04, 0.05, 0.08, 0.06, 0.06, 0.16], // June [0.06, 0.04, 0.02, 0.06, 0.05, 0.01, 0.02, 0.06], // July [0.08, 0.03, 0.04, 0.05, 0.09, 0.04, 0.02, 0.06], // August [0.10, 0.04, 0.02, 0.06, 0.11, 0.09, 0.06, 0.13], // September [0.07, 0.02, 0.01, 0.04, 0.11, 0.08, 0.08, 0.19], // October [0.06, 0.01, 0.00, 0.05, 0.11, 0.09, 0.08, 0.13], // November [0.07, 0.01, 0.01, 0.03, 0.08, 0.09, 0.09, 0.18] // December ]; }; if (_worldName in ["sfp_wamako"]) exitWith { // Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm GVAR(TempDay) = [33.4, 35, 38.4, 41.5, 41.4, 40, 35.6, 32.9, 35.8, 38.2, 36.4, 33.1]; GVAR(TempNight) = [14.9, 16.3, 20.4, 23.7, 25.8, 24.8, 23.1, 22, 22.6, 21.6, 18.6, 15.3]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Tahoua,Niger GVAR(Humidity) = [68, 60, 57, 50, 32, 22, 20, 21, 25, 38, 58, 69]; }; if (_worldName in ["sfp_sturko"]) exitWith { // Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm GVAR(TempDay) = [2.2, 2.4, 5.1, 10.2, 16.1, 20.1, 21.1, 20.9, 17.2, 12.7, 7.4, 3.9]; GVAR(TempNight) = [-2, -2.3, -0.7, 2.6, 7.1, 11.4, 13.1, 12.7, 10, 6.9, 3.1, -0.1]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,karlskrona,Sweden GVAR(Humidity) = [86, 85, 80, 72, 68, 69, 74, 77, 79, 81, 86, 88]; }; if (_worldName in ["bornholm"]) exitWith { // Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm GVAR(TempDay) = [1.9, 1.7, 3.8, 8.1, 14, 18.1, 19.6, 19.8, 16.2, 11.9, 7.3, 3.9]; GVAR(TempNight) = [-1.6, -2.1, -0.7, 1.7, 6.2, 10.7, 13, 13.1, 10.6, 7.2, 3.5, 0.1]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,allinge,Denmark GVAR(Humidity) = [85, 84, 80, 76, 69, 69, 76, 77, 79, 81, 86, 86]; // Source: https://weatherspark.com/averages/28830/R-nne-Capital-Region-of-Denmark GVAR(WindSpeedMax) = [[9.3, 2.2], [8.4, 2.2], [7.9, 2.2], [7.1, 2.1], [7.2, 2.1], [6.8, 2.0], [6.8, 2.0], [7.1, 2.1], [7.7, 2.2], [8.6, 2.2], [8.8, 2.2], [9.3, 2.2]]; GVAR(WindSpeedMean) = [6.9, 6.0, 5.7, 4.9, 4.8, 4.6, 4.7, 4.9, 5.5, 6.2, 6.5, 6.7]; GVAR(WindSpeedMin) = [[3.9, 2.0], [3.0, 2.0], [2.3, 2.0], [1.8, 1.8], [1.7, 1.8], [1.7, 1.7], [1.7, 1.8], [1.9, 1.9], [2.6, 2.0], [2.9, 2.0], [3.3, 2.1], [3.5, 2.0]]; GVAR(WindDirectionProbabilities) = [ [0.07, 0.04, 0.07, 0.05, 0.09, 0.12, 0.20, 0.07], // January [0.08, 0.06, 0.10, 0.06, 0.06, 0.08, 0.20, 0.08], // February [0.05, 0.06, 0.13, 0.08, 0.07, 0.08, 0.19, 0.06], // March [0.05, 0.11, 0.16, 0.09, 0.05, 0.06, 0.17, 0.06], // April [0.04, 0.10, 0.15, 0.08, 0.05, 0.06, 0.20, 0.05], // May [0.03, 0.07, 0.10, 0.07, 0.05, 0.07, 0.28, 0.06], // June [0.04, 0.06, 0.11, 0.07, 0.04, 0.07, 0.28, 0.06], // July [0.05, 0.06, 0.11, 0.07, 0.06, 0.08, 0.26, 0.06], // August [0.06, 0.06, 0.11, 0.07, 0.06, 0.09, 0.21, 0.06], // September [0.07, 0.05, 0.09, 0.08, 0.08, 0.12, 0.18, 0.07], // October [0.08, 0.06, 0.08, 0.07, 0.10, 0.12, 0.16, 0.07], // November [0.08, 0.05, 0.06, 0.04, 0.10, 0.14, 0.19, 0.07] // December ]; }; if (_worldName in ["imrali"]) exitWith { // Source: http://www.iten-online.ch/klima/europa/tuerkei/bursa.htm GVAR(TempDay) = [9.3, 10.7, 13.6, 18.8, 23.5, 28.2, 30.3, 30.2, 27, 21.4, 16.5, 11.8]; GVAR(TempNight) = [1.4, 2.4, 3.7, 7.1, 10.9, 14.3, 16.5, 16.3, 13, 9.5, 6, 3.8]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Bursa,Turkey GVAR(Humidity) = [78, 75, 70, 70, 71, 61, 58, 59, 63, 69, 77, 76]; }; if (_worldName in ["kunduz"]) exitWith { // Source: http://www.iten-online.ch/klima/asien/afghanistan/kunduz.htm GVAR(TempDay) = [6.3, 9.5, 15.8, 23, 29.8, 37.3, 39, 36.9, 31.8, 24.5, 16, 9.7]; GVAR(TempNight) = [-2.4, 0, 5.7, 11.6, 15.7, 20.9, 21.5, 21.5, 16.3, 10.6, 4.1, 0]; // Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Kabul,Afghanistan GVAR(Humidity) = [70, 72, 64, 61, 49, 34, 36, 38, 39, 52, 51, 63]; // Source: https://weatherspark.com/averages/32753/Kunduz-Afghanistan GVAR(WindSpeedMax) = [[3.5, 0.8], [4.0, 0.6], [4.3, 2.0], [4.6, 1.1], [5.1, 1.2], [5.7, 1.0], [4.9, 0.8], [4.5, 0.3], [4.3, 0.3], [3.8, 0.5], [3.0, 1.3], [3.1, 0.8]]; GVAR(WindSpeedMean) = [1.5, 1.8, 2.1, 2.4, 2.5, 2.8, 2.7, 2.5, 2.3, 2.1, 1.7, 1.6]; GVAR(WindSpeedMin) = [[0.2, 0.1], [0.3, 0.3], [0.4, 0.1], [0.8, 0.2], [0.8, 0.1], [1.0, 0.3], [0.9, 0.5], [0.8, 0.2], [0.8, 0.1], [0.7, 0.1], [0.5, 0.1], [0.2, 0.2]]; GVAR(WindDirectionProbabilities) = [ [0.04, 0.02, 0.05, 0.11, 0.12, 0.06, 0.09, 0.06], // January [0.04, 0.02, 0.05, 0.11, 0.12, 0.06, 0.08, 0.07], // February [0.05, 0.04, 0.06, 0.14, 0.12, 0.06, 0.10, 0.08], // March [0.09, 0.05, 0.08, 0.13, 0.07, 0.05, 0.07, 0.07], // April [0.14, 0.07, 0.13, 0.13, 0.06, 0.05, 0.05, 0.08], // May [0.16, 0.06, 0.12, 0.12, 0.05, 0.04, 0.05, 0.10], // June [0.17, 0.06, 0.08, 0.12, 0.06, 0.04, 0.05, 0.12], // July [0.15, 0.05, 0.06, 0.16, 0.08, 0.05, 0.07, 0.13], // August [0.15, 0.04, 0.08, 0.20, 0.13, 0.05, 0.10, 0.14], // September [0.08, 0.02, 0.08, 0.22, 0.15, 0.06, 0.13, 0.13], // October [0.06, 0.02, 0.05, 0.20, 0.17, 0.06, 0.12, 0.10], // November [0.04, 0.02, 0.05, 0.14, 0.19, 0.07, 0.10, 0.07] // December ]; }; #include "script_component.hpp" /* * Author: Glowbal, Ruthberg * Module for adjusting the wind deflection settings * * Arguments: * 0: The module logic * 1: units * 2: activated * * Return Value: * None * * Example: * [module, [], true] call ace_weather_fnc_initModuleSettings * * Public: No */ params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; // Turns the weather module on / off [_logic, QGVAR(enabled), "enabled"] call EFUNC(common,readSettingFromModule); // Server weather update interval [_logic, QGVAR(updateInterval), "updateInterval"] call EFUNC(common,readSettingFromModule); // Turns the (map based) wind simulation on / off [_logic, QGVAR(windSimulation), "windSimulation"] call EFUNC(common,readSettingFromModule); GVAR(updateInterval) = 1 max GVAR(updateInterval) min 600; #include "script_component.hpp" /* * Author: Ruthberg * Inits the wind variables on the server (on mission start) * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_initWind * * Public: No */ private _month = date select 1; private _windDirectionProbabilities = GVAR(WindDirectionProbabilities) select (_month - 1); GVAR(wind_direction_reference) = random 360; private _sum = 0; for "_i" from 0 to 7 do { _sum = _sum + (_windDirectionProbabilities select _i); }; private _rand = random _sum; private _csum = [0, 0, 0, 0, 0, 0, 0, 0]; for "_i" from 0 to 7 do { for "_j" from 0 to _i do { _csum set [_i, (_csum select _i) + (_windDirectionProbabilities select _j)]; }; }; private _index = 0; for "_i" from 0 to 7 do { if (_rand > (_csum select _i)) then { _index = _index + 1; }; }; GVAR(wind_direction_reference) = 45 * _index; GVAR(wind_mean_dir) = GVAR(wind_direction_reference); GVAR(wind_direction_reference) = GVAR(wind_direction_reference) + (random 22.5) - (random 22.5); GVAR(wind_direction_reference) = (360 + GVAR(wind_direction_reference)) % 360; GVAR(min_wind_speed) = GVAR(WindSpeedMin) select (_month - 1); GVAR(min_wind_speed) = (GVAR(min_wind_speed) select 0) + (random (GVAR(min_wind_speed) select 1)) - (random (GVAR(min_wind_speed) select 1)); GVAR(min_wind_speed) = 0 max GVAR(min_wind_speed); GVAR(mean_wind_speed) = GVAR(WindSpeedMean) select (_month - 1); GVAR(max_wind_speed) = GVAR(WindSpeedMax) select (_month - 1); GVAR(max_wind_speed) = (GVAR(max_wind_speed) select 0) + (random (GVAR(max_wind_speed) select 1)) - (random (GVAR(max_wind_speed) select 1)); GVAR(max_wind_speed) = 0 max GVAR(max_wind_speed); GVAR(wind_upper_span) = GVAR(max_wind_speed) - GVAR(mean_wind_speed); GVAR(wind_lower_span) = GVAR(min_wind_speed) - GVAR(mean_wind_speed); GVAR(current_wind_direction) = GVAR(wind_direction_reference); GVAR(next_wind_direction) = GVAR(current_wind_direction); GVAR(current_wind_speed) = GVAR(min_wind_speed) + (GVAR(max_wind_speed) - GVAR(min_wind_speed)) * (random 1); GVAR(next_wind_speed) = GVAR(current_wind_speed); GVAR(last_wind_update) = 0; GVAR(next_wind_udpate) = 0; #include "script_component.hpp" /* * Author: ACE2 Team * Smoothly updates GVAR(currentHumidity) on the server (based on time of day and map data) * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_updateHumidity * * Public: No */ if (rain > 0 && overcast > 0.7) then { GVAR(currentHumidity) = 1; } else { private _month = date select 1; GVAR(currentHumidity) = (GVAR(Humidity) select (_month - 1)) / 100; GVAR(currentHumidity) = GVAR(currentHumidity) + GVAR(humidityShift); private _avgTemperature = ((GVAR(TempDay) select (_month - 1)) + (GVAR(TempNight) select (_month - 1))) / 2; private _pS1 = 6.112 * exp((17.62 * _avgTemperature) / (243.12 + _avgTemperature)); private _PS2 = 6.112 * exp((17.62 * GVAR(currentTemperature)) / (243.12 + GVAR(currentTemperature))); GVAR(currentHumidity) = GVAR(currentHumidity) * _PS1 / _PS2; }; GVAR(currentHumidity) = 0 max GVAR(currentHumidity) min 1; publicVariable QGVAR(currentHumidity); #include "script_component.hpp" /* * Author: ACE2 Team * Smoothly updates GVAR(currentTemperature) on the server (based on time of day and map data) * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_updateTemperature * * Public: No */ private _month = date select 1; private _timeRatio = abs(daytime - 12) / 12; GVAR(currentTemperature) = (GVAR(TempDay) select (_month - 1)) * (1 - _timeRatio) + (GVAR(TempNight) select (_month - 1)) * _timeRatio; GVAR(currentTemperature) = GVAR(currentTemperature) + GVAR(temperatureShift) - GVAR(badWeatherShift) * GVAR(currentOvercast); GVAR(currentTemperature) = round(GVAR(currentTemperature) * 10) / 10; publicVariable QGVAR(currentTemperature); #include "script_component.hpp" /* * Author: ACE2 Team, esteldunedain, Ruthberg * Updates the weather evolution on the server. Broadcasts relevant weather information to the clients. * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_updateWeather * * Public: No */ missionNamespace setVariable [QGVAR(currentOvercast), overcast, true]; [] call FUNC(updateTemperature); [] call FUNC(updateHumidity); // Wind simulation if (GVAR(windSimulation) && CBA_missionTime > GVAR(next_wind_udpate)) then { GVAR(current_wind_direction) = GVAR(next_wind_direction); GVAR(current_wind_speed) = GVAR(next_wind_speed); private _transitionPeriod = GVAR(updateInterval) * (2 + (random 4)) / (1 + overcast); GVAR(next_wind_udpate) = CBA_missionTime + _transitionPeriod; private _windDirectionVariance = (90 - (random 180)) * (overcast ^ 2); GVAR(next_wind_direction) = (360 + GVAR(wind_direction_reference) + _windDirectionVariance) % 360; if ((random 1) < (0.3 max overcast)) then { private _speedVariance = GVAR(wind_upper_span) * (random 1) ^ 2 + GVAR(wind_lower_span) * (random 1) ^ 2; GVAR(next_wind_speed) = GVAR(mean_wind_speed) + _speedVariance; }; GVAR(last_wind_update) = CBA_missionTime; TRACE_5("dirCur/dirNew/spdCur/spdNew/period",GVAR(current_wind_direction),GVAR(next_wind_direction),GVAR(current_wind_speed),GVAR(next_wind_speed),_transitionPeriod); }; #include "script_component.hpp" /* * Author: ACE2 Team, Ruthberg * Smoothly updates wind on the server (based on time of year and map data) * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_weather_fnc_updateWind * * Public: No */ private _speed = linearConversion [GVAR(last_wind_update), GVAR(next_wind_udpate), CBA_missionTime, GVAR(current_wind_speed), GVAR(next_wind_speed), true]; private _direction = linearConversion [GVAR(last_wind_update), GVAR(next_wind_udpate), CBA_missionTime, GVAR(current_wind_direction), GVAR(next_wind_direction), true]; setWind [-_speed * sin(_direction), -_speed * cos(_direction), true]; #include "\z\ace\addons\weather\script_component.hpp"// point of this file is to disable "auto-weather" by default // we want this, because it breaks weather commands we use in this component #include "script_component.hpp" // cannot create checkboxes which have the default value "true" // 3den uses inverted checkboxes instead, but those only change in appearence // we have to auto set these settings manually - on mission creation add3DENEventHandler ["onMissionNew", { set3DENMissionAttributes [ ["Intel", "IntelWavesIsForced", true], ["Intel", "IntelWindIsForced", true] ]; }]; private _category = [format ["ACE %1", LLSTRING(Module_DisplayName)]]; [ QGVAR(enabled), "CHECKBOX", [LSTRING(enabled_DisplayName), LSTRING(enabled_Description)], _category, true, // default value true, // isGlobal {[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)}, true // Needs mission restart ] call CBA_fnc_addSetting; [ QGVAR(updateInterval), "SLIDER", [LSTRING(updateInterval_DisplayName), LSTRING(updateInterval_Description)], _category, [0,300,60,0], // [min, max, default value, trailing decimals (-1 for whole numbers only)] true, // isGlobal {[QGVAR(updateInterval), _this] call EFUNC(common,cbaSettings_settingChanged)}, true // Needs mission restart ] call CBA_fnc_addSetting; [ QGVAR(windSimulation), "CHECKBOX", [LSTRING(windSimulation_DisplayName), LSTRING(windSimulation_Description)], _category, true, // default value true, // isGlobal {[QGVAR(windSimulation), _this] call EFUNC(common,cbaSettings_settingChanged)}, true // Needs mission restart ] call CBA_fnc_addSetting; [ QGVAR(showCheckAirTemperature), "CHECKBOX", [LSTRING(showCheckAirTemperature_DisplayName), LELSTRING(common,showActionInSelfInteraction)], _category, true, // default value false // isGlobal ] call CBA_fnc_addSetting; ace_weather =========== This module simulates realistic weather effects, according to the geographical location of the map, the date and time. It also ensures that all players experience the same weather effects. ## Maintainers The people responsible for merging changes to this component or answering potential questions. - [commy2](https://github.com/commy2) - [esteldunedain](https://github.com/esteldunedain) - [walterpearce](https://github.com/walterpearce) class RscTitles { class RscWindIntuitive { idd=-1; onLoad="with uiNameSpace do { RscWindIntuitive = _this select 0 };"; movingEnable=0; duration=60; fadeIn="false"; fadeOut="false"; class controls { class RscWindIntuitive { idc=132948; type=0; style=48; font="TahomaB"; colorBackground[]={0,0,0,0}; colorText[]={0,0,0,0}; x="SafeZoneX + 0.001"; y="SafeZoneY + 0.001"; w=0.2; h=0.2*4/3; size=0.034; sizeEx=0.027; text=""; }; }; }; }; #define COMPONENT weather #define COMPONENT_BEAUTIFIED Weather #include "\z\ace\addons\main\script_mod.hpp" // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS #ifdef DEBUG_ENABLED_WEATHER #define DEBUG_MODE_FULL #endif #ifdef DEBUG_SETTINGS_WEATHER #define DEBUG_SETTINGS DEBUG_SETTINGS_WEATHER #endif #include "\z\ace\addons\main\script_macros.hpp" #define ABSOLUTE_ZERO_IN_CELSIUS -273.15 #define KELVIN(t) (t - ABSOLUTE_ZERO_IN_CELSIUS) #define CELSIUS(t) (t + ABSOLUTE_ZERO_IN_CELSIUS) #define UNIVERSAL_GAS_CONSTANT 8.314 #define WATER_VAPOR_MOLAR_MASS 0.018016 #define DRY_AIR_MOLAR_MASS 0.028964 #define SPECIFIC_GAS_CONSTANT_DRY_AIR 287.058 #define TO_CELSIUS(t) ((t - 32) / 1.8) #define TO_FAHRENHEIT(t) (t * 1.8 + 32) Show Wind Info PokaХМ inf. o wietrze аŸаОаКаАаЗаАб‚бŒ аИаНб„аОб€аМаАб†аИбŽ аО аВаЕб‚б€аЕ Afficher les informations sur le vent Mostrar informaciУГn del viento Mostra informazioni sul vento Zeige Windinformationen SzУЉladatok mutatУЁsa Zobrazit УКdaje o vФ›tru Mostrar informaУЇУЃo do vento щЂЈщ€Ÿу‚’шЁЈчЄК ыА”ыžŒ ь •ыГД э‘œь‹œ ц˜ОчЄКщЃŽхŠ›шЕ„шЎЏ щЁЏчЄКщЂЈхŠ›шГ‡шЈŠ RУМzgar Bilgilerini GУЖster Show Wind Info (Toggle) PokaХМ inf. o wietrze (przeХ‚Ф…cz) аŸаОаКаАаЗаАб‚бŒ аИаНб„аОб€аМаАб†аИбŽ аО аВаЕб‚б€аЕ (аПаЕб€аЕаКаЛ.) Afficher les informations sur le vent (bascule) Mostrar informaciУГn del viento (cambiar) Mostra informazioni sul vento (camb.) Zeige Windinformationen (umsch.) SzУЉladatok mutatУЁsa (pecek) Zobrazit УКdaje o vФ›tru (pХ™ep.) Mostrar informaУЇУЃo do vento (alternar) щЂЈщ€Ÿу‚’шЁЈчЄК (хˆ‡у‚Šц›Пуˆ) ыА”ыžŒ ь •ыГД э‘œь‹œ (э† ъИ€) ц˜ОчЄКщЃŽхŠ›шЕ„шЎЏ(хˆ‡цЂ) щЁЏчЄКщЂЈхŠ›шГ‡шЈŠ(хˆ‡ц›) RУМzgar Bilgilerini GУЖster (DeФŸiХŸtir) Weather Pogoda Clima Wetter PoФasУ­ Clima MУЉtУЉo IdХ‘jУЁrУЁs аŸаОаГаОаДаА Meteo хЄЉх€™ ъИАэ›„ хЄЉцА” хЄЉцАЃ Hava Durumu Multiplayer synchronized ACE weather module Synchronizowana pogoda ACE Modulo climУЁtico del ACE sincronizado en multijugador ACE-Wettermodul (synchron im Multiplayer) Synchronizovat ACE poФasУ­ v multiplayeru MУГdulo climУЁtico ACE para sincronismo multiplayer Module mУЉtУЉo ACE synchronisУЉ en multijoueur. TУЖbbjУЁtУЉkos szinkronizУЁlt ACE idХ‘jУЁrУЁs modul ACE аœаОаДбƒаЛбŒ аДаЛб баИаНб…б€аОаНаИаЗаАб†аИаИ аПаОаГаОаДб‹ аВ аМбƒаЛбŒб‚аИаПаЛаЕаЕб€аЕ Modulo Sincronizzazione Meteo ACE Multiplayer ACE хЄЉх€™уƒЂу‚ИуƒЅуƒМуƒЋуЇуЏуƒžуƒЋуƒуƒ—уƒЌу‚ЄуЇхŒцœŸу—уОу™у€‚ ACE ъИАэ›„ ыЊЈы“ˆъГМ ыЉ€э‹Аэ”Œы ˆьДъА€ ы™ъИАэ™”ыЉы‹ˆы‹Є. фНПч”ЈACEхЄЉцА”цЈЁх—цЅхŒц­Ѕц‰€цœ‰хЎЂцˆЗчЋЏчš„хЄЉцА”чŠЖц€(хЄšфККцИИцˆ) фНПч”ЈACEхЄЉцАЃцЈЁхЁŠфО†хŒц­Ѕц‰€цœ‰хЎЂцˆЖчЋЏчš„хЄЉцАЃч‹€ц…‹(хЄšфККщŠцˆВ) У‡ok oyunculu ACE ACE Weather Pogoda ACE Clima ACE ACE-Wetter ACE poФasУ­ Clima ACE ACE MУЉtУЉo ACE IdХ‘jУЁrУЁs аŸаОаГаОаДаА ACE Meteo ACE ACE хЄЉх€™ ACE ъИАэ›„ ACE хЄЉцА” ACE хЄЉцАЃ ACE Hava Durumu Expands the existing weather by temperature, humidity and air pressure. Erweitert das vorhandene Wetter um Temperatur, Luftfeuchtigkeit und Luftdruck. Espande il tempo esistente per temperatura, umiditУ  e pressione dell'aria. щ€щŽхЂžхŠ цП•хКІу€цКЋхКІшˆ‡цАЃхЃ“фО†хЂžхМЗхЄЉцАЃцЈЁц“Ќчš„шЁЈчОу€‚ щ€шП‡хЂžхŠ цЙПхКІу€цИЉхКІфИŽцА”хŽ‹цЅхЂžхМКхЄЉцА”цЈЁц‹Ÿчš„шЁЈчŽАу€‚ цА—цИЉу‚„цЙПхКІу€хЄЇцА—хœЇуЋу‚ˆуЃуІц—Ђх­˜уЎхЄЉх€™у‚’ц‹ЁхМЕу—уОу™у€‚ ь˜Јы„, ьŠЕы„ ыА ъИАь••ь— ы”АыМ ъИАьЁД ы‚ ь”ЈыЅМ э™•ьžЅэ•Љы‹ˆы‹Є. Poszerza istniejФ…cФ… pogodФ™ o temperaturФ™, wilgotnoХ›Ф‡ i ciХ›nienie powietrza. а аАббˆаИб€баЕб‚ б‚аЕаКбƒб‰аИаЕ аВаОаЗаМаОаЖаНаОбб‚аИ аПаОаГаОаДб‹ б бƒб‡аЕб‚аОаМ б‚аЕаМаПаЕб€аАб‚бƒб€б‹, аВаЛаАаЖаНаОбб‚аИ аИ аДаАаВаЛаЕаНаИб Expande o clima existente com temperatura, humidade e pressУЃo do ar. RozХЁiХ™uje stУЁvajУ­cУ­ poФasУ­ o teplotu, vlhkost a tlak vzduchu. AmУЉliore le module mУЉtУЉo existant en y ajoutant la tempУЉrature, l'humiditУЉ et la pression atmosphУЉrique. Mevcut havayФБ sФБcaklФБk, nem ve hava basФБncФБ ile geniХŸletir. Update Interval InterwaХ‚ aktualizacji Intervalo de actualizaciУГn Aktualisierungsintervall Interval aktualizace Intervalo de atualizaУЇУЃo Intervalle de mises У  jour FrissУ­tУЉsi intervallum а˜аНб‚аЕб€аВаАаЛ аОаБаНаОаВаЛаЕаНаИб Intervallo Aggiornamento ц›Дц–Ащ–“щš” ъАБь‹  ъА„ъВЉ ц›Дц–Ащ—Дщš” ц›Дц–Ащ–“щš” GУМncelleХŸtirme AralФБФŸФБ Defines the interval (seconds) between weather updates OkreХ›la interwaХ‚ (sekundy) pomiФ™dzy aktualizacjami pogody Defina el intervalo (en segundos) entre actualizacions de clima Definiert das Intervall (in Sekunden) zwischen Wetteraktualisierungen UrФit interval (v sekundУЁch) mezi aktualizacemi poФasУ­ Defina o intervalo (em segundos) entre as atualizaУЇУЕes de clima DУЉfinit l'intervalle (en secondes) entre les mises У  jour des conditions mУЉtУЉo. Megadja az intervallumot (mУЁsodpercben) az idХ‘jУЁrУЁs-frissУ­tУЉsek kУЖzУЖtt аžаПб€аЕаДаЕаЛбаЕб‚ аИаНб‚аЕб€аВаАаЛ (аВ баЕаКбƒаНаДаАб…) аМаЕаЖаДбƒ аОаБаНаОаВаЛаЕаНаИбаМаИ аПаОаГаОаДб‹ Definisce l'intervallo(in secondi) tra aggiornamenti del meteo хЄЉх€™у‚’ц›Дц–Ау™у‚‹щ–“щš”у‚’хЎšчОЉу—уОу™у€‚(чЇ’) ъИАэ›„ыЅМ ъАБь‹  э•˜ыŠ” ъА„ъВЉь„ ьДˆ ы‹Јьœ„ыЁœ ь •э•Љы‹ˆы‹Є. шЎОхЎšхЄЉцА”ц›Дц–Ачš„ц—Жщ—Дщ—Дщš”(чЇ’) шЈ­хЎšхЄЉцАЃц›Дц–Ачš„ц™‚щ–“щ–“щš”(чЇ’) Hava durumu gУМncellemeleri arasФБndaki aralФБФŸФБ (saniye) tanФБmlar Wind Simulation (map based) Wind Simulation (kartenbasiert) Simulazione del Vento (basato sulla mappa) щЂЈхŠ›цЈЁц“Ќ(хŸКц–МхœАхœ–) щЃŽхŠ›цЈЁц‹Ÿ(хŸКфКŽхœАх›О) щЂЈу‚ЗуƒŸуƒЅуƒЌуƒМу‚ЗуƒЇуƒГ (уƒžуƒƒуƒ—у‚’хŸКуЋ) ыА”ыžŒ ь‹œыЎЌы ˆьДь…˜ (ьЇ€ы„ ъИАыА˜) Symulacja Wiatru (bazowana na mapie) аЁаИаМбƒаЛбб†аИб аВаЕб‚б€аА (аНаА аОбаНаОаВаЕ аМаЕбб‚аНаОбб‚аИ) SimulaУЇУЃo de Vento (baseado no mapa) Simulace vФ›tru (podle mapy) Simulation du vent (basУЉe sur la carte) RУМzgar SimУМlasyonu (harita tabanlФБ) Enables the map based wind simulation (overwrites vanilla wind) Aktiviert die kartenbasierte Windsimulation (УМberschreibt Vanilla Wind) Abilita la simulazione del vento basato sulla mappa (sovrascrive il vento vanilla) х•Ÿч”ЈхОŒхА‡щЕч…ЇхœАхœ–ч‰Йш‰Вщ€ВшЁŒщЂЈхŠ›цЈЁц“Ќ(шІ†ш“‹цŽ‰хЎ˜ц–ЙхŽŸч‰ˆчš„щЂЈхŠ›цЈЁц“Ќ) хЏч”ЈхŽхА†щЕч…ЇхœАх›Оч‰Йш‰ВшП›шЁŒщЃŽхŠ›цЈЁц‹Ÿ(шІ†ч›–цŽ‰хЎ˜ц–ЙхŽŸч‰ˆчš„щЃŽхŠ›цЈЁц‹Ÿ) уƒžуƒƒуƒ—у‚’хŸКуЋу—уŸщЂЈу‚ЗуƒŸуƒЅуƒЌуƒМу‚ЗуƒЇуƒГу‚’цœ‰хŠЙхŒ– (цЈ™цК–уЎщЂЈу‚’фИŠц›Иу) ьЇ€ы„ ъИАыА˜ь˜ ыА”ыžŒ ь‹œыЎЌы ˆьДь…˜ь„ э™œь„Бэ™”э•Љы‹ˆы‹Є (ыА”ы‹ыМ ыА”ыžŒь„ ыЎьŒ) Aktywuje symulacjФ™ wiatru bazujФ…cФ… na mapie (nadpisuje wind z domyХ›lnej wersji gry) а’аКаЛбŽб‡аАаЕб‚ баИаМбƒаЛбб†аИбŽ аВаЕб‚б€аА аНаА аОбаНаОаВаЕ б‚аЕаКбƒб‰аЕаЙ аМаЕбб‚аНаОбб‚аИ (аПаЕб€аЕаПаИбб‹аВаАаЕб‚ аВаАаНаИаЛбŒаНб‹аЙ аВаЕб‚аЕб€) Ativar a simulaУЇУЃo de vento dos mapas. (sobrepУЕe vento vanilla) Povoluje simulaci vФ›tru zaloХОenou na mapФ› (pХ™epУ­ХЁe pХЏvodnУ­ vУ­tr) Active la simulation du vent basУЉe sur la carte (УЉcrase le vent vanilla). Harita tabanlФБ rУМzgar simУМlasyonunu etkinleХŸtirir (Normal rУМzgarФБnФБn УМzerine yazar) Check Air Temperature УœberprУМfe Lufttemperatur цЊЂцŸЅцАЃцКЋ Controllare la temperatura dell'aria Zkontrolovat teplotu vzduchu цА—цИЉу‚’чЂКшЊ SprawdХК temperaturФ™ powietrza VУЉrifier la tempУЉrature Checar a temperatura do ar Hava SФБcaklФБФŸФБnФБ Kontrol Et аŸб€аОаВаЕб€аИб‚бŒ б‚аЕаМаПаЕб€аАб‚бƒб€бƒ аВаОаЗаДбƒб…аА Show Check Air Temperature Action Zeige "УœberprУМfe Lufttemperatur" im SelbstinteraktionsmenУМ щЁЏчЄКцЊЂцŸЅцАЃцКЋх‹•фНœ Mostra Controlla l'azione della temperatura dell'aria UkУЁzat akci kontroly teploty vzduchu цА—цИЉуЎчЂКшЊх‹•фНœу‚’шЁЈчЄК PokaХМ akcje sprawdzajФ…cФ… temperaturФ™ powietrza Afficher l'interaction "VУЉrifier la tempУЉrature" Mostrar a aУЇУЃo "Checar a temperatura do ar" Hava SФБcaklФБФŸФБnФБ Kontrol Etme Eylemini GУЖster аŸаОаКаАаЗб‹аВаАб‚бŒ аДаЕаЙбб‚аВаИаЕ аПб€аОаВаЕб€аКаИ б‚аЕаМаПаЕб€аАб‚бƒб€б‹ џGGATCGVAќќќgGGATCXAMџџџџGGATGALFGGATSFFO@€‡Ž•м@@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@$@$џџџџџ  џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€$H‚$џџџџџ$I’$џџџџџIџџџџџџџџџџџџџџџџџџџџџ$@$џџџџџ$I’$џџџџџ$I’$џџџџџ@’$I’$џџџџџ  џџџџџ  џџџџџџџџџџџџџџџџџџџџџџџHџџџџџIџџџџџIџџџџџџџџџџџџџџџџџџџџџ@$@$џџџџџџџџџџџџџџџџџ  џџџџџ џџџџџ$џџџџџ$џџџџџ$џџџџџџџџџџџ€$H‚$џџџџџ$I’$џџџџџIџџџџџџџџџџџџџџџџџџџџџ@$џџџџџI’$џџџџџI’$џџџџџI’$@$џџџџџ  џџџџџ џџџџџI’$IџџџџџI’$IџџџџџI’$Iџџџџџ$џџџџџH‚$H’$џџџџџџџџџII$џџџџџ$џџџџџџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ@$@’$џџџџџ  $џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$IџџџџџI’$Iџџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџ$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџLI’$I’џџџџмЖmл™џџџџџџЖmл‚Ъџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ)њЖnѓЖbџџџџHЙџџџлџџџџ'яџѕ?§ƒ<џџџџџџџџџџџџџџџџџџџџЫЖmл`›џџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸIђџџџџџŸАЖmлђџџџџџgэЮƒ?џѓŸџџџџџџџџџџџџџџџџџџџџ№љЏ$6`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџ№џŸ$`лџџџџРйЖmлџџџџџџџџџџџџџџџџџџџџKеЖ&љŸџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџг$џџџџџџџЪџћџџџџџ ЖmлАлџџџџџџџџџџџџџџџџџџџџџџџџџџџџ)НHbлЖmлџџџџН$I’$џџџџН$I’$џџџџН$I’$џџџџН$I’$џџџџН$I’$џџџџН$I’$џџџџН$Iђ'џџџџ~х§oќvnчџџџџDЯ‡}к§иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ=ЈЖa;Жeлџџџџџ`џџџџ юрџџџџgџџџџ0“}иЕmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"‘cлЖmлџџџџ‘˜“$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ €Пџџџ№Уџџџџ€Пџџџbџџџџџ@$@$џџџџ€џџџџѓџџџџ€џџџIџџџџ€~ррџџџџ€џџџ№џџџџџI’$џџџџ€П№џ№Уџџџџ€Пђџbџџџџџ@$@$џџџџџ џџџџџI’$IџџџџџII€џџџџ€Пџџ‡§џџџџ€џŸ$$џџџџ@€œРЖ$џџџџ@€ЖcЖ$џџџџ€?$џџџџ€џŸ$$џџџџ€џŸ$$џџџџ€ $џџџџ€џŸ$$џџџџ€џŸ$$џџџџ€џŸ$џџџџ€џŸ$џџџџ€џŸ$џџџџ€џŸ$џџџџ€џŸ$џџџџ€џŸ$Жmџџџџ€ФџЖ­Шџџџџ€џŸ$џџџџџџџџ›ЯЖmлЖ$џџџџЯI’$IџџџџЯI’$IџџџџЯI’$Iџџџџ]ЯЖkЖ$џџџџ%їџ;46г>џџџџџџџџџџџџ јMbк–џџџџџ јIліџџџџџ јIліџџџџџ јIліџџџџџ јIƒ§ШџџџџѕIиЖmлџџџџџџџџџџџџ_$I’$џџџџ_$I’$џџџџ_$I’$џџџџблfУжkфџџџџж|эЧ}§РџџџџџџџџџџџџџI’$џџџџџI’$џџџџџI’$џџџџџI’$џџџџ ?6bлџџџџџџџ ?mлџџџџџџџџI’$џџџџџI’$џџџџ@РџџaOђaџџџџ€ПїŸїq?џџџџ €В!Ж“,џџџџ@РџлOџџџџ@РIbлџџџџ@РqIbлџџџџ@Р‰Ibлџџџџ@РII"иџџџџ[ЕЖmCЖf7џџџџЕIB’лџџџџЕIJ’л(џџџџпCR$t’$џџџџ%06bлЖ§џџџџџ0I№џџџџџнR‡DќџџџџџџI’$Iџџџџ@ч,X!VЮkлџџџџА@*˜ƒuP j@Р цќ? Э§?#НП’%МПU№ 9Љp 'М?>>№ wРPёќМ&=РU X<Р цќ? Эќ?<Жa[Жi@|ПCйрЏ +МП>?Cй?+<Р<А-лДТ€TTqР€ цќ? Эў?В@Йї -МП>>Йї,>РВР€ Y<Р цќ? Эќ?ёy•ё№ }~§+| ?ќ?џ§*<ёъ>˜ѕ! Y цќ? Нў?%ABџ*!ГџP HМ?>=*7Р Јќ\С€TbР€ цќ? Нў?•*МПœч MМП>>œч,>Р•*=РP HH€ цќ? Нќ?ђ ‰—W9$|;ѕџHв$I’$ gќ?ѕџIЄ)<ђ sЂ>рƒ9Н# H цќ? ­§?AНœ€П"МП+ё Їр iМП><+˜5ЬќN€Р :<Р цќ? ­ќ?zЖe{6j@џ`0 yМ?.<РШ `ќzВ=л…YР€ цќ? ­ќ?б‰—T'МПшџHТ kМП>=ш!=Р„)МбsЂ&'<Р 9@Р цќ? §?#НПž@,ЪVх`Ўў ˆМ=<,ЪЏќ ёWќOР€ )<Р цќ? ў?]"НПh$МП!РПdљ`Ўc@ ??dљТ€]!=Р„%=РT )<Р цќ? ќ?вЩ™xI•| <иџHВ$M ‰МП>=и!?РdIš'<в|2'j>uP *@Р цќ? ў?є !АџL? ЇМ?>>є 4Ь@.<  цќ? ќ??Жa[Жi#$МПFорЏ ЋМП>?Fо?+<Р?А-лДи$=РT <Р цќ? ќ?#ЖЖgƒЖj/|<џНP ИМ?/<Н€ @џ#ЖГР€BPP <… цќ? ќ?ѕy•ё№ }~ў+| Рџ?ў*<ѕъ>˜ѕ)  цќ? }ќ?(ЖmЖg;|@-ЉpPЁ@ ?<-P№Р Јќ\% лГлœ%"Р€ цќ? }ќ?›6fƒЖj,$МПЁьШПџ§Ÿџ чќ?Ёь№џћ?џ›ƒ"=РС$=РP H€ цќ? }ў?3д!ѓ?cѕ$|:_ј  кМ.<ј@)>3д!ѓ?!ќЪН+  цќ? m§?Aœ@џ.ё 'р щМП><.˜5Ьќ)NР€ цќ? mќ?~Iœ„Щ—|<џ†`0 љМ?.<†РШ `ќ~NТ${'vTPР€ цќ? mќ?д‰—T9%<:ьўјпџљџ шМџ><ьўџёПџѓ'МдsЂ&рƒ9н-6 цќ? ]§?#НП’%МПU/ЮVх`Ўў М=</ЮЏќ ёWќМ-&>РUT*< цќ? S<$ќ?`Жe{6h+|<g§`Ўу@ ??g§Р€`В=л„Т@TT(<Р цќ? ]ќ?еЩ™xI•|<лњјЯ МП><лњџёŸ)<Ре|2'j>uP)@Р цќ? ]ќ?ў9Џp (М?><ўтƒ9Pё2< цќ? I<(Iž„IќIсрЏўЫ/ЖўџЖv$ .=Ф'=юu i|>ž ,Ор$ 7?Iс?!>РжR(<OТ$H‚$ ц|& M<I$I’$”!ќ/IhbлЖmлœG:I(| "<„$€€œ@СКЬљџј h|СКЬџѓџё'О„! 0@МРО /</IIa*МH’'| цќ R<€ O6b#H} @џК jќК HќOиHuPРў / цќП цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? цќ? Ф§?Ѓ&ќ?™гќЯџќ$ўџгu X<™гџљŸџ™,§?] цќ? Ьќ?,>UU 1<$6b[Жmл~ uLœПuI _=*<$-лоPT A|*> ц|& ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< <‚ СџA) ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< d>зН€@(<vЊU <+ЖmлЖa;О*ŸАлОЈT /М,> §@@§ -Œ <лЖgЃЖbяe Г]葧й}P 0М*=@ fќ!ъFoхцўdpё!ъ/ќШ?§}@)ќ Ўќ@I’фIše@џK` 'ЌџK€Р@ќ\ђ$M‚$uT@ Іўз,П_џі+Мџі*>з 5<` ^ў Э!О_о$П_ф'ќ-> Э!?`џќu@)@` Ž§!П_$Iœ#Н_U!М_!шшЏќћпџ6М.<!шёGџїПќ N$=`U <` NќиЖe{6j+e!Р_џс0:М/<с`)<иВ=л…#=`T!@` †ќ+ѓЖbѓFoх$Н_ М=<+ѓ‘}к"H`#>`@ v§#Н_’$М_!Т_"щ!sпЪПџ М.>"щ!sрєќМ %=`U <` >ќЎЖa[Жi#$|п!О_К  'ўџК€'<ЎА-лДи$|р <` >ўа!pп%Н_\ы М=>а!pр%=`P |b >ќ"№VnўшЏќ 7М/<`№ќг"ˆР-М Nўx*М_†ћШПџ§Ÿџ Gќ†ћ№џћ?ўx*>`TP Fўл!sпіnє@? AМ_?<`"sрŸ§ТТ@@@ Fў-ёŸ _ў-ёЁ ќEЖmЖg;B?џQŸ ^ўџQЁ\ лГлР@ ўнŸљ ]М.=љЁн Ё ў д%Ÿ _> д Ё ў€^|џ\$`@I'Нлv$== (|ž = ќ$РШ*‰+<€a|џ їМ.<I$I’$|хФ}%HbлHш•U%pэœ4<*нPnфFnфœ:@ *н№РќР”\>ќ%I`*МH’'<a *нF'§ $ќPџмџ3@fР цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ Еќ)?U?<'щFn4ЖdлмџIщџŸ$`лќ <'щœТ’mлмџ <-ќ М ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< ц< Y<СџA) ц< ц< ц< –>\чY@(>QŒYU.< I’$I’нО‚$нT>ќ-Н lџп@@§ -ŒќщЖe›6bяfщВMл§й~TP>ќ*Н@ ’ќхvoфжoўdxwхЏ§РПќг|)ј Ћ§'М/!№.U•кШЏџќŸџќк№_џљ?§'<0~VT Ђќ!яЖa{Жk#u!У/џѕ+ќџѕ*<!яА=лЕиtTTPP ЂќOчЖnѓvnќu\uє'ќ-<Oч—}к§УuP9<1 ŠќмцќњЯџ6М.<м?§џѕŸ.| Šќ РЖa[Жi;$М/ЯїјŒy ќЯїџё?)М РА-лДл$>0TP ‚ўш!po!ˆ_v М/>>ш!pp!ˆ`tPP@@ ‚ўAо!roЮ• М.>Aо!spќu@-М f§!МnIž$œHtэќп$`лдUюџŸфb#н>М\џ$инPџ™Є)<\ ‚$O’  …џŸю6џ6Н@>ќюи$ўoPP Єќo цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ цќ аќћо@€*<Е^Њ фЩ‘фI’$ %єIЖmлќ.<фxђ$оP 0<*О ^М ц< ц< ц< +<€€@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџyЮPI’$I’џџyЮI’$I‚$џџyЮTџџyЮџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP:фЖa›Жcуџџ:фАMлБ}иџџTTPPОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP(д6oчЦя§џџ(дЇ§и?ќЯџџP@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPPУЮџћпџџџџџУќџїПџџџџОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџOцЖmЖi;џџџёџџџџџёџџџџOцЖ лДлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ іЖnѓvcџџя †џџџџќџџџџ †џџџџџџџџџ і—}кЉ иџџяџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPPPP‚ШќШќџџ‚№№џџ@@@@ОїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџОїPP GюяўFbлџџG§з lлџџ@@€Ої џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџI’$I’џџ\чI’$I‚$џџ\чџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ5џЖa{Жk#џџ5џА=лЕиџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџФ6oчЦя§џџФЇ§и?ќЯџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџAБЮяѕ6nуџџAБќЮ‡}иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA@ф@фџџA№№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЖb+ЖbCџџџ‘й‘-иџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ џџџџџџџџџџџџџџОї0џџОї џџџџџџџџџџџџџџџџџџџџџџџџЮ€шџџЖЕЮ@pџџЖЕџџџџџџџџџџџџџџџџџџџџџџџџч‰‘dI–dџџЖЕчpВ$KВ$џџЖЕџџџџџџџџџџџџџџџџџџџџџџџџ IIџџЖЕ H‚$H‚$џџЖЕџџџџџџџџџџџџџџџџџџџџџџџџ IIџџЖЕ H‚$H‚$џџЖЕџџџџџџџџџџџџџџџџџџџџџџџџ IIџџЖЕ H‚$H‚$џџЖЕџџџџџџџџџџџџџџџџџџџџџџџџf Жc;ЖcџџЖЕ0f БлБ лџџЖЕ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ,{ЖmлЖa;џџпџ€,{ЖmлАлџџпџџџџџџџџџPtЖcЖaџџџџPtБ лА лџџџџџџџџџџџџPIIџџџџPH‚$H‚$џџџџџџџџџџџџBPЖcЖmлџџџџBPБ лЖmлџџџџџџџџ@(1Жm[Жcџџџџ(1Ж-лБ лџџџџ%(Жc;Жaлџџџџ%(БлАmлџџџџ –ьФnmРџџџџџGGATCGVA§§§АGGATCXAMџџџџGGATGALFGGATSFFO@€‡@ŽP•TœUуU€€@џџ@џџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUЖmлЖ 1џџџџ&;ЖmлЖ5џџџџ@HЖmлЖ5џџџџ@HЖmлЖџџџџ&;ЖmлЖџџџџЖmлЖ џџџџџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџџџ@@@@I’$I’џџUUUsI’$Щ§џџUUвI’м.7џџUўЩя–›џџџџAЧж&џџџџџџџџљ=IџџџџЉДXѓџџџџџџџџЉДщ№џџџџџџџџџў#iџџџџAЧ“ДџџџџџџџўТжвџџџџвIт'c hџџUtЖmлА џџUU@I’$I‚$џџUUUTџџџџ@@@@I’$I’џџUUUšI’$Щ{џџUь6cгќџџџcqGџџџџъњШџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџъњ№џџџџџџџџџcЋˆџџџџь‚Э )їЇџџ@šI’$}‚љџџUT@I’$I‚$џџUUUTџџџџ@@@@6I’$IžџџUU#ЏЖaˆXУќџџXрXУќџџџџџџџџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџџџџYрщ№‡џџџџџџџ#ААMСщ№‡џџP6I’$O'џџUUT@џџџџ@@@@lЖm6d,џџUз†ˆ1kоќџџџџџЦ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЦР@џџџџзOїЇџџџџlЖ л‚СџџUTP@џџџџ@@@@lЖm6f(џџUџyї0џџџџяўШџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџяў№џџџџџџџџџыƒѕР `џџџџlЖ лƒСџџUTP@џџџџ@@@@6I’$IœџџUUиЦŠ5bЮќџџџџяўјŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџяўџё?џџџџџџџиœѕ‡џџџџ6I’$N‚'џџUTTPџџџџ@@@@I’$I’џџUUU#Џ6h,VцџџџЦ0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЦ€`џџџџ#А„СЏќџџ@@I’$I‚$џџUUUTџџџџ@@@@™IžФЩ—џџYсрПќ§ŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџYс?ёgџћ?џџџџ™Oт${‚&џџTPP@џџџџ@@@@I’$I’џџUUUьЦj1X/цџџџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџџџџьЪя№Pџџ@I’$I‚$џџUUUTџџџџ@@@@tЖa[Жi#џџџc!`0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџcШ `џџџџtА-лДиџџTPPPџџџџ@@@@в‰—T9џџъњјŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџъњџё?џџџџџџџвsЂ&рƒ9џџ@@@@џџџџ@@@@ўёЏp џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџў˜ƒ5PёџџџџџџЖa[Жi;џџџџAЧшЏўЪПќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџA№РЬџџџџ џџџџ&;Жa{Жk;џџџџџp`џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџƒРш€Шџџџџ';А=лЕлџџџџ@HЖa{Жk;џџџџЉДјПџ§ŸџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЉДџёŸџћ?џџџџAHА=лЕлџџџџAHЖcЛЖgџџџџЉДљпџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЉДџѓПџљџџџџAHБ]лГ лџџџџ&;ЖcЛЖgџџџџџpџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‚€ ш€,џџџџ&;Б]лГ лџџџџЖc›ЖeџџџџBЧЫЏќъўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџAЧіGѕџџџџБMлВ лџџџџџџ@@@@ўЇ№ щџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўѕXƒ9џџџџџџџџ@@@@вёI•xџџъњџџџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџъњџџџџѓџџџџв˜>j2'џџ@@@@џџџџ@@@@t6b›ЖeџџџcPџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџc € 0џџџџtMлВ лџџPPPTџџџџ@@@@I$I’$џџUUUьbŽѕcЌџџџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћ џџџџьѕЁмСџџ@H’$I’$џџTUUUџџџџ@@@@™I‘|IœфџџYсљпџЫўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџYсџѓПіџџџџ™hВ'Nђ$џџ@PPTџџџџ@@@@I$I’$џџUUU#А`nѕЦbƒџџџЧџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЧ(џџџџ%АёЪLиџџ@@H’$I’$џџTUUUџџџџ@@@@6Щ‘ФI’$џџUиЬ/цXcЌџџџџяўџџџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ№ўџџџџѓџџџџијPщаСџџџџ6xт$I’$џџPTTUџџџџ@@@@l†bcЖaлџџUџаяwџџџџяўџџџџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџяўџџџџџџџџџџЌXП>џџџџl<иАmлџџ@PTUџџџџ@@@@lЦbCЖaлџџUиЭПцcˆџџџџџЦџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЧ,џџџџињtс@Сџџџџl,иАmлџџ@PTUџџџџ@@@@6‰‘фI’$џџUU%АЬ5†hџџYсџџџЬ5џџџџџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћ џџџџYсџџџ˜џџџџ$А˜ лџџP7,лЖmлџџ@TUUџџџџ@@@@I$I’$џџUUUšїМI’$џџUьЭ?6аhCџџџcwџџџџыњџџџџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџыњџџџџџџџџџџc€И:џџџџьšrœ иџџ@š˜п'I’$џџ@TUH’$I’$џџTUUUџџџџ@@@@I$I’$џџUUUtcЖmлџџUUврrЩ$џџUўАIn™ќџџџџџBф–пџџџџџ“”пџџџџЉЕџџџџ5џџџџЉЕџџџџŸџџџџџ’ц?џџџџџBщ?џџџџў ml§'џџџџв€6ж~’$џџUtЁлЖmлџџ@UUH’$I’$џџTUUUџџџџ@џџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUџџUcлЖmлџџџџ&ёЖ л§РџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџжЖm{ЖnфџџџџџsџџџџPїџџ?№РџџџџZџ‘ лЖmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ИVn#ЖaлџџџџЖџџџљќџџџџџ)€@џџџџЙЖ лБ}кџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ˜ЖmлЖa;џџџџUхцџљџџџџџџ еџџџџћџџџџY§-лЖmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ пFo#ЖeлџџџџgѕџџџљџџџџџрПќџљџџџџџ>I’$I‚$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ6њ6bѓЦoўџџџџџџџџџџфП|к=лџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ'ёюoфіnЛџџџџџџџџџџПБ§йќЯџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџa џџџџ.ьјЯџљџџџџџџNЭџѓќЫџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџSЖcЖmлџџџџSйџпџјяќџџџџ:э§џљ?џџџџI’$I‚$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџКЖcуіnїџџџџџџџџџџч|к—лџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџДцoќvnяџџџџџџџџџџIэВMлБ}иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџпFn§оoўџџџџвѕџџџџѓџџџџ•Б=лАmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ Ъ6n;Жi{џџџџџџџџџџъЇ§кќЫџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџгюќњЏџџџџџAЇџѓŸџѕџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ0Жc{ЖaлџџџџКьџŸџћџџџџџXГ?ќЯ§ЧџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџLjјПџ§Ÿџџџџџђџё№џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџˆЅљПџњџџџџџХк?ќг§ЧџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџFhљпџћџџџџџ6џё_џї?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‰ЏјЏџћŸџџџџџПйќз?§Уџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ2ѓШќюoўџџџџMџIDI–„џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџCЖmЖg;џџџџџХPџџџџIЊќзџќУџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџѕоo§Fnїџџџџхўџё?џџџџџџџ ИА-лДлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ>фЖg›Жcуџџџџџџџџџџ%н?ќиЏ§йџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ х6oы6b›џџџџџџџџџџђ№/№ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџEџіb7Fb&џџџџџџџџџџ3л‡лД лџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЖcЖmлџџџџmщџпџјяќџџџџё?§џљ?џџџџ$I’$I‚$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ˜ЖmлЖa;џџџџ#ёШЯџљџџџџџџђџћ№гџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџсцoфіn#џџџџџџџџџџџK'P0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџѓЖnєоЏќџџџџџџџџџџ#ѓ|кMлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ`I$I’$џџџџ$ЙџŸџјя§џџџџKъџё?џџџџџџџ ЯЖ-л§ТџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџQЖm;іnќџџџџџМџџџџфџѓ§РџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЧvo;Жaлџџџџџ1џџџџ Е№?џџџџџџџ нЖ л…§ШџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџRЖmіюќџџџџLљШŸџџџџџџџџ™ВџџџџёЧџџџџu'џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ=ёFn#Жaлџџџџџ+џџџџiє№џџџџџџџџ*№Ж]иЯќПџџџџVЖmлЖиџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ"—ЖmлЖm#џџџџМЖe№ЪџџџџџџџКџџџџ˜БџџџџѓУџџџџ ЛиАmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЕFn›ЖmлџџџџџџџџџџџџџџџUе/ќ?џџџџџџџ!ВЖMиіџџџџџіrџџџџ1ЖmлЖСџџџџџџџџџџџџ CЖmлЖm,џџџџ тЖmл6ДцџџџџжЖmЌЬџџџџџџ'я`žџџџџџџџџџџџџџџрџџ?‘йџџџџGt лЖmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@I$I’$џџџџSХ§oфЖaлџџџџ<щџџџ§o0џџџџџџџџџџџџџџџџЛыЯ№џџџџџџџџˆЅ№џџџџџџџџ‰ЏађџџџџџџџџџХЉџџџџџџџџџџџџџџџџяџџџиСџџџџ,›џћРАmлџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџI$I’$џџџџшknCЖmлџџџџшџЯц6dлџџџџVБџџџXcлџџџџТкџџџ`cлџџџџМйџџџ)aлџџџџHЉџџџщ`лџџџџџ­O’$џџџџ2жлЖmлџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ+I’$I’џџџџАЖmVžџџџџџё6Дцџџ?џџџџeЩћџџnџџџџ]гх№џџП1џџџџя‚§tџџџџџџџ™Ж лќ?џџџџI’$I‚$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ!уЖmлЖa#џџџџ}н6nўљџџџџџLхџџmлџџџџнЁлЖmлџџџџџџџџџџџџœXnЖmлџџџџ)рџПќіnџџџџ\э§ЯџйџџџџџШЖmлАиџџџџџџџџџџџџџџџџџџџџџџџџ+I’$I’џџџџ}мvnўјџџџџџfu|иБmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ЅШoчЖcџџџџNџЁЬIаЄџџџџI’$I‚$џџџџџџџџџџџџџџџџџџџџАЖcыvnќџџџџLхќУЏ}иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџёњoўFnѓџџџџƒђА뇧꟟џџџџџџџџџџџџџџџџџџёояўШЏ?џџџџоMлВ лџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ%Х6n;Жi[џџџџњПќг§џџџџџџџџџџџџџџџџџџџџgЩјГŸќзџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЖcЖmлџџџџџ5"р<Рџџџџџџџџџџџџџџџџџџџџ^г§Чћ‰?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЖmлЖa;џџџџџ.,Р џџџџџџџџџџџџџџџџџџџџ№њќюя§џџџџ›А=лБ}иџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ<џЖa{Жk#џџџџ4ѕќзџќУџџџџџџџџџџџџџџџџџџџџšЦoчЖn;џџџџ)рŸ§иџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ-ЛvoќЮПџџџџџiцЏ}иБ лџџџџџџџџџџџџџџџџџџџџI$I’$џџџџ]юљ‹џоoѓџџџџ ЅАл§џџџџџџџџџџџџџџџџџџџџџџџџџџџџзЖa#FŽќџџџџ2бџѓџ|кџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџШ6bЖmлџџџџNџIЪ$^bЃџџџџ№В}Тјџџџџџ&ХЖmлА§PџџџџЖmлЖиџџџџЖmлЖm#џџџџ<џЖmлЖ5џџџџ.ЛЖgф§џџџџџџ1бџџŸџиџџџџЁ лЖmлџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџI$I’$џџџџ‚ёШoЃЖmлџџџџљџџџbcџџџџџ4алџџџџџ.“`?џџџџ4єџџџщ`лџџџџjфPиЖmлџџџџH’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџJI’$I’џџџџ6шЖm/ШћШџџџџZмXѓЇАmлџџџџр)еќ6fлџџџџѓI‚&‚žџџџџ:I’$I‚$џџџџџџџџџџџџ6ш6n'охдџџџџи лЖmлџџџџџџџџџџџџц€@џџџџѕx%E)џџџџџџџџџџџџZм8Млкџџџџџџџџџџџџџџџџџџџџ5фоa|іiЇџџџџџџџџџџџџрЉни<ЌЯџџџџџџџџџџџџџџџџџџџџ5цvjŸЦчџџџџџџџџџџџџђ’Ђ‰џџџџцџџџџџџџџџџџџDѓЖmлЖa#џџџџщNЭЫЏиџџџџџџџџџџџџ:I$I’$џџџџѕ@sAI•$џџџџ5фЖ=иџƒБџџџџ5цЖmcљ_џџџџ щр“mлџџџџ*H’$I’$џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџI’$I’џџџџНI’$)€=џџџџЭI’$P“OџџџџI’$I‚$џџџџМЖcv`ЧџџџџEH’$I’$џџџџQI$I’$џџџџ*ЬЕMйЈэиџџџџЭ ’шI—DџџџџQI’$I‚$џџџџ_I’$I’џџџџ/ЬŽк•]лџџџџI$I’$џџџџ*Ь%l5Жmлџџџџ/ЬF›ЪЖmлџџџџ H’$I’$џџџџ@hЖm'ьиџџџџgPџџџџg€@џџџџivlХ lлџџџџ4N тФџџџџ#include "script_component.hpp" GVAR(WindInfo) = false; ["ACE3 Common", QGVAR(WindInfoKey), localize LSTRING(WindInfoKeyToggle), { // Conditions: canInteract if !([ACE_player, ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false}; // Statement [] call FUNC(displayWindInfo); }, {false}, [37, [true, false, false]], false, 0] call CBA_fnc_addKeybind; // (SHIFT + K) ["ACE3 Common", QGVAR(WindInfoKey_hold), localize LSTRING(WindInfoKeyHold), { // Conditions: canInteract if !([ACE_player, ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false}; // Statement [] call FUNC(displayWindInfo); }, { GVAR(WindInfo) = false; (["RscWindIntuitive"] call BIS_fnc_rscLayer) cutText ["", "PLAIN", 2]; }, [0, [false, false, false]], false, 0] call CBA_fnc_addKeybind; // (empty default key) #include "script_component.hpp" ["ace_settingsInitialized", { if (!GVAR(enabled)) exitWith {}; GVAR(temperatureShift) = random [-SD_TO_MIN_MAX(4), 0, SD_TO_MIN_MAX(4)]; // Gauss(0, 4) GVAR(badWeatherShift) = random [-SD_TO_MIN_MAX(2) + 4, 4, 4 + SD_TO_MIN_MAX(2)]; // Gauss(4, 2) GVAR(humidityShift) = random [-SD_TO_MIN_MAX(0.065), 0, SD_TO_MIN_MAX(0.065)]; // Gauss(0, 0.065) if (GVAR(windSimulation)) then { call FUNC(initWind); [FUNC(updateWind), 1] call CBA_fnc_addPerFrameHandler; }; [FUNC(updateWeather), GVAR(updateInterval)] call CBA_fnc_addPerFrameHandler; }] call CBA_fnc_addEventHandler; //#define DEBUG_MODE_FULL #include "script_component.hpp" ADDON = false; PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; #include "initSettings.sqf" // Make sure this data is read before client/server postInit call FUNC(getMapData); ADDON = true; PREP(calculateAirDensity); PREP(calculateBarometricPressure); PREP(calculateDensityAltitude); PREP(calculateDewPoint); PREP(calculateHeatIndex); PREP(calculateRoughnessLength); PREP(calculateSpeedOfSound); PREP(calculateTemperatureAtHeight); PREP(calculateWetBulb); PREP(calculateWindChill); PREP(calculateWindSpeed); PREP(displayAirTemp); PREP(displayWindInfo); PREP(getApproximateAirTemp); PREP(getMapData); PREP(initModuleSettings); PREP(initWind); PREP(updateHumidity); PREP(updateTemperature); PREP(updateWeather); PREP(updateWind); #include "script_component.hpp" #include "XEH_PREP.hpp" 0DHT§ќ|?§ќ|?§ќ|?ЯЮЮ>ќќќgџџџџџџџџ ui\icon_module_wind_ca.paa@@ € ‡ Ž • мљнм\?по^?§ќ|?НМ<>ќом/џџџџџџџџ ui\temp_ca.paa€€ €@@ ‡@ ŽP •T œU уUV§ќ|?§ќ|?§ќ|?€=ќќќџџџџџџџџ ui\wind_arrow_ca.paa  € ы (€€ Д+@@ Лk Т{ Щ а€ 4ў§}?ў§}?ў§}?БА0?§§§Аџџџџџџџџ ui\wind_dot_ca.paa€€ €@@ ‡@ ŽP •T œU уUVјїw?јїw?јїw?йии=їїїџџџџџџџџ ui\wind_nonecircle_ca.paa€€ €@@ ‡@ ŽP •T œU уUVЖ,Щ…шьЂ%Ы-*‰‚$xhЛЫ