From b5acd3775479ad4f70b2c55c12e127afb00f2643 Mon Sep 17 00:00:00 2001 From: zhutoutoutousan Date: Sat, 2 May 2026 15:55:04 +0200 Subject: [PATCH] UpDATE --- ai/eurusd1h/EURUSD_H1_ActionEA.mq5 | 386 ++++++++ ai/eurusd1h/__pycache__/main.cpython-312.pyc | Bin 0 -> 18585 bytes ai/eurusd1h/here.md | 37 + ai/eurusd1h/main.py | 316 +++++++ ai/eurusd1h/models/EURUSD_H1_action.onnx | Bin 0 -> 321768 bytes ai/eurusd1h/models/EURUSD_H1_action_meta.json | 133 +++ .../models/EURUSD_H1_action_scaler.pkl | Bin 0 -> 964 bytes ai/eurusd1h/requirements.txt | 1 + ai/yt/US500_H1_ArticleEA.mq5 | 663 ++++++++++++++ ai/yt/US500_H1_ArticleEA.set | 30 + ai/yt/US500_H1_ArticleEA_optimize.set | 24 + .../train_article_split.cpython-312.pyc | Bin 0 -> 19186 bytes ai/yt/here.md | 30 + ai/yt/models/US500_H1_article_split.onnx | Bin 0 -> 321801 bytes ai/yt/models/US500_H1_article_split_meta.json | 131 +++ .../models/US500_H1_article_split_scaler.pkl | Bin 0 -> 962 bytes ai/yt/requirements.txt | 1 + ai/yt/train_article_split.py | 315 +++++++ frontline/cluster-0/README.md | 0 .../_united-V2/PerformanceEvaluator.mqh | 607 ------------ .../DarvasBoxXAUUSD_Genetic_Optimization.set | 27 + .../cluster-fuck/DarvasBoxXAUUSD/main.mq5 | 443 +++++++++ .../main.mq5 | 628 +++++++++++++ .../report.html | Bin 0 -> 1883870 bytes .../report.png | Bin 0 -> 30183 bytes .../RSIConsolidation.mq5 | 347 +++++++ .../RSIConsolidation_optimization.set | 37 + .../RSICrossOverReversalXAUUSD/main.mq5 | 295 ++++++ .../RSIMidPointHijackXAUUSD/main.mq5 | 604 ++++++++++++ .../RSIMidPointHijackXAUUSD/report.html | Bin 0 -> 5214578 bytes .../RSIMidPointHijackXAUUSD/report.png | Bin 0 -> 29812 bytes .../RSIReversalAsianAUDUSD/main.mq5 | 539 +++++++++++ .../RSIReversalAsianAUDUSD/test-balance.png | Bin 0 -> 246580 bytes .../RSIReversalAsianEURUSD/main.mq5 | 539 +++++++++++ .../RSIReversalAsianEURUSD/test-balance.jpg | Bin 0 -> 256188 bytes .../RSIScalpingBTCUSD-trailing/main.mq5 | 581 ++++++++++++ .../RSIScalpingBTCUSD-trailing/report.html | Bin 0 -> 962604 bytes .../RSIScalpingBTCUSD-trailing/report.png | Bin 0 -> 8384 bytes .../NVDA_Genetic_Optimization.set | 28 + .../NVDA_Genetic_Optimization_Alternative.set | 24 + .../OPTIMIZATION_GUIDE.md | 134 +++ .../RSIScalpingNVDA-trailing/main.mq5 | 408 +++++++++ .../RSIScalpingTSLA-trailing/main.mq5 | 408 +++++++++ .../RSIScalpingTSLA-trailing/report.html | Bin 0 -> 2231020 bytes .../RSIScalpingTSLA-trailing/report.png | Bin 0 -> 8829 bytes .../RSIScalpingXAUUSD-trailing/123.set | 34 + .../RSIScalpingXAUUSD-trailing/main.mq5 | 645 +++++++++++++ .../RSIScalpingXAUUSD-trailing/report.html | Bin 0 -> 5649556 bytes .../RSIScalpingXAUUSD-trailing/report.png | Bin 0 -> 8629 bytes .../RSI_secret_sauce_XAUUSD/main.mq5 | 508 ++++++++++ .../SimpleTrendlineBTCUSD/SimpleTrendline.mq5 | 284 ++++++ .../SimpleTrendline_optimization.set | 14 + .../SimpleTrendlineGER40/SimpleTrendline.mq5 | 284 ++++++ .../SimpleTrendline_optimization.set | 14 + .../SimpleTrendlineXAUUSD/SimpleTrendline.mq5 | 376 ++++++++ .../SimpleTrendline_optimization.set | 14 + .../cluster-fuck/SuperEMAXAUUSD/SuperEMA.set | 36 + .../cluster-fuck/SuperEMAXAUUSD/main.mq5 | 448 +++++++++ .../_united-V2/MagicNumberHelpers.mqh | 88 +- .../_united-V2/STRATEGY_CONFIGURATION.md | 0 .../Strategies/DarvasBoxStrategy.mqh | 38 +- .../Strategies/EMASlopeDistanceStrategy.mqh | 238 +++-- .../Strategies/RSIConsolidationStrategy.mqh | 0 .../RSICrossOverReversalStrategy.mqh | 28 +- .../Strategies/RSIMidPointHijackStrategy.mqh | 37 +- .../Strategies/RSIReversalAsianStrategy.mqh | 41 +- .../Strategies/RSIScalpingStrategy.mqh | 87 +- .../Strategies/RSISecretSauceStrategy.mqh | 336 +++++++ .../Strategies/SimpleTrendlineStrategy.mqh | 0 .../Strategies/SuperEMAStrategy.mqh | 42 +- .../_united-V2}/main.mq5 | 461 ++++++---- .../_united-V2/report.png | Bin .../_united-V2}/self-evaluate.mq5 | 284 +++--- .../MagicNumberHelpers.mqh | 88 +- .../STRATEGY_CONFIGURATION.md | 0 .../Strategies/DarvasBoxStrategy.mqh | 38 +- .../Strategies/EMASlopeDistanceStrategy.mqh | 238 +++-- .../Strategies/RSIConsolidationStrategy.mqh | 0 .../RSICrossOverReversalStrategy.mqh | 28 +- .../Strategies/RSIMidPointHijackStrategy.mqh | 37 +- .../Strategies/RSIReversalAsianStrategy.mqh | 41 +- .../Strategies/RSIScalpingStrategy.mqh | 87 +- .../Strategies/RSISecretSauceStrategy.mqh | 336 +++++++ .../Strategies/SimpleTrendlineStrategy.mqh | 318 +++++++ .../Strategies/SuperEMAStrategy.mqh | 42 +- .../_united-V2 => cluster-gold}/main.mq5 | 249 +++-- .../report.png | Bin .../self-evaluate.mq5 | 284 +++--- .../_united-V2/PerformanceEvaluator.mqh | 607 ------------ .../Strategies/DarvasBoxStrategy.mqh | 10 +- .../Strategies/SimpleTrendlineStrategy.mqh | 318 +++++++ frontline/united_template/_united-V2/main.mq5 | 152 ++- .../_united-V2/self-evaluate.mq5 | 204 +---- .../PerformanceEvaluator.mqh | 607 ------------ .../_united/PerformanceEvaluator.mqh | 607 ------------ .../united_template/_united/self-evaluate.mq5 | 204 +---- ...nceCocktailXAUUSD_Genetic_Optimization.set | 36 + .../main.mq5 | 589 ++++++++++++ .../report.html | Bin 0 -> 1883870 bytes .../report.png | Bin 0 -> 30183 bytes .../RSIScalpingNVDA-Sharpshooter/123.set | 20 + .../NVDA_Escaper_Genetic_Optimization.set | 20 + .../NVDA_Genetic_Optimization.set | 28 + .../OPTIMIZATION_GUIDE.md | 134 +++ .../RSIScalpingNVDA-Sharpshooter/main.mq5 | 446 +++++++++ .../main.mq5 | 628 +++++++++++++ .../report.html | Bin 0 -> 1883870 bytes .../report.png | Bin 0 -> 30183 bytes .../RSIScalpingBTCUSD-trailing/main.mq5 | 581 ++++++++++++ .../RSIScalpingBTCUSD-trailing/report.html | Bin 0 -> 962604 bytes .../RSIScalpingBTCUSD-trailing/report.png | Bin 0 -> 8384 bytes .../NVDA_Genetic_Optimization.set | 28 + .../NVDA_Genetic_Optimization_Alternative.set | 24 + .../OPTIMIZATION_GUIDE.md | 134 +++ .../RSIScalpingNVDA-trailing/main.mq5 | 408 +++++++++ .../RSIScalpingTSLA-trailing/main.mq5 | 408 +++++++++ .../RSIScalpingTSLA-trailing/report.html | Bin 0 -> 2231020 bytes .../RSIScalpingTSLA-trailing/report.png | Bin 0 -> 8829 bytes .../RSIScalpingXAUUSD-trailing/123.set | 34 + .../RSIScalpingXAUUSD-trailing/main.mq5 | 645 +++++++++++++ .../RSIScalpingXAUUSD-trailing/report.html | Bin 0 -> 5649556 bytes .../RSIScalpingXAUUSD-trailing/report.png | Bin 0 -> 8629 bytes frontline/units/RSIScalpingBTCUSD/main.mq5 | 219 ++++- .../SimpleTrendlineXAUUSD/SimpleTrendline.mq5 | 92 ++ lab/EAs/RSILadderXAUUSD/main.mq5 | 437 +++++++++ lab/EAs/RSILadderXAUUSD/report.html | Bin 0 -> 5649556 bytes lab/EAs/RSILadderXAUUSD/report.png | Bin 0 -> 8629 bytes .../SimpleTrendlineTSLA/SimpleTrendline.mq5 | 284 ++++++ .../SimpleTrendline_optimization.set | 14 + lab/EAs/catcher-optimization.set | 21 + lab/EAs/double-top-bottom-catcher.mq5 | 350 +++++++ lab/EAs/rsi-dual-martingale-hybrid.mq5 | 404 ++++++++ .../__pycache__/__init__.cpython-312.pyc | Bin 677 -> 0 bytes polymarket/analytics/__init__.py | 5 - polymarket/analytics/metrics.py | 216 ----- polymarket/api/__init__.py | 7 - .../api/__pycache__/__init__.cpython-312.pyc | Bin 376 -> 0 bytes .../__pycache__/clob_client.cpython-312.pyc | Bin 7015 -> 0 bytes .../__pycache__/data_client.cpython-312.pyc | Bin 3883 -> 0 bytes .../__pycache__/gamma_client.cpython-312.pyc | Bin 7238 -> 0 bytes polymarket/api/clob_client.py | 175 ---- polymarket/api/data_client.py | 88 -- polymarket/api/gamma_client.py | 177 ---- polymarket/backtesting/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 272 -> 0 bytes .../__pycache__/engine.cpython-312.pyc | Bin 21140 -> 0 bytes polymarket/backtesting/engine.py | 499 ---------- polymarket/docs/API_REFERENCE.md | 627 ------------- polymarket/docs/DOCUMENTATION_SUMMARY.md | 166 ---- polymarket/docs/GLOSSARY.md | 200 ---- polymarket/docs/QUICKSTART.md | 173 ---- polymarket/docs/STRATEGY_GUIDE.md | 423 --------- polymarket/gui/QUICKSTART.md | 98 -- polymarket/gui/README.md | 125 --- polymarket/gui/README_COMPONENTS.md | 40 - polymarket/gui/__init__.py | 1 - .../gui/__pycache__/app.cpython-312.pyc | Bin 2477 -> 0 bytes polymarket/gui/api/__init__.py | 19 - .../api/__pycache__/__init__.cpython-312.pyc | Bin 819 -> 0 bytes .../api/__pycache__/backtest.cpython-312.pyc | Bin 5082 -> 0 bytes .../api/__pycache__/markets.cpython-312.pyc | Bin 7060 -> 0 bytes .../api/__pycache__/strategy.cpython-312.pyc | Bin 1801 -> 0 bytes polymarket/gui/api/backtest.py | 125 --- polymarket/gui/api/markets.py | 171 ---- polymarket/gui/api/strategy.py | 51 -- polymarket/gui/app.py | 81 -- polymarket/gui/requirements.txt | 3 - polymarket/gui/run.bat | 13 - polymarket/gui/run.sh | 14 - polymarket/gui/simple_app.py | 643 ------------- polymarket/gui/start_dashboard.py | 34 - polymarket/gui/static/js/app.js | 133 --- .../static/js/components/BacktestComponent.js | 295 ------ .../static/js/components/MarketsComponent.js | 96 -- .../js/components/PositionsComponent.js | 58 -- .../static/js/components/StrategyComponent.js | 135 --- .../gui/static/js/utils/Notification.js | 39 - .../gui/static/js/utils/WebSocketManager.js | 71 -- polymarket/gui/static/script.js | 752 --------------- polymarket/gui/static/style.css | 866 ------------------ polymarket/gui/templates/dashboard.html | 228 ----- polymarket/gui/test_server.py | 33 - polymarket/strategies/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 326 -> 0 bytes .../__pycache__/base_strategy.cpython-312.pyc | Bin 9320 -> 0 bytes polymarket/strategies/base_strategy.py | 218 ----- polymarket/strategies/examples/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 303 -> 0 bytes .../simple_probability.cpython-312.pyc | Bin 3783 -> 0 bytes .../strategies/examples/simple_probability.py | 104 --- polymarket/trading/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 272 -> 0 bytes .../__pycache__/engine.cpython-312.pyc | Bin 12658 -> 0 bytes polymarket/trading/engine.py | 302 ------ polymarket/utils/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 256 -> 0 bytes .../utils/__pycache__/config.cpython-312.pyc | Bin 3054 -> 0 bytes polymarket/utils/config.py | 50 - 198 files changed, 18743 insertions(+), 11368 deletions(-) create mode 100644 ai/eurusd1h/EURUSD_H1_ActionEA.mq5 create mode 100644 ai/eurusd1h/__pycache__/main.cpython-312.pyc create mode 100644 ai/eurusd1h/here.md create mode 100644 ai/eurusd1h/main.py create mode 100644 ai/eurusd1h/models/EURUSD_H1_action.onnx create mode 100644 ai/eurusd1h/models/EURUSD_H1_action_meta.json create mode 100644 ai/eurusd1h/models/EURUSD_H1_action_scaler.pkl create mode 100644 ai/eurusd1h/requirements.txt create mode 100644 ai/yt/US500_H1_ArticleEA.mq5 create mode 100644 ai/yt/US500_H1_ArticleEA.set create mode 100644 ai/yt/US500_H1_ArticleEA_optimize.set create mode 100644 ai/yt/__pycache__/train_article_split.cpython-312.pyc create mode 100644 ai/yt/here.md create mode 100644 ai/yt/models/US500_H1_article_split.onnx create mode 100644 ai/yt/models/US500_H1_article_split_meta.json create mode 100644 ai/yt/models/US500_H1_article_split_scaler.pkl create mode 100644 ai/yt/requirements.txt create mode 100644 ai/yt/train_article_split.py delete mode 100644 frontline/cluster-0/README.md delete mode 100644 frontline/cluster-0/_united-V2/PerformanceEvaluator.mqh create mode 100644 frontline/cluster-fuck/DarvasBoxXAUUSD/DarvasBoxXAUUSD_Genetic_Optimization.set create mode 100644 frontline/cluster-fuck/DarvasBoxXAUUSD/main.mq5 create mode 100644 frontline/cluster-fuck/EMASlopeDistanceCocktailXAUUSD-trailing/main.mq5 create mode 100644 frontline/cluster-fuck/EMASlopeDistanceCocktailXAUUSD-trailing/report.html create mode 100644 frontline/cluster-fuck/EMASlopeDistanceCocktailXAUUSD-trailing/report.png create mode 100644 frontline/cluster-fuck/RSIConsolidationXAUUSD/RSIConsolidation.mq5 create mode 100644 frontline/cluster-fuck/RSIConsolidationXAUUSD/RSIConsolidation_optimization.set create mode 100644 frontline/cluster-fuck/RSICrossOverReversalXAUUSD/main.mq5 create mode 100644 frontline/cluster-fuck/RSIMidPointHijackXAUUSD/main.mq5 create mode 100644 frontline/cluster-fuck/RSIMidPointHijackXAUUSD/report.html create mode 100644 frontline/cluster-fuck/RSIMidPointHijackXAUUSD/report.png create mode 100644 frontline/cluster-fuck/RSIReversalAsianAUDUSD/main.mq5 create mode 100644 frontline/cluster-fuck/RSIReversalAsianAUDUSD/test-balance.png create mode 100644 frontline/cluster-fuck/RSIReversalAsianEURUSD/main.mq5 create mode 100644 frontline/cluster-fuck/RSIReversalAsianEURUSD/test-balance.jpg create mode 100644 frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/main.mq5 create mode 100644 frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/report.html create mode 100644 frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/report.png create mode 100644 frontline/cluster-fuck/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization.set create mode 100644 frontline/cluster-fuck/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization_Alternative.set create mode 100644 frontline/cluster-fuck/RSIScalpingNVDA-trailing/OPTIMIZATION_GUIDE.md create mode 100644 frontline/cluster-fuck/RSIScalpingNVDA-trailing/main.mq5 create mode 100644 frontline/cluster-fuck/RSIScalpingTSLA-trailing/main.mq5 create mode 100644 frontline/cluster-fuck/RSIScalpingTSLA-trailing/report.html create mode 100644 frontline/cluster-fuck/RSIScalpingTSLA-trailing/report.png create mode 100644 frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/123.set create mode 100644 frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/main.mq5 create mode 100644 frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/report.html create mode 100644 frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/report.png create mode 100644 frontline/cluster-fuck/RSI_secret_sauce_XAUUSD/main.mq5 create mode 100644 frontline/cluster-fuck/SimpleTrendlineBTCUSD/SimpleTrendline.mq5 create mode 100644 frontline/cluster-fuck/SimpleTrendlineBTCUSD/SimpleTrendline_optimization.set create mode 100644 frontline/cluster-fuck/SimpleTrendlineGER40/SimpleTrendline.mq5 create mode 100644 frontline/cluster-fuck/SimpleTrendlineGER40/SimpleTrendline_optimization.set create mode 100644 frontline/cluster-fuck/SimpleTrendlineXAUUSD/SimpleTrendline.mq5 create mode 100644 frontline/cluster-fuck/SimpleTrendlineXAUUSD/SimpleTrendline_optimization.set create mode 100644 frontline/cluster-fuck/SuperEMAXAUUSD/SuperEMA.set create mode 100644 frontline/cluster-fuck/SuperEMAXAUUSD/main.mq5 rename frontline/{cluster-0 => cluster-fuck}/_united-V2/MagicNumberHelpers.mqh (73%) rename frontline/{cluster-0 => cluster-fuck}/_united-V2/STRATEGY_CONFIGURATION.md (100%) rename frontline/{united_template/_united-V2_exponential => cluster-fuck/_united-V2}/Strategies/DarvasBoxStrategy.mqh (89%) rename frontline/{cluster-0 => cluster-fuck}/_united-V2/Strategies/EMASlopeDistanceStrategy.mqh (73%) rename frontline/{cluster-0 => cluster-fuck}/_united-V2/Strategies/RSIConsolidationStrategy.mqh (100%) rename frontline/{cluster-0 => cluster-fuck}/_united-V2/Strategies/RSICrossOverReversalStrategy.mqh (84%) rename frontline/{united_template/_united-V2_exponential => cluster-fuck/_united-V2}/Strategies/RSIMidPointHijackStrategy.mqh (92%) rename frontline/{united_template/_united-V2_exponential => cluster-fuck/_united-V2}/Strategies/RSIReversalAsianStrategy.mqh (94%) rename frontline/{united_template/_united-V2_exponential => cluster-fuck/_united-V2}/Strategies/RSIScalpingStrategy.mqh (86%) create mode 100644 frontline/cluster-fuck/_united-V2/Strategies/RSISecretSauceStrategy.mqh rename frontline/{cluster-0 => cluster-fuck}/_united-V2/Strategies/SimpleTrendlineStrategy.mqh (100%) rename frontline/{cluster-0 => cluster-fuck}/_united-V2/Strategies/SuperEMAStrategy.mqh (93%) rename frontline/{united_template/_united-V2_exponential => cluster-fuck/_united-V2}/main.mq5 (71%) rename frontline/{cluster-0 => cluster-fuck}/_united-V2/report.png (100%) rename frontline/{united_template/_united-V2_exponential => cluster-fuck/_united-V2}/self-evaluate.mq5 (74%) rename frontline/{united_template/_united-V2_exponential => cluster-gold}/MagicNumberHelpers.mqh (73%) rename frontline/{united_template/_united-V2_exponential => cluster-gold}/STRATEGY_CONFIGURATION.md (100%) rename frontline/{cluster-0/_united-V2 => cluster-gold}/Strategies/DarvasBoxStrategy.mqh (89%) rename frontline/{united_template/_united-V2_exponential => cluster-gold}/Strategies/EMASlopeDistanceStrategy.mqh (73%) rename frontline/{united_template/_united-V2_exponential => cluster-gold}/Strategies/RSIConsolidationStrategy.mqh (100%) rename frontline/{united_template/_united-V2_exponential => cluster-gold}/Strategies/RSICrossOverReversalStrategy.mqh (84%) rename frontline/{cluster-0/_united-V2 => cluster-gold}/Strategies/RSIMidPointHijackStrategy.mqh (92%) rename frontline/{cluster-0/_united-V2 => cluster-gold}/Strategies/RSIReversalAsianStrategy.mqh (94%) rename frontline/{cluster-0/_united-V2 => cluster-gold}/Strategies/RSIScalpingStrategy.mqh (86%) create mode 100644 frontline/cluster-gold/Strategies/RSISecretSauceStrategy.mqh create mode 100644 frontline/cluster-gold/Strategies/SimpleTrendlineStrategy.mqh rename frontline/{united_template/_united-V2_exponential => cluster-gold}/Strategies/SuperEMAStrategy.mqh (93%) rename frontline/{cluster-0/_united-V2 => cluster-gold}/main.mq5 (79%) rename frontline/{united_template/_united-V2_exponential => cluster-gold}/report.png (100%) rename frontline/{cluster-0/_united-V2 => cluster-gold}/self-evaluate.mq5 (74%) delete mode 100644 frontline/united_template/_united-V2/PerformanceEvaluator.mqh create mode 100644 frontline/united_template/_united-V2/Strategies/SimpleTrendlineStrategy.mqh delete mode 100644 frontline/united_template/_united-V2_exponential/PerformanceEvaluator.mqh delete mode 100644 frontline/united_template/_united/PerformanceEvaluator.mqh create mode 100644 frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/EMASlopeDistanceCocktailXAUUSD_Genetic_Optimization.set create mode 100644 frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/main.mq5 create mode 100644 frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/report.html create mode 100644 frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/report.png create mode 100644 frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/123.set create mode 100644 frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/NVDA_Escaper_Genetic_Optimization.set create mode 100644 frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/NVDA_Genetic_Optimization.set create mode 100644 frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/OPTIMIZATION_GUIDE.md create mode 100644 frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/main.mq5 create mode 100644 frontline/units-trailing/EMASlopeDistanceCocktailXAUUSD-trailing/main.mq5 create mode 100644 frontline/units-trailing/EMASlopeDistanceCocktailXAUUSD-trailing/report.html create mode 100644 frontline/units-trailing/EMASlopeDistanceCocktailXAUUSD-trailing/report.png create mode 100644 frontline/units-trailing/RSIScalpingBTCUSD-trailing/main.mq5 create mode 100644 frontline/units-trailing/RSIScalpingBTCUSD-trailing/report.html create mode 100644 frontline/units-trailing/RSIScalpingBTCUSD-trailing/report.png create mode 100644 frontline/units-trailing/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization.set create mode 100644 frontline/units-trailing/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization_Alternative.set create mode 100644 frontline/units-trailing/RSIScalpingNVDA-trailing/OPTIMIZATION_GUIDE.md create mode 100644 frontline/units-trailing/RSIScalpingNVDA-trailing/main.mq5 create mode 100644 frontline/units-trailing/RSIScalpingTSLA-trailing/main.mq5 create mode 100644 frontline/units-trailing/RSIScalpingTSLA-trailing/report.html create mode 100644 frontline/units-trailing/RSIScalpingTSLA-trailing/report.png create mode 100644 frontline/units-trailing/RSIScalpingXAUUSD-trailing/123.set create mode 100644 frontline/units-trailing/RSIScalpingXAUUSD-trailing/main.mq5 create mode 100644 frontline/units-trailing/RSIScalpingXAUUSD-trailing/report.html create mode 100644 frontline/units-trailing/RSIScalpingXAUUSD-trailing/report.png create mode 100644 lab/EAs/RSILadderXAUUSD/main.mq5 create mode 100644 lab/EAs/RSILadderXAUUSD/report.html create mode 100644 lab/EAs/RSILadderXAUUSD/report.png create mode 100644 lab/EAs/SimpleTrendlineTSLA/SimpleTrendline.mq5 create mode 100644 lab/EAs/SimpleTrendlineTSLA/SimpleTrendline_optimization.set create mode 100644 lab/EAs/catcher-optimization.set create mode 100644 lab/EAs/double-top-bottom-catcher.mq5 create mode 100644 lab/EAs/rsi-dual-martingale-hybrid.mq5 delete mode 100644 polymarket/__pycache__/__init__.cpython-312.pyc delete mode 100644 polymarket/analytics/__init__.py delete mode 100644 polymarket/analytics/metrics.py delete mode 100644 polymarket/api/__init__.py delete mode 100644 polymarket/api/__pycache__/__init__.cpython-312.pyc delete mode 100644 polymarket/api/__pycache__/clob_client.cpython-312.pyc delete mode 100644 polymarket/api/__pycache__/data_client.cpython-312.pyc delete mode 100644 polymarket/api/__pycache__/gamma_client.cpython-312.pyc delete mode 100644 polymarket/api/clob_client.py delete mode 100644 polymarket/api/data_client.py delete mode 100644 polymarket/api/gamma_client.py delete mode 100644 polymarket/backtesting/__init__.py delete mode 100644 polymarket/backtesting/__pycache__/__init__.cpython-312.pyc delete mode 100644 polymarket/backtesting/__pycache__/engine.cpython-312.pyc delete mode 100644 polymarket/backtesting/engine.py delete mode 100644 polymarket/docs/API_REFERENCE.md delete mode 100644 polymarket/docs/DOCUMENTATION_SUMMARY.md delete mode 100644 polymarket/docs/GLOSSARY.md delete mode 100644 polymarket/docs/QUICKSTART.md delete mode 100644 polymarket/docs/STRATEGY_GUIDE.md delete mode 100644 polymarket/gui/QUICKSTART.md delete mode 100644 polymarket/gui/README.md delete mode 100644 polymarket/gui/README_COMPONENTS.md delete mode 100644 polymarket/gui/__init__.py delete mode 100644 polymarket/gui/__pycache__/app.cpython-312.pyc delete mode 100644 polymarket/gui/api/__init__.py delete mode 100644 polymarket/gui/api/__pycache__/__init__.cpython-312.pyc delete mode 100644 polymarket/gui/api/__pycache__/backtest.cpython-312.pyc delete mode 100644 polymarket/gui/api/__pycache__/markets.cpython-312.pyc delete mode 100644 polymarket/gui/api/__pycache__/strategy.cpython-312.pyc delete mode 100644 polymarket/gui/api/backtest.py delete mode 100644 polymarket/gui/api/markets.py delete mode 100644 polymarket/gui/api/strategy.py delete mode 100644 polymarket/gui/app.py delete mode 100644 polymarket/gui/requirements.txt delete mode 100644 polymarket/gui/run.bat delete mode 100644 polymarket/gui/run.sh delete mode 100644 polymarket/gui/simple_app.py delete mode 100644 polymarket/gui/start_dashboard.py delete mode 100644 polymarket/gui/static/js/app.js delete mode 100644 polymarket/gui/static/js/components/BacktestComponent.js delete mode 100644 polymarket/gui/static/js/components/MarketsComponent.js delete mode 100644 polymarket/gui/static/js/components/PositionsComponent.js delete mode 100644 polymarket/gui/static/js/components/StrategyComponent.js delete mode 100644 polymarket/gui/static/js/utils/Notification.js delete mode 100644 polymarket/gui/static/js/utils/WebSocketManager.js delete mode 100644 polymarket/gui/static/script.js delete mode 100644 polymarket/gui/static/style.css delete mode 100644 polymarket/gui/templates/dashboard.html delete mode 100644 polymarket/gui/test_server.py delete mode 100644 polymarket/strategies/__init__.py delete mode 100644 polymarket/strategies/__pycache__/__init__.cpython-312.pyc delete mode 100644 polymarket/strategies/__pycache__/base_strategy.cpython-312.pyc delete mode 100644 polymarket/strategies/base_strategy.py delete mode 100644 polymarket/strategies/examples/__init__.py delete mode 100644 polymarket/strategies/examples/__pycache__/__init__.cpython-312.pyc delete mode 100644 polymarket/strategies/examples/__pycache__/simple_probability.cpython-312.pyc delete mode 100644 polymarket/strategies/examples/simple_probability.py delete mode 100644 polymarket/trading/__init__.py delete mode 100644 polymarket/trading/__pycache__/__init__.cpython-312.pyc delete mode 100644 polymarket/trading/__pycache__/engine.cpython-312.pyc delete mode 100644 polymarket/trading/engine.py delete mode 100644 polymarket/utils/__init__.py delete mode 100644 polymarket/utils/__pycache__/__init__.cpython-312.pyc delete mode 100644 polymarket/utils/__pycache__/config.cpython-312.pyc delete mode 100644 polymarket/utils/config.py diff --git a/ai/eurusd1h/EURUSD_H1_ActionEA.mq5 b/ai/eurusd1h/EURUSD_H1_ActionEA.mq5 new file mode 100644 index 0000000..e0ee1c3 --- /dev/null +++ b/ai/eurusd1h/EURUSD_H1_ActionEA.mq5 @@ -0,0 +1,386 @@ +//+------------------------------------------------------------------+ +//| EURUSD_H1_ActionEA.mq5 | +//| ai/eurusd1h/main.py — 24 features, 5-class softmax | +//| Classes: 0=HOLD 1=BUY 2=SELL_SHORT 3=CLOSE_LONG 4=CLOSE_SHORT | +//| Entry: strict trio winner among p0,p1,p2 only. | +//| Exit: unique 5-class argmax != held side (1 long, 2 short). | +//| No SL / TP / ATR stops. Attach EURUSD H1. | +//+------------------------------------------------------------------+ +#property copyright "Profitable EA Project" +#property version "1.00" +#property description "EURUSD H1 action ONNX; ordinal entry/exit; no fixed SL/TP" + +#include + +#resource "models\\EURUSD_H1_action.onnx" as uchar ExtModel[] + +#define FEAT_COUNT 24 +#define REL_EPS 1e-9 + +input group "Model" +input int InpLookback = 48; +input int InpSessionHourOffset = 0; +input string InpFeatMinStr = ""; +input string InpFeatMaxStr = ""; + +input group "Timing" +input int InpMinBarsInTrade = 1; // model exit only after this many bars in position (0=off) + +input group "Trade" +input double InpLotSize = 0.01; +input int InpMagic = 902601; +input int InpSlippage = 30; + +double g_feat_min[FEAT_COUNT]; +double g_feat_max[FEAT_COUNT]; + +CTrade trade; +long g_onnx = INVALID_HANDLE; +datetime g_last_bar = 0; + +void InitDefaultScalerFromMeta() +{ + // EURUSD_H1_action_meta.json scaler_feature_min / max (train fit) + double def_min[FEAT_COUNT] = { + 0.9539399743080139, + 0.9559400081634521, + 0.9536200165748596, + 0.9538999795913696, + 9.999999974752427e-07, + 0.07019035518169403, + -0.02143237181007862, + -0.028110405430197716, + 0.0002704667276702821, + -0.02017582766711712, + 1.0, + 0.0004555500054266304, + 0.0002461568801663816, + 0.022001149132847786, + 0.11231997609138489, + -0.5339273810386658, + -1.623793125152588, + -1.837566614151001, + 6.83732741890708e-06, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + }; + double def_max[FEAT_COUNT] = { + 1.493149995803833, + 1.4938499927520752, + 1.4904999732971191, + 1.493190050125122, + 0.06699500232934952, + 0.9350273013114929, + 0.028008731082081795, + 0.03147505968809128, + 0.009249407798051834, + 0.01742853783071041, + 1.0232577323913574, + 0.02111775055527687, + 7.801275253295898, + 0.9864169955253601, + 0.8837512731552124, + 0.49708572030067444, + 1.8055412769317627, + 1.927569031715393, + 0.8700546026229858, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + }; + for(int i = 0; i < FEAT_COUNT; i++) + { + g_feat_min[i] = def_min[i]; + g_feat_max[i] = def_max[i]; + } +} + +bool ParseFeatCsv(const string s, double &arr[]) +{ + if(StringLen(s) < 3) return false; + string parts[]; + if(StringSplit(s, ',', parts) != FEAT_COUNT) return false; + for(int i = 0; i < FEAT_COUNT; i++) + arr[i] = StringToDouble(parts[i]); + return true; +} + +void ScaleFeatures(const float &raw[], float &out[]) +{ + for(int f = 0; f < FEAT_COUNT; f++) + { + double den = g_feat_max[f] - g_feat_min[f]; + if(den < 1e-12) den = 1e-12; + double x = (double)raw[f] - g_feat_min[f]; + out[f] = (float)MathMax(0.0, MathMin(1.0, x / den)); + } +} + +bool PrepareMatrix(matrixf &M) +{ + int L = InpLookback; + double open[], high[], low[], close[]; + long vol[]; + datetime bt[]; + ArraySetAsSeries(open, true); + ArraySetAsSeries(high, true); + ArraySetAsSeries(low, true); + ArraySetAsSeries(close, true); + ArraySetAsSeries(vol, true); + ArraySetAsSeries(bt, true); + + int need = L + 55; + if(CopyOpen(_Symbol, PERIOD_CURRENT, 0, need, open) < L) return false; + if(CopyHigh(_Symbol, PERIOD_CURRENT, 0, need, high) < L) return false; + if(CopyLow(_Symbol, PERIOD_CURRENT, 0, need, low) < L) return false; + if(CopyClose(_Symbol, PERIOD_CURRENT, 0, need, close) < L) return false; + if(CopyTickVolume(_Symbol, PERIOD_CURRENT, 0, need, vol) < L) return false; + if(CopyTime(_Symbol, PERIOD_CURRENT, 0, need, bt) < L) return false; + + double rsi7[], rsi14[], rsi21[], ema20[], ema50[], atr[]; + ArraySetAsSeries(rsi7, true); + ArraySetAsSeries(rsi14, true); + ArraySetAsSeries(rsi21, true); + ArraySetAsSeries(ema20, true); + ArraySetAsSeries(ema50, true); + ArraySetAsSeries(atr, true); + + int h7 = iRSI(_Symbol, PERIOD_CURRENT, 7, PRICE_CLOSE); + int h14 = iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE); + int h21 = iRSI(_Symbol, PERIOD_CURRENT, 21, PRICE_CLOSE); + int hE20 = iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_EMA, PRICE_CLOSE); + int hE50 = iMA(_Symbol, PERIOD_CURRENT, 50, 0, MODE_EMA, PRICE_CLOSE); + int hA = iATR(_Symbol, PERIOD_CURRENT, 14); + if(h7 == INVALID_HANDLE || h14 == INVALID_HANDLE || h21 == INVALID_HANDLE || + hE20 == INVALID_HANDLE || hE50 == INVALID_HANDLE || hA == INVALID_HANDLE) + return false; + + if(CopyBuffer(h7, 0, 0, need, rsi7) < L || + CopyBuffer(h14, 0, 0, need, rsi14) < L || + CopyBuffer(h21, 0, 0, need, rsi21) < L || + CopyBuffer(hE20, 0, 0, need, ema20) < L || + CopyBuffer(hE50, 0, 0, need, ema50) < L || + CopyBuffer(hA, 0, 0, need, atr) < L) + { + IndicatorRelease(h7); IndicatorRelease(h14); IndicatorRelease(h21); + IndicatorRelease(hE20); IndicatorRelease(hE50); IndicatorRelease(hA); + return false; + } + IndicatorRelease(h7); IndicatorRelease(h14); IndicatorRelease(h21); + IndicatorRelease(hE20); IndicatorRelease(hE50); IndicatorRelease(hA); + + M.Resize(L, FEAT_COUNT); + const double RSI_OB = 70.0; + const double RSI_OS = 30.0; + + for(int i = 0; i < L; i++) + { + double vma = 0; + int cnt = 0; + for(int k = i; k < i + 20 && k < ArraySize(vol); k++) { vma += (double)vol[k]; cnt++; } + if(cnt < 1) cnt = 1; + vma /= cnt; + + double r0 = rsi14[i]; + double r1 = (i + 1 < ArraySize(rsi14)) ? rsi14[i + 1] : r0; + double r2 = (i + 2 < ArraySize(rsi14)) ? rsi14[i + 2] : r1; + double rv7 = rsi7[i]; + double rv21 = rsi21[i]; + + double spr = (r0 - rv7) / 50.0; + if(spr > 1.0) spr = 1.0; + if(spr < -1.0) spr = -1.0; + double vel = (r0 - r1) / 25.0; + double acc = ((r0 - r1) - (r1 - r2)) / 25.0; + double dist_mid = MathAbs(r0 - 50.0) / 50.0; + double c_ob = (r1 < RSI_OB && r0 >= RSI_OB) ? 1.0 : 0.0; + double c_os = (r1 > RSI_OS && r0 <= RSI_OS) ? 1.0 : 0.0; + double c50u = (r1 < 50.0 && r0 >= 50.0) ? 1.0 : 0.0; + double c50d = (r1 > 50.0 && r0 <= 50.0) ? 1.0 : 0.0; + + MqlDateTime st; + TimeToStruct(bt[i], st); + int hr = (st.hour + InpSessionHourOffset) % 24; + if(hr < 0) hr += 24; + double asian = (hr >= 0 && hr < 8) ? 1.0 : 0.0; + + float raw[FEAT_COUNT]; + raw[0] = (float)open[i]; + raw[1] = (float)high[i]; + raw[2] = (float)low[i]; + raw[3] = (float)close[i]; + raw[4] = (float)((double)vol[i] / 1000000.0); + raw[5] = (float)(r0 / 100.0); + raw[6] = (float)((ema20[i] - close[i]) / close[i]); + raw[7] = (float)((ema50[i] - close[i]) / close[i]); + raw[8] = (float)(atr[i] / close[i]); + double pc = (i < L - 1) ? (close[i] - close[i + 1]) / close[i + 1] : 0.0; + raw[9] = (float)pc; + raw[10] = (float)(high[i] / low[i]); + raw[11] = (float)(vma / 1000000.0); + raw[12] = (float)(vma > 0 ? (double)vol[i] / vma : 1.0); + raw[13] = (float)(rv7 / 100.0); + raw[14] = (float)(rv21 / 100.0); + raw[15] = (float)spr; + raw[16] = (float)vel; + raw[17] = (float)acc; + raw[18] = (float)dist_mid; + raw[19] = (float)c_ob; + raw[20] = (float)c_os; + raw[21] = (float)c50u; + raw[22] = (float)c50d; + raw[23] = (float)asian; + + float sc[FEAT_COUNT]; + ScaleFeatures(raw, sc); + for(int j = 0; j < FEAT_COUNT; j++) + M[i][j] = sc[j]; + } + return true; +} + +int TrioStrictWinner012(const double p0, const double p1, const double p2) +{ + if(p0 > p1 + REL_EPS && p0 > p2 + REL_EPS) return 0; + if(p1 > p0 + REL_EPS && p1 > p2 + REL_EPS) return 1; + if(p2 > p0 + REL_EPS && p2 > p1 + REL_EPS) return 2; + return -1; +} + +int FiveStrictWinner01234(const double p0, const double p1, const double p2, const double p3, const double p4) +{ + const double p[5] = {p0, p1, p2, p3, p4}; + int best = 0; + for(int k = 1; k < 5; k++) + if(p[k] > p[best]) + best = k; + const double m = p[best]; + int cnt = 0; + for(int k = 0; k < 5; k++) + if(p[k] + REL_EPS >= m) + cnt++; + if(cnt != 1) + return -1; + return best; +} + +bool SelectOurPosition() +{ + if(!PositionSelect(_Symbol)) + return false; + if((long)PositionGetInteger(POSITION_MAGIC) != InpMagic) + return false; + return true; +} + +int PositionBarsInTrade() +{ + if(!SelectOurPosition()) + return 0; + const datetime tOpen = (datetime)PositionGetInteger(POSITION_TIME); + const int sh = iBarShift(_Symbol, PERIOD_CURRENT, tOpen, false); + if(sh < 0) + return 9999; + return sh + 1; +} + +int OnInit() +{ + InitDefaultScalerFromMeta(); + trade.SetExpertMagicNumber(InpMagic); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_IOC); + + if(StringLen(InpFeatMinStr) > 0 && ParseFeatCsv(InpFeatMinStr, g_feat_min)) + Print("EURUSD Action EA: loaded InpFeatMinStr"); + if(StringLen(InpFeatMaxStr) > 0 && ParseFeatCsv(InpFeatMaxStr, g_feat_max)) + Print("EURUSD Action EA: loaded InpFeatMaxStr"); + + g_onnx = OnnxCreateFromBuffer(ExtModel, ONNX_DEBUG_LOGS); + if(g_onnx == INVALID_HANDLE) + { + Print("OnnxCreateFromBuffer failed ", GetLastError()); + return INIT_FAILED; + } + const long inShape[] = {1, InpLookback, FEAT_COUNT}; + if(!OnnxSetInputShape(g_onnx, 0, inShape)) + { + Print("OnnxSetInputShape failed ", GetLastError()); + OnnxRelease(g_onnx); + return INIT_FAILED; + } + const long outShape[] = {1, 5}; + if(!OnnxSetOutputShape(g_onnx, 0, outShape)) + { + Print("OnnxSetOutputShape failed ", GetLastError()); + OnnxRelease(g_onnx); + return INIT_FAILED; + } + + if(_Period != PERIOD_H1) + Print("EURUSD_H1_ActionEA: chart period is ", EnumToString((ENUM_TIMEFRAMES)_Period), + " — training is H1; mismatch may hurt."); + + Print("EURUSD_H1_ActionEA: ONNX OK. Ordinal entry/exit, no SL/TP. Lookback=", InpLookback); + return INIT_SUCCEEDED; +} + +void OnDeinit(const int r) +{ + if(g_onnx != INVALID_HANDLE) + OnnxRelease(g_onnx); +} + +void OnTick() +{ + datetime t = iTime(_Symbol, PERIOD_CURRENT, 0); + if(t == g_last_bar) + return; + g_last_bar = t; + + matrixf Min; + if(!PrepareMatrix(Min)) + { + Print("EURUSD Action EA: PrepareMatrix failed"); + return; + } + vectorf out; + out.Resize(5); + if(!OnnxRun(g_onnx, ONNX_NO_CONVERSION, Min, out)) + { + Print("OnnxRun failed ", GetLastError()); + return; + } + + const double p0 = out[0], p1 = out[1], p2 = out[2], p3 = out[3], p4 = out[4]; + + if(!SelectOurPosition()) + { + const int w3 = TrioStrictWinner012(p0, p1, p2); + if(w3 == 1) + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "EURUSD act BUY"); + else if(w3 == 2) + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "EURUSD act SELL"); + return; + } + + const bool allow = (InpMinBarsInTrade <= 0) || (PositionBarsInTrade() >= InpMinBarsInTrade); + if(!allow) + return; + + const int w5 = FiveStrictWinner01234(p0, p1, p2, p3, p4); + const long typ = (long)PositionGetInteger(POSITION_TYPE); + bool close_it = false; + if(typ == POSITION_TYPE_BUY) + close_it = (w5 != -1 && w5 != 1); + else if(typ == POSITION_TYPE_SELL) + close_it = (w5 != -1 && w5 != 2); + + if(close_it) + trade.PositionClose(_Symbol); +} diff --git a/ai/eurusd1h/__pycache__/main.cpython-312.pyc b/ai/eurusd1h/__pycache__/main.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7fc29ced57f909adb8fc3e5685a3dfc294e07ef7 GIT binary patch literal 18585 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 literal 0 HcmV?d00001 diff --git a/ai/eurusd1h/here.md b/ai/eurusd1h/here.md new file mode 100644 index 0000000..eaa1e3f --- /dev/null +++ b/ai/eurusd1h/here.md @@ -0,0 +1,37 @@ +# EURUSD H1 — ONNX action model (full MT5 history) + +Same methodology as `ai/yt/train_article_split.py`: + +- **24 features** + **5 softmax classes** (`ai/xauusd_h1/features.py`, `labeling.py`). +- **MinMaxScaler** is fit on **every** valid feature row MT5 returns (no 2010–2020 cut). +- **Training sequences**: all but a **chronological tail** (default **12%**) used only for `val_loss` / EarlyStopping (does not remove data from the scaler). +- Optional **KMeans** on forward-return fingerprints + class-balanced `sample_weight` on the train split. + +## Run + +```bash +cd ai/eurusd1h +pip install -r requirements.txt +python main.py +``` + +Requires MetaTrader 5 with **EURUSD H1** history downloaded (Tools → History Center). + +## Environment overrides + +| Variable | Default | Meaning | +|-----------------|-----------|----------------------------------------------| +| `EUR_SYMBOL` | `EURUSD` | MT5 symbol | +| `EUR_LOOKBACK` | `48` | Sequence length | +| `EUR_EPOCHS` | `40` | Max epochs | +| `EUR_BATCH` | `64` | Batch size | +| `EUR_CLUSTERS` | `12` | KMeans clusters (`0` = off) | +| `EUR_VAL_FRAC` | `0.12` | Fraction of sequences at **end** for val | + +## Outputs + +- `models/EURUSD_H1_action.onnx` +- `models/EURUSD_H1_action_meta.json` +- `models/EURUSD_H1_action_scaler.pkl` + +Deploy like `ai/yt/US500_H1_ArticleEA.mq5`: embed ONNX, set `InpLookback`, paste `scaler_feature_min` / `max` from the meta JSON into the EA inputs. diff --git a/ai/eurusd1h/main.py b/ai/eurusd1h/main.py new file mode 100644 index 0000000..ab933c8 --- /dev/null +++ b/ai/eurusd1h/main.py @@ -0,0 +1,316 @@ +""" +EURUSD H1 — same stack as ai/yt (24 features, 5-class softmax, optional KMeans weights). + +MinMaxScaler is fit on **all** feature rows returned by MT5 (full downloaded history). +A chronological **tail** slice (default 12%% of sequences) is used only for val_loss / +EarlyStopping; all earlier sequences are used for training. +""" + +from __future__ import annotations + +import json +import os +import pickle +import sys +from datetime import datetime, timedelta +from pathlib import Path + +import MetaTrader5 as mt5 +import numpy as np +import pandas as pd +import tensorflow as tf +import tf2onnx +import onnx +from sklearn.cluster import KMeans +from sklearn.preprocessing import MinMaxScaler +from tensorflow import keras +from tensorflow.keras import layers +from tqdm import tqdm + +_XH1 = Path(__file__).resolve().parent.parent / "xauusd_h1" +sys.path.insert(0, str(_XH1)) +from features import NUM_FEATURES, prepare_features_full # noqa: E402 +from labeling import atr_series, class_weights, compute_action_labels # noqa: E402 + +NUM_CLASSES = 5 +CLASS_NAMES = ["HOLD", "BUY", "SELL_SHORT", "CLOSE_LONG", "CLOSE_SHORT"] + + +def fetch_mt5_range( + symbol: str, + timeframe: int, + start_date: datetime, + end_date: datetime, +) -> pd.DataFrame: + if not mt5.initialize(): + raise RuntimeError(f"MT5 init failed: {mt5.last_error()}") + + info = mt5.symbol_info(symbol) + if info is None: + mt5.shutdown() + raise ValueError(f"Symbol {symbol} not found") + if not info.visible and not mt5.symbol_select(symbol, True): + mt5.shutdown() + raise ValueError(f"Cannot select {symbol}") + + all_rows: list[dict] = [] + chunk_days = 120 + cur = start_date + while cur < end_date: + chunk_end = min(cur + timedelta(days=chunk_days), end_date) + rates = mt5.copy_rates_range(symbol, timeframe, cur, chunk_end) + if rates is not None and len(rates) > 1: + for row in rates: + all_rows.append({n: row[n] for n in rates.dtype.names}) + cur = chunk_end + + if not all_rows: + mt5.shutdown() + raise ValueError("No rates returned — download EURUSD H1 in MT5 History Center") + + df = pd.DataFrame(all_rows) + df["time"] = pd.to_datetime(df["time"], unit="s") + df = df.set_index("time").sort_index() + df = df[~df.index.duplicated(keep="first")] + return df + + +def forward_return_fingerprints( + df: pd.DataFrame, + feat_index: pd.DatetimeIndex, + horizons: tuple[int, ...] = (1, 2, 4, 8, 16), +) -> tuple[np.ndarray, np.ndarray]: + close = df["close"].to_numpy(dtype=np.float64) + atr = atr_series(df, 14).to_numpy(dtype=np.float64) + pos = df.index.get_indexer(feat_index) + n = len(feat_index) + d = len(horizons) + M = np.zeros((n, d), dtype=np.float64) + valid = np.ones(n, dtype=bool) + max_h = max(horizons) + for j, i in enumerate(pos): + if i < 0 or i + max_h >= len(close): + valid[j] = False + continue + a = float(atr[i]) if np.isfinite(atr[i]) and atr[i] > 0 else close[i] * 1e-4 + for k, h in enumerate(horizons): + if i + h >= len(close): + valid[j] = False + break + M[j, k] = (close[i + h] - close[i]) / a + return M, valid + + +def create_sequences( + X: np.ndarray, + y: np.ndarray, + times: np.ndarray, + lookback: int, +) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + xs, ys, t_end = [], [], [] + for i in tqdm(range(lookback - 1, len(X)), desc="sequences"): + window = X[i - lookback + 1 : i + 1].copy() + window = window[::-1] + xs.append(window) + ys.append(y[i]) + t_end.append(times[i]) + return ( + np.asarray(xs, dtype=np.float32), + np.asarray(ys, dtype=np.int64), + np.asarray(t_end), + ) + + +def build_model(lookback: int, n_feat: int) -> keras.Model: + inp = layers.Input(shape=(lookback, n_feat)) + x = layers.LSTM(96, return_sequences=True)(inp) + x = layers.Dropout(0.25)(x) + x = layers.LSTM(48)(x) + x = layers.Dropout(0.25)(x) + x = layers.Dense(32, activation="relu")(x) + out = layers.Dense(NUM_CLASSES, activation="softmax", name="action_probs")(x) + model = keras.Model(inp, out) + model.compile( + optimizer=keras.optimizers.Adam(1e-3), + loss="sparse_categorical_crossentropy", + metrics=["accuracy"], + ) + return model + + +def main() -> int: + symbol = os.environ.get("EUR_SYMBOL", "EURUSD") + lookback = int(os.environ.get("EUR_LOOKBACK", "48")) + epochs = int(os.environ.get("EUR_EPOCHS", "40")) + batch_size = int(os.environ.get("EUR_BATCH", "64")) + n_clusters = int(os.environ.get("EUR_CLUSTERS", "12")) + val_frac = float(os.environ.get("EUR_VAL_FRAC", "0.12")) + val_frac = min(max(val_frac, 0.05), 0.35) + + fetch_start = datetime(1990, 1, 1) + fetch_end = datetime(2030, 12, 31) + + out_dir = Path(__file__).resolve().parent / "models" + out_dir.mkdir(parents=True, exist_ok=True) + onnx_path = out_dir / f"{symbol}_H1_action.onnx" + meta_path = out_dir / f"{symbol}_H1_action_meta.json" + + print(f"Symbol={symbol} H1 | fetch [{fetch_start.date()} .. {fetch_end.date()}]") + print("Scaler: ALL bars | Val: chronological tail for early stopping only") + print("Fetching MT5 …") + try: + raw = fetch_mt5_range(symbol, mt5.TIMEFRAME_H1, fetch_start, fetch_end) + finally: + mt5.shutdown() + + if len(raw) < 500: + print("ERROR: Not enough H1 bars — check EURUSD history in MT5.") + return 1 + + print(f"Bars: {len(raw)} range: {raw.index[0]} → {raw.index[-1]}") + + feat = prepare_features_full(raw) + labels = compute_action_labels(raw).loc[feat.index] + y = labels.values.astype(np.int64) + X_raw = feat.values.astype(np.float32) + times = feat.index.to_numpy() + + valid = np.isfinite(X_raw).all(axis=1) & (y >= 0) & (y < NUM_CLASSES) + X_raw = X_raw[valid] + y = y[valid] + times = times[valid] + + scaler = MinMaxScaler() + scaler.fit(X_raw) + Xn = scaler.transform(X_raw).astype(np.float32) + + X_seq, y_seq, t_end = create_sequences(Xn, y, times, lookback) + if len(X_seq) < 500: + print("ERROR: Too few sequences.") + return 1 + + n_seq = len(X_seq) + split_i = int(n_seq * (1.0 - val_frac)) + split_i = max(split_i, lookback + 100) + split_i = min(split_i, n_seq - 200) + train_m = np.zeros(n_seq, dtype=bool) + train_m[:split_i] = True + val_m = ~train_m + + X_train, y_train = X_seq[train_m], y_seq[train_m] + X_val, y_val = X_seq[val_m], y_seq[val_m] + print( + f"Sequences train={len(X_train)} val_tail={len(X_val)} ({100*val_frac:.1f}%%) " + f"lookback={lookback}" + ) + + cw = class_weights(y_train, NUM_CLASSES) + tr_idx = np.flatnonzero(train_m) + base_w = np.array([cw[int(y_seq[i])] for i in tr_idx], dtype=np.float32) + sample_w = base_w.copy() + + if n_clusters > 1: + fp, fp_ok = forward_return_fingerprints(raw, pd.DatetimeIndex(times)) + fp_seq = fp[lookback - 1 :] + ok_seq = fp_ok[lookback - 1 :] + fp_tr = fp_seq[tr_idx] + ok_tr = ok_seq[tr_idx] + fit_mask = ok_tr & np.isfinite(fp_tr).all(axis=1) + if int(fit_mask.sum()) >= n_clusters * 5: + km = KMeans(n_clusters=n_clusters, random_state=42, n_init=10) + km.fit(fp_tr[fit_mask]) + labels_tr = np.full(len(tr_idx), -1, dtype=np.int32) + labels_tr[fit_mask] = km.predict(fp_tr[fit_mask]) + counts = np.zeros(n_clusters, dtype=np.float64) + for c in labels_tr: + if 0 <= c < n_clusters: + counts[c] += 1.0 + counts = np.maximum(counts, 1.0) + total_assigned = max(int((labels_tr >= 0).sum()), 1) + w_cl = np.ones(len(tr_idx), dtype=np.float32) + for j in range(len(tr_idx)): + c = int(labels_tr[j]) + if c >= 0: + w_cl[j] = float(total_assigned / (n_clusters * counts[c])) + sample_w = base_w * w_cl + sample_w *= len(sample_w) / float(np.sum(sample_w)) + print(f"KMeans clusters={n_clusters} (train subset only)") + else: + print("Skipping KMeans: not enough valid fingerprints.") + + model = build_model(lookback, NUM_FEATURES) + model.summary() + + model.fit( + X_train, + y_train, + sample_weight=sample_w, + validation_data=(X_val, y_val), + epochs=epochs, + batch_size=batch_size, + verbose=1, + callbacks=[ + keras.callbacks.EarlyStopping( + monitor="val_loss", patience=10, restore_best_weights=True + ), + keras.callbacks.ReduceLROnPlateau( + monitor="val_loss", factor=0.5, patience=4, min_lr=1e-6 + ), + ], + ) + + loss, acc = model.evaluate(X_val, y_val, verbose=0) + print(f"Tail val_loss={loss:.4f} val_accuracy={acc:.4f}") + + spec = (tf.TensorSpec((None, lookback, NUM_FEATURES), tf.float32, name="input"),) + onnx_m, _ = tf2onnx.convert.from_keras(model, input_signature=spec, opset=13) + onnx.save_model(onnx_m, str(onnx_path)) + + with open(str(onnx_path).replace(".onnx", "_scaler.pkl"), "wb") as f: + pickle.dump(scaler, f) + + meta = { + "symbol": symbol, + "timeframe": "H1", + "lookback": lookback, + "num_features": int(NUM_FEATURES), + "feature_columns": feat.columns.tolist(), + "num_classes": NUM_CLASSES, + "class_names": CLASS_NAMES, + "mt5_bar_range": [str(raw.index[0]), str(raw.index[-1])], + "scaler_fit_on": "all_valid_feature_rows_full_mt5_range", + "validation_split": { + "mode": "chronological_tail_fraction", + "val_fraction": val_frac, + "train_sequences": int(train_m.sum()), + "val_sequences": int(val_m.sum()), + }, + "clustering": ( + f"KMeans n={n_clusters} on forward returns (1,2,4,8,16); train-only fit" + if n_clusters > 1 + else "disabled" + ), + "scaler_feature_min": scaler.data_min_.tolist(), + "scaler_feature_max": scaler.data_max_.tolist(), + "scaler_scale": scaler.scale_.tolist() if hasattr(scaler, "scale_") else None, + "tail_val_accuracy": float(acc), + "tail_val_loss": float(loss), + "ea_note": "Copy ai/yt/US500_H1_ArticleEA.mq5 pattern: #resource ONNX + paste scaler from meta.", + } + with open(meta_path, "w", encoding="utf-8") as f: + json.dump(meta, f, indent=2) + + print(f"Saved: {onnx_path}") + print(f"Meta: {meta_path}") + print( + "\n--- Paste into EA InpFeatMinStr / InpFeatMaxStr (%d floats each) ---" + % NUM_FEATURES + ) + print(",".join(f"{x:.8g}" for x in scaler.data_min_)) + print(",".join(f"{x:.8g}" for x in scaler.data_max_)) + print(f"\nSet EA InpLookback = {lookback}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/ai/eurusd1h/models/EURUSD_H1_action.onnx b/ai/eurusd1h/models/EURUSD_H1_action.onnx new file mode 100644 index 0000000000000000000000000000000000000000..82798e793dfc0f7dbd36d4ea2cc0301c39044080 GIT binary patch literal 321768 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 I+#CTW0IF^CA^-pY literal 0 HcmV?d00001 diff --git a/ai/eurusd1h/models/EURUSD_H1_action_meta.json b/ai/eurusd1h/models/EURUSD_H1_action_meta.json new file mode 100644 index 0000000..d833371 --- /dev/null +++ b/ai/eurusd1h/models/EURUSD_H1_action_meta.json @@ -0,0 +1,133 @@ +{ + "symbol": "EURUSD", + "timeframe": "H1", + "lookback": 48, + "num_features": 24, + "feature_columns": [ + "open", + "high", + "low", + "close", + "tick_volume", + "rsi", + "ema20_n", + "ema50_n", + "atr_n", + "price_change", + "high_low_ratio", + "volume_ma", + "volume_ratio", + "rsi7_n", + "rsi21_n", + "rsi_fast_slow_spread", + "rsi_velocity", + "rsi_accel", + "rsi_dist_mid_50", + "rsi_cross_overbought", + "rsi_cross_oversold", + "rsi_cross_50_up", + "rsi_cross_50_down", + "session_asian_utc" + ], + "num_classes": 5, + "class_names": [ + "HOLD", + "BUY", + "SELL_SHORT", + "CLOSE_LONG", + "CLOSE_SHORT" + ], + "mt5_bar_range": [ + "2010-03-17 23:00:00", + "2026-04-24 23:00:00" + ], + "scaler_fit_on": "all_valid_feature_rows_full_mt5_range", + "validation_split": { + "mode": "chronological_tail_fraction", + "val_fraction": 0.12, + "train_sequences": 87914, + "val_sequences": 11989 + }, + "clustering": "KMeans n=12 on forward returns (1,2,4,8,16); train-only fit", + "scaler_feature_min": [ + 0.9539399743080139, + 0.9559400081634521, + 0.9536200165748596, + 0.9538999795913696, + 9.999999974752427e-07, + 0.07019035518169403, + -0.02143237181007862, + -0.028110405430197716, + 0.0002704667276702821, + -0.02017582766711712, + 1.0, + 0.0004555500054266304, + 0.0002461568801663816, + 0.022001149132847786, + 0.11231997609138489, + -0.5339273810386658, + -1.623793125152588, + -1.837566614151001, + 6.83732741890708e-06, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "scaler_feature_max": [ + 1.493149995803833, + 1.4938499927520752, + 1.4904999732971191, + 1.493190050125122, + 0.06699500232934952, + 0.9350273013114929, + 0.028008731082081795, + 0.03147505968809128, + 0.009249407798051834, + 0.01742853783071041, + 1.0232577323913574, + 0.02111775055527687, + 7.801275253295898, + 0.9864169955253601, + 0.8837512731552124, + 0.49708572030067444, + 1.8055412769317627, + 1.927569031715393, + 0.8700546026229858, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "scaler_scale": [ + 1.854564905166626, + 1.8590470552444458, + 1.8626137971878052, + 1.8542896509170532, + 14.926709175109863, + 1.1562873125076294, + 20.226085662841797, + 16.782615661621094, + 111.3717041015625, + 26.5926570892334, + 42.99645233154297, + 48.39755630493164, + 0.12818820774555206, + 1.03689706325531, + 1.296291708946228, + 0.969919741153717, + 0.2916017770767212, + 0.2655946612358093, + 1.1493622064590454, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "tail_val_accuracy": 0.2594878673553467, + "tail_val_loss": 1.5548540353775024, + "ea_note": "Copy ai/yt/US500_H1_ArticleEA.mq5 pattern: #resource ONNX + paste scaler from meta." +} \ No newline at end of file diff --git a/ai/eurusd1h/models/EURUSD_H1_action_scaler.pkl b/ai/eurusd1h/models/EURUSD_H1_action_scaler.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1dccb6e1eab1286a1a04f15dad7e415527cb3959 GIT binary patch literal 964 zcmajeZAcSg902gG&6lZZA(f?+^(7-3D83-w?e836IF;z-gNR9QQo`hv#?y|MOI< zTf0??KojHn>sE^77%j_DEN3@UJWn&_TB4K`NF+w((@Z|;yksV=6o*>SsTy<(C5d~> zC{l266v2^9IfaZ0qtcB;wb{Hu$W#5NY`6YG-?!|6-Z6d2+Ue}WkM!B^3@Tk@ z_Z{&4YJ>JXCyeE_>O$A*b@@kIK%uDK@gR8{QEl@l#1d`U??+o=x02&!L>@mO;Vz$4 zQsk2imI&!%tH#F`*-*mGY zx|jtW{e4Aueq7ZVEcEt1fYA7BO#DYerwLHiCBThD0Y0V((3{~-Taq5&^UWRJp`0l% zGkh=eeNLO#|Es>wbD2+~Ycl)KdN6hP6n?WKToT4dBvaaqlwzGs-);zgZIzJD-Ez`& zOoGaE2|OSA;7g(euTvZG-^F%#$W3DFGYWjH=@4cdypJWU*20O6S6I~Zm8{XaDsbZ_ z2&rAyt;YX^)}AGpdQ-BaD1LoF5*f%z;8^cwd8vs2r$+$e{C-Q zBSygKgjh@yb_7?{_hEyEb}anaO4g#U0^C*S0RMX%GAfI*)|S~UemBcLV)Jei6%@zQ Rc1Aw+$=Y;nGIE%-{{R&;df@;7 literal 0 HcmV?d00001 diff --git a/ai/eurusd1h/requirements.txt b/ai/eurusd1h/requirements.txt new file mode 100644 index 0000000..b072808 --- /dev/null +++ b/ai/eurusd1h/requirements.txt @@ -0,0 +1 @@ +-r ../xauusd_h1/requirements.txt diff --git a/ai/yt/US500_H1_ArticleEA.mq5 b/ai/yt/US500_H1_ArticleEA.mq5 new file mode 100644 index 0000000..739e974 --- /dev/null +++ b/ai/yt/US500_H1_ArticleEA.mq5 @@ -0,0 +1,663 @@ +//+------------------------------------------------------------------+ +//| US500_H1_ArticleEA.mq5 | +//| ai/yt: article-split ONNX (train 2010–2019 / OOS 2020–2024) | +//| Train: python train_article_split.py → models/*.onnx | +//| Attach to US500 (or broker equivalent) H1 chart. | +//+------------------------------------------------------------------+ +#property copyright "Profitable EA Project" +#property version "1.05" +#property description "Embedded US500 H1 article-split ONNX; scaler from US500_H1_article_split_meta.json" + +#include + +#resource "models\\US500_H1_article_split.onnx" as uchar ExtModel[] + +#define FEAT_COUNT 24 +#define PRED_HIST_CAP 32 +#define REL_EPS 1e-9 + +input group "Model" +input int InpLookback = 48; +input int InpEntryMode = 1; +input double InpProbBuy = 0.18; +input double InpProbSell = 0.18; +input double InpMinBeatHold = 0.0; +input int InpExitMode = 1; // 0=fixed prob; 1/2=close must beat HOLD and stay-in-trade (2 legacy; old 2 vs-HOLD-only removed) +input double InpProbCloseL = 0.18; +input double InpProbCloseS = 0.18; +input double InpMinCloseBeatHold = 0.0; +input int InpMinBarsInTradeModelExit = 1; // min bars before model exit (0=off); pure mode uses 5-class winner +input bool InpPureRelative = true; // true: no prob cutoffs/edges — entry=trio strict winner, exit=5-class strict winner != side +input bool InpUseCloseHeadExit = true; // legacy only when InpPureRelative=false (CL/CS vs HOLD/stay; see InpExitMode) +input bool InpUseDirFlipExit = true; // legacy only when InpPureRelative=false (gap edges InpFlipExitEdge) +input double InpFlipExitEdge = 0.03; // legacy dir-flip min gap (ignored when InpPureRelative) +input int InpMinBarsAfterExit = 6; // after any close, wait this many flat bars before a new entry (0=off) +input int InpCooldownBarsAfterAdverse = 12; // extra flat-bar pause after adverse (ATR) stop; 0 = use only MinBarsAfterExit + +input group "Decision (aggregate + sample, lowers trade churn)" +input int InpSampleEveryNBars = 2; // run ONNX / refresh history every N new bars (>=1) +input int InpAggWindow = 4; // rolling mean over last K samples (>=1) +input int InpMinAggSamples = 2; // need this many samples in window before new entries +input int InpMinBarsBetweenEntries = 0; // after an open, wait this many flat bars before next entry (0=off) +input double InpMinDirEdge = 0.03; // legacy entry mode 1 only (ignored when InpPureRelative) +input bool InpRequireStayOverClose = true; // legacy entry (ignored when InpPureRelative) + +input group "Session (match Python SESSION_HOUR_OFFSET)" +input int InpSessionHourOffset = 0; + +input group "Scaler override (empty = use built-in US500 train split)" +input string InpFeatMinStr = ""; +input string InpFeatMaxStr = ""; + +input group "Risk" +input double InpLotSize = 0.01; +input int InpMagic = 902503; +input int InpSlippage = 30; + +input group "Hard exits (fixed ATR in price — optional)" +input bool InpUseAdverseAtrExit = false; // stop by adverse move in ATR multiples (off = model-only risk) +input bool InpUseProfitAtrExit = false; // take-profit in ATR multiples (needs InpTakeProfitATR > 0) +input double InpMaxAdverseATR = 3.5; +input double InpTakeProfitATR = 0.0; + +double g_feat_min[FEAT_COUNT]; +double g_feat_max[FEAT_COUNT]; + +CTrade trade; +long g_onnx = INVALID_HANDLE; +datetime g_last_bar = 0; + +double g_pred_hist[PRED_HIST_CAP][5]; +int g_pred_hist_len = 0; +double g_smooth[5] = {0.2, 0.2, 0.2, 0.2, 0.2}; +ulong g_bar_index = 0; +int g_entry_cooldown_bars = 0; +int g_agg_w = 4; +int g_sample_n = 2; +int g_min_agg_samples = 2; + +void InitDefaultScalerBounds() +{ + // MinMax bounds from ai/yt/models/US500_H1_article_split_meta.json (train-only scaler) + double def_min[FEAT_COUNT] = { + 1352.5, + 1352.5999755859375, + 1347.9000244140625, + 1352.0999755859375, + 0.0, + 0.04497450217604637, + -0.030356179922819138, + -0.04839427396655083, + 0.00028562467196024954, + -0.047754231840372086, + 1.0, + 0.00017100000695791095, + 0.0, + 0.01168255414813757, + 0.0760856345295906, + -0.49618232250213623, + -1.6348180770874023, + -1.731970191001892, + 0.000006116794793342706, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + }; + double def_max[FEAT_COUNT] = { + 3250.199951171875, + 3251.5, + 3249.5, + 3250.199951171875, + 26050000896.0, + 0.887104868888855, + 0.09538312256336212, + 0.10739167034626007, + 0.02898731827735901, + 0.036042287945747375, + 1.0754634141921997, + 6759499776.0, + 20.0, + 0.9637425541877747, + 0.8267387747764587, + 0.5573697686195374, + 1.2618913650512695, + 1.8784747123718262, + 0.9100509881973267, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + }; + for(int i = 0; i < FEAT_COUNT; i++) + { + g_feat_min[i] = def_min[i]; + g_feat_max[i] = def_max[i]; + } +} + +bool ParseFeatCsv(const string s, double &arr[]) +{ + if(StringLen(s) < 3) return false; + string parts[]; + int n = StringSplit(s, ',', parts); + if(n != FEAT_COUNT) return false; + for(int i = 0; i < FEAT_COUNT; i++) + arr[i] = StringToDouble(parts[i]); + return true; +} + +int OnInit() +{ + InitDefaultScalerBounds(); + trade.SetExpertMagicNumber(InpMagic); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_IOC); + + if(StringLen(InpFeatMinStr) > 0 && ParseFeatCsv(InpFeatMinStr, g_feat_min)) + Print("US500 Article EA: loaded InpFeatMinStr (24)"); + if(StringLen(InpFeatMaxStr) > 0 && ParseFeatCsv(InpFeatMaxStr, g_feat_max)) + Print("US500 Article EA: loaded InpFeatMaxStr (24)"); + + g_onnx = OnnxCreateFromBuffer(ExtModel, ONNX_DEBUG_LOGS); + if(g_onnx == INVALID_HANDLE) + { + Print("OnnxCreateFromBuffer failed ", GetLastError()); + return INIT_FAILED; + } + + const long inShape[] = {1, InpLookback, FEAT_COUNT}; + if(!OnnxSetInputShape(g_onnx, 0, inShape)) + { + Print("OnnxSetInputShape failed ", GetLastError()); + OnnxRelease(g_onnx); + return INIT_FAILED; + } + const long outShape[] = {1, 5}; + if(!OnnxSetOutputShape(g_onnx, 0, outShape)) + { + Print("OnnxSetOutputShape failed ", GetLastError()); + OnnxRelease(g_onnx); + return INIT_FAILED; + } + + g_agg_w = MathMax(1, MathMin(InpAggWindow, PRED_HIST_CAP)); + g_sample_n = MathMax(1, InpSampleEveryNBars); + g_min_agg_samples = MathMax(1, MathMin(InpMinAggSamples, g_agg_w)); + g_pred_hist_len = 0; + g_bar_index = 0; + g_entry_cooldown_bars = 0; + for(int k = 0; k < 5; k++) + g_smooth[k] = 0.2; + + const bool has_atr = InpUseAdverseAtrExit || (InpUseProfitAtrExit && InpTakeProfitATR > 0.0); + const bool has_model_exit = InpPureRelative || InpUseCloseHeadExit || InpUseDirFlipExit; + if(!has_atr && !has_model_exit) + Print("US500_H1_ArticleEA: WARNING — no exit path enabled (enable InpPureRelative and/or legacy exits / ATR)"); + + Print("US500_H1_ArticleEA: ONNX OK. Chart TF=", EnumToString(PERIOD_CURRENT), "; Lookback=", InpLookback, + " sampleEvery=", g_sample_n, " aggWindow=", g_agg_w, " minAggSamples=", g_min_agg_samples, + " pureRelative=", InpPureRelative, + " entryCooldownBars=", InpMinBarsBetweenEntries, " minDirEdge=", InpMinDirEdge, + " stayOverClose=", InpRequireStayOverClose, + " exitMode=", InpExitMode, " minBarsInTradeModelExit=", InpMinBarsInTradeModelExit, + " closeHeadExit=", InpUseCloseHeadExit, " dirFlipExit=", InpUseDirFlipExit, " flipExitEdge=", InpFlipExitEdge, + " minBarsAfterExit=", InpMinBarsAfterExit, " cooldownAfterAdverse=", InpCooldownBarsAfterAdverse, + " useAdverseATR=", InpUseAdverseAtrExit, " useProfitATR=", InpUseProfitAtrExit, + " maxAdverseATR=", InpMaxAdverseATR, " takeProfitATR=", InpTakeProfitATR); + return INIT_SUCCEEDED; +} + +void OnDeinit(const int r) +{ + if(g_onnx != INVALID_HANDLE) OnnxRelease(g_onnx); +} + +double AtrNow() +{ + double b[]; + ArraySetAsSeries(b, true); + int h = iATR(_Symbol, PERIOD_CURRENT, 14); + if(h == INVALID_HANDLE) return 0; + if(CopyBuffer(h, 0, 0, 2, b) < 1) { IndicatorRelease(h); return 0; } + double v = b[0]; + IndicatorRelease(h); + return v; +} + +bool AdverseExit(const long type, const double open_price) +{ + if(!InpUseAdverseAtrExit || InpMaxAdverseATR <= 0.0) + return false; + double atr = AtrNow(); + if(atr <= 0) return false; + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(type == POSITION_TYPE_BUY) + { + double adv = (open_price - bid) / atr; + return adv >= InpMaxAdverseATR; + } + double adv = (ask - open_price) / atr; + return adv >= InpMaxAdverseATR; +} + +bool ProfitExit(const long type, const double open_price) +{ + if(!InpUseProfitAtrExit || InpTakeProfitATR <= 0.0) + return false; + double atr = AtrNow(); + if(atr <= 0.0) return false; + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(type == POSITION_TYPE_BUY) + return (bid - open_price) >= InpTakeProfitATR * atr; + return (open_price - ask) >= InpTakeProfitATR * atr; +} + +bool ModelCloseLong(const double p0, const double p1, const double p3) +{ + if(InpExitMode == 0) + return (p3 >= InpProbCloseL); + // Modes 1/2 (and default): close-long must beat HOLD and stay-long (BUY). Old mode-2 "vs HOLD only" fired almost every bar on softmax. + return (p3 > p0 + InpMinCloseBeatHold && p3 > p1); +} + +bool ModelCloseShort(const double p0, const double p2, const double p4) +{ + if(InpExitMode == 0) + return (p4 >= InpProbCloseS); + return (p4 > p0 + InpMinCloseBeatHold && p4 > p2); +} + +bool ModelDirFlipExitLong(const double p0, const double p1, const double p2) +{ + if(!InpUseDirFlipExit) + return false; + const double e = MathMax(0.0, InpFlipExitEdge); + return (p2 > p1 + e && p2 > p0 + InpMinBeatHold); +} + +bool ModelDirFlipExitShort(const double p0, const double p1, const double p2) +{ + if(!InpUseDirFlipExit) + return false; + const double e = MathMax(0.0, InpFlipExitEdge); + return (p1 > p2 + e && p1 > p0 + InpMinBeatHold); +} + +int TrioStrictWinner012(const double p0, const double p1, const double p2) +{ + if(p0 > p1 + REL_EPS && p0 > p2 + REL_EPS) + return 0; + if(p1 > p0 + REL_EPS && p1 > p2 + REL_EPS) + return 1; + if(p2 > p0 + REL_EPS && p2 > p1 + REL_EPS) + return 2; + return -1; +} + +int FiveStrictWinner01234(const double p0, const double p1, const double p2, const double p3, const double p4) +{ + const double p[5] = {p0, p1, p2, p3, p4}; + int best = 0; + for(int k = 1; k < 5; k++) + if(p[k] > p[best]) + best = k; + const double m = p[best]; + int cnt = 0; + for(int k = 0; k < 5; k++) + if(p[k] + REL_EPS >= m) + cnt++; + if(cnt != 1) + return -1; + return best; +} + +int PositionBarsInTrade() +{ + if(!PositionSelect(_Symbol)) + return 0; + const datetime tOpen = (datetime)PositionGetInteger(POSITION_TIME); + const int sh = iBarShift(_Symbol, PERIOD_CURRENT, tOpen, false); + if(sh < 0) + return 9999; + return sh + 1; +} + +void ApplyExitCooldown(const bool adverse_stop) +{ + int b = MathMax(0, InpMinBarsAfterExit); + if(adverse_stop) + b = MathMax(b, MathMax(0, InpCooldownBarsAfterAdverse)); + if(b > 0) + g_entry_cooldown_bars = MathMax(g_entry_cooldown_bars, b); +} + +void PushPrediction(const double p0, const double p1, const double p2, const double p3, const double p4, const int maxKeep) +{ + for(int i = PRED_HIST_CAP - 1; i > 0; i--) + for(int k = 0; k < 5; k++) + g_pred_hist[i][k] = g_pred_hist[i - 1][k]; + g_pred_hist[0][0] = p0; + g_pred_hist[0][1] = p1; + g_pred_hist[0][2] = p2; + g_pred_hist[0][3] = p3; + g_pred_hist[0][4] = p4; + int cap = MathMax(1, MathMin(maxKeep, PRED_HIST_CAP)); + g_pred_hist_len = MathMin(g_pred_hist_len + 1, cap); +} + +void RecomputeSmooth(const int aggWindow) +{ + int w = MathMax(1, MathMin(aggWindow, PRED_HIST_CAP)); + int n = MathMin(w, g_pred_hist_len); + if(n < 1) + return; + for(int k = 0; k < 5; k++) + { + double s = 0.0; + for(int i = 0; i < n; i++) + s += g_pred_hist[i][k]; + g_smooth[k] = s / (double)n; + } +} + +void ScaleFeatures(const float &raw[], float &out[]) +{ + for(int f = 0; f < FEAT_COUNT; f++) + { + double den = g_feat_max[f] - g_feat_min[f]; + if(den < 1e-12) den = 1e-12; + double x = (double)raw[f] - g_feat_min[f]; + out[f] = (float)MathMax(0.0, MathMin(1.0, x / den)); + } +} + +bool PrepareMatrix(matrixf &M) +{ + int L = InpLookback; + double open[], high[], low[], close[]; + long vol[]; + datetime bt[]; + ArraySetAsSeries(open, true); + ArraySetAsSeries(high, true); + ArraySetAsSeries(low, true); + ArraySetAsSeries(close, true); + ArraySetAsSeries(vol, true); + ArraySetAsSeries(bt, true); + + int need = L + 55; + if(CopyOpen(_Symbol, PERIOD_CURRENT, 0, need, open) < L) return false; + if(CopyHigh(_Symbol, PERIOD_CURRENT, 0, need, high) < L) return false; + if(CopyLow(_Symbol, PERIOD_CURRENT, 0, need, low) < L) return false; + if(CopyClose(_Symbol, PERIOD_CURRENT, 0, need, close) < L) return false; + if(CopyTickVolume(_Symbol, PERIOD_CURRENT, 0, need, vol) < L) return false; + if(CopyTime(_Symbol, PERIOD_CURRENT, 0, need, bt) < L) return false; + + double rsi7[], rsi14[], rsi21[], ema20[], ema50[], atr[]; + ArraySetAsSeries(rsi7, true); + ArraySetAsSeries(rsi14, true); + ArraySetAsSeries(rsi21, true); + ArraySetAsSeries(ema20, true); + ArraySetAsSeries(ema50, true); + ArraySetAsSeries(atr, true); + + int h7 = iRSI(_Symbol, PERIOD_CURRENT, 7, PRICE_CLOSE); + int h14 = iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE); + int h21 = iRSI(_Symbol, PERIOD_CURRENT, 21, PRICE_CLOSE); + int hE20 = iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_EMA, PRICE_CLOSE); + int hE50 = iMA(_Symbol, PERIOD_CURRENT, 50, 0, MODE_EMA, PRICE_CLOSE); + int hA = iATR(_Symbol, PERIOD_CURRENT, 14); + if(h7 == INVALID_HANDLE || h14 == INVALID_HANDLE || h21 == INVALID_HANDLE || + hE20 == INVALID_HANDLE || hE50 == INVALID_HANDLE || hA == INVALID_HANDLE) + return false; + + if(CopyBuffer(h7, 0, 0, need, rsi7) < L || + CopyBuffer(h14, 0, 0, need, rsi14) < L || + CopyBuffer(h21, 0, 0, need, rsi21) < L || + CopyBuffer(hE20, 0, 0, need, ema20) < L || + CopyBuffer(hE50, 0, 0, need, ema50) < L || + CopyBuffer(hA, 0, 0, need, atr) < L) + { + IndicatorRelease(h7); IndicatorRelease(h14); IndicatorRelease(h21); + IndicatorRelease(hE20); IndicatorRelease(hE50); IndicatorRelease(hA); + return false; + } + IndicatorRelease(h7); IndicatorRelease(h14); IndicatorRelease(h21); + IndicatorRelease(hE20); IndicatorRelease(hE50); IndicatorRelease(hA); + + M.Resize(L, FEAT_COUNT); + const double RSI_OB = 70.0; + const double RSI_OS = 30.0; + + for(int i = 0; i < L; i++) + { + double vma = 0; + int cnt = 0; + for(int k = i; k < i + 20 && k < ArraySize(vol); k++) { vma += (double)vol[k]; cnt++; } + if(cnt < 1) cnt = 1; + vma /= cnt; + + double r0 = rsi14[i]; + double r1 = (i + 1 < ArraySize(rsi14)) ? rsi14[i + 1] : r0; + double r2 = (i + 2 < ArraySize(rsi14)) ? rsi14[i + 2] : r1; + double rv7 = rsi7[i]; + double rv21 = rsi21[i]; + + double spread = (r0 - rv7) / 50.0; + if(spread > 1.0) spread = 1.0; + if(spread < -1.0) spread = -1.0; + double vel = (r0 - r1) / 25.0; + double acc = ((r0 - r1) - (r1 - r2)) / 25.0; + double dist_mid = MathAbs(r0 - 50.0) / 50.0; + double c_ob = (r1 < RSI_OB && r0 >= RSI_OB) ? 1.0 : 0.0; + double c_os = (r1 > RSI_OS && r0 <= RSI_OS) ? 1.0 : 0.0; + double c50u = (r1 < 50.0 && r0 >= 50.0) ? 1.0 : 0.0; + double c50d = (r1 > 50.0 && r0 <= 50.0) ? 1.0 : 0.0; + + MqlDateTime st; + TimeToStruct(bt[i], st); + int hr = (st.hour + InpSessionHourOffset) % 24; + if(hr < 0) hr += 24; + double asian = (hr >= 0 && hr < 8) ? 1.0 : 0.0; + + float raw[FEAT_COUNT]; + raw[0] = (float)open[i]; + raw[1] = (float)high[i]; + raw[2] = (float)low[i]; + raw[3] = (float)close[i]; + raw[4] = (float)((double)vol[i] / 1000000.0); + raw[5] = (float)(r0 / 100.0); + raw[6] = (float)((ema20[i] - close[i]) / close[i]); + raw[7] = (float)((ema50[i] - close[i]) / close[i]); + raw[8] = (float)(atr[i] / close[i]); + double pc = (i < L - 1) ? (close[i] - close[i + 1]) / close[i + 1] : 0.0; + raw[9] = (float)pc; + raw[10] = (float)(high[i] / low[i]); + raw[11] = (float)(vma / 1000000.0); + raw[12] = (float)(vma > 0 ? (double)vol[i] / vma : 1.0); + raw[13] = (float)(rv7 / 100.0); + raw[14] = (float)(rv21 / 100.0); + raw[15] = (float)spread; + raw[16] = (float)vel; + raw[17] = (float)acc; + raw[18] = (float)dist_mid; + raw[19] = (float)c_ob; + raw[20] = (float)c_os; + raw[21] = (float)c50u; + raw[22] = (float)c50d; + raw[23] = (float)asian; + + float sc[FEAT_COUNT]; + ScaleFeatures(raw, sc); + for(int j = 0; j < FEAT_COUNT; j++) + M[i][j] = sc[j]; + } + return true; +} + +void OnTick() +{ + datetime t = iTime(_Symbol, PERIOD_CURRENT, 0); + if(t == g_last_bar) return; + g_last_bar = t; + + const bool had_pos = PositionSelect(_Symbol); + const bool flat = !had_pos; + if(flat && g_entry_cooldown_bars > 0) + g_entry_cooldown_bars--; + + g_bar_index++; + const bool do_sample = (g_sample_n < 2) || ((g_bar_index % (ulong)g_sample_n) == 0); + bool fresh_predict = false; + + if(do_sample) + { + matrixf Min; + if(!PrepareMatrix(Min)) + { + Print("US500 Article EA: PrepareMatrix failed"); + if(!had_pos) + return; + } + else + { + vectorf out; + out.Resize(5); + if(!OnnxRun(g_onnx, ONNX_NO_CONVERSION, Min, out)) + { + Print("OnnxRun failed ", GetLastError()); + if(!had_pos) + return; + } + else + { + PushPrediction(out[0], out[1], out[2], out[3], out[4], g_agg_w); + RecomputeSmooth(g_agg_w); + fresh_predict = true; + Print("US500 Article H1 raw HOLD=", out[0], " BUY=", out[1], " SELL=", out[2], " CL=", out[3], " CS=", out[4], + " | smooth HOLD=", g_smooth[0], " BUY=", g_smooth[1], " SELL=", g_smooth[2], " CL=", g_smooth[3], " CS=", g_smooth[4]); + } + } + } + + const double p0 = g_smooth[0]; + const double p1 = g_smooth[1]; + const double p2 = g_smooth[2]; + const double p3 = g_smooth[3]; + const double p4 = g_smooth[4]; + + if(flat) + { + if(!do_sample || !fresh_predict) + return; + if(g_pred_hist_len < g_min_agg_samples) + return; + if(g_entry_cooldown_bars > 0) + return; + + if(InpEntryMode == 1) + { + if(InpPureRelative) + { + const int w3 = TrioStrictWinner012(p0, p1, p2); + if(w3 == 1) + { + if(trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "US500 article BUY")) + g_entry_cooldown_bars = MathMax(0, InpMinBarsBetweenEntries); + } + else if(w3 == 2) + { + if(trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "US500 article SELL")) + g_entry_cooldown_bars = MathMax(0, InpMinBarsBetweenEntries); + } + } + else + { + double dir = MathMax(p1, p2); + if(dir <= p0 + InpMinBeatHold) + return; + const double edge = MathMax(0.0, InpMinDirEdge); + const bool stay_ok_buy = (!InpRequireStayOverClose) || (p1 > p3); + const bool stay_ok_sell = (!InpRequireStayOverClose) || (p2 > p4); + if(p1 >= p2 && p1 > p0 + InpMinBeatHold && (p1 - p2) >= edge && stay_ok_buy) + { + if(trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "US500 article BUY")) + g_entry_cooldown_bars = MathMax(0, InpMinBarsBetweenEntries); + } + else if(p2 > p1 && p2 > p0 + InpMinBeatHold && (p2 - p1) >= edge && stay_ok_sell) + { + if(trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "US500 article SELL")) + g_entry_cooldown_bars = MathMax(0, InpMinBarsBetweenEntries); + } + } + } + else + { + if(p1 >= InpProbBuy && p1 >= p2) + { + if(trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "US500 article BUY")) + g_entry_cooldown_bars = MathMax(0, InpMinBarsBetweenEntries); + } + else if(p2 >= InpProbSell && p2 > p1) + { + if(trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "US500 article SELL")) + g_entry_cooldown_bars = MathMax(0, InpMinBarsBetweenEntries); + } + } + return; + } + + long typ = (long)PositionGetInteger(POSITION_TYPE); + double opn = PositionGetDouble(POSITION_PRICE_OPEN); + if(AdverseExit(typ, opn)) + { + if(trade.PositionClose(_Symbol)) + ApplyExitCooldown(true); + return; + } + if(ProfitExit(typ, opn)) + { + if(trade.PositionClose(_Symbol)) + ApplyExitCooldown(false); + return; + } + + const int bars_in = PositionBarsInTrade(); + const bool allow_model_exit = (InpMinBarsInTradeModelExit <= 0) || (bars_in >= InpMinBarsInTradeModelExit); + if(allow_model_exit) + { + bool want_close = false; + if(InpPureRelative) + { + const int w5 = FiveStrictWinner01234(p0, p1, p2, p3, p4); + if(typ == POSITION_TYPE_BUY) + want_close = (w5 != -1 && w5 != 1); + else + want_close = (w5 != -1 && w5 != 2); + } + else + { + if(typ == POSITION_TYPE_BUY) + { + const bool head = InpUseCloseHeadExit && ModelCloseLong(p0, p1, p3); + const bool flip = ModelDirFlipExitLong(p0, p1, p2); + want_close = (head || flip); + } + else + { + const bool head = InpUseCloseHeadExit && ModelCloseShort(p0, p2, p4); + const bool flip = ModelDirFlipExitShort(p0, p1, p2); + want_close = (head || flip); + } + } + if(want_close) + { + if(trade.PositionClose(_Symbol)) + ApplyExitCooldown(false); + } + } +} diff --git a/ai/yt/US500_H1_ArticleEA.set b/ai/yt/US500_H1_ArticleEA.set new file mode 100644 index 0000000..acfed63 --- /dev/null +++ b/ai/yt/US500_H1_ArticleEA.set @@ -0,0 +1,30 @@ +; US500_H1_ArticleEA — Strategy Tester preset (fixed inputs, no optimization) +; Copy to: MetaQuotes\Terminal\\MQL5\Profiles\Tester\ +; In Tester: Inputs tab → right‑click → Load → pick this file +; +; Notes: +; - InpLookback must stay 48 unless you retrain/re‑embed ONNX with another lookback. +; - Use micro lot (0.01) for tests; 1.0 lot caused very large exposure on US500. +; - InpMinBeatHold / InpMinCloseBeatHold > 0 reduce churn when softmax is flat. +; +; Model +InpLookback=48||48||1||48||N +InpEntryMode=1||1||1||1||N +InpProbBuy=0.18||0.18||0.02||0.30||N +InpProbSell=0.18||0.18||0.02||0.30||N +InpMinBeatHold=0.04||0.04||0.01||0.10||N +InpExitMode=2||2||1||2||N +InpProbCloseL=0.18||0.18||0.02||0.30||N +InpProbCloseS=0.18||0.18||0.02||0.30||N +InpMinCloseBeatHold=0.03||0.03||0.01||0.08||N +; Session (match Python SESSION_HOUR_OFFSET) +InpSessionHourOffset=0||0||1||1||N +; Scaler override (empty = built‑in scaler from US500_H1_article_split_meta.json) +InpFeatMinStr= +InpFeatMaxStr= +; Risk +InpLotSize=0.01||0.01||0.01||0.10||N +InpMagic=902503||902503||1||902503||N +InpSlippage=30||30||1||300||N +InpMaxAdverseATR=2.0||2.0||0.25||4.0||N +InpTakeProfitATR=0.0||0.0||0.25||3.0||N diff --git a/ai/yt/US500_H1_ArticleEA_optimize.set b/ai/yt/US500_H1_ArticleEA_optimize.set new file mode 100644 index 0000000..e1f3107 --- /dev/null +++ b/ai/yt/US500_H1_ArticleEA_optimize.set @@ -0,0 +1,24 @@ +; US500_H1_ArticleEA — genetic / slow optimization preset +; InpLookback fixed at 48 (must match embedded ONNX). Copy to MQL5\Profiles\Tester\ +; +; Model +InpLookback=48||48||1||48||N +InpEntryMode=1||0||1||1||Y +InpProbBuy=0.18||0.12||0.02||0.28||Y +InpProbSell=0.18||0.12||0.02||0.28||Y +InpMinBeatHold=0.04||0.0||0.01||0.10||Y +InpExitMode=2||0||1||2||Y +InpProbCloseL=0.18||0.12||0.02||0.28||Y +InpProbCloseS=0.18||0.12||0.02||0.28||Y +InpMinCloseBeatHold=0.03||0.0||0.01||0.08||Y +; Session (match Python SESSION_HOUR_OFFSET) +InpSessionHourOffset=0||-2||1||2||N +; Scaler override (leave empty unless you paste new train bounds) +InpFeatMinStr= +InpFeatMaxStr= +; Risk +InpLotSize=0.01||0.01||0.01||0.10||N +InpMagic=902503||902503||1||902503||N +InpSlippage=30||30||1||300||N +InpMaxAdverseATR=2.0||1.0||0.25||3.5||Y +InpTakeProfitATR=0.0||0.0||0.25||3.0||Y diff --git a/ai/yt/__pycache__/train_article_split.cpython-312.pyc b/ai/yt/__pycache__/train_article_split.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ee003e9110d4c3734999947a98e7fcd445676490 GIT binary patch literal 19186 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 E16ttwmH+?% literal 0 HcmV?d00001 diff --git a/ai/yt/here.md b/ai/yt/here.md new file mode 100644 index 0000000..9b300c5 --- /dev/null +++ b/ai/yt/here.md @@ -0,0 +1,30 @@ +# ENKS / clustering article — notes → training in this repo + +Summary of the methodology described in the article (MQL5 / ENKS trader clusters): + +- Models are trained in **Python**, then converted to **ENKS** for the MetaTrader include/bot stack. This repository does **not** ship an ENKS encoder; training here exports **ONNX + JSON meta + scaler** like `ai/xauusd_h1/`. Convert ENKS with the author’s tool or workflow from the article. +- **Clustering** (article: Cayley / trade matching): use **forward-return fingerprints** per bar and **KMeans** on the in-sample window only, then optional **per-cluster balancing** of sample weights during training (see `train_article_split.py`). +- **Windows**: train **2010-01-01 → 2019-12-31**; out-of-sample / forward **2020-01-01 → 2024-12-31**. Scaler is fit **only** on the train window (no leakage). +- **Capital / Capodon-style US H1**: default symbol `US500` on **H1**; override with `YT_SYMBOL`. The article notes models can be attached on other timeframes; EA SL/TP and filters are tuned separately. +- **Includes (`tendq`, etc.)**: not present in this repo; wire your ONNX EA to the exported `*_meta.json` and scaler like the existing XAUUSD H1 action EA. + +## Run training + +From `ai/yt` (MetaTrader 5 must be installed and history available for the symbol): + +```bash +pip install -r requirements.txt +python train_article_split.py +``` + +Environment overrides: + +| Variable | Default | Meaning | +|----------------|----------------|----------------------------------| +| `YT_SYMBOL` | `US500` | MT5 symbol | +| `YT_LOOKBACK` | `48` | Sequence length (bars) | +| `YT_EPOCHS` | `40` | Max epochs | +| `YT_BATCH` | `64` | Batch size | +| `YT_CLUSTERS` | `12` | KMeans clusters (0 = disable) | + +Outputs: `ai/yt/models/_H1_article_split.onnx`, scaler `.pkl`, `*_meta.json`. diff --git a/ai/yt/models/US500_H1_article_split.onnx b/ai/yt/models/US500_H1_article_split.onnx new file mode 100644 index 0000000000000000000000000000000000000000..343410d5ff2693b4f348c58697958f3f6d6054b4 GIT binary patch literal 321801 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

X*lIvtx3wJpUo5CDDi1mgK-q)^W=GsmVn> zk3tcvI2=C5cv@K=cq6!hPA%U}cJxkxriCeZe3Ch~iK@f?UE^Vfpq!l-%eg-{{U9=N z6Rn+k5~r|!pHE{w+?Xvy6Po2P=h4#Aou&IAb@y%VwTrqiS5ysok<;9kd;Mh>4K#7W z$Xw1tQv!`fD#MP3A==OGq!+^8LaMGN=AboLuMVTaKp{qb7UM77PKI?SsxZ2*5`tRC z@Et)O#5F{QJZF0+Vd`42hLQYBS!u{oJwu1b%91Jba=2w`53wYA47qJN5pRYrfzvxB z`L5t^^h5De2;vIh@VYDXaI6MD^Hc@5`vmK=+dhK4T~YW(NrWU8?jR=DYlLU-=@6=V z3}#N>3L$gP!G8nw*zhV7L+k>$9*=Y|`)EScinsIER(xl!U}^s8f9!htHU?s@+=pA{ z#I+7AB2~!Rf&r@CWX$~4aqvwi z9JKe`!M=k5xTI2&i@Ga`ZCAq3GhPvKiW2d4d5U&l)%n~oHLQMm8!CEvOrMwy{$Ji; zbAuZ%Q7p@6R?52{eJ!|4E#^d)KNnozolBdS%b@M034G+Pm*BT)EzaKh z1?97)_&aP?aH&L=zY+8azdfkt9)~}sQP*Emlcs*gP3^;+-AZIn`)E?^xd{SZUV!0d z#?zX0uqgS|X@5$5>nlJ5cW$gP+_G^G9M9M_ocf7761 zVg|VHb0%SV&2ZdIl-yTSf%xuk{Jy2N=*GT7TK_|hXLInV_y8jnc9J<7&0*hw9NBG~ ziB~t&p^frO6o@&DQGzYtyCxT`B8#BHlX~4QzoWjvNf5fQ0yj6r^KWTKP-pQ(lCoV1 zr!Osrw5Lx&qiv8m6#Wgq^*eGwFZ96R%6H0+$OUqOvNR4%Bw7BGxb=Fu;9sf9iJhLn zEtM4DKa*MvH$**IO~q!+b+P2)FBU?HcNmJcYcVUQ^`dc5E&SUY400R9iEeKk8f{#M z%42d6Hh(kYBdq|>DnDYaRV|upUV|Xz4{*$NpnUd<95`0H51Vv=?e43Dt*!IXI(vHg z7LS)u>iURviZEqzXztT{lPgMHwT5ZC-@w+AC&>GI8}7)Ku(KL(!JnZ?pnKsH#-_c5 z6|+r|e_xcFqP~@pMaG!Il(0yUS3SNUi$~G2Y`aSLiSEs^ltUt<}L0 z=RoWZ{g1nHXft#~v#7Cj96sE;3tkGzFue6D^U(e>`%AwZE(Pp_@)H?wys4bkRyzwz zMv~c_?Fz*I{w>h#^oC7Ss2lB34V1)|gF*EnTp2us%M!wIJLRE0yU0iXfj#i^;3>E| zc@Wa=Pw*#~KZK^+4`D1p5gqyY@GwV_dvrGy^D7GQ$*v^uteOK+nzOOnDjU!JeT^4F zZn9pU0^HY4@_2n*(y@Q970$ zr~cQUv{!hDdW5AWb8@GD@VjOk!ehma@TAp@3s{tk)_ZMn?=cIQf6^aTj_Pr)T`ur- zks%kbvmP_1tATsSU&uHd1w(Y7S@>lcmtWHi_r{(wQ&qC?MqfE2_HG&%tgX%+{H(>v z{_A9|-}mFN_-@L$jAZ2N+VEkE0KBV=W5pzTO1U1s~w*o^VD%M3P&u&4&9>k#8Fy`iHu&Rm-Own$LTgq=7H9Hem;A z&h1}m!F|$?0G0E}sNSm#N4l?KS93Xas|mq0UlH=%qXh2Ob1-`m?Sg(8;{{2G;q!qZ z{3bGqvvJRZj}^X<-o?kil$ULM?iL0-N6O24&v+!vV}f#c?2!jb7*AcJx59?7Eu^Ac z;J7bH>ixsCiQjQrL=#?{FUvj1r7W7p`Fy8@S+HAF0VXzFV{KwSVa4zYew5E4IIX7# zi_=n>o2t@WlY}LwzOID1bj%fZZ*Rshn&Z9xRv$+9N^!OxBm6`?R~WPRzL90-V-#S=J6&mXHRz^geK{5(t8 ze}mPasc zAgTtJjT>{;1-EhIMIZE6H{sex?=kyh7ee!*OVs-{nK+yi;%Y?{P(nYO4fptfd#{}+ zOVpBv&|6PfJ#Sk^qDTy7WA?F*($QeLS{^)pX|U`41-Sf0IoKxom=zDT;9c%Av#p&H z!aP*cfop@c?437K+@91#XwZIxh4(+B@*4ZFs|uXIbHqIS*jz!jmAR6A3S) zg<<`#-%x5agd2G`u~dO}An1M0@@^|0%nJdr1)Vs1NF4K3tIgYtg$%A!;&e@#8KaJNc)6jI<$D=3>%;~?uVgVcFX4k! z+ysc%_{f&z5@>U~3Ia~ov9aMM+&u9HJL*@0-Otky_fr{-Uv_{*ZWilrO1q^wh3t%Q zGx+!QEzUSYJqU?MK(=c=v;UYJKA1zf+B@&@^;h16zH5@CPx(4_%$LTTgm(7wg)p|! z>=Se2)k-^gnje<8SPcV4XZY=Ng}BZGUzy8$>dPl5ykx`{6tjLdN|5jOk!?+(Gp)8u z@Wn}&Yzmmp&hmbWPo0&CpFqKg|n<*%w?$FLcJ6dL`cW}Pw=<)77X@o!n6{Ozx$T} zx93C)q+U+K%vb6VR58Fljo6LKcU6e@qcM=F*X52JkS1%6bVIY>OL%K657I-@Jgrm3j5~L1 zeF6l?K8r@C&^rcJ>)u4G2mA48pBwu+ECCN3-NdZ;<^)!OSumr)gj2fk7`$z6v!nVd zT$gY-jz$-=Kjd=p@`*uA*;5Fo0(V1TqmSLyiY(k#TLj;>cCsNaQqjyk2c|W&K*~kx z#ETQ=LdKrMdlbiWR(jz1;uyxCGQk|RYwXnSPQ0-BCkl!dz}V;|hh!R{LxKWRcv<1#)QEy1zOyO8JN3M~$2aG$UOcktm~ zyxtUrF-qXaPqpp+>OH{J}zQ^&JiYtGG%bfA{I_WK7)7LL($rA1dX;+@7j`dbe&|t z+_zPQ@Rm|W)$$b0%U3{RaTvR_>n&!imEj_uD{#NH&tQ%Q@;*)62@4OG;$rVz zY?Fc_IpT7Uzx0zYT-`8?{==V8J3XCMZBD>5N23^n840}eE4-j|lNNVuB%fjYo3MAh zi9b9k8%>u)ptbikBp3K-YgCRIar8YR^8-`%sWGi)41Ann$Q^R_XJ~(cKgCLeb8HkL zt*1TMO&@lYUzupa=?*xT58e-fqOXErpmPvKByD)VesD~E(H`8k&y0)SmdMJ+y~myA zODU7b1{@w(aL?s}(a|ysEYuCT?f%nMAC^)|i zV++nkFfOAbOq9}PG?(~~-&$I_vD8$V@;KI7Dn@#3XCicwsFW^(DNcPa3 zfpJMAzKXoXd!L;Q1u+P*0W--VXTW=ryC zc@kW+(?a`8VZ4^6&rJITPX$oCF(|P9WDChNtqCSgG$%Gs#@S0}(?Lpd68Tki2v@)d_<2&ByE?rY1YkWr zQEXvr-aW?anmfp%+9dc-D;bv5y=Hjt*2AW{Dol2q2}_-Kfz;MgkiI4jzTReB_E~p0 zH_juQw`imNP!)XiQ0HXb<+yLA8d!hhF1WWPqWi6KaPYeUJEHZN(W-vRPXkG%iHY*bkbS%#A_$g~81=?0_u zldrHsBN751TZ7N;aptOV2lHq~5cI^J1YTq&NL>iTS(GvOQST8*no7`}Ko-t@u!uRP z`JLVUTAI6YAb{;jf6qE4?Zn0nXR$qK40hfghWf8^ob~eMY{=D4)P0~yj(_|B6WceU z@flNc@2Ch#d)UX6Rtba5{31qHaXXqvQSbQ%>U+2?Kr=@J_@hgn>{twdA0P3D=4Qaz z+rw=C#X-i#@*jIN>nD3qLf5CqD<-k7j6DV(f2w!!Mz`#f`O1nF9jlvq(bMOHeDLiCv zsAQv=;sWBH6$ftxHo(=aS~#9u#4L%@BOilq;;Loxq>|>z@6Oia#8$pz=qe1|ZbajZ zY;iJuUIX=nC$PL=JKQyvX@|qBKzLsoy!2|sLOO%UDi9=cws+WSC0l&=PKe}w)q!x4 z6Zqp%4O&~C>mtp~U0s41 zLn7Qkr93>h!3wvo(Sa)QPQP8Nan{B zLq-Pt={do^4H#uK119rF)|SEA_9?vO!lLAlj~sK^faa;Dq+uOB|Aw!=4C%GE;oqV{ z*tl#Q`a4v)HyI3Z?7RfQp^ik`*%Ks(OhGD9fSgwU$NIb9W1jcz!iGr_HLF2xD`yn8r?gPu;3ETE%AhvudK<| zp?FxE(8OHG9mV#ol>d@`o4(Iy!y3g`IIz|C4P3jovdDhnv~APx&zQ#zz$RDZ)MI80K$M z^9SLpA-uH*pW}$o0v!7F2pXzFFl=TDjAnN;PBj3QyY;vqX8PE;y9ciF9l-iRD!4wU z^B#-$%;-Hst}S34Rv-F@--=~m#Csx13!ej@dOz^S)0>(8LPL1hrAjt8C~<$D%ahCN zmotL(bPoBFprsGpIeUKMZGED_UCW-$oQ!oR?-d{7GF}2`D$R!pUg6BvG(j#!A_pE# z?0^sB2B0kINB2fwAtM?=hVDea4+?Ro+>5Y1SBI!=l;a;ReF>)9XX2U`3DWM6g|j06 zG7@t0p^P%}OW)mO12mJd`)4_xq2C{0d?hga?@qjPR+!sxyw%R!cMp1PF(WTxC$ZD+ zRFy4gti{*DE&P>1V(iD>Ghm}M34Th(uspX{$bZqs%ybTe=?P2VH4ej%N6#5UV`U<4 zEP}07Td?-@S~B=R6)ucrGwlvn(Jk~B>I?>=)f*ESvk}MC#b^18o=*UK%3(^nod_xI zcgl>Hnh}>h_Du1NE5H|3A%~Jqt%^t_9OPiU_RsYw1T%HXe&8q+{xe+4Q}wf5wsmBr1PT@zJK>?oYHcP-8uS>H}kh9 zsn~g0*Lw7m0JJp3W=PfE%t_Wq5 zS6*X=MSh{8cr%=OD+wa)Q4ZR-Fy zZUgS&@?t!%)r7t-Bak(JB|C4iIB{0~4QrwdIAN5t`G9QFG3q#0c>8ggA5#t#tYk~<2Ql1ke?9- z{~d`3d1)iAlrP53BF*UNcY(4;5}7>e40hp5a4AN|p-!)pnd#nwJNHL}}@ z`j7;-Y?%bSP3>mqiBH0Y?N69RrZ4e=rx=lO)PVerZun-~9BzL&$N0|Xaq^vfRJjy^ zH?uCW!X11#`0F7I1wLUaw^?%^9`9%V8eU;zXkJF^SuhmkQaAOL4RD0+1*&bILXeFr z5s9w?(ed+OJgfr$p17ieRgq7~V5m#F@r0>%x>15FF?gH1(v8;=H4lEWd zhnAr_nAh2Xd0ip6t;iSi)5ds}PMXBU;5haxEF#_7(_wyf7HXTVAS(ZLfJdqu=AKN$ zf+J!O{;h(!KA=GMM1|Jn?Fl5b_%ldR-=O*7Sm>E*LH>=-2G)51&fhcP@{$VK zP01b1-*p$UFDM)4Y@Em@Jp0YY&aZ@)M~|pqAc~#5${G@8xx$u(YNYXWH~u@AP512d zbE^4<{jQ+F?FklO>vnch=KEbV|13iM?;3J5X2@dGN;}R;DID5-L`VwFWBGs7BR3|f zk;VP8So$OsXBY0E`{pt_+bF~(&&BcN`6k#EEI{;I2qPeBhZ$2ovgwCQz{cPww1xFx z_h0H%z9h+dJlO;OueO5T$P=7?*qWP}E62M`^M)<=Twr*t)WhIbZPeYsU*=2bigfNW6L{eUtglJ1v*8{8P-e> zrcM3?!DH>^_J`e}<@Z1K|8C)f_KRTNM_0J*t3Z`f#o%iB7nQuG;t2&yOqllqCpOA* zzb&aFao;-JFl@nrV+DTtbq9E-&OpGi7qB@a63ovE;uRTj);a1YhK5jf_TzH)w&)40 z4;A2QRX;H2Z0|$7*El*>INA+pPU52VKEZ4E3B>UHT4GOgowIiogME}N$y2z6ole&H zYxxP(IWZGs>YSll#09I>3UEUH8urFUdE$QN0emW^9IMPWbV;vgPOjsl--lR`tW1kA-pjFWH%J^wg_H?K+$B@uc{KG$Ex5-cp2;Y&IJ#sn&OdJ z+ModWSiQy?q=!#4`#mR+BlAo+)Av^(LvuOvEomO}Cj1a|Hm18lEa#uZhws8%Y* z9jN)lc-e@c!m=<}Dm91(n=`QWZ2=@)PvrNkEWzzGJ5>MP0V}&(VViat^gZpw@9Y!2 zXS{))_1=OpU=4$8`+3Gq=n@{Cz7Rzi5hA#tleLmi$K$8g z)1AOD6kb|DdzaU6+qgM~h1+9@(+Rw_|0fgofOea!-6(4kpx)4f@l<}r{0wFAh6Rt^ zD-p)X+h3=>=J)LG;$e)vlgns%(B6I-SfO}4c7;L1Kf!2!?gz4=6X+hu1#X9)g3?!_oc!ux z2$7?iW;>c2yK(|o+Y1rD!;jd$B6nod93ZWm{_hkd;j1s;$Ty?1-$Bo?Szn9{-&ZCI zZu{Vm*feJQNEIaPi@~plXgBo1S9s?qiW2I7dELcD{QFrUu;6_k*tHLW!0iRh;yZHS zw00N|Tx)^dN5tM zu}~Bnbhm-}JY>kWznzT2#xrou%9T+Fn!&9<6~`+mm`i?Nb3(oG5|kat!sCA;@Kx_a zI6N50hNxYG_etORWxI4pK;upm230ShY^z)D|Vf>;yH4dP#XByixQR9s-`E0I@As0z)HBzL4EIoD*4w znzjPy!~TV%k-5m15JAUnv8XlhAE%{}4ISAP{4FlkF!iJc*H#q{iDjSR!+K%nhjLz=9C}^zS$+DQ z^-0r?dwTFSE?OS|7o?5RA$vWPx0T}OoCu7ev))}FtKn@p^(#fvXWDKGw>Hv<5!cG+ z`Bm0}|FLG&Y9GOY`WC*;j~0Bo!<=a@j{~WSN=UO?!>r$|!EBNeNkMrxM62)OLVwCg)Q@@&!)Q{u59GOa- z5x*71>}#>IdIB!x)1TAaF=QY0B)b`a!aqLd)BRuW%>sl8mR#}DD%{=l1m^iOQ2w7f zo8*~}k~`DbT%pMj4WozxWl-pz0ing+`0$}VlRTzGiqtP+@BUZJ^nd1P^lBp{E%Af2 zF@4x5EWk)=N|7)kk7fmru*Yi(7fa`^wb7E~ukr)Dlz0&~1*D_(`UJEqO$Ujs-qUip8Sd$)A22j^9R`Yg!-JRju(*^D29HJAo{)*0QcM(eIth_8R^#;S ztq)B?wlp`e7R~ARQ~4P>->BE(EWPBoa=ZmD|D>4{QT?!`G6bJPCcj{F9K_uIhY@o1 z=%FT09J2VRc3d75l8TsAIwzB&J=D$1lQGuhC%b9IJxrgZh_~Yg*jpnJu%?!eH=f48 zKbmzv)D{ERRrE>1&r*QBZD?Dd!dWdB<@8gY;rr=NkTIEp6O9~jSv>8L9}7g~8XXYz zEMxL&9z);p7*Hzu3d=iGU=S4f3u0x7WO5r6#fmYvf3C)DqmS9ZN*lnqR2X#)g@Ahz z&=7i<{ot>If!)>Ez2qu8fgNSttlJ=b8JtR9?g;7_d&2o{Kt;;k)i--c*|HQdR*Z1ROOF69hTg}8-*??Ae zKHu`60y#fblBg>@2jBBa_?SA=gp}uTHiw?!>jz=*&MFdLbP2&0w|VGjyb<Cw#J zSGdz$1&ik!u+A+@xEbpnv)xOo;H|`b#^}`@Y__@y8&Uyz;srRGYz4num05wdH;}V; z4%^f57LKV};+jY=X!KSiUp9{7_8BgC?8099nAf&>G*Q=GOQh5 z%i}v&fphsv_;q*zH>@WIS2TWte|aj1c27q4dr@%EHV+wu z0sCoOQk53hMDxiD#-6e^a%B){=fo6-QP0yGx__9XgZarG?2&!Lw38%<^Z1kS_Pkwi zQoWd2F?l}I#R{lj(G;Ir zCqV%#!Qt0f2-27cthYJm_Uk%Mepm`S*3oBq$pdC!RU`N>F2uO@9JmvIgK>TRgjF8> z4cUArFhjL5KomM3IRf3#T&@688NHiXvQwMT0d)S+)eQc(99PXEYz=r)+2i~`8!Ec== zXa7(EGn_`44@0F;QT`DcBxYb{hbg16Pni?Y9>7N#&Di^1irap zLQTFQlt%5r?-s3C`K=p1WZOWFxCoh6@QP&*azNC6!-|>T@Lr%6oTYbq_0}r5<@gyt zEmq*xUH^yghgZPs`q%iN?;*a@nh7|Wz>}!?&}gJhHl-KA(tI(lkM3*WWC-)@N-XlP z3?lol5d`12v6@^ldTbEqj`*B|_!-w2>t{mzP0hwo`t269uaaR05+p%AK%V_@@B;if zJA%rp-pRZDAS-i`iKuwbw>gG33S~R(anng7ZfgX=bUL3qmwtswl6Zo_ zI}#x1gAudW(*?3WG{a}PV%EP*o-Drbo_Qu<$bFi88!c89VA>8n&R8=GF1$*GX0<%( z3)w~YHv`N<+Z>FUn+aNcfACzi4Bv&tvYT#+a37auLsiW`G_Csxr|w%~k?|q^*FS|| z^{xg6I=WEHr~uz+y=J2Co`yex4VdB-0v^j=fL&839`YYWx7P!ZXisU?lcxwdJuoh z5Zlkvzu6KKeRwR`SKe`ODTahu;^gcy$n<$?=ebImSb3dhb{FP?&FO6HwRVG<$&^ud zWgV!ldUZgYN2fD8G3RE*~hxG&fBl{q{jE@vrDSMUq<=B1?B5 zd{7|~Fxh7V8qFSKBd^NZ=5D(}nZgK**W86StU2yA90c1Rwisf1kbfjEi$8MP6UMgk zFzfA6_#x;G@v=Xlr1LNI{Zm6@y<$51)g@2e&f}9x&CM+JWE?|1N#p#@kh3n8 zIqZ1@RO?Oo2@VhVdo~DgqS}w}tjSUsnWn(WXUVf_BffCqfE4%HK9W&A)r=`o0kG#= z5Z;e8AmQgEIknDvXx4lh!Lb~o>_y1ZCx&EsMG5mMLJm_m4MClwIrsbF2snv*F?}w3 z;80jLCJHTqJoO~_a%nnt&Rq$%A57sRKLwJXCWAH2pN*@4;POaA{u%3{9)0UErnQpPs;eebdY6Z+cNsGN=N_!{8-^`S z62z-G3}-t(Ml;OA)f}wlau*dW5;NCy=J1 zOvb=!8oFIeN8ik4L|LyNjUtc3hG{&qzTTMp^m8Yx>&zI7S_@KFJp^;NS&*u0DU62? zJ?H#Bk2^~%p?7o-G%h*@uZp!u=sh8>T44s!IUIr~QyyT;shiB;Qbn%0Z3?7>PvoAb z>5!d57P!n{BJ;rVHX|(U2Ah;xp<|v8D8)wLc`IwEU%w5HOS8<(Kf+|z4l8n}uN{{) zcY)RqQBL~if8^lE2C}egnAyVKM9Wh`?3IpozMK9BTyb(YeE$51@A9RLt*fQyjD{qh z-89;ZYBC~pY6)Xn|KX#?n{e@>FwW6;#a9a-LuAH8ay^{-IqtC_?6jNtZT$io+>`L~ zYCZO=!yi21tx3ce&4%rCR}uDN1tuB_bE|H>hTkvuqejjS_}e7Ixx7xtO*dlD=zJL( z4UDl$lC?~Yn;PDKAce1Pyg`qs2pn-36kVdc%)+w}*aKwfF zdZ0`9IqdOi7}~xEG`<*MxZ^wKT2CTeOmgGemqlW$>?gKg+5{Jj6oX*0Aet|h=DPiY z_;t&BnIjK{NGtvQO18ylaAAyQ=A}4~F>6v|ArHs1WN@oz5F#F6g%pkwwMRG6KbaxX z-h4=+8FA$cXQ4||4*h0~LqvjRyxc>X;8_1ymH*Ms=!qz$&*8Swb+!g zSl&#NnaqW!C!u-|JV#`9ZVhTf6#3!JO{A4^~ zp~7xx8;6sW+almN8+uRGLh%outM+daos2sAw_aj`|O%}7R+HH38C;m{zrd}5V`K$k6tez={46fr&huM_bavy3MQdr~7a->Q)8eTO^a`TK-p_-n7mQqJ-C#FD2^f}l^eW`j= z>tMT47>bBlVf5Qg?D8Bta{Z7r{&^4skAF0SzET4WC2k~1VgC`oT3^Wim(F;)(R@tl zc?{j9#I5pmV;&!s;#?k@aK1g0_^0{4oC57e&;R`qTjl@pW_GON4m)K)){YsNsz~r* z#YbFGWx@&mbmn3->)AaKp^S)rGJ9HQCRurS2cvoI5;ngOfK&4|!9U|O9z7BRw=UOW z#-eh1#;u3rAM5!WH}#@$#0uJNH{d*feZ-d)rHsqJEU^8mz%<1Pah|ts;oqn(yz1f1 zPZ^0ti|aC=_`?I%od^O|7h`tog9Pw9tZeuAX?vNQ*cdKzO2Ui#La;3~3%zdSqu>Qo zZrS5XSVMadvj@$%HGjkLO*NgPcL{Q@e|&_nv0m8D^e{{6TX;LhDX;D9IGvsQfNqT} zyi;eft4En96MhtSJa2>30`vJTBUjmqsf)S2#nZrR+dLpT(@EG-Nn6XjHukUF8R{8~ z!?w&xplA4q5eR(`fnJk1qwV70J9QX3geSuvy61aZ@|7Lm5e+`hFQ9+m3j3r+jpRm& z;&y{i%ygM!@b^yu#Pv_5pNCpleq|kMcvs_;z-3?*W6OD#K7!BNCz8{DyrD>0lr3N~ zAScQJ1I!MVkMKv6l*h1Lo5ok zu1k@1{k!m#p(d^i&H~NEcnon>W1MRQh*0G(czbCauB>{_e0nKK^50MAMtj0ZY2$A8 z@;47W^h|-Pu{FZD-E+CMzfwWScP?I`o<%*rHEe-Qv=wM(Uu_>|E4744!H-yWJv}ev zZM9=^x8G#H_P1lx*kM>p*1{Xt``Gf|HvBH%h&}E~MA5ktBr5_jdHe=-a~QM0CYLLWRJ(wPM+Z?{7ALL1+{C@<-7=SoN^gUKiiXoLOJDKrdRN9 zpcjsGOLGxI9-t!M$!@m4j?-7&Vl}?(#TiGWiJbO-u*52l+4h6-W(UQ&iyoI)xlm24 zRaU_X`yNu4(jZocy~3!knK&!)Y<@J3Jf$A2^omCmy$q+s z)A2-EEI-#*ox8;U0~@9s#_?k>nbVFbY^3oQFfw1l${ln6XqOb}`m=&Dck5@edxfBP zS`~9KP>E~&=|mhOufgBfS73hhGQL+?15ap`B`Z5*0sr}mlKmBD(C$wbc9k1(@yc(? z>$5a)duAZzrG0>mMYqdGHUf3zP2zNGd-46>H;j#@2{%$NMNS_+4#%brF}q}Iq3vG- z3SBsjOS%v8hF|;OJgq1&KYtPKJ)FvIn0XHeZ5_Bj9TKFW+L&Ws+uPNJ^5IH6^*HrM z!JEklzpm85jrK9-u9qXcT#$qDyH{hH#%eH2_)4E|Dej9#D!RO)?%MWv>T@kLV%o-lpJv_H>7R}<

7{4bHcdRa$Oy|n zf5+^`e9Rvmg;x#lnT|Wj;7s}EI|eBmUb6_JD(cZE+kmI|0PoUk@K|dHOuWj2+Q@wPEwu@7brh2vosT9B z9~sldGvLoa6O4SY2C22*S&2{U;YjaJ-0b}TI%%)A?YB|6VCYU(@QelwtC*4B!I$9y z?cOwLoQB8O1*r4(Cyqx*apCrgAn2-MS5|p|ZCiB-XKa;Z_&)b=y22}zJKF}P2{Xam zDiM-xKL8QC&)!}A06fk$;%F3Q{Qf$P3Z2nxM#ML$8uvz>Kjrw-T$wx%(&kp}?E@35 z>tG=Em({&h54jJ*n7W&8|-(F2cGt7rrVl>IKHw83u#wkf~hdks(A|i`WKlC z*+Sgl>eK8kR)nb9)PswH4pH}bi`NFkIH5OJc_mk8Qct-d#458Ou`>ZHHi@u-Xu7E!FU%5xBORMC>G(5SPiI%?+wmQ8>+>M(m;=Ta*WyA)S*|EfiMh}> zh;}CDkQYto?#bf#hVDZa+Qzftg4yh%o43LE^$hZ%?I@h&33FFkHo=Ar9Wu{Lne%Fm zW!$%qQND63h{~#={MZQ~`xUURnC2^zG{_cfZQQf!66|TqL953FDEqdO-XS|dd66$( zSa=RjeLaXPwQfN17?nHfhSEE0FL*lKgV+(emyni)?gO!9-fyE=^|gj%$9e@~bSoOB zWEVo*f&C~wt_v4!L^)H7bkvtf!I10MP&i126MJ%&l^&NOQq==^`|?$Y-FK2bTc$%4 ztFJ=ctqfFgW*DE;pOB&uiX~GsP+9OLTPJiMKMrU!x{Z{f_M(Zu^R+UwmwG*pOrgWa zT|(SPU&?pzI|t$I-+6Pc+yE!nrDz-w&s-b~z}&0pIA+*`KE-;RK~E3*dVXZGqwiot zi9VUGsKFg`6lMGk6Yv~w0Gm}#LeA7qu-6=*xY-vlxUUU^qb_3ZomWA>cRK%h1nidD1WS;<A8>Hh1Sk1HF^XIycOmka&doqR5)QnMDGAwDFJU2$82x_^foPIBO?A54H*VV5ixC z7-c6!vNj3vEt+nEnwtXo`?djK!A@p&%wHIwv#(>B=a8wCAtPS9$=sdanX~T2AdvEh zouWO&#&jP5XZ7i@HTx;EaP1QQgAd_sp6*fHO44}xS!dy1fI4wMq(xr*2Au16m5q9D z4%(SA_(}Q&E(#YS#WVKtw#t?<`sX59yIOnF@NE{^(_F`R#sSgZQiO40#;|9_DZC{S zf@h8mz^LJOIN_hkq_^>5FDpRa8SuzJ$r*SwrGR?L)ydoVzp(g6BJNw!!1VA8h-5aM zrB>&oPs=+ve}6AHiSfaH)fP7BX(WhmaR#w7YvJHKPt1lnkvIzj7XIOx%@re+m!CrYb#>aqmn6(UFenLiPxrK8%`3y?s0OxHEWae^N`2RoTShEETFVP_aj&eh{KE*RnoPby)SNOq!s z76<1Xh4E?I0Omw!<3_DfIGa?#m@hwuDZkGo&V_`V`4G_Z|~0{Pi}Ca8|H^AhF-wc z(r{LIEp_Yhi%tfno^ar-t}Vv+a|SSepM%`3R@?#m7@qmgN!-|i81|K4 z1T*ecgD$5+K*n1h9@*uAX5lM*t$PvdKTX2FhVK}?&;KLryu+#f%RTr zFV1z&bw1a7yq?eJ%f3ICa7OB#y7#uEO2LO!4NgO*Hq?cNBU24SzlR zg|TDuaBp`RriqHP!&A6(%IQY>ajzk}i1Z82{w~9)!=iZV^HkP5WEv|vBB<7>CSck(KB1uQ;`!{xMy|>Pq{A(Z-*yfMXMI$)VvjqY@Wc!d7r4n zt_L{BzJ=_wd5OOmE4=IY4FetI@UUbOY}Zm{YZ|yt%sczg{meqFi8B#I*O#JrK_%=l z4#57xPE1etr+%}#1eq!QC_0{djYv5*((5yARq4b8p#&%%kcKex4v_W`0Y`2&(Nffn z9di^>yypj+uam~aPtjm1Ie|KOwqs%12&w84f!TGl$%_LF^t-;eYiJk?|M&9Cw z`9IKg5yy`>b$}Rz2SCED>lnPJPax-)3>CboTxX35{FqloO5=o>1$|y{BXtG2Cnv)$ zTsuM{R((Tf(SN+Y`UhB~eGLlp2oyi=L6gk8uw(i+Y)q2CEZd>dhUOqhuCRgRcN6jS zD^pTc)n|!!7ed6kCopN612xQ7Vwx8}rK_u?+4CPnac=cxWY1(FoHn4lr8o_CK`d%M zk!2l@0S+St(~prjs_oCdYN@84Q~-a5Do~^D03Ip5LA5ii@m(D_unu^;r zq3hFV+*(tMHB+XtFX0X9hI}OD!3yvoHwLq_25?8R9XyPeuW&)tPMv*kCo$Gg&{(wXGr);1zss>9A?w&Am_V(=?dlzsg58L1vP3IWf=neo$> zv%3{DK)J6AmBRmmj1Q-$Dz1ghQA^@hT7;K}ucFkf>8$XJK@`3D-Bddl03~Nt-L;nSF-c}*jr|=-mO%=z7i_gNcgl_VFup9f@HiMte zX6ktEJg;oD5lF8l``k~REx5lLb4N=tQ{*p-yUDW87fUlYvcvHVm-SOTt%sIvPB7_x z5%gpS((BdAjAE%R{u2s=+aCwH{>wrP$o3PQ2&#g)Vh`{wmy?q5Z-+$Xm2fJE6>Oif z1R_q~g|sb-TrMmI{=1xpbKAUWs>nN9R6h#geIXeCsJ1jAFB+e9Nik+e6**010QSAL zrK9}>jwB4@3!#2ESNRvd+aBY*ARV;SN|F`bdLEBH{{>+u^DySjL3+=OQkg7ys8J3Dq-*EhQdMg+{5jlCdZYJ{vFQzPmc4`xRUF4xypC+t&4d~8_b~5V z3NPvPFwTL`bkc)Tm^foIrn!^@Pmg2Qb;LsXIe>dV8(>PRGT9O5iekYs|ip5T(=X~Sk z+bWd5DaP{0GN|fu4eb6CM|w+DiAWy9eE-OKHdT&7j435^*K@Pd)03DwJ#!p0O$N~g zPcUqw4x_h+V@YRA!K#O*tkS|A^g(+7imr*qhzEfrH?4-&|M^4J@2S$bC@uD&@@=@5 zau<)^{D-k6T*qO{GUnpwXKdkohVP#A;N{R$q@432_xEeym##umxcMy6S>OTl{*7aK zM338EaSf~JEN)*22 z*o1wCLhQ(>D~Zl82mj^)xW|-G)eWi`IgaZiIT?c{Gb%xp%N_kIapCgulUSFZzhRM! zHgin70HQUL1d;j=N<=kgvpSX|U`FqP1ILuma{oz2(vxA=;&>8LD8ly5zlUY+CXBNF z1SVYXIZVMqyx+-nA&)xqUcWzsa~g)=o76D$DrI1p)Ll@uJp}!sli9|U~x1gP-qfodzRgYCf!E#%eq3uwsY&EO&3&*Ehnw-&%&`wn#?^RUB-Os zBf5IE5>rtm!p!qN2Z1l1!zO4(jrOSwS}bQzxv^X)fGjI*It_#un$fMAiPYRjj0QK4 z3C2FnK<)Y{tO#<#zr&-%^p7dC>fv5gvEl9q_6~SrKoREk_rl5_9aMJyf4p^%G?>0V zOL)1n9>b5_#Dt&KkUvu#3|A=7D$h`0noly?`->rD?msfRH~|k1%8=GS@zC19%_mBP z7&8q8Xm|gLb{^(zD#xyGoK^;Zyna#G{2Oc}q)AohNhos7LvQ;$YPVMf)o*;ENfvKm z@*YZKTK9pf;%5+E#dSf4PKSxXS{S0(jG^LfR71p)QPyYn>`SuHr=?VDX(%2V&4UNfN?vBoWCkYZ@RlXzktyPw2idS1&GRRa z<&EQ+l6bD`N!EuXzRiFI%Ib_;l{M;VO<)~3w&$&Bk@($n3iIt`1uQC(!bzv)Xp2%k zSUSBUrM6q4M8)SnG2`Z!uL*D5lESMInqcm6478@2qm0uh=(!NhvBo-Z!JRcc`THwi z>eLsI0Nni?|=2U~uI-#7!PS@kua8{Bzp?8K` z*Jp6uhDj*Y@fV}D%WzSbqgPjX5V*C1Jk~YI1zHvPPzdv>2Yww5Tm1iOR_g^g> z{#iplY4636rAn+-V-g(~wx4|LltS~x*J$DOXjnV_IZi*jnoh~QhhhI*@wIIs&Y15F zdp@_4X%A%J>bI@nD`tq&X5&C7^gbMIeT^?pWnh8(2$w+!;jNaA;`}-KD7*4ADlHRZ zk0+iZ^Xr7+`TQ1iE>dJPuPufr^>0DUc?5#W?_h@3TWl=74-;P+Fi9mlST$oM=E~)M zc;x5?)HDz>GXl`(&;va5`ySS$CgTlN1lB>B{f3q-*Y!%jCux!6X1QQ^U29aR*ioOb=flq znjpAWp512NkIxJ`A(xy$<;e~7qjogtt+;}xTsThQq}_~ijt_paJ|X10Kt)IEqXuw%{2rl9culv*C{-0D@z*Mp>(`11#` z;=>b|tZfHdXLgd_jC8zTA%JU>-avTTAyl|4#oiTH0>iWktXMI}VOuqg>9P9^Nt5GH zVNjZJ_viG^g^JAOgIqtxDoJL`G&M%{KqGdUe?Uc9HAbQ=19ERXhA!h5=vOSsNH?TF zjIILAo4S-PF%V*8=T)HSzlB&U%rW*Jyn^-LwqyL4@yy?o){xHSS#+1`5WD_TAe%(k z4&g;GMO=Wo+*!~y?H&3wdt)Nuqz3~x6uD6kBa*`O4le+`m-K}`Za0gye7{TvllbE#S(OkEr zI-KbKg~yHkC~wpkmv}~?Y28!M^xp#_A>*OxQUtv;>I#)A7xB-$OgejEDtWdv1=Q32 zqSwTFtgYWg=(o9Oc5f+~@r=M?Vmg{Uuq9IV<}l2RA~`V~j|eNX3k$A-Xmb{qA1TLw zj}Vt^8G=cxO(A)Y52^*R*mJrCw>gH;m+wB~4>MTMgxyM7f`Ez2Onac1F;+%QLYteJ!NM%wsP)iE%#j z*;rXI4bDwS1R2gZc)(^pvy$`S?snz+4=N`@M$I+U@VP*arhkUWb85^U(IZ&H&By+( zEhXCxLZM9ZF%e%R&#dWv3APF2nX9JWbbnhPHEGQTuLQ1B3UVOfY$Gan$DrMZMDp#w zRQR>afZ6dUh2!x$p;nnC%H7gov^*v{PutfpVM1vj@w^t-*51QjX)he@5rq>JFrx(lbDAHXLWQt1EC7iA+q!G#}AG@KdBw=l=MPNK^&T{Fl8#fZ0E(8jb}DrKMNg=rJx|V zE11bd5Q}53-201x^c#VsGARpQ6%K%}-8<^DI|^j`f8bY{Qn)326~_6Uh8_K!=gwJ_ zyjNGoUskfrBaR!eYM%qWaL0yhzSD`T^OTtIcU>TO+5-zXMwrc(OZef7EaTSn6x9Oc z$UBz^ywyF0EV*ohhTrmGSHn2Es9-y=$GR;p-VPP)STsUs>4`80Gt#hiktTbL^BY|k zR%h-y4MXL0L+FZEV}FM~0hRPMOg5J}_FO-OQD|EU{hFz0(5J}G)R~2|ONH4rTaH8G ztbM;ihjIQjjTn?Ht%CC!Mp)_{OmhDIx-QQ=SuvGS^KHX7Ke%2hxmY;$AQH`_ zC0KKfA5fg|5wvSv$loK&+5pmQD#)s>S5K@ zYCz5}vHFWEUO4>}YjdXK>+9NJrbKc4np^OxEtO`bTqduBs_CI|T`;A$n?}hGabEnj zjMdr|j8Z2bo!qYqC~q;GP|8Vz3#X@r(UKJ4}29#isJirE|jc)bDrn zkaIMVel`sjTs@6J?$Wqi{x7i?yNB5i5fpgq84I5v92RjP7Yl_zL@Ep-Ev>Qjv;lK? zu@0@6!uf8y?%>#mIN%?MB)UH*;R_{6#tcv3nyETu=5~E};gT&-oGt`eQbJ6i#(!Kk zaW5plT8T})eKe}J6B0S5kxfH3{axA&JG2kL#XYfHU&dAZF(kmN0TS%biz682e-Bje zCewR?!bB;*32MIEk`2rs6c;swR~_LrX8dV*bFCdz8%L?Jem;0)mtgyYad;=Uk9^-F zf?H}cc_+Ps!S}N%+~fVmqN}aYV4aCepRUAK_hFpYu8#H139ve{6yiA#=A0c;%+pX? z!UR1B#p7{MW&4uMT(W}MaApzR`tCf6@~^<}eHo=|7aEtw=x@Tg8xO-;>3q_6B?;bM zspR&aB6PM^!@e1^jLy9A>@kZ%oNXw@oZ?ZpJfdEg)wR+M1eyPZI7WD?F} z&(PNID(s$H=J<5SWccKCAB0zwfvuOfr9wBy<5)KYt`|9$S7{xldV0Y+PG_#H8snL5 zyoYieAJgXPUUFnp8WkNAX01fUuu9n-*7&!kpY4a>Nk9yGp%vA=3qN;=4eu8-jRwUpDJ?KxkiHa3flN2%sU zVztr})u&B@@D=_j>otjSB5W)?>sVriwIvl2MY5|QQSx!|DBd%D7Qx^ea?&tgO9dYs>V5I)r@Fa=sgxY~LOJHUBT+LmwQ-8S7y@6S=>ywy3p zb@Cfo@1dFW!Nv2qL1+e(omBxr%6y3Z8Vs-6Pvb-9J7E7$p3B)s;2`|ew68SA1+@fHwvxyh5hcM7OOa#P{eRo++?lMcWIot?V#6@ct!PaPBbv znxTwp-#?Km&372I`#mfysY9J@3%Cv)4ff&FzhuX)blAD$9Mbe!`g-wmu(^L0Wb#9J z2EXj#SA;ohGrkdmp47TrC9Jl71~ z&$an@$w+}c@uUp0EM%FMpy??6XA~_PJm6UX$${KOGjQ~01b8Z@gF@6l8n^B%YV2`?ANyuO|0^Cl z;Ybk}tqq4cvCVk%TqMtAnKSjbnZjD^TMe=ugZOT|2CLDN3QaXIcvr7iTX5YbP{baiJ+ZyuCa|8{yW?Q~Uy@aJ)MuM;!jPuSme6r^%%&Aj{of3Mi zVaan^8JU54*-3cKb`Tp1qe#QyCf=C`Yb`HGegel`EWQZLBaOWgrAa%K8Hd<$FgD{4 z=uJ~*0?K+Vz8cFg^POAhkuTrKUYAz7=1T$2T~<$y7X8K}dM^Z3C+72<&MIS==R`*M z)EG?d)nxLVwL#vk7kWp8*wf={z^`m)v6t*y{F7vj@{K~qXx0E_Bu>6 zmSxv>XQJAax5QE+1wMS?w2>e&How0Tp6+-A|MbGpl+%Jm9cSU!t*Wel*DSVXeFjOH zYY881LQu{50LHd`1!-SObRTX9QoR!z-vz>xa2;mGxsNc?Wy4OKp8(o={V2Wf6l@?b zV6DA6+sNgJo_Ghqyasu8=BnrPH-8$tk(A(J;W}Jw7lL*+TCihLCwMD}GC!R4*@zH1 zd{pL#PxdQg!1MWF$7Ko&bN0ebF>!V@{3E>Hat+(1) zd~O&{6}-X2W~q3=;UpHF(n8x&Vb)8blWd#A*C&CC8zv5ZUTt#0< z^U-tsRY;j=%*?tf#qiy9=t9-AxbkoXR?3#r9F;!M*g1$^hXvp|RRg*?etScGEsU$2 z$Xb7T4POX%j`~oFfimTwQ9hgTc)k-A3psXT!gH`NA3)bxwQw;{2Nxx~kr}hj;1Mp* zby6_`Z|>sGol=UR>1>a!$A4ket1I};$efk8U`h{_wL;zOCfHW&$b`uk!ySi8XfwG^ z9}i4NyMSBN@b?ekSLrZq>n=b}K_2K0ZljNi$1!)^yKvfQ4LX_Yg0`3fJN9@Hj``=q zS*u$Rnpg~6BL(e#QH`4;F3<>@n-Cw&@!#GP6c%|%o=)!p(G{I|<9H98IsY0uE9TR_ zLRWm+7KyXoBw&KpWM-veFWQ_;N0&o4QD)sM2!8Q_yB`n1wgt^3;V2Ki)99j~vHlY^EY~S-A+Z40<4X_7KS4RzVT_1~3@k z1%taU!J0*7IBN?JZCmPyzRgO;eu(2ne%1!B=Xk`JNrLrYs~}l+7tSf% zPkp)Ez!{FA?lxl(WIK^U(;pD9(fXLK^x z0nX83PMOLw6f;>+K>|$gT2YZ%$)^m zaO~b~*c({JJwwM!51D1tXJs02ci=ZKs@nrQe)NHa{ys=AR_9Hv?Ztw}>9{yx4F4Fy1|bk)Ky zwBQBD!7~Lo3@EnkMoAJ1hXEXA3UO~sVwY{843?m#bw-Qc}iKLYC> zzrf>8tsDa)35<%mu>R96ZZ?$!*|C9WkUfEEFyYvoqb#uudk9J0cOdF+8eN@Pg3i5i z%w=K9X)KfIkGNWhj~cLy$?$_asVR_P*Gx9PAI})vxPoV$PU1Do7ra{0&jOV`Vdg}O zfcBa0!I5Q;N&V`5RI6k%24-?zhjkx8izD2~IqKpDgFuv)P-k!U55nK|LQwa<8>B0i zpg5a^S*Nc~>q`a9 z`)>`EUFXawJq&_?2?H?u(n@Ch#B+4uD95oK*$2@>A}l}GAMi>m?40o@KxJSQcw9!SUJ)kIj36b6^1QzyO_U7&z(qub@NvkF_ zeW4hWr=$VA-|OHex6bpAyu&>EQ|S7ulg?cw%pM_mu>I*QcI4Ath*`56{!RLWcb1NU z;c6E3FT{dscNuqY&cL7by0qqPJzR>(M4f#Ue{j#|R>{fup(X(ukNbhzx*GDwrBPtl zRse1-&#=VXZapN9%cTHnoo?C+rFFeVm1#Kwj zDb9Et55YZOJ_j_ z{vx*iC&Db0PsJOdQE*yZ3)>k36huXy^W4h3*d4v@FAYp}ZaBb2iQHlHx3+s=>S-o98!6-tG_mlwj6MmxB!$MsBo4~A(s zPEkYCd-yVXCcEHu8U6lN1D;))fkBHoKFsOatoEQJds=Xi#(WP&>w-v}+!hIkwC;jS z*lD_Mqa9Omct71@IT0%gHDT*}bteB;A!O>elrB{4M)UGnoc_aUXRFm2-*Gp=WO^Kg zftY z2-`nEwj}6c=lVR#d%1|2B&!3PmT!eT%UJs2HP=BT?8fBF)KLEICE!!}0VnR8!Z}?$ zcqw)cjNYro0$%Ji9Nqbqv|mht;H__g?QRCIQ^L^7dA{c!G-4NIFJrs+2{C#O6cPo( zOf%C*HFk4-Gu_I}*Xf=hl6nxdLvCR1o*C=`X=P@{y*K!P+`)|%-Kg@K^BQ{PAh~P> zs~rNc{zf9^5AtALYc$6fl4l3PgJ4Hg8t=0B1!&pj15iJR9cC3Uw^YC}rv5iueij>$ zp#X-o=Tojot#kJ&q?*-W6G>uV6 zpTeAY%grjG8k}8KS8Ge>Lm@M@Lv5g9B+HMvU_fBJakA4P`qy}>4yC#=+ki(T- z`(SQGGH*)dH4xlwur==>D5(gu=d5#ReCt$p=eX~% zX~TUyO!W|ALVR>;8h)%)>7gcg&{eZJYNCvbg?N{sy`H*OXc4OcfO;<~QeXy0VV zOgXg@U;Bnbed;+_;wj1&KG=m9zP?52qXRI9)1>3fq#=Bv6i(3nirOCcL1k_jcYft# ze6SIH?!obZI}>5Q#{tZU2}Z4)bQryx2w5W^>9>{?++P`uBU`O8`;{c)ussIb?WVz; z@99LJ$guYVW3YB?n2Z~a7wp|Jlc|W3M*TS#(0)b+$5l)se+;rgcaEaO;>oU_2c13k z9Xjabw!_%a?Wo6r9mYH68Lo8lwluPpG!pusAKhwMNxyN5!i)L;mp}iX|8jP5``@qN zw0k%Ad##Jp?u}0F`Qk zgYddn9Hze)#U{}U*swMcl|J0Zy}O)nPqQZ~W-i9jjR#RgRDj2xox@v6dgRZ|PO?P(5Wb#TBae7U0{$D&$7lax&8@LhB1zIB=apj`9gD!@l)0v=C>xC;M+|1;%`<7;FmfbYM!cTDvYi&VRexpWoAcoPXfV5q_DTAOElLQGR>e5&m@B!~Dx? zhxv)lKK$HjU%rlz7eChJC_f_3gFjetivL>Ci!a~r&Nqs5=Py3t{(oLmM#5FZ+uVk{ko6xr&YW0)um4G zWxl)fw_QHLZvk3VOXAOG&WQ~Zw=2l>w?ALXA73*hTIpX49R@aC61JH$V9?=(Ls z+K0bg+?#*zv ztmLKXt|N=*h?2D*a^z!-EUc#oNhZS( z?72p)+-C9=R3!-6zTI+J?q!RCao1?;hh(1A=Rux9T?|dv67bB9?4>s4+E6gflS=QM zO>%s1(k1WXc&<0hESCgk(V3HHk~X79Bx6O5V6OQa@_h6bsZUN63_lMx9rijy_TEn< zK_Vt({@oUVt8|(`MKzbc`8c4bePX~LdQOgwf56*NUs3w^gD_pcT~;vs35@@fB43WVlkcA%^3M7V2r3g&>E}(l zAhtV!sQOybh?Egt`9%-%BvlFwJC2d`nj7Tg$Ss=p?k7zU~&`uh}abqc|Go3DbZK@9F`S&lHsqbibNXm0cp z%`e8FSa=Nj*@j@loNyGGAC55{W7PIXI7$m~vi|!jOwDsd%M3Ss6URgOot$;XDi4jX zc;f>5N#x=lITCr%mj={F;uA%0+P&Nv2b}9MsB;_Ma#p3^fg2SBU&e2`6rzjg9ulP)26CK(;0fJ-HFq za&bRwyR3?$U6;^n^B<~~bri3UH%G<5vuNB@~2lak!|KikQ||KE19#ObKV z|9e02lbYKv02RL^U{4cXK>cZ$9hv}Ea=FxOI1PS$W=U1u10q{}imd&u$EN%FW78wR zVu=vQJ+A}?`8k%(4>-2U&o!`XeIoAtauYUo#>0nRgoes=dd?#rq}P9-1&cCh(UfMQ z&YUIJN-xrPPmYjvi*H(5oiBme6UTAvDtA)#Wstb0FNfnheQ4*wb9CVhX^gKvO}nNi zphRW?jo*44{J8oo?OCm)uV@QgJ@pJei!4Lj*anCCBH$3GQ@l%*1^aGCQhd|}T-~GL zW??YI2^-*M-T*A>HfLVXa0G=74RqRLf5_2qqq91VKo%xKy!CAo5jKlE&oqNzaVu=u zXa~0LEIin;j~IsE2F-CT0{_5Yr1FCp{p7;+#6K3m?X^CjynizPbo z*LYYZGy(LTt`_Icl*0*4{-|l34qs&Mk&8+Danv=C_}RuUET>nBNO{mu~^RRZ7gmmANppY#s?WEUTSyYqo4TGf)hL*qcDd^3@)6%h9a#g=lLf{++~B8xk9kyqRd zSzn{TV`L$W)F?9N19)Ji5e>I~$zqM&HC~57K9oo(Gj@eM49&ey_4R)V0+fHl`>%&! z{eV9aZoLFsCtd-|!5*5MsDRh6R*g?~B5A&w?NTS?=)!E|hwG5d6*3sGF_zeCKf{xYZ3XYVjqs4>1}Genfm`}p(Y4M8-$$N> zAbV51ZlWzXo@xVI=5YO_isT(|~?FFhvvmt7@!m2xN)um~dF2Edl$Xc`~bLH7)KV0GMDP-wmj$7U=+ z75R8-u+xhsTmPXuW-Nn2eO1&j@h3rBTfk@EB9L#s0p>vwxNg5R@3>nsw22k-(jUu_ zQHc~h|Lz%BDY{QZvbU65!jn=P*!ym;BeW0`}|)fU`=cL4U$mGUOZu z8#ZxTnYiCNn@$VlhN#JE23$^dK=iEZkUu97_P)*Jy{P|047u)$m|f#( zD5SzM<1$cZL*QX}2l?2114oX%!VOY^l)o?<`ad?&=%1_U{zp+z$myky;q%ckI{^xI zIg@4cIBn#f5wFVJpVXCeT7lvT+{Ss@zAsvZ`%fWMb&5d2$5yf;y$%pnAa+6>h(O7)5DfMiqPjMb_$BKy ztaDVwA+sQGiwMU8_8k%GId93!I1d%c`rvZP7>cHRBq3wH*niTNcx|}?p=UD?Uvr!7 z;0Q^6^h)q?g$M00Jxi~}6%lp0iOlO{AKdUPnH))31hsMY5a-18W!{^OWeX=`=FT0c zSs6g*<=-H_Iq~$l-*t4q?T)%lze^4Eq+rz8R#0{&6gLj_^A@E3C6Tr3(DnCqo>o~b zToQjpv>wf-*EacK_zxG1D4Ge!lY*dnqA>>A&!cDI8XPImg7>^sIDgj-FCO9eSDKRr zV`VYKS#N+|{b$0OY(0lx3lpgQ)DUv}`$O0`J&HV9Ttpu$#-rrkEUL+ICw`Ue=Qy!k zmVtMX?A(8YcriQiLhoPn&)5Ys>q6k$nh$hnZxgf~>7&xB%FuN3K&fc|LmDLbC2;gu zM((bzMt#;2o<_Y9sM{K#_op)Kxw4Dr^J$bQSq9_mv|Z?Dssuh4b-4X^5-1nT<72(+ zWIeZjexE1A1lR>q?*ju+^!PFaK5-!z=4_&#oHipdWMlb`>uDU9CyrYGwAsPzKB^yX z0^hnE8Qy3PD75(F+fW}kB&-f%Q7qgpxo5fR=S#9@!w8yB47RkFkwqs9HAp%<4T9e{ z;l5)WUc`PE9=c^k0=$LjmG=82Wz`rx@JpPS-nu3@q+o-8ru(5^ZWPLxaDM68n;=~M zJ~?_(3cu)45_RV``Ls!#@fiw+Rqyl3*rXE3Svq2wzf%ZGt~YTRQVU$afxGB#NFXC6 z4dlU_P-^2}O9vNRAgQZXgZcPQFw%+Oh3h$yi<1NKsM-Y7{zqW7*nUWUG>*zfU4)cl zJRG{Z8qN;{M1aQlE7?^XH|T%H{vXlyT{FZbub+7mZn zkIhe_`bC><>n*5KGP6(jFWM}>KkF#k?B>HmHXD+aDXja3OeGYX*{ za#u;Z=X0ENu#tT4O%n{|Y=Z!sKm2FxdCrwmf(wy4w{SIJi!7UB&Bb` z=fyE}D*q{n@Kdqq=K>lYeVdL+Wr5Dgccdpn8ohlVVvAg$rS(WMRkd{?GA#|-FOGrzQ$JXBaT$ti_l3ZV z1P-l_;k?;>yfvMc@L4mkba!72{?4-JdW8bW$kkQ6_a(ky*%wNxdu1@tAPf#G9-_0t}{UWg@cJ#{gEmjfv+x{2>9 z&+vk(Z3HEE*W#W{*RZtI9xj$|!+q8d@u}8N(qykf*DdVgwRdXZM@ttJlI|yGdS=k2 zWwo$zY5;(x9*TW0hKRdWM8=>N)Y>-*)?HR03n%#tBA;rIRc?Oda`_~7u9P@4{lij0 zhmaYGvT3FhZV18qFP$X$tvf`gdg88^e%LzE8volwxjwq3f<3vJ+{{~#47YaCx4ua* zN9Zw09wcBNZU`kA-1>*Pq|dcnU~VxDeymfWpXIsPx*(5KMI3}6$9lT=uLQj1{KWk} zYVe#?gHUQP-JCfYiMkN8FHs)-)x`1exImb;HjSn%x`Y`7h%pg{w2RdGeGI!Izh4m z50(~1(tt>9=Ig(F-sL5W;9p1t*iF6(@_}Y>qp}uWpYf)DGHr0!EDZEKm%?4k3*c~c z0#s*L@E+HNk%PMqL-1=i6c!B=ILjN8FtMM+GjSTma^Kg&^Cxk=`Z{t~Y$^D=KNs9W zW0-6Fgz(NMqe>Gn;kzn0&32fsEajL{os%I*O^9si6Jr*w{Y*9<%SQ7f(NJ4CM3q@h zTCS2qWW$mz-D)hT&i*8hUGjrguDFV#Pwtam!%G6w!ms3>HlJ?)zMf+Nyyq!3DL@SO zd>rP^pCOkuV0()+ujg$($v(b~N*$dJj;WeV?tvtz8UKU?vDfG;eJQX_RU@?F3Iuz{ z!LI4ANw}^rScDi6H=DcIxFC!=@F#(ZJ(3UeEU>;v1uieSOwY{uOqLGilAD5UWb*ua zp2c$^a%-(PeKOEwX&xAY>s~ceLB>jGUc3@aWoM(u)%iRd$s(e^EnjeS4o?8@v!K!U zvp{QG1jn)4ED%psA}yLTn2hKe_?(?C7`-{f6VFZ-+#F{_J@rEcA8zN6B~K$uMPy%- zPacIho+KgO@4z#s%|P!N*QvMZ4z-Q`L|mF>p?HlYRBoPXX|ORzuJn6x)q?){Oa^Wwo z7ws`b&2yywKIw2=XCkh#_J?ae_T+HQW9%*&g$9Gir1r=k-hi)$<;?4O}Xq!b!dDoUk65q+sd2xTUeGKG+t z68G$1r6N*FDUk{lQAs6{;k$o;Wi8gd_nf`o_j#5>oYq%jy(|s?(_D_{1J2X8Lyd;9 zu^yQ7v;b!(G{H{gWw3NlEP19iK$Lb_!@*E)H?4M#s=g9o^NVkwiNZ-#$yMg{JbM6n zZ@6rt>}q%-`VwLaZ&T$$b2!~thtCpn;mV6w%&!a{=~Yap|8e)^&&$744S|nT;$jY^ z(iiDFrC_Eos|wdezNUeRPig&$L8JM5V{mVk7mBM}kcGdTDqmEH^B2-%P`2$Sy|!Nm zM7ra#BuBV%=O>o#@$_RlE^oxayrpn0=_uVK9f=oz&4Zwq>iorT-9V=MGi}uf2H)TX zD0zMrOi?byt5pl3KcJJO4L%~G&D`F{f0*2h|4S^+4px3h)F84$*)V%eDcG!u=h%fM zwEIRsGcJFT99-LlbF^n*f&LtbKbHvw1-I$s$NDhsJLi;A{Y^)&M>D?1Du{lE9$<$E z@40Rmgg6V*tI<5FUBUS!7p|!kgO?cSK1{N=WuTWy1D=B?4<>2W`gm-?g38Fr;nYFq8m)cyjP}Xa!m>%)jDfl`bLRaBEc;?%^iS9ldgfGP zn(1sp6?_YNo}y+jD=WRAy~Ei6KH*y(Q5DS)lz~o17833G4w&xNuSu&npE( z$&%IB{ZyFe8xRh+u3SaYQY-S|)^7SSm11Wn#Ca5{P(>O5zXm$DyVlFDtY zHLavq?%ajFe-p?o*-ylOP93J(PK1XtKgr*I5sdS+07LQPwA)7q-!?xX%XIm$WZ(kM zT)qP0R#)Tlm`T)DNe8w`=|R5gb8@6NfEj+Xl?XlKI*qfA5|5LIaJG6O>|MJV)*m~9 z-oM|Wd}txHBRBAY;SrG0UdP@aOoMvkK)=JZyS&ll<5g49@$#z;sGC?3kX!oVXVNdp?Jv)5k7aXVyYa zaPyR%9FNVU{|@M%%K`bG$uvw+j4H~k1)+yAbb>MG47(X(B%+Z7E^}_sj$RM;2Q$DV znNui&lhC?gAsiI_M#Y|wk~?uyIDb9|EH}5;SF1L`!ZpfjA(|3T|&V69! zmXxJ!I0k5IWPmfT)=_p!Jn}kiImFI*a$hx;XYmv?(k;_8tWC6hW`| zJ{`YghQVg_B(-rf$Cmm^a_YX(r!$O6PeT`(^}C4uc_|&I-~2}Rg-4_BxvS8m@RojG zWJZmi&xg+1Kz3eMBo?j8MSjv+)Vh@kXIE*%Ps{Vzov|Hntk6ZDlP0L`pG>>dwxNmV zG=e$O=)Fq|PgyLd%||6T=8F|kI%|lv9#cX4;Z4lzG=bXm7!quF8sx2aKvO|1&cC-D z4hy>C&umMhkE-u+eCHmvE>;!xKDtf!bJ^^vm$txO^L&`v_m&oftj49Be{Jr>AH+B!AZ`PiA~~|*5}B!x99NAtDSiI>;O8H609F+!d9IOBH=!T zOx?y{qGmiBUM-8B;qRDlFILewn^SOFQ;!kkW*#R`WwEQ}lHqxb3>J0#M{784p4=B% zev*0=wxs!!>$;hE;#;9nx#CP-LE}kU+|JELJer`pM-l$a&Vt<1Y|`DHj2F4Pa95HK z+})?eQ!1@N{hfkbUtbWlcE*tnsm^%Eir~#-(Xi)w1@x@C#ftj1qteP3cxJC2FKTHt zKD#Z0qPz~GO!M%fs;S z%Q@iv_Zo!ACxVFDQwV(_MNLPQk!%!!qxQz+Sockun{Ez4cVjsAjX6=DdKhl6R)*B@ z_t44ZxNT2!{Vmr(ASt(qQbjMh|7syowYmahi!|}>_6quAW*}7C$1?&$S}+(e&x>Nt`n@}L! zL*H@d?SlbazH1U6?C$!L;`h0vE4388e90rDz;Bn~)%J7Di3JU?y(1Xd>G^ckcr3SQZK9_4^;uJWDcE0h zho%wCldEBop8YBHYiH{AWPb3b93rY z(2fLH5}^gp>O#nWXCmmn*c;R)={mShECIQi3%~7C07C3JYr$$noF; zI$dxJ-Z1h-dlv_2)LqB1PQyrA^Lyx(TS0J74h>%Jz*FHRleCf)GVwwQE6o1_TfSQ3 zKabO}nOlsEq$%@By)rCTI)?Y&#*kAs9&|>;GPdFCH|qN~s&Z93E54WkQO);Hk+Jp5gH%SXfkuo%IKC_^CKA zsDA-rFMDA*wy`@oMl<7;1y7zm#0j&9DtfkPlI{ze@XXt}7%a331g@2U`|juLY7tM! z)L+bTb`t3&od|fEP=&sYL9hpEKvD1qargd1?7n^@F7pL=gI`1Gsh#GKC@+8sy1QUT zXf3%mJ%xw|-=NQIcR`lDB`&#mnQ3CVJAKz$oFqR6x57_DySpa`DL#TzJw}OpnJf0` zoTmY+$7r;H4u*y4qUxD^!Y$UJ;(H#Xx`a`KgMnC`egR%|`lFwt7}gyzgMIR9{A|;0 z)TcL!YM=T?1pnHyv!X`HwBL7G116Q3yCxGqR80iNct8E_m}oGbCu945B)ubY(iO%shBm-B= z=#oP!@L?QhBoB1CgGBhPSV+9No>S9zWlMJB#-Qc znWL8Qc5Ef>uh~f(i-PgYOeK)NHw|Z*tS~C$SUC5qJ89Ic7*exj1bwXY;Wk_+Vz+BB zSobzAxw;kOlrGYBA8*3nxU2AHX&ouN@s&W_Kj!o90+^(ijC=QYz`?yhwuxfW>h-Yq$~oB>$295xwZ&)B*wv z2t@sO$~a_90_j6j;ed4?<{nc6woC$k_H2Sny@F_$r4Qz@!Srq91u}1mBFxHv1jhTc z;qrg3sGKTA*i}QcIrblQs2d{FE2U6-VIyo!yb5=v?JE2(ZKwWbJtVa=x^jCPf%lC? zbmqGU;QqA3s5MBNn_Cv3SMv)z%m2dc|73pMZh>C?J&-Xq z4amuK*wd)aYkGJZtcr)pu$mnmTz&(*(={-@BoT^VH$c^KLtHDl3hdNh5TQYHv=%yT zq^y+0AWS(c;$H%=Vf832FK|xIlT&$ z?lY*;pG2>%Nz?+Jp@!f7F29C zyoIN4sPN82Z9xqiY5vh^!)VwLMsM~VK_7!XpnfO=62g6euMkZH^)#@&FCIq!KA^gv z=i!O{qhRCON%s7A5;84)>4;GPs@yQg)D~TGck4y8be@ho*4=}K->2}sojuC$%t5*7 z0#Isj0VhnlL`B5Ez{jF1?9O@L;ge=EM7AwLUXc_YdN_v{Eh|BWj;mnr3llJ5S@zeL zGR8rD2lmcugEUwMyIMyvyl4ciU*4l`jfsZ-UGdO0e4ku46$J0Qmq}AgAb2~3L50mS z9GY#0I--T7fA}x^W=S25k*~qoyGn6k@l!IG=FN;)zM*1l2G;4@6E`%w5s~~ym6Z~4(38`Jv)!k|jSUxZg-jPnI_EK) z9**D=_8fatMu#+&Xu@&}ADT906%q5fPmg-M1*N@l`1YEG zUUHP2FGe4&eROxe82_ZW58YtGlCEqqFx1`)`zQE<{iGZ?VPyax2A`114O^(j?oN8t z%M?{Op5&$tYhmtHj>o_xQ?G(~l|tXHL7+q|?h+P;$t%~;|9%FcE_0Jg`zCWQi%h7F z|3EL@h@lQ}2qH5P?&AS*=O~)eC5L)it7e@*MMb+hp=U*BPHHMxwuYGjU(> z0p>|=1P8|&nAK8}z50&YLN~zK+aGSPwWs^r_5y43k8$+O#O__E^sn4_N}ntZ zgJ7=zcQENQ5kKILUQ0*Fkd81`yWS@+E(#ON(}lPt$rj6$q$*WD1QJE<18_DZ1Nxf2 zGKQPP*)qEvV%Sj13Tb!H*Yf+YVDV;5`8WxePdbMG9!%kN>bX)|<>MGMMT6K_`=IWz z2e^>)*G+sc$zSI+mA&jJ58l?h@bHT|vM(hLI(m;V32Dbkg|ZFqEzZV>jzHS#J(Vvv z=RG#r-vjsgQXuJ}NzHE8Q>}D9p8u|gYx^hgcXowy?)VOzx8= z1@7@lp*91_U?#T`T+0XPoWv=h%-vNdDrCUQa!G!g>|eYbGlBnld*^Lli!?N1`iiuwZGC4)w9vwo7=UkhRU9%bsTXfU={ zHLy^25lj@Ez?a6YY!=r$HhP_pt)mMto)-q^4D!)MOb#cP+u^EoJ&bv+gQ8a2aL8^d zeo^(r!stszMXEul<=_qn+$fz;mXEvYsyQ~^b!PNO5*@3rAl)absFL`7TF`1jw0d&z z%xx~P*4lts4K-Af-Hh|Ixm@Qa?mJp4f~7Yj$R5tMnyvDO7;|0zjhTyS+r~viqKBn! z3nOUgZBdSgk_rhRONr4alU_I(Ti0^@mH!xyYnqD-*1aR|NAwY_GGfxtgxnY9g)Nk#6#^;j`ejOtwgL~N<}Rpoy*3-Evt9N?muHYtM_X7FoDDJ_KdAZyBkFT&9BMWd(ww*p7;*MXlTMwOMwV=K5Ij1S$@>WK&l>aRN z<_`y=Pm3B;Y&^~IgfO3&-wTAIs0IT&>Oi$qGzWFQ&~~rov4f9nhF5haWiBn6r~LxD^~^UJO|= zLfp(-)p z)W;BNox(8wlM4-asAuGJ;Njlc=1IeLa`0H^RMbG4- zbBj5uu1TONA`?kxYAqS*tY#EnurwqlgPxtr!{3Xn(C20$n_9FQPKCs=YF@46oL?tt z^goD)($9nIw!2BIG|$fSmLdZ!_V4*WXH zYzX>}yw^eOj_yK`d|C)zzf-9qFA_!Tt-y!tTJD+q2sg`HLBd;(i|jjy?>x;ozGyfd zm7NI1H+DkHi)1*!eWProD(SE59za%?ku5QObk`kWT)piRQU1%L<%R;dm%DeZ>Fh?a zLy@3=bRu@mnt(AE-BI1wmPY=$OU&xq=w{(=>S^Fe!Yv)C&et~f^Fmj8sp2d33+6a> zyCN`mswt|5*OM6^jv-oz^DQzhBJ0Afy-$fg*$>vS zFUde@;&hA-65{nAT*jN26c5rFnQ%lW4XzFn8a`eMv8BpzHMIzQO$T7xlw~+6pThQx zLeg=tpKKeo#)#ebNm${2`sna`axV1|T=C2YW5r3labIf)^6st7cy*lwO$cTx)+q95 z@jkRMEP$;i!g2kazwjoqi+EOZJ@99v^!zj(H1E2E?ra!b{j(lgcReC4J~5EHngyL7 zZP2JJ1%;j2WaYaGYV&Uyk@AlO;rEFsc=8E;vK7FL#`SdOEk(F|<|1P#uf&Vq`G_p- z5$9Qda>MhC136XbL>C|GA~X1R$sV~YIN|h4SQHh_XpYH~11I!(D^I78^U7a{`f(%& zm)ycGwO)Aj_B=|)7m(j6mv9M5=e}c-tbfPNCC|*W$ zx&8dUwPA3!K7p*A8VT+yy==l~A5`;}f|IM9iFEL9lG0gAME9#h`Q!)^k;&yj*W{A{ zAsfzbnL_@ws^X!^z09+LtC0RN3uXJ9$QJNs3oYu5ju_>DK|j|)ALh7hr8?lKZ3`Y5 zQ<)?8&54VlG`a6m1t$A6z?xQ(nE2apc)Xs;Eq-Yy8|;#Pvi?pyHoTO2DB?Ep8vUI2rb$8byQ zGEr>1iSG>~;MKf7Qsfm4|4y1!&hx$l&sT^-^x_QY*n)rA5zkNXOFMaQmrI%DH!T<_yg5e{7rw)T8;6MD?wTM5(Zuh z!`1z(QA>L+jm^{q`wm?=_30b^ThG!sU2OU@r+-}DwnqdfehH!mlS5(p=UVE&P>5&j)(1Ir)R>UcbY@WgB^7)X z0{?A%4s&(N!RKTOE>C|>4*!uRGX^B7@3RW%%#$3L62etE>D~BRwu|nY{iP=4f%Q!XEhQUa9AEJwyE=gb~o)71pL!jIz0590h13UX0 z5S!2KEuL$_3yxEiw^5jS#;0<7vjq_18wTbfKbU(?kJ*pgg5XWjUf6wO8+6!9QTx6Y zqnwFX;T+ANrvxs*ked^Ge%lrB?=$3_AG7%5kq^-5P$&^;Hz(TLD%omuH#*_)3qCJn z5EDO8Pai$J_g;m6-ry$vxoxga+mzKNu93DN@hH&*1_ACU368g1vqg%;>@OW zyyjYlEB0UJ*gFT{x{({W534fSdYy2gNrYD)QAE0)EM~-9&Y^3EFD%$S2QL0jBhgcy z!}W=S7-XY>bKX3FoZrn{n^lyXp&rBpg=`#(>A{ww{phv%4t$Q>1rJO5VfvXNBCe7G zzpOb9GB+D4kbFQ}TnU*o_?piKbaJCWeTw(X(?>lFN^O&-QXu7DDiVCfS4NbiA-Rdw>m3^XTiFA6W9sk zUF2l$Po^bN0-DqW8DooiysQ{Mn&SSGu2^)H#>e;4Bp-Wt{LvF5M%u}hucz>oUJS^0 zX~HU#P+VJ(M*D&`;#Y@EoS}FRv_{Ty@AH%J&+spqEA9`D;ZNy~g-3BvMwb69{0&)n zb(nY#2VnMr0Q8EpN0;Vrcr%~--fp^$#W_XvphOhT+!Ki>eouyKY^MSZE8vu+ACVHi zL=>~lX=%1Q+`Z@mGtZm?!TFC!UeGvsluN1E)tS^|EQlPNR}Cj;Sn%Zfm%;1puhDW? z7c{^5z&1N+I_YjOEoJXxyO#_RGIl_RnnqeZCmI3`CU85SEA*>k5zapHl6o6`qpoj` zVR?)l-c(u+Z9iKu*`eu4q{V}OXN+ecG{cvK3 zKY1$jk38wALcLq&*cP=Blb=^ZmGTpKtu~pjEm~^Skgfz#ZUzvfa2VkDO?(i|C!alL zF*QvFtgXo~jkZ_>H~gnyc~Sr+9@D95?`rICdIv|=7E-@vdnmW*p-U2ul4iC4AXGDh zMsnwwQjeLiXiR~B<@-~TWEakH*Q~LljB~RMnt}-Iq^nIdVPIIEm$YspBUysWNCB=|#EuYjCXH6^+F<(EI$IkYGCv9%*Uf#*>MRzq2lX zQ|@ard6OFiN4=mW`}RO<@@GO*7vXr=0=}jB1tRxv6$;HeMe#`&yZ5~WRCKJwj5Uww z*Rmh9D_Rp4%(%o%ldOajl=H`)E+>w9VbGUi2)aXu;rvW-e6TZ&D8yG2x7;7(Q$r-F zyOfVtWln*mZaUn)A`N=)HlU7N397FOF}nBnF|~aXOD!K|f~KM_4a)mod34ek?eX!1 z-81{av#k*iywb(=zk#^LmV)$vD_nTF7yiYRlae(_exzzS@(~w<#xPZ4K8sG zrUP_isw3D-EP>`CW%yA4AN^_hlG(_YK(}3ybRgS+99Uie!D~J6a#9H%0VOyg+(o!;bMIWJ^j6$o6Szczl*M;$|t0H+5&JhUHez;QUgr;g^BeIvx8Gc^x`wKWZ=|% zBlaDdgm_#My*JCDcf2RaPUN_FIxC=Re>e_UmC{)4)fo3E0-p#KW2c%YUi+DY9h`GG z{KHm!-*uicpCE z;A*L*n6e|2YUt~N-wj8;%F8?=G7yS>h90OE;)>NLi!d}u0e&g>U|aby+&wi5O`WPL z-H-9Hv84gu?OugdKZEg0O%YmcFvS+d2)48~n7F%y;2~#SYG@I}HViC5&%7+uyib`z zw>XZicdb%X`Y8!0NQ5^AahNDqLO)El=Eoh@!LDTrbW_P6yl}CGh93OIEDN-QNuM~j z#het@gk#TC8*#j3#YWh)DgsNEd7woF=hDs#BjSDIm4^DQct2H)FP>sdUp#q5CE~i_ z)>Up+d}JzLCBh5MB)4Iw|7zS?m{fTzVF>SK=;Qvt1(a905lSjD$;$in^wHl}Btwk5 z$EPiTmg)p>IU9jPS##08s1#@0n$Q{lY|**2m|dk^Ogo+)p(iRP;+d_vG?FW8UpIM8 zq6O!{pMWT=T>gx7nN~3Gf8-ci8EwMd0zmJFJR}9hXPA{GG7#YW3m2xkV*Kwf;D2}n z-gAg#mwL~|2;Dqr_*TRUZI$BdeThL4-x^%hqeUXC|KOkhbUBZP3wkI8q5`+GPULdP zKQ94&=W!8SOswI*oC*9tsj2i6mo0fd_XQs4%R|RaQ)$S5H_5osZB~9kED5o=Mb_J_ zMV{gwvNzxt*~g2(0lEk;H2*=bJ4vYcS(f@7;yO@?8?e~&Jys57utzrpQrn^PboQn? z`m6sPR&d|H*Sb8c;C5|xdJ6EdGKbFCTTW7Cvxts|B<4JbBbj5ODB~!N75kj=em7yV z)KyTrJsfMjgCNI_B^ScDj#;i7=Xg=Tv=`slNzQ4I_*ReSam0;iH{S=|;d0D5Js-2D zRj~7GxLp6vjoke1F1%i9j{k;Vu>VY}p?4sT@EV-3c4Yxs>RArt&MErx2gfW4tfCQ( z!|eT`7qouaA&#fM4AtIDgd;c^mhOB-yheAyaswyaUi2ER%*s*e%`z1FFPTan@g)1r zeNfA(l%l5~X;6E?c%+8ms*0O9^YBl4TVWH%N!o$Vw6h$CC=ImR&M||eo4kvAT{(Pe zJ9IuTMTfexj8x!hICCNd9*6qEHo32m{m`6qukGR3p1ORsnav)6+nKr>VRZSD zPh``fG-m0`D6(mS6q1BX__d4B6{52t?9P5vzqXRf>1pFJEe-T3cZA9_64Wig6YBHL z=;LLZkbNv{l-s9{TYCJ!gQBh2AYuE_tVl-hZ6UX5}IwqRf-Ut~0vwhVZZ`Z@FPY4~c){Z$1j zFTdcPsq(mAt_o*uax{vz`G6g@0dzFe9s(L1XH}8luhey zy+q4x2kGbBhnSWXi}xjLQQUtWo#nomt#6)-Q684e1xCHUD$=Wf zHhNpwSKJ-GbfqB2`%%JAUvA>4_6s~5NU%CBoyuw%IhPeoZ{3rFhVzjak-G-=*(p+|(gf;W`x=V5+-ioJ5kBDsFp`WX$+5VL zxdCz5UQb}oup~YmN(WQFBkT^9Jvd#=0V2xP>AIb}NMoZfT2}5vb+L(@V`DY^4CT0c zMf0#F)P-@;E(eEQ8D!VZaEvwo3ED@e@KcT}!0(gUWWP%cJ#hRDP3@?G1qYtTIyG0Y|z&vuik@RClbYDddg zzZv;D3Am)Fh+JR-Ru4^wzL4WED|nz%lY95%PY!38@ykFC$@3gEtYFbz;GL2?izye) z>DI4dm~GE_?Of*ZWPC@#Pnh#t%;gx|gA%A3nhFOGU1MMB2=KE_vY0n#HDD&kynH!O zOib8F)E!NRwE-WX;J-hW%Q}3>_=WfAwtXSyiNt{=eMA-3hXZ~XC2m`{qWk+gZ2w{l zA04@Szg8NRe!{@i9f`P7P>3;!7w3gOS`WL2PLbSw29=**Pr|kQFNmKmp?|?qNK=x* zCMz+hF}nli-m)0BO&fdq_1J2S%_wnW3f`YQ6^s)W!M>;oXdHb4vTw$MmC_{!r>wx7 z$aWI%lLu1FW-!pu08zdiSE5&jEyr#^f_Dn;Y3m?MF6u(rG#5CsU@^Y!6yweBO@zxs zYskP|Kl*i*CYnE4gJ*e5aodeIka9$ftmDq&Cof#)c45(U;w@id?~zB&8RlSce+kuI ztH6)j>jEns6=BPIPbhn!PjwE&vmbrlLUO1rKdE{K33T9Csr;3+;d>FC)EQ47UfBhy zc@0!B=N!(LI)QT|49M@(e~3>+6;zo7!tmWHvdWv|7(G-*zh^&iPu~(!wQ>xdq?Exi zYd3FOaSMtZpN_ot7jRtOnAgVtN6658qr+pOP_>ZKv3I-3ESVCRwPinl zx;>&(e>f3XSIg?Y3V_GA{cvvP7>!z6g+Ddlk)zh*q+TElH0Fh&xJ4`Vu?{5d(Q$+* ztYZh`pU{hn+MrqYjt-^7^VU8Jq=p+6*&XvWuwZu#F87&%-J`umvI=rw6f+7-l6#4k zS_?d)Hjw{A2n3EC1j$FaP+rgFKDO4;+gn#)dQucL>#5^7dvIYIe{XMw|~lW=gdBHY?`1*=L| z;Lt+_(34lId{%Q7V$0^^ZdE-P;ka_@ezGX&`7jg(^=&(*n+G+Ik*&X$|D?=xyxTrwNZ-E}(SrI{016N9&%I&?2D* z{EfwE^}?En{tTtcx!&NPR7RiaT*H!m+#YGiNhWU9D%Qv396~f=@{M?S=YIl^)qbFb z^P*|vKT*yhV-9K^ab&{E#lVv)gALMC$ro#TeDZD^wg+Xx#gv;kE20Qh91=O7O%ly~ zUV`JF#CZuiZ>X!yZ{pOqhB_TD#==vR_@}>S5tWCm5nPw#zcP-Y`rG{=@bYOiGA*Vu zk1x{r12b?$#|LKTt_C?9cbw8P1eOuvFlotE_&&`Qw{@stQ@ATswQYu)qt8iJpC9y} zl*X4sG34;vdzHebf<$_!08GrxrtTl&$^D&+@RP|#YV*CGT`u~Ms(*fj7B=U&Op7NY z{n?Bpx~_nRnunyO#TF0zm`46wx{lVO{$LRiiy?DDXxNUe=m@6p>gRLv!&!~UnH7yVOso`gE&&^K$gu+=9WaK5z{v*l+k6*%;q1}2>byZgEr zy+Z>Z*Ks@iCNXx2Ea$!7dxbkc3DH0EIk?TnHB9AsVf^d82n-rFL7+pSQQj6Uh}siL zBkFg6sPSp88-Ep23shl%ErTHcGsJL8JG|bN2-WxaIDY*qkwbajsl_FRKAx8=zv&Kv ziLEj6LVwe}g>@vQ{07`knFrDwkFH0&19}<-`1bQ^sgw3Q(iZ%loDnxg<;GN_kJBGP z)AI*l{&*tq+1xycSSY}wPnFQ(@?ltY@;Xj#Z6Svg)KR)j7tWqfB`It)HxJf1ObU6+FLFNwsO%!I+FWDHG} zMX_o}l!%+l+sW3GtdC1DYdeh*_%o} zkegs(G+E~a+_S8tf*%EWkKdky-5!TX@6TQuU+x6UHwA%D*AqH_$4ij9FOS|84!EI! zg~kDYGPcSRs>Uqgro?&t)NzEN>!fMa>;oWhGLL@918V7(NTzwN#-Ug)Pj7dH){TB= zWyK4raD5XAJKzQ%mvJx{wnH8K*HyfOy4w1yqz9_RM8uq@Mg&%%#t}TrTDE00-3Isb~ zAl(f9)z2VBQWAfTN%7t~UM5yEK7iKX2D~i40aSPk;e5g=%=o9lbrqk}9@BhUbTgUE znRuIs=3hXoCmWbq+kD_*@JsL?AE16C4yZG@#fbdJ{coSGg2?O!khOoycKEcg|yZgOK8iERv@$tbvxHR!S2XV@WFTS>Lm7hd=uLVHx z;WnoB2SUh<^3iZ$pU>ZbTQ`?d$Hn{b^Nch&d`XC$o?eP_ zIRTXS_r0N-LuuuouZA$;q78i^d=YfA!!hdC3j7o7g~MI5>E{v?T>H!kl2)$f=#~Gd zE~`UI?&Mdj?Dgm{Mra>p_RI%U>@K+bl& zA269;wU_Ibtq4Lz4(>P2ESb?*TEgM~c`)hJa`Ir29H^!p!0NH1xaRLd5I63if3{g0 z20typfNS-*X`vZT-1muwdN6f=66G++NCT7P!HYr?Z& ztNv!@2|s}ttGMGO3+``aR>8px1=uekBJea-fz42Kr!mhapaL(EIrQHRcC;ZBb;jkP zMy?Jjw5DL)O|IuK7z`f6Q;pv2@FU;NU9it12zu7*Qhr-J*-}?P(-yKI;xz?U{#gaU zXu^T6MWFS@h|Id`hT3IUA@k#2e7H}UTz?>n-SIPMu;o`OVvvGO5~h&tF%jQfRE4## z#OaEFSmGe^fO)H?2&c=&h~JhKh`X{#iPHnPy8R`4a%LWmz5Iwap>NP_#Zl70U&vJc z=AOA)aoiEO1TLFxrWH%xGd1pisAa7RC>bn=x}}__;ZP24dDl*h%@xVJz!dI9703om z{=v9EETppAPqXWX;m$Gt+x(C-n9~M z4t_YU-%Fk?nT?x^pVHRV457+lU?`V^f*Bu;j{S}z-peHUw-&u&Y>v1>e5o7pDj6r; z_0f3FtpYm=Lvj3YAkDp}3~E>MNEVmj(l0!V^Y*s0bKV`q?d9B#c>}_&qknNzS~AoI zeTNeoQ<+72Sva#|8YzvDH|iS*!H=Wej7ZBxFyA(foGRE9nEV z?jY)0&aexYSmXF=PiXxjfQv6*Ca<2(hQ&VhjNF1~Rz^4nbT{9kO&gAreXoS!&*da& zeIvmC)~*Mo{WmdjrVu^8*co2AKEf4JE5O%ZnOCFd$e7DSquUE{-pRHh;##u~?rYEB zg*H|}dD^wgf|w-me;0yMORUM}PzTJs>s+}%LWU%toR1-+=b0nJV?;`2jOzMs!IJ)) z)NhV3WDVI-dFdA7u;L{cHtIva_$v@HN<#}T9x;tI$6HPhVf{%{j5mlUuC^6)ea8cG zC4h4xuP~=ZN5~I-zBR_{a+Kv_n*Jz)%+hf9%AkmCNA3+{x7K>3x#< zMiI2{IHAB<6Ry`MM0{=~U;@|uJak!`#AirAyoow}lsFIEBd_A{3RCPp)k}-6-o?!6 zU$H)=9Pd04=3hH|kIRcklD?^L=+P|B0We=5XY)ev_RmO2Uvv+WHT}3wkR7D81%tMx zFrHAA#m2HcRB4RBjMz!2kkCdd<`~nLajj68YecSZ=eXp<3*ouq37Ypf6yJ>%GUIvk zm^V3A@a&BZ)XdkW8u>GD%s_|~sEE*C!Idb={=$;fYc%lKWYl}WBfB%c5-TSeJ{HHr z;=v#|U15)6dCU2xqGpuuR}2{$9DMY3B^}W4M?2OAWB>ItR~K8LpUxrjDtHYvE4Y&V znw`Lxp9Fysez3D?HN4s9#PvIoNDRILli0bu#E8E*a=wFHR!b(rO2+VwFUWUXw}6>k z(TNXyHp0TP@3ehgKekk)fKApu`e?M0IBcDOO~Kq5p_3(V`dv6z`4hTk=@m3*Pve!; zNZ9anC6mjY5QLAq8EIcjLe=p@Ses^un-W~u2iQmak8FlaZYJ|2Sq5{0I45WQIjCJ; zOW!S0A@kN;rVnWw{`V}0T(vz4z7#1%g6R5;?~x5qH_)h9` zCHWy1J@n~-3O|0+VkmsoN%HpflT4fIv|7^`3vC+Ur+FnaWU(Ed1`FY}Q|_FfZuX|-wL@=D3-BU-}+G_CBvvmAyvYOlH zxsZFIaZKQIFSwE!htF(EVPtFzKE9_w3bQP*SlNuJOnXGz)de_DN-gnuI8NNA&*eJA zSLyd%PB1U17~6C`h^AT|>Wc|sptA%o!0bM~8rw;Feq;ex)4-h@(r7 z_;`6Ne3_}u{oY(!Gv6NXcuB&92y%P3@&c@1Ty(H^u@Bb8?cRZEv8^`UeNQjhBRAz&Sb6=+= zl~792PNC4=C1r2QDm$}`lpUV?Ix-Scii~fR3MEBWC9U7{`~Upm^>Uu)-1l{TKJPc` z`MaX2V>M^trJwXsWhQof_d;lk!uQ4tU}Z}M7!0a|Rm~2}48077imi09#3>NIcptnM zPUo%blVV}KHDzPHN2ySbB4#{(XHr5PP^TxA%AbBgtUid+?b^5Tcc2=!ZF!E$UUM;! z&6_0;4bmM8F2RGp`$(!x6->mY!`Ux!(2%J}Hg#+8DlYDW#2^uBW3~a8=r@x-PbE&B z6Pxp|3WF~do=od-0^X}ygwea7pi1O-x^*NL+msgag6>5Vr!y-c(3xcs$?V5`X$35h z1t@fh1p#waknN9SrYyaUQ`5MpeI^1O!u?>m$5*<)NRYdEodL_=_6HRoNw9w+3E^IC z-@WU7s83pmX ze;fZ^Py^Nex^TEMHm{jrEg2ep=FOO3Ye~h&~Gp4mmO2#4coW2P;bK5%c4QWAR3yEwu1|V!9qPt z%vbV+fz!8O;(ku~ZO0v8W&8t*4+OI_yJQHJl)*O>Pa)c{4lFsTVBwYk!3#<`?L1q? zw9*=Oa13C9$pgChau1wpdIThUCU=ebLs;vSg>Yd}T?R5pc@jeGFAKfHV zU$$vg9rxyX7*lB`2RQ zIDLfLw0M!pn;zgg#SWs2KEw3h7$`KFpnK;n<kq>d-|5tUi||o?J#?_S_}1k6oTkW7STs>VH;w&(bw^h~8dCt$ zu~zUjy@9i6-&@e@Ya{n-{u0%gV0O>03N_`Y$=~#Rh+FgmW?qSaa=uWoSH24ItP^=W z-J7F%_za1QRAS-3d!VD?7PQ-0p!})(tjpXNkM7ifb*t)#>zWim#hGw!a2Q%*Dv7

PFbMRwuAh0x64{rNDiqrJRqxJ4w{)D7ZIG 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%0D3QkUqvdljRY`+y-IzgMKfLIo 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 u{h3>B_8XEd9XbTl9X9{K;}(H pd.DataFrame: + if not mt5.initialize(): + raise RuntimeError(f"MT5 init failed: {mt5.last_error()}") + + info = mt5.symbol_info(symbol) + if info is None: + mt5.shutdown() + raise ValueError(f"Symbol {symbol} not found") + if not info.visible and not mt5.symbol_select(symbol, True): + mt5.shutdown() + raise ValueError(f"Cannot select {symbol}") + + all_rows: list[dict] = [] + chunk_days = 120 + cur = start_date + while cur < end_date: + chunk_end = min(cur + timedelta(days=chunk_days), end_date) + rates = mt5.copy_rates_range(symbol, timeframe, cur, chunk_end) + if rates is not None and len(rates) > 1: + for row in rates: + all_rows.append({n: row[n] for n in rates.dtype.names}) + cur = chunk_end + + if not all_rows: + mt5.shutdown() + raise ValueError("No rates returned — download symbol history in MT5") + + df = pd.DataFrame(all_rows) + df["time"] = pd.to_datetime(df["time"], unit="s") + df = df.set_index("time").sort_index() + df = df[~df.index.duplicated(keep="first")] + return df + + +def forward_return_fingerprints( + df: pd.DataFrame, + feat_index: pd.DatetimeIndex, + horizons: tuple[int, ...] = (1, 2, 4, 8, 16), +) -> tuple[np.ndarray, np.ndarray]: + """Normalized forward returns at listed horizons; aligned to feat rows.""" + close = df["close"].to_numpy(dtype=np.float64) + atr = atr_series(df, 14).to_numpy(dtype=np.float64) + pos = df.index.get_indexer(feat_index) + n = len(feat_index) + d = len(horizons) + M = np.zeros((n, d), dtype=np.float64) + valid = np.ones(n, dtype=bool) + max_h = max(horizons) + for j, i in enumerate(pos): + if i < 0 or i + max_h >= len(close): + valid[j] = False + continue + a = float(atr[i]) if np.isfinite(atr[i]) and atr[i] > 0 else close[i] * 1e-4 + for k, h in enumerate(horizons): + if i + h >= len(close): + valid[j] = False + break + M[j, k] = (close[i + h] - close[i]) / a + return M, valid + + +def create_sequences( + X: np.ndarray, + y: np.ndarray, + times: np.ndarray, + lookback: int, +) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + xs, ys, t_end = [], [], [] + for i in tqdm(range(lookback - 1, len(X)), desc="sequences"): + window = X[i - lookback + 1 : i + 1].copy() + window = window[::-1] + xs.append(window) + ys.append(y[i]) + t_end.append(times[i]) + return ( + np.asarray(xs, dtype=np.float32), + np.asarray(ys, dtype=np.int64), + np.asarray(t_end), + ) + + +def build_model(lookback: int, n_feat: int) -> keras.Model: + inp = layers.Input(shape=(lookback, n_feat)) + x = layers.LSTM(96, return_sequences=True)(inp) + x = layers.Dropout(0.25)(x) + x = layers.LSTM(48)(x) + x = layers.Dropout(0.25)(x) + x = layers.Dense(32, activation="relu")(x) + out = layers.Dense(NUM_CLASSES, activation="softmax", name="action_probs")(x) + model = keras.Model(inp, out) + model.compile( + optimizer=keras.optimizers.Adam(1e-3), + loss="sparse_categorical_crossentropy", + metrics=["accuracy"], + ) + return model + + +def main() -> int: + symbol = os.environ.get("YT_SYMBOL", "US500") + lookback = int(os.environ.get("YT_LOOKBACK", "48")) + epochs = int(os.environ.get("YT_EPOCHS", "40")) + batch_size = int(os.environ.get("YT_BATCH", "64")) + n_clusters = int(os.environ.get("YT_CLUSTERS", "12")) + + fetch_start = datetime(2009, 6, 1) + fetch_end = datetime(2025, 1, 1) + + out_dir = Path(__file__).resolve().parent / "models" + out_dir.mkdir(parents=True, exist_ok=True) + onnx_path = out_dir / f"{symbol}_H1_article_split.onnx" + meta_path = out_dir / f"{symbol}_H1_article_split_meta.json" + + print(f"Symbol={symbol} H1 | train [{TRAIN_START.date()} , {TRAIN_END.date()}) | OOS [{TRAIN_END.date()} , {OOS_END.date()})") + print("Fetching MT5 …") + try: + raw = fetch_mt5_range(symbol, mt5.TIMEFRAME_H1, fetch_start, fetch_end) + finally: + mt5.shutdown() + + raw = raw.loc[raw.index >= TRAIN_START] + if len(raw) < 500: + print("ERROR: Not enough H1 bars after 2010 — check symbol and History Center.") + return 1 + + print(f"Bars: {len(raw)} range: {raw.index[0]} → {raw.index[-1]}") + + feat = prepare_features_full(raw) + labels = compute_action_labels(raw).loc[feat.index] + y = labels.values.astype(np.int64) + X_raw = feat.values.astype(np.float32) + times = feat.index.to_numpy() + + valid = np.isfinite(X_raw).all(axis=1) & (y >= 0) & (y < NUM_CLASSES) + X_raw = X_raw[valid] + y = y[valid] + times = times[valid] + + train_row = times < np.datetime64(TRAIN_END) + if int(train_row.sum()) < 800: + print("ERROR: Too few train rows before 2020 — need deeper history.") + return 1 + + scaler = MinMaxScaler() + scaler.fit(X_raw[train_row]) + Xn = scaler.transform(X_raw).astype(np.float32) + + X_seq, y_seq, t_end = create_sequences(Xn, y, times, lookback) + if len(X_seq) < 500: + print("ERROR: Too few sequences.") + return 1 + + train_m = t_end < np.datetime64(TRAIN_END) + val_m = (t_end >= np.datetime64(TRAIN_END)) & (t_end < np.datetime64(OOS_END)) + X_train, y_train = X_seq[train_m], y_seq[train_m] + X_val, y_val = X_seq[val_m], y_seq[val_m] + if len(X_val) < 200: + print("ERROR: Too few OOS sequences in 2020–2024.") + return 1 + + print(f"Sequences train={len(X_train)} val(OOS)={len(X_val)} lookback={lookback}") + + cw = class_weights(y_train, NUM_CLASSES) + tr_idx = np.flatnonzero(train_m) + base_w = np.array([cw[int(y_seq[i])] for i in tr_idx], dtype=np.float32) + sample_w = base_w.copy() + + if n_clusters > 1: + fp, fp_ok = forward_return_fingerprints(raw, pd.DatetimeIndex(times)) + fp_seq = fp[lookback - 1 :] + ok_seq = fp_ok[lookback - 1 :] + fp_tr = fp_seq[tr_idx] + ok_tr = ok_seq[tr_idx] + fit_mask = ok_tr & np.isfinite(fp_tr).all(axis=1) + if int(fit_mask.sum()) >= n_clusters * 5: + km = KMeans(n_clusters=n_clusters, random_state=42, n_init=10) + km.fit(fp_tr[fit_mask]) + labels_tr = np.full(len(tr_idx), -1, dtype=np.int32) + labels_tr[fit_mask] = km.predict(fp_tr[fit_mask]) + counts = np.zeros(n_clusters, dtype=np.float64) + for c in labels_tr: + if 0 <= c < n_clusters: + counts[c] += 1.0 + counts = np.maximum(counts, 1.0) + total_assigned = max(int((labels_tr >= 0).sum()), 1) + w_cl = np.ones(len(tr_idx), dtype=np.float32) + for j in range(len(tr_idx)): + c = int(labels_tr[j]) + if c >= 0: + w_cl[j] = float(total_assigned / (n_clusters * counts[c])) + sample_w = base_w * w_cl + sample_w *= len(sample_w) / float(np.sum(sample_w)) + print( + f"KMeans trade-fingerprint clusters={n_clusters} " + "(fit on in-sample train only; sample_weight × class balance)" + ) + else: + print("Skipping KMeans: not enough valid fingerprint rows in train.") + + model = build_model(lookback, NUM_FEATURES) + model.summary() + + model.fit( + X_train, + y_train, + sample_weight=sample_w, + validation_data=(X_val, y_val), + epochs=epochs, + batch_size=batch_size, + verbose=1, + callbacks=[ + keras.callbacks.EarlyStopping( + monitor="val_loss", patience=10, restore_best_weights=True + ), + keras.callbacks.ReduceLROnPlateau( + monitor="val_loss", factor=0.5, patience=4, min_lr=1e-6 + ), + ], + ) + + loss, acc = model.evaluate(X_val, y_val, verbose=0) + print(f"OOS val_loss={loss:.4f} val_accuracy={acc:.4f}") + + spec = (tf.TensorSpec((None, lookback, NUM_FEATURES), tf.float32, name="input"),) + onnx_m, _ = tf2onnx.convert.from_keras(model, input_signature=spec, opset=13) + onnx.save_model(onnx_m, str(onnx_path)) + + with open(str(onnx_path).replace(".onnx", "_scaler.pkl"), "wb") as f: + pickle.dump(scaler, f) + + meta = { + "symbol": symbol, + "timeframe": "H1", + "lookback": lookback, + "num_features": int(NUM_FEATURES), + "feature_columns": feat.columns.tolist(), + "num_classes": NUM_CLASSES, + "class_names": CLASS_NAMES, + "train_window": [str(TRAIN_START.date()), str(TRAIN_END.date())], + "oos_window": [str(TRAIN_END.date()), str(OOS_END.date())], + "scaler_fit_on": "train_only_rows_before_2020", + "clustering": f"KMeans n={n_clusters} on forward returns (1,2,4,8,16) ATR-norm; sample reweight train" if n_clusters > 1 else "disabled", + "scaler_feature_min": scaler.data_min_.tolist(), + "scaler_feature_max": scaler.data_max_.tolist(), + "scaler_scale": scaler.scale_.tolist() if hasattr(scaler, "scale_") else None, + "oos_val_accuracy": float(acc), + "oos_val_loss": float(loss), + "notes": "ONNX for repo EAs; convert to ENKS externally if required.", + } + with open(meta_path, "w", encoding="utf-8") as f: + json.dump(meta, f, indent=2) + + print(f"Saved: {onnx_path}") + print(f"Meta: {meta_path}") + print( + "\n--- Paste into EA InpFeatMinStr / InpFeatMaxStr (%d floats each) ---" + % NUM_FEATURES + ) + print(",".join(f"{x:.8g}" for x in scaler.data_min_)) + print(",".join(f"{x:.8g}" for x in scaler.data_max_)) + print(f"\nSet EA InpLookback = {lookback}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/frontline/cluster-0/README.md b/frontline/cluster-0/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/frontline/cluster-0/_united-V2/PerformanceEvaluator.mqh b/frontline/cluster-0/_united-V2/PerformanceEvaluator.mqh deleted file mode 100644 index 991f603..0000000 --- a/frontline/cluster-0/_united-V2/PerformanceEvaluator.mqh +++ /dev/null @@ -1,607 +0,0 @@ -//+------------------------------------------------------------------+ -//| PerformanceEvaluator.mqh | -//| Copyright 2025, MetaQuotes Ltd. | -//| https://www.mql5.com | -//+------------------------------------------------------------------+ -#property copyright "Copyright 2025, MetaQuotes Ltd." -#property link "https://www.mql5.com" -#property version "1.00" - -//+------------------------------------------------------------------+ -//| Performance Metrics Structure | -//+------------------------------------------------------------------+ -struct StrategyPerformance { - string strategyName; - string symbol; // Store symbol to determine if it's a stock - int magicNumber; - double initialLotSize; - double currentLotSize; - double quarterProfit; - double quarterTrades; - double quarterWins; - double quarterLosses; - double maxDrawdown; - double winRate; - datetime quarterStart; - datetime quarterEnd; - bool isActive; - bool inPenaltyMode; // True if strategy is in penalty (worst performer) - double lotSizeBeforePenalty; // Store lot size before penalty - datetime penaltyStartTime; // When penalty started -}; - -//+------------------------------------------------------------------+ -//| Global Performance Tracking | -//+------------------------------------------------------------------+ -StrategyPerformance strategyPerformances[]; -int totalStrategies = 0; -datetime lastMonthCheck = 0; -datetime currentMonthStart = 0; -datetime currentMonthEnd = 0; - -//+------------------------------------------------------------------+ -//| Performance Adjustment Parameters | -//+------------------------------------------------------------------+ -input group "=== Performance Evaluation Settings ===" -input bool PE_EnableAutoAdjustment = true; // Enable automatic lot size adjustment -input double PE_LotSizeIncreasePercent = 10.0; // % increase for top-ranked strategies -input double PE_LotSizeDecreasePercent = 10.0; // % decrease for bottom-ranked strategies -input double PE_MinLotSize = 0.01; // Minimum lot size for forex/crypto -input double PE_MinLotSizeStocks = 5.0; // Minimum lot size for stocks (5-10 range) -input double PE_MaxLotSize = 100.0; // Maximum lot size after adjustment -input int PE_TopPerformersCount = 3; // Number of top strategies to increase lot size -input int PE_BottomPerformersCount = 3; // Number of bottom strategies to decrease lot size -input bool PE_UseWinRateWeight = true; // Consider win rate in ranking (50% profit, 50% win rate) -input bool PE_EnableBlitzPlay = true; // Enable blitz play: worst performer gets minimum lot size penalty -input bool PE_EnableLogging = true; // Enable performance logging - -//+------------------------------------------------------------------+ -//| Initialize Performance Tracking | -//+------------------------------------------------------------------+ -void InitPerformanceTracking() -{ - // Calculate current month dates - MqlDateTime dt; - TimeToStruct(TimeCurrent(), dt); - - // Determine month start (first day of current month) - dt.day = 1; - dt.hour = 0; - dt.min = 0; - dt.sec = 0; - currentMonthStart = StructToTime(dt); - - // Calculate month end (first day of next month - 1 second) - dt.mon += 1; - if(dt.mon > 12) - { - dt.mon = 1; - dt.year++; - } - currentMonthEnd = StructToTime(dt) - 1; // End of last day of month - - lastMonthCheck = TimeCurrent(); - - if(PE_EnableLogging) - { - Print("Performance Evaluator: Initialized"); - Print("Current Month Start: ", TimeToString(currentMonthStart)); - Print("Current Month End: ", TimeToString(currentMonthEnd)); - } -} - -//+------------------------------------------------------------------+ -//| Check if Symbol is a Stock | -//+------------------------------------------------------------------+ -bool IsStockSymbol(string symbol) -{ - // Check if symbol contains common stock indicators - if(StringFind(symbol, ".US") >= 0) return true; - if(StringFind(symbol, "NASDAQ:") >= 0) return true; - if(StringFind(symbol, "NYSE:") >= 0) return true; - - // Note: Symbol category check removed to avoid enum conversion issues - // String-based checks (.US, NASDAQ:, NYSE:, common tickers) are sufficient - - // Common stock tickers (without .US suffix) - string commonStocks[] = {"AAPL", "MSFT", "NVDA", "TSLA", "GOOGL", "AMZN", "META", "NFLX"}; - for(int i = 0; i < ArraySize(commonStocks); i++) - { - if(StringFind(symbol, commonStocks[i]) == 0) return true; - } - - return false; -} - -//+------------------------------------------------------------------+ -//| Get Minimum Lot Size for Symbol | -//+------------------------------------------------------------------+ -double GetMinLotSizeForSymbol(string symbol) -{ - if(IsStockSymbol(symbol)) - return PE_MinLotSizeStocks; - else - return PE_MinLotSize; -} - -//+------------------------------------------------------------------+ -//| Register Strategy for Performance Tracking | -//+------------------------------------------------------------------+ -void RegisterStrategy(string strategyName, int magicNumber, double initialLotSize, string symbol = "") -{ - // Check if strategy already registered - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber) - { - if(PE_EnableLogging) - Print("Performance Evaluator: Strategy '", strategyName, "' already registered"); - return; - } - } - - // Add new strategy - int newSize = ArraySize(strategyPerformances) + 1; - ArrayResize(strategyPerformances, newSize); - - strategyPerformances[newSize - 1].strategyName = strategyName; - strategyPerformances[newSize - 1].symbol = symbol; - strategyPerformances[newSize - 1].magicNumber = magicNumber; - strategyPerformances[newSize - 1].initialLotSize = initialLotSize; - // Start with minimum lot size for safety (symbol-specific minimum) - double minLot = GetMinLotSizeForSymbol(symbol); - strategyPerformances[newSize - 1].currentLotSize = minLot; - strategyPerformances[newSize - 1].quarterProfit = 0.0; - strategyPerformances[newSize - 1].quarterTrades = 0; - strategyPerformances[newSize - 1].quarterWins = 0; - strategyPerformances[newSize - 1].quarterLosses = 0; - strategyPerformances[newSize - 1].maxDrawdown = 0.0; - strategyPerformances[newSize - 1].winRate = 0.0; - strategyPerformances[newSize - 1].quarterStart = currentMonthStart; - strategyPerformances[newSize - 1].quarterEnd = currentMonthEnd; - strategyPerformances[newSize - 1].isActive = true; - strategyPerformances[newSize - 1].inPenaltyMode = false; - strategyPerformances[newSize - 1].lotSizeBeforePenalty = initialLotSize; - strategyPerformances[newSize - 1].penaltyStartTime = 0; - - totalStrategies = newSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Registered strategy '", strategyName, - "' (Magic: ", magicNumber, ", Initial Lot: ", initialLotSize, ")"); -} - -//+------------------------------------------------------------------+ -//| Update Strategy Performance Metrics | -//+------------------------------------------------------------------+ -void UpdateStrategyPerformance(string strategyName, int magicNumber) -{ - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber && - strategyPerformances[i].isActive) - { - // Calculate performance for current quarter - double totalProfit = 0.0; - int totalTrades = 0; - int wins = 0; - int losses = 0; - double maxDD = 0.0; - double peakBalance = 0.0; - - // Scan all closed deals in current quarter - datetime quarterStart = strategyPerformances[i].quarterStart; - datetime quarterEnd = strategyPerformances[i].quarterEnd; - - // Select history for the quarter - if(HistorySelect(quarterStart, quarterEnd)) - { - int totalDeals = HistoryDealsTotal(); - for(int j = 0; j < totalDeals; j++) - { - ulong ticket = HistoryDealGetTicket(j); - if(ticket > 0) - { - long dealMagic = HistoryDealGetInteger(ticket, DEAL_MAGIC); - if(dealMagic == magicNumber) - { - double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); - double swap = HistoryDealGetDouble(ticket, DEAL_SWAP); - double commission = HistoryDealGetDouble(ticket, DEAL_COMMISSION); - double totalDealProfit = profit + swap + commission; - - totalProfit += totalDealProfit; - totalTrades++; - - if(totalDealProfit > 0) - wins++; - else if(totalDealProfit < 0) - losses++; - } - } - } - } - - // Calculate win rate - double winRate = 0.0; - if(totalTrades > 0) - winRate = (double)wins / (double)totalTrades * 100.0; - - // Update metrics - strategyPerformances[i].quarterProfit = totalProfit; - strategyPerformances[i].quarterTrades = totalTrades; - strategyPerformances[i].quarterWins = wins; - strategyPerformances[i].quarterLosses = losses; - strategyPerformances[i].winRate = winRate; - - break; - } - } -} - -//+------------------------------------------------------------------+ -//| Strategy Ranking Structure | -//+------------------------------------------------------------------+ -struct StrategyRank { - int index; - double score; -}; - -//+------------------------------------------------------------------+ -//| Calculate Strategy Score for Ranking | -//+------------------------------------------------------------------+ -double CalculateStrategyScore(int strategyIndex) -{ - double profit = strategyPerformances[strategyIndex].quarterProfit; - double winRate = strategyPerformances[strategyIndex].winRate; - double trades = strategyPerformances[strategyIndex].quarterTrades; - - // Normalize profit (scale to 0-100 range, assuming max profit of $1000) - double normalizedProfit = MathMin(profit / 10.0, 100.0); - if(profit < 0) normalizedProfit = profit / 5.0; // Penalize losses more - - // Calculate score - double score = 0.0; - if(PE_UseWinRateWeight) - { - // 50% profit, 50% win rate (if enough trades) - if(trades >= 5) - score = (normalizedProfit * 0.5) + (winRate * 0.5); - else - score = normalizedProfit; // Not enough trades, use profit only - } - else - { - // Profit only - score = normalizedProfit; - } - - return score; -} - -//+------------------------------------------------------------------+ -//| Check if Month Ended and Evaluate Performance | -//+------------------------------------------------------------------+ -void CheckMonthEnd() -{ - datetime now = TimeCurrent(); - - // Check if we've entered a new month - if(now >= currentMonthEnd) - { - if(PE_EnableLogging) - Print("Performance Evaluator: Month ended. Evaluating and ranking strategies..."); - - // Update performance metrics for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - UpdateStrategyPerformance(strategyPerformances[i].strategyName, - strategyPerformances[i].magicNumber); - } - } - - // Rank strategies - int activeCount = 0; - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - activeCount++; - } - - if(activeCount > 0) - { - // Create ranking array - StrategyRank ranks[]; - ArrayResize(ranks, activeCount); - int rankIndex = 0; - - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - ranks[rankIndex].index = i; - ranks[rankIndex].score = CalculateStrategyScore(i); - rankIndex++; - } - } - - // Sort by score (descending - highest score first) - for(int i = 0; i < activeCount - 1; i++) - { - for(int j = i + 1; j < activeCount; j++) - { - if(ranks[j].score > ranks[i].score) - { - StrategyRank temp = ranks[i]; - ranks[i] = ranks[j]; - ranks[j] = temp; - } - } - } - - // Adjust lot sizes based on ranking - if(PE_EnableAutoAdjustment) - { - // Increase top performers (skip if in penalty mode) - int topCount = MathMin(PE_TopPerformersCount, activeCount); - for(int i = 0; i < topCount; i++) - { - int strategyIdx = ranks[i].index; - - // Skip if strategy is in penalty mode - if(strategyPerformances[strategyIdx].inPenaltyMode) - continue; - - double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; - double newLotSize = oldLotSize * (1.0 + PE_LotSizeIncreasePercent / 100.0); - - if(newLotSize > PE_MaxLotSize) - newLotSize = PE_MaxLotSize; - - strategyPerformances[strategyIdx].currentLotSize = newLotSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Rank #", (i+1), " - Increasing '", - strategyPerformances[strategyIdx].strategyName, - "' lot size from ", oldLotSize, " to ", newLotSize, - " (Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); - } - - // Decrease bottom performers (skip worst one if blitz play is enabled) - int bottomCount = MathMin(PE_BottomPerformersCount, activeCount); - int startIdx = activeCount - bottomCount; - - // If blitz play is enabled, skip the worst performer (it will get minimum penalty) - if(PE_EnableBlitzPlay && activeCount > 0) - startIdx = activeCount - bottomCount + 1; - - for(int i = startIdx; i < activeCount; i++) - { - int strategyIdx = ranks[i].index; - - // Skip if strategy is in penalty mode - if(strategyPerformances[strategyIdx].inPenaltyMode) - continue; - - double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; - double newLotSize = oldLotSize * (1.0 - PE_LotSizeDecreasePercent / 100.0); - - // Use symbol-specific minimum lot size - double minLot = GetMinLotSizeForSymbol(strategyPerformances[strategyIdx].symbol); - if(newLotSize < minLot) - newLotSize = minLot; - - strategyPerformances[strategyIdx].currentLotSize = newLotSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Rank #", (i+1), " - Decreasing '", - strategyPerformances[strategyIdx].strategyName, - "' lot size from ", oldLotSize, " to ", newLotSize, - " (Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); - } - } - - // Blitz Play: Apply penalty to worst performer - if(PE_EnableBlitzPlay && activeCount > 0) - { - // Find worst performer (last in ranking) - int worstIdx = ranks[activeCount - 1].index; - - // Remove penalty from previous worst performer (if any) - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) - { - // Check if penalty period has passed (one month) - if(now - strategyPerformances[i].penaltyStartTime >= 2592000) // ~30 days - { - // Restore lot size to before penalty - strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; - strategyPerformances[i].inPenaltyMode = false; - strategyPerformances[i].penaltyStartTime = 0; - - if(PE_EnableLogging) - Print("Blitz Play: Penalty removed from '", strategyPerformances[i].strategyName, - "'. Lot size restored to ", strategyPerformances[i].currentLotSize); - } - } - } - - // Apply penalty to new worst performer - if(!strategyPerformances[worstIdx].inPenaltyMode) - { - strategyPerformances[worstIdx].lotSizeBeforePenalty = strategyPerformances[worstIdx].currentLotSize; - // Use symbol-specific minimum lot size - double minLot = GetMinLotSizeForSymbol(strategyPerformances[worstIdx].symbol); - strategyPerformances[worstIdx].currentLotSize = minLot; - strategyPerformances[worstIdx].inPenaltyMode = true; - strategyPerformances[worstIdx].penaltyStartTime = now; - - if(PE_EnableLogging) - Print("Blitz Play: WORST PERFORMER - '", strategyPerformances[worstIdx].strategyName, - "' penalized! Lot size reduced from ", strategyPerformances[worstIdx].lotSizeBeforePenalty, - " to minimum ", minLot, " (Score: ", DoubleToString(ranks[activeCount - 1].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[worstIdx].quarterProfit, 2), ")"); - } - } - - // Log performance report - if(PE_EnableLogging) - { - Print("=== Monthly Performance Ranking ==="); - for(int i = 0; i < activeCount; i++) - { - int strategyIdx = ranks[i].index; - Print("Rank #", (i+1), ": ", strategyPerformances[strategyIdx].strategyName, - " - Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%", - ", Trades: ", (int)strategyPerformances[strategyIdx].quarterTrades, - ", Lot Size: ", DoubleToString(strategyPerformances[strategyIdx].currentLotSize, 2)); - } - Print("==================================="); - } - } - - // Reset month metrics for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - strategyPerformances[i].quarterProfit = 0.0; - strategyPerformances[i].quarterTrades = 0; - strategyPerformances[i].quarterWins = 0; - strategyPerformances[i].quarterLosses = 0; - strategyPerformances[i].maxDrawdown = 0.0; - strategyPerformances[i].winRate = 0.0; - } - } - - // Update month dates - MqlDateTime dt; - TimeToStruct(now, dt); - - // First day of current month - dt.day = 1; - dt.hour = 0; - dt.min = 0; - dt.sec = 0; - currentMonthStart = StructToTime(dt); - - // First day of next month - 1 second - dt.mon += 1; - if(dt.mon > 12) - { - dt.mon = 1; - dt.year++; - } - currentMonthEnd = StructToTime(dt) - 1; - - // Update month dates for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - strategyPerformances[i].quarterStart = currentMonthStart; - strategyPerformances[i].quarterEnd = currentMonthEnd; - } - - lastMonthCheck = now; - } -} - -//+------------------------------------------------------------------+ -//| Get Current Lot Size for Strategy | -//+------------------------------------------------------------------+ -double GetStrategyLotSize(string strategyName, int magicNumber) -{ - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber && - strategyPerformances[i].isActive) - { - return strategyPerformances[i].currentLotSize; - } - } - return 0.0; -} - -//+------------------------------------------------------------------+ -//| Process Performance Evaluation (call from OnTick) | -//+------------------------------------------------------------------+ -void ProcessPerformanceEvaluation() -{ - // Check if month ended - CheckMonthEnd(); - - // Check for penalty expiration (blitz play) - if(PE_EnableBlitzPlay) - { - datetime now = TimeCurrent(); - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) - { - // Check if penalty period has passed (one month = ~30 days) - if(now - strategyPerformances[i].penaltyStartTime >= 2592000) - { - // Restore lot size to before penalty - strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; - strategyPerformances[i].inPenaltyMode = false; - strategyPerformances[i].penaltyStartTime = 0; - - if(PE_EnableLogging) - Print("Blitz Play: Penalty expired for '", strategyPerformances[i].strategyName, - "'. Lot size restored to ", strategyPerformances[i].currentLotSize); - } - } - } - } - - // Update performance metrics periodically (every hour) - static datetime lastUpdate = 0; - if(TimeCurrent() - lastUpdate >= 3600) - { - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - UpdateStrategyPerformance(strategyPerformances[i].strategyName, - strategyPerformances[i].magicNumber); - } - } - lastUpdate = TimeCurrent(); - } -} - -//+------------------------------------------------------------------+ -//| Get Performance Summary | -//+------------------------------------------------------------------+ -string GetPerformanceSummary() -{ - string summary = "\n=== Performance Summary ===\n"; - summary += "Current Month: " + TimeToString(currentMonthStart) + " to " + TimeToString(currentMonthEnd) + "\n\n"; - - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - summary += strategyPerformances[i].strategyName + ":\n"; - summary += " Profit: $" + DoubleToString(strategyPerformances[i].quarterProfit, 2) + "\n"; - summary += " Trades: " + IntegerToString((int)strategyPerformances[i].quarterTrades) + "\n"; - summary += " Win Rate: " + DoubleToString(strategyPerformances[i].winRate, 2) + "%\n"; - summary += " Lot Size: " + DoubleToString(strategyPerformances[i].currentLotSize, 2) + "\n\n"; - } - } - - return summary; -} - -//+------------------------------------------------------------------+ diff --git a/frontline/cluster-fuck/DarvasBoxXAUUSD/DarvasBoxXAUUSD_Genetic_Optimization.set b/frontline/cluster-fuck/DarvasBoxXAUUSD/DarvasBoxXAUUSD_Genetic_Optimization.set new file mode 100644 index 0000000..ca12828 --- /dev/null +++ b/frontline/cluster-fuck/DarvasBoxXAUUSD/DarvasBoxXAUUSD_Genetic_Optimization.set @@ -0,0 +1,27 @@ +; saved on 2026.04.22 +; genetic optimization set for DarvasBoxXAUUSD/main.mq5 +; load in MT5 Strategy Tester -> Inputs -> Load +; +; === Core Darvas Box Parameters === +BoxPeriod=165||80||5||280||Y +BoxDeviation=25140||8000||500||50000||Y +VolumeThreshold=938||200||25||2500||Y +StopLoss=1665||600||50||4000||Y +TakeProfit=3685||1200||75||8000||Y +EnableLogging=false||false||0||true||N +BoxColor=255||0||1||16777215||N +BoxWidth=1||1||1||3||N +; +; === Trend Confirmation Parameters === +TrendTimeframe=16386||16385||1||16388||Y +MA_Period=125||20||5||260||Y +MA_Method=1||0||1||3||Y +MA_Price=6||0||1||6||Y +TrendThreshold=4.94||1.0||0.2||20.0||Y +; +; === Volume Analysis Parameters === +VolumeMA_Period=110||20||5||220||Y +VolumeThresholdMultiplier=1.5||1.0||0.1||3.5||Y +; +; === Execution / ID === +MagicNumber=135790||135790||1||1357900||N diff --git a/frontline/cluster-fuck/DarvasBoxXAUUSD/main.mq5 b/frontline/cluster-fuck/DarvasBoxXAUUSD/main.mq5 new file mode 100644 index 0000000..6da93f9 --- /dev/null +++ b/frontline/cluster-fuck/DarvasBoxXAUUSD/main.mq5 @@ -0,0 +1,443 @@ +//+------------------------------------------------------------------+ +//| DarvasBox.mq5 | +//| Copyright 2024, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2024, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" +#property strict + +#include +#include +#include +#include "../_united/MagicNumberHelpers.mqh" + +// Input parameters +input int BoxPeriod = 165; // Period for Darvas Box calculation +input double BoxDeviation = 25140; // Box deviation in points +input int VolumeThreshold = 938; // Minimum volume for confirmation +input double StopLoss = 1665; // Stop loss in points (increased for BTCUSD) +input double TakeProfit = 3685; // Take profit in points (increased for BTCUSD) +input bool EnableLogging = false; // Enable detailed logging +input color BoxColor = clrBlue; // Color for Darvas Box +input int BoxWidth = 1; // Width of box lines + +// Trend confirmation parameters +input ENUM_TIMEFRAMES TrendTimeframe = PERIOD_H2; // Timeframe for trend analysis +input int MA_Period = 125; // Moving Average period for trend +input ENUM_MA_METHOD MA_Method = MODE_EMA; // Moving Average method +input ENUM_APPLIED_PRICE MA_Price = PRICE_WEIGHTED; // Price type for MA +input double TrendThreshold = 4.94; // Trend strength threshold + +// Volume analysis parameters +input int VolumeMA_Period = 110; // Period for Volume MA +input double VolumeThresholdMultiplier = 1.5; // Volume spike threshold + +// Magic Number +input int MagicNumber = 135790; // Magic Number for Trades + +// Global variables +double boxHigh = 0; +double boxLow = 0; +bool boxFormed = false; +datetime lastBoxTime = 0; +string boxName = "DarvasBox_"; +double minStopLevel = 0; +double point = 0; +CTrade trade; + +// Indicator handles +int maHandle; +int volumeHandle; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize indicators and variables + boxHigh = 0; + boxLow = 0; + boxFormed = false; + lastBoxTime = 0; + + // Get symbol properties + point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + minStopLevel = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) * point; + + // Initialize indicators + maHandle = iMA(_Symbol, TrendTimeframe, MA_Period, 0, MA_Method, MA_Price); + volumeHandle = iVolumes(_Symbol, PERIOD_CURRENT, VOLUME_TICK); + + if(maHandle == INVALID_HANDLE || volumeHandle == INVALID_HANDLE) + { + Print("Error creating indicators"); + return(INIT_FAILED); + } + + // Configure trade object + trade.SetDeviationInPoints(10); + trade.SetTypeFilling(ORDER_FILLING_IOC); + trade.SetAsyncMode(false); + trade.SetExpertMagicNumber(MagicNumber); + + if(EnableLogging) + { + Print("Darvas Box Expert Advisor initialized"); + Print("Symbol: ", _Symbol); + Print("Point: ", point); + Print("Minimum Stop Level: ", minStopLevel); + } + + // Delete any existing box objects + ObjectsDeleteAll(0, boxName); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Draw Darvas Box on chart | +//+------------------------------------------------------------------+ +void DrawDarvasBox() +{ + if(!boxFormed) return; + + datetime time1 = iTime(_Symbol, PERIOD_H1, BoxPeriod); + datetime time2 = iTime(_Symbol, PERIOD_H1, 0); + + // Delete old box + ObjectsDeleteAll(0, boxName); + + // Draw box + ObjectCreate(0, boxName + "Top", OBJ_TREND, 0, time1, boxHigh, time2, boxHigh); + ObjectCreate(0, boxName + "Bottom", OBJ_TREND, 0, time1, boxLow, time2, boxLow); + + // Set box properties + ObjectSetInteger(0, boxName + "Top", OBJPROP_COLOR, BoxColor); + ObjectSetInteger(0, boxName + "Bottom", OBJPROP_COLOR, BoxColor); + ObjectSetInteger(0, boxName + "Top", OBJPROP_WIDTH, BoxWidth); + ObjectSetInteger(0, boxName + "Bottom", OBJPROP_WIDTH, BoxWidth); + ObjectSetInteger(0, boxName + "Top", OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, boxName + "Bottom", OBJPROP_RAY_RIGHT, true); +} + +//+------------------------------------------------------------------+ +//| Calculate Darvas Box levels | +//+------------------------------------------------------------------+ +void CalculateDarvasBox() +{ + double high = 0; + double low = DBL_MAX; + + // Find highest high and lowest low in the period + for(int i = 0; i < BoxPeriod; i++) + { + high = MathMax(high, iHigh(_Symbol, PERIOD_H1, i)); + low = MathMin(low, iLow(_Symbol, PERIOD_H1, i)); + } + + double range = high - low; + double allowedRange = BoxDeviation * _Point; + + if(EnableLogging) + { + Print("Box Calculation - High: ", high, " Low: ", low, " Range: ", range, " Allowed Range: ", allowedRange); + } + + // Check if box is formed + if(range <= allowedRange) + { + boxHigh = high; + boxLow = low; + boxFormed = true; + lastBoxTime = iTime(_Symbol, PERIOD_CURRENT, 0); + + // Draw the box + DrawDarvasBox(); + + if(EnableLogging) + Print("Box Formed - High: ", boxHigh, " Low: ", boxLow, " Time: ", lastBoxTime); + } + else + { + boxFormed = false; + // Delete box if it exists + ObjectsDeleteAll(0, boxName); + } +} + +//+------------------------------------------------------------------+ +//| Validate and adjust stop levels | +//+------------------------------------------------------------------+ +bool ValidateStopLevels(double price, double &sl, double &tp, ENUM_ORDER_TYPE orderType) +{ + double minSlDistance = MathMax(minStopLevel, StopLoss * point); + double minTpDistance = MathMax(minStopLevel, TakeProfit * point); + + if(EnableLogging) + { + Print("Minimum SL Distance: ", minSlDistance); + Print("Minimum TP Distance: ", minTpDistance); + } + + // Adjust stop loss + if(orderType == ORDER_TYPE_BUY) + { + sl = price - minSlDistance; + tp = price + minTpDistance; + + if(EnableLogging) + { + Print("Buy Order Levels:"); + Print("Entry: ", price); + Print("Stop Loss: ", sl); + Print("Take Profit: ", tp); + } + } + else // ORDER_TYPE_SELL + { + sl = price + minSlDistance; + tp = price - minTpDistance; + + if(EnableLogging) + { + Print("Sell Order Levels:"); + Print("Entry: ", price); + Print("Stop Loss: ", sl); + Print("Take Profit: ", tp); + } + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check trend direction and strength | +//+------------------------------------------------------------------+ +bool IsTrendFavorable(ENUM_ORDER_TYPE orderType) +{ + double ma[]; + ArraySetAsSeries(ma, true); + + if(CopyBuffer(maHandle, 0, 0, 2, ma) <= 0) + return false; + + double currentPrice = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double trendStrength = MathAbs(currentPrice - ma[0]) / point; + + if(EnableLogging) + Print("Trend Strength: ", trendStrength); + + if(orderType == ORDER_TYPE_BUY) + return (currentPrice > ma[0] && trendStrength > TrendThreshold); + else + return (currentPrice < ma[0] && trendStrength > TrendThreshold); +} + +//+------------------------------------------------------------------+ +//| Check volume conditions | +//+------------------------------------------------------------------+ +bool CheckVolumeConditions() +{ + double volumes[]; + ArraySetAsSeries(volumes, true); + + if(CopyBuffer(volumeHandle, 0, 0, VolumeMA_Period + 1, volumes) <= 0) + return false; + + double volumeMA = 0; + for(int i = 1; i <= VolumeMA_Period; i++) + volumeMA += volumes[i]; + volumeMA /= VolumeMA_Period; + + double currentVolume = volumes[0]; + double volumeRatio = currentVolume / volumeMA; + + if(EnableLogging) + Print("Volume Ratio: ", volumeRatio); + + return (volumeRatio > VolumeThresholdMultiplier); +} + +//+------------------------------------------------------------------+ +//| Place trade order | +//+------------------------------------------------------------------+ +bool PlaceOrder(ENUM_ORDER_TYPE orderType, double price, double sl, double tp) +{ + // Validate and adjust stop levels + if(!ValidateStopLevels(price, sl, tp, orderType)) + { + if(EnableLogging) + Print("Invalid stop levels after adjustment"); + return false; + } + + // Check trend and volume conditions + if(!IsTrendFavorable(orderType)) + { + if(EnableLogging) + Print("Trend not favorable for trade"); + return false; + } + + if(!CheckVolumeConditions()) + { + if(EnableLogging) + Print("Volume conditions not met"); + return false; + } + + if(EnableLogging) + { + Print("Order Details:"); + Print("Type: ", EnumToString(orderType)); + Print("Price: ", price); + Print("Stop Loss: ", sl); + Print("Take Profit: ", tp); + } + + bool result = false; + + if(orderType == ORDER_TYPE_BUY) + { + result = trade.Buy(0.01, _Symbol, price, sl, tp, "Darvas Box Breakout"); + } + else + { + result = trade.Sell(0.01, _Symbol, price, sl, tp, "Darvas Box Breakdown"); + } + + if(EnableLogging) + { + if(result) + Print((orderType == ORDER_TYPE_BUY ? "Buy" : "Sell"), " Order Placed Successfully"); + else + Print((orderType == ORDER_TYPE_BUY ? "Buy" : "Sell"), " Order Failed - Error: ", trade.ResultRetcode(), " Description: ", trade.ResultRetcodeDescription()); + } + + return result; +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Calculate new box levels + CalculateDarvasBox(); + + // Check for trading signals + if(boxFormed) + { + double currentPrice = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double currentVolume = iVolume(_Symbol, PERIOD_CURRENT, 0); + + if(EnableLogging) + { + Print("Current Price: ", currentPrice, " Box High: ", boxHigh, " Box Low: ", boxLow); + Print("Current Volume: ", currentVolume, " Volume Threshold: ", VolumeThreshold); + } + + // Check for breakout above box + if(currentPrice > boxHigh && currentVolume > VolumeThreshold) + { + if(EnableLogging) + Print("Breakout Signal Detected - Price above box high"); + + // Buy signal + if(!PositionExistsByMagic(_Symbol, MagicNumber)) // No existing positions with our magic number + { + double sl = currentPrice - StopLoss * _Point; + double tp = currentPrice + TakeProfit * _Point; + + if(EnableLogging) + Print("Preparing Buy Order - Price: ", currentPrice, " SL: ", sl, " TP: ", tp); + + PlaceOrder(ORDER_TYPE_BUY, currentPrice, sl, tp); + } + else if(EnableLogging) + Print("Skipping Buy Signal - Position already exists"); + } + + // Check for breakdown below box + if(currentPrice < boxLow && currentVolume > VolumeThreshold) + { + if(EnableLogging) + Print("Breakdown Signal Detected - Price below box low"); + + // Sell signal + if(!PositionExistsByMagic(_Symbol, MagicNumber)) // No existing positions with our magic number + { + double sl = currentPrice + StopLoss * _Point; + double tp = currentPrice - TakeProfit * _Point; + + if(EnableLogging) + Print("Preparing Sell Order - Price: ", currentPrice, " SL: ", sl, " TP: ", tp); + + PlaceOrder(ORDER_TYPE_SELL, currentPrice, sl, tp); + } + else if(EnableLogging) + Print("Skipping Sell Signal - Position already exists"); + } + } + else if(EnableLogging) + Print("No Box Formed - Waiting for consolidation"); +} + +//+------------------------------------------------------------------+ +//| Get last error description | +//+------------------------------------------------------------------+ +string GetLastErrorDescription() +{ + string errorDescription; + switch(GetLastError()) + { + case 0: errorDescription = "No error"; break; + case 1: errorDescription = "No error, but result unknown"; break; + case 2: errorDescription = "Common error"; break; + case 3: errorDescription = "Invalid trade parameters"; break; + case 4: errorDescription = "Trade server is busy"; break; + case 5: errorDescription = "Old version of the client terminal"; break; + case 6: errorDescription = "No connection with trade server"; break; + case 7: errorDescription = "Not enough rights"; break; + case 8: errorDescription = "Too frequent requests"; break; + case 9: errorDescription = "Malfunctional trade operation"; break; + case 64: errorDescription = "Account disabled"; break; + case 65: errorDescription = "Invalid account"; break; + case 128: errorDescription = "Trade timeout"; break; + case 129: errorDescription = "Invalid price"; break; + case 130: errorDescription = "Invalid stops"; break; + case 131: errorDescription = "Invalid trade volume"; break; + case 132: errorDescription = "Market is closed"; break; + case 133: errorDescription = "Trade is disabled"; break; + case 134: errorDescription = "Not enough money"; break; + case 135: errorDescription = "Price changed"; break; + case 136: errorDescription = "Off quotes"; break; + case 137: errorDescription = "Broker is busy"; break; + case 138: errorDescription = "Requote"; break; + case 139: errorDescription = "Order is locked"; break; + case 140: errorDescription = "Long positions only allowed"; break; + case 141: errorDescription = "Too many requests"; break; + case 145: errorDescription = "Modification denied because order is too close to market"; break; + case 146: errorDescription = "Trade context is busy"; break; + case 147: errorDescription = "Expirations are denied by broker"; break; + case 148: errorDescription = "Amount of open and pending orders has reached the limit"; break; + case 149: errorDescription = "Hedging is prohibited"; break; + case 150: errorDescription = "Prohibited by FIFO rules"; break; + default: errorDescription = "Unknown error"; break; + } + return errorDescription; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + // Delete all box objects + ObjectsDeleteAll(0, boxName); + + if(EnableLogging) + Print("Expert Advisor deinitialized - Reason: ", reason); +} diff --git a/frontline/cluster-fuck/EMASlopeDistanceCocktailXAUUSD-trailing/main.mq5 b/frontline/cluster-fuck/EMASlopeDistanceCocktailXAUUSD-trailing/main.mq5 new file mode 100644 index 0000000..6d849c0 --- /dev/null +++ b/frontline/cluster-fuck/EMASlopeDistanceCocktailXAUUSD-trailing/main.mq5 @@ -0,0 +1,628 @@ +//+------------------------------------------------------------------+ +//| EMACrossOver.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" +#include +#include "../_united/MagicNumberHelpers.mqh" +//--- Eingabeparameter (Input Parameters) - Optimized Profitable Parameters +input int EMA_Periode = 50; // EMA Periode +input double PreisSchwelle = 700.0; // Preisbewegung Schwelle in Pips +input double SteigungSchwelle = 25.0; // EMA Steigung Schwelle in Pips +input int ÜberwachungTimeout = 340; // Überwachungszeit in Sekunden +input double TrailingStop = 370.0; // Gleitender Stop in Pips +input bool UseTrailingStop = true; // Gleitenden Stop anwenden +input double TrailingActivationPips = 0.0; // Mindestgewinn in Pips bis Trail startet (0 = Konto-Profit>0) +input bool UseStaleStopLossExit = false; // schließen wenn SL zu lange nicht angepasst wurde +input int StaleStopLossSeconds = 33800; // Sekunden ohne SL-Änderung -> Close (0 = aus) +input double LotGröße = 0.07; // Handelsvolumen +input int MagicNumber = 135790; // Magic Number für Trades +input bool UseSpreadAdjustment = true; // Spread-Anpassung verwenden +input ENUM_TIMEFRAMES Timeframe = PERIOD_H1; // Zeitraum für Analyse +input bool UseBarData = true; // Bar-Daten statt Tick-Daten verwenden +input int MaxTradesPerCrossover = 3; // Maximale Trades pro Crossover-Ereignis +input int ProfitCheckBars = 11; // Bars bis zur Profit-Prüfung +input bool CloseUnprofitableTrades = true; // Unprofitable Trades nach X Bars schließen +input bool UseWeeklyADXFilter = true; // W1 ADX Trendfilter aktivieren +input int WeeklyADXPeriod = 15; // ADX-Periode auf W1 +input double WeeklyADXMin = 40.0; // Minimaler ADX fuer Trendfreigabe +input int WeeklyADXBarShift = 2; // 1=letzte geschlossene W1-Kerze +input bool WeeklyADXUseDirection = true; // +DI/-DI Richtung mitpruefen + +//--- Globale Variablen (Global Variables) +int ema_handle; // EMA Indicator Handle +double ema_array[]; // Array für EMA +datetime letzte_überwachung_zeit; // Zeit der letzten Überwachung +bool überwachung_aktiv = false; // Überwachungsstatus +bool preis_trigger_aktiv = false; // Preis-Trigger Status +bool steigung_trigger_aktiv = false; // Steigungs-Trigger Status +int ticket = 0; // Trade Ticket +CTrade trade; // CTrade Objekt +int trades_in_current_crossover = 0; // Anzahl Trades im aktuellen Crossover +bool crossover_detected = false; // Crossover erkannt +datetime trade_open_time = 0; // Zeitpunkt des Trade-Öffnens +datetime g_last_sl_adjust_success_time = 0; // letzte erfolgreiche SL-Verschiebung (Stale-Exit) + +//+------------------------------------------------------------------+ +//| Weekly ADX trend filter | +//+------------------------------------------------------------------+ +bool IsWeeklyADXTrendFavorable(ENUM_ORDER_TYPE order_type) +{ + if(!UseWeeklyADXFilter) + return true; + + int adxShift = WeeklyADXBarShift; + if(adxShift < 0) + adxShift = 0; + + int adx_handle = iADX(_Symbol, PERIOD_W1, WeeklyADXPeriod); + if(adx_handle == INVALID_HANDLE) + { + Print("TRACE: Weekly ADX Handle ungültig - Filter blockiert Entry"); + return false; + } + + double adx_buf[], plus_di_buf[], minus_di_buf[]; + ArraySetAsSeries(adx_buf, true); + ArraySetAsSeries(plus_di_buf, true); + ArraySetAsSeries(minus_di_buf, true); + + bool ok_adx = (CopyBuffer(adx_handle, 0, adxShift, 1, adx_buf) > 0); + bool ok_plus = (CopyBuffer(adx_handle, 1, adxShift, 1, plus_di_buf) > 0); + bool ok_minus = (CopyBuffer(adx_handle, 2, adxShift, 1, minus_di_buf) > 0); + IndicatorRelease(adx_handle); + + if(!ok_adx || !ok_plus || !ok_minus) + { + Print("TRACE: Weekly ADX Daten nicht verfügbar - Filter blockiert Entry"); + return false; + } + + double adx_value = adx_buf[0]; + double plus_di = plus_di_buf[0]; + double minus_di = minus_di_buf[0]; + + bool strength_ok = (adx_value >= WeeklyADXMin); + bool direction_ok = true; + if(WeeklyADXUseDirection) + { + if(order_type == ORDER_TYPE_BUY) + direction_ok = (plus_di > minus_di); + else + direction_ok = (minus_di > plus_di); + } + + Print("TRACE: Weekly ADX Filter | ADX=", DoubleToString(adx_value, 2), + " +DI=", DoubleToString(plus_di, 2), + " -DI=", DoubleToString(minus_di, 2), + " strength_ok=", strength_ok, + " direction_ok=", direction_ok); + + return (strength_ok && direction_ok); +} + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { + //--- CTrade konfigurieren (Configure CTrade) + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(10); + trade.SetTypeFilling(ORDER_FILLING_IOC); + + //--- EMA Indicator Handle erstellen (Create EMA indicator handle) + ema_handle = iMA(_Symbol, Timeframe, EMA_Periode, 0, MODE_EMA, PRICE_CLOSE); + + if(ema_handle == INVALID_HANDLE) + { + Print("Fehler beim Erstellen des EMA Indicators"); + return(INIT_FAILED); + } + + //--- Arrays initialisieren (Initialize arrays) + ArraySetAsSeries(ema_array, true); + + //--- Arrays mit aktuellen Werten füllen (Fill arrays with current values) + BerechneEMA(); + + Print("EMA EA initialisiert - Periode: ", EMA_Periode, " Timeframe: ", EnumToString(Timeframe), " Handle: ", ema_handle); + return(INIT_SUCCEEDED); + } + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) + { + //--- Indicator Handle freigeben (Release indicator handle) + if(ema_handle != INVALID_HANDLE) + { + IndicatorRelease(ema_handle); + } + + Print("EA beendet - Grund: ", reason); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() + { + static datetime last_bar_time = 0; + const datetime current_bar_time = iTime(_Symbol, Timeframe, 0); + const bool new_bar = (current_bar_time != last_bar_time); + const bool has_position = PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + // Offene Positionen: Management jeden Tick (Trailing / Stale-SL). Sonst bei Bar-Modus nur neuer Bar. + if(UseBarData) + { + if(!new_bar && !has_position) + return; + if(new_bar) + last_bar_time = current_bar_time; + } + + //--- EMA Werte berechnen (Calculate EMA values) + BerechneEMA(); + + const bool run_signals = (!UseBarData || new_bar); + + //--- Debug / Überwachung / Entry nur bei neuem Bar (Bar-Modus) oder jeden Tick (Tick-Modus) + if(run_signals && ArraySize(ema_array) > 0) + { + double aktueller_close = iClose(_Symbol, Timeframe, 0); + double ema_aktuell = ema_array[0]; + double ema_vorher = ema_array[1]; + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / _Point; + double steigung = (ema_aktuell - ema_vorher) / _Point; + + if(UseBarData) + { + Print("=== DEBUG INFO (Neuer Bar) ==="); + Print("Bar Zeit: ", TimeToString(iTime(_Symbol, Timeframe, 0))); + } + else + { + Print("=== DEBUG INFO (Tick) ==="); + } + + Print("Aktueller Close: ", aktueller_close); + Print("EMA: ", ema_aktuell); + Print("Preis-Abstand: ", preis_abstand, " Pips"); + Print("EMA Steigung: ", steigung, " Pips"); + Print("Differenz Close-EMA: ", aktueller_close - ema_aktuell); + Print("Preis-Trigger: ", preis_trigger_aktiv, " Steigungs-Trigger: ", steigung_trigger_aktiv); + Print("Überwachung aktiv: ", überwachung_aktiv); + Print("Position offen: ", PositionExistsByMagic(_Symbol, (ulong)MagicNumber)); + Print("Trades im aktuellen Crossover: ", trades_in_current_crossover, "/", MaxTradesPerCrossover); + Print("=================="); + } + + if(run_signals) + { + //--- Überwachung prüfen (Check monitoring) + if(überwachung_aktiv) + { + if(UseBarData) + { + int bars_since_monitoring = iBarShift(_Symbol, Timeframe, letzte_überwachung_zeit); + int timeout_bars = (int)(ÜberwachungTimeout / PeriodSeconds(Timeframe)); + + if(bars_since_monitoring > timeout_bars) + { + überwachung_aktiv = false; + preis_trigger_aktiv = false; + steigung_trigger_aktiv = false; + Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); + } + } + else + { + if(TimeCurrent() - letzte_überwachung_zeit > ÜberwachungTimeout) + { + überwachung_aktiv = false; + preis_trigger_aktiv = false; + steigung_trigger_aktiv = false; + Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + } + } + } + + PrüfeTrigger(); + } + + VerwalteTrades(); +} + +//+------------------------------------------------------------------+ +//| EMA Berechnung (EMA Calculation) | +//+------------------------------------------------------------------+ +void BerechneEMA() +{ + //--- EMA Werte vom Indicator kopieren (Copy EMA values from indicator) + int copied = CopyBuffer(ema_handle, 0, 0, 3, ema_array); + + if(copied <= 0) + { + Print("TRACE: Fehler beim Kopieren der EMA Werte - Copied: ", copied); + return; + } + + Print("TRACE: EMA Werte kopiert: ", copied, " Bars"); + Print("TRACE: EMA [0]: ", ema_array[0], " [1]: ", ema_array[1], " [2]: ", ema_array[2]); +} + +//+------------------------------------------------------------------+ +//| Trigger-Bedingungen prüfen (Check trigger conditions) | +//+------------------------------------------------------------------+ +void PrüfeTrigger() +{ + if(ArraySize(ema_array) < 2) + { + Print("TRACE: Array zu klein - Größe: ", ArraySize(ema_array)); + return; + } + + //--- Aktuelle Werte (Current values) + double aktueller_preis = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double aktueller_ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double aktueller_close = iClose(_Symbol, Timeframe, 0); + double pips_multiplier = (_Digits == 3 || _Digits == 5) ? 10.0 : 1.0; + + //--- EMA Werte in Variablen (EMA values in variables) + double ema_aktuell = ema_array[0]; + double ema_vorher = ema_array[1]; + + //--- EMA Crossover Erkennung (EMA Crossover Detection) + // Prüfe ob Preis die EMA kreuzt (Check if price crosses EMA) + static double last_close = 0; + static double last_ema = 0; + + if(last_close != 0 && last_ema != 0) + { + bool crossover_bullish = (last_close <= last_ema) && (aktueller_close > ema_aktuell); + bool crossover_bearish = (last_close >= last_ema) && (aktueller_close < ema_aktuell); + + //--- Neues Crossover-Ereignis erkannt (New crossover event detected) + if(crossover_bullish || crossover_bearish) + { + trades_in_current_crossover = 0; // Reset trade counter + Print("TRACE: EMA Crossover erkannt - ", (crossover_bullish ? "BULLISH" : "BEARISH"), " - Trade-Counter zurückgesetzt"); + Print("TRACE: Vorher: Close=", last_close, " EMA=", last_ema, " Jetzt: Close=", aktueller_close, " EMA=", ema_aktuell); + } + } + + //--- Aktuelle Werte für nächsten Vergleich speichern (Save current values for next comparison) + last_close = aktueller_close; + last_ema = ema_aktuell; + + //--- Preisbewegung zur EMA prüfen (Check price action to EMA) + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / _Point / pips_multiplier; + + Print("TRACE: Preis-Abstand: ", preis_abstand, " Pips (Schwelle: ", PreisSchwelle, ")"); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Trades im aktuellen Crossover: ", trades_in_current_crossover, "/", MaxTradesPerCrossover); + + if(preis_abstand > PreisSchwelle && !preis_trigger_aktiv) + { + preis_trigger_aktiv = true; + Print("TRACE: Preis-Trigger aktiviert: ", preis_abstand, " Pips"); + } + + //--- EMA Steigung prüfen (Check EMA slope) + double steigung = (ema_aktuell - ema_vorher) / _Point / pips_multiplier; + + Print("TRACE: EMA Steigung: ", steigung, " Pips (Schwelle: ", SteigungSchwelle, ")"); + + if(MathAbs(steigung) > SteigungSchwelle && !steigung_trigger_aktiv) + { + steigung_trigger_aktiv = true; + Print("TRACE: Steigungs-Trigger aktiviert: ", steigung, " Pips"); + } + + //--- Überwachung starten wenn beide Trigger aktiv sind (Start monitoring when both triggers are active) + if(preis_trigger_aktiv && steigung_trigger_aktiv && !überwachung_aktiv) + { + überwachung_aktiv = true; + + if(UseBarData) + { + letzte_überwachung_zeit = iTime(_Symbol, Timeframe, 0); // Aktuelle Bar-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Bar: ", TimeToString(letzte_überwachung_zeit), ")"); + } + else + { + letzte_überwachung_zeit = TimeCurrent(); // Aktuelle Tick-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Tick)"); + } + } + + //--- Trade platzieren wenn Überwachung aktiv und Preis über/unter EMA (Place trade when monitoring active and price above/below EMA) + if(überwachung_aktiv) + { + bool bullish_signal = aktueller_close > ema_aktuell; + bool bearish_signal = aktueller_close < ema_aktuell; + + Print("TRACE: Signal Check - Bullish: ", bullish_signal, " Bearish: ", bearish_signal); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Differenz: ", aktueller_close - ema_aktuell); + + //--- Trade-Limit prüfen (Check trade limit) + if(trades_in_current_crossover >= MaxTradesPerCrossover) + { + Print("TRACE: Trade-Limit erreicht (", MaxTradesPerCrossover, ") - Kein neuer Trade"); + return; + } + + if(bullish_signal && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + if(!IsWeeklyADXTrendFavorable(ORDER_TYPE_BUY)) + { + Print("TRACE: Weekly ADX blockiert BUY-Entry"); + return; + } + Print("TRACE: Versuche KAUF-Trade zu platzieren (Trade #", trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_BUY)) + { + trades_in_current_crossover++; + } + } + else if(bearish_signal && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + if(!IsWeeklyADXTrendFavorable(ORDER_TYPE_SELL)) + { + Print("TRACE: Weekly ADX blockiert SELL-Entry"); + return; + } + Print("TRACE: Versuche VERKAUF-Trade zu platzieren (Trade #", trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_SELL)) + { + trades_in_current_crossover++; + } + } + else if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + Print("TRACE: Position bereits offen - kein neuer Trade"); + } + } +} + +//+------------------------------------------------------------------+ +//| Trade platzieren (Place trade) | +//+------------------------------------------------------------------+ +bool PlatziereTrade(ENUM_ORDER_TYPE order_type) +{ + Print("TRACE: Versuche Trade zu platzieren - Typ: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF"); + Print("TRACE: Lot: ", LotGröße); + + bool success = false; + + if(order_type == ORDER_TYPE_BUY) + { + success = trade.Buy(LotGröße, _Symbol, 0, 0, 0, "EMA Crossover Trade"); + } + else + { + success = trade.Sell(LotGröße, _Symbol, 0, 0, 0, "EMA Crossover Trade"); + } + + if(success) + { + ticket = (int)trade.ResultOrder(); + Print("TRACE: Trade erfolgreich platziert: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF", " Ticket: ", ticket); + + //--- Trade-Öffnungszeit speichern (Save trade opening time) + trade_open_time = iTime(_Symbol, Timeframe, 0); + g_last_sl_adjust_success_time = 0; + Print("TRACE: Trade-Öffnungszeit: ", TimeToString(trade_open_time)); + + //--- Überwachung zurücksetzen (Reset monitoring) + überwachung_aktiv = false; + preis_trigger_aktiv = false; + steigung_trigger_aktiv = false; + + return true; + } + else + { + Print("TRACE: Fehler beim Platzieren des Trades - Retcode: ", trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", trade.ResultRetcodeDescription()); + + return false; + } +} + +//+------------------------------------------------------------------+ +//| Mindestgewinn fuer Trailing erreicht? | +//+------------------------------------------------------------------+ +bool TrailingActivationReached(const double position_profit, const ENUM_POSITION_TYPE position_type, + const double pips_multiplier) +{ + if(TrailingActivationPips <= 0.0) + return (position_profit > 0.0); + + const double open_px = PositionGetDouble(POSITION_PRICE_OPEN); + if(position_type == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + return ((bid - open_px) / _Point / pips_multiplier >= TrailingActivationPips); + } + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + return ((open_px - ask) / _Point / pips_multiplier >= TrailingActivationPips); +} + +//+------------------------------------------------------------------+ +//| Trades verwalten (Manage trades) | +//+------------------------------------------------------------------+ +void VerwalteTrades() +{ + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + if(UseStaleStopLossExit && StaleStopLossSeconds > 0) + { + const datetime stale_ref = (g_last_sl_adjust_success_time > 0) + ? g_last_sl_adjust_success_time + : (datetime)PositionGetInteger(POSITION_TIME); + if(TimeCurrent() - stale_ref >= StaleStopLossSeconds) + { + SchließePosition("Stale stop loss - keine SL-Anpassung"); + return; + } + } + + double position_profit = PositionGetDouble(POSITION_PROFIT); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + double pips_multiplier = (_Digits == 3 || _Digits == 5) ? 10.0 : 1.0; + const double trail_dist = TrailingStop * _Point * pips_multiplier; + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * _Point; + + //--- Gleitender Stop (Trailing Stop) + if(UseTrailingStop && TrailingStop > 0.0 && TrailingActivationReached(position_profit, position_type, pips_multiplier)) + { + if(position_type == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double new_stop_loss = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_stop_loss < min_dist) + new_stop_loss = NormalizeDouble(bid - min_dist, digits); + const double current_stop_loss = PositionGetDouble(POSITION_SL); + if(new_stop_loss < bid && new_stop_loss > 0.0 && new_stop_loss > current_stop_loss) + ÄndereStopLoss(new_stop_loss); + } + else if(position_type == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double new_stop_loss = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_stop_loss - ask < min_dist) + new_stop_loss = NormalizeDouble(ask + min_dist, digits); + const double current_stop_loss = PositionGetDouble(POSITION_SL); + if(new_stop_loss > ask && new_stop_loss > 0.0 && + (new_stop_loss < current_stop_loss || current_stop_loss == 0.0)) + ÄndereStopLoss(new_stop_loss); + } + } + + //--- Ausstieg bei Preis unter/über EMA (Exit when price below/above EMA) + if(ArraySize(ema_array) >= 1) + { + double aktueller_close = iClose(_Symbol, Timeframe, 0); + double ema_aktuell = ema_array[0]; + bool exit_bullish = (position_type == POSITION_TYPE_SELL && aktueller_close > ema_aktuell); + bool exit_bearish = (position_type == POSITION_TYPE_BUY && aktueller_close < ema_aktuell); + + if(exit_bullish || exit_bearish) + { + Print("TRACE: Ausstiegssignal - Close: ", aktueller_close, " EMA: ", ema_aktuell); + SchließePosition("EMA Crossover Exit"); + + Print("TRACE: Position geschlossen - Trade-Counter bleibt bei ", trades_in_current_crossover); + } + } + + //--- Profit-Prüfung nach X Bars (Profit check after X bars) + if(CloseUnprofitableTrades && trade_open_time != 0 && PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + Print("TRACE: Profit-Prüfung aktiviert - CloseUnprofitableTrades: ", CloseUnprofitableTrades); + PrüfeProfitNachBars(); + } + else if(!CloseUnprofitableTrades) + { + Print("TRACE: Profit-Prüfung deaktiviert - CloseUnprofitableTrades: ", CloseUnprofitableTrades); + } +} + +//+------------------------------------------------------------------+ +//| Profit-Prüfung nach X Bars (Profit check after X bars) | +//+------------------------------------------------------------------+ +void PrüfeProfitNachBars() +{ + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Keine Position offen + } + + datetime current_bar_time = iTime(_Symbol, Timeframe, 0); + int bars_since_trade_open = iBarShift(_Symbol, Timeframe, trade_open_time); + + Print("TRACE: Bars seit Trade-Öffnung: ", bars_since_trade_open, "/", ProfitCheckBars); + + //--- Prüfe ob genügend Bars vergangen sind (Check if enough bars have passed) + if(bars_since_trade_open >= ProfitCheckBars) + { + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_volume = PositionGetDouble(POSITION_VOLUME); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + Print("TRACE: Profit-Prüfung nach ", ProfitCheckBars, " Bars"); + Print("TRACE: Position Profit: ", position_profit, " USD"); + + //--- Schließe Position wenn nicht im Profit (Close position if not in profit) + if(position_profit <= 0) + { + Print("TRACE: Position nicht im Profit - Schließe Position"); + SchließePosition("Profit Check - Unprofitable"); + + //--- Trade-Öffnungszeit zurücksetzen (Reset trade opening time) + trade_open_time = 0; + Print("TRACE: Trade-Öffnungszeit zurückgesetzt"); + } + else + { + Print("TRACE: Position im Profit - Behalte Position"); + //--- Trade-Öffnungszeit zurücksetzen um weitere Prüfungen zu vermeiden (Reset to avoid further checks) + trade_open_time = 0; + } + } +} + +//+------------------------------------------------------------------+ +//| Stop Loss ändern (Modify Stop Loss) | +//+------------------------------------------------------------------+ +void ÄndereStopLoss(double new_stop_loss) +{ + Print("TRACE: Versuche Stop Loss zu ändern auf: ", new_stop_loss); + + bool success = ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_stop_loss, PositionGetDouble(POSITION_TP)); + + if(success) + { + g_last_sl_adjust_success_time = TimeCurrent(); + Print("TRACE: Stop Loss erfolgreich geändert auf: ", new_stop_loss); + } + else + { + Print("TRACE: Fehler beim Ändern des Stop Loss - Retcode: ", trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Position schließen (Close position) | +//+------------------------------------------------------------------+ +void SchließePosition(string reason = "Unbekannt") +{ + Print("TRACE: Versuche Position zu schließen - Grund: ", reason); + + bool success = ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber); + + if(success) + { + g_last_sl_adjust_success_time = 0; + Print("TRACE: Position erfolgreich geschlossen - Grund: ", reason); + } + else + { + Print("TRACE: Fehler beim Schließen der Position - Retcode: ", trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ diff --git a/frontline/cluster-fuck/EMASlopeDistanceCocktailXAUUSD-trailing/report.html b/frontline/cluster-fuck/EMASlopeDistanceCocktailXAUUSD-trailing/report.html new file mode 100644 index 0000000000000000000000000000000000000000..8d9931ff2cb1f08db57f053ae8cae2d908f9597f GIT binary patch literal 1883870 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 z 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

jB@%P_b0(KZRKre6ZN$~N zeb$xjt-eRiBm2v~>Xi8AT<(r*lS+jYBm@Z|+P0RoMeE0fUb6bJF+q_!K<2PoLJsh=^=+4wKCwtNkpy)cw zGQ-Nq2;1jtS?65G;xM;zCfakg%nngLEyXPX$M>+pl=?M&M*VIPs$23UF1OxWvQE3? z@npwz3yj<+;`h?7(!A=0@q6Op^oer4T@{x3nYQ=TqxfXyZmg9-v5(k`so9g+zm@%Z zS6-(p6))XE&x{`}5N|h<+2xTRA8*7u!JHg_R;zKg6UpxHY&o*GdbOIBHI3{p`Wxqy znls_+dT!qja1_PY)#5V6%E$=Y=j$2TR5_`Lpl823syTIar9^wCCnka=*3Gn?Wfi8p z(OT!6Qd{h$T9)4#V**&0}3&+zx(R!4ltjY9<4r&&KEIdh?uR6~6hI5w_1) zv*K#9gZz6i#7q{M!%+uMGsZ~bgi~AIxuHMEP^|B`RV{2DOO04r*U5TyL<4hK_ z*M*{c>DP@^sM32*#_MAeF{d*mXT{AM^Y74^{oU%-YG!>N^~Nq&O@!yES*KS1`B<6g zI=d=#^D`r4pRZ=I-fo%j@uC#tDoKg;Ts7-EfZy+z-mBT!mf7VIs$9f*z8>9}vj?C0 zM>aKktM5_s$o`Y>he?FzsaZP!bQ*d!d%H5j%E$=W=c}1MFLj2{JJ<8g{syMRdZwDG zVp5CZ+(P2*a_9F8P_SQ@c9{21trh3oInZ?Lzt zx}#Xpu53+NvA3*3Ge0xJ@yXiN4C-`@?)_np(fb=I#MP0~Nh`bJ?;?E|0Vh z>r|UYxn#{m+Wjb+c-&dNR?Xa)Nrh{xdiYLK&7!L$UFCaK%giSI>VCH?+m#tsMx^CF z*{5r{v8Mi^Sh}ZWS4B#!XGYP?F)I%h^`q|)Z)aPDD*sxq!X-bf+dq6{u;s+w>eXu2 z?o*4X6>s@j^mTwlIIY&#)yzI3bX}YW4{uk6ZhoeD<{sJSt65Pso|$>;d1kWz<6Dqe z&sDQ-VB|}vM+?N;*_PSm5zZ;{Zh56Dlft{so7h-R?X}?5owR9*+sgE@GLb` zzhcIj(?r*eWQLWI5wcHLb7QUBo%(%Ue3S4v+llo|HNzW1dAHHqR-yXilRJ|C`gl|; z_`jc-$T@OTbFzB1n(5pd>$>)*%M#&vYG$T-yAj^53f=t72-)YWSv|Q@bN?ixuNEiP zbJZ+`kry1-6ZvKrrDb+`M7LUduiMsd{C7I-xM|tjyh_Wer&DPd_ssXyz}VG9&8(4$ zuCpvNtc;AXeXg3n(nihvNk7tdS!+^rTDh;+uc1vO_We}gwvY1tB)>)~O!3TVPpR=9 zx&J5GyjIKFofzAT@@LBu-Mm&`&6?Zp?cbd&%GKs7bn`PKY@e=WIuu#C@yR-s?0u5F zpUYVj?Ri>;HfI{R%^|Ja&azA{kI-?An*D7cjX1NBPE0k=oUC4}W?4K|&-TA_;yY8# zx`Blg44$vIEK{tEjIe#Wnj39ZwCM!OYX0Z*4j*Sb(VnSh)|uolQI@x?!nExv`7S}t zR_osKb=FPI-s*K~X2oeIl}9RIz9y0Q&Qvq+9Q#ww1BB?%OmVH=ZsjydH3?_vZ>iyy;{vW?Z%BTTUGnGCTkX5Z&l(u zQ_cEn0Cl=6mSu{SkrB4fSF_GjY-@MVH@iqT(VnSh^fT)KjqCL+yqYL&g{MS!J+gVm& z`s34e)T@HE+Zg#fzGr){W@q(kHH+`a*(iUyGx442o7H3EV;%T<%PM^HGwl`;?lMVi z-=SvhOsTS+)$H%&NwjCGS$%(K`sfQq+tueXxjaI=MLogKf{0Ur<)ov3$2K*4tJkWT z-)6K&o1XIH{3gCL)l5exbMDq;@pYDEij|QOwog~Hy0q!2lUMHfX1}+eXwOu$a#>$P z7VTM8Fz#?A((*rxd%`(eMjm>03jzDhtn%OgrPXRCn$S9Z7HN~c-lJyiK>quguj9`b zUuRiGv-z13w(n3g?;Uwn({!3sSEX2?=3Y;Wy;t9YV2Ps_}dGSwVsJIg9`^E1+N zpY8LttjJM4+HIHW$W)4Pvz=(q(=w|i)g-#su2`1I<&htspTT}f(yEwa2|FsjYO}X- zwRY9lcfPmG2^LqgO*Cg}m(wx%ewbugW>y&);rM**iZ)S~Vz1=wm{V6*O0?%`muRcE zQYXtQOu5sZ>I?toUW4lK7ID6rKveB_Pg+!+tiDIh=k;rTV^>#7eCMheR=z`kb=zB3 z;hUcsVfzj><7Y?I?CMI1_DnUm6TvQa7Hwx)CYMLZe)0N#O%rkUxT$z~#cyi%R^Op! z=IAU(=C^T?PU1UL&GgJtL3Ek0_&Uon#mdMC+qbBh?6`kg3fiu&lxWXXvpNab!$0~< z(RP+qnD)Q>Mh-%!H8Hi%qc<&koA1%`m}hocN_1yxS>3LF{S;kiS%q$XrfIpy_W4@Y zne~<(YyD1&ah@^Jo~dQ_bMTfWX5t=ome`%GO@}?+ePkCe7s@WNLzw@uxvN}TeKG%NDYbVl^ zT@|+ZnWp6)*>`AJo%X!Nxg&(XbEVofSIdpJtH-d;c-u0&Ji@8vRLN?@+g;r5-ET29 zoh7Q9eYJV5mUSC;>k(+NR?^H@OQoh?uVw8zu^(~8u1v5pGD7z0T5haax6dlq?3^BF zJF%XrWg=>JDsnZ%+g72fb)g?oQ?ov=b|tGulwA`RNKZv#TpF=hhQ>W@lSwmq$2Bp^BH^XA*Vle!0VI zuZTOe%Z!{?s`1x*OZ%QUug+K1`}hB<3%PdbEz8U*BO@H&qF&BF(bv$At6dE#sW+|E zl?+*@1ASk=wCgOZFx3|@{Aoq;W)GR(vhN+#diS@e+S`1OmPa~5$g1wqG7%P@*hTfC z>ny9#&CiUmeTSB*agD6puBNm?%lf*X?+XxZXIUnfN4TR;F}&|~YG=~9Z9nOGuZTOe zJ65Uob%OA-tz(mx^`Xxg$5(znA@}Yo;G&l_X0| zF|@a=!j$h-^0QI|&1pdPq430KwQ6tmYBh`Rd8aL!ah`C6no$y-*hTeHv$L$iH$Nja z_u0Nh&DPtMvyJb6e}YmY~P~hwu9VPv#TN{+B4OxuQ<_feT)r6+gVm+ zO6}C|sfsvpAyM_2Z}wK-qvnx)WLC1{{3gCL)vS6o+0*goi?6e+!Z$xN!uB0%)=nd} zoW7dfY$w`t)l6-e8{`vhH}+1AW%32;3fzS-7H7M-uTb3zSMx^IH+vn>U+HE(g-?8ae&qRBsZ`NslxF*_eU9T}E z=SUf`i1XIvGtB$FW#!*rtzNC>@!JM`?34KB_4>M+|NP7-@sO**NzHDg!Z$xN!uI)U z*8YWRB>g@S)~%zO67894{_Cf2<}Bgy=Zm(pER)M4MB2aq)U)5=6m#zFL#f__Z+iB2 zuhz3p%Z${t{e8rV@Ju~(HkvimsaAwnRl)jfpRZ@p)}3wqH}5z9VPm00d!C+&Y*7#W zR!PrpB&#-$kQK|Px_um-V`X2SSlidVo0^l=_o#WK1KY2ciSIl$GgGQPI?YPWZY9qY zD0&hN&hJNv$>m#V?(=K5q?W|v2( zdf^rPZd1#pbSM2;Tm_^O_nO|s;C8w~H}QRx-F`I!;6PuFv!O$R3tPhZcjwv=ek zi>sln-b$xgso7bU$>kAMz4UHnJ-0h_`+0J*d##?;ZM^kxs-N?y4b7v=Q?C-fu4bKF zW&OKiSEg7Qk(&EtpRQ)HrsI%qk=D(b=G0Y|66=}X8GlKC22s})+bUG0XMURRQV?~j zy?9>VRnqES$?kP}R!5L_9nZhv$o#taCoxVd_EkOe)o!tJKV9pL8>#Tk&y0|LvYy47 z9Y}Qtk)ibN_wwK5N~~w<8Q#heTy7`ct|FJ&jf%{SBkpu2;;%iqFd$alUPM_GR>B^F3NtXYQGn zU1ce)&9nS4-qdF;fapWj4yrka_}d=r7Ut3o$F)70D}`+PNTeSXvldusM; zXJS2D&8io>H5xU0+cLX6!hRIdd&+>dgU9|DHCGgS^cs6TJG)owS&T>euzh!3VmwdJ z>T0Jtahy%@b+x!mu`)73_8odA-X_vM)3d89CDwEG%zXo_-_8Q@b|W>afBlU7dizoI zXj1d)cZ;BTXZ30|YmZ{2my@qf9`$sc@b&#=eW&90&#WGQzW6%JDtz-Z^3Q#?&)2hP zt6!vlM#^{RB-&~1zTV48uQa}p^ZkjotDt0Zd4xJDqrMMB#EAvejn?zc$?AL5JaRiW z75C%(Ccb&SzOH87ipcC9f4$?A+Cf$9^5m-~Nzj&s8(I6&^9s zb|V$0>ix=n*J932d+zsau{L^kcCXg62#>|uE}Kb&XX;t~@cy=a>DgIUA)KEXVfzj} z>%JiBO})-tPT?Q*lxWY>bE|w(aX$Wh(RP+)a(RT47U#J$zMFr;?=bIeT&rEG2%~2n zz3qwSJncf0io(A(vWKR(EHkT&C{ylpe7bfUZSpAkmwJ^iAK50_bF~W}GT6N?wjD@s zS%oRxgW4f+QFE(}u;ZL6-OUrXD)x7)?@{we-zHxeKF)9AJ6FwQD$MHf=S$7bvI^h) z%m~|es9D`1s($%?2hFLQ?L>Q~nz4+v+xgpUStgf96j?K#GG%?eV&qm`zS-;SUae;$ zYkjNpEY{*yg`=Jl;dy!{15uBwi=RcXnKPSAuR}qVbkhn34hGo%+5cEQCBkX7uBzEHWUcmgWrmfJrsf{mcc{7bW}m6~N)>Fb zn(4)&GUYt5cstuFRN3Pshx64yF{ishd0t=5-s(HlJQivD8|Qz$nz0VL**CAKf$?RM zKH2B1nclCl?}+i6-sPKhAG(ihrDkVaMa@4xza{_cXU=qKQkV1D^?sJtYL^&ht7)Fa z)h=)O_1b0km<+%X6H8}Tg=Kz5t8$;>)3r-}LN9@C5`ne%K$=rmS4ynsdSW`Tsc`1C z+S!)bYyM!CMnxvns|;v*PU{?g~}K!aXh1nSz#mg=nv3XY)N;9_iZj zC%zKjc{y_LG&pR%T@|+Z8ELss_W4>?AHm4&jCiB*b$hmFCX4bt|Kjaz%k1*Vk56o( zTfX{dq;%r(c~SL#Z?SpfBQ?#Li*tUhcFBwMtz{ntWVf>9GSkKcgy!k(NCsG#WZL3hl1G5v-^Td$H$NJ7-dE#vKT2HL+&WzQ!d=K<> z!q@86%#^;m_r1S$>&o?(Rruy-q~|`{r|X%uhzi%p={K^+aXqKF>+0SUw7C}ng}K;S ztGBZ(lglI2w^|p9t3|7`kFF!d%16hNZr8>F?YVOJ`Rm zRv8(g_LP>OHw@Xh+}e9D@V zU72BJWQ6Qn)J#+@HK)BN=G1w{HELEzB;Q~wSi7oHVm&j?hNyOKUG^m2&bA8GA0LgXzLxf$IH$~) zWBAv71$)2V+@al(`(NPcDofXSUeA)%cay5s$+8N~{EWOc8wP?K;acxje#2I`UtyN)hLLB2l%EyqhQf{b!!d-})LO+@a=?y(jp(wK4I{ zt8+!otj+X$?AN`v_mnKl6e}YmY~P~h^F9#f)XjFHJx|T5X%Qnj%}UMAvIj> zRJmsAS8*%fgxc$3Tdloi6{g(1r%2CtXyGw_`}`jj!KClKjdy5Qu~q*D0cg6)(F*Od zk4Ptg^Zl%x-m(hK{LBc)cWAfmEw(So?BBkdmuKhm#IC#zShS$sz-)czaf ziSMkq8lR|d_xb&Ly?L(wR^gkUAp$@NJ+^OA^A=b4)a=xhXwOnJv~>c|YgV+KWtm(a z`SX8omhbWqac%%a&3>ljo3qt-sCjJf*hjjF?<_Ur6SXJcZ!i#F7lUVtm5~v)?@%*& z3BLI((so&DqCHE^qD{@o=fa}xEUPfp{jA>WiZ`7ibbeviF)rQWY`px@=G9szryuE` zXZO_oK3C~puU9J;@^Jxdy6VX1oIR@ZC>y^`J^QQ8_h@+}%J%m){CX{GHuE~|?aBlzBO_$rp=DOS|L>>Q z%jX!;@|F76TrIa7#GUt*mYr=Cs_Z1^x-_$ZpCh9__srhvJJdW@&*nEjMj9*Bto76V zbkTJq6}tJE5wdSlvtsPteYpI#SL$DL)vVnMAJ>Yvvn{jBBj_~Wk16Jy+TmaD`<+{y z?XA8?%_F@6^pW48X046sq#JYY?8*!)BO_#=u4djxYIx+zRPy@1*;Sd+$~{-jy4#74 zy5rj>H9OlXRH<&U@0mKTxz!Fkv^VOq%uUVS>a}Vn7lrUxr2RD~sO>&p&6@EN><8w( zDQk-%Qt(?X1g-O%E$=Wcc@v_?5$7txDIMg zoo7s}XZq&$#rZ!!`RWzhDpbiZsc`Xz9eRGHv7uA^re<&TJ!;-MgL=N%RhtswS!(9JW7YFJ-Jq}pn|(Kg=G0Z166=|2hPM=!)$DAmP~}7gHS4@br4II9M|RV5vU|0jb?eiZcXl&; zo$>W(TX%@lZ-)`ArgZOsi}tnF zILk7*Jo4icMdP8fp7nhPd0yX%xPK$pYL}H6nq$7$RhN=>=lNplAH6#y_&VNx2KAO@ zVwDj^)~p`7zr;mZPgky3<9$$WzgL9*oa3A()^mNac7W2Cf*|2+t5Dtd<)%(fyfHtM z_yB)CLv&$pw;^f#$%<0|6U;FCVUd_(xd(=!dloGPbS{- zN|l=b{)}eDZ))~d-=Su8_?@fSdBI^ z&91tXSkF{*yL&0!mJA7JTZJmsRNk##q|FyA@w)yjMpJXLdbOI#>|0OJS)}c%OVM+73=V&kK@l5UpJB| zRz^nHzD3Qdd-hL2l2sgMJJFu0W_lT@d^!&-+Rm~HQz~I}sPOZ=?`5Z(N*G^B>7Qv< zO~qM$kD^C9I{gZj7|&F+&WPs~+gny)oSzwC`wm6x7F{CEUcAlse(q7U&IkKCGK%(= zWpa6h=mg)Ja%a@cw-v~*`=>2fgBX#6_Mh?1+E?*?VlCQERs|tb-_V1(S)YX%c_f4zyb>G|i>hgD@ z{9W0ZTprU-2o*TC7Hvai)AzH`;goab{M-m*-w zGBU#U9corater>yj-qDntUIoqiS}GIs~_6MSlO})Qz}=HUkgza0jyxkC#Ju@fokF&i(%i5cT`tj$BwzDjg z%Oh0#sHgcAO~i=@RdaKl%bS|L)%U1*>lo%ktYhKJW87E#c>Dk#T!M(-@IO5SF?I!eSAx7<1Nb+ zD&Q&um$RsbcNC+a%_!F4Voe2jBGU?Ovy6 zodh1gQ-t#jcj+1LoWB+3EvpdD&y28rvYz*}S-n{Wd;81uq>j^`sb`|v-l$E;Y-)YpRe`WS(YhQMn>4a zL(R+>-WfIbyz^a^FuY*u;1F$RS%oQ8P5gwffS%#@JKHK$+4n@vzG6+>r@OPLeD`;$*z=PGU#(uP=IxtdXLT_8 z-j4J8>(xw`ZmKGZuCuE`H$O8%_8n?&HP3$D?0YE_>$(1!sx@BD<;UVZs}3grj82nU zxoHj`u6s7m{Ij?G4n?=Fzq5$j#k`5~JpZh-YOJKk^+bf7U0I!#krA?QQMArKvRCEb zP|c~+Q(`?=(YlZ4``6agQJih7Q2p`oQN(`VV`TlT#+?4S$V0=4VF8K3~mZJ<`p~O&iCxGqIklX5Gg_j&-y^yq#^C zT^`{pH0luX9ZHJIxP1!E`4y_Yj*W_Ez7c=8Uv|7j0)* zCYML(=cGdIYg&ysmZT2uP0ilwd(^D^WBOS#_o3XQW=>D_?icZvWr~%N5w_1)^Zx8q zzyHgB0cM4osmzhNI?YPWUo%lf4Hc&N=6otj#Oa*j?emJ?)aSYGJ%_tb2YpN_?GV z6~6fyvM4f>9^2=unJ+$4Z#e7Ug|@3Wtxz+2y40RrMMSinWtm(aA>O9Li~Hu1_f=fR z`46n}dG{$58R7VR{fajF)maOE zt2C!B_DQtod1Gi3%l6`HXIX{mkB@fo3_d1l#HH@OH%?ZsRlqgrbK(Dnp+jgMOb)aZ&@anM^Lf) zk=&at;+!<$U+{jo#n$XsYYqBp^*w4n?*U^LU4<#}ovUW%lU>21X2sW8mMK<7M%cbX z&5EscLXO`m&8e#}CE7F9tR5j>XA*5^S%oQ)HM7xEG=GQNLis!Wy=H8~>wLHT4nsP?ND(=wl$er1|zh7gATA%LKF3uJM@lE>uJZ-tMw<}YtjEqox zzIt`KRlCaly=7E%obBst_4Tf7vUuIJW<>)P- z>+Q-6D#Wq4MfsBoV(X%wt8B08xWz9%D#&(K$mVB8$Ua}kVm%gPyBbqsomcJa zewkI7eVv|?oo$(29$`l$$Jpxb8`)h>Hs7ITqSz6y?5a$OZ(66XYgu0!@b}3{%g(M$ zurk8?Mc-zR?9;VOY|Za5RvWpm`o*eEMaubJ@piUVsB+gA@pbaMTEVG!lMVY`rF}HG zR=eVWn_fx^VKZYbO3Q;zSpzq_X!f~xoXDaQMq$7Tp!KF5>Dw*|(?}9jkLQ*SdV=II*6sW_)39 z^>z_=WsTMsXuQ{zmYE0YU0&~dEjyd<&~m$9qV@45&wNk4OW*V1J6>1ps<6$^jF5eY zmhpIa=Kg64_VJIiy+X@mO}e+wt13T-KUsr#S3-^}2m+DBlF- zZ=k3!{qb3|bd!kJYRj(Z`AT{7e$Bf>yJHnEAA=>DInt_Vmpx>E5`}frTUMc&pBdr! zeC_IotBKVxQmajz$YdI5jOzh!$HS8G=^ zb-Q_Ey0>RLo#1CPX*bcls@yhn#0FRF%ET%oQf{-wQ+$VV)$2os*Q;;&`z;geyiQmA zZp%S4Zft3L0u-ZJN}R^OrKwjXh(W|yTT!t>P3_rH2Q0eIr0&MS2D zGb3c5uV(HGX*(1B+q--RMq)i%&5FC6X61=z)wl4(XMPwhyR*jfa$8QU@3wxg+^kl! z2#@q;^8L!AY7*i3YIf0-=sLTyGAkoZ%{{VjQ8S&Hyv2Rr?5aqK^=vh>C!6o@qVxIq z9#*JwBAK7%`#TzQd|moGdo??&?@{x}{Q`e}e)HojCc^X7tgahQogaU?)a>l4(9O?` zkbSm~$W3i?6F~R`}*;M%cbZ%{nX5 z-#g|VzC+E>)(JPqRJ5ICnOq*xHFY zZL3fvGfOLlh_i|i)q8EXIGWic)BA4oT3_7wj@-BBD|m@-TAi9cg>8Oj zgzP)CtouLCawd9+@6mG0FR4BqEnw~Twqwyi>yb&Q$uURLWhW9%#Wx!OFjxB4D6kK700Z^TN3=Xqj3Pg_px?W)kt&y0|L zhnibQCRHu}hDtH6YLr;dRkOa@#+jp|@5r`gc6kIfvybHGLCl#iRu`Y8Z))~d-=XHQ zvk`Qo9_Kd^o~P#je&&-X!o6Rj>+H%5DYZBSo07-bO?+o+StmYS1x9S0T@|+Z znGv$j*Rog>XY&^K>RsH`KF)fsmfQCj^V;of%k1(9_hI0fz1J0Us%!iUXI&uP>eXuI z3w>kz5q@?0)oLaNVm670j_((0_I724m5~v$&sQ_7$IivzX^yjg1L%f}B z6{NQlwcn^_p-lI&(y9e$iDki zw4G%YrrfE<9+L0B)M`z?35 zvI^h)%m~|es9F0?)L?t{YCqeF_DnS^YhwR6(RS}aCYMK0V7?nb#ObWy@A& zU%F9G)XCPV(fB=(?|S}j_dR+Z$&&y1=xUsCinOl#X5I8pW%2mawN^X3GR4Zs2-$b& zSv_56_s;vTDW$c0u5ac&qYmXNTjK3TDpa)(;&s}H>l+e&<=eFEZN5XxV;x=Wb05`| z_|DVvzaOqt9GnLhTW42=ZGL8i?DMs(+fk`oE3@)%sOHo~xry~mEz_65F0KD2O|~tw z%OiXthr2HEygrgv)$8B?+2mE<6rC(zt!Pmm*=`P zuzkLs>3JF3#UREUr=8aBN?p6%=ajs&x2(bx{rMPrqs^P={YCT3tn~aXsuKGdTdQPz z9&ATWHgZq*-qPx>#dRgCTG3Oov#i24KQqGi=}H!D#n||fzGrr|rsSDtDp@C#{H@hm zx1D8~Tpl61Cg$@>6>-i_Sf!(~e`ZtU@zCBTwAt_U-3DzPHRQe$4^;vDUoEx}7nl zlD&^(+HPaAtim@xGs5;QYSxYg%+u~NbLt}7HEPaxbZG5%mSu8zL^p=`2&M6+)A}q+ z<_&c=-=pR8niq6kO)=4(t7Yah-3gN{%M2?cBW&NHW%XrqGh|=OE)GhxXL@Fxsv*8j zE4Q<(#uTb4|5aV&_fLk$+vn?In`ib`uT!(u5_(hF(>dFZ;+uI_YF>%&^}S`CW%U&Y zR%&log>HUkgzS^Gys?&+iL!cH_C1tI%X#Il^og)K=Pwq(dsfYhdkB~r-zy^K_>dfn zH#MVpXZ0OwZaWmMvgy}Ef6gHho~LH`v3@#+QnRawRSmA(N^a(?Yh}a+RZ#GzL*Mj-hCpH z*w3M|=L*gI%m~NltCy}m^@LEt>FqwTDjw%F(M~IM#S^o83vHJPYpr&cWpa7s$LGBv zL+*8gXzOc&LO(mh96}vjp*Z0KGM$P`t ze9?B6Wpa6h>>3|SKD&Lh+xm?n?oUA@q&HQ~v<7!`{Kg#!bRIRgT^rvrU92(xP z%&;;tLiX-jZmj7GA?xjFnM`Xt+lh5vxhrvX%TisuCEm`q3RT@X;B(zZoLdT$_ikFI zzNO6iqs?b)S!ba}_K~TAjq^>B*KsZDwmvkw{q17wMk;LcGb3d0uVrP()T!x*=xh19 z`j);v@%g5#rE36BxqTBdyF5aUoU2=nxlSK@#V>01R-dir(eF{9CRbNFzFHsGvv!~S zokY^Jvn*4rjEu0ozn(>#wVONW`g(SCr9?Ze-4)MFl_c%%ingaX_|R?&6bGsDWr2-*9qdAS39-!r>9Q(`?^&D#5M@w9k5+bUGQyjBeAZ9O$}u2FlT zu1>aAv$OgNHIMa$_|spB@GLd+T?%GA?<{+}Ds=NRQgff|{ne~*u&SQjuYqwp-PSWE z)-%=2ZZEr$e*XkDd)qR*Ji;yaI=SJLs%`?Z=KYFxvifW_i}1) zFy(HQ)EUxvw^NKRw_ZH6xA_V!kM(u(w;QKBQ_K2d0Qt-I_v0(QWfi*lnGv@4*RuAT zl~?t?y3Cxql{2l}Gd;6t=k5`2Stgf9=+aK7D;jU@VfC|SvKFH3&o-Z{Wo#Jx3NLhB zttru+r)6qj@bJH1T6UIYhLw>Kws+TZqpefw{j8aw9BptBgpweTsKh?wU0o81B9Nm|o>^)_I+-)UU-m-Hl)8czp#f$12%skm==(%<5 zQWxz5kF#wRJ-41N-v=x;^WIVO^7m#hYW7y2t7e^5AFF~;!`}MG zq~=Wcc(lzvJ`s_Nsm0e>R^gkU8DV>OJvZ8l#rmfoiF(Fqr?tBlYZL$a%uckOWtm(a z;TEb?%Mx!gJRcwHsw#+V%=vz|c&Amvw zovHFav*_8|eYT#(c;t?Izdj|#DfX)B*`M#=z4Ufvij@)Rxli`~dREsLXXD8HdwS;n zjq$ZRXH|7Q`x74G?QE-1HUEYVMQ0yPEMXc;~j$+*k8eRWNv~GsERi;_Yn9?D7b8gk05ZD|l}o ztEo9zeXg1t;gPeeJLb_U0Vm(*Q+UxQAp;EK6twNRFE%k7@ zc_1eI<~=9T?75#=)aC&D{mww#+V%=+-X3^VEnF@9*WzXxZ6(ww9M2i+#`R*2*)qtb2>yN}`q8*_8=a zMn=fqU(0-1jK~rdx2pD5v6@p?WlF4PYMFg8)I+WDh;22hx>?S5>2h-Zo7bAgT`Oq^ zt9j;R_1S9Hx8qvZNbfY{kG2Mt2+#7&%oDT8ZRCmW85OX7vd>U+yDf-l+t+BNW~ZgZ zdajzWif#@UO=sIGYNi@UMDJ=_P0O4zh;VE!Lb~RsZ7FM)rd8O@7pkx9?$Qmq)lSh$x_^X1=7( zu9L6KENb>vU!&%coY`0OzP_5)9pNiH+u2U6=W1Eq7e4Y8Z)aPDDqpi8 zdQNvDsOm|azzXgyTF=ti+NIj1?w@__x~TRz&!cB6=p<@m}wG%- zQ(C=eRlIZ$P0D`7oOO*i#`h{LzS&!SwwgI9qx&WHeY0CFj}tx`YtuK+3hMjkrDtbZ zMYZ{v5w`c&vuNwAa=$CY->jBsr?vZd*39ay`lgHZMce5-lglG?uI97I=#wmz6P5dF z_Euk`=KXuVh(_Gbc;cJa>x!C1#8G6ny=9qVWn_fyGt|tC?L}hDsjD<4+B4Oxb4dPM zv7+rPt1#sjPHEM@L0ZA_&HU-!JFnx1v$adF^~l~6G+k}!D9z)_ZQp@nDftE7hB?L zZ}r(~7Gb*S#o4b(nnhPzN`%wed|b`ijY`#4)a>la3@aleWbdzL_K~$4)xQUbIdyfV z#Coop#hbgS)?Ti40VUfiRKL7eQ~hq{LYzO@uX~G@z0GH9S$zV!=c(1b(j28OjgzPi4OqR($RPU|<^x~A1SkKflJIe4T=S=URvn{jBBU%?y zZCZI0@hBA<@4cIvlhxO#c`R#k^P33IQZt!}dR?7nrDkVWW>^^+A^Q|Hqhn6>^y6$- zk4UU%tC_eq-Qk7;ooyAWM9@^T{23=PXWhddpCPZ+?5w^<&HG)F1U)jQoC z!b;<8t5C%c13n7y;pj6mR0!X zXGYlGUC*LDwtqo>J+9}pb|0^3(}{(8IJdO@{i5wG%jEJ1Uy=Ie^?SInB-Oc8F`*ZY ze9za*)^?tyUsj^!F8h()Wae&dX}^~*5k0D2c#_Q!yKH~Ecsjc>waUl{#rvxFBWu=b z&g=EPv8yc|U#n~SCEiV^q437ewhC4BOOGho_x9at%-Ow5+4K@y>yDt$R$rlJXz%Yx z;j_1Y=R|m(n%nNZTZ5%$XIF)8erAO1Gt`V0*k4vJwtI^;r>?e?Sm(&AqGp|1>g7_- zw#+V%;3x30{?wwF6Ezcm`<>cF&ED#3)I1Vf`yJjyc%GVdw~Aj&c=NnnnPFvQgzWv* z%xO6GSoT+LYA53>_gppODe=uN9~N(CTZJlLbX1SE-*M8pI26yH?tf-IOJ{2ro@1F3 zxxw1feq5b-9*?Yb<1q8Q{r#fpEUVDW&x~-qzj}3sLUC6=vgV!G&i2ujy5fncZ=qf1 zZ$;Z#mdWK2{*H>_T|}bwnwTZ;QZ1g?TYa{gzk6SuN8)Oqryk{dT+8yr^u=x8F41-Q zb7oi>86kUrE$cpHMP0qy>xpjM%9&W_mHW7wsUy*ik?xsDw$-S%4y~+aYO7?@e$Tn7 zIaz(Snnig3UQK4v=_wJO6<0G)kRn@2YIb&2=;mjn=04eHsG0qn{VbWDi0y1A)^pYT ztM?icwXLlMTD_fZnOz>CV$B{DH7%b7Yo~%b4cYXbqP^u;C|X_idwa^hpDt0Jr)X}K z==J}2yE4bh$Oze|C|cc{M#$b@&0>v?_fAQ%1HFB}6YIHZCa*%xE{D=e<7}%?<#*)H5UPgUwYgshV@+^2 zpRHxxgw1Nb7iW_fjPsqRlTHPZ3a~0g(GR}Igmhpka zzAn-iZ)aO(mq&Duh(9sWh^waUefQ#*z0Fr>d8}8&-N#2_tK&aZ!E%)CR`5)) zGBQH;8Cq6-MCTrJ&g{QsomkJ)G8VNHhMD)QDj27qaz4!6oP3cLn^Gh$HD{}@Q8QJM zeb4OXHxZtvX6@wR6SuxXE48z$qS^e+2-&BoStlO*yUpG&Cf0M+tcs_vgow9$6EeFz z!kU)rU()jT??2<$y+zC3=5w`-Pgae7U(5dQbDZzd{bu$Cs4e9EW^Y+$SQ%+*?y1iH+XGnzmqc&J*Hm#ES(y} zKkm1SryI%CDkI91`xNi5Ua?*}gM1XDIdyfVq~5$%AN9sqq`uvBS2Et%*;b*--ZF7s z^2W?pJOAh_W9!(OI`?O*uTb+?)r%a5Sz?aB-*BO_#=qGlp(qS>Br_FY$r^=vik zM6s*8iMJc6Q2p}K>0XY^_jhuodx^AlJ2qcDTYLGl)vWK3w2GH%*=u{2TZ!ps+m0l{ zv((I~0CF3jwTrH^t3o$Fqo}J-_Wo)XYu)qJ@5%OGs86hCsu_Q&Qx7hl7H_w%XLfmn zKaF?GcW7z_Z}#|(*QVz7Q=e}lzDCU>Rcxy6SE!i?pRPWqSbS9v$y&hH7|8eUlEXMT(v0? zp68o6dr7427-qXFbn`PKWS^mCRXnNU_SNh>V`4qmH!HJZ|6r?G@piUlc6o&AIPaF< zJr;A$RpU*3ZoR14TYZI^xz}jFUxZuAw)2|^&r`E9l6=C#+m#tsMn=d!Ma?7KB2;L{ zS7*+a+(#w|;rcGPyj$tzWt+ z*Y7`R4d?Wuay_??wO(?S;XwTCwT?E?yadBU^tiqHxn&;`%$?CJ!tP^le$Gr+R zJvUo5CB8G&%z2&O`8RJ_g>QbQMbb^D)L`?z!U+lVgfbFNwY zI@3|2N3&wij%jvttmQ^3Jo7VcKe85ll zm42OVnOz>C<7lsDO%0Vi-FxijjX5RYtUg=K?HR=4jLbiG}f zVP!;-b)W20)U0m|^>5Vu+_QA1npGE}6DRTh*iR+fDpc7uQeT;?Un&0L&JFxTA?Iaz^UM*E+VH->>+x>T#K2 zWn_fxGt|uf&PW{Qw3JxSRkJdyoGE*qSE!<9)l_|csfdg$iybJh=k=O*jdn-w&h>Y9 z9Orp7PyXdAV`J`e-sCN-(9F+_aD0k-6?g4L)*mCpeq=qfW~~#%zLQF8wX-af%OiBW zs6L+KYEDmU$He_i^ThaT*Z*~mnnzAV`MapkP%}N6tb~rD___=_Q>={07x&pdMa_z= z`===U`NBkdrkd5i%>7SmFQ?T+v}e`4*bB)wE+4(J3oo`Of|Qg^PFZydsfYhdM_vL zau&>fGq-O3{9gC+@7dy?z2(;^dSp+TzP9a(nHbMgG`#{;2>rP`F?N<^byh}3*gi$k z>_@5FK3BecuVkV|d2UEAE^5rYBif`O( zC)PRgI^H3IUxSd(PP1(_s%SR#ZHYO1pya_mZfUV~vib@&>!v3v@xAVA|AmM|I7M5> z)vOK?<~FJMjLH{TQ=jbp)vWJpkMs}t@0TambJeVPm-Qy`c6oF~&3px}TP#k!`%B9&8gE) zqMcUifipud%pHEXYDC-=9{XLuc?Z*vn*>ikLVs6zoJRYtl{ia zd4I8J+1q@DmdEy>etxav<8rWNIW+GR(K{jia& z*j0{>^E|3vW=<9A?0cPMnOS8-y_u{dcm~h${_2Hx%Zl;6K8BQsb6IJkJH?=rDx zy!L6!egyrL+mQ-WI`+wm{dp!4rw@imdM_*1*Q7pMeYPhS-+eU`XSf<(;yW{vZeI#= z@iOnGx2(c9KQqGi8ES5MQ?JvSIlZdJrCYJ+IooPhwB1N1mq*$uVxRLW`eJ3H+sm(e zOJ3})zCz9F*6Z&!!Pl*pXQ-KZO?&g=>nzI@DFTq+zoMbt?m+IHoq)ER?L>Q~qIGMkkEuo5S(eG=5#5Q}>*Atzu6NJH zri+%n&1Y-*=XbjMry8N_x-pK@J)Soc^>NCEm`q3RS+Rf@kLMyNv`|FRsoj?q$y2>TA@z|Mdy}#xDB#`fApBbAPX~ z=sLS9bn`PKWS^ntbzbGOLCvYFH6_+L3OioIM$N3=UOm~i%r1|7dHJVa9ZaVtbh^n` zKG&JEv-%1(kL)pWx074J65$ki9rw-jT|?JJSJ3r#WrmfJrsf{myQ`VnEjt*?jn_UC z)SS9nQ(`?&&16+{V6ktIVlncBttYKe)s8ZeG{3QzI};yLz41S@w&q;@Hm3W#jOfHg zJI9$GQ!qqT`Qp}<^-Q&Wiey=ZXnsb~b)Vx?6s%5b@~P~P*{|8ocA}kD>!aRyp`AJi zpzSQn-Gj}oL3!P>~+gVm&syvx}*53U;cxb9LoSyNuul1^PjebXBYj1nf zZz6g;vR2P}y5kz!ZY{0w%+JUd_bEO@z3ZyA&;HN|Kec`<`(5^Vt*+$Bx*;C#wzVMJ zmf7Wzb~^}fQ0hQhZd4_w_C9%S=N0-Lt5fq+YfJk~XX>}#-{tMf)G8w*6rZABdEb6F zh_4c-wR*08)#2q=W$AZbor^q@?AWhlqE431&v@-F@wB)5Y(1~P5!7rsHmZw`q15cSXNHv#sku+~DQafNk^9hk zdr7n%nKuDLeMIRj6``BI&fP-^$hfy0>WA+kB0d_iuCJ@8s%9iSIlu>+2o< zq>i-g?5eQM&y0|LhL(wN_V+00lGysi#Co2V*->V1fVJDL(BkcE%k1(<>j=@euzg3F zzR}67ss84wGV7T-Prt+qsDdsZ&czVJ>Yr+X2vvq&UhJz7Ut7ECttM*lH5k!$^^pow{*LM$^PU*xlE)E4`#5x| zSo@u_v(-F$cNg)D%TyBInQGSewD`8ib~O=SXIX`Benx8Uv%SBXMH@9MKlUC-bLwhL ziS{f{tWImx!^wn1+gX;$>{1Sccz-v z&qXaF@pYDEij@(mxzF|~YF16NU$aJ6+u2UEXR29M&2+~#Ud35fVfy8zR8#kptFKY>NOzZC#}nVVYGywD*DmlQ-m(hc{7h4GkL@$m%qgP%3MXC2*Qi-F5nn+T zZD&~~mq%K6CSUi=`%qMcSwry9-m3LHovmNKg2E2%2+<=|uCzWMt8t-B-Dc_UlM+v7 zSEg1O;cecdcz^YZHNKcrY`r|0n%?@YtX4&i)~w-;-($6Q`I2}$+bUF<1w2E#jSuE{ z4gPHJBi1{}&gyH_Jm!sEbt!q{d1|J{N^IkPyXd-+3f=sS)Z8cg3^mi&z{TA?IQuXquL=)k8YS!&9`R*=nSA}kVW`yih)I3u2@)gF!dah^I z&3FFHtX7&?RWGX3D7B|%Ry@3}&ybfm+gp8&nn&Vn|My9R=c!riXYTXzc4cK&Mx^FG z*{7(PJ|OjnWZ%rU8n)glv7W7F{H6c)7;5&mRjBIsWWP*AMwIR6X{}^u@fAvLSyYR) zw+uCduFjO`&QmhCTvJ_iRgY{}g=~JNDY-}X8A{gaWYo}$vcI>pomkIRvc7`qEf8<_ zCS-PbgfpD@W#7Lg=G-T;ceW9wd#le@v%1p8{IaVvCBn1ROwOX-b+?v?uCpsMtc;A1 zy}z1aJ$8b^-(Z?p&r~z(CB884J$lS3m)dP)z_$b zI6gzWx<^(2%vm!2XFI2f_B`!UhtRi8ou^Qg;4I7J@`$SUS}S~Zrh6s0g&?1tXx=zk zevP6>&c|?OWSsFlMH984Xx7c`?-yfdSteN-8DV>WMf1(Uwgc7gz^1ouJKJX{nsXF* zW7nA?+Rm~HQ%*yvhs)=|V&1y$`_VOTsk8fRJ&W*&p8elB5uT}Mb;S7`3Bum83gP_B z2-~OVS#{2S?aTMoCE7DRG&LDcFgVqUwo`g0mq+OPAaC=Le7l8FXCHlaZ1K+C>TA@@ z4Kdi;+hO+JG4Y+LX1;_+yzO!%@pXPXQ>=`PuziM_6=`$FQg2tv?*S&-bJeVq!&%L) zDpz6p<^7%NtC`!plsrmu>a*3%_wIG_ZC}kUpE=6+Xzol5L#?s5Ry(^Ybn`RP za-Zz|wG3+Gt~&CiUGeTJHKszP_4`+QMz>ekN0dajxwzU_+CZbh~&v&$pgL76=>w;S^N zl*RYrY}Q6+^A%cdc~n1Z_BFl4cb=9tPd`S_?Cr_~DHvg)1vn{>%-#@Fq+ zT2}A-PcN^zwE%5-+bUGa-4xS1rM7Q&QhVL&7h#`3KlRb-bJff`P1a1*wU;$h3)s$Y zQgbGJ)HjpUtK-i7e(`l96~6hI5w>^NbE7@dxyv^f#%ZUuyOK4dW8zwuJ&CrnER)M4 z?Y=&((LPR5hSmDSe15&2rz`Y3mM8o5@eKW{XN0be^-L|XmbWZ(tBj0re1?A8?TmZ= z*wvO2?V0*jUYbuh`n`+_(`AR5h;RFDi8=S;=FK2VotBSz-Zgq2$&~$#h>7q_ zf2>pD#4p=9*9z^{?h4`j%m~|O=(%e|o(S+jYG{RsGn#^A()?rpisk@8j>aC1-1Qyu04_o2S)zrY}Z0 zoL_O#9_sa$RcPjC)a}*hcz^YZwpMB?UfCB@16seAwUxS(8|#Kkzo#wQ&azA{k0`dL zufz9pi8;IP>dSQT_u3ch#LvgK^lUwke>cj1Av5VYMO()!UAn7*S>3*0;(JD=i&eQ# z_Wo)XYt+2Ar_Aa6?QAF3dF`&~SvLdtFQALJvn{JOkF*+$)2Xz~o{svs+|Mjp_BLOm z<&jQoe+OdXJ4?&tG0^b6gkt-#@-Huv306i%$Ua5O`c4Ik?s?{q9;WY^XKI;#4DAfL z6u{vi6g?+s(hBnp2n4oTX*5Pby#Aw=LUNp~||Z zT_hJni#clw_W1X2t!8KS*=qjjJr`^`&S#|Psd9hkM0lQOR!0uEGC8`*t_t1!%m~^0 zt68k~qcG;w)tM6Oxt^IDCi2~G$+pZck9>LQ6tewDo4Md;{B3jVck&ADk}2%%M=)nD zYe_t3YL|*b>I_MCWnz^PX}3@D{@T^)H?7mXon+?J)szzJx!P@ejqYvZ=3j4Hg{r!) z(+LXQH>|!we(PGLsu?VP*xP)zmc@5}ADO?6t1BhGv$RY!!@7)`wzDa=&aMjE{7lnw zkL**lthIw@7m>2b|_&ucY1tIt#On($cOKKZyv#UZkKQlu1DQZ@KE_JU| z@xuSPibP^PSIxhCkH!4CC-HW+Wp;Ulsx$AFuV#rkdrbTZ{%007d#le@vu+|BQM2zl zKTh~)p9t{~`vJaF55C^AOtCUD!uI}pZud^^-6X=C9;tbywflIN2t3&#@*Uu!?JTP> z<$O~Or>%A`$gATR-v1pXlSo=f}gol1zYhdL`Uu#fT+{Y zQKCmZG1YZ;>C&BE$*xSTGBQH({_3UwnrwN0x59V3C)RT#Yj!#DkWQsqt(~$fRHa|m z3$#E!v0X8A6FOBue#Y0n)=!=7f7MgJf8HFOxO&oYrbiVlX7t~<^+Ti1vI^1s%m~M4 zD0pnYk*PoaujAVW`Tv-!Iy3B$LY{UtX%@)MTz(fBRbTxL1M`JYL`HIXYXr zbkL8|bk(Dz-9+=Ka$Cheon&K8adu^5l@aPcdlc`l+#lY3uks{zC48ku`f!z_#Copp zCCWl6E+5LaRjBUOsA0~%0{q#&*0NN!ywzu`dEFn-^5OOBq7|4~^z4rlKB{N^ZumOY zX3Hvk^E1+OpY8qiyxfmVA4E^j|8~Adwajnr*DSqVnPFvQgzVk5+*q^Y#8<)lT6S4! z((-KIOb?{5qH67SwpFMqruMa}7LD=Wd*>yHZJo_mXqgydzwSZAdxe(qhRmkRjKtR2 zRbiW-86o=&EmLV2VeRTj=V+Pim}+q5?QF~J@(4GCaQZpjGC=Ii&GqWA<{j9+|Lgzf zZ0+jCmoe?SDpKN^;;iF-`1|)x09Ly7JguXBXICax85yB?f9;AjU75^juk*v7=TEHX z`eF7Fd-Z8=TZL-7rQV-j()ws+qkLdPGuhT|ck+-i@FIx6C zU!&!b4B4L%NqpyNnH!E-8C~oQTW?n;SQ!~1`xGssVpY5RTdX-fQtg_nW%2g)rEFV; zs-k7DQxT`Cz&@B?Sr#pOo3GLGNJl0&qij9n9klH1s<6$^jF5eXmZ{T{A@`$fpVK7P zGqucbCaU#OptS7rt;{ZuQ0e8yPWrP_{hFWQW*Yp7SAA1-vixjC>#H{-dGoKVe@v8T zd1v@S`1_bQd%H5n%80r``eg5~XtCB!e8gk^EtYCrT`94it7!2ie%ShtY+HpYeIaSr zcp;8=_WfLomc7l_Xj!LKo1)Vky4g*9XKI-Wqu+57TW42=ZGL8i>{GP7WX(M-yXtXb zJy*->xbWZX7H?-;W|v3k{zc8H2By;`s=@B5*;{>$n#b~HS8Gay=c$>q3ca01cB{7Q zPi9ydSvszXxjfmYs9Du7va4R+?CMO3^;|W#z6_^XsoB|9q59=D1L+jRLR^u*+lg8{ zv$y#gEsx~Qo_yjvQ_IZekFQ$9Ry!h%^1$w@tiVE?uF@IVs-#q*YZt=_Jin zvbBw8YZsoQe%Pre@k}f8aqY6tMD5z;MPljfs<6z@j8J@rcG&~i`yv$n$yJmR>$%!h zuYEqB>}|{J@(9@ls`NX?Voom?e}ey+=84%=);)Y5*Ojx?Jbp*6KRuEN&r`GRSE8SN zz3MI9*xs(pure}2_Wo)X>ychvKii4*Y&GY7Tvl&yTZQVE*Pq7MMACPWsULjv`WfA^ z=ijsSJ9(~lS(k~d_P=}1oVgq&@tmn$R?EEO>Fuhp%+HKayt{VAS|{H0ouFLX^8Gi7 z^<3@JcZ26kQM9)$v&$p={c{~!>orj}dyRgldGW;F>MPXTs+awq5KfV-*PYr;FvsI+ zb<1Jn_P1+gc6Mckm5~v$Pf@cv2Ktq1pOK!SW@cKex2trBx6^rrD))5ahrN$g9fbFe zKimIIQ**NV8a306%j%b-RSy>yes2W}@;cnOz>?UOL__f6Gs+YPR!>&YrcJoz+*Ud8}Uj{VV#} zswNShsb=OW_u_iHGQ-Nq2-*9qSvTUci_FevZx@-n>c&~mRkLcGKfe6t)&i;7*;b>f z^T@s3C%)KCr0q{?Eo$~wpRH!ynmSSk@n^lhzM8e)M_%ITdb=ug^D|O&pX~kBEY^y& z@y$7J{^8}XwzHjB&sDR!LVR|Nn!RnAT^^y9rBgc2?}|BJZ^N7Txmwiht-eOhBOROk z&BqDP^3CKc?Dl=vQM0ovGpvk^kbR1pRq@};!0r4~qz z?v<)96!0@dW9}` zKF)fsZ&ohL-4a_1#M{}H+2s-4UXPbz2h8i0Jf7RVV=`E`;ZC{_@cJ-7Ca%9A zQC$RC&Hn6YVm(*Q)FFCzZF<`(RMDXJM6#NHeEkIW_&9n|v$y(eHIH}F`+FP`;dyG- zE>s*EZnMKXs>a*1hVLEIYVQ;l&(ZxQ;2_N;&WXO2uZ*8QXEz1-uBO`2|p=bIc zpxxh9X3od;oYwB+kv6o6e)HL6Z&`&YnKHAHE7!!@>~iumez&vfIoW-Uo|hH7r)O7R zIz!LwBcf;bhDp!PvI^n+jP%@R`wTs|^T~8@_Wbizl`pEq=-GJ>(RP+)a(RT_5cW7z zj|gg}Hv|v9*CXPszCz8^;YYl)t2dpaW_577+Kl)*%QD5vh}7I?dv`VS)-Jmi{Yn^l z#TDL}3W<6$a;3ysR%6O+P&rQ(YHrv-(R9G2n7sMtWcj&@Zj471?RVb3zM{!XwDXr% zY;ReGaeiim?Nby@kBIK}Vx8LRmQ|7)F}5R#_Pls|xmVihHd~g-Y(CX&XtZvU?A zh*H_+zthhwYDUlOr+u{gY&Gj^j=EK~f4;(h`!?~-^^v35GioNEq7J#8bMbX+d8Swy z8DV>WHH)@tC9L2%+V*`KiS|r2OFe#t7HwCjt1#6aJ}K5l%V-q6dutXgdz-J(@<`@P zU-VW>iSA4-vtv(w<05L&b(U4==4YhkKHFz#ncEIgaX;4f=ZF*SnOYWYc22i%n`pZV zN+y>_a%X0vt!|Qj4UAaA-PeAFlE>}_A|Bb!ZDKo5$t@BhD%}2lv2~VZf|ZdGw$D)V zSa$(CLEG6*v}Y=r`{Q~QPj6X;sk*=LxIFFks=i&$d8iKSqVe@SouOaNkL)=TRXb0Z zh|be5Gl#9Lck7v2It|I_wj&jy`I!-p_tfv2w(gHn|5w|G+|HcV#E;ott=I4Po)kHh za#FV@XUj6VJR<#m`||nxM&A#mQ#54J{EUyl*E4vwe)a8)ks6n;!YBQv75R8hOm9f4 zD#Fv-m8n%mMkqc*y)D-2-(LUoYsFl@m3{T*wYs8TeGSp~{fM`-twxnTh3t9J1~ZXw z-dyrxZ}l~5ZY#5PqP840i!M|7`fAo44s^{Pv8zHiKO;5w$v#ERbcPV&^m?&5b-SJI z#Coop)h)@1!mR~*51nn9T^?y2)V|WE_zUtV-rqB_sM%Y6g_>K(K)+(`ckC14dA?ca zx#>wubkC@9asNi2>@(D?>XwM--6!@?x3isC&sH<~^Ea$Z&Ca&0**wBcn~bKY8s^0M z)UfVwU zo_~M+rvHBZ>~G)x{Q9?ldi~pRZ{wA>a{-)_P_r?Q#19K zPygRvUqnZl^L}Nvc&HxRkH264_S+Xz-W6HE|M&aX`|@9_fB)Us(;iULxkOfsZu(ON}B%3uOSh!P=$fGLxKL~VgG zg{pM|Bn}lt2r)v!OcY3>GQGTBq3yY|2Lqbt=iu2U+Z7%U+ZJpRU^sC zd(Pfx56^z~&f2we>-@P(=NcIq&ENLzH@l6DK8-ap`Uvy)Pr!dUx_u-H{NG2|-CH*q zRdiZB1z-FRa-+{iBO_}5JZ<AlVEIC4 zIiME;IidB(?I9;p)n^~KalU}#SEG{B7c`6?^k`t7ZQAt64y6BLJa#okTY- z2Rw;&Ax-P7fQO6IAoem~k>sP9HTBmHbtrnWO@mzIYQpLKiuF?ygwxdopjK;M6?{{d zD$Aw=jSURrwbz|UveVTgzg^G}gy1^TY$~u$=${(qrB^AaUuuA~5O%7T!ygtB>V{%@ z1M4uVh;=U?J178E{Ao~mji42Lpy6O9injs;Y@!H0E}9*sMF#d~D+)~R}) zbmE9?0z+ah+B`^1?}05;*1Phn^)|=qDO<-NX*in~iLs=6c4?tr128y7o1&g%Y}}Z5 zuYz<_noR>9rllQR%r{LSc*WzSuv-JhJKtLTZ5?_2E5?*{H&r#VDa(HLmU@ zgpLCt0}wsVt_h#^1G67UnVdV^)YyHk6mE68dU9FYIRGExrI#t{KiBU1RqEx3)0m^d zEl*{Ir1Pb>-=UGOzimcYfj~T2obm%RJI5zgCmcrXLg=(l82aSrclrhrMw0+eO*Th0 zBxC863F=AV;OclrMY^Dw_3G|CYRE2-{KLei0zIV9;;R5Je8BibeU4_Mjl9b#ipwAaz1>UU#=iMNBF5gvYVNme?6-a6Y`#Q-?j`< zGVO{kkJD=dQ&~PU4{P+IGgx8!q1Rhb#Re%8!23Ls!)enn2s}A3;I$4;ZW?i`ZXy8d zFjnx1ro|>Umi?_em3rdHU$GRBhXZP90W#>+zP`ZP$oiis${~; z1NBhhylm5?!YAuOgc&bJcoaATubY~9=U;#)I^C7MR)&i(u+9qJ4{2+b4l8uyGF@d~ zklh3BRML+JyBf6@A(oH!N#)`TK;YXmHcd(+~mt(s_w65gn7h+xuQonDdm z9>r)j?Z=21-WcJE6#WfAyKOUJXBrgJ`#&=Wd^07N=kY12rctA>$5^2#w5I11cUPo= z#@JH$>Mhhfp2rCMWGXNcZIjl&I$E?k0hLCv4)kcsN*mQJOH@AZ~uhiw^Deyid98^8=(T@crPPaRqj6CpES z{HGr*ZkFmF1LRlw|C7&XnrQi-*Cef=%J@W~yC8%O%_U!v>7st9-S0rN1(3d`Tu;`xtt>NA>L>p$^^jjO9 zwa$&SoNFzauRQ!; zR2a#HGfU@I>lpUBpJLEE)A?K9P#e*z8PRuMgzh7ohJ1?N5wG7%%oK$;g@-T37dmo1 za^BDnhdnjR%=UbmX2*29&;xVV-y^tx!npIhGy9qOAd|OITVLP83c@P2M*QDtPUJ$G-;T5=sMK@u=+0;I zEIMsP2(V*Z)dAVmfh~<-8dTS1-Jgh2D?GvYt*3Xff4w$%UmhaDAwkhB-K!^)Q*@;N z%qsIMW!j6PH9xaxiHNqn!E&HpUCJrV!g5*j^G(r%czh0nE@X(`zFpjiW7zUD8@{qF zp?BJ3mpXPn^;srsO(|3Ow##8!n$FTkx<9aTpRQMF^8|Aeu;7L zdfeS5mNHZ5+M&`an2vUxQ*^ zpvtMhptdw{jjLw^Q3t3iTDlIhr^>JywUTy6F1!#Equn!=sd+Y)jr*!55utcOXoPqn zT9D)f-)KeqQyIigb5+wd${!Y$X^`;W$P*KFN5?o<;$-Q)O+WK>3guJ&*d)0^Q&rP< z*N{(vKb@BXdx|av-Ye?}kQ(nH>yZJDpQclsV%$_=8K?@WBs`{}*c{(?2GgQh=;@EXS%g&!!?Kf*`-tfjjX*k)F_^#}W6XVde9@&qL+0JwRM6*~q=9 z?17cUN|_+-*74S#K6BT;V)Nz3h_%2HV_waT0sRIh&M^hQf3%F=1N>|2ZL9hwW7YYC zsipD)r21)JPmuN;?Ic4)*GR+!Hk!V|!}aX|?GLHjuV*2)L^3(>e2(||9?Q-`>zKwF!Q`{x)U#$TeCf65!P77uVP zqsAn8V+y9Ebp5HiQi-*`Xp4>(+n>Xx4y(5Yl~3jt&L}f6D)^@*W>E2gbFdfrCQpXs zZirLK%7&od_7P1U-pKX*lxpXY%7W@t0#-tnq*|;+L3w3CAwqu5P#@d5W-$cY?MN&) zg!1t}$$C29FnHuv z%Bc^By7(X;4CR22 zAXlG(vISaA$VnZmXehai>9&L)cEEYpXk-vqqGjv>TSM{I*LgU)C_Y<~L*>^oHEB65oE5aULO&onYHYM~Q zci{{!@s|JQcQ{LQF?cj9{VWdnmUXO3sWzXVgOGbc1niB4C|AxISHO(3b)?v96yjC3 zh&@JefhtaoX`%&+mEti*V*ZuRthb_Bt+z4eH%{^ji?D_Bti8im(picgt9(kPj!JP_ ztg#sba(USHMj^A(!2xfq^5j^rv)tdYy{aNXSp5yUxS-Foc*E+MByfq#G{*6qXM%}_ z$UoV@;BS`4{ML~Gkpy~VDLkra1Ly@a5+iM)D$Dj zMSn+y6+l81&l^f{0gg!kN+6uRE}&bb;MvNu4@6F##c&hbDVK-HrX%`jec5B#3Ao1! z1p1=&dS`s_^=q`Ne1Zc!#xV!a=^2@-)@Eomx;&MgpmMU#vE9CNo=Wc(yVibR?j8g{ z`I!R*W{>!z@<{hDxOzeB@-uZo;+!!Rp4C(EG7J65$71l))$a$e2sZwhh$J>^9LCJb zbQtte1$QN%L9tSC=6t|X{~cc8mSsmYSAQ}3ydksP6}f*01$;aVBx$sMf)Yg;5ssUW z=OC}hQ@h5(C-iLOY9)^qG$jrOAI@3{!S-WKdHb(9jiW@-2#pBqIm%cs>?6KX-T0rZ zie`iGKbUD6)1~&(KB-x84zIt}U zz*D7_B)VdMLto~p{J#t=9|SsRQc?y z7H3VxV?zo0)i-!Qyk$HO+Ztnzx(u{hx?AQmUGCgYX($d;W^+9I|aEJMNxXye~~GYmcanY=^FHSdwn zAAeR$HtRfhsM4L7KP0D8ErJ@7bd`Q6#83}66>Gc1{l#dCMN1EMw+9^bK>|6Jy{!AW zWYiRk4--*`lC}nKPwn6B?vjlvSjs4QrSDtSM7izz0T^1V%XtmYFBPl3K=DhhQKh@E zt_+M4MVFFO&rma+D1ak=J3iicYu_##Nb$oBKmb|WcpDBO+^M{gs22zZ`qbO!E7*8n zdk2XsiEz$xJQE@bx05Gq_h3Yxc{t2Dhnv6kl|^=aV7&8__u4`|bjbW3*@Yq#eZm&i zA~G8=0Q*1P$HRUW827RKrph)pxe4-0twEa7=P{;YD9IIQJ03`~6S-{MjwGQYa#;Uy4j5d=l!QO0t!^&*+rO|0*{T8qpO0+jN>@CqvZ zOVN^P*ck-erd_yleJa+o>7&pF2T#`~R-p)XO)7EunU}hqnPx2YsyHYU_4Hg5tyLIF z9F&q~0ZBIL9+9OX`JAM;#?6-}1>G+`1MGQw#e)Qdd&5FqTzU6ei3PJ|Y5|>o6+U7? zJ#an4)wlg;m0M&GDf2S=dB{hS0BuZA-x)UqG=s4@OnvTOJk4|WYY!NwUumS=ovvE- zeysjQG+w^yhvB>@gXWLOr}oDHWLapk1lh%~%z*-L3>3f(5B{9~+ z>)`z8utq%vOh6y{Das%tgOaApR*qY37>ah;i7@H_OLi@2eeuia3j`ggpCXOleJMgG*vI>1n1J0p2QHQSH3d1_Q zTbpwjglM!_b~I2A&88XSeLXeqBc?Ae;ma7W2by}qgDyO8{fVG&p$U(0aqsiBVqvg58Lmzfkr!S?g_!)IKEQlsntMO6>y*j^*mn0c(d{VET zs%g;S7^!9wMyS^(e}f3E;E=N5_=FiKjBvBZyaRzL0L;9PJmQwLFHvNVBoKLw8%;g% z`mOPp%Dz@l%0!2JH07qulweV*LVUUDio7bItL)BqO=-G-(>KP z&#&bXN*DoE)>DXi%pdV%Vs%TJZ&lw0*fheb51JCmN?rBeGENhfxEsJebU$xcB(3k+ zU@HiN`0)dYw;n>2XxDUVf~1?JWSM68KEB#KVFQ> zCyizEep_F$f17?nxU~Y8V0Yp6(g}5ZNKA_Zs-P0EGvIpqac!Th1nGH#(b~1Nx--AP zi8Hbq3G~mc`jMB00~!cRRrS`I&>HE~7{bykyezJM&3nx(zT^ztL>uv+xbX0U-?a<* zMcO^Qh~$2=5K^!DWKltI*MYndrgqQ`+erv$7fxfv5E6qWyAm|cyPl-~zN1q4k3Lxw zr;W|O{;furB*Y7HYFm88VVvDH{m0+0*#7MV>#v>XW?*xUVq3M1c6UJkD=OGw8k8BW z?jEt^w+gT_-*ysi01BSWbbO{SE{QHSh9A@RV|DImt9jQUq?$BquKsefox#f842uZA z9{6QQWgN~q9_V(itbzK6$XE%4$XFwN1+=45^NsYme-#fp@~G^%jMhVP#Lunf5oC~b zzAAw^K=KuzlGyu~*U+aS&BMaAX3G#C$-Tz%&5R``J5fAT1$7fT#^_7lTh1DpXBPV@ za}%?L&UGq8#15JnopOC$xJU~5P^rTKVrBuG(=s`=$AN%>4Z|tElU-8Xh6Pg*dI1R2 zoME`k2yM1T@n;xq$r-D8nJRobpPB8;3G~V`SBT`a3hefma%--kwcAS1Z!r2)-(%^j?oMmxk8N zd4!ocl$U{gQBdH4dIp;dK@L1gbGf`^m5gj`>GeOJ;7lh`}e$opo8 z88gu0%Q8WnrT4AG$wQeR4;1e)`kMG=l7BO$brah5ajXxhba=)qZ;B(Z6W*I*1O3{e z6ZDhKQtq7Y#)HuH6vEb*ArDYJ{<6CLVeDJWD1_Vf16uQaz@r+S@fs$M2Ae^RUj3pANW z(biX47o+`tLsu2JmYk%j^s}{c&$pvT*9z`xG|Ia>x%|M%X0+e+`Fo6R3bAh{F+Ci? z(I?mM^{wrri=*JNhjEu{<`6H|!0L^N%SeRrT zNJrp*lQcNx{M)m`Gu@~8 zI0le`wbG#x(dw8?$$U7E6Z+?VTwklmX^y(IR}ymq`@TES9&se1D6r(W3^? z=Ydt=)7AN$k)Zzw0WbcbFbZaZrkoo*QJ04$eP5m&JsnwTJzJVB2)=&TmzfQLV*C0NFPpKpU~^}A|r^5mK* z62CktRv-A7(?&7fkGNIk9C=ruEpVD!O?gatooNw#U#EjT8kYC#BYO*8fNZs8nR?ej z3;lK#7BWoLit$WURlt}18a2rU(o?BjKeVf&cF7q*&Vi7&dte0bcp{B2( zV8?W$Ov(Qk{hR-0guv}yE7&3rwtc}o8V!*wohpjZr_T|roO5^JIJL2co@{rj0=J#) z^s!OVjEj4T26G*4_pzEsf4%r+?*VKpc1jT;Y)tpf;`U8wkHz~BO(HpGW9C(;%`!%A zhs`s(={RHkzyRUB)$wXj40AGd=j;@c&&52hCgvk*qJDGzM81@92C*~84S`!4g@9s- zDXz%qvs&`gXe+fhbYSk~o#Usit$zl|a zx;MyVHNw1;pix;@TyU*UjM<4Al@A7ke4-4R&$%Ff_bWUQMVCL@@af34PR|28#E-R5 zD2EWz5(rh}W=l?gDUzwaV?Q_k!v80WJVanW{Xl^PX-hhzr}dK$52m*OA>WaTQjQf$wYx_V3vKjGO-YRQRo! z$wR>&xC4vQYZ__X`ja(6FU??ZL!?f=1xOp)Lipa?zr3`&xt1yKS-WR5&57-4hFu`G zWBtV2&P)L-M$g``zBf-rd{l0I(Z?kAN+-F)vFjOpGrBRp19i>J9Dypo+zog4DsfuX zDFl}sarJRVtqdJG07K~wjIJZIo^w5=~dfxKan8RO)u$>sSaq9)JE&5${Kv>N+ z6Gnuejgl$ykH8;uYcIBLoyf+*q*)Ucc4LNEp3_(Ydkhiqj!9NpS`o7-)i;>>)31%x z8)5h~K=a7u&bq7U!7%F$lTFzlBdrg52|CZK7{eQlovvc8c|HtsUf*hm)8I_-(PzHj{; zm243%svmG0>Lc~G7+e*@SKq_gQqrgtzDoh8X=pbqvoEs9*B6>1qM5gnQ$ZiF-g&DB zH`-1|)$|;r8M8f#9^TH@G1av4yR@}Opm7y3Q&=+L__5J*{u|lUVI(tR z3sC18hWha$yz=_wH%Gqc^pje(m7BzhCj0@XQ za`S8#KGMiYfAkGqyZ$}-jC|LQT=H&*TPAq4YBLLdqf9FOVxfJ+$%!F~iXG7C)za|zKkTI-70<%w3X(o!V#G{{42o^!o z{E=%Gu#2G6RJMk}Ps+9P@0?~_p^`wh*elZFSv?g0dqhm8QQ_6OX{z`Z1xU9|Ly~3N znAv58J-zSb$Os{ffG--XNPhngJvchG!OR*)J{CG+zDSZqc4^R)9jL&C050R3)A07% zIAYK~55ng0Vc8mes`Q-IEaPhmr4~7HC?F)mXwyiB$3d(tr9L1;LjY2NpckP{Uh6Pa zSJ=q=ITQq?KKP4sOBq#!V2d^D*?oKM;`M{jOsEK@8VY^xfT7ZBQd0F((I~Ghos<|MoaL^t)DBS4KzM?x}l!uTHmy*t~$6VcTQUq zBl6i~n7Djm39KE2U$p2;PMon5H)xda#xxbA-=qvLwU8FaH^s^*7}5>$MB~L^`4a=S z{piuqm0(%=gL{N8kZVF>18P9BdN8a~tlm|nTi29Gx}o!Wk!bf|!F+H9{1fFG0aR#{ zZR+Aey)=1W+&Ft;ugFT2)9}=ZxUzK0Y5zKC%(U^C!@1oUdN8*iXT2Jy>t9g~=qvU3(@vNH8C=dv!&_0U(`#%cG{xz-GEn$EaNQ)v=PO=3{q1_C~w^2VJhjAP`|OgF zfs5ELL=kukfAk`6>B?6);+tIoe`X)C(|&u|KE%=V#21pPEH{Y~!F^5KiapIy(t~JPG zEq}p87~V1U0sjT0slDS9wwb4HNV+i}5)NDQfW>oyjS~Lxdo2Mg{J0GtU`sOWA!dPv zc4iSAdR*1dfxttn#fu^fge( zxbh|q{<97{fl^E~s8Z+P8<%{StzhR__XXfTyS_;`+T7ACwU}E9J)s_Fb%!IQQ2l zG28f~FP^Qh{h@t8Kca5&?Ts|qnR8TXhofkN{$L=%cyKnqG}y?)Au8YA0k0_c7}%N{ z8K^URstiq0_$$#J3WctZfW}yzrcBc&ec`+T$fy1dpg+0NHbCtvt|`4!%l@7;BgAur`O0cW*=V#ne;@ON@jaFTqk2LlWzS}4wA zVVRU~^kYQQ#re#BeZ$?LwUA2&FP(Vfj}kzsTb4)DAQm|~&SRc9jq9jJ{n1EFt3qUl zqZ!(2!TfnN`9nHy;Yr`&0iucb!0?O{|6`j6Lt!=dTAuG6ZdLYGxy^|jd9`yA(BjLZ zuO~UU5Nu{6wKrpaI5~xAf_8sMK%&dQC?f@>YXf^{3^evhTEu^7-B74^S8Y1KHUmpr zZ-`tr(7;BG+(rUf&X6saZWcCPg=wnLJQa3q0(R_E_(|!c9y63Y*#Uy-(f7zzQ&uTy{a|=F^6N9L!xxTQg6_y#^A9WUO8*I zZ=U@O5L8iUd@%%muHL%GS!od9_10O4&h-XP{*~G4%?s&)`|?Dq z`JL%}r_XrF854$E%1(M0!G1#9)N_Mo;CHlfekjo*v$ItZ`)qFv;HzJ#$qs276JJd3 z-C>7oKd!?Jh69e=diteNNX~0uW0qd}3cY_j$!*gH|Fd_u9l;ko)eZi7M<#Q!{_zDP z4T-?hUi`Z`TR5IUK}nZvS2E_j>!=>f3g0PApp#&IwbfZW^?+YP19^eel9SvoXYK^_ zIKlq-y2;)g@17psFx!EOj=H0-{`Vi94dldZrN>arLuJjmk6XA>nJ)6svVC2EI4rzme>^hEZ0B0<`{6d7r27>jWP51UN|gWeBi&3= zB^99}_0}RZ@|o68d$(y#2fyfM%KV&vQRAprN}KN_?6`bpcTsg@&YryGJ3Rtn=C*#g z&dG&@KvWvp+1Xd_IO=8iRuAd4=X$%3W{H}-31J%-gD#IdXyxx_#tX5a(2$)=s;n&; z)xS8b6zPrca5(v#d&R`-z#1kemTaeWvtuc6_Pxvj_4fOjVMry?EWh z?{V)$@Gt^0m%bqfJQv$mwr^i$R115tSlP8uI(qH!Dpe$i^RnaGmy9q6Zj*I?G* zT_zYdLn9mON&F}ItZ~)5rSQ65_E!B!dJb-~DZ+fs!SV~%4Y?-pi^(2M#Ar4`*vA8! z@@v>xr}j&A_A3Fvl+#?yVJ=h(4>A@Esy34u`=3n)>n&%E;v1>aY-!LS2)FKROX|Jg zWsplgSt1$wx9jU8uUVfc?Gf#zcnjz8_8OB%1hRCV38#5maSqv2+y1@Y*qos5Gl=A6 zpAQIe_ndG!5bjC+{2+$9_r;FFNw;N0jg)!1hJD|;Cc{|5T0XURv^ZK7bterOG9rn1 z+E{UJ5uCIQC8bFgf(so+ysjtXmNp%m-%t|pMV;k5@7BJWNR-K*jG-dJ#)h5U2zdeL z0PYztS*N-SRfcgeSO#&>?JO28N;^QioWY4ah2$BcnXikdlN|#_FkL;>pQ-h}fb<#0 z_%vxxWe&A{m)<#;8fq?PFGrA>R29!L`x{zgu9RR5ldwlj64a^@*qRy|)V?V!IvOyp zZE<2b<&VaLJLeLA5!Pjr^_?wgXYW@?enOT%>?3$EtUz)Y9@!=s`12!wrBj$Ycu}(P z_^@h75r(4FaT08*$TT1`!Fg^SO@tbTjQm}#T7Ka2x0af0lzIs3Km*P=He?!)_|>G{ zozT0Cg~xZ;%+XAyhU9l7hZRTr4u~8OJO-!#!C!v_8Pg?NWX^`UKF~YfHe3?*^nKlbJ>~RA`-)`0{ulgKZT?>Bjde4mM`|I3i$JDm^XC zLllEGD|yIKiM?fx)GPLu=bEu_6yc-U{7i} zVkqsx44pvec5)*jagnY8uc;ASN!?8yqWX;PpYAs!*)x(wvRuk8fnkx9~Tk zfH&$vZDD03u>E$SI8h#tX=p{{4RiSh@8b;T_xM`z9h zIqbz^4of-^!dsl*&kcT&iHbXybp1*=fkLxB zVz|bkAA$h4_=MFoxn@9OQbxw?h08a|eDvyZ6sBoFcz9XESs2#JN_e}mBgjA3{49a! zBstXW$RqfSpB`o-k(~cHbROdK51W}wN76?uL zNKbRHzHcb3xG{1&JAY3dkm=T0Xld#%-6lSXxZ4(hWJJ~OdHL5v^B~_R3&b`}n^G=BFeiLQQPY=^aS9Z4*i=d4X^4|^C!et-^x@J)ye`HqTn9-W zDQhurS%J#J{F~R8HhOfV>ST}%D8s|>sm>)khK<2^&GE&xQtirUR4#8tMcOoK2wCaH z<2frNxVuGKBp49`d&;$AJ!=USPUE7+JrQ~DPMp7h|33MKoQB)nZf$aP&K98%8;qAM z!rWuIa1lA8;$EPo2+MsCoD|}pfmAX|gulXZVggGd*CveVg94wv@ zvNYI+=aPo~QF;rSaG4$Ku|0JQek7^Q0`-`&>D|ojw@Ef&c0@}1o0}MnzZ%1r3BMu} zqZ;lk(`eKe&p2&$z?`Wk*^Ch?2Ag20rS9A;-inq=4ZIC=$G(_$*U@D|MK@@rfLn6PqkXh4u5+z?4ggo#uC$9%Sdr^CoPMh6@(rI?|&2 zAQo{yw>?zm754DQ-a%@f2Nsqp>0fWde~}j@@6nUL^zx z3lDo0B3aHwA6=N0d(-oz_#!MZNCm8YXROo4`8~!>Zzmn{Pb?3RECFjkmh5EB~FVEtBFP3?g4%QH;vz{f1VVb zs{3Ic1CgP#qY3x;b9(@rcUo-lf!{!|ThDf7e+~BcCB%A!nLjMt(CH=iSiv)62MnCI zDino>6jj>0elOPA74W_c;oL!4RxJ72gmC&ZP4v*DUe&Hk*6JL&OQ*+x%vK~_f9x|a zrGn8Rk&3YJOwqqh8$7KSfr4CjGHVgu716qnSDmg8hP0m%}VEb(i z>ZSFb!CJtPKj2J`13B8s$dNM!(?TfMx^Z^Mx1??Q3MN~D`7rrbO!B!bMhI5mPDqIXRpOa56isYZGjwTq3LP%?nUId40Ajq z;=UuZ3^~sG0!UTM-Ex@hm6(AfwLA}))N+f5mus?+V6%cA=TOe+Aua5BJ@ zcu$Ca=kK^EZ;A0Kjx3NN1bVB&AqOEscetSOTh zST^cZVP%k+(PaOtP&{V;&SO^szAV75i$O~zaiHhDvvzLTpkR%>;eOzqY3paCe=Cvu z%63P0UrW!%TL;J&{gnFQHqyTctD+(1jjoX~F{{DW3~H(J+H0EiJ7DDLZ2xxx%!r7O z3WQM)blnjc$g?0ua8oKdKYXEPDaX8O=V|z|pfwM;eP!ZN!uFQ{!C$dDBdma&&HmmO zv*J-bD8O!f*f)!#E0QqOjwXcS2qBqZk5w{OzQ<;~6wd5}vV1%)S%1cK-ff-DyjGiT z^9ZJ`Ej5eL#TeoiBO~8eU6u0O!1x2P7p#frunV5A(2s%)!09&_ZGXicNZz8|hxYrX zV9%F_#1@YvNQoYL-)#Cl!85)9gdaScM2D`$6-LdltlJji7dTEEzIP(VGiNeuVnBGt z(xoDxMml;7vIV?Cz3Q`I6lD9_akPV8OU0~0fi74HDG-qcxDS49eaUUk1P9vpYYom)j~I-)Vqe8C4u zWMz}PMdUz(%K!S8N1{!D9O7Y}zMBQC>vvg^MEX?<2kK2Dt)}#8i}$V8Y{{;}g5WtO z0!D5|#W!>>ozvT61+N~}J^JRuH)^JYfV+D&rRiF5JZn|PoSsv`U1ZwTZUaCJ{%FIN zIB|kZZ902e9n<-4r*da36PPpP7D&pnO_4DXWi!nrMn=z7`?@^f0p-ac&68j+WdOgj zW9RhtC56cLRFQ{e?@^q$rp*z2Vcj0pAVXK`(;6W?V7^8$_E$b;m;{C5d8l@kPxktJ z2HEKTmF?XDm~9U@kK|qTvfnQ$d|2tk*}=?~#9RacDZtYV4nse8V#{S^{UbKNywVcP z&JM+aY*Sybk@1FRCQkW=nSI6C&tyL)y|+~P<$&tFFG>U7PtSd0P9JF5Ko%gPL-AR*Dcf*} zTyK8oJ9#tj7^zm3gfCAi2IqtfuB!0vJLk3k?|3II=^a4x zAKGn4yH{jfDOyNCw2o9qiEqC&-X0?AW3C^SzE~zKmJPjJEPpmPHkm{NYbxGk5%XRxc&L zjsLu1qqkCif;JqqmO^eE`UVFKxBj*1W20KDAARqCvj2h-8KSx)XezwWe9POe76fTnLUwy&NNEgp7NG)(f7+`I++6t0757 z=UoB~U6ShW9=8pHbfHAeq2cQM?dmzVX`+7KT7t?Ge{MX^P&~~?4^eLG+m3zM&CUcC z24|?8!`padVtRg@LP-JERTFf6ZhA$MAkn*D)i&`&qG=<@(A1%+Rk1lsV=oSmh{glS zTav&zl`=Bo+(u>{N@jIBKc92D?BRClUp3^0u8E1;q&|`FLM8QEoK>h>m|5(V=<^B_ zn^??6MS|ULL^U|XFcqH`k{!-#mT}lWLl|{F{Zn;$sc9IkSIL9yxvDKneB7UoH8b2y zPa3K?A8gn0?G2n;Js}z_I}Q<25Oq{xLI?j!++xt`4SXX}jNdm6MW{Md5#Urk)zKJ> z6dUcp+rrhYNFC;LeKCsHEcM-}tUt5C<3;G+GzLMd(v194e{_Vl3#aPs zKEO}s56NnzpCl;gkl~lc@Jmp*`c!5-Z_MgD>Bx!d=8?^V^h4SbP29-&P4)bsmB9Bo zjKy;Ou3w}tNZC5|hR4-4SH~XK@zyIO!{0doT1zuQ46J#Uo`*Rq0ZK|~16fKN}7itGglSpfP zAmOr4SO2vyn3;yZb!vnJ=WP??D&+9+!SbW3V&2mouH&ba}Rf>LR(BBm@y=FPT8a?#Br~m!$|8F<{ zyNSX7C!61E(x1KlKTZ2zXC*W# zulCNLTWwRdCSEI0y!k*1w9pB>!)lJ1zS{~YP1r7 zg#6lK^^&W)&*sBUTWOS4`vBO7lN=B_2zt2^IN^zRqjkVI_6tCu=6GN?)3lQwkcUGa z@&sX>wx`+~RVsxP6o^c*<1^F^&M;fJO+FFA5mVj|*QKWO^Y{sAC-u3BCA1yO;AMGB zh*=V*K6$5y*GZ@Sd2VzQO2={Ks9N4Ic_`0Jl1sTVrHVmO!d- z6X6e7;xQ&~v%F{}IvJnQKFZiT8pcM3mopMmD_pmdyIUO)WG62rd-}VUVt+upa{k3B za*Vu_8gCqLg#fEf9tLv5O|`WkR!}ig_5xYuNCtTx#bny4KtLe!N0%uOgw)2W{pYMW zITYT3_|C~g*9aW?@X}MAjX!9Q(}xBA=qTj_IjY*)5(2{|8k50sck%5#)KYz^XuAec zmW5zJQK_T(;1QgzauPr3gDSe9Mea?-&)^Tloeoa1o$?FG4d9rMWd?lirpMfB^XieQ zwYnwJ9jLP#nvf{+-@_YU>EtullqxVSIilGrFXpv*n7)-THMa9UtQ2tW%Q^9t& zeH5(Iv-?z}{W8XW_Xp5oG-vEW!oYP1af!QgHzXl7iV$=Efe=D20$1{#u#ZBu->1>U zr8L(hknDV!$KXP-Y-gv~XOnRP0m!L+YC)Eh^-eGw#DVD1?+bBZAj4RxcTaq0tf=gq z)w$ovFi^tQPacYD+W;wE45!>5Dl#Y^T=4(JlV9ovb`-kv1o5aU@{L0%ZRSW^=NU&X zV?Tc_7L5u4{zz=qLz|kVENNZScZ4nO51}PQSuYf9_u+VYb<;OMKvmif~FiB zYlodr9t{Leq4V2=9K$?;vvhB9T<4^0a~eU)VGPQt&Pjq`bFs06-xg;F&eR$C94Gp+ zVt;4BP)#Wo9FaD3h&9e)wMW5lk-!`L(yFBY<`4{*8&(ni7d6l+zC9R~m#>pgd=DI_ zvn)bksA6aicIJ)>+)7wJ%dCin?uq4g=Po%lbu%JS`>Uo%QCLZVdu$#Z$t@$(xZsZM zRyfkzovLoYbTGQ-dU!|jgcjLnc9!gR`UP()8a-A+AIc&3>xEvAv4P-54F+1LOq>ai5?SR*`5#SML6;) zDr?1l`V@?vNfA+N(a##V@<8CYndD~*qHu%$JA+8D{7MPgja?>zJdB7;)$Kra+D$8^Jkw{vcYbYTpD-skLJm41Km`}to=vHa*J8P%KW_;3P4q zBeXr2LW(kc6RP?@Z@WxkC5`*w83~tq4V{1oox^GR8y-$Y)(|y4)k!EaI*uSsyMoM=v=`rvG5q*t3`|?S}S(zJhPL1Q`Vj%^{1) zv@@n~Oz){kyJZH^;l^r^eW(7P_O3ptsdLTGPNzCk_3{VPbw>m`*W0cwmtu*4K|*w? zwOdi?<;#GC`bAn&5;X=05YF{Fm0K-v)r%NNliF4x2_c0T!bc#rUcnm3(Uv3-K5{XV zql6Gc2nn2=^X?mKXJ==2_U_F7yXU|2=1k6ep0D3?-sd^Lm!~qto6El)&Ow~z(43l^ zzTxY9Sjgz={-M#C)@chH>$Ql@_W&|!<)$2_kph963Ggxj9-!L2ge$(h=fcsuuV}qi zkvX1Ug_`sBDUbz^tjo00K_6gRJB{_&T?_lx4i<#F1hVE13?*F&)?YFS=n?YR5g5S@ zrQd2&CL~j7PTdh?Go|!XIWiaci5&a-h91eI!aoWjxB1#PZ1zYd8!Eh)yHABEHIBNH z|EqPXO@+8um5|ugV;{_m)w9{dF!4CvW&KIBbhL1@HkW-uyK4Eg^0@d$2|u>0Noziu zQ`LVWzexiVk;Jlv9=inMe}9hQko{78KB2UGe3X*nIg zHx70D;L<%$`~GJeE~y1G&md6!zX|_m+%&zSrSBOV`mJls(|HnywKA134-#u#P<@vF z-!68BYoE+yLN1~bqC6mfjQX9|IP+yjS7vw2*4)X~UH_{J3+z=u-J_`=_B{@0{#;4) zadD(tnz_F659F&a*7nEpX5HTr5BoBFzPsCr5zAfCNmDch`a>=*w`{Biv<0-mgHk~?K>GpSYGpwy(KWk@;Iq6It9jwtClKMfd0Jiya z7rNIr*iC{D?t0%T9btZ0fKKvr2WhR5(tuZAVPyD$vb(W%VB%~GPZFP`N^X~a-O<== zg=~Tuu5zXOgh@Cui74H>spyh>k!2L@=7-I0lG}@gVQ`*V&qc!X%I%ycgp3oj9tCD3 zVEQsqw!kwjXG(ZunBFo8v{s?QCsZ6SdrvjKPL9jlt|xL9_4`;x3g39#xGp3fIC8q6 zL9kGhho%dRN2CC@h5bm4Yjr8Q&Re^GfB7@$$+U7r)V_?ox8>2yke zxv;lQYnYh05AL`)=Lkz(E*8}qNuMWF;+?n3CD(6@E%et~2KB|~h+I_W+mNNMsWA-j zVfV*iFXW;hXk_((WBSHoY;^VfV0}F>R^44B%7)%U8Z8cyFs{X{?&=ZnhW1CRe5Q79 zkiC4N2XEThUR||_g8S5#Da6Ih!RHou2OMoj76#5E=KZc4r8;v`)=s7~e}aNXJDZzW zx4rZX8tYZnygrdrEUB>7_c$4bNnJO%L{g+|8R-OI?v)74WbVrOt9 zltqgAf^gYJ@RlG?C6X%kk(TB7WWPq6!YaR2Vcb;L38MY>bw6DKdWt zt3>AnQCY_ESqxk&f?v!vF9}aYMb%C0Z}SxZfugBw$iBZ-;)Ne*dlIWDgJ$(-9lAW* zD5<9{sFM#~=a=->R4C}(Lw-;)&b(Q-5vVShsaN!`nLEw^*TBRjYl>PT;?gZG=o3;P z#%&7`c{3vF5&;r%2ATSknAO@V*^uomYVYd;T*$^R)NUD>cRq9o*yYv0M_N<%Eu7%f zBIJ(R1;psSQGP(dZRH0KA>;5J=$gT&jaFTM7UQ4k>YriFZ^yY$=3P;=(a zau5y*k}D-==cwUS_BadJ(R4yQeOnT8!`oCg^#`&>?i|lZ;JOH#NjkeqwbLnV$e@u4 zMuIL6TBDu@+%1)|VM6J{jwz7Hp>YJmbSs#ysGiW`=cDRT=&MuJI4G62Y+D=-zVq{E z6AN!lPG?lKc7|2Y3=T-=%86sBkH=w5QI91FkJ1#)_Y}VUE|9;HcE}iRieBCy{rAra z+nQLb;fZJWbcRn%3VOO~$r?jA&h-lwCYRii&FVE znCdL6IZI1qgfQHDtGbcSGrlF60{7gVu$vB>{6$yULnaX98r3I(w(brMp!0fX1YW@0 z*-~~3LyALYpoDXN?qVNKSpuXR^=KM!DGlA_6Mrtwp1%cTted3=+)%F+-1bPEz4wCRzYO;-8gsVsn3|u- z31QkypiL^;=;{UA4qmS+N(3wPR?iP5-GA0xs8n*x&-K|oXJLd(Ao%5^qd zf$QF#v_s7;S(Rf>5T?u?9)lxa_iwMS4?ajlWs!x3D^N#Mby*IPZ#bo`r5OoaRFLQ0 z`x31{+aM8HJsKG4S|qdgQ__wYAJX5qeD{#lXB%b9Q+37ZY(&Mm~dH!tTzxdP#%yEcx)vfQK_nt%Dcnq$W5pT1NnLFXrPFI-YliWupm!x1s zP&^bJmeuZkC;`}uaOk=Vz2zxkJ0PFb!m`%;uUF1B_0P))x}0W+Lo>(Oa0-1caBNZZ zCQ6<2f{&-k7WXU#)6MU~^^xWGR`_(V1wAb=E}_GQQX4WGuwTjy`fU#;`?q7&+q~$I zW-|xaRy+0?1^4TqI5%kOwLIo`esZs4rOS(gvzm2U&BYzvJNy@Oo;t~KTbnc@DUc>R zZG3>PoZ~s#S+P9tTf!?iNL>v4J;xzRVJ)q-@8S6Yt$dtWJj51cV(a(*MxXf6290mK zC1bj=lUo&c1x+uZl@;U=$TOPqYA(ZH@~rb0_|g}p)$~I9XSq&1ZZbJG4||`v+1Ktx z6qLCpWq6^hnK#1OQhx@ltu`lgG|u&>JSFrIB(uUp=GI3qq53`!Ap~81{W8UK`8jsE zkgrxLJQGRT;#!gJ0&B`kYCppN9s``) zq(X1_S0gp(wT%JdkdE8IJqk?huFKYeVs>k7L~E)+jfr-!cEmd&MA_FAxk0;Uc)O9h z>;=PQA&vFAMrbl;L?k`4GT*2M;HDJJsZ)eT?F>5nK`|~@!mQ?_A4x826g02Q{SFXG z8B-v;GLCLJ{z!Z_lL!{l)S&ta+)IfXBXcRP!d`}LmB2JW#m=0kQ{WIxPI5yNFi62U z_CIs_=csloTjWQQUyWy-ocD_Ns%N!pgWzG+jvR=M3;B+se-DcoTgWJFNB^{Atw^nZ&8D+Nq zMhNKj4<1!~S_Q61K#%?AGM%7g_86g5>q03Brx?`ZF>ZtqtKrS!@`Vi;oJ$%FK(Zv5 zyu{L2kv`$b1ft}wGNPi~G@dbeu5zm-BO({c8S=+NPi{#J0i0=QiuFlwh5imYPeglH zqKD%vL6}gDfafPajUlc9&FbKCVPBE6)vY)TtzlH1QYP7hZGM932iiUT>n}&3=`QiH zR2XoPexCWm3CrV6iIYeymP7?gjb3L2jDzI zx<3?=TWAR|i+M>1=^ldI^xt%;@|Y!uh008v>#G%K5+cUllEVB2eIhza%_oD=1?rP8 zD)8UK7mpXE{mXCu`d;$8%n*}J=y?C;uNVF$9TL4hKVBOLVVvphoAyh$7(xU8zURQZ K?f>@CpZ)_kQm#}0 literal 0 HcmV?d00001 diff --git a/frontline/cluster-fuck/RSIConsolidationXAUUSD/RSIConsolidation.mq5 b/frontline/cluster-fuck/RSIConsolidationXAUUSD/RSIConsolidation.mq5 new file mode 100644 index 0000000..09c4d7d --- /dev/null +++ b/frontline/cluster-fuck/RSIConsolidationXAUUSD/RSIConsolidation.mq5 @@ -0,0 +1,347 @@ +//+------------------------------------------------------------------+ +//| RSIConsolidation.mq5 | +//| Mean-reversion RSI for ranging markets; trend filters block runs | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025" +#property link "https://www.mql5.com" +#property version "1.00" + +#include + +//--- Symbol (empty = chart symbol) +input group "=== Symbol & session ===" +input string InpSymbol = ""; + +input group "=== Timeframe & bar logic ===" +input ENUM_TIMEFRAMES SignalTF = PERIOD_M15; +input bool EntryOnNewBarOnly = true; + +//--- Core: no trend / consolidation regime +input group "=== Regime: consolidation (anti-trend) ===" +input int ADX_Period = 23; +input double ADX_Max = 29.0; +input bool UseATRRatioFilter = true; +input int ATR_Period = 8; +input int ATR_SMA_Period = 35; +input double ATR_Ratio_Max = 1.36; +input bool UseFlatEMAFilter = true; +input int EMA_Fast = 13; +input int EMA_Slow = 17; +input double EMA_Separation_MaxPct = 0.26; + +//--- RSI entries (fade extremes toward mean) +input group "=== RSI entries ===" +input int RSI_Period = 8; +input ENUM_APPLIED_PRICE RSI_Price = PRICE_OPEN; +input double RSI_Oversold = 22.0; +input double RSI_Overbought = 63.0; + +//--- Exits: mean target + hard ATR bracket +input group "=== Exits ===" +input bool UseRSI_MeanExit = true; +input double RSI_Exit_Long = 48.0; +input double RSI_Exit_Short = 52.0; +input double SL_ATR_Mult = 2.15; +input double TP_ATR_Mult = 2.40; +input int MaxBarsInTrade = 54; + +input group "=== Risk & execution ===" +input double Lots = 0.10; +input ulong MagicNumber = 20250420; +input int Slippage = 10; +input int MaxSpreadPoints = 28; + +CTrade trade; +string g_sym; + +int h_rsi = INVALID_HANDLE; +int h_adx = INVALID_HANDLE; +int h_atr = INVALID_HANDLE; +int h_ema_fast = INVALID_HANDLE; +int h_ema_slow = INVALID_HANDLE; + +datetime g_last_bar = 0; + +bool PositionExistsByMagicSym(string sym, ulong magic) +{ + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong t = PositionGetTicket(i); + if(t == 0) continue; + if(PositionGetString(POSITION_SYMBOL) == sym && PositionGetInteger(POSITION_MAGIC) == (long)magic) + return true; + } + return false; +} + +ulong GetPositionTicketByMagicSym(string sym, ulong magic) +{ + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong t = PositionGetTicket(i); + if(t == 0) continue; + if(PositionGetString(POSITION_SYMBOL) == sym && PositionGetInteger(POSITION_MAGIC) == (long)magic) + return t; + } + return 0; +} + +bool SelectPositionTicketSymMagic(ulong ticket, string sym, ulong magic) +{ + if(!PositionSelectByTicket(ticket)) return false; + return PositionGetString(POSITION_SYMBOL) == sym && PositionGetInteger(POSITION_MAGIC) == (long)magic; +} + +double NormalizeVolume(string sym, double vol) +{ + double minLot = SymbolInfoDouble(sym, SYMBOL_VOLUME_MIN); + double maxLot = SymbolInfoDouble(sym, SYMBOL_VOLUME_MAX); + double step = SymbolInfoDouble(sym, SYMBOL_VOLUME_STEP); + if(step > 0.0) + vol = MathFloor(vol / step) * step; + if(vol < minLot) vol = minLot; + if(vol > maxLot) vol = maxLot; + return vol; +} + +int CurrentSpreadPoints(string sym) +{ + long spread = 0; + if(!SymbolInfoInteger(sym, SYMBOL_SPREAD, spread)) + return 999999; + return (int)spread; +} + +double MinStopsDistancePrice(string sym) +{ + long lvl = 0; + if(!SymbolInfoInteger(sym, SYMBOL_TRADE_STOPS_LEVEL, lvl)) + return 0; + double pt = SymbolInfoDouble(sym, SYMBOL_POINT); + if(pt <= 0) + return 0; + return (double)lvl * pt; +} + +bool Copy1(int handle, double &v) +{ + double b[]; + ArraySetAsSeries(b, true); + if(CopyBuffer(handle, 0, 0, 1, b) < 1) return false; + v = b[0]; + return true; +} + +bool RSI_Buffers(double &cur, double &prev, double &twoAgo) +{ + double b[]; + ArraySetAsSeries(b, true); + if(CopyBuffer(h_rsi, 0, 0, 3, b) < 3) return false; + cur = b[0]; + prev = b[1]; + twoAgo = b[2]; + return true; +} + +bool Regime_IsConsolidation() +{ + double adx = 0; + if(!Copy1(h_adx, adx)) + return false; + if(adx >= ADX_Max) + return false; + + if(UseATRRatioFilter) + { + double atrArr[], atrSma[]; + ArraySetAsSeries(atrArr, true); + if(CopyBuffer(h_atr, 0, 0, ATR_SMA_Period + 1, atrArr) < ATR_SMA_Period + 1) + return false; + double sum = 0; + for(int i = 1; i <= ATR_SMA_Period; i++) + sum += atrArr[i]; + double smaAtr = sum / (double)ATR_SMA_Period; + if(smaAtr <= 0.0) + return false; + double ratio = atrArr[0] / smaAtr; + if(ratio > ATR_Ratio_Max) + return false; + } + + if(UseFlatEMAFilter) + { + double ef[], es[]; + ArraySetAsSeries(ef, true); + ArraySetAsSeries(es, true); + if(CopyBuffer(h_ema_fast, 0, 0, 1, ef) < 1) return false; + if(CopyBuffer(h_ema_slow, 0, 0, 1, es) < 1) return false; + double c = SymbolInfoDouble(g_sym, SYMBOL_BID); + if(c <= 0) return false; + double sep = MathAbs(ef[0] - es[0]) / c * 100.0; + if(sep > EMA_Separation_MaxPct) + return false; + } + + return true; +} + +bool Entry_BuyCross(double twoAgo, double prev) +{ + return (twoAgo <= RSI_Oversold && prev > RSI_Oversold); +} + +bool Entry_SellCross(double twoAgo, double prev) +{ + return (twoAgo >= RSI_Overbought && prev < RSI_Overbought); +} + +void TryCloseByRSI(ENUM_POSITION_TYPE typ, double rsi) +{ + ulong tk = GetPositionTicketByMagicSym(g_sym, MagicNumber); + if(tk == 0 || !SelectPositionTicketSymMagic(tk, g_sym, MagicNumber)) + return; + if(!UseRSI_MeanExit) + return; + if(typ == POSITION_TYPE_BUY && rsi >= RSI_Exit_Long) + trade.PositionClose(tk); + else if(typ == POSITION_TYPE_SELL && rsi <= RSI_Exit_Short) + trade.PositionClose(tk); +} + +void ManageOpenPosition(double rsi) +{ + ulong tk = GetPositionTicketByMagicSym(g_sym, MagicNumber); + if(tk == 0 || !SelectPositionTicketSymMagic(tk, g_sym, MagicNumber)) + return; + ENUM_POSITION_TYPE typ = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + datetime openT = (datetime)PositionGetInteger(POSITION_TIME); + int barsAgo = iBarShift(g_sym, SignalTF, openT, false); + if(barsAgo >= 0 && barsAgo >= MaxBarsInTrade) + { + trade.PositionClose(tk); + return; + } + TryCloseByRSI(typ, rsi); +} + +int OnInit() +{ + g_sym = InpSymbol; + StringTrimLeft(g_sym); + StringTrimRight(g_sym); + if(StringLen(g_sym) == 0) + g_sym = _Symbol; + + if(!SymbolSelect(g_sym, true)) + { + Print("RSIConsolidation: SymbolSelect failed: ", g_sym); + return INIT_FAILED; + } + + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_RETURN); + + h_rsi = iRSI(g_sym, SignalTF, RSI_Period, RSI_Price); + h_adx = iADX(g_sym, SignalTF, ADX_Period); + h_atr = iATR(g_sym, SignalTF, ATR_Period); + h_ema_fast = iMA(g_sym, SignalTF, EMA_Fast, 0, MODE_EMA, PRICE_CLOSE); + h_ema_slow = iMA(g_sym, SignalTF, EMA_Slow, 0, MODE_EMA, PRICE_CLOSE); + + if(h_rsi == INVALID_HANDLE || h_adx == INVALID_HANDLE || h_atr == INVALID_HANDLE + || h_ema_fast == INVALID_HANDLE || h_ema_slow == INVALID_HANDLE) + { + Print("RSIConsolidation: indicator init failed"); + return INIT_FAILED; + } + + Print("RSIConsolidation: symbol=", g_sym, " TF=", EnumToString(SignalTF)); + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + if(h_rsi != INVALID_HANDLE) IndicatorRelease(h_rsi); + if(h_adx != INVALID_HANDLE) IndicatorRelease(h_adx); + if(h_atr != INVALID_HANDLE) IndicatorRelease(h_atr); + if(h_ema_fast != INVALID_HANDLE) IndicatorRelease(h_ema_fast); + if(h_ema_slow != INVALID_HANDLE) IndicatorRelease(h_ema_slow); +} + +bool EnoughHistory() +{ + int need = MathMax(RSI_Period + 3, MathMax(ADX_Period + 2, ATR_SMA_Period + 3)); + if(Bars(g_sym, SignalTF) < need) + return false; + return true; +} + +void OnTick() +{ + if(!EnoughHistory()) + return; + + if(MaxSpreadPoints > 0 && CurrentSpreadPoints(g_sym) > MaxSpreadPoints) + return; + + double rsi, rsiPrev, rsi2; + if(!RSI_Buffers(rsi, rsiPrev, rsi2)) + return; + + datetime barTime = iTime(g_sym, SignalTF, 0); + bool isNew = (barTime != g_last_bar); + + if(PositionExistsByMagicSym(g_sym, MagicNumber)) + { + ManageOpenPosition(rsi); + if(isNew) + g_last_bar = barTime; + return; + } + + if(EntryOnNewBarOnly && !isNew) + return; + + g_last_bar = barTime; + + if(!Regime_IsConsolidation()) + return; + + double atrArr[]; + ArraySetAsSeries(atrArr, true); + if(CopyBuffer(h_atr, 0, 0, 1, atrArr) < 1) + return; + double atr = atrArr[0]; + int dig = (int)SymbolInfoInteger(g_sym, SYMBOL_DIGITS); + + double slDist = atr * SL_ATR_Mult; + double tpDist = atr * TP_ATR_Mult; + double minD = MinStopsDistancePrice(g_sym); + if(slDist < minD) + slDist = minD; + if(tpDist < minD) + tpDist = minD; + + double vol = NormalizeVolume(g_sym, Lots); + + if(Entry_BuyCross(rsi2, rsiPrev)) + { + double ask = SymbolInfoDouble(g_sym, SYMBOL_ASK); + double sl = ask - slDist; + double tp = ask + tpDist; + sl = NormalizeDouble(sl, dig); + tp = NormalizeDouble(tp, dig); + trade.Buy(vol, g_sym, ask, sl, tp, "RSIConsolidation BUY"); + } + else if(Entry_SellCross(rsi2, rsiPrev)) + { + double bid = SymbolInfoDouble(g_sym, SYMBOL_BID); + double sl = bid + slDist; + double tp = bid - tpDist; + sl = NormalizeDouble(sl, dig); + tp = NormalizeDouble(tp, dig); + trade.Sell(vol, g_sym, bid, sl, tp, "RSIConsolidation SELL"); + } +} + +//+------------------------------------------------------------------+ diff --git a/frontline/cluster-fuck/RSIConsolidationXAUUSD/RSIConsolidation_optimization.set b/frontline/cluster-fuck/RSIConsolidationXAUUSD/RSIConsolidation_optimization.set new file mode 100644 index 0000000..d6a75ed --- /dev/null +++ b/frontline/cluster-fuck/RSIConsolidationXAUUSD/RSIConsolidation_optimization.set @@ -0,0 +1,37 @@ +; RSIConsolidation.mq5 — optimization preset (Strategy Tester → Inputs → Load) +; Format: Name=Current||Start||Step||Stop||Y|N (Y = include in optimization) +; +; === Symbol & session === +InpSymbol= +; === Timeframe & bar logic === +; SignalTF: optimize per run (ENUM is non-sequential); M15=15, H1=16385, H4=16388 +SignalTF=15||15||0||15||N +EntryOnNewBarOnly=true||false||0||true||N +; === Regime: consolidation (anti-trend) === +ADX_Period=14||7||1||28||Y +ADX_Max=22.0||16.0||1.0||32.0||Y +UseATRRatioFilter=true||false||0||true||N +ATR_Period=14||7||1||21||Y +ATR_SMA_Period=50||20||5||100||Y +ATR_Ratio_Max=1.18||1.0||0.02||1.35||Y +UseFlatEMAFilter=true||false||0||true||N +EMA_Fast=8||5||1||13||Y +EMA_Slow=21||13||2||34||Y +EMA_Separation_MaxPct=0.22||0.08||0.02||0.45||Y +; === RSI entries === +RSI_Period=14||7||1||21||Y +RSI_Price=1||1||1||7||Y +RSI_Oversold=32.0||22.0||1.0||42.0||Y +RSI_Overbought=68.0||58.0||1.0||78.0||Y +; === Exits === +UseRSI_MeanExit=true||false||0||true||N +RSI_Exit_Long=52.0||48.0||1.0||62.0||Y +RSI_Exit_Short=48.0||38.0||1.0||52.0||Y +SL_ATR_Mult=1.35||0.9||0.05||2.2||Y +TP_ATR_Mult=1.85||1.0||0.05||3.0||Y +MaxBarsInTrade=36||12||2||80||Y +; === Risk & execution === +Lots=0.1||0.1||0.01||1.0||N +MagicNumber=20250420||20250420||1||20250420||N +Slippage=10||10||1||100||N +MaxSpreadPoints=0||0||1||30||Y diff --git a/frontline/cluster-fuck/RSICrossOverReversalXAUUSD/main.mq5 b/frontline/cluster-fuck/RSICrossOverReversalXAUUSD/main.mq5 new file mode 100644 index 0000000..8412fa6 --- /dev/null +++ b/frontline/cluster-fuck/RSICrossOverReversalXAUUSD/main.mq5 @@ -0,0 +1,295 @@ +// Input Parameters +#include +#include "../_united/MagicNumberHelpers.mqh" + +input group "Trade Management" +input int MagicNumber = 7; +input int rsiPeriod = 19; // RSI period +input int overboughtLevel = 93; // Overbought level (RSI > 70 for sell) +input int oversoldLevel = 22; // Oversold level (RSI < 30 for buy) +input double entryRSIBuySpread = 0; +input double entryRSISellSpread = 0; +input double lotSize = 0.1; // Trade lot size +input int slippage = 3; // Slippage for orders +input int cooldownSeconds = 209; // Cooldown period in seconds +input ENUM_TIMEFRAMES TimeFrame1 = PERIOD_M1; // RSI Timeframe +input ENUM_TIMEFRAMES TimeFrame2 = PERIOD_M1; // EMA Timeframe +input ENUM_TIMEFRAMES BarTimeFrame = PERIOD_M12; // EMA Timeframe +input int emaPeriod = 140; // EMA period +input double emaSlopeThreshold = 105; // EMA slope threshold for trend strength +input double exitBuyRSI = 86; +input double exitSellRSI = 10; +input double TrailingStop = 295; +input double emaDistanceThreshold = 165; +input int tradingHourOneBegin = 24; +input int tradingHourOneEnd = 22; +input int tradingHourTwoBegin = 6; +input int tradingHourTwoEnd = 19; +datetime bartime; +// RSI Handle +int rsiHandle; + +input bool Sunday =false; // Sunday +input bool Monday =false; // Monday +input bool Tuesday =true; // Tuesday +input bool Wednesday=true; // Wednesday +input bool Thursday =true; // Thursday +input bool Friday =false; // Friday +input bool Saturday =false; // Saturday + +bool WeekDays[7]; + +void WeekDays_Init() + { + WeekDays[0]=Sunday; + WeekDays[1]=Monday; + WeekDays[2]=Tuesday; + WeekDays[3]=Wednesday; + WeekDays[4]=Thursday; + WeekDays[5]=Friday; + WeekDays[6]=Saturday; + } + +bool WeekDays_Check(datetime aTime) + { + MqlDateTime stm; + TimeToStruct(aTime,stm); + return(WeekDays[stm.day_of_week]); + } + + +// EMA Handle +int emaHandle; +double previousRSIDef = 0; +// Create CTrade object for executing trades +CTrade trade; + +// Track the last trade time +datetime lastTradeTime = 0; + +void OnInit() { + WeekDays_Init(); + + // Create RSI handle + rsiHandle = iRSI(_Symbol, TimeFrame1, rsiPeriod, PRICE_CLOSE); + if (rsiHandle == INVALID_HANDLE) { + Print("Error creating RSI handle: ", GetLastError()); + return; + } + + // Create EMA handle + emaHandle = iMA(_Symbol, TimeFrame2, emaPeriod, 0, MODE_EMA, PRICE_CLOSE); + if (emaHandle == INVALID_HANDLE) { + Print("Error creating EMA handle: ", GetLastError()); + return; + } + + // Initialization successful + Print("RSI and EMA Reversal Strategy Initialized."); +} + +void OnTick() { + if(bartime==iTime(_Symbol,BarTimeFrame,0))return; + bartime=iTime(_Symbol,BarTimeFrame,0); + + // Check if RSI data is available + double rsi[]; + if (CopyBuffer(rsiHandle, 0, 0, 2, rsi) <= 0) { + Print("Error copying RSI data: ", GetLastError()); + return; + } + + // Check if EMA data is available + double ema[]; + if (CopyBuffer(emaHandle, 0, 0, 2, ema) <= 0) { + Print("Error copying EMA data: ", GetLastError()); + return; + } + + // Get the current time + datetime currentTime = TimeCurrent(); + + + int currentHour = TimeHour(TimeCurrent()); + + if(!WeekDays_Check(TimeTradeServer())) { + Close_Position_MN(MagicNumber); + return; + } + + if (!(currentHour < tradingHourOneEnd && currentHour > tradingHourOneBegin || currentHour < tradingHourTwoEnd && currentHour > tradingHourTwoBegin)) + { + + Close_Position_MN(MagicNumber); + return; // Prevent further trading during this time + } + + + // Ensure there is at least one position + bool hasPosition = PositionExistsByMagic(_Symbol, MagicNumber); + + + + // Get the current and previous RSI values + double currentRSI = rsi[0]; + double previousRSI = rsi[1]; + + if(previousRSIDef == 0) { + previousRSIDef = currentRSI; + return; + } + + // Get the current and previous EMA values + double currentEMA = ema[0]; + double previousEMA = ema[1]; + + // Calculate the EMA slope (difference between current and previous EMA values) + double emaSlope = (currentEMA - previousEMA) * 100; + Print(emaSlope); + + double closeCurr = iClose(Symbol(), Period(), 0); // Close of current bar + // ** NEW CODE: Calculate distance to EMA and adjust score ** + double priceToEmaDistance = (closeCurr - currentEMA) * 10; // Distance between the current price and the EMA + Print("priceToEmaDistance"); + Print(priceToEmaDistance); + + + // Determine if there are existing buy or sell positions + bool isBuyPosition = false; + bool isSellPosition = false; + if (hasPosition) { + if (PositionSelectByMagic(_Symbol, MagicNumber)) { + int positionType = PositionGetInteger(POSITION_TYPE); + if (positionType == POSITION_TYPE_BUY) { + isBuyPosition = true; + } else if (positionType == POSITION_TYPE_SELL) { + isSellPosition = true; + } + } + } + + ApplyTrailingStop(); + + // Check if the cooldown period has elapsed since the last trade + bool cooldownPassed = (currentTime - lastTradeTime) >= cooldownSeconds; + + // Check if EMA slope is above the threshold (indicating strong trend) + bool isTrendStrong = MathAbs(emaSlope) > emaSlopeThreshold || MathAbs(priceToEmaDistance) > emaDistanceThreshold; + + // Close trade logic when RSI crosses 50 + if (isBuyPosition && currentRSI > exitBuyRSI) { + // Close buy position + Close_Position_MN(MagicNumber); + lastTradeTime = currentTime; // Update last trade time + } + + if (isSellPosition && currentRSI < exitSellRSI) { + Close_Position_MN(MagicNumber); + lastTradeTime = currentTime; // Update last trade time + + } + + + // If the EMA slope is strong, do not place new trades + if (isTrendStrong) { + Close_Position_MN(MagicNumber); + lastTradeTime = currentTime; // Update last trade time + Print("Strong trend detected (EMA slope), skipping new trade."); + return; + } + + // SELL logic (RSI crosses over the overbought level) + if (currentRSI < overboughtLevel - entryRSISellSpread && previousRSIDef >= overboughtLevel && !isSellPosition && !hasPosition && cooldownPassed) { + trade.SetExpertMagicNumber(MagicNumber); + if (trade.Sell(lotSize, _Symbol, 0, 0, "Sell Order")) { + Print("Sell order placed."); + lastTradeTime = currentTime; // Update last trade time + } else { + Print("Error placing sell order: ", GetLastError()); + } + } + + // BUY logic (RSI crosses below the oversold level) + if (currentRSI > oversoldLevel + entryRSIBuySpread && previousRSIDef <= oversoldLevel && !isBuyPosition && !hasPosition && cooldownPassed) { + trade.SetExpertMagicNumber(MagicNumber); + if (trade.Buy(lotSize, _Symbol, 0, 0, "Buy Order")) { + Print("Buy order placed."); + lastTradeTime = currentTime; // Update last trade time + } else { + Print("Error placing buy order: ", GetLastError()); + } + } + + previousRSIDef = currentRSI; +} + +void OnDeinit(const int reason) { + // Release RSI and EMA handles on deinitialization + if (rsiHandle != INVALID_HANDLE) { + IndicatorRelease(rsiHandle); + Print("RSI handle released."); + } + if (emaHandle != INVALID_HANDLE) { + IndicatorRelease(emaHandle); + Print("EMA handle released."); + } +} + + +void Close_Position_MN(ulong magicNumber) +{ + // Use helper function to close position by magic number + ClosePositionByMagic(trade, _Symbol, (int)magicNumber); +} + +void ApplyTrailingStop() +{ + Print("Scanning for trailing stop"); + + // Check if position exists with our magic number + if(!PositionSelectByMagic(_Symbol, MagicNumber)) + { + return; // No position with our magic number + } + + ulong PositionTicket = PositionGetInteger(POSITION_TICKET); + long trade_type = PositionGetInteger(POSITION_TYPE); + string symbol = _Symbol; + + double POINT = SymbolInfoDouble(symbol, SYMBOL_POINT); + int DIGIT = (int) SymbolInfoInteger(symbol, SYMBOL_DIGITS); + + if(trade_type == POSITION_TYPE_BUY) + { + double Bid = NormalizeDouble(SymbolInfoDouble(symbol, SYMBOL_BID), DIGIT); + + if(Bid - PositionGetDouble(POSITION_PRICE_OPEN) > NormalizeDouble(POINT * TrailingStop, DIGIT)) + { + if(PositionGetDouble(POSITION_SL) < NormalizeDouble(Bid - POINT * TrailingStop, DIGIT)) + { + ModifyPositionByMagic(trade, symbol, MagicNumber, + NormalizeDouble(Bid - POINT * TrailingStop, DIGIT), + PositionGetDouble(POSITION_TP)); + } + } + } + else if(trade_type == POSITION_TYPE_SELL) + { + double Ask = NormalizeDouble(SymbolInfoDouble(symbol, SYMBOL_ASK), DIGIT); + + if((PositionGetDouble(POSITION_PRICE_OPEN) - Ask) > NormalizeDouble(POINT * TrailingStop, DIGIT)) + { + if((PositionGetDouble(POSITION_SL) > NormalizeDouble(Ask + POINT * TrailingStop, DIGIT)) || + (PositionGetDouble(POSITION_SL) == 0)) + { + ModifyPositionByMagic(trade, symbol, MagicNumber, + NormalizeDouble(Ask + POINT * TrailingStop, DIGIT), + PositionGetDouble(POSITION_TP)); + } + } + } +} + +int TimeHour(datetime when=0){ if(when == 0) when = TimeCurrent(); + return when / 3600 % 24; +} \ No newline at end of file diff --git a/frontline/cluster-fuck/RSIMidPointHijackXAUUSD/main.mq5 b/frontline/cluster-fuck/RSIMidPointHijackXAUUSD/main.mq5 new file mode 100644 index 0000000..de9ddb3 --- /dev/null +++ b/frontline/cluster-fuck/RSIMidPointHijackXAUUSD/main.mq5 @@ -0,0 +1,604 @@ +//+------------------------------------------------------------------+ +//| RSIFollowReverseEMACrossOver.mq5 | +//| Copyright 2024, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2024, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" + +#include +#include +#include "../_united/MagicNumberHelpers.mqh" + +// Input Parameters +input group "General Settings" +input ENUM_TIMEFRAMES InpTimeframe = PERIOD_H1; // Trading Timeframe +input double InpLotSize = 0.1; // Lot Size +input int InpMagicNumberRSIFollow = 1001; // Magic Number RSI Follow +input int InpMagicNumberRSIReverse = 1002;// Magic Number RSI Reverse +input int InpMagicNumberEMACross = 1003; // Magic Number EMA Cross + +input group "Strategy Switches" +input bool InpEnableRSIFollow = true; // Enable RSI Follow Strategy +input bool InpEnableRSIReverse = true; // Enable RSI Reverse Strategy +input bool InpEnableEMACross = true; // Enable EMA Cross Strategy +input bool InpEnableStrategyLock = true; // Enable Strategy Lock +input double InpLockProfitThreshold = 6.0; // Lock Profit Threshold (pips) +input bool InpCloseOppositeTrades = true; // Close Opposite Trades When Profiting + +input group "RSI Follow Strategy" +input int InpRSIPeriod = 32; // RSI Period +input int InpRSIOverbought = 78; // RSI Overbought Level +input int InpRSIOversold = 46; // RSI Oversold Level +input int InpRSIExitLevel = 44; // RSI Exit Level +input int InpRSIFollowStartHour = 23; // RSI Follow Start Hour (0-23) +input int InpRSIFollowEndHour = 8; // RSI Follow End Hour (0-23) +input bool InpRSIFollowCloseOutsideHours = false; // Close trades outside trading hours + +input group "RSI Reverse Strategy" +input int InpRSIReversePeriod = 59; // RSI Period +input int InpRSIReverseOverbought = 51; // RSI Overbought Level +input int InpRSIReverseOversold = 49; // RSI Oversold Level +input int InpRSIReverseCrossLevel = 53; // RSI Cross Level +input int InpRSIReverseExitLevel = 48; // RSI Exit Level +input int InpRSIReverseStartHour = 7; // RSI Reverse Start Hour (0-23) +input int InpRSIReverseEndHour = 13; // RSI Reverse End Hour (0-23) +input bool InpRSIReverseCloseOutsideHours = false; // Close trades outside trading hours +input int InpRSIReverseCooldownBars = 15; // RSI Reverse Cooldown (bars) +input bool InpRSIReverseCooldownOnLoss = true; // Apply cooldown only on loss + +input group "EMA Cross Strategy" +input int InpEMAPeriod = 120; // EMA Period +input int InpEMACrossStartHour = 8; // EMA Cross Start Hour (0-23) +input int InpEMACrossEndHour = 14; // EMA Cross End Hour (0-23) +input bool InpEMACrossCloseOutsideHours = true; // Close trades outside trading hours +input bool InpUseEMADistanceEntry = true; // Use EMA Distance Entry +input double InpEMADistancePips = 160.0; // EMA Distance Threshold (pips) +input int InpEMADistancePeriod = 26; // EMA Distance Period (bars) + +// Global Variables +int rsiHandle; +int rsiReverseHandle; +int emaHandle; +bool rsiOverbought = false; +bool rsiOversold = false; +bool rsiReverseOverbought = false; +bool rsiReverseOversold = false; +CTrade trade; +CPositionInfo positionInfo; +bool emaCrossBuySignal = false; +bool emaCrossSellSignal = false; +int emaCrossSignalBar = 0; +datetime lastBarTime = 0; +datetime rsiReverseLastCloseTime = 0; +bool rsiReverseInCooldown = false; +double lastBarRSI = 0; // Store last bar's RSI value +double lastBarRSIReverse = 0; // Store last bar's RSI Reverse value +double lastBarEMA = 0; // Store last bar's EMA value +double lastBarClose = 0; // Store last bar's close value +double lastBarEMAPrev = 0; // Store previous bar's EMA value +double lastBarClosePrev = 0; // Store previous bar's close value + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize indicators + rsiHandle = iRSI(_Symbol, InpTimeframe, InpRSIPeriod, PRICE_CLOSE); + rsiReverseHandle = iRSI(_Symbol, InpTimeframe, InpRSIReversePeriod, PRICE_CLOSE); + emaHandle = iMA(_Symbol, InpTimeframe, InpEMAPeriod, 0, MODE_EMA, PRICE_CLOSE); + + if(rsiHandle == INVALID_HANDLE || rsiReverseHandle == INVALID_HANDLE || emaHandle == INVALID_HANDLE) + { + Print("Error creating indicators"); + return INIT_FAILED; + } + + // Initialize trade settings + trade.SetExpertMagicNumber(InpMagicNumberRSIFollow); + trade.SetMarginMode(); + trade.SetTypeFillingBySymbol(_Symbol); + trade.SetDeviationInPoints(10); + + // Initialize last bar time + datetime time[]; + if(CopyTime(_Symbol, InpTimeframe, 0, 1, time) > 0) + { + lastBarTime = time[0]; + } + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Check if new bar has formed | +//+------------------------------------------------------------------+ +bool IsNewBar() +{ + datetime time[]; + if(CopyTime(_Symbol, InpTimeframe, 0, 1, time) > 0) + { + if(time[0] != lastBarTime) + { + lastBarTime = time[0]; + return true; + } + } + return false; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + // Release indicator handles + IndicatorRelease(rsiHandle); + IndicatorRelease(rsiReverseHandle); + IndicatorRelease(emaHandle); +} + +//+------------------------------------------------------------------+ +//| Check if current time is within trading hours | +//+------------------------------------------------------------------+ +bool IsWithinTradingHours(int startHour, int endHour) +{ + MqlDateTime currentTime; + TimeToStruct(TimeCurrent(), currentTime); + + if(startHour <= endHour) + { + return (currentTime.hour >= startHour && currentTime.hour < endHour); + } + else + { + return (currentTime.hour >= startHour || currentTime.hour < endHour); + } +} + +//+------------------------------------------------------------------+ +//| Check if position exists for given magic number AND symbol | +//+------------------------------------------------------------------+ +bool HasPosition(int magic) +{ + // Use helper function that verifies BOTH symbol AND magic number for THIS EA + return PositionExistsByMagic(_Symbol, magic); +} + +//+------------------------------------------------------------------+ +//| Check if any strategy has profitable position | +//+------------------------------------------------------------------+ +bool HasProfitablePosition(int excludeMagic) +{ + bool hasProfitable = false; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(positionInfo.SelectByIndex(i)) + { + if(positionInfo.Magic() != excludeMagic) + { + double profit = positionInfo.Profit(); + if(profit > InpLockProfitThreshold * _Point) + { + hasProfitable = true; + // If enabled, close opposite trades + if(InpCloseOppositeTrades) + { + // Check if this is an opposite trade to the excluded magic number + if((excludeMagic == InpMagicNumberRSIFollow && positionInfo.Magic() == InpMagicNumberRSIReverse) || + (excludeMagic == InpMagicNumberRSIReverse && positionInfo.Magic() == InpMagicNumberRSIFollow) || + (excludeMagic == InpMagicNumberEMACross && (positionInfo.Magic() == InpMagicNumberRSIReverse || positionInfo.Magic() == InpMagicNumberRSIFollow)) || + ((excludeMagic == InpMagicNumberRSIFollow || excludeMagic == InpMagicNumberRSIReverse) && positionInfo.Magic() == InpMagicNumberEMACross)) + { + ClosePosition(positionInfo.Magic()); + } + } + } + } + } + } + return hasProfitable; +} + +//+------------------------------------------------------------------+ +//| Check for RSI Follow Strategy signals | +//+------------------------------------------------------------------+ +void CheckRSIFollowStrategy() +{ + // Check if within trading hours + if(!IsWithinTradingHours(InpRSIFollowStartHour, InpRSIFollowEndHour)) + { + if(InpRSIFollowCloseOutsideHours) + { + if(HasPosition(InpMagicNumberRSIFollow)) + { + ClosePosition(InpMagicNumberRSIFollow); + } + } + return; + } + + // Check strategy lock + if(InpEnableStrategyLock && HasProfitablePosition(InpMagicNumberRSIFollow)) + return; + + // Use lastBarRSI instead of copying buffer + if(lastBarRSI > InpRSIOverbought) + rsiOverbought = true; + else if(lastBarRSI < InpRSIOversold) + rsiOversold = true; + + // Check for entry signals + if(rsiOverbought && lastBarRSI < InpRSIExitLevel) + { + // Sell signal + if(!HasPosition(InpMagicNumberRSIFollow)) + { + trade.SetExpertMagicNumber(InpMagicNumberRSIFollow); + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "RSI Follow"); + } + rsiOverbought = false; + } + else if(rsiOversold && lastBarRSI > InpRSIExitLevel) + { + // Buy signal + if(!HasPosition(InpMagicNumberRSIFollow)) + { + trade.SetExpertMagicNumber(InpMagicNumberRSIFollow); + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "RSI Follow"); + } + rsiOversold = false; + } +} + +//+------------------------------------------------------------------+ +//| Check if RSI Reverse is in cooldown | +//+------------------------------------------------------------------+ +bool IsRSIReverseInCooldown() +{ + if(InpRSIReverseCooldownBars <= 0) + return false; + + if(!rsiReverseInCooldown) + return false; + + datetime time[]; + if(CopyTime(_Symbol, InpTimeframe, 0, 1, time) > 0) + { + datetime currentBarTime = time[0]; + datetime cooldownEndTime = rsiReverseLastCloseTime + InpRSIReverseCooldownBars * PeriodSeconds(InpTimeframe); + + if(currentBarTime >= cooldownEndTime) + { + rsiReverseInCooldown = false; + return false; + } + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check for RSI Reverse Strategy signals | +//+------------------------------------------------------------------+ +void CheckRSIReverseStrategy() +{ + // Check if within trading hours + if(!IsWithinTradingHours(InpRSIReverseStartHour, InpRSIReverseEndHour)) + { + if(InpRSIReverseCloseOutsideHours) + { + if(HasPosition(InpMagicNumberRSIReverse)) + { + ClosePosition(InpMagicNumberRSIReverse); + } + } + return; + } + + // Check strategy lock + if(InpEnableStrategyLock && HasProfitablePosition(InpMagicNumberRSIReverse)) + return; + + // Check cooldown + if(IsRSIReverseInCooldown()) + return; + + // Use lastBarRSIReverse instead of copying buffer + if(lastBarRSIReverse > InpRSIReverseOverbought) + rsiReverseOverbought = true; + else if(lastBarRSIReverse < InpRSIReverseOversold) + rsiReverseOversold = true; + + // Check for entry signals + if(rsiReverseOverbought && lastBarRSIReverse < InpRSIReverseCrossLevel) + { + // Sell signal + if(!HasPosition(InpMagicNumberRSIReverse)) + { + trade.SetExpertMagicNumber(InpMagicNumberRSIReverse); + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "RSI Reverse"); + } + rsiReverseOverbought = false; + } + else if(rsiReverseOversold && lastBarRSIReverse > InpRSIReverseCrossLevel) + { + // Buy signal + if(!HasPosition(InpMagicNumberRSIReverse)) + { + trade.SetExpertMagicNumber(InpMagicNumberRSIReverse); + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "RSI Reverse"); + } + rsiReverseOversold = false; + } +} + +//+------------------------------------------------------------------+ +//| Check for EMA Cross Strategy signals | +//+------------------------------------------------------------------+ +void CheckEMACrossStrategy() +{ + // Check if within trading hours + if(!IsWithinTradingHours(InpEMACrossStartHour, InpEMACrossEndHour)) + { + if(InpEMACrossCloseOutsideHours) + { + if(HasPosition(InpMagicNumberEMACross)) + { + ClosePosition(InpMagicNumberEMACross); + } + } + return; + } + + // Check strategy lock + if(InpEnableStrategyLock && HasProfitablePosition(InpMagicNumberEMACross)) + return; + + // Check for cross signals using stored values + if(lastBarEMAPrev < lastBarClosePrev && lastBarEMA > lastBarClose) + { + // Buy cross signal + emaCrossBuySignal = true; + emaCrossSellSignal = false; + emaCrossSignalBar = 0; + } + else if(lastBarEMAPrev > lastBarClosePrev && lastBarEMA < lastBarClose) + { + // Sell cross signal + emaCrossSellSignal = true; + emaCrossBuySignal = false; + emaCrossSignalBar = 0; + } + + // Check for distance entry conditions + if(InpUseEMADistanceEntry) + { + if(emaCrossBuySignal) + { + // Check if price has moved above EMA by the required distance for the required period + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(emaHandle, 0, 0, InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(_Symbol, InpTimeframe, 0, InpEMADistancePeriod, closeHistory) > 0) + { + for(int i = 0; i < InpEMADistancePeriod; i++) + { + double distance = (closeHistory[i] - emaHistory[i]) / _Point; + if(distance < InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(InpMagicNumberEMACross)) + { + trade.SetExpertMagicNumber(InpMagicNumberEMACross); + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "EMA Cross Distance"); + emaCrossBuySignal = false; + } + } + } + else if(emaCrossSellSignal) + { + // Check if price has moved below EMA by the required distance for the required period + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(emaHandle, 0, 0, InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(_Symbol, InpTimeframe, 0, InpEMADistancePeriod, closeHistory) > 0) + { + for(int i = 0; i < InpEMADistancePeriod; i++) + { + double distance = (emaHistory[i] - closeHistory[i]) / _Point; + if(distance < InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(InpMagicNumberEMACross)) + { + trade.SetExpertMagicNumber(InpMagicNumberEMACross); + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "EMA Cross Distance"); + emaCrossSellSignal = false; + } + } + } + } + else + { + // Original cross entry logic using stored values + if(lastBarEMAPrev < lastBarClosePrev && lastBarEMA > lastBarClose) + { + // Buy signal + if(!HasPosition(InpMagicNumberEMACross)) + { + trade.SetExpertMagicNumber(InpMagicNumberEMACross); + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "EMA Cross"); + } + } + else if(lastBarEMAPrev > lastBarClosePrev && lastBarEMA < lastBarClose) + { + // Sell signal + if(!HasPosition(InpMagicNumberEMACross)) + { + trade.SetExpertMagicNumber(InpMagicNumberEMACross); + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "EMA Cross"); + } + } + } + + // Increment signal bar counter + if(emaCrossBuySignal || emaCrossSellSignal) + { + emaCrossSignalBar++; + // Reset signals if they're too old (optional, can be removed if not needed) + if(emaCrossSignalBar > InpEMADistancePeriod * 2) + { + emaCrossBuySignal = false; + emaCrossSellSignal = false; + } + } +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Only process on new bar + if(!IsNewBar()) + return; + + // Get indicator values for the new bar + double rsi[], rsiReverse[], ema[], close[]; + ArraySetAsSeries(rsi, true); + ArraySetAsSeries(rsiReverse, true); + ArraySetAsSeries(ema, true); + ArraySetAsSeries(close, true); + + // Store previous values + lastBarEMAPrev = lastBarEMA; + lastBarClosePrev = lastBarClose; + + // Get new values + if(CopyBuffer(rsiHandle, 0, 0, 1, rsi) > 0) + lastBarRSI = rsi[0]; + + if(CopyBuffer(rsiReverseHandle, 0, 0, 1, rsiReverse) > 0) + lastBarRSIReverse = rsiReverse[0]; + + if(CopyBuffer(emaHandle, 0, 0, 1, ema) > 0) + lastBarEMA = ema[0]; + + if(CopyClose(_Symbol, InpTimeframe, 0, 1, close) > 0) + lastBarClose = close[0]; + + // Check for new signals + if(InpEnableRSIFollow) + CheckRSIFollowStrategy(); + if(InpEnableRSIReverse) + CheckRSIReverseStrategy(); + if(InpEnableEMACross) + CheckEMACrossStrategy(); + + // Check for exit conditions + CheckExitConditions(); +} + +//+------------------------------------------------------------------+ +//| Check exit conditions for all strategies | +//+------------------------------------------------------------------+ +void CheckExitConditions() +{ + if(InpEnableRSIFollow) + { + // Check RSI Follow exit conditions + if(HasPosition(InpMagicNumberRSIFollow)) + { + if((positionInfo.PositionType() == POSITION_TYPE_BUY && lastBarRSI < InpRSIExitLevel) || + (positionInfo.PositionType() == POSITION_TYPE_SELL && lastBarRSI > InpRSIExitLevel)) + { + ClosePosition(InpMagicNumberRSIFollow); + } + } + } + + if(InpEnableRSIReverse) + { + // Check RSI Reverse exit conditions + if(HasPosition(InpMagicNumberRSIReverse)) + { + if((positionInfo.PositionType() == POSITION_TYPE_BUY && lastBarRSIReverse < InpRSIReverseExitLevel) || + (positionInfo.PositionType() == POSITION_TYPE_SELL && lastBarRSIReverse > InpRSIReverseExitLevel)) + { + ClosePosition(InpMagicNumberRSIReverse); + } + } + } + + if(InpEnableEMACross) + { + // Check EMA Cross exit conditions using stored values + if(HasPosition(InpMagicNumberEMACross)) + { + if((positionInfo.PositionType() == POSITION_TYPE_BUY && lastBarEMA > lastBarClose) || + (positionInfo.PositionType() == POSITION_TYPE_SELL && lastBarEMA < lastBarClose)) + { + ClosePosition(InpMagicNumberEMACross); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Close position by magic number | +//+------------------------------------------------------------------+ +void ClosePosition(int magic) +{ + // Close position using helper that verifies symbol AND magic number for THIS EA + // First check if position exists for this EA on this symbol + if(!PositionExistsByMagic(_Symbol, magic)) + { + return; // No position for this EA on this symbol + } + + // Get the position ticket for this EA on this symbol + ulong ticket = GetPositionTicketByMagic(_Symbol, magic); + if(ticket == 0) + { + return; // No valid ticket found + } + + // Check if this is RSI Reverse position and update cooldown + if(magic == InpMagicNumberRSIReverse) + { + if(PositionSelectByTicketSymbolAndMagic(ticket, _Symbol, magic)) + { + datetime time[]; + if(CopyTime(_Symbol, InpTimeframe, 0, 1, time) > 0) + { + rsiReverseLastCloseTime = time[0]; + // Only enter cooldown if it's a loss or if cooldown on loss is disabled + double profit = PositionGetDouble(POSITION_PROFIT); + if(!InpRSIReverseCooldownOnLoss || profit < 0) + { + rsiReverseInCooldown = true; + } + } + } + } + + // Close the position using helper function + ClosePositionByMagic(trade, _Symbol, magic); +} diff --git a/frontline/cluster-fuck/RSIMidPointHijackXAUUSD/report.html b/frontline/cluster-fuck/RSIMidPointHijackXAUUSD/report.html new file mode 100644 index 0000000000000000000000000000000000000000..a731713c85028a333a92aff102220079456ff170 GIT binary patch literal 5214578 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�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 vAM9L`7oZ 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

%OyhTlK?d zqpEkdR{Stm@e<3uS(2iv_Cj*zVwx0hGqXIR9XR?)lywbnJnl)SJo^mIvpKKpN;R5P zyGb;YGS~g?$d5R`G)b~7^XiOLINmL))@z1*>sMmCTd6+pJD)tt)^#X;es~4>REpq( zu+KK+8s@u|TI+COpOykniVE);uu`dSs6#S8Q{i|orD_jawIa;t<|ejTsq21N zbX5ybwm$2?vn$i3=$1)!Mpo$FCI4OHOIbwXo3z`@f6ezuy<}U5VkQ3_XUtM;pTECr z^Ix-6ba>qrp_|)gOONXiS*snInyo1RDLj;rFEyA9d44#i4bwIAMpZe_o&WR~^26?g~k zD$9;izy7{%PI<0kDqGeenV!~X=~6D5Np(gl zbnn|0@l9QQX4=3YJIvuNh{e_e)b zp6cnZRi1u(ywTaxD`!0Fagn`zTeo?Vbse5#&m~nt22Gz9!K;PyJ6ffAHqNflq&Rn# zI$zTy>pC<)|LzIYS2L6G*K3}tMtDyU{nYuXRi6F%tJSG0e^s4Szezk(4&2F`)bpy2 zFM7XLCRx^DnV+d}9C_3G`y%YgR2Q!8QC99Ue}&h2UhQ>Jtts`ruyvVL9?`i=irPBq z>ErJ^82e@q?r)u+x>l6Yn9%7Ce|6La2#6QH^(^_S(SHa z6{k{3dzUhwI4;l2mUT$xXDS?bd)^&NtyPn_uP3qH?|G#SKDEMp z$p>auc|@L9queny7<)~YPYHRqR%`QBzSSr3+^JPp26^4hEGgz?Vx5r+$9rj2^S|oe zN3L=vwppv4YJ_`nxvS80sm9Y`n4hW8{n2&)b5Yl{Yt;$uaGHJ2wbcpDG>*Cw*}BXw zk9>akuIX`)HCCz^Yes;HV)T9aj&S7)Tc@oq}>SrM<##?u?5Z#S{s zuT;%t(v2v|x(-FpWq2>yAndrn-RJL9s@_7aCqjRdDmjVfKBcNx)OWRV{+lf8kj&3i zINnF8dS8l@>WO&0|3+_+>NtsQR%$O}a>q-iOSWZFosku~`&QBW`S3bldb^2l(r#~d z?rl;Z*xc9 zt7npAS%+kP=6j_w$Ki+Xqtun0iN4H4H+$lqR(+R|>P@p2MkPYu9$A-ZIvJT1o%u}hE<523Z&e3x^)yhO|EzbME=dbWe zKkONV@|TYmm@ZYlGO5nU3f;S8!E1bX)S7xZu=%F5UG(jdZ5@hrKg?%h&)?swA3m$q z>bkk!7v+1aF}0I1d4C44j##N=S%+kP=6j_w$Ki+Xqg3BbRjKjwSsaP(?)j=`k$i83 z3Gb>cd1lP334^gZmeVfjcWQNoCe5|)LzAq_+RG!lzf+^!Q!{vKZBi>p6wlA_JeLFO zORTQh@a+PLXPVD+e6Q}q)@~NcbgfLvpE9w|NQL9@y?4ohy>k9~e}>{JRc{j8?0GwM z-OZQI|46oV80KeI=-wx?*7@=t;lwv-x0eH(FQ2v~^|Ec5RUWD2!1lx9J$v1Eui1DP ztGw~6^9}XBsCJWBX07&Ux;D$F1(_yUmzm`e^%pv3QZ3So)yzt}A-P|8CcHYQIU85& zbwaLluk-BrUaesA7iF3hb2GEfNQLBxtowZL**WV9U-C7H?{42KzFKRYweVbnQ+?v& zNQdHU-#fI*x9iPTT&q=m{nc8bPVt*9y|Py5J>7gqoV7}}by((SzSk;~yqi|n_)-<; zDy?colh5)pU$QN;$|H5H@`(ns0XtnwoD9KPNgC)QNWNxI#g6Z>?RbkAe5F0;!cW6ur8p}}08!K#{lVM|X6=$?nOJ9}!f`~|d(@irJ=Sw5`YsdOtksTZKECrt zN+sJm4D&N9bob47&dq06_^PvS_AGP6A5T{p*3)hocwWm~{Daa>5nJ-z_ zp{P@X(=7Q(*lXwHyXNozYNeWHO{rANNi_E=RqyU^Fb^_GvaCZgKU3j&Po-Aosy{9D zFzt`2dhfqrTsPl+RVMAl|GNBlrdjDnQ%B`&>6J>&dk^Jx*|N;5Gg9GrPo=&-A5CwN=4DqYRX02+ zE2R}U^Cjy#6g^Wt>I&AXoMJp@k{T}gsW((n_n3y&9_XGX0;uS z>KR^F7%Vm8*X|seEuUd|PMPX$R&Bp>qSnuttt6IvW2}49Xm!RMDUa%MWc61#ju`v? zZU}kZ!M0KjR#)fz6&}xYc6(iAp2|N-jpj?%b@)0P=02@KSnIFK=qLuv@95fW*w*RW ze7y?CJH4+_s;Kb(Xpi$D~%au17O}H$$(Q{VD&Y7=MQ5S!KEkQHiR2>PDiOl-cpSKBbc9fhI|raff7n zro!=VQMKN;q_;SKh1cf4szx8}e`M=2t32}gk>?+uQ7NyX-X^{mX?{mn=f9#^^}AH1 zxl*ZAy|+@yvdpV9GL(A6@oq}>KGsStn6s0_c6UtG%<-r%jjiiYR5ygY0`GA*W34u; zPfmYxR;Inz{3lmyRXnR&rP@v6xihNT>vC1gS|!UmEb}uJj(5|lZ%?jimFhN$?QX5Q z;+jt%<=a{_t32XbKIhYeuvdI}uk!np>YM*`2KMW!68BK9)9hrx_Jvw=nBSHCoV9vY zT}eGss;)B0AH5EDZtiN@dY2X2RLe=UlV9%5TopOe8#ZmSE$cIneExm)p8V8MuJ`}& zw>N){*Tz`0ti@P9)oPVxN4GvLBJYG_%QCOdNQL9QV(iLU5xjz&*yb49qwBg)^2%&m zhhctZh3;MI!E1b}wv+ho^}{|h?MsZhzdmyO*#kNrXI6RSbv;-&cq;DhuS=Ybsaip= zb@Fr0kXUA|o{6g5p{%IN)@5dSM0aO6f|F+$iq%|M`)a8^J%3eK$5mGiEB(QI3R2>k zwAt~z>Lbw_HN9W6q>4Z$))}dA9C3A@=RK=dpB!A7@9`+0nruiR$W7{>k_{{-tPPr zUb#}I49RhqqO19mbsdVzq1=Z?Ye|E#?~~&_2J>55&7pQ^waSxfIZ3N~J#U34S=ZsI zXryobD}KM`sri)FbMDl8XnnfoU)inv1@rmDbEofBHmr9?9#-09%Q`IcGZl`zeeYSV znr-DgkS~wuHhYz8eXqMt{=kY3^03SJCO`ng# zKs#?)x6`Q_po|*)s?h5u6M&< zlPPO|r2Y<{PcmD$>WRA<@b^4xvm2USB%b?nCY{HxYJmFv<~QX?V3uTAN0a%P3dh}^ z_?%WnxO#S_))zm%+r)OSR<)|B)lK#n=1bOPR(VAGLbW=_cRZM}?laQ&#(SFQw{)#m z2hYlWW%cdMmL6wKyLo!;Ja-?mb(vZoQJ$@;vwq^o-&fsUS_RQrGn%iG$Df~C<+(?n zmH8^)-InyZ&-Z?Ps6cwj`ySb{Osq3f;keuPo{OtPtCcMHw@sC$^|f@-bss{CtZZ9{ zVSZ+X?p^ZWHNNzASGC*edl`Ir_nsmv@36?M^2l)))9i<}H)r;`j!pBQtoq>{T2*H7 zddA8t!-?hYxawG!_d>FDnOPngx7_d49~N1)jQ5BeJ-2_CZ4zq&HurjZxE?JjH9Dj75%USJ?-=Lyh>Ksa}cWT$Xm8a(On7D5uD>RRIpDUjqKa}gW ze2xq6RIdA6D%A+xBQ#rjJj2 z%Z69h<9KF~beUPM`(5S3>i*(tl1Q>`nOA3|LUKgaeSY^`2CRrx?G66=P|Exz9&0uE z-40zTM>?ep+;qvZ4#WJ+3f*`22CKg04lA*(%w&0WY+bt@KP(Hq+DiV>d}$=J$|K`! z5dEtkzvaQ$vumzi&QGoS;vHI*r+YnH<(1;ZGikL$Q}58Huh8x^)1-HwndK36ddoAU zb7wuf_h~-+X`YR&U%q+XN{wGDit~4OmFJZ*{eCH{HA}KA6YGo&RUUC1adnsHJ*!l+ zt$ALGYDuX%YwBoKZ&X@kZ)m<`U5BDPue>~;^JK>Q-qbaJx3yNCCSN_3iFa8ip2_pB zXG!vb>VuH?{pc&q@~XGLVwOi#Y<&bs~-=y7M)}+pdP!B{&%rDyUG^HcB8Y9$BOZ%6Mk z@!Y9Z_XhJ>LDni+)?t~Ssc^iTR#jV4h5yz3MrY`KDbO`Ws|hhvIP#to2KEDtm=+w;w*21CKuM*L7gM zFRI=omV348J_zoKvsTHr4$J(^_ga-jbNqA$H$3rOw7SNZDmsbpUahJ>;&_Hbwq;g% zq^4E*IqoKynXl$dXSKRgd!YKwD$Dh#DphE1nEHU_MaZ(ut26RcYUX%9rMenX$(p3< z`8zybZOxvz6Ib}bl3Mrj zR0ghoZ$9rJ+BcsImsX;+`? z{#Wao^1td<{%C<|l1@4_^D|@J=7{8e|9dvNR`012U#j7(>$SsIXL%ocU$QN;>WozQ z{^)&GXVom)`aNFPDD<~JYAMm)ofrFzMyfpQ6QzNns)Smum)U8#C|TEXEHSFBXBEfedE zR7eh`-lf*G#+S1D#CK;*9emTtY5MlawhqPPT9alwL#zAO=g!4c?~tpU@~!tp`9NZs zwc7K%u13g;*|T}ZWwnxZJ(@o~@_x-;N&h3Zdd-ke^_(qS&5_QL^wFAr%AYCk@}MzIc6Yl!eUpt!7YXmAXQcYB~3zN!E2}`UYUGy9~cOZV4veafW6; zAD*>Y^SfkwqPf%Wssll_e#(oiOR}s(GCxz{xZCgUP^#>HUEAmL=@Q%B8Io@w=aUW0 zmu8xoRUR4V9r9^5gR$pdTzh+;Ru%I#cdhiODHEJ6J=2d$CeB!8Sl5Lq; zXQV=MsC8f6@SI-P_);||={5P{PNhkF<&Amgi20Ij9g3B@p?2sfOCk?3D_}KCIu}>< zj;eJgzU^z3Wk;#w_C?BSMUpM+kj&3Km6|!;O{wFQfl5ykSF{t|?1?*Cb(Kq%TB*7(`B z%&ap~A$d2wN`vyom06D7^2fKE_@>C(p{uh*FR#@h$V} zj8r%dKm1OmsvpR;YW;8B3sXfWvE8jypH;`_l9(@9*P*C7u-4MKcVI9c?~mgC9IIC6 zI32CdJpcCJ<~Ta>$W^AeB3a&2#wNBhRayhVz$qTnXOkd6moQ-H~3TO|~o( z>x>Lt9&z05dCx}GCtJOvzk9?k`sV!xsd{srR^<AyYx_g_E#`P2V;{O_!a?2rHW=^sD+k5B*o@h|+BPk;UCU%vg{|L}PF zuRs0a(|`Q*A0GeS^Z)(l$Dixx{L|wn{h!C*{o|*H@|89_dEX; z?*a9^X)x;B#LRpDp2+{{JC=S=|MKtt>|Y-|tHkwnWwKi5IU@W0&-Z`*@j+ByiY?He g{psJY(9lX|uL{_2swIrcIBVHtj9+d+$QeeD9-(hW_^!_FL~Srj>J- zJcb_pJM!}#pHG`cCCxPNdk1>_pZKqWu+yf^zCHHeTWs{z1JkA*`Omg5Ki`#%RCez; z+*e=WEL@y3y8Y!?^~<7 zc8hA3gEi2|V?WL5~-~0pzqBW1;#C1eKt{v8a z-Q3y`04V{IRv8<@kf2NXzsAQj?@8fkI=8y-oTCPaISkan5fvDU1kAhv-}e1)=`Gse zs^>ccGhNW=SPnUG5Nkh#6txZv z)Loc4@g30|&BLwkwy<8XuAXVpS4O$lD-u`rzpJ7M_78zbi3HFDb;e3BTbuE?9fE43 zNy=z7flR{uaA^ZzGD?Z(KtQTh4-D%;TwVR_<07zLQjgHj#Sxnmr?#OOj%E~^flY7l zC8pJW*6H8KO$S{aRN&%B!n#Gi8 zKLn^a-mB&)m*2Po;Opued4UZ^m1sZ-O5o|gyKL!FxF2E>ij^P}U%xD%N0;(OAzf}@ zt%cu6vF(mx7jHIOSgi>Ea6Hl43#d+sR6YzJiUe6Hr}Tn0RkLM8Kdd9`3ag3m88yp% z*NNXAKP|b_^^~HUQS7dz4N?rW_af5Q!02G_zWYxxcR8v?3ozP`fW$HkM)lAUETJ?h zNj8HKrsBq$#y@{F%zong>p}UI(Y%H}9VA4ndI>JJbilOuiE-|OcK74$5m%G`wNxwEPI zc?-jAp9Ennm0uwP|0{3v#$$G^wde)HiOCth17 zFZsRad-3}sR8g@FH2Lwz(~e!slbaN+14{HGvnesfph-;u0S%etRIVJ@>G5pTHqR=% z9L6G8j9P_&^7>!ARWQjScO4`Z_pJ~o*aEP8tr)=L40^6;)|te7*xoSpR@IKz7{*t( z5}NUSiNTU5kL}S}w7h{zTk9DNDJ)&AszbWZKgm}0hN7$bfThoOB$E=RiJ8d|z!^;f zcn;hFokIumm^Tt1nF2;E#!!Yjw03Pqq8L80!)h(6NL`#I0w_rW=klhmz-r47DxEe7 z0E}U1hX-gWNy^wlZCH=am?<2cEiP5*Z0h}>5;Df-|2?@t$Uy@c4l9#S ziWHsD%b(gwCIH`5D;J=j1C68YbEO>he1U7LCp2|FY9=E{t$QYN5SEp}`%>+vB)Iy1 z{ppGT=@tBczJA^qj6y1%IlM@;dkVI5n6iJpvsc`~ z@aP_Tv{W;D0`7ZPITWndn0Qp?!h;h4960o5qi3(wsaTjhjK)0j)bqR1-wLWk0^^n}rQT zm)QFk13Q_~g{XHUOH(q(*v5+uqn$f0+E?md#VKD@@Z2zB&ht9UKmJF$Gd@Y;&sO2? z$2;?H4Sh-}B&XF6Kb#cm%;8(trZhxCQjas8g2H9~@7o#u9bL0d=tp(VZO8tQCx_H` z(w5#-A3QE10hf}krJ*9a+n<*$SSv=-RM(j)rSZ>c$Zr|CP+IP_TS|7{@hzeo&nVXa zA{&u28A|r@6CV!+zmWJJ7ViA}!+eQM7SE59hJ~#|6IrmddzL83%JGKut*AjCIo|Lb z2hgUWPlf7^rMkmY9kk|_a`&EkrZ-ZvWJbk~9=Z+Qf=$7LW>u@;2Nv2vO3c(W*g~jU zAA&>{?W$%`*(0(TgfgAUK zRGff^fu>875|~|aOIbOBD%#eg>nqL#&1?UdO*&y^V%dT?dD+Cf;y*lLFP^=uh5fPK zBym7H?7+B~x*5-mdn2J2k*{CzW_g4s0Z-Mx>r*#^egd;M5v^Qo$%|yg<1}+y$eu73 z%b9D#GySfr_PjN-oc44X^NYbGFo1ew)digl?vsBx-aYn}9Y9iP0ViW;(u=e25wjDC|4(+J%;k7n ze|K5z?;Gi!tHkSE#!yN9Xr|up&9>W&mBV*c&pO_opIusW*^W48Qpu-2fD}<}6QXJF zRW{}!{(CU4YN+5j089YXQL^1yZiI#U&8Fbuiuk&oS}gY!06R*K*>&DV5@c=K+}dc6 zTEd78tKWtPM#Wa@jx^`VUt*f(1JsX9Z7XKb{hRLB>_^9tzNrq48}m$i+jygd^KXV4 zP;8)HsI8hMOgk8Rj0DoCSvsXcbfr)1ZPn|R)uoC|9o4n2Mjv6FgLa@|Oj{F=0XYU`_cx;+|D8+l3=@b_Ko@$$M+UphvKOw)WgP^c z?(C$Z&e8(XGAvXFFF-CUtWH|2bcWw-=*^JiPeJzT4btPH>5>}bSAdm{s}gve>s3H5 ze=F?|QNuxJMQgd`5uvW$+(G(UVmg&R6^Y^mREI*I#Nhle_!EjlPR^(CqMVRAzc$^W zF<(PhIWgVnOXm21f(stUWoaJ#!Tyk%5952~!AazykpOaS_dc5dF`-D^N4MAP)ANP>p>f9CLOGrxs$E!65ww z;(V>DNtPXm2k3d6A1|Fkm}+5@{36O9z}$eD!93l2~r0@2%U?lNbx|bzJzQ zyTT+_Pvz5Mvo8EB%k)Lto}R?QNkZN^HMwGQ$aZ39Sg!fxHM8enA@NTfG=5LeJ~}=p z)|p%Nr^S{wNOz0UmJD0LNapV+~Kg(JFdjy9N3MBpRT(5AZM_%^;A4m+7h(E=!kz#n^g1Fl%W_R#_fifwXljP6! zy3U3sg^>z2(y_0C_mT&;u;cg2{vmPGUq|y61Vh1ABoKm>Qiy4F^*^|&D8zLRVKzi5 zvH|d*Nm7e#!scL@m^VNI=x-89o$3w%S%B(R?5GW$X)rP%Utx=TqWvGT^+|`2yu%#jLf8V<{?JROOZB>$?UrO&0R>G>E7 ziB0__uPUZ&yS|p2N4lf?kjG+3v!CO@RH1Vuim>NQ$TAswze3+vdR2H&xd4H)NK*ipKF>A?ZzwTrPgay)~5dUOHf z-sn_u=<;Pl(A<$ac*=Ce4t2uCPZw*#zoT<9NGeR#tym9GLO@L9yru|E_wSpLZ5!8q zA5pea=1?Q^QwCKyDp$XL}`{vikEq|9+ddGN7;yai~O zI*du-EPL**eg;H5j&P)PfnCrnNg{d(9_4xQQoV_Plc}MEA=GbZRZ+AfwgubFsjeR%M-aY$1?iyAUkwhf3f?q_`w78w$=O@> z@bNUs6u2)DG}FIH;D7`V|0RdyG!o1Y17xQesPT18iqvbDMu^kBr|Dw=Wu~yaR?B{_22Lnp6YI zZr4Sz%ij@}#+y`y)h=5)DIdq}xez;(5lhu0 zi@RmhpFt>hjn$rN9#W5qp1X3btTe&jBQ?HkHB*yDS{aVv>cv0nBM;fz>Md!5PiboZ zMx0exi9bc{S!Fuvs1SI#9~X_KK)r@WO`-IFuy?vpQoZ+@IjVX~^1`@w%6MpZ`>8E& z4>=~lMATm&e#mZs@#gQ{|Eugu!f7{u#f}y}?#KKBE`CY(?E^bIL_|LPKxNrA`E>y( zYQkmXmECDJjRJL}*?u&&r{odD9d5JUV<%CA0vO1#6; z8>DxATX{p4j=+1QKAx3EpUB}MbNs`SFp@kS9$&e2KKYnRL4I1lqz4GdVxb8v8RSC! z8f98)vVk@^5en%7L*o9>`sXp!e@a|JGtB?^^I`Xy`b54t&|DquAC3}!iMhOh+}^ec z!?_gioR?EoR)vz_K$!Lnw!8R=`B<4oBCiyWQn>4A0RU&8D z&*q0EpAi2$R>;usrb)weYsHd6qW{yAP3Hou?gl5@ZtdGQw76IysM@FU(LJbg5~7Bf zAgMMUCnX=yAe-c!ythB>u<& zK5M9s`s3V!?CVVzo4XF^tL*uu>k*G~qaW}GYa-(^XhSKsLk}XF@bD@ySE0f)NBHi? zuF17gkqR$(q2+eaL_UbBj|}ntI~Nkdl*e=WXU?4NFDI`_j5)XlK2Ier=F8Brt!CBt zzEMo-4SS7hu6{mig{(-Pk6KZ#Dx1qAVtJbc_o4+CvWncjkToYR3wB8KNbvgv!D&4h zBy_}k5Qb~ApA-^D%y!A1-NiYqg;4Fn1lIgB-j7N1{yRIH&aU>C6C-}#`{~cb1pk;* z`a{QgS!50@%`?@0#VXn)h(KL3%+utYG5%TbI2rWrKMf@F70vUXns@^H5nffXP(PsdaOnJsF9h*$cB=)NUtzkx15S8Ri-!Pc3zRiEG@6m8Vh`kG-|K*539#l_>1`pj^V#`fLkV;wy?j^ ziW7=+q~x0H{N=`?$_>OoMQ$(QJIgEVbi{tOZR7WMviOd>=eIQP|E{n2AbzHZSz$V_ z%#p6d*-LKdg+IpMJRAd;(VyCIb&MlkqUT2A>`;uf9Rim3CI?PtAELX z&GhJY_8&a?&Y3;+Lsy&@<+ge4&kuC4QPFk+ds6j8hhbGKiBf{28GQJ8sk5Zv=QJzB zB7M5^VNLSzDhkEao{9I!#F4_lmc^c!p{q`cIrL2+6XI(x%F6zkVneD+eGh{Mc71m# zpfpgt31+Bmj^f~i|1$V=<3Ps8AYisf!Xmk_D(OtV@MBiwkg1(rAVc9>oQf3-xfz04 zMJd4YSH5sOvwU-IH=?sMc#lVQ0OGfrlB4SGTbmFUy8XqtlDFi}2K+Au!Ux@H4ktC0 z*=gWO!M_q-wu(oWZTfos)2?@Z2)z2p$|(rAWHs4f_G|aKH5I)s1FIl{-wT_MHhnfcIODhGZ^tc>03lqSd^6VP8zfF`?p@sRWWPOS8xe z;=<=TD>MT+XWGL@uWo4VYVmBA z$!YZ;T$*68}n5oF1PU_6g6Owr4}@5>DfuC_VQ)Vas5p**g|$nyX{e1SVt z^c)|T^s~Q@5;3ac-6PfRheYB7VP#GR-ba&pmdA{NS4*?D=dL{1kb6C)fz<#NGjjEz091Yk)FUPCcqkU;b+|#K;M{vKnNulftDI5Ll~3v1ZO|i>|;$Cfsq6 z#9RZ6#t9M$c0wcqZS$fsiw8y0-g%aF|1iCZicU_msJ^+xF}^GKK5h_!t`eE2nNGW; zqF?OVD}iIkLwznl=h3e(60@7gm_&%oZU=YJyTi@)BEc?fnS6 zGywfHPIRL!({!Sf_xEul&sZuoAoGM!>~7LaMHab);QIckUs5IETKcxzL*pN@{c@qF~LRM>CF>8sxL-WbqtE?NlG zUr{P$+a2Yi>u*i_W+f#BDYY@FLMzEIe1UcrRKX}>ipFw9<`1TskH9U{Prxl{q(j8y zL9e%NCJI@I@XuE|U(K>uKmGM%`BT;1PMA<4^u)ut!4-lQXN>2xX)g@i-eB`vUqoEc z%%j1-G$bz}e$!sFlC@2Dd&RVe80yK&OBv<9{0mv3?Yhn9nGvZJvTHW2t(LkRD>AqU zR%nJEw8m!Wgs6Eanr7OxtK*U5F>^FovKDy~{#6U%=pUxf8;gn(f&LR~{q2!S8rNLG zJPKJ;s&QDKMAH4?PNXv;A3<0L8K%g4VJ6SSyPgI_7AQ8?5Cwy|pd~4opT#2H5ZM;t zLHQl<9*KvKDQiQyq|D--(&W&+n-Yprz!Rno1GxsD7p4hvLtYc402lSn@z_HPtS&J0 z++Oxn1vgO=`!GOsXy8geIdEs6iz_cC3ifVPcrZ{X|t*JBr&Pc zx$|S<*L6AfoQQ2jIrmP*D$TjN_jwHkL|JZ*$_R8zva_md ztDHm<=`IOA)0s)Skw)D40o7O)MdUp+D+vw}1N#;h91bv_eq};B8r+}G#VV@gEQ8Co zs4`c2iqDWQpZ@fYhV_ntY(RLGpw1w1%W?3HNLgCAk5miU?9YI=0y zBY$X)-Z7EC9pQCXGDv-%d8igo+$B#Rhe+M~95?b(rXDkAAMd8>4+3Q%GI-eH353SC z=Ly)3U|i85r7f>tM(~W6R{JLM7*+z}9&R>0c}G!C!L(^H@`(uS(L=ZA%%StkMZnRI zpA1ONpDkO2K8R|B#UD_iLAaBR2iL;894-2%s|Tq()j zG>womXj;Mk*<#sn!6@<4dIGY%r>Pg_$=UTPr*P@Nl=rNvxpW-&?`b!ANfR#2XSALZZ(;E$8fv@co6DB(8n3djJ35$Nz%R=@yp9zQYGnj& zx2m&u4&T{}ci)L2ZvU4A&ZQ81NS6zOR4S$7>1NLt80s&9@>mU;tjjD3~|xC~+J>Uy3usBMG{H9W6!g zyhk?u?pv@>Q&Ho;ANa`h9rw`*ubGZlMuuUu5nGS7#B0~g`SOoa?Cm_md3lOH#jlK# z)tDjLL3vmOGGt{wS-Jl1Fr&j_GzeQOHF8LK9v7Lfso=2KCh70`el!GM45{49mMuR} z-lQlgl3wvVq|oStd3y}{)I9_b@PJQ|pvLMT-X{hRJdmH#UyPP2>|XF7wS53Yh$Uhq)?gL77GnoCQyi zhMO*sNAMI4ZI8RkHeGi;eY$8cxVj4(o|NKHTAZ z=H>kq9t`jMIE`axsI6H^Jhhy{yb(FzK-&#GatmtTq<@U#oYGw_;}RVVAbO-gQZ*VJ z)RrB^WAzIqf%kwYwcR#cKQIT?$c~j3cn>pPfcKcjy^e^<@A?vdIj>!A$-Mv%UKX?x zr8ZvP51g;@wBy7PtE*NJPbE`iF@-GteY5VwVf7gj9oNkyAIHi^Dp>4=vL-G4$hpG7 zgalN%^wv|O^}qo==C=6v`vTB2RbQulz9dgdq3U1MgF`K07cI#9tz?m=L+lm{oG;_T z^b)U?us$Vre(>dI%W8*whz+TQWl$*$oZEHL-YE%)Joie&$Yi2mtY~p}E&Q{)#;ok} z2LMYZ(%zcmyph6x3nMq(hB6pS`F+xNc|c`J*FQ*A~$-=S%rLWw=8+aWCKe z*;<9KoZ{h4Z$`&!mK>l^I&a}qfAov!L_~1J+dTq2!b0G63z>=MD)$qaPVYWOX3_cx z{HpEQZcoy~sjT+Q{Tv`CSR>Xf@hPfn5n!tmhuk>)mMTSKK?{Ed z*>gVpl4B#k%QE~Lg*YGjbaU(Iv9@ad{RDcI&a5Bx5`B+lH;mNQ(0gr%Fu>|z(m68T zk`R_oh38j3)Q;ZMkaRy+*=zcQ#ipkZwrb9~DaDsH!T#Z83WJ@6r|Bokcq}M{|EFTd*I_xd-7w3q zvPaWz%p_Eswxf7NO0uj+>@!>k|6wOT1P9OQho3WJ2YAfp`+_HpW~ep>7Xfet2hBqK zw}DUiS8 znVY=xN)_q=2`A%%SFdTrRj%mYC5)$o8s6EL75!ON0AMKNO2dpNKg~qVhf8FM~>9nB_p9al!x128gFznXY^m;@Qv@fW{-Lr zi!C=Vc4V>0slN(FVkD&UFqeX)!+JmI$M`tge=6ZuhoIcj2QSe~0*T=JK z&ecBmDEa9M9~txt^uxwXvL4^y>K!xav3}0T;=SXQ>GBN|RUbCCV-08_(m}0!SU#W} z?y?Y4AVL%cH39O{8*E)PV{U4L+)`6-MvSa0w(+&u?=V?uAd<0f4eme@1z}5kgtl}q zF!-gdcujMo&>c=mnf*@Jm3W-}od&}B2#2w15CMFw=V#q5IuRHNdSt2Y53aV{Hm2WWtSfp5RZ%UZw-Fa$OQC?P?|s;m~SDlhoCy4 zLlZqkj8@j_`sUsk^Ju@Wn^Bn5JG8G=Bi;N8*Llf_9gmeftI~tY(tASbVRITJ_^~Ps zJ$vPx99AguKGe5n{AytOnX%@fn>A-n(|@(6C3-zOj&E*+X$pw!Sj0VM<{a4NH22$n1bQOzN+m0DJ@6yxq!#XLl*5sbgTCWR3* z+FcoqlCQ3P)~|Duk|prSCw&Gu*5A+t-^qZQpSULTd;O#&iL(HiUgd(Hx25~?R(I|k zDrF+}V)h_b>~(jdSHz22rRlE~!O4Eq*M&*Qa(2=mbS2JX?Zfg_LZo(B|B`3)nq9m+ zNlsoU2Vp+}vA3|j6`fw;UvY70G1JU^$@BY*#e;b5%W;GrLRl9zUgmaXG5|Fw zm)Vs4dQu3rt$Yz{itDQ3JG#t%b`GCTX52e@2j)7bZC6L7?Q7khF+M`opBcK1CwTVz z!K=SnBMQI=UWfDH@OH6*{Dzja7ljp*IR$8(D>pa!$7h7+ETX2{h`^1d<={5WGq7?tdIFKFL3zNRnap?n`@7cti zl#kvY-;#j|Pwin!uRBtoEEqHY5dBy-X|U-F(`o)H`gn;$>FOg5-W7?$SGgORnxE%!u-z#!YVgp7F@?SoD06;H+7C7QSXLVZr*G ze#SdI?*ocPbKo}_8kke<^sut8p^}!r?%AX=j=cm0pSbu0F1c zRXF1Yt{b#{Elj*8_yJYpGFB~`fVOy& z(-tU&DJ=3^pBPc*^v?eAEsq<|`HVH(j^z=F-ULd#snmSAsS|PuUx)Xv^ycV~OqR=! zRU(_oWNE{{oKqtjZYe$9ykV0C89i;%R#7W0Ze$!g+bn?5P_0CGs0h!25{_v@-yyI0 zXy`2bAjy3Fmhz>@^WPjW#7ib?=w~nly$Xd%00ToBfYE`AsV=d9GuT#-(7RpaZ9;Q3Se3xd56Wjbz2PXIW!J{z>c(z{Ko^w8v^vZ(Hk_tG<(9Lt<;u#B+#MaP zQdOTqCG{uqN~q@9`yPuCFRF{%=2vMGc0<3ebNPKu691H`K6)PzRgW#7V5Bcy;_z3) zKAEmrGzYWGzv*|{Q0R@MP`jgayic&N-36WSTXk(5iu>R6$}YqBF^twsnBq>+uJym! z}|SmGn+y%wQi+ZHuQBC6ieucYVtB?$Sk+9lGu( zg`mv%NhK%uL;d<%FZuyyb#r#A{7qB?(hI1&e2>PXwk@-A^O+gZJ3f!?&_A%9n~ous zGx*|}B?0jL{~az_}vaMOEIQDb_6z+~MP{)GXv?VWnr1WZsWy`#4b*PrE#j;Sii`+~j*$ z7J0)1eDe(+P|B3IPMkR7P%&FwyEFeoIhV$~yygBW9X@n}^BHNWKq5~Z`u^jHkUGw| zQ9CMq7&$+#^821!7kfTpdPV2jVdI!Oq34+)KSb0H-KJV+x7+<@3cWE43jdG&-1OBs zLRTT2`0s*c3$11&)JCKqRS+Tgy8M)~PnaUpP$)WBT&se8005#4^hev!zBkJwn^A5z##bbh1uYy(txNlrY+|0S z1H1mlP`+%?UsQ4QEzN$k04<=CXnAlbwlns_o+x2y{1&Ua87dlo_GsS(ruW(wlfErN zP4x4}&v+TA{j%X}`T?G1$UmF4a!Nb$3Tca419m~3zhfmDleyNHQc08P!)J7j81R}z z$3Iz;u`QU4#!hwt9R14`5EF1azVd0$8@8V_k$)!se@Y%cMnS+RG&+nN;H_S^}$yXNliX>m#1V03y z?WPNr=DOFn>V$f~hnBP|bdU3%i%ze(K&YL|Hl<}p~!ma)WhBihf>dUoIiIs99Z z)t?u5ocK7Vrx+P|^;ZWP7 z+veG2H_hdFYjiYbL#RX|A%9CPs+j8CHvSBm!H;wgMFLM(fv2ncZYe{U8i;D?=U}w@ z;-5ARShU(c8wh05iGdr4hI12!B4=q7q1D#^RaO&E-q5#-Xpa`xvC`t64h-u;f68!V&0vKc@7C)n zYP}xFgJA(A&;a7U9#}knGNVC8Cmx~48OK(ZL2Z0cF`5usB|^_+1(>V zR-H4DDdKC}e}GfgI*5U_cL-MgqF;G$D-?Rf_i*@ZLvXxhRR;mb;zvO%Y*SS;ch;7R zh&c}9Q~Yc#B?T~b_MuF6)y~I7^gV{%7c7bRWhnn&?JZaPi3|F98O%%x+@pT2PRd@& zYRo`N%S?W$1Xg_*{O#0T)t19HEP{AAfw@sp19jXfr_eL!K=fti$)S5U3T%31nu5v( z3hB!s8WHxZIWeWK0jE=HY^sXC9uau2BaYw~#D+C^IUBUW;_mAqp5arz;;K}Za-`UX zz4^cv(eE9BBbLl=nN5`?N!);+pF-Ip+NVXGO^W6hPgz1vKf}HkcY*wOGX5~WkuPEm zS9`@eJon%K_Z~CI;JhxC^|yD7J*THH>dYoO$EW?@a$e4Q{@>}m zo{9XQu)S2H`Tv#fWP4zsTlRR~xF4Z*jjG*1hiBem(Hi1T^c>v4OI3Y;$24CKP(nj7 zFG{Vl`{C_-4F3A4LoqkZZcNX?pQVmDQjvboenNiE!ALx*S|+WObvXHl`$3(nc?#Ii z-ZkoSTV_#sJ}!fo(w|2Y zV0P*~1p1KMniM1*Gh#|s0ofsp13P&_lz}2^Qce zxLv!47W2g6XeAO{#3?)&m-d^szPL`mM32nrI$S1w(uNy-r1dG~1iFJ=y@cLAa{r@9 zL>-H!QPB=^vr)UB6c!73Ws%a78m+v!rt zsTeF(`RPmD5;z^5ACizfDu>xD_c+WEDqKr&MG9PbkHN!1;fE%@LKCoBb*WnIs1@CY1UB;ci~ z9a@N2%7#mZ+B!P-7_h0h&b6$_bu5OetkLZ3(8@L1VmPcw&NbAP=8MU|4JQG7O{=sW zeUChT;>n?7jY#BkWKTh^Gx4z#B9(8**|ZsOBbj8A`NomdJkibU*xY!D2gADb^5 zJbkdKnPwv^K(!|WEUj>m$^TI_v8n+0glRCayQ#k zW1M79`k0$ph?>k}|HTMR;yyIkPeXZATfop&c}e`lZLFiy@hlFzc5nTD>Q zU~J#9GI?2o%Ai`nqe5lu`jd%emkqqbe6u&1)MLbHasn&Z%ZZ>zdxxP9l4<+x1FC&@ zh|OKufvEt^gxExkCh+bT6fI)`st4}geDI9fDf0rkyTqQR2RlK$=qU#9%kYiRAl#E-4e5kEPkHbE}gZaQ%5N%iy4j?CGg6`xGt(b9t?h zoCzJ_bx=k=l0Irg91cZuvo!j0WsoBg+H(6E5YjWBa$K_^r+;?QSytn3?8tsSm#l>^ zBWB<*002h(iL(9rQs1F7*>) z3qCKu(wP;CKBSZc4#HdYVA({x?lt?$zsJlAW(kN+PKgi7t>rtkO~B_%RF;&l(MWWe zvm>f&F_rZ*C&=hpF4Adbb{HN_>D1-bOU4Nr6_tt#AZ90Dpo{Dal73{JAB_6c$@x*4 z;{yRstea)Q>_mHT6+xRE?r!MqD;g9ciD^qrmDJDOC0ugt3P;+`kQ)N{9scQXOh&20 z-R8bNH%x{^%LIyQEP5jXlX1;60)MQ!xkDV)B6eNr#cg!c520F|Fgs1jkg2XQVA6&# zzG%rGioJTCUaE!XkTVL9HXQMs{0=Q&(VzwMrW)tYL~rU3HOysw>T@ zsfq}^4^6P6Y`qixvSbmi53_Sgy8V+38lLIq$utCob>z1r95b8LrIZJC<+LMdhss=S z<&D&so%7}E3gOGkb3*5_Q~T6vaXsBZ=b*hq^C|1@6B@8r_<4)18{O1u-@_x7W!+Mt zK`-18*-BfZ<+drL?H#sbUoIFi=0NGB6`gFaN~IFk~@37 z$9Gg(I3`Yo;dSKYR+BD==R(asSNJMz*p7@)nxZ+yA5SHIz{U}a?&k{-H#ql#>01ZU z2eH{+nF>0z5Far%7Po^=8kI|&)W*TuQh5G3EzQ!E%y+rd40Yjb&zO~}*sj&uGVq&; z1?|=(O=>nbz2eMh^~yTB00v_NF)@E+GBhRSE!)fH37%-@RM2_@LzXGhE7YUOJ41?- z@Dx^L9Hc6HLc$M`Ah{`D@8lA^!G(K@q5OcUs2vG`F+WQY&iyoLs219qJIy7=p;*5qt$?_Wz5v>F z*g*?aD{)yPN?|hD?A+v7{syL-8nZEBhqINo8E45&jB{}D%CvMjm0hD2Nos?n-zpRQ zQQI?OuO&50k_+as_ot_Z$A+PI`l1Q^g<2>^ekL5_p+ITNQT8_E;I)}-H;i5Wyrvo- zx$h~(K|v!`lAPw@LQ$q$u)Tx|ML03dLjb>Uw;B?2!V;BsR&QXMIB#*?A$`RaPHz4} zwun9Uc@y;Xm~yOUD)tlTCt^xh=3B!Uy+%wNg;;i3;E?OWAiMJOrBJ7DMU5v)hHN@> z&3r9E-i$!WW>=uHhwR(yR_J`oV5Slo{fe$oJL^hwd4*G7pQN7O5x4?D(L+*Pk-}tC zSr78(!6L87#FcUG^dpjG7Wj^d2z%qg_KukchyG7={!euNQFQK=S(`*uSBEDV_KzVr zb@P|Ws``8cOAeR5K3K*h`i>bR9Z&5j!`YYH9E8kWB@pAG zus#s(kAie55yVYeBa<9OKzkt8Rvtl~KiJ6j?4mJ&G2gb1U9{&m=`^-d!-j0d3T{v>MWUCkeg-^t z^LTIC#{~C?X;X5x(R;QSlO`JN6yfs;z%S%wXpPHDz>*T>PcRV-Qs2( z1zi3Y1X7zll?j*(NUI~F2_5d?5XPPgr*2_VA~H`@$b{;$d+RU2UN%=Opl=g4RnTOPnbQ^M>+Iqc*QD(eBf(%Fii*<; zSn@e_r^A_s*f4jNOhxwWQm^t=;xx;k%E1$qk1zT8O~k}d=g7O_f_)wYi~U(;_+#w^6wXE8?cn6% z#E!Ix6+_{V16Oc44H(+%pfIxnUEnvtcHpgOxgCCqAl8(MEw@bpa6(iCzKU36Y+ghm zp{goqxV|8wbCGsd1@#*3U5s5F$V|9mOeKjLeq~v(x`o~**YcmIMtW3-lzQ?r(zBVU zGxA1sFm_3!(~ssssITh-!G%2QrkXB8U%{yBJh@$WfXbvg?^=TQfP4ozIUmNB+v?wk zdfI*X$sN1)h+xo#6e5(|HnP_MAtMBjjd+I^H06|{>})7Z0|BH9GKmzEF=#@guB#;c zJfjKTn)l%w5OP)@QviOb6eHutzzGFa*?KY)DjSl4B3*6uR@5Q8%8l?Rg;bX@meYAr z5-1Ynx3}k$wOg2OOsBriPi;X<`#egkoedh12J|I|IAk8gUUX#?!ZeiLg6$y=bt^Kp z5bvu=i47Yh&(og^g_)p7!0)@7cP~lT^d(c!AFzA-_@8Ebf&oe-zse1Rgl;QP_PJ(r zPT?_jUYTJarqJ#6kg1m)1ObjLw23M)(Sc+@*NMxaX+<+Hbe87kBi|CV zHBEdjRHPt5cMv%{N3lf)f5Cw({8K2cae7xU#;*LVHnhxgqOYKOtIGH*+;jqag#o&H zEiYf+A1QcFh*xnrT$sF(o$DI;xFHpcFZ@tmMJj3Dpf+P6-4gc|?L#^cTNab@ULsA~ zJ-~t(n163UwQ9LR>4afI_rHV_?k$ovD~8UNoyCK(JG9-RV6_TNwAi7(egiw+cm`^x z_o>3-YSfrPUU~G64DAS?W9&8Hgo@t9km}yMZ@&8X4C;2WS?}vxzpnB~eXQC*>ccR{ zjtNVvy3jopA@4(7S?tw|)gj0Vxwonqfa{2=tmINg6y0LG3>>SH#1z9gN5xE-i7 zhtY6B?Xt#{_3%unZ7I-srLKuO>PoP%6J#Uh>4q-b3TjbIT$=c_f?dM|XxT_ROl#gxIiAtc1|wBMaKxoAUmwnEnRwWur`K!zQzq&t`YIE zh<#tNAntV;JyB_sF|@-Pai5$KiM?`<6V1*kcN>$W)Z>WPB><}~>OwWUsvrF2Z;L>G zZRAF@)XDd6K9&c4Z2L?G5xM}G=+z9=*M|blJx9!z;Z(d?&Knp|N*Ac03oKht#^&IbUlrmCDm9yPU|9u&{YKf86U+d2ex-0YD!IFGIYMx7?NlUepuX{|WsGQv{ z!fWMPww#+4>i9krDmSK7PWLzh5TqsCP14+!gcd@k+6cQsNwHt4xQEn4cPj?pdQ32; zD7fHi9R2{FY!!iC?s@x`=OqC>Dj z+U(K#iwU1n&o%2S)K1`!scv(U`^~&$`!TP7&wbiCJkgi<)LcmfiNQIVquyMwOPzop zPFPRnicu-&u})Y{sI4owEUfjh!E5>+rF`F74Zjdyi^o}ExjLuE>kG~+;_!woWc4W~Of@_vhL#n@B-znZQ+sHrQB?`&tf zvuiufuDf>C7TTh?v+}4#KoUrHYb#PzI_qfVl~_e?HNl7>gbnKSL3Wi5AMI~b3UJEss$Rm{iSG+(PE=dfzxn~bL-apShGv|Dd-|zd*`R1JCQb(N#3iK)^CV+?n{!)x{f$GQlcQm z$+3QDJsg^$Co3u<&7&R9{J(r>3^QaSek@`&!GzMc%zdf2=*)^zw$CN`Q-IGZG6u`8 z^T`L5KGI6XB;R&h%tX4T`PAC;=v+*Y;nq_JPa;o z-XL1JnBJdglJVHFr@hu{E3aSKa!QHm^M*bq4xF^94q&~Up|Y;vfXHO&emdQhdW6O3 znx=$+JiD~7byPLlwG87cwvjQ}{xRqVw*t&ESN(vD&9K(Xj1Bjkcitk=r=pa|NMrL^ z6^4dA<1P>w7ms0dl_g^36eqGOT42w>j}E7!dI4H{nO+HA!sJE3_S$)CJ2G)z?@k77kna+=;Sm)6g*ONdcCTS#5CQc zc<+?C4zt@xYvHR-icbyQ@0Z?Go>Lnx5j`POB4WjoykF3l-Pyv6jh*Ar+QU-ziUs3H zK_OGu)Zinx8(ZI$Am8Q=X~bIL-hV#!m+#;S_awVMu^h^A1iUWeAD+olM<2{<@M`-| zCe!uiDqxMP%aRlbqWlh;jaP%{A>sX%Wc-={(=GaTlr#`S8|&z&sahjT`$pE;2iM{bS{ z&U1#G3yj_bO=_&>np%&5AkCI&8?5$z(aLa$xzz**;n!)`*adW&`;QdPPqnaeMs>xC zrKc}+##jqE$hxaI7$@e+Qb$42OfhS=0)CU-dH)fOtMVtQ7)7j&RP-cPt@@%qxPPYAgMmAu=#)&J`T+?zEpsR^q}T%i>v44$-flh6Mp|X?eJ82QJ|J7p zuLq`nnQjluP?M0ybhgnlBf2URzgZ&SSe}R`2cG%#fuj9W=0kx8==Mv*l<*DPqy=j+ z`GWlYkambIn$ATS56fA#um#)ZI{h5K0X-k(g{X0wzqv-_7;a9Vma|o7PN50voPf-K z%SYxNKJUD2m-)V2`8lhW6U=0935@2j;O_N0I`#H>-p(S&UW z_$}HM@OjE28Wz@g9u6tQ(7b+i=N#GhKcb~g>p!NQ{9d}Jp*Q7Iz3(4-*7gmMR-W(PpVcPmcm$sLnh4Jv` zzM6z$Jn6ZVaqZOB;pVJPG+`p8aSQGn4Dx+g&9#vnEq!5;i9>B~>TFd>qo1~6y@`=s zR8&4$e=ctLgyc`zUveptdXqbp(`vRLmC7yayFHtVt{WoK zh>FV9#;PDV**~HyVU5+^>}Y{YUn4qEeF%GH`FS83FBFCq^3#YalIT!XY`ASjZ}l-t zEy`g9jLgIq6ZWn3i+&<~2HLiu!ck(p{fR_dz?2p|q^3X1;(*KJnj0Qb!8ZS{h!pT% zO=^8uRs*+^I}80h{x2CMSh+%&P+S+I{3!taUdB@T%hng>T_u!4Un2jg9vX4CMqND;QA$Ebh_g{Ks#s%)qa4(dK=Z?xNO4fxJr))h6bo8BEaV%(fUrH; zGM`8v<>FQr1#zkN3=8Pf!pT0Q!Q<7WWPj+XvG(-Z6JE0{qGg`RB>T<;JnqZvv*EOM zd%rYRo4g)kHyRdURk_*ahLWXA^jFOxDc2e+4r%q*gtz*1rza;X(1EQB2JqIQC)UQHiX9&tf`7LD zK9ML09k|iZcyG?6TB{1^!9~)YVCTof654f`n*I7q_L#81>st>#Qnw;HuxVpv9lVLD zH3^Aws@ss)Lm!i|DwZ1%&uK*L9e&v?JV`rXX=vV{0&FS>8yO!+QH+Sp?HJMfy$~c& zsjIo0k|h&C{@OHFlVNmjDLujUf6c3hz!ucb6t8nWaz^mh8oA))Sz|*CH>|r}E#@ya z$uXB&s7tY@7chb(wC{418h~$jz{$xTJ>~(&(Ues^Py}?lnqh$99$>)_tC6Ux^L&_< zl(TU3!0uAk-N|}FIcKQe4z`^V@7XCB4)g~3NQp23I0Q#FV=K z2a>&G=JdLH50`3pGerE+#%5e79i%0tb$-nhVRPt|tT%hEV@fo4zGys@foW#0a*co? zkp}bRkW4&8{J4+w__k@kpUSi#z{eLL>w+sx9bU_vh{XCS%GJzh zipG)MEhmHIkq+!OQQ;|G6@27QgK?`t)DJbMRpEo1Eqd`%ck_m;CG5#eiMH&7S@dcV zmIPUVq4|Qfcu2l2Nk@vK>~??W!ypM*p{BVq9n+)v*m;oa5k=d349@O-q?HsY%C!?A zXE&U`3M2&b{0?0kay*I$HVOSXm}AAb5s3M=@PeL;mTr^GEYqQWWw1=k#4M__ig4cV zr{lHBa(14FbrjAiO_kr1IULDI&?ZdC-tK5UTQTFc&6lj}*me_qS@_#h|3D0R{Lk>;WT@;=PF+X3T!Z2(8rcuO_; zJeL-%3AYYUbEeW7IMj6u+qjcM;@JBFB@3(0&-f~ ziuC;Z+ohMUEq$`}@$wgK7tX!x_>c8p=Duh + +// Input parameters +input int RSIPeriod = 28; // RSI period +input double OverboughtLevel = 68; // Overbought level +input double OversoldLevel = 30; // Oversold level +input int TakeProfitPips = 175; // Take profit in pips +input int StopLossPips = 5; // Stop loss in pips +input double MaxLotSize = 0.2; // Maximum lot size +input int MaxSpread = 1000; // Maximum allowed spread in pips +input int MaxDuration = 340; // Maximum trade duration in hours +input bool UseStopLoss = false; // Use stop loss +input bool UseTakeProfit = false; // Use take profit +input bool UseRSIExit = true; // Use RSI for exit +input double RSIExitLevel = 48; // RSI level to exit (50 = neutral) +input bool CloseOutsideSession = true; // Close trades outside Asian session +input color PanelBackground = clrBlack; // Panel background color +input color PanelText = clrWhite; // Panel text color +input int PanelX = 10; // Panel X position +input int PanelY = 20; // Panel Y position + +// Global variables +CTrade trade; +int rsiHandle; +bool isPositionOpen = false; +double positionOpenPrice = 0; +datetime positionOpenTime = 0; +ENUM_POSITION_TYPE lastPositionType = POSITION_TYPE_BUY; +bool sessionCloseAttempted = false; // Track if we've attempted to close positions for current session + +// RSI crossover variables +double rsiCurrent = 0; +double rsiPrevious = 0; +double rsiPrevious2 = 0; +bool rsiCrossedOverbought = false; +bool rsiCrossedOversold = false; +bool rsiCrossedExitLevel = false; + +// Panel objects +string panelName = "RSIPanel"; +int panelWidth = 200; +int panelHeight = 200; +int labelHeight = 20; +int labelSpacing = 5; + +// Session times (UTC) +const int AsianSessionStart = 0; // 00:00 UTC +const int AsianSessionEnd = 8; // 08:00 UTC + +//+------------------------------------------------------------------+ +//| Create panel | +//+------------------------------------------------------------------+ +void CreatePanel() +{ + // Create panel background + ObjectCreate(0, panelName, OBJ_RECTANGLE_LABEL, 0, 0, 0); + ObjectSetInteger(0, panelName, OBJPROP_XDISTANCE, PanelX); + ObjectSetInteger(0, panelName, OBJPROP_YDISTANCE, PanelY); + ObjectSetInteger(0, panelName, OBJPROP_XSIZE, panelWidth); + ObjectSetInteger(0, panelName, OBJPROP_YSIZE, panelHeight); + ObjectSetInteger(0, panelName, OBJPROP_BGCOLOR, PanelBackground); + ObjectSetInteger(0, panelName, OBJPROP_BORDER_TYPE, BORDER_FLAT); + ObjectSetInteger(0, panelName, OBJPROP_CORNER, CORNER_LEFT_UPPER); + ObjectSetInteger(0, panelName, OBJPROP_COLOR, PanelText); + ObjectSetInteger(0, panelName, OBJPROP_STYLE, STYLE_SOLID); + ObjectSetInteger(0, panelName, OBJPROP_WIDTH, 1); + ObjectSetInteger(0, panelName, OBJPROP_BACK, false); + ObjectSetInteger(0, panelName, OBJPROP_SELECTABLE, false); + ObjectSetInteger(0, panelName, OBJPROP_SELECTED, false); + ObjectSetInteger(0, panelName, OBJPROP_HIDDEN, true); + ObjectSetInteger(0, panelName, OBJPROP_ZORDER, 0); + + // Create title label + ObjectCreate(0, panelName + "Title", OBJ_LABEL, 0, 0, 0); + ObjectSetInteger(0, panelName + "Title", OBJPROP_XDISTANCE, PanelX + 5); + ObjectSetInteger(0, panelName + "Title", OBJPROP_YDISTANCE, PanelY + 5); + ObjectSetInteger(0, panelName + "Title", OBJPROP_CORNER, CORNER_LEFT_UPPER); + ObjectSetString(0, panelName + "Title", OBJPROP_TEXT, "RSI Reversal"); + ObjectSetInteger(0, panelName + "Title", OBJPROP_COLOR, PanelText); + ObjectSetInteger(0, panelName + "Title", OBJPROP_FONTSIZE, 10); + + // Create score labels + CreateScoreLabel("RSI", "RSI: ", 0); + CreateScoreLabel("Position", "Position: ", 1); + CreateScoreLabel("Spread", "Spread: ", 2); + CreateScoreLabel("Session", "Session: ", 3); + CreateScoreLabel("SL", "Stop Loss: ", 4); + CreateScoreLabel("TP", "Take Profit: ", 5); + CreateScoreLabel("Cross", "Cross: ", 6); +} + +//+------------------------------------------------------------------+ +//| Create score label | +//+------------------------------------------------------------------+ +void CreateScoreLabel(string name, string text, int index) +{ + ObjectCreate(0, panelName + name, OBJ_LABEL, 0, 0, 0); + ObjectSetInteger(0, panelName + name, OBJPROP_XDISTANCE, PanelX + 5); + ObjectSetInteger(0, panelName + name, OBJPROP_YDISTANCE, PanelY + 30 + index * (labelHeight + labelSpacing)); + ObjectSetInteger(0, panelName + name, OBJPROP_CORNER, CORNER_LEFT_UPPER); + ObjectSetString(0, panelName + name, OBJPROP_TEXT, text); + ObjectSetInteger(0, panelName + name, OBJPROP_COLOR, PanelText); + ObjectSetInteger(0, panelName + name, OBJPROP_FONTSIZE, 8); +} + +//+------------------------------------------------------------------+ +//| Update panel values | +//+------------------------------------------------------------------+ +void UpdatePanel(double rsi, string position, int spread, string session, double sl, double tp, string crossInfo) +{ + ObjectSetString(0, panelName + "RSI", OBJPROP_TEXT, "RSI: " + DoubleToString(rsi, 2)); + ObjectSetString(0, panelName + "Position", OBJPROP_TEXT, "Position: " + position); + ObjectSetString(0, panelName + "Spread", OBJPROP_TEXT, "Spread: " + IntegerToString(spread) + " pips"); + ObjectSetString(0, panelName + "Session", OBJPROP_TEXT, "Session: " + session); + ObjectSetString(0, panelName + "SL", OBJPROP_TEXT, "Stop Loss: " + IntegerToString(StopLossPips) + " pips"); + ObjectSetString(0, panelName + "TP", OBJPROP_TEXT, "Take Profit: " + IntegerToString(TakeProfitPips) + " pips"); + ObjectSetString(0, panelName + "Cross", OBJPROP_TEXT, "Cross: " + crossInfo); +} + +//+------------------------------------------------------------------+ +//| Check if current time is in Asian session | +//+------------------------------------------------------------------+ +bool IsAsianSession() +{ + datetime currentTime = TimeCurrent(); + MqlDateTime timeStruct; + TimeToStruct(currentTime, timeStruct); + + return (timeStruct.hour >= AsianSessionStart && timeStruct.hour < AsianSessionEnd); +} + +//+------------------------------------------------------------------+ +//| Get current session name | +//+------------------------------------------------------------------+ +string GetCurrentSession() +{ + datetime currentTime = TimeCurrent(); + MqlDateTime timeStruct; + TimeToStruct(currentTime, timeStruct); + + if(timeStruct.hour >= AsianSessionStart && timeStruct.hour < AsianSessionEnd) + return "Asian"; + else if(timeStruct.hour >= 8 && timeStruct.hour < 16) + return "London"; + else if(timeStruct.hour >= 13 && timeStruct.hour < 21) + return "New York"; + else + return "Other"; +} + +//+------------------------------------------------------------------+ +//| Check if trading is allowed | +//+------------------------------------------------------------------+ +bool IsTradingAllowed() +{ + // Check if market is open + if(!SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL) + { + return false; + } + + // Check if we have enough money + if(AccountInfoDouble(ACCOUNT_MARGIN_FREE) <= 0) + { + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check RSI crossover conditions | +//+------------------------------------------------------------------+ +void CheckRSICrossover() +{ + // Reset crossover flags + rsiCrossedOverbought = false; + rsiCrossedOversold = false; + rsiCrossedExitLevel = false; + + // Check for overbought crossover (RSI crosses above overbought level) + if(rsiPrevious < OverboughtLevel && rsiCurrent >= OverboughtLevel) + { + rsiCrossedOverbought = true; + } + + // Check for oversold crossover (RSI crosses below oversold level) + if(rsiPrevious > OversoldLevel && rsiCurrent <= OversoldLevel) + { + rsiCrossedOversold = true; + } + + // Check for exit level crossover + if(rsiPrevious < RSIExitLevel && rsiCurrent >= RSIExitLevel) + { + rsiCrossedExitLevel = true; + } + else if(rsiPrevious > RSIExitLevel && rsiCurrent <= RSIExitLevel) + { + rsiCrossedExitLevel = true; + } +} + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsiHandle = iRSI(_Symbol, PERIOD_M15, RSIPeriod, PRICE_CLOSE); + + if(rsiHandle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Wait a bit for the indicator to be ready + Sleep(100); + + // Initialize RSI values with retry logic + double rsi[]; + ArraySetAsSeries(rsi, true); + + int retryCount = 0; + bool rsiInitialized = false; + + while(retryCount < 10 && !rsiInitialized) + { + int copied = CopyBuffer(rsiHandle, 0, 0, 3, rsi); + if(copied >= 3) + { + rsiCurrent = rsi[0]; + rsiPrevious = rsi[1]; + rsiPrevious2 = rsi[2]; + rsiInitialized = true; + } + else + { + retryCount++; + Sleep(100); + } + } + + if(!rsiInitialized) + { + // Don't fail initialization, just set default values + rsiCurrent = 50.0; + rsiPrevious = 50.0; + rsiPrevious2 = 50.0; + } + + // Create panel + CreatePanel(); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + // Release indicator handles + IndicatorRelease(rsiHandle); + + // Remove panel objects + ObjectsDeleteAll(0, panelName); +} + +//+------------------------------------------------------------------+ +//| Close all trades for the current symbol | +//+------------------------------------------------------------------+ +bool CloseAllTrades(string reason = "") +{ + bool allClosed = true; + int totalPositions = PositionsTotal(); + + if(totalPositions == 0) + return true; + + // Check if there are any positions with our magic number + bool hasOurPositions = false; + for(int i = 0; i < totalPositions; i++) + { + if(PositionGetSymbol(i) == _Symbol && PositionGetInteger(POSITION_MAGIC) == 123456) + { + hasOurPositions = true; + break; + } + } + + for(int i = totalPositions - 1; i >= 0; i--) + { + if(PositionGetSymbol(i) == _Symbol) + { + // Try to close position with retry logic + int retryCount = 0; + bool positionClosed = false; + + while(retryCount < 3 && !positionClosed) + { + if(trade.PositionClose(_Symbol)) + { + isPositionOpen = false; + positionClosed = true; + } + else + { + int error = GetLastError(); + + // If error is 4756 (Trade disabled), wait longer before retry + if(error == 4756) + { + Sleep(5000); // Wait 5 seconds before retry + retryCount++; + } + else + { + // For other errors, break the loop + break; + } + } + } + + if(!positionClosed) + { + allClosed = false; + } + } + } + + return allClosed; +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if trading is allowed + if(!IsTradingAllowed()) + { + return; + } + + // Check if we're in Asian session + if(!IsAsianSession()) + { + // Close all positions if outside Asian session and CloseOutsideSession is true + if(CloseOutsideSession && !sessionCloseAttempted) + { + CloseAllTrades("Outside Asian session"); + sessionCloseAttempted = true; + } + return; + } + else + { + // Reset the session close attempt flag when we enter Asian session + sessionCloseAttempted = false; + } + + // Get current spread + double spread = SymbolInfoDouble(_Symbol, SYMBOL_ASK) - SymbolInfoDouble(_Symbol, SYMBOL_BID); + int spreadInPips = (int)(spread / _Point); + + // Check if spread is too high + if(spreadInPips > MaxSpread) + { + return; + } + + // Get RSI values from bar data + double rsi[]; + ArraySetAsSeries(rsi, true); + + int copied = CopyBuffer(rsiHandle, 0, 0, 3, rsi); + if(copied < 3) + { + return; + } + + // Update RSI values + rsiPrevious2 = rsiPrevious; + rsiPrevious = rsiCurrent; + rsiCurrent = rsi[0]; + + // Validate RSI values + if(rsiCurrent == 0 || rsiPrevious == 0) + { + return; + } + + // Check for RSI crossovers + CheckRSICrossover(); + + // Get current prices + double currentBid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double currentAsk = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + // Get position status + string positionStatus = "None"; + for(int i = 0; i < PositionsTotal(); i++) + { + if(PositionGetSymbol(i) == _Symbol) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + positionStatus = (posType == POSITION_TYPE_BUY) ? "Long" : "Short"; + break; + } + } + + // Calculate stop loss and take profit levels + double sl = 0; + double tp = 0; + + // Prepare crossover info for panel + string crossInfo = "None"; + if(rsiCrossedOverbought) crossInfo = "Overbought"; + else if(rsiCrossedOversold) crossInfo = "Oversold"; + else if(rsiCrossedExitLevel) crossInfo = "Exit"; + + // Update panel + UpdatePanel(rsiCurrent, positionStatus, spreadInPips, GetCurrentSession(), sl, tp, crossInfo); + + // Check for open position + bool hasOpenPosition = false; + for(int i = 0; i < PositionsTotal(); i++) + { + if(PositionGetSymbol(i) == _Symbol) + { + hasOpenPosition = true; + + // Get position details + double positionProfit = PositionGetDouble(POSITION_PROFIT); + double positionVolume = PositionGetDouble(POSITION_VOLUME); + double openPrice = PositionGetDouble(POSITION_PRICE_OPEN); + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + // Check for RSI exit if enabled + if(UseRSIExit && rsiCrossedExitLevel) + { + bool shouldExit = false; + + // For long positions, exit when RSI crosses above exit level + if(posType == POSITION_TYPE_BUY && rsiCurrent >= RSIExitLevel && rsiPrevious < RSIExitLevel) + { + shouldExit = true; + } + // For short positions, exit when RSI crosses below exit level + else if(posType == POSITION_TYPE_SELL && rsiCurrent <= RSIExitLevel && rsiPrevious > RSIExitLevel) + { + shouldExit = true; + } + + if(shouldExit) + { + CloseAllTrades("RSI Exit Crossover"); + return; + } + } + + // Check for timeout + if(TimeCurrent() - positionOpenTime > MaxDuration * 3600) + { + CloseAllTrades("Timeout"); + return; + } + + break; + } + } + + // If no position is open, look for entry signals based on RSI crossover + if(!hasOpenPosition) + { + // Place buy order if RSI crosses below oversold level (oversold crossover) + if(rsiCrossedOversold) + { + double sl = UseStopLoss ? currentBid - StopLossPips * _Point : 0; + double tp = UseTakeProfit ? currentBid + TakeProfitPips * _Point : 0; + + if(UseStopLoss && sl >= currentBid) + return; + if(UseTakeProfit && tp <= currentBid) + return; + + // Set trade parameters + trade.SetDeviationInPoints(3); + trade.SetTypeFilling(ORDER_FILLING_IOC); + trade.SetExpertMagicNumber(123456); + + // Place buy order using CTrade + if(trade.Buy(MaxLotSize, _Symbol, currentAsk, sl, tp, "RSI Oversold Crossover Buy")) + { + isPositionOpen = true; + positionOpenPrice = currentAsk; + positionOpenTime = TimeCurrent(); + lastPositionType = POSITION_TYPE_BUY; + } + } + // Place sell order if RSI crosses above overbought level (overbought crossover) + else if(rsiCrossedOverbought) + { + double sl = UseStopLoss ? currentAsk + StopLossPips * _Point : 0; + double tp = UseTakeProfit ? currentAsk - TakeProfitPips * _Point : 0; + + if(UseStopLoss && sl <= currentAsk) + return; + if(UseTakeProfit && tp >= currentAsk) + return; + + // Set trade parameters + trade.SetDeviationInPoints(3); + trade.SetTypeFilling(ORDER_FILLING_IOC); + trade.SetExpertMagicNumber(123456); + + // Place sell order using CTrade + if(trade.Sell(MaxLotSize, _Symbol, currentBid, sl, tp, "RSI Overbought Crossover Sell")) + { + isPositionOpen = true; + positionOpenPrice = currentBid; + positionOpenTime = TimeCurrent(); + lastPositionType = POSITION_TYPE_SELL; + } + } + } +} \ No newline at end of file diff --git a/frontline/cluster-fuck/RSIReversalAsianAUDUSD/test-balance.png b/frontline/cluster-fuck/RSIReversalAsianAUDUSD/test-balance.png new file mode 100644 index 0000000000000000000000000000000000000000..47d7c5d6c3b3db558c800111442e577c8c96dbd9 GIT binary patch literal 246580 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

;nz$^LJz?F*VjEEoizWHc2k`hjOFxUi(`%plY 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

3v1xqv| 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 z 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 z

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 literal 0 HcmV?d00001 diff --git a/frontline/cluster-fuck/RSIReversalAsianEURUSD/main.mq5 b/frontline/cluster-fuck/RSIReversalAsianEURUSD/main.mq5 new file mode 100644 index 0000000..c89b331 --- /dev/null +++ b/frontline/cluster-fuck/RSIReversalAsianEURUSD/main.mq5 @@ -0,0 +1,539 @@ +//+------------------------------------------------------------------+ +//| SimpleRSIReversalAUDUSD.mq5 | +//| Copyright 2024, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2024, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" +#property strict + +// Include trade class +#include + +// Input parameters +input int RSIPeriod = 28; // RSI period +input double OverboughtLevel = 60; // Overbought level +input double OversoldLevel = 8; // Oversold level +input int TakeProfitPips = 175; // Take profit in pips +input int StopLossPips = 5; // Stop loss in pips +input double MaxLotSize = 0.1; // Maximum lot size +input int MaxSpread = 1000; // Maximum allowed spread in pips +input int MaxDuration = 270; // Maximum trade duration in hours +input bool UseStopLoss = false; // Use stop loss +input bool UseTakeProfit = false; // Use take profit +input bool UseRSIExit = true; // Use RSI for exit +input double RSIExitLevel = 55; // RSI level to exit (50 = neutral) +input bool CloseOutsideSession = false; // Close trades outside Asian session +input color PanelBackground = clrBlack; // Panel background color +input color PanelText = clrWhite; // Panel text color +input int PanelX = 10; // Panel X position +input int PanelY = 20; // Panel Y position + +// Global variables +CTrade trade; +int rsiHandle; +bool isPositionOpen = false; +double positionOpenPrice = 0; +datetime positionOpenTime = 0; +ENUM_POSITION_TYPE lastPositionType = POSITION_TYPE_BUY; +bool sessionCloseAttempted = false; // Track if we've attempted to close positions for current session + +// RSI crossover variables +double rsiCurrent = 0; +double rsiPrevious = 0; +double rsiPrevious2 = 0; +bool rsiCrossedOverbought = false; +bool rsiCrossedOversold = false; +bool rsiCrossedExitLevel = false; + +// Panel objects +string panelName = "RSIPanel"; +int panelWidth = 200; +int panelHeight = 200; +int labelHeight = 20; +int labelSpacing = 5; + +// Session times (UTC) +const int AsianSessionStart = 0; // 00:00 UTC +const int AsianSessionEnd = 8; // 08:00 UTC + +//+------------------------------------------------------------------+ +//| Create panel | +//+------------------------------------------------------------------+ +void CreatePanel() +{ + // Create panel background + ObjectCreate(0, panelName, OBJ_RECTANGLE_LABEL, 0, 0, 0); + ObjectSetInteger(0, panelName, OBJPROP_XDISTANCE, PanelX); + ObjectSetInteger(0, panelName, OBJPROP_YDISTANCE, PanelY); + ObjectSetInteger(0, panelName, OBJPROP_XSIZE, panelWidth); + ObjectSetInteger(0, panelName, OBJPROP_YSIZE, panelHeight); + ObjectSetInteger(0, panelName, OBJPROP_BGCOLOR, PanelBackground); + ObjectSetInteger(0, panelName, OBJPROP_BORDER_TYPE, BORDER_FLAT); + ObjectSetInteger(0, panelName, OBJPROP_CORNER, CORNER_LEFT_UPPER); + ObjectSetInteger(0, panelName, OBJPROP_COLOR, PanelText); + ObjectSetInteger(0, panelName, OBJPROP_STYLE, STYLE_SOLID); + ObjectSetInteger(0, panelName, OBJPROP_WIDTH, 1); + ObjectSetInteger(0, panelName, OBJPROP_BACK, false); + ObjectSetInteger(0, panelName, OBJPROP_SELECTABLE, false); + ObjectSetInteger(0, panelName, OBJPROP_SELECTED, false); + ObjectSetInteger(0, panelName, OBJPROP_HIDDEN, true); + ObjectSetInteger(0, panelName, OBJPROP_ZORDER, 0); + + // Create title label + ObjectCreate(0, panelName + "Title", OBJ_LABEL, 0, 0, 0); + ObjectSetInteger(0, panelName + "Title", OBJPROP_XDISTANCE, PanelX + 5); + ObjectSetInteger(0, panelName + "Title", OBJPROP_YDISTANCE, PanelY + 5); + ObjectSetInteger(0, panelName + "Title", OBJPROP_CORNER, CORNER_LEFT_UPPER); + ObjectSetString(0, panelName + "Title", OBJPROP_TEXT, "RSI Reversal"); + ObjectSetInteger(0, panelName + "Title", OBJPROP_COLOR, PanelText); + ObjectSetInteger(0, panelName + "Title", OBJPROP_FONTSIZE, 10); + + // Create score labels + CreateScoreLabel("RSI", "RSI: ", 0); + CreateScoreLabel("Position", "Position: ", 1); + CreateScoreLabel("Spread", "Spread: ", 2); + CreateScoreLabel("Session", "Session: ", 3); + CreateScoreLabel("SL", "Stop Loss: ", 4); + CreateScoreLabel("TP", "Take Profit: ", 5); + CreateScoreLabel("Cross", "Cross: ", 6); +} + +//+------------------------------------------------------------------+ +//| Create score label | +//+------------------------------------------------------------------+ +void CreateScoreLabel(string name, string text, int index) +{ + ObjectCreate(0, panelName + name, OBJ_LABEL, 0, 0, 0); + ObjectSetInteger(0, panelName + name, OBJPROP_XDISTANCE, PanelX + 5); + ObjectSetInteger(0, panelName + name, OBJPROP_YDISTANCE, PanelY + 30 + index * (labelHeight + labelSpacing)); + ObjectSetInteger(0, panelName + name, OBJPROP_CORNER, CORNER_LEFT_UPPER); + ObjectSetString(0, panelName + name, OBJPROP_TEXT, text); + ObjectSetInteger(0, panelName + name, OBJPROP_COLOR, PanelText); + ObjectSetInteger(0, panelName + name, OBJPROP_FONTSIZE, 8); +} + +//+------------------------------------------------------------------+ +//| Update panel values | +//+------------------------------------------------------------------+ +void UpdatePanel(double rsi, string position, int spread, string session, double sl, double tp, string crossInfo) +{ + ObjectSetString(0, panelName + "RSI", OBJPROP_TEXT, "RSI: " + DoubleToString(rsi, 2)); + ObjectSetString(0, panelName + "Position", OBJPROP_TEXT, "Position: " + position); + ObjectSetString(0, panelName + "Spread", OBJPROP_TEXT, "Spread: " + IntegerToString(spread) + " pips"); + ObjectSetString(0, panelName + "Session", OBJPROP_TEXT, "Session: " + session); + ObjectSetString(0, panelName + "SL", OBJPROP_TEXT, "Stop Loss: " + IntegerToString(StopLossPips) + " pips"); + ObjectSetString(0, panelName + "TP", OBJPROP_TEXT, "Take Profit: " + IntegerToString(TakeProfitPips) + " pips"); + ObjectSetString(0, panelName + "Cross", OBJPROP_TEXT, "Cross: " + crossInfo); +} + +//+------------------------------------------------------------------+ +//| Check if current time is in Asian session | +//+------------------------------------------------------------------+ +bool IsAsianSession() +{ + datetime currentTime = TimeCurrent(); + MqlDateTime timeStruct; + TimeToStruct(currentTime, timeStruct); + + return (timeStruct.hour >= AsianSessionStart && timeStruct.hour < AsianSessionEnd); +} + +//+------------------------------------------------------------------+ +//| Get current session name | +//+------------------------------------------------------------------+ +string GetCurrentSession() +{ + datetime currentTime = TimeCurrent(); + MqlDateTime timeStruct; + TimeToStruct(currentTime, timeStruct); + + if(timeStruct.hour >= AsianSessionStart && timeStruct.hour < AsianSessionEnd) + return "Asian"; + else if(timeStruct.hour >= 8 && timeStruct.hour < 16) + return "London"; + else if(timeStruct.hour >= 13 && timeStruct.hour < 21) + return "New York"; + else + return "Other"; +} + +//+------------------------------------------------------------------+ +//| Check if trading is allowed | +//+------------------------------------------------------------------+ +bool IsTradingAllowed() +{ + // Check if market is open + if(!SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL) + { + return false; + } + + // Check if we have enough money + if(AccountInfoDouble(ACCOUNT_MARGIN_FREE) <= 0) + { + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check RSI crossover conditions | +//+------------------------------------------------------------------+ +void CheckRSICrossover() +{ + // Reset crossover flags + rsiCrossedOverbought = false; + rsiCrossedOversold = false; + rsiCrossedExitLevel = false; + + // Check for overbought crossover (RSI crosses above overbought level) + if(rsiPrevious < OverboughtLevel && rsiCurrent >= OverboughtLevel) + { + rsiCrossedOverbought = true; + } + + // Check for oversold crossover (RSI crosses below oversold level) + if(rsiPrevious > OversoldLevel && rsiCurrent <= OversoldLevel) + { + rsiCrossedOversold = true; + } + + // Check for exit level crossover + if(rsiPrevious < RSIExitLevel && rsiCurrent >= RSIExitLevel) + { + rsiCrossedExitLevel = true; + } + else if(rsiPrevious > RSIExitLevel && rsiCurrent <= RSIExitLevel) + { + rsiCrossedExitLevel = true; + } +} + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsiHandle = iRSI(_Symbol, PERIOD_M15, RSIPeriod, PRICE_CLOSE); + + if(rsiHandle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Wait a bit for the indicator to be ready + Sleep(100); + + // Initialize RSI values with retry logic + double rsi[]; + ArraySetAsSeries(rsi, true); + + int retryCount = 0; + bool rsiInitialized = false; + + while(retryCount < 10 && !rsiInitialized) + { + int copied = CopyBuffer(rsiHandle, 0, 0, 3, rsi); + if(copied >= 3) + { + rsiCurrent = rsi[0]; + rsiPrevious = rsi[1]; + rsiPrevious2 = rsi[2]; + rsiInitialized = true; + } + else + { + retryCount++; + Sleep(100); + } + } + + if(!rsiInitialized) + { + // Don't fail initialization, just set default values + rsiCurrent = 50.0; + rsiPrevious = 50.0; + rsiPrevious2 = 50.0; + } + + // Create panel + CreatePanel(); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + // Release indicator handles + IndicatorRelease(rsiHandle); + + // Remove panel objects + ObjectsDeleteAll(0, panelName); +} + +//+------------------------------------------------------------------+ +//| Close all trades for the current symbol | +//+------------------------------------------------------------------+ +bool CloseAllTrades(string reason = "") +{ + bool allClosed = true; + int totalPositions = PositionsTotal(); + + if(totalPositions == 0) + return true; + + // Check if there are any positions with our magic number + bool hasOurPositions = false; + for(int i = 0; i < totalPositions; i++) + { + if(PositionGetSymbol(i) == _Symbol && PositionGetInteger(POSITION_MAGIC) == 123456) + { + hasOurPositions = true; + break; + } + } + + for(int i = totalPositions - 1; i >= 0; i--) + { + if(PositionGetSymbol(i) == _Symbol) + { + // Try to close position with retry logic + int retryCount = 0; + bool positionClosed = false; + + while(retryCount < 3 && !positionClosed) + { + if(trade.PositionClose(_Symbol)) + { + isPositionOpen = false; + positionClosed = true; + } + else + { + int error = GetLastError(); + + // If error is 4756 (Trade disabled), wait longer before retry + if(error == 4756) + { + Sleep(5000); // Wait 5 seconds before retry + retryCount++; + } + else + { + // For other errors, break the loop + break; + } + } + } + + if(!positionClosed) + { + allClosed = false; + } + } + } + + return allClosed; +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if trading is allowed + if(!IsTradingAllowed()) + { + return; + } + + // Check if we're in Asian session + if(!IsAsianSession()) + { + // Close all positions if outside Asian session and CloseOutsideSession is true + if(CloseOutsideSession && !sessionCloseAttempted) + { + CloseAllTrades("Outside Asian session"); + sessionCloseAttempted = true; + } + return; + } + else + { + // Reset the session close attempt flag when we enter Asian session + sessionCloseAttempted = false; + } + + // Get current spread + double spread = SymbolInfoDouble(_Symbol, SYMBOL_ASK) - SymbolInfoDouble(_Symbol, SYMBOL_BID); + int spreadInPips = (int)(spread / _Point); + + // Check if spread is too high + if(spreadInPips > MaxSpread) + { + return; + } + + // Get RSI values from bar data + double rsi[]; + ArraySetAsSeries(rsi, true); + + int copied = CopyBuffer(rsiHandle, 0, 0, 3, rsi); + if(copied < 3) + { + return; + } + + // Update RSI values + rsiPrevious2 = rsiPrevious; + rsiPrevious = rsiCurrent; + rsiCurrent = rsi[0]; + + // Validate RSI values + if(rsiCurrent == 0 || rsiPrevious == 0) + { + return; + } + + // Check for RSI crossovers + CheckRSICrossover(); + + // Get current prices + double currentBid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double currentAsk = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + // Get position status + string positionStatus = "None"; + for(int i = 0; i < PositionsTotal(); i++) + { + if(PositionGetSymbol(i) == _Symbol) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + positionStatus = (posType == POSITION_TYPE_BUY) ? "Long" : "Short"; + break; + } + } + + // Calculate stop loss and take profit levels + double sl = 0; + double tp = 0; + + // Prepare crossover info for panel + string crossInfo = "None"; + if(rsiCrossedOverbought) crossInfo = "Overbought"; + else if(rsiCrossedOversold) crossInfo = "Oversold"; + else if(rsiCrossedExitLevel) crossInfo = "Exit"; + + // Update panel + UpdatePanel(rsiCurrent, positionStatus, spreadInPips, GetCurrentSession(), sl, tp, crossInfo); + + // Check for open position + bool hasOpenPosition = false; + for(int i = 0; i < PositionsTotal(); i++) + { + if(PositionGetSymbol(i) == _Symbol) + { + hasOpenPosition = true; + + // Get position details + double positionProfit = PositionGetDouble(POSITION_PROFIT); + double positionVolume = PositionGetDouble(POSITION_VOLUME); + double openPrice = PositionGetDouble(POSITION_PRICE_OPEN); + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + // Check for RSI exit if enabled + if(UseRSIExit && rsiCrossedExitLevel) + { + bool shouldExit = false; + + // For long positions, exit when RSI crosses above exit level + if(posType == POSITION_TYPE_BUY && rsiCurrent >= RSIExitLevel && rsiPrevious < RSIExitLevel) + { + shouldExit = true; + } + // For short positions, exit when RSI crosses below exit level + else if(posType == POSITION_TYPE_SELL && rsiCurrent <= RSIExitLevel && rsiPrevious > RSIExitLevel) + { + shouldExit = true; + } + + if(shouldExit) + { + CloseAllTrades("RSI Exit Crossover"); + return; + } + } + + // Check for timeout + if(TimeCurrent() - positionOpenTime > MaxDuration * 3600) + { + CloseAllTrades("Timeout"); + return; + } + + break; + } + } + + // If no position is open, look for entry signals based on RSI crossover + if(!hasOpenPosition) + { + // Place buy order if RSI crosses below oversold level (oversold crossover) + if(rsiCrossedOversold) + { + double sl = UseStopLoss ? currentBid - StopLossPips * _Point : 0; + double tp = UseTakeProfit ? currentBid + TakeProfitPips * _Point : 0; + + if(UseStopLoss && sl >= currentBid) + return; + if(UseTakeProfit && tp <= currentBid) + return; + + // Set trade parameters + trade.SetDeviationInPoints(3); + trade.SetTypeFilling(ORDER_FILLING_IOC); + trade.SetExpertMagicNumber(123456); + + // Place buy order using CTrade + if(trade.Buy(MaxLotSize, _Symbol, currentAsk, sl, tp, "RSI Oversold Crossover Buy")) + { + isPositionOpen = true; + positionOpenPrice = currentAsk; + positionOpenTime = TimeCurrent(); + lastPositionType = POSITION_TYPE_BUY; + } + } + // Place sell order if RSI crosses above overbought level (overbought crossover) + else if(rsiCrossedOverbought) + { + double sl = UseStopLoss ? currentAsk + StopLossPips * _Point : 0; + double tp = UseTakeProfit ? currentAsk - TakeProfitPips * _Point : 0; + + if(UseStopLoss && sl <= currentAsk) + return; + if(UseTakeProfit && tp >= currentAsk) + return; + + // Set trade parameters + trade.SetDeviationInPoints(3); + trade.SetTypeFilling(ORDER_FILLING_IOC); + trade.SetExpertMagicNumber(123456); + + // Place sell order using CTrade + if(trade.Sell(MaxLotSize, _Symbol, currentBid, sl, tp, "RSI Overbought Crossover Sell")) + { + isPositionOpen = true; + positionOpenPrice = currentBid; + positionOpenTime = TimeCurrent(); + lastPositionType = POSITION_TYPE_SELL; + } + } + } +} \ No newline at end of file diff --git a/frontline/cluster-fuck/RSIReversalAsianEURUSD/test-balance.jpg b/frontline/cluster-fuck/RSIReversalAsianEURUSD/test-balance.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2901f4b919a1f37b959f2ca6a0bac66dc02d7657 GIT binary patch literal 256188 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�ILynPqw}sIGEEL89HQNg%uiSgG+*d@WBI{k2d z4!eXNZ3q8W`{iYU=8M{s4Rfw8?UbWkl6E&+j*63CTamc)2j2l-bN`@bio516CnLJ& zxd-dAg)G>-+_Oc)3w9^>$4a*(D~r;qK3H_UI5?aFXCUL?ikV_-BC{_KE5N}7Bbfa$pdE1ZtMJXPYp5iYp zE0>cd0#eO|D&MhxWVa%Ujymx{&7!m;Xj##j<#+c;d%8sb9E;KmY5RDUHjZ~K<9tTs zo3)Nm*=cz-&pV>Kl2??5I5poHMz~mb6xfh50c{_rsow(9a`|}CQhAL&Npq*v~eT}7Q9~T_b??b@ZPSc3SIff zlP>00QT7@+g4TRV-yJJDsM(5sPIPD*I8q1qWQx(Wl#*R`A9z}6i&IR%l=VTAz`w?V zwd`i9MA21VebJb!W_4!mlFh9ZQ*jgn6?aWv#k^d~{@6$HTcwTdp}&NBn?+;OI>P0l zz0$9gaaXsAEZIr?m)0@Y>UjtWB@T=ZNScrt@4rk|$=7K*6?t=SLh|tR;kk%a_Z9h0 zFL(bAa>s+Lf9jjBh&j&F+CFvdy2wSVYIl$Pqzm!&fpCY*%S?{HZ99qyy(skBMQTRv z>AQ{g#wFjby!z*p0`8>&ywiU=ICj};1r8OLdGcqg?|UI@X+dwSd{xTwO}e03ZmWF! zNR7Y)rD3Td-`U=XV%9$H*=lz7YnP@iM+>WW8%yU&wIrE&>L4d_v@P8J|~OmO!Ef*Kdhr2P0b@3 zD|;q(eZ0eep7FhITUP%;=3}AK7kB5JzPY#SvrNn>yW0M*X^H7<3H`qljO!g9c16DQ zP^t8xc(Jq?@kZ0_kIyYpn@CfQI(hBw^;&bW`~8)Cpl)Vf8KAfgO35Q{aN#LmN-PBJ zu5gteza86J{!}f=>*6bxHb=v?Um^IDCZh+JO|2up(;k@A2=DsACMdEy*y%yE_|@x& z85N0q6;|`v&xoBHY-kYCC7$aSMD@!ta7gZ;bdzX0H zP91ZJ#yN&S(6F}qDc_XtE2tZYp)8hhagWc;yq};;vAU3@F*l<({lVkOu(-EWTXn9# zf@N+C&nkU`qp)LbwLQfo`{OPTfp1@{JXUVSexK)Uw)DA0;O&0!Z5C}-zy*YPNa`fP zD0jD$hi0mYtI1g+#qV?Nv=c=U;cO$k3Ug*s4)=fUmQ4OZt;fQI<62#HS)*>5XT>yg z_47L7zPe$t0xwykwQ528(Klj=Vs{1JmYsh#;g871`XhQM~$$tG@$|H|zjn*nT z#u@T57Ms#5nE28edd?jsX7xX)N$w~ADQW(Q#qBpfL2BVtJa#HlZ*+1iYQN@;d2ywf z@_Xk}VZsL-3pI!*6rE3|HN;iMbdRdkThDsvU6&|j=v*wqp}r=A!x}`^*q!?l z16r)Gq=toUW03AyQ~9Ia&6fHMfqC~*6zya5+NQ$IBSPfG#LAM*r9P!94y|gIwUPWZ zac{Qr%+nTWHXEXQ(oV^1+0I_Q+c&a&uPkX<3~6|I6uxq`?*s#aW}yB}r+<-Vb5D_q zT)u&VY}-QEE#6lKOFk!@z6joWG<=k^``m?H{C8vb4si#r9&cEo`(zz5a3kY)tarBq z?;r=8cBz7=TxIR+-{!w299ZgKz8`Eqnn+=*?ta7}e(p_ay8DSSEx&U#rQ_;}6`Vd_ zs=w7dip*)8cfM#8I+AH+8KUSNy%chv|0%3 zq#KcpSx6k6?Qmb3OX#*p^t+c-%|qbL=&|y>-4x*|#^AzVTphGu5#M4Ru`8!OZ1QGY zw4Mh2n=835<++;MPDv-JN>JN`C{x{IxvqAw>Lkw+A10_6iD3n^%Vh3PR-+Rbc{5cN z#3IuA(pgm67`&x4Vr!QV6Zg>Sind1{lD>M?EZ^-V@g8a^ zGuB=aS1XZ2YjpN3lPoL3xxZ)PNaSly{7xmhO6?sY?aI#(OrQVVPd$L2VBhYWrkdtY zA|L%UD-sly(p52kN?G=?!<(}|CB8Lt@l6wNU0itOIjvK-4X!>_%J`g4nVzMf5*atX zkau~WcLz;-L(s~hg*RP!w0cCkAFN$EG_q@sr9QhwF=gY@tnk#yQuTw0uN$J5HuX>4 z#B9{fr`K+NOje%}juVJ^zpe7JnssYjwos=sW}@U`1J7Wp!zF?8^7N-&R|3~8T@j^; zft2YZZe`wt?}ImaRj!&U1TO0`&vTIk-&{ejO>{ z+R~_Qr_Os8TS_Wf#dv>|rFj=K+#Tt4#~TNoY_8>8-w@?)RxEGr2xaD^;o<4$jsm@lNf6GfO(LJX=NKP~S9E|Dg@Ryets8oi%|Q%RMuO8q0yUWF(u5 zFT+eYpSRyn4zT>8`gwIwsNv*dcjSif{@>c}ZBeEp&UZMCBP$!FoNNQ5RK(I0?2f~xdef`zvIn!9bh$=frQcevv5S|QF1pE%t|Gv6 z0Yvut+G1hxZF4|?ZzG_-x&hUx`hI$+t*t7iMapS;_bN__qwOk}(9p$gT@9hsXciE! zK}8WWXzl+-Gfj-Zoo&F(b_c#kldDup|<0Ls*Md6!G6$#T0xk zBAR#Vtw(=3zyJNGU%lEx_|<^AG8pAaSk3>CWr z1m)|O$=+v(1wgAf*es}W1Z1B+&{z{T%h!NJAa!0s_xJS0R@WjsG!kx9#g>2%awLx$ z?<=8?bD#8o>v~C1DAzcnqy~6V)H|rOA_Cp!3iQ(hmFyeZQ&_IQRrn7H>;YO(pZkb} zK1>m2a>^}%SNUhwJ+>gP_8?+KEH~O{JP4}T;qHvrv0E8pwP)N={u8HnV14|gPP|4k zDJkw#q8nuvKRu$;0<;#RZ^tN)LC-uh0=T#W+1(R1bMD*CWi-gvU2qdkoktWMjykB% z>Ogh2%5%v+Vl?-4JwonM?Nyth<5SZbR5-FtKMq<~Vz(rNO9;3z{opocfmq)BDUe&~ zK7|eMPWP)P8CPB#ze&LQW@S3ZpfLm=eGT^VJY}a6*+0ffI@mKB1f&Li=8iW9enF z3nD#7cL?%(Fa8>$!FWXnB zf}d@IMI?aWeIEqfai9X2EdpXBe$eIAzw1H``LFoa7h5;=7o1{!lfSssLnjV(@Z7L7 z)YcFeYQBY1yJOncq05f2XF-zQ0e{+NqXr$A=M;w}AZSfXGZEVd;N+Ts9SrW$2e63U z0uR~WG7Y1w#W>gol5vdY;m_QJV!q@7k&q6d{%J?U!&Wc}EnEJWM~V11wdnhgl5|-U zW@1d=C&-1jETJkbgE{$pW2O7_9UtG)PWv`fPXT$T12bBVF0xVVuthzN5~FYGedmx1 zeT)Pu$whrWMV^w8Q_L=@QoDIM`So(Gb6M}Q))!!;@_zK=e0pFV?=mLw{N+}8O5`-IjPGC+kEG0AGY0!akvkn^g*w)5h+a3_RtY3Dz zGL1V-a6y~V%o?I0&pPeD6rg_`yL@1aS{xi?FwJ2t;f(lQ?|BqalS1eG3jR%?^V!lg z4SCE1c`#^`iVY)J$%|}z2)B)5gZBW$wXtASrl5mcqqI`bK6X7{;F^X*VzDUnGO=T4 zz%AqLP}qRP>Be_`>Ozh9MFZ-KAL@pJqf82KVA$QXr6x8N*$56&F0X8~ZrfUfP`yLJ z00blCS0y&VD6R6&v$iaH(%`VM-Zh%1u#F&w+@WooJ(lOfZQG!#wT+2@T?U;G(B<|} zKZ!8F)j@!(7vpkTUq7<+%wE=Vf8oDfzK&`&xgAGa8Uh;4W2)Yf-;YtAYrv<_Ri&y9 zvFGy66ok(E5)+7zwkZ7pn}XZo=Kg|cA?Bt+hI_*rT-Ab%M1@OZiIMte_Ff=WYdw8i z+l=qt?Dx#2eNHYbMjuwLO!TGYbybMdXkN|Kryy)Gf7{nMN=+_Q+;`{ox8iH$i&o2~ zdj6pY))AfWHE1U2S~yP61Y34UrDQlW7iuZ8KfrDzU>igL>|z zIW=ew4OGjMSN!HRr7~vn+~bVMc0Y74h*&B|YuFK_D*n{&e*Z?bG)f~P)QC#DsPDG8 z=U&8tNN>YwzO{V^yN5d{R}3b@of{HHABN%$o|pWtRC3ZECq(tf6Zd?&cZ4jjR3pwM z(BnK+8mfHZ8)rCcTPmtQ%s92|R@6i9`q;ZJ!Z)E~DRYUsi^ScQ@A=_ka}7aTwshB2 z{`4JN!AmkVt}i%C4`D05j)OM<9pNEBo4%a5)0Ehk;7`wHDM z@LWlE7oQ#=qtd-HCboE zzB$q)PjEbWm_u^oi=TkRp0Ly_Ek}~^rL$Ug5t~-o76(P&j*{4`sL~?YTrED|r&yPh z8SEQ$Kf$sg;8EPmq6|Ch7QeAoM!P1)-jG~9po(wN&9`c2S$${GMpCfvt7DYV?31)O zL)x08xYiq#M#aPz2GUhl>VJct=%I9UP1!3%ntRoQ6{w0*z77VrkBPNUMo@a0FlMSf z4)I+E?@>o?v-Lq;79HW{bJiMXYWgnzlPoq=;UYg2z-4p8M<#FOTN~Ts?nZsqQi^*p~z8n zd#Svdh{uu{Y!*fleFcg1W7l$=3EYEvJ|sk~;X4*Ji+t-iU~r`UL$s!Kvi#RtmEwMf zi+I^BFZ@oi@|(I46O?m z`f}bz)k;P6)7PcOZl`;pt|UF(T^?{_q_`z zdUXlMoE@jMYC7T8_U5UE`JN|-Ed~N*G%DpoQ|48(RU5=u1>%>4I6gEvhl!_Aw@fwF zyQ{@67qQiav{{L;kaZf@2#g*zLk3y0xdcJr$ocbKq?$81n z*6xm{Jdy;mDH(28^7LGWxXXT$>Ak+%6@+`0guGd4cS>q<>VY!(yYgH#dF;FS2NGzK z)srgBS%Q4D8Nwu0NZS>yq}~M%HYu~lrDwXI;dURE))+k{%G{z5lHNWn$rhd!%52XI z5@>cS9GXvZMb{C}R7gmNZMj<7H8t56M;W|%rg@3ae0wH4ZPB0Ikq^4QIjwNzjb=`? z(~)SjJAG&CwxiCn3t;b8;Ioo$5g(Bf$eoU&njJD6&)eR_G*^B#YewWi4p2KDw$`X5 z47Mr|X1bb^o^6)cdNy$)Q#MG4=f^SK-wKVVRX??IT684)sQ7bdtM=I^dE2T>_$g{k zrFp%NxjoUy!Wlc$o7!O~)VyMn8)$iaHBMM?q5Q(c+J_I;=atS%>PS)QhtNHiEvJwV z!Q(U|a40*RaV&&2ZPiuyi1o9sYx&PpILN+F4COWZTb;h=RnAT`on>-AXvtB2QX_6z z&|ar@9if*%kl?v;ZTF{KriO>BDs#O*#u8gE)ZmLsI?Lg|`n=DUcp>5U`1Vz14u6&F zI?7A?^|OBtlW)$rov%Q=b~%+wv&Ou^NC~3Pt>|WK|7ykQx^$zMxVn!ugZ;`M-*0Vz zy8QyxC;WDyXRd#Nh-dr>`-)cA$I|XM-Ripo0PFEX;=ovmt-EePS6kSZ8IwBRrG?mNL6+2kFHP=UoHqco2z@uQDo zT!S7+Ny!G*F7zzlwN~shDfYs*_AHnDZLfJJ%Gz;EP;b&@@(TL}eepD69Cvrqkj!|g z?#LA~-i8v#v%j-NcPDVJ)z#_dIj|@n5m43kyHMo6|N5)_19$`o(1~w?e(u1;vjU?N zs;h=KGk@DlnBo_Q)SN9pllHWwPcLBVB3{sdOUaAqn$m$6?t`~JkG=8MXFkQMQX^}Y zB0m<}8Y-8;sL(rVSX^&Vw5>J0Z}WUi{5!lC_7RfK^_Yv|%=8 zxEy4FA5|F=*Dwp82D9J8!Cle8~CUpB!{^JTAi z#qdXg-2E!y=jlDA_g@cdnywY+;W8}nOh^>c;xwEcOc>prYTK^fE0Huru_p}CWA-ZN zI-(&C!nteqwN8_T%fz0|n$HIA`Hs#^yox3_Wg-T$AH=F*!kLOmvJ&|O|8r%J9fy4Q zwV7j7NcEXINA=asg}eRm4nGIdpSaFi12(he|Btlyj;AvG|HqG1DoPQNq(WpBh01D4 z2-%xT_6pgnMI|G<2+1nzWN(s{l@PKw$xhkyyYBlw=Q!u+{r-HupWnYdbf4>fU9Z>c zy6)?Gj?UPL(1M=jDE9S_J+!&Aqvh^iQ8c#ZyOx_eb-wZFWdtfdF%F|=?a||CXJOxk zA|qu{?RwZm!dG|H`}(ut5IQBK_VcnZElvM>>jrg!PB%+!Vel_E z?`yMuQ{}zP#ZzHNLqTunOLsT{-S4#+I$yl@h~Ehwsne0n+R*HV-X^+ehG5&=Ds#AL!+oH^@{41of#7!aaU0~w}f66Dt=@cK- zY2Gd092{0?pYca-owP+gDb(vz)d9Hx88m;4sM^{CH%c9eRH@<02r)+ZrVZD^$U1KL~I2Hd30%`Eu2IL}h+@EZ?@Ay30XlKu%Q1kMD}F zawl{8TGKT)yB!U5G+hY~D^*P+m8KS6AEi6_+5m{jbEvd@pF6df_}$1_HI7HEx7X#p zx?qxOzRIsoZORg4bB(X8<>IrlWmS2$*DrJW>DR@95!b78*IRE%JJ9bJ$+Z5+(xLvL z-upp-oa|Y2oQvKpb=hAOrCG>Ad45Fd6Me2R({1%@<#(%u>vpPr&7ept?Hi1q)SD+pgRDQToaFQ5wWm;rPCj>-}u_lY6JaIGFhRv_Y$0y zs$TB`yqF0v>Mus9`Aj9Rx!<{sy51`b4GW<5R}gI!$LW;auu~cm(|*?3oHcGJ5xJe z3lR258BnN6dpQ$J^10h<*|5K4BCo%}b6x0(?!yX;q2|o*=932P*^)eDuSV+JT&PMb zNmgCMWFy6xlUI@Nqn9+li-+P*5ds65a>p{`!*yeI7~Bi}Mh@W;Yq%=y34Id8OvC`eL{w?HumB(L{x#bpzW$oLpS_^Gj)V z`a8-}VT%Ry+ZuqLaiKAJe>L4wY1rx6oVKV>s)b=&lE}}X_csk?@4BS5XmsYJOfTeg zt@M^V<$e_wNi^{gF4Z^Xu9llNyYzjHbM6@!^xKmC(_-1e;x>KNXG*qrmFZc}t&grx6uTVF5r>>e#p`RWW{)#T79N?68m1;Gf%47(yRg!*Mo%gu>!aas` zRj!z`KgAsnOjOSRf|ccjbe}u9X@`?mS<(;oUos5lB-&v{Ij1Bkuj@BSXRV}NOEeHOs}i?_dg|`VuuSUXHB(Q zGtuOx^UFo^5sXFOW-so4sz5)e`s|rLDq!bWb95=1e62vtn38UlwPeQ7L-f#30owHw ztsRadz5|_;R4noyMlzR1p?*|J$v56wOjXS~=o*ntDu5U*AMeXoi({Jv5;l+%W&!1HE9x7D7nG<=UxRvL2wm*uud{3LL zk5@_{*t# zKLuKo`lZ(AmnY-%7tS|)Z)ltRFG${s_9#{81xz{ zF`s@4c5alD@-uO6Oytf03K)JR?`urhz<&P$YOV5%H>wO~l=SRW(KNr&6SFgk)BOz- zYcURN6||R?^W?2_W(7mW1S5n4(wL9lb@>wILH9$k?AF-rqSqoRMsw^P2^ov=vA=^` z6HiD)jJeyjW~VvC7N_i78567_d2M-h1$IeSCIs9+OSZ8`7oQ#(w!udXG`_5YqMl^ z{&~}ZsUPj>#?W4G-d}XMSK8O0`@}QrUxxzcc&pD=SIW^e!@B>3+U)48bE${U#7z9! z;3``;C+w2H5g#D^_Um+FI}64q6x>Lv>bak!v*V3ozamI zpMf>qdFsWyL8dK>Ods3AQWBn>nLOr7+oRG=)f221XB;(+vN>9{5csLNmsncD%cGR$9kw^*wdhk$={{obtPK`T5bRm%_^Nz1j{IGBz4Td7%nlUsj34 zQl02&`b^ey&rmyWC_vCg_wrhnWOFcA&GW!8NhQA`q1YgOQA1~uW8VNx-Ta)Pu!`2; zRQ?O=bon1qs%|-UDvjK(BC7M*YdJ^O!dEZG8Rg49V)DwOWY;xi=eeRMlff4&&FmjQ zA9(?FWLL_Hz^d*nTa~Lsf3J_Qq@LkT+Z~0M&MYQB*kw*7&2rT&t(I1G)VE7{l6;@BKwF{cynWkpY9=jby~Rv&o5EKAJAOyI9wy44{UR&+a+0f%Gr{G|V)#r_+4;kv z!cN+$uaZA`&`VYB%(An|o6F3;x?NW7rk;PjDz#?>dt>y)N@>SD&aBR0Z8q15-;$gK z8I93@@&?ZRtO}v+7#nYoYfG}vG5zVRPctXs>u#)V3C=9`qRn~Yn%!#mygwd(;K{-E zir-&TVq|lYcqaC9#a-KZpJbGoMrUwv)H`|WL4)Y`MjbX^%u?fLS@LbdWkkuJJL)S1 z96ibAa*_1F4SV17q@xKAbN8BO*Gm$j$FmF#*EH8D|Cq}q{6N24JvTdEb$-Ha-z?*A zUSl`1mZO1y8V8c);@OX2NLUbl-v1 zKq2>)oj;?N@8+Vf#GZl_)QiHmBZN^%IC6bb?VWkf`hr^nBw!99co4!|JE7|44MMee zgyNKOv&RikcvQ&5AmS+pgX>>ZQEvt$sV=hi(*!{f8lE4b2@$NF&J_aQ2F=VH!6oxP- zY!ue4d^%#V*H(dh|O$mAw1qh;9x1+(Oxjja3edCv6{%^k|*2-8Qau$fJ zV@IQc9Wc;Y{EHGL{5c5zg5i~61sNN#oJD9@IXJQSZ?HDLPU9m6M9B{pd0Kad;silD zuoCvTUll~O_;7M&y9uEa7zQU_T5fqgjz2eA1k!*&*&X|Z$kwVoTFd;w*(D`FDL!F*YYQ6C;rU@{WKgLl@M<17v`8&l;T4fEF*o zJwFEc4pC0Sfb1p00sQ~}cbn+0ATaRtEz$TMVHl|}4-@!G{;UAv{jdZ(Mr$9F--pdr<=A5H8NT?9;mC4(F zV>@8db|CXcBwGZM9ZyOf32Oc9;Ue??2&y@S{CjGX{f>48k9(A*&9^R`O}2d2OMT|# zV;#zZS;42H&gREk{PhF)yUJ{~ZKd!YJU957v=m(%)nPdQeO9h~jk0o@CgsJ9Z+NP4 zS=q-6KPZFLSO^ zc`!(&WU8k9(9li^os?X;Hx@-DENaWd`Kih1;YdR@)ecF)?KdVUcX?1p%`fj-uAK+F zv_P#Hzct%$V!w+Aiov1QL&Z~JqXXWZmoh_3eZ_hMioMq!mkhNDGXnt_TgtVQxoFw! z)BB#)CP)>gzLyH3?KPmGb~>5GSzv0~F}htwCH|PVX^VYe(VC*<+I(K6d#QNgMYIv% z00|qS9In>CzZ9y%u*fqKqT(p><5ExJ%j!TUqLQli1;6ZkYjR>iF@)Y%{Lu z*Oxs$bQmh?PrUBL(o8(lBc?qA zGj;aRhmy8%c+)etfXE_-5J0H{#-mw#u8HFZFF;~M9cKiRPbJ{FZLAKM-^@i>-BC7Gw5DDFT4-&^2$R&2}k>X7+a7!6~KdPHC<>&fl^?2iiErVpTC3C<~A$7EbR@b$% zBg+pd2X&qU@0i$k3LY#|Zv$2`Pwp1K_3qMR?QaUY)@eHU%2g7Gm?fxQB1}Nnk6m%^ zezcx1(BPkp6_hbP-_`l*hF~zq5GOjCUU;RY2 ztrzEIg(4t*gkxI6q#iA~GPDP+?w(cE!4!>8oYD@3a_{2b&T3x%@NDZX?bm-%)Tb@X zR@$sAiM9SO7q{8{>1``%NR78nps(R`u2Np$U-sB9e=%AI(TYO&+z53DYG0#0)L2l& zs8}3!`v3%tuw4lwCjms@Z*47CZI!2q}j}dR-hk>(Yu_S)f^Bj7xRqT$Gs}} z*5qrIvunhjt~0b{NgJ-nl?fFI$-TU!SnYXY=;NJ_Vh-o3Syp>qq7!Rvr1r;=c_$a4 z&+O+36+C%Hk0s1E`;lpndE87CukUd5*~XyGc|U{ImZoM?!Qvvnrs+oq%h!)AiuV;s z4IS&!{xKhTjhRlnl9g>s!TCALcBgq6>3OR~eOq>UmLA45yIrUFZpsGh4U$c6>q9?C z8xxxeHhI`FsFd&9)Y{6OayryJdj1aM{Ta<{(~;4u$sGB7s$q7`nt;5z967-@@$RZ} zl(@U@qD@KG%_c3ZE+U4iW>vCF^jQ0<;!MK)npedkDy@35;6raOc?xt~-d8Dm`uDNI z(fR(_%A}c}6m{87}vIdumYBX3Kx?Z-`rBus*+N)vrf#*TY5~@NP%iMOw zVXnPLmdjZ$kMIAZl0Vlpn!0FH8FunH55K1C@pYl<-%0TqMb9qorbueJ#{3Ihv~{At zh}|z1NMC#E;yPWMV9$onlcU*3h7r@sFT@HImQ~JYvkU`bPu!>-L{};fb9_^k`Z|&AxFEw&ony0AK8xhG^r=I8 z{=|rRWlAfuhpT;fTwcLKrG0GTRw)_VqeuqBD??pZRWfZl|AfBmR*iXB#wDYFF!Y98kL%kUcUG`S=&2+dm)5Mf8Rog{ zU99hq@;kiiFy~ClM2?2p0+qyY*E`ARJ3<2KTkJ+H`XlQ&-z+{!$?+^C8{k$3S6N{V za*;*}FYdn^XP^S&tAHdw$t~QzlqX)wSAt;WAVHEp7bq_(^UEw zGnd>8#W+UK(vxi|9PMw-n3bOIUi6?W6Z5jTho*42y+8L`Ojh;|e#gNV(f+S__6NJ? zifVcLk9{5MyEFPUM%ntZ>P~GrTce6IL4S+|X`6afBm%h_+IwF2t;JWH*ZpoU(6zNg z>wPJdpFL1fl5se1=E*>z4r^U-9 zmtHD9=b)nqP4M@F-pXy(k01zE{aB!1DVk+*hYW$ACN?Y7{lefuN80Hr^4THNcDYs_HIB6z5w>&pQJAa>9d@F_1 zw%rf>AB<`CX1PzOyBp5ZxE*uQ)H-kR+}=JeJ|&@=S2?gYY^$@j~DkZ z+V=erWm>!}JM#w})Y@^6w^M>e{%PF<`Ku%HAN3wBt6sD+-`%C7HOtaC#2CPS>xK0m z$|478-m1#Nw4lUXC1>q9_N4BMY_>I-jT)1>Hi`7Q{0G>MCrQ;8^fY8ev}Cn#({t~a z*Lu=O12nscn)zJY>VC5R7IgW^cKeF@yTfxu6^rYxf0vl$xb_ z3N6>s6vXX}maAY25+es(1twaTD~qHPnw~Sp431LTR*3 z*xP1VdqqsWEMaxe3}aT|ZT6#$=KJw0z2ng> zWu}W2ii?K*o#-8_!ZSV3T=Y!qML#hZdvmFizeU}>Mo)h@xPoJ`BkP-~l0}$oqwZG5 zR)1|O4W8^dvl;8ve1~0QHi8EZxDU&Y>o?baeo`g6rE#5oQBi%SHTzC}vn7lCvFMIQ zz6sloYs?Qx?=gq@_3M7BC+}N$++5ak*!NDFdZe}C-7jChSD!`MF`~w_m4K;E;c?-H zP(v+qM%THhG8%rxI5NeKtZ9ulkt)x(<6M`$My1-uEvjmJGsz}q2bi9fWXYBK9a6hY z{X>VwE@Wxw#R(NEGA)XsNFmZ`-5ZVKcFN@{Xu3ss?2cfMDirS~>cm)sV7@ko@$ z=d{J6{jMjk6gDMSCK+4W9}{jWOX_Bsco(N|@{DBRl{YV#$&9wnYX8}v@^#NHxd%Oa z166@YX_%_G0KsMc-MwjWx$ZvJTLdhKgZ4%rJL7gFcFI8w>}?RG=L^B>%9ym;t7 zKOeeA$}=!(0kc|8knq!}X@Azc3VW9zb{6>xkP*w;K|F_=H(TnJUDndhs0Tj-_I`fA zC@@CfT1VnW#x?ry83MfY>!Uh7T}l90OhhWg+TFOv03r&Gr*nYfj*nXdM0ktHRr~=Q z+23p>_F>FOMyn6{KUSrp7Gh>LuXA5qxHt(cy{jVDeelRofMpcD@h}W~E*{9E8};6K zNoyX5HL1BzOE`QW+!bwVSKc!zIr?k(h@mChN>YQRi?aXS%4==Fa=A7)t%`WjY4mb@zPjbFfkEIv_;n}y|Ke}X9FSYqeh<(X+ zOURfAM_KEKhVl6YAU9%3iKJ#k=8_xXId{n?hxadPuv;`3;J@ih8skI>?MwD;da0Yh zl*k9)lxWR}WYZ5!T678)=tWxcC~UX;<*=k0*|V5*tl!%o-9EI*`GzoiAm^LDdct`k z=iji9bXWr3^8%{k!?xsS9=r}Qs62Ld?GMHiH5MQmQcyl**QuR;Bs!CJX`aL^V!bV(N{ZPF1u$nkBvh-op30v zA&w#JQ2;zkIEjO;2)Q3@QI&1=beAUuFwMHrr)Ki*+&lOPt; zE{K{H1TicS+a&A@ecjT*@g5P;1M%+z4ynrIni=`OIphRGk5=0Kx+|(Ynp1qfC3y45 zWW-fAte{--*A+D2T^|sdRIk^(V%_lqg8xF2ppU zxiy6!LuCTSJW&wm2PG$d3F9HQ2gl%rdXNd|L0AhOXc$~A%Bcc~Y3m@y)wJHQqdTIl zRKc+@Z_nwRzz4t3B1N;U$q-{u(elW~FDUv9UDb3K8%F~LW$cHCwIr+fIaR(JZ14lB-xvO!vGGI0WP1Q zP|+*4*e}sZ|XkX4k6r5D}FY=o5B`mv0tI9g!f2sb6A?vHO zr@myL9oN+lecQ}LgengZcMu*B#QMXszX+1*`d3nOY~mumuHYa%vEERdq77c04yYgq)xixe>Iz|6abaH#CR&C&B9>Y(ca$)#z-)ljh0`j;U~kto z7hIqifhrs>Qm~5-9$oG~(Jf>hQ-ACSZLB8N@=`uadyzk#vMy>FOA^=+0q}G`HE?yVhOW~>ug^Wp+kVxg8P5|2+paEPJ;-n_8ymDs+N0vYHWE^!7Of{0uQzZ=8~Bjgrt#d_CbN&`}f z`jS~>p#J@`6|>_og?SF|j95pd&^o^{yyy%gekoAv1A9v#GjS3~#b2-`reNZ|7qs{h zxD&6I?1G&4{9d`x90%oB+y!1DsbLOwde>q72Qv&qc!eSlqhvv+!kKIQhe*LPqqO!= zPSy3l4&nB`WasyfoWl1~f~;vG9$}M|b`#feHxwyCZBm1bl#}WqcA%~IxRo)O*SS#6 zr}_Rx`Dko7Ygjh?*HBS{UFJp#K%shq`;AGaQ^;$y8P+4!*K2VaKU9z_7A`|EdIB)f z5az3*dn&~=fa?@wac4!5hUW8Uah?HkX@jtK)k3JP^ zKaOu8gDt;m*l{?CA1=Tyfz1 z<0ilS;ycn*Z>B@fotxl%yp~tIvu9OpEq;Ah*IUU1wYtj6k$!(^y)V0iOUq8}{_3x* zdB5(RzJ-sy@+Ff9X|ZX6?la4rU-tIi3vfC;oI&3hWTFzsk|@z#65e?7b;`J@nG@M6 zwe-iBPbDPN)0XA{c#(7R&+~-5{A^im(M#{teqE?OV%KFl64h?Az6%9lS#C^=fu)hm zO>VvRu?<{qbj@6o`jY6OfB}hnj-t0Bn(o}(Lo)5X{%rNwj4%_qFjXX7X4s&jpRD~~ zl%zw`X-?km`=oYV=i6%CQDO$}dtBt2&0RFzxmV9egp{0~@~btCcIH)Zxw?kh8tP+-%4__gk(#a70-9K|NhR!bytb`D$o3S_So1`(G|$18mtz; zrW!bgt70nR%a6h)cF8E4;pcjLBVvYx*M$vJz-mGKiwgF%MnLZYu!tM*Jf1Y45F4*- z@8C!d1uED`*(J?Uf(0WCS}+b!K>M{dXuq~DzuwB*JDVg!Tu|`tme@c^@E>eluwlCc z`ry^;d58ueWZT?AZW=SvyG=6w*AOsxq3;0SOtYhmCZ9Hw!6Us=u-pn_&h@s!*dw2r zEttMTUzLQlhi2}~=?CU`5si+qHv&aRYb`2|0s|$-Rfh(R@PCYv{EX6W@Pb=tY&?Nx9dCpf!!K|Yvi4d=xIV4s9uI4D-2SBqGeOS{u|6#9XN>lpkORc0Dt zI*{P~M<|@VwMucOOG74W?!`5O(~gNKq5EY=MNU5$(|KmGl~36 zl1&tp4{5rS=l{vjeP6FjNg=@|)^5Mlj{defw@5NOUD2Cy!1rG7eW&Rsd*b3LX(D*a zbaIP1vgfTou+s|E-rQZsXXQDrp_?^b%569wyB2@aMJPT<+I`oeD8rAQ>owW#423%reaK}^Ptx>gRlMh)0Y1UvC$8v8X{?}%Qd z9_%0WTV)%xe70Ow&UjVZM(1kQ*KY51y|Cq*I0Mlw5db-_2u+9Fw`H#DL9*vB{tX^AI9$&a?6&U$vQg=q-FN#j>hkJ%c>+`!A z4D}}K_1s?U>=dduge=Yt`bL<(UdvmR6D*xRyvo0r5~r@oKjM*CZ~jiZyE8=5{EXEl zMe7$=TY|qEdgnOJmUL(i9u8blSZ{Kt5Ir;&DDHgAG`X|4v*3~ndAR!I%~w|*2j&J) z&h%|L-)2tttwPrKc5s(coQkC6xa^$0%#Yzc;tBb2BD6o=e+xOVQ<1!({>-GaV2oC; z_q~a5l?hj-L8f-0Pf;`_MtkcJL1AJGkGoAMQE`!S?Q$1Sgy z9!#^t=eG7E6W=G`18J0|zc*8C!mlsNulV3BcijAo`TRdC5>~WX45Y{E4|>Stv5`M` zn2Q2TdQQ^k3FJ*x72mvr^qjLetbDr?d;UbVo3q)cd|B#?yDC+*|Mj%pyj@muW?Qug z&y`c1T6?J`riW)nGLnVHa+Yo1m^wSgM%5mDe(34?w2<#92ej#8 zmEJ7#fbOK&fbJF-v6e}f({Vixx^k}ey5~&anfDlfO39|&bHP2lIht&H5vS%_;4004 z<^9H0HsA7g;}bN6+kc(iTfg&Z6 zmY$i@>@)OqDrAeZ=kthB?~K>f{*l2cE*1)jQpqRIEAy;{NzIfMTO1KF?0r`PRLZ`*;5=rRpQ)Hh%JkoraTkO>}a%IOOl^nIqO0>7G`cHX~Mk_~>lZ(@AQXl03nKuE801YFgvPZ`SP*SSx+t z>-4+AwR|&_+|J=aPVi+Ml)PVU!ZIUCN_mw1n{mxAr;d5ej*fyP=PzGWjizFPzD6r{ zT>(m^Lw+l{vlXe2)4$;K_ABZs?7cBRBE+Dm^ODGZluo=hGo3{J=mpnI5^&RcE3 z93c7UZ7XQy&_^Zp1aCy1T(FbNcX+D?_*4X#bX96EbAfD;P`d1Jjkl0?4bdsG=?M;krcC>cS0D8i~j;oIFr=|ws2*Ei|@g_r|%#qx?o5O|q4Y}C} zu>V2k#9n;V|I+o9sFCiRyiqpQg5gMG)Lcq8=q5Ax1LVcxFj`?Am8PT8aMEHfZ!+;9AIExPZl!ST{3`N zLQ^1@P&~5fn=Sv)25lk7hRbsO%jqmP+$PKDN&7HKrKHf^$SR1S5m`80A@)nlh2$^l zW)bMOm(o+G!6r#_y;{J2vi;X6Q_srxs&O6LftBiGi*qwS`7(;61Vbn1CW4`~qxFN?mZ;9dVQ=vBZNoiFE z8TiCmrVm?=FK5S?G!47A{r)Zb^ljlOht2`k$*Qt|&@gk)=z)C{IUQSr=o$>Z&pk>gmPury zG@pbS6@lm_u^$t5OptgbmJyKDPIRXSqxQjw_@>*}KOhKv=;cmNK6_gi3*3$zmY!rG zW;#1IF!;Uz+P%pn3Pu$Jq@w-?j$Ik}efq~&3cN%%zR}uhqBz_#eeG&9HVA^8@6CH@q@G5v00FW;ebOC^k|7lAk z{;-~4E8cAc<`5qSBZDb`b;|&~1BTb*KM;GPfPEl7EIly`cMk-g5FhUC$BmFc2~ar& z9PJaGUgCzh>4}7A&WP{R|1?BkQgjBXC`7>Q6v#RFo#zRUX2Hb;F75D<^U$jhpG4!w z22U$XgXlmRWCM2kAV53>6#)X2ZY6Ot%9Aw8n+|OW0*S%nFDtcxM8q6Z1G60Du>C*$ zKISj?@dbb{qmM(-y%jcTA?W@FBpoUf=+H_%2xC1J+K;OgXnL?hd+WjcV8%C{XyQK< z;6x!t1*EeDvXa0`3V1CMPUXfsX*4Q{;3g9>E&9)Yy7?>;Hvrca2&hUl0F09fY_gOA zGe`CUR)^@?%Q;c)2&)Hez34GTYy^`8Qyw002EU0r;>EOVBqh zZeAOZdDTL2`9&P$I9DF%=+s)Iz>VhD^yGt;%e`Yxz7aEq{av2!&w4lmFIr+fEeox9(itt)-Ha=-I*f}T%b+#Rbq`Ve$iz1UL-?*cWds= zmUt%0*7;-LuNioKWeCY+cIuhUSpcn zVEs{?8Nx@hXZx;zi%W9!q>S4j(TCz4i#C1s4>RkjucUeKyvgwDnZB`OYnxe2sDFNd zTH31V*YR+w!Dm51Z}U!0p{EiYdX{rqN=Ay3lS8*N>{@&7%X)mM(={i5DMi%T2m{o_ zkr|SV!uCY;7i>#wO1{}V(ekRCw(;=|$!Z`D&oA=!9mf3$IbDX2JA{r;o6AWD3&gg* zV}I+V4`vLaCJ@co#(&Flgtpyj*xBtBo%w(GTf*l88#cV>y4`{fiE$kRNFyKwQ;-X< zK{)`YyG`e3*rgHR=r;W^)yBCkx(-SPTtyOrtXn`yNNyZ!l$?SxGHfFwA6LElH8GCW zfG`CoMy*6AM%Wbq2L%IV2_e0eCzVw&&Ket=cNEQjyRT(j=@L{DEV1;AN?V2~w#d10 zXt2}x2`{$Kq`2|BoSJ2Nlxi{fLFNj(Z~tv7GY;jT^vDvvb>-Qp3Hucqll8r`y^q{j z7Ci>rrUn8`wZC|XmhCRw-m|@9GCxcgp8JuxL(SX-zlMCKY{`PGFYf?OQbXYpd;~m*%jPd9Y-a`JC|}7T`hvqOZ8tZd z_!u}{Vpih2ka6tQOcs8&Qf$T}LW9P9QMu!6Qn1TR9q}uwWGSm#c;P;5;j>|EA^b)0 zx%Q*ra?G?{_~K5X)S~f^FN3cnI`#umOFW|B0RDpx&>D+YSADA*v6!$f?RQ^n;y|+d z4;3X6!yAjteUqx?f#ddJcR~fJYb;o^0)8qQvh?VNj`9~zvsY&f_vW0PR!d*6i`)__ zCoPw5VwBc(*=m1va(8kg-Q^w1cc`Y6Wa_g>I!?dfY%z*9{$ODf#&rLl52>P`!UKyb zTe^wXQj6(n*1XVa3QdMsgL5puoL*A|KG0^|f8#&E{ZLc?Teu(l788yS1vUgIy{6z) zZI@{Xf#!`B8NW|1uzM5&`QHSz)0M2-?>oA#-{F`a+RpkYwTu0?h1)_?Bu^J1hzx=H z+0H=-G#$i(z#fOzlG;EVf|FJ=hKBNZEvb)yu)1JUaU;9nb!FYWFZp$)W9BvJh47L0 z9m8#ad2=;r$)OUbs9ZsVf`DJ(yIa2ts|bHaJI{wuNJRpbNh2X?URRSU%tE2`J$x9GAsc|rW0Z(Np5>R*5VD| z|HXngyQRdhf#Qb9&Uh1fL#u8#UPKzuZ8T>$!3+s%M=q2@M6Mpx&L+$y36ak(jcn_H z-U-zljzb|71$Sc@v1!7*7I0G?0&~TDTkS^Dg!oyCAyB6J<6A@E1?7I9OUY;}0Na`7 z)mcm%^<`FEI^N~6J_n}?(KG?1BRK{L3S-_dYTI4qelQRe1Gs#%E%PSeq$9+2l8;O7 z4Jm4gAT|f5T{HGEtU}pBLFoo6XaE@(j8N0nYtW5DK}bFeJrxX$c!(0fH-VtNq99a2 z04mqxUI1a`Xuaw1yRJ=7>jVHF0bvIBE6N?i z-w;$O1mJ?oQ5J&!x;#TrL@S4#)9PTkiXc zGJ0m+V~ARNaTOLt+*OW-&=8rJH+sEk5U3Du`cz)1lyDBZa5X`}vE!n*>%U628%qHUyDK zQ9+1|DWKcp>IW{?;>mOHq}pM$E{Qp?S>`=0{p{Kiu>JqIBmvRfgASbL)UnLI&Fuc7 z3N&ESUTkfFPL4M?YI$Xk&X>XK{{%P!AR0izz%6(uJPAO{;2|YeHvn3l^!1&sNzLfputqHd9Ly$PWo32?1Jy!Gv+}D; zmk(pBtQN0gfm8gSWyDs4IPL)2(MN31utj6@Pe831B$KlC^X=NX@(;>v7K&d@%3+2V z3a5FAa~ujr!N5)wA!nH_r^O%_ArJg)f?o?aJc=c z&##SogPSBczJ)N#c~6I zf`3864qnX79a;>dE$9ld7(~oKSYx(3dqWL%FDy&}$q|4keNlj-RG)>7lHV_mGJK%k zMmF7^#lkb&3vIVppVUnAw@e#3mcOvbA%|vidW9eygB~0Pz zwZS$&b>IRD5txVfAuw3>IiY|*aBOjedO$cHP68C)W{m_8F0RlADKDS)vg>uOls=el zLu=W+59ud*-UV=rf^AX+YWFxB2pnDy^2dhu7dW488rhBkJx!zFQ`qr;#!$Q1+w zDTU29DhR=nkUa^JkpF)P*5u2_F42CL)7!~Pbc(Dx;x|DhVaU1#F~$yH`ynJ^6xRmI zYl{XlA<~$R4t&^^IZfeKRg>EJh^P0(&AY3A#+yYFFWQZOg@tfB|CbI5(wp7C-)VL? zWdHYI!8kdL_C1`dIOK~_fejJB&WOZZ4Vm;(ptXYWIgi_2_euI=Yuy#gAl}KfzK;vz zZK*;^wVQCN5M*z%4n$u-8g74hK+s5hiva1Xn@r5#Yjj;V0IOf(> zOkQZ01Ob)?;)C&L<$DEEgd2GPzuG?ldnQ;*b>=C?m|>=dS#(II5IavvUu-0Mh>-$- zO;Z}OaFrbwIDI}qWKZj@-^Yt1a|)u&Qs;e73$%!L=0ckY0TFkprNFXZ>EOcu>Z;Kv zw%f&9Gd_9imozaXhB#ggiF8#6v9)u3=1CHcq#l8~1JD>k<-{0vE?bb_~5WMA%OxFMko{<%g3t zKs70JD^njpNuVLDa6CchR^2^W8W^2Gx>gMAGp$}_Cm!$ayen$3l-4G? z2Cb*Y_j7`vaOJ}00m!{E5dzz?1I`3|WEe^l@dX~x0!uc42Dn50h~472x+SS5?~Zn8 zceXpGH`S(%F;O2NyiNdih88UB7g=)sEBI!%%z_gZPj46E2sD#e!mAZ>C61C-*)F{y zYJ*Tv6II%%>0jw|2WzL(+pRt_>R%dv4JtVh6aHS1T(8}oVHN`hs7(9IpAHN6gGA3E zw+|dL1pLNs)-T}mS!=IE*ODq!$^b#!Gv%5g)N!`1Q<>UgGM9;$AXrbqP6ji;NKlFh z@)?J6kXg}Of;tr51voaf6j-62hf#x2@Ep(&`OTj}bG6O@d=oK9lxU4&nw~C!3L*q# zgtOHJ4@n173o?D!(EUZRBHAO@;5x*-hZI;$PjhziC1qa*>w`IHdNz@-CKX&$R^NaH zA_^Y{umNOb#)17XixuwG0Dxn|IT~x%9KEe;#SoWRc788czmG?`1>XWI*hkHpEB{I? z96SXoLjWb&crma4npR3?m5N{~ZLHGCYk)T%P@mv?Tuw~ZRf@!Ti8J26KPi>JUJ-%1lW!8-Gy(?A_Rza zb+}<^-v&FIQasaNr6XVgn40$$bA@)aotZ9GBUM`Kbf9Gsp>Z%v=>t$RxOeN#DhV!` z2*j@!R5qydWGVe)padTcML0=188c zF##+Eu0hO?;OZROchntj|3?WD#2yfd5Z?g+_*BCoZlMx{UyWt*lQWRs1|O1Y^cHEn zgiLd2M>_yMxtWSP-i6zncZllE>7}~PdVy1k6m|jyZJ2<)-Jjb$(Gh zbZ1*1b;uz-7L=1M&D`Ls_3XvPQ8CXDA+_J)tp~38)ujbizhICPa__usMosoqMCR;6bjFH+Q#Hvh`yeI!%Q2k-K# zZK7^UL*8D?iHRM$UwW+sTdV#>mLGLTl?=V=1STYMKn|eUqr!>xC=esMKr_*z+5quk z)Ue2o#CgJVYxp(-Ks$8BAQ;7M0FM|Pp}C#Z{=rfVoa1tmM)iwzW56c>Zi3IA2lR6^ z(K$6n#()@20)CS~xe>lT<|G8B0IZB^#>TPT&cWf0U%kF^+bH7%0=$`2;UH3z{Et6M zC>QykeiZMl@IU@2_)Ws2R`{A~7eFxJ2-`4W*qKno67yFki53C~V|D;AX6KV=fE*B@|iHr{L@9`MOWgW>a@Dri0Vn|;ybalA}xg-bhAObu~4!Au>8^J#hzL9;Z;*T8p#oc;4CTqq$6*Mn2Onc1K{^6q zOiVzWfRrTeb8dA3Gm8M4fkD=UtTO{-4dD9m>ojiCr$oY_!I7k84#ANEdMg2lXmXv# zAZhbq6Eg4M_Sh6=og+vJkrIG+2SID23#!FGz}q}x0Oj}}M~u%-1Yi>IU=>sE>rI#t z%R@Sz@C`A92eN_TMG)`<#sh&!aPn6kH^z!6!s3x|u|XIf9DfXef&f4UgkrPOB=(O9 z;2;0DKR%Al3VHBpe-OE~rvbYVBly#^+SAugv>RWzTR2?!_3V6GR=;?4EkstE$R zBL>buCYFHq{IA2!{@nfh zJUqz@k5AZIzI=Frahv$c-PK#OZ60DqKBO{>j#dIi85i@Ps5P38bnKP=MAQB7)W>>; zlPls5=sRm3B?i@Qdt8K@ZT2);5Y6_O-%zympS`P4H zPdzPGI658Zr5%LWJzNMJh*WG;(q#9TN@E&dQ z3&xiuL6SfJ3hBR~D>VO5OGH`~=-SnwrC=riX4$BLL^z1~;PT7+g+I5>|6nk25Xc?k z|MkDnD<%YgjmQ>ao94R!V#EXg#<=$_U_Y6Vtpp)X1L13JJezq6D{O>qoaw}<4$$l2 z2!ahKxI)Tu!>^^ue*jEWvu@tW11HDO$=iQ>I6M^anxvTTN!)iat~~Hw6NWc|7Pm># z3&9U@b|fa_q5iRHg8ls3f!o4jx=Ug*9>N6v>o8EKv0&KXqf`2O;A`x>LyXm?X01 zb3zn9E*v8Oir}W5`u$yVCHw!Ps;y?o)*k-xTiaDrM70Tg{)Rlm<={+8)pN~qbHls* z+j9?i@)y0-bbZ4X!uE@F$<0VdxW1t1=VLL{Dz|xbb}&W9Zt9SMm#I=l35S-hy6tX9i$>TrAp|6ZuV3z>^ZIa7N7}^El~j> zr96zh%H`wmO+$=p$X)g9U?KR<`-BD-=HbelGx`?=!9`HE8%pUB8Pkf8q4(z+VCc;pbB$6!V_9wrY9@*tRoli>QK={~tREY=RIbN51a=h6?; z3R1jhLtjo^&JmkF?BseH*uf(zQ?uUYOMg+&?bm(a2M^&Rim$xk!`^=eA)o?Ta)G8N z7D_<1Bn~AC3%EltY)DZ4U1$9;Lp?C^ZYQ@}8xv_`TN+3vCw>U5z6HHZ#>UG4+=(z2 zj)S>=8AmkcvBQS!h5dugS-r1SwELc-ECIK%hyNUbVLgW1!i_KIz|aKb&K#$hg**z; zmin(Dk*v8o1svdYZqx7S`im-b9D~jt2N68ZMr=`O;+J^nst>}m3`BIG>q!K9QhSOE z65K$bCo8THq#jEc@G0z(FNCbSU*uT!1a@1yM{<0`+`IDt{TBG%{Q`0m3?M9LH=cv1 zD1{3N{)2;K!}awc*KS@rJ#W(K2HkjxqH733snh`6Y{GI<7=#iQ8G*TnIt#-^SYfyb z`2-|Jwgm>}V}lLlh(D4eo{CV8SouLWDhRRxNH~chHtXBGIAEnM3={`Wx0jnn0KClW zFnk6GTpwd87-T5`yt?mjM~XSg0KH$d6&`2FSB%5~n<<8z47>yb2%#3QD0|aZ3FONKj4&wS{wy zXs6RQFcqCWlqxq@p@w8_@Y8!S zYVwJAnPTHj`k)QhPypTp)Zhl*1QKGwLMmXSzzG#1&`Z1#3U(~mFa=O?O&+F_(4-$c z$xD%7;RM+!|4!n@+Jh6V2ZA4%ba0U%T$B-EBgq39=2pAL?$g_M?T$amnAY{K& z806}%stjEGc%Nq+x_M|%Avj7yIxQ3!O^XItnh75r5DEYyNb)OSnj_xqfEofO4LBDB z_4$k-Nsuo-k+XOBrocQSn3`hP(Y0SvdsA?b8{mxxfeQ?5 z$KALy2U!DwfpEb=vIZDIY%q9YEKde46hQT4fvKlOWdc0M3XBfI0dUT;!U8Mrmk5=h z!1@jYaL5U59H4?Sum!DmPOacvCCSHepuz_C835(Me-eDdqeTzYS`djH7*~*lEYM_- z(jkIxKxq=XSTtnivIpdUZ(tBE=ZnbuA!?CZ1$npwDKFs!_&yu6LW8qXd>{`vEY*!S zev3eWUQ=}<5FkL=y8xUIVKWGfT}8{)9^Dhu!1k~}*Un*W?BlSt`={U z0st3$uLEj|)jeGnsVP{k34(ByOJH?~_DZ``*@!>j|69?X9sJn!yI>{Y$L3JZ9Qpt%U=S z>?VwK`d5Gug)C756N=XO#8cA4lFsR0^gC8Es-|VhI0M&d&Uf)T0Hrg0>;?`=f~hS? znGAv45Ka`Pwg4pnOHzRn=q^%Sa7PA$PtytrDh2Z_LKKOkTnIjjq+$TNRf6Q-Fx7=j z0Ui+usxS2jGsCNnAMiu;uN;C<7SPOF1JE1{bAr%Y;Hnr?UqHwTn?QJ!Bs$h#u|?3X z#4U&!l7Dm<z1%h zz^C@yo&}Q=?5i3@XH@@upZlq2oT!krJVDn%Fgg8ol;?Zw)N2A%2d^nhEiQWvAw`ZUB}@z7+$^z`f=g8f#;poN78({3PZ_n zrX?Sj=t#9rdx84dZTj04;H6-3B?zMkhg(CAQpNk|xf(u2nTk(Z)p2Z$^ZCXJrfA-q zR_})In2>s0KHaqDyp}z(!v4;q%ie-ai^d!TJ(OR^LW9n5Disy0@KJ zeghyZan2YOKsVBC1OiMe_>~O(22u#wa3NH(Li>_MrE%<|q#2dbX?Oa#jo+e7u3IWp#_-m_Lr~& zdTh!#R5mcPL1dmW+&%UAoNcs*z+x`a1vFD(XnRs+k`69haXGkh5}>_EL?rglexa*4 zc5R=RKqVQ)`A5^bbS~G|QiR24YUgLZiZV%kb^pYeV%!>K>^to&Qs_6*AJcI+LCB`` z3z^iCYTxuE+aMEa{p-P#e!}X>CR7fJ-ky$;_i2bmx6(-&_^iWL9g5K~Yx7BIVw^$x1@jN;l)T*-VbP zv$a>6N+j-uWsEy_wq1^gK4c+`g$oW^2yG(pz!~WPo2;7zY_=e;#-xw(>oWlyCn~4HU)ry7u$^sw{yHMyn2is6UVS^a zdZTK6NtWSc%A55s0&`<32hDmoXY)Vhh<$&-<#jaY=3=D!7MdNq^iZR(2fdcLVYn3* z)&lhUIETa@9n^AXayKgR(P5uu^U%*}I(D(I)|foInyN$nN`2uzPxIOrc^{|ionDH| z?sD+@FnS{=zf(#kGe}d_RJus$P;O%IQJRASBZ28flfCg(&)2J#N8YboTJO-|U3@Sg zw|ni$<<@(o-0|U#M_y`9gtgW7-M4m$K5pgh@3qF6Dp+=S+gD-kL~WA}xhEZ;mW`sD zyP}zX-qw=1uZbe5I`o?2cWMgWs3|AFPE=Th?zO&_t(>XK>!bQLLDcD9mcjoYZ*Lxt z#rMa5U!_u?7HvwaN=lX%MJmx=2$emd5<-X~yLK(263SW$S+BBY7a@e~A$yYSWXsZh z&TQ9QbLsQ_{C@ZSxc|Q%bIqJN=giDG&-d%O>t}63N>G}l0^$mMqA`^S!rD@&`NJn_+oPYJ88mL1@8jS3 zZG43zcrn;2PKnC{$+ajrLcTQcW`Klhd?CRLOt)gV5LCJfAin5z&=;N0@I_0YH_`{b z)L{Wp2n2}i@53lSJaz)PFbs%+FL9JRu>%zTLg{AI$Jnj@;zK&S%R@uA^sXi(Tb?4FTgy}(( zgH;frUKjA}NNa`PaMaU7(9%!jkGy})F~R(a(>bPOI@SlX^&j@L8Dh0 z9En%Bo^)_uS^tGY4k*acv4_DmXuv22rIFhnjy)#9D>^Wyvy;nD1=Qfso1jZUsuNUe7XYahoTfxN^Q3Nbn;N6j)EjL0?FaAW z1cwA;GXWF@vr))U6pR=J=!!asxx~WaX2R;u>C^tuNKS~q_o@kDnAw0{iGBa@&{u>` zgzqC%=`C>)xOD=~Q;X*dIsM3ouWfO;(>mW}(@fD`H8m+5MnNJdAUaXq{~!UrUeEyp z#P*<12{=^#wNK&B2ehTCK}%WTEw$1cytsWroxG1N8g{!#=1quLaf2vw)xY;CqGlFq z!w0HlxxGhfya;Xhi80o8M`rYk?*l*%CnI@I{WgWk0pEDQMS)iQ;#U#X5k%O5eV`o} zbSl~?n5f=Rs3v5h@+xxuZ5b+L7zG@G~%@TDhj7h8PBu~ywl+QKE# zwVgc(OzFF}A$7 z)2dB0?>9|LR%gREyawqZ6ghJZijRwpQldosFv7N{hu0zN-By*X`K1)N-ZB z?3Hp;j&i;EX~o%5CaeB?c)m~Jt|5>vy0)NhJl#5I+aiB=pH~0@N zXy(0N()$r#2{ZS@Nix2|eGGJ`%my#3HIr!ltAdt^A0i)zVvYr<$a0{v1-K9Pqv?{C zXfV%fhB}r}<2bSJ_6=5HdAR1^#jxb#5G%o82L;0mn1LZ6V#D%i7-n5cEhlsM4c0o4 z0YZr#Sf&abkL0y-WLpi8I!;57S=ceocC8o4`LLg*Ba5V_6|5&zFUGxTxF0srXkOBK zxZH^>GUG?1a6cp|D~!@9#buStCUnpe%bS?w6_$-@6I93F<+6}iA-EET(w2HSNDl!+ zC%Kr8l9Ge&8zW_Xj3Oq~@k(Ae#`*&bU<4WktTj}+;K4HZ&7_tgqFPivVyzh4@5gJW z010}n*9FvaV)|5Zd`%hq9ZMzJUw+3@?e&_H;e%c7X`r-auqD3zgy5A`K}*4RK$k)s zxe^*^xDnn9e4GB&*=m4UozFvI?7zuf|K|@Gkvl}!0>BRJ3p}06IS}LoYaEa)fq&u> zXE~8smT3v$>OVV=%evmF{&AkIm-~HPtQ|d#UgglFcQ=M_ZO?KJE2}g9U(|NK+_7Ef zhWmJDX^ye{-rAI;q5DCVmKg*6LlWl84)`t+=Qh9cEtP-y5sgbfCuM8K^r~byR4N?l zsc0W-{6o9HT{KVhdF;u0PpvJUQpQPHssq`Bd;a{vH6wMW}PI+}KkKp4R9zLP9F3}x1*}FsA`gT4OT5A5{R#1D(;`Zicy!ir$ zw%=45%S%6DroY{yIUzNpI9z((@6cQEL5uv2xRc^NwetKE9ky1d8q3VsW;s50sJ8fP z{-p-`Qq@tg`I&jKR>nA6{%N+e;ZOeIx`AH_?@Chj)T>7fH<&LGH1}E8*Z$dVc*>Q} z@w9;k`Sk(T>)S_qF4$fkI{d=2`Etptb>S@uYTJCZ4+M)pdM$Ky#_CC8P3w~GJ@M}S zY3?fTe&T+a#yVGLub-v;aWY!_+w|WZN^10tD5!I69aHTBC8N}WFJy3$7V;ESoXruk z6w+Um;xKF=f){Rd(GNZ^I63n_DO>awir=3#Z?)ChOShER*1CR~bST}p>Mg9t!$}!7 z6zxBJB-K$VYH@7I-b;F>cTfA)#0frfn<9Gn6nLvt`Y9C{acx`K=i>(#W&!G>kXqNW zjIyAXq&JW=3Y7|OG8eogc8|qx%ahsU>?_g}R{l1rc7aQ}N>;1N_IZ0Mt_bjFcGj&sbjVa= zaawBSjv88&(PKTS@1T+L>qT=30U%R*_ z)@h9~Kqh}$(dC!;*qJSS^G>N#;hSIdpzC+1g(vRmZ}aEfpcSegYEbv7`1+^N_+AmI z(3(Imw<;;k^5&SXnn0Huqw*tDfBMo~8Z?8uBgZcLakcKebK`i5r9`QF*II#uy}k7> zH(&B#mpC1v-lWye(`4f4yTq$eDfL0jCN9gojFJp1qqULJBSKBOR*KKRMVO}X&{DsBvQJs=;p&`fYW35XAeZus2u6!{&Ag0`V{OsoQoYfm=%-X+b z`Q=R89bmO@5zIN#WlaL2p{p93R`)AE>+0X>y{QaiViWYxX{?h$CmuxGUdFFb`PvS}gXl{z*Bx zq8Q&IGxuPdh>kt4*2CX1{p<$iff$26f!%`T;o%XrzFOTGLU=9X z6uZJFwn$9@rq=}F&b{dSqjJk!Ojkzg@(O15`|6#WQhJhnuEmT9VZmafbKfp>(Vk*b`LQ| z-^@ZjeX*}=?8W7c@F_S?lj=Fq-;x8ZCO8GOUj`r=`bmUHQ@6H*3=mysd&jA>y7ZwA(~Hu9}N zzWa;uj|MW5iP@gHwzI4e;JpD_hd0cx4`wvlW)rZmiUw;{!N9QFq%$^$XG|)HAzvL9 z1BJbT0q1lZc&Xb6-oS7M61~f8pP(3?aS&94d}z7gSM>zSowk#(Q5iK`rU^`x(*ZoVb%O zq)33_U$%2eLE-iVkKhnFkVC zkc1|P6`*=a1aM=7G)(}wsfEz}U=_eyAdve*vjhb)48NrNg|l17G73$M`Hv$M)F%>h zhrmmOtMacz*R)E~@i9T5N?6ZFC6{CI5sxLxy3cjlhD$As3`j1qcE! z*~F~(%X@OoC&{l9dfk*+p(<#XgfUub*L16nbs&%$2+dh}1xua6aUnsb*jrGB^1AYr zhg+#&@ia3vFD}qv7yCxv0rj0R5HSj-MH%r~G#>`|#xbxgo`{7;!9*?;Dwu%nGV%<0 z1`~Qu0K1;JEhwH*Hg{_iH`{!#ai1RF@!0Q@qc*^N2e1pYrGI5%(J7NNiP#(h-vhBZ zl(U%3QmzEDt#%|=xfV9(?kT91=jQLLuH!t%g5jZn*ZDdfhRIV}Io_Ot@6i@f-H(bF zB4l!ZGI;@;Jf9%QD2cKJuue#a*-s1?BluHPE(znxa2#=Vl#+r3Vhlsfr=V*VL?!Dv zlkJHSe)1>5@@^m&MTLfeJO`0Wh%gh2Z$e^{HnWhcENaPpT$x{`kv`pY-Z^A9lJq0pbwNVin+Hnq# z2-Y)ooM{9~N3;zqPP+_vG07pqsCY9+V0y&bb!NAg8EdzWSI7s2!;Sd=);7!#9+CqG2)ua9~X^hQ-C@Go+g=TbkAvRGwB}IsW;z`rMz=|PX0I2ga+*#27 zjQ0%Zhnoe*{86WtOHepaY9Wa`45kiEg@+w#O5)j6pD&Cxx*1q3+*Ln#k3$o>N@7|zm8Iz*wJ z&?r_9hqTkW3ED{k`nh1F7#iOMGM6|fi0*<(Wc8>n4vAa>3K{HHGwRH4;f}ay8Wtvm;J~PR(^wm1fsqbK=j^|o0C<{I; zvKg#aqyi8q7KZo$1Xi9&{I{IoM3HlOL;|+XGs!oxxa+XCUFGMVf#7^@ap<~5bdpU_ z=87O-r1OKp`Lh^_X$0TId}YwK!%~uWD+bj`=DMcT%CW;q2}%aQ!El}o&TfI{!OZ~a zlJl9b4PbJCX9o1;VVV>MZ&!oTLvn~SsEJb)jJTh_2AP=_0V6Q3DMiABNVq1$`$vXp z$aF9gCiNVMoS3Y9uo4nlO5LHQltm{A&W{0QWEt1&me`h3kXB1sQf_SS7KD9E^0Nnhas#=RU*}h7Uu+DoH&Y zy6J1al^NAyxwOxdL7goqdc@*Vat)V+0jN_Ci6OzEPAq$g z`RYKP5NX&zHjt%jfkMJ4AeJlyVoB(A9rM;ZKdgfHEh=WV+010@ z{@HwL`LDA(GR@EMiOa3=nVz^~TgqVXXwic!V#TgOJ?b)pTmR6`I83kpDfu?bMQ4rp z270!Q>H24mGh03mtvY@AM3VK5e7o88sk8Rir_MP4dv@aRo7VET)q-A=7gs$uUUhkW z@b8MnBjQ7A+8VB;hqI@v99gQdu~6&;bCNg5l^8oQ*gc zvq(7UZKR`M&=upah0o|o&FLpJ3w-p`OPZyIwUkqOk>(ww$H5TP)u2b;sQ`*O<@EBeo^;Vt&qUIgR+VrsXQ1A3%Vg z95zOOD5?FcXZ@`|G<_`>U#`;T(%UW@pL=$=J*aATW-~W6Q!Bevl)i~)N0mTndWc!Z z+0{1EMec=4i;X%GT8hVN9;|Elr`uximFKXKxxL12wf+vuECO#eWB5_!n^a`fO7F~8 zyOLk@ZDU@Yx=BM@pUaBV#lwuZu60s#-nf=+ZNEZ~PKzzmvRfE+oIp2edJ zf(EWv*gDKfZtyu5^I@m0tKIdP=Z~LQt5*H#?1vjUZkB5Y!}yQA4p^>}{4wS5_=dI> zyKEk7#&%kM2?@C^dNUyUiGQDMxI?Ru^_LMdT)PSL`>T+m*C@>`BS%Lsdew8h@0xE} zK2tZvPWWeycyI+@?YT!U4rWXiGfs~BT(P@nS+;9i?badoFnt9LH8sO4>nxlkYIt7(^^Z*A2>}rzTpT-^avu&qNn`-U;;5Gh^{L7!}ER&o5QNr!l5DS_a)1x)Yxh_|J#i($% z$+hTm-HLws1=TZcwq@k(Sc+nDKMY z7S9ojR6$_)b6E0zgu_<9C&HsKdFhIs#e)al`nC%B>{pK*ZWfm4RDI-Y$sXUBa&_#6 zgVAj50ms-L4Zr&bpIoUjubRnz^_9uC+1{Obv`o1j$HdOOZ_{{JrE1U{dM__{=jBzw zv9J2?2Xo~d){GbtS`%Gzz^c+%d!J&{-dbVxU_1AIsk)q2BhK(Z$I2%vyPF)i_Sd^i zx4fa5c+0)|NThp@=OHDv$*V80`R>&AHm4VIuNW_tjLy!IbWHd|yJIWRFf=-~L4EgT z1DV}7jYNLE-orm7V)BF5HSeZxKYh{qUQ@;yw<}$xPCS?C>vgU~Dks`(e_14uxH4k> zvcofUj{h8x+&gO2=p{dCXnp3&H3^S}B7dPyVYH-VX7n~#Pd;)kJNzNKZa={P_a>Ykp9qrcnk#DdE$huRc zs(ENMG=fh;#AxUb^vWwu%foQyC>{i_qCuI$*28@RKfCjTz?Z+C{M_s0fqOXR58QNWUE{eLuQNU!tIDYlft@U*+$v`jVk)#nNvH38f-= z-G6At$$t6110qxIeiI-4bjmmND*aX4F8QZC+qPtHkp1%hpGC9yhIfKZC})E-^5{cL zD0ukj_Qvv|#vS03b<^sG%|-8v6wg-2^jjxu&i;^_&o+I^t#fSJSm+zw>eB%9`P zXjN1VYm+HIa}g}>EGzt?z3UQpE+Kga>4PL3mJhtKPQ~~#MnoKz3dRIoFCrJL9mYi;l+cN4u7N(sFKO+#n4-MKp10$S~SK~rTl>{r{38JJ~eG{w( zW7JkQi*h^$3t33wbpd6KEzEJgt8o_!C_*xG3u+m0HEIlTL@e@p8Oybrk94byClVL+(#%BGK7e<$D+q#3d z)hhb61LG|*AE0D28lXiOPLToz5?=|CbjX=O-*d*u91wI&F`OcfiF{Orw@B~nuu&Ro zV=*{X5)MgjEGiBOowKA=0wg$qNrd+hi0~Y6;W`DaLwc6x|7L9AP^4D*gD_9-onuPS zxDH;74Msx?n+l+t9xcPkB9~{xp_zYusi34n3{8}T9&zSyFgQjSP7@?V0&!yl58kH{ zKcPe}U=4hTSpyLYoP0PeNsWp2q?}4`K2(*TV_0o95jS?Zd3f9Ac<>bwwjRt|W`6vC zXfaM#Mh!{;=LdAPjGKwfTTB;6goBZpSlYyGrSZSp3Y;KHZUg6?1S#?llq@lWo>%9W zk@YWF-UiT!M_o}u;E#-pRjk7^6n@_$|x+1;PJp=U?& z^6FD(*XZ0@-8X#B^=#K1Gbyf*0d||lOwLrRuk1f)TVptKyf*d0_;O3#aiLv@O3g)Y z@3yD~3%F9cG485O*Jc#f9{4I}nzU)X*zZHZp$-~%Q{@H5TK-Rh=H^zLjCGFr*#fy+ zwFKe{WCY5McN6-;*gv$|E`so+suzi$A?X?aH$P+E07ABNfxGVy%_eEpSVMJG31B@# z2B=#t$c8o$905)f0WfWVqL89i>>%`P@Dnz{JpyF& zel>xhPM}15L_R4?c_@5Df5o!jz&IAL$*2OlwuufjlwoCxUy+nG5Df@Z)(Ao1u$SfD z5gaiMr|d4o5Z1r%e={e-1$+ZS{6; zUjxbPNLkgUssVA>GZcK%P_yUo=3}b3CI{MK%jDZ8)Eq*!<1UzAxHhf_taSq^AfdZt zIUqT24kYA}4mg9rTSLGBiS)7m;fiF6jw8z_NoL131tpN7M_o3>#{>y9{SCyOgbESe z8=$r#CRmJNu@+MQo6yvO;YhxmIfr4AAwp~bd;!E4AV3R6+W7s1lu47=au?7-3mHvL zW)!Jc1cSLit9NgzzBGQsEp^N(Vez$h1PU2FXx+9PM~ zQPa^+KW%3X+E5U;K$g~rL2*{ou4yf`%x;Rk+pRwEsV8Z1-+`*sJKOx`e9so2G zeeulIUqkj(MY0u4s=q>yY-?~B;tRUvA5|93z2a+?)U;yk^f~8ax6d2$(~5umJKyNJ zaAx57P~#;&Y_|)3&34TaRz2OL);z@jEWxkr+mo{|zj_rHCnUsF$It~XgqOWKqp~$4 zx?zT9kE}?HPkUKh8Fx_XY;&*FdA6e6<-rb{{OoK3)xXNG`<&?Gex-C=XZGjdm^@PL>%ih8ahp3?UIWc#2 ztzsVV$VN%MSvE*FSa#|0p=q3vhJ6B!&d<0r3M>2SP3~UayWD-}d=fCYMA z>DB9ZJvrxVZ7lLjO>|{cMx)uscR780vN1L%-7Gv)3ZJdFTj4y*)dzW9oDR&Y3P@`F!{+GFWcw$F?FSS&F^Z|3JYTXR4t z)=jPGvXp>^)N6BxQbdXur+X$)aM?5Wa>rQYYh&6<>NHRP=+LLF?k1C<+lmSWgUp|_78gFio$R*tCEk38l7VCPiW483sAe3A*OY1eX7nyXx!=0O zsKnv8%KV;xwyjDY2^_G9@v<4N&g)Fs)ZsY7zuiS*19d^I#qIH?TRFs5 zeX^{&c&sY zwwmvEgW6&TMH6oOt;kQUQr2FP-l=lADz~0{-?ZK3NhSmJMcYOSE43QkJ`E`Me%sSFC(6qA2+C0?dwrn8mt^( zF3_hoQehEg^op)y;cr|nP9L~E_G+8UBKthQ#oKC5s&2D8HRJNKnWmz{Cf`kOez~f* zo?VQKtL@(J`welogv3RStvaE*b82sJ;3P5#%W%5 zR8Ui0q4sisKweU`EN_)~tZbW*hFiO}nn9+V_?K6{?((5!wLfdN$)vP=m+$Bp;r%k? zkS){LH7h3NZqU%9jY9pqY}Aik9DZ=$iMH5Oyk-54?306%GwpNjxr*CU{;@2SE85gK zx_??gQ0*zXbC2B1X2%Q1zE3;x^HpcTjBK`hzk@WoeO;SY2zMPV3p+X>Z@#=^Srp%+ z&;Fqot#uBsm?L1N$Va2m>L*ntg_LA9ZkZQ+A}&$(V?hqP?DE5fLW&M@ezw~S!SybL1jOS!K>Q-y5yhOdsL2vx_<(2i zGFmE$7d8O5G}P{rqcX`})T<^v?2(2EQ*kn4Ln36 z80z1(AX64g0@XtEOY!q1m3ATt5amqEO`{nw85MsEBUj8qICi4YO7x+N=q^zPkfHP? ziCkF(u_Sruza5vA$^=hyvTYR&M8sdpfX0=H_5@M9YpGwSpAm;Q3R+@!!?pz!f5VJT z$_F{7phm=>NLe9X|7-&+wTu+Zf4?{oJ*&1cc4CnyEKo&id69ZW>^4t)!X)$-DWC+k ztB2$LxC~u{ zW9e?VGBufXO@c6e54)0^1FBnL`el(SHuBKLQ0#^I27;&}HxT1ll?;`RPw?aal0`Yk zZIt8H?#@KZ(+@QaFNP<7OTRLwD8x-k!Tb57r=#z_xt70k8}qc~N?8&4d9-lu3gN6q zfzTuBAGT+=_a2(Q&oMu@$y98)9{X#~pV7zT`m0ZG*6x;jDikfIyI3XYpkIgRB~6Vy z@zC||J)Qb1?(eAPae3;SQkHyh;iL(&+O2}pc6o5ms(>KYPwPO0Rl9pD8>TiUFFdv7 z(PDBQA4WWZ5K16k#6u|aC&)IG!Rs^${i!t2pEmEG|K7uRp*0X)wE}G#hB@*xV9ROo zrY+EpnFN_wXr&4O;NHPra<#DI;tV$WL*Q52QB%YKn~3 zmLO4nNYch9~h6`GgRT`wLr1J_8_w#i~WQFGGQ7z|>E<#)H*czK~q7sL2x5 zj*?B5OeC!Wps7&S4@X~tBM{TI@^tki4Uxn3#gy^|)l2__1F{iFhnoOTD-JX8nQcF%_z*vNoP3ucPeI2t2amX}T?Jc9yc z(n$cR9jG40bNvxvE2cbE+_i{F2pfuoJSYpg~NwY4vTmW zfG2m$;VaP>Po90Tz<6H|urPv5ThM=3Dl{|D?Z0A^5Fpp|}tBhZo*C&)OSG&TYVttb@2Qj3|P%Jbe4&~>OPPe5sr;xQTHi8vY@ zPX>QzI#2OD!5Y3vMl3bo(3cyIC@ROHD+=}HwvmDk(IjFFz8!NvO=M9Lad`{^lm>)v zR3QVuPxyyGilNfC6t<8~4W7NA^M$u>B^C?^7J%Rv5s4*`Fmw&0YW`OK}0t$NFJ zlJ1n;NN5@)7LTk2;*s%~%>c9;F`Wl62r_9rK?S^GhcT~kWODqmc7|5C&;U-!sg-&J zcq=_IAE`tFim^~ZFej7k9GJ&5|1Y*vGAssnRg?j63Bse1SqNn~K)zup`QDEKeIV>g zFlXVqL<8>5-M&?zmOb|DJd*9SoO&!g2^aKCEa|eM3(qxWI*}=eqJlA+q1cRhDq_3c z(q*@`3cB6t18R8a;UI}mW(sqJ8+E`=%?Ol4)VUP11=#cNJo`8ibB-Z>>B}G58u(D3 zAjA{0mLO7^5pW8ScMxz&oC^qGoXJ{-PiSEe=W-2PSL63@*X>=?%&J|Uhdd871_$csE)pv(FnU>a3`2E364Z%m5A>E!W_38VPNy&4+(6pvx|6Y2RBut+V5MzAS5sW}ZjJ$m?gy!N#rH2P)_<%qQ-A5# zh+nz8Iw#$!8JwPFQ;{vX=nu`%hplmO`(Ss}q0+965w==QLI&yMRa=Zh7EKp1pA=BF z=V;ggny}f9{?OEJ6_@#HwWEu>>9;HLHO!hcZ~qkFS+cQby57DtCzqr&?HvPj!6DO; zX_n5}Y4!_yR)*??)fz6+TvMVGck8oN>~C9np2$0cIx3%B*Yng}m9^7673malYk38? zvYfwny!OH>=|zcd^a1aa$-b@Ut2O5caQ$dJDVwAA!_{DyMxuF#ow-GE%TEnf)e5G# zwotP83fzGHaGaXAB9lJQpy>FaiMC|Gi*1h{ zp&e-4cWBbCtD3ueG~cmi*G|pYniW_}%088f4+krr8cU0Uis;+UXnMp2@T(X;6EROn z)$ZMz@!Q$IQT|Kb-XVMA7Ej3`wVoeWrm2YveHB^|$$jnUE3SL1GY?Y~}IJ1h5=QI+ucnQuN<`3BadEEu|F^V)LzfJa%<)P;?*GsXo} z4GkAQEf5P!n-b3K81VW7qJQufy#oj&B`-mOl;)MHDz-o zlyofOO#)jj4(HXsDec+%gx`=~S*qPt?&Pavg?`P$jdUkT13Dn*=1S_-O|q5zd^tl$ z`{mPLcg>GfY+oRka^d*&0q#c!rU>Ym9a+0{Y-)E`+OyL`GrLvNmsZ?f)H1S3`GJX% z?c42@9o2<`nI60L&bsN{&y#HJn2}l;mG*}=yDPv;wy5QuVK7gENt~70T7?&8ku+My zc(;?2vv2=T@D8zeJWm3B=xZfA*~h$prp@b>nWd&n7nirZ{DI~Jx~2x{P;_2Y(J=}W_Y+nE@sg&Uu$U-ijGMFc|Hn#fX zZ}aJ|9;+KQm+a3<;vC@}5_s>h&{nGHsrKU*h4P?xzDG2aw5MG>koZP;`0JSUwAR{W zN9p3QU%PkKX2{3f%gwEsa*=5AogCyGfErAYe5?@Q*FZ2;+t!~yVEWD zO}_X4Ncnc@bNaCit;&M}v2`}d{dI9)ZxZTPyn?&p*?8$Vw+W|xLF(Mgw>E~`ypo;1 zC2(NL3P{*-vPT7e!51=^MmD% z-H*}_9q1Du955PE13E8-ddHiiiw6RdcWOj!c&Eg_b`#GLxfx<3{jKI~C_aP+TmM2r z8c{Td2vrnO@cx-o8oW_|x4KR2ph;=S#es{*G&mU-!%)lupJ}xYp`Ap0rft8WY#xGY zXn<@h;PCdIBL&&wcoRjwgp{_@*xR+jb*BwfUG50H59bNNXhXM;{3SL}7>X6(% z-5exH9uS-NFj9(fsmQaEqWB51047s4XflnPrjg2*227?Efi?=`NV;MEV~F6ffw1X? z=u14K2cRa|I2IZZ*g28s3{s=*Pnb-NBGI>s#n5EB)%Ht2w7w#FXfU|Zo?(5Z9uPH| z=7}-}VKh)q&O}04NX7mEvp?kV*4uzj9mEPAZPQZFj?c4tCy*@VxU+?@f zRCEP}tb|Y)*yahLFdrclMtDln3BpodP?3qVilgHhfEHcUfRcp~`0aaBRRpb6iAaoXxl~MAIbr-+(yRz2gz}ZNLMk8X_22Gvr0Iw1Sj0ff8}7o z1c-R9;RFcuxTo<8!?8|sGyv*fQrZQE@+UZyD`zFzACCq~@B(YS7)ivAD~M)XT937# zMHg8h*rY(j2fn~^rb!8x%mQ8s)Rd$s)cL)7YqGynKH@RG2ELq~A+KAchg?SX`plg#twR zeV{tgnEjLe1@ppG={FUE5P6d$QXsL6OXko_Z1_oB0TPCmmEaW|e*CBsp%{301<_WD zsA!(jt4KE!7YV!Dc2-9<7a*j4iDv_HY5z@+n>c|Umt%m@_MjXKR{WxeBxSLJfPN;h z5Qv2Fvf`oWajB~~OeBN3n=C1EnlH+*<3_bufbvsQ%w&L|ilqBCpXj@cq>BI}(+$sV zOe9?f`Jy_0yMQ+0k_$4Tk%^rP;=PQ{3RBkskIWGNA~tW3rt#q&Ka-%^C<;vLV*`}7 z%A2sQ4j_r3I9rIbiiON*^&4Rg7|RE2VR#G&_+C63r8zAY1SuS1(&OG1nu|pIu7@&# z(I|{V2b4=>KAJa-yklQFwV8qo!|8;2DTt$*J(lWWf$s~3pUXcfE!z@lG*(|F)>g5j&ACkY>z4CiL1}*k-_ZzW~Gt<@! zie(+4{rV}8?$@Ll^LkXZG@7r;^NSx0K+l*5ZptQFP>$%)l?&GB?=%#ipAxmJlk zv~J0K$wQ)HRpX$j$yM|9?{)WvgAR@b^v~AQD0bhl&NV~y&6n8Fh>gxKG}WIiS+w2h z>+Ks;_dR}jYW}6GTeW1ARK41?Cx`;=OTDVqd$i*Zt$lrnLu-0t^8APC_xPUwGhh(f z0wtMYc*2Gf5e15FF(I3>K+_X8{6Zr2LC{W=*6+Z1~ki}0ayoG1Ge z>ir<%%aA;`5N=|mLY=@)ifwI3rdxuo4P=x{otvFBA7(i zHF3z99o!4(KFwmJM8fP*;+RZ94TuJI%R40S6v~8|&J#m8K^hLw+(HBp9F@8fk9HZg z5Q4fySX9LL3ztJ-kSaWGt|V9vMVlRXYaVWyZ)^n@qCL_y>J{e&%GFb%{O0mp$_m06bDG5I4i zE((EGaDTz_{}zw=4?)&ey)9gM#%=}$$3&&dOu4Mcq94(2WZy68G#JaZ3{PaV5(_+v z%7K|yUa{`O%#Y#@W^7^b4{Z{*GKh>p7B4Sm+GTA2usUnio-o^;Cq6P@Rp2=vekKKY z{(3Wb8i*d4vOY=U9A5u&RQK(W)QFya@%W~mg&uL6_r9vF6gYXcx68)s{A#wfrzaoN z6Q9(f6)tBHEOA3*D6@NJed>M53!Cnz&NXlSqNeW|8`#|znQ1b9|BbZkttpT9)-6BB zw?nMWsiNYXa7M%HrY)AGH5|Gxc$dX*-;tH0o^W5qLMBv3;lrnpou?j4<(cb*8dcSG zcO9_zw_VyZ?xHiYYe*rps%CVjsQYgrpPI4(|BIZ9FVAa!_N6H}yHq8+mV4}#_`I+` zwD*U;_xO4=Ch{dMk-RaUeI-QWd+ofpclnQAlOFx)JveHZYtL;fTPh(q$~|P)eKvDZ zU%EB#@0`Y9U4`$$5wAi`jBhsmb0zD;i}i7AbcdcB15-X<7#AEeUb0b3I;zKl{<Rb;9+T8x^M5#^mj+wAiaY@7jml<8Izs{NJ1JKRzxuV64zw+*z)lQyH7& zEvM7ov{X^~;kU$!Lse3jYg&ihC3f4Yc3K%94XG<@=FDeyuQb|khbvhJU?W3OMY-xxWUF}l2*(047sk2cka1h zT^_ElGVjiZ(iZyKQbp~B9!EkA293tbrFinvPd7V;p9~AIw+Kt*Z7FLTp1Sb3n(qsY zv0frfDndt8+st9BOf$d|;co!Qjs}w~S#k~K((Jj|S0OqFbfD1{n2Q=IY(v!C-e7AN zaZy+O|N3)Q7>;4D25;=>A_;z_ic%EH4(fTSL5vgq7^@Ba>!E?KoCMmT)kaD-%BWWy z?x8aiGLLkj}{i-4Ye|Z=VASI;#&xR zc(T@1qBiM?emxMv(tw$a2K;XhXY4zfl+lR4A53I?hEitcL`U@3z$Q)gL*E0^@xT1~ zB>45gv*&X>Kt+j9C~lKZ%LB)LC3F3iT_Lj{Ivn_+|KrcC>h3vwdpE>3{@yx!{FaX9 zT^2{ev8j3V8!Hzi_T2PcXS2jZ;qmc{jk|IlPxC(9Jmb^qSgRKj$Jf=QO)BK%{X!7pi6 zT!PN0le^R%^s=W&O-(L+`(8M``bD3=^2{xV)?ROTBWGB2{^e5_R-r+@#H6q9hICVZ z6#H#bD1$M9qenMNbV(L+{&?Bobcf_TK95ly+YzcmAx@wZm_@@Uz~{_knTyqc;qRP| zy4nPGUNvCnRqV(ef%;@pmLra-Y)EH51N$d5bxvaH&G$5fsxsDjpU3CPmyD}g>0iUxYp?!P8CqA`GW zh55x-xlNGv@CK!cupV!jRg%9I5J6V2Hm*xvpYZJu?UpLWY7xvCBbg92QDc3CC1(+M zzJZTn)o?+LFVtF`h<3dY7HTMX_Rz*prdLhLnr|$#5jHHKHB?y4%M;{TLRWDEdjTrL z2$d+Ve`O2|nL6KBKj|nO$@cXF>y#6OHDV~sG?lCZbwbU9V5l2x#Sihs3B^LAZ~6L^F_&O1STQjuF65sAl~MK!I-BQA2TH9ER!o7 zUBhK&6E}bmRvysPS1`+)8`!(%pvQ(S^707LA|_sR`2Y~nNHtnB7)u23Amvw*V>E$J z^;z6a?j+zShWd>V(LO6#w3A%u87aAjwh1|(&CX@F{S$21a6|7ouv0yPGs$-r+6@St zM)R@yQ`p{UFVV+($;F*Ori-dV0ZIe3^6kSUat;?k6X}&?s0S5|Ph}jP4U~1lkweIv zmoQYb%xdh3pr>Ng-3)pPSbj$HA(3WjXPBYE;IR!v)aR~*XBI@eP;V3(2pbM~7vfOR z5z53zLI*5pa?-I0KQUrIzgB@8RAIBo7=5uoVZNC#Po+M8{K1Ca-`ZFb9~B2HzB-fH ztc(A>E9|I#Xf z`e2%e3?bnp1`Ht(p+Qe4UP$}8Ixx8@aK*;PRPD-oB8%_;!1P-u3#j?;V_M-O|*LRmf>@X%y$Yfb!fg0B?}JhEmH3c))g_u@gG|Gzge1@niyTCXG{u+ zd>Rc>%wxnl5|uk%i_wo0?eHjTJS%lGYb@fOnPPa+0o|V;S#7j4e<6rZ7Z8$ro`lFs&IZZjFXWwYv`_TV}7_$4q6uOYQtZg;Fh zB;E1mv8|5pEY2+28TmqY2T%OkF~hj3(x4lco7O#PSyoLK)bsD8udVQmZ&rDd5`SoM zNv(rfY|6>HvX!^G^#&}u>oR-gWWPau$y?TZ4fcM>rmn@gQT|&ds`=Zp738PCnu?2^ZO6&2+|`Ktklbc zV-YEZ1M|qU^eP!{&&*2a&2!i>Suu=fjQWP=+JYTxgA0)FcL#Z)OnfDtg+t&m+y2c} zd;xbA{|Xf{OJh!A#J5Z#T>A~*v4+Sfe6v82VaNo47g=Qf9=5PXZ4hOLX4nRAvZ(w7 zweKIWXAf&r!w4Ki08Y#%16$+_-Dgv-=PEklp)deHzI3@pl$g4df1kR|+pI}dJNr7E zh2emKxE?|2Vg!sTgMdLT@?i6iSzZg(r8THz0JlX)br}C6SOCqXUx2yPl6(6pZTOyl z<0w;7CEh-%VB?jc!Uf5!H^$s;(fJWyH+nprd$MH!q|{v4CWwa zf$=;*KFz#{+C`ar4@tEFI3QH)dIS}_isjVXLI)>&abZzigGUjSQrV^f1-L{vMxW4> z_5O7iwY;$wV*CV zF#b-{Ns+k3<)>Hp(7kKq@S@-g z4aKSpmGWpCeN`tLH_`TKK$s1*DWz2|zUBvO|iOj$r7&TP~zP-FD z)D(Q__HjBn~2P}{8}-!euk0sO;Hkg9NnGZ7J82N49ML+={E z*pXvw^>wf?8G1?a0%Ams(wm4OoY*ePr_+GSRUG!jQH5Nc45M(RmU?hva0-f9Zf0tgi3 z1rVQ*@B(MhN`cA$xs~F;{7-Hrh>HYKb-;{jYgk^a3@o?lz;f%!WVr=X5=#Fdcd*M2 zWHO`g$?uud2f@H+Mr%ms-q@ ztj$EQHdse5`R}dt30FV=t2No46HZJ_#1$IVi2-U%E?^QUw}*pK9L|H+oddVKf|e0< zyDviB?jw_0VeK&Uv97MC@9L2s_28yCeA%S>hxR!vG!dnnP|OgbeUSEPM`)k9QNBuc zlB!O*UKYEWc-Qk7ehSv3YDjVVDdve{Zs&W?bvkDaJ*RK_Ly z@^mGRRX&B3~}Q?jPH9(9^Ezqt*I(YOewU zw+Qn`33M-U7JhXixng^Ncq(9h91TSi9p3+;txG=stC_R+w(H0-%T$GOamkbwJ9lk( zSu(ZgcCMOHO{ebpZ}U$%R-gY!JG1PzpxoE*DfEz7k3PfBb-$~Bm$LFbNnQ1eM_qS0 zjLi7y_xs{I`hi!QU*6-Joa{BNuV;hD{5Lzs7mQT_mo3w>HM(~}l!E&;NY(&DE%T~5 zCT;!i$JxM+mLh|k4Y-Ppt=giSK{le8S{J2ofCm+>N4J3W3=r8?ibO$a7Ts6^&-ft# zl3d)O%M}TK!&hjrO}W!qwy>6Uxl3XR;vFV0;!=J>xQYMeH!cZ~Fal>RjAh%wd^K#t z6{nEkRXG%fs{)Z2Sk^^?$;8?SqcV;c6?S9AyCD5ar*^J=H(0dJ*0T1*wuz|p4!FEN zQFI@HD*DCi6d~mE_n#r`&aVxu z*Mdl@pM-suMBm^}Pach-B6kGc7)m{K5#6Lv}cW1%azp=z2`Q2;P&JM8BY15i|@~DqFP@UlYQ6 z3RB@EBynKYOm+IC@BhsRJi$K~GD9`bLJcndNKop0VfwDRYF}T@8=cq?cd?c4IKdMD zGzE~Ud+33zHLw(Oc61-eL1X`rIxs8#53NX6t<=?tm$zt%lIyJEhOTJD_8htv z*tY0QX24j|m1B1gEz^Fj^Rb0}TC}0l(C#(+yKlUYJo0|tW%Wb4+E;0}%%mbd&P|(Z z#|X+`r=F=3t>J`K|+tfD3jD9JqU7d*Vt%<;s5#TdG6o|S3;AZkVSBJ*=SoP7pYhUKD zH=L^L7-=Y!a&isvZi!2JS!FL9FysRYdu<@Y@oKIE0Q+#! zWr9(|mhZNNfw^HfYE=I(za`p_xiS)KzoS-u8}Uzgd}=}f24Z&(-1*9|3--!5} z8C(XX!T!JdElWZZHh&WqRR)dEXt1A$*g=31<36zQ7Jx?^tYl(!g8skxEo)^1cxDo7 zBQU&(*-Ls9cu5(R7W=2MypNM^8>Q5Md~p=Z=WO)qm@J>fS>SKUc$Z}3Er(6bRXr_7pp5!k5`HEZrbpw4`cnR{fS6naAFY`Hb=e zo>xvdz!5Q1X2T-&b#@j#0g*Z<;;--D_#-kbt%GNk_xEJcd!ov-3q@}XSau7AXFhqT zudsK;>zm8Y({)uh&XUs<_1!$8t8-R$>+KzMsh9VzuuTNZ%U`{+QDO-l+Ad4`kAgkP zKePoiT@t|>pEch*?KPVi=EReGWZ_CIj9dbI0*G9Kd;$<2+IIZ{@ggPoj@y(dCFbyC zkwd`0=KMnU;nuf;Y0Mf?klIolWUTUav<5DsX;6<9H1oFb8jwVQO9h`ZJ48PYgmU`m zSQjpLTJ!GVv)qNi`1FUi^2hEFunpKpNq`YNe(XN;!G0@{)0?y|!KfATsUtbYz;)-T%_I_DkfX683}S+*DwJ+JpQ#7}WM=b2>7&NJ{8f6q&#rzr%=S$j zOhY?@!EOT9%2<9Fmd(R_I6U}^lw7115{y<2z%mEWIQg(~)`k%S3T+&H*2V$FOxQ&+ z^E&S!Q!>293y)#BK>A(nHy;f8O1`#9mirt{K}T^t$@Lx zb{w_~Wmquuy!WmU2K+L;~z7LuUSLWrU4XgOp4z(#OllGCx326`+hyo>?2weiv0}3d^Xdzf` zf>m$8;gyGK9=A@qwTn2>34wFNfCTJy6H3@7bT(F9ZL#KYS z4N2Lt$14HlX_8nq~y?BK| zE(vHrgSpVuG-<|uA82&2^@DC;lI^NQu)ENx9+2FEOE7=~?G<8IJ)1^YLqSg>ZQY|d z+#Z19z|9B(#R*_Rt!R0ymr!o*(Vgu?6IW)!t^`GexTqJV`yjni7kAK-Z$3e>kOY&HImwg@1h#?Ed+tmO@5=N{T& zsR8#Pz{K+X(Z2k3Exf=Ug$y{gHU$tr#Tal}$=F6K8)aX6g7W}g97-#lx{@ucYsXeU z=(MTBZRz>w%IkNhseIQ6`n4{>OQu}M2Nlykxc*&&eMB|eAuGvYAipO}V$PUn%Bq^2 zwW4v7mGl)sRh9crNgvwBS0I%pZljoc>!_mU%KL*YouRFvMTS2M1Pxp>6pvdN3vE)4 z9+d~LS{MG%?pb$&#GZ7AS>kIpy|i1OUhccDhqM1xK9_UZnabsxoTe$C;B%5q&FgDU*s@vYNFLrx?|Y3A4~Vl{2&z8D7ARU$Nd{e zCsiyF%eTuL;U1MKPuVb@?>nPMGr{kCnK@TLpMCz)mwam94yG0U!>MT9Q()Nk_Nmmd zoK^+pm>DBGjC$T3%u}+dl0IH1!)sI^7?bn44Emv6v;|0dBqv7CN0(`qss(vdm%U@cR6h zPN%%|*Txvd>1dbGPl{O^zlv2J)o?lY@?GIAKh9_eCrOUWCQF9QmgQWwQ&a26{9w5J zIr}+Yk1Jd{Ji)CR+NUC)F|k>k0Y{{t)a(cq@t5~MloKrQf~iL#jsZ`9J#^d|o569{ z0ZqMn;lPkhnmK`*^_VcMYNi~1A(?o@SRk~#$bTK7CZKK4!@TmWV<4&P&0?=Nw)A<8l>r@C0Vo4-># z-ZrYbUf!ZP6eL&D;wf%iH861N(2SOcM^?T}q2GREc}jV={DPGxdR+&%pO4oNkV(*w z_E0Wr{C?L)Oq3pR-`_}tZa2_r?RY1JcT{HVwMtg)qV9@Y8-O60eExAwTy;_ILSc((o@+Dqjq`^C1rCH9MF%hhJ`#>bU@ zSa$PsmUw{k)ce|V?Jsl)T4t$MT$=T=ww(7~))D^`JgUc!T{!-^e)*(dqoGaOJIlW6 zotPKsA@X8bw0D3-*ZOtUktwl7YCK+oX^nh^ZCuZ6@}7003bV}D^R8_{9GOrvmG|etkHp& zffZ*N{!Os^e}@FkL@O^3>!F&?_r6mHcn2ElLmk&L@Uev-4En&a6q8;I z#+rx@nu1oJViD}9z%fJ=d2D?e@pc!SwtClL@SdpFb^^x*@Z_e}->8?4!W&Hhz<_~~ zLn(rLix_sHB$C4qF^D~JAY5z2q}ZMWY!{IEW~Gjb&_3YD3$}F4*y**cz}Wnn5#t_h zhPYE+t7~wJ4)M!wcU%8F%fiLY>hH!wFj^p%<$*xtsW#x7jD<8|Ga|>}WAWk8;kWG` zbok+YiXlA2{D}m;N+FLXAo1LpGVYPc__I;ro78S)+yN?Z`-~+spN=2L<<^wLp>Z!1 z!UvCg!4rRquP&OXY!Gv42KK(f#-58yPYr;S_( zO;`5~aD6Xdr57bdtB5>Dr- zq@f4&^8b^Dp_~VpqgX2W^8d{ViAAeG2n9pW4#P~?k37cQUoJ8HtPFIC<{rXQSqS=* z3FuEiEq_J==}$`FTb8Q}e$48?U=i7GrG`yk)VVv-!PkB~qu6k?>3KCC%Q6ZKic zo#p*cPrX6aeGlVZnze`?Md6x2$}FA-#zYPsbBH9}Gw`Lx+H3dK{ur+KIbT01e)qJk zG4@I=JuNH1V-Lk5|7VY)oX3Xsh+Gn~B7fnAbeU3X zo`XMNxdcuhLoo1E51I21#s5Rwd&hJ2|NsBbrjpV^vKorakdfJzBn_KT z$_ycUl|oiRC`4stKC?GbM#QtMXW3geS1JsF;(^>?V6MHzcdcJLN<^S@DoMeT z;%M*;rB4p{p@>+4H6(De+v&Wbu^MY6TorHZUi5W(qLHV;-kfaQy?6uDpV-IB99dmM zz^ehJYoeeet0cH&G=n(*O(Pk!3tt z#mIKK1c{;ft?&J-1>KwDt37`%@^=~Pq6gjAn@#sV@wTDZ^B=`YMo+M+`Fpe|d-dJ2 zM!qo)%jq;PSY{3fF^mrT&iDMk4%+}@+O8&8{&0@p~PxbNR>$Z zCtznJ82nz4{2rNC68zq7-0wlbA%c7ooD^Xx9l&cyG>N#9T__Z!40t@EOpr5>!*+^! zn=FZQ5mylk1&n}9h(zEB)>cWJktC&zfB!{Xm}ccK0*@l0NeNLOD29|oww$|~GZMr{ zDE|#w^@Vq+A)6(x$P(Vwld6p0(i!Gyydg)Bo_OL8eA zv1SYs^N{@VL2}2}U zN6$}4Y8o+R3!YGmbCKCi*Wlqd(hy{G#aOYP_Qmq%$V%2OSLjzqPk1U7W@&* zrF)D0rIH1+#-Ghw$Wl)jc%M1-z+Xdn)$j@0t07kPj;=`Ji#T z*r!`Tu&hpotGT&O?B>OwEM>$xj-dC*y-SZu`kI_}%oP1W)PEm-ckeb$ewJMISatA{ zsd~=z9n?Cv-$@S#N^+y;B|4UENAGn|W6G?fe3ykMrC&9RpyDKX<2RUQXeFI3KA{x# z9I5rBqHtmkJ=q-I`=fZPp@ZkdOzQ+|%SkaW&wZM0{Z_334|O&#>S8`kQT0%b+4so1 zdSr__IJ6CC{LnFXqk9>pGj;_YRrU6i#F_%s+c`!hLym)m^Wv`_f6P%fw1b64K>)-`*z@LCR!nS7gmrYYb8~ypbau#?$+#o`;x73L`L|9qMU(F3KT!#GI;w@43xXB0L1y}Td)n_a z@eWu8Iy5y!Iz3a9EW*%l>-_Kbe@yI5T$ zx${D`t?`IjOzN+k(c)##krjD01)VjE(o2cO`xk{Uyi>>unO)JQvgLbKvP_IjVq4aG z@oEfo9QHbRm3GTO(ss*_M^M5YE}vv_q)=m1}!ij1+(eHZ;2btWw{;x$WNFnYEV+2Q=) z>~2+W+sM-k=Ul!x*p9Y$9iHM#(f#e;V(#+6$kfoq{;=VT==HXrE;8F3AJd_8sV$+k zrfn51XBEPDBGrZ*w&lcQnz;+YkL)*+OxwMk>rAqJ^@mFMr5h=DNil(0FAaHe>7~o|+R6Ndp0j<;MmL>gdmK})9HiNk zF65MYp5txbHi04Sf)vl_P;usTE96{I4hMTsR)b1WVXIloA>;$EM;5_Fk0v;EG>xiz z4U$w$;yb_1X>h(NeAo$QZjdE|${AMp@ko~Fa1UXiZH0?~@I_<*uLDgdSfCLg+W})L zmd1ylY>5dqAaBE}^l$_(thSZ&&3)VnOiN$Khq-XG*}01`fxuVx1oqC8O^_s2e$6YF zu<#EWiZq!r(7Zt^T(V^%!gY~l)S3v_1+$mnbrQl87*{8@;$-t6(>S~~M9>sZ;DhnF znm%$G5q2F3j{j^jou~X?az!APTtsLDiaZ%;+jOll^0!<Yb?7~?JN6%}f5f;E zRM-NA&yrfWl0zlPKko?!UnuiLqA3Kb#1-ejiF@I~S2;A|3ugY4>ke1^@?VU5_&`_U zY6K!|3llfr|m zKHY}Tl|ijsgFSRP=<}=h%>;Z!3lIvf{EEcC)W5*ij1r?_(A~y<5~>jiNZ9}0x_k@R zIYEJ4BV4tF6$-x5d;<;X5U@s05DHR$w-xPNfqi|oMf4A1gXEDU%#&V?MpLudBLhb4 zBB7zvwfaw{eq91W5xsLqg4+^lIU1XVQKP6X#{#jjeos|>Z##o0gA2wJW1DW!>{kx` z+_pnBO{wn7r4zLdvAcOimQ&uD-L34Z^f=TsQ*_l1IX-c(d%K)j7L%9L^e%d@c$&V8 zRi7_pjB`1tTAkf(Pxaz|HwGRpu8hni(tUu}E}<1i_pzo7cx}P!0xhK{7KCpCS;vK2 zkon9@x5k%q#>{2D9y03q&8a`2pdBG!lF>N2?^ci^iZT(c_yc1hu^B;&fKDhU5%LR8gXq))1w80KTdM+p5l~^HzHtddPP)nxKJ` z`Az}|0*RqiG@m3{m=6lzk>{4ynUa=-09_8wofsR(MQ78;KOa7j(6Rz_bkqBh7C~s| zOTqQQqo;Voaq7B0=Z+{|xHaM?oHN*X>rnjW6I3};F1ZQiSXc`ojzx^#K^H=Z-mN4Z ztuO`R{APirp?k>OiEe~G_HUpgY#o9)4Q@wz3QvTlOChR=F7j-HX zvgRKf1P?j_#xAVOug|%TtU;C)|6_wFhT_mq6vP>X2EG(WwtWaV86lNqaPU~QC)_<) zn4*ei;z1k;I65JskA$TZ1ft^ks@wt@?11ExfCj6fFpt%PjY+)jkx*Eo#G5)GP*4=@ z)@BSfw5FDX7 z^ACYagD6lWCf%@6Amh&4&%xmUcwrc(9qHoYO$0&_BzrT%(Q2(8{Dez)R`Zxa?E_qa zz+p;8JX&!)(vS-_+O`#96T<{wsH_97Ap&+TQ=CZgaGQJYfO!}}xA_BS*x>|gfpjF1 z6!=)soI;iWqmTu{^-i!z@y6Km$DOc2_A4G~^2NZ}DaaKlxUy?}p0a7l?dMZNa zxe19`b?@Rtq!ipCctZy^auMTScP-X=<`dB|5 z-2Z`@bay}pWF}4gzqik!zqJo>^a4Gp_M}wC4yHv9sglAytV>`XCdJxN#t{hwBT)Cf zBDX;7KT!3P&h!ZO*@QDGYTY=Y**_*l*c1&p+|F)kSPO9K)4dU9rF-) z8>;2OnG`Kv5Spk2MR#Kr=ni>k6MMv!c|>|>5I~^xO;AxG%zFl&41HC&8Ag8;5Lk4&{aB<*A#ypF4+b`GZtV~yWS-1cMF)70wrK+AOluF**WO_ zOLLi;?ai<>?eKUGjkuZG#^pM+Q}T1Y zVC2S3@Rv@XvnsINRk5}%=khPRaSym+IQ}3$Dln-mMJ!6Z-je&O>CU+M*oNdM>pq|P zdEvsgE^arA2-W&*b9NE>cSVKXod#>XS|9CqV0Bm$((#twjhQUogwdl9c-`K9x<{$e zde0k?S023LkE?I_(mv~pn2~O}qLz1i@wtYXX;aM0;4y~1Ip*n_*)7+<4-P#4op;Z$ z@zL=h8B(+f_<77oqoVwwTq3olW=&NBJ zbPwqEEsgJf@U8d0?4TOYouhvcS{`f{o`25e^)m}e&8Oa-Hs26)Q1?dNoc8;^!FP1O^QLGO z3#Vj0Aa@Rl*rac%mA#ao?tYsKVSnJ3ie8ZWC)W6uVi31-Gg)LuOYd@GXi61+m%|`l z`yWuysc>y&>WNFSe!GQ@`diz#qQYAlNvOUP@$24H9aQ~b zd9M50*99Y|?XC}t4`I}MJ84?AzF`c?c51W^t9E~I`O!XM6Kclje;jq`KHyOO{Bn#* zfkCyI-*i-)$xpl6%q*5RmtL)DW0zW2_lYuJ)h!EG?DSn9vt`78+`5g4k+o-9F86$| z<$Vuj9wzpu(i7U5Z+jA(Dz8=avLosCNFAHI(h!0wbm2{%Ev|IFn8=(ZKqvF~cZzdk z>y?ZjO-K`y##ssOZ^GPSd}FuO$Kw5Ndn+ARy(+kAZeQcYoHgSd8hfkEMb?HLP)8F8-j8D&vR7Ly$dW(mQx#jCZl`qVq$w3g-trw zndF4nYGg-?r>>=WWVGi&4GkaQT$RuTD}6}xlami_sUFMCt`7-SF;zD~%1777KfjV( z?@_dv10H&R5KK-Iq9D#`PWv$I`pX76R(BKW5+{+qGXWys8Y90ORNk0Ie+!;s8|AjJ znsV(C{pk8c{297I$2cc_h+f5t%cWOw8xm2qZ|m#3CzvC`7L->`tUcwqr{rlBjct9L z`)&G`ubPRE7^Y;?taCqKmq{NO^s7~VX{0gI`vFN}9y|H2Fpp|+#DVu>%4*Ss(^i6? zAm1;Ad-UHUysO9Sp!pH1-Mk8{QTQTVoO`r@bA|qq_z?Y<+!)}2TEb2tFoB%_-esJ) zlTh9Z;u2P-!5v>K^jqGB+nT=r6+Tdj90KC#Xa5s%3p}TAS8;Hha22ofUfhBnR0sQM zfRO&E)bClWM&^Ia*OAE1@RhSKaq_Eetq=J+f$y(vcBDZH=ldf8=)tc%E3>H#UJ!Yb zNKFEIEnID?KS9w7iLbDVR;>7{QxrXuwAJ#j;X2ZGCnTZZItM6rjc+C`sE`s@sQU~y zrV?aoR3+L)7A>%%5ejS)Ly|=66#?W0qVwED0N8C{A|%oC5q}{V2&7>}m}zOKdG%2- z7l+xQ$R<2GiHJ=jM<*@*jlLCvSLdye&dF^Ay{Uk-H<9qk;M3!H^Gegh0QQ6B@z``@ z<;dXG0!q;E0y@!CNal57%PPgZ6c$6n`H_g(O5+!1ST7rq1_v@}NdQs#J+leIM^GgqJv0Is}gw0@Bu>zsaTN$XXvOiB4 z_6nIos;e%i+G%H3yl{>bg0*T^6Bn)PgCc`Kd6o~nnD16pTtil{^p5{qJK+dgaI6(C z=xmdD2ami}ym?o%bDw>#p8K3Q_OvFapGlS$r8OAms1yZjHYxKx)#O%0-VZ`B6_6NR zTc4#{uLa31O2Np(qw80Z7>+~%+1%=^DJ)8_0-xB$$A3wvWxxnVDHtG_`8Iur6!%1n zp+3xsBZmJ-Iurpl2DoJ@P02bqzA|E4Nv0?Q2@QPWQ=AE~doof|0uoiw zJ6}AP%E0;y&wc$cjXsW>%Ly>7<#~KsGd+_G5QQIkgxe1ZM8Qu$%7+9X@6f@1UqTI4 z2S(m}tMV?hu>x6G_So(H&$7qAIQd|DndvG&!fAF$-F%&P+w)W6;74b>fwGu^qA7_zlb|dF8C5Qc7`wcr7OY$_O zwvEli=6Z}@yQ6a_i1*7q(_zd;=IzhhYpwjJBzjUliZ6%9oHj`v);O1BvL3zNFvVQv zyY>;9)NHG^%3LaC>Sf(+TXb16gYrve8y07oRHXgi6tcGVgl{2N_$`jmaK73e2xV~C6ktFL(xG>OH6_*E@f}E#Xs~14%J7B&WhIsXkn!`rDx^?t-)+!Roi#p+Sy~sP)6uSrZQp zh%#h{URg11Tm&J$$be>-q3quVD4Iu+q-$~{V7~lwv8$-q7y{U|&Z>hWiNrEy;&CCi z60{^uI4%?w!6o$I$RE*fxM?ARHuU#0eyma2#|SM!^c#X@R>C<@6sM|?T^rc)m<4b! zI9Py7!I0D}bC;DE`~PBGUiSy_{bUBb3^{KC=tx+o8T19{itN?iwV>o$g_>kruHG88 z9HfO#d-exWEL*ShTV5z(GV<5H>Z5bQ81w?46QloyrNkL8;a#k+qgiyrHH}ZE~{UCaIHjTfu4wNxuPW#k*-HU4fY* z4ejQ#Yw_9?zkhPHs6$7Ft<;yDXWmHY2+u!#7`W*Z!fhk%1&`Vt3KvD|E9v{eVXR3MJL^F+bc|J3RSs3^%hPj^2leJZ;2Q~ zX&GeQ`%-c9UGQyf_j8HI&_ZUHY7aSUPo>{2YSg+}|CLqBDLrCnL7YFJW4@{Ap5tsb zI$uS@(Ek`_!=(0yt|(7y7Qu?1;jZh~?MKb-Z@BBd*4O%duT<5T_G=)@5(3z3c(Vfx zpXCxiwN&b3H$3AKuBn`#_;6$B#*uUGbcU6;fbs6mz2Gri8Qu}#m5KmWvY;Z8)Sn0j z3RWi`7S0mNrtrp)B{=aJS z0CWr1)Du_1FJiEyRTt_K|->;ob^B!C-#tE?k8uHW3AG z!^1h{Jl} zA2RA@*%TEx+K^fu(zla9!2Xy2hH7t2$y15M79^pO5$+|nQYQ_JGh8hY=qK|3roQ9R z#MI&HOrchx{N%a3W`*cZ^^NLFO#HIE|9zQJhGf?tDoSe%E@Qa6{Zv1O?rk4+aBpf$ z{h55t*mkQqjXzsRefehRfZ{q)&h@vtei}c;tm(dD!hZAmU9B3f>fevi=F%+-R{}1h z2JGF}79hgkiL!Fnb4JH{I-A+o`oHJjG$cOjfsBhwh`p|^@!|GPHDmPA(|r|kN`}oR zk_F|CQ`y+pItcH+mitfUy9Tzuo9|#|Qq1~BsN@>}hCUOhVMp*%wJBfIUw;to(2@@e z8G08u4%SvxXQx-N!_pKosTna(hRyn5Q&bg%EXZ97{uu&md7FNTRnws|b6c76zbi7@ zKfWbKaGGHQRK9q*6E^A-z)67r4wsjsz{! z>5}KCQV;|b8{mY&C^jiVTM)!jh!N92h$0;87LvySN7ea%ZVSm7uso=2gOleG18rjD zzmEh^9`a+WILGt@<=v59egT?zyz*{ue`wtw#5sTuBD5(Y?d&N&tgQ!7-6{w%766qa zTnU6$pXMV92H&>U_A}LnSn++|VzV?Ph2~h~dXEce0MytX(f|Sln@*jA4t8Q2DB=M{ zPmn1MK$n{?)GMT?rzEF&?I{q_L-dwNxx8SV-3L1fNdjeXGL9#XOaQhr83+7Sc!2W! zJg^PbcO_ej!@c9S7z*!qqp*m9g3(n8V*pqLVoI=ta4;5fb^)5Q(;!y2NZuM^{g$p} z$tz-dxUu32jTHdnQf-^A|C{b^6TU7@DTTe2o2#W}Pk>Jbvo5nOkn$YtfV@;7wg@0o zWD2ut%G}fyB0~;JZI)aBg9Q=*Quyv}OF{;~Ua4ZUB57c8xK4S0h*UAbaULux4M)v7 z%F~LcX5qRAM9yBRyQ@C|w+JcZ1baRNt=j_CT$0=Hqy)v<6Z{GnEXKxs~VCLusKMVZ{a!fu@wDLB0yD=>p4kq^R`ScwU{ z{}}rM?ijK|pX)F`f)s(QnFJM8(v}rjy~A&kwon8}z~&X!_e9JzWfLIXaPb-B|4Rjy zNEbZ@{X4qM+W?z^$KT;8WvT_&Bsb#ara4A}`*2+c0hR@+6Jg{a3oP><{Y1oBY?>Eu6;$ zbt^D^jAVP>`6EB;U0zQ9sREm*ZZkXGlk08vd8eu$>o=8{nJKZ7F=CK0aJEe=Ajgoy z!|o6mb|UtV!NiR1Vv5>RaRJ?y=Thvqy?kbWP*jNB#rV~R>V6L!H=zhU;fUBhd`1%c zt1a9H!qY`L6Q|l=T$H%+G{&pMwI<8iU#8|5z(SH=5tk3vcSXRTH=XOyIWl3Ragk(9 z;`7XK01}I0!g6hhi2`g)bp_T2%K<0o3W3Zv+hB_kkBbQ;vlU|jpcXpt7+ZzHhDFtp zP}l(7qXIH_jpKKIAv+6HE`_gFLVx~)$dZn><{w+PAYvG4p&;J-QC0Ql$3(&UQtHP~ zES@4lE>USMQ2!Qh?s`)V3mI<^#DmkcW3rYX=AxIvpj}z*q=fAt&pLl}slzpryZ*gg zSxi4mBbV@SLRD{tT*afXPQ}l^)0TUkxhqRh{~o=Sb)n+E(?}4!=j$H94K* z22)5)QJM>YOS>)Hhb0%ryqSD<)i3by@ACJUS|8|y-tx0IzJ+}-sJ_@T=2}I)d5poY z_x(w`r>S{o+!gCy4AWx)_P7!&jj*?+{K1FDYve*r#!+lVV$7+E7^RWB<-KIWJoFof zk1%tHcyC6~01xvwbKh3L<%A&Pe-KN?VgG)A7GMJIYOpQ_KfH<)>w5&w76_{kibRG$ zF%HmpLB_|kFPf|G8H9sZFG>9L@Ru|M`BhPR4TnwuX)5X62M(qyZaQ4@?IEz&P~gaW z=v(B#>|#BoezATty((^4D@vq(bYGOV@2p;;Zw#um@X!-t*9@ zkmOGVuMETHUf|w?bN%4z_YySZp_%WPi;20-9oW(Kt@l6-FyO!rJ6y&G-+l0kHggmf zDYa_z;7i?lv698)1rs+Pp_FH^qfHQY{5`0LtWgxnl~qGDl&marYZMNZkJZ@m9^T_z zp8GN0a3N2|(=1qgg%Jh#cMa6&VL=hx=DQ8+3d>c$N;59VnjHhh3VZRE*3@V85Ib6p`VRD!Balzh-7OJcL31V3JD! zCA-s6^>Oehlk~YQE~MyjEr+8YQfWSDfX5ky>y0E@M2JjKCT8wIGEKa^0-A>)aRc;} z7Y0vx4>k)kfg>%_Sf!DmYXA>?1?O}i)$AY> zM&emrILjL@^Oyp?Kad8B;H%n1Dvb0bbXB}f;>urbh~{{z8KlG84O8AJgm_S(2$)~j z`Qk--h<8*geH8|+T6Y+Bf*Gk+n(k zF!%o2z))${yoKADR;P~z-f39u6zsnIF}n6#Db2@q*@3pII?dTj8=Ep+Tp!Ff(M@Xy zOchjyrrXJDHXY2WFJww+{m$MJ9QQoOVkuQUOvJBs?EGZkFTEwrF}{ zH~4aK?H@#-f%zZA4XJB?5SJL}egv;l8@=Cs_mvZLqu)fMye{SjKd4$L8Ex|RXeGd* zvI#OW{nElkU``b{7T>^u?7b*8Ynt^-)R zq?U-2I&rc> z2&FM((uKlsc8>A&T?Qa}TF|Y|u zKVOBh)7aA#d}4gFF0G_8%B?eV-hG*Gk)dAtK%O)0rK0?W^#Sc`os#^8YFeL)(;tjF zUB}($-x8$ZKNmYi`<{*3C_jclRlJcl!9>I53B6Iu>p%(hbr(9CD($T9xbVE9J?-s>sob4Z2bt$2d1>gVGd`P$ zTRCNTn{;~?(WgW|Ym2@YBzHJGP@%On<%LR_D)MSfQ4I&3X}G*>M$trb_3z@&w_$$} zKKB%vK01~alf?HY8Dpb@QUnJE)G=tc%w8}Ple}l zy07ynGfkg`w$XxtOBpNmq|5_r)Z=1$pM{+@AM$r`Hr%k$k~PUtI;N=ZR^77+6hoNlRYhRYrF-*3#y(W?y~rtdp{j`neAkS@oi6cktU5aA8jYpxLc5p zFy^I+(1%OQpYpO66G}eWvuR(^*?{q!lf_KM8;QI6+`ts{Y_+P$KU=LBKU9Bx%iC)f z+?)rlroF3ZaEp)QuDT;*uHbk!Co6YqtU1S^w`gxOH}9!tiGxOSIoHofaBlf|1(v}>r**pyv4*C0ST2-%hz7-D$q;l1e z+WhR3OOcoWb>K|)q6BqcD}z*eW;OR$J)}90~D#aKj(Q>iFHens% zMsL-$WNr0qccRu$F~>Z9Pp9kXwn_Nc7>oa-k~^+!PPZ_DE&A~Z7^^dr`5d0Am+x27 zgtF=9?#!>S3JPF5$jBuW_FHd`6%!Q=!1m!zdycifjVbzi40FuyT+`-GQ%QluvAZYs z1ygrKiLOUyJ$}z6=4wRW>T^NEFz?OFCBh z0cL<5IcP~+tI7CoeSiK?2A^3^(fyBGRKAt(tCF$^v1g1Cl>>*ixX zWf`@nv|HY1!DRDibF&m?Tb^>C`{f?(eK)KE1@Cf?O!$dh)^Tb2gUD!UI~BC4qKJ!% zv1P=FQH8Y&9fL9GLb?}n^qRVstB9BhUpKj%$M?&Z+mtWy<qLew$VvubQN7kzL-qQ;`j0GhMEI zB&7FBqolAkl7*{+jjur=8E z198Eq!+WFHgH&9WM;xnpjq16$=Co=9R5$p4yc#S%?W4h7A~K%k92_{lV9`kaE$-yAg(}AXM z3w|zA%PS#`EWZmkT_-PG-+STao9s$1t^Lh=K-9J_QqSvA`S%kQx7SG;NYc=tc_yDmXiYZl zuJ;a7^%pN*{Bku&#o6Y2+r;Y^S5mHhlW$LG=1oH8Weg>9M^4K4FG@^toY`CAVQpfn zr#Q{JOE_cDBw>HB=jD?uTki=EL`K|ZEWf}v6imqax=DA#QBs2E^C(ai!#dzsz#P4f zNgZ_dcQae9uAZLDPWLwPKl0=YwQPaDGoX#?Y{dliWH{+9Te& zK&82@&H9wgZN3MoH;ak2j_6!*sdwE;^?~25L!en>i{l5H!}Ry%GLtPIu=b7%o}Yb> z+zzUxjqDB_FQ(UCJk!`0IPpxJWWUe;_Bo+1Yg*!j!u-r+^Dk>( zQpjFhs;cH|J|`uWxLyuXziVc;!3BMGq` z@QG3U17(FZmY7V8z+xb9zrW&|R;Dz;!*Lvk&a=R7;}D+8I2A0Y{lP}1A8Jno2m}CRF7+cl@UrvhKpnD;a4|YkCHYS zgmd50P$_sfg#G<$salU0*!jf_e76^!M;A51fhe{&dc-=1+fk&pK z1!ePaCABK<#^pLsW4COE&ruj&anVsO5`XRgZ~siQ<^zr>Nuc%-t}jRJdG(oGveUQ= z&KZ2+g&M5T!5W#R2|V+9*3+SLeDsXhHB)CqjE^z4H(N;sE1e6ZrQDL zpxgH`iHI`}Y%~MR8Nhf2OIQ{UMm|HVC_e)_&w+VkMVZheEL0o|NhotC<$(XOJrbhs zDA3=&iDR|HhCvoc<;kA0<}r%Ya*9v5PD9u=C8YKFnGwyJ@Mm_WDVM8$=3Op0@##3n zeZ-&`GF&*SHK@DuK{5YGKHFob+lDQgr3Q2BGq(tq4T#zoR$lD&i`XeA$tiqqs0n%X znBmDf#TezWXj_}_MkQ8ZsRwr7-c&Ot;b7R_84@y^Hd93EkcDiZPS@iA`TA-xee1Az zrbbHk(@x;Aa+aAj{{hib)#tLUg=XD&w`|ZQHZW@KXew=a=V|tBA z(+hL;80Q41OG_!4EL-H=B$DDMd8V1{g%%p+U#LGrY?DLWmk82vlKSCG6)5_IpQoxm z@A6}Tpj==TOabp^{JqjqQ&!8=`(r=p?GY8He~@69bNQ6~9lP-uM998%!TVmu^u}5> zyqVf9uzPg0YrJWuncF4&hy9Bpak~haCN7b@77bS~9i12BG8z1%rCsI^f3pUq7`ZT+ zihfL2f14ZGx8uOE$0-Ng-%|?(G)Q?Nb*E(9GR+yKLt4rMJN_W_ucyquwb{pBy-DT0 zWG~0V^6Oaz$6+08wd~1Hy{qeBRij4Vbl1o@EOe@L+B$#ll%+c5M|bk9?{AF}7rqCv*=(ickg3u3K`F74Kxu8eiK42M?n0%Ch;QxC+MCF5&| zapu;r7^&f_7J=VW8h)U|+J2-^sYE2io5ZE&>m&?-k1N>^Hkh-MvSl4R?6fy$)|duz zXJ48-gpyIIWWL3$8sEgk9r!cfJ?uoCoc_8U%+4QBKYPQTUC;Al8qL5ZsU>IP`j1N+ z2U-TT7il_cI(J@a@JxTC`*Ji8?JN;u9Fi8ThVi_Z+mOY59+}L?aI1Mbwa+4=>&X(A z3P{CaMWckIFi2m+u{c7+SN_5U)Xi8r_TEGHJ|nkcbk0ro<@<)I1enK4HMR~OJ+rG$ z_ti$Ru_qf$o2`RK#LpAdn!g=qemelK&5ED6;;WlNcZ;*^sMb4`GqcnFl{(+1&tr<- z>L{4cZ56EVy%^S>;-0rrKH(6bf&SHPE_x^}^w+gm6)R1F5AzLYe<_z|r680J2W^4J z7Yf>@C!L~;(8}>qI5yg#5f|2UZ1%W-9oL>8oT`5Hw%7NXWXMQ>Jt2NCo!un{6aFna zrT&k9ULR@x-L|7V9wqhd!25H7RdwGAx^sL_lv%dSAP+}}2&6Q0_K1vo!J+T~i zjs5;ymv|3x^GZz^$w{#1g@0vb7eH>%5L2&tVP%;;lir{2;!rK%%=er1>w+a_PR2t9 zVJ>-b>V@W|#!-$ZNAubbwC%ra&wPspt@j79b!%5GQ@5;Vp?!~nO{MJDS(AHDwSIY= zKNBa2+H;$VeYf@RRPiZoKqK0~;J>`{55m(0F=_I7POe91kJ>jBQ!sn^bRN(BpMp`5 z+!f2zP8%?>Qzq|Awn{Pq`jC+gD2yvSXg6=T#=4;7w$NcgwYyF|C#a<-I)r16zHs7{ z-KCM_t}f%LirSFjEtlDdr0?(^D%z>2(X`|t;!?Nx(_2nGb9BBzDY)g%f^8SFl6J$Q z<(KhU*Nwx6=bAWf>ev~4 zRM;KDKz}tuZVTV%BdTKym0i1no|w$kG0jD`90_T@%YLv=!j=<)Y35n%?!6Q{G_v`6 z`5%PMnELmuS|-bClpIHTTIc-=Nu|9BF-_wI#`P1aAvTV2nve_&xR1$3^NPUrfYg-` z3Oz?9=0Wc!7dDKj^3>Myg7y#b9|kf7-qG~#)7>?jYNd+l?<(1Br+9gaF9-P{?#CQD zNTXJ2I$2vQARB#_#`4>Z`wZ-XN4J>_M)}HQxq7&Wxl{vK6w+yzRC|FTedld?pO4!= z9oK!r{zTAr!$C3jwH6W7qaV5i)G!?G8gg$FWIV=VvPSfq#;m-vZgX9o6Vj@c*3mRv z{5mHo==J)^iK8s1^@fkkPOFaYUpN!x&$eNvbBqa@g^89ulhKG?f8JebQ(urp4ddF7 zHo?uPi+g_`#m_c5H(CS6?T6G=Utim*qGX(Ofe+QcWYlMVE-^(x$^Xh7in8gO0NVQ! z{ral?Vjk@cf>W6?dC$G>rZLw${5%S)qT%-%n$90U?i)u4A8#e-H}KBvE9v?CJl^z1 z>yGn$-grO^vT<6}La#PR2saF?cYACN{#d!np?Q&A^g%cLlOagz7tM-HDcR`OnwX*k4Q?gVI4I5rgIB+DeLPB z?0EkRFLW0M^X6s<$Leo|x&VrB{z;{b6Q>iK2P)#m`deQbID8H|>fLk7fb$CExGhnf zN*FBByumHE>&@#m>fR6bORepj{oQl_Th`fAl$Qm)0wyhm=;FlJ;5-O70F*-#oY}xz zz5oe4wLIVTbvZ$=f!0YR?rL1o1GdNjy6sqSlA_eAx@l0SjaA3+0(DFPR9XJ^`*nt} zvs;cmfLx0dU8oc~7S!Ld5iN4)D4oV1gl1NKw48Z_`iW|_T8TGYT{};*&%WpIoq44Y zo5TUU&{)I!A=vN^q%!C*JD=V`x5Zud-Qm|YHO}Tusl3W|P}=|1H}=`~4_lX!@u&tK zDug^sN|&g)91v=4Kr&N2%$&FF!65kw||*lUs!t$Z!#Isdu5luyxOupv@nlQB2N3 z=Q9J?3k#mT~6T=4ysw9&UJP@oHgMgMn8Ydwx-5=EVq?p zqCe7l?CpbZuv5=m*!9pHfrrh$&bP2QmXe33iWPPEj)#xHs(DRyXX>Ojn39Q^jY5gWBF*k@Q8YE!H$uZqSRQ&tsgC_3tkCypXx*S9zgt5WJj}Z zIU1>Xr7`}L@Gcdjx%}YJGp*jLw%K#}vMz$|%9|v4RF9eW$7Wv-GUDj}VV5(Cer<>D zo%m=cEo#?!E$oA0{WvnkNvPZ1OWD*k_PTq_!KC2UkQxIP4}sY+rAH|dhd1$bh?#!j zG1_xEX3hI6kpdImVCF2u3A(W*U{*~?)$NUmt)F-ggc>Fl@Q2$Lm}Y-(^^D~@n%Q5= zk>uiXVZ0`tk;I(41Nb~#-PMyvB${u(z&f%a6FcjY#Impv9?RN={|Z&%xbhKW)#d+a z@!%Aj%2ctx?j7M26?*UaYV-Eb>Peh3*9{;REPkP@T*30b zp6hle*`?Sq>stEZ-VZKYnvOl6DKb-FwazgbtL*feJiYzYIRwK0**#=hN-A!)ihP&~ z=5z234b4`>NIP5-RlhUgTzvM2+A_!M8gos;Hc_(q8JcmC@gm$C6zTL^eH0{;IAUjt zvW-flYuUEB)b7BT&s|uGmF9Nh&nvzz^dU4&-9-F!+ofV9i(j+@FVx1UI}1j)*(J)b z{y~^JZq@0XFC7!=cF7gywzKxnFcCen$3$H(mwS&VdtdJNBa&-Nj!=dDbZwpJDzE$) z)#5%eI+2>W@atH(oyvx@pOj^JtO{~#ZNj3;Xld*W=0q^6Jxtdnzm16Vd(DKGjER*U z)GE;7%@~(_SwMU7K`>Qw(Xdz>^4RAar~H&vGJB#qtA(`djJcTWE)AQ9)vEt!|INLa zDNv&JQMu-Bx{7;8qN+dl6O@7ecuAMZZ(57QZ-#eK7S6{U?rpV9`;{ZOK{a45u`BB8 ziFM6c+|x31MN2VGrag*Y%lk7hCaLPfth*+iW3!gy0#g?Z@}CR{-r(7`Cu#SmOA)@a z$YN<)JMbx3S+Z%7vB&vbgW2n3BbCsc9j%;7sv(DLxVA9!$yKtWUtFWo@MXF1MC7Z+ z@=sHdyx`3ICN>4n3ZAnLnW5iukUAd}qzx2$6qGaBwhf1cRU9_qRyR9yt4rVvukTzP z_u#~~ zSiakfeea=>=gu$nS&OWBufM;F4x5ZYl$XYr0`Kc8bF{Rr#&_RRS1uo>-L*5?o#%lfi>M8< zp6x-tbLxvp+tRx&n&qYpb5hZFywnRjyerEp4Y zdWe0@-q`50x?GZZ0#bcNofSb2=W^@vU}i|C3NtnzX?9LA7UsPaNC?>bNCU zm}ottJwrCje?zs%S&ba}+&!gk}wO z((0s@To;RR=^2p7OI~bmI1{U!b7A}_ZN|;~+k{b$D?>4QGxiyJ*}}aYp^+D+S;X=Z z{qKeSlF<1n+bn+Bnof0!9sTKh$)^oim;=_XjU{_z08l>ag%jQ3@S316dSXE6yg1dI z%=>|&07Qcc*e!vkxM{iOD6TF+``N1I>%@5=w#mQ~E-=b}wZ_Bmsn{152dDs8X%&_x z$o>mM*?(e1!y!D60w+-d-(Xmsvjlimm9{_4wBfT8t&?6!uS(co0H)-HM{z!+#faKP zoIsSSng!bbJX&L z3~D!`73WKW1?1pG43cx6tNT${~M)|aL$u(?J0H0mcx1FUn9@W^LzZ(=0$%6a=` zJ4ksAKaubxKSQAQg>S+qNa(C<8%^SdM)iwfx7VbzSl@i)T;BB?K z0i;Kj7H!O(wV4aXnEIOx)+pvnd^L;0$|0BM{v zfOPlt;HUs3-DSm8x>lr+u~nfq2kKy~bC-3;oLy$pWF}f4$ZzfbI zbViZZT|iZSeQB*&uyQy~xsAov7Fj@^YZZA4cUahK(|bTM53Ixqz)GA6zIu8=73L}x z50n^Oa6A%bDfXgX0mb}EU<+=vMOpRxta*It>rYn5N*s%?bAju3z)XN;1w-J(D7bWS z4!jLXUWW4ECR`Yyv;e+aMGlwOtRk9&?bb-hZf)s6V_>|9pO$V;@&5%= zI!^3Jln!{v0KV#QTWJ6%r-LGK3s&TEb9eAkNPZSzPFi7-Yqq9nq+I4c(5h$HsiryI7QswIuifCh|-Z-H&?=ex2}dcBKYKgL8Gndmm)MJT?3SF zl8P7nl;lA<+yv~%iLy{5-BUU2`@)i_+k+ZOv}HA+JPmo9V{3QG#p@J8d5H7AMfnQv zS2e&-tD#>O%Cg73PQpHU{qUN9_Q|8kX-dlNVCp5k&LZx*LLG-GCwq+b_RPq$&N6Dg z)!{a;%A?JW>)K4^+`pt|;rn#W5D1R9434SB8p-U{pKRzbnl#*N9XwTHv?m;$_dw6` zpsy=Jy z(Mn*+IOE)J-SP+FSAyK1WndmUyJY6fan@eP-|2KOFMnn6u7(+2J^4Tu?IEXjE@$3I zwJ|-WRDB_@ildv9f6;y(=5FE~vNZb-YV^xTK{#$LlPO&N0r6-qeaDKhS5u=G|3P$2 z5a2RELcXf>99!3d=kWmYsM8XFQU-egr}h)9Ih;EJqd&ykrqib-dtEl2F3cV>h^hY~-&0J`m+A&56^ap(0bwz0+SRi&JHG4>!aJmRpX-+4j1H|IVe%skB4`!Vow7qbn>M^> ztkQnLCO+Lr8}$V0Xnh3d8bB{!lL0)$>P=& zJ1XVL`A0mnuDeDYn*F45!!LM>Gz-a_wJHy?AK_9nFgr0@bs*c-p!1tS_rQzE&<|*h ztcbAGj6}_E!{|^^3HAfMYgIR?%Tbpo8c#_ON5~S0}1&maC|;e1+_|-)9S? zKHI$AlTlVsXVJ+aqcQvZjl5kTXMmm`Lix-dYN``dH?)yy^6e+hGeILwMI~FsSx@%Te%E`?wq5c<*Z?y6O~;2_trfg#JU6IK zRld8e<7d}no~?DV?*`aUu(VcL&fh{+HpjXT?Ih7HL6sx2S3CUfK_8`D5qG8Plgu7x zI3!srCHF2dXDDBj#w*xCcae?%k-b;Bd}hujKvTh)Kgx0{m8RZwOCH!Hr!7NnzH09j zFUhXQsGwfm@w4f|lru|x@o&-C_B!tu*Qu^3#crT)9WYWa5*HrS|1IShwQEQwt+PVM zYkBj#25ELD^~Rot8yO1+e%SP#ioJZ3U*^-k^OhUc(%7wQ9T`gbzjc0)*(fRZ3iG6X zXk55R=2A$V(IZ_Z&)^z~jEFQgfpwBofhIr1xwz`G4|H@S$C`y^ns)|@xVZ$dNG3kI zy*HRSp0lO)(|G=O4eq|jrt_pgFfe$OP}zrl1Osu=5ksl_@JNIU6Ba(?7{r$pDJYLp z{1=vdh^<~A{1Yis*sjk}ISh{F|MFR;X3|SgT;R0JUr@Aho0ludY}y~$R3>?jvDZ3? zBX=L`@h;W=sIrNN+Ps*DT~WIiPd${)Z?rb0UT&F_uP_ZqJ8e^De)>8)*IY|=1U=>& z4b}jcYod1F(aR2ZYPl1`uE%?DZOnG5D!SU`(vodACM!qLujKAkjE+2&wUvtfyl<1* zKHt|=VD()!(%IyPp@HyGb%(O*I zXD=KAC{~;N8A<>5%bPHvQwwv?Cl!5N4h_*4@6MTQ51k8n`R2@%;VDl}nkQ|U;V&Oo zBUuWf3Wg8}#70CcGIB6Url)!-P>#KTy>KF_z**BE>tR_TSLm@{5ieWQb=;)wmeT$p z418#xbZ(wC5D}E?Dca9Ecs4K1G=u$qlI|abqlAO?OsR16!cM0v%`W^dwH>?Bg(p3m zzOq*I=*kH_*Q}Xlk{s8473GA^);#B%!`*-EMvQ4|i4R!yL3+6AcQP32q|N&mAIC^k zw0vaUGZ`0^sA;TmsHpZ+M4{-B{mSkxMl9YRH(%b|6=91s*m5C`f3qsBf=EyAu|P#d z4~+?%ekxNJ)<>6ED|aSVo;{S>+@Rmt{ZqOI<32?ti@DLAAUtLxx4%IzL@XwRz3rOg z1{&E{b&6Sb27V=7uXL!LSW?@JhLT%HjCKc{)o!8|Jr%*{1Ps5-4^_;2M$sBm`j*irQ>EM~pQrB-m@1+q9 z$>#j`-ty0`p-X=3njy@qF%zvlMKg{=w}NNdCTYJb&Z(v^MbG$5{C}*ybzGF));~Oo ziV7A=m$!gO8-Pd}Hy|Kg(hAa2B3&vLD4?XY3W&5)1JY8`($WnQL#KqleN8bl=sD+k zKkxs;W?yTsy>@-W+k`2ofYKsH+O!L6;u&md_j_-(c)CzC!>zWqcCFINxk=aq#HzWt`}yDzu$LEWy*N! z#AsJD?L_T6*ilS1_K6;#qmQ~%ueuES23f^B`d6i;aE(zOdtW;@P<)aufjEZdY)7yd zvEKT%!~S41P}9*B%Ne%9)Wjisy!*|F@>83@2l%8REGoFRySc%bVYjvvqZsy?bxIbEtN|eR1Xb{}~og1oC z<=Goyte|z@=NxVA$-tximP}-etVAMv-Hy%qEo;nLRmh*8*ka?%3K+TDVz666ktRqn zE2n}s`@l)taz~F6kH;3X#>*>n)))UBcZNS|TPEV{D6^5ZvdXQ1DL zrR$fzMp*E%varYpF$cgi@|6qH?3)}u*U1w-kMVh-IPxJmDBP_2mzJDP*3T}jXi3+T ztDh;$*79#3>=HNUf0)t`cm32W0k=1umET`Uh&yw+Uw72y@fBs9tMuKtHVfAYZokp8 zbxN;G%XCYFzkT8QLQJkeS>7JSR|kqGyW2Bd$u`p&`*})9xOfIxMt;Ly3hUXXP4ch2 zW+{$VSor6aB!#-b{@OT)g?32|9SRuNb+csbhx*_qM1~|T4tt_o0YlFRI0P1 zYjwn_@wRYF+UmAR%P_935w|R{t0rk|n_*jmJcwhn6M7VtF*0w4mSW&*a)qq2oVJmfwX)(En4WE?l9P^ zBuhigFyQqb3P&jn0_<@@VpbUDtru)*z!jsK3EDAyE!^=6RFyvv>p6!dX(XZ_&4C0x zT5KE%vHp8=n5W~{Lo;-ydWT$TlN_V9g5EXV&pA|H`+OJsgNGH@={HRlPb(?B2+Wqe zBJS8eH3n?W%$I{3H^h@x-K$sRnt6T1?~jBilhD>z@LHE#5pv%;D{tj2@B15;nf9dc zC|A(qLgq$9*4j+Udl!zXdrB0qUE6N$?|5EwmQzx0DV5tt`^1P`re>gnRzX_&r6m22 z-(x4`bSJhlMIPaWtI&C~VB<=XqwTU=*wB?XS5l=?OszG}zP!F=u2Vs2#z6f{;nKJ+ z%N*m@LHdtrWrxT-p1D&Ow24xmj{T=)>Bm%0T+7H0s`9&xyH2RogG(P+$X(|dDZ&p%HcYmWOKa%e5R#%+`EawI70 zezQ`zN6nc@D^UwFdj|{gwVT~`g0F%ZyqEnQWVzbHmo_~5>4~TK)+Jn}=k&@V^#;Vs zNG=&gU&$=`venr_mo?H`lQXDl=}D4X;nYA68=F437E-QxV3r3_I{S4&5)Myq&X;;S zNkREp;w?1;Kjn?p%00PP<(x(f!xC$m6W7@%4szS%Ww$E@YPIL-M*6Es#(SzV$@nMb z2Zv1KQ}wiG%KW@&7{B@*lphp3CfD{wHve@c??mqW$|r@&*Tt-?o$x6PS_A`!NDKDp zf4>sO<0VRZ(^WX9H72{=RW)@y+dla9*1WxZmW1J}lT%*7RmDFq)Y;zpRHRdO?eIu- z?9_<)d}?}jNP6q!_s;w{8YLTh`^Jov)sA&zN1g%kKF|Agf}>sKf_>gR$p}R9RI22( z#q`0cFRvchP?Pe5Wl;FOz^{Wv{EW+L1*@#HS8H_Ubm~Um4Z`OxK3mMu-E5P9XS`5; zR-?jRySu-i=hl%FH_5r?<>A%avpfnGr`J_!+KNt8kynI&c>Paix6K!a_0L1T2YSAN zhxs^l5}D&q;?;TL+01!+B8Nk`qPf!Or-D)!3sY;npPs7@NYlB;?KNX1JH2j|9rAr; z5?|sjt-+O=WiKnC+J z0EDLe)%YR#6P0s}rJ~%yE?$`i7Pj=|3qsmL)kdUJ1}io+{V<{Sy_|cUb2J9;zwlgn z$7&k8Sj3Yg-IdgnM16Zf&@u7#lQT0eeGS#Z@gJLYL* z<@jCw)QpfVoA2K9wXp9CInd&-q#{l|r+2JttD=v}UDWZmtLl&y&FaeuwO>+2&F<~a zclPx^t(Dpji{Cp}DWM=B>|!;=H!J8t_Cn0J_gp*6+(oaf=&Y>x&J`hz_=v{a8gKe{ zQNwomg^QRY1e*%9CG<4Df30f{y2!#BH@s|~mOGLUx0esPEzEbfLfY=mc)4z)y!vRL zWzEc#yXuDaW{|7REPO!nK_Ppuo*BcrRnIsx{?l469WdXoJ!zw7?WoO6Nqbpnk2%+2qJCDs5< z>7sUP|C=vtn?}sk+JmafD^@bqd53DK%DK22HI%B8)Uf*>9fmU4=zg=N|C{fVK_3x$I`$oY|gk2gRSAfnj$M zw9k}ksz2Q>A>GeJFVqeaC)0T2gkH%n_#->L{ib0Q@7v*(Q#3v!HK)2vN4%Iu_k`$w z9D|YGa&E8gOSdX(@QFU)%9LEv&mqLz9NU7hb4szit(Mb5KH}T`H7?`xbwgq9>HcMo zLm_MfV=v0ve5eGP@2_=whle|~PR1(Pr>BSTrqJIoGv>Xmdw%&vhroyYt|Ip;*5SyG z$!G@m6J{Qneh81DKGIIjp3P@6riU%!=Q~|W3{Sjz`8spgD|drQJuO$_&8My`v(aS- z1`Bj2Jjflh8lqX2-xBE?Q5#n=XIOGx`9>td;jyebtM0RSVUDPrLG)8b6Wb7q1F_O!~MW=4=r^caguRH&`)U>eOtg z9KBR~Q0KjSQavmVE?KR8T16Zz25kA~;>Em=mz~~icPE3NLv*2xr8KB3!marSo^Y3(`^p=OeV{zmXDz>p~*Ocy~2Sithey*I`HdBJ%u? zzP>J6DXYgaV^f{gXUphrovUoiZyzk0YL0W9S#}B-kc$KZ9-Vuv%2`uB_v|Zwbz zIbT^9RdVk*D*4Xl72}P@CYe+pv&f|{ZDZs&=nqEJRn&b*&9rx!$m-Km9(7|}7MoT7 z8vV$f|9fT)OToI47grw1D`qu+fym&?Io~YC1gh4P`oap<54zrIEM(nk*gD>v{G&8! z)k6l}oR&gG7avG^ecLSIb*rQW*dgx-E%Yv=Si?)@Oyzcqo zgppNm6_d_${sCrPaY+sZGfu4S2`ge19&1d!f`AhV_+ncD1vX;)@)_fSdxZ3=$GZt@ zNs*MkC%lVgAL*FfLiuxuzeF6H<{0gx*=iL#R%9aMV*rXSX(oa}=)lIME|U3-%GJ^AhKD^J&MU1=yfF{1f+mV`vi z+di5@zTYO@a-w(MG_D}aR7dZo7PjuJ%9KP5Zpxgia{iahOc<(`ez(#IqV*Qg+M;llP8s`u^YEeqy=IBK33ske_sc z_EEd0W#x}O0^|D^y?eUyED`YG?CX6bp1)G0{gqY>&ADGoX^lBJtZ+XRKcV(47L&HF z$h7?pTS_zoy83D073z7Y6id;|KO`g$J2J5i^||%9+OQx=W%$iPL_Xm11GV}R zr&S~m5R>NHoX5mv+$UksD0~2I&H{LRkoM~ZtahZT3+@Xz`d#ra9YB8;ssji*q=f>K zEVm!6M%oZ!jOH?`0@oVIUFHt*VI9?M9ky8%nNbL>jh2LRmx(#84PN=}Q5F%{`74i- zTFfb)oPkuxfWZx+1qNZW7>*>i3pF@T@5s9ju#q2Mc}!HhW^ae4{DDzOVj-~Bz_trf z^MKeUhWH4&n;Zgg6}ZkCyh!TkPKqL^I5=;rXa#>v7;q_nfYS;3tGL|<^esN-2!N&L zZO389J11r+W(WwNkjsNM0^g$ma|R(~btXY?kJyh(LgE!r9#cDclE|PDK0Exq!#nLD zko-GP%n5jspzy0m*+GeZPsW3~6ZMGur;i&Gi-T(V&et2vC}X9;h|&sef2lw#$_@t$ zbf)bfG(xFX^_O0hVnfXDTe#MM9J`$_ZRpP<5cg^V2gg6WjiQpmk`bE}nUH85Db!~b zng6XD1Kwd!Zo;*o+{AH=_zz918lnt6^ufeSLzW42VptDg=)Op0I7sxYE%Cip3YgI~ z!N7e6KRpjKV^R(o4`fFYli}ij>xV>lO%8f` zdQW|fvznZvpSm?(c(5t6z)VC}U@Tn8w~BWuH#f)M_-I0p-lm*X!!!+Bpjye(}cFjAPKR z3VXfTkKywkn}NQ0V_}T|XP0zjt{#NoPclya!Ji@;%(p+Tj4i}hRsvkDmd-|8X61gM3ZY?IO`H#7LWGLLk43^Kg4qNx$4u~*c4XK-p)bbX=CoI1i_kjp`L zGe}tdL%NpMYT?!vuxr1(TZY>I%mXGa_%67!XSaGH=&i)e9lvGyxqA;ei5fCxhaWKS zv+KXLu-a}Y{N?_ffV04aJ3=DBPgmFB0GqvolA7#z%F?C8_9tfK1_I+2c?sMFUy_^{ z^w#%*$Gq?XKi^)lwyl%Wb`&}cHPSM354;U-R$qM!6IB@+X^?YXSe)@G++*5z)SYu& zl&!6;S)u7JZ+nKIPA$W&;Hy*DB4%MdYu+=9mqymf(?xO>8k2}`+y288EmbQ9f+pmW^XGf zIlE@*CtR^*4=-4*b%hHF7Zl|)bOTmLJSB>#f@KFESA_79jevsyGLs&enQA-#I|*dC z2pQOYTQ2~Hiz*09mhNb08t1VZ$&dv7?&o6Jy zy4bc)dPfi%yX5NZ&%auxrxLc_>G7^&_OoN0cVQwo|B~s}V;ujTo_HkHF$jR<@dx#b zZ!we#K$Z}d3Tc!rfKS0gx>`Ck3Lp9nJ7J>fo|<;s!qi~w!DjeeDICVTFrN?5*~s2QV1vE`_Wb zHaw>dHZ&a!Xz`<{Q|$jppXjny%TX#-e8(mosC2J&&1XBy(V|oU`DN>5Ib$-RssB#d z^6GDxQ!dhoo`B2xW1Kb3$HOe`;mlmxvj1%TYpWF9pYyto`dUu4WamqHrG%=<6mnQ( zc2!tA_P76dgrb;Y`2#`PRJ92Xn^E8uS}eC$QMmlZSU_}Mluh*4_ey2r9vQ0l`_w6o zEfe?>zf5FF?z>3Bsly^ATdt$ql^K;dQKw^STUSWzx*O4o1UFygU+f10gfxAAJiYA-`7J!tY2yAJX@NBAoYXaUGGK1! zqRfBpw=`1A>$_W7cfFZA{7^&qb9#$#|_sl;?jAIXw4%P5=r~n z)KzUBI3G4g46sw*xYF|N#JL;uyXp^%2#5u_t8KMK9hyrk*6Z|;X%jxi@OGI&xaD@B zX}c2JqlsT^U&5An13|mY56i-vW z={a*yUwf}FpZ^s&i}Op{uwP+0(l=}Go|CiWI8HTR&U*SoL=5lNiTAOY0joi|Dp}^= z;(ZgY=C6%c{S5N|qINHD+%PL|G51%3Ny*FAH$W^C=^_Z}s-<2V2q_cc8MN|TEF${} zq(4o5cE%c+oBxP8ll>;DuB=WFivGWszbBAboabtzh@nmp~<@=Gj}DJrn!lB9*IsQ|c5dP6 z?)LT%UT}}xC_fVdvA9(E!I^Tdi~W6%EQJ-5D&|ewn#JjQwb+Byt@Cn+UXC%emQMn= z3Ww6)uzedh^Jgh?Q^$YVCmagz%TMo-c>d649nL(!XsJaixx4VvX1a%27f+|;0HvQW zaeu?%zKQH$%Fptw&;KdOxPJ1!+emItZcvNGw~FQ{$HmznZ2D#uks5*u0qWtJ;v#V= z0rTy>&KwypD1GDPBK#9-xRmS*B8$?L7hg!WCNFKCu2F8DX3G1N|Ad=s`qZr|=DY8L z0)6+N^bE_E+b6%f&|@=bi{DX9XZ6x-!{yJdgW+1gVUO*r)aCWbjE|M1ONigKJg6Ta zWb2cgYC8l+MD-m?7C!RP(dFw(6fn5_*I}^t+Y@gM-J|cWTa=w4EsHw96lb6rl2I;0 zLf`D)8W*b*+hs2$iQu2gDy&#K*TQx!N=a|F?)2tyvrWHPVUd)Zj*rS`GV3I`lpg})R4E~x|!lCG8f)2Up8}a{EK1hhquBk4C()-SCsz~ zFg2YQ$RH4D-dQs%5CK?5nrWPYWAvtljy)o7Kl{XulbU5|1wO3>2`-+T;EiW7=Tb$u z(TvAr7<+A8n-k3&=f+2VeL}uyD(B$+N%hBPTf?M}jSdF|*rzK6 z-tBs+nrqo&*(}vPpD?m`fmB>lqwuEboldR7wu0c`f}qZ<`qP#DV~>U!7ZIlp(RA?k zFey?l2fs@26|f|?KHOR?Vmq!gqL7^zZjje0z;#X`0dB2*Botaqifct1*yev7g9CvJ zNR4Igog7$~ywychBWdoZO$`REb6CK;T}#)M^>j`2GX17H61%kBqK+WK*GZmUBB}}7 z(|zFQz81@@sVL6X&Hf|AjwCndf@ZvV*B0s7)w6SQ(j$$NIOLRW?#!?Le1EQa(QSd8}h4a;Wr;afM)iOp-`^*gL*8WJ1qSM9{&e>G?8 zmjnz^r?{CcW+=Arrw5Vy1xG*GMx{!X(5{;g7uOw!ShCqOjj1`~UR{#jjI=`B%ouN@PsXzRF2{FAhh_7v&I@8q;wmO}XR zTZXfB5$z&b4vMWkKdN=Rj*BH4nD(A8OsX;OGGF`+6FH){`DKcaWTs5+nig}??oVMz9 z$-@&_(mbK!CTmme7tgO`>K*(dHCd3-?p339z9=(|zd!i3rg@^}`qW})gU<3CV@Kuk zt?z}zrZmpitl?oFqAmCyIvRA5C4HkCVzRO9%J?2OBD%+sLw?m|UCveeduGwujxI-+ zf7us~>b&3^A}iY!5HS8jy(t(@7OJ7!{n4J2+U5xr-9<5%afIIfjr())Ws$@{cRB6p z7X7$HyVhKNNUZ61bBFV9X`KJ%7H(JF;-k&`G7D44>A_YZe&8aICBMtR8}VR%np5jIoPhbf&noZq(D_pr$ zB7d4-h2o&m%ivoBcTQilXI|=?0y3T?8+5aNPwie5ST?1DHO9gH@SOYZF z7Uq6b6(3;TcGPg z$#q#lT3iB#8>+5uJD1@oF`#TIp@Uo<&PEFILkFaxx^zhwN!kycAM+gc7O#azFO*}( zFIa#HO)Nu^B=7?n#@$^8gaNRDyi9_>yMbKMm7b0ox)d+h{%aL@4zbx^yfV2|euHoU z0+gr3ueg3=3_!OEp#PD!a!BVEq-d7HZcTEd+}*hT*{(sU+T&ZatG{9E|C(keQA9e} z&Ca*Yw^13)uOut>c+p#*o6mebwmG18v$I>;(9q@HyC2YL_?C6|=FA5d^|3UB;#`3A zs_eSjYTKkrdSOm(TOqB?d(&mL#%ICiUU9o5_dIyJPhZ}UZ+iH?F`nB-qqw-toDC3kK3*=>4m?H=ztP)I#4xD~`dX?5bKpy6VpRPCdY_vfX{ zKb=1i@UTU{@Ld}3X5{;5XTyJhl+7?CEJYG@f-=#N(D16*)txYA1HzZc>_)FF0J?Ujk4_2xCCc(3xAv-?+Bya;M5cbJ4P}FbnIafY-YAyd?dM)_W)~J`7=j(AkLuhZl}^(b9yB>Y=-lJ#O{HNTYDTO&#sv zD2RDkm!)Vw-Su$cqL^M&GR7?uu!A;G>^_vq4*;!sUA6;iZKwg^#bHk(`=Pb-0|GCe zPwL&5t$%F(sYp>i6~m_UQl(iahEWM@UXf03CV*N4BwDb>c9KO%;>*s|KWhvr9O8Ze zB9-OB`GUMN_TAJr^Dht6Mi(qLn1TCKytdF9E%-Fi9TeQl2h2*Mh9KqjJ&^4>4>WZZ z;CbP9Q-Mr9^_SVJ>aLRUk>^EYF zo{i1ejYqWt7eUY#%Ha!)3EGE^fJX}gM8I@|rr5T8W(cZu_S9voyGZRbf=Z_aR65hf z)qvyF2mCpvfOPl)oELmXr=>m)ZE_qco>5rC^q3LM6ie47{zD4k(@jw+g#9X_KU0H) zlSwcUY6x^KY6lvm(rtsv7dX1opIMZIFoHR@Hrf8cMFm(tLi{q6e9Sgi5fa5gaTRp| zw{V*a_!3nzV8MUzo>$?T9_>O;GJc#%_7|@)6uA)HAew?VTnJs3fms2|{?k8rmm72^ z|IpnZ*eZmZM7f+cC~_#;x(3|S1M9oxskM6`CjkeKup4A}O0lRify$x`XqJI2G66A) z0MiU(Hii_k0YwePQ`}|-Z`A?F6XhNp-CR+{`QI=gF|11BlAB#SV={EX z0_>l%!TzbCeGw|v+qC75zw&}Hyix@4Pjdk*ZW1t$cV>}vy6(R0yG$dbE*_5je(t#q z+V%;-kOvZOM&eNL{88Rzcnot(Mr1F*7u?AOl@uwpdS=Z7S*o+jJ{YNI8>)jeva06y zWsJ&gxUr12^n)7vwS!@9O%Ni?NP#iH)wKPOAu7Slv>XpZ$SECZS;vDrnZzgPq5IW2r(aHP*;UOLqsuF(ynS zTfi*DkjrYYWXWAz(0>3IX2}1bhtzRaJ@huoOZKHA!%22KR zk6cbL_83RDZPqO)7o>j;Qab-N?!G_^Ix!L3s8ECwpx_~AF4A-gOXfuK9wDDV>#b67 zivVn2%ZiKxiK%fXTNBPl=uNJIdqXHnJ=iFjtoe!NZh}P(>4t_ZZz#?(l7vstAU*>R z>IVffSFw7=$jK0Rkt`YhFy+nTyU6oE<4pUdN#EA<7=|&*CQ9!Ew5-8FYW6K_EEJ(q z6Ot;xx8i$1Fwm&UfJ`NZj-WetpXwBy=@f8x9uv9H37PwCdsu-n+>5kk#%~Zy=0piP z0JkcZBqEl2;4`944y37*a4J$gs7Nbas>dx6d6KnGOAQ0wpV~PIG841(LnKv9ix+_n zBi7T)8CjBwt04XJkiFL-ac0!QL+hoc^}Vewi}p+-I2Lq@{2CLn>4dhAkh>o`(}557 zPG2_U{!tUdbAN{7&F|L4q^pwXSalI1AIrw=6~eX^u?S%4qE^DyVcr zQQzh*BM(m(gs)A_`(SOtaKjW0$j)GOqtQyfVR#BX5J*Y)xI<-0d_T>NI(-7~bgh?U zx`3iFlm*UD4S@6-<5~ujYS0JUJ z-BPBNxglw~B$Mz(q1d}rwZ;!h!mW2*N%)dgot?m_)2PQY5uHVmWSa0ZM8@O2WW07| zEY)KB!@7!3+&?(eHLLPrOk6AW+16K>P8GgQGEFN;%cug)16c6(!|QokEKuLsoP&BekD+n zQswv5oy)zw_n+6neP!;9MJ=wPS9`8XpQUgZqP=PSh+|U7>Hz~;vz0Itf4G%sIOEgP zVT0AZz4EW4w5`rt?t#lI>b9AN%eK6uqh}tIK9R!8YGH8Tbf87L+nwfgIWB(JAY=)I8dV1D$T9Z?1#!^zuFU+%+FFW^5ZO%!SHn_!h^OVl)cWfISyZ-#$!iTEo z)$jbOiKh*w&T220yFUc5fopc2sjHL&l@Be#sAhx>29x$vHYi<{r1hfC8S?yOP-vdA zS>#H58&D&|%UAq=@bxCeb$U(R@wzDOGg_Ie{>Zxc9Arh4QMaq$zz@ z0!O$_b>dIw{iwDH-YauR&2*uI6=40p^r>|gte6-0wdkBDe?;kHV6t3zKnzJhQD-lR z*>?dN+mpj?z0q7Z(*i`loq6vK14;0~4RCY=1M*h==%7@=v7uT7HdIK!ks1LtQzLO1 z|0N$~AkdMB(!^#)CzL91CBl7`M`^V0;4C5?nxHqfON_ShHE3`nVA_QH{H5I_Md6r2MuXaU=wKRYT5+G!TvA7`_4;RdF(6Y_{uW>?c~#gj^E1dGOI#dxnmNPID)CntRto3k`W&M z@S1B6Z<(;E1!X18Id$CIk{qp^%38l~(nnf&0wi92c>kvS&4TQ_XE*X&_f*j*lXdr| zvx(fC?SV~*04I|tx)<{23Ime6dy@~aL}j?dzkP62ILGiz>~M5AQP|pxlD^MAb?~Y9 zM8{JVREsbJX=Py;> zJI;0KeYlnS@a;L(f6mApXQk>WP|dVYckT4zs7M1@|MIsP)vaS&-PwA3 zPq&lR*V!Fd64C9f7d}_W&QTku-o-Dn6fs;auw3J+?L;aqOdSKxD2xIDM;S^DGfqD4- z+|-~ojd|WUJ;73i<-*}+*J^|iM|qZUL1eqQ`?9Fys@q)Zksl#9=isF&L~;dfuGg#v zO<2RPXS}GBx-EEjm*)-jkwZe(#g<>AE2Hu@leaj`wocEnK5KYzEBt1Qu)0CA&exZX zv1gbbcXd_fk!pmUm3ehfkVn{UJ;lA=K4$Q)?zvAgTH%v@N4qA%JR7JaWE@j^&(SP( zI~?sEO8b=duh_x-)4iwj=JtfKWOk;seD9VKPRcu9mi+nKiCLE3CroLW4Gm82U-z|b;9I8jEIi;SG|=#f?+EEn z8eTO`)segs8?p?FAnCg&KQj+m!Hj)dyEM0r#K4WnmYdnVU3(aw=9*Q6Su@e#IWPXLtLf^EUW#T;PTssE*_n8XtDnBsU$M<{WJb`vvUW;c z=@%;vbw9R2KkMfipG)aLBmUTazBXo8bdtdjGRXnmda+9>VPE;q9aAVvia(P=e@WC* zyv|*HfyBj-t%5x^&xU;8%^FnD>rq%!$#3L6fHWlT6+ zWvxBNQk~I19IU|AV!I)1;JxXLf2Y3jtDP}vgXfvrD*T<}cowm*1$%`SOZu_h>BKz? z6!j7p?^l{FoV{6{dn57&vx6G^!b|0>z;4yR2wqbWgn6uk!M&e33Ab;Xnq=BbndGM2 zkE_m>f1fURh~&!WPfQBlO=p&9!%g&aa#c&KKNg)d=q8PDGuQX#h-CJ&Kc}cB4q)o$ z$Rz_{#6gws+F-9!C+uLWx8YvEI-%0s^0n(DUG==-C7T)YUEY$}`g->qqGxezF^z8X zS>cIZSGv{XRs-u@GD&Q{F?RP(6%+@Ue=1=jf(<>8Fz>~AtH7)Z{&vUBE|~E+E?V5} zi|Z-SsNxjkKgG8emTuNVk0^?lS9tHu7HPPnj~x7cC0|6~-l-ecgQYez>`1Mp?spjd z2!HgXfn>$k=H*I?kOXNv&iycC?H9GG}dmgl&4n%_5q5+3Lpi5 z!wLr)fnYTZ!@1gATS_{CM7INJjvaIyu+s5WK(32Ovn0KRNz6(N^o;?Wo)aajH_FgA zpk@Yk6Xq`=gy2!hZj@splD)7O%@hFKx4#Vmba{x{EufeJ?`zR|fPZKfT+^Yui&A_; zvxmMd198GxKcBwz){u%mZ$bMacZ(@R3a`f9;CbF2>(l4SB5dX#NKJN8jTQ{ze-v~K z9!tAQ6|D|12baXL#c>Vxlj}*bZ3HE0@EV@u5ghvrUi6laM91)z6hk}IK z4dIehP#h6-%g}}h>ArdOOwWKq}#0f1&R1 zFvGZ$V}jRjw2v32CmK7H>2#qRNOU%VYa`@s1ty)+|IlyrB@>h)C>t%z*z6>*fV4h@ zx{^Zu`v3HmIC*WB$buq+0L~ghR}yaZ6`bzXfJGO8^5y_2<9r%Uu7bqgK?VWohrR?w z-YVgZjfN#stM4X!E)qp53PZ&Y@0ttyjXPK=U?g{5yJ50K5v6^GBkBcZ38AMKy75*O z8A6#c=qq=awNM zRj^?Ob4`^Vvrn;w&C;7>6Mc7rQx+vpvmPg95i?ab=vgZAb2fUme%U0N^t2bvm`dYl zE5(#l*{M_Oo^ub*K8qM*{lHOMWY*{H4m>c+tez|v!WumWSljKwEfl#BH)^?NnI1dU z9~XM`tmlWd6TSIhk*8RO)9S!nhSY3!LaN#8E|XxvW*uFxhE8rKKh-dLUm3D%k50@x zid2#>IsnOya~p=UjFnag%?kzQn0rsoMnB06z29@bSL(!OgbZa!)(HmhW4kQlN!rO5 ze@vxu)=YfiOOmRR3}qAVXwX%O;JFj_!c3Mmanw0(L?vP}UcyW!^h0EtQ8FT4d@QC_ zCrWjl?x#Cz^A=l;!(fMjAdmr(&pi5XEGHXz)+~wVx04yxwtkwM!pR&Wj5o4!@}uYv zpNZF~tx$bPB*Q8u7?nFbZ`1Ot?F$2V1SavqFN&di`BnZl1U>IjQl^ z$U7C|Q1=oiDX+JG3*4tu?u(*DY0cm!dj^7=Ut&62x#G^7r^+vX!}6WRp@&9@T!jn3 zhTVMsj(~x3gVNGKVx6-X!|gh=Yq{$;%mwY4-3P>D_!pcc77Qb5vaj|OIm_Esf$ixh zLR!t`|Bc5&Z&h@D24(KO0`z8rVjmhBYH1jdowGNp*j4H7ym_Ae3Wi95cBlgKo>*QF z?i9t1Mv*j(Yh_etJI=rKRQJPrIsaWjbpnC(vg>_O1TarT$DFkAHEC+#x^tPZ)B~a{v zvV++dWQQ(Pvbshmn;|emU>(Gj!p3x$zV~A^!3GGYZv*OpW>X2$7YIV55qHhh=6yZV z3xp4Vy|A(>tyBJo{0`&uh*#N;o8u?%<%$ic?JcEdf}Wo-^kP3znB06eYFMB^51gzD< z(63g13TTlKrHQzQk^>9~4emcmk36H25mrz%P{c$NXxeJp;%(o#W!Cq4_8GzsNT)1j zta=S1lq(7uLzAcNsPA&Qml|3&41ehNuZ9gs@CW$94y|S^tE|qvb#I9N%osYTBXP#g zMMqMld9mw6ZF64(-NVbiq9m~T&`KD?^|bunf#;F3naM|OFjPc!K;k&yaZ87Rk>31E z`%C@S4^7I7g%*_J!Lz&+-|POdJ$a@>sbjoKfLbJ}E#A-k5a(%jr37+gIgwL?VQ~KZ z*QQB7mseC*)_(oa7%*QLI5j*P8FIaFriv&%ChUHxH*;kw zkL72efm^3{!IZt>56WlWDLOoNTVvZ(rV4myWtFvyfeGd<1VkBqaLe7b^Eo zWro^Uv{x>UnfA)qTQVEzhegu8C2nET&1uKge5<7DyHsyckOX@W3R!W%t|o*0T1#!;#%T} zgHnXpx^9J=%~tz~-`G!0BLgkbtH(BDuX!WyPPaT`fdE~q{Hp2`!X$$ssmpkHS^y0q zItyVi=&&ROm=?YS6I6&pTP=+I>h!_8AJN11=#ke-=p;iTr(96{%6%9ZD;7{FjRWt* z7UFR@&~Fg3cZL+!l0@5v^ra^ah3_uBsvSVl)?MHzF85$^uACX0%w16zd z@dX{G=Me$+pcEHFD^t7{YGo3f=0rP^?O9a4P0$b!zej@bw_$&~&>9&S!8d3p{f7kE zMhIh3Qb=exjw=KSAyOR^YqY8dut8N;b4#fx4{EEvZyW)(E>XmF?Nq;jAFd%mr;vbz zZR|A?VF{U-Z2M+FkUt^>l!2FpfxHLMs`J>&l2y4CQtiKD7+aIIa=dazj+i50i(C+A z_Msqd;2j@exUsew5b)DhJ3SO1TM6pOiY!Xx1Bmn#X@Z#}1I?T;Xy(vCg=F3STLK`O z2jSu)|7KBwHLOG7PGMZA3`bkn0|gOevQ$qR3SMaVuYtiJE9q{F0GrQHJbMxdJO-)> znDej&Q5|T`yBEdb#ifD;Ie}CrQK%^7%I(5{)^2|?g!etz2?RhKl)0inV+FtWijVZzWqN`G4yENpontFr2fG^O z6f|xW3ls*9Cu#&uT>{G_7E6g@KtTx~kCL(JM)|w9N;fHF2xw`Y3j~D9VaSyLfun z?r7bU?Ys#AdD8^)rgsXJHxGuOT`)eNmcryC&BzWz8>|n>Su`?yr(8?4#h+udjS-## zn*m`ItQUjuM8g*eTu6|$1}m-t)+9*xC}vNg3OtYNG_9VEbjQFyw520K%8iNK8!f zlp;F;%SN_OyQLF(9W6A3jZPs>bXW;6qDXfZthW*h`HEvpi5w87h_k zK+oNH38&d=n}B)0@YHj~XRBq)t zW$`BKxuV7H&_eZ}g992<4%^WMu#^yttxAev*M%q0O0|*)_IQo$(YFM?4MM;|Bpw`K zjK?4=6qE@PKB^QAn78q-gdk}U@k7fRSBnV}6;gA{swfeDfnKVj16_M;e2GW?V{p)@ zLcI@|)T!SDsj~?TkiZ!eS7r$c{>KuYAin7usi%zi^GcTm-{fQ4w8jDbNuVU}fE50r z{mzzhySM0L(nO1GUYEqJsWa+_~ zTy!e9E+f#;A@@2Z_!9yNmB)IWL>1lmzPsz$5z*NPPSM=;u@>}h3(=+Ie8yeccPYuZ zg1#a*JMij#(>aweck;i52-IfWChhLxox)T6>4?y;owAG(>pkEK$7HhM6PY`(>i=0DOb&fGEvAjM+!2%g7C2*N@QqBxdd8CJ=d|>a#^TE?=5>_X#KKz zAaICl{$U=dLX1x|&`|Jg&mjopJQDgIR3>6-&3too{e_K}Tq~vuW$*%o>jNyp6(+CiFc`hYEeZoFi@HE^{+))p z1I|}Mc=v@g%HDiE26y^@xmaK8$+t0`Ki%{3oJp7OP5OL`{^P-P2Fx&LJMzK4qlFyi zMWpUbrZq`=9Z~}vB{rO|eAw^1IO@Yq&vV1y3MY6Y^5s&5ABO=xxRZy0lZ-_}>>_^k+Tjz%_82xtf%y7M;xVj%gjBzR;u zo=qY@l#TQh5p%SkS_F5UACXGh09dd9!RVszMy{#vNK8Z_I~FldFC8~AMJ#*+9m ziqucJgB5Z*3m;dvo%Zaa5tx5ApgVXa3fA~ zjk(Nh#gb0BgZ+c~GR4o^^=1_ry_&Db6;=%#65RjeFu6|aw+-pBXz9fSh2i+;zNcvJ znML{a1}bgbiT+S1-%wr=X=d|8ypE#D!(;8og4K`kVo}y+F;jrr{I#6w`-|CjB3SV5 z=gRe1GBYug`#hP3Uivn`D}H*yyR(Ue*YFWlzncEk=Z^|EBm8Z;qn5bt4W4sMwvg1K zWMM0;u3~vF<)Q9i^hT5K3=kL+HMXBIcP$hr#NvLmfa97-Xph}e6hE;G2c0-0ADpbh zzm9h^je1@tz-qoj-MH5igdG=fuI6WRi^%!$`EC+OAaef0Hr~&2@{Z)VY4L&Xt z`gdrtcIdizN0-o~3ZP@ZmJ%ptU-57$8|% z^y~jNl^FvM!s#4z&w(@hvrvIV2`l0{UJ-jO~^cz1RjIJD| zWQx4rhHja#<3)fRVyDI482z{YAukMosxNeKRYpAn1K2Pw;t8Tz(OM(5PR}Ab{@xx0 zv;nf6xVK<`>>q@0fn-Bb*G|yEYCFZFh5$eVhX}f@+zKh2Zf6T2p%V-*?)5_-H?bM}|OB+bu?c+umPWLI0u2!!-C;7uYN$;4OoB{SWznZ{Y$!z_zzZ5Ah8xQ5yA9M_LDKyICSaRY3k4HjE*70;5Y(jtNvp&8c=QGf zeH(-Rq#f8C1)v{|-YS6%FVbtm%=>M|Cz=xreu>#N6a12Tng9;7Qy&#wOdu8}C^|UE zng94xe2~rm<)_`EIC`hJU$wKZfBh-VHr&Gxol@JoV$_ikU4|fN4L&dlWXdy)4k-HQ zj#>rGN@6i%6^*7q(r)kb&?>-~VKwE(Mym)3ApseH6-9m6-UpO&F$uT>o1##H{3%+j z7dk`X{1j{?P%xHiv1q6|xDlSWFu&b_ruk@rcd&#`2AI^sB`#v7Aodgi;uV3NgZSto zB<|)Z-Y^u}0+m%v&H%0-hH|NgYWIPF(+XO%7`?B=48%@kj0*oiX#?s`6}!vD^q3kI z-vmJBM7R8hg9*X7Avs*=F8{R~`+_HrQ(wnrtsTliO1+M{<_W$=%h{qULhD21j{|Th zZlt@)0%rE_`wa^*R>G*rJ~&7SxdAGxGv#9Q+OE5P!)_HA{Dxgke|zZ4Z2V=>v+`us zJkwT#p{ci@4k<**+&q2f#~t5&1~j5grPd1WMoWAQd9yD{bx)e-vckW>zvQ&+`(VYH z#sbgr?Z5hI#`oV_Rc~6@4qgTdI-QErom#)PG7rNAWR5&4q-p|t!wCw-35t6rNAoGp zmL$l1O3d9SJNK;XAN^hW#Q_h)rhmSF!?1&F73NCx<@RiyN8<-k-S|WU@HDgfM%xWo zDswaft-)h}y-lcCSqN-ZFj}f=xwnx(gM8=@kxs{ZGF0`%Af|~vZ~N|Gd?{URVCbDLfl(U4~hu|$)r@HMt?Ox3xgg?CohW<3YRD=YQL z8fNQ%!&JVfEJc%Ci|-M)u%Pw({Pm$U$DJv$(~W*_#)wjYUSJ8EorptO!W>UoXPNrF z$S~ai+8Y|7b(u=sMErsr@$^YQ*^Q3Y8N95lFfEj}_E!vaGIVx!sp*yXSF^d74$w5M z8>AGXsvK@=0PgZ(s_BakPf?;(T*LRoKPuh=-*xOLtuc*XCG;#zq<|Y=3|Dg6$i4pa zl30(fi_2j03w$`kTa-UJ=)2)INQFcD6QM#XS)J;Qb+pG2!zJ7yzbA8+3Sd&K7d8sa z6p`?bS}cqU1@C~=ge3#l+|FTy!>rLyc^DC5m|<9A=yF-3k&@iZpzuAB#5!XQ-Hb}6 z{nN~+?>(X7HrRANVwR2+0tRn;SWpgH2pAtLatlBN#5#=jhNG2dFYhI6TOlj&QbA`x z!$`H{m8zkUKSc!}p=6d4(4gG+5++ z#Jqr*;FHKS+8mPSfGV7qRKz<8k~hCxfR+~xhzdccNKUAnLcJW5=Dnc1?FL?q0!zTS zSfzt;!E}LyPxT@#dN`4mQOH!uks6yH7J0_%7vzMP@lO963`_9?K+cvx1`4}}3Adq`t)cOCq8*K42<4BnuDUUaq5 ze@+#>IN13*RoM!R)gokLWiD916v<*kU-r0OA!cu_o5(K@A8==~4rjRBcKaWqM`e%On z8I4%d;ow{6juith?V7eY01AR6qB4N*@G$l*nlQ*av^Jrz5VRg?>|E>r$$Rjs@fpQO zqoTw`@^eYDJ0lE~e*TCI0t!(NvB;p^c&(!>P_DL3O&9E94X=K+Oc!wkN*Uj*JA@b` zG=w7wAHuO?m|+%Jb25yZ7+6$#D1*gGcppai*X}zd0J+vXw}3ZcGf=A{$RHbZNNx)K zl!lMK+WAz!4{K}Y4{XgYK|~NJZ$eK4f9P0b-nbrd2ivi*k%w;}m+{5_6PyFom@HII zZueeGCvv4k2|sgoAR+z&>42Vhc(9NTU@?xiWW)B|%qOVPDOMrlI(3zPu|Cs7;8q`! zBK>Dr2mbf$gmoAKjtoKPGm>XC{Ed!jU%xSO@T_)a@yhrXpD9pShF;9|uHq^zr4Ycu z*Z>F@=g}Sv5Dbbu!VAfjK}X)~NmfUn>+ZUXL9A~lAI_(V6wI|H6Sjn&RokLS0MUzm zg56eL%Le9mz$YRD;-#R8LotR(i~6R0_ilcodfxB)EP7-T+KxatB7BGk8is%YtHkX< zR1k5It4`aOHI4$OoBki1u46Z#jq%g696oBqyE7$oPPkMu8nI8cbyKe4)|^digNUrZ`N%~ zsw#|v871_P1>N%l?R8wR1^_p(At%Gm0O4_!d?Jx^ODY#Rw=$vpiOM?jCw;CzJmJ55 zorV-!1P;lHL$GNn)Cd%wXANf{V|t=Ks+rZ+5C0!QF~FC8+l>bhogjCr ztDRG8A;rwiPD;R*-UJ(=d~@LZkoun$%m|S=yRvaDd;l8=0E9DC?oPj`JM|0dU&@(N$rpSLZdAtxkhMzDvPLlDK*KP zRfbKW?HU9GKk)PokywO7m9O5dX{f8uyxRDD{R#1LKiTn=Yqpz>logQO(0bJ=DL4^)R zE?>Bfp&yI>hLK@Gf6#X#3-W8-Smzv+Gf|se+~oQCuN+=SqCZt!9Tf|783Lyrn#^`i zLRmfhM{8`1P>;jNZ3b?Ps(`Bs+9wI90E=48lJNGbM0rwoimHyyjUh`B`qdf@xk1e| zyw(65WXEKu#dH5beZ&7F@6E$%TEqYUoe)AuDy7UKiK0QNgJVdDNYZ3Vl1kD<1Co@; zl#Zy7NYj=^jgktfL<5Z)h|;Wi`aaJZ_Fil49XXuO@A`axf1K-booluBvz}=^>%QOj z`;{+5+>7QN1ScR5LAY19fbp|~=1MO_a7P^K#DtzR(6SJa3Q+XhEF^)^r^X~IBIyv^kE*vsDAi<|qKmCx z(Ga}s%U|I>bWBIZP{tP9=Y@DH;a*{w{~=8VAdRR+b#TMpbA;VYqTCJ~6;GK`gg7uc zy9M{Df+RnDeBi_~diK zOj^R#v#?7N7};MUCui+|BC2fECK|?qKh&wp{o*nq*5?Yh^rDDVk$oh7+We?b~}5UEl^wOUa#+I+iRP# z>k-snF}?P=c(2*>bn#Ln#v zT^{b&6^@|qHIh^W(LwB5;EI-b5(*mcm>sjLYXiHs4&1eq7qoV^!t)WjZW+Ryq4}5z zu`9-eoA!%42kdjMmyDdDp!rD=?ngu&1k(|3Dp0^|PNA+erqvtxv|;6h8SW~J;J!Xl zXTvi#6UoPE`URpE3t4GZb1s&kYEq!Z@=X2~ff(YML($U|w_ujCOyF+m;pcD%TWXr% z)$x=9SGDa<@a5~E!|)j z{c*|YqU8BC%~dN7nGxCsq+Pg!DR3}j3QwrIj)UNE#ELtEOD*Xw2nDV8+vD#1%8sNLx>;1$jq~$$>WUe-kuF$O3>m^Ea zd@s3kfc7RNIG%EM+rsm7JxLGc@pq?OeL;UvH}S?c(>#GllZ=Jq%Ve5HXO3TTg|=e3 zTeGsO=w!QXO;s7~m$Ozlw>#PLHK@Gked4vE{U5f}N2`c5DSJ&6)IFE!r7R||csxrexHp-eaI;@? z2=Wjy0VrhHC4Yu{*5=&5$Hs4Wa<92>pQS~=IY2XY6jW=fYqu&;T(f7w#s1VC5xyS` z6cwLYE?B!VN3LpGaJHj?WN~F?hDU`YXJ=7;W75nz{*HpjQK9s!!)MO==lp(}b)a1F zl_go0TT?3Qo>|^ei8HT_`k=SV?BM;d_Pkbu3+_uKd6t>*swG87#k^DdDtahlxcc*t z99N8iSIUL*DRgBM9-*`*?TR#awR>M<-W-Z6bPen1T5?ZHJYy;?S$v9UTA{!+3;k6N zZ>eA}X@0wsvAq-U7+T8U60Z?A-#<(_MT=QPX3 z+%>8=cdc0?DR@)S{1ZjiALey^&A0XcDkP>WQ8s_o?n(ZJ=I$1aIs>%S#chQ++#16v{aTr)7;T8bz|K*s5F z<0vJI7{dq2fcFb*!*Xz^FT(GUR49Yp>Cq7ba+?@|TO=+PdgLRnFoAj% z(D6HB@!kSF+8_qoRN4$J9ECy(*zu?t4ls5@EYGl?B&%AeHzUxN@undKVZi2u^rNiT zq52XqN*ZBE;F=NZ!3L8dlRx-K(+ob=FVNBJLAb?%!H!;=^EJ6}6YglYj@U4!a7{-(&2%s7H zhyk%_+-?MahcHAGsPG3&a_n;ijvIw)%g}41!WYosK^ewO?KM`9G&pK_u^E&UAp&6r zmU#QG@Q!z=4uat&^)RA5W-^SK-$M8j>cABuK+J}y#gPdV4JQ!cs|M>gqO^#DQl_$l z1vnWhAY8{0Tm)#ql+Q}kjB_HCnWw*cX*}VLoBnLg=f<*GTh@;npX=-S<-2&RSWI zAiWhgSI*SdITSNVTk+BWE$GU6)o<4793@Y0ojmT=Aa*yX`aN5q@tjNuGzN|aKLZ-C zo=czI`JiWW=e!F3=gOmOBz2NThjw1svGdyc^V351_3z479p`4toiSTWMWa--NX^yW{c28Jxz$?z>Y}BTiIXRb;H2#iE7 zcx$APrrpC=wM!CwGrc$Twb$Cl_G;!E$*&1B^|D%5>K8N8)1*@0X_wv&#YTzH4);iH zBdzg*e2sh6C--m`Bs^%p)M*&#kn`Ya*{r5@XG0a&IGR+QYh2nVqg?u8hRmeZpO*f! z@Mx8J@h#sEVe``bqN?>pk10Esapo?q3*D#fq1#m79ub@|M#6u&qI&kM-R~FDW2TS) zwpga{%e5rkH!;^uR@}4s^m^~#t8!&VmC09~wiRyGbUX9-!`16R#vx z=H7g4qV!&YFVAt16D&`Yzj=rLCPGg?JKUFasx@+3`c7tLT{nWGDE*;(vf~Uo{#{Ue^PM_;M zRFw{l8P|s2OPLXVsdmT0m`Oa>DtFtYAA44*AyY+ddl`2o&Y29KIIz?QY~JlREMER7nFj&k^(H0>jo5 zF$OJGRw`QBy4gv&PPU!EVr?hD0Qcuq>{#F&T9Phf9cc-OcEK?-91}|N>W`+P!W5fy zJfo?{@$I@;AVm`eJyZbvmf)dcA|UGrjL|($z355)*3XBtfU|mr!~$k&c0h49qO;Lk zf*VQzRMO&oN>HN;N)5iY&v{hjx&i$n)$v zi;%*Uo+UYj4nX|e}GBf7@&ySegKh?Stcej0=31MVMjU& zZ)3qNi@{DIh|dw z7}fKDemM}!BtijyUu4Y~C$?vuE3an2);3dbgqbkqBcea6UPSx?BLB!lN!U%?K&ZFh z78QH#)vNYTtHXC^x}!v{4FERQrmT=E4vA%u zu)e)Gb`juBfdzzS>zL?AIAbX4iu=HI1L}fs{Q`iOu^cS`p(MRZ=_~Y`LXNG&ImDLqe3{dK|zPWMdvf z9UpDh`-7b~xQq)YCoNvl-DeJQH#iFpb#Fm)`%q2x4?|7HfEO}cU*Jwdobiyb#%4jO zL4X@vQNt0B2j>3EsIDKN!S^x~afh%;*BlQ^a?Fgh* zGWil9coybv!OeP@o)Lh2$b=N{5F4ru!{Kh`-dWpJpMGufhFuz8y)9 zgITBSM)w>bdw}#dLRB1!zO2-^(zGICkEqx_@Y+7rSV%{(Tj$fEIR`M?VWP=U-yp`_ zfb4E zi6=UJ?hx>HlzYL&H3egd4Q`(z!P@){fB~dRoIZMq2m%Pr5&y(Nh3Phd&0*L-x3H2J zKu$%lWPl)f01_mNofat}+j89Z9EgxS2Rt><^~LZ|q27;)Zo`KO5P*=XFCDZz5*FI6 zDr+!#4CvN?v8icV4;h;vAP4}7OrwzgMyeGC(|ZTerl2nx1SNHf+Wu>RB;|D~^ya9p z)gt9(V|hTX4~74bL;)xt5$XaCyfi_5HGoeDgN%l8KEVe8v%m~5T7rm8Vh6Pr(gC(@ zL^0Ih$S|h%5PejT`;)nF&WR<(2G)`0H=={Ybc>HD9jK{8EEbtyJA`_Rm^M*lE}Qt# zL_UMB2PY6dzAb1e*TdE33trkx{qV>GXUi5M&^C%C3(Vtlqe>vWw~1-|uKrul%;o3( z1DS1g?^Xn?lqk z#gz`^4#KUC*>(`1Y_%aMvLDE0m^0{yC^C#s2@zX2^gej%#*Eal`xzS%8ip{u2N0b@ z%N&kEhBgfh0HIV4wdBT_cESftf`a(1N&r3{)PU|m4KWD0a|HWGk(T6IG37+i4FiA? zS&H`H0*hfRuyOw7VHOC1lrk47!ZhfC!d6Yh+Wr6&^Z7SC>u+cjA2G;yCF7Btqf-L_ zn|_!!33fJ=@eFE+0W^eC_<*CNHt-6A8xSzjM&Ixq7A7~!-mU~IED&8`DD!U|nIK45 zVS@O32X`uJz5pouO^fEV{i)sY6;8<2N=cyQ36~QHC8A=5NOhz zHYnxHe-DlsOh_AHfYDk=_2}4ZuTuu=pzL~<4*CXO@~J)JnE+DrE1R)KkS7p&e}rKR z2yK92`!`_N=C+F1Tfi-dYSY0Kq@}Ci4q&JRK?e7Tp@AKUXnBsZ_{2=-Xqj>gD>iAmADZ(txqX0o+&vd|8Ynt%%zsvL?pKgRgjLu4n@-p&5{@iA|tw z{ixSVmJb=NN$GHG3#yuZ3;4Y$XD($T7q>Iq&k;bY0!l$10>Tb*XWg&BS0WJV;(jVw zKCp-aU1aQ0f5uM{)ZfdP4yS`1b+-@>GNvO!y4&$OK}Hl2PsSlKIeOp$Ks_&UWr?MZ`VGdj|1=-oPnj8ouP3>k)DfVURzKVL0S(uubT|Ia{zU@D3-6 zh@emhQZ-BW?wdbpH?vw5zQnSQPyG<>Z!ndF9(|q56Y&akwp9f(cpNKi%iSESV>>zf zQ;ui!I~(Yhlj)J-*$G1;{9W#hNcWX~<1kO_V4P+4)zFm>*H|n({`U^k7@4iJhu>?- z`dmNbK8MUVoyL#7_Y*R<^ab{={3yzGsL3WtTS4+1_ZT4)arJj+{Y*F`P5bw~j*(t? z+0K3BnDALbM{RBf>v#9Zx7TX;e6!bBV^?F;v!VP@*{s~ZM}^xQ5SNgu+Fl?LvLUQ1m9tLs@D*9v54?AUDB>KKHw(W?q-u1WuNvbIb*#ZScBN(C|rmBVw0Slcw2ZKV<&R2Du zh(LoN)KM^uNbB+26^=R$0B{jS)dN=&#q&iB5r6@y6N457JFK4%_AND>il`}|wud6c z0SHo(^$W9iQT<9Qp+t?+yD;p4-ZotM6fV5G)%r2 z)!>COXt;(3uXzJK#+I_gMnnVKOEF}@dY4dz!)!13xY`Tz8c5ibeS5QUU=eGqhS+In ziIo+oEP?PaKuw~=b^gq?KWhWA1PBtOa1#+u67}Z}EGi@lWKdQSDGtKuwUt8|;RnRdD<^&{ho(TI`P_RVqPOwR5 zPWe&;WL;1d#Na$_B(U4JaIm^A0!()2gML+ylgi)tLma>C*v_%Ae0YL_tXrGo1lP7e zdfV<1wW~u)XHPmMdY$Xq>@hUGljC_-9BMq9G^x}2S&;+X$Yk255BYZ|=;sVEv)+dkDj&hDA9Txdm$f4t`mpWX6K z+3t(AtVA?z-s&?B^#pwVs^IO1IfQ`|8E_^j&>UNnFO|+=>#xHaF8`UA7kX?vCzIf8}yCWB8$G z!xw5Rn?I$EAF1#;>de(=1ROKtM3_cYURbA08`Rvn0DbLZZ!nK(z5ki8dWI z^mhnYf~aEvF(D1BIB1yj+AirIJX0g5v*a>AiSNTDV#>tMK!Qv9Hu$vi7Q2(bL6$}kqp!Rhfh!<3pmrQI`$tfCj{8yqu0+|^1c(i|6k}F)wUiCd zhAcq9$XVjLQeB9OLI6vWi*XdBWZYz0CL%Z+Kxe^lHs!$hb&#$wpeS6nIirpN_#?dG zFcr4Npfk{~5dgS8Pyk#DQdycaER6vj!4)ph_(c}UXupdQhe=bOnDL4zoyjKyi14?Y zd~Uh$Ia9^!uyee_ci%cd3fPUMw{b-WmPjTNg68kSR51*a4y_K6?RRCDqPGp5%`Lv5 zC{y4v!q-p$rRNAw0`)$s$Gwl3&?lT|_J9Hwx;?B!4#OukU>#8`%)t8iHCiIfCrq-$ z^wMF)92G#?2;lkv_m0T=S3Lk{0Su{${G_chH($x#l$fjgcuIZGTk}`d12pHI6mS#? z`DAqoQ5%G^F%Pk17*fVo0Sn3Pus4E=vPAzOV~&6_1gy29Rk))`Jisp`=K?c{jW}lD z7FDLhZQq5_M$B0$N4`p?iAun|e5WA!E`tkGm_N^1pGqol0BdBM-eJIAd7%y1E0^ST z{F;J?ku&KBF~||fKLN!=$s(w)k!St!DJ4n=uv!h+WJuP~gaC;p1oVoea5`{S0nDWs z?x8DEXfZsvJ1BI_L;wlv>kP~VZO<9V<*aOlb3@|jQ!*F_REn|#^B^3Yte6A*v!Km` zsHrGcdV!Ny%;wW&AbF+KSNZsQguHT!h4bO<7J_+=0EZalIbg*%Rlim2GLlT9*}&Qz zl-pogPx6Ccq9vwp4^5kVXM{wR0RTGe7hSsuZwZ{le($t<`B`H7lf#4TxwV-wt z3>C`{)aswfuBkR!-)VI{#ZXNUwg)j;lUEcCTuNJYd5BpOg= zfHKm4faY<20U2dP;0i;e!Rq$|7-=Mr)SRf;_mAT~Y<7oeo?9P(1y*E*!-_~9!h_qn z!gnmjZenx@8zl}AL4%Gg+&~Zn%}1tqtJno8e!+(kZl}_4JM|`Qr#SP7xPu_ZCKnmn z5LTTDhW!ET99YvqX7l)gNiq+@L?Ew-3dRBZ$S^=E0DM9&j8B-n;b4LVX3T@mcA9-G zvA$-2))oX1U$UNafUUpR;hU~i9S=A?UxIF7h$x)f72AN#8Xy)iU{Iic`=BWTRj2?Q z>j@sQ2=*s*4mS!sAnmLevj}W$fbfIrwy0hh#D0Om7%&MDTUps&W)TtGP8McIYmUlM z65K3hBPy%sw*mO9QEx?&-@y9gx89P%Qt^l zVv(La=Ewu43(z|-q)F2W(*>@2#A+X}mD+K|8F?tKK-&|umds`<$^ z0O6oiH~k)%=OUc8UC4F-hiCAf(M7>LpN<}a{UXU?$kO~8^H6zK4TLi6L^l$o*$8_* zz(`E%mPANyS7_pg@RL>-6M8t(AqNc-aZc--qFs!7i47(xfo^&Tf9dv!7@jz?!!O)# zrx=pxDxB~Yw1et5#GAVXt21XRiI`v>u$VBq3Z(!HIQOgTK|Wkkr47OlQQqJ~b>e_% zl|78?`JSUIy1#>DrT9jW&23>Qh}g7!J7Y1$FzF$fngq&`2y=#NpR}rkDoJ4F+5{^V zRqZ9yoW8ydiDI>4B6Ll4I7UD^$iUwqn*%t>vQ%V2Di5}vFe(qIz+cYNFhuRwdmFKH zY5#`L9On4+XF|LSm^h3wAdIBNzIUn+Cl}yQ!+n{-N5gNnq!oeK;N#4A7$Q^xD-na- znT0Jl7z4qheS|nCT!|#$XaEsh?1U2K(I`_Y2_87mS;HtZqA+>JDpi6YE5teNCJ=cD z#xzOqQPD+@6?NJOFn~PNo2y4&TZllw3W+eMo_#oThA?gLIf&hCs2wx9T3h^#A@XiI z*cDeL%<~FN8^XPynt-5?(7Db~0AP&(a~H9q09y@pRCixnBLR^!g(W0d2)`>Z!)5xM zAZ9BbnAyq!eq}up%4uSd?!-E|eIFo@($GD-#33<0k7kzKh+l(zJ z*)Ub+Uch6ZHhU4UXX2$3q2Ol`$w_H`~dr04Noz|Fnj{ zoR)y34@Qe;bWEw5CC-&9iL>eC^R%`jR%`C*&Ra(*nJ5g_$5r;S0<&xAf&Oh9-$SP&-|b>OK}h! z57siqe&cWRavtg-1t}^JbOpp7ixFW2k;Q}c{?^l5Cl?k=%pJ~LRLWzp%~*(`LSezo z0GS1NQ{nm^FhcVEHn&HxnrR1J2)P3=U=iy+6IeW7)%!ww0kYM=4>z zl4cJe;J}gVjiB_;9t(^EhUuU1{$XPY?r$unRRZ7SIn3E}oWLqV2M!TG;?_*=d-_~} zo>L+dF7LI?i1NtqlQ(TAr|Z133F8K6Y*9t9dr(x-pxv`G0SIek3BsE943-n}L?=aQ zi1Ro!g1_JoXi>mfJ!tWUnch7n_nx{STMxbTWjkln!-7xeA*aZUsXVI7?%g&(o0IWW zw4J*^`MdanhJMQ36YA0m>HHafE?c=(s(GNf3NLD|BH=@X@Kot3cY0QOaM*OqjmY*2 zHQKhTv@Gee*@3T?1}5X4m@8iGIy2#I*i*&uj?Q^TVGbFUIqqSK%PQy7qq6un#pizS zS+R%CzwXMx>a(Bc8N^Jqzq7gN<;mhClhjX>=>dSkQ@3t_HeTV7S6knqr2dRIk(#eH z^+o!p+c>6q&-Dl?{(AZKqpz#CPWT!jWbIwM>Tz(1t+UCPv3y#bW{R9y_6iy%lAjAp zHgz9YPUuv9svN%1kFVFRd_sbD<^KH0o4R^!$1X@2FD^e2l@5716}U3mnIT&6j*f@_>0OQr{~QXd>95JSj1 z458gsSxk!#EWNRITumh?2iXlUFg?o7I|EIacLKpkG*3}aE}dI_7>|T1csL&SMl&B2 z?Znw)$3_$@ZY|Q!M0%hA7*Oj7C_F?s5fVv65_kl80s(=8M=@F2a}1R7tu_@F{K0QM zL4GS1wktwUW>7LX!v*=(R3~D51@A8w*~6Wf@neZG9wd>* zM#lhLWQcLMJe)5?(Ir4q(Gc4Q;3&vMMM5cPW{Zs`VoR~hxFJ3WnInyl8dVKJH9cYX zz(gd>_)?Th&F+4%dIU02;5RKE0%6zFFuevK9|#K=EKTwgHxN}I`ssixMf!{#pcOEQ zL)6NQais4?B#MDA9;%uEEDjLN;{Z$v7|cV=N3chFWElJWzRre~!|fUH7Bs2@hPhbEr`~ZG5~;mj6c(`4*b$jXdeCtEv4ukAU1_e-o=&>R2kr6>vf128ccZz zB*cs^C_EYp5T}Gm6(Iw8m_m+MsKgyCV2XtY-c{TsaN|!IZjVwR>Z=F6~s0n;f)S6oR9WDKO=UIyOFZoL(W{vH<-et#YN{s>vL+I}QccK-;(w9A;wE7E`a<)NBWQRgBd?ud;1w@CQ3%M8AL3 zrvEd)a`*lK?d*e2+X0$#Tuwi4oW}r7;5Lu;-Gr@K&wy)9H2G3(b~kRMtjY5W<_2Vm0iirQUw98&$L#QuKNVQn|*73tHa1feaor} z253=|scEf_l?I`zH%8Z_#(8A+=XAT>q%`^D3RAZhHI{ZOS3K+&am;Cm7@(bL@E@S1 zi*e>rjsA=?LI-Gv^j*$>9-uwX+~p<3o8w|B>ec7h#wSaeOSI#qeARxe6Us4lTQ8{E z@GCVOpp7mC-&*clxE`Y584-io4gIq+W)+2KdT96OCG+rS4bWV#M=jFvwNnV}P5w4O z3w)T&+RTD4^x3S#< z=dIh=jcsVI9w=}iZ$9f-=87kQ4ulBH3(*-c8O#7)i9Iq3OG{^oQ>w9}s< zmkH1>4n^p#FzZq8Roo`qyD{pa#SFzx>#beO?UHMivk(1lr;$7wgR*SelHsPgv7EUD zRDT8ACfG9Me{)WgI5|)?O?fIg*maw^GW-2|KmX>o25lXQriqlN`Uv|E_^xz&w0i%> zuEUVHqr(IV5cuXM?TBtWPGAeI{`f~nieVW^oqC&jz#exMp8o&bU@;}`|J7izdT?Tc zwaW~BZy$ksDqwu}t?SDAz4s6mSc7d4k=R`SgR=sv%n4-&|Je^Aa`yk5KXhw6Qc&>! zqpr(n{;ds`Km@{ybLb+-3tb$n8syzX*dTfxr~cl?_v4v&BLyC|k0|N4iF#E1&g+&? zyMhs9uw9Q2ydmI`YkxL#*ZXr1xmcR{>JUx;t=A#yA-w;U3X?EH-eNa0cfLO~ z2Vs#20RF@SPku@tnh(%M{n@EOFx>s`9*bJB1CHdRwe|9rC^*H=g9U?IJNuXY)<*^j zvjQd}tm47X6-EQJKRY`V)@WQ|)b*f4w)a0AGD1yNf`@6jGov5X&^_wU_9JUG6iYvP zbgsh>O~1Q+V7|Pdjxrl7r^4o=o+EOS*;v&-5kC$7_L9DWIOGzFv9R-*rXTW+cvTL3 z9pi`G-&@q183jg=vZc2!#_SpX-3t?ca1+-5bHBEM@oUU-Cj4vOtrh*6m%Qcp3_lb8 zft?sLmc}?D#MK7EDsZ)VWh+p&OyRbt}0tm~%z{`z{-dS-TfP3ng z=b(Jych0Z(5Kly`m@<+4eRE=^Gh?4vt`?cFJ zG$Wpa?vhD=Zq$N;GO1;Zg&r$mumRagUO%z>gS!^RO&b*aF_*SqJqVw?{KG4og%Ff* zoCm~&KHBEAUylH1M`T^Afs)Z$<=@_sSv<>^RlRWl!9mV!$4J6Tv-AH$XM~tFfX(2w zP}?83xJP#p?Ai1c9RK8=HEFP(ykgN80C&i8+u+8 zMT<&t?K*9FMdb%J=23xT$A132Zr$$MuCBkT+zq=mIUm^BG}~vSnoT;CV{BwnY0Rx{ zuW>AKb6V&XA$g0_bm6yMrK5&-*1 zaaMWU_i<_!8tHfV&)7*nG`@0ZxxZ`F34vEH%8U4gU(QW8b)v5rVQjObyh75|L6m;J zx+%svvQL7O`^JHH^=^N?Dqg>ke>m^y2c4eRI{5fgLlra&`p2dQ81aU>Cg-&opYZuh zUQ1$zY=?sH^yM!<*gl=TBzv)CWv8QkQ$w-F<0c26Y1vMJ+9tY-6mr57Z)Hw;K2?xb zp|zbi*YoU3`L30|_7%z^c2k>0-4-2tm>~JFZhev3g7=}JAy;QLjGFc2+}z#Pvk&j6 zyYygO%dJw`%H))u;0tTB)y`ge8I%^Jy2tQ-TE(8Rg$F&R+Pay}bd{RArX>FH6Oky@ z3bkjAZlDpE<}4w@i(wH4}1}09Wvv(>Wz<=FCAX>YNo2?wn7V;wIgWeBGP>zTz=5|^`nCW zG_LPinw!u9E|_FDgxq{bPV#d!=~T-IH=J zlqPge@A5S~ZMQ7-Qv9(%rN+a(K8N(Fe;jr_OT(@Yuw^`5fvX5i3fvyQj(S5eP*J$@ zqjL8oI|bm?^N(_;TV3Go@lrfzltw8T-uUP@?nw2b(gi&6#me(`c~SpZJb(qy#Ce(J zhRPLNYCW+eZ0@pKQpdYjMLqzg6A~Pjn6joQg!6HV>UQ7wCB7m2w?f!uZJ-n zQ#cN7;sATVv)fIgeWR5CL^WljXzv=)ra(om0op1x7ssY;;2#rpEhlrNuWWKj;d|7kMvg3qdb)7oPA0Go)YBCn;f9)>-IMBc9rQt7!G!7-WJq$|Ns&=G|s|U*j zjB}$^P48U&@$~*74Fdy&rHJsRjw(~fbzScQ9u7dSyIN7+I~njVo@?r^p_yN@o6)pV z%GP&uQ{nhk^>1(YBu2DYKBTrT4!G7Zcw7KK9<}pVR)gNCx%$#6N>eLd=*DdqwT^b! z93{!p7*(n>(9&O;O2adMZ5R+op_B5W)NUVa)0k*8{f1r6@J?fw8CGAn*q1wA4OIm> z6{n|;-)DCMZRLo?j?H{;KL7?ifF$BRK=}v$-7m<1UnpBX*tSH<>jeLsZrVA1l?fQ? z1k0}FZLDLhO~#TH_b$ky{n~Wu0@JC0^U_VQyEbs?U!}9({9q=GgyiCyMeWhaj+EWX zGH(l)AlEa|;k=S?f88xV8g73dfA}E8#MFQGAP9OM=WG4%d=S*?>0geB%3Tzwt z)SB6}S`b--94|J(jf9i_vXI>>ECOy^kRlG?Xqd6nuPl=DDd=9ZljjV4@f`u{@OWM_ zbvMLXIg%`!Hxch(HdZ%*VVS!`awVCmz_1!402^1F*V$HFYw zoq7o~8M?MXamCQrzA{+*zc&7al*`apOfNXt{nFEb*hVMrK}Q?n0d)pEpuR=l_Z9Hi zQZhbyp3Y}B-y$YN`!mexZs@&B{s+IJ!IG%?m4yj*Of&eU@{^5u* zj^VfW3m-(HAUq%;iyU8>FU)LquVps5nIXT-TtJL~dlThlX5q~y48bl#@=Ggoh_e}U z`-8j8ug~V0O)G7OHk(;fFhl1@B`{_E zrN#3<@;l&_Gt}SFFd(^G-u|T%6g+dF%k&^T+K#P<-vaEnw%_VE^79B5BPZy7PqxR- zIoR`*3d3YN`|)|gojjuR#IxjScHDE%-!bx5ylS*O?nV0)^QSr^BcAR(Y1mBHWyQ$4 zxG5St-tFvo9_`hw=Vk4`%VtlToR)_7XOpm$%1f6|x(IXlZTq@CiN_|aBTc&QxY@aH z-*4VLx3ri$Wtp?bRUz$?wcj2|MJQQKo+VGKX>j}2kR))>t8A%X8vi&)8UJOM-&H#| zewGR4s69KbOkX}{b3%c``6kt8MdKom6s>WP(OY?Z&eg3x)up3mie-AebX_@p?dB5R zv^giVyG#2o*cXg8d(d{bZ(C2}n`Y0>tjbb-730|N7Z&x`X*`N32%TEI=6ZuFw_{Y7 z&6U|lJH}1*`52aZ>!YSY(}Q*weSYKXMf&IL5@+^TikaMroMK_uacXDw*jsnUy?PP& ze96J;I=AnVqkHE!HJ&z;Y>2#h;@p7*wb@->>g%VUH#b`};q~7tPh5-s5e(YlH(YVn zzR-i-_onc!v+%zg@c8@_yT_Uig_mVbE*HK&DtKyocw5kpP5Nea-($imugAo+h3kLh z@4c$v*fYA;ulqL!{% zO)$e3l2j7>C$GZUmuPu0qb8bC7YqvSE`ge8wd2k+%yQsaeEEhGIWLsKY z0#U1=qL1jmh!=hmP2FKRZYJu2$+pR$;1lv335Cb#m-k01o$>l%AmB&K(Rt!bDrl`ry09GGAvplIWMIO+7}eX2rJ#Hm)}xZE zw+S`T%$i^$w5$?Nae%y9hE~I~F*AqLlI-z?m*fIm8kq)$RqvKVAp9UrC081c9H4m_ zs)MynC<=d?m<@~%5Cqjv3w^1)w!zDX*%fdr_8?X9%P#|$LHbvG%ib|=&X616q(ZfR zhrN}PFkQqjGvXnoXW!}!x!PKA5pKrM94|r*calZ-b~eS%m}@zu39Wu_@iz_8PF^3I zT%>yITZDLH14;5kAxg_-o_=b;q8A2(wQI& zh=~Yb`_YrjQ6=aOgC6OKX><`1(`NiSQg zI1Qqdb4GV;N`LRY5P1Yx6AA%2(r`b4n053lhmsH?G_a&Bc#4luN5JS_#zBMe+py+O z>)O@$P73e`@dJSeI^r$Sjsdq!hFpNb05T|^=LY~8CY~n?!SgV>2u9!s$Ma|*X?cL> zxq_gChJfcG=8W0c+MvS(@H_xn;vvP%nhlQU3CY(81669DnK{Y9@jQ1CJkO7SHwdd8 zop=B}gl9Ym6dU3xvaU1V4R0_VVXUYyY8t6y@qdiEBQO|s2L;m*D*661kPfR)4Z1D} zdCGJg=JRKuJ17B(n9ZRdVxEgYaV%g1V;cir!}jSs;KneZI}DBvb~Hq7TuA&H990CK zu7+0-eaDiqF~M^XXcHlIg~Dz&#(E7EcEe}~cJ5;|8UwH}>mvYaWCR02gq?cuDL)&H z{|xP7tTy3FdAb#SR&fkMNMSksp{HF&*j&Y|N&$uc@ag5V*vFvn>H;^`BnufxgSy?| zjb^Qp09+xK^CGqvs%P zU}^&`i`12BUa?#a^dkSw)mo%DG`Zc(!zSJ*?4J@qKfNY>WVt$MkgMVOpTO`uIi@vv z@&N6nc@tOP={AqPF|QIQB{Zffx9HdbLE!GheL(*C_%_eqcioUP8)tSuhvQ4>m;u@& z--iRV2i$JoH?;bloFs0y%ysp!mk(=Com70-|0Y&W>DENO3u`MA+X1id)TLsa^^#o$ z!c##71bY}I|DupLkbXCu919BqBs%6H5}po`t!BaxZiT8FCvROtqu2-rYXv>@JG^O% z!Cq^}iB;f`a}YVEGEEC%fG(c}+KBY~jA#-ykk;5E% zFLDSDHj8vHT#B4f!RL?x`Buym8X`6x<|cM~lu4@7q9&&r5K4mawV*`Q48xXj=t9>2 za2c}iAn6y8LmaX?L39Iz{gf<#j~s+{41N_cXa@TW$_*LktYAj-4-jDqkSItxVd6bT zhD>1mMWn}&6DzXIz{ezd^?~lk>^PYEExgm%{VIAi2j^N)LChEeqB-FX^jJ%h=%KR_ zwamjKQX0mnIRf$UhxHw5f;SB@!E0NFQ4vW}IrcXMQc9qAW4)nSG7@T{+>oSNLZ>ep z3u8bSqS&d+*Nurw``&8J`bGM3I1S_`#18nF%ny_0tDO z!+UB;1PeBidM2Q_@o!?+5x^uu>PZpbU#UU4f7jsazz+bR@nDfYzD-f=3WK8VVnv{+CW2CUPdgFT6XO|iuWvAsSjr9Y848@QvF;!*XKF2vl@>I=Pxgy%F=R~N3O7HgBc3YawxrQI= zaO{>3u2X*RST!xQ%uvN;=S@A4HVc-<{~+$hQLf*!A+F5TZ@Yw?e!e z`oRrtvtfpcYgPlnrdl2(_{i6Q?{9bwaDTy^p7GS}zrGC3iGg4n%u?bs zI-efZ1JX>r-AGQEcx+^hFfj~;HjZ>4#Baxfv>tkncgV?B{4pR{E)X>v_8u`^7)GM2mK*rNyjI=EA%uGzn zGOUsrSB{@bW-wtx&L)9NJ=|f->$elQ;J7B#uj>Pk2c-P_Dy? zFqKa+X~w#N38y9w8XFU8a=Z>Gju;KbPg~?xj9A}8N;z-meBEVbIg61D1u?E+?4Z|3 z&N*?*57Mkh2x-=0mq}_ry!emiWR+(pEdb#=wPx!+=Y|2=cZ(hCTol&?+NkP2E?63T zJu>fb^`sQ3lN%njuW<0BH*5B9a6F&-)k9BA9-&?#(ef-XCkC#?BW!kfzL&Iv($WikyS@^!EM<@z4Yp!Y5Pwf*= zyQ((jvVp_o;qf;()-BZ7a;wUG)~N>Z7OQv@$x8czn@#?^nk3)fy^^yv$*ot{bVk*& zr?aMwnxXklxQ!m1Dd)v|_UO(VPl6TnlQ)^zTlK2Nyo^m2bh5a($n>7AF1aJ<+VnuKB&zMP1&E``l)8cDCJe+@${F;XGE5JRM4N>^FFs& zv$VZkn*X|xRngn|>Z58d_SJpyo8XwTa@meNtAk~N5f@)6`1ce)^eH>Yq5O>Y{`u~j zc_L?%f;rN59=|3ZPQPwc^itMdwneFUVb$R|I?}$o^XB@5T(!a8 z;wXlkmB4QfJ@3wphz3Kf3&0ep1A!*g9wKWMOK(qMxH`imq~UY)(Nx@nWO8;Qkw*4%m8*4IbYtcj2n)rZ%g0txBPHlTN%W73_D@TVE{W%q@I&Zgb} zvRyrjZWz_$y+>Mj?h4tnfdR&PImY!4&#ed*k67)lM!4r(UPWusgWKi}Kc>gUnP=U5 zDBsHW93V__unFzLp{HVCe$?@RE<-xp58m;t-wcCyJPTh2TP}o9G>n)cE8tIFOEBmJ zlWMSMTa73=bYS)wjhKSG_Sg<=%p$;N|d0ITkU5Dx}u>ItVK=L*r;96l8~~ z&>6nkY2P4o%tLD?!&7{#=iOasSbroIvVqQM)@>dE&T znRryeiuW`**b6Jc$k}rA0|b9WasZc{|7Jp6(DyOB*f6_K0K(OTpe!nqVEJZYj(Nd* zZz%&@n*coMekeE4rdFYWaU^^?(GhkIqf276_aUBaov@;i+$GG@I^k;6!ELBl|H8d@ z{Gi>;Zymf(?&4SH65Aa!9ez)P*CHhv zNZjj%11Bsk&AXaDoe%m|Jx(fr;}3ECvST~Pmunz(4&(j~Ds~!xY~xqi*uxEqXTE$6 z+ZE^MmfW(fS9gH6=R|U!aDJv{>w#IF@7f%1^t!qY&}<&|&+BrYyj7=04D9hV&D(a8 zow=1}XT2M4N?ea}6!GMHzR7%d1h4RAal4n1)niYWyV8~KM*Hsy7#(yi;6S|4o97y- z+cgfpOjiw3UVkjPn71OKJ1M}(A|xOnL_vhRe5SgW(5VvI=u4Ucvo9W9qUY6AS9#!6 z^R~ZlYBaUw#znYQ)Zg&2dSuWT6F7XrTJsdXu6g>~9MT+xmh!lm8yAVXMjd-wZ#LKM z#MgARo^l^msYiB^|VX@ zg}Nx;x*heVE@hK7U&|&(7r5TFQ!j}0*&z3+De9KCgxUAx?_N*57FZh|*%G^OvGj{N zy@yT3?JiBqY3r^}66~@b#!D5H?y7z2F158&CFDFxuqR9Y5#%g zawer5d+OEl+Rl%gA`p-#IsLJlmiq7$uER!NzR0(7g^D7F%F8)c-+8a8e>Pk7iOL&3U!o?MO~-FJX?(5$F7qoR2AeH*3PRINhwJ?(d9 z3WipCj2+XkLsV|JTn%69`HYIDr9QjfKGt_Ev5ozf!|k=zvYA&!GO6!MgZ(sS0TEPv z1XlvsXMfpUiS6queI}}>AI!h!w`p7A+?OTAS{Juph!q?@v3yxBFs&Uitf_ixz&F*3 ztW}@W_75wnn5|*Nd+?>D^06AlVK&1OV$G*$$vy1RKK{TW?LnHY;>Y`S0rm^uC6}5# z?~Zfp;gm>xT}QV$sH1&twXpYz zbJgWhs~dLAo}g_zT;v~tMt#*z@hU^71dBV`wKBWf{e+?d<9*+%-kVgsNNLZ^nps94 zeLcHWRP|MzDnqQM6-5O}t`IHrc=XgfdY`k&UI`7`Fa6(>rQ23N*N>D7(xrgRuQ*aFM%qd4x=$2u}skHeHE!TFn#Pw+fC{I}8rdqW1yq>0hu=094qn^EXvQ0jrFQfBCb(7Do z=70Zfrs+;YWd&MnRp8tNXW)Ez=ZdXKM2c&2rqF7AVYAX~hs`$~cXfWe^8CtCHFYEL zEP9%}rFray_Y)w^|#f4^6q#n0xa~#_eD6&w%IGc+q=D3_o8OWgYB;O4z}2idG*Ttn@YNP$`|?~t%7~? z=f}N`YgJS+A8#Tb04>_;>PKZ)r_`9^hQ-JJ+3Q|m>zLnc zx|~n=-qrJFo69s?l&*LQf8G*2|Ka%nw^_^HgslG{QYR9 z@$v4n?sF$?dQftyY_D_CL|v!J0-Vlt3u_dS!sh@O_Q@_$mv%3YR-)mgwrJS{$j7T$rs}T&p%WI?epT zREtlk+dk_8!L6~6K$%kN+lQHF0Z2d+ zchzyWJ1RTgWm<$T&ncz3HdiY`TXi~5X!xnMipctk-8yq?#tTi(z-sps-k)3q%kJ5J zDOzC}-x8fMS@EyW!Q+olIh#;m?Xcs+@sd8%yU7Zg?Zus^%qv3GRFh5^g_+*n@1!2B zA5o&cWcpbl2X)%;eYDnsCt0)FV>%!D@8Y)U-Q2N2Ai5{h=Ci{IQ-gUT`E{!2n??t( z-K0F{!S$Laixe_v=KITde~WC%@88%bNzMnFr1gdRkMR90u+#n2Ea%w{%bF&O#<+Nd zrq;h(I!QMsT&AVv$VkV66Po|@?(ZxNwmY2nJ!_p-WK?AQ;~1H)h_QjSI*;V`u2-xI z-8}33qa*h}t&~@dc-NeFOLLmR_pkDM?$#{IQOnrYwq}~anq#}aq|UfjJ#jNVr_n_; zhTj$Vhh<7k8KA8WFE9x)sfv!iy#L_rQBIszoFl6^PcFC4I=)f4X^W3Q>8m+So=s8j zleARNEYkM*Fpc)rU3AxXv1S?V9iv}85dZcLCjy~dT=$;JJhUw55+*E`>A-@}(P6(^}4dH3A5tAqY(WzopR z#|ux|sesaUN7u6HNqLqM8!E+29aioe9BKN{5N}& zmvsvZG{|K>YEm0_{7P4veZ7NA?TQY!@48Za*Bdp%qg{RW@kl%qTbMCMN=Fzuzne4ZL#?dUmEkQ;DGD=2->QGHLONSK-D9dk zPu@}x#_r{O>Tyo(W_hYnzhr-2-)Uq-xf<~dZ}NOa@#dV2q_O`fc~<(YoztpV;HKps z9=}giDrsd^c-Z;PeIX9>zj|p}kFLCN-}rjTON+5b?;hPeQEUCyoR#%@XXG+Qy{&mL zyI-ws-9t5xCJ9NS4Jut){egY*caxP9X7yOxl>Z%(bbeQ4MDyep_u}l2+W(B_*>c`R zFeQVFuH>`X54>u*^R}8?=}9SgJ26siA%94Ga)QPNVe6;!n&}(-CV#rB@+7wVLAOrZ zL-YG;>hoXuU+9)gRI2l@7bmL{gFoktcPIgL^oEK9iBb8-ZhX3Y<8sBMz$&LF+DXgz zCImk(kI7E9Tog0%f`4&Q(d#?Mif`~V)?bu2vepe1Z?K_7>IwrNH-0BV4@Z$M$hp$lN_z-_FY*(TiHG8`~}U_$BJ}|$yUvgCm$(T z-5SQHEh;vBZ=xl*!);%_31{`k9m<;960i6oBlFbR>=UgSQ3fuRI&q0gwrW>jHg@Wy za;J4|p6M0ovw59;KysMZyZ+H_bI3*6`7I+Fdna?Ri`H0fct&zs^(`>2MsXTK=4ZuE zI+$_^kI^;mAH(-xPS5~tf9I-N?F;3L6XUl36}w{0X^UGs=;vCZ9Lr6r2WT%!n-6TH z_q08@mi(f-+pV|wo#SD;>n<}_dX!ncnCZv3z2zTbwwgts+x>C+aK7{tBIen~eu;e# zlIE4whC0~kJ90<3w9MFj$$j6+llz2^HR}Bxn>ySxZ+2;KQeVy(ofBSSWlKMo_DIAx zIQXuccPWNP-c2m^ih%IASmE%t5EHXXe&^n$GnUiOMJCE^x-9r4{(@|kV7l6hH4eLN zimQ~}`)9=anCZpEy0*rZ&270OPZPeoXY&ySt1$7|g?{?(l{a@Dm(?xq#_Fy8ra~F@_g5#c4EHEI zyLWvy4_9$n($>TTuPq6_wN{c#Tb5pYtun{;rTnrHd=-0Jg?B7pa&e|zNleV^t^_NS z3$Oi0Rn}S@)hkziz2(Tt?_tFmqEi(OnkWAiR~EH2cQx0C0s-1tnT<7LAD%4V=3OZk zCYS$k)T@bCRT|=ppVX{M+;zlLP9-q&nD516{U>e8-x7P&4vC1wz3rV5;*}>6)=)4f zDKYNDH0Q_Zv@uKGn5SJ2r^U3CYX3eN`Yt+ZnW^=sgHEujQe)_}BM^Y-MRhC|@ zjh9RgR#vNUm>;|$Krwkr#pL$Wk-4f=y2!CB-Djv_wjen#1$y z#e=b-PAOdOQ~PuyeQqk79#y$l7UD~hV=y$Nj9Re(x61jM=c-l4Obg*VRb}G=O8Ux_FXkyBpVTKD zk}{GFzZUfF%r%4AH;Z-q#`TaZ{)11)b!L6k<$7-IJ@-zf_%vztEsLft`t;uY9!&t8 zMD00pxZEo3RC^41rQg)=H(s%0)1m5Fk5i2~0~h)`FMP`3d$L8zGedK6%9~Aj!F*=R zx`g>6bVdrw?nux`PM~*~p77yos_9ka))QH9MZa_1Vg1ykJs%EhIlu7;m)alJ&{=%3 ztZj9gV@!q{-7>A$9>K#PF&WT9Q$D5R+CMMCdSIi zZ@S-3k}YXM*_n{UgphriRLJUMC7TOLkhdIDt|Ta3c}Wq1pUh%)a(NJo;l&^scohM!>Pn3TA6pRDJcg1(&`^O4?8y@hlk5zmy>gqroPxM{J`agW^4?g{W z_}E|A=6@@uf4fxu|Eie&p^yNyA3Fl%pSL~bII|5PfkBbq1;|6c36O!B$uGBF?cV$I zbG>^hrh#%?Hd`_`54GB5HGYW!pcrxxl?uJJc!ADYCZ;`ZuQbpNCyO{1~P{oMZrO#lKgv zGv@3^=SI_aMF;Tb5pQk>ULJ8|Veh}V>jyu&GA0JU>sxk*8GK*!f7BEITZTe>`akH2 z$w|t8tmDUM0OG0v!Z`b0{dWcVo~!=tX`m+amrp12|ND;|w)lCX{?OV0ZYA@Nn@N7W zMo#$m-Tp_~O#4&XymM;`vH9(X`TrrH`P}&r)BTed|L|W5q4B}E<21GoZO}+l>M+9S<+-DP`_`FD-3|@`A+F7eeyf2>6bQq`K#YubV#Mk77~Brbd{=# zY5?SjDy{EJ`Zo7idVl1rs{HjQm|zMw4SDy2>@wfZH{YIWZ+V<))^6k!Dg33)|D3RU zcMsRSRmbVTBm$>Le?;{w6YQC=kJ|DkaRy&4Q>+ZYy|-ydi&(oE4Z1;(l*UURFIf8` zis?}Xvf5b@rmoOe<4)-Cn5DP+7Zf-$s!NPo^tDs!Y5hKb?tI_dSFbne-2H8cIWUz8 z=i^@|=?rzJ%D@W(z@LQ2J+ZW8Bu^yxgh-I~H^!J5q^pRKgbBzbV&%Q!YC8^+(A#@G z;_cYX&7ufis0jbzvXQmBX3-VP!s|$R*EdcHLUHtr$|?lu^fETye<0_}9DuT=C&ckz1aQG?z(7T5Qm%h~;1RzkCklC-&2QfKMutUgv?YmU%z zoSc}H_mJqQcQ?D0of+DAbmpDq8S&sj@o*Enxevq3tnR!W<=D4QQ?Fv0QuC%X(?FX6W zzpkmEe9k#uc+MtrY-@nkZ3vt{lZ-lQv(?GgxMk`tqio?3Z!wfjRqoGJo0cYJ7AtlA z^6B0&Gmo1xDAT|(O{wG9qB7uG4FQ1<%~Eof?!qa?I%?0a-I1_bFRNMMNT6Mp2m6?x z8W^i-nNv^AMxR_E>n+e?GbvS)=jZH_Ttxg2#trNU^27rI z$1~;Z)cb9k-eY$W)QeLB5IkW~>qsY}yjm+(R)!XvGHAy&ifmz6-QalA))*AIxK?g?(Ygx0Yo&k7GQKFq zLg&>TQqGVk2Rv>M;azdQNxdpid$hE%HW$NVQ9dErBTXHp0=O=NaMN}vjn4xT70qsI zs{SvI-S!)Pc6esSfCkMc+Y=*L!YYI%JyLpv26hSgZ3_bE2Xu7B3C;0x&wHF$sMH9; z_mL-4@#ZLIrQox|1J@avK}oEmJ|8HbfS@Vt+2D#w5EU~NM77~8d>$=9h5pnP1IE7u zSFl_pa2*y@fUmQEzN9twMmF24qWdViDk9lh-OH^nBN{DDRdU5<^NO2N;WH&uY+5>2 zDUQ{n)p`G2pAKv&U9WoB2;n}Wf}A!xMz9>;)L#E@H4-Fa*ge8FM}#|j)NTK#R%%zN4O1p;sr4VftZ+Bw-}a^PKY5fo=$Y`l$2 zi9A#IjD99pc^|wcVswSd-*8{6f8BsnwS0hz`&aGKK1O@qc1to&Y%_V+m^>lD`Ex(B zZ(qSY_eoOz3cuOQlR`HwQf=GO5`nnK>MM?0)a6KpTQZ;%N+zNH;t*bWHx2o%nor**%?%11XgsA9BdWd#4 z**97Gf+8lb7Xl`E z6odfFw6{@d;Gz8>$_s7MGbo>P=GZf4s+^yPI=DBeRebFt)YR@Etfpie*bQ*L0Fj<} zG?a~fph zaPjFGKXFov=Jo!RZ{u7l$sA|lpVlW>wq#Q2|#Y+rPK|4oS_ALX5`>>O3+oYG+Hk-Xwe1`lN?xG}9#ZlGl?? zvm{#@D;~@^`|)8Omv zPjBLQYU^%dLd5H0qsHe3F+c_O)@5P=_J8X~OJ$*}inNSPy1DpTXBGBwUu^#QgT4Bc zAJ{q?)O0nXl2mU>CfF}tic`OBp%BX&r3>v~f7Ao}a`~~|d%A^woWo+hrk*nsC?NA| z8*E>+7wch}s#5t76!?`!Wp9`_pD@p||8)Xpo=b!#8(Q)%k5uZ3Hd;K**k{Eiy!0a5 zN6f?m#!|+GZCqC7+eKmU46O`BYJAD^v^(<%vd_1wlx4v`H?%XiFgM{uO4H}*n~T}6 z>|UNbG-}i6`WSI>!K|A7IF6&bONKu?UwJ+)Ap+%UzUCgS!$oGt(D9_Hp*n$fqFwXO z#T%AdWD=>1mZL^m;@@~Btm5tu$a>WcAtI#(QGu8PsCge3ASC3?o7~3=7n-j=ROj+8 zjG;nr5Z6k|Xc1f5osF z=6sutd&>$?#6nu9s=K??4OKGnztFvx7S!Z;-$0i-q+s=ZpXVWT_o5xdY-;0WZnBZJ ztC^5~uf9TN`6aV+0HynM`D7Q`--R*^yNROo8ku1|4#ui(g~Cnquf8tryan@eRF7fV z_efH!*VOHf7G)fZ<#?ebtW9p2FVY`6a(m?6;HSxswBkZ@96T}ILNh2b9*PTBxAiY6 zqs}F(1+;Nqx3TwqKTc&@FnOk$ni?_hcMYGTHPMtNF}4YT1ZgqlV0yo04T6Olc%tQ< z4^y3*9yJRcUFwSP#f0r^?p@%1kcG#4ph$&0Drg;(9ay>Q%NLl=XcBs! z>GikDx|5E^iL~!PJw{KnqX@$5@|uq^SKWDU<(A~ShtajBv}7=r^Xz9~EA|=nVnBr$ zwnkZw!IsPp2*_3?2|^Y4oeew?8*SgVUIO#&Y>2})cl(}*Ke76_=ODBB(V5R~=gOGci#^x@MbYH7nt!3q(={xyfj$|$1WNzY(QbFAI8 zQZ3Z0E18I#Rp8?FS?5pSlkLhGM3JUV%&+#Jy;q2Vv<&JAJckJQ4^eCC) zJab1h#jVQ6dfz;G{LG)XgYwH(X@Nu{P0aAxRurNS+(aM&=t%@l@IE{vOw^KpZD?8c zb|Ru?2JG#@pP|!9b=;!G8-2c(5Pquv#WO|jZmn26-&U%d<-#MfCn*EV&)ABsiL$)t{xw~(6g-9eT0*)A6_ZJY`|mb{*l9dm+(Po67VMk zZ(W@r9E${pXH{-eHLbaI@uRmveef!obLk?w!Y>h?BSA-0PmA_)J-V|0;N5+GY~|vt z(6*#X@q4Go7z<=-Wji=sR-D?n6Uffqwsn64nGVK-nCD?=?yd zwqRUsi#A-~P~G&OO-$b>i@GtpZo-^$F#MhM<-PJbz$JVTzUX_tJY|eWj$lUFCK8uZ zist*OQCuCd&6Vb#dTOSxHc@1S`E5LDRPgxFsg5enl~hKCt-k~NXF6ecWR;Me)sw=s z>j>bc`!K8t!IJ^Dun)K#Fwp{@1Fw|U<_<@N-|bF|nN6>zbR@USQBaz7bx6~yV%VSk zqI8U4b|Qa`Ph}uMazl`yv?Z8x_xDCB#JAg9$pjv*mmMFl*FFm9ypLTpS-PFK2C>p& zK$H0-#e1|Nk1r>2IpG0g4Zg@o&&PFy>JbAAyG>0Zu=S6$AVmPCz9%D7KbLwP=Cuw_ z%+?zBPr!I#bsIa+(pNxFSA8T^H9J~#*Pc&{b29>PY{1QfU#=MPo}%~0pEoOzC&e(` z`*O{Tn=@u>@IrI+7H_T>t!W3GFVgFC+d{#RC;DLmwSZ2699{+dC2Mw%=}+r1a$Chx z2kfAn5&i+m2{&6=)8h(j7l-eLl8eu5Xrx9f2OYtjktJmib>B^Xp{O@BAJq;xDGF{+njJMWi1O>>+XmW_kX>zwJ=G zfWUh1@uT1O@y{u!#0hP`k01SS+Vg($dfY?e_zOR0-5%6?O&qrSiv|_wqN@m*|3P++ z{%dAxSv|1_Gvt>BJ#vzrhj*tT{P^hqT@ma5Ru1+5^Y`5GrMNnyQlJ;f8=fjaf6DaP z)qsm%zOZz-@Wi(jGFeK-bQd#k>bPBBaG!cN)0BEu%RHwe>yjI(pDly^tiq#9eyT zXJ{|)x~?44Y4}O@5$|_&mnH9Z1-9Jb>tnz4X{H`5B0dowg^J<3woF*UuSp}XZ)M7G zPi?d_z1XOb2$rYznspSJKKTgd{Z=Hnyh}U{5Dl(wVT<#uR$T;qEv;;FdDL|nY#OyC zCZbjm?;fO{iWCqqRUFn<`)h9D!9a=`N$GF% z;}X|zf_fu8zky_5P4vck0k?)>gQr5O1)j&0Y@WZMe>TWOe(s1BSD>LIRh(OaJanrh ze2_3eU>~(6WKGZ`JK0AFkbsFcG_a(+Zl;T$9>g!y9BHI6czU63cBrE zBHP-xOob;4+Xe-6HC$46p1ZdV8r$T;3IOxV#!o|@&NqAX!DuX3Y7w0VqO+~Jt8M-t z7VWYH_2*})250ox7lvey$xhOLfDKC_@eZZtpFW!D_&Fd1i(g^sESdX`3l?v3UkC0x zeo?4nK9h)3Qhv-%AFQX3xth;@$>NGQx76{c)n{^q!ML+GU+1c`ihk9~G_=XEN>k&Q zX}tc-#Vp57Ufvb}hc09y`&=-M{$!rPbcTdH~z3Y}luHQqiq5$Lim;8TmGd(csmwHZTD5cIv6 z#49BS{8O=Y=-+=!hHzk?HOe#2aY7H$J!OMAI;y9`amL;53>sclOye^iYX7c5rz>p8 zx&{qDHr}S`6z=vO$w>z2cB^VvPZd0Ak3N3$-qG=xJk1^EU203qo!kbuTF8X7z;Z1vlyi(X58G6d0wO|YUs zi}g;QzD?+bZ4i8M6G%3SC$~Y`cBb2)3qrkpKvegbh;@3t>WlM7DHLvM`OJR`7;~tn zh&jYzbz$umNfb$g*%X{b3Kqkg3in-cB7I4Ipp6A{E4ix~#Ow7bKhD4My8dD^?^==6 z)P1qqrrzt>k@Mf?*P}mvAhfa56iX)#K(3&ClOvPgweqkn^H6X6hJ&w1chFgp6p>Zr!P%;w8M`zlSRLs zo=dLZ2JO3_(PXDolmbw(3)}>=-`{pZ#un1ehPGeOG3G%S-Iu4qXJbM|Oy@}H#bj{8 zOSH6^O?I5~n4Z@BFwvXaAf2G)PlQ23Nl%>!e(tMkyz?i&@Q4Gp*VcT*5iiLlHH)+o^bReIT~lw0ALy$svV4~2XmwsUDcjn_j0iaWVZB={iIbnTf9Ei-Oc8AAnh z-6k~E=WKK=h72XI&^*I zx!1zab*N{CZ1%Jc;Z?9!Nsqfk4bODMg+DpaF#B8#MCsLh#8dDU+u3KggQOIbc|VdT zU@{*m;*X@C{cJy-=P0_C8GWY6(av$j>|+AvDE5rdm>V=X$)UeHUn+_O-h4a5qh;v0 z@mm(BE-m9&5hmL!8v&@|L7$FhC8?0*=zqPd-L)fJMj*w#g2El(?v)U{7@zqUhYXlAEvK zXIFLf?sBz7cMCv!4IMNzIMIGdRqy5#p3}Ez^rOYfIELUBxHCSOz!T#(IpgqJHb1d8 z@s|iSNk^Y8K984QHf``1yeIA!ehp{0ku@Q+DP!EkKi=XE>mrKw3TX@V)VzuqP_rB=;bL7Q$DKGS?CRD+9zBga$AO_?A#g{rw(Gq>h}Vx@lU z%X8gm)&{q?^1>C25h1}TE6e!QyMZSrE<{FDNFuqc3p*hkGdO^(Xe%f8i$459Us+&{ z9k?6H|AU#N#DZ9*2n2W5D!xT5@QXvzsr|gdo5!e(6~08QAMt6yvH=vy*xCsDqOhAD zP_%*ponY1Yz_f=%t-VXJLk54-^OTAFBm09DU20MWY7D$c`_2H>94{{m_GQjK*zgx5 zZouuSJXeLzr?x&1>TS>|0lvoIyiWE3Ac!{w5{?`;IT*<4Jv;?iJC`Mfv6$Vg@$zP$ zqkFTYebOa3?yNzK-c5U1vIZ9PmQr>RWkMi|??Zq)3BvbmDy;Ki>(nOX3oIyaW8}So ztYzMs2|*Dsk%a|}9N|TzHJ(9q8^oL-54?KH5+UyJ;l%yU%s$iPHzm<)_Sh9#_(pZa zHmGU-tL&&LA$J0@46Kj%=M|g=PQw!?T_EawjYt>DUENxCiz1nsJfNKq{Nfo-SA4*D zp)vK+-I04s90uiGjHuG%p9*C=quSQH2>SvMD{bPyIrarwDIlZnVW>ddS%t|XPL5w+ zn%?7RXiqyxy~&y=V}$b=1$Y_jA?EtW4Q8Jvb2~>VGU|eB%7)FxDGO?Ary%EB^mD|# zE+)>+2u}uYQA!lwiRy5)?_E~*P};aI*jHbjo}Ch*`HVcZ1lck+I!v_=tk8HGmW!<9 zo$29zemkoT_0V{5uu9|_I^$8peC@m;mAsvb#JBq?GxhU%qc%;i>@0kmjthq5jk-GG zMIe=d8w^H(yEr6^^I4nknLvq@VC59Na^vZ+3xUH0BCQQUSdEni|fF)C1yymGcx3aeq zuLbVPOES=+mGxDbg9-ahH6o)5(pH9wmSr5bL7tCr$ZgQICOu%2d}Rr;iuj9OmD`|= zGcH4f{W<_l-&m7YsV0a)4ntiMi?Gj}^iijk_0Zb z?{KB7VudwJL$bLCWg8ck^ueMkZzZBW9^y>XtIy@zn4Xn%;P9gaMn(o!3b_%f9L31N zsV-#wM&aDmVg0!Ju%Vf*y!wrHoJ-fL8!pdz!Wl-MgB?>cw!VPT2%0Li$+v62$F3Xs z=gzsijtJ6O7@on>mwRK1RTAMR^mTL~xPUt7VlG|hyk)Rw|NGL1esZ9LBlY*l&6=gu z&FZbEG!sCJ&ODZ~)?lL#DNTg9E9XZm;yI z-sHewP`nC0@CkAxN(MkfEf)dkv2eO+8x#lx1@aLrjNly&c;%;bFuX_UGR``-$sTK6 z$>a%7gE|^Aw{Z{}MbahiJ4AI<)KXU z-onffx_bWX7;vE41)VGRvphD;Q8ikFML~}Hl&gjcl@=qLybXD>^)_D#&#VgwpS4Ej zaEQu>-JqUs?o((HRFbvf^m=m9e<17X2w$P5N~GQjW|8nt=0Kg+((=sEs9Vn;Umu7w zqXL}7@{JWF{!rF72)(lG^{Ut%#cUvYC&R0vH_FAs|6q}QEW~$QXbAie*uMJ#$``|{ zOkZ1adRB{9x+DNCt!WADFPHP(u5H|=8Bn3jk%@F4RfV3@k-}EY#a_CXF6ZaxN9h?t zv>*5&kOmCHAQ#dO)am7wbYUFUVGxcH6-dt#YGCA@;zB)y?Y8HcCAJQ6hM)EW-@|^) z6P%Emg+(|pq8=rE#hz8WyE;`jKIxr_S#IsCZorW%8RP0!8Vqqs*wc&iRnL|#V_7`E zHa4l`x0MqHSVtSdwo$1ZyX__`j|-nC`I8lH49c;_rR-KWN1=&BAmnitsJL)BLWqH z_mQK{8jwB5H$(cbARx6iNpi5Q1ja(X!n=WYJbOjFT`s$Mb4rm!Sxqp0d=zTH%hiy& zvAPbsVg1zhEq+U;3l_9w_J_lf{c}a#A~Jj(DcSzafB-B6oQbVoy)6W`4Q5sNmcD-P z?H9)*%46DQETdX_*yO77215^Yg~Pm=RWmKGy1E-qs3I57@(Qx-kv&?gZu4r2}OJDsH7~gahMU)*QphKaHmv!ggcFc!U%rtfH(~Rv5`T6aIX8 z5JM+$Wki^F@s))^s5Q;B?82LV!23A)5WSB`XM<%Ov#rB=W(N6(edVDw3{6+CvXz<= z+aMn)z=a%w`B|BE&2v4|Hp=L@I@Qt>I|{zk@;qY=g!LN@1(92F>W#1z2(!DoT5p3$ ztrzbJkk#oTkvRmeHOnmnb|AW!i@8CzL7&W0fs-H)-v+VA>|x&%3+U_7GpGsg912PO z&beaoc*U)#X2`Ui!4>J5^UgZ7-7l%r+L>+Y#b$ZCEnppdg|(Z#>p)E4-BPHt>HdE|Hd}0aDbX}~gj2#l+-R|u_u1Tukh=87 z^R{AXd1$cT-Qv>bY&}65k;r?!FIIa?8Y5w&st>2kII#+Iu|jlry%-tyQ+j$oiq>OT zavg#NyBAmG)ALw|0m8hpA`zg`{(vr_2~Icn?W-){zR%a}L^4j3_^GOqCbie@7O+3v zWk48u{uQ_8!kL7mhSb_*=y7v)Q_s#huC~Eer4s{(G4)FRgj!S>G z1xf85Ew&ZeKRm%^0$SlyEjp00`+*^6yQP%DrQAjS7cSmDbjqZ47pv$-g(zgY(acbN_e12 zl{Kv{6TMj68ggdk$gq)!pQT9?$OZ0GY)U&6NMJOW9OR?=G#wVE+1k_FbX3pqKyH*L zzkfyY2L=kifN)|Yzz;q7zrv1+yl*Rg* zgT{cYiUxn@zA$sLy9+@jRe|-Ig$?tk`gp!S%tx6R$lP>?5Y}PKRXBPcNK+f)Z{t{d zZ?(5o+(O)VxH+1_vRIxn%Q?YGzdAYd=v$5B&T9hT`A@Gxf=8dp=+j(AsN)*Y)RqgV zMR)GXsf6hW)vXs=ncAw9j+a`jJXOmul!4JAxm0AdDlam}fgQ^;TwPphCxS;;*8z_% z>!5`Lh}m_l)oddN&J^*Sd^eI^Ci8FeFAu8u4;IwpaTXh&MPH@4C>)tcs85-4pexjO zk!T|WuPCgj0=p{$33&W z&#O|emHW&gaEqF4fHCHdy#85Zm(kHhRToqCAMhCjOY8x!0kB*UM>fXw-|xVHEE52J zm~aj|;KvL#6_*z*d1wdx_!7ZSR!+IVD08NAnc<7Tb4XkmD)~Z^fgUt((ZJ%^w4C~j z0Xo$S#vP|}y-|j*;ipE$L1xSaRptUfz=GOAJxWR;ZDeHy*9ji)UGafHrv3-k*&~to zgcW^de*kBW3Qv`SBr^|DK?bYiZbV=`l`X^St)&;0ixwNl4pn$=mdrGl@;HsNYEm7U z(v0Q~u4;9yey&}VUc4z>S;X%bQWa1qcTMMonU%toYPnw%ux{v6+fdB>%BDf7;@41Q z)vlo2k9&Yj* zogbl+PaTb(oh~vn_@+$RO+tC_N>eOe18Wdkf|4a?Cv&PAha4MJArD<3hOOmnV%TbC z4LC%_KoP7BlAz&V2+)r(TwNU^kbNUMpDYhT7cOl5uYnJI!L@RuGZ`y$qOc=vJ|K=V z<4lZ+@RwlTGr6Tomd_NU#c#_j2f0W(?w%*e@wXht8+Q0w2#h~kY1U`Ej>KFp)~0?@*S_J^0n$df%SdBeajz~!X%)CGE ztMxHul(f9PwAwN*C-Pp$#S^9@;~Yl)HN;%ZzKOQQ%?fLuvM@Qwv4HdwU{jjIoVJOF zUOyRd+?KY#_qp%0p-WEURbo}=h7OI@_AFUjZb=o_>QlTyPV@rKehCO*f8~TWWryee zgj4lUZoGiz4gxcmOQ}ulR(*8Or#2N4%zQU!+4n-|FiBBTBk!c{+pju~=fX-5@cQ&^ zQ2WDpjOzx>l|Ztt4BeD*(*orf<;hFY2RBhNS06N3H zQg)!ThhT(?^XYV7wevl44*=*qce=5Qyy*48T5b}>{ekD&Ww>yk>o?Ws`V5f4a|G5~ z7Plfl)yDHl#ELW*tF#^;mGU}Cj&>Al;QH$PIMvG1n#i=6xE+0im;fl4nsvmVNdx=u zxNv5QiUF^Jd-@3{r;*W24{3i)A!vBE^h|aHulLx~`_C;4f^|sG8_$u$MM)o2t6^YF z#Sgp}X4DH?if=tO0IQT_>gD7_u!{(_R@|VOqsX(Bxp}^O(nj@BsD7)*YVOS7pdqXi z5F@H(M)nO65wu%iQ{PTD)_3!J4C4k;d7*z|*f4+>{#fOlHU0F^16`vMNL-AN=O>7WiPOitgr!2C$Z!5ESPfe4H8q;l({Rqp|BR8T|eI5=@4 z?C@A?UnGK{;=X34)J;wSs_+h5Sdn2KR-@8EV(pdG#odhl z9+qM>y(C*iBGEvaUmbnCNrE)v3kjMeQw0PX4uVYw7(6b)V32qcSmHW(Z53I8tib_5 z{C7h5&l5NY_hJgMkYyCk_~;aNt5ZtU()tnrU3(>-<_D;3gT#)7)_`j=1Xhfn2q>|< z6~@@}zW8B8q#JTOM=NK3YHR){Ho^e&c^PJiQ4J3eL$68J9e3kALh3*Gq&&3;c%zXS zilY?~{&3%kU^35LJNo?Hj%fRzh^Vj}V4;ypR>QqTC7=0WM;|*BcJ1iP9(L5UUbw?8 z4(%J`UEi>uUzCCV4M5!BHY9!rZ;zWSG)-!dxy`I2Ee2WI8J`nD;5E&=_tL6GXW(h5 zp(sV)qnihLJ3LO|<@2y2Z-?tu_#ND78VNJ^(>ucmsvTh)`@^W^Iep|5DqlE{(umFP zpd>Bd_cX-;Vf6vAiL9^+aLS@6PDjf1HTRgUY) z8GU})*4iO(L2BuPB+D_j^UR#-Wh^v;TWa+oc_k%zK%%r|ogq6dqXFIAgrFc}qi#Tv z^fxm4PhNHnUcPk>iu5z&EN#nau$n2~xDB}*dUW6>G}3uK%A50SK;`XgMYk=h1-m0UC|VKWVH2In7{BlkMqZYv`E3y-tu%^n~KlqD*;P^6OrCbr^=)C zCdB*l{IpDf$`WIxJsR#wA0g^{C)*ONUXUHp+UcY_xWJ$KrS>5m*F8V-gH?(gm%D+-vK+Ox76to!JN38ZZw0(B_ukFX+yZwX_ z?dRE7{(tP}{qOc;5MlvLgdW3(g{4oUZ{>+{wW(?gpS2uzYK!Hr{l$K^L86AlERA`G zR=in4P;7ww4l(v3$h06}SQ<`q8zi5Jm3_t45m{k7>A_l@)0vTsXHxDkcs8_kXj48VC%F$mqi4qVg{n6&)t-Lc5_ZpTW&iVleAJJLfWF)m)s#@o|gMwgP5n$Fu;jqY}pPBcqY#HA3V|I3_H8q)lJA#dsPK@ zTLV2!cLp6fb9|Gy3*Ajq?}dsP=RJrO0MbQgAU}&=UE2Txt_)i)vAj4?JPil(lDi>wFrd=P4Z;`vPfqAbvj>mU zkOr3BGe=rcr^JWT;GpD7y&-Osn=y?Prme%u`5sH3@1f_q((syCgMgA$oHgOtHi)4g z`D&iaJN0flQ0JJkWUbTruOjJ z;h-^Hcm} zIEkcp%Bpm^@10gpmxq#^Kk^`CT4ck0_3h`A#i3&+Pch#zRZfSaG@Z2=A4cs<@NtRVm9n z?QwdcGa+$CG~=50hw4YkuA{T&?ap6P3iS_*QVrVQh;r{;7W8AMu}X8hu@=pa<%An& zv;p8Zw#{1B24>sUKwk6Z=9%8l^yW4Dqc3U^631%e=B+xna%Kg0a<$c3yh_^pz(CmF z5N=&KRWy>>={Xwd&4&la&Pee4MO@ROi!g0^ZE1PO>dfVlV1@h6C-y0`W<2$SyZ-=3 zJE@xNkF38|rh1HP*D1}>$`E5b_ZtF`_TMB~x7&qAiA@I+{zSPDd$&jJy0Wwn=$P1n z3cer%m{ZW&i1LF`mQT<9gXVJ_ja}-*yx-(W%riyaVL>`*VRfL@X?R86f=nD`pgu2{d&HMdMK@6w8RC3qttOqZ~>6Wf{-0Jk(F0EYr;$2RD13~E~1x_SdM z^cCjSMTLr-j0PVXoNl$yT=Tdc7U4&I*+`kurig3wjEsMPBJCtQjhp=zA|5BI!gk7% z7vq?Gutem&>#8$`c~+>O^Wn6dVnK)WVKUa~gs(b}1-39!_+HG|x+4t`ar@9St3}Xm zoaQbjSUa+(UurkoJ7G(A;}FS0mne=rjM4A1%voQqx3q>(Pit^x>U{l_`;JxY_QaFCQFsHQ;!D8EX| zSOT$a-)?B@gP;r$eHjbve*-J~*pIl`qb*(0UEX}fs&P;W;TI7%?0TlcWUl1o+{u4S z>Z!~aK6>jgC*`}cDsbuTG@AN|9gIW*ewz7~n;iz8cjoTK$L>0%lCKHG+6U+2k63TU z?8#s&B;hx@XR_9Ttp+f*#s}@)=w@Q`t0C$6zFPdnE!E+uDkJ7H&@-5$6Bss*< z<;|ndd@|ptVYyrphV+rkC?Y7*3YC#fW*JBKA{)L*ku2-$-sbu;n`ca` z_w@JII((2KTutL<4m{Nd;wfvi>%kl0LhS8Oip4-02 zOvC%x%cJR|`@oEVw)M8{XzN-Y)MMxrP@+(cT+4-++pn{;{Yj4OMIC(^;n#Ep_mVuc z1a7~w&=rY^8yH}S@9-EP58-Q>0Av95>3-su$tXg$de^Q4EaXlNZ7I(hP^16I)eN;} zJ=DLu=#gE}=nMu*u={}Y6@W>eEPeqo;{U-T*#I8t#7~dZFU4=U>yZZTAKcrJu=|{L z4M`qx6h~;zRE&2I#h%V~LO-gdUaXZuG(|+M!`@ZGyPeFx&^--ckbsum zzoC#)?FH#nlJTTCcRN4;?U_OlZ_mzAy`(b@GZPInJ(j)3tfZ;b$e8DrZ+sziUy-%X zprGEnV&0G3-jxycNk>&3)~=TxQ?ZhN)AlJ02yX)%fFP#YC21kl;OJ1KBA_TACKA~| z=WN#yfn>q*PgnloJ5n+t2DjIH&~B?_FV1wjIl~rm!I%bzz6yFK%hDXgs~n!-9{!f| zzd9ry03Vfd4j4EE&Ecg{$_L(ihFQDDrA0b#MsCKq7=^R&RD8MmvfGw~+pj~0y8g`@ zhzQ2IZ+I}*ce>2daG^_gw!-lj(-3~b2eI;{&jj#&?v@V+ z&AN-`IPX+P-SS&^`ogCmo>q;L4KVJ=ZXz?+9OMpeJX$pRT(3BzXp_GoUqq;hsfdT- zu%l9=7$=M4XZT^$W@Kdyz>|RJ_l*e*u{9xps%+feh7=2+r1PWq>=|o>_Ygvme!U2l zkt)UMaj(u5S)z{mOAP6Dz0iGA`!KX7{|?l>PxJ=fR)RPBgXTmff=(M+nCAr>IfnJG z#|6)66RHowKfg>5I5bhQ)PGWvRe|+<50@vXMl1o4gjfhhx?1BfTROq{%sdu^Rbq7w zrX|DiSI+$T*TUFNNH&dj4=(Ul$0Y;B8$|^?0?DhBrs4Mk#RB61pLC0iB3RZ7{`hC& z_P)rO>ZhnkpbPLxeY>#nH=k5@1O2F+QbAEI>bb_BZxK;gDn89m@14!OLm&nES+UXO zqWNUza`Xm4>{mxAlmnvhXM}kcg5Vg2wy}?f8BENg2`M+^U33wx{Ty?rfi=MZy@ax1 zXlo|uc{lxoT{?wPPxVEZC{kZxO|2cnD zhlIk%%;=7OuYe>N9>~bLq`McSFvplQ=VTh=2$n`&T_!E(gdQ zP0-9<-l-2ywv&t4=%tj^+t{#OEyUD4>FIxT!k!~+f!k+g0D@v^0i*PAdg=zwf@mT< zir}|uYQlCm8z$GEJKLyw?B0_(mvK;jo`Ow>nTyH{X%XlK!lXj1d&a_;-Bt)ExCcdD{o>2iCvDHlQKo z4~?9?+v9d!LF!2n32q>9BgQsWbEAVFjIw*PNB+BgsHFwHYhW4#jWeC@_Ze2(Vp(Yq!I!d(Dg!+EQ6#F|_W7Y}`a%+OT76J6yVT;%sm>%c&tjJNBea#QXFCiLKwWUHH?!9<{3It&u$9kw zJz0^E#%kH1LXn==e4-7^E`hBK@K_uA)&z5dSj1NMmlpO9T z8h<{m8Z%ZcMBQ8BnXsi^p8_udgh#(gW-XCK$t?JhH=sp7cvva{C}5LF%DMd#?nVDd zBsY`MX`fo0e6M7*NGT_FxvUt`j>78jHrCLa#c1HPj^{AOnVvE zPLg8!p7gEcM}aAJA}cu!R7W0bc&rBWt>^UB$hPapPq}W2A}w9nkL@NZ(Idxq*zMg! z#ldr38DJ&>yxjRNC6gB&O1O~nY-UIP1_D6i%VE~B2SxE=3M>6Vd zI|?M|>fgy9H-I2G?=58l#g5m@w~u$GSqUg438ZBW%8Nw2=8T#3w`MAM5YT$!S#nga zBXz`vW*opCqvCeU{?<=3-~7<=hkg(DhyGziZXM4S{f?3pY=H#C`gf4BvZhsSDgOye z`P}4_Q;1qR_HB8^!`Zv-Qjtm@bgqP=#-(09?t5EK1W8dr-<;?xUFHy2I_(537hW(4 zW~~UL@1;ezX?9M1Pu#kdYkx!AHNS$Srr*DRufl&qu?m{~cIA0N&}iWyLDPyamR(lmAD}w zLfmjKqs54bh=@X!CAMk-QR9Nj5|}C?8k8s~R1~72ii(&jAj&qfC?F!TXavLv1lc7C zNeIbga?gOa{rdUc+k5X1f5e33yyraUInQ~wu@~0ls99KwINtc7e!KLrYt*x&UKcJ6`Xy{*SnX1mr7MQXxf7KyCUFf} z^K&X#+pwC&s^z{>3}jw;TDT7ult#*IBM zHvBgx`1g)ZP;WiB+HIp!m^>@A(ZP1h%e_B7jM(g9VeydA=je~NY{qu{bBW+63 z*!maOXBf^CncsMOchd66ug{1g4cAMaROgyj?~>?5q)%DwknIp~7`4QCZRcw1XC5gZ zJ^B0fJEd0*>k~GZS&l2^_P~si=+6a{=zk_3f304zrO_T8Q8$M$ewEfW(O;h8Y#-&Z z{_@M;i-xA2Y}{D)Yg8o`^W5&+%`JNaT{$a`s9uM?kDr&WsJxz&eVjVlKIvU>LSy;i zGpW1zbIS`%YO`iC~%A4dBASASkLf$#b3OZcQyK1aQE(C;;-d? zQr!#Af4N!V<0gylHP!LM?pk%hJiy{bb9bwR(YKz*boh>c?2<7u)vx?maqDFH*BQAq z<^3Xe?4{0$6*~^H9FERTIWzId&9P6HG+i0m@^IymWp^jcttshS`QiZc#6eMYFf6(? zWypX2G!cNo(LD-W9{Nvql5oCmceu&g_sV&d#PV9Qx6AMD^xF{{+ww5}ncFVr-X(qC z*k><#tn>V;DD+>a0jRKwUC&41)S{LG{l-A|_S?hNu<$ncxT9Hb&h4-NN1|?5N^YiY z`xy3_mr9@Rxzo=}4O=%46u56c7q|w$^2r{hjq&R|&?mKUaLLm$I}?iyaq=tPyDw_F z*Qrs{X3Y=SIQ-)aJLp6L4iV(S+sQxnWlPb2l2d}$AyWlu!tjY}ZWD8=7pl#&fAoGZ z*VEJXyXTpEGUi@A`N4KX-_)%4bGP5oOPJ?T^pt5>_qN`9qCWRjWIS`x?+@atRfomL zgVvV)R<-6%`%&ARDC>hT!`)U2syjIsW{=@$NFhv4G6N2)J^1AEdcW$_C(MH z?-YMk-AiE_;NNvYZ<%>x(pmYGLj{2sKc)vwo||`VP6KoO^7T^v*hQ#R{=tlKSvhn` zn`eO}^hwOJX2mZnrZr89ZVY;~WzW>A^p!DYlMfwR(K}?6U`xTYkyp4EMzrX|N{PU} z|Ab>0ETPs6_);atE zp}4<8C}jIrduvKy3(1N{16u%W{@fgi{F8)gzg)jt%$i?MW6N8u;%zr(8I7qDxb4dF zuW^3nTe5i9#Ub;@Oq;eP|H_qNGAx3yjH!D6F;ihQFS4L;n^l@_z=0cOqaJk}~^x_hB_dyi8{O?f=bX7n_6=I~GBe)T{Mf>=Yc; zV{^R7;iTvkZCd7~s5a>SXN}%pwET$Zr!3kevYHvN7JRB^wQpblSvMml0UCl0{#Z3DiNS#*vZ=xUxc$e(x~K3RK9Y|`^y(X=Jc_(!d54rozs9spRnJ%j z^61pJo10yi?)f;wN|r)SHn7PJw)j`MgP%G7ak8kt@u-d^)zSNxcFoqkFxUS_<1wN5 zKQyuR45M^|2)CD=evWWD&1k_R@3OOJbFYcE*^d5H&91sbH9MV8Rx<}l&f9mhtA7*V zZa3R955E^gyVis_EiAU!x9JlN{r@o(Z@=*sbK{6}{)m1A?yB+BYK8C37C! zEqZj&e%&*hC1+1JXIk%Fvy*A|0jW>1f?r+@|+AYiCJ+vEhOo~4~ zbnIl&_p`BAlQV_B(o_|-r`duc&#n!7^F9No|XU9`!aY}Z0pnOso6`)hAP>Y^{L zPww(pKg}%5c;dGxuB@7|GwbEm->a@Ynm)XEU((LZpU+ITJ283Qi?=%gM3enrOycO{ z3vxjcCEDe@{&4S6dRl@(M)q*uL+Ab~v4_JE7XH8{q$fmT^D+$1S$jGtq}I@u|Gmxr z!kSWfUhQT9capp=et|nogrxb8Ocxmj{w6S}Vyv^d@IyVDf8m(_#<@F-b}J^rJP7Qn zCHJxE3>-~^j*Xl_`l}rJ4~6{;yL@39^1Iy@2I<${v?jm~k`-PDD>Nsc3O7nEW}I4g z!!6=hss2k#*OBps4QmeCj=Z6K_mQFBzRCBUMYUhOb*FDhawldQx6>fQY)WdO&gkd~ z>c?N#rAB|TkRAOeg{;!rQqoemSGQqs;(=>Pr%WoEGaq6PUNvQ&{75`2Sr;&OeP!|Z zh2cSCkIug~TyVY%naJ|i$w$Y!`xqGq>$p{3We0_2#8J~$J|8q^)5(z;`(=4DE5{S} zMf`r3eKUX`a!)OSr1W>T|6BB2&HRvcz*my`SRqleoo=)*^N$WH=E{ZYyg<{$9c4vX;)o_tXhW#ujmN#;FxkZhOybD^0eudev0-D<@%2 z;ksP+J9gIVFEtIC5^y)-vGq*JS$yr^!6Ezg{QBc4Vgdu z(9KM^3Mh&?YRc5S@to3$%vz!fV_w2gYS2DmL%9{TQ1|q^8CBNPpD#>tEUlE)r5IHE zlpVZkbMgVeWG?Jm($ zt~=88VA``3lZ>OCL>p|Yxx-KqqZ;Wn57JT+YqQpw-fGP;6fs=e;R>NfeyxDmpqr1# zp9!=S+qiB&YTsnc8&UNzG$w(jcLZXt2J7PqC5U*?g&eq#WvJMhD1f^URFf~}NV>Wwt%h| zi)YC-TfZ}IgBuF2V4W}w6Z1x)8rZEuuE^2b#1S{N5j)UAF29w-#(dGfCDb8Wiol$y zG4joUHETQ)O*7O4@QLUgJr`f4BO$~q5(yK662OSWM5kHf;F7f>__E_UhD{hAEj$I6 z0vg>LaOU3(-S4>qoQb{EQr_Jsz4?f78j~(#Erlzh=V>WzJ1;n`qe{E+^|9h|+*G}z zfrdxK3Ke>ANmE6cN4nl7(w)`>zsGvE<}ND2l(xhpH?+0KqcU`lwhWoQdwilyUyCIVYEy~n%`;+o5!_cp#v&nCcq@V5)S0d&wR z84Z&75_Z&ls!Em#*5>B~HS+QE-IKJGH_q$fKju2o{m{iqOwnW|v8|F>hrULe)Ol2S zt)pgURIZz3F&@eI2JJ}0R4y{7O<07kWGs1gcLCuA=)^?d-a_AO>jnH-9l79S&yz9E zGmm~kXAfcDasuf%n?Z1_gfI~Daa3tUgvd+17A))Y@2i1yw&pAe4HtromOuutPu= z07euDr5mlS(KptJ#$>nYo!I_tPqf7yamrhzGi>TjzpABVa#dU0Gm6UlMiV9w@O=eZ z%F2^$^WEIS5bVy{>-Xieq46qdZbKD149zU7XC`=zW2lz$u@pw&TtOeByrsg*&Jjbk zl(3Ms3da)+>3*((mLg08Y>o`NuD6+g-1=08q*NfY1vi4@V$nbS*o$AFaZrUWMBT2I zZEl5w2~5H}<4+S)ub~ey)fUggYDcs$4)jGD2KwWhGsLu)H26-i>mKoWQ zArBQB5|}Y$>_xtlvQJByPJKdEj{pW#eY4rgtsK^U&?{@h3$eS+96fMpCB6(|ju6H2 z1}+eV$VVAOG{9fCdGn&)Q5(@)$WM$0jwrHR;Q{9UDnT^40Q_3@KDH@oYkQHRr9(BN z5vv4@PH%bWSoPqSN(U%>U%hL4AqGBs%zIoqVo(WD%g;_-2)y&#vnlc+s`J>XA zRrP_$3tM+Yl*O73%n2WmIlEr*&mh)tfqdj@goyc0&xNBr2ayN2UgF|eWDW(}iIa(y zsv^xvCMxr}`x;PpA1Eo9k&KtKwUj-KK1(BApn=ig>>luZI4Zi%Is%c}$xv;mcG}7( zSxIKm|D|8y6-))pH=TEFSgZ-!%~0v@#L1V2jeJd*AKalec(!RuJI+8fkH*-`7x@9n z2kENytNMmXh2zoUGVu-q+lR>Rweq4MjkJ`m=V4;U3bf6XQIkk)hYvzV zv<7FHW~-wzTCN!*VRQjW8Djuac|H{g>E#OWrtyL%zUDZIpd&nX2?_~W2Wo^Ynh^Ns z*-nt}LNSLZK-8Pob%y}v9>{o~ZW`%Un?^G7MQlve8ZrT5G!<>7c}|ir zi8YLHNPCQkwWI4LW+R1K$|l!5nz%@6yGuO}EqS4g?Fc5Rv+J2DWR_(^o9cJtytFR3P$Lilw*L=FcH6@>zO=J%kjwVk;LWLAWP zLFC7wM5sPIr@e!qy`HsS87qHnlMQ@rf{2TVyg@LAz!%j>Q}_FDO*jpe1@PDh)JP+G zN!N>j?D~ys^8}2T-9hBdLtER-lX&c~`$T3OavH~GvbL&sq9wj!RI@(<%9OzA5R?zJ zs9XIFc(4^Lj1^yRLta)9o;3B*9$Q10lP^hUEdkKoMl>UnF{K(Z#^eb@J=9028bRhd z8VBAVajTo^_}ccal1kWmFo?WGRMl`nne_qy2`@MYf?*2XNUn54t|=-|TpB1sX(|=}*{p>i=Gw~~$HRyU zSu+6TAZ;vu*v7?K_!xL4?2uQHqvn&R_D+1ADHrPAo)qHZp2ItTC7Y}JO>Y#y$53&42j6Q zH<}1rM-Eq^18S&Z;Xrb;D&UDOXdM=}f(2foDFJ}wDKpug!(Av96|GkC;X+^4(E%{l zwZH%`IRhGBC1kvJ?3;2JQ4eZ^zw2mXoOp zf8fJ(It2P2Ocyw~5w%c{6X}PjP}3~>&+9YhrR_Fyu*o3szEB08ME^WV?w{r=$^QW*uZb}(gcE#G-Ir+pnFjp z3aaG0utn7wD=77XVVz1E^0O`*dMp{F5J< zx{|dQ#ijT>oO3NiA1$e1K|1g!F*IM9w+5OfcG^_Qcc>kk`(`wj*Vz#Ex}op{xOb!* zLCH$LV+DX`jQiaX8GTL6&>XBXw=Y7ala%1@AMN>?IlE1H$PS#@vmnSGsv@Z0;b>C<1Aei- zg$VZ`wa`iH2K5@ z`bV*@=FC~VERb7-^qFA#NJkTl>E#X{`*jjyOW*2eF%lxT%2b(5Y=~%JYC^Zeo7*07 zAf1YR0r8r!eV7a$U3TRt2+9w(HDoai?Ck{ZGInefYQnKURE-odF-Pa5Vc&X3l6{M32B#jyZ0hP-OsK%i@bgLgonW1mnvy5=+VNY=)u0=|BLw;lYGo(lU$ z_#0|ExEf3794s0Lv$44o(38mdPVW5{JVwZ-%B#^<0smGj@3L}7YiL(#wK7Zb8Yq$f zzFXDH&`h4)dj=x+Q@;b3_dDTXXaQ1yI~+M!qg7AHbedk2gZ!0)7xMp6fSh!&SfT8PI-xGFPJypt|W z!n6Ci#yn>tU#UE+P>kEoBk24!pQk zISCN66qVWW5#?F9IG1*Us~DdJTB?AqpGeFkSxm-5n&Gq1K*&uBs7i%|stG5DG7S>j zC3r?FHq+;o3VRN=)_|?IKHJ(o0mfY_X(ArGVEwjoK<;GwXel%VItN2!S9#xJ&UmPo z&$+6vt1zGPKK+nspu6lLw<~6`XLoc%Pf48g19v_?qvrR)PkxJaj@gUHWp_7m@vv-N zLL($%LFz^+6A81Bo&4iu+YmfPy$lAnk-P+k0nN`0lD|#FMHOGa^Snma+kAn1atf-g F`7ijPTY3Nh literal 0 HcmV?d00001 diff --git a/frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/main.mq5 b/frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/main.mq5 new file mode 100644 index 0000000..b34e0a2 --- /dev/null +++ b/frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/main.mq5 @@ -0,0 +1,581 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_H1; // Timeframe for Analysis +input int RSI_Period = 14; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 90; // RSI Overbought Level +input double RSI_Oversold = 73; // RSI Oversold Level +input double RSI_Target_Buy = 88; // RSI Target for Buy Exit +input double RSI_Target_Sell = 48; // RSI Target for Sell Exit +input int BarsToWait = 6; // Bars to wait when RSI goes against position +input double LotSize = 0.1; // Lot Size +input int MagicNumber = 123459123; // Magic Number +input int Slippage = 3; // Slippage in points + +input group "=== Reversal escape (intrabar, multi-signal) ===" +input bool UseReversalEscape = true; // run while in position every tick +input int ReversalATRPeriod = 14; // ATR lookback on signal timeframe +input double ReversalAdverseAtrMult = 5.25; // close if price vs entry >= this * ATR +input int ReversalSignsRequired = 2; // how many independent signs must align +input double ReversalRsiVelocity = 16.0; // RSI points drop (long) / rise (short) vs prior buffer +input double ReversalBodyAtrMult = 5.1; // last closed bar body >= this * ATR counts as one sign + +input group "=== Trailing stop ===" +input bool UseTrailingStop = true; // move SL behind bid/ask while in profit +input double TrailingStopDistancePoints = 120.0; // SL distance from bid/ask (points) +input double TrailingActivationPoints = 0.0; // min profit before trailing (0 = same as distance) + +//--- Global variables +CTrade trade; +int rsi_handle; +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; + +void ResetPositionTracking(); +void SyncTrackedPosition(); +double ATRPriceOnTF(const int period); +int CountReversalEscapeSigns(const ENUM_POSITION_TYPE ptype, const double atr); +void TryReversalEscape(); +void ApplyTrailingStop(); + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if we have enough bars + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + { + return; + } + + // Check if this is a new bar + datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + bool is_new_bar = (current_bar_time != last_bar_time); + bool in_position = position_open || PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + // While flat, process only on new bars. While in position, allow intrabar reversal escape checks. + if(!in_position && !is_new_bar) + { + return; + } + + // Update RSI values + if(!UpdateRSI()) + { + return; + } + + if(in_position && UseReversalEscape) + { + TryReversalEscape(); + } + + if(in_position && UseTrailingStop) + ApplyTrailingStop(); + + if(!is_new_bar) + { + return; + } + + last_bar_time = current_bar_time; + + // Keep local tracking aligned with actual terminal positions for this symbol/magic. + SyncTrackedPosition(); + + // Check for existing position + CheckExistingPosition(); + + // Check for new entry signals - only if no position exists for THIS EA (magic number) on THIS symbol + if(!position_open && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + CheckEntrySignals(); + } +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Wilder ATR in price units (signal timeframe) | +//+------------------------------------------------------------------+ +double ATRPriceOnTF(const int period) +{ + if(period < 1) + return 0.0; + + MqlRates rates[]; + const int need = period + 2; + if(CopyRates(_Symbol, TimeFrame, 0, need, rates) < need) + return 0.0; + + ArraySetAsSeries(rates, true); + double sum = 0.0; + for(int i = 1; i <= period; i++) + { + const double hl = rates[i].high - rates[i].low; + const double hc = MathAbs(rates[i].high - rates[i + 1].close); + const double lc = MathAbs(rates[i].low - rates[i + 1].close); + sum += MathMax(hl, MathMax(hc, lc)); + } + + return sum / (double)period; +} + +//+------------------------------------------------------------------+ +//| Independent adverse signs (need ReversalSignsRequired to exit) | +//+------------------------------------------------------------------+ +int CountReversalEscapeSigns(const ENUM_POSITION_TYPE ptype, const double atr) +{ + if(atr <= 0.0) + return 0; + + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + int signs = 0; + + if(ptype == POSITION_TYPE_BUY) + { + if(entry - bid >= ReversalAdverseAtrMult * atr) + signs++; + if(rsi_prev - rsi_current >= ReversalRsiVelocity) + signs++; + } + else if(ptype == POSITION_TYPE_SELL) + { + if(ask - entry >= ReversalAdverseAtrMult * atr) + signs++; + if(rsi_current - rsi_prev >= ReversalRsiVelocity) + signs++; + } + else + { + return 0; + } + + MqlRates rates[]; + if(CopyRates(_Symbol, TimeFrame, 0, 4, rates) >= 4) + { + ArraySetAsSeries(rates, true); + const double body = MathAbs(rates[1].close - rates[1].open); + if(body >= ReversalBodyAtrMult * atr) + { + if(ptype == POSITION_TYPE_BUY && rates[1].close < rates[1].open) + signs++; + else if(ptype == POSITION_TYPE_SELL && rates[1].close > rates[1].open) + signs++; + } + + if(ptype == POSITION_TYPE_BUY) + { + if(rates[1].close < rates[2].close && rates[2].close < rates[3].close) + signs++; + } + else + { + if(rates[1].close > rates[2].close && rates[2].close > rates[3].close) + signs++; + } + } + + return signs; +} + +//+------------------------------------------------------------------+ +//| Cut losers fast on violent reversals (evaluated every tick) | +//+------------------------------------------------------------------+ +void TryReversalEscape() +{ + ulong live_ticket = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(live_ticket == 0) + return; + if(!PositionSelectByTicketSymbolAndMagic(live_ticket, _Symbol, (ulong)MagicNumber)) + return; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double atr = ATRPriceOnTF(ReversalATRPeriod); + if(atr <= 0.0) + return; + + const int signs = CountReversalEscapeSigns(ptype, atr); + if(signs < ReversalSignsRequired) + return; + + ClosePosition(); + Print("RSIScalpingBTCUSD: reversal escape signs=", signs, " need=", ReversalSignsRequired, + " ATR=", DoubleToString(atr, (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS))); +} + +//+------------------------------------------------------------------+ +//| Trail SL behind favorable price (every tick when enabled) | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + if(TrailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const double trail_dist = TrailingStopDistancePoints * point; + const double activation_pts = (TrailingActivationPoints > 0.0) + ? TrailingActivationPoints + : TrailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + +//+------------------------------------------------------------------+ +//| Reset local position tracking | +//+------------------------------------------------------------------+ +void ResetPositionTracking() +{ + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; +} + +//+------------------------------------------------------------------+ +//| Sync local state with real position in terminal | +//+------------------------------------------------------------------+ +void SyncTrackedPosition() +{ + ulong live_ticket = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(live_ticket == 0) + { + ResetPositionTracking(); + return; + } + + // If we were not tracking (or ticket changed), start tracking the live position. + if(!position_open || position_ticket != (int)live_ticket) + { + if(PositionSelectByTicketSymbolAndMagic(live_ticket, _Symbol, (ulong)MagicNumber)) + { + position_open = true; + position_ticket = (int)live_ticket; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + rsi_against_position = false; + bars_against_count = 0; + } + return; + } +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number AND symbol for THIS EA + if(!PositionSelectByTicketSymbolAndMagic(position_ticket, _Symbol, (ulong)MagicNumber)) + { + ResetPositionTracking(); + return; + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(trade.Buy(LotSize, _Symbol, ask, 0, 0, "RSI Scalping Buy")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_BUY; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(trade.Sell(LotSize, _Symbol, bid, 0, 0, "RSI Scalping Sell")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_SELL; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + bool position_exists_before_close = PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + if(!position_exists_before_close) + { + ResetPositionTracking(); + return; + } + + // Close position using helper that verifies symbol AND magic number for THIS EA + if(ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber)) + { + ResetPositionTracking(); + } + else + { + // Keep tracking when close fails (e.g. market closed); retry on next bar. + if(!PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + ResetPositionTracking(); + } + } +} diff --git a/frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/report.html b/frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/report.html new file mode 100644 index 0000000000000000000000000000000000000000..b512b3d6580a876cd855a3c8dd54088db38de43c GIT binary patch literal 962604 zcmeFa&#!GqcHg%(NdN(li?U-i)!mORr6F0}B>Oc< zh+-4`(Gnx4lORSiXfzbTFycWbG30;2nI-ll78Dplpad|GAIMM>CrBVzN(N5qd%i5~ zy6>!7Yt_E{?W%KDle^DEP3`hWb_7t^P{n6CVd^zSdF z?|U#^O)pN5rpM{OUY|ak-k9E>KAPT5Kkwb?JL$jQNIw;y`}yg$^waPY@w+~rKA1jt z`1)^6`14}==Q92Mo%9plPG5h0`fB<+x9TeW_j~EuchXOOn!f8>>GR)8Kk4P^FHe7I zdg(8|kN^K5{T6)fY5LvY`s{n~HGUoK`Z)cxr|HTs|IX7-{?>2)Pv8GXZ~nWlzm$GQ zc?~~#{?u=#@BcXcya$In!vB3f{rkW&R{F2^)Boez$A|CxDE*t? z^E7?t)AT*Kim&3c`99{~hAW>Q+KBJ`G{uU)58waW=_@~ze#b}Y&+#Y!dgAr)5S9GX z{+-12X^O+Uht_|TKKWt#f3)qv^gDOH6Q4j_@%0DOw?Dg!&!zvqO)dC1{TqbeNRj{n112F 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 literal 0 HcmV?d00001 diff --git a/frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/report.png b/frontline/cluster-fuck/RSIScalpingBTCUSD-trailing/report.png new file mode 100644 index 0000000000000000000000000000000000000000..52287c6f0d85f6e56ba2587bc37989176526fc82 GIT binary patch literal 8384 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 literal 0 HcmV?d00001 diff --git a/frontline/cluster-fuck/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization.set b/frontline/cluster-fuck/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization.set new file mode 100644 index 0000000..81b89e6 --- /dev/null +++ b/frontline/cluster-fuck/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization.set @@ -0,0 +1,28 @@ +; saved on 2026.02.07 +; Genetic Algorithm Optimization Parameters for RSIScalpingNVDA +; Recommended ranges for profitable parameter discovery +; +; Format: Parameter=Start||Step||Min||Max||Optimize(Y/N) +; +; NOTE: Current values show RSI_Overbought=19 and RSI_Oversold=50 which are unusual. +; This config uses STANDARD RSI ranges (60-85 overbought, 15-40 oversold). +; If your current values are intentional, use the alternative ranges in OPTIMIZATION_GUIDE.md +; +; === PHASE 1: CORE RSI PARAMETERS (Primary Optimization) === +RSI_Period=14||1||7||21||Y +RSI_Overbought=70.0||2.0||60.0||85.0||Y +RSI_Oversold=30.0||2.0||15.0||40.0||Y +RSI_Target_Buy=75.0||2.0||65.0||90.0||Y +RSI_Target_Sell=25.0||2.0||10.0||35.0||Y + +; === PHASE 2: RISK MANAGEMENT (Secondary Optimization) === +BarsToWait=2||1||1||8||Y +TimeFrame=16387||0||16385||16390||Y + +; === PHASE 3: POSITION SIZING (Optimize with caution) === +LotSize=50.0||5.0||10.0||100.0||Y + +; === FIXED PARAMETERS (Do Not Optimize) === +RSI_Applied_Price=1||0||1||1||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N diff --git a/frontline/cluster-fuck/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization_Alternative.set b/frontline/cluster-fuck/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization_Alternative.set new file mode 100644 index 0000000..3fca2be --- /dev/null +++ b/frontline/cluster-fuck/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization_Alternative.set @@ -0,0 +1,24 @@ +; saved on 2026.02.07 +; Alternative Genetic Algorithm Optimization - Respects Current Unusual RSI Values +; Use this if RSI_Overbought=19 and RSI_Oversold=50 are intentional +; +; Format: Parameter=Start||Step||Min||Max||Optimize(Y/N) +; +; === PHASE 1: CORE RSI PARAMETERS === +RSI_Period=14||1||7||21||Y +RSI_Overbought=19.0||1.0||15.0||30.0||Y +RSI_Oversold=50.0||2.0||40.0||60.0||Y +RSI_Target_Buy=71.0||2.0||65.0||80.0||Y +RSI_Target_Sell=70.0||2.0||60.0||75.0||Y + +; === PHASE 2: RISK MANAGEMENT === +BarsToWait=1||1||1||8||Y +TimeFrame=16387||0||16385||16390||Y + +; === PHASE 3: POSITION SIZING === +LotSize=50.0||5.0||10.0||100.0||Y + +; === FIXED PARAMETERS === +RSI_Applied_Price=1||0||1||1||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N diff --git a/frontline/cluster-fuck/RSIScalpingNVDA-trailing/OPTIMIZATION_GUIDE.md b/frontline/cluster-fuck/RSIScalpingNVDA-trailing/OPTIMIZATION_GUIDE.md new file mode 100644 index 0000000..d7d5ba6 --- /dev/null +++ b/frontline/cluster-fuck/RSIScalpingNVDA-trailing/OPTIMIZATION_GUIDE.md @@ -0,0 +1,134 @@ +# Genetic Algorithm Optimization Guide for RSIScalpingNVDA + +## Recommended Optimization Strategy + +### Phase 1: Core RSI Parameters (Primary Focus) +These parameters directly control entry/exit signals and should be optimized first. + +#### **RSI_Period** (Y - Optimize) +- **Current**: 14 +- **Recommended Range**: 7-21 +- **Step**: 1 +- **Rationale**: Standard RSI periods. Shorter = more sensitive, longer = smoother signals + +#### **RSI_Overbought** (Y - Optimize) +- **Current**: 19.0 (unusually low - verify if this is correct) +- **Standard Range**: 60.0-85.0 +- **Step**: 2.0 +- **Alternative Range** (if current is intentional): 15.0-30.0 +- **Rationale**: Level where RSI indicates overbought condition for sell entries + +#### **RSI_Oversold** (Y - Optimize) +- **Current**: 50.0 (unusually high - verify if this is correct) +- **Standard Range**: 15.0-40.0 +- **Step**: 2.0 +- **Alternative Range** (if current is intentional): 40.0-60.0 +- **Rationale**: Level where RSI indicates oversold condition for buy entries + +#### **RSI_Target_Buy** (Y - Optimize) +- **Current**: 71.0 +- **Recommended Range**: 65.0-90.0 +- **Step**: 2.0 +- **Rationale**: Exit target for long positions. Must be > RSI_Oversold + +#### **RSI_Target_Sell** (Y - Optimize) +- **Current**: 70.0 +- **Recommended Range**: 10.0-35.0 +- **Step**: 2.0 +- **Rationale**: Exit target for short positions. Must be < RSI_Overbought + +### Phase 2: Risk Management Parameters + +#### **BarsToWait** (Y - Optimize) +- **Current**: 1 +- **Recommended Range**: 1-8 +- **Step**: 1 +- **Rationale**: Bars to wait before closing when RSI goes against position. Higher = more patience + +#### **TimeFrame** (Y - Optimize) +- **Current**: 16387 (M5) +- **Recommended**: Test M1, M5, M15, H1 +- **Values**: + - M1 = 16385 + - M5 = 16387 + - M15 = 16388 + - H1 = 16390 +- **Rationale**: Different timeframes can significantly affect scalping performance + +### Phase 3: Position Sizing (Optimize with Caution) + +#### **LotSize** (Y - Optimize with Fixed Risk) +- **Current**: 50.0 +- **Recommended Range**: 10.0-100.0 +- **Step**: 5.0 +- **Note**: Consider using fixed risk % instead of fixed lot size +- **Rationale**: Position sizing affects profitability but also risk + +### Fixed Parameters (Do NOT Optimize) + +#### **RSI_Applied_Price** (N) +- **Value**: 1 (PRICE_CLOSE) +- **Rationale**: Standard choice, changing may not improve results significantly + +#### **MagicNumber** (N) +- **Value**: 12345 +- **Rationale**: Identifier only, no impact on performance + +#### **Slippage** (N) +- **Value**: 3 +- **Rationale**: Broker-specific, should match your actual slippage + +## Genetic Algorithm Settings + +### Recommended GA Settings: +- **Optimization Criterion**: Balance (or Custom: Profit Factor * Total Net Profit) +- **Population Size**: 50-100 +- **Mutation Probability**: 0.1-0.2 +- **Crossover Probability**: 0.7-0.9 +- **Optimization Passes**: 3-5 +- **Forward Testing**: Always use out-of-sample data + +### Optimization Phases: + +1. **Broad Search** (First Pass): + - Optimize: RSI_Period, RSI_Overbought, RSI_Oversold, RSI_Target_Buy, RSI_Target_Sell + - Fix: BarsToWait=1, TimeFrame=M5, LotSize=50 + +2. **Refinement** (Second Pass): + - Use best results from Phase 1 + - Optimize: BarsToWait, TimeFrame + - Narrow ranges around Phase 1 winners + +3. **Fine-Tuning** (Third Pass): + - Optimize: LotSize (if needed) + - Very narrow ranges around Phase 2 winners + +## Important Notes + +⚠️ **Current Parameter Anomaly**: +- RSI_Overbought=19 and RSI_Oversold=50 are unusual +- Standard RSI ranges: Overbought 70-80, Oversold 20-30 +- **Verify** if these are intentional or if there's a scaling issue + +✅ **Validation Checklist**: +- Ensure RSI_Target_Buy > RSI_Oversold +- Ensure RSI_Target_Sell < RSI_Overbought +- Test on sufficient historical data (at least 6-12 months) +- Use forward testing on unseen data +- Check for overfitting (too many parameters optimized) + +## Example .set File Structure + +``` +RSI_Period=14||1||7||21||Y +RSI_Overbought=70.0||2.0||60.0||85.0||Y +RSI_Oversold=30.0||2.0||15.0||40.0||Y +RSI_Target_Buy=75.0||2.0||65.0||90.0||Y +RSI_Target_Sell=25.0||2.0||10.0||35.0||Y +BarsToWait=2||1||1||8||Y +TimeFrame=16387||0||16385||16390||Y +LotSize=50.0||5.0||10.0||100.0||Y +RSI_Applied_Price=1||0||1||1||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N +``` diff --git a/frontline/cluster-fuck/RSIScalpingNVDA-trailing/main.mq5 b/frontline/cluster-fuck/RSIScalpingNVDA-trailing/main.mq5 new file mode 100644 index 0000000..5950bce --- /dev/null +++ b/frontline/cluster-fuck/RSIScalpingNVDA-trailing/main.mq5 @@ -0,0 +1,408 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_M15; // Timeframe for Analysis +input int RSI_Period = 8; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 36; // RSI Overbought Level +input double RSI_Oversold = 38; // RSI Oversold Level +input double RSI_Target_Buy = 90; // RSI Target for Buy Exit +input double RSI_Target_Sell = 70; // RSI Target for Sell Exit +input int BarsToWait = 5; // Bars to wait when RSI goes against position +input double LotSize = 50; // Lot Size +input int MagicNumber = 12345; // Magic Number +input int Slippage = 3; // Slippage in points + +input group "=== Trailing stop ===" +input bool UseTrailingStop = true; // move SL behind bid/ask while in profit +input double TrailingStopDistancePoints = 375.0; // SL distance from bid/ask (points) +input double TrailingActivationPoints = 75.0; // min profit before trailing (0 = same as distance) + +//--- Global variables +CTrade trade; +int rsi_handle; +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + return; + + const datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + const bool new_bar = (current_bar_time != last_bar_time); + const bool in_pos = position_open || PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + if(!in_pos && !new_bar) + return; + + if(!UpdateRSI()) + return; + + if(in_pos && UseTrailingStop) + ApplyTrailingStop(); + + if(!new_bar) + return; + + last_bar_time = current_bar_time; + + ResyncPositionFromMarket(); + CheckExistingPosition(); + + if(!position_open && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + CheckEntrySignals(); +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Trail SL behind favorable price (every tick when enabled) | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + if(TrailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const double trail_dist = TrailingStopDistancePoints * point; + const double activation_pts = (TrailingActivationPoints > 0.0) + ? TrailingActivationPoints + : TrailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + +//+------------------------------------------------------------------+ +//| Sync ticket/state if a position exists after restart | +//+------------------------------------------------------------------+ +void ResyncPositionFromMarket() +{ + if(position_open) + return; + ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t == 0 || !PositionSelectByTicket(t)) + return; + position_ticket = (int)t; + position_open = true; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number AND symbol for THIS EA + if(!PositionSelectByTicketSymbolAndMagic(position_ticket, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + return; + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(trade.Buy(LotSize, _Symbol, ask, 0, 0, "RSI Scalping Buy")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_BUY; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(trade.Sell(LotSize, _Symbol, bid, 0, 0, "RSI Scalping Sell")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_SELL; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + // Close position using helper that verifies symbol AND magic number for THIS EA + if(ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + } + else + { + // Position doesn't exist or wrong magic number - reset tracking + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + } +} diff --git a/frontline/cluster-fuck/RSIScalpingTSLA-trailing/main.mq5 b/frontline/cluster-fuck/RSIScalpingTSLA-trailing/main.mq5 new file mode 100644 index 0000000..1648b9a --- /dev/null +++ b/frontline/cluster-fuck/RSIScalpingTSLA-trailing/main.mq5 @@ -0,0 +1,408 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_H1; // Timeframe for Analysis +input int RSI_Period = 14; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 54; // RSI Overbought Level +input double RSI_Oversold = 73; // RSI Oversold Level +input double RSI_Target_Buy = 87; // RSI Target for Buy Exit +input double RSI_Target_Sell = 33; // RSI Target for Sell Exit +input int BarsToWait = 1; // Bars to wait when RSI goes against position +input double LotSize = 5; // Lot Size +input int MagicNumber = 125421321; // Magic Number +input int Slippage = 3; // Slippage in points + +input group "=== Trailing stop ===" +input bool UseTrailingStop = true; // move SL behind bid/ask while in profit +input double TrailingStopDistancePoints = 900.0; // SL distance from bid/ask (points) +input double TrailingActivationPoints = 950.0; // min profit before trailing (0 = same as distance) + +//--- Global variables +CTrade trade; +int rsi_handle; +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + return; + + const datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + const bool new_bar = (current_bar_time != last_bar_time); + const bool in_pos = position_open || PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + if(!in_pos && !new_bar) + return; + + if(!UpdateRSI()) + return; + + if(in_pos && UseTrailingStop) + ApplyTrailingStop(); + + if(!new_bar) + return; + + last_bar_time = current_bar_time; + + ResyncPositionFromMarket(); + CheckExistingPosition(); + + if(!position_open && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + CheckEntrySignals(); +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Trail SL behind favorable price (every tick when enabled) | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + if(TrailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const double trail_dist = TrailingStopDistancePoints * point; + const double activation_pts = (TrailingActivationPoints > 0.0) + ? TrailingActivationPoints + : TrailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + +//+------------------------------------------------------------------+ +//| Sync ticket/state if a position exists after restart | +//+------------------------------------------------------------------+ +void ResyncPositionFromMarket() +{ + if(position_open) + return; + ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t == 0 || !PositionSelectByTicket(t)) + return; + position_ticket = (int)t; + position_open = true; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number AND symbol for THIS EA + if(!PositionSelectByTicketSymbolAndMagic(position_ticket, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + return; + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(trade.Buy(LotSize, _Symbol, ask, 0, 0, "RSI Scalping Buy")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_BUY; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(trade.Sell(LotSize, _Symbol, bid, 0, 0, "RSI Scalping Sell")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_SELL; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + // Close position using helper that verifies symbol AND magic number for THIS EA + if(ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + } + else + { + // Position doesn't exist or wrong magic number - reset tracking + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + } +} diff --git a/frontline/cluster-fuck/RSIScalpingTSLA-trailing/report.html b/frontline/cluster-fuck/RSIScalpingTSLA-trailing/report.html new file mode 100644 index 0000000000000000000000000000000000000000..950f95baad48155ec775a3c377697b84a5632aca GIT binary patch literal 2231020 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%0AWjNV& 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�W*{nYrqbJ2L@n%Bqt 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 literal 0 HcmV?d00001 diff --git a/frontline/cluster-fuck/RSIScalpingTSLA-trailing/report.png b/frontline/cluster-fuck/RSIScalpingTSLA-trailing/report.png new file mode 100644 index 0000000000000000000000000000000000000000..5a26c1dc956e4f517c4b4a15ff98c82b1bd61b86 GIT binary patch literal 8829 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 L?~d~A$IkyBo(n?L literal 0 HcmV?d00001 diff --git a/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/123.set b/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/123.set new file mode 100644 index 0000000..0c7f7c1 --- /dev/null +++ b/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/123.set @@ -0,0 +1,34 @@ +; RSIScalpingXAUUSD-trailing — matches main.mq5 v1.06 default inputs +; saved on 2026.05.01 22:32:43 +; MT5 Strategy Tester: Inputs → Load +; +TimeFrame=16385||15||0||16385||N +RSI_Period=14||14||1||140||N +RSI_Applied_Price=1||1||0||7||N +RSI_Overbought=71.0||0||2||100||N +RSI_Oversold=57.0||0||2||100||N +UseEntrySlopeFilter=false||false||0||true||N +EntryMinSlopePerBar=1.0||1.0||0.100000||10.000000||N +RSI_Target_Buy=80.0||0||2||100||N +RSI_Target_Sell=57.0||0||2||100||N +BarsToWait=1||0||1||50||N +LotSize=0.1||0.1||0.010000||1.000000||N +MagicNumber=129102315||129102315||1||1291023150||N +Slippage=3||3||1||30||N +; === Reversal escape (intrabar, multi-signal) === +UseReversalEscape=true||false||0||true||N +ReversalEscapeTimeFrame=5||0||0||49153||N +ReversalATRPeriod=14||14||1||140||N +ReversalAdverseAtrMult=5.25||5.25||0.525000||52.500000||N +ReversalSignsRequired=1||2||1||20||N +ReversalRsiVelocity=16.0||16.0||1.600000||160.000000||N +ReversalBodyAtrMult=5.1||5.1||0.510000||51.000000||N +; === Trailing stop === +UseTrailingStop=true||false||0||true||N +TrailingStopDistancePoints=71.0||100||100||5000||Y +TrailingActivationPoints=41.0||100||100||5000||Y +; === Intrabar give-back (same bar reversals) === +UseGiveBackExit=true||false||0||true||N +GiveBackATRPeriod=14||14||1||140||N +GiveBackAtrMult=0.1||1.85||0.185000||18.500000||N +GiveBackRequireMfe=true||false||0||true||N diff --git a/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/main.mq5 b/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/main.mq5 new file mode 100644 index 0000000..96b6f2f --- /dev/null +++ b/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/main.mq5 @@ -0,0 +1,645 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.06" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_H1; // Timeframe for Analysis +input int RSI_Period = 14; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 71; // RSI Overbought Level +input double RSI_Oversold = 57; // RSI Oversold Level +input bool UseEntrySlopeFilter = false; // require RSI momentum on entry bars +input double EntryMinSlopePerBar = 1.0; // minimum RSI delta per bar for entry +input double RSI_Target_Buy = 80; // RSI Target for Buy Exit +input double RSI_Target_Sell = 57; // RSI Target for Sell Exit +input int BarsToWait = 1; // Bars to wait when RSI goes against position +input double LotSize = 0.1; // Lot Size +input int MagicNumber = 129102315; // Magic Number +input int Slippage = 3; // Slippage in points + +input group "=== Reversal escape (intrabar, multi-signal) ===" +input bool UseReversalEscape = true; // run while in position every tick (now uses ReversalEscapeTimeFrame) +input ENUM_TIMEFRAMES ReversalEscapeTimeFrame = PERIOD_M5; // ATR / RSI velocity / bar signs on this TF (not signal TF) +input int ReversalATRPeriod = 14; // ATR lookback on ReversalEscapeTimeFrame +input double ReversalAdverseAtrMult = 5.25; // close if price vs entry >= this * ATR +input int ReversalSignsRequired = 1; // how many independent signs must align +input double ReversalRsiVelocity = 16.0; // RSI points drop (long) / rise (short) vs prior buffer +input double ReversalBodyAtrMult = 5.1; // last closed bar body >= this * ATR counts as one sign + +input group "=== Trailing stop ===" +input bool UseTrailingStop = true; // move SL behind price while in profit +input double TrailingStopDistancePoints = 71.0; // SL distance from current bid/ask (points) +input double TrailingActivationPoints = 41.0; // min profit before trailing (0 = same as distance) + +input group "=== Intrabar give-back (same bar reversals) ===" +input bool UseGiveBackExit = true; // exit if price gives back vs best tick since entry +input int GiveBackATRPeriod = 14; // ATR period on signal timeframe (Wilder) +input double GiveBackAtrMult = 0.1; // close when retrace from peak/trough >= this * ATR +input bool GiveBackRequireMfe = true; // long: only after bid was above entry; short: ask below entry + +//--- Global variables +CTrade trade; +int rsi_handle; +int rsi_escape_handle = INVALID_HANDLE; // RSI on ReversalEscapeTimeFrame (may alias rsi_handle) +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; + +ulong g_giveback_track_ticket = 0; +double g_peak_bid_since_entry = 0.0; +double g_trough_ask_since_entry = 0.0; + +void ResetIntrabarGiveBackState(); +void TryGiveBackExit(); + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + if(ReversalEscapeTimeFrame == TimeFrame) + rsi_escape_handle = rsi_handle; + else + { + rsi_escape_handle = iRSI(_Symbol, ReversalEscapeTimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_escape_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_escape_handle != INVALID_HANDLE && rsi_escape_handle != rsi_handle) + IndicatorRelease(rsi_escape_handle); + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + return; + + const datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + const bool new_bar = (current_bar_time != last_bar_time); + const bool in_pos = position_open || PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + if(!in_pos && !new_bar) + return; + + if(!UpdateRSI()) + return; + + if(in_pos && UseReversalEscape) + TryReversalEscape(); + + if(in_pos && UseGiveBackExit) + TryGiveBackExit(); + + if(in_pos && UseTrailingStop) + ApplyTrailingStop(); + + if(!new_bar) + return; + + last_bar_time = current_bar_time; + + ResyncPositionFromMarket(); + CheckExistingPosition(); + + if(!position_open && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + CheckEntrySignals(); +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Wilder ATR in price units (signal timeframe) | +//+------------------------------------------------------------------+ +double ATRPriceOnTF(const int period) +{ + if(period < 1) + return 0.0; + MqlRates rates[]; + const int need = period + 2; + if(CopyRates(_Symbol, TimeFrame, 0, need, rates) < need) + return 0.0; + ArraySetAsSeries(rates, true); + double sum = 0.0; + for(int i = 1; i <= period; i++) + { + const double hl = rates[i].high - rates[i].low; + const double hc = MathAbs(rates[i].high - rates[i + 1].close); + const double lc = MathAbs(rates[i].low - rates[i + 1].close); + sum += MathMax(hl, MathMax(hc, lc)); + } + return sum / (double)period; +} + +//+------------------------------------------------------------------+ +//| Wilder ATR on arbitrary timeframe | +//+------------------------------------------------------------------+ +double WilderATRForTF(const ENUM_TIMEFRAMES tf, const int period) +{ + if(period < 1) + return 0.0; + MqlRates rates[]; + const int need = period + 2; + if(CopyRates(_Symbol, tf, 0, need, rates) < need) + return 0.0; + ArraySetAsSeries(rates, true); + double sum = 0.0; + for(int i = 1; i <= period; i++) + { + const double hl = rates[i].high - rates[i].low; + const double hc = MathAbs(rates[i].high - rates[i + 1].close); + const double lc = MathAbs(rates[i].low - rates[i + 1].close); + sum += MathMax(hl, MathMax(hc, lc)); + } + return sum / (double)period; +} + +//+------------------------------------------------------------------+ +//| Independent adverse signs (need ReversalSignsRequired to exit) | +//+------------------------------------------------------------------+ +int CountReversalEscapeSigns(const ENUM_POSITION_TYPE ptype, const double atr) +{ + if(atr <= 0.0) + return 0; + + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + int signs = 0; + + double rsi_esc[]; + ArraySetAsSeries(rsi_esc, true); + const bool ok_esc_rsi = (rsi_escape_handle != INVALID_HANDLE && + CopyBuffer(rsi_escape_handle, 0, 0, 2, rsi_esc) >= 2); + + if(ptype == POSITION_TYPE_BUY) + { + if(entry - bid >= ReversalAdverseAtrMult * atr) + signs++; + if(ok_esc_rsi && rsi_esc[1] - rsi_esc[0] >= ReversalRsiVelocity) + signs++; + } + else if(ptype == POSITION_TYPE_SELL) + { + if(ask - entry >= ReversalAdverseAtrMult * atr) + signs++; + if(ok_esc_rsi && rsi_esc[0] - rsi_esc[1] >= ReversalRsiVelocity) + signs++; + } + else + return 0; + + MqlRates r[]; + if(CopyRates(_Symbol, ReversalEscapeTimeFrame, 0, 4, r) >= 4) + { + ArraySetAsSeries(r, true); + const double body = MathAbs(r[1].close - r[1].open); + if(body >= ReversalBodyAtrMult * atr) + { + if(ptype == POSITION_TYPE_BUY && r[1].close < r[1].open) + signs++; + else if(ptype == POSITION_TYPE_SELL && r[1].close > r[1].open) + signs++; + } + if(ptype == POSITION_TYPE_BUY) + { + if(r[1].close < r[2].close && r[2].close < r[3].close) + signs++; + } + else + { + if(r[1].close > r[2].close && r[2].close > r[3].close) + signs++; + } + } + + return signs; +} + +//+------------------------------------------------------------------+ +//| Cut losers fast on violent reversals (evaluated every tick) | +//+------------------------------------------------------------------+ +void TryReversalEscape() +{ + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double atr = WilderATRForTF(ReversalEscapeTimeFrame, ReversalATRPeriod); + if(atr <= 0.0) + return; + + const int n = CountReversalEscapeSigns(ptype, atr); + if(n < ReversalSignsRequired) + return; + + ClosePosition(); + Print("RSIScalpingXAUUSD: reversal escape TF=", EnumToString(ReversalEscapeTimeFrame), + " signs=", n, " need=", ReversalSignsRequired, + " ATR=", DoubleToString(atr, (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS))); +} + +//+------------------------------------------------------------------+ +//| Reset give-back peak/trough tracking | +//+------------------------------------------------------------------+ +void ResetIntrabarGiveBackState() +{ + g_giveback_track_ticket = 0; + g_peak_bid_since_entry = 0.0; + g_trough_ask_since_entry = 0.0; +} + +//+------------------------------------------------------------------+ +//| Exit when intrabar price gives back sharply vs best since entry | +//+------------------------------------------------------------------+ +void TryGiveBackExit() +{ + if(!UseGiveBackExit || GiveBackAtrMult <= 0.0) + return; + + const ulong ticket = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(ticket == 0 || !PositionSelectByTicket(ticket)) + { + ResetIntrabarGiveBackState(); + return; + } + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + + if(g_giveback_track_ticket != ticket) + { + g_giveback_track_ticket = ticket; + if(ptype == POSITION_TYPE_BUY) + { + g_peak_bid_since_entry = bid; + g_trough_ask_since_entry = 0.0; + } + else + { + g_trough_ask_since_entry = ask; + g_peak_bid_since_entry = 0.0; + } + } + + const double atr = ATRPriceOnTF(GiveBackATRPeriod); + if(atr <= 0.0) + return; + + const double threshold = GiveBackAtrMult * atr; + + if(ptype == POSITION_TYPE_BUY) + { + if(bid > g_peak_bid_since_entry) + g_peak_bid_since_entry = bid; + if(GiveBackRequireMfe && g_peak_bid_since_entry <= entry) + return; + if(g_peak_bid_since_entry - bid >= threshold) + { + ClosePosition(); + Print("RSIScalpingXAUUSD: give-back exit BUY retrace=", + DoubleToString(g_peak_bid_since_entry - bid, digits), + " thr=", DoubleToString(threshold, digits)); + } + } + else if(ptype == POSITION_TYPE_SELL) + { + if(ask < g_trough_ask_since_entry) + g_trough_ask_since_entry = ask; + if(GiveBackRequireMfe && g_trough_ask_since_entry >= entry) + return; + if(ask - g_trough_ask_since_entry >= threshold) + { + ClosePosition(); + Print("RSIScalpingXAUUSD: give-back exit SELL retrace=", + DoubleToString(ask - g_trough_ask_since_entry, digits), + " thr=", DoubleToString(threshold, digits)); + } + } +} + +//+------------------------------------------------------------------+ +//| Trail SL behind favorable price (every tick when enabled) | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + if(TrailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const double trail_dist = TrailingStopDistancePoints * point; + const double activation_pts = (TrailingActivationPoints > 0.0) + ? TrailingActivationPoints + : TrailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + +void ResyncPositionFromMarket() +{ + if(position_open) + return; + ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t == 0 || !PositionSelectByTicket(t)) + return; + position_ticket = (int)t; + position_open = true; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number + if(!PositionSelectByTicketAndMagic(position_ticket, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + return; + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + const double upSlope1 = rsi_prev - rsi_two_bars_ago; // older->prev + const double upSlope2 = rsi_current - rsi_prev; // prev->current + const double dnSlope1 = rsi_two_bars_ago - rsi_prev; // older->prev + const double dnSlope2 = rsi_prev - rsi_current; // prev->current + const bool buySlopeOk = (!UseEntrySlopeFilter) || (upSlope1 >= EntryMinSlopePerBar && upSlope2 >= EntryMinSlopePerBar); + const bool sellSlopeOk = (!UseEntrySlopeFilter) || (dnSlope1 >= EntryMinSlopePerBar && dnSlope2 >= EntryMinSlopePerBar); + + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold && buySlopeOk) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought && sellSlopeOk) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(trade.Buy(LotSize, _Symbol, ask, 0, 0, "RSI Scalping Buy")) + { + const ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t > 0 && PositionSelectByTicketSymbolAndMagic(t, _Symbol, (ulong)MagicNumber)) + { + position_ticket = (int)t; + position_open = true; + current_position_type = POSITION_TYPE_BUY; + } + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(trade.Sell(LotSize, _Symbol, bid, 0, 0, "RSI Scalping Sell")) + { + const ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t > 0 && PositionSelectByTicketSymbolAndMagic(t, _Symbol, (ulong)MagicNumber)) + { + position_ticket = (int)t; + position_open = true; + current_position_type = POSITION_TYPE_SELL; + } + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + if(ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + ResetIntrabarGiveBackState(); + return; + } + if(!PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + ResetIntrabarGiveBackState(); + return; + } + Print("RSIScalpingXAUUSD: close failed (will retry on next bar). retcode=", + trade.ResultRetcode(), " lastError=", GetLastError()); +} diff --git a/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/report.html b/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/report.html new file mode 100644 index 0000000000000000000000000000000000000000..203dcf4c2f35164885b9198c4af8936996e6cca7 GIT binary patch literal 5649556 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

d$`p4;?zf-c8`TKl~jK}wJg(@#N*;PeTZ~f6r zb@%b-ztlVLr@5kiH1^IlGA~yX%`~%S+R5>%kWQ|VdF@Q2 zm852x*~y$+drq#BdF`j6B2_f?kxnMnXeLP~uV3ZGd6uV%W}4s0(QA!lUM2I|ogAs6 zsgH9q&kK0j$9bENwJlwBo$P9&ndWseb{(BN2jS#%SKc-Aj3Mk8$#+w<<55R*kBR**~wJc=c$andWpd zzYkSj-f5_Fi7KxiRW$XHPR5$hJ410UaITR|Jxw&z%udGl#is?>dsj%j9@Jx1H1&~A z=D9|vM&Mka%8N`rO*GTYPUiha(LIuMa)rc;)IC)+^>I$d{*!w``BEV90#jEL%`~r* zaeBhtPrj5$yhzS>~xW_Gf-%Z4%eQX=spbx##d zz4ga&*>&4~=XTA@)|a;}UDwHE8fl`LW_Gf-dZ3dl)OgVeo+_Gp>yM+I%=SB#A(yVi zYu3HRmTIJmruy8=W6w}LzR;`fyL8>=HRl1|oLr^Ki#MImTd#?C2He^8tw`eKYBH~r$vm1zqW8WP zO1wN(H1%;~GH+^+XOg5^qsq(GL^I7hChyhLknPzq}&$4=Ba+So3)Nyx+zTZq!Z=Ey3$=+Q9w<3wx&NRAz zK{L(fWZnhK|H;z=-k7|0;?=K;rhc@O+xGLkfU}=`>#FgZuU@lX6;1WImq*oWwqMBG zVw|M&)>Y><+nzszLtCYovHF`4N|H2RQvmCWno zTa{OQvP4rK?PSci^qhiJSFZBYgf^ z`ba0U{T!3`TQ=MF?Dd+US|jnoeIXdLB26^Y>`spFH{v|3O5#Q8u_~H+>zrd}*F2Yr z8xx|$3r?<)c)6NrrkS106=A$z0p?W_FTM?hd8c-QrasciJk1sFNPK+DyxNwont1K! z8Y4|K)67oxPViw&#vh;g%!$`dJ*tt?)LX5N9+R1PMeQfm8i^N~#&vI+X-+5OE(P3d ztQN$9t!wx_;u-qlspk*~!QOFmu-PNHVXGc#*oNil#o&$y_tV zl_8jCt)F<2si%o%n%T*`(L1V3q?0QoUZn1+qN$H`GTZOXuGdezTBeaEnrU7qV>HI> zI?8tFf@Zu_ItBy?6bBlT`}=`FpV|QOtU*VzS|j2#;%6XeAdM4K|NMQ zQ*X68F7aafnSMBHChWMiEnU~io+g@UW+(IeoG}@{Y@hkuPWDvM)LX5Nb~4t4@qRe_ z=NgF@D{x~?G}FvZCiCciBQmd&cpHnd6-~X>>bP|>+s|DnXLkKkAo1$aL^I9o zWPj)Jr9|S@QjcaTn)*m5vsyD+=d*uaKk*_{PZP~FuakM>AWj~~HC`_zPBntMtBR&R z&dI#J2&bGtRiA2nDNy4@ro6{1(nK@O>}1xkc`K?4i5IDRs%YvXoy_(}zgmvT>nC0< z(?}D|G`o|L&^u#tg~aPYJyu0iAMIrCd@^omYg@WvcHJ_K&TMO@nVrm=>zy$fJ-E+& z=EMtU-<%p&O}*9X*u;zNkE(=TnrUVy)s7)LZ8qmtC{{+z)qlp)LgyuO3Y_)67mL^XRo4IQdc{ z@oK3@s%Yw?ogClNPO9tQYgf^`Zy<}1`{=EPWo{v zP~!!rt|ppkUMKJ8-}bc>SIg~h@Uf!0lsMH$>O27#siLX3Djqw#CRNm&#_7kUK#kXf zX{?E6n%T)rIlUECg&HqX_f*l;M>-kp_ufywbk%sxTDkY28mpqIKKJsM)89`&ZGYaw z{d)Sm<;wW`)kg5U?Z55E)Ay&JPhX#YdHbgyPQRYM+5Qb2Ur~XI6K{AGieJb&f@lQd z47(@w`oB*9IQ{c?UxpU^AE*EO^#5#a{Qpk>@77kd@~f>qUu`Y?@HPwjKTiMW+uRT{ zqE;2Q9{(Af`1s@hC;q=Y|2O|tO*HkkMMsayWa`YXuYaoM|D68o^xuD?^4wnbRMAv( zdztG(XJo$qslT3apV`ZvCYt(4FSGs5dDUxyIxmh{o+g^fMhmotd|9;Z6?;?}@X2 zu2JW;GmUyT%`~%<@x~~|Ajip7QZJrtj8)OpM>-jIUb{}NQRf9U98EOS%ueR+qqm~! zNxWuGM`nJ9f~y0p2|sM>p}2p(b!A@jW*$>il*NBqc_L= zyzMLUPw(C$+wWDkkm~x0SC1x|X=W#rxi=51aI&$b9;u?Kk90DtTcY;U$?GRxWa??6 znPzq}_sgB^`nIjR+Fz%hhs`>>CUs90O}*9X=rNgRW1RHkR-(>}R6SKR)#qORGPKSM zU-)tRgM1`9{lgx-C-s_lRpn};sgLtA+aK?vf$6ubq0Nil*N7ddJSM z_j7#CO8H*kY$JO&?zl#pXr`IRWPD$IN`&*UDw!9Z5UZl8k9Kl=j*nDpWL`Vd=)9+9 zn%T*$B8WyGGOv<(VfBcaSfq-kKGMl(e|$>@sjgq;#WC5_L^I9q z`)R1Co>4Q+>|`)^om}BIFU-V9Jyu0iAMIr43{ecbd6mR#r~baZ$B|BEm2vc|#Y_uph_~*7nypRXr`H+ zjCHc}_9~cHNW4hhQ$13Y8jn;%1laXY$E!8uvITJ53^)%5;GdmgI7uO|{d4VQ-VjeM&jja zqM7D(GQZEO>%%T<`|H&6u$dDtR~1dY)#}(WnKf!S$ET|x*gw}uyj)E*)4WdR_hGH% zFt3t$xvFUDBc04s_1-$UM&h;KVjgLtnPzsfcas8p?<$GcPJQ2BXD`<}lk*Wxz5UN0 zJtngT*O^_v6iK}H3fxE&%`~%2>?-Tz7W8S8GP9XzHz2M>`o*vDXmK zv|cu{ZA&%Pd9!OWjWy9sGdr2te0;MeoLnXG`n2t_;w)68il*NB<7g+N{qcS{`{x>o z7n#PIXr|enjJ;x~_pXw7k$S9(ras2W*QN&7NxWVPoNDaRL^I9lWPTs(5~CF%d+!Q~ zSC1;1`bZ~}YBZ-H)%6pvmT9DkW}4Z_IR6%}9>}~x;zjD7Dw_I8Cws4Gfa+^k;x+5u zBB^?+XsXY>{AK7X6zvyA`3|}Fq+WC8BR!gE>Z84kd%NRR6S%f5T`}`|FpV|QOrJaX z+tWWz|NNbjz3Iqxd)JSDdtdfzzt5Rpzm~|ndQ{QWTYvOY-Ct|`e0mSn=yqrJ&g*Ah zEz?L7%`~%wenyaO9~eXYAr=J%n}IL=1STgu)3I(0TObI$3ilGn+8<@LEp;RSpL{8kc;WN} zX4jD_n)*m5^G?|4SBu&8rAXq1eho|`O*GTYPUe0^lmn1?g>#J@lRZ^5_0dko4Y+aQ zbt&*#W6LzsL^I9qWOp7`CGlea9jl_Lk90E6fJAc&_RlpEFTM=5<_Tr?R6HRPrL<&T zCGpx{hKf|l>tt4&?sb|RncJS_QLT9?aCbd_>7FKzrfv zllL1k9IDqci5Hm0H;!ti*_|BUkAX4yS}5@X^;i{6eWa6FH}1@?uVoT1PZP~Fuaj}l zo|EX&$yE|BR~1ctjFWF~_y4fQi&YT&9J_7LV|INlka+cIqM7D&GQW?vYkIwRg~Y2z z6-~W$&T+GAw12;Q->Ig*7P!f)M-$C7uakLJAg)W~m|P+8B6aRP&X{<$?T_|ONp<}i zuO3b2buv#-c)fRpQ;nqVsiLWm9Fw^Vk)r;4Wfd{iELlh@-5SYtGZGJ(_6hBfZSs#eI#e_MvVCGA}aqG|^0-J9*?yUi?1pxHv22TZwaxJ*sHx zBc04W7iWHbE0TGk=FK@*qM2rQvO6MI$-GECRz*`E>16D=#QSKRXRTl5#opP|L^I9n zWS$ZEu=UGvjqa_)Ooo zbTZF?IQ{dzEAyH+`@jrq)haLkX8E#TwBv$#*u5+7nmOm(-}Z}C$?IgKJJ?r_XIl3n zi5IKsV@)*E%wsZ`$16fQxk8l}`!`P&O?~8;%pB9nuJ1(>FIJ;}*k&NQchgMsI(e^5 z^yXnz5-(R3O?{k`+5Y(cBKFTU5-(R1%{04{-7&dJl^3bUs%YwCoP2+)yhc5JobJ%c z>sNX8Xrh_sbn@f-;%tY^D^z*)sG_NlbTVIFjb@T~>kISEwx#+W^EneQGW9gkOfx%~ z-xtrW!MwuV^)2;C6-~YM$8l#U9_@GblR}2n>0GU@vyhz>#w*HtnvPZQ1bxsykpp`efXebN1) z^l_cc%Tq;DAL(RP8OLWRkkePmygW@b)4WdJUzYWlSIN9wRW$W+PGk%SCe_24CdaB z1+-{?ox1m)+sU3PntH3%u}%h0IN4bz<3+o+rJCxz*@vr%W}0_Q=J&<7^K%~7lXuPR zWLFhUz4gZkC*v#P6ce>zZA;g7a;%AFn%T+T-YK12CGo<(BgVAI37UHAkE5N;_B-hZ z68g5K>pI!fL^I9qWTXLc?~VStk{qyRHSDz-DX+|gS--mgmJ0`E6c=f5GsgHCr_miD58NF89()GsVovEjZ zW}4Z__&)3@#)%i|fqdq3j>#?cSQSmZ)#~Um8LI=YG6bupwx#Pj+0#Tb&Fo}+U;LZJ zJPdz)=5ssQQ${u_~JSNGIb? zzPSCQx_aWZGxaplO!GQ8h($K1L`;zgz(w|m=lBBYsSb}|#M zX!U?G`L#^q#d9<9I#W|0>16DkdZ!w3+hW_&RTD3G*wI8Y&Ff^oA@sqThr!K0^O+Mb zR~1dY)#}*UHQVpau3w8JUalsZX=W$$c1@>-;I%-F7uU(C&YklFMcaONOs*ZGTbQ$5SHC+pAbB z_oQAkR_XR>qN%@!>F13n|NJ$ke#OtZNanS_+!s|rX{OJeJnl}u{Wr_oL-!phCVTB~ z@UahdE|YoTTmkZtNEJ=JRq^PRGImenxg+q(M)qX`SE?&H`n`Y?7b^gdG)BGsgHJYJf|Sl^)s)Q>HFqc znVrlWz_~T#Tq5%#bx)PNPUaamuYc~zyynb4$kfwBGtKK{td^Y>A$#whyld8+6VzQ* zH1%;~@?LN1^v{<9i5HoAH$rQsnVsyPO23pyyjtqfKD(wq-pS6GeCbNO=I)=p+k-XL z=UyJW5B2!ndTZrNSL!wIT#Tbytcj*R+RJfLi@DaNNanROecyY!&z(GSABsNa$(iW; z$h=DCwV$1dRLSdPuJpZ8xkl!-pNxq#(M&TtnN8;wH`{my3xYHaAo1$aL^I9q zWSm-#&rsY-Bwi2du_~JSNGE%*)M3qZE0B1Rsi%o%n%T+7=HnG1nO8`>NZnIKQy=MM zFMB7|^>42yQ%@7kG_#ZWea@ZNw-R@GwbUb3H1*L=_HO07E&pC4D)w+{8^82e6U{Wc zljF)4_TCk0ydKnJRW$X{PWJYbZv_&smT8pdYo?ihSw-Pm8 zr0%JrskbT~cmL0${qYG9^w0M)i5K^iqq;ZEG_#X=(@k`OkIXB)*GMOLs%YxtoZNFl z`CcUPay8LR^Ew$P-`p|zzV+bkuT#HRFl*g4ob0Niskd4kJ0@fQ2~?fE#e0DoFEaHs z(MaHr9`ZyT0g(L9?YvGUi&@gkt&+{XeT?>nxMM=dyNk#$C_xSnVrm( zHoE5qulixO+5S4$O}svBdo#}c3z~YX)v<}!%iB5`J+EFJkZO$@FIN-IG@FyrM}af` zC$nph`PzwBzbcyg(N1pLkK2DR+B!~N`BY=SCYotxCnKB34bKkqwG*$Fx~Gb!KF-O! zvD>Nl!AxuAyXzlJT}?F8yiVS4X^&D`&coJDy#Ad!Ze!H_o2EY6$<8j+>sv40wp6c~ zX1o38-NWFR4Af&yH1*M5j(5b#v_|HIp3SM9&`h5@dCV&mt&j0ufpgaY`tK^47hf!h zRngQ(IvINs@k*agu9A6qnrNn(os92`f3sv>C-d@D(bPve89UTFT-a(^P0+4MN@CJI(DVZ_IqP8dhxcU+R5`%jaAW9pL==yN*NCI zPQk&=J-OGsD`i&`O}%x<(Ow4AkK2t+dMAxNbWiFvJJVPb&GfmGN3WFmoBjCPy&-#z zNc$UPFHPn>iPzlyH=V${yq>F~skbT~?PRVBqxO?(jm+!QTSa61OV>;@JDIh8`>&OK zc>5b{om?gJ`m~K^n5RUlXzHzsM>`qqcivFOJgY|LMW(SPnrU_?$2}E$?<$$sPCXja zH1&~A<{cSPPXwxXpP_B3UMbH!yY@8EOfx%~RmM(r2u_sv%;%n6d#Y&atyag4$@?Co zGpC@Fdor&%o!p~|W}4H<{66fMd-e7&U3u56PVP}fQy=MMueOCwUO(}AFh#DfQ$Wo$ zvy)L95}&~)^9qRLZ=(Ctfd0-{rM?ct67%uOl_n%uZ&uog8VRndWu!ey6w7d!zQc{dMZzduAuQs%Yx1R>wMdZ@+VI2=<}cmTIc=CSI;4 znrVI~NAH=T@5YXW&wK?ZN2+M*tyV`nnK`ECdu7Y6y+*9KB@PF&RfiFYPD1$y~QQiFdwJY_Sc`oK@qI>X>qcYnc ztqSSop3G}*FMFzJs?W#eJYJ4!n#jE;_nP0!ktUk@NG~Jx@@~sL7fHQv#@^9HGkxyl zZ%_X?{quJ#(B4(m_4IjbBmRE1we-8wPp2PG-=BUyeSP}n?Vo-){d)Rl`!_Jn!0tFs zvtf@7|8qY@;pErnGO3rVil#o!$sp{mo6g&Rwr%OEsh6vXW}4Z_tO#=Qk#m{Ui`4Ny z-%}IR`lGjh{=D_g{PWlPXC@%duEcpuGuxJ~>ts)pd7bPf0hn8#%cNfWDY*CLBdtG< zb~4t4?(Dis>b0M8i~6^}>gDk(<^2nz5r}T?Io&w#O4-#!Qy=MNzWWvZYRR-G^_rQf zr-^2od4BD`^>!{(={4tDZ_Gbl-ck_W1{0kbfRir;GOr#@W^{7&~Qs8XkgK1p-rkQ4U^2hCbo8EDulY8>6Su28C>X9m% z`e-M|XX{CI{lx3RG}c5j&Fo~>zCD8l(rasci zr0VQ1Ub|ASxkqJB6;1WImov<;@rB+FOVy z`C8ykuO3Y_)8|eeJt`x+hL64eyGrims-mfnb23kYc=gw}uH0+hHIu7}W}4T@{JuD$ z$2$4em3hrP6LVG3)JHm*wGd9t=B+FBn%T*oCYotxC*$;t>*SuqYi=ids%YxtoQ&6E z+`Xt$7E7}@4LHWoc!8(BI;Hk@#@iJMkhbM5BCDcwIR0>XB&G|(bPvenKuqNC(rK% z5-&3KG|^0Rj>+x!Iqx>!OC(-Bs%YvXo$S3fiX8J^An_toPZP~Fvy=IKo|7viUM=-V z6-|AllUar9oLIdVNW93@(?m1P>}0QsjlFk;#EaBDRW$XHPDcB&mlm&??gbLB2h&&+ z%`~r*_xCoO%8+}B#0%72RW$W+PTt!e%_-PFuYb0&Wg2OsnPzvgSJ!thlX%eyu_~JS zXeWQ%ZhDEvWZYlB{=1D2C&!v-rrDhw&pB{cE~@|9U#G6Ro^==MK|NMQQ*X68uI`%c zM?I5s!VOf{zs;*h6U{WUlfgV5edy#Wi5GfqM-@$dw3FlUhg8=;*Z6R9tchlt*~z^3 zDOx>{d6mSA?>6E@k)EAu>LZ=Z#4fH9z?j@~gZ-Q}UUagjiDsJF$vm|g{buRpo->Ve z&#paHH1%;#{>bS&LZ=Z@h56OoxFbH zMW&u6nrUVyBb#^UVO0_@-s2UkqN$H`GP7%^#tXMhv@KnAos9bx@k@_1(M&Ttncv5k zDE4*LAIYNk#trv>{QvyV>Az0@{U`tTS$Cn>e|xHE>aAACu9Nwzb#8(I)f$PHtBGcs z*U50F(^JvORT3{(6-|AdlRy1dqZZ%D2PfA^yj)E*)67ohE>tw)) z%fHUW#A`y1$?GRxJ(_5yImhJ3_r)thGOtkM)uW20KHACg`D#*KKk;grzHh~p*~z>o z#v79>BwnQMsgl>pyz?Y}S>(L!xAi1mv(B_0RNwou$a61$IsN_g)Ar{*J^1zXc}wQ- z_p2?R`)>Ph`|F3ker(fRw>4(#=r*F1@1Lwo2{Xu2V-?snVexZ|(ymqBtbDn|g z(ImH*Oh4$B{S531sjWy9spF8>6(?3rC{GF1$YpVD9m{kzYsQg+Y^P-bI zRW$Y1AH7sRZ#^^r{I%X0dlK=lmQG$j^CDAE6U{WUlX<_9HxsLnd6BxOil#o&$*dfA zZt{99aFZ9AdYWjanVpR9!yPbjmDg*DDz69iSQSluw3FjCA;;t@nHPWQ(U_%~=6ABU zO0JW6k$R+xrasQexTy)XiO!k{H?*}aU3H!8YNDCubuw!Du%dG2VYmUvXFhYz>8hfs zw^|*$PR3~LQ>~GBxteIEnVsz2S%rBRs&w05r|!MycCx36rrv6Gw3FHXX!n#|`W*UOf=J-2OUOcCx36rrv6Gw3FF>r(W}1B=JI}41Vd6CYotxC;RvR zoXaF$GvEJ%#18vUm|aJ|T8_yz5-(SiS)I(g6yiAtnO8}?Tvasnabxm+SAvs%T#6)K zt|ppk-Z6RqzG(FTCtu1WUal&d`bZ~ZCK>Odk!p>^Yd_Z*?YC;CnVrnpwX);lNVPUo+g@UUMKSeUwk7hd+#cVm#d1VKE}z{w~Bh+fZ^%E~L{ZE{4%j{%-MRhHacs;1c{aaoq^DLJ$yS^4kyvWqkL^I9oWX{8!U8rk` z8ZT1!RMFH&j>%q5i^S_%pvLRLG){yx)4Wc`4I=)Es!HPJs-mfnb296hyc*nVk;Kc@ zL^I9oWY(2OJE!cuE7W+Q|Nit_wSALZ*wkM2C7lh?2D>d{0q z&Fo~He~VwEB=ZW17pZ%yXzC-K?4N496-c}uOyiTDnrUVy^OkmR9#$doB6Uv{O?{-3 zStStNK8ODKULf%zQ%@7kG_#Xgt?ASd+)E^0r0%JrsgHCr(vNujp_A87yvWqkL^I9o zWYiFNFGJl+BwnQMsiLWmbTZrT%(U(W60eqNq={yl*U6|zgp<8_ScOxKpzf-osgH9q z+aI3*;h0<_@p3iMOfx%~*>$wvLgrNxubEF!uqOglcXqx0sm2~n=5;bsPVXMCdx=wx zr0%JrsgE3!nb^hmc;ObW^>3~xQ%@7kH1n9u^VgSfKN-v`++0uUo+_I9NGJ0iuV_t( zH=%I$v2E#!HC|-uX`-2Cb~5YwyxzOQ&GirJ@j6peZ~bvxjThVR<+OD2`Zw42Xrh^B zb}~}V_&#qkuakIrs%YxtoV?!+>h;ex5-(R1%`~r*`F*%!BC6KJJgiFM<*K5ok9M-N zw+N~=60e z#3}9e*QtB&nVsyaqN%r99p~ix+X*+Gpzxf$e&W@miDsJ9$^1T!$#LB^=3x~QuO3x2 z^^s2Iogto+*H642Ofj$2>qyNsyOZO4%DAGcka#_)$Es-RBc06qBce4Ssji=Rk*TMN zW}4Z_-hK<2S4g}_-BU$VAL(SYKfbdHRB<0p+fuz|n)3~c2h&&+%`~r*Sy%4daSrAc z5-(79RngR2e;m6`MvCR#9|5ZC*Labsr-^2o*~zFz#V=Q{9@u+VNW4hhQ$14D& zu2Cb^8i^N1V@DIsG_#ZW#)gx4VMnh0b?SN8tl2f4?5U!uw^|)NCZh(|ooUrbyl{W4 zqlspk*~wf{#pjbT537=R;a)T6)V8KR&dK}D`_A4X?wo8}s{7}8*U7FXnrU7q^ZT3| z`QYR#iI=O2rr!GF*fAONYV<_$jj4FuzDDBZYNDBDb}~=mM%7GMQN3)xjrP~6d+(WN z*Za#Okt&*ctJTp?CRN^&yU(}U_K+Q^)=0c|rjaI^X?7>a**uw7NxVosRz*{9oioD8 zm|4U*=1YNlypVm6X{?E6n%T)n^gdW;p16JQNA*nXpKByuSQ~Szi+>@xA?mK2HKYD^kc^Cx=$0$G{2Lb{fgHDiP!I`N2+M*tv`-hC-3d& zez-Fxziuv+LhGAyP$CZ?ziX{N?ob(@)!<_i(?SK5tbU`1{p1SN?AMZ~O7|{psh^*Qa0J{^^I)ucvRe ze*^nltpAYYvA!5HY`EFmeZ;-jZA;hg!DCG{^;W5)z0BJ|z4>)d<~6sMJykT-++OAv z#;!eWa7QCmyZ!u~t48 zNxiT}#-4JdiDsJF$=r#G?hhsNDybK#$2ZMt>Z6?;?}?LYPwF-Aiiu2PO*GTYPG)}X zq$B69#B1hs1b2X=|Bh7A)JHm*x7~O%t)9$lW+!`^Xr`H+%@Kz~)l}zQC+}~ItUD%?xih=Q zj)l*BZYO)H|}nQQx9}2lzDloXzHV#>{WT)x-zf1=hvVb ztD>ns_wxApHC9ya{QA~a={4{C+SNo;ALnJZ-`i8Z6{z#VOv}|oGkxyl(erD5A5IO# z^Xprg)XP;xQy=MM>?wcP{y0?Euk)glJxw&z%ueR_c~0(0yk?$>;T~`&)z{QVJ2{?7 za;4l;=QTgoSQSn6xtBA{ukpK$?~^3=p4@BZ`L(Bsras!s-dyY6m3qzZHMf_! zbMBmqx^JFuf1xX$pW$rG(?nBml{&8ex^2HxwR!K#y=Ly8$u!bLGkxyl@oQy#pLfUR zy({yYyZ`o7(bPvenH4V1TKQfk_3|{)Ofx%~=lGoZzI&n6%Tq;DAL(SY-+Sx+-c{>0 z^O)>uqM2rPGAh~PJLs@ZzLz-N$l0l4P8}}JHm-l47nypRXr`H+jMalP4+Ha_yldul@_zRdD|PqP zX6sC5eVTgvpFcM7+E3R8dHFtBGcs*~wmYBAHh?-N;wbXV+j};XW_S#9UQ0^>I#S``wvVjXEz^6U{WI zlko;CX3SpV1t(Xi^XgGWQy=5xNBiT7CeE~a60cd;Og*Y-s?WXrW#~C&ej)EWkM_*T zef>JG9!)g$kzRK10m9u*J(<_sUiMVcRC9Zox8Cg84r}k*-yw4lco}ucfBgUa&*{HT z|NSTb_c?bh=w(k6O}$m>xV19d&n(kpx_;`_qlsqv+{q*BydK{dSESO%6;iJrRW$XH zPUh_)o|D&4y~xzlL^I9oWPG1fM}QHzLhALP9;>3Mk9M+ChYPCfr(P}7_r1lL*U3mm zoEsH5CRa(lTvf6f^@b zz5UMqBHjsaTdJ!=R-hWGqNzUj^7#Ck+~b$uF)m|8?Q@^K2ah$;)LW&F&AfJ|QC~!+ zH8L+(6V3FwlSgM>Sp8yGIl4!b%&TNxt}2@PNGJ0gi09-Qnb*f{B*HH}(nK@O>tu{O z_`Yb)K_^$qyj)c@^>I#S`Fwd%ydAXWsrkS10%*#nfK9#BT;yF0fP3XJrH1&~A z_Ua(mKi9~-cBbo&$zYEDO8;ibyh`Rp>ai+$os5~JSF?$#LZ=Z%4;Xb zd|5j2`gf-Bn5CI!cQR`BoZfrwDz86Mk5tjrM>?51F45|Mv+I=;ua>E&iDsJD$$UWt zr<@!oubp^3sJp6Y>f@Zex8E6)Uzbk2{>U`aL^I9oWWKuK+!ph?c;eMk_f*l;M>?79 zkLDB@lV7);i?*d}W!HaX8fl`LW_B`mp}fkF*TwIzZ>f8#XzHy$j>xY6z5Vf;kWOB? z#;acw%`~%)*(la%Jgz{9+ymOWL|h#8uQOc6V3FwlgFH)Xn(VKYa^~_ zBJ(<#m#2!RKGMmoXo|)kP(7E)ygW@b)67oh_c@u@xlrcisiLWmbTV&)arU9kWil^M z6U{WUlX-)^Qx9}5lzDloXzJsf%#%Oy89t85H8L+(6U{WQlW}{1b8eH&t7KlTDw_I8 zCu2?M)d`%tGOu~F55D;oYoeKEb~2gYjM|X%wyJ7>o$KbDJM~BvO}*9X*u?A8woi=y z*_&zANW5H4G}FvZW{q)_=y6Q0l6di@xA*3pBb|)IE^a@lUWz1MxKqK=WL_sTrFBxy zOPR!r)Z?4LHT7{$-rquUa?DGS#LLx0GtE0D@89RV(|IYAc)6-*>SLVD`WiTL7z>*V!oym~azOfx%~`^nyzT%pE`)IC)+ z^^s2In$W2dz>ad;(p6{ISZl1hpN!w^UYF>+Cvz=PIH8?XOesJkDAfLh7C>ntH3%aoKg-erL^e?@GK@pc<*7sXq7em($-* zKW%^B!~J^tyk*Py`_<;l@3#N8A5Y((em;GD`sMAPemMPl`eyq#(0jPi2vX}qN~PC+ z4lb&B)YQj0nXfK5udjk?&)LSAGcQ*aP4&5#$L~e$Ul^?lIWE`8yj)E*_0e9&S2(Mt zp3G~0FUP8As`OT7CCCs#?mW`0)&soke-4-GqMQB@QB=NhS(tI51h=G}uAV@-vfR=@Y2drbCJ z(bQY5jvbTt*EHgLfY3kpq+au`m|RUX)4XHy%SICONU!(qNxWuuva5=wKE}zfzg5=z zRC_Y7Ii1|2iDsJ9$^1U79-Mb&(0ljfU9&p5M-@$dq?19_tMft{(6)5Nb@GF0tchlt z*~wfdJ7Y3b@R`r;WKR`Mz18Zt*)@N)tWNZ(_9R~OQ;p}Jn(A{ee;Indk=#+s=H(;U znQ4Ea>-ONDCYpMy)X`pM`<)~cNq5`Q)tN?`Xr|AdJaQlE;bZJD#dQS8bbaP?_up_r ztcs@IYBj>i@%V%E8t+E8EnVBmu_l^nW+$`G*qez}$h_FUd8%mYtv`-+GH->6&t}re zH8L+(6U{WQlTjJq&#kLuUal&d`bZ~}YBZCCld(V3wsh4od1o4FqM2rQa$K26=2bE; zQjb;9)LVZXJtpJE8=OCm*Gw;4U*5KKT_<~*Xr`H+%qVKl0H^< zY$6@0lX-cnXzHy$j-6lgWG3!Sh*!$58~wJWt2)`$L^I9nWS(sFDmGus)Ooq8XzHy$ zj&?HYyyACMuxffOl6morTdav@n%T*IZQpB|%!}0DTSqX`$*66K>x}8-8krYrU>r^6 zbuz0UuGT!PO6K+H?H0EW+yB(FQ%!xOlX(kWl)lr+HLASGG`>w%GtE3E^JYFL=fryy z?XOd>sAkSN_cyd7RW$WhtD|SvUb;gk*GRlpzHQ+AcAAy9K1IJ-GOv($^{A53$!tHX zyqwyQbAiOGM-$C7=a}4nUo?+|lg}j*uO3x2^)X}eqy6zZpH$bc^6Jq83K(#gEb%emL-Qs6Ex_RgLrnrUVy z^ZT5As7qJgHFM61N_1zYqN$H_GS3Tq*m_=FrN%M2M&jjaqM7D(GG-h2%{sLqml9Q8 z=)YZ6H1&~A<~~|9r=XM9uks>OPZP~Fvy<_CUdnkXlX&r+v{)5QeYBI~9TzzHS|st> znMPxlW}4Z_*oBJkx*_u_iP!$lTQsI=>LZ|&Xq~C4xBfWp3Cms%Yw?o$RiY z*H642Ok+(n)67n0b{)+l>EsIM8cE$#MN=Q?WbUFlRBr_mFEaHs(M&Ttnd@ZdEGu4L zZGW9Q8<};T{Gg5fU>9Cwr=B z>aA8sJDK;^nELsgHKDx3`G7R@+kDKhHe7 zCetW8&`k3>ndkSs3f)_Y8ZY$Ut}2>(>yKl{AIc{dMXJ-C0jikh-Uerrv6G zT(#z-{qd=KQe8js>d{0q&Fo}m*HNNJ<`ohzQukER)JHlQ?RQR4pntBCczK#=rg@#b zzkqZzX4hC_w7<@E$7EL(O}*9X*fDu;Khuvr_iEcicI=;PBwns2nrUVy^97`xHdo8f zm{&=>{xh$EwJIL%WKhLu8>b&13!G}iJc~?YP3Cnn--YsK*Hsd){avU?6-|AllSwt& z5675{(?M-Z^-OEd^T~9wr-^2oc}&LlpfU>PC&#L2>aA8sJDI1>opmx!7PKv0nX0FXruy8= zUrv8N{j~jQ)$HYdJ$>G)Ht_eWtuOv=`)~X4^!@4Q)7Ph8-u~%_)32v*wtoXDVLpXl z>EGUJJ+OjcombRbu?O!-y=I<^d75bI?_v6RbdefO-*U7v*RW$XHPR5;rUd7L+GMSgBiDsJF$@o66ir~|hkhH(fm1km} zDw=w$Rqs4&ACW)*#d#Lbok!yj#$>#h)V6eGs-7yE>T@q=m|yb?ovaftN%`Doo?m;K zXzHy}W4!ESnJ-&U-nMjoFGs3qs`K>ANOQlGbh-tDw_H@C-3cd66}{EXB%BjG}G)(_U;>aDRZ`w z)MHgN^^s0SY8Q_`?4N6#ZRBlUu_l^nW+(H8O=lnKrA+GeX{$5GOeIo9Qy=MMp6GIB zTCZKH*Sxc9-sTn0J~h+KPUa16PSW|>m3YlPyY^Jk)JHoxK3k75`L!$an%&8p);Xd=WrFuts&M~=1 z6U{WUlX0Iye0G!bunKivr0%Jrski<(Za*3A=h^x=rv=q>fyApv6U{WQllPPLQA$hZ zJvCmlu9Hcfw=hJiXzC-K%zOEqb@I7D;zg#OCYotxCv(5TV_qTgB6Uv{O?{k`F&ex3 z$>#z!USR5KqM7D(GR{vpJEt6zE7W+Ax~Gb!KGMl-zfW{OJr|F8h5Nin z-BU$VA2}wo&N$i=r;}^cdEwqNXLn9B&Fo~{cH^a9mqMwRr;4UN(#dRpG?RpruU)Cv z%qu2O6U{WQlW{Mb>*Q-!;x%(R;;N#lk8?6l4B%GeIKRG@$-G=uG}Y%`9-n#f3**z9 z?7@3#z2@z~T}?Fg(O!;|S~6Y#Y$Mi8JJTrB*G!)~dE`p@-kgYX)>PLLXB&G|(bUH{ z`O*IPWgI$r{miRJ6U{WUlfCLhGOv(%k-DdfrascitP}A1=k+r$GW9gkOfx%~-xt-S z(#aLhHn!9wRW$XHPUZ{Xj+1W%GA}aqG|@~mI~nPGd;=Yvd@GT8k-DdfrasciY=6`f zk!sHk_H$+*Ez?L7%`~%I$#UjTRZp>74Lyuj4eL^I9n zi_s-7TN}O#3bypQlecYJL_InjS zw*qGyA53FSG}F9eGVfD}Z}sMis!HPJs-mfnbTZ}?-hT4ENa6(#JDO;wnVpR9i!00F zWohA(?m1P=;ZzTc!JMkzJB7>r;4WD`r~LP zd+82mTC3N1wM_BPx*A(=TvpN~S zT=z5-R?0r}IcL{&va5=w-fDI1n7rR*9*sY^yB>eqmagh#R};-N@0h%QU-YI7nfKh} zHMf&_e|@Birr!EvjFY2!CQ@C!#%u4L$u!bLGtKN|CSK7xnatNuymsoIDw_I8C!_rz zw}eu!2}!j^;srGvO*GT&PLB6m$h=D8Me4CCn)*m5T@rD z8F*LjJ_7Lz&ldNd)N9^73uJ)sLZpeNKHkeWi)oF_YiAm1qM1H-^0&k8*W7)KOb_+f zPXApe^YT>D)JHm*?T^xT%(d`4Xj{5&=H+RknPzq}Zyj`;jC{;zKKD$_Q$od4RG)h}!~7bj_`Go$Ye=8_%=2qc6HUEU>S!;s{obftCH3+& z(M+E^dG!2xuT6~hTsRY}l6twSXzJsf%=UlW&acI*CafUamg-S?-rm{OL^I9qWSswT znD-=JGtb0GJyu0iZ~bxXnEdJOjBkr%M z<9HVe^An%>tm|Y__f*l;Tdj_pU9`wMhv%VB~uMySdJM~xS}+AK&h$oZZRZj>JoWySyGwjy0Lv$?l4(O5#N)$Es-RBgbUk zn(FLGyl&%i+fto)&An#wRMAwQkIG+$-ZsGAiubBIYvtFj)N9Uq`yNd+_0}QBW?p<9 zDy}!h{Q9-4%4>cv$Es+m`Mn&ELFC?3={38TV@)*mkzV$0J|WX8sh6jTX8PR8BTqJR z{9zrNa~|roQ0nEWqN$H_virUjoxFaX7k=rkCYotpCu7_}(&?mLuLa(0WPa_cqN$H` zGP6u)C+f9G>V+C}oGghn(M&TtnI~tQ+Zgc%N&D+uHy`=5^;w`EsiLX3S{=Jm-rFC& zZ-p@#f7_O>Pc>3SQ+@8`@u}CRtyjjl?4+INBB__FiKgB<r2{s-mfnbTV(Qif;SmsN9oz&75D8>U-}%e(vQAqcXWW zdr{}E+-v3@+|wktm*ZRb>E$Y^7nsJHXr|AdJbF~#PvkncF`mn$Ual&d`j}Dq)4$HF z#^-QC_GqG+=5+Go`{F%wGOv(&^{Aq$k90E5DaS9cg6gF!^_p{@MW&u6nrUVy zv%cJ!TVJ{ouUXerr0%JrsgHCr+aK+^(8)cg8&{wjsiLVq_wv}4^5b_KX948Cex+BB zCYt(4FSDx2Sv6e>+~`H7o+g^lvkKHkgD zsC+F@>Bat;{ad7oX8PR8qgTp&EjsS0=;NNmYwrFV`ADparascisD$w9aIZx&FPx!p zG|@~mJDK0-q$Ag^DzCYn?5U!uk9KnWS{?i6_3OMiCWC3LiDsJD$;hqU*WRvWGA~yZ zO?{k`c_!DZ`MDO!yj)E*)67mr^-Fw927B)+bzbm*ql%_J(#br19-Ynv)!X*BZRwh) z8!;;Hr_Uo*G}Y%`9-n#bU+83=w<4LBtBI!GI^?+1jr`TJ5+eH5(#t)SUi0Rdd{_6q zr_Y}|d35H*)9GHF?ybb>MmhnN1hFc4oy_(}J85)s&*{dQo$P6%nPzq}>L9#2uUnbS zi>K3LRW$XZ$K==F&O-fd>w~a9K)pa*9dcW`&Z}P&%`}^n|NZ;CmGW)z%&T7&O?{-3 zv3u%LUHNQd%hc0EGtKN|?wxwQ_u83POWjjNQy=MM?zuQOJKei7ui0kTEmKbu%`~r* z_gAny=4-#)_@M5pqN$H_GTR@&qk?tveH**mmg@9+UMIVnXr|en?Cm|?7f-zY-N~^k zntJPxBeLtZ{U6`f$xaRKed#K%eoZvf%ue?1Q(*7C_Q}SUx~Gb!KGMl-zjKSky-4Eq z@ht_6UmMm;vpX4I8K<20GKm+d$Es-Rqn#YTJjwpKM&h+IjpiwuX=W$0hQO%{xi5aQ zu^p2=RW$XHPG;qJ^sB`^=GZlFTe|K#+0#Tb&Ff@VCOY^3fO(a~%T+~FZ~bxXI+^W{ z&kNAWH4-mZ6U{WUlUbu1kI8WI+UFV{WAdEUn*ZMZcy&N0uUzBRugTm_j;oo-yh`Fl zC&#L2>LbTw-mn>037~&o`CMb`WKR>#H1nA3-l_`b*Nzp{d?%FuNd0}cs*ZLt?vaRc zOi-1B8zx3N*{e*%ObcAwmadw3k!f7PI~B_+@F$G^dksV-+ee@tciu0AwRb@Y`Rf?!9Mqa*ryS zdaKoOPJXl>vnZ#3UO(~b(L^)N?qsiq06TK+uXA-L$Es-RtyUwP9Pgd7e_lWFdN?`O zL^I9oWWVkj_i(nq&Xt|)siLX3S{?0VX75o>ODC_Nc+tt8CYotxC*%9#3S%;_ka#_) z$Es-Rqn(Tua6G$464bU-_s?_gLbXgIO*GTYPUdUDQKAPYBQx-s&%I9eRMFI1t&Sa& z!3z7y9@X^|FF4uNL^I9nDX{W_t^r=c_sXfGTFrapLt_B=I8CSd+P(?4_Kq z+i#;CXLQOrbK*tnu_~H+tJSfI7j{jtBjNPVuiJmFZKkZO&@YiAm1qM2rQGSUEN9#*Bsi_~LPH1&~AMwNhf zs`0f<;^k?gnPzq}zt6c{;ntJPxqu0r7zjLbbTqg1I zG|^16JK0M)&xH~%P>)s7)JHqn9h0jhUSt}LS(<51C%?R%Pv(8FPU3YgQRCI4il#os z$&dDXiPyO+@tSpSu}2k6^|_b7oc@0LY5VgY?$^`jEset8uePz|yY0X2$J6(xpHE+( zetG++A5OoXzS;f_TmvDK#Xa7*XW;RLaZ<|}cF)PiId>m>G||-G!}RmUlYjmiQ|v?G zt$}z?;@owU*W6zARMAv(dzt%>9`~NyYi2KdnrP~yz3iQ$xD-ge*gunLRGX}sK6moB zr+=LOIdn`$su$O>VNAYkf7@TDPCDoAzdcnn^;WCnQZN2$*?#9_3zXr`H+j8~Msd!Me` zf3E#?uA6!B4xm^SO}*9X*vxCc@5Y&FU5jL1t|ppkW+(ga?Osb%dT~tlRMFH&I+>Nm zPSww~EAyH;`|vc;Ofx%~iJr&2!r4YT*;7SRAL(Sa->DL~c2#=K>|{?9%{04{<2M(O zja;`s?XPp?*)^!gs%Yx1R>#h+QMHHmJG+b5t~#%Io$P9&ndWu!{(aHeO**-!#%t#6 z+EqnUAL(S?wiu;5pn5Bkc=2Ao_(em_G_#Y*+{s368~66tx$c;}Q;$^9)LX5N9+O!k z;LNUXU5VG+{j;Zvruy8=<7-3syNyrsu?O#|^qP4t2I{dUn)+xjd#4+3U76SXUXE4K zRA=zAHyi88z2^6Fq=}|J(#y=>owf3+ywgRVv2idsnU3oGaxX zO*Hk9Ugpa(&h4r9uGDL0rk*C6>2oKKTq*N6%U5^r#*H!eu9JoocCvHdBB-u^i~YmNu_l^n zekaF?7nt|dc&*^%NEJ;JgES7DzrE?mem3yt|LQ`zh8$Qy=MN zpDB8*wxuiQAD$|j>I`0XW@ET>)aO3Gmm^Iy^;W5)Q!i9sds!ytAZ<&vmuF_`X`-1v zck<|+DBO^NdnTNu6JwRneD1lJr;4WDYIU@eSv~H|v~Uk$+tPKN>}jHzW_B{aFUohY z6NP&UedcpJ*;7SRZ?ziXWZc{oubI%7w=G@U$+0GyX=W$m?m_G;I?U^&UY;tNdh3s) zoy;30qtyZX=bqGS=GnEUiDsJF$*c(SdhedZYwj`GQ$14D&&fno=n0CGnZh z>||FJO}*9XXeZ+oMZ6|t|6C*S;vGP-CYotxCo|h|*2&PK{dMZzdu}Its%Yx1R!2LT zGfA(1u90|s+D_OzyEK|bNgp}Yui#ybxtSuXrh_sbTYq> zwbzc5U$)_c#*oN zil#o&$y_rzv+I`vHC|-uX`-3tb@F~1H+n&ZPOgx6fx4@TrasQeY=8Wg2C4QWUNg_M zTvasH=U)CY^gI-Qw>%}{&9Hmwyyjh1?dPE)O*Hk9UM5qg3iqWz=GFerBTY2Z=T821 z;9C@r?{nwZ6*8|LRW$XHPJXpBuh$}(7tV?}IiO~m*~v%(;xpKoiM^J|ym&?|Rz*`E z>13|-&&KZJYmv+gRUycPB26^YyiR5n8`co!nybQwM3m4se7tu>LZ=Z zRiU$|d@hoCq23rP=siLX3S{+;G#b2$rV#2uG zwp3G{dBp^#u_l^nW+&q|g*ej#?{lHd%Tq;DZ~bw!lf64KNVO;Pn%T*oCYotxC-c0Q zlXITC@~*kZWKR`MeVmhd3M4+yMJM;vdClu&R};-Nuaj{y0*RjI+pMUJs_RCYotxC-V%pGrPW&NW4hhQ$14Lw zsqwmW)p*T4)ACf&RG)kK%g~dJkKZjS6yvq>rK`?s=D8TC$C_yBqrL2|l-JL^+TVG! z=Fm)^JNeszCmZ>Ftb&MUlAMWEIN8{vil#o!$*5&=>L5V%S|sywHPKA-I(dI7I_jy& zyh`Tfs-mfnbTaEro%>*}MKZ6QX{3o}n%&89Ju01C;r@Dz$)p~uqN$H|a-8pwYK_c` zOk+(n)67ox@Bg`$$-HL10f;>jcNd*{`fFF_HE;I8dqZ%KgwBKJbu!nWtBGcs)5+K74283wd@GT7^{Aq$k8$#& z{a7RDbcaq}|6F5_CYotxC-=;*E1YX2bx##deWa7wes4@(Kk;grMw)1**`17p-s!z7 zBwi2du_~JSXeY-xEym<~fyC>%lbEL^I9qWH0f$mq@%G)MHgN^^s0SWr%l!#J%gq##yTbNYztCQ+@8`v8SQFZ=*!Ql~YtD+G9!)g$kzOWK=e+8@K$Ta^G}1&feeUFur=i;Ki;@7&uj^!9bV8(x zras=uPI`SW@M2^8OOG_sOtU*VP6FuUI++)o9IK+Kk90C>6P>#jaqHxVj@pp9=hvPp zn(A{eXP95(3!Qtf!M!K(()kHIW?&Q()Yo5V&`|k=T z8%f=}L0D5C>14D&KADLZ2|jeCUi0?O{H4d5Xr|en94ED8el9W-BlTDnO?{-3SsfCs z3Q4u6&THoR^?u(#q>85c+{@$V*ZbM}=&fjS@5#Mp?!n=Ocz&v>kM=T7XhwSy7?o>O zdhNgSNE6NUxs%7wuko9WPw~;mRZ_42%qCqN%r99lKKA z+aI4k2h|#xm#c|pn%T+BX+7puGB4ieg$gL01ZwIdos4`Zt{%rs3%~HTrR$E#o+g@U zUMHhA0Aq4=;)~3yWL~Z+ntJPxW5;B+Kdx;d)t=02-r2RQiDsJ9$+x$g`B>W*jXq@F zlXuNJyY5j%Qy=5xw*5|>0Pf3eTe{+y+@pzRn%T+TeK&M+g~W^0JykUI)*r`>$!tHf zcW0)Bv8rw9x=!{q(M&Tt87ZwdyT`5YMDlwXr`H+%z32eLZVKyNz=uojsap>hEFtdE?1H z?_ug>UN1#5uieR!CYtGUCy%W1;%}CCwrBBuU+@o&pjrCdaR13KGMl} z={{Z^(8+Z&FHaRs^|_ZbWM23}@0N+zGMSgBiKaf<%id|#*D{$Gn8uoDrq7)`I`hJ6 z3OOOeFO)kHJR?&Nsyl+3GCd69aoil#os$@jOKdVigKDUf*e zXrh_sbn@f-knqIyK$jAUSC1;1`ba0EHZjg=**~v;mlv6OnrNn(oy=^}~jim0W zqN$H_GT#jLa?DGC#0yMaO*GTIPUiQ;IRJa_3W?W)daR13KHACdOl$qb>%lbEL^I9o zWZuf>oQArTNW4hhQ$14DYC;8$v)3re2^W}4T@du@3% z`q0T0>byYRRYg-D=VZ1&9)CdfRwVUuHPK8nJDE4QIkkPaGN~8e_ls{G)zn8inN*$r z`PP+s&AVdSnMRsurkS10q|14LwNk8t(Ctkm28fl`LW_NO&1F-jAKk;g*$Es-RBc05bf}(Xk zsrFQP&6r*9Og&9B)67oh_eDJwnXjLC{hoTHil#o=$@rGI#_PU(;?**ZHPKA7JNe_5 zdN|D2PrQClJyJzeALnFz1=h*ln7sPQMly9Z(Mw>%G^n@!F}gvLaGNQy=MM zwm)_<-fR5uyJ}&5%5C1+_5MqbG|^16J2_7Da5FOYHrijOWI#S`<+|)Ky~#~jU1C*O*GTYPG)u;tq9qB zS4q5BZ6Ciat*MW6GS|uRsYW=tM&h-fpolclOfx$fD=MsjqwE^Yt0Z2Zw%LcHil#o& z$^JSSBUal|oqo)lc#$d2HtJuxW}4Z_d@(0lJzz}6Y|UprbK`r#xLWh&9Bwjo9xt)xap&ozeg1QrpE$|t_1;wy zFIN>!eax8r@$D>B&+K~r#H&XW%{1qj%iUUS z%QVtNGtKVg_^be#S4g}b)MHgN^^s1-esY}dfGTeLYFoNu;zg#OCYotxC-V*E_{9P+ zuaJ0=x~Gb!-umOX#Ou-icuhzrub+7JXrh^Bb~5e`bVeEFBwnEIs-mfnb28iSj>$C=FIN-IG_#X=`;X`3 zDv1|7;Ph{r`ba19_8+Hm54$sMOZ7T=)+zz^&z>rp>T@rDIsN_g)ApxTvv*bXSKpyP ztp`RR>{+1JC*FPh)K%v-XGKttCYt(tnEv(CP;5W)o%nS^%(Y%N@@-4CmuF_`X`-1v zck;Kx-jmsV%r%v>4~2bJpZVPVx2KAx-fGp`JHOY-%-kp_fA8-Y~ym<(sjpVPZP~Fr;|Uu)dOMm;N_ezCC)YWsG_O2 z{y1(-X8ZXH^#4!Z8|+%PBw0dtjD&>550r`#gDB;D5pg4Ki%N+=3T5ua0IiPbgO^esEs3 zxAg5Yx#p7?)76<=I}L^NP<6~7pUJsbV$^$I9nEB(u&(S!pysEy^zAaa=93uHm6^=% zSDU@Bpm;G8t9d0xz30anOs?%heYk+)b;C6GNsQ_0Os-XVeYlX~1t#ZSiBUh3$<%3U zG5PIRd6CIApTwB1%w&GQT1>u<;#KoXjQaUZelAq|e7KC_MNBiF#F(zjWSrfr-B*At z>?(>^)hjXT=P|ie8CU9kK3+ues`@0xbX_Lngj4N?PUO~CQM{^NiBUh3$?P?d?V_RH z=i@~buOGL4^GfAJjOofuW;JRJ^Q$OcybJwtwd>ZuD632)liz-g7uLyDpFAp)`TZ)l zfnoN(!nwv9>bX~9)Q^tIAHUV?;RFTx9wYu#6t9nOy2fk2Phw10i^=`>%-^=+ zwcjf->Sr>Um3tK(^W!eX>+z}tejnA>+lTsk(z(X_Z@b|tVHGKH?Dd0sMov_qkd*ouARok?EL(uHLo7inonX(S7tK5 zU!`xz^BeEwb&q=Hl^FH2nT(y6ynn>=o38TueN1zo#F(zkWS*+8=$y}QT=VKtuX!a# z{Y)ma*Ffc55vJSO9YAnZeBZ!J*$bP>g?>XR7Lm6^=b0+pLr zKV3%gBIrWR^ysAEl zFX}z!)X$8`M75G>eZEMI zSHm>(NsQ^rF&WxUt>g9Q%P3wv*O+@HM*U1C168aM@^$j(i_~}#)7&R9rYkd7^8kBlYuJM2o)y3+!jq`6NdDOfF-8F;{qyZM|GT^&*pNK8Z2)O#X7pEy~ma`2DbFk=G^?^DC%cd%O~( zekPNNYIeq&sJ?yGtH(6+NsQ^rOy((yZ1NT&#sGrGX*q^I*M0Jnq_1O7! z%_}jgp35t&mDvwCJ1Iik_b6YFoL|>`5~F@5muY`KL!*EFTfVcg&p&HEi81v|K0m+4 z_sefWLZ@8xVC~<|_;$a?p1*5eiBa!;b;M0?{aecuU3sklP<{Jn8<}agO{#TNQGCe*0$|dnRW-i7{Q7$*lCsb8F1r*U`LcUWrjZkI6Xq zQ#t)ZCSODIs`@0xbX_Ln)K4Art7u+Tuf(XI$z-CM?vsRu}53(lNeLa>MBFXJnndrEizXHJ`+ouFhm=wYfHeoU@Mk<1;z;N{o8% ztK*pb{@b1CwX;8D^4nLu_V^^mbWJAn`(dVnmQ`W$6%?;MUWrjZlgUK2Qt^Y8L~rR^ zjLAKwnNMO&S7&nNFOlCcOMe#z%y57>a80cpteMcUuDA4UGx=@y*yKCQ(*iZjub_DC@ye=9Zq=sQX)esq@3(pU3QVs0B*t{z zn2d@(#N^6~>is2ZyujqDS7OwAejFQ)h98gD>Ip^hfLAq?0pr*tKGhu zc_l{uOePc6tg?luUPJL}m}WkSF3S4GMW3yS^Pmv{%{e+i*r>hv#m6^<4w#xap50|L% zB9m)giBUh3$=qA4>_UCGh~o9*cJn)GpfaDtn6A!b#GpJTf4Gd|MbvYz#HgRiWUiAd zYo-qusqx~Sjo({=yC#!Ae5=sq`L|k3zJlVl$15u``DQ=5fmG(_x375Z@kxy7>P*II z^9tryP`rB7Gq1#`pA(a5KfC`_)DPTr-&-12hCJ%Im_1&JQT1Ftx0BcH8`e%y;4Yy$ z?vL4FVvkQ^)O$}Ix1&t^ajR|(Q}k!+EseSS$e7lA5@YI_d}b#vV9weX^xDg#GR`R1 zF@NOwyXut~_1;&cvjE`JJ>e>ODV>j>+5;uhe;c+@*Rwa!juIB*t{* zn9M!%+U&hY@p|kvRn03g>Sr>Ud&-rasOMdp*JGnv^Gb}W=kf|GWq!k~0tWiX^Df=% zk!SFlPh!;1<8tfuTgkPacd1^Fi)qy-F{Yl$XRnmm3mE6Va{c;wm*Vxv^LN!NG3sYB z8C5@deIjS)J(|~BKsAe5F{+-+=SSuC-qvRDJ-XK;&*0=j=93up^SPX9wdC?ORIm1) zXFiEB^-MlLDzhr6wyL^{>V;l0*qzI~5~F@5lesIA*-s|#sr7o~*}3ME7}J%R%Sr<;yArjkpHI6~uSaHb%_lLYD>IopQI$Q5PrDSa$7XWPD>3S4 zG8tXk@-B3U$)7HxdDVOpW4bbvS(94Pygpq>^Qw6zM*Tb{qi-f+a^-a6r;F5iRecg; zx-OI3_sg^$&fa_Uu1Ai^RjKcC6j-YGJz&lga< zdQ3B)#F(zkWY#8DX7A6JP`rqG%_}kLXEK@gSJug&cPUbd;&>Cc~j zwf*xwxPN;3#il{xKYzF>9e=w0wZDA&i>F^d{qfV^eEVO&eEQp`pKqVQQ)}o`g^q)N zwEcJg4J&7&KJQY!9&^uPk56LMzX#J_Y~$=vzF~N-o!Y5~JRG>bNsez5Nv}^Ybp%>#?~^R5P!{s6GOhYjJsx^7Y7Z znW$$ziBUh3%h*A!_2>J18QrVqlNeLa#^Kaa`aaHZxHsJ?8!+gtipGp(vmVocX%a{GRjn$4HX=w4N?#HjcD*gHSBmGUo! z^bht-$XA7A@}8bvkDF&zeG+53GLxxwR@TWcyELyyUQ^**V5LuGjQW{OMx|PB>xIbz&vEe%YmXJvNhTUWrjZo5{6v$}hV#uSaKc?vohPb(zeY&GJ)x z%)|ERU60Jr2nv+2M--kXb2 zKagL-qXSUv9oJ3IrB=4`k73wRY4HdJ^j2Mcb&|e8*>#f#&l&S z1M|u$ILzLAYP=qs$u+OUsGrGX?uTb*2FT>M-_478R?R0drYkcU-w*4;ctuFeucLU? zyb_~+CX=DP=j(i;dKJa1=93uHb(zeQ_0^bsl^U7vzkzH;NX)OGcw3CMgRTs z%4=j|SJ1rncqK;tY$jJKuYu~@*Sv0+=01rrU75+XzObCVub_Dm^_o{=)X!ux?a%IA zAgXU)^Xf6pd=g{2GLx})TB+B>?0p5zi>TMU5~F?|liO*otltfo42`?D^sTO#sy>M^ zU6;x2`&BeA+s#jvvdtV*9PNx0&t?p#<9?k19YeO(QSA7y=x-yf0_!g5h zZHJie(Yqd-$u+OUsGrGX*#E=!PhKbR;|0z&lF2on#F(zmWJKEv=2ua?zyZ`&WL}9; zKab6Y$n&d5~JSp<2WXN`c`>O#jcWRy}y9swZ|thrfV|!_Wgb+&fZs0y!Ln{ zM*VCiSLf$Fir1sg&o@+auf(W&E`L3>@|xcesvh>+D!JGm)$1{LANTkqM*U1K6VuA> z;`<9|UOlFnPhw0xlh3TY?!RB9Hst*!s=W4iB}V;xCTFWcteQStK=bM`&3qDLx-ye_ z?x(V*`fv%&i>TMU5~F@5lWBkDWXy*PXkI<0nNMO&*JpC&H0y^;XkI<)nO9=e&tx+C zp8PDWZDCA)`{x>oY0W1wrYkcU->+7q`{5Gj8gHoQUWrjZlgaFMQ|Yhy;R01&#I)v< z7}Ir`+)fMBFyEthJ+jVO^-7HTc}#BhXPG2p^4mYx2qss35@WhLlXGpJm|vmF>xO#n zl^FFinamyKY;^!sKVC%fVm1BGHq|!XqlqzHnaQYU%HLUHeuXM8GP&lJ81*xmT8? zcG)<4U!}^cp`LjqM*U1CQ>U#|2>{vN(zjT7&6r&CNsQ^rF`3$RZT7y7;#KoXjC#+H zV=J#we~TT7$~_bxFH+-G^+}BBx=hA-`pUT<#^kFgURAHesGrAV+7GohR(F6ZZVKux zeXB9K>XR7L)tOvVywH`ej`<_+LJ{@cD>3T5ua1q$yg9aZt`R*XdP`#_KQ^lD8}fZ? zCeP*b&rlHe>I}Z8o7dx>p{V*~Z7$b(d7<{Y&gI9)G+Rl=n0h9keTJgFvlVp&yN`9u zAAkOa@)hT&G3vdq&WOr+j|}G5*U-H9rsqD1FyWY!h0#HgRi zWS*g@t(5mvc|G?0T=Pnds^{_w`8B^`MeBUtb++-5bFrFFV${#)a+XyfDu23+>P1X5 zpTwAYCZC^Qvu{;p{{D0!)vM-}81?g*+-{G}-dZwwkLvZfvvbuaF{bM>ncok3ZM-HV z=6e*cN6y5mUWrjZhsmFR*UhVn>f6`6_V^^mbWJAn`_*p*`*aD-YmZlA)X!ux>u@Wl z+&*m?c5i9C6ZM!e`G)ED?k=v(WcIJGVSa@=FQQ)a%DPOhbqHmqwMX-MWG2^q5@WhD zlUaLRWAYX1yvXF5S7OxrNO#;m)Xn}{mB8lU+eZ{NCG>cg=rYkd<_4e5rK4N|a#fzxdyb_~+CX?%@C_Z1H%B#mT+ii_8 zU7g9OfXTJ%&lgg>z=Yf@G3w_r`G;?{EqRq1=jUrEUR9sOn6As@AGR48^-NjLLCmkB zcvZa;qkblniE7sEhNxac@oJc6K8Z11oyqu?m6&`L#fzxtUWrjZlgZ4kEA#WqMHH`g zMmh6IjOofuCgzoDpqI-iUJdokD>3S4G8tWA^G?5r$uGN3Ha_ky6ueRKNsQ^rOs;hT zCgxXByoh?P{l=)D$7HDPSm#%2a9=K>cvXE8W4bPrTQ`M|h3xv}GKyE#D>3S4G8yOU z^O=bA^EDK&cCPWQX4iXe&VISXxkl_*RK2n;lTpu<_je|fuc3G~Oy8>F#qU?!uXx#Y zrtwivP~4cDdu44VS7I{GG`{^_UN=m0pTwB1oL!?X5qoW!b`8w0(94Uc*Sr#=er9$J z9TOa_pn8oOuOGkl9L;?aW4bbvsa@xlAz<=V6fdIw!oOo&lGo5|?GAKU-&Tc3ez zoN8>CW7Ixjp%A->{~7p^I|=hQ7rP6MK9TquzV!xD(2~{aL4W|=XXrlca8qeX6&*jV~G3vdi&f#)a3&FVj_I0m*e$IRnW9pgw<>~L9e)AJ{ z?8W@k(=WC>3IF-SExP{c)32WX^64+0e*N^vPk;06fBo|5Z=Zg?eF9krE$7FLkAL)S z?Tdfo6kIhXUqSaG>NT&#sGrGX^ySNUP|4)CuX_>GnonX(S7tK5Uv~C~m|sEn>QT?U z5~F@Llk;71po+P@xAg7iS$NZPpTwB1&g5JPAm)2Cug6|f5%urWM|ytj&9r{8Wm)`Z zEYpJh`MwKL-J^Ov@`|bElgDK;D!uY)5_(-xC|F{ppg z{;WcgT;8L3J@yP;^Gb~B`drRWixBrcy4NFTV?aIkNsRj0T+Zz$rh8Pc$LDhHl^E5P zxr}nonZX&*U;sbydzPf4GS1_2X~P|7AXjG4)LTa`O2` ze!pr=zKZHq^-7HTnM}s6OXZ#@%+A+Py-;yn@kxy7%1q`?TP+jYQ|0y8nOMy$G3sYB z8Fy0DPRM+`i0Z{V8*-n-n6AuZsCuh3ub65+ zi7{Q5$?Pgw%dS6e8cP3m#oOVN66$qD z^LoCF=2i7djQV*@ZkR1`1t=Bs1=*z-4bE%H9_G3vdqj%G4<(kh+# zaE_w4G-mSSql#?%?M7wdo~Z$x!QcAX#Iq;PA$K_it5Ev%8#30 z^F(f~rvCFT)$5UCGR~{!K6zXw*VcrH$)9&AUXQ${`f>ZVkGxXGts%&?GJS`rUPJS$ z`s7iW%oAUEKVV{h70s*al^FH&vTNF(SGN$=J(}0!#^kC`VocY~uKE4)ehS2VkKXmj zF}doM81*xm%-e!8otCIxL-E3`NN+j2=J%^9UZ1y|vwu6^?v6#(D{C{knq6O`&Z}XX ztvF&#SB}Y;scNU-K3|}RJ$IpqdhV4N^?uenR=aNYSL$$IE~0oIXd+5ZdpBa3S4GdaI?lBm9Y#jD3Ot9y$vU75+OfylleF~35M7g4Wy zB}V;BCd2-GCPGg>R6X^U#yb*^oL$#^5@WhLlPkMW!2CLj7g5iu(PPwmejKM=-)5p8 zwmvWMxgRq5?bmqi@kxy7>P*h>u_NYJsPVd?o_i%m{Y)nFCg@!K!2JC7YrKeQ%_lLY zD>IqjuQq#MNAaq8B}V-`CL^zg;+1!U0h8Z;jTe|)^+}BBx=iNxtL9->sPVd?o_i%m z{cI-ZIR!JVJ&M;OR|)W4&%F|(>bd;&)LyxKZ&@9ZtqO_z9@Xn{^^rL}+|J}OFs3W6kTaxm@$gqjNd0gaDWEj@NO2bS~#UiBa!8b*$>exhUTgC#HK;ugB+d?v)tT z_2Y7$c@XzK%Gcv_IlK2TM*U1K^A5j?27>6_TN=mZN5-_~lNeLaX6ug6|f)w~j;em0Y9su%Qt-qN?5T@%wx-HkC_m&w2p z`;Xa*5UXUU1$E3HnaNeJ#HjbaIySqe{k7~GU1NGn-zt--W4bbvxgyNF*8}sbC|<2sZswI3^)s0aRP!Ad zW?I)!yohP;lNi&Lnas1B`N?!J`6`Onk6Rrh)*P8vV${!MGVRZ1A~N|JidVxl^GS^9 z%1q`dzDk`g`UdxJXS||%?CiScl^FHjS4U^pJkgcSL|`(yiT0Mps6MWC%}(ane~C|t z#h9+n08XNdrUK*#F%;}pILd`f4|zA>I$0I9NT&#sGrGX z-Wgnr$#1{Pi3S4Gx>*7J^hDWn%5(1AHX#CNsQ^r zOlCb$c1DCu-lKOtw$54eN{sq>OlIe*nu_`1B8pelCo!h$GMV2m??Fc5v zOeXUTNM(NhcoD^GPKUOYnGDQpXIVd9M)4x*xmVU^a_wB>$BQUlt-sk@-GyqMZYot? zA1`rdBh--Y3`F4)0LUbGki65PaCug27qT5p@l>;#&9ec8(2|g?<|>o z6~(LSl^FH&VlwuUfokQ9+w(5P>yh`Ns$Pjv^;|xGABx|wR!Q)@tDo27?n7055~F@5 zmw5^#tAxM|{pli_SL>RZ`6R~FGx_X&D1N`ZqKTMap_>`U^*`AD{;$6MtzUop%l~Bi%fH_K>Ys08_-nV{r-iWYm)leSWV7y9n^k|k zJQmY|;plhzZ*(*-iQjY5WBB{mpnG}wvUw9|=;|$H&j@z@ znF?+z^Rm`4X2v>mKQDpp`)}AP#weRSPJRR`QN~L2^}{=+>^PH^>zgR*G^!FS*GVO&gZ_@Yw( zkG9-mHC}SJA;a(c&j9V`B|P^>o7WUCl|3Wa`DZG)t;|c}nsuFn{d~Noy_Jkw|M=_+))Qr zOugg1Z;s_AYa#QRGW71~tvrUCsCYu2p*~w%G=iRgCP!{vZnoP^voo^Tuc{+EkDFL! zVg;yIciJkClplG&eM+YP;0{4VP94L0?;Ooeo*v?^H2$siJLr79l}E4>Ud4>2dsbE_VC#u`H!oQKv%=d4c$I6eq z+h+NfE$aAB!Yl?`u!>qq5h99E4)Pm<5&iG|obp^n49}IFwTu;vJ=XOi&)w!kCh+6Iw;%ce82gCHMi?%L-0+j z9?5ifc(RV+oal+wCs+0Av$aJYrI8WxGsbRZexkA@*ZuGtb!=zylhG4izW;n})d-63 zw#*Onyq?jCG2W)t)FJYdbqLvsGn}lu_u*^DPx4c1x7wl+{QNT&>{jL{_dK(m6=*bd zZ0GV5@1Q=DtgZ4``H>1g5vNwG6Cyvce}MNe))1i7*D;(GKe=N6EMvE}$fGneLVm{B zt;ioyyuB5B@f$ytLi~7wD9eHLo~Yxe!*4G;-+%L& zu0qfjd5lIz8apHGJUhQ^XElEFlQ(QHw%^N5p0UrgKdi6&H}E)p=)*U5Y9zH)V<Y!^Bv`3-i2NjmS%rzNt$S^L;-*?xJEScd!OuTa!ESwiX4(Q~!L#`3cO11< z9xFfc?px-H9OC|4-VjC{*E=x%Q+sFF?~R^hXO7?*>QKy1Ws%2dWTb-K%IvIlD|vsK zI)t^JTk&bDMo>iEEuM?{$vj)v8J@{cs<+H;+ZwdDhq(?`&-Xul{pbl*T%RM;7LDNN zpK1Jzuv?j*RB!X_R_QPfTdyqaUweXsPQAr?@cxbSSoslD4`F>9GZZ;CerG*>2sbw5 z6(;Yc7UNKywf>~$tut9|k;iFdgbaXrV7Deep+){|doQtfmUq55OCQ3{ znbTx2H_zcGDjo1S5kH@|c)eQv&<#Vx|5$(5H3F~A&*Tv0Is+>|l~( zdzL=*{4IWJ{TA_T4nJ`&8%V|(F4PW0bIs!3lH)WYGL-9-Y=;b5cyDE_!q1AJpSDkR z=gYK3BRuravo*|D*c7*?`dRjK1JoXbz0$6`OZ_uF`FiDz!(XN29#{H&cV!`Y5| zPdaSp@e|&Ka^o^eZI?&OkF?q#ow*X_&zminh4n5>@1J8CiuyU|w^??pE9@MKvlvQU zTmB9GF@NCmrf8QQST&L(}_-p&3Ej8`u67>e^r;HS=RwN)c1zS}+l+K=WQF-D$^ zEO@2*A!NA35OFlthjb5v*XJi})Dcu$G=iUhrh?td{N!!tS%&*jDlrb*nfyc+>*A-j z%46k6kl*4xisI+XHtJ(}KYJY=KbZw(3c|5497PzLu%?&awRD z8<@vW9m5=kv-ru=*}8v%w#cJ2GQ#~~tN}cB>+-W%pJ{*3+xP3=z*t+D%TL4zJ=1Ed zMo?shyqgD_mrw=ZG^E};NAnZ22iDJ7{5(S+Lgg3m)A3VTG=iUhrh?td{AB;z99yNt zxVd*OKQZs=oibEx^}OJ$;j!`~=syJQN9V4LQ0R|~T5mm9^mZK0Pxg4r=UAo2I1J~- zPp%s@Kb1uurIC>eb}RFfd)t}zhuXIO4LmY_LRWSCR920k_-^A~w*JH#7#vyoMA@l%4&Y}6K6sr;Z{4B|-*coBBGCR5Z znVtUpwBg^sfyYHpW|W!}+Nu#0u}|aHl?`EVcdgnXtjnR=f}NRmt8d(VZFb`Hf{UHn zBJbmokqUOJvlBB*tSg}N**Wawtf!-zwrT`L)+XRdJr59NRQIi@4nY^f?q`mo(qdkl zq1ajX3{@75An2c|V7D$q8@5^X&?l+GIBaKTx4cn7XF}R4kCh*Jw|&1%9YQX>qB?{Q zqcwgiEyiIuC%;8i0HeHGeWK#|e%|*ejf{|=F?K8Slh|hJ(5I8sA>a%3*70+mI>ajc zD1Jg+!MnDSI)v;Iy2ni&YG+vP-}_IS{r5k8ZGL{*5JX<0`Kc@#VWEGf@iW41O@8*+ z-uS7NKX|#0?Y#JjJ5jiTQPo4*Dvy;PfqDz>#r%YZ?0%>B&T;w>F{FCin8~$DZx7W1 zy-Ij(ezNLStGC)BkJ89U<7b53%KXIX73lLowVh#6*q);gfuB%r^sIp$%X?eLP{c`! zSRumOL_VmwqPOE{enKJ2s}nRwUYnmhwWsx4ZP5sR{u%N!#%^7H()wIm_JV#(D%q{lVjPCE_{lqobocnrQm^tTjf{|=F?K8Sv(|SUD(XEG9Jce~Cu)W~ zZ?sh-C}M{K^MK25d3FUS>|CbZd*|5IC+da}KX3W1?!Kbyul8fO_x3Wb+4T&oZ5lz) zKhvt?BlJ8&zn*%xAoC;M?V2gL=mXThg>eOun}7G;?-1SYs%`RE`H}4OCmD)7ZLJET z8-jTR)luvShWh$UZIj1oWTY`PLT_b;LVLjsoSk67>5X$33T0KFPtrDxph)!M2)bVP zA@H-|m(^&ZQsDdX8;hTM|5IBuf}Ve-u`|NXv-8V|w}0NSh4t^v{r= zF?K8SlV{6r+Ja-kS^5y(K6kbZy}IV$i`6GE29EcCkr+dV!Mmn^r+?~LeFZ`FPN zd?3D|`gU%Xbqd1X{PxFh^(DFz!P(^bHZoGdZ*`95_m{z!dlaIXDlSj>>YWW|*9el} zspnwB8BumUm8kLbrt@h&!e1)eJcg%w9qMfIejXXA;I}$YTdv#IqkUYUVhdmH(TV2s z)McUCt`Q`$AL=4yLpiDo?!9(&H06#N@r$GB8EO%usjer&o26_TLC`-_!Ea@j{(e2K z&UoR=b83pPmhlyT&MuFaAHm;>*Q7WV4fSfZnj)~^r&ZM+#WPf+hM}B&f_UCZu>+%4{o`*vdiP; zN6=#dqgo$oI3sg&zth`yT-J;Djuj_(n$NdDvbS@r3T2;$ggP+aV*#F3HhH8*Mk@HN z$y4IX`#rK9aD2;iG^B>H(?qmgBS@kTr((EdLNrDE(!DsHT^=t#0;QL#vWut4EU|Cw`;MK- zRPM=Cn5q<;*Jdgea=mK`6qQXLtC11J>>{HI9<`dhjG3%Gw%huQJhnD zjUfr9#yS$RfBfy0bR^_OupH}`b}rwqPqF`2$8lCfWp5PS=MOwpHjQBDpTVcVLlJ%} z^OWaDD|zoZIuaBJs5^QM1Me%lJYIeTIuhP_7f;(t9@glc-2VMPHuJ@sUR|G_p(7DP zXgIx(n#KSX{r=}3sgaS!Q+C18_^r%ScG0cq4@$3b`O?gI%A83@FnC|tHG(AS`15E= z-BRfu{hM|)ONnBx_Ubvvp*Sm=QVDdGNZO_m1pPCOrC7JPnRtDc=2_x0=6`f5Z z2>NFlOC$W&WhwFv)Uf0^FYbrz-^1ggDR1U>Ij^?MHTvoPaBT8 z)(btmw=>3ZR@TcK%{@<*O&+O{k;c;qzm<84UAI=(+t_-KBj!A%)wp?h-r5w|E^zT# zud-_lNknZODI3bIqt;q$(^h@YlTI;;O097y&SNPm96U>vO(O{UXDaxu%+gw?Bd}B{ zH4fjIEM*TrpYtlaJYIeTnSZ7s!3w{A?Ps^6qbVzUZyJ*Gm;U*F9QV~Cp%Mwcb$Y$F z%40P$LZ-$DdZvCowc`WuRThV&yDuRR93(1JA9l~ z9;=a&3WATo)Lbomze`P;$5hV7o~cUX8bPw%SEAORZ9ZnV`<0X=C|kUz3Ea%8%HE%# zB(-yiZeK>*G=iXirh=bm>6a6GmG$`M)kwIBzK<7i-s|V#{qdCNi=C3B?eci}kxIuE z#9H`GSF`l~IWC^waD;U^PnB-tGG8~>?v18UIG~feoJiT^ks29kJdN;MnWsDrRmqo> zX5;Xk$y3a>kqV*g8bR`TW1q`t8_HNGyK0s*S<1T!auoIa;!vE$Qub5Tt58(ntNdjI zLH|qzzm-|a(=ru&_ozs7Sqk>(JQElzyF6ZgcBYRMF8?+vJfN86i(mVG4CY%@HG*V~r_o(( zy?>6)dfS<&JnQ|i&1}7$F^;q1DSNJ9cjo@HG1n@aMlkfxG@eHIt;^GfZ@xPHuuDOj z8BeJpxxF`Sm&ePGRC+mJ{}eG-&l>$Zcn(kVD(w%O?Y*5x^3=yuWs^s0WQ078@mrav zJhNDthtE=xp0`Mj{ZqAu!Cb8D8bK0THaGGq*;ZLKf}($>f}m&W*HbGU5F7BW*Y?OiY|*5D7suw}{d({7Z`TwqYf@Hu zy!;6EPkp@+aelw?cts_tp_o_r>b@AS&s5I0PPNxod8|f8DhNITQ$PQ1m5N>Sdq!f9 zU#T_@W4F55&s5IFZvRwUHG*U%qEda=5PeU3JI4^* zoAol5x=MU)Q;d?HC;c-&<*3HbbM(u}RStN^Yt_A|maF6IXW{*^^z*k>qs9gHE4w^i zegv95vR;iLamM?Gz1;P5B;r`%snTp-Kbpd;t~vxLDyuwJBO?_AJyTa$pYr~vT!Z*1 zH5-TVysVeEMEGbrOG(1|JLBnkC)=nous2eLr%JKei{ajQ${uDOL1ohj7yUDhr4fFf zrRT>}o@}e&tJE5Y@6340Dj}!$;%4^yIPdZDBRnUbRXQNY_F7YK$lsB zgs!G}-iy^){~pE~#7w4AhtRVwFjjVXy!?niv3A24>r=gk?R|4JM~Pux=YZ^_w=>3Y zUNq&sBZ`Z_Pub*A8X2kJw=zeo_1oCPtm8YAqo`!?3WT<61W82GPa6Z{3SabN!tdxg zqxaC!Ooft!UDQnReco*E?L3C5afPq8X#_?844E3^w=z?!iZ41q)$yIlRP5&Z4oTWB zkCz|GZ$1UetM%CCikfxWx7DfJ0e{|RnL3KI;wf3`SEtG*kJHG=jinyHm05~@l9js- zpaazLoyk(3KGkQRkTWT}Mvw$cfnjuB25Uh4ZT&mFe~yl(z!A1((Nybkue~-UPxTrU zS&Ulgk6`GZX*`YaTb-xaIn41rOGV;Y3s-OUX?r_+elUykc=-|3;b&?uR2r%w>dory zIF_g20rtUj-Cp;ZdTpL!euEOI*QeShkJQKrc^c!lCQq@-YTY{WRm~@<)i``-##442 zboFN1t`Q`0u8nGk;$Xv>-2hh7k$@wsdn;NXZh7hFlOtBA$ai6-t_?&yRW^-a=%16&e92QP4VBDSsWvV%nxiCvr|gdGGGArW2!{R{@-)V8WuDd*2&LFKeCP5M?D6x5 zvdiP;M{uqU@4Qxth%;slzluGNr?9!U3$Al^hvO`sveULxlC(`8sgaQie(Um-_*Ocv zAOr2+!+2#gkEdDYtL+*=67e)=ssGEpcaDvwtVP01mSw$qZ{!%3YP|^Bj*7D0&m$u@ zminhxW+`tW%XK8^oc()v97}mu1pIve`PA?3f9|pHBe+#D%X*E*I5yjUb5%2UfP}*_KE{t@P{H-a|(-wc2w9H5$F0F_N<)D(h5yL{&D8py;2e z;I}eUs}&BYGpOS`Got?N8&loc4{evn%a0(UqRJ@ZDJuT`4H~_Fj^-(GtjxGduX+85 zirLLaRArM#YGi~wjqzKVr_~A;?CkgNVLT7d<*CO7S(CEMKjB9ZQQ0*jVk-7z@XoDN zi-g<=*+8ud9~nv=$vF`fdm&iayKeZ}CXdy~2$>q=w=Pq$6H(25m15&&;(1JM82j8; z*)@VBBBlEj=twwsiodIQ+`s$BM$?92rUt@pwFB)ioX1hjBzi~2*))Qmf2MIX!f$1c z)>bv}UO~%__^l+qq(!o)g1cfipQIQZ&q4(+v2WOYZ%a4Gk z7{%Z08Q1d^y^CSZN|i`ln-a%L-m4Uw*XJqpIlVT8zm-iMsgV)#G{$drokJJE^<+-%bvBJ)=%1`d3~O?ib2m)WtYdxkF<`iI;SPhP$gMOt7eUU9yvPiWz}G|D}()E zW%+&__jTAt6;PxyXsbL{BO?_AJyXA)dZQw9Chp8+Jph359xcgfg?sOo!O9;iRHqhd zt45KGlq8-iLS@BzN>b~;%*w%*AN4awQ{J$DbN_S4REOeTo^rjQ&&uG3eV==L&wI{ zhGb>FJzh(~NeOsfS0sU{$|jH1$ViK*5q>K(6}6#Qe`ae`u(^K^IYYadcqUU(#fy`R zDrW=6%B~S4@wf1t%Y88;qkj_iW>(XZe%#*lN}U6~qtb00j&mX^YVF}!&r@a72!{R{ zM${O;m3hh<-&`w%PH_%TxhmAF7`%7NE{~TVVT~{HTCB+LziZ2#@V2d2k%W$>m~pdy z4)ECVY7)*hah;`dTxXNVYGkB>-^xto3bnGfQL2rbiDyPsbm)yDs-?~gCzL?Xp+!w#ozlTTW zzKC=BtRmh!WtYdxk07RE{i)xYhBFkAmDD8I1$%e{Y6V9X)n1#YxKEmu$oKCMFjO{q zq((+6_^rs(hA+<<=eaMst>63D;X5;;a*e9l1B8`bBS_**GoFjrs8A@~@AUpTDxMNY zzJ(R70jt^G&Un6^6HkF4XE()1V5n>w!O%a`)~FGF>+-ba?OE3j_)=*$$M6&wd!8!0 zJYIeT@swv?^=FX_c;^sx*HM$mRM-rytL@A%Ke}fmkW|WzLvjvNG54XHqtASmO&+U} zkqUn6GPU8Gb?yMZO0{wL&Wxz+(hNWA_fFY0f+Q*k{hUCYv0H@SS*J3o@sz4yWyU>T zOG1S&W;eZGig!!dG=iajrh?zfJZ0rsb`LdtsWh9{=PCBzpcncTsHuEAXFve`GPnF@lQ+ACYiH>Gjw{6_Gx>jXUi>Rz2%rjq|eZDqNxu>N+8yG77 zj$r7YAx~rcR^};pXL7CZ{pQWHcnZBxD?Gqh+2!%_Be=T)pQK}D!ZB6f=qvL6H zmkqOCZ)ZH;&WfkheBD`8ZIef8WTb-M>O94pneEM>??@frnej9_c?O;;yGD@23N?$T zc;E21*He;&N9F=PG+VPZ~ZS;9{V5n>w!O%ZLp2qmC%hR?;p4Sh)KS@by{Z}+I zfbl#fiF!vAPoXuT)?qazi8$h2%z3I*o7d)P%T!c;3k;P_o^vB3ji(WQEAy1+2`cz1 z#m3<~H=ZIJ^*mK}jUf4MQ>%Qv5pl*jIQ(tRgM(Tl zBF?Y{F<1Xi@1LXNDR4yPN|yJcZ(DEY=zP2HEGkwntaVV)9J7bAY6M09Oa(#D)UPL= z83(S&nTT;-?eJmy%{s4&8)*q8CZ5UEXibQCs_YtLD)$Itrs8+}*_z%%$1;`k2>zYrzWVI_Ycmz|1F|=r z6=|DBQ1s8xLot5qGPTv?=QHugE#ma=;c-l5Ox4*YP6;TxJYIeTHA$X>jR~k?bQMy) ze~#v9wMU2USoGRF<;@?ipRcyb`*~!fg5SzKW$%v4Jbadx1dYe79Klm%*9emDw$EV) zDW!KboblhznzMOYsdYfFpx(}SzMYl%qB;;>bMaK!G=iajrh?zfJY_Y0Udw`Njyk?G zGhZq^de;&>Rd#v2{7A0&qI(Ge!Ah~W^B9)0!dFL4AgFBeIE{=n zmPYuk&Qj#;`KsnDC5bb!W(F`;c8ws39n>tEqGvVgE>_c#Fn?5T_JY5ZX7k!vFI0KV zZZ4WCn?^A7&yc4vek=3z_fO2|Q%1m7=`{}DnbDM|qFkkew#(z?N09Yq6-ltdbGeUG zN5@lE;^$eBp6?uvv$9^U`*lSFYWdVU!y`2^(s&x-w=z$OFY_g!?0AYju>L)a^QE~w zjrPd3T_Z?>r`S=}`8E86e$7-Z)qB-@=UA4);#${19noH!rHJAF4hwD52!j5Z9KCfp z+R)8ABt1)|#-TfxqtQ8WZI?&OkFfI!#yv}M+oRXB&Sohx-)!xIna3~i-<6UQ>95uQTR(YykW5BO^I_o}ph(uDmC@l{kt$ z|2jW?uC$+_*yDokpypbhKD)PT1V>Z}`aKrT!|X($<3Vr58F93->y25cw{vWk-OEw* zKSaK(<_93CY#Kq(Ka-=kGDmqjrV>MyLgQxOnH**8a(zH?#_j&C^Jw`I=(~KIbS?{= zF;hWbT2DQyo{hnN@V&nrj`JcZXFtbMWs^s0WF$v#WtQ?}OogRNrE%!aWvTCDjd@tv zHG(603u4Ci9ECoLw{0cu2)^NI;Yz1o+!A~=NAa1!!__lrn??}y&w!&bdTVmDM>ntj zL>+n^-FX~sx1s6tP2i}q%cJE-5J}%B`7ZQb`~}V9-ap6XyTp-wdY@CJUT5lVuALJ} zfgx8cI+ALeJW?YgU}=or$}ENT=yjFt!$6ilI%p z*9tvWkjgHPmLG|CN`W%^4dQt{@Auw0nxp6@h?ygwXO%+px*P=up@%!w2zw&E@AzhU zoJK}+^j795)P~9~I8K1vd(xphFN%VL$mTRJz)@w_2#)NPqCe*rsjv^Ul4bL||1bb%l$8C*@EwrK=G|4aqH^;w$Ne14Yd%rPwW%m7R0sYX0irB|Dri&;6d znrehBy&6f6SB=0@s&OjQ27<~a&$yA19KDq}3hOJHAZ}%^&%rYzDNYQ#RUi;nc8%bO ze8R6tITs@u_--q`e~!&}xz}C6QSW29xpr182mvPl01!lj6=C>Km3EPyKwmx1IqJ zH9}FvS?}qQ5i&JK&@=Vxsr9>vR6rD5&GkW?sqEjyn5%9s-d}Y@rniEv&Df^?l zT~lqB$IFkPLJ)7ho)L&M`gnUT_x?E|@BMwALi3IHO_3j~S?IOnDHw{JNb%I!4CQpfD zR?iE6sj8pX=PB0pdS}MjqpZJUj8lE$r+d;5-6 zdx>Ly_b_l&OnGgVvS*Dx$>wbGNR5nC@LQRu?CE-|MDlz%PeTGO`|KJ)5>YZYkhgahja8J%znC-%-J-8pMU1YQLjF%%+XqBUik7X{fM*Oc8ws3ib1GDdR^LZMn{+R6eMUzm5M>|RH-$u%~SL_kK(DaX#_+6Oa;G{c?zYs zvLA!0(Q|mp^DAyYM%(4_@*~(az`9fCw8WW8n&WcspQG2NJRP2Oa6sm%*7%O6Ua{X> zgO8Jk&Tq~tkJZRX1wqf$uP2?9VIIP|8)BSQZ^N5=bR?(d@2$bdxkT9M6bNnA2$Jmm ziItRon~5|c(u%c6xSgZ6D}$47{hTtI8|~vNaP;{K-Y#X;2#)@l3W95Ml@-4E4mmQc zI>s}(3XFBN8!%Q@dA$5c7E!@cuQv6bIX0pq(jzmJZ$=QAAVhb?Kf+ zz)#uaQ5qS!an$4IIr`<4Gi_~E&o>_{o9v7Qe0h$NgfrlXac+gG?HWUpHTZGn%ey&O zQj*{u#47N#lKCF5BmqOP!}CYRw$P{e$H|JnGd zvdLpLGD4=t_^r%T;#bZtEKDGn~2Hqat~waKDZO4?7*!+2!%_BRnS)WxdF; z5leM!Ka-`@ka&W)<-WZ=Etcwd_S!7vEkN#^jJC<+G&0gy8sWDxOW6USg0E6)9KLf| z%B)VuQt;Hl;yafSwgc)FU3)GF}vy)}Hxem*%u z?L~(&>galHs%`Q}jf_w)iV8bQ!M(^wkew=zqKFBK#xzJ6`0lp2Tce3rt` zJr8cHEoGO-%a1_o#i-U78qU$}ioJbj@Dw&eLjqeJj(Uc1IL^v?*)zvwz1k*^)W}E$ zztwq)j6Kr`5!3qjFwT}{@|3$>{=HLnjUma7M^V=MY4ZYZN72!$_s`Kht@gLlHC>LU z9>;xE4(RxaJOpg%z0_t~ZPf^h{uwegM$j|$>#0?P%tqMxs%eB|toEi-Y#hdJF5a*9 zvYVvaA;(;OZ>`76k8swHdCGGi`geLO&fqEb1@rkjC+{;o_sQ4NObVKfaNA`N0 zMn)P-Bm6u|znol)gc^3JNco-{&X(Q#(&6jp;r%Sd4Cu1a_Zz~>t`Q{BYen;~Vf?&( z+KLJiFsyO(3eW>5pJQVwajea?XJ|;g1w{AO#yqQR@<@%0G@eHIt;|#I$lU4${Tfhd zHAlo!o=b5`FFGsq{20%d(1|^criip&4eqTtnx#CK*s28mszrOzq3BjEdoy0FOyOC* zAERv=;i7+rERFG7nWgL?c~c0rHiF$rrPMflXJ)*-VN~x_I=ehxeuPRd*6LY2U9l1g zCrxUn*|gs3ketU<&To#X>gOJ-k&#u0G*U@F%y5mRwa1{F&>#`g?3nyJ_auV_iQ zrKh*^7^V_Mw?@@AdDe}Lkf||#D>Jpa?}kd8I=(ZR%4#Id9?Ztdt`Q{J%OUHqjsC^R zo>o$mkXPdTJe2#&oU4=@H|NfZshH_~M-J?f-@jcWDEeo})EK`tnR>&wHWMq=#^F1c zsZe=*OjUMyy!^4%)6UBzYT!UVjp2{DxN}djA~F)9Nm& z&OTq8r|-Y5>~(){@boA(DaLPIp0-)0G7l@&#^F1Yr(}=T@PVs2?R_1xLy|**Qa27)`_xY8nw#lP3 zGLoaWGDESR!Tg4u@rLm|ieQ3LYTW!gGma8r%?oGO2##Q%j*ksttN>S2j@pUSyyg=% z@b}0%1n2P+s)F9L1$xS+5%l~sIeM$}v!WZJ^Ijd@x%@G`Sb@@V-HoHxaOsLyht z?RsUY_s-EV6z?GRk+Qmb-J|ifIf}|Qf8JEviZU*W0JW*ojVd5Y8hF2Vt0WtYdxkD&72@2@nRachvviTii(Xr2wQQ5dZb21D)_C=Q+$V(E%~^m)ES5GT%MxN)@i$+wvjm) zvr^E_2*f$Q+pD+Z44zg_$RHo+?TquHc|65hLB~zZwaTUuHu`5O_^r&-zROBu>phO} z)C7ss8z_SJ~uo z8X2kJwZg0nj%Jc1xedAf+Q-Be11(0;w8|SdhZ+;ONk;YJ@b81 ztzf?{OL6lK<~En}YMVw7^v~qzt;|vCgKhuCpHjrBk^U`=Go^VP1;Tg__3j6{TIKQo(P1mNJsI3c-6ef(=Ti zarn+TIKlB2gWNBjG`BHaj8 ztM?vu=+5ORR-}j$_n!}rD!WE-#NW!ID1Jll!S}Wu%~0-@Rv4-j8i(O5hN9Cw<~0?; z;d5ov2!8&V7DYXJD>IZkY!!4BLmav@8QRWqs!SUQE4w^eegshz@fvw!&o|EYZ63y6 zs;+?QpE;JJ$jxi@3|b#|D9++2JCy0#6I6OBe|wxpMsoDlhpoH`uPZs=x66nt`cLOLSK)e$a8OX*M7C4_di~nq3kcG?{EixuU~PLqqj0ctG(x5 zwit5;Lovrf#nE*|Kv>x|!cb(=)HT$s-ZUB1gRdAziDOd}B9^Lr)3MZNLwmajviBl# z-ut%*D5{^2py;2eAn2L;_0;b6h#l-cSE*IOdwlO@hq23*_V>+(hY{n{rvqd4bB~uF zL1m!NcZoB)7lX~Z{;BuQ(HSp$2sTY2Vye<;9EvlUiai*8Mjt3Dt2|aCBNYVKW-8UA zd~Nz7RT_u!Jf?!9ey3DhHG(8|^4z+#&ByG*v0mOw4D)IRbRO>KlX&goFx(qYIoHB> z_n!@xDw{?S^v_iA^DO;x;yo0Mrq#Z4sJ6NHvE!(phezTm*n_h>_n!}pm0cb$Kf+oC zT{qECrV6b0A$#kNj;2_BVfDv2>Y^#Wo671PigQ>Bg^%?NilxpbkJHFV1;2G!ihV(x z{m!x__)@XN;X99|z!>w1-obQsjUf4Mi`m?jRc|tJMx8y@r`nqHc-nBx)~E27QfwTK z^LUCq5FIt0O(PikXDaxu&ePgFtn?a(?@XSu{u5~SJYcqlpDMdNUVa2!KBL>gsTVTl zuCzL(_J!4H>$TBlUF|QW*f<>L@s#U+7f+Q<9;uO$9KAJJN_1Qa$aTE2$Ju%H8A2f zzU%!bHJp*{u2m<9Xxi$rZ)YalY>V%4|Lq)(^LWZUMa}f^y0U2mL;p+#zjb*^d@br%VO(PikXDaxu%v1JS&Uf4p)B5-DNS?BSMQI%x|=?K=xp*hjf^ywM) zma27y!*^yhW!D_sGTQT?txa`h%LtO#kHHSDKIPqT<~h{$qG_#?44hDYbU4mho06w` z7t7f+f}ww=g5SzK1-|$WdDg468i((Ep6c_6z*yPk@$w_6>UD~8Lz(Z}deM|9wtgG` zz^>%6zPX?69Ex*Us^>pcXeygLP9q}~{MKh_){g_eR7#D*cP>j2<8&V~XV(alylvR+ zwlti%Hq~!j|NbAH^@69BDixeu?Cp%#F7tQ_w!O%Zb!Ea@rV#h7N2ME4Y zTFo&$#oAOyO=p+K%a5?W2zcJV#|`B*qbV#$PLwN1I1zRK?Hr2pSc+Of)LGttHV{-c zd7MT@D)_C-Qr=-u*%!xe-uu|$J2RR>1Qo(O! zp0Zl-R==XpI>DDpt8w_wFi=G=|!y5e)q^75vuZDQj43-H<+PZ{}Gl67(ZK7i+sbUVa1_v>zqTAGREPHJ;vZ z%)+VaAx_c+3rDr-4{sk|jz zpQv+odA$4xmy=KJv*GxW{1P=zm<8)vru_;FCtg}9v;b4tif=~;r{c1v9inKnQNim#4m4&RwPMU91vV8B?#S&x?=!D$&p?r43AdJE*n`ghLc zDJxd;9X5SV+u=Bmr|_CS`3ek=(vf2PR_1B74*$bxIuiC?zzoGlV65~l&qhCjof&+R zKC{O87^h{RBdxbSWrwSL{i0`>*XAjdB7f#d+vJfN8L8m6GEa#wJ0mre`?$dM3o;g^ z*EoD<##7c7==*`3T_Z^1ws0RS;V0aRffXz;zxPr9lVh`9o|n0Gw(_byG`Zf+qgJQz ztINc-O(O{UXL9t`Rl0s z;;f99Ig0DIqHXeg8yU&bTbZN3-)+Uuc4z5FIPr=MQ|TVysIqGW$5x4?wIQO6mDP%I zlqlw_QtUw=A4hST$=7CUn??}y&*bQ>%u)8}XjyKQC8;%`n}O%%x>yD3*aeO%yF6Nc z1iLzJ$CMa<+_GJlv-NNO(U~qWtVB_z(KrleMNw)BK8h-vJW3-YIeM!zw4(0f?d;#e zcpWpJq595YFjUz!f+M1+Uo{bBu8eh@?Y(mbM=N`!TJ3s$jw1KK{XD&on$DqZ8bQ!M zlcTpXN4Zm)&%nA~+Mzp_quhZ}IU4r;l#=Dq@*}MM)6tq3KYxp}`ZxNw?`Vd?y2?BY zRl2t`o@Zx8QPhSZ&sCod{M64qN+TmVdh0S2E6>`k6nH!9=+0#*=3rN^qU{>N5jQ4c z??p3^C}WS!DN4O}j^!v(YLEn=za9yia<<)~H-z)@w>2!j5Z9KF>!TFa4C zp5oA*$x-gD=@ZOASlQ*#@*}7>!m3v*Wi)fTJ;b>vFWAn|I;(w7m)aTNtYiGdbFN`>D?d!s_QEID(_lHhdg~>akiSAURsC zU(mYE>vNPfmU@=eHjNfzW{9L(!3BoO zDv#92NRFRp>DQ+}fBMz-Pw%;@#{qu+0oAjsKU;E3azu3I^$4`Ir?SK99>2IHY zzI_4_L1ia89U%MQEXWfrN4UmyUmjR`_irmVa&t&1V0c~R*m4um9IYY zO^l&?teEQ(!MwM} zXL9t`pl9m&xh^rrTbgkdy>R};3#R-!4QNFCpq(Ucs;-opLoV@&;g1Y=Y&_JiSrWNTA)z0;XhZ{5++lqgnMs=Vk>oX1kE74*#mKv3B%a63WKp=YmO{o-O@7=9m`)AHzDONCv-@@ZK%18<}-hV#2k14xGaBTg@bT-@6d}QDH z>|<};(Htd;`MO0{g&f0CX!5;}S}vq*8bQ!MlcTpXN2|5Fdbi7=J2Q@=a}naGQi;G( z^>dGwA3+a$S2fWv_8lAgx9@0%0>i%FuFmG*E0v2l4Cm##(ByP>;%xFLjf~{ztS;Y~2sd(b>oyk-7iPt=Jc8ws(`9QCnh%)|-+*?Q6Gg(R$Gt~&*QWZW9#aS#x z=M1b^R9@?B8bQ!MQ^9X_mf}0axe|P-^cjcmT$Uo^)txt-T^=t#0&N#@TdzuqGx{6h zjnn7Z&gLod0pN&z7_CslUn=i(IL_lKJgb!rXOl;2WTb-M$~>)|g@G@XO5^aI%Twf{ zx|fl&YXr%6+q+FAS>=Td=XPVN`knK5iVAG#N7>pG{!%f`;W&$@*nhz}KlKhdn?^A7 z&s6YRm#4%x-wB5=l~UvIoyk*nqt<%}&MuFaAAtfxtx9o_IOA4us39xumST0v~y#GuLcTAxe^%09& zv$JXh$*9{HQASP-pXsycy>-W`Na*QV*^j|FKs5{P#c)4M5l{8n$=Ni5pns-yGD=%PZ5`#N<^d)PkmR1 z-a|)6RO}AI#(c&-LrG#MWnIw;6qQXQDEenA_^r%T;+xetz?Vt|a2eCg6)Ml7I2A(M z4z;>L$0aj31`;`k~kUTDo<}HQ+-yeyz`=IL-Dx~O_gHfP;?r@-t{RvgXtZ3 zAgF8_LC`-_!Ea@jvL3WD3o8}J;X5;$GGoG>v^@`+iiEZG{m(sKegyk6{^Sd?4pcrN zFVm22*;P5OCxgn=+Zm%ci=*vylX`=|QDxHzg8rEb zek-%IS}%xQ#X7!oBWYB{qV4i{`H^?qT#r$`F6CT|nz!}#V}9JMf_jv7-)&J6?~=|4i8A|) z>)+_#zoR25P^?tmgU!92$3#-rAnAQGAgF8_LC`;wqqj0gYbU|s$@6q0)X=(WP;Hk- z%a3p;CW@mtsR&zir0w7RqdCg6;FXzH&2(<2ot5pPCI#7tnoaR$DVsb_BO~BwjNZB& z#qZFa%TQ{mYBlWa@@V-HMA10UrS7|u zs(Zt*Qgfucjynuz#n5&xSIwlr@AVa<#!#>Kt<2C`|5kWXF~p%elcDU^r%y&YyF3s5 z2zJxKQ9VaBT@cl6?sxheeo{%?R$)KRZw?QbzF5b@%~DC+|=Y(q}r+xB(X;drs`^6a5v#n5xe z+_AgRR;NB^QmYGxug{tGM^sk&=pOdKSlQ*-=tn*VS#3l4dHcMz_DXLkVxJ>JQJ?s6 zD7v|JA4}motXxocq~=uUOKN8HNR5nC5L}(7sOrfPK1)SHO`cPCfU&Y`1W9DR$ZF%v z7rT4zcg~Ba;3($XybBW4?B32e^PR&~AV>vAVFe78O(PikXBtl<{MO|u@x^z@d3u(X z#B-f`_Zt{1yF6Zg1a%Er){B~9H)r&3|FKzbL-D5ByR1m}l6u{E3YNlaI%)zzl?{8G zMn)P-Bm7opDfR(#ma1JZhwt317Z~dkIlx%iHG*X2MyIHM@7XM^bjZPZ-QLb4VksDc z(=gBiUDm6t8o|&%bK@zpA>9*lWu8)fsANmZ$FI**qKq}6-Z24Fm1Q0=KZ2bN_c;w` zSg~R}Wkq)014-Yz<8Yjl_1>6@-VOKj1TZ{KM~Vg8CFWZ_Cy=YiobWqZ74F}{V{>0rIY771=Ui>MLvkip>06Znp%UUKEh$ED zU9Mu^tyZ;-vt<3780Ss1xf-4N*Oqxk`VlI+;N<-`B~wx9k6c_=7WPja%~WJZm0eU+ zS@w3uIL>1#*A3vw{ilPe$|{f4$Vdgjm6^)(rnwG*eUN(}ySaECQ=4L_V<#|Hc8ws3 z+ClEvYAuFHV<(IAhT?PYp<}shI}|5@va)OhOXx+6-|D>~(l`gelk4htdJi47PHkL8 zM+f}xY-b!d-t~5lBDueokf(T`Hze;rA2=$zMsW1cR50{x{d(dlnuaoWYx4a#sH68@ z-a8}jt@(wOh+;050cB;EN6e34wTe0=JxIP9?+8L1%Xx%%a_`uxUJ)aO_92z^_cLwIgvG^?!DE>U1gmlNcwGs;W8X+!Qw+p|=0+?+day-Kd?c@-!gr7htc zy|3|JnXA=K0nc)^=n$S8Rk7=aNTxDfpsd!ho{@e8>s9RiDHb-SvfJ-!`7bmjMAe+B zdLD8(&SNU8OHk=`KjTBkS3dVhjf_+fT$!oW8W-JP%pp9NsXX89x~gl-MzBOwh29KI z@873}H0o+r%z(L)sc=;(I1b5qT%{t19xeC21y_|-BPjZ3DhRI3RUlkZfe}saee4jP z%T;Q#?v6!mnMcfzKv#m^tm{!5(&)|QvgF=F$F5ef%YDm$ zOOD&odpl#*VIEUkZlqQ#V5+ie1VjH!1;Le>N`&*uLUbOhBRrd_JgutsP=T_t%p>MU znywVBRAhb%3S5inhL^dK6D7r z-@~6jXWTeH^ z2*H(k3RS7ng$Fll_itjHHO=KI^$2$+Lt8e2C044$5&wPvZHYD3g!t=Pv+SQbI;v82 z$k(c$H^%gK##qi{D|?!2zk#jFsu3LhGZh5aWh?Kvz}uJAq-j0C&Bt@uivDJZcPd8$ z%1ZI_i1`upAa}WK!x{T>PI>AXa2!+Vo9asDv(#@Kj`Ntx8f#YvtgZ4$jf_+fT$8Cc zge#TadauMGJe#Rthpv(bQ)g8x`E#f@l(Bn`|JSpUajE~w89c4@n#9eKy`4uz)OIFG zMNS~7tQujXf2M-q$~U}`0*>iTBK)Op!2nCMq9+Nu!*{WBE=Jx{-! zSgTK#^2X}C3;W9!Yx*}aX6fAQmvPK#{Ms^)m>VQeS@pBG$mk(wW`i;i8K@}XvFJrm8wG}KT-;gLvkKhaqgF*`^ zDyuy2Mn)H0S@&Yb3Q757{~nRPR= zvdkmqN7(;TYaH!1m>++ukF3R1*6QcF5-OLK<*(0F?yBljP|hlk)W}E$!F8ERg!8Bh zU!J8aVb2$_PM^GRmW^PEPH6lj^)|OT8MUhGDNF6tMYdZ5e<=;;2(Hp^YF>3#jiBhC zsUWyASFy&yIwG!Bf-lcgme6+xYe@V*F|<@Q<61fMkWM z=O|0OV?^I=h4)KY<*^zWsUWyAS8Lt%;Y*c&y4iSc28Ie-MJos^^~NDQm#NSV z-TpaHR+f3h{0O3|--{vA=vRo}(R(^Q!;jUKaEi8a?il`33XVf^9#^?PuJ=%#RUWI6 zkqUw#L`bCrFo6epc!BUs|RYSarDr|^;g!WykUox@e`F~K@? zN6pqUTD^8i&g3d)T;SDviTWgK6YhULf}($>aWz74O|BAQ?5$R`LwwJBUpj4s00RU;VsXDSGK zrhYlGa-RsZGOZF<)oi$bHXezr$V-8;%9DVyvdkmqN8W8KQR>@B8L1$+GFORkC38AYU*Zlca^ao} zx7vEMhDdc@*ac7sxKOMq;m9syt!ozqQ-8x5G<`MHF(1N*xs#opA8gCWs(QjAJf@32q zRsx8ud5(l{+1trk&tW+)va&uCcLd#kI^Hm4l}Br2q=MkeY$d|^I!DJfhwxmsQqR$M zO#x*UaYwLxx4lQmf;A6`G*mXIU7FARTX-~Ac@jC-9Z==e+j$&UnFTAffTFT$1V#T$ z1;LfM%3aoWc9pB0dnDmYrQjUHRpzE{FI`*a5%VMQy>Q&cY&AG4lkEL=EK@O?Rqjjx zjw-G>9Op$<-j0cL7`>O;N=94dks29kOpOp+m#N4*Y85Yfo#7Ck8C6k<;ZKa>-J7Q^ zAwskELNO7m!9VzB4RYX>s+X9P*G{m)V@k(ySk7W=!x8--HCvTcBb@ZlR1jR5twcEM z3;~3dhT{;P%~q%ZnjOwEkC-26ci8ApYDgmsUM~l3_4|3vsIE_QNY3UeG+)J4ZI#Dr zWTb-N%3S3M)?AU$yPFQ-nOud3!4Bvq8fAt42$twE5!WtZm5S3{u<72G{wK%g!0hi_ zQI>F9R&VDqt5rl*be(&VSrBe`R91~(=$~N@93!|EQ}LD|Dj-tfEE00yJgVw0kw-8U z)}i{(&&Nuu@QC@5Ruk;@Y?uMF7E#|G*K^?Yxq6ReB_qAG0VPKn|qxT-Q^ zkJZQsY`_{OLU3iSLOX1IAzJp-zj1BtkKM8RpF4!-Mpdd3y4xsFR+f!n$(>xCjWuQB z!?(D)LM_Bkxk?qdk{_L;Eg?robZ}f%R*j(OpQ#|YI#*Fsl2yCt-OXdT${iaW$-vc_ z+7fc$c*h3%ldG5LXS1W@D!H2Pz2RhEZ|5;NFtT&_O?O=fipna_yOEK`)d<0rxyl_I z=D@8!?H)<^@+@TuD6{fU#ZPD12$slwUG-qYnfa5}o_fC>%~aH%;T_E8Ty43VbLVBi z;38&09aXheBN+N;DhRI3RO(6Z5T2U>^X70DRngJ6=Ln;ON6e3)F9i4Mm1@+G z#txB-yuBSqbCpQuwW2uH*V}niRAq&s+acFhd8|f8DhRI2RYa^>y*H|0>j=-~D*N%e zb&j@d3`=y`b9*sF8WEoHLGiiw(6L-?Nakx9UHj!`-Fb2K<2Myp_X2`SaD=kNYLN)R z)wzn*V4gXt{L>*km#ZJXMKW}d?YYo2FI@*S!qs;h3#m6N9yYFWZ&fSBy?sY>6?#6j zrW{G7;W#AcaTRka@)0%XgR9D_5fuG16$Dr2DiO|CtKdujCdQf5T&^;ELUg^i04OWV zJYs(2-S(G|-|9NwmO-%!aXqfG%UvZ0RvOL`T*W+y+paZ=$|{f5$VdgjmAT5g{mOb( zMKy=;T&_ZQ0D}~o;Ht801WWV>#`~nZ6cTCd^&(GRq2p4&WAnpiQ7x|Ob-zP$UR-7E zrt9Uctr|hmKT|<)Wv&9@N)D_~^E-s+a+P)ax@ro0uJg1d^b3#UD)#dcdspKscA08* z-TK77Lvkipq2+502`DPX%kyqzq;WMua9yqv;YzKG&OjZ)v$=|uj;l@6mW^Nu9hiBV zUazv|1$#uUGP%$0j$N;|4#By$gzwnf8LwvMag|j|dX58El~p4s`e$0zQiR~jTxHc# zu1M&0#t~d?b)-5=0?KLy$nIPdK0 z92(NBYSp=1{}vv{Rh(T#h6&{%=c-n)9g?$hU?_v|t-hBNcipJD&+~3%q=Mj@TqVLh zWm7>|F~uP~cfAT9<84&x15j3$jbMqrKX@go+{a%2YIRFQl0EJ|r~9io?c2{ON5$1o zzxA!kb%CO?Y6M09Ow*Pk1Xt!Nt4J$cRk_O%T*Vn6_+NLR2Fl7ZkC-1}XEYyI5xH=V z7S;WFP1|$e=(x%~n_OGME>~~oaa@Jx^_eK3sI2l>jf^y|MhLFVRqom3+7fcjI>IyK zDsDDoRi9eX0A*#_2$tX~o{RTaF=x2g+k5B?uGVs371`XZJ1+<3y|w5O+L1yEF0 zjiBhCX$A!w7Au(lhyC^ z_8raD>N#X+JiVRqdetMj|BejQK~k~4|9r4j+2zq18L43C+4}XAo8mCTP+5g$1C%R~ z^^?qA9ADjxJl1y~+ADU(G|DQg8pYCOw+&~W`q8nsx9$wCR;opHcCr`6QKq_{``W4z z4E-||1U*x~oN)8hPk9O*xRyC7o;Za4Y&^zP%*XI_&xKoDRhD_g{0OuqoCHx3^M*5& zrS;aT&CFviR9>uA4UAj>^;Wg~NUP}%$9YV} zF1hm?_T*G9 z=eV_Mk7J%6X?^bXnMzejpL+vSk5iQ*1lMP3elp{;jA#zwxiJ;pP`#?8EgNAf)~c*m zRWp2>ld-qDR^9%MtCj3X&v*{Wc~O-$Ci;dja8=F2BPjZ3DhRI3RrYVmcjUDG>JXmG zRql{zP6Fjwx)SDFA2W$Gs`h!}NAda0xC$gINvYM{|{DZ1Rr#`Xrx2a%NnmvZQidRGq0j#bY%xQbBNau2xn#=myrmiScYa zI|s&!OrIwQ%F414EWy>N5}0RfTAiGFw|Wm9%T?CSRXPUf^ZKvPRjgE9k1C+3a^n#c z{WIh$PQ2rH^#1s|Tx|&F{YG`QwL^F=S9!AAtyi^W9x*?H-Bpb0y3~d=_J`a%cQ#im z>s8#h*V`G-y7S^HbvxY^09;j8d8|f8DhRI3RmO^Zm4j0Wb%bYg73&M9AZp7-utZ#q zSF6||^lP2oKSxJZ-kp%2T*dvTy`4ufmEF&E_cJh6Sv7*8f9A$ikKoEo<++SpSa{3y5X=mIP202JXtq}SqTzOk-p-@g%G;&&x)eAn zt2|mGBNYT!W-GgC;OL*JVCdQU_0%&qc0COVoj;qcxlRawDILe*=;z&0w(2e(&MuGE$VkhC zBMjGPYu@_<-c)RHD9>aoRYZMnjk9Y6OV%Ch+SE2H^CW?ePiJzK=WMdN7I;hPID1hX zWvaem%2_pnp?{`=pl9lr6Hml3suJOBhZVj&Q(dCouhulqGLM)a!J3tOxhiJf=47mD zp}F?V3$|{f5$Vdgjb-9Y{618cS*;uJK z4q=};jpV>hmryx4P*#?WVToIp-Hr^AhObyhwH8-lRi(-h{!(+EL(*kO`{QbcqOxiP zMgL3%!8N&xS&rvyP%P&sw~t$lWO(_VlKQ0F*S9v#Qrs)GoHRm}bXLD88iaM)C zQ1s7K5L}t7?2MMLa=_&NO^o;D=5n>E{c1%6l$B*3F+ak4xAhF)aOQnCD=AB4YHjxo z-a1EF;(Z3XBGg&sks2APAhlmx&DGj@Dfmmxc>9suuPkA%#c3%uS2(*o zS|cN5YmA|1>(^5&A(%VyELC=25xl9`;!t+0oDmh6nW;Xf>g*c9^20Z->UC(t87Bzb zdiHFt=9T-{FHu>;UKB@|iYi=vyOgtP1VjH!1wqf$FDLG;f~Q#Lq1RHL0YhEv-^3%= zs=ycOp;~1DWo4O1%#XCVs^4ZJjSjZ7M!oU9hmMV_ScCq-=83%aOlP65&sDDS^;s#P zsB&YE)yPN%!Iinnt`Pa&D)tonH}OcWGBedX|kHi9KM80o*@DP}lb)6{$CXr9(O zLcmvQzB`Jiy8o}UY6L<5%#EiW!IgPh)qnL_G>7o)wJLmzPCY#rnj)bs^N9J8ciUU+ zHKT?!PyA?=xVP_Et|AXWOwCs@sBG%(jAvZ8iW$j&;d!S3YpXm~BO?_A*X1g5N94cx zUJdq3>Il!}Dl{Ba9jFWmGqSR51j~2ZTO3y_;XDuK4V@wP{yCbdz%joW4&K_MD$Qgn zG8UcxIIBi5^v{r~F@h^Iwbm6FzEm;on5fEF=jvRvWgam6~YNu8?a}dXT z6{E9zhvQ79LR*Jw*Ux7yGtyRhq((+=G1ViuGE<=`Rpw&UnBM!?Av`yxvPY$k2H53P zmW^P^&Mlbxb#~ikW!{USf2a4+(Qy^3Qbixs6`Bsqd2HpLn_lGuN0l>;;OL*JAh;lhkCk@g5T46cL{#Yf$^xLQe(n+TBiQ%TGkimtk$1ISRjdIp=jK&~s3z&>lcQFu z?6<7D1OP#0mB(phq=Mk;Jgrpgqlb1K;n(4*ik?7OSvG1l$$chRV=ABA=z`Lg`8^IELd-x>1X9`^l z^BT`cuNGH%?xMz3_XDSG;%+;#8q^ocp!gJ#)GgF=G0%fIpdBpq()FrH|;;MbzHprZOEiJg+myoY# z^x0pB<-Ews{;m2ZBH*akyvJRj@;!dIQQc)g`=7dTmUkKW&i`s~2rs;KtLwF`vp;LoF`UYJvXO_Bz zx_uz+lwh3Wh86zg><(^)oxCHm|m+tzb@Lz+9R`ghLeYGu8OTFTzeSks@$Rj%{Zdju4f zRU;_+XDSG;%vIhCmsgVNTQZN~D$jMh$|Y@?N6e4B`|Zlu?b;x&V(pB$s(X?495_~6 z;$2gfY6$H|hvaOo>JY_{hJui#fnt6e;vdkmqM^HWEYatj_c>}htv+3W#3rS}qN zeCTy*m&_wIGSZkDA-FPAtI87k+28xvAv~L@h-0pjR9iNJC3b8uC+HP>Lz=f@pl0IU zAN@~`=4w@0!VYq8XPh6+<0@DAx`PL}s;nA8(LYl`aAmHtmq4xpgOIYKf(?pdM~EojIOqrH`Zb*twS|two8us>3c7_Id>jYd9$C^kAR`F$|E&0 zQbBNCrt&6*8p5hF$RRwJsjv^qtg-+otDlcx2@M!gRcl5KX;dG(^=!|9W1}h*rP^)u zSTXc=9u-y5XC12xr7Ym5%Bm3*{WBE=SLP}*;7b2)?c<}k3I@5FC2g5U%#Scfi<#Q$ zr&f!q^_7g$Zyb*EqAE`{dJL6S9;uO$#?%PGb(x9^7ce!iN&6(V8;9`RsEUd-zkjYR z8^aR&$F7h5Pfuv9wpK;vfvB3VWORP-ketU=-u$EQMfkMoziRFqLD4@`L2zZRR!=;B zK2cX{`y)zu0Ln`7@`(8np0UARy;gWRFQcLrbB9(f``q%_92glU=G_Wgl_!s2EBvPW z#{frVl}Br2q=MkeY-Jrpeu_%pz2^{~8(Gm44Xa3{J^u4J>nat;AvrG#hR5Jr_31!S{oG?UGEzZsWv&9@iVmzh zZ#aZ!##L0)bI((85-2NWaRf_b!K_zRtEYxE&iXj5xQ`ge<-p`BGNc-kYR+>=&g3fQ zL4A7h|7Y%Pb}iYBYwLOz_Y2U~IrVcsz;0ASFHle5hG7dZd;!C5`0ei+HAO7yTXQmF z(cDZzkRTLy){f%H$p{96kx+D2%}~tGR0y7{RqeMcx2V29-q8L{97j$owMtwkZ|7EC zC_BqCu{^?A%s30&_Rdbr{p{@3sk)+7;$Q!-+o4k`mQsIbZ&l_rGtzWAB6zY+tJw(u zP1{6xwNCM3zV8D$;8mHW5yQq=dE%39*WgigvWi}>svyXV^()GFyzlox=D$|%5sSrF_t8{56y1XXr_KAt`YOjjt@HMWaK`T6lT5v7ez zYxsTgV`piVQ`OpOjlZd%NUqXqyS<<4fW1{S6!SCE>X_iUS{32Sy=4EbphS43R`L2o zz`n1(X8zUVXJUEe^RM6IbGwbR`g)zzV~LeR9BX@3m%T|GS1Z-8t1xs{Wl}RE6@n)# zRTWFmuE73g33KT(H;M3SrREL|$+8)ipC3L|QJV9ZjWj*vQoo3P#n_uyQpFOh%s4)x zGRXbw63LZXRmQ>n_GHxz#r#Z#;K^F8RV*==E_;&*uhptBR-PgD$a#{?mdZp`caxz~ohm%OI)+%Rfo}#mAhGKrE zX>~;KOs%rYp+NEx&luSI6bQTgO(MKjtNeCOJe>u}vP>+GaHc@Mc~q~&9a*wZ{NC4h zuK$yLG4PWlZ{u|g?9QhX$#q(#1~knZv+1nLtY$`})iJ@-wR)XdVlG`(P$Ilqt9UzK z)txMxVX4fLS7GC$oyIZN(nI-;h&aWkoE0sz#;_ufat7aJHXDS3wR;sEXD*1@J zGE2OFic6DMb(Upfd4v^9Yl8EbB27M;42jqCom#Ecvv3>9{p*re^P2nDPyb=!3TD^k zHJClkod05DvMbY?8L2SLYW?}?Uq1c&<3Il!%76LP{__uyc=n$kf7@R_{p({U|MAm* z{`!Ca_UXSq{nO(&Xn)7M-_H9LJBjjDtv9pjC?v{hMgG5^{`+A`|L>JuW6G?_K1xb< z&9H2DE8W{H&fM`K3w)kmRUO3Dw}_andooL$p0c}e(OI%;hGBlDLNF`!$K$>IpTB!= z-`(RhmHy?^oK9Qvgv~J*d@6@kA?~?rXSaJ2= zd6JdA4B4mN&OP;ocvWTCeRSll%B*HaDg;m0>UG6Fig0tBd}@xI=Dn)7AXzrU60H*7 zdY{=yk8a@f8n{EN*SBk!FPFnfBvW+sZUjs;hhOzwx|3Bi6!S9`g6C=#??4v#s&@-> z>0*~ec%@bqvvZE(JbSV%6U!si7pm$w$H3gK%zN7Vw5s=z`1UFbObu9X=N`WbMY6yt zx8$wLtY$_uM`MB~Yn2Mp>$-gu;W9WowAykKzV;wlHp7zBRqd%pTGiK)Pm6)|9#;G+ zs<}t2>|}gSjtsxEYKCHdrfGFV@MNv3!tgq;#JOXg@JhehwCX#wK-pQAiRBUeDlzc* zbd@MBeLb$9p}jFM9<|cBh55Q8w}ciIk2tTMtjerrMx<5xQDlNAYgHA76|K4mbcbI> zi$qWU-W!yiWwR`KZdA3zO&>`6{L`IUB}<66zlwpWX726W6$7hQ$oo$yI;&*%3s^U(cwS%FvDwCQSsSrG0sox4~@qL*k{3iKB=RKk9ESq8Z`SEx0n??~Zr>pF` z&fBf33uQ&CE(T5U(Yh?~pMR}!=;d{#fTFW%hGKrEX>~;KT&)t1;8m|HNV&uDI>(9d z%H1mZQEt|GPbfRfGO;|Os{Qd-%ykRL$H@Ks?DeYEj==2rT?Qv{T&Gmct*=r|R%KE% zBTcCzf+s6gU&Xjyi&0DeCXVB#)k-Di^pzM;c9zYsB+H!cxhZeMnS*R`?|VN#yOpZ1 zVqEq0V7BhbD(TxmzIS)BYKCEcrb6&srM4SX*SQGlbow`OuTsh5_|7d*c9vygd4%|v z*fzz#%9ca?ybLhwRi(!$^X2k4AMaIvfBa_V&Fx8(RhiYyNYm++YYBg)<&q)&DwMy03ioNfI@~WH?1pOJzlQP*Yf8KDPPN_?- zowxaXS)#a3r`&#HU*Yt~S8Lq9e@2b@nF_&kb;^k}6~Naq6W@;M-^88!RP}7}>VUGd zEECHk)UmS%_5M<%sheWI<$tE1p}jt}k-YBc@%zK}-p*N)@7L?=G&=S3@OEWdGb0s- zS*<^By|GHdy5xpbME zM0jod+mxE3CudnEmPfb+hYo#hLnDoUPv<%P%-x|?y#Doy>+&~=WLk08dsSyuW;HWX zA$YP@^~JyIQ&l=^_HW{B!bU`ah*@)u3|ci<~zAg!I{*|NQL0ZO4a#8g|N%s zB*Lqeicj@*4p4TM&9J1$KF^K4s%}X8oaLQb)v4;WSN&pRlSFczR&@`82)&=Bw!iXL z%}~tGG_8&Zo~%^}S30)%9t?@_TCH-<$?nj_xoCA&R*BoHW3S4aMjUrq2AF$CwQe3? z9zXf2mBewSQk6MR44qY3bu%MU>X_ikO4WH>Wi58On?!iEQlXrxy#3c#XIN5In9fX} zoT-{RQ>o|Q|WTO7P}or zBD~tCLYX_FuigNqI?HBQ;<>#B8)a$vJdY}h*B;gPrb-l7>XfzCe@B&`WcxBoBZ4RE zRHro8l@EMX=~X3(@M@hx`J1%>%FePGohtVAdB~23shlW`q9SkA48#0Ph2XhLWd`x6*XOA|YT2PwY#dc7dCM}fJi>1o)##IVQv~Nc zK>z;l)oG)6-Bq72PWE>0(kX9P+W)iGI;%3LnUSW`5y2C6N`%ME=`^+CQSZtoHJ$qY zuuyiE&9LM&HD`528jp&e&pD&%Nmgo)oDg;l~Dw*HP z8I3<7NrYEMzuc52a!TK-@s?#`d4!wRS6)?b9P7ucZ|eVKmsf2{)wgOY`&3sAlsK+b zsv;JrNR;ZV%A{sSq|{cs?FpW&R8{^~_BSqTlL)U>s=8;VJE~uo<&*H+L}{Z4n0t2l z%=J#KLb7t#!tb%)C;4veFY6#HVY*T7?V8bKenx5?Gt6rJdEYRq}Joj(nI3KaruTqCk{?~bS)a5LjVM%^!>{Y4pAsY8N z;(mViM!^B1ZE%Y^3!S2YxbX2l8t-Rlw^o%QtZ3Ec zaFSMYeDr<{ERKHWm{n)j49EOTg<)3f{kzrH<)cE`#h{7u%H1k^8T8>iD3qODnOGj- zZyNhmoh+o@OLuBj)uGpW8Q(SPU5f83wcTO#F|fBPlbRWkQpW_dQt#ibD$jqt%i*SB z|0eGAtGbWutGT(q>MWaKiN74hzpM(x$lf#bv$NZ$isE%`C|R-I&N0Qb+P<$-dDPTv z-CH$7FhA3DIwE+wPAgd@`T^Dn=cs8W|EtwFQ+AeRVtItGs^-x~TKn1av|6nz&c&%2|KgCz%L)lq2!xF9HSA8tj zNUN6B``&(r_WD)U+ge_U_^-EfmtR#anE&libXLt!%+FK^o~zYHxDq+J^)T&l)@oH> zPVnDtfU>hJ6U!sqDbE!SB2C6w{^6{OC2B;fT6OuGL~@;9<$RnoHx~s#(OH#Q&5TqC zo~%_>ELHZZE_ag%uhpt*Ap8jljGbk(EXSQ%I8{*9&1p)7W92)3z8WiWT&Gkz{4%$0 zU4@{V&l!gKnWoec!PAvWmF-moOi!G8+_YM$s-t(2E|i^RnOGj-WcAvsQh}JF~;KWUW?jB-2m6e-p=hoYh)IL7ecvS^#Bd z*$m6izgGR!iAAJYlZk*&t1aYIxK;=3@8^HKUsY`6JDovsS7vEU@Jy}p#!-Dk=d9}p z*nhhq5niiR_>w<#nuN0Rw=-HLzQAYtRY6)M>%{4+uQ2b|l6`*lNs>%?i;#Stn)z}$ zoJ4Y649sa86rKM}R?Se%&r}GWu2pVgHo|F7_=nwRB*Lq;ieL4&$f4|ZK$%z`p|j|? z4j84fZumU${Yt&QUrx8h-p+A+v|6eDhA|ACRhiVx$Wy7A;K@p@evk8y$86RKuU0B# ze3lT(&axSn%*&V)eOb_OoiadTCLTk zF~cr{lL)WYDmx6{4U}lRld^n+d*AvuaJNqt#jDyg=IWlj5<3+#4#}rF zt1_pVkqW_cbxOAL@4qeO_c9Q6*_&ND&3C$!Wiu?PE+n5iihuF9b2-e-)n z{415pIt&@VH)Q|gESq6T#S%QnewAKY)ED}w{oGne<}m2~fgX!rFU zOP0;B#IxqSQ6o*&P3mvh+qc)RvfkoXud2G4FPFthtL{pzlDG3UOUbGkiusue!IQNL z;hJB)FSkVQFnKa4JIgY$JVGt-RRlabeZ5nuIwimAzQb(Yky&CVLj>$k!je^))XYdz z>WJXUN@c%FzVNCJg0uhrO&rHfYa?LpisHwdUx%`@Y=$Kf@YRV8dE%UZ>St)TSFPP@ zB)8+DlaKeR>X?#FY`j%76!SApt0RIZYgP9huX9V>M(^Lmy;{YqrV|KnStgc8s99p| z_wS8JxBiBHN88WPUaeB2PXv6O&-XP$AFoy2h@iW3KTCR#SV3IAE3=vzsSrFQLO3SsD{OU8}sK*MwaJnh39rfu+?<*;zKDRbt@$oU}^r=}fKa21Z4z_hgp136(0s z(5ka4)0i2l5Ik9{B3y}_TSRTQzUS*d! z(dS&pThnV`Zxqb=Y7J*UsC0<)?{|8{ES~W`uW+d)M|wx|AOAmF~^lkRYjO%1w&_5 zCN(osA$Yn{sbsnKs%|w*Yw>EOa+k{Qm!a$|n_>C+m%sEXY@Ai?=%dSC0e2`B&w9<# zWpEP5)k^i>v4)|uYKCEcrb6&!r78@1sOIr^HENV8&argPd}RU|8Zm0sF)lB=}(yld!wI~3iY&rrigvP@KmVFTDbGM8G{qox5FEw6GfW zcJA7%wz_>61HsT)l}XKvR0y7{RC2#4^*RFfRr5QPO2$EFnT{ruU8Z7&Wy=8jI^VV? zt6tcj1oj%(tJOyG`ZgSA!@ZsRw5n4s=RKk5teT;ipQ#W$U8}XY$z^YLX;nRX+?pk!5MH8WBn zc(PWjx6G-5?cc=lYP>Q6hBAKD=VqboESq7ey{hjM)7Ip+b3RR}$`D?CkCWOyXZgn~ zl`rGwjDxpohGBlDLhxjzs(SP~0;X^EeM-fT`L6oBd(N^hqCpP1fnF|CxS< zc6-%o9kBo6)5mMI-FEO^)mxQW&5TqCo~%{%5xA~M`(m>|-BHD09YCcx>@89Cr*W~uc=yWXvSdBh?8nlg@$)%a`Z{&pxjt7a(XXDS3w z)~Y%`>)R(^{&t4$=hEeG_Gq>3A>FPN%FeP(ERU$Ghu?=b&YT*h8#w*E?e?m0tYirJ zLR)X=E~S3^b>@~T_Pte^)XYeQ;OR=O+*`$$)CsTks-o=oq$t%{Hp7zh+tE(7^@8v} z)6dQwIz&l%1+SlYyYKYKCBb=BZOG@dVG+scO6{6~JF?=4OvaWmZR& zSLKxWF5ETglfGW_jD9&0#;0Cqm3(e4kz5!3>YKT~n)oDg;l~DugSMlm9MpBD_|sRL$X6-5v|d>#|C`N#m>%ej&dN zcWPBRhwFMJe?uveT&Gp#0f=_{SyBWJ#a&sYF~M`S+G%`(UaeFpdtV1-XIUneN2FB02Yqs8 z*L+g_uU1@jioN!!eijqQbxKt%;?LCRkmhm&nbgckh2Y6bRp)@~o`wESOCtOcO7&e? zpzN{~Gc5UX4e$LZr^Ht*iR1jaYrmH5_NuC5xjw7$xw%AgwN`!A2o&AUW`<&ZMp_*c zJXx#X9yukfCvF;5KYX*9n?!i6R>>xj>2Wlnyeg-p-!oDw5hiLr&#S_*@&zKkO3|+< zyW(G+f~8YcZ&g;^%t-U9BZ4O@wc1;hI}vrltCgzyU-yooRA<=?OX6S7#(giAMw-sU zCu&taAg*f)eN|stbJuxQ>a@uNxV!>?x-Y9VB6zM=iR199*V%|~c8(L_wOZvYhP|rG zJV4pepV2B`A7WMT(XF&frGct$-0rGh&GtsX*k0@A;pZ`tT&Go0{3B9ybZ02$XDS3w z)~X0sB4C%jNrXQ_tN#8BT6LCXVtIt!YRX?dIrF^FgWRpuN+#cTQ%)RLDpe7S%PgQ@ zxAJ9DGb0s(rz@4X?<&X77oYn#alFS_tyE$spU;P~vuuVXwMzJJzY}ew|Mbvl>gLtY z&>dd2vRn1v58t8HQO_N3)eOb_OoiadT2YoM~ zUa{t9SUbF;?^J8`o4MR5?Cl({yDL2_9DObTj?SvAyqS>-!IRZm%>w)L>pg1K_jLJo z&g(k{08PUrrrhPciJf45nj zL^-X<|M$~>KP>70y|Qae8B5dIoVRO+CA~_=^@UX3YJ;xqkTw2{^~2>s9WGxRRW6(X2FwDTx_`8N_EzWzKnfSNG>n`_zQXTzF zERS$zgID#@SX-0zJvhH^^cvXhRYmeT@4$N0+c{oyS86q90-)%u%B*HaDg@8eDxQjc zYpvGBSBCA!mc)Gk5*No;B&K3c9vygd4&2xGH(7ii8OaXRGaMd+-qQ;UzJux z^6EYu=S}{EGqGIfS;f&;gl4-kubGhw#q;%g)tyJP>9RP9^4dt4Tn_%sdDm>)3{PTV zp7U|8Xmei{&7QPxm1b)d5t=bKmx<;&&8mZouPV%T&5+E`R4AUTS#~_veGE05E}N4m zuhuNSFYPJu8P2v$Esv<qW*M0vGhVMA`Qk2{qo$+pe#wQIU;qJ&7n%B8Q&6vyX zB$_KVOFZEFdStt1NaklM6wlQxvsCx8F1wQ`uhs0IA0Cz+rdu^c+S!(=ZUkYC-|zNM?e(%mA!HJ-a>e}H{J$@;T&Y-Q&iCZW zcFl0i&osr3D4wj?TE&EB^S=C3`~FOdj5(?8wIYROYI%e=D($tJUdcV378U=WhYrxI z>eO20#Os`h>Dhi_OR?6scLxT znQfclNw4DkoM`KdzvpSTRr)uz>dY?9m|Oc2&6PeDlD_s(B%NKE$jnHE;^~^bt~=Fi zI>jW)t2N91$A8~3+cv|K>=V1xl$*xSa)$(8?0=@$$lkb^+v#;bdsp@elJw5$=c(;F z@WRfn8It)KX?9HUWX&ore)`!I6Ed4F!?Q=Tzdb0Yy`wbiY|GU02t3F6V(QlM6{qcF zA%|isXYBmct7a0*m0niact=Ydon4vM%t%x0h~l}5)t5D{d#hs#Od$zC5Tmb{PSDmLu)wOxtjO2rbL5Y_eb^z^abt{IN`87X#5 z@l3@scX&?Lb;KL!Y|GU0h@xVjS!%55YJ65y+_S7?i@jzN z%XNxveX){{^>$@iGb0s>Co7hnS?v^$ebQZu)%UA>94epTY@6Z9PL@2P?;+7>k9tw` zbF|OPO0zoQx%wW1X3Xs+PtdHhYldWgrb6*#&9ajv8mYum_hp~7lTGzVtU1oMOf8Rm z{h&nvbSp-){;p3yN4qs!uT~^Z=q(-7T<2w#-D4;7`rD;hHh-saq_b;= zWPYYX@m$T4i*5IKpg5{=^Kt18&5|otJ*eC1h_u`1W@>qa?+o%*@wd9SirAQrs5&Qh zKhr<8SF`L;p;^f$a&NV_bdP4~2+Z8)UIpH+%xh*unjKR-SF`LMpxo3t)~s6__h|OZ zuUOQ7$3dEPw$1RQpOb3poE}A+N=0IIuj^h3`!vfQoQRX%wlvFWyWbsZ#@zb%KFxPK zD)Pk@?os+`&urNY%lu4*V^;0YTYHN4q@U*lBhoI@lSrps(ED8#A&ss6tIZ&3q;!4Hp7#%S?ZfcIVipof}iz!-rmC9ewMxz*WV%3 zj5*aLnrZcYU$bO}Q-qT3njx8=k!Hsf&(*BXmTNUo_@DlL9PfbEYF1y`@n0VnX=hue zmPda7wVNG#S@l*pDQnF7t2dFada=W4T?<}`X}(;hXNO{yfpY6bwky+`8EIa2MDb+B z%F9-Ev%Z=kQC_WBGCs-k5l=b)JHxZ}8}}ZxtbeGsmFZQ@iRMZ# zi)QobthZ~1WPYYX@np^FboROb@xDVVpv&?k%BwX?Bs$Wpvn^B0BlI07Ly~?MYaCxm z%$en0340@B^`@xCOz&i%R%%v}vE!w;%-NNB&5Sh7jwqh2St{L#J1Z-*%kk{cEO|zD zvpF-yPxM+*)IP%#&2po3tXg)noEQ6iNpHz+)pFKT>j35NS|pyUR0}C$CSTEkYQ0@E zEb}u`?U>@ps#Q15N)C#%wf=qFx1as}p`!f#N0D~6Womik^W&XDkE7_A(?$LU|1-)JR%4?%zb#3FGK(C1B z34yn5h9`9iXf|b`w3|?khu=x`7Vg$86*A-%D>U!PLTN?JH5Hr@^fNdgGiCbfNC`b6 zDo^or&DN^Qy<+xgcD&0ZqH=1^)bhyZUusQ0R4X*`UDkE~#_iT@{Z`MHo3c=vx!)f1 z*UwYG`nv2`<~1`?p?I!lTOX3jj+R=a*LmKfS$!dbc;M9n#m3II8J_a8Y40pA%L!;Y zW9;qQtJub}(jS%kaJ{ADea@=gEYT2q95N`czg--iT{9f>GtJA6D4wZUb`|O=Lu^oq zrCgq8mtx5q`}1LucD7||d4#V9Ff%^8)Yj)w7mNN~+^1R5RKJl5O@Biw(Ojun;*+dd zZ&&6uGg6^=vSwAE+Ropl-2Sb5#w>ib=5-`dUb~ys>g>Pyjb^=VGd#6#PJ3BSdiX{r zD~Qi;_A_*cV#%spufJa(v3+mpE-y>PBD)Uv+r`n1%y7)lG{uf6o~&5j!P0KPQC_WB^{)1wkJZHG zGcvV2f|uoYu@1bxJEF}w@rjW!HWM>d`i-y~fBp9*nkzL+Jm52#T6>*cnb*unh2puI z73ErWs{cA@qWlq>%{O|yZ8JPSKi((u!Fa3Jce>Hm-r7eb{Zo7WtZ3H!tgp*VG*@bt zD8}!lvESP@Loz>8p?I=p>D^Y#8T)u9QC_QAo#*+Rsv_-jW0_hWp>9!k>qn}^OR?wW zclR1qB-j7RZq=%r|@@pa1P*xhn@Xrg*YypveH>>RSF4t2 zbfj8mTh?YCp`K#wXNkn|7T%hEhIT8q-q)Bq+uqVK%XNw+HW_7&ynlaa=z~yEUuZ9?yKDugH@( zbGe=!UX~S+PPF|zX~oEP&5+E`R4AUTSy8TO*5!E;<<*)c+vsn|inOyWQ_CZYjZ^(; zqdmIy)4z+mHCylA<~s)@n(O>59jGDcc!}h$92B|6e0S?y&2meh$oSa>YP2%DI-^8+ zt!9<;$u&^l9&bXg6|LJ@nR$e2iQGe(lOFcxRjeuref-PX>}{LjscwM&&1tMvv&ip#T_yTI+3REV zedyXZddQ#kmhRfia>I_e*!^~KbR#ny^D`BSrz@7ZYBe+7b7(eQhG&;ziHp5PvTd1K z9^stlD*wbD7EgRy{)w2Ah^dk>_T6R^&2?UuvpPt+=vO3NUM%yP8EKjwQ9M_(D3q$1 zN?c6uqx#Cc*2`*kea(?bJKJV>s@5uHx)c|4voozA{S58%vZ}YQpV`qBr?+&Mmt_aW zTIW`OaddXgaLms%#f~VRso0)!CHut9v^wS0idDstJAV~vXIrM0N9d2r?;2^A^MTX6 ztZ3>>q_y?e`MHnwvg|sTIp2XoB%NKE*UX4CJEnNDW|d>CY1UkKXLX1!fAB=a*Bisx!p zJ&o}xZ8w`U#&l2X-^Xz@wN|t0=bu++Z(F98NA!iBGz+>L@W&&rJWsKD6Ki$GUNaxB zSZ=x#!?+zQUe?={Y0Zo@#f~VRtk`;gRKEjBl-DYjy%%StX%FOWo8if=ETT-m+N-Mp zKST8Fb9Mcyw%5zHo(q*eN_g|{ze_wyURO>98VVR$)aLlUxdFvN? zcspf3Yfr_~x;#(PZHlL6zR;sCFPvl~($2C>EsxNN97QHi%PQC6=QC9c(F#kK>q#v0 z8a$&~^2Ywlic+n!EEAg<(OW;}c(!U)QC>NPXD9cnnnZf7YIQfxWhg}2SvJG7o%p+x z*S13ImbBM(KR>%Ytw`21>t^y@k~50Ul_=uq?3&@2pQ%vHiv4lpceUhYbvK~4pLKbj zL^-d_bAFcSnEKvc5sK(U+S!(=<&mqe2jFMvkVaj=d45*61FlzJ=FF{0iDp`T=QZnc zBb)E=06Ua475WntrcdWy8OZH^~BigMl<&5{u# ze)g48{i?Fp&#G>*l7)h%t2RnB*J+kWjUAceC6dmr8It)KX?9HUWX*C4U+HNKW#{D* z<&~QK^2iBss+VrNC)+Z$JfiN&{uHON)>*ti!M#(l>a|!~e_f_0v0SCtw)UpG?r?N= zWm+>M6^bV-R+O(R-Iz_6N~4h9~X(Fvn%tO z8L3b_Q?u;I^u-VOUGIRl0e$(?v9CZCRjr-;x5w8wi%vOZV>tU(^t`Mr%%2v`A*G}BO^kn#7!>O^FGb@<72)= zG2YWU%Vt>SXDS@CYJc9Eh0^LQ(ly<>Tu&mMR_B>4lvJC~_Q+E8YEkT-spS#+*Npuv zcQ5&wlg?|F)Q}RjaevB zR*h;!uhiMR&U2!?*3YU(Q@X_kX=mFEPjO(MN655=vMAXj4Fed@%;W|3@D`29zPP4jO$z6=Jmbk1%*5AxXh2qJYRo}1cFV8BY`Z~{v z@=DEq`&(w{`#`g+vQTuFp{~N~kxU$(OdS`_%N#?qRtrTAW(Cc6JuUOA4l|CJ)?a7Y zj5hN#6^>c8_wQ&~m#cRLsKKa{POJ0#J6gW9L9W)nX(H_`%hd7+nOA<7k9 z5p+L8dvnKP$$V5it&3XH8k|_ZuUW-R_<(+%+C44)+}V|R&5TqiX3hS%c~1*p;wg1F zXi-&~O_%9Ol-GJ%^*Eqn^&Q)0c(NZP()3OtqZF&QpZJAmg`TTgN z=wgs-7>SSht^x1fd8$>0qEdHE?D9IBiRU`isx!I&@`F_C?8?MuMx@#?#gkR5%tfUh z%HKRsl-H`34$El7ns-9*Psa=ZSp(*7fm}%N!)iD>ciF8%_y)hZ~W0wq;NA1ts(y}k z>sIw`waCe3eBPz`zG~H(j}8L;JoVne*)_v5KO@zSDQ4CFxH%KW`2d=&V9`1;$W*d19Yt!yKT=PH)$I(wi>-ok$Yc8_9-LDLRW zq}OGkMyEYuEo*#*Z2u+H(xXGYq(JEC}|Vs)ZX z{h}J{vdi=AP%Kd~)_%3`nH1}6o8!p|PV%6lP5uTidr}Unr&)`boS#cHSH;Dgw5!t0 zWgkS+*)>BlKU1N2zGkn#8-ZrsJSWO4<6<-`(oUHo?QF}`@`$>*G48#ncvF+b&-myM2pZ+SzW4o~?A9zbADlm4pWXRxb??)BcSpN?*gH>X@w4yT z?%^Dye;>zwcI~c~JGAVC+}>5BoozFUrEAf6M~f}G*LzlUOx~e-kJe{zKVGrg(fV9~ zIPS_rjVYe2SW&K=!h5|W%4-#iKcnW@@f2yNt;lYU_OrZmxmQYW<6hNL(S~X(Jbex=@m#4|s#dtK)z8zDrMGK_Wqw9$ z@0jArs?|N(8fBO1Nt9QrmRL&X@h%!gwVay1z5|(B9^nhpx_{z-7khtB8hP{lnNV-X z9h$A>j(ummM01^H)inSg*UwY0S(h8jyk7ov%|#JXfjq>w}^^ZHk(_T{A56 zGZl&_tCn12?OPzs_C2cQH;aJNrc~=}%hd7+=RM?Ta@{fKV}Cp}n|*&jOM88-su)>Q zu1^8bPjBfstGG_JTJQ3%*4ved&5XeKisHGdZImmSDBq(tt<5WaEwS9F-hq|Vt=uy_ zRS|_ZNGCq<=A02_`z&a$gN62nuhGl+6 zsvT22QMHXS?_f1|;j#yb@>8mxTI_VZT{Fte&os@BD4wfXW~qAjo&KeD z%4;>NJ2gZzuNH{3vn^B0Bdtg4NU>)|##CrkBV*rX>*E#6?sw0;>nuTSx;?czAyjOPFCEGRivG5 znOYvvIgiiIwDp-Y+>}+mPqC_lVqLq=82fDZ$17IfMe@BL;ppwkv}Q&s6wg&G-!~_g zs!?`&NtD;d#kviWcd~RY>9r!CILDLdJ9}B>WYu-qzhAu_d%bL&kU`?|w!;>hl)vUfq$F0@Z_e`XnZJAmg zp&uMkc=EH%7xf)P#{PzOZ{cpuVqNWImd??=rDM%zn(y8d;M_sAD4C_REEAgv@;u`NYB#@XXmwtdgQ9Zr>fSp(nCSSNn?14_wN}r1 ze2kE2uG6giEcW(mTg%E5@40;aj56~xO|v74XKI!=vsI_I8aHJe(`>qVPL$VbRy|X5 z-6CIbdbK)J%Ok4M8GBi(pVOYVw_=}{eX^|egYw@}Ni5eXR$bqH1`Hj0yE3hrk*3%Y z#gi3F-niD=;E%^{vVR|EvlcUvv9gW6qC=#eZ8JP|7cc3t(U#Zu_u~6G+O1h?P-_(x zf7r~x$7@z6qMZ2j^VEA;m$8^3nV+dpJXy2#n|S1IU*|bdUh8G~E?(9VtFyB$Q_CZK zw=;Kp5^bzuH|u?IKS#SY3(cx#U1s2Yn(yyt+czy8F|EJOvP^7dq{1<)_UEm6V?|WT zLRG3N{5K^N=@e1Tcv|(B@n8B9=~X!>PC0YdShp$u^iW1R!@XOxwX8Ase|t;EQBxv0 zt61Xq*WWIV&aN3<=4V>xtP#bm*dI4$jipz8g|?D`@|nJ**R_6Die;`7>2(<>)i`+{ z+SX^z;gha=3wQfjXjU}KztLrS63vyGRVOW%eIP>cc4hs|j8rI|t6B2J>}RhlXP8Yl z&x!I{&5}#Zy;75HGd$_Mm``yUZJqS+dwYe-SM`6gSF`x3x@MiHOElMMR=sHb*JPww zXV(nL{7i-7$(p66yz&KF-cOh3NtD-WmX1)IhB^yG+Kpstc|^ZyR8K*?!8wnwdAn1w zs%g7EX@{lD^dy$+6sykAeytNnXIG{*Gtv}0qIj}mMftj`472QV28r@o#ZsM$MqKz2eQck8^Ihe;fD4##Ad1HPv{! zTuctj>BW(J`5f-qJmJW7c2Ioa2T6^>)pW%+FLPo~&8rjVn1QG8}cvD>X~r z0s`sQC8V8gnOYvb0)Ad^0{cyJNI?riUUaME-Eqta^ zq@8V}P48YVlpHyqw!r_Bs4ZdP{eyR{IY6ZN2_>v2=E2 zVlyKZif5`;l=bD0+S+_q4vKDH>@a=&E7H!k8J<)dr~0NRYkWRy-RpbT|H*E}!m_#o zJ5QHZ;B|gh-9}Pn4AGLaYldTfrb6*##d0=KtEV96(!Y=6b$P9yZC^riJf&D?Tc(yr zK0l&~{1qP2rdM3fV)t{jTeIpCRPnNYz1g8zR=b@4_jYAoGb0s>Cu>%eEBPnZ!2W&Q zuUVA)Y5|({w$1ST{Lmws9n~$8`6P#ZQbmPgCRIXLVkTeh`|+Cn^WRoPmwOON7cEBUlo%mul2JcozHo^ZJAmgVLvwE+SxY4lgJp& z`iyX+t(&v{XYSOj?o`$yW0&ViG}mcXcN~3fjz~JYW=Q5|DilxFEN6MO-7G!L`uA~X zWX#C`I&#VsX=huemPg1xsaKKTSBW>b0XduX@pC^*dp)hJtMpuC4R*PKk5=uM$Gj26 zQ*+$Ulint=barK8Gb0s>=c=~dBE0UC3T2n)Nt9Q5TCzf_C3KOKNITnRc(yMH_>M%4 zwt8mxTLk^PxLdQTr>J;Zp9M-ZS9w}y49!v@)6dgWv)-;5lKGhm#gjEF%GaHs*fF|! zPLw}Fv+0XW$+k=_kFcLr>^o8|IWPW>)8b>IgX;OLKOs##SE`ns4qs|Ws@;`^8dE%1 zwT*HmbIfk!b)FODwW`$}0Xho5T7akZwqtqroMK3G@^?$x`pkLHS$$>Df$EKU?<tF9GxeqP_3-Ye0i#WANQU1kZojj z{`yeus|6zMY|GU02+=n;PkfD&Xj2n_*Y{bf-ohQ4?P;p#NF_Jn^LZbwS>h$#nsPfC zk#zgq%xh+(Lh)qHLYe&8bu{HWF(t|?{VcuS6&YvEy6o5t&+FUne3_5;?hG&6D^_O! zmAx$g%6@GbufMCjEF59tzwIr>I=f~#=4YB>M--|+S9WxXHnb+FgRiY4!3W%YGgfy8p1V%6Ehe?e0mon4vM%t%x0h~mkL zRll#w3B2!XnJBOIvHWi8LS4)x($4$N@TAr&*Zzw(`A&Z3jCzWvmz8z3jPdV}6{lZa zc6r%$pVIkKk#u&=kj&3iD4wiY-2$oYWnGSEmu7W)%k5Z2+S!(=<&n>icX{k(IVENV z@zpxL4t9H4-4Cejar}8%V!6)CO0n6?db={MnUSX05yjILTdPf_ZoYpX$LsQ1FRSk0 zzOOQh^|sCMWUrMoORDlDJ|{BvXSe+v-J#i9UgC?5SdwNl&3C`~@%0g#Fuy)#6H6CM z&9KbRR5)hU{=DfcJ$*c-n;^B-*=2bW>9jh(|CJsztJv5@z#{D|%hd7+=M1_2NuEq! zAURL7B3X%N$P@pS$BI9{1oYgYTmygEDEGPOKH%_93*??XkKb7I})J)slS za|I?UhGyk{7L`bKnkzNS>YHy=db={OnUM;`lQpY;^R;NoWqH!dyjHW?&yF$|&bAqz zii~}oL|dO#iF{fH>d%kZ0L4~nDSQ->Sgup7qEV`}U)Kv_7jM@L$NWr%;>n5?>C5j<7S2#YpVjVDIN(roRVhq{JW)x1yh-Tf@L7C9sH z>z!CS%QCTdrWOFtF!o5o|;dW=Sif~>iqtG7S*!H^qp<8Wive0 z*_b?uKXnjq-TFJP3aZhp)KvI>Oz+ZsU$vZ4FuP8hV!0~|HKv$V`{U*;lq$;Ey+k!DC1cF& zy47DCU7m4lB(|7J@15U! z^=sO`tnvFS@5n&W4_Y&y73=KEv}Q&s6i-(y?|j9_IuEx;vA_M=W77AlSA_D`QmnIW zh9_BL_RhZYztPtI+Q-hlg?DJSwx9Lga1zaRURId^zS`T*)03pPYldWgrb6*#&FZFm z<#g8f+e(yIds$9aIAKYo-8+z}u?PdM`BT@bc#g5iy7irD#{QQ^;vYI0=%jqo{D*rQgYF6KG zsZ_HOqxP1LPuf>%mYK^p-Mw8iB=a-U?3m)on&oV^_Vr4C2EIqLd~24PBd1LKqPHzm z%Om8B)i2xcRmGbeJIX#UHm+AL`Yw2h=Q`DjrSIJ-mb)@gV~QuMR<&-G{j9&CoG7pM zwCpkQfv?^{q*rC2&|&%#L|dVC!sx3mdi(aq#=1FMU4h*$Be7hkSly%fiJ#TC?z|5bZ)yWsL&$-?zI*+j z>{hLALRUIe_*1IHbDe6Hac5=e=jo|hZ`TaV{7i-7$*NU!T-nk3{bZuNR<-1NIDbig z*4vh;-SpPQeR;|8oSmWt3L5b%&)hhRsdwS9DvY$ceITM>1 zY4>MG6i-&IsuwH1)_+|kQC_WDGLFQ-uRQrvZ`%yd>wb&$s33Ff>+gE|_9~W@jm&YS zI>uLSCzk6Jt84+^OzG#T_p>fLHp4ML(-b?Rc&=hanG?zD%(3@!iSk;-wpcXngS>5- zS{~timeG`hl9$z+=g$)RcX797se-Ciq0+gmw^XW0G*@bt?48dKYwdM*WnMEQO|v74 zCu>&cvy~i_zl)J5uhpzp#N2b<+cw8jUu^RyIob*FZt>=w78%p)7R}aZx@^z;G~cgX zRL&hMU)Kz&)>$^gGCxz{m{t4p);j{!4~TTFw=pM^uQQ!Ur`37pj)1;EhYxxE{UYrw z%hd9S_Bh^$Hr8~XJnyWhk*w@yeb)P3lCz5C`wO0Lfnhq-ex zFsrY(Y=&iirou6+_5?qx+;Jrf^@q(JB+@JW?6*fGN=%S)7v8c=EsyZ!S$@~Z)3Oud zZ}7X`er4OeqlIN{M@#R>-qKw=T2{lfuaIV)U76R+NYm_yV%F^ao>r7AXL^1=nH2jG zo;IHlc-v-p>a-_$(MDSl^m(2Znq<+gbBcdhPnT$>_4j>0%ekDsIrF+=NVCoZ&ydW| zR4AUTSx)r$#%hJK%iAW(AE8;I(nQ*gWNLW?%~C7rD<&FkeW%>-zIqFH`&p_NYn^ZT zx^8djE6D4J(^X|G+#TR)!Ah=W_apL(WAUE zYL>4!rw)oeBKMw9?Dc+@_`unoSg!K2eB(%GJ?^(t>+S8D;h3M1V#gHER4kNv+o61& zgJL%C%R#jYU%#78wqq$J#yjrt(+VmaEWZMkSie@?MIqig2N~qrKVaA+l z63um*)#~e43~AQcHA6B#Bh8K}o~&6#$Jh04PJ zLF|lTPm7GzCzS}`>I{JTZ5R0`mg^MTX4l2PaP)R%S~DZf%Z@0XtXOq6sN|ryq1H!z zocPL>sw%*1uwBD!#So{!fnSz{_b z9V=0EcFj=C&osS`D4wfV*s=GiQFb|=M0u@VTc*+NazxtMmZ{|tqGImYjqbbCD}y%= zjr0oD3fBM0Zq15jC1>n+7>VXOA4^5dXn*7F%DiSqT2wruc&296#jt+P<7@L1<<*)+ zBdpQAB3c%gm1kAz~V;jp#7SW$MCzdM}OEsvk35TP%YldTfrb6*_#nvh*eBLKf z{s_hT9uy+&vKg6L9-*&su0|B?-+twt&f3XJv-O=UaaA7=?23!|4m7(C7ZZu3vn%tO z8L3b_S+m;7R$?iC`)!YAl_wwv_4=NPwDZ3+JQeefa!;)~)qCRJzP)jAt3ItnOmt7{ zE#0SBon^ZfRvevOGaU0X&C9A%+*3SXvDe?OBxZ5>ot=vHy|YEy*_Ns0kW3{ zWUQ~tt9P=h_;sDmZK^iU>PjKa>V|vegxyC7J2Xock^Zx< z?-C@vU76R+NQL6bn$->W>pn8fri*40<&V*<^J^mQY@6Z9Jsv#4=!}PYcFu^suKRa! z?_QRj3)%ll%)~yYw{+KDR^P59Gx7S{MbgqsG$BWMa8avAQYi`H7C^y!%~cJb@>y0I9&2HcNeeo#r~ts#-kPv3a{@NaklM6i?PHeuG{U_}Nwk^~zGZaEjUEXO)5Cw$wYe zWomhZ*jS#xpD8h4^a|EJ1@|+(g}Y(%Y4J&5X2p8c{r1v&yMdR%YL`CsAIj zS$*LupAdN4W_a>7Ej)q0%hTdnVG(woEOLaMr`#d6a|Vb`yKv^E9hE)Y?wR6URYVw_CKVG%1!@G-% z#M0#~W?1HDq}nmXlT{1lS`O-~-AyLSt5wVSi_g=FwA<-sYI%h7Sw=_o#&oD4I`%)) zuPeJfEi`L)w8#bZmX6opb)J^Dh<$}yWku52m3hsKNV8*#XKI!xrQPePWG&d~)hVym zEO}aA@hsBLwi%xEl^Nxr$ntQ~lj|G%IohXL(X8JQ@ZVraEATqae*d-F`EHLQxg!U4 zP4Q&SigG0fMX$X6eH^dMD>ci0m3MNaS!dgfX4~CZ??c;Oh#XalpZhu5ty#``YFQ|s zK}(v=H2?bPKg?Uf?6{j&aAXb{b&(OO^_I=B%+FLfX4U@u^e>>&e%SK*_l!y7{d{jvk#?44YI)@PjsWi!vATb|`hVAM&5C5DLdIwGl4cXh8O5s8 zoQsRZ(PbJlt(lRg*b&97*dLF#_kaHG?R}SWQ|n(o&Fi)H^#H#INtE--Jf~Pz7v{KE zgjNiZcKf3lo}4G;JK0oJ;A463yeIDMdza<6$J(p^&aqTqncCXxGChgqI>izb<73@@ zC~vzCo7hBkQux_o&9EGnM8T5VwI)MePz6DnOYv9<06sUxC-j~ub(;1 z%j&*Im8Q$|B%13q+p6;2ZNai&&(!A`5;<=h_lq($JVP=+(=)l&W2xHmc`OTqbUMYVoaN<3G3T4p~- z$KI|?Y-U8NC0D1+ri;{1RxOlaeH|T>rSIRzy`ENgZJa+vwcfTFp6wd~zLvPrrWqM&Y=#{Wrv-KMv-yi?N-qKx~RTj$M-qq^s?8>}mMk*9f z*KF0#x)ZfMnpGAG@AmqhiL|qAh9}jF=+Vb$qRm$XPCV=3%#*08a@OGrxaB=a*Bil=K9MO0#A7nvr?YyGTFVE$y|Ice6}mZ^mwgb$T^T6uKxK+2>y@tawX*^I%ImtAD6iEk-eYtZ#M?GjrN15f`SGv3 zii?Sz*<1T8N7BDDWvb@sMpYIy|BQXl5^DBARul|3%o*ju<)vs8#dv!>ZQ@=ttKt5x6i z^VE}cc4b~OBNd7#YnF41DrKjb9h#-*7o>Cki4H@r@4yUCG@E^BqphQ&OtgVopVa%V{9XDSp=)~qO3Dk{8U66KYC7ShDVc+_4I{p!3j z|D+m8=R>J)*PR}8?JK2v3wLW)vGMmpX2O4YBhg%^S@i%JX?92c>6+r1nq|GCY8F3R zInDF;%@gI7n&q4a%@Vctis&`FD*r@B)~rXZ(7!*Fi{JNWLA{0hG~3gx)KgGb)?2E% ze4pmb4FT3f|NFJiah7GTIWtn>m{t4p);m2<((K5u^TzDs>ZH@^Ja_hZ%&UnkYi&mEe@`(Ke{wQ+Go(rh9*qgZlKDf^%7n&FtAX^I_D%!>VS zHR4$TV8s(sVf5hs!;;pxEw`Qwnv&@)_ zS$1jGfBBBHcW+nbH8avQJEC~HW~scdtjumVnJBN0jagxQ*GG|dw$1RQZZUO0ZLI0< zkW_uYVrwj2rYEsn>1E-_8r;uQzxF!2W;o_&Dilvvtj-3m^Ng&2F3XcBuT`u%s-><5 z$+k=_kB~K{irDv46m4$1pH{Vq5{L}w1a;jbh#7O4oqW+M0vGp$@%!6V_Kh`ZJAmg zX`1!pzVU4E~K=RU~WHp7$rllPyE^m*TkR%9%am3xYldQe zrb6*#y;4s>#`QY?Kean9rkwE8-`GOwAD3dNH(t8aePc0g{P6Xn&K#m|!6?iJDRWu0v^Jjogpy^Z`ViskP< z>3#ryR+?oGbG_5?Yf_@QQnSo1Rb-x|w`+!Eex_-5MDcXZGEWuC?i4&xUaeWx61oT& zjd3FR`VM4jc?8Y!yGHw2zB7hKysmpY?(nm<(^>poZ|R=>EPj><#Yey*>Fmn9W=5K3 zM-L5ZerdsLz( zf8#vST;*q}s30q!zTU!H=3=QClKB~Fc1-bP%_?tv-Mfw1bY3n|Uh8K$$07D}Jf&G@ zTc(yr_)S-}#_VVL8@#UjRb`)_m1fBs*G>Wa*HaSBRhp$@k=WSRhKuB`9MqWN$(q$| z%UW#g@;r(1YR!_l;5Kxxi06Lx&o)1nm6=C~jj3<)`>GaI{r>CC^VN;Lg?DJSx}SA1 zOQN|_v&!DNcS)Lcc4b~OBNd9LYqoZxN58B7eH`zAR%@0$rvF~GNITnRc%oT+)_6aQ zmrAk3z&@7n%e-9gy-mV#v`I)BK5yf*g%Pc{;vIFw{`xE8WnpNh) zDO04^<)HA{Dei4MA$^6!>-tX3QiWRSc#Ae%t|!r4=V!TRf@U2rk#u%t{mqP2D4wiY zQNHdg17(-zNtD-WmU?osjhVEwZH6Z`71|rRv)4wO>{If^cWSm?YwU9aiRMbpvLgO& zb0gBM%UR5j%+FLPo~+q=4vMcR_wVE0*qF?P{~m-$JKHj~Jfb^xJ|isFUmtHA*7!>H zeunl&#_YgrJ#SfmU8d*b70V2AM&@XVqq8g1ni;83JXf)z%o)!0=`3ei{rh-_Vl!!H z+YC>&UPpf2&ea<#f zUK<(X6;w_8x@u^3cKh5+Esu~hCJOhN5YgtgHh;ruyIC@cRX^)(f1l?2y`aQ0tJYhV ziOq~uIA+!UytR89`!>8RS*XehEtLeXs!62N9%!a}8!HBRW4G5qwcfHBp3T#a&U)zD zin9IB^fR#~d3zn~ zR;==gmHjN;nR`ojDOTTt_-5lZaddXgaLmtCD4wiXQLfycr8j7u@><0b6OSq?ylt6U z9--qRqrNIpw7)$(1$ip3>wb=QYgUzuH81OOJ!$=27a6y;*R8P9tg|cgni;83JXy2# z%0+*BDp6joSu{c&aIXmY29b6nGdw>(;(sceN0Bidafyum&-51V)oi;xTgfQ;8%c@g zI?XD>=kEbP(%UsdGC$KaJEC~5W*g;7{^^U2XAz=-h9NX(iqP$kK>eH9=7T&fQo}A9&Lq}&l+|^@0>wl)7qkVq%Nwd}^l~u5}biAL< zG~dq~lfN5P$9T(TSmtM>+A+th+MlJO{??FS&vjpRQmd+X?=D( zq)aW3aMr`T_;bQWTlI}6^{MDtRvW(-`MxZaz6YCo8}p^h*LPrsC--`IZme0|{qei6-j3a#Ry1pS9hdFdp;?`5y9|U@ zUuV}0$^1;y?1+@%cWr~<)yzDre=usCi zsjTtnq=#?$u;V>11Eq7jN(PFqOno#k-p#I3Eb*{zdbstKmDk%f!!bY86g#4LvSLNK za-QdJo9|I9b>rz4jYzxfSf-Xo@SkLjef2+)6nWWizfNcU&-6;z8y8~_)yB2;_nr(C zccxT7=5{h-=`72{W=1L;vuf|pK#6qiW)J6C{X03gI=>$ovpy61k>`8;{UYr~W_S|+ zr)mkYM%QFMPs-HFF1zzW8nX`1REsoBv8IJjx3dOA0yYo+ta-|B&e_K6K zUK<&!14zmV5mC8SJ5$RepC9oVe%8mmZGG04F3;3#trwKf|&F~~&%v)Xh$?)LU&Wnpx7gJk-U6v3ZzvB9AmWsaD`AnqK>O7Nw66xO`R=)mzsn%IG!;@-?an6_- zBdYSgxVLY&pRM;I_qAm2l6+sWx;N{4$B5&;{L_eHR_u?P>z}wI!w#qxO}RZtqMTRe z8O6%a`YI=pcDBtaR`rPf45zKnc;Te$yERK+oXYC!R=-3ut-kMTmR(HF7O=~4cFmB? z&r~R$t64lnwXZSpVE;bujE&iSp%JG{Y1Y}6spS!}h&~VUB&~`7*F&|RpS?boFKSiu zPktZ1L$6Tuxd$kEyE3bpkqX6=^{TyW<&1}KHTUo1UcIt1dkaL`**3$I?`n-tc=&y) z1~^Tz)GOBR-}z3nI~04xaaZE}HmG;I<>qQ{={ROux06MYM8SV>|nIP%y%DiSqnr257Pu8q5P?g&}{_ACl z@<(XauNoq~HUs6=*jUrYBW0=jRc&`14NlvjIMX~f09BE2gA^!f2VaW`P>XLU!<|4cu7 zd;P3#W>Ft=T}$!DO&KU|UFBQ>k@2n!6kop8jS6>Ocdll21B83q70UNzphTK3h`l2E z^~8e^*Avnt7*7t-a2!OlxMOLh*FP zQdLw@tn+b+@>(ye+SGgp#Gn7n@Z`qqm5(JtPc>5aEB4yQQg7)zOJccNvD`QA=c%o{ z$*viW`I)BJ5yjILTj@!`Y`P3jqWlqxB_c?qoo$&~9^qC%uK91Y)m?!(d9|niliglc zw<)h{DX`qlWum!Kv!lA0WLM@jGg6^=vSvm3`d$FD>8gwp<+YmCuESRV(3jlXHp3Im z5}}R1&qMZH_q9(`tvc}ipUbF;Idi@)@m!}`zP`t9*2QdM>FklCXx z6e7ERp8D9>*_CO{j8rI|uh{F|ERWtiff{S}w_kbX(=8 zUOAVo)VML5F2|E7uhuJPr9K0OUcGHIJlV@~a+q!gNVBbrwtK(&cyDk137er=+2ih9YAkxmZOf8QP7b^yL zdK7J{v51{dtA7$rGNRXc336=x>Z09bqPbGD^0RLJ7fEMV<~1`?p?Icdi8R}tt?Mdd ze3{GeB+9Ebi$=I#{`#JYv>Tb_c@-Jc*DclE_4e)avSP^|r|M;0mM5`XrC9nWlSTCR zV#U$fHN!DK)4c46;>n8D{-<)v!@snDAIIzRYQ++*rmujrnmF4swLHR(5I>NzPs+)1 z-|s}tLX%xW#ml-ZPtt6r`F{VWKmCegd|x7|)>)Q`&5Y=5mjBHhvuc0d*kw^U9Wud? zzV7pdHe8k`kxr}gOwTsX1-OCdR$-BLmd)^FKg(__RX9D*;_(>%zF5Du?e?|MtkuW( z$Uf0rsat+CbLXO9XnM-Gg@ zm+48A^U6HqX>}`kv^G22W_YT1jX!r4YdmqjLC~*gd%bL9SzCLZmrE?yDVE;jqimwz z0nKpC&r~R$tXTC8s+`UGFKr~ss}(D+<}yuMo83sJmPbB6)+M6ebhEQnjGpL~8 z8$C76x_w5Xxl*&#dydv#XIJJmGtx9m9ay4xx@LLnuk#lE23(@NTCvc|bDq_&Ept1Z_v2!H@6&&MLTj(HYldTf=Be0B@npqTzo>;O zT$X2#V%v$Si{?by*_Ns0kj#uWjURGI)d^f<`Hp7!%i;CUcJKaw9 z)Q8+x+4Xa@TeDOebGzv}X5u@by`^KCt2LXx&Vy#1T{9%}GZl&_YgUviyIFFnb;_$X z%f2Jsb%(UGEmO-QM8@Pu{CY3i)CKS}C-tXLY@q%?mHHUp)BWT9tbE&Vk9G0&U6P-5 zu~g)l6c!&daKQyZ@TJI6Av#IOb<66i-$xlxwwa{_CKL@><1S?Pk4gnOYv9o`TWw zogTjWcvcs3ysR`^tETX=X`;DKvpTO!UC4=-c4VNaIw4ZZ6i?P{Jp<+Ul8N$K&C1Ju zc_``CH)wTUmw}RIeRWe?p^4GcSx|4`-rX!}t=^mUYf_@QTC>D5{XA(e4M}fTUSnrQ zDilxFY(3A&ccfnDIZ6rv$~n$vQ+&X?ba+e1S;nK2%Ti{5&VhYc^Ld8iS^lT|CqwbP&`)j}H2 z#{c$;==VX+w!GHn5u#&xb+=z_84Omtvpj9D*~)o4QR?elCYq}?n=^{uuFPv@q(bp@ z&2mnA9UXIjwoZAqX3-Im)vE>Mp}cJ~Jc*8Z|3`k76I#55x2LyoUvwbAgTI3#foJuJK_CYV!6u8etW!W#3%myS>m`O2X#&HWX0BNXYghH`#8=t zevD$>3M|sjwyeuM(r)67y)2!1&$=Uk@6x@V+8KcF__0H?Sn5yvMRHdq6bv)PlQpYz z_)2e0-yb4TUaeUoQQ!4mq}@I@D>ILvS#Ik3sJF#bc&YPtvn?N5qvCu>%nNNSW_mM2kOso9o+@^@rK+SxY4^Xg6ydm#Q^e}3D?A$xbS zt=hP9YUgcFB-iOxCuIH(78Jc*GZgbPO|K)0=jxR#Ky@eU`wAz@YxN4tQ8eXk%hdA7 z=U;gx-#@IeCf9Y|PPVbE^x^yZ$p7?f%Xp8oQnAX~xz$yQb#`T1Gb0s>Co8so*V5N? z?@}zJb7xI&+YC>l-P9qKoW=KF+36GYs?)kktn~GXiz!*Y`}M*JYlFEmOqXXzL8L|$n z^zY+%_wx~&-8$imEElGLz^hC^|PuW{9DFLr*4dV+Cu^2GV|8VAS)Q~quhlHEG1cU5rz6tNwi%wPJ54>H)YldTfrg_;B#gi3VzZF17{nvR;l-DX& zb#BS?LE71tspS#QdB$JWVlP48F;0U{%RzA?i~X$f#!b7g)T9o#{w1F4RI7W7{#HV^ zD-)X;k)It?JXy7>fU0B~i3eZ#C(3J8tL}#WOMD{jY@6XpA9CXGt9t?LdC&8-(5&U4 z{MXeJ&2^e3!%vqH7Xgc;+yBgv%+EByJXy2!=d0avr(W+a&9eI-K@TUMBMcH+of1%SEe;H(sr{WiYF^p z`?JdFtlxvAb$P9qRkZqt_46X_-hmmOd{qk%>Z9JaKGQ2UWvTjiakpkgvvQkg~$fn;EH4JXf#n>pbKusQvu^;tr14bUB_xd99BX zY2O!6q@8UuJgKqwdCNvxckfQCq|j~I+Ah{--V@1ndgTpb7whs~qUc6uDCTD>6i?P` zy<*Wvq>1usy^@{H9VxtRnOYv+E*+67u6HZm71lJ zf{tx{Eb=_#@pffiGb0s>r)!q=trAJO>`tP*R8Dcs9+Z>L;D>v@U^8 z*ZsS=H!kM;a@D&$zF%6RxlXgHSmYF{pQm24ZihQVGC$KaJEC~5W_4o=+bf!N`JF_0 zt!9;F^zWH8>uk%^@(8;u_OeN{%I@%$iu3$zqgkmx_1{!~pXU4ZPx|`ypC5iAsdh*9 z>6&9!?a$k92DF=&m6HJ~2wrD8kxr}g%*_COW6*!oOR9C2Wo_mWswr|dSZj2<&*RT- z`x)BjY1xId`ci?~swlJ)_x3c8MqP@F65eGwqgma_cf9EP?(NFFW=1L$vu1zXcsD?l zRWWnzX_-xzsRRH0$h|A(@|PnjKL*U9&`lSJ5$)U5!zqyjrumKjV0cw6iT!%Ojs3Ydz7i z&kDD_5a$u;H0VyvR{MED)72RznkzL+7AoDPOm<~nGb0s>Cu^4aC-_w~>-Hdt@>ntY za@EhecqUO^tyxy*-$LdB($2O_EsyASK=PrDw!T>H>jLicvpS)z6)$F4S=%C^X$>=_XlNm zL7B9(EmO-Q>}QGH+#CI5jWy>fwtAZfmM$}pSg!Q4C^p@|OLk>iGb0s>Co8s{Q(f<7 zsfl}C858A|UKS6Jj=VrW0k#-}QS{}j6vOf5o zYNI`>Z|vu2w`P@rs+`*~YrUmonk)S*5sLrqBI)ePyktXNh~0O+c6k7CI``IBLBbau^f%+FLPo~~Fb%PWzw z%kk_|EE@6Wi6ZT6%hd7+ilr*i>#@=1oI34zdnN4kvSb@re=9MQk0KJy)m}F5X1!gR z*UU(T;<=g?Wp;4ank7rszmMZsYUOU0J&@SA{WO~Ow$1S5Y*uGVIRnKV-dvH~&(Utp zQnyIfwLY%j)iIy6M5%>+H(3W=1L$Pgbn5jJ0*y z<#=`~HlOnN8zM72@v=GUZL~*KQoR!H&}^kY1=?_VoBlKU1N2vSxML z^7=jxv*~g?iSkM>%Q+7^@_iK)89UoDwLHQbPX@~Gs#-VP-+%3R{rT;En#E>frt9uN z&~%xeM01s9Rg*I&>Fmn9W=1L$&(*9b*QzPFP2Inb<7jHFW_2?z-NNGybhgd$B&+GW z5jEC)jXM2IKSO)HEEK6gtz;8@jr7MWma{@mc^oa)UT@b7$NWr%;>n67V}Wk3GZx&i z?cc|}ibW&dGl;aaEmO-QEoYo|v#LJ%{jujdZ#T>Spn7Je5B zU76R+NYm_y;>ns7<;uwb--oMHUh8G4WM_4D`)QGOw$1S5-Yjp`*w5-)z5ZwVIoj=K z>-B8ES=D^JpKT{(nWR(m49WaV)9i@i$(n_7?VQJFY!l_xnuP#+$X*fh^wO+*2Qsxh z($0C}G$vB?HB*s{4oAvx=n4jAdRkBP|0p zqIjlepOmYyvCH!8)NHP&_|0a=W_S`CkE)ubS^C8$Uwo%#RfAgF={VISnyX@C>L^sl z?S8v7>qcfs=4YB_M-)%itfDD>g{k#j?BBZHmpLz&D6jOh)Kd_z`jb16cD7||d4vj1 zY9*4NZS%#?_#PJh?CtimSXVpg@i#5rr}=JInRcJ@tBuWJ=`G8|W=2|cOvIEpX4U?@ zwR@XaXco`rf4fNT%0V$(*y1Ukt65R5YS!g>66Mvg zF`CVJV|u*wTG4uvm6=Br8IMkSxO2*ScT(0Ed$gX^audHlB8AuaN-R^n^sblv?V%5H z1^$a(QmnHp)0!D+>+Xo+$%<7}Tsi6a{jnz1DX&y4q{;aB&P5{aY@6Z9>Xq*5G}gLV zd!Awy7gzF6{%c1cuUNj#!dmCnS8?2tf6|_RMDbk3ssf7hvg>*Zf69_5uT(4<3Dh^r zS**%GjW{+h#wm4*r}{N*Z&b`$Q@zdOqyEHlm5+rZJ~rPC@OI6ty!n|5#gi4wceQGf z6yJaA-^YDBS#nGykd3l!hf|G zAM5SPv}Q&s6i-$xCwaBb6ki^mrGFoHDpqGaIhyje&G6LsPLl@}ZS>3v;ypq?N4qsE znw1VvUmmMYZ|N+}clWaFtrQu%_*bfRmd&ut&r~>O)!u)`!(A+NtFzg*4|?UP`E+}b zcUR~4&v?j{sBXsPCbDIjS{~tCQ&r9G1c!Oji5N8j=XqLcJ=jHD?{j>Ah<91eXqLIp zecQZUnb*ung<{t1-KRY5i-$GJF2|E7uieeEk3}QS0%_Kb%<$xtN4YMqS#lTb#`u}@ zG^-3$ZT)qgF40`KpKX5Doxh5tvulQAex~`^5yf*gORX#`b0q`CyZq{Z6Xmscni*-D9Z@`8 zv$Y*9@#(8#66MvJMI%|W-nJQ@+zueKNnY;tU)yLa`{~bb`=|EqXr=F1`j!q@9*$cyb3%^^s1GjW(45N!R_mxLdP20jPAl zzbx z@>Nd}KFZ=D+InQZ|r8bLm_R7~j_~!PjW)jPFilv^76Ec?=c@LduA1yb>XcWimh)0781fxFZ`&MCRGakJ z)@U-0=`^UHqurX-4S`CJYI-2`mhRFlmB#EmoIjPPb#~2=%+FLPo~&7A8f)>C+k@=z zv}hKMaPIi}o{6-xEmO-Qcv{`W^PSn+8m%rC{w6_h<8IZ~Z+v{aB@4xAoo3$=6U$v$ zDAp}b{XNB#Rjc^8QoD$^>)*%m+Pv1&igeNuxeI4o)@B~b^-WK`p6O-v^~%brov%Vl z>+h=lEP7RCO!BhcuFPs?q(bpzz3Sd?jq+VJP;F(-xkkQ6`?{9Q@WjiaM}K3d(bo4q ze1@~PW4Di`*0`26_7x2~G^-qx(BD4-$5d zZa*#3E)SWhL)b9SlGmab3B8#kJjea`orGEnlf`76=huFPv@q(bpb%~DZIU+8Mx z3|W`nhwO`sTW15m|B_~%ZF4+Tx9Bs%qD?O&BD|CQtZ3HjWB51JX|9TmIq6|V%oV8K zt{IZ~nF_^|HCsRH@tpn8*9^)0j5Ir@c(P_ixpEJL z?{eRxS)ya2QK|)AEf8sETc(yr*wNy%QihtW9rbs)lSOagZa=F^)Jj#G|AOx>&H9_z zBI$C6qoJ$e3=oti2<}I=f~#=4YB>M-X(W6ihJ(r&l+Tzh>iZ(!ZWx-3s(xlXa_ z1LeP5Adb$i8IJjx3dM63+bGv|vM$4uD6ds4eT&CYv9m2x%OmuZ8LhtJP4)@D=5r-? zs#g6VuXDznQMtRpiRUWSGP|sa{vI}Kp|>j&n;EH4JX5vu725w?S5z>YF2|E7uT(AH ztt4Lcx5q@<**3$Istuk?KArp%_f8b4yZ8Pc%|2;Xs-U3h@;r&=I?d8kc}&vTHA6B# z(>(2n;>nuT8T_@Ug|f@>B+6?ws~fGpLPnZ(wqnTLC|!Wou%{c!{L5EAyHesZcy!v+N`)lwGA!qP$wOL{z@-y+}LTW_Y66 z9QQWb%3<^7_X<_!wf~cSJ6ieK)+@b2)8%>+&2^gn?Ljf^Dn!!RHA6B#Q=xdSW?7TT zTh#ol%kw14Yc;FbnEs``BBT+KcD7||d8BJ}@pu|KCuG}mdCsvLG6ZjFVcw`+!Eex^e4WX-B>@%jv&*>riHM0u@d z@ob#HI15DDjbv(hpA)v7kWMVTx9GL7TeZqT)l}?{iM~Zc}WomhZKI5uj z_t6_G9J^|CeVUgQ&B|R5)l09S`RO!_r4nnb^#TqT?~gtlFQS{^irZ zKmOC(|86|>mrw0K|L}OD{`v8@{q@toe)^A3|M=-YfBnCI`}AL*{^{`>w3;y|(g3R+ zd6ar36z@ZC>D(^p{jWv;_OKB)`K-rVHp5dl-kF)Sr)57u{(}6cf5ZAYdY9(62TlEV zo+j`9wXa3vy`^KCc@=(Nx5~`>HBY*Amd()2&&b=3Ii9cE>I&_$J;~pusA@*Hsy(7- z>g$^(($2C>Esw|-_|w@^TeGTbtL$j02<WG`BMA{#Iod$`dNs|uc}|o+ zLbH66yH|vKgEZ@Gn^}X~_oBTIZ7VeKdde>M7Vg$8J8q)hN^I;rU81>8vpP*nb!O~n zon12|^D`BS=W3Qng;TwnW?kkWQC_QA)Jo>qDN~wtwqfe7_YZuw`Nr*Q={p! zJ&EQjPfP4eZo>BilxCe>nb*un)9i@i$(j}AN?nD&kC7;^)GVaY2xlz4BAz>1Z`%w{ z&U^5oqbw9TsQk5o-oiUHi~ZL-TDnX2mX715b(&Qrs{gu@H0$h|A(@|%X2%py*K93s z;rElfG)ty7*BpD>GPOK{X2~#(Vq8v#f=j z+odxAZ`TaT{7i-7$(q%fUd_+CYNJH?BQ%@4Z2B(@WNLYY{VbVH-!q}nRt=u_#l8R7 zyPu^3wR%G9`wSX}Oob$%suFPv@q(bq0%~tBleFi8|{s_(Hys@`!hUe#B(b+g} z%=d8dYv*Z}yIRCfmDt#Mx*^Wbf#vXlxsOg|Bc^7d8Lhw+u}xPopf5A-`~x0UkuVdV=dCo zvP>h@Ic+D~I96_X_)3Pf{w9tydezLim`D_NWuL|rvtEDPm@j^+wbp6T z`?y4Tt(PStMn`V_73o#kC+-EX+Zt(>2$Z~qKlSfdw7rorz4bU_ukCVNY?^4U)2vR= zMmrp5S6*LdM&x716i?P{{o7h!AJJg{K92W4Yc;FL*jExuv(B~|p42One@ZpR>}H8b zs6+O5#riqgty%Ut?6j}XW&N7;@tURg581u6`g*%&NakmnW=9lH)~vFOm1xRW_$JD$ zHH+_~DzsOGRt+@kZOhd1Nb|EkyCmAwO%kV{beBg_6Es=hDw=hfoE|O-QT{9%}GZl)bYqr);hMI-`ecTxv>wJLQ0k0N_ zw6iT!%Ok|b+B^HRS#?O&Is7@jDVk>0Yq63w<`ndGE58p-Sr^SD%BvNN=kwpFkYb%}nOYv<3zn=7 zKI#>1?tqX-@juhQi@P;jzkla<;)&);&61a3N7m2NQ?uT#%xh+(Lh)qHLb;Z+pfBC) zJSWO)HLLE2_}W(s(5$y@h9|q(@m`i{Eb>q1e+Ulm(@Lw%3hXw z-`Cae<29>}nYk*)+m(6Ej8rI|tXWa6>}7pt(nNW+mt}PxkzSX7;&hPpA@626S0amY znr6Al%L-gMnP@sT0@*K{(sE9!46!zl4bWkrQo@M z>UVXedk6MFgZ=@1fd_`&fMElMJ@DUmF6|r($)^%eQ=4UDtPgblbe=D5x_^v&P@@~aKfbK!FBA&TM zZ(F98M>w0s%i?X_Z?XR;vLp9-UTiFy`r6XSM7e(j+Hkp^M01yBxtk@D$;*1XGOy0a z(Cmuh$(q%Ew$hz~E=;fd6Xl(nr9PEi5Oe)%fmUZ{TZbpN@Th_Ewf~|`XC3~I*Y#}S zwSIQ=Gp^CRCkMq0vhT=#*4fn|nV+dpJXf=#T+17KFL#w@6;ZkPSDJMmI8)0bd?lJu zU#C83EBkrcSq~hm9cBKus!23=`dKu~dpECbbHwD-oOyLdDilxFtSHxZKrYXdDDU;N zr~}f@n@Y3JwjNJKZ@$7ww7IEA2I{ofSehk!{Jx^i_lWqM=I6I(=>)}^=(H)8E}H7F z%+FLfX4U?@u|KL#;zgQwv_jf>xvIem8f^-oE56w7MozvzLIyj_`AXGDr!Q_PC}aoc_Op;z6VeXmz$)5SB1 z@@_wiMpETsvaQ3DimLVLEWbw9_&mkx=Ir~53jGUSSGdG7t-YTsR<$VJ$4jv;GuGjl zpOIqM6i-%cwW5N5p^Hls<-LmKy8tN?6=`Q%rj|$43u6@*Q(1zl{SAUy2Uq8xU`ej7 z;$vN&C$Ze8Sk12gp0_wUyE3iL$WZKx;^~Uz?r(*%%kd=2dlk#q49Vj?sg_lQDyW*Db-T&LbDwJY#uIy4=S{`Z+0|j0pOI?U6wg&H zXDF=AHOel_lPK?1Ej>~>oz0}3ZJAmgc~(LBeU*4~K8xq~x#fFQi#_T@PJW`Y3cE~C z;<-$Ox21q`&r`N3T2n&NtE}hmRU|aNRf87b$D{tBfsvv zsA$uZJ@>J=Q?u%MTZx?fZamT4r&;1UH0yXVyWXx2$^1-(;>nt&a)ujjX!g(lQ11NJ zjgvEG(?zF=@@~zd5jv}VVq2z`N51@uF4xt@R8(+YeA4->R^Vz?8#GQ8|ZB7@WjuO74~(ngSI+Z_*$uX zj;_l?JvCd4jXA}gE!EnbXztUjPRaZkgf#2y>X6LOR4AUTS>2MZ#KzRl*D3GStoq8N zdp&5@*_Ns05q7jvq_3C|Z?aItcwX7_EM2Qw-Nqxne81P>9Cx<#8r5>!gT05pRV39q zyE3uPNQL6Lsuktx+U#;YX>H!AT5jVh5XoX1_jWmdvsHb!pa(bV%lB zDiqJvEN@?(vdi=&%6m1ds<-sz58gm$Tc(yrbQ-Z%EN8{%d0DZ<{`b3C{{`Q~a;IWB z0pP6cHDZ%uugXE;@iWDf6{{T7`~iN4P($+U9&di%;jo z!bi{ZyLjzxmbZ}gw~~SKwcCm2PR%mAoGZ@r^gL1Yc4c0jk>O=m6i?P{y-Jl;{B@oa z<=vWPH%ry?s|8w}ooyYSoX@iQ`g0u7#*>jp@qcHw@D9yZ{jAIMB$_)l%f4f^`Z~Kh zB=a*Bif3w;H0g-JECWIv*>=Dlbt}tjqHJe#Pp0cmEq2kd2Q>#xi6T%lRw zla-fsc4c0jkqX6gHB0?)owCarB+7fetiBof)$XRHS!Y{^Cp9|w&{YK#XB2w#+}`?5 z&5CBFa-6fQ+0yO`{OO%{W{$i>z9HZ(>#)qvNVRK@S+zfJ?JGk>CEeDt7XGes(rwxU zeco4wJrGJtU;ZGb+LeLQ`rzZh$w z_1CE;(cGt5<=eSiG0)SiS!Y*=WPWC7c17`A%~I=E?JMIe1{3AIn&mxYFYB@<((JAb z6x9^(Dxk=Ov4;34ZhjZ9)~sTt_uoomm2-2MXztW3v+I9dB%NJZf1MF&c1`hI&2m%6k>7Q+TquuNG)+cD7||d4x(T z&Tw*lWo)@mRq_g#pf>ORppAvc-Aacab$mHhL*~MBt zp2{xyjIe0)HBWTy|IVz0YyB+UuvmdBb&IS_v!z=963u;@#g9_MlQrw?>X6LOR4AUT zSy8UV#?H$n%DXkIb2PUGYjt+EWomik%fkn}yB|OXhc(1^ikg*hwPux_sN|rC6lP1W z((E{$b-YB<*_C;9Mx@y_#gjFw)7jd}?7ZAnnq_s)HBi2$ro)rd+2lc=tXV<)j(66< z)rwW$f=WKoM+k}KJ};||chua?^Yq-~c)L0r^D`BS=PFhw@U?G#c)cXbd%Y}sFErw! zCJ1=jGPOLyJCppUSaa70#rnMR{3c$jSe>)83x9tC@a++w&X!*1V~I|D7j$uSc4bMEb}uJj#;%oZ@SO(%rugZ<$U(9((3H;JW01Hp6cD_VSVm}SOsg|ep_mo>h|G1n%qMTRej$-9!xzjo;V%`He+d4egU)55_tbc#lk)r3>zN;0hli8Y=bu*b* zrnUET#mdJrfAc)e9NkEVV}3@8B@>Y;o~zhVvpBw|rCm^(O_wuBly@tZ?32&X%Evm} zGPOLSJM8IPR*IFXegBGi?ygfTvomTID|=Z#lZoX%#p;_3zRC%X-mXlmGcpvrqIjla zMVXrcwL7!lAF=cNK6ZCM9UnXPjxP2UX=hu9C%sWwd(&H`y{zgj&bS$%h)Fb+nW$v{ z{dbzL(5x(VH+Dtxiu}`iiYIFp%C%YwzJz_3W_8b<_3_mLk#@FqG)wk8cYqS>Z@*N1 zQkAiEz!^Jp^gd(EUi@_?uTZRN%Tngw+tuNipOKg4W*BR;r+Bhr^<{`kC58V6U81}< zE*?3Hyf!=ko2lgyDu~j}y1|-yyA-9*I=DJ6h9#$V6~#KuB$hklV(Jx%ndW(V?qt8) zoLHvS8L3b_S+UenaAr}V?D9K_^6yY=zGvyHk2^g1ZY6J(-%}0RoRF}0bSudGE?%u! z)jm~D?1=tnOV_)ceVSGFiQ2K(Ustr`?COxr&r~R$tJ%@7twz~JrPpYdT8XS9vKG#^ zOf8R)eIm;A@seoMa~FI3-c8 zKW{ykJm4D(^z-jeQGs(&+58qk% zA1B#SEK!Wlw&Q2LT^)}3nW5Mf#jMyLH=fHrDYJun9~=8SQ=hNQ9mT50Fy8I;JrilS zKg!hd2sOs|P@fMTwExS)v!}l^TX?mfW%aGqEK(IeTiRQFJDMfylkf6)yE3oNNQL6b znpFp=nr2;==PJ#zIw#-9>g;Um@yyw!!J6-i@ZPx?Zq~uoiiKq@1I1orw)85+st+{Z zZF&85t-a2!4#)gVh2qJIt)KF+XMCOKD-?@D@M`|cEh6n~%hd7+^_%Z9P~2SOzu@;> z^Bi5RS>2_qMaC}E^Eu5={VXhrVyOI>XG&{^SUSrxvCfE8yXKfxd%|v3xyH)*z+X1g zlSrpr zUbWt`jyCf%6^>`CmRjRl7ZU$1q(pkJYKd9%8G*MfQ_Cax^i|a&-4*b~{_o81;kABN zw<-A=%KO{|G3spTHL)>kFBJc_dui5QZ&zm38F}h8Q_On3I|C)kbg!yVc3GaJ*1Rrv zysY9WpPdkCXIqCSRg3C0>h`LlO=o93@tK-sJ}NZt$Uvc4sQB!INIJVZB=a*BiYIGU zx9@7Pl*=1jquCLOI^Q7D&bCY~kEm*KRZl@ynf2L6aI^2a+RKXNw~}IArYEsX(NZTW zW-se=cjD;m%CtHoL$NE0Co5L9sWrvAEKj1m*UR#qTb&}$ig;!%{(ktz*O3lSw3__q zh^X`}5dYrIR$Q%Ev8*Z9WqA_IeTvl$8g|?BJk1=PT^)}3nF_^|6|36RN(I#453lk% z&x!JG#jdkY-nL9FkBn}{sX~Xl0o)>Ezw1w(<~h1fv#eR#QQocDoS%h&x2?l-d@*3H*;R&WeiyHei*+-g(tVs6bL(HCxnHyHT@p!WSBGSN zW@vUr@m$Rg%I{C|pzJa{iSlmE62X;pOEhyn*jd--7ypX1v#rBZUcldAAFR2bdsc-pIvAB~@B2T&(rG5K+~;G} z+ue8n6GvxPhhu)GLh)S1Qd2}+Tw9l2&LC0V>tngEMW!+PSZ7)##` z$=An>rM&Vzaq;N2$ogB!CK6Z8mTHfYXztQ1wb`t8>^@$9U7B@vWnP_;q1hG1Gc_y9 zx@B3@tn+b+@=ndtbsWw9bKzy3Z5^J(#l+w~>J@D&jPYxJKRCaO*X?CRlgJnwE4v(* z=Sej8X_gZnPVC&TOS5jILoz>8p?I=p6&cqw>%3f|yjQc-H$mEYQ;~MIWomf@9lp~n z)v0ItS)JNdX!<)1iRLcNvg2UxzeYdn?aI75Bhu`e;>ns7<;pn^yQSHOtfQ&jnk7e@ zceCEM4o}W`cy8rqzdhCt_2O}P*LjYv_OrT2`MzeHHOFOouF`C}m6h!3kj&2v&8{e( ztXb-2YdawR*8DzRr&(5KV$obV<88~-@(90`dOHo)bQU|S0*c6(2!Y&0ZT)ro$=|P7 za{KIY+r1#~Ybi-qH zmxt3u<-^X3i=|mS*!%pG|B_&$xl^;OcHd$q(c9Hod-F5$vTKSbYqoyQLyrDcF^TeS z&9axxcX_;RnOYwC@_3(ktNcB%5mTuqz~@TlIl6W)%Xw?{riVX!PBeFFRyP;j8q4f@ zyE3oNNQL6bnpMqAns7iFlgKNt%Zg=Iospr}6~%M)N`8*)Q_aV^+)tvsGcJZS8PR<1;`>>5 zcvAm_X7g{+mqK3(I_b_V^COygj`w?6?jzM#-(7JrBw2a$3A?weLoz=j&8{h)uGw1t z$)Ac|rCH8+zCMV*zGw2WZr#q*@(7w;uMcQe-z4|$uW^gsSfOeY|cjOLht0mvhG6whmAAJMmHPU`>`J zMbGmLU8`6!H&w;@?+#s|SR&(mGr-%`;h3MPP&`+$gK{O7;$5EK$7>Z!JjLnks|677 zwqolt!IJ?=}JrAnlXG_;KcY0Y_>V91$-ALxu8L3b_ zQ?r^o^$eQnKv-WShGxLUK&tbF-_RnBF4 z63tzj<Wow%I#c*shO{#8 z^t0?{rK21h@5?~R6RiELZv4GjQ<|Kw`T>I|T^0=v0PG1v7^lV z%+TzL;>ns7<=TGs&I}Z*Gg-b_5%LXMote~=C%1$wf@=iYsY5Xj6JuBj=S+C|U z&y-yntd+y|s-Eq;TCuRK)fscUVYc*|$QX{CqVfNI{dH#7+tuNipQ%thS+VLgU#X|~ z^D)z}^L&M3$2pHb%@Jv5Tc(yrzWj>XQs0R|n{L2K*Yg}*tyxa(u(9H0@5w;P%lhw( zi=?wF^XiOLD4wfXGAW!5R3c;FP53I!60Q2|gh=nqK;a2|)GONLsPXzfBX*x=@vvz2 z{WmM|XLn_wm|gEpMbg>TQD%OoLh)qH>O8NeS(oLxO0$rrU)rpQIWl&(Womgu_pnps z_HPdhR=eHVy6b!_J|EA|>RZV^QL#5$dQDu+2^ti0wYaw{v+9gI^_p`QXX;gybuwG2 zf1;OJo$}6|ETqvt0o)9pExp#y=IT>#SLW3jk!IHvPuFbi{QcYGU9MB!tyy&BZzo8z z&bAKEFOQW8PvB1*25lnrvnrs7nnrJ+N^I=+7-?BI))%9g_K(3dNH( ztKJlq4p4L#yi2npO+4^wfk->sGPOMNm;76wSqWLJll7*mxX0@{dHNMD-_Gj zWowJvtpR@dL|M}*wX=2{vu1z(JyzNO_3>Z(Z~yq;A9MLX|KtDp_5b&O{Nw-q$N%#91-;>%>(D7k zSpeo%--oW`ps0zTE$!`q{_lVMe-B$;|2r$v`WlX}8<&@LmSt*r`j5`aJgO;blwCZNDDRDp)jKHP+@ka0tQAE7 znOYtp{w716>*}a8KCfz#43ucrswuudVy)L1`<&*ds^u0Q(J@uNufH$VI?FP#&WKdI z=9pD`e{`&VU)=0@U+adqd!6Y-dY_*iq*v>+v#i5YIVfL6{I9HiCS{(VPgmgovDkQ! ztn72R-7s6)+vju?%Zli4?MSiCt`5iiOod`r?EQY0`#iPtyzh2pOnTkvXHhIW@O-A{ zZOhd12;I-pjaacJgU#8j?|w4t;A+Lf5?@oiM`EKcyMecSwZBNNU2nsqrQY1WN&l$oCy znq5&mQ?sJ1J6km`>oPov@?Oop>!rpQ-)F7#bH?OSlN!aET3E&D=bX$wS+ZMvzn7&K z`0IQnmirW|ne&x7QmnHptFJRsp?I=lRW(z|SopiiiSlm6@=o$LzP@K7?amB3Jn^!X z{1aZ*@4IFTulBOaC042_{E1njxl^<3JA7S^NM4zL$`nu5tg?)?mD%NZ66M{RMSp)k z{%2OiyfDg1d^ zV!2zf`8JQYE7R(XJQbTMo~&3^xz*NX7ndf=yA{jY?DL#bth24dv*KaT+{x;ed!>$o zuEF!lqG%~VM%iU}(#rfhG@I{#_-{scc#iCo-=z-P)KH|3GqVz|)~vEmm0Th<3$vxyX%^o` zXOGukmu8(^9g_K(3dNH(E6SDAcc1&YO0(n{eLN@9?j6X~@(4Rw-YS1jN3^Nk$@LcV zyLh!`bt~&#^%L=_ukK1T_r=EQO6|Mtx!F;{1lXztdm_ww1U4$1sXh2rU& zeSiM0*>ro5M0vMn(TKl)l5NY>@(7(4vkx7#^-Vsn>v>hV+RxU$j;0xNxq(D;r)J3n z_~?)+V|>GC{@@=nd-U(u28O_6Qu@T3P(+NloK+|W&b=RU>K z`>E1@T=V5JJ&EN$#d4m=zQe5-*{%-9{7i-7xr$YndA^sju5#0C-j{)rV*hxso)s}i z#?H1(Esv0a;=InE=?~iKA?LGHvxV1s*?&G(n@Xo!(R7)f->uoP$N6`g|H^h{UY(H& z#gjFwli7D!W6h?^@+8W8y{x)LQ^hbVV%Dr1>G0GU&Z_?tckl4TUe&XGS1Y!5$_`8a z?@KKAd0F!Qsk>ITtHUurBgL*Mo~~GY*n2OF_nF_v^~u0)#Zvjp{qt7~MB3SwspS#A zrnRnqqNkX$VP{o8;lYTDD-n~gKe|e>{%eKe=(1v&R%c`=c17`A#ZogsBvqq)XZDFR z_`H*4hxDrD4o?)zbH3N#h^XlBnRGqdah;cC4dDa@n(u03qz$+F{cg>&s*scLJ&Utl z9g_K(3dJ)uE6Vhxs8V)2$wYalmxVO@OJ7YP($2O_EswC5CF=E&xZ2OE%ScVLcjcd0eVM;`o}O6=Zh*XwbV%lBDilxGZ0%&0 zf9dONUZq*x3~=65nsv5iYIy`dOOC|ng9mNJ#y)@mHa>Fd$Xl$#pZp^=Y1B*ovb1zZ&`~@V*fqth*dI53GeDHU3on4t$XJjaLMe$t4ay|m(num2c zo$p+(R6v9M02NRiBJ4DMnuxt z)ghUm8Jb;DJXy1%T*)$$qo3c$?*6CeWu*}p{fe}+EmO-Q@>KD}L;S7&5sR`)wR#gjE#Kb!UU-xB4$epWk7-_2O0cjceRP5Umz zgS5_WPs={3#+Z3}pOfIe(!8>)SKnPemOQ)eWVv4#MK{t>WqzhY@m#$!heT2pANz+r zOS?j^^uHyV^6RfiJMWvR|}|+*P7)w)8DyMv${!Hqv^6d ziRMntk}vk16h+e6)lp`CW@vUr@pR4BDkChc?WeMXbmc71 z_l*8@ZT>v_grDUU!&e)L^selaysYmyF<9$M6{l*p;${8$)Tbo7ise-Mb;W?Ax2vPe z{7i*nR_u?PPi3W7vMKK~7GEC`5_MQwBkrI)y+sTNev#UcgKO@bqDW0rZ zC^J`;mDy!^uF9B|%*P3PYL?5f0 zl(p5@WqA_KeVP@?Rb1@s>X6LO49%`6o~&6>uAIJqee98DA97{J_}j1ha6U4ZW}R)B zS{@-T)^5wyH4WPQX3Bfcb9A+z)hSO!vwlswPO~Xm@^)ojoskN~lQj!v-oW?Kl<(P- zDDU>O>}65ztcYh^>}~7t9DON#c6!j(4YJervg8q|7_UT4f7(4pqPfq{>dQRY&w9H$ zB=a*Bisx!pJ?6=}S2XK#Jc;sN&8j2#cl(~P;`pyKWomhZF9xtatnyFvVPwzibv>^t z*ZSE(v!+>>=Sej8X_k3qSK%UHk#u%tUY!wXc1`ho&FW-ed>vwb>tRyUvN`7zI+R+3DsGxAhyrg*Mm2j!ZVby=Q7d9Rn%O`d!{;QNwycoG>ya;;fZ zdtL@gG;6zAe@c~T?$@kSCTpO#t3xtBGc>!Rc(P`7W44kt_TL#yl=o^@m4v=)wn)1( zpiC`~@LzkUSXBg^=Vet(@mC>Y@@L$M58qz#l9{- zQT`o@_20P_X_p)8@Z_9_7~JQB2W|C5^?zrM>#mNBb!u1H<$QZ+XSVdJy{uNmd^5n? z)ghUmsZcywv-M7z{*>h!&8k;v?$_pR%hd7+ds#Xs__s>5$)V))+gS-$YnJ;wwYyoq zYk#7-)6c4xjLT(e^>z7*%&Rj}p?I!l$=y|R7T;{fHc{T|XVnYB_skUOefcNVZuqR` zpsfhc-}$*ivv_>+I`yh?YLRA3uky3(wW%<3nGun6c6F4QpQ%thQL{7UYHaN0`6|sq z+DGRi?QF}`)+4Lz6Q{)N$o$`#RdAJ$9VF{rsr{L9BDv4Uvc_?j$3^8(^meUT`E@ft z^RIgK6i?QxI#X2YpQ!4d-^cZ;yw}I-JBRuE-`=)NEsya1j?}egu>St=Pbr5o&(PJ1 z70b%a0AH2z`xUFMsQG-|+m&f`Mk*A~RV=G>wfhraFQ4DXD;3M`Y~^9SZ9Sgq|K!ga zM4L+3tm}D>uGQ=(J#Kwp(%-LH)o|zAciyfJ$^1-(;>nuj^u3m^`2N^`%}ynOYthHv?ALC%RUnSzpCITX?l*bz)cPzxVyN>L;>K`HqLTEA#4%NV98- zCu>$WW^2)u%kZR?d2eJ)hsPAJO0&+k4$mC(4$^=9vV~ur)u|P1{*ycOT3vlzh9{BS zx09voA1j^vby0L99g6vx3dNK4svEPlRoQvCMEQ5SKsRbEjsBmU8zeZ&&8k8L3b_S+nFAAzq<;U-n70MdUZ3|DYi^q0hyBUIY{j*4F?}DaSqXZ8&z4@NSoX2pdVBqK zDc0H5;h3MPP&`?&_3z&OW#>6XQhVcKbs^>SC6RXTK&F;QxD&uAamVX#4ce@9Cv`F& zCnxpuI)A?+(cI-_x!b|oOEv!M>`JrF|7KpDkqX5#H9PKva>i4+$K&(ziSka(a&udi z3r?9Ly({;`2~XaqiZ-XR@)l0l^SgMRpMBD-)x`J?v!B!aw3jjaZ7R4q>zQXteqJoE z%0R6-X4U?@vHQ4IXPwQ~GL8O}C6P|6^XJ{iAx+-Ge;G)m-8;}(h2JZdFH|H?Jimum zEB3!UBI8>2$@fkFlw((~zU~Ez-mVVC{LEN)R}`~ef85r4e5h5FD>v`B)jhwD>;2DO zFH5F}46TcrMB3SwspXL`zbfX^iR+-Pn}8?fpX6m#UtGE2?!Sw3g=WbE$?B6!WlPK@jETr>oS#Mj1C;i$|Zt2OI|MGc?RZoga_MfjD)z{w?Ep@ys zv68Pq(c0_m>Tt}@R4AUTSW&KdS+|qCRyR_bDw6ZdS!NAu zrC!nZgh-TkY8IA?SDiN%>0Q|;a>jT9p9v9dvT#J|{zmPcn$@Y@``DPAqg#_cr}=qw z%xaOccVr2?Wm$opkqXDG+MfsHjH}-!Wj;;L9{q4^CHT&MrLh_CZDCUoyhp&DSM`u@uV}7PWF)Q}R?O9{=TItFMWmjdC^t#i} zGRMTmUmyQ7D`K4ICEGH!JTmHxSAG_2u*cWL&K6!B8;hoPI>Xz}_RKTp<}%Stt8drK z`qfUFb#`T5osps06~%KkOI*o$-uoOBx^R(cqP$zP?1KDvsYTk^*5OGGN*QVwJBl{7 z2%O;hH*eO+wVD-8=Hp$}I5gdkGSS?rSt1l_q2_s-*Aiz}hh%=HLh)qH>U6diO}RRw zM0u}f^)2^r52Ym1&bCY~k8nDh@52t->L78T;y2k#u%tUY(H&#gjG5>1^eu zC6w>XKymuQndq#DXFTO?>+nRgc!HImrFR_moabjbo#l;uA2a#=4thX&w%OliNeEa1^edH_NM9^5||IVGN>X6LONVBYMth}D$xtbN_YCPpKJ&E$~ z@U(P~c=Zj^tg|gs%Ol*wV{{cAQ{e$^*uUB{|H-vGS~5#@&AMDqqPb7A(h1s~=Sf~( zB%NKES7&5sc17`I&EjW?_1@_VrcO`Wq05=T6nC6O@a9@w48pOsq3fp?I=tRaIU&q5b-p z(fNH`XD#-sR+-v-M&NDh@T3;jXM~@mbzX5oTr6ujd7_G!xcFNkV*2`sCF&%1>Q$LL zmwS+2on0M@`I!pE)AahEDcAP0{yW@hRo<&t^>E>P5U=la`LV&nVF1RW#mGKwzZ!6NN!%hd7+=RCYsKKnmtvqq%-?yQ8X{j5&yYJT>P z3>2)Gx!lpqe_0^&>Wowu2e1h?}T2XS>5UJ_W-0>7d3ZyetD>s{FBcui8l8G z_-}h%->2D8J6`d#z7{0W-05eT-F(jD?dp)s&r~R$t697!S;oq(9%?h^_wmZuSa((P z9cgb{rj|#D-RSb<-yP8&w+MWd-8@Iv`dNHfHD~O*ef)mSQuWE~x=fS2up7y|IwKW| zCu>%j#@fp4@;r(1-q=_*4*u)%BJFJJ@WjuO*-Vvns)17c?0xawn&pjrzn}H%U!u9s z&vJ^s>ICKO>X6LONVD4QrHJZW&GNoiPY3>dtd8^hc%7d`u@GQa`)YwS>uk%^@(A@5 zIz4nbVbP}R7rQdA>)FC<{j4h5YWFIs|CufA()_gAm~Xlh$K)NYw=5Iuj8r&g)&9Kc zCf+mKI7nCSN&CvdPgm#9?+BnHVyeGvd@j}Q%0f{el=iA(jTP+5eEd8s;cCrRzdNh! z_-yG~v-|w)-@jHnzpD^OmmBNoGCxzHm=*iumYaC9Ue!IQl7ss5p_)47y|J-w_4pM- zq@8V@DuV0ZdzIL7`tru|gc4btsZMI1p=%X8Y8ETe z67m0R=~X^f*}ZRek0p-It`5iiOoif^iq%`kt*u%Ol&|x>MzPvE=C22M+cLF0!d$#l ztiIyoRXywAI>m~mqT))`xUc?9EcZpl>iwO&19`hLt}4Low1oN~_U8<86sW4@Ql-|?~Y{L~$q<(%q$#`xPu*{7YFB_ol~ z*u7mHW#(swW>*wX)~rruYq6AzO0UtZDhd5wTAFpXWomhZFV3o);;PmduTDL_&!XI^ z+WM)T_jQTqPSp|p@gG70+r)B+3_4rb)vn^{g zk9>Lj5_Rc36kEf%&Rj}p?I=p)$gmK zS^Da~u8oQE@6fD2wG(M)TZbn%XW!iq;FS8Dj*B`0K(pKx=cK)|qy7F^sp~ZNX;vrS zIXd=sbx7uChGth3&(*9b*K$zoD(jT@Y8J+P%gViH(yX&BQ_CaV58$^}J6g_U(e+7Z zv(l{gI+gqc8JIfFeVSD@8(-LZ{dJLac4c0jk)hcY#gjFwXsYICU8d(6KdaT*e`Q0Y zooyYS!_WFtLeb{l39+%aXMPv2%|fvo#Lw0=>r|6y?$)foZ7-6}t`5okOoigfnpKz7 zN*0Pd{ro=54IlQ+mQ_CaxPrs)cq(`p|msy_Y=W4y`7IaOoF3)p?UWs6+ z<(}v1nSc8J7<(PbtU4nVil^(93byz8C%$L?I-7~|UcIW~h!d7q3$!vj+d4eSKk=N; z2M^k+YxI9-w(x4ra-*{5WBti;qPfqIU*Z3yN zdo|0>65p3J>ut-_^2j)y_3zH0t-A`R?PX;h`~C_|mlsGhcWPFC)_GHD*4dSLbw(-_ zPu8ru^VKLj#U#pmHLJVszNSN@ooyYS_*tDEy0}-g>Bvs}%>OleRYiF7pIqx_`Suxp zwvw6PM*nQ-dY7|Lv+7crRz&=)v#UcgKU1N2vS!Ix(3PjMGP@klRhrf6>>^-k*4dV+ z<&iJHGE1wBF<;6c`{e)5tb?l+tL#&4{dN1v#B!%%RRiT{iKDYC)9Q>2#jYrxtXO5A zDrb4z#F*d5^}4*<%R<`kr$yS?*5S!H=c@V%4}03}JE8(|>a4w$?9*S5zgs7{Pp@Mq z>-?xFI=ea)^D{%QD~f086`zG~t$sCtQ;j<1y?W*B0v);aSEQY7nOYvv7Xf^{J6Qku z&}_;n&ogwLhZW0uwB*mGuJEv`VoQqkc4bTJpaitM~jqUgu#^5&Onm z<>qbc@T8wHzm;}c+zcRljhFTB*E~npYL>gc>|<**U5@8>YnGLF)N0N1q<4w6*VoE) zNakmx*)_#;H7m-s+9!YeEm7X-WjTY={>NpQMB0sHYI%gO&2m%6>v7OV7iZm>#m|m< z#mY{WujIU{Cehp#8KYU|o*4f1*G1CVm3ehWDilxFELExe8{X%h=mPRO&x!JG&9XYD z`UX~KXIqCS^@{w~%Fm)$YK)n;*BP1r{I2GolYOKrR%6^w`Msze*JZ6*4fn| znV*qn*A!3IER?H$)@69E(k#26+)>ltr_I#z2ZS8ZxKolTbYc;Z7>_hmU>)SYs-Bb-;2tNpA<*7i9r z&+{qCj$)PFbGZk_OU|wi$NbDt?22Mm?2jA!k3aQVsU+v$>E=06-s@+H$~g;lag#_p z+cLF0Lf1C@toNaVHouv4eUE0z&yjDaeNPKt?ADt^Gp)X#YL>cxs#SbvHfGh^m3ehW zDiqJu>`eK6l`*sFvOJ0MPR&9Z&8F|UB-=VXIh#eZs|*ws7iiX>72mDdO8+Nj% z&E1+!_2S8{4$1tCG`psFx@OVDyK^39(`9)Q<=vVkqWT*BthX&w%Ojl4vOcW*ES1Kp z$#TBxPR&xcSUI(Wri)n;&3&3x);Qh0NOomjosps06~&V^t6uY!9T3%n^ZU3y8`!Ja zzkg{Y=PkT#9iGYvL-qCFI#}zQQ2xD}pSo^0tC&eyez#)vyZMYg+125g zpQ%thS+VLFRHOV!_GzbLwf3e+RC^$2Tc(yr=-8Gs!h<%EU5cLX(=0o|S`8{Q>M}jQ zU$Z*-_LV3i>Fmn9IwKW|=W3RSk~<)^$k=6h66L*`RnFLVx)o_>TaTw|t+JOTpUmI! zxsp2-iGyQX-uVym~@rHj{jzCy9o z{;ST|?WRTA<;F6#Ji;BkR4Fl5XIXPv_K8||R^Q4wJ9AcNxl6IkA9;dw`&lGk?aH(| zBNdA0DpuAL30Br+r~9|?t8Mc_F2!nHOr3nebnS_Pc(OHHubk9MsQiN%&Rjp zG`pgBx@LLnE0kS^CsE$1S>~A4nU!%?#PbdaUjTU>>G0%?C!Z#9hJs>IwU3@>E3V$n zR=X^s3>UE^mb(pL~8Z+z5fx=hdKG(W8}<~&%ppWT{)@1S4lJcnABGqKJ{g=1Fj z&s*>ECd4}##Y^{>b*GH%I zH^obzdRc7KdgyWwaP)R{IOb<66i-&HdKpw=sjrWBbbcS#>+){Jk~8-GyhPgBmZ{|t z?V8tmW%cm3%=2@#URB3dsTTL&Wd8kn9kEH;$9lUmtIo(%ubJY>dKKl$sQ~@0=J)YR zy{cbZzGLZa>+l?1QTyljtM8z#?33T^-lth|vFv0kc?n5-=E8VwYi@}`FCj6-^vzgmzV1BlX^O*ox zddo7g&Pau0R_)JQ&t>)I)jN<=6Fm6-cojd2UR4w93-0zFD8|m=mOYS=DcZwXe zQAT?6<{7$LwPIPh&*Q(Cl2n^mey&+&kP~+2PesyYr#d9_GZl(ivp;S;nSCmjxq2TP z)AMM4AJ>ZA?P<{nYI?Omq@8VT5ujXQ_CaN zEHb+8D5D*(f4}b2?6@0HS%LW%%$8mg8?&CUB0}`_*NKh2U71&BWN3Cp@l4H*XtR0- z@B6u2qgi!%@#n)Ly)OgBP4QGkJZMwFk$my|E?(znpERj|uJ~D(=}9#A`PtEb-0fOL z(%IEfW`3qZ@pR4BPV{_7fkb()pOt3wNsqTJQ_CZjZwBDi@fQA!@lMUEqfE`uI@Kha zyEKbhn7NeU!_PXqGOy0a(Cmuh$(j}AO4j(>Z8@mtJrK8R)#|)22gM4;o8a&3h&LXe z%(0K4?^Z3D#fqnO@#*hY?TC(je%Y0_)fi&o8TVaF?{d|8YW_};nS;oDJ6=~mvSEQY7 znOYuE*EWBGGgyyrrJkl()ht%BPrhg66^ec5V_giDX>~>_6i-&HDA#wlc>4@5~ln?PcrL6yI%@C(+#LWw}jBuiJT^=D7H( z>=XAWSwB3*lQmnfrtq~4iSlmEGP^$4BhBv1KEW{mmiDr`8{m7N%E*Q|?xA?fYvkj&3iD4wiYD07?fy=MQqG5@4*edPWW z-nL9Fk8t{%M@MXYY6eR6Y?Yj`&)O!<<`wwUTX>xEtnX8L%QBPBNQGlo?ay0p&QdqS zELN+asIZ;=$T|y^R_D&mS)IbuFXi?3wLUw`Iy}c0di;t%Xj8G6yzy+|)t*)-J(Vof zUypcVwsg&MpK6&wWhYz)Pb{5f9hUi-3di$Ri*_sC*6l>n`n*rISf|dKE=M8K&azA` zkC2^CC$EFG`nCG=pjiobXcikQB;8DYO0w%`ecoCeon4t$XQVue^kABN%NKggdfU_r`rJCpH zI?d|TldADrZ2b2}8K`}l{q`SO3Ae_I2nHN`VEE6S>=sPr}FYYp@Jc;#-E+eB#A z?R7-j*_M@=M@EMVUmc?rno~qFpWYYGb9A+4wbQAsz-~vGR^WY_9XFwJZ0zjHygDNl ziYIFp%GDi^o99G%ub*Wni)P&#EX_LGIy^b)$rWvbw!R3?|1~RAtJwS}S8G{jk4Q=B+7d= ztJRsTfzvFcooyYS_*pywGvj`X`Qr9Hy7oEF`KfFDtZ0%AeRn#`jJaG-qPbJEnmPCD z+|u`Ubx7uCq}esalQpZaF}?S*%%)RJqP$nLbW~*j=qwOvHv7QLhS7O` zRy}Vkw`Za0_8E!hF3nQM#>|lsnAf%uF(tb)ug*w?;<=iok2`+${SJuPba|dcd8cL} ztvsz$rZnqp>+s~;TEx9Rza-k&lmE{AE?(F`j?PC(P;dJ@f@nk8G{`#p)Iv#Ucg zKU1N2vSxJ?q~>Q`o+nY>ty#`zeYLYlJKHj~Ji;A;R4p;qXZ1$s|C;rAcLs|54T`O; zzs}DkmOB;8zB~0uWhHTTWm=t)3dNHZ3*|~h1+(e0Jc;tvigmVicoG?}eJp!Mc4Q~j zK%oN&q1g8|sMLSD)h4mrsaQ_F{jam~`jHOD{LE9anc}&M9hBdn%`%%V$CD`UR;*^% zc~X&fwqZGBd9pRJ7R#>fFiwo%yNj;$oCQ7OqwU1x=R$N;LOrR$mYBUsV)I zXIJLc8L3b_Q?sJ1s+ro#>~@lg^6$`W`syKXptG&Rle~2Dpo6u(_u)Olor={rXDbnuTxj=0<>vBAa@@~!YPOc&!!O`_53DYy_Xfs_uqBr zW|Z59CzksZJJve4kHO1&yE+{6GZl&_D^_Pbl~{_r^87xo_dmN8yUOE2+S!(=M7&<#SGR|W)rEq_;Q}1s})+sY$k5}Vh zO;4GWqnc;v4#i?)W%YG=p5LulPWM@PbG^8)KkjhM&r~R$tXNKFYgNWRDovF4DwZg2 zl{5CXWomgu^~`>kD%SiBtnqgT?o_P4XjqAt{J-yWmY;WlVh_#SxtItq>n+Q?IwKX1 zS+hTH?P*LNmO2FdY-MfctY>~F*M2tTEIOUrIF-P!rM;}TtizM8HOYex*6JAOPjBb> zx!TK8O;M{q_5HMxW)sQJ70X#6ignSi6njF#s0XlJF4`mvpnhb&;N+1 z=C@9&)NHzpL883Z%j#8VH=v0WUO6Y4J2lID=kwJf z>Fnx|%+HLKcSZ4Z%`$`U_dkEwXeLqKty%Jne5LO7JrijcX=Q48gmWHw0+(AFwAnkK zb!S#9aQ)Pd>YvxSOf>gtmMlAYL>I4#q_ZpY>WowuC2`X<)5S@y0^W)XCm!J zIy~{SJh#pnt195MdJ6UrwO)(t8t=+LafY_q%{sd}B=a-UEcKIk0#ET|%~FNOjk1cL zb$iLQGXD-go9k2k7vD3rJTf%vGa-XE_q5NerjT_g_dQL&CMB9X{jBaJySRwe*V~nO zbw(-_&($oE3i+q8lND?4%Q)S59Z8h;YF2%Q{k>h0cDD6+etWz*$(et$jB z(X}}!S;zmbXx8O=KBxJ47V3{*`--nIX7Zh@J1p}v6^>c8KX1<)lV_}+_V^uTBAr&} zPTqLjR82ctZ&{|6N7&J_5~rw1t2DRC_;2`1sXKM6)ApLLb@`q|Gq1v*>-NuIrvRx( zHQv@)mYH=%Djd((E&qzj3hm;WM0%%gbqgKdvnHOI?XNaV*5SG8%Qjf6m)x0}tz{Lt zZ}>WspOWk-ma2;MogNhH?CNmL&r~R8#s0YYyhpv;s=FYU>q(UJ%G~j^>Zit;+Ut9! z_}GnPYI#ImWqjA)Cu?@J=P8z((DbROti5jSODxmc`?+GjJyzCL=Gc4ROsg|ep?I=l zMY)nW#{0bLB~jk3Saz9c^VI?=*4ftKsarj&y2|H0^r$%TRu7ebWGE_kp?x($;<-fIxO=uQtg`J$*R=}L8ao&_wPxR_o`Ok;qcw4M0!^qie6C4Zf4Em@AIB_ zURSQpL+K=-;%WIx!fa`;s_k=6iz=x@b*rpMI=iy|IwR8Tn&P>d#b2;8SI&EUW%o6j z)#{vMV{coB=g=(K#n*Rw(8f=s{PO(NwVE9?Ykt;cdJ@f@epXdvPMOlIv#UcgKU1N2 zzGf@=r#~Mn3X*CI?dwuN6*E| zUWYFq&6cid?$j)PHhpmkFYN5fygDNlif3w8l>hlFZ&9P{@;qr}-mO`z&ArI~wArZ+ zPu;WgyQ;yOUpuRMQ7jc1*Y-L0cU|peMYFQc@ilvi<~}bAE%L@L{$cGX8C#x z=bf|{zt8b_J zJk`9eT^$?O?^b$G_bJKG6{|fYRc-S;Y5kXCT`bk%n4hUo%!>VSW96dss=AqH4r&z} zJG~^zd1dY>R^21~_hm%d*_Ns05#nM$2O>>winEF{^;)Zd@;8z`C;7Qz)h*!fxX1C9 zWm=t)3dgM26MSsF3d(mENThfA*ikv-;$IZ&E$i_7^7wDz&;7eI)@Nm@d}ev}9#?x= zo%B?)#@|26K;`xKbJglD9@OTUdiq&!S%+nQro!=L)#@%D|9hPFcrPPuxS762wfH~3 z2g{aaYI#Hz>@K%7NXzG+=4Y7&b~u%@S%1>piA|`KF=G7UgP&`?)I?Ged%<#0YEH#^MZA_GRYnH4Kw|YLYt;3VuEY%dg z{&dh*9gmNnXA7^2jj3T{ozXX3D!B>2&qy@)X;vq*e?4N9d7frJ>-Ik#lKGhm#S=CA zuas*mvzzBcd9P-*f8>8B($2O_Esv<{iC5!b%}K;byV=1~k#Xhwm3%k%btXS&`MIAR zCw4CXAkW||%e*=x6^>c6ckX6q(#+QTQ=Y#b`;a>6v^IBkv!j~A{k}-Mkq%Ft9Qw!@ z-%ItqD%{V>Kn;?LjB8%jt$ss~-buRgn$Nbc0DZe6(56^h=j z%&Id|p?I=hwUe#f*rJc`{61>;ktpxgE7=P2jLrg)b|W30e2XIWi4kl1P@NeS>&9#) zD)!%DNG$g$R(bz?C(GN_;h3MPP&`+$W!Ma8FNzlx|(Ead4#H< zlr0{t*##y)JX>+CkEOb}+8foMiYAu(6ss%&cNgb*dS;%yU71#Aq(bpz#VV4jWS;z& zkP_v+isb}{Q&5**l8<#G9iH4EMvuP2ShVSr&54uGPtEV*)tar}r1al>O*HpumJ=N6 z72OIelD|LmRH1mXX8&_9nUr&3m*MswiSk~}Qjds^QpUpD*3m4t0(h&~=g;aJo`BpF zw^8yb(EQZ3n$^2lJ7f2EX%fwSnpG6TR~P1a8neq=<~(qRWPWDM(~9D`nuRa#U@c?e z<~dRRJ(_jiRI9VIEmO-Q>{L_KJ6OwC_&S~WO}tvMoXL_Idzbg;YjbWzN-Xy&_S-{~ zcv-*pCc84N&Pavg$%@tf=lx!m*>oA6M0u}b^=-QJMVDk-hv%0^TulA2uWK5#**BgS z8B>vkX5XLHF=I|OiRMntl8^VR9rqf%T^*A7nF_^|HLDwz@4YOu>2@HA@?OotIA@HL zZJAmgAsei_|IQDI_SntxyR%nSd^i8e)qYkqYb&s;G5Vb5=jXCigR}GS5fgLjEX%|? zBNdKWwLfp{B%_mA-cfRm?`syBPdC$vbXuJ|l@#h9%x-7a#MlKT%X&O@?z%dgB}+vF z?IXRS$?WnZc35iOJDj(c6CVRXQbIR#jM#MH`Y>!vZCYn zy$qPmyK+#F)@f+gtg|gs%OhVN>pZ{Z^*Cr#^OpY3otmxIQ$W+@dalr{{H*h)ijJLK znOA3|Lh)qH>U5yC2Xcx@ly^qQykF#v$u`Z3nEkA?t;2KN=2_*9sS4oD^YuEjg;)Do zodUc+x#QaiF0xNFQ_S?apXKfy`y9s$&3d~!B=a-U?3&`qnuRi2c%N(Z-=IsB_i9$8 zeI87tU4|@E%Ojli+t0M9UgSGoBjG9(X-Dj->F&lIYjLhnl3g?G^u1Gq&IwbQmL$lfgd5R}%R`=X1yIG&nzePHQ9NC- zeAA_}E<3#>%6q-6diD5zo?4roZJAmg!ON0O_wmx8J?^EP=4I>kG5kyBctE+lM02NR znO&H@{yKl^?aI75BNd7#YZl6t>QrXa<#-b1-I|58uR|4SXIqCSQ8A|=?u}CRY1}Sy ze`kK`x_q(XC6TN|#hl*GmR_e#vKVv#UcfKQr{YqIj}i*~!-SKK_K|8olyO zX#Ac#vlD6e4rFS1gjMOCkEI7X6#@S2c77MH)+{G>M3(O(CT4B6bgkLE`hI@OL*FSX zJ~K;aStiyQk!sf*vuc0dS^=fiS$Ewlm5X#yt&>jC)aMmY)N$w})cw9x>qa^}$p@z@ zVzK5P2><1i?%;`}&Sh(U)@6Cp3You>;J;f@ba=Mgaoo$&~9-;mTKkI$ybA4t7IZd- zu1|TqU71&Bq(bpz&FU<#wlcdMPgDr4+#6rose zTc(yrzWh4saf(+pV-#n`Q_L7PU=5CXzQDm{v>F&@M_KKW>!tJF3*!_ z?$a!FWyDKqkHh`Oc?PwXbV%lBDiqJvESX^TKb2YvI!C|GW}>{;&yJ2VIihm5WomhZ zDlhGv-6_t9s`M?|lWqoJGb<}u$WX+s~xEcbI) zw|P)(_QmrYUEyc31mDX4u1Ch4g3gw%Y3|dk>c#z;p)~94>X6LO49%`6o~GHEvTC3z zr+L2CEUnCYHLJUpe>{}(`kslj%S~l!d4#G_;y zr=mjrpq)0w(pi>?bw(;2vuc0dR0H*@+e#NG|Ao**I<3yViV8?`J8ss5yn{&Z%R#Mo zv*?vmJ+JE7x;qq0)#dxD#jket`;=oxuj)Ev6yCN>Ess#AyS^Jh{Ukot?|1K1tXNiVW_`V_{)x&lf5$|Mb#+;p zR%c`=c17`I#VY?)saf=SzAF?WmD{t|*?a*;)r& z-+w7l-mTg7>43Mb!;`xKJm=SYMOA!{D#y?Bx_0euc6;vI4(X6i-_*j-?#ezv+Q+<4(&yaedFCbPFG9Rmi;G>B zCz0IcW1&d2#6IVBwP1%sSMb-7ti8@ih2qJ2)n2xySC^|zly~}A;um~c`f?hiooyYS zR2lPD`P|Z=%}Ee%o~vq{-?*!NtZFH0G+mx2(cGz7qNUYd*4fn|nV+dpJXy1F&x>=Rx-xl9_!rezc10;saYaps)=8JT_oK| z=G7UgP&`?)P_D*OE}BV{e}|W)&u}8`Z0qo(${0_u)~t5CK1(%Qcy(k<#bPyPa=VN~ zbEjsZvhuUet`5ok%+TzL;>nt=cWm?DW=NEGYL@e3GEly6fmY{T87OKZmDluscAUeX zcrvT+Ls$K*%k(6g`!vffLGltgVsdt6{dGph$*k&T{K|W}W@|U2xluFwko8&KUd^&H z>bAlo>14XqPJ0YxkwP*g5>-?-L#8d%Q$w2vk-xZpLik~@1db>I# z^E2|ZYl>%TR+JSRS9U=31fAc8yNb;{%Y!8}7(`&d|FV}+&5^CXr#<6_Rx{(8J`^E^FIdHk1LIvn#e6^bV-Ry8w~ zlUd(QAW`0{SY-;RsYs-E<)7GVK|AH2@UrZISfBk_&}`w=nib8jCCxfNmuT+OEOjr; zuKRU)SvQjP*BOy!*A!3IEcvI}m!UbcoZrVQ}h?Deq;`EH%w& z)>k6Wb9A+4sg0@SpSblqTiT`h`F$SpJ>(@^_CYM2WgV9J8L4*7F{}3Ht+(8@pH;0} z<(n>42h~ZZ)%o*V?&OTw1?7_-Z&{|6NB;Qb34A5aV6FU<_r>%4+@V?a;qPN(A0zyJ zKg;fh{F7T_QLMKs)9Q>=C}zd}xbdF5JQp=Ryn7YOF2|E7?~RQ`+Sf0Lw6m?llX{AG zUY31qx(k1wVs)Fc_H{Jkmf6y^mrZML$H(feb9-rVbar((=4YOY%@j{otafLWoQ3cI zeT8DF?BTSOck=Z;6KNMSXKHzbT8ej(G3y8ah10yOzRgozf1PSRr}?RBp{2RYe%4u* ziFHP#+BL_l+WRBpLAsK+@Ly<1q|@sBd1TCfo3qedQ|>M6@YGjDR_8o_KlZVw^^=kJ z(wSYQYk@y$`IO}6iltvM)f8^Ws@3xe zi6UO3(nNW$Ue)!3n;@?iNUzSeOf8Slmx8w{?V8y~aGQtq<2=nOV_d0z@^yNN=1$F$ zYp34Mlk|3FUY(Jl*%if;HCsOy;7xs<=R|q0X6a%~PRQ+8(X6+v%QK(4>b?x8O+@Mb z{hH_K+Ke%~a87wDE3mK4|D5LMo>n(6=-oEY)U%$#Th?KjpQ&)nsy$&ZTR-LTUDFcj zv^sb8vc$%mg}U5?RO|GdspS!Uxhw5u*)1|gj_OQ5%lr5~|4(0+SIvA%vZGjLo=#P- zzb=k$B-84QNU>{*S+RHTWyg9`qwM0DM0u~D#ZLB^&eMyuv#rCE-W043zVF1CFI7|c zJ@5Q3Uh8LB*EqAQWD?nv&z4?u&cpmc#rOXaNoQAwWPYYX@np@4a;0k!w;$@1_iC0Z zx77_iZ(F98N5+2ES2u|^UN-A`o};TZO9#H%H}L*`tbntn*J_qtBd@ug*w? z;>nuT-RMd+g`elE{H%JZId3Y`?j7jx)J`?kKaIWstRScDX7$xd@+$8lW7Z>g6DhGw zdz{ZBW1Y+TZ&Rwq+u7COn4cM5R$tTd6i-(y5mkkY$BhPdnZ_HLG0W`+W{HU8X0|+^JcSbWxE=I=ea~ z^D`BSXKI$YW9L)b|3KNrrHS(I(5$bH6=`Q%rj|#t7N4Y5!{cJOd-OV!e1HELk}k`W zNbb|?s8@8qE{bj>v+9ggD4woYPM0fjvGZ_=@@~Cys^Y)rCDP8e4$m*YJgmRL{$#EG zo+m068!Iebjwi9)saV}xbTPR&I=ea?^D`BSCo7h03K3F;vWsLA<-Lmi=db-w>OYRp zaJFS?d4z9i{rQNAse^TjRP78Ex{B`H-?`JzR_jms`k1pl@!Y3c?PYx?6V-aVGO^A` zh2qJo)ww_=n(}vP66L+Br86~qN0((1X*bg2sk)6-H3j)6_PeYWvqE)JGXKeS`6tE3 z`p(k({6E@ozV36HpJ$EvUJJPb7Xyo>v#i51KQnyoiepyo&s*=gi}d$j-u8X18>C&H zCy`F8bEg7okapS>X=hocwjS|ne3Irak3T87Q?YQQa`AoCY@r|m*q*6cWYMBl*>i$P1 z14YDDr@ULSoW1xSPa^GX>+t;Yc$bNnR{1CDBgs*5X7M^B^PgP1mmS??DklJbub$T5 zeO^|XJO5=MNP4?EB=a-l2HuL|xtbMa=IOncM{-3{vaG|Cy{vBN`s!2h{_CM?{J#G?vl{NuZLI>83a;7G>vW5c zO>-yRI?FmV^D`BWXY01wp#pV$l7&hURY$ivF-^P7WLc(`M|7s-^HXDurh+KFce4_% z)@(fkMP2-C=~}ai=C}zd}xH)S~CZg_VU6v>L*}btb-J)0L zdA>hxhbNwv>df_ymdH5gmS-(ot6F7OYBzf5n?GB6m1?#6rZo}OI=eb7^E1QGt|*?X zT2bbIS9Y{6({q(-MZm>Pim04znOYvm{Z;y8i z&3awmso82DD74}7J&EQ%&64pXW^%tS&AO2e$^1-(;>nuTy{*dmtpCzRqP$nL#CyrF ziL_g{GqpUzmjlqFKXn+i@dhcwe4l2qs(L@`kB_oYJ2lHbC!h9syE3oNNQL6LnjMsD ze)f|L)LzZ%w!8Oh(yX(s!;_PU_pvdRjptQWh$gx3_d6Z(Y(z|S+zfJKk*Ui+Mbp#PQA`_^0jGo?qrU~w*y=qgGf8eGLbwY zj{XEztQq5Z|99s3xpqIx4nf@@E1Gqh`IKZwv7Gg=x0vTiD~32ayE3iLNQGin?2j8W z$IRWh?OwSZz#XdBc}|q`%G^^d@hZI|UM&!5XIqCSu`zx&-4Q?)e8&@eSnXczng8TE z&5EYFdR6?auN+A<)9U-VW}%h8ghvltH>Vwv`I+HmR}@dyth&ln_OoB@+L$Qs)vR>n z<2l{}Z(F98M|fw_+3Q%J$9F5-+jXa6RSQ*P=`uZu6}MCRypHJwJ~*Eb(Z@SJHF-X zbg7ls+125gpBai>Q9M_%0zgP zfoFMH)yHr`^?onQ$=N-cCHtT2DZE{oS7)R`@np@)%hqBkm*Kfav&tF!j$>M#ooyYS zV=wFXRD(9RXVaTEE8*I`>?bvCK4+U~?)0Z(F98N9f*`D~T0V@qHWq3%=%Jw(x4r>ZHALd)DXI63u;@)!ho;pMcfZ z+m(5BMk*A~)hty5)sq3An@^PYYL?X(jkwIPNV{``4o|5ud0BnElJlLkW@RY0+uB?|XZuW0kVY~DPdN15NnYa?TBHdU(@{V8{%xlgm4 z$FU+hULxr-V;yDYXDSp=)~qs6wP?y^c@pKln$>r6sQs7~@!ZY&uOVh?d1PH5smPd{ zVrShAP!v+nCUO_jT_AeW;NwLnZOsg|8yzGkNxr!Zi#+8a0dX&~F?^P_{ zZD;rBb~+;MZ0qpE3#{@_L?zU(6B+wl$vj8bd0Fh?{0T2xS$}=acG7I7`FRBtU%JKC zVSW1X=m>+1ovmDy!^66L%y zcNF{gFTa+%exbA3zbR(!@YG(*)kzG}>~mAS#cadXK2~3@tdVqCooo$&~9vK}{Q}#)5vAzi6 zBe;2vuGXxwPc_ZDEYI)PtadnL@8)@W<|O=gm@==h!(RPsYcj ziSk~}YIXLt#L}#bmpeSiDUZ(vi#ES_TK);|rGB^7xY*@+63u;n_S>%=1)ZalW}RIf zlKGhm#d9^wtrSjXD>aME_Uk++%6m0CZc4ehNt$)GWomhZZ`Y)#cd%9m{L^-_qh`Ev zGr(6-CzksZtKQ$fvn(9FU71#Aq(bpz#VW^G$vmN&yA-Rg#{SN(NITm)JfFQ5SFtf` z9DdgKoSA3o+SpjCtyNRdwQRO@z0=vLTGm9mxxfCpSUS5pEb}u`?V94rs#X4}a?XQy zd7bC9Ht+Vc5b#~7MB3SwspXL`4?nB7%I$InZS917mDD^(S8G-`pexyl?>5(yXztXk zPSIRkB$6(c%Dg%w6^bWoR#}Uhr*(OrM0vMn(UHFeEz-`m4o@ne*c(Gs&b-bS&vSIOpQQ%s-yf?^g{I5(B%1sDtiExS@ALS31DRK6WN3Cp z@np@4a?Q`WcqUQa?PsZ9AR?U=@jM~$-^uInWJjyta(W!Jsh&BjZc%yTdJU?t7fCdC zY8EPa_4RgjNaklM6i?SIxzhJ5v(FnO%DXkoJ4qds*Q~cKQ_CaxS$@mcB#tUoRb=@* z)okIlewHuXa0*b#PWVpXiRM1d(hri%gxkvyF?qW(ug*w?;<=g~lq<2Z--9H|do`;{ zZm&#{b{@FHbL?k*ereEFZR2VCS@lP)uD~wWlW6YKta{#2Z#=JU&xnaH4Zen`Ru?m9oKntN^> zaZ8{QH96HJnmaYiuEOtHwfZ`{GOx}^h2oi-eNwLFpnUC0qP$zP#H(~kofR>!&bx9@ z+86r0tnT1Z6Ps?<&eq+bSN7r+z21|5(rqc<%U*hQc6C&lpLyyvQ#@I(%7NDQvQ916 z=v95vsA8BEG3(XYmZ{|tYKi(uzmaoPvxQe{7Mf&N-fPzX`x4EaK98p?I=pMY*z<_4hCm<-MAvW|5q+k5^fp zcjce-g#y1z9jwVsomI6c#VTW5iHzwMSyyak`T0FOb(F~`cHXkAzs^X7W7h1?TW`9H zw5p&gISX#D)=8(expQw;XD=xygl3&(9iF3ZG5r>?F(<+KENGsgt7BuG&DL1DJWpDI z6U&ZfbM=_~th1{_GCw2Dt|?~C{q(^3>fBQ;(eY|W>n!W?d{vEKGdO8kGXx zt`5iij1n%G zcQ?3Gv(RL(_%3e@O_%FQG}G$)xn`-#$(e~{SLW3jsZcywv-(2m`?DTq)8%;*<-MAv zGA8RN+1BC7@A$R;Nt)G}-<;K{yzBfY*Y0JhxM%f!Up0>9ZjX^j?$j$g3g4YgE3dPw zLoq*7p?JDp`8QNnWtZbgly~bD0={Zeq@8V}4BNd7#YgT6i@9T`2O_$?Ily_>D%1YRvl-Y}odWvLQhbJ{U zJeSUtM#X~cIZ?Ch)G8~m%kq3q^V7(fPCV3v`f56@zs|A_%lwQ~%m2LjD_7N4M8?D=C!WlbE3SQq6m7Un zPg;Rfy!5%BWu3#%y6l5UI=eEj&WJR-rg*YutF@_6cJrJl@71g_KIwjRvaQ2Y{TAOv z$K*+Jo@!p%uJ*J#wX0+lS*d4Buky5`+pYU`sn(5jSmtM>+BL<~Rf`@gp7y>R)Tk=Y zF_p6|Q_CZKCE?xKEd51^*8T2lR>D1+eP0>FI_Ku{^ELQWUrRob)7kWmv}9Q())|p% z*BrBI@6SQ8UnF-?$u{~gt0&Sart0LNsA!|2!g+hG&%1I^_*(UX^4-S8o9wc7*)C$g zQ@5&Ut7H^?&B&)TKUb}?wf=+{mfo(8HuEzTidnVyXQH57tDNB+VSXRi5!KEJne~~N z)n_S0+S!(=fbar)=nV+dpJX5oxtctfv_LvCub)K)$tojZ6jHgID+cLF00#DY5)rk*1v-vOh z_<5eA>-Mxyn*0kYE3i{dqPfq{@?Aq#7q`ZWq_ZpY>WoOUYlFvtAIwR8Tn&P>d9h5641Z0Bd_wmXclul{W zJ!wcg+d4c|4V4x7uW^;HbDU@CYSq?HX}xZKziPiel*yXtA|t8R>AAx)KU1N2vT8-S zvZM9iq)U|dM#ps5WFM3~t+y>x%OhVN@r3%^J5MCqe2JV)_G!^EIqzx~iagr9x~$jW zeV!IlYm&~c%&Rj}p?I=pMY&R`>Z_5i(kyIJk4-%7t}N8}ihz&O25n`<{H}La!qt9O zXLq&e*kyYX&E1+^#Z1nwjxzHz6^iF-mUGDJnV#6atxPSCP>@MD)5BRUFU!z&|Fil_U zL9_d^Q0(;9nx&^45uUHSxKp#_wJTq;{1!6fiRL~(%c{rhI&X?*ee9Cg*v^Pn-ZjOO zH9PLByw|Mn$CN1V^|LxP_20i0>0MbU@>$uVGh3|BWT|}ge5YdRV!%35Vd*kGiRDhk zs_UZL$%vz~tE0>O%rjQX6i-&H&SxuiQ0(C5_i>%G*sIu41MGAu($2O_Esu=dtY7V) z>oXZB--BkJqic7wqk6oiS(oX#LbG^T|0Q>kbarK4oskN~lQmoYUNkX_TN@MQy_!Wq zXvFapX=hu9Cui021UYLwDrip28cVaa-7F_A^Xk%Ffj_S}R<^*$C}Qa>>#)qvNVRK@ zS+zfJ?Jq;Fg`Hx359BfjNw+DY>fG%SY2U9^q@87%S{}g|bmwBp{xU;hVaXFqud9RmMPH5$2ooyYS zd|``v*yIJ+&Ej42KIlHpVsrHbz~632G}GGqxn}hZ7ys+5ynduZGCwmkyP|leW?ApZ zFIM}@_><8@d9P+wSMG13h_u`1W@>pv-h8!}<@+PV&L_piGs{XBO@HS+vD~NFKY!)g zeN--vSLL796i-&Hy316$&NJJy2kGv9I#IEDNBA$_iL|pV>oSk%hMiaASe@Aer5gnE z3|$u&OR?O~qLT7`#Pp}l3jBV>Qn9{@i@jZ$R%fI_@nps77G5P|>~CQt%6ok*yGBl4 zoGzu$d!FCNE4{2pui`0ZTc(yr-shfl8{X%q=J~nS$5I=HkFBk~cjcZ~>A2-M&y(IG zt-Q{z%&Ido^tz&Wu3kmC)+g2X?@z1pULVW8YfXAr?g>Ah-viO+?iQZnJk8d-Q}|r> z=QKOnCuNKsF;wd<%S<{W6^>c8KW{zZVfJ(juU6%TuX|k|6X_I9b@sAfA8RwGDlRu6 z($2CD&#%AMht*#8@5kSeH7=r>=jUoaOD3^O(#_b7!=XrYiSx>mbF+U^4 zt|?~4{Ypax*AZ5RbTuuSKUF z?`-4Ms-+`&Edxbu%xvj;pOe<#j%r!&@_C)ND--LCR4AUT+Ij|xQ?okd-Ku4cVQqZ1 zK&o}Nb$Fs$<-2^{zj&)#M^g4|Db+gLGPOLSTL^w%HCS^Van=ny#Z9U}t$bmNyZUvO zI~7ZW;&)l%=+yVdmuH+4pS7DM z^Iz>y?S0%89+uplzpsm4yy5+E?bd#bw-9}R}@dytg=s)y{zvGktpxgtnSR_+jri! z9?#K>)kkl-&BHmxS?4^`too2w?q+@eDF2jcety!UKJS0q%!pKbRR-$&!-mW;tM=!u z6%`__Ok+*AF3*#6nqyNdOFPT=V6>Tt}@$j`1RX2t%vv7$nhb;rGuweUUD66L%y_Z90qXN&Z{9Mtr7N{LS<9tb+1(W&L$Vq}esab2U3CS8iJV zW%nS7@?OodyG$C9X5Id%!}H6-dy?7o>;0gu`n!|z#;m~VLSE}z;48`!&3&4sT4j}) z@OE`b=4UDtPu47cwwATvJFBm2W1_rQv&uH+J|y0@Of8R$TX^1w4%+e-K2J5z(Y3KL z_SF5X%k?ChJ2gvHsK0Bc)z{gTd38oA6wlSHDD!W4Ur*r`lPK@jEV+VJY`m)iO5f;7 zd(}akTNTL{->F%BSF5(uanWg_xm&Y*QDvT|IW~57b(EQ(sZcywv!eWGNwY4?lPK@j ztZMe1r`PK2Y|GU02xHLJ7sN==);2bXB>)GU71dsAuFskuWkKQmU|6~&V^t26i-Wfzww z%DXiSX{w@UMa-IYwqwxQmnHp)9Q>=D4wWT`pKXH^&$CM*vtNH^^z#>RV?59A`;Dtbt4^~D3<5^PF1w2 zdDfoH)k)1txJt8wrYd7<>#xi6B$~T4iz=z)=Knj-)4cXNyE-KEGZl&_YgUwNnssYq zqP$bHtj$EL+*V1Xoo$&~9^nhojQVp|(dKplnms2nmS*dHy}140)|*6gr)IV9a8VJF zs<$ii>Wow!G?{VXTg z#K!MeU}nr^dJ@fjnpGt?wUzTc4L_Ug>X6LOR4AUT+3MX{X4BOfCCYm>`{yse=HD}| z&d#<>EsvmC&Ru;*c+jQ-CEbai-^HsnOVosND=Vns-%}gaS_B+XIG)t$kTmi)!=-z=2&(*2xSf6#9 z$JaI9so3htEc503Tw=L9GETQtL@#@@C} zEss#M$m-zrIM!#XblH=+=<;sOR;tFCF_-5_GHJoF$ZdiH;3o};TH<7%%FwBa&6iRMnt zYPEB`MAF&SA(@{Unq5&mSF?0asrA8yvdi)$%6m0SogkWZzCom&ZJAmg;a%pJoCh7O z`5r~`#P=w6WMb)1{r@(cIFR|RISlw@Q5gQ!6U71#Aq(bpb#fmZ&GnFp5%%;on zB+5G#%b5$F&wB=ucDD6+(rY!Hx{5YEPnbRO=(9oqa`X@ZqTD5rn zyyu;@aJ6bx&sOuacjTbP`s*_RT7R8gnOJ8;s$Ek&S+!8Ed?%VU&_y)YsFvGAoDVpj zBJFJJ@T5BhzvWMHM4Q+c&+ogt-L2VLcEaDONi=tPS~RQG&hZjSxBuyo%+FLPo~&8j zo2{JmFr)MPxQ?fGM#uCJhP2m+NITmywLHR&9`;;5za-l99XsttkD_DMpjN7&h+gV6 zcWM?(*^GOx}^h2qJY73KF`pzyOU&y!Z>otmX%1f*9xT4!62r+m8Kt%^3? zNYJ&9@aA{%>eyH`D>ZGtGV^nqoxa9!@!gA2t+%YhGCxz{m{t4p#;*tH?h5<2T3-X^ z)2)w*bXuK1??ujf!7h_q0<$LM>qXjGmZ{|tvTZt#a5*OS&iZ~Jp7u1=vde*GB}3tR zSANR!Q_V7etiL`7A(D=9=G7UgP|TYBaohI;q}V~Zwl?3FhtfAT($|GqO`L5Vp5&qM zqW;`r(AGTyAFa=;%C(-BGxX}&9k+jHOV@jywElK93l)FbFU>l;IwbQm6^bWoR+Uh- zmDyzu(#pIuIwqDOGvsgYinOyWQ_CY%LTS&n^0P#6=bh0KBh+Iim+eV3_i0uuqOU3z zNoQB))fpL@T~Rz&vx@9%XSBXYX`;MWv*XK$Zr>`>`?64Y*nHZf*qAdRyoJ;C?7gn_ zv!Yo$qxJQJiRMnt>V{S(c|{iLJ;l>CTRR{4vBx_6+n2J4r6)H~K^ zelb-`-Kki8S*y~!z}GeWZpD&CBrm~@nt7g{c?oYZ1H&V$O2kq^sRs`*{K+RLh|OpT_?^dy?Qye##vI<<4Z&Pw?8 zF+R_r)SP*BMk*9f)-04+cPg57S)N3Bw`R%G`uk%d?QHAttb7fRUK!}xXQ}2l?rP0) z0zfa33Qd>kNi=tAmdbHDR?hP@`&nmKhh%hp%cE*8vB1=qPbhM{wu+d^mb)losps06~&V^ ztGb!@Up-_tU8PZ?yjQbY5&6R5tcd3>$lKQ8`PVPSt|MdJia(P$*{lQ&C((C zbtV(beTx15AV@smq9Q5Q+125gpBa(yisH$Nt@ncByBl@NyA?~c>TB&p+S!(=<&p7i zcfZ;X+Nuihe`lVftG#T!2GvI_S7??sCiffhc4c0jkqX6gHB0qkHET>9F~5)NoW)+v z%J=0nJ#SlwCvhd~gV*EpT#r1;X?~W$WW}mxrc&qTZ_^~odljpDalS_eKGxgT;mM88 ze8$7-j4i0zzg_c+a_vr*Q%|De$~_N%n=!H6r&v0;5-T}RDvnoVpWahES+Vts8O~Ye z_wl-&EIt;}KK~`s&bE$X=})mb<55JV?~{91%b~-@Z0S{+m7h(sOT6Ul%Dg%wBV+va*IVT&o~&6Y^KW>6mPb#sI^~_3Wld4M znj0TK41UN{3lmyR@H2kY6|aN z63u(6OXV+l zp_OKxZJAmg;j6RM*{9zkHm359zjIn_OfMYr#x4uF%}iwnL~iCD&9bJj3-THfX=hu9Cy_CF^fB6qs#F!=dv) z$HxEuYxT`li{7pd$^1-(;>nuT*+u0(kMHM_DDU*M#u9=b#`T1oskN~lNGCunl&%$vOL!) z76nmrlu0|=Iy~{Qssr@9S*>vNB2Qj_eiyIyvh~iHKJrgA_i0vr1X2vcO5*0dLoz=z zPG?sXPu8qzpekA8zaDS%{64N%=Dl84Jxlq{#;XOa&fd06Ess#O$f%Ec2W=|r&&oh4 zGOky&`R@H!XqK7dv^|k@>vHDR8L3b_SF_adkh7?q4g7Um28ub>&8ns-Jw>J0BE8eoUB>hwXEF2 zqlVyho)hK0n$>QWPEfBFh_tgUQ_CZq4W=%NV|~^Qqmyp*;PuINS352G{Ci@#PqDgj zO!uY4@w)ueisHG7B{NFSqH_N3Prwu9-HPR8*5CG!V%@5pb(u%#LQbyB?^MV7{NJg2 zn_bCvVrzR{3;mLSUB3-zRD&C+E1-b@32`LEX`H+N@>v5bz26+e8EIUe{>g;fS#P>HTMX{kH!W_j*|>pVba1PW$LB-4_|N#u<58XIJJmGg6^=vSvlOrdgNe z*`-<4OWm4Pnsv6#@MJa1bABg#qsF?2d6O=~mT0cltiL&i+JLufMw$7Urr8n2lQpY8yysbC-log)B+9EbOC~o( zRLQnXEss#0eYTz@d#&}g`|hvQEHwEdE1Gq=o8<_qo7*h==i8t5 z_qV^^-sKJAXREeap@p=Y9~0@7sugM9)h^P`vKgM7-DDNT@@mbhYv0YmXx7^{!;_whoL>@c_DZn6_BqZg zHLH6KD>E=_%idD0PZG^_nr-*_y7*Tlon12|^D`BSCu>%eD|utzyOJoc)vWr;{q8Z5 zcB`XIEst&%=|(cInUSX1 z5yf*gON>&Frd*yUQC_QAk@nq_BJFIO;YohPcd0khnm>Gh$CY|j{;5*u@f{6`x}!P>;7BZ?PJL#QYm>}o8<({-qLYgoN2zkn$=0~{_ae%be3geGb0s_S+zed zt@N;-)lLxfP$BK+$E4ddJI`dGs7Ij^Hw%ljvuuW^>O6j(+F0xME$@qaC0wD|O5Y;( zUz2}o9iJ}xg`>A?hGTxFLNP1$`-M4U^xAfTRP@Tv_TS^|%siu5vc*&f+zc$z&bCY~ zk8s;`?%dEymb={2-uwOy?Nw}JS&5AKYI{q^EYsZkx{uYGBHfUNVx3)?*35_$%Lz%D z;^~U5^-|D*Tc@03sTswhO1c*F-0W!mZ{|tRtRX; zS1v^xJ=1aFdjk4zakrlp&F3crJs#iqG@2^{z$U+M{X`&6S#Ew&O&B$KNiJ z&aN4f`59?;Oz~vRs$=o_sm9FAE}lu0*J@VX3%u(@+S!(=444S>tc-daZOVlJV=m$8n}{wV#CmOdl-}X=huemPguMcz(8Tw6zn&S8#g^ z_xV}vl2NB|ZT5BRjGwProwMb8CPmWOm3hsKR4AUQSy9&h=t`fP&l@DlYc;DJ6!T)Q zh6V26{MK%3}Y=gyA-J4 zo|ZKx7mH?Vv9ZhayiW7=6)pF+uzXZ7~#-HX0^C6P|E z^GtP?o)w~Fr%lCFt8!4}jdeq%?@SbL>cPb8r{$rr9o<&W;-ic3aSlv0^DO+jZaLwD z?(t01S(Y_8Gg9Grwr=Zt-ap#hZ6du^w_3INl_oRvs!Wu+D#n`Sx1H!~MY6Jg*8lxp zB{`#5BAKjMZ`X`2^D|AcBZ^tE-!JT{ke^k*Tctw#={AF}n3?B1t@gY-UE*oIZJAmg zVJ}4LC2p+0y#I{vmFnNn?iFplqm5jAZ>iRlKVPxjs)%CUZx=^5l4;G1R4AUTSW&L5 zf&8AwL^;P&bBZMr^(#n`UYCVZFR|C7Xmc(KvASRN_Da~TS#`BlGRK@c+grL%v#9LL z?VrcrE|Si!8D-{YDilxFER<{K8u-=ZF3r-D@2htr?bb$_S{|X=!~EbYIgR$0BUiK9 z^Nx+ryDI$2E{SGZ?|2a{tRCe>OII_Ps_P2R03*olgsoZp6gWm`8^Zh^TT54?8?Mu zMl|=1DW0raRpM(|3%8m~l-H_O=c@S|zC_yDHp7!0w5;^g3?a>Gm#z2wS87%}dn(xp zf0lZpxl*%QSGaX6B)wfTB=a*(vm=UUYF3>Js>D~S1D`Lx zy^mJ3d{_Jl{%5YytZ1UyT9=H^1O0r>wi(fRQ;~FP&b($unr257Pu8p`*EH)gJ&E#K zKT9Q)dT1u?Y@6Xp&oQyF&oGHLYkOAMr)gHbP}ul>$?5-@- znBuvbr54EwsB*rsuc;-lE9(teat_SZCJ^$NWr%;>n6tt*5sBae1CZd97lpzM_##+S!(=-S z@~CLjtIEJMarRm@b=tczG)r}=v3Sogj9yA`EcXIW-4Gg9H0Rr}-8?nTYcB3|*>!$a zYYMz=|DNvglDBJyV}7PWF)Q}_gwwl{_OowvX>QQC_WCx{dRVc;2>5Est=*{kWfk4oVbzTFzMgF;uWC zigjy@#B!ZtsV|X9bYGI@UT0UPH8aw@?1E-1RH>of2=)oR!KC^mL>&1f?}Q=xdWYE|i}WE%aAp}SP8 zRgjCDq*@niWoqLQ??Hb}+H1O3!S1+N=LA*y+5BFML~^BGscAFc_3!B(7kj(Lto#}# zKU1N2u3qU8)A%9yYf#u4Jz*s@OEWhGb0s>XKGgGr_|36;#`J0<<*+S+Hdwd!^e8t z=6Di=j}@z|@=51Yh^0;ms;qK29iYx~otIVKE}v2D?V913pJ|F6Q9N0(Iz6b8ePV}H zo$_kMYQL15Go)B&Tc(yr$Qbkek0WEedOFXje@FYgtTan5ktpGL{>gU@rkH7+X0`K; zy&nC0>LX(}l6lRHw8(fw@np?v{ZosKU5+PFUaMLBD4m2Znv-UoZ8JQ7_aDvrP6^S* z+q1GhX*Da&YIjy`26kDV*J-|9o8|5C?%eMeOE)sZGCxz{m{t4Z(hjJebfr4`)mGFJ z=`=gfbU^7e5)_r@=T-S9odcEj4iT4pyIG+VdCpnQ_9QE@vETFiD#;ne5~29tj$-{t zR^QA>Q|yRhR_yl+JD@~aoyL`%1*&<}OQO8i&q}emXVKd>!;?DCxH5}k=(kLt8?V8bLe&()N zYIUCC$%@qtYLzS_Ck)mpul2I(bn`1|Dc0GRspXOTN#wqYBi?jK=J>gPOMA1%?d-PN zI>*g_KVP-FcQ(CU7(2T%v6+zy#dB3F>ua}u_l4AXOTBMzAGdzinN0kWt7(D^x8+j+aPgPey|8I6j z#?tKb6TPt9sb-&MUG_mFon12|^D|AeBZ?<$R{a#u>#|UG?>SLk?Pc+6{yP(CXIrM0 zN9ejvYHX~vmOanQs+;0@ZwxG5WSUs6^s>Bp@`?S-);ge)U76O*NQL6bid8l5d7X#1 z>E3gqyjHQg|Hwz?QmnIWh9_Q@yykc<`^)=U*4KjiZ*jMm)p;_{cVJ+pG5o1&&!m*@HUnx!f?TH*Np?=vLxGZl(wYPP3biH!LcdLJ_0XSvqP zYDPqzj}}O?&bCY~kF->TUu<5_Yy_!|$jMIonJKJV>et2KY`l$ELnm^h1&h&3+uVV2~bU@X- z>^1o(W(p!>w~`h|XV(nJ{7i-7xr)Ve5=&KTd7RGOe~&vA+p48`Zg#e1YI#Jp{;`i$ zm+?v2Cwy#USyQaj%nlz*1ub>5;rpFknbyomQ|yT1$%@sPZO`|A@HSmknkcW0i&c5~ z#m*U;o1JYlJh@Mc&L*$NMw|PUQ@=$&tL^r((8R{)Rd)aPOElNzpZLAJT{pu*(%Usd zGCxzHc(P`z-Q>K@>+(;WZA2vMED&iolBwkpGFj+xv}cz7cCsk`XRg$&Xx23QO8zO& zz_0JYQwGYP8zYv^vP^7dM5-Ng%&Pry={|QwRMis=(5;J2U!9$2_PI;7zBg8+onre`MI zI?FP%nUNMFk2s#MTe3`*wUAqlB+@H&t26z%m8sW+JcLL)%jS5JrS^H@##((@^qD+b z)Bl?*G|P8bA?e=at0Z6dv>)FinbG{~?3&@2pQ%vHiv51!sWL>ztoy6EW0cWvO}AI&pmZ0LzoS~Don7;&uJf~>Z?grnottCDaaZ<DCBYu~)8T)u~;*)rFbaWq19>l8~? zZ?tpP+cm>6KU1N2vSOi3A3-HDc5&%W#j>J({LVBtJKHj~JVN$~Oqb7tG}^2Z(q6sZ z!rhwH`9Kw#K6jRAuG1`W5^pYfS#MY7H8WD7c(P{e-NxkS`|oi)Gq3itWcU0IZ8Ym` zo8gIO@mZtDnC}ih>%Xu59bKW>T9t?RzqfQubERg9M)L_3-mV#v`59?;Oz~vR>g?)D zp7Eod8`I3ZTC*+od;HF%SvPNIYI)>&jfafqi9S{&EA@5GEPH&9iR4PX;$x|iJ^pr4 zbarJ{Gb4AsW{M~4RW+VkB<0qTiSk;#etNHi=Kj==c8xp3Q~ghP^wDaTTv)y-qW>Cq zds&?+Q#psv>n8DBsam-B`h!&K^gP2dKO@zSDW0raQLdc!#SZWOdmP77t5wVVoNiAe zGIq9QYI%ecD#md!Gf3-0d3+!JzqvxO%r(z56YMtZEgiF5tysEI9)G(O>+H(3W=5J~ zM-)$1tm*=_Xv*by(!9J@vGnQ_i@MdcNITo+c#gXj(QB^U_TS-dz1BO7{W?97T&Y)O zB-|<*ir%gniuswlUNgmW^-89=cB2b#)2SssN}s&$rSVlyKZj#;%oF5QDC(yHcF zIw^bwJn1&g&NFq{(JfXYy(;^}YW7);r}a-dUH4z&UO)TFi88)k_A1F4#VTLyVj^*L z5%Y{L^D}qF(!=KWT4u$5zi?N8^r|dlrN<55(tnS$GxMBc$>ZiT$h~cuS{|We5kKo= zv__k16MpS9&C;>RTYA2hCBCoIOtbInn$;A<= z&e7DIX35afv;X*=iL{HfW_W&m&jtHE?2R=s@p+N4tmCBiielZHOf1(amTUyM0yq1M zqqA#7TcyJ#j+UaeT=3fwwJq@8VnM$yj_{s%t(de z$(mJVwiZpfHAteoGBzeom1bQ=QJQtO&G6)`bu{a%IHLXaeLa@)jaOXz4~nRsIPW{U6X~=HdOZil4x3Rfm*{v^4vO8R zv@&r>xv~-A_wJkDaAUwvifF5q}VaVtk~}tR(eF4 z6%aSv5gWHvZSN@*0qbqLJWry$*3as6aDTFVwr!55P8msk#@hX)YLL%U^>1%qY<#C# z^Rqs#f1T#*s@41TF)%E>Wiu@EGs@O+el_#6=a^M{t)CTXog7rD(E78$6X}(HR(n}J zPmy+O-ApZy@TaBSb&WN(iqzeBrDp5vS#qYmrQ_^GA~~bjQ51t>on4vM%t(b|R_yhD zRyFvFpXHpZI_1@VmVOm~ue=oNY@6Z9Ipq0#r$$@%x_e*TzoXrL7Miu)0sfZeS7+ZD z%~ApID;be=Ig1&R`I!pElQmnS~V!6`GvYPe#uf@@=bF=zpMk*A~RcyOGt+E5p>m^ZMt5|4KF?Crc zk#-|9JgLqS_4>+wqy78$RgnLg>%45ESzF_{Oi!Y@QnQ-v+zcy{&aN4f`I!pElQpXh zRHf4M<))kddmOKSR%;g0pKt#>S|HNSwoEOLe7OBB^L`!CMjQMIer?@bxHmFpwyEY5 zeK*Js&GP2_YzIkiSLQV{QlWUVW}#fmGk(2!p#FQ@t6BC3_*p}woozEbxg&biaix>d z=+#MIUjL5vYL-}?Q}`7U5x%ZqXuT(7e8lYHamR=E> zGep|iHp7#Bv&6+-k1e87XQTJTy@k6pOJB716%!ZN=3f_?CYr0_V$SJDC;qNmk#u&= zkj&3iD4wXjcfbW=1L$Pu6UG{X@;N_aXZtV`gVG>v=Led)sDs;%D&$-iNjx zRnB%iX*Jt4tKOJO1>l>FS$1faH|KBk5J?wH&5+E`R4AUS*>>7j zbl!#MZOhd12pLy)^!V;m&CvV|T>*X$>F2e*v2mkWiH-d&bcyCVKg&B~Ms#Z#X?9lz zYE1Eb%~tLWpk~>Bk30P=ofPQE@f2xiTUKTsp=&PcS|H6j+h%yS`+3reOSM_L{!+c7w{W+g z70pWDqQ9g0=WCXjJk53@xi1GbqIj}q^$pfmKrYXdD6fr;MVfiBSHwMU%!>ALWKOf$ zgSOlS`56?`o7LOAE(67C z6|d%WnQhC|@(7VJUzP7jY_yf7I&U?r9@J;K3B56w>G|23)o)I@f^1jjH8WD7c(P`d zXM7e*>212WG*MpdW$}H!Vw!E6;mQ3x)FQkeYWYU3uFunKt)oJ3%tb7T<~l#CdmwyN zlJtsaSHxbfP}~ zcI@|dWm+>M6^iF7woz_pwrP(*dYji}pp>Qc_sWR0vu%dwhj)KY-0}Dp?yULlPK%2< zCkr22Q|uM_r`F5n@01ruXV(nJ{7i-7$%=(CIkfS99=*-$@=v;%fo$%hjFmn9W=1L$&(y3atN#A%+%~;U zr}mMk*9f)~qPke5`xViSlaAGCPmrVrSb7Px8e?AEO!%yS2%M`O}K} zZ*g~AT-(iqHvC#W(Ojun-ki_0XS-%d=4YhYF~yTLs}pda?f=l*bQzvRd9`NMW$Y}- zwqBvW$6WZ9Lcn1Mk*9fR&2dnhML;r+f0<#`dIZo`8$}TSZCV| z&kyfW@hD?V2NpRL|1%tzz3w9>-H(;HvBsIwS&5URK#Ux)oBCew}8?C{;DfTk9A8)@wTp+6($<;H^&NHs8X6di#Egh3iv-9gW&5{vPbs$Al-m*EKIqGe! zm7(&xefszFD#OU?LL&OMMks<7g?feBH~o^C{g*MqbugHbXK$Q{k93dqP|+(v`l{U+nCd zRGXryIn8n|Mc!rUEz8vM2y??&u{x#I_agK<*zIG*vCRQ8AQj6&~MXmMG_W`M=SttGsGvc60U&PwnCvEB5m(K0npR@;yH9 zF!q1H#4^piGm7QSvMV5;ciL#{)C%ttuFm%(Hp8=>J??v(8g1?rPFbq{9qrbvPHU^=|GDL_w{%Q%oo3r?=e()r5@**8 z$^1-(;>nuT{dcu!%4K=d%)Hjme!9&q)bm^fEYi-lOf8RS|H0VHYVRGt_wlRm|IKd2 z!t!@FEk4gc`5g_3{^>$@iGb2s0BZ?<0w%%jx`xp}C)rwV($N71b<87Pa zNd}7UC;#m<+T@Iv(iYe=y}^RwLHREHGEUfgErRODR!P>#j=)}@cUI0%XNzVeEWvT6u1?u z=3W;uXIe8O6^bV-mW;*k{!`~^YoNzjPH*$N{FAC^`Q-6WHw`^nJ;PIdoTIpyRW6>w z?;Pl@*c%sXhe~z!b(-0sSoLqG^^HG4bB1GnMv5I%JXx{oBd_eR^d2rzUhQM$)!YoM z*~CT6nOYv9$|FB8_Ogo8-OpUD+3H%>WqA_Km0lLjvWo2A(>?d^cSL7iGb48|n<<{G zS@pTs;$oNKNtD-Wc65`wH0x}e;i(9G+)F`JnPTVuOWf^c>-%MWAIR%0U+;iYc8{uE z|EBJm^_I<$%+EAGJK~r%`{UBRcjPR{wp6QmpKm_s@l7YvX>OjW^3Yw(?Cg|@X1!&Z zS|0gu)8pv8Hs&~@XWpIvzWO(Gg=&eApXZF(vD8~SuJYs=ct*9%c)l(tmd>(FY-XgX zcEs^))z)_gkUyxCUaMNIAl)iVq@86mJgLp1$kB?H^(^}V&s)*fcL(@WKGF=lR<*Fq zy)oXh8J78(79Wo|p08Tgah3VmMKy`^TGeXTY+4DCrFxuCGPOKHttb1@Mw|8hStrUU zZc?qMvN!9q&D|!JD^<&UI67(3Tb7Befy(u(vDoni*-D9Z}4h{eH>0GQDE8PoPz3M~dYx zx<@T1%6V>nJsSmSb(cE}(5$y@h9~PM6^bV-R+)>+`9Z$6mME`PtVsJ_ z87X#M9twXx_OUvd%FiFyDV8|BTD|-7QWk2ZVihfA#k%^yj4tytcf}H)c#7vLRy!_< zD=R+M<$3lfR%g2AJ@5Vmzf3KU5ErXoXA~F1`MkJTG;0|sPVw(&mvNPLrDpZ+-3+U_ z*V&bM&5Sh7jwqh4+1j1L)U)c8*LqoLHs34kZJXiQsy#lp)M#`5*(o*J`&yQKEH!{i zWbD`BX$D@c*?dlgw`+!Eex^e4WX-bvsjX%Gdrp+sYL+UGI=3EY4Q6L=Tc(yr@KXFP zA2Escx0@$c?aBG#-om}BS!OmgTZx*!-l+GM?((yo1IXJ=nM7|_<~1`?p?I=p)u~#k z3~-W9o$}AntY2eFv(B~|o*!-*WAr%kvs7pKv-$7GH`4!`-I}f6h38|IGy|{mv+6Ws zX6)b7y_V?hnjx8=X__5TJXf=_o_g8y^{hWvI8k1$Suz*Ieu=bOA7yHJgxV~lW6h3! zrnhjfW?L_9rR(_XML8(WK_B%Td%H5PnUSX15yg`=t2;j`S>vy_n5+LD$I;YU&3=53 zsB+fW+cv`!55RN2iqpE@w41>9T=ef~w`O&^Ol>{uay_rlz^_+l+3!sL&Q)|2Gdas< zSmtLc9J6YFT(rOEp1Jt_?H$tZR_TKB`)d;E6j9A|ROpNYe>$m1y9`;TmPa^~oUdxU zqSa1(Z_o9rt(-68XQjk4&%v*&R{2^g-2I!n$H(5XOl)SP`Pvc3^Hs~-^E^VPXYcV% zC(p2T<1HP$*|#z)Zo``PVj>pc~$%6m)4aZ@5Wt61`ekH4MS z*V{G2F+WqGm=*i|;?6~G)5gnI;wgXnd(vy3nP>d$$MRtdRTH2X@!&Q%B*HanqEf~Pu44xE4e4$rt@!!@@l=JBY%?{v7onY zh9}*|=+S2`8*TOSoYYYv%_{%&{EkE3*fsel^?dr=gGf5NW=Q5|DilxFta{y^=PRJ> zI#>2+R_8{f+j^31nOYuEM+JKXyduS$x|3Amyw#PFv2G@P-XX&~b9tV`bDgKvKF3s@ zO?G8sGb0s>C#zQ7ZZ*m-$CD_p^|aa}FjB3vZH6a%1nATu-tN_>N=T#4eIqHa+&{H1 z|HK@kJp%mqv&;nAaCx3YbDd_1>e7xVd0J=J49WaVh2puI73E6)3Cb?VlPIs%tU5#e zP5_a1wq6KXX@Xrg*YqtKG)D&FgYd(8TjO3q;zDWNLXtXWsfR zr$tn{SJTJNy$*IOR_8!fe5~JVk!Ig@KK7UY#KmqMBaY7dW?C~N6^bV-ww{6Vd#4iR zwLVro<=Mx2+va$VPT>=6I%lX?`1;~?nr&V0m9;GUxOz+Xd0E~Z=i@#8c4^kxHA6B# zQ=xdSW<{B=^m)d@-%7Vfv$_!$r6khs8_3l1$cNjzNSUQOYka=%YV7UX>t)3f8!If` z3L~*x>1BEIbTRbr>AsTXOMD#3v}Q&s6i-$xadGALL!x4r;YpO&dRf(Z{CSU>o1JYl zJgM`Lee&znMw=>e>bdB@xZRpn*LY2{ZuUzwS8A5^qdx~wB%NI|B=a*BiYIGUk@54r zJZRQscoOBcnq}R{TGmBPBJFI;)ba?~Ct|nJYL?73S(K9^W0XLT1Uo${n)P#1qPb49 zs@G-Bdb={OnUSX15ydk#d#B8MdLB*rx@e-jRJW{!e#Y;H?{%gHIf)>$^gGCw2LjyY!4{DGWQHeeS?WAvFH7br<*0fk?AC0(m(6#AB$_KVOXe=^ zq|~{2{TtL=GD9*y(=aS7?^E^gNqL)Y4nJ&(EUSTx0ikWnMEQ((IVx$(mKqVkKwHDz8p?wPqom z`)0gtGd$ThJKoE~-IY{tPs=~CwyDNU{?6?*|E~11#4!FmTg|=u@=qg*Co5KzwKuxy z_EDF5o7d%^@Ek;<&Vp>)tYV*gS@jv8R+%MR%xbn$ndL;SN6tTAv#Rp=j!BVpcFmB? z&onPPqIj-mMVU8PiKSeICsAJOWwpZOjK0V3Or)J{nOYvHtY*3SGp`V+=Zg5^ZcyxiIvr?xBYdRGj$%gP^0zVnYV0)Wqzi@F{}2+<#itQ zl-D9E?zwn;(}{GNooDJit=HHo3DtVbGPOK{YEwsIdsm#slDee&_p>(xCF`j7Jdc|E ziCV9coKY;fyWBJG?aH)fMk*AuV!vNp>7mwIJ-O|p^>T^wT0g6ktFxc=w$1QV20B$< zn<^Alopd$@b4cqnuK8K#=Mv2{`@XK(cJfDxm^f3jpY?uDrAM`r5ydk#E6P|;q)?fe z-D)yXUaQ%5gIXr-Y@5-nPPz5H5>hNV0RH6j6iWqwJscI5F4L1(u2XEgan`L_6)ict zW;o_&Dilvvtj;rdey=dGr_1sr%BvNt>WkB*NITmywLHSE*-@pZ&Cg_(eV{uggGbEt`9wxZSeX%6vRU zKLwh_mp=Z9qD{sQjrcyI{;A!XRi|;Kqs`AZJ2Xo!(a-6qq9Kg*1m{j9eu^O_lHnjKL*SF@r_#jK)Px0XyZ^IFZeT{bQ|q1oBlHpBB- zT#R1X`RV;ZuYxP|T3gG0y7{@@(tUbWuZoMxMbX(cLoq*d*K4MDvR+l0tz@5=k?NG! z>Qx%~W>?c9?QF}`@(A(9Xm5bBbvn)1*AV-6v|F?F%B+u9((Jp=#}W;t)3Zc!U;b%C z@pR2r?l~m(bUB_xd9`LynU9%7+S!(snMde=Qs+iq%d+EC(VhF5D>bVVy=pVC^K^;k zI?bwH=Vv>SbarK4Gb8e|V~QthR{5tIWtZbgl-FujIib9B>(j#g6WQ?;_cq$(yV831 zO3l`D#(rl*qPbGD#Kt~zhi1K9Gs?`*R4AUW*-ACf=L{0%)tW^|IX3pTWomhZbK9P+ zXQ^b9e>$x;OT0vOtddRqd{O?1Iu0|Ui;JXLmlw;tW=5K3M-)%itWKt=WEqJEdml2+ zTCCPAYs}9!Zz9spwi%wp#`sY02^wwgqe{NGe@DC5v!YqktjqPJ8F;0iMYH}+MUixN z&5+E`R4AUW*-FmXpB|Obt8!4(dGNE|hl)1-O#QN_t!Jg#%8s7Tx3}5P zF5?+^wPt-^xJWv?vi@d9DilxGY^`hYvyEqVX;z&xj;BbwSZjvohxfQG`OrpNI|$CJ z&3=8av{$kd{)C7`bERgL32?P^k=&JoBG;HJ?B{BhuZ|T^EjGR~2Sw&0pKI`WX%33{ z!Dlv`X6eIEzPR^Zdt+nPXV9$dgZ6io{Cv%#OWvGYwKC@Inwfp`GZl&_YgQ*zv^}%x zs_4Hu#Y}peZf;DJ*T%-`Tl9BlX4^8gJVI=oGn=B#YL*%Lw4Msy5}K{}S%2SaqPfn` z>O5%fB}-qKQ*-7uGg6^=u4c)!unVNpYwUMBCd#WdtJ&GDTBX@_IViq@ao3_0>pgM* zCGPXG%pl}-s^^e@vDv)Da-Cv%ucMvr-mV#4=4XDbSWodx#fq}_ZB_D&{#KPld97kO z$(7z27n@75PRp5E9#Qt+`_IOjQx?xUYq4ip+0XOEdbz}MrDDnM`QI*%&iiIsGb0s> z=PS16V_l9XQT`c<^?6*8cDBv%{P14o@m2lCnme^pCFn{YTd&#q)7%rwm5L?zKjOG6 z`}EtJ6`A76iiI*csOLKayoXDaS1Xpe+4ng~vCjL>DOUdcSzJus^Q4Tiyeuo(+L`iR zHHqd*&0^`7+duu>cF&i1yJkq{XWGn5&N5LvS+k;CsmwAfJ-+8ed9`LWBWBXhwoEOL zuxl1iFgl%r{0?8=&FUvm>G5MZJX?8~k z6g!{3z0VJc;<=h_lq;**uXb+SrCI!}&wz=vo44mQtCO;Qg|KP%yd6FGebMCPxr(24 znVv**rJp5=$){8J`p*o>{7i-7>6)#rXMHb2qP*JALYkSe_hS7j$VJVWS{`ZN{^Ret zlcrbJYr22x3LjfLXN3DodP{e8EUM#(Iq~tgYvy$$nbpilh2qJ2)jrG08RVS1{rH}D z=@pHTS$VWTq@8VZJV*Ni6i+d4q}6V3-)_aS#;NsD_^3azT;*Xo!He|-ohbc#y3f1b zt{IN`nWoqg#d8(Qj7+|w(k=7N>LpQL>0#;VK}SBDh+@5MnOYuU{~cdds`5y)qf-s~ zZ*i|?^)1%=712&_=^ih8Cz=WM`@siImNwdzb%xh+(X_h@h z$>X1?Sw$$XPiNiwNv7glqn*L|5)@-Hw37Rg?lW4BitnUaHNoUs#$^1;y z?1Th#7Ez@;1Cni-S{^~OGYB)uU0I1i{IPqgcR#+ z%hd8nJIOemBty3tJ@x1s@7^m^d6fR&>|M?By|bEq-c12b=jRg5RhlJU!pr(Kg-ANP zGOw8tX?9HUWX-B$@p+dqlwFo5QC_WCylm=pOSaAMY>}})#jDY#uj9PP7#&vYJluiP z&o29V7MXohUkoIjT{9%}GZl&_YgT99Rx(hW!&s-hQnN%<>Iii_H9I@oGPOLSQz=GX zmToNaVLq?izoETeR$n6V-t(NX-~X28-*sM=9gDmb6Nvo8A}lFqIflKGhm#WOXludcqDrM6M0yjHX7Ur0AF!NA#;spXNT zSwG)5+P{C->`DC;qN)8nm8i*Q^U@5wE;j!79--vCgtsg6ni;83JXy0^&DJPimx0pk zoNgzDfwOIfCvorC%d(n9AwKij&uaTtvr_CUk+I7Q{Cveikod&?c6nJhGQ%-HBgKv> zo~~H3!OvH-c$WTq9LG|ty{x+OT+}4e&bCY~kF?e7C})gT`SN_0s((kjHLFhJ+WhM> zJ-amPeW^$~yE3ntk*3)Z#gjD)<*H^~mM2kOtywyb{5kg`?QEOjNn}jd;^;IPPOc+| zeV(7yDYun=3ZL;#G}lGOpKdwrQJu%zHA6B#(<0*$#gjFwotBlE*=Oey<+YmC-Bs)^ z>%EvfJ(~5lWomguC!UVhvg|54EoY3^CudgO8^Akze3P%U{QKKK&7Z^Db=gY#J@kHk z1y&@TWtrE^Nb|EJj#;xm-v09TkJ~@}`+GH>`qNwc=QlTIf4==`e}DVy?Op!i?O*Tz z?{9Dae*5F?H|PuJYgE6MB7;V{Ha9!XB+_Ya{-3x1z1hct4KS`W_Y6h zXRBG|jJ>Y=zt^iIzuZXbKXW8?Gmq-*t=iMu)6a1(|Nbh;*A>f2GNYYY#5j)@&v4Ao zG{uf6X2pKLeZBwpD;r;>+|>G~w>iq%8_@V_P5b!Hqzb2(M0u^3RqZ9`Eq+;+f8qov zVmBY5HQJi`pTSLS${Jl6^iF-mP|mk&yD+% z>y+1O7CTuzx;3jvJKJV>YHz?Z#o{acdbfW=ug<^!otG6$Rte9uiND{BZ>1Fli+zbmzZ&&6uGg6^=vSyVtu2FV5g+zI^X6Z`e z9G6}Z_qCbtvzX(_TGrp-(dK9N52y8RZ{KdkYL!#*vfLNeTe{E7G9S_#^Z47PSZCJ^ z$NWr%;<<_?{-erM*|X)(pxvcdsw)0F6X{jiC)Tpi_UqI(KYxB-?|M(%e~WuHOXiGK zP9^`(4v5~;eVS#3lTR%0c4hs|j8rI|tXWa6M8+R&j%Sx<@qNCVSekXYu^FCi*X+2@ zn0(h+ewLgWwSa17g5JSvG|LLopBOKa&aN4f`I)BK5ydk#d#7AG&%oa@xJ$E;_A4Ec zcB`XIEsrSw@x<5@@l=Z{_(rrMA~IDGPOKHRLrW`|E@+`J7&+* ztU4(wnMA*qOf*+&R-K-16(f?nvQN~R$b@-{Cu_EzWBhdcntLBI&R49~ETnxcQKX%1 zS($l6QSm5W3~Q~c-G1!;4ej=_u&msEhc~+>_oS%U*R#dZ*_CO{jNIqlO!0KZ)@twU zf9t=;or+aW<@4=(e6&EMoozEb$rlqD`?*)NxtkQ)K6>sg+^t#d3aG4c{EpQfUY2-i zH21nS?hMKNOoigfn$@m=N{z?wR!x*wds#^P9IiCGF872#_uV;-wK^L8y6ZZ{s#m-^ z|GFGcV!1LdRu0j{MB?b|%IcdLsZcyuvE+$~r79UlfBtNuyjrp72>;hBLVjMP-N+12 z-OJA|^mff~%+FLPo~u|{U%M~O zN2Q7KO2tB&Sk+gBQLMKuQ_Ca#N#o8Z{4dXYKiq$byA{isKSV~Qs$79YzFyb5I(%j{9CNc)VnNITnRc=F81!$LaeEP55} z)+_bcs$N}&Cy`vKSKh8)U5TQzYnI}(jDMzhvR><_KC!>N{~pJ)@=6cOS4fwUzeirA zoozFusr=?zl4fUmcCZJ#9^Xj+Z+2@|^_@yh_OtC`NSe(wU*C79TcQ1l*kZXW_cZ31 zRr}-8-R)H0Syix>t(>FDe&GI_9P2jC&NI8)xv33X9Z!*Vmd&WP(qGIuU&?x(rdqMA zoa04@^ncHCMzgGNh*TbbyGS~_W=Q5|+T1&$m^J(T!u{=10r}!;Wb86Lug}eMnkA0$ z_X3Huvn^B0BOh+_5^u(@RNFd8ovEi~j9=N|;p@(cW}1IzG)wnW_Osru%xh+(Lh)S9 zHp-Qm+25p+DCc-;PP6#6yeGihHp7$MvUmcYyKJ;uw0@SK)jl3hReGMA;H0ugPnT$} z)GQ>umuL3%cFmB?&r~R$so55zRCjBAxn=0fdj;N)WNLW?A4~1f_gOXC>Yw!MuHM4Enr%1C-tRH=Gmqvt z=jRg5RdF$MFPVazfAS|)XI?WS6^iF-R+MWQ<1e@O-G7hcjPXj%LYf%Hp9!ch(AhS_ zlbt*|>BOy5MVlEyT|Dk*`ggQjv#PUK{H%`=c4(H!n5=vMp6;`+w`+!Eex^e4WX)<% zbR{zWYTt9Byi&77RK%(n+sle+Q<4W=1L$PgZQbpMw6-{(Ic(Wr?SJm$OJa+h%xD*e{U+_UIy%hd7+ zt6AoUQI&^E1YZBV)hsk?dwIAe_ZrQTfg*$V_}isfXIJJmGtx9WqIj}q>)jNb-TU~S zcSOc5ZvoRs3q;!4Hp7$EEE!nuLq(gqqV^U!U))=`+s|spY^Bc5SjpP zP_KjCiq*NOwV27}c@oRjiuFAc;^^#};h3LkiXBlrU9q)p3cqVLQC_WB=4OBXgh;Q; zKjm!joi%>=JRd8?R`vxD{r7XrULWhfByn_hW%bRBR4AUVSbSJzE$cEoI~2=W7O$3f zfcRT1XLz!ght-zPgEZRQT%3NUSHf;DtNj1-{wMO`ZmphZuJW>wgi4B*l3g<-^D`BS zCu){HTJ?L27)~7P-;=z&NIJVRubGji*%8H)H7m-`Po{vfd(VmT&(W;QO^CF! zZH6bB<*OR`Sx$RAt1{bbwzAHFrhAu(=4#DS&qoyG+mPG-pnyP`=&e zA2k0u%QCTNf7f1p ziryM)ouGP7*0_<>X^YSMDfrvDT+gc{XA}!Z*0qmsR~(&PGaU0X6^dE0-!D4@s!^`i zW})ofbE3S`&$b-YD57$tYH&XX!VJxyZ!=d&+QJgO$qOtbHdW{FTf z+sGWvdb={OnUM;`lQmmCosYNa@;r(1YR$5jHC1|&Z8JQ%O^fG7ewOGN&7Kw;Lx>)z z=aqKen9KDfnyWO+?8}?;olerMvulQAeny%dQ#@C*qFkMsU7jaVUa48M!5YY)t1Qya zwoEOLFwe7g9%+`E(^(xA^0V#af=X;mrmF5|GtJjMt#(ZL?1)%8%QCT+Vf9J6YF zT)v*w4L#)kD-qQzd8jly&#Y(3KM{?()s9Fz%Vu~|#qs;=8fl%Dah{h|2CAl5m*+|I zZ{j$kSJl~_Dn-%RHA68!Q=ypk`u*b7EW1~z&emcnm*Yv4^SnHxSDlph@#gy;J%dO) z+cLF0!c7$8IuGa9DU0IPgS~xwbH2xI1;VW_8Movp}TXNT!xY z&}_~Jx0p)%c}}bIFsqV(szk>8P3kmPYL>`2`&n;S<~1`?p?I=pb)G?sqqLfRWGP*^ zxHQeot2N8M*>uw^v$L~ph9`UQ=%*Onjx8= zX__5TJXfXIrM0 zN80JAJ|Em@!}&zbssr_Y*N6XG=#5>If8uvjMN3{5FZ}qGWnMEQ6^bWoR;LD4I#YSu zk8d;0%sHBx_p)SaA1%-q=tgFE(r3(9<@;S5ZB}C`N7Y-n+s~@bUa8HpTfet-JOihQ zX~xfzl}NX?z|z?@Loz>8p?I=pm1V4H*5!D1X;!tD>}Q>AnOYuc=eCXZ&5}T9&wCw`)4 zp;@ci(dSj4fmdrb_r-X-W=Q5|DilxFthyE}^*rC1ze}_DzT8dWZOhd12)kzaT|VC` z+MH>8qMzk7oNCSPqs{arn(H*H*)Df2db={OnUM;`b2TfYldTf zrb6*t#S%ra{;Bj*_)fDuiq-jt>AZPnlU4aAZgfm1#fUY#?TL%MAMU@zy^3utEBib? z+B{EUxz5L`hUVuBDRx)>X-x5C#p?W#nqpm!CsAJOW2M+!gZFErJkRD4@=xqS@cH1T zS?%~a=jH(ApLk2v{F9Fm63vyGWlu%AYnFJ~On)a$RP1{#`uDRtDi+B~yyS0u}P%>qauGnUM;`^YvP(cyjriy&N@|!w6kr7=ZE)MVcf6C&1tN5 z&x?vxm92D)b7Nzj=1R>n^NyloXV(nL{ERd^rg*Yuq0HZ*5*54rPMVolYZi@+NITmy zwLHQ~Hjg&i%21uBS)EH!^Rq6?lW4BgEVD0}?Z+8Iv#+x&6PX#QP&`+&>~>-$Td4{# zFFn5JM0vGlm9ua=c0}6QHp7!Q@+>k|f0W-T*1w^Bk+Hft>yfcvsV9~z6$?i{*TK=- zHN!DKBgL{a8jtTOo~c+-R=;9pUiN2yC(3IT%UYFPf3tja?U<)kW4+k;A6 zT+^(JOm}D&D&Gciv9oK2WPV1P#Rp}I=W3P?is}iApD)Zlv5JMX%P~o_ZX{F7BWQJ8 z<6*a~6mnK%ESBVApJ)I5-uxYkC0_EkWx~Z zBV#Gn?|v3(XWIFk;z znV+dpJXy0klcLf`{^d3c_TS^q$XJ@?mdHm7MB3SwspSzgJI+6G^BpTPUytbR+pSpb zqO4>RzuYoxy`^K8D;3Mz&9|X>yE3hrk-K6u#gi3F?Y&kN;O3z^<<(x6cq;Fe^|sCM zr1tSFF4p|vW4Qhe?NzLH@%;8S<5c2e=jDFBkEMeSj&8lGnb+Ah!!bY8;^Gm-a~0e6 zYSrdtm*Gj2S1XqKJ6~h3huUSkeHAOQT&GxZ^z#LN*4s71F+WqGc(P)Zf2wppeYJW?l-DY@o$TUbbCGsh z&eZZqI}_FSu{GNK?|G})c9MK$@14&JB$_KV%L>xZh$89yZ{{^KQlWUVX1U*^wwfjD z@)&<6%4;>NHD=x|>usCiNo=gFrmNvJ+Ujcb(R2TfcCTl3@>6A{^Yx+(ly3UW=g4@w zW=Q5|DilxFY`vR;+D899j`NJGHOm^v_h4yucD7||c|`rptOy_fu8lS4IVNAxKeb!2 z_45_ki_}{>X1UJG(hoD{=c3Gapa;0L)0{C7}&AiU88IJjx3dM63OQgx(yUNMqUv2MEqP*6} zO0o3zK6(a`b|aZu9w9DfwZ)E}$KTax6TO|clc&+FRN4J%GSOVE+1xMg?aI7nMk*9f z(=0O`H52~3-b=v=`Hx?5qP$kK>RzD!@@N5?^|sCMWY1>WMJd+AcDy^U>fXK`aq<7l zlC1jk?7y$FB$n$GtFr-oRZbjtWuL|rPgiU$`}FO?>=SV>k*M>fBJDC`Gm8D)`&w(X zlBEj_KkReLS1PuCC$vAQa))A>VSFE*IJ&N^8IJjxHt&uoo~&5qiz_SHZx`mCbOTO4 zN5Uvgl{J!kz*xiSEe;H(iA(Qc(P*E zm0GFFl5we1UL6&qk$hf|w{3>!hnpUA%-d*l3wg?+^zUeITuhwKuB=*I?6N#NyeuSr zd?GLF?3y8&pQ%thSF_r$#d@}~`f*WdqP$wOTCur|kVre*GPOK{7Dw4)_A`-r@;T2d z^;*p%V!3;diR8Luk%^^2mqVxBM($%=tw8%xU@J`VCspbXlH6bETg}vwlXDW}RJ` z*UU)M?1vQW5h!1mf6^+*pQ9|&&bAqzs#UwS-kmh--81!C zxxXEfE;8MrSA49`?u(+cYldQerb6*#y;kpnhO(O%6Xmr&R&lYvrCp?*ZJAmgVHXcO z0{Hv(nIzRfM4LTD==zKu0rx%%Sy$7npKlV)bv{--W4<~DNpDx?H8WD7c&=vYpr};^ zc$+TAlPIs%EW7?#%Q|I>w6kr7Cu><$;J=+lTREyT&XMUgtGfc8->(Esm*+_|S8A3l z0Ppy5MifbB*9^)0OoigfnyvQBK-uMZ66MvJWd%f+Ln7^L%hd8ntILl4ta?3thg5Ij z-nuNECaiKQnF(qfy`{T)Db#nGGl|}=%xh+(X?8^MWX&r7^t}5C%{s;G(X4jPa9Ypf zcc$6djm+?5X3DuP(I#iipM9QYS?N?`W0&W7o#x-){%M%-c3kAc+a+I2H%0ce&axSn z`I!pGtlA%Me|h`I?VtWze06sI(_8!JH#cT~zWr%`fBWn0UH;+iU+@3#Z*Tv8`{V65 zv^5#?OCM3`%(hCV(f8#i(kY_)pSSI=f~_=4UDtPu8rujVqmteh1tx%~B)q_fm?q`vx+#JVNG} zwW^QMM4O-BPdLxds@`6s>0;AFbDf{%o#kD4%)ZX9%xh+(Lh)qHD%V)^vo6n*D6jRi zx+T*425HvWHp7$iWO&Z|&_-M58GB#cd#~Mo7MfK*>oPrw=1R?KkE2tjNIJV_NaklM z6wlSHcHz}J7kwo>QC_QA>Byg`EYd48P~-d)HK)9X;5x;UrK{Fw{fv}Yu2yVb&3e1C z`esJ%ip>;HR;>Dfh1c$e13YY9}iC=q(-7T8p?I=p z)uCGHUF5dyt28S=>+h$QW}R)BS{@-brqb!NOO5tuPkjH5cKg|Szp=k*dxvIqB9DvN zL~>UKiYWa5kLy_?z5R$(tcw+3aeRkTZxb9UF^TfxmD0i z7ZiSBv>VS`Hp5f*29NwK`)7%t{m=C8XRn`aJ1Z+WDC(fSrE?@-SFC2cFE%olVx3(x z9P=|xu_KCEvEMK5TWq_xDzP#1W1aG9KMMh$9TsV4Tc(yr=%^T1dfJY6pIPqT&~C-5 zHe2aI#hdk(?ozC>KIt5Cta5f`S~DYe#pe3JnTjPoQKvDd?^R+cm*sgqmYVUgM0+UK z=~9Yyw$1STaLX;BSzpBwZF-3KRGM{hxisr+%hdA7hud#r)JMIIwsIGK*H8bB_W4<9w%*ak z4u{^-J$@FF%yxN4kGCuHni;83JXf>ofvRfOWqI~!mJ`3o3c2r0nsv6#@N9Qvj?RLj zmXdN*y$<#&w)H?&*0O%KNi0{@dGNAu^f!9J(c3k{F+U^4@|!ZnlNGDet1DT?PcP-3 z)~;oh$Mw;wNIUq^C{%2PRs{L@9*Cvi;oR-)M5*(Xo&WW^Fm z(G$q(r|Gu;>J%?Y6>cS&=H=CjRc_nmCbDf=mwBY!HS1@GHa~y9eOW0-)xW*nURH5& zWi9JflW4B;vSjRt;PW|r-mc7RW~4&#WX9xQ3r**3$IZi;7T zq;k^YS^ZDE9nKCR`&8LA%kGALZrQVvMX|)9tY;s8yEr<#W;o_&?uyM6Pgg88_~$uB z;=#xFyi2iks*vA)v_PbtZJAmgQKyx!=Qq|m)!0W=y?wiVZ2dg1Pc|ozSg!Q34OO5ovZz@np@`&y(?9 zE>T{sS=9zo{>j@m!&811)%xxx@n)BVR@bf;)PHk(qvO`ISXt?CHgj+3uJx?$d8I=8 z_}exAI=g0A=4UDtPgbq=x>t5>eZEDEkMDVpYPCc9%gw_*S|HNSwoEOLpjxsdqf?E^ zgk^8sTew@Z_1#%MK20=NdRpGD&wz>Kt{l{u;>ns-pIfD#$LZVs_c)%J*LqrYE#^IV z-nOjFJo0=!%Z^ia&3aY$Z)mS#i43UP)x50pb3a?LbW`x=@=kYu)_kTlGt#{5h~l}5 zZIo+X*7>+Zd8J|@O(g2i;nUpgY@6Z9dY0$>F7`%SC*1g+i)%EC@1kG4x}VbTFibR8 zd09wesqZF+q_=B^WPYYX@l4J3lq(f@@8c5XwVG9TD(B1finwPkylt6U9^rHf<_Dh> z7Hw9I{H zKB~8Eh9|38Ix4*S|*^SbV5m3^_XW?=Q8elFD7zubIUZ|QiQvr@CXU7s_QW}RI# zB=a*Bil=L~RvlnpaGmm6&3=7f1<^tCXn{yO+cLF0(r$|OYgN(aCId21K7Q^k+^tzM zP_;7){9f}k1FzJq`n7VzDSsuf49+ta^~C*#UjLr@RgN2(A(@|PnjKL*S+nXjuC0Jvo+nXW zt6AMTOD97j?QF}`@`!HC8r5d$Hp(mB-oD*lR=vg*#rnuUv0SNGRlZ$RM7-qf%Cu%i zT4X$;c&=iJ?dT}4tbhEu{fY8Q#iAe9KrrnUai5#LZ8JP|bLA*5W+jU?{%3mo_A0iq ztkmp$ypmY1QY;+ljLCP9db?&g=4YB>M-)$1tZuHXDfY@ecyyIhHSHDAE7sYTspSzo z=r}5-+Jukwez>=9w_?Sz5-)wVbKefd!tv|v-SzLO=ji6-OlxMODRxBhbj8+Arr<=E z$M>8lulBL59Q}?WMN`hU8J?_UmD6bRCJ#Qr|>zLP`@6P&qn|JCoS9w{wD5#J5 zOr}UWyJkq{XDSrW)oklbt(@BC_d4#-EToC2@;Qs%woEOLw4TLL_K7);FYh!zOT^CZ zfZAHtWqA_Km6|0&8O^@VuFPv@q-l0U@np@`J5#B&)Mw_EeiqH*XLH|-w{3y`J3V&i+BDvDPG8_7xoT9k1^C?q2S+6?F zpb|yV<=guY(k+uZ!+-I~)pED?G&?@ym^o#i^k zl5=7{bh;ErXIG{*Gg6^=rec+6ukUf^Jj*)e)ruAA97{RdW_W(MefO!O>DR1J>Ut7O z^_|vcUzguWv+p{^DjVS=Un$nvHN!DKQ=xdWV!yn{#Fe}gT?|(#mR+*=ShtE6X=hue zmPh#0#;aI-8GiVr-eM_MENiP+m)-gKiluH&1mk|YIJ%KcYi2}>9aB7Av3QH;^#Fe> zXrjE@$3mJ@ZXf3ik#<_1;i>Z#eGd4}8daavrFd6trMAPlRxW3jSg!N2THVl@?Kmd8 zW;o_&DilvwY^55&+jKE$qWm)yo9={2wq9RYC@@mDxhTU+zB3iFZ zvTcSZx8C8;y%%b<)kV(leYB_lH@h{f&SIUG+2W?&p8k!w98aRTTC?daAl|66YldWg zrb6*t&8i!f@AFw)%-eKPX`;MZvt)}?-96csspXM&i@VPSH`?lq^3ijzk-eI2G@o}p z@y1-1C(&G~St_!AMwFj*c4b~OBNdA0Yxem$#!z+{oX$j`OjK-^W-EI;py}3=iRNm}rmAeRYldWgrb6*_%~raLd7CcBlPIs&EZ=16 zR7|#IYIy|BQcv=ppwZTTt@AXiid`jYLf?HvFs`w$)U0;hx!=z0>+Q$ia_Ojf4lPf{J4t7Vz)w(RoaG8O`a-CvzW;>l~ z{d>Bvvb|k19P=|$?3m)oiWTKb1`6-<_?{Exm0p%rBLp~`@6iIy&Ca$=EsyAIn6Zyl zt-|*M^!8n$SSVFyUzg{3o#o%({%MHtc3ph|J$`$i5q%$>NIJ_hubGkNWk(#dW`Df> zb?)==2vo1X>R_XxBtD_(*KQR*_bq57P}vx6KQAJ3{TxaG3qdGGst=QCy}h=pIGre zzR9H7L~>TKKKd0$XV(nJ{EQSkrkEA`{r2_#->=@?t21*`>!04{^s1A+YF^gmcoOB6 zUY5C8IUzR#i?p*XQ_Cadj9JV2b!wZR+kQ{CBI}j#D$Osq*;oIWr&+7BbJkpM>8`b` zysSTQN+g|Knb*unh2qJYt?uH%$2uRkOS4o5(h2j)wi%viw&hy$tgEbN`PtsmU4B+O1N_crk#u%tUNa-@J&h=ytJ!uUMUAq{ z^6b%UBkf{Qk#@Gt@YG%&pIy4M#>@Jj>2t_W)+U0o?=`=UbO_EB`d6m=$|<&KPo>B2)9S z*X5t&Wqp-Nq@8VZihXvD4EG3}c7ic6h*;M4-}xD7hhmlccQFwhy+SR6x@tT))S)Sx&GtF21EIxwwn{KMa|2xYvv6+zy z$E?~Pm-Z~)N%Oa;M8_`6lSrr8`Stu09t2y{8OD%ymd)_w7Wcg0M6~&?`0{-G+|O+L zGEibk*7$d~_f%o&GChgqO4X{vEZy({OJ~^(%lu4*ea60z`c;mvds!+J%yrI}LeblmSL^(%NGjTCAQLJ0Diu9`d6I%3@e$CC0 zX0AJ__epcF>UA}eS7e`1tIpQS9@g14GwGC^?@@gL|-{*LWw6kr7Cz+cR@ix}2ufye(`**iDDkj&BVk`Lw zc0Tl$j#oG<6-%t-Pq7zAXV(nJ{7i-7$%<8eu~HTAr+@5G?5F=k#aXd#Wt6Gq5!TAN z<6pEn>yaAIX}Kp>4b{4=uTQ;B^L0Pl_DQ)FE2{ODWnwcU6^>c8*VlL&=}L`^!rU6=}MhAAi3{JIiKxs?W-K&_L|oSH%`RjCP3Eqi>=iSp{Wm^vx>|3?d?S7+M{Pfl3mpVTKI-mC;=kyCbWpLby+IiqiEsrpR zWiKk)oUV{_%U7!w8=ud?e#Uu~<&0+4P2nP7NP4?6ubGhw#jM$@SG1hyz}(zwJYwB{ zb@#fNKW8gZUg>G+<50!aMZhAxDg(v5z*m*3v#O?OJ?s1H`nR{+(~4##Iwo4^EuCHI zysFyPcZ6;pf4^9|kr{2~XQ&SI-H$kC)t=yK)wft#)B0T)Nw@1fEu>k|`YtSyUYCdB zdwQl?@=&RY+kcC@RV$X2tm5a}+w3hJt2VKGU9;@-ARCb9UuRd=-^@tU?1*C4?Dd{j zlq)?IpY3~2ie2kzshf_nP~Nr~o@Aj|>8BN|cypcyv&eawDCLf8s&yHk#B-f$m6`Xq z@M->acFnNN&r~R$tXe4Zl~z_kF58nRuU0J@$)`YlzUk-DZ)9qDgqU~iXZhZ+=A_<5 z<#yE7R;kev7e2nP#B!Ztbr)H_gVfuVY0Zo@#f~VRso0)!&Cj|_Polh5v5HrH7EE)q zvu%ba9-Zfy#U8(D(ZsgUh z7OE06eYwp_y`{U>vr?>|?Zna9m1)h4G{uf6X2o8)p6w}DGROYh{-oEnewO=W@N3SS ziuAf1lsfE2nPa*F@);Jr6837Am14EynEm>_rMooCdxfOqC6dmr8D-{Ynr257&(*9b z*ZL}au5XWKTi)1ZCq&xiAv3i+Lgg!0Uqu`LN^aR#6MH3Gq1jsZBKLyzmX0->XW*IG zn0E)!$KNlO&azBwW~9O~tM>ZX7{%6SXBV3$-L8#|$@=&+f<)R`Hp5d@JHM)GtXprE zi=X>1akpk)iH)zxL5=PP6-Q^+49EOTg<@9h)v>X5^-x`|tYuwfn)I4y=DF1@YfOJa zn@Bs`GPOLy*=>yaGh-U0ZrJEnNLW^2^}f2w7gnOAET9pyEUw=Gl4BOh*x#HWvHJ?vND%kw^= zSHkYtSm!}iIx6Vl?k(M?S@l7=-!9F%k<4pmq-l0U@np@i8;{I;WoC9+gI$^>%bjCm zPJ4O$0%v%t@;Zu)Ijx)-#AlX!D|RbZEGsp;ueUj;w{(|cxk-rbv6MCTcFl0i&osr3 zD4wfW?Qp1_2IcoD?@_Gw+KeJ&7inc`d4yYf@~v5oHunt&Hc&g;z~5k&D6iElUt{V_ z66sYLDCP!#idZA9+i(5P^uA-akF8gEzTF~;-qL+>F*yKoCy&2f6rEjJdov>yil^(f zmVF}fe|*oo^s4R!w_X)#XWI-e5_MVqPfz?5}o*y zs6^7)HA6B#Q=xdWW>w{>WGsjmuhOh)@P5`1X=huemPfd~Ql7xYyrPXYuAFV`&yY@(*T%)_G#;&h*5#kHJHS_P8g1Pf zG%5iy~M02&D^%;I?*4Z_q%=}D+;<=jD&BC<~sBgEJtN$LyE1mZ{|tzWWsQHrAsass0V^R&4eBHtcs%#Lri3d%G_FrB3SY%Cu%iDiqID ztU7qK1LXM)rMyj-;YpNNE0z@|HuQ>UwSi>Y4A0iH==ax&HdQfp1o{(>oPrw<|@td z#+ZHKnKbL{njx8=k!HsfPu8qXfqLGV%FOJtJc;sZ%~Bs2`B`UMrj|#DjnU&sv*eZe z6VCIq$|pYWK*fIN=@QMAnk8%OZ+ue31d86S8H)Lt3dM8v zN*@Jvfl6G=KGFVr+?O$iFf%i^;yzj+($2O_EsxM;oWH6@TYL0Q%Rh-GHa?$y(f8xK z{P~(?mo}PpF_B0*yE3ntkqX6=HA~M7KBYq0dALM*t&gP+g=U>HMcUam!xO!F|9K~k zkM(hLuY%n^RwOIAC*L!eNUrm-d}qAftXH?fouQbYsZcywuj+oPQFb0KQC_WAG{U~P zUJ>^!BQy8oNT!xYID?$}jgQY7ZFN%k*txf3w`N7Nl6ztX>@6KfOzSn9XI^Jl<~1`? zp?JDxE1eXqGThv_N3*QY=yS`YoozEb@jrNTR{?IU6&0VRSnR3hBz%n}v0SHEDoeyC znd839(}?1^ify;xJwN>k#k%ZHqP*72D)Z!{IYq_Jwi(6hmgsbcN7JlMuJAdO-goWw zvTgTs#moBnCed7}S*>pzFGza3W=Q5|DilxFEd4S>fzMa6=)3BvahP`=M>4OO5ovZz z@np@4a%DBk-}LcqCdz9ys}*KCft=ad**3$IRf0~f$+0o#osjqRy6)f6Zq3$v*~p9c zmd?(=ub#8`=|)QD6*z5b{&kkku*}a$wPTK1wLjke^7fD0KmGfAmGqz9+CRU!dCfoH z{vWb_GhLg-KL1@^|Mi1cbPwD zOr%%kpzxkrJ7?8?`;W4HB=_I2{BmQd|NJ*BD^+&5_m+-Tn^?|hR&UoSQzV^TS${Jl z((IUG*6jDU|9$(vU%k8Cilt|t`_9U7sHA{5tcVJ7i&aN4f`I!pE(>2TAp+ebZ4ie?Hnw5_H z9zcg(0lq7=?EW+z}ib*6u6w`Qwnqtch@{(gz(YR!JJ^FJiLU76R+ zNYm_y;>ns-H~E)>W_^Y}QC_WC;`nqr1*BJHp~#S@-F}VrmzyQY6JM=Z);-VX-(PI5 zC$U_o*mlRDn_;C`x6Yl>WqzhY@npr)WnAl8B%j)UkK^^vYQ^fzrA*q{mZ{|tB4cKU zQGJ%ZDCqjU$XGiAp5JN69Ou@PJ2X440C>AHubGji*%8IlHCx+f$r%vWX_l%UImbr} zG&?)nW_Yrjhp)e}$`KLSZ7zJH8WD7c(P)3o@OnUa&c**yjHOv->ae2dwNCmbF;H; zh9_Qj+ym9(VxKAL?c1x^cK@i>vW;kO&;5P*x^iNgT%}lgv)LVxt99P48IJjxrq~h1lNDRv z=T2axuA>HGxormmQys{SqQR;~ILE34U$7v-OR z`yLznQxi1%x~Mr5n;EH4JXy7(T#Ke$j%SBznV;p^oHj+;**3$o-GS%h-bVZ5d(PO$ z&sS2+())tSyT_l}dGbHmf6^bWoR^1de%5F8eOS7tlI-Vl! zY|GU02%eUVu+L01+NxIgd`bT;?)I~)v{z{QJ%owoO3e}-=M!bTU76R+NQL6bnpFk9 zM%m4ciSp{`nAw?k-7Dgr1@$NQ&G6LTS$>;WqNR3&rl`xz4D)v6^6<-6@f+UYq{%Oga`jQSa0w7C;i z9Uf4H+uo%h$zZT}mMk*9f)~u@VHBal-lRGra+{^6zc|h9P zHp7!@zjk*zJ&HEH#`t2d>;7BZ>t}U)Wvvg@pR1K(KxPR%nU^D`BSCu^20 z6rHt|nc2lNiSkN6i)K~Vb91o#tg|gs%OmR28S53F@3T}_=#`#l;&k25Q#rff(Ft^!nV+dpJXy1fiz}-ivM#+38P^8Z`dC$Z zyagidY|GU02s zXIFmPGb7UMnBvKrC2P#zp+ec^c+$+gTCK3m5^I{!?sg1vf0wbi`= z^q};X?$ax8E_cRwyJjfnXYP8<6wlRbqg?4H_xGvq(kpSO?_SW%?B?uDEswN(@urN)hwSsSO|w2aN3-6x8J?}vc$71yRzYm+b5#91 z+U;l2Z0)R(FSnoTEgjQbsaaMz{-j-zbau^<%+EB|!VUe{M^wst}gvrcd6K2Hmk zynEK$HA6B#(=H^2moy+2}S)D86bJvQfoNY5aKfL!hjq=9y zb?_&jbFaJX(U-_h^5?Z4zg|!C@4Cpi#Y?U>2S;z$49EP;U9p+sxr$|l$h=&s&-xo* z6Xn&4#q;@dl||a+$1=4%q7EqksaU0y^ionGkC#dmHF>EF-Z$e1~#+5^R!vbS`s*+lYH#ZqPG z%|Y|=w~M2*E7O`8sZh*{{eIcqm748d*=hOpvg{Ln7B>E@5s_Y%ePWe>Pfwa{=Tn|m z<-vDx#t8R7R4TLn@0X&cRhosQ);KOQhorY_Mw$7Umch|oOnwz~vSvlOa@r!N`998# ziE@snX1uIOGs8SuAkxmZOf8RmxcQ&d-PBnB{`O@hRrmJo^Rm5SE2kQhf$uHd<7H7S zUe@pb6GvxPrZqECp?JDtYjs(lHQ1?Gf3CbpyGUz>C%qK-fz(SOFROb>y+`PkuvfF_ z0WVuQw}3AF-qJmqWe*Khu<`M?i=?w_hGc%GX?8^MT+QISQF!b+9^MyFNkxXl5 zq(bpz#p-m_`@HP)pn97w!;>hljEgx>1~$L9Ig@PL3{S1`eb;|utyA63^RZ(2xzI^L zwdGMWiRC)QvLk^A#{G72bR#ny^D`BSrz^I$&(imWCdz9SOIPoxlfv7UspXNjYu2Bj z*l3@22KjxSp)cn7J`ZL}mMk*A~)hueQb*1t)U4|!7UaMKn z&glfGWZMi+^(*?WjmDb)O?%;c-?cX`CL=+O=Xt)E_vNxYiRDVgk|!G}*4Z_~F+WqG zc(P)33tnwrcI(JQd97kO8HgH>i_Ezh+SmCqwLF5CWu2NLW8N2Qde*!C%$X}STiut% z8*^EnM01^Hm3{KOMAF%ndCiQdE<2`pvSy)N$v#2ZWq1=2vTcUvhxa^J z^0G~_{K7DWb(&T8Q*|xt@;r&=I?b}SAwF@lzeqZ} zGOwAD3dJ)utK1#ypGqYU&AJYwM0vGlsSWtMfkfKbHp3Im^1H^7v36Se?D{pD70voO z$InTL=1R?ye}mMk*9f)@5okh*w<%EYi-l8J@%(L~m(5tM{d|D~LTFy+!|T_GOKwS@oY*vc~L>>Mb4j zKjj(t^}PW)JBxMg@1t%iE8PQ9L2{(clhJ;*0kzEt*v(44EQR`8BfdGDlU>pG}HV$qgk>6zCQ<&-mc7RW~6C$MDb+JLYaKs^EEBL_;GGb zlvit(8jRmnB+|~d8J=jC=hB*1HCm#pR1@mo(cU#J9HIIA_DZzjqSHikoo3Y^^V{3J z*uSTH?%3NkLoz?pG&`bru4c)((!2P4=PZ<6t|w7mt67mwr&lN2GPOLy+~8NLchYzY zuj&3f+^ttg*7C-DtG%V;9Mnp^@^;D1KmK;jyw0x7YG$ND@npT~9`Kr8U6yB$UO8hN zpXU66NITnRc zsc_7i{c(BLSo@<{TT~)r_ofr+G&j$zW!r967yU}J&azA`kITv*e%B&-Cx-3e6JtJ)eDjwmWGy&AzWImRp{9b1wdcqql2@V}7P7c0@5N z_WQ*dV=8p4e=2(QH%BJQd1jtbto)kq0uX8Ee>1f_f)>616lpR%Jnc1orCvp{QsMc< zt}qhGm3n2~9Z_^EpUi4zq(bpzy=vE1W%c7v>`#lM<}OM6A!*FWC28J@Y?dMC}# zoL1eTV$RHaKV`(vI-1>_hf5?^>XnMD&j)9_W+>)oDilxFE4T8ngRv4tx$I7&{4?|l z)1+5tTc(yrbjG6Jrz6(vkRYz}eHOiayCY)Vu=MkoTy>CYJx=~a2BcE_yup^dh5?d!I^ z688F8dWNbolmGjr8F;0ir8eeorRJ@AyR!afMk*A~)vPG<-_Ijs_C569<9KFXtyxI> zJ~okdw$1R=`A`1KxwED-(0k(k4eeH}`eAA;U5@AHE0)d^GJ9@@6-Q^+49EOTh2qJI zRTb~~eU;3AuC|gWuU0JaRNfKbZOhd12s;9v<)2td@H0NUbERgr|GAR+|7a^LiRMZ# zOV3#DU-NclUNa+2vm=TpYgV@$)+oCiPolh5v#lS=tywiYJKJV>(wob3BR`9`N3;HC zuGFlu|CMYaCxQ2t&c;lyu4l>YY5sMqRZ59tkE?YvD50Zjbvp`Xq4pL~2D z{lD3}nx)UBS^@BXzr-@ly|4RN>c->&TwR!%*V{G2F+WqGc$Q*`2eey}|E~9uqnrMF zoQ?6xsucE*E^XDrT>(X2&j=S?C4! z<0+o3SY<3K9d7=N!$f)IT9#eNT01(PBJFZxS(kZ)iWgrMT6mnFq*-z##KkA%jDM|J ztz|1YW8UfG-|uyrulreIV&1Qdf5p;SmWj=bR5)hUUbB{Uq$@e7Pq)aWPCCU?Gk#Wk zWtpWPf4@jO%Vu~o@A90F(L|dso-gl&{j!fNYn685iN|-DRGV17u36oH=jTL`bau^< z%+FLPX3bu)nth~9-{vi2L;peYse@#<8 zsFmG!{+z=^bERgL_|k#rt7>u+YHLh)qHsynq7PhFRRQkFKKBjeAsp5v+e_I!Vn zXp;$3gy$mYt2JA@x5a0?lVlCX>TFxbUyE3hr zkqX6=6Sn9#b>|eOI?a`u zRlMYK!=YdgHG;$k<$qF8TNrZqECp?I=l>2#~z@Zs-eNR(GA7SHE(DblO5 zPakeR77yy{u5EtiU7XiZLA+UA%X0Q}Kf8=$rgdIcokzLO|0J&o4?aI7nMw(_v z6i?QyZaS<~;OX6d)J3Aa*3W8o&U>W2Z8JP8=TqPdw3E!`mHT(JJ2uvy${I~K|0S9$ zHA}?gPqb0QyWmZ{|tY9++IzV0g8 zUvG-Vp3~N|+MiXsv4wj;``KkzY^XyU$diJYTOrpHj&#D9JtDQB_thX&w%Oh=Xr;BADfX%i6qfoJMjV}8nbyomh2pu2#lNyYx^fPbuZ-?dY}*Io;$M+om4Twtkng`^ z?N666YuS_HVs!8tOV>-5Sg!N2jiZZ+#L?L`qs#n^6g#GPvSRD!^U>4Y$9&_}&srZ# z#)mqO)1^o|+cLF0!uP-=|25-W8PajUgNA&EIC3}9d3RVM`zaz$NUVvGGuQ! z1u9WISF!B-!1_vt(RZxuP%JyL_$KpBAKtc1Esv1(mp}LUVrXLzU!IShdnN4EZ2J~# zG+mbGb(*j4nPqngnY(<-2w9>29cnho#AZhHrp6qzYJXgEo^ihdYNRXY8MBIee4mMQ znw?+YGs|fa>ZNeMU-PpYnc>L^N<8Q55PDnO2!(3-$;bE6|C`;at?%aXw=lfQ@^#H> z@1nn9TqIp)Y=&fhrb01m_WK1V8vk0cil=IGv&-@%$}3}IW<=Fha!loH%hd7+JMhqB z>ZQQbYS+oBnq`N;^L(O@S`y7P|ITQZoV@QQmS$aMEc2Qfk!HsfPu8qX`l@+Zr5-~im-2~uNx=I* zfI$uV2I>kJAZQ7JgkZqkf6uDj)-lSxo$k-3m6@WwvN*;}|TI__!S&%wMgm+yI>=KH?(ryr{I-8o|EEX%}ZMk*Y$ zYM))xevtmV7sI=l3eql1pGc?Kd1g(kbA)~0kw`nsW_WV5J6<%YmiU-VHOfBI(~?Q6 zuypyJ#4^vp@2gf>Jl|<5md>&nmiZa^+A+toRjd4WZGLvXE|FfTT4=I=%V|@jon@I? z9=WghkdGt7>?6!4JuM_Fccd}@x_r;OBxe=t_d1KCvn$h@8EJ|gQOt_{_Fx`LURKdw zO|LH3lPKqzdB)Ge7{$7{Nu-@^Gd!sSv*z-Vuc9jc8$auR=1I*$v+8Hvn(}>`@2gfB z17Ft>OJ~^(%lu4*V^-}6(J}esYVN}2dlKoDepaeYCs^Y*oMo9>9^qseRO|2IX|(C5 zNx7;gRa6NNwhXB4UMaSN< z8J@(xX|*cWcw;;*b49OE<;D6x*`0^_u+)Toj!C@9Rg`?R-}I~^wAJ|)k&|@Ejb^taZ#N} zJIiKxvf9hpVbP`w57nNQi;{JCtNWfP=Ig(n<@=gtwjgfGzSh|_Loz>8p_n!M?cx54 zk4##Hvdj0pA5*>WYtaTPO}}$nnsv5iYI%e`1KOeBn?! z&ol$SuUazKWGK?Q*4ved&5Tqio~~MQr4`k>_nau_h-yx?>OykgnN;g+o8d`+1-@XM zKi0m`(`vQSY~>shH0z?4M02HPwfb-|ut++)W=Q5|nr257Pu8sVO;>VJe&=$cyjHWk zW!6E?pNh1LwlcLmLZ1eaZ|aF+Ex}30@)mC0+sB-{^T(ojf7%!Ey|X>hT&G#)71k9l z28N`!EAyHek!HsfPuFa14dl;fN|aY?79IIJ`b2tNCQ3C}|Lru|itx_!v+Ay>#Kyjp zJJDRJ*>TO?+cl%i{7i-7xtit6q#9r8q47Ix66MvJWp<`3xc6co)je-prj|!o(GnZ` z`vMwm?Sc0{(_6UL&x&TP5}mMk*9f)@;4Eg1yVv z_q;sZcyqv!bkBA(h@^PIY-ovs6Wijq~j6Y|GU02q(z#Re3$OEDt&C)PK>xqkVq1 zr+I&?3+qOg>q(l;QPcaGW90(qhw0x`A2T`2GO?MF3dgM4?~nFYe2}K2=stJsyI2zG zG&|2^j+PB$nV+dp%$oi7V2u{VQq!o$Q=AcUeb0$?nr*j%+}|wx`^$b;Z+V~Q`>LhVG^){h%QCT<5vg{}F{}1@PuoaW zJnheReoUlSdRkVP`7}npK{s>H@Z^LjvYR8-{_>Zf@!t4p)z}?avcYQ4+ znG^jD2O{b0njx8=sZh+CeSTdl%C))K^W6OYx)##peprWGzcZ0`wqnbOSh){Y{ioQCx-DW4{>yM z&2Y@mR4AUS*haZh+4EWYM0urRAx+=0k3>a!T^@?+(Vb@1Gvz(P)0(YS@2I@=mX7D& zRbCd7nh{+FLL{ACS${JlO|v74r)#!$I*HE#?a{1yD^TwBI}>R)GQ(3l;PIlPlPk!4 zp6O}1x3sESmm5etSE^QhDQ+zzmd>sjmiZZVM2#t)tXkz7E0sNe)=Q$i($lu}Y`STU zRghchW@>qa_*?m|oP(lD#@=49>waF@9UY5irMH4=M{nsKPYX%n81k9d-!9EMyE3nt zk>+Vf6i?Qyvc{ENdH$S%J(}gLFESTSnIi4x?HQiz7SL|{wEvwv54#2O%B=qy_o`O= z1voS9zPrtzxRH3S^0ZWYSn2rlPhjconqirrk!r^j&sD7`^ByadU8W~dUh8Q`s}GTO zwqn|r)3Vp6G6%Z| zHO;}RJZ;M<`nXLjon135^D`BSC#zO9+RAQP_P_Ms<9KdfsahgcYP2KL&bCY~kD$Y} zT5b6YbwZz~*m{MQ%wC=4D#gN)xh3zV^>$?Co2}pwcN4qX-M<(YQ>VN{VlF& zy=^l*TUW)%%d)=*d;Hp~SHf;Dt1~MqCw*~mU2o}l{#~V6ysSE*oG+D^b#~2=%+EB< zjwqh1Sx&2{_Ac_i>y%e(R$Ud2r${^7GPOLSd#imlxUuF`q2!7CH?&u=tofOLD~k0Q zwlx2)QY^ofH4bxL|DH5oz|q^4Y0ZpOD4wiXopDgfGx~Fx66Mv3#jE8mRd3r2Pwf-H zqr2=gVad#od~PW-Vr->e5@f$IJ3osQ{qP>u;B4on12|^D`BSCu^47(zT2Q zE4b@>-lJLFu;w$0BJFI;)ba=!MLc@)vsy2*ry}XPe@A;Yi-(0~Z3cF+X`;E#&$6S4 zN{?Ghi=?wF^O_k^)|i@Jrg*Mq)xB6d&F!}b^H1_?{@hlPUX_1>Wb&YmHQG2YGG_N| zwF`>azMormd0CzOj-}V%E{@Kw{I+LCDilvvZ2j~vpZ!Vm^4iF_dD+xa;cc7YNk;`) zP2Wr0XlqU8f2RKycY9gI0G0k2e-l!oxz5XSQf7)zq*)g;&ydW|R4AUTS>=o?RUUtm zTB5vGv+C|0MaHZ0PdYOd-oA>Xl@Rw|=5Oyw)si))v+}++>;HX;=Q`EujA);4N44Ir ztiYL(3dNIEtMzPUXOBNKFHv5rTKeAcer~NJ(yO|lbT;{DHOuNB#riX7o>VL>YguD| zzDr`cPOmDCE)h&ttecaw`esHd6i-&Hau$^=BRgk$4>HbK ztX3>Omd?>2r3Dxk`Hx=K)Q-@di16kE?s(1qVyI%c^}v7C{a^6}#6 z?3&@2pJ|F6Q9N0(^~x-j?mFeQisdFZqA90Kk#@FaYI%gUEceFb3=}<{^xU1cmX&I? zL#xtH;XU2w`&sRBrC^KUs?QEOj zNk0YO|EQmWz78V1llIO^v&u|Vq9%XVRie4d)6zx9{Oiv#Mzh|o8It*#rr8n2lQj$F z+S!`^%&kOurDj`yDt3C!dfPI!Jff^|>LPBmbt1lxpnD5iLYj5!pUi7!q(bpr&8j=K)-~hfnM8S|X6doRulb6iNV`~TmM5OT*Bi7JqV7a& zOn$aks8)sjpX}A_JH5v2YwRuEwW3un(dVp1(%CgbGCxzHc(P{ev9UjkX^&>v9ZhGF ztLBKbTkB?Od4wH3bX52%j%efWwZcA4v+Ag*)MkC(cA~k?&+2TC+|B0g%DiSqDilxF ztSDDb5AvtFB+9G(EbFyg>G8JB@MJwpj@rk)jW+W{TJ!eaYqy_Oe@rDi!Md`ybeErP zn$4>mXV(nL{7i-7$(q&K#+8bm-=Vxqv*^g*1TH_jDhCB=-=XtCTDF|#W3_AcKL13P z$Jw4puJ*A$g5i8xZ&%jd%t(de$$C|n+r3_Sn=UF%lvn#$tz}(3N2Hx?Gdxx4x!)b2 z9IgBAd(XAo$3nBx0R>H$=SeizX;xJ<@8Lz#*)>BlKhreJ|4*6!lQpZ#zoluO zBK4g9J@q7=U76R+NQL6Lnr-{G?lTr>*5!B-<+YmS6kcXTXMr^9MrL@D>7o)bij7%Q z^D{oe>%Yalnr$@icl1EhttQ{6`Tp%%dUxp*zGT@9%lwQ~JLZ^G`~A_I-tj1n^nFE- z_vxb3L^{pRGq-Cglk0CDk!qb~nOYv&I*yVZNCHcN$6`}YU zLmZu5nbyomg<@9hw+HWemtN^ytek_3UR^wsD6jUj^b)4qN|S9fJehm%6st29&hxUc ztSQ#po>->2_kG3w@?waWa8VJ8^>)p0%+EB%jwqh2SoNk>)<5*k_a0J#+$DoU}=u1srYM2a0# zJXx`1Ea>OC+Zl~2T#hHr%c~Wux{A}KNITnRcmUu|ftwHiA~vFdu(shO4hKYiOz zC|3I$eY7Ty&aN4b`I!pEGZib!+Gkl)tczuKDHdz-BG>Osq@8Vs7rJHOg)!nJBN+D>E_#=uGSt@!?~cajqko zS{@;nsoT3;ZWqSi*aHZQvzPolim%hD}5 zs>=F0-waPW7B!DK4=UR9V&RF;)GYq_D06!v8#PCoT}AZ zI)GRY1{bSePF3mc-GOwADrr8n2lQsME56ZP@%4K+VYL@%y5@~1K3{Q5sv)UTP z#@st{+Q}4(n$#In@v}ZgNHkY#_P0pV+ciTnKO@bKDW0rZ>H@VDkY9r&%B%gX;#C(n zF*|$PGPOK{pBpFfjHq}}Q$>oSkrowJB4etyjm*%LphSyk+6Ue-k{iRL=Z>PGjx zD~t1?`ZuVEJ@c9wX>b!3KRex|}PtM>cjbsmwf?E&GY zhU@!Gq|@v?Q|Hmni@g8NTb8Ni5%pS)`YE_UfojlcoyLu1rPA)}-0zZ{QLJ|JxEWEi z@2(8gm||A!w}&e|crNmcwH1(?8589^GrzA`vchP@-w!0x&bF+}Ji$&(p#2^&5TqyX4RhHXLSx#MYldfpGdFs zvz(ZTl6*h0NW0p>49~AGy|Q9Wrvr&Mm4D*nGj&_bQ25jP6U{sezpq=pUmqKZ=8jC1 zR{tZ8{}*)oYhfkC`|f?oTwQO*+fwNv=jeEfw6knZx9XJi(Qi{Nx$5MR`!}@P+p2r9 zl8N%Qv!vQI2fwe`Uta5qv9H~ciIQeV6tiZZkC35UJE4MeUHb2Ftk^s^&uF%F__`I3 zH0x}e)2vAPo(XA|EDG6UAItUc=n2iTU*|p(<@-Q)XqL*IzgbZvcjTe8E*w!jSF^0$ z&}@yeTZbgdt2L_=7o7zn?MCJ_OYEB>-=2+DCUtU?wyBrkfEv27%QnU5$Mb;XzZI?b}vp59Ow|B9ruYet#*nWoth#gjE# zKfTS@M?YV)RF7G2qY)SXiu9@s6nlio8PY1pW|pZh49&axSr`I+WzM;y=At@3D< z-eY`Bo%BlG>QvlOT;(jw)ba?rWsN^x*Rr0?KhwXX-Tt;^Meno6K11;CEd0K=RVK>M z8d9yxTx4Q1BU0^{Vpi?92YaG4JGXjOh4M3*D7>vIKEAs{q@8UuJaxxAYcHP_QP=A4 zFF(u5*4KreQ!VE~&`VzFWb~bypRZc>_l#m>Z`TaV{7i-7xvFiHD>+Ahj(?(@*FrNf zvg$BoGI~XPvBGc@;cSRSEqsd-GTVpUtg=y>lZk~Q=M(TZ$hlu z8_(ZN3~>FO{h#cOj>*}PjjHVOAxiBn9cQD~DYl)J=OQClCZ3qt1wMs~wScwq#?!R_q;#rR0)8_qL-nL9Fk9>Xo7Bri(P-vDf4sYyFkm{ANSF_AE)e4@sJ<&|_?|Xh0 zl3LH^jH0(I^O_lvX2%rI)hyiv#8Z`hdB52lP@=q6v+CgYy^74v-nJQ@x&wr|uwSo= zH#H&RW3TKdRm+@G%N?_GxVLnNr$x1@)8-R3yD0eHJIt(lPu#nTl_ z572#$_P3W;>A%PEyu4Piy)zGk(@$Di9KlFqIflKC0=*)heFHLG(NYwKB;wM~@Q z`dRHaGxYzefh&I2GpYgrPy@k6qtGscArvLXPn(Ja?-kp3! z|DHZbdb={OnUM;`lQj!v{Kb82?C%aul-Ft&b)X|xapx=Ww$1P)Z>*hTu7cQTtJdS! zy#2ShSF>;=168Bx))|TBO3iBJ;np%D>Fk;znV+dpJXf>oUaV^NxeS!@Lb(shpU{}8 zs5sN<=**?j{uJc*1s2{^4)#hdOoe&)2;n5;_O&$?Vs;P7|d97-drzP`~NUzF4Q9(>+J~h^({>I+E-H|aYYo~nq%s^tf zPO&h2qJIRRzB0XPsUW<<*KsNBN$n->sHsc(SjD=e!4Pw3Wp^ zZ#An*Po>iCv*L;7I?Za2039;@-1ZS0d%I>x=4UDtPu6U`tK9E|OO)4YR`-DTUMFT} zZ(F98N4P(lwJLd>>sKY(cw(|t=V`W{HKu?2`tM6LS8A3ugy z^AJr{_6LxgsZ(C7SyfDZJSWo5wi%vi7N73BUK?#Pcd3HgzoWgevHDPJr)g5F>MfP0 z`)tj!rXa)TXGD>7cFmB?&r~R$tXZ83Rnx4?^CZeEHOs6_eSmNB`kjfi8_Cr22stP^ zH&Q3D_Fgi7QJ*FEc(thilijM7r>)d_*mK-lx=XcMR}dRrf4f*ZyE3tvkqX6gRm-}q znzx`6|N5TysFoEgs&$c*NITo+c&hd~TG7&VK?Lo+asQ5XX_jhT>uRgjXQ^rTmhRFl z=NFJKaKBw7-N+2d{7mz-BZ?<#wx?XH&-%G>mu9sN%9?facBYm`xb>Z{%CA;M`)^-g z9MLiF?fTvKfAWN8?=#252R=ScG*_)?nR}V-eAY1Am3hsKR4AUTS?cikjd358-log; zCCY1~V|6;PKeShbd_%Tvh9|e=@m2YHM5C?Szr3z{3wLW)H19IUdSh<>OEgz$mb`HG zv)Qg0lKGhm#gjG5Eg<*%XZ1E+rYBKesaZ(l*Zhh$+m@;2k*}|Lf!{TXjqy?BQvA<6 zsoB~&$9iLK{!27hYF4WX_bp|+GOwADrr8n2lQpY4{N3&?y-kjYNjuwS zcq-rJBge*C9Uf;Y_C9YcmM+tiSguoSBR{&88JM0urVsmoG*@q2fqS!de}Pc*B$d%PD_m4Iqc?n&;y#@*{#bwb_U zQOY~>`Lo1xm1@a7X%}Nst+#82WqzhY@nqH3dS^uWxf~QV+O&Smwq?Gla5w7WYDgJGp(7Crq~h1lNGD|mX-A^J$=`=nJBMRY>TJ-O$Pb`oozEb+bI>k z@+#WI>Ex--Il)blG2c6p@!hG5dSfovlW4BgERiv%rCz_KY}X9Q{7i-7$(mITsumf$ zJWry$QnRf(>(8+kX=huemPgti0shwOS0&nHpwO&8xu}0?Zw3mrqS?v}?B|)oKJ=O?o~&2a zvCPf)9W#6pb;@h?O1)*2W%RaXYI%g+JdBPzDcZ>>ZmrwDqurXNlcE|GKb3nTD)#3s zO0&+c%xh+(Ma3hECu>&yGL@c1e;3joAFDkeJ})8CF3y_a$!;EE-cekPujlVRZzU_5 zm7Z}wCncII{VbaGH&{Z_+ciTnKhrcjqIkMyvHjl9`t!CD<&}Q6)p&AM*4vh;<&k!S zrH^|>o4e#stnu)@SNn{;Y7)&=nx$(@-A~S&O0zC2mU+#LR4AUSS-$mZzSy4wo+z)? ztVsW2qjQmVnXx&Z<30-X%2(&RVV{YMS$`7|Q{Smn>o^amw{*{1mTqw(7$2R8qO)s; zVt(dBubJYRdKG2PAt$p_@v$zyvq!J(JOfw75ou>zrj|$e;u-aNY!MZ=QlHgF@j-(DQ`e}4_fO3Z|AdP~QO zT^AYu@`t9}Y{?Gri{$0vVtAF}3Lm6LESF6kLB(<*e zvSf;Lw~oII_Z{EfeGZEFwErH*bMso&{`Mm_&K-;1woEOLa1J>heN>yJtC3jU z*Mj>se0o?JXVCT&Y=Q@6syA+m(6Ej5N)TD4wiYMSC^Px)n&8nb&F-U(5Q@ z%^LEw&bAqzx|h;>P_b_3&78EyT`O?0ti{GI)00@PQ>@M)_nkT7=}{Lj$@x#LokxC_ zF*2X0`Pud@R?ciA7gVRYPP3ezq27<{ZV*)&8kz-M=>Jp*10o0@jt5h zXU%duIqOFs;q~9*Zq2fut!nm}43uiKfBSlO{d?*)>qcfs=4YhYF~yTL3+3AG0N>}k zOS5Q%wNN7M=Iu-^kKku@2gE2kX4Qo^_N%Yn#@(vbKD^qB)? zi@(191-+$Xn(O>5zjw6T-P<)oGCxzHc(P{e>mR>+D$UGmBV$g}q^sO{dTG{q;7l!# zkb%lOc0`-HUhbvrm9Sg0qFL#wpnBF@I@WBa`R)z@Izv&duQiFKvn&&v8L4p0s{Q`x z4gr*aXCXeWt%6*xC+RlL&hPIKfOKXf($2E{Odin=qS1PmJ7!MIKsAz;+yvcTb^J`n~h8p<+Ymq{YPxfyqHM4s5w*1Bh-2{n~gNvs*LVudJFezw$ZFqdi-g#iRMbp z5}|lyO0zCEmU+#LG|i4Ep03$iAJlIT=Ahb1P+7Ci1JCfJcab{IC^n|X$lvYrR8MM_ zDnM-?G+DIX((!tBoo2NYFRy03T{9%}Gt%ss;>ns7nuTX;8J; z*yRlp<<*)cbCJ)e;GU~qEAkpynR$e}EAR5gtgf>!?(NvE+4|XD{2O{p_xV}H#%?Vm z%{sd>ubC0eykm+dYnGgGt#{Ga!S`rZdy}bxU%xYvb~%k1p1;1-f9GYf;%RG(O`^Rn7A0G@^L2Vnw+U8RJ>5dP$T&!^`^pb|UR;%hd7+ zURFD__y%fk7SHzgHg6);I@@M=vYzF4c|D3Yeb@X9_Xl0yNdG5$W8-$Vd}XEM*BQGs z>(6`=NtYX&A(@}4P&`?)+HqO)v@Xw+D6iG5`Uyv#*4dV+Sy!)iBjyY4Ahw7X^L(8WAGEoGuFJU%km`3D;3Kci1ivf}2m4tmsW!2EU$azZsQ|dR2$J5e8It*#3dOA1Z;$jY_LQ{~ zq%t@A6KNCW&+xP`?G^FiX}xWkS{_jrN?q*kw~05kB~^^w&-6C#Rjqc={@u&E`}mkR zwYPLvwTJkGsL9Q;QmwNq6Pp>SP&`+)@0?;yWK*ZSQnh4E(2>8bQly=2Gd$^D)Y*%^ z@*v*q*u|pLB4qKb<&KG8>O5EZTGrCccbw02{q17u?3!VjpQ%thUA47SgxH04ea}05 zEzuM!p`3B_wqwJ=_w)GS#(cBb_2sbwdUU76R+NYm_y;>nuj8-(9o z-h#L3)*y-UTFt6T;Li*C`DK^4ZH6bB)hX!wt=I2LyjfeH>1lN;-~AlSzs}`*63=z2 z)j4@T+o(+}on135^D`BS=c<-jxz?!)Wj8w}%Bxk&{Oqf-BJFI;)ba@TMiYs9PbAv- z30Bzt*2`Y$dp)gaR4vA`yWhX=huemPg1!sfs;{jemOi*hIV6$ZkJN z7OHYy5VM?9O`^HZ&#Ky!cF`ugGOwAD78{Q!o~&7|Xlt5vnVv*>t!7p2VQ%Ra(R&SN z+YC>33J{0;*|$YiSVTc(yr$U;%gNvl=yCcBJkeI2*A@d?#dx}l)yvOQ@IUgv3b zI#13Wd%H5RnUM;`GgYhpd-nI#)ffh+4AW~ScKab{wjX4QpCui5ptqi1i| z49WaV)2!+Pp5n=x73GSb^?ANMnpM`=cO8keQ*)-4N2tz{4<2il244o3L_ z>|GBOUKY)IUH7xfzV)nVs@7A zyj_{s%t+Jhh~l}LWp%-Nw$e9)cj>>!@yxtdv#iv}T)0)M{H(KWmM4C8q*?9~U_E=9 zpQT>`n$qleCmu0so#rad(n~>vf`_~Qc9C>;&5+E`NV8*#Cu_F8tH&!Q&CIJci;jF2 zOr)KfGqpUTT$iisi!?PL{P0P81Bi>Mc-Hmm6q87<(<`ehW;*xVMbV99Rx=|Nil^(9 z`oMjbku~0RUQCqN>Q$tD7nVpn+h%xv{SonwGREV%xqm}@qhcwxwr|!)5Q*hV#S$y| zx-cBQT{9f>Gym5;tWG4a)Zcld{r9*xD#pY5PG^yJwqYX_)W6b-h zc2m%wQm466v#O7|-!77FB=edXsZc!G%aVPn^||?sL7JJ@dReW1yq_0oml>Pk$vIGb zRleFF+T3Hw9CF@DR@tY@?f`#EbfURVv-nZ+1a6KMNta=qA(@}4P&`?)P_A_v`_pI> z<+Yks<%J0T>KjCQRrZO!?yOY34{fw{%YgUAy@h*YW#TfPolX_v+5n=28MU+no(wcrb6*#&5Cm6BwS8fxxVK_d9|Nq zcJ})d^aVQGGPOKHWtRED=Rz87ondiWY%J?)D;+=oC7LTW%Z%u6M1!QaEAyHesZcyw zv-R45KL;dHUaMK^JCJs39g%kHqZyvW#+(9n=zeC~?P--$ti(;+ztLN| zD>|lMf)grS20|>IT{A56Gg9rC;>oI2-l9_L!MoHcuT^cU^|;lJNITmywLHRImiPj{ zT5Ys-(t`KK{X5#HSt&ugD(`P5#eO#fra5?(r)@n@yvP1MeMIfvuFPv@q(bpb&5E)- zZH=;7BZt=V^II@Khat29dw6mK_o zjk61~e}hu<49WbAG&`nvvSwA&tDFSoPdiMM*J@UoV;_r3vo5QVspS#&O0aq!byfWO z`WgC;{GRy!i`%VP(X8|u`_92cbDd_PHR@*bc4b~OBhu`c;^~^LReR|F>A%PE3TU-v zi3)ywdA6$s(yX&>h9{Y0dKdAe*WcAEVv#PgOsy%+b*`-$Ys7kemSfc+PclueX!=v3>-nOjFJVL+MotI@*cAjGC z)}^bhlAGYRvO3F^ie)~`x1@QyGOd}BHt&uoo~zilZ>y3u{`KYM>Xg@dSyfhiKcVJk zXWI-NNmj5!k}`{G^+yEO~VT34IDTkw6FfBy3C zM*F;9w^m^ngKosjnF()MCN?u7)s8u4)qel-&tLxS^`F0n^q;=8|NPC1*+0Ghwm*OQ zm)E=ehcEy6fx@&HPM-t{+ryVTkW{g*}YCz8&t%xh+(LNROh+sp6#&;NRN?^14l_D^4CJncLC zLHsSh@6XLMzE-m{_0#KjCem(Xh9~u&yZ%LX#;E>umZxP-BNJ7df1k-jal$bjDJg35 zCo;~E%+E-(V~Qth7Rv1LxzAnr_q<25ijPN{b>BdymPhy9n{QtycF#Gv_>^SoZV~7rW?J9GzV=9P=|RE*?=lS+Vsy1bnye9>ucbl8R`a zn^)$bv>$JzTD~s6z4QDmt69zuzMp}8jxF(A>1TO!`4l&AS61N6Nb|EJiYKcU%EVL^ z$}Y>3D6jRitZ^XiR$wT|cb(7hn@G=6C&A==DEE%YLx|g>r6PX#QP&`?)qFjrnT$U$MUaMK< zeDW!qXu8*m>J~FRweKA->Q7Dhn4@#IYH!JI)v8aX#?xhc63>;YWful@*#132KS9w}U5~KK?VvzK9 zWnMEQZSEaW%$oi7U{{3{Tfec#pTCtTul2Oj5qsr&MSR3m-nJQ@bXDL9d^Jb3IR%9| z#7EG*g}XJY+bk<<+CN_Z%HGns`FF<8qFF!tOS8_d8It*#3dNH(Tfei^-`TuJvt-K9 zQOX^A+cLF0!kSihXn947H#MOXv&U^$US&<|PsU3;*Lhl<%a`}Qd%H5RnUM;`lT}Oh zxV9(6cj_m~Ydvi{O~}o{nx9u@qKHApnpGv&|4i?{c6(aUtnAAB;}t9PmhSVk)b4y| zhe$fRW|WzqX__5TJXy1<#aA*H+#Xt|yjHV1)5YI3E7H!kOf8R)CArfqdj!w)v)U(6 z^RsTHk!Ij^ewO?bGoqVgMbg=odCiPSvtx>&7T|;cT1XNp!4C z$*8x2^GW#jPRky*eINI0T7J@H#}m($s?}*9uC7i_-rF_9GCw2Ljwzn2T2ZE(;I1Ev zpM0tx>i3sA$kj5tTz$PrJKHj~Jo5FmZoaGd(6Nd=r$xtYch7xy8#LX!+@V?eQCWK@ zlFqKoYi2~69aB76v+VAvYSzt-iSk-c%Wjl>q7Yx8vu%c_dMi>br_oll?ssYT-{RgC zZGC?aZ_KGC(Ol_gneF`UPR+i~t{IZ~nF_^|HLH5h{fZXKZWWR!uhuLPm9OfEw6iT! z%Ol)HE1&LS$3|N>g`DSSm4&MLS(oieG}mdCDs5iT@|8KeGOwAD3dNH(tG?qJWtZtm zl-FvOeyDt=HKd(wGdwx1g89MsOo%qMV*LJjepVf+_j{swV=mj1Xs*<(GRJO?)$Hr+ znjx8=sZcywv(>(1D7#EgqP$wO%+4uuoNUX~@(8gpUlo66ALXhV(rD}SjPv}gx{fQF z^(Q$en(H)6uM^oj7XhPLZ&&6uGg6^=vS!tFT#1e8j=O%viSkO#!dd-EX?FIu&G6)J zQkEoZmhNYD;klpb-_h>%tZH|asLAg?Pc&C*Rx6K8a$gQ=MDa|`DyyS&gp@aKmA(F} zYdwO@fG*FID6iJ6e4q35nw_0(Gn&=OisMQT{*{c_If{LsrSo%%HGTj@x#&bCY>k4Uk8ohsH;iFw}t zO#g=V`B*8o+HcJ4>+(E_#@zxI`i{9FI(OBjyBxvmuRliEPDX)vZJ-EvulQAex^e4 zWXa}Ji;0;bvHHEI*sh44k&q9?VqizWPNrm zv0SNGRc6!N>+Q<4W=1L$PgX3HD}9Unj9Y&s%4-$NPLFg-6N>e=&G6*@z0}(z)_4fM zJD=O^Bb427u~^=pZp`~~IiAFFonrs^k+t)Cu*A{XHN!DKQ=xdWVwGX6QFi&AM0vGh zRhM;{36XZTWomik>r0Jj*8B4|KWle@_Xy8vR{Py6Cz7LB_bwC7m71km=TBD_NoQB) zH8WD7c&=texpIm%lwCBFD6iG5vhkey(ktR)o$YO#;Ypt{9(}x)C3};6ac|*XKMNx| zP%9NXzT4hXy~{*%m1gPB=FR!+mo)3_njx8=X__5TJXf=#jK8?w8^Av0I^~s`<$PmR z^V}RP($2O_Est+H(BW=1L$Pu8p`S8~SQ%O%RIHB0_!MA~`a8J;?$B0nkKM3(2OwiY+}87J{v>1la$ z>4bS~clGW}WM-s7@nqGiHc(m7`Wkqmyjrz*T0ESepS^7}JiosDEURZ<#Sv|))WmrH z`|2&+?P;M&cK<$ZVqbr6>AvVVXXS~Ryj?RS^D`BSCu>&Kf%`KTd7Dl#doJ=tLUk?OE1hCYS3;EZ2Eiom$}66jH3SE7O`8X^I_DJXx{q+N!R9T%IRUUg>4o!^$@~ zTFpA!W_YqLW;N@-D$(YoD7>uCEkCK*>YWhe&|HM@KF#+}H`e}uUtaI9e^VcsV{h3E z%lu4*V^;0=M{g0(>@3oiEEH$rUEg#foo46vZxNvWf=al7{rdZvpS@+7S{@no5sNiB zW7cG6YLM6^dE0-yXa};6tyqoQ3ytiSlYc ztDgO=SeG4};mI8WDe7&kb&{O-#Jvu7N5<+KzdzR)Wjv98B3{zDcrN##nb+Ah!!bWo zp?I=ll{2oaW&M7dU5bVD&jTOpzJW|FkLdTfsIigO$-F*4^`u^vFRs*h$e#6Fvs_W=1L$Pu6So9CBvm=Wk}oFvG^)#z=~BO}({-Cu>%eD|I~I7rINc#KrzrFOhch_6*NJlV3*@bG*@a?{fchJ5J_iOe%mu66^bWoR%dBedY}9~NQv@VKdXDL{Mi^Hy(;&_ z8bKX(Zk;OH`i&>X#-dr9fuG4gvA<-r!l8S+pY;?q&nPoLQ=xdeW~(!^%kk{eEPmE! ztfe4lTc(yrh>i0(7>%}0q&ls}LsVa1&$>KMqPfz~DwF7DM3HoMWnMEQ6^iF-R+Rbg zN;KtiJc;sJKTBSP{n2jKD$>rj8J_J%E#HkO+Ux|>9OAyb-b?I_jT_BM4$7Zjm1wTk ztY3LR(%UsdGCxzHc(P{INnWYT`kNyY<+YmCZ8&*7>ut-_@(4TKvnLR3y4s2Gysn?r ztWHO*Y1XYM6U}v+Rqv@kO+=b?c4b~OBNd7#YgW~PO4h<>Z4>3yn#IrhyGBHMT@H%g z$MOC<_9Cjnc$%LT%}W21Kc6(wT&-E39Tv%5IjAwk(>06r_p$M>uZXbsA>*!@m72w? zkr&E6#@@D>IhZ}Ooc2538$hNi|Ly%-+8rHhr$;Sra@n38s^#ta6P2Y}XIFmPGb8e} zV~QuMR{H`fnPcu)?Z3x;s-@qJ8bR)N^R~_KY}KAoR|UIwvB&>R|BiNRRz0Yd`~Qu`DA8Q0S)FF-yeTBTU0HuKBTcg-il=L~b~*)J@z=RAQC_K8 zqGPf?{)8ZrcDBv%#LteZJ)E;dKQeze|9yQU{h#div+5nM#KxQw(ObID&k`Hw9#n7F z49WZqIj}p5=W3Rn-Sm`KRI1P9xInsw@c*TMxZ$nOYvfzf$e-KD5oy%4By}%{1TLKg;Y&j?WWAwcfHBmiZZ}cFZxW_WPsfKxuY{bgfFu>B9Xt zIX64coCBqkHCYW^f4@jO%QCe*qSH_PPR_W;ME?J7%(b#~2g%+FLPp03!chjm$= zG%v4KEP0EZfkM&OFECTfBV?d7mpKpG=4YLAQmT(QJ*T%k(6g>olvnc0N7xj~C7U z4Ju}zA(@}4P&`?)P_C_KdE3{wnJBN+EL8#B9pEgGX5C1pmPa^yB4w8vYt<@FtIev{ z7~g*%8FOEAo#jf!G9TvKKD=F-*33wS;<<`#eT$Wjav#m?P%PdRHhzbK6uT+|MYk0m z-ABEmjUBnSu~))gFDsh0bAp%ydrS9Zpdd+n;xmRK>Fkb|aZu9{Ku;B^dQp{YLxOA71~Y)1cTt!TN#7xRQZlkHa&XC0@#>RCv2GubGhw z#WOYgLAjQJVqZ<2^2*4V*_qzn(Hh9vHp7z)lzMb>)|m4;czb@u+rOiIepWPf7wLU$ z%xvTSeQ5?>6&phmOZ{xeEl}RB8It*#rr8n2lQk>K_pvc=^SKO^G@JI}CEGH!Ji+XIrM0N63-fRcFaTk*7K@HrD=tT5Rl8^FGaY z_Xp79tjw{~raY~)EEAgeBV^;0=NB0M46{P(EHPSBElSrpk(EHuSkY;`!#Z=C+ z8J^nR$t-c5AHySBr=Mrda>k=77Vc;IZ*g~QtZw7`9RgH^ zob8Ebntk8(vg83Y+qtz2B)wgk*UU)svLlM;YL+)tJ6DFc>GB4N@=DD@n)NLC?OqWd zs~~UN3{Sd^bL~~M$zSI=q_=RdW<|4dej7C1yG%4!Y8GFSXJ2pE49WaVh2qJY)mc!L zxR~5+|2>YY@T)beT95nAG&?)nGPOK{X4NI>{7|FK|35D_W-ZPPT%+mMlRGr48PUZ> zBI)ePykyvi7+(FGuUJ+UoQ>yZSaEcA&2Y@mG{uf6o~u|<=KR3B{!}Qt98aRW*30VjZ-0WeNITmy zwLH>JZ}WTE8*T2BPw`zptL=@9MYB5px=c@^xh^tR|CqmfTqK=cnb*unh2qJYtygFL z&98~_TFq)kOg9KHpSVbChNn(F@vAMdX8vF;d(v)qd0DZn6KU1N2x?;&&+Zhp9%x(peD6jRhI$6`#LPgryHp7$1ShtY- z8DG3v>#8fuDZ8K9cE`r5+tqlwOi$vu&eM`{CwJ$5yI8uB8J78(3dNIEtG%<8&PBfy zBT-(f+MoXtjk;B| za@XH3md>uMz?qQ>#dB4Q}a{mH_6RNK~&Zrv)Gl}wQ#p2aGPmy-9)(lU27s)aCxVO#EitzjzyZ;tim+MKCKSQ%Qo??E!egkuw zC2|{iSyuL{oiP7b?r}7=q=o>S?&<1(sY@g9hy}P<9@qH zx{=IlW~4&#T+Py1Pb{UoO53eW{a4q=EN%soD6jUi>h5(Gh_oA-;mMA7GQvLUC3pUD z&#?E!{oC8CS-cmgK~=iie1A%!xzf){vo7}_k~{KG_Y_aota@i^l-+wyl-Fuje%7z2 zMcUamtJxIwHpOxmV_I83saRN2g}Toe`yQ^ua;0K$`E>`OAWW}%V zInB&#BjeE-ha&B4%hd9SdQiOwZLD?f*J=4DdM@i;*3Ev2dWJL-R;i<0Qs|4cut?e?$z1p|vyHj>(R%;K(OC)#Ypr}u) z?&P}4&(!P(Wh(Lakuj%A_TS^|8t8p5i)K-oKifv6oo!i}d4&D5jE-tOKfOlL^+}O& zPqP*?xopo4&1yz;>uHg6c4b~OBW>m#Q9N0*%3D;nQXEjUK@oIrcJKJV>QtP?P zLeZ<6f2Ox^x1ZJitlA9hRP*_oC8Ic=eVtu1B=a*(vm=Vuk%^@(2|zR?a@|6>Uz8BC0wmb1Ws)PrdbVM54KBJxjir^(>gHE*bTRV`$NWr%;>n6t1-`PHrE|Xj9>??YYQ?G= z>MRgxHTEj$g1_Os)hsk?Cj|Mk-FIkKecCSjAd)*WQ1=v1)-3%LwH_$n zBbq3$)vQi7@aIs7wEG6KGV=(rhp*tY*%>dJDnb36w%f<5Gp4eV^$~p{xh^VJB%1GT z@pffaGb0s>C+k(SP30t9`t&5?z={&wbGZ`TaV{7i-7$*NVSTV)>}_px5zbDEn!!^`^Bqewg3GPOMN z^~Y+<_q+aY*4`KQZ)mrl70b##XrHl7ELSR)e7x_>5l5F5%d}=jDilvwZ0(*1PG#u7 z$DMvwcWY4*y;>mB&bAqzUtj;qdoQbfcs`EnE!?YFeT&>Rci+$EYonj7S$f&%fXesb zdAnvv=4YB_M-VtG{p8$>)PIlrG~2otd;~1bI@>a}Jo5E5FYs0Q+>&TBd$FGN zzPNu!do`--mXL)bqKGlBktf|(oGj^yJF1}|1mfo%zmiZZ} zc1-bf)#6p|=VrP@`|ok5YUx}gbKzDyBJFI;)ba>tkrN&JZ%4HGjra?HHhTY#c5AkN zTN-b)w{%Q%)ryvwiFfZ~V3BloWnMEQ6^bWo7Qazj(fTTQnweMTpc?7FjU71}>@RHC_3v#crn?FAyaqX!Bv_#t3Hp5dV#f|phv65v^pzlWR-_Y*0tg5q>E-1ej zDb2qty)19e=SAS??V913pJ|F6Q9N0(I#Z^y2hX2(m?*DStST#M4diXh)ba?`S)$Bw zWUM`SCsk*$x$VKLWD|YwV4}HFv#O)HER!_rMl!FNk*3)Z#d9^weyysP^=rvQd9`MV zME`i{srO>abBeTE=g#od-TFj`^7i#d8%)eTR%iEtYb6Nt9PAmX$0T@sX$$>uk%^@(7h#Mn_d1y6&*Y|4jca z?$s$& z#@cGu<#={z7JsJNi&Lijtg|gs%Ok`bd9=;Yx*zI1KdWrwebmHS-Q~Lz%~hHu^TfK_ z@8{&^Aa7SDGBZ-4c(P`dXT0C*&f9ceE>T|TXCW;%PMIR@Y@6Xpork=p|8^Q}Zi_h4 z&x+=KuQ4>;iZan$ty!Nj6iH{-49WaVh2qJYRo3`^e*lzSmM2mE49%t+Kay>kS{^~O zL`=To&}b8Xrl08}&b{kdZUrL;bsshH#$2u^(OjolMNB?Ik!GD;nb*unh2m+NRlkff zpUN87D7!pQqP$kKcm*`#c#5>MZH6bB#fSPjuxNAo7_qv~E$`NBPm?occvp9Q<7n39 zdJ@fbn$_J5{^U-Pbau^<%+FLPo~&7_14Nz`%5F88D6iG5Vq;Fv>=n_njeLR5woEOL ze0|LesK9sWG}@}*dT-HNxWmtWXqLBBtK0F$p2|TfigCQ8S!Y+~H8WD7c&=texw1nV z%5F8eL$hs{^e8rVw$1RQqvB4nWIfOGvSL}O^!)r|mhR^k&3=jHDlZF1^*|-X@^84> zHN!DK(-b?Rc(P)({;9-Lbl6{(%R*Z9f#hYqZJAmg;l2<2fd6(HZS9*y9oIL~ z|H*DIE1H$u1lil((tVoc+)O(2ufH8H>+Qj?$)eMsIJYxE;I1{4E+AN#((#kfyv5emd>*LzGp@%9J6Y_ zKXi9MzXnnrzOthAXC5ZfDWaOWJAkgdynBlo#eD;FJc)ZpewOo{^Upl3*~M-;PSzddqyK(ANMo3HG3hq8-j66KY#F=r_d8~f9< zMcUbxspS!!6X&B|vF6-K#doJg##8`mnF;P8>gSd{kue;}75Mp89GzX6*33wS;>n7I za#gV|$FobZ%rc|7+1WP3v-MMqYO|b5C3{ZOES2_}m-TZ}qM72Q881r}&7T8^X1!fA zB=a*(vm=V<28we=Aiz54>KjDb*_Ns05&o5Ap!~NZ+U#H>PWScO z-om}BS<$TdS?1~9(y^b-G1L31Rg6OR`1?&5TqyX4O8wn&m4+x0Ngu5$g3# zzdJk6tY&ovqOUcHw6ko6XXW-voosMgKZQsVcivap>Gb;RNxrXGR#<6YvN$@sW;o_& znqo&3vtplK%{Iz92dd?ut}OL7U5+Q|HP6g*iiNbli!a-jspXNjr)Shpf!`;Oa#}wH zI%GXtqv`xyqPZ?MR>YL<4ns-r(092=I5kYm*q*6S8G;#dffU^ znsv6#@T8xD`C+8l))#P|pViHVmFg_rnODw<=1R?y3Gk7*NIJV_Nakmx*)he_HCvsT z-D)yXUaeW}p>eBLk#@FaYI&s6QNfwK`tsZy(ko&2dRAvtRAyj5-z1u=HS6y}g`~GD z^O_lHnjKL*S+nXjuB>I*G17mJvssIo*qDqlzR$%?BJFIO;i+}=C~Hhaj3@T>+x`vh zQ!FzGR*{#eDc0qAK3lPPHr5omV)v8HjLmS&&$P&RMDa|;in4m3?oTyl{&P8=M0u^3 z)!X&EJ*8M@Tc(yr_*bS3Nn@?fMjtyrsn~j7j6YR4v0Ue4wKL1-F~xCL{)v<8sSbFG zCo7h2iprfXDE7Jh6FbJJ=(%-{NIToIF7t@;h@N9pEM7M4hJRAA_3V@18MQ;P+TZBr zS8;SvRDRntBNd7#D^}U3N@dpfb0^BHeJqOgCufWFy6lrqTO4avYastKPij^-2UPYz z6aDv=j@LNrysUOrcpop4&aN3{=4YB_M-)%itSDD%c~rscl-FvORU^@=vp}TXNT!xY z+D><`$3|N*l|OZ+e@DC5vZ8r^OEmAyWzNzJyjrt%6H*JKJV>(o4Y_$Lq1((5sFM|11&FTih zd^&}9RbD@>)Mj#|-OPm!FVk zoozEbsZz6BC&k8!KBZaTjog26yZx+kP?c^9ztiGAd{vKf~78F^aP z*14-ZtM>b&`(~M==}fI=j(v2RNT*fMOl`K^-0Wsysn*5KnOYvvd5csKlWwVIlMhoS z+pPJ;f!nJ9Mk@E!Q*x2=a1vHPsald2^apqhQZN5IcY@3MSfvm#06pnp$VZ9&r8 zHKWY@Ood|B?6(JZyyI!x9)U{sm_FR=drp+|+&trJSp|(MKHj!WEswC8Wz_3YwCUD4 zZI6Ix)_Y_)HL^}K&A;zz7LIKde*Nvztg|cgni;83JXy2qo~h(6SdCoY^DfPj9r8Cq zi?p+ChUeGUSH+zLIX>39R^607U)8^*z3W=-?5TQM=j#&Bb*fd5Ox_F44LbcBlnhww}H4JE#)nm7bPe=H!PsndHh-s&yloS{|Xdj#0m(z0J|=6FB7- zf#$jNe(KS&%j>;Q^L<~d{EyE#iKVkF6Pp>SaLlTGJ{N@&AYJpeZcUj;r`h@a_!!k{ zZ;#9Th_th8hNo`+9%)wn*U1<6v&wEitJ`{ND_WQBd6(q-if!FyE(R7yXV(nJ{EQSk zrkEA`{ED`I!`3gh8!1s<>u2d2P#v;YM4!7@m4*8H@}PIU74+=px=?T7KFzXvAS!0| zt?cdbb5f$2X5U%O`dwmZ*4vf!H#5?_?1eXpv&hJ01+S-n2x^8<*$GtKuRZBGQwJDa)t{Im3nF_^|RjWKy zWw*eukL97-xoQ568Ig8+&eZZqtGJIeOYWFC&(|h;CG7UJI{UT~9s4S2nuFJARy!W^ zz7KC#<~1|YJne|$$(mJ1RE@IB^d!nFJ#EwMZ`Ljf3A_C)nx(h0Leph?63umfR{NAke%9HQ^*1xpG&`brvS!siQ`s%R zn!W!X$20RycZ`lmX{7i*oR_*skJCBu#f;7J4es(5qyuRr~I?c}SR(tRqI-A6I zP@-CIS*Dgpl!qegJ)zs$?GS#gk!Y^eEi)n&W!FI=n!7SlV~%I* zma0#!PQZ;d{Wm%Gx2tqZHk5O~P?G!oBJD=9I`atCCDoT)W>~8I`Q<6_$Uchh-_UN= zs)ASZwoWxkwTb2XzE-!B{_%=d`uEiPT4z`0H8WD7m^J(D!OmlOTJCzO-2%eijO%+& zl=Iv?<7-t>^QYZNv(B~|p8PBGel0pYh)i@YzR#!h?`XGXMYB@DBUb1w9nZg+=6k9o zZc=X>_ikN(zgRlUW?1HDDjc(FPl%8qU90W+TauD))9gH>TFx^VbuoI&GPOKHgp4Xv zN2++^jq$a2ty}SCVlyKZidnT!`&x3x zP_E6+F5{CZ=h^vP)rz$4Lv$91v>Tb>$qwVB#>SdTZK?}Br&w0A#7&h9g|9;=mTCT- zRjfZ#4vyZg8IJjx3dM63E6TMh0Xtv%?{PMsno+E7Fy&oeEf8sETc(yrIBkX%Eo=Pi z?-FfpE6=su{;9oQmR^Bs&BsTlpRZZP#%QyDPai8uk%^@(8;Hh>cU7R#_-^kEi&#{}y*^ zw!T}ypSG1~uGB1f094bzr(U!Ba!@0RCut!6bl=W}wsZCROlg!7@$ zW2(_gv)XNYlAqPCq<1vyRFi0~)2#NN9!6gwmY;RD&GE#``Z`Wy-OhzPCo&ex`i^KHMI@H173(wBaP)S~aLmtC zD4wiXQLfyO=g+83lvgWOm7X*=d)qR#Jc5^1e%k4=(UzC>y>|Vqwl6Z4X6v_FviqX9 zbevCIsad^Umob!Pon4vN%t(de$(j}Anr2{hM1Q7bzv|FF4%#B-%;;gUPZyI}8*Lqss zGC3cYpO9+T<)E~?aZ5skNF_w;)Wf7KpU7ZHA}L&-QVzSkw1RHRz}mMw(_v6i?S|W&akGUEUy3UaeU& z7wH7BWZN9i}<=_@(A4&%O_GX{(uGHCU zKGv-;63um*)$T0r&FSA$>!#q1I=eEjnUM;`lQpX|gzi^AyiJ$kNtD-WmbDLlEt7V( z&G1y;zmFOlYw~a>Dpr}q`zkvu-J47-*D1E$ZRKWId0A)I49EOTh2qJI)n3b*VqJbG zQC_WB<%^vKBJD;pwLH>pq8)Wpus%5L3^yWU`tFI0YcyS!C(&G`S^9C9?R>UcB%NKE z*UU)M?1;YthGh`{H7;)ESzU zRgSMvCGtuM-)$1tSDFJWpv$tkNYY-L{sE@{A!xH+1r+> z<&oxP>2SLKYjqk4)qeg4?}_`Tc5AlU&BhyZd4bQ@EW3!tnss(%UNa*ViYIGU{ZIE* zStz>|NTR$lGN$gX9IcCgrCDd&3{OrsCJImaC;E$+Lx_xh?easPOF4L1}uG6gcKNBHec}cU*t{IZ~8Tr{U#d9^=DA!_R=j9URwVGw02O4o} zR*`nLWomhZIuCx974r3~YP7Y}-N(=UQ+s1$odH$LK=Ci=Egi3P)@hb`msO5arbs%w zGOwAD3dNH(OKqSUO*zHv(JW^#r~Ub^&^>$@mGb2s2BZ}v0mT$d2GrK%bqP#jbhO|G6 zSM!OpZH6blir6@HRFJ*kWORP!G|f`Gpl(;wtXokgn(O?m?o~;9Jn*y5t{IZ~nHC$5 zD4wiY)p}~tl*{uZ%4;=C)*6jCp3+iUcp_vQRt zV!2MSL@1+5kIyn@S~DY3?3m)|ie+}L#8NKHlPIrNEM6`5Q$XSRZO-s)XF!d-EN6J~ zcb}(ORcD)8#q|1Kq*<5gNiw+Tc(yr+UdzTXUzPp%%}UAULkvP#`+R#djovFJF#4+*mioBn=eqTw=2_{8EJ|g zQ9N0(tj(wo+$+}aeoK_sDptFr(|PlZuFF5QQyrZi8*SyVy(fNNvz5r0JrKR6yXrjL zUP;c_MMcuAvuj3~`I!pElQpY4PbD(uW|cbS)tY66N$1hk0+DvMWomhZ+oJiZMs*%4 z@vLTjwW7Chub;(7F$33Vy1YP|fmixjA{5?W|DH5sh@`VC^O_lvX2%rI)vPGj_PPIL z`-~Fh)taTp$JgyddR6|3vnlvpex=%Ik8T&}zr}r;RjjTXdMc|~f0|aJxlXgn@8#93 zw`)e3`I!pEGd24`xwe}1w?`(*Yc-25$w0YyRho6NR;HFm@Uf%1EO+i(oTCder zj`MPfC9VVR$iYR4S2YQKN^=P&>E z`p;i8JOAlR`_JFJ)-wO}`rH2en z=^V)!#WK4vGhTnYI6AvBt(lPu#jMzG58mspnYq3@+MfXa{>(h1*k4|ZQLL-wi1fPr zlTH^Ot!2?_j??>Zakplv08};W@;r&=y4aYxkX41_C6dmr8D-{Ynr257Pu8r?4XQ;` zE}BV{*T%+*MNw0)h>uJow67zXS{@;1%>3YMIHKL+JHNK>?bxkZb&Xff8sUxhmhSSi zI^~x5`1;$WS!Y+~H8WD7c(P`pTjRc+Sa0wK~a)|%m|6Ji9^+}6Yawna&G=hG}mdC{!-qq%RWf6&aTXBW<;80KWC+P0wVEX= zrW%?fDregaPxkY0eu9sC8*RLB(sloicKcb;taL4M8dGoSnC3doqDwj|+*(GOb#~2= z%+FLPo~+sWi854M>Xg@N7RIBVa&KFvmPhcj{4U=iDca;b@fJQ$)xV>?nx)1=Y+Tc< zoBwwBSt^V^LXl>jU76R+NQL6Ln$>v*wX?qXmizBtg5qa4i;%=+YHb9tTA`Y z5L0iu0QHQ=V?|ax7BF6 zTu+*V*J+khp6KOvyhPI3HA6B#Q=xdSX0;2ic0wv$`d7sy%4;>N(-w2y*xQz=bJ{{NVCqa%xh+(Lh($^eo(IU zr*f8W|2>YQskNGAR)Mt3Pl&X$ZH8ydLHX`~(ZdQkt4cKca%8&_gu zZ~JF!mYY79UAWt@e@~kK(X6*C^O_l{P&`+&>UOJj8*^g*^*txbEB!2_(X96kBJFIO z;YsfznjQIBB6WVo@BHcC(O%7x8LRd#a_@F;={Ray6&pj6H|Nix5=m#*49WbAG&`nv zvS#ZmAb;B79?i0XWR2-~inPmVWNLYY+XKiOkNS;?(Utvld8%FsyEUslT9w$?-))s> zuG4JGxVs2gBzNVY#uQK1tfHw(wTE*!`tNZ(Gq3ft z+a1mNIIe$3yER+S8~d9Wc4(HY{2zna*R6CjubGhw#d9@FUqC&Ya*9cm*J@Us4u8C2 z(q0k$D#+P3!;{^!_*q}wr&9d?UgLPF^Kww?gQ|6+`ZEs`&2@g3d+=CQxH(pS)_LF= zlKGhm#gjFwuJT&e!sU4q<<**1$6Jn#oo$&~9${Wc9<iVqJtiDAer~CaLz7HwUT&dY{{@>d*Loz?pG&`brvS!ra}Jc4HVs{HS2F%`X%>1X;`W$$X1sxj-FN^Zj6QI=?~)2wodejlJn?#MuCeKVqX zre@X0!?^}1qB1kP6-c7IRl3r`fh+)vaVi(%F@H&5X2oWJK{~&9Zlk{p1zRx-8Eg%~DHb6_iOk+h%x@O&!;H zs4SkAf0APB`|#-EdP1?}y~yr4T}rXet{IN`87X#5@npqvu1qzSa(daLSTeYf&Z}8x zTc(yr*wu62ZOl68v`UXut6F>I1Wg}DB%bU1tg?5$HjHY$U76U-h*UeKc(Q8Mxmc;e z|MB{s>vQwk*!cG!*+%ajMB3Rl!;^d*Yt>N>iqla}JKI>AWj$Nl@$T!RpRZZBRYw1)K5Vcg?fe0 zQuX%j%Rou7Vp+*RdCer2>%6RXR`|-dIPSHmOy8N3SguoSI~T&y5=Xbr&9r7lnvWe(JXx{I z8CU8&eiuff{5gtswNQ~>m4BiGitoUmRn%x}E$cn;lbVHQH7<6Uo1V4sW8Rp{3?!QCG^;v~f4kDGvn%tO z8Ifkk6i?QycH!OEd7$j_28r@o&FZva?p5y<(RTDC+h%xDozF9LekqcLoz?pG&`brvSzh+w&G_wH>&?0$35k1HOpQ*>a)%Qk#-}QS{~s> zqBJ|Sm`djv;j6CiqyLk=UbdZiTZxQ0KcKgC%yOM#=`EuI;Bq74=@_0kBzo=UHZC2|Bm))R;O2Khd@oUF4yzMRUI?6NXlh+66Lje zrE-i$Qq}@J_gYcSVn(m{SXGpK)m5rxH$2MrT~fUzdvnI*8|pEWoBa~cRjTE7HqCc# z&8oTA*)_v5KU1N2vTC*dx!*ZUEakF1iSkO-a&8bAZXf@Ow6iT!%Ol(#fF4JhrLve$ zD}PS2tOU_)rD{httG9GdZ5GYa@5x=;*WWIZ&aTXBW<;7DQ#@C*qFgz<4b8eN&mPU{ z?6!2Sak6cOCs||kI9kmr+8E=)c-Egrb`N4 zpH`i1H-6~!%oaOcndyx^k%7X`qS-vg z1-f~AhNr5t%n)9Y;!QP(81J+$D5;j{slwCcdlJu;o)#|Yo*q=|?3!VjpQ%thS+zRX zpyp{^t|w7m>uI$P;$EiYH=J#mS{@ngi*2lR`mwLz_V(?Lja6%}bV1P*(p$P~JxjHY zD8{W?HTycdGOd}B3dNHZ3+3v(?D9N&6f3WWo!9S7q@8UuJh}6O=*{nnZM0Qm^zn0V z;a<&RPj!EmS52b1&dcgXm7iX3xqnande*6VhGc%GLh(e+;vrP7t}eC@&Be-S?T!5|MNAgE(U)VASAtAnb*vSG&`nvzGf@c z0pGcjD6fr-srHb|b;=a!bvY6Q zB%NI|%FNF+&5kIZtXWa6Y1ZX=c4!vD5FqP#{mw+%*_Ns05#mc$T>h&PZO*_ae)jdC z-ohs|Tgxc2+UPAEYc|iofBy3C=I`PCx>=OHM1Q>EVpzHuSS+1onb^!og=1Fj_b>na z<=EGYGr2q7#{pW99>zRLg{cV5#@-MG<`43CQ?tl1 zbZ_IkG=F>1)c?)V)G3;^_}Jxp-k*iv)h*R_k;!wgvuuWDex}0lY~70V{k?dsINX~~ zq*v;eS(+M*^QqFUvn*4~BjdAD=~w;jHG83JKZ`u6+4>GzzZdyklJ6^4ou7XG7f0uV zGp(7Crq~h1tk`cauk%0u%X_>#GdC~$r!R9eGn6YQ&!bnjqD+)?L^b1SwX-MJXuWMS zJUQQ3I})5%Z?yI0ofaQ!XAil>`wFe!{hMf}+4o(|5*4$u$UA7gT{9%}GZl*GYF3o- z7Zu8Gm69m0)GS#jMaRyUGCTVo)=Vvr5FKm&9cQ9iHrpxtIZw-aw%T>!n&}+YC>tv^+Oj z(K1Kql#~-Si{+I$*yVe6XcnF1vr_%Z^D`v#GflH2iYIHfz9)}f+ov>(FD0YvlqtCu>%eE4}5vyp@4k>u2TreC9-?UEDmwljxY;JL7&RsOP`E{~GtIR{MKuXOFO3 zxVLm1H?50~)!D`!;MdvHwr579+A+m*Rof`nRO@2XG&iqRtcvH(gu~OT1_*DAa{E4uM=StNQ$*{7$5<|7#t{Im3nF_^|RZDyf>-$v@ z9_ad>6Xmt4)#;Z0wqucYwqrCEHR-;*NJF4D@> z@(6q1>0$H{T8pW)v+T4QZTl80`zw7ODA8Q$XQ|xzJ=r4Z=H<+5W~4&#WX;y^p!Hq9 ziSk-Mt9aG>HIa5XjTxTGK#jVNIk{ZD0cX{ESo0GZSGp>E*KcCEPO-`x`_qcVaaRUv zOz~vJigIPA0N$q_ORZI`;;G-Q1tRTin^7!YmdMzzR6pitI*z?3?%&bA$e1~Vm>A7g zX!<$n^EIpcXUU%Q@9Cq~sOVW%GRFQUmBezLmsM6G_Zxe=GOd}B55;DRCo8sox{U8coHMQJn$7d?`+Ed*@~vNG ziKVkFGnpBYYR4S2YQI0agI4jB`k-nnAeZGyx=r!a`}=w{|BiCT{$|=4p6aIu%vj3AOG+T{~UA&Ssn`yqUT6I+TJy`Oy&azBwW~9O~tM-J* zxPG6S??OtX)9gIsXO-b&_gk+CsYImR$P7>N#ySyd>}yBofAuy#q1#&AhY`3d6a?8>xeMm`jqDQ3k!zoOON*-BTrKlkwc znR(vR`W%=@yU2Nt=QuV-ues-~SHW%{s}7k;7pgyvDUnPw?~Gn~b3SJ+iu*E9BZ?>M zRlD#i-EN!!-+zx||C%GI8NI4^2BudFMB3RlqgQeu@$>ICSkZ%l)^wTeGZj=vTP&v(&m>#yinmr&;9y{28?5 zlf7Lt%FNF+&5kIZtXZ8Yb01CdHs8rSt@X2HorqUm{43JVwoEOLP$#+bvg(pLtGx1Uwt;(g~hmbAKyKvSh1{RpkV1T1BvBI z#WL6VGnK{B*_CO{j7YI#if1a82vDbxR5DOdb~9t5yjrnX%g&=-5%Ovx?QEOj`Sta$ zB-`aP!fk%mes{mR?k(KsWj|8-fWLizQ0qM2vm_jRk4#qW0BK)2qq%xq?)!trd~DtmliiRXQ~Y)>M+PPcUU5+D21 zl||ZFHp7!nA`~!+knzOij=i#bt?%}>$|}}ay0yl;EN3g{8~)B$g>+df&^c&n%rclI)t{n4f80majfh zJXf*gENbT(@HU-~OO)3tmW&UbN6wc@vCg(kEsv-V%J)k&*7C8Zt!A}5fUbnfYSztt ziRCKAa?VLR0q5#T#nIW7Y0ZpOD4wiXb-Ti>X1!%IEb}uJj#;(eAI}_XcIHjp&(3J) zIzJ}TX?A{pH4AB0nE3kZ?-yw|lBwkp%@6#>>u(Zka#Q*F{;9od*+#N51N&O{yCi26 z%WRkKokg*`@=s%mS+P&&pIDz#>AAmKi?`|G(nNW!pH+_5?~avXoo!iHd4x_V{JX|bN?pZAP13BhZHDL9*S}J+TlTY5g7~|=uKRCsub&l7^iYYIp2Ih~aT;x9KY4GxLKWflf3n-p>gJD14$4=u63um*)p@tMGsfFBLoz>8 zp?I=psps*1-fQ-!*U$CeM^ zNW0b13{So(bz3ncH+T(cZg(fj^d7X)Rxk2- znpK^rw#spNo0Eiq%R0Mel$oEYP&`+&tYV3bYwI7kl1!A>YL=ZdtT0{F zB+|~dOf8R))6Dr`^5&|G<+@YyV$bDd_j$C2IU{d@YT&3d~subGhw z#gjFw+XE^mk#L6E^*txbt2N6SD0j|y+h%y`CK+FKZLCMt+x`vhR;*Z7VkWA~y`|$^ z;yT6Bfl7_t&9Kb9-mV#r`I!pElNGDI?zMT@<#=`}R?%uE?QF}`@(5KP&JY{N#_R~x z9OAN6y%u(>w!YWHpRAR5u2d~=Kj$U9U76U-h+^Y0#gkQA-|6m8JWQ0=`q_3~n$xD{ z=T#Xfx)xb+jXW)xW%{Ii9QUMVMYFQfVdqkB>Dbd|n(uZlvhrX~On0~7Yn^2?+RV?$ z*N!=6)qa0yf51n5fF81H?;`rBlTNeq%>IB@4|P1HT4!0NmPg1!@pil-TV$n9N}s9f z-_UMPE0&eLvvf@NmX1}MSiY}WbsOj0gtsg6ni;83%$oi7$O#p_V!11#)&+%ksZ-8# z^ZS~`_YsYzyAPS2oo#bGY?KhwXX-I`SwRK?SJ+f&@MO0$q8$CuZ% z-mV#v`59?;Oz~vRigG0j<+FW>@@mZzv3lQ!pY^t7YIy`d%U9(qIik&qh|IB%pr6#N z&ZwwVdwg`7Xs*;O-6;9gMQ>N;H8WD7c(P`7CVAzq2+mvSzsGSjwN|q_baX)NzId~Pk#!k4tLr=I|75SHC1PTwQ}eX0cD6&c#7us^6H8~;49omXh2puY zWq)^_vdi@(%4=22K0xxhZWSid&bCY~kEn*2cDxgpuq#_T7EV(v>)Bep{g>Cjpr2dD zGw?b;OP_N(Jz5-{U76O*Nb|EJiYF^plq>r!eTIIQVqr5{1+B|L(S6Nt^FFlA(AtCV zmECJ$x1X)wvE|S5PdrzumUWIlSxl;R^YV-~^D`BSC#zN+$CX^8&jBUMYyGU|XI}{r z=~Y=M?I0ShXYpiId(Jr7_#>mJ$|LKD`(9KZnj+Pbc?3&@2pQ%thSFw$9);QYZc2mRHHSJw=Gl4BkF`gwSMQd zc$4EfEpM#ut$J?4S4b1jb*kmGrxc-R_T80%8dE$|wI7sgJA2rrR-c4Tk*zU%w`?bau_K z%+F}uPe)d!c(Q8iC(Ceh{`Ea4$}3e1X*@|j#oF7JspS!RDj@0eOQKCj0Dr?7r$H$P zB~L4wl`4S$_a&O^G^?&pzqcLDdb={OnUM;`lQpZJic05<-*cWQuhy(|lyVo|wi%vZ zfAr|&^(;9%zATh-QWi>@)h+Lp4jE>_`V72Mvru7I&GolSv(By=lKB~Fc1-bH&1#=C zC*j>kQ+%h__q<25>L-Nh)dG=rwqj#5?^~2Z!$Q;#> z{${?(s|6zMY|GU0h&m*FUB9u`?ONUo_xA1eu=p)JY;7&;-ej74*LheemU{&H_oVqk z9GzX6*33wS;>n7Ia;-Mtv-64aTE&WVuJd@?W_W%b#Ji2P?y&TklKxA4Lb24b@7Fkf zwn;44DV7}`WQ<++3ySr2&2Y@mR4AUT*m|AEpOcp;uU0JCo_xEDw=Gl4BV?bnPt0}x zi#9#F{LE?DC(eJa?)2cKh<8bZWG3Q+0WMa9_%j$m6oGUER`;cx6csEE3|R}u zQ>0yI)(lS~j$CgQZK5~qIqBp!G}~(I70voDHPKw>Wm^oBysWothGc%GLh)S9vj4N1 zvG8}RB+6^OtZsM7duF|DnOYvl}J)>wY%VeE+;f?nmR@ zxd@o~*ISl}&5TqyX4QUw^o&%^&h?1ukJqJ_s?4-DktaTGm0YZESur^_4PGt z&)=vzOKlN?rfSQoW74bt{^c z-Oztn-6Wdp{4H;n_fL;y|E7A~Iz?w@Gb7UNnB)1n<&=&4YP`Q?J&|6iTip$gXHBHt z$P7=;HXCb}u7F&}?d^L)v$ehofB);dB;WP4O|j7I-&3zxm%EtZn4ghi#}u<-zdd*& zx#Hvg_Su%hNN>~SdlKb5Gru1plb=8%BTwsW%hdA7*P##nn4hz*`?t4Sv(TgtdN=zL z*}J}xL^I94?`xKGGjqi!*_C;@Zp0X~5nhHb#` z1q{34x4-k_P+_KAW8{nqC96_6kaWac#TBftMn+^rWM*fiLUCu!Qp3P&R4BWivqX8V zW?8MVJI>9)+!aCge$jD+6@HbI?CNmL&r~Sxtk`PBhqvk8^IeKnx1f)wl5Lq<9$~*b875zOIOb>Fce!8o zST{m^&K~o|+`CLPS8A4wVp`!OyE3oNNQL6gnyvPz@;0wzpw@cXW51P8NK_PuoLEbH(@iL?F+^)c$S zRNw13t|ISU)oMp{rH`Cw;h8)XJ5JI*3rKpqIwbQm(kv$u;SD^+tl94m=Z;0WHaF98 zGk%ZCY9z(xxw+$OkK5|p94yk#woEOLaJr0k+4EM;|6cKCj}Pl??~li)?pCd;v=v|L zcS|LnX$HO?A?%Se?oDxgQFa&t#&srlk{fd{6JJwzsRpF+X#}#xsgLD^_Rq{Z&{4aj(Sr zJ>R2P-S|o@bGAT=b+%<{d4z5#MtzL-o}bA?`3&=D;k{lK%gIE2K4AvUx_6mquJf{r zn9{DiWLM_Z8L3d*SF^vr*ws#$;cdFPF;QOYWp$P{G3%&^advjLb$Fsx{H*t(#|*7g zp?1KMqWmi~JDZ)I zZJAmgAv2LYs91B?7tfQEJI^5FpWNqV-z;mLP=2kRSgunn`C{I#TgRYSZ&#+(8L3d* zS+QEnR@Og!3*+~AR|X1-%I|qUFVfDo4$sQ2JgN~n_c^|!yEUus#Trc)u_Vpr`S)4| z3YP4jB6sJ0zgW7F4$J(EcIC}EX4U?9v_`Ahnd$}a@^e+s_xvW(X?DJvH9lbRLDN-q@Wu8)?^XW&G#qgbMtT%GlHWm=t)3dOA0 z?+;db-g>2mQ_-u-@+7_HnYp7_R7*|IS)jSujdXZY=|QvpG}ME(@{Rk&#%Q*3E)<%% zKLaH%3l%!f&NGHcI=ea~^D`BSJ8M=w$2A}8vOM=_mRTjOF-6+hmZ{~DiAjzGvl{-Z)~g+D=Pac(X7k#B%15|tY$l3=@&_7SLW3jsZiWkvsBgVak0ztB+6_3 ztVqLjRKz=L%w3}Akq%GRsWTsoC9KDMC1|waZoP_RB`)@TAc^Eky%O6o-;M9-P0`!c zp_rdJ^g5%syIyNOi&TWp?>SLktygt8I8Ta-y=|FV9??qH*KZEiI-|nZfyOsUB zVAba}j?eximg^KNmE`q}w=2`?j8rJ@tXNU5?42c-I)0Dye8sO&Z0>&Ywsm-_XAw`p zy6gP!RfT}F7VyQpt!1%_Zi-4~!mlQOy=t|h@NZYMuUqAISmtLc6n9o_y)zXLbpDDH z<+ZB)<7ZCD@A(vIXIrM0N8p*)shXqt?ud>3mp8tnyFIOFRx%U*#^&oZuV;;!Er^bt z4-m`yGEg&)S+zeNuk+B`$?RO&i^sXr<2O0?wkf9SWQ}$9uwU(nw6iR0Gmmh#4B4*P zik2^qzrpVY8Q;*|s;&1L`!he1Y7@)rnq^-YnsvNH(yetfug=IZ_s%G0&3=El(t}o6 z1xc~9a~FwCU6vnLYposkN~ zomH!jim!zV0hyrjd%VlfO0`sb{F%HW?QHAtlxm6Jd^JZ|NA57fWB97j_?GVWwK~VG zQVa06aNMO@c3F(?Nnev#-jRi3cAHb&S+zRHt&(l@=jA2Jt9>o?6~EdMX_wXLs+N6X zDaRz$a*GAZ_7;s_v2=EISmtLc6!%munH}Oh)*3)XwJNxd>7NA*gTZboSFX}uf|MiGBegc2t ze`d7t3Dws23H+n<^(f2xu zHPvFgh41tj?YrC0LbB>-UA`yHz=`B_#Y!c4ox?q6;~SL!?{Lh|R48V}et)pDLV8tY zuhI*}38Ck=nJDL(xuaO}Jx7h=2@KrK{r4*EjlDMb(z2ljqw=2`?j8rJ@tXOi!oHF=%2N(AwJgZo0qGt__rgs&NwqFw&eZY|h5tvhm8>zRypNXNRq4^4DeMP0|8{v=XIJLc8L3d*SF=P?P_Fb;ct7{+HA_v8 z&Lgt4Ii_+xxWiNNan3?9$Fa|e7|&;x$8Yg&&8lu!i<{iLOf=W{**D3&w}))O_y&JX z*7!5Uoi(f4KrNbbnVv*>ou3tHG(yyR=Be4)+1Al4wf;|v#jB?^?`Yo>imlaod>$yV zT&Y;CXA?(nSBGPM=J2vJiaRToIuG4spR-V$uRnf|^H^%FV#!(4XPMSO-nL9FkKkp$ z{`8@~k|W;u0%{iiXU4a5w`%bp%yAW-?rr{h)lz*;5el=fzbhgW>x@(=?yOoU*K&=- zr{ni{uWHE)`8{MJ?QHAt{POxOWR7R+S@Jj7vs=9fd#V*$)|GXd>pU$Tle2y{Z&!z8 ze&*2ZjN-nUy>iEv-$9jT=GC4S9eIsNvo1fDspS#%OZYm@!TPwXe4h*yzDxT(Y86^y zi6<0Gjfq;1`|aZBMl!9=NQL5_ihWZi8mz=pF3WR|Vh_@8%_`E)whm98@iW7lw5lpQ z>b1I-by=Q7a-E0OeWX5LEsD;rF2&gnXx28F;?8^cYn{fvn<24W>1F48-MwA; zZFfd06n9pv`lM@$b@`n{d9`B6_2hWUpH|-C`Q>NkX}*qC{>1;xlZw@8Bb9oc?`23V zS1Ojw|JN8TdAm9s^D~EHXB2lYV+4w!) zsam?6@v|;FA=1va4o~Ha{W|qvO+VINdjk|1i)AG<;m&g$ww&S=m>W>=4UDt z_f@R+;8imgF2|E7ua1ma1Ld34I6Ln=n`CNvg!~h;!(6j_dRg6Wh~=NN|31H#Xs(Qn z)i3U{?P%89m3ehW4$aOe?yT8*&X`m4&$>vI*J@TLrJ<&?1tRTi>+t;Y`fB*9eD9oS zbMANUYaA`SH!{}!T2;+H)BQvjN?KEhq_e9-GCxzHxU*)}OJ0eL|F(*`OSAY{zuR7< zotiVXJVMVRb?W&ZJnk8gMb2M5sao}*);#S~{ZG8zT(e`&9N(Z;V3}BFM5>)r+*!4v zTsgVTpPP1%Y8A2ivz4XVby+CX9Io}ck6v+*8bOYyFB^ES+5)ZRTex6n9pwa*Z|Bx=hbKs#PW4-zY57&bCY~k7%9a&lx{ht3K;j zU!xB0RV*js&{0wIvo70{Sgup7PJ+s}LHLnOt20uexUXVmJ-Mh#-oj;i66LikTAk12 z&s30NooyYSM;2wPwlY`rb*AcD7||c|;Z3yq|})1ipY(*?xZZICJ^a42<-{+I@~%+DN}ol)FVv!YD3r&1q)vdi-% z%4;>N8#cVB7ini(rj|$aP5BO|gEi+nr;}8lRBUxM3rm;hNi5eXmR{(&Vx3)?R%fI_ zac9Mf^5^^$lwFP|QC_Q9k@lWJigmVicv7EDYCKr8e%@<;fM#D<5_4AKV&~-&%aw|y zLdNY3fjHOtttL*5ZH^yao63dl})j2$gqqi&5>WmzUW#yA7?yOi<@;;vd1!b4v zNt9PBmT1b~QNi5oZR_x4M-Q2<`ASxGS>ldSq4E{upWLlk?Wp|R9m5-YD*Hqal;61{ zlFqIU$^6Wr*%`&1HLHyA=ZGC{j4qoSJkJ^g+?PBRhGO^BxR6D1*uWE@!h>gD$Vq>41Pn1`CS~SAh z5u+mBs~~S%ho}08eT*j7?9(NF_SM_bzI*-b!SeG-i_E|-I!!FsDONRhzn?>jb#`?) z=4UDtcUEk@F2MXaevk7mx3!AJ_s#Ma-nL9FkKku@mxu2+IA&;0r`%Ds@T7ofrZTb4NQL6gs?{w$wP?!ac@pKds^v^bdK}!mA=1va4o~f^_dfJs zt#hgTns=Pn?)I}{S?PfC`wSDyb$(Xs4raXZJ-y>4Z&!z7ex^ckcg5BsWAc&b_nauN zRxI5VoFsU*0L6OSGPOLy8Qyqwmt8tob6Qc#H;(o_q1am1*uTlda-Cwe6UyJvCXSA9 zrqvm#P~2Uyl{3gug_{`@<+X}c_X56cRKz$pJKH)ui7G#7mi>rm*5{~33-8vf_CZ%x zv#csdOS|iwYxlY{ABv@~^GmhPvJT7qj8r@4m{t4ZxBvXxe}DaFe1BI-|I=^BfBxNT zE%TpVf7^fi?Z5o?KYsfUzx~gj|Lwp2_P>7nkFVb#F2o*Mi}Bv*`BV>7r9R8Qb+mL& zI?c{k?{$BZ=D(ePzeqdFGPOLydN!X>q3W#SbRRvB_FX0U^+i(u^RFRUsr2|dcbb6{ z$*y8^&!V?0)9Q@86{}i=i>R_a!JXqGqUZ}bpJXIF=0 zex^ckXU#&na^5_ebw2JM&2noNIa;@#7HMZ&rj|$OG|(6V3*6z;@xJR|TyL3*fR+-~F)K}JFnV&gS ztNsqpaevjaR{UJkBU68VpNVu@2lZ4t?|Ji%nX#gEIYmWO z&bAIu^y+*6-=tZS?N*yTNY-Xv*K3qWuGA|zdA|ct6rEiiiusue#ohHvbWriHF3XcB zuhlDe@DNL-O3&}Ff5GV6`mq!%`&7d@SRZTaz1Ffi1FGs_U7jbgT&Gz2VN!Naigk8n z^>s!n6n9oEbqn^7R}|}VJc;sJ#j5)^@93dxX^mpp(Zg5eJ8_O|qfS2dKQr2KZ&ZAI zi5-Ms{`J)Of8Qb zb)FO%t2V1Wmph%?rg=s*D|_APMH*+9UMBJSO7^dpF7dNzedF!QygDO?W@i+4)~s&U zs+=0+&+flRvw!?^?Ztg(nw?!%tizLxG5%`qX{lA@Q}9PE-0f*qx2yDx|6z5Lc&_xc z;^K&jrPFhVWqwAgom1RbwbVzdHF&=VE>T|VY5)AGBa|{KLf%27SLL6+{PY5;hI7y+ z!@l2+9?>Lbuf$C**OO?j)2vRXPUnyl9Xq?S{yHNSihF97%qMGERJ;3{PD_+=e$R>WTE*%H4j;`)vCg(kEsq@C6h0Sn&^~;{K6zs_tKIH3 z&HA-?qPb49T6g^Uvi1BeLDJimd38oA6!+CE`MYY~*uUpQd97xN_V8=Ymx{Fe20A>y zygYe6eL}R!qp;%jx*os9d;Kh@bl_(zt66T!87;jl2c?q)=yN*%c9C>;bx7uCDin9t ztU7vXl-+y2N3-lgn)Mq0X}^I?Ess#^$#L&N8(+3xY>ZXa*w|+V63tb9meXX&aQidu zrCFD;$hqauI&Pavg z?uuo0u26P9E>T{oSWX8-v7F^HD&n1M^gDezJUNFjpUNiMUtd3ySG=QzcWYKRK~&Z` z{&bD&G_Utm@P=pke{WfbWqzi@F{}2+qbF35YgCVF?To&^Ug{aY$zD9w+0Uc(qwgtZ ze)g7SYI%g%7%%Ggc^tHL0;J#NIliGMREsJ;&%yqTo_kcQPAC@xi=~^JGqKJ{h2#FJ zt<~ZExm$^Jim5uP)%@&pO(N|wWIdkDWnPa5YkDQqK7yw;Tgw~!-BDLbUiY&{_Ri4~ z$GdV+bi!teS+U<1{Ud+IjCI6k!Gp&%^oN6xZf_4Zlp8!=4UDtch;tJBEynTy`8 z4#)gVh2p-7<=d+&mVMq&DfYO9+r>@zS#MjWmPg1gvC8qaSJ6H)$GcT~v_pXYlg~M* zudkn4LG!ww)mbi3JO6&Mbe3geoskO1tlH-@$H&f|%C1X)zsl9wxs!tuX`cfVX_wXL z@YLDHzAy33n!nlm;_*woH!?m*R`SMvFY;BA9mVQIudLYna!~L~6tiNV%t5Iypx$px z@6Y%>-WeGy!{__$q*!NLPqB*Le6RYUSvsFnJ!pJK_i6S`vv!9IvBGHSoaVaKEc-m@ zM{)TFk#u%-NaklM6nEBay?2o_SL&44u4bvslDBYkut+=GGPOLy9sy$GS*?eh>u$Y^ z(yUIGuVkP&ceYM*rDl0^xn}3>%Dg%w((Ih#&YBhFN{8xKy8=nk)LP9FsiGsdqLyY| ztkvQ9<@G($tv#Rv?cvYmGZCROlgp*}H`B}a=I#T?acYH_p zYF4|U@gAS^#^3BZ;||SIot=?%>z~Z4GjhzlGm86amJ=7Nd+|6=W&9rR)hw|n@A_Jkc!Ac|D4@e&b#{dx(v-=e@SG=i4h*IKRtZuUTxwQn!}Tdv$hoNaklM6!+CE z{tM04W@eY?NtD<6S?S34wTrZ~EmO-Qd{g;EMbRb$g)jErVpPJtepWPV{W1OwwM27W zY^=WowoIS-@aQGO1s``JA3?!J@H(pTGh$87s9jjc6C_hXDSqTRxQynGxX;*5Ib4V?>SLk zty*HL-(Mc?YyqnEwqXB2nVtWK(^?CkM<-HGzA&@4N-&fl3dyDkeg%T0(jCyi1u_N(5}!n>klRM4(Ojol z)zbW(6e8*D>X6LOR4DGNS-!gJ&K_2c^8GXIrM0M_A43JOCHH zi8lLZ`5CY4@g3c(+2g$GPnu=M@oVv4uUYkmQe_<9lfI>FSLW3jsZiWmv&tNQy8A1XQV=Lcg=pT_2_N7JWry$RXCy z+N)@zSp5Dz9mmWbC_y*S)?#Dl>8{hfzK2%%M1L;1zB6Z8hh=`I!ZEA%$Ajmk{!7xI zcD?I;x)o(2oo46Gu6Nz^;&XjM~q}_}m($2O_EswCfo>89>7Hxh8&3avr@91vLie_as>(`UlXW#3p4CggHy-%0vNu<;4+=+}untimRCf*eS@-F9*4o`hi z&I`Rs@41#0$C{UYBL75(6K~F+U7+vF+0~(#pQ%vHdVM-7rVE5fuTtk>4RY2*QtMhT zt4t#+kh29M?M5=SJOWR?s&s-IkulLZKjWjz(ZYMZtY|W;RpwroU71&BM4Fvb++DNu@Kz|h_nauN)-3%L-1R;xV)U`jwhm8j>zVZ}O0)m?GyCK- zRHKD=YgV@i)Z(RQvQI?BsY_e4ud}N|GCy-@c1Ce$&GHR?-fyY5>DH2WX_i{3?_12a zWomhZUgJ-Gmh;E>@^;HW(IZCGRMD*O&`&g1`dM|exo-)Q-mc86Ga}8-DekOUQLaQ& zen(BByw=ZZcJ^l*i1exq6#MXq-naP>A_j^|Fz`a8a|ZJAmgL9^tb_*>84v}n_fykid({U&uk>vBDb<~l#i zjStL-E&>)wXIJLc8L3d*SF_A_WQ;5Icb@@Dl-K%M^+5UaNJM&74vN?~^+~*0sGPOLy?tuB;S=RrkLpd?$i$^Wor&{skjEd?E>^xoKxz5ijLZNOqzNdFK z(f6iiVx1AGc203;)zxt@w3Fe{&$J?u~%=Wu0?59 z`vWT33BRIDG*@fZpREi@Z&!z8ex^ckXU*a_=;Qrd>+yB)M0u@d={KV5$Yq*D+Kpst zc|_gozQ5^Ut<17l^*F2D?PY8CSn7SbOiyCDPO*RfoDazdjPL2~W!VjX9?7&iBNdAK zDwduA6kA!%`ZY+RyjHOyonvEfTZbpvV82d1NOPN9$|{dv+r4@{NY>_Fm*q($*Xflx zZq`ll`|Hh)Z%|6^P|VL%DDJM;+CEEv)?uQ&TCc1eQSF(hJjS~06OlyfAwFnx4%A*9 zP}ofEiP^W(8{<1u63um*J$g@F4nQQ`8aL~&Gg6_rvu1U-R;8Pqj`*`;66Lj;RacU~ zMNOogZ5^J+=@fpIdeG+oCSN?hqr3gAXx1VoH~%G?D>bXxH|30fxASs`WPYYXad*wq zp;}qVx(rXEyjHV+{mjtjJmc>+GnT345jr;1zwSJNXyavf+cPUatFtpJ6#yUmU#EG! z*O+sGSXa2*1M{!9EEDUDR5)hU{&;k!`9nR!M_=hfLf2X|D zukW-@dZlW0;vzd%&%a-!on@I?9$~*p(&I5htFwH!tnqQCOy#5z)*I(Hd3FBnD3-VD zPtFuaXIG}x8L3driv9lJ=@jy^>U68*E&R-wDCe2E<7YWZjm(f+w~F+tEEE|zzN&ez zv9eIRX_hYOY7M}zG!o4;`(D?qs_c2EhqtSv%>0Zr%WX^foRNJsd+eR9tZ4tRib<4L zYnE8lcTP&PPR*HG9{KBMerZ;lMX9WL`MqaPHU7!HIVie3=zyx!dVF;>v0SHE^`Ej= zdwfst+N`%L)9Q>!v2%($D^@25RnF&QhxhqCC(7#-OMioIsLQ7ZdD}WX+0&1gooSZ6 z_xy}s@s984Zq173r#qLJYy5n3o#r(^E0%Ea+RT=9SmtM>+BwIp+8>YSpswr#`O{|m z66rKMUyY65r1L7sTb8Nikz9Fwlit(IYL!!on7B80oLlDkr^K=Qg^URL{zwcg#&%jz7cO8$wJ z+*vi(X=C}zbz?PrgD zvy~J2Smm9+;zW6^pZz>HJKH)usXyl`k5-Fx{iXHp_=fIV%N{)n$$aM|W$MU9;4uK6kYF2;mORvc@4VKfb4T&e+?Pd38n(FFT{Svu4#% zUWtmickuk46XlhfC1cEt=%YC_>uu}sDzU$1X<{3hqVHbqpO)vV4n_V?3Cwa&7R zYU$vVFUadz_V4a?f2CNm3z`|O;%Qx`C#g2EyslYx+OhUCh8 z_3WE6kzj?g%km`3D?KeIXR2e%=}4rVZJAmgVOP&_|G4{Y;{EldZ2k^k!yV_fyM3)z z+?6%0k5CiOm8xaF^JmA1rSrj=SZAa{ac9-m&*-BHGJcP9Kf7AB${V{`Sfrh89iE&< zp7+@uwB;}O&F42V{>iq#^7YRzg5=~g=;?QF}`@`!rt{AyLKIZF<|?=w~7mw2~gwG*$>Iqv^`*I9O= zW7Zzz1jaY@&O>?2GOx}^g=5z2^DA0<^~g6?x@XuAcYf1}befwxD_W_S4nmh%iQbhhT`aEHaQtviOC_c*uQ}j#ydX$cFn!cu1u>lQlYrBV(FTx zolNodH9wx;^F4~y$>83riL|q=$5Z=eeJ_soKG7M7*Wc;JS@mt{O!-R9&R4mw)4c9y zd9$o=QpDsf>#)qvR5)hUKA(L$cDq;NDb5zC>o&zxo$M3)iDqkAZ&{|6N7Mu5eW+No zryQ^Ebv?eHdn04*E@LM792xtw`;%r9$&O;hG5J|+n2oob`JAm-DmFQjPEEZq3q5LCv$GS*MyiG^<>@>zEKp zXIF=0ex^ckXU)<}QR{&6nZ87Mt!Bx7&AMj1ZJAmgQDmG}vwB;cU$;wLR`(bv&#gPP zDm5N|(nn&s&dciF1@B9xSf}Mot26TUvYFy;iv7PS*H*LNY=tFJUaeTzP(dDj*t`Dj zZR_wnx}SVS|CpcEZ{efo(ZV~t>_}7RqgE>H+($QBI**ywX_k}3W@j3EyE-KEGZl(E zYgTt^)n;aw<+(?*obx!_(L+D~`3ua{@(6v#sKD#-psk&Hdql>gX0_M7Qk(T1(uw9e z&Faj8d}^k*EA#4%R4DGN+2byz8s#h5r?q~TRd>=6>hd?_b$Fs#sdnaR+4qMrGJc6C_hXQbLW#obj~tLXi0-*ck8R<)>u=-AC0 zQmy+2GPOMN<>h153F~UF2W@pN?osP`ds^NPyYMQ}@!z&WnrN={v{a@1Ip`vJR}P9e ziF}x+xU**Kry8(N`8+o!%4;=?R_L8^F|bHG+p;qA$d}g_k0;=7J^yQuYP@bB@ww&k zsk{BGXjV=yU`;++de@4UTNQb`ssGg5m3ehWDin9u?7x3yjz3oi{3_%g&8kP$_c}|n z?i=XvBsyk(nC}iywb*BuM`~_>Fr0ek=-K|;mj(?7gi3eRAk!Ij^ zu`%=9|MSwN^YWZc?d{6EIwKW|`)ZbzEGwYTRe0W}TTLd)Yc(s3i&+Q><84_6NYybq*$$D-}zwz(;K2=8K&6S!Z-|lxgOS8_d%&Rj} zp}4zd@nN4opN+c7d{yj?S0!VI<9svQpt6;C!Q-+%Q`1@94EUvEb}u` z?VRGys#W)5CDZ6T8WQEzs#WKJ%TSFmn9IwKW|yKA=6?S?9z%tFB??UPQnb$EVxeap&|I6rjI zp7mXf-{RfTu{8Vn4gubn%l4!hc(rEzsUp&>v#UcgKU1N&vu3s9vJxHpeKm>lYClUo zbT&J$%RDR&A;os ztnOy;JMP5MW!FSu$Bh{(~P{|t8zgOqEPPIpk z%xP1qb#`T9oe`;aPH|_|LK%-yiKm{-L6H~oC&-Ajv#rCE^(=avd0KuWtFoQevv19^ zBK%C#=e&QtrY9cj$VE*IY+nV&f{JEOR>W_9aqr8+?Fwmvhj_Oz@Z(_KA~cD7|| zc?3_39)0EYpshUuyG6&mhw8pcYA$t}>-;P$R^?I7zn!_z+m(5BMk*Bd)$DQWY$b2u zGY4sAUZ+_!bmR-%cP7%Sa!~kLP7zC9RJ>6uy;9yQj9=ruYg+0&sP^;OGN{AldlJtz zsufG(m~^*cva6%b{7i-7zN+QxBXeAdjyV-%{2uRI(;jCbI&Dg|&bCY~kMPAans(!{ zn&8CGypLdfNB3%0G|4elqGPwF{I#0JK6Ntu_4>c#dwN%Uh@Q_QnOA2-nw?YJS+lD4 z)Mn=A@=%JY{9Y7k*4ftKNp529WjQktPrTDP71%>%882Ilnq02u*DIFX7nbIT$=TK6 zn4ghi=M;BVtj_7HQFeKrM0s6o%-l=`gEgk(DaAV5GPOKHwFk}4PH>~^nJ>@(%;+QT z_Od!BsIo`P+n#8yiHt>(Y=Q5Afuy%9^XiNoUUo)tcg@x^joceLevfxX##D!AXUllo zIy~9)o>!^|Z6dq9_Poo_l7m7IpCe-;g*wfZnpLNEnti=p9g_K(3dNl@tG!#5^$+(- z)hVy_v+6AOSrg69&bCY~kIYY&VJ(X%;CY`}9^cU2UREqCr&Rb8!GFD%)j6qt#VU?2 zFP3R_MvlmMMsat=60ua~WtZbglvgWO8gV>D+S%6OdGtZ?PDb@9ra0zjt$2L}cYNw@ z%`&6Z_TkYJGFm#1nbvt(ol@;@Fc3*+SBGSNrb2ON&5Cm6R0BFi>y%e(menlxY@IC- zX=huemPgR+JpY8RXGP|-%AX}H*6(SD zq_?X>GCxzHxU*(;=6sFvbNMI5Q+XdAv`7D@I4@JnBWPB+t{fTDaiK5I{mf{`-F{Xy zEBo+#KiM6cm7jIIq**sFXI`BVX?9L=cg@zajDELyqP*JAij7<8i1e!b6F1_0>NTe7 zv}bILW@{Ay*5l*sa@T5BJMr=z0^Y8UGV?QsW@i-l)GX^m&KR$DK>3}kcW9P4m3TFu zt?6yc)ba>xRDPF_(M0>(&sA57pGPI!=V#wEYZ)kJrqR;5X7ddE-+uca=I`PCI!}ss zphIhxnedinVx5r+$E?~Pzy0Um{`>1c(I>4NVjv2d+Szpy&7qk@3}{}tc7xAk9(fa-(aSeN2EvJk8`kA)^VpD0-AwEveJj@ z^WIlUUiY-h^5yv0+m&f`Mk*AuV!yw<&j0xr-`drg`S7y;^jmLcCfmqfiqA8%@9IvJ zb41ngw0KftR_BTNQ*T?3=eO7INqvcYadWowoPhy#7-|LF~_Vew|*0av84#)gVh2rjtMG2MltjqEw%4-!%&X^rs z&H^dcjbv(hggc|D(fYlyqD@@K-{A99Pij{CdMdH8-{FvGuG8#aKdakBDdT&3N5+t;Y&$C00i^+K5iTCreI#;F=F;V3> zYbLQ=t=N2mo42dOF+X!Cc1Ce$#nx{t^_|^`@@mDBfnu$8{?72S-nL9FkI)H)9_L<` zGu(IdvSdSRwRZAA=XaTCuGB0m9DhcUNIJVRug=J!*%`&1HLE;hWiOu3*(S; z&ARwkq}S!2bTg2z5{foG3%M&`RKnf)C(*3b*||S=v~=E4v0AgfM^Pl5T^(iSXDSqT z*KF+`0pEpmmu9J$`WmcAugX8+XYrxFTjHRtQ^j?4M|^)2wc_@;8q#`+B=Fug-|Npym{J)~qO3vKGFcmME{) ztVsK=Vv%+$-44%LmFLhaet5TT3i|Kyv6Z;k@3y#3@@kz24>4cOddoT-^D}S7W{z30 zKOWy9Akwwnc+}O-UM`VNGxPPzETmb@!u$ODrC4WKrj|#JI?vq8s!wXSI?utf5*gD~ zc7B(MWuAYps+Nods`c+qES+VUSZCx=?Tq8U1=ZH#DVOOJ zp^o>@9Tl9Le}0>Za-N&7ds@|U@U&??>ut-_^2n#tjgQ{)yyhL>(cL+y`u?nM_FX2L zY5whKmY9j#K*#s=&P;f_GOy0ap;`G^KRfTNS=MMoofXZxJWry$TC@0B|8^BoIomos z$wBd)kKPX2@1PTHzBuKvU9Z$=;eCGgO|z=mD}7Lz z=2cJ2d0VV#eNTr}>nzK}IwKX1S+zeN%|pFO*KP;@`>{NfZY|BxvA3+llRnPu)kT}W zE8d;2?LDbl-ThICn|yX4&B3cYEt=)c<#TVnT^*A7nF__M*(X=DQmk$){ks%TxlB)@ zoag52D_WvHtsrwuY|GU02)~K1D&?Sf zU&ME4)}LHHzN5R>v!eOA)V!E^2W)o%&RlPj?PaM_th+4 zU9Hx`+jQ?aQC_Rr**y)^`n+u&p6nf>7s}@^MVqyC?x7jK#d|e-(EJ=T@y1-HC(&G| zSDOuS(d5g5#46#S6pw_ z)XDbKY@MW^lM=~119vr>cD<9Gax0F^t20vJ_-{e8m59op?vhBa)U2{TIXd>1^?2&k z?6m8h6)k?Bb(vT8lhJXte;jSNY|mAe*EOsC9@MwT_w>#jd%HR$^E1-yoMP7O_Xl?g z;464{?7OVw8u7^I_nau_xw+$K)l=bhM0D(J%hd7+St#|fyZK(U*?mF;?JGj#JGwh_ ztp4#z%;Y;k6U{XLUe_$|j(noaK#1gBS*SV1oi!`Ul`IrpedG5y@0?kyS=}Qr^Rv#j ztjs*ZEn8^T>+#U6s!#j*S!h;vzB9`?PxtFJOFsp^!p;BEtg|cg>Wowp1ef0t;p zw`b2h6f~J_KJCY2{&WAnM01s9iC>uQ{P|*N*4veNbw(-_ch_v?RC3;?tF|P{Yc;ES zkFOGow6m?lljxYcDdzDpw}0?6evLh9{a#PY7hkOd__!tUT&3Eh3gElf#L~r69hUhS zsdi3rU)4gcwu_dZbnB2rd97-7$7H(cCE1p#<&mSaVz#EG)0}JybIGVsdH(TF?$#_j z1!`+re`aZ-xlXg{AD_*?cjckx6nECF@=%pEtNd@koTjf!|j$KJNA%sf)* zI!4d@4gPe`(ZahmtLV5=3Gio@CYtLs`^RhMCyH^Ak^Jmkd8j$Xoiz(({8VKPWow`Oks$vYIwo8ttZ^KTbNXIG}x895X?qqwtTRfqq4!ZF|Ja~UZ7 z8gsL=K&0JBhbJ9EJm>p~MVovhU*1j`C}~#foJwTu`}BXkW?4m(2XOJPNV<$ghh%=H zLUCWsQp+RH`1$@1H0!#J66Lj#F%?nz92`%PcD7||d4$MJ^MmuDqRoA{M9+T3JNl3N zGEit%G^xpb&P}j)f3$SIn$0w?_b;+DiaF8!ez9~TnOJ9}!ZEA%$D@0DL|QvSYSFRF z^d#M;HBhJLSiSpsM;^ZK{0(+^qS~ZKvBnB?y;Jw%NV3w4N?dq;Usp+X73;g|q*!NH zhhu)GLNP1$`-8g#-jrFvRc2W`&oXo)rjOf8Ra3I!2}pYKuWKl~iqvC?zU ztgLc;cS_Q1o`J7=T7IwIzKemy(q%0&vCc?^V^;0+>sgVmWiI>)@QHMqoja;kG@3KV z-m(r)GMgyUXP88r>LQ+&cXyu0#y`0?I))-W6_pMd?o=5qozKCE<#o-H%jE55PwVXJ zkj&3iC}z!me|SZEP_A^lahh74a-N$znpKT}n$Ot+&CbrYOf8SFq9w!RD>Zl1)%o|jW{FHwElnhyU71&Bq(X6L&1#Q8jk3%1B+9Eb3mfkn zMB3Tb;dy9w9vyRwcGC5en$?Q7Qtk0^M54LM&$7zVY?szK-mVVG{ERfqIw(`zS+k=2 zS7B!M@l2w;QnSYy^nbqI@~8;Kb7%WR&B>6H$9F%MgWn;$7DJ*Q-|RoUB@JSBGVOMyj1t+*!4Bywy%Qrt5e79`97GY6Rcxyn$-H zZJAmg;Y=v0)~{*RNAvBUV`yI!8sF00s@3^2l}f;0uYc!g>73^}Upw0cCzj5xOsq3f zp}4bZ>!%3$u7)%>uZ@r8Yx6z|XUdvql}rhDWG&2l#$ z)oqv4lxCe>9g_K(3dNl@tG&`S$}ZP)k7jj3DOI)ecP7%#woEOLFgxVkc8aT5TcZ(Q zPaG}0+s}$-B@g9Ki?~knYG(yI0ojS+yL80TWg9cG&Pau0R_%{RcjReyuJ0D$?u+r8 z>_t@9yP?RRXZzuo-OfQr&`^yLKpe?o;3Tz(%Y4Zbw(-__f;)97b-rL zx!JEL6Xmt4)lPx06Vfh6*5S#mmaJ&~zV?GQy(mf7 z-dyf$^LBMe=4UDtch@ZQ^XJ}jub4YE>uXM$o!z{hspS#fCy?~0`~^F=6{qaxXVGk} zgVEpWn`o}{v#e;Tl(`sKB;EQa^XiOLDDJG;`uQ?nU%sV2Gq3ft$_(WbQ@w2+o@n;S zZaPICSx0r^`ABYjOLu!()$b}@v{b!Y<{0mVpRKWUo-VOm=V!IIlDjR>Uy?XF zyE+{6GZl(EE4F^hroYoHQC_WBbd>9Q-nL9FkKkp~YW85Qy#%`{mOc=AWGd$c`J8uR zxlXZ)jQw6L6zlEEv^padiu)>-8JP@Jjk3$~B+9E5%Py|m3B?Jf=UKbMle+|1Z++^6 z;_oJtasI92pWGW4)9Ha`E2l4hd;JSXOYh1+>8uKWwum(A?COxr&q%X$vt^1qYgU~z zm8>zlgzJ=lg=X_Po8GoeEsvmC^*1{`iZC%_;7wS-!espFpKPORvFmnk8QKI|4=8*_M@=N64TPh5Jg+5miy2-Al7?npHpR z@;tv@v+6?S44?D2B$Cdq%&Rj}p}4bVuf)bK$CD`k3O~!tm`FR@Iy~t&rlZ22FLOjy z>Pg;dXOA>1nl(S`-esb>&d*A-{v=On*4fn|nV+dp++DL|T|QT5{c18%UaeVm9l7XS zq+Q)0Q_Cal$IJcy2W|fEUc2$$nyqDx{T_%!bERf=4wF+RB)wgkS7)R`ac9k{I$Nm? z_+5{Q@@mZz8~Z(XBE2pLMHM2Q2_@R}mY{3zi^oXdz8sV^3r#x4KF`2DI!!cJYE~rO zs#PRi)Z9^Kex^ckcg@yL*z^^(M0u@d+3kr&98ZyU9yn9WBlNrS{rj53yXOsE``q%A znx&tjc8Y=DZE>CE_1?v!PUa#bv2=RQ#5yAtj#;%o9^KcY*_qsNt={ANkP_)MJNNeW zU~BGO^p{`w03~91uiL|pVQ_CZ|p)KtZ&kmZ+XA)aU#0_;ZkxVmhN3Y6Cxae0Don4t#XQV=LcfD4!#{4_o`XfW0Sm#t!qbZl?Nu<;4d_68kNkpPVq@yOrxY${ispXL)0-tGC_rd$>|7hP6 znq_|bRGsCUb)N1j$?J+Go+CnW(XSNi?8>w{BZp#V6tiNVkBga^E2kRp?{qnyM0us3 z{r&ZuA?>c+i$F_7&WxHCv0C{J$^JOtWuCv+5sn>ljFSyE-KE zGZl(EYqnY$;B7h|mng5)EM8WpYr3dOq@8VzASXTB2 zz|#4-#B!ZtmACViba8ZcWm=t)3dNlj%NeQY;d3nIPsvM^*D97e6x|egZgwLbp6n2t zcR&$2^EdAo7wcr>&-g#%R7kXIrM0N7&Cp!KoYyd(dFV&@dIV!uD!vv{2LRr9kho=KGR%-mBf8RK*o z2}*Ldbrj3(v$<#SJwLPJ-7Pj|-eomgS?Bnj4T)x&eXna)Ib+}Bgl4^69g_K(3dMaj zONU-A6d@{x%9}*4dSLbw(-_ch;gz{A=1va4o~Vl%69qMth$VJ zj;i+wPij_oE`8nyjb`1uOf*;dS!P|$b}lXwNoQAwWPV1PB_83c@)Y;gtTJd+8b4=^ zIk{o{9`EzBoMx=kncP}Oq@8VnkRP(C{>($2OHPxgU*ijBFo4PB#= z^OraN$$hc$NVC$n$Qi<;rSlnhm1ZGH_RdG^hAS<&~b66)p2~I-!D_1)Oaip2v-NvuY3L+hC9XzDECbx2LUFdzghs zOYiZt?;ce5+nIm8T^*A7nM1QPiu-Ez*d0*QtXqZLp;$|0%)T}DBm3lip1*4^NKbxbb>owZH{`vhnVp6TMEEDUD zR5)hU{&=(#id7IwpcY@*zvXYFOS(;~pk7}EY|?!Z%--wrP-xb#xDM8uLw40{B@5-N z-B(F=6iXBXuk(x{#om#H(#$)fm=*i|!A>aYRb3S|$}ZEBDCe2Er&v1o$@L}D&bHnR zoMX2`vD&NWD|@4TcSpv$b+&S*jL)7WmTB(oD3%+w z^c|{YPRz5fw<{Ctj8rJ@tXl2Gt5J6GOrpHj&;I%HutZcY{*`K-Z5^K6)x%dc%R$l2 zgFQZz@}y?98}IY|?szme116d)J*_f)Zp|u^&aMv0{LG=*8O7Z-TR9~a$}Ve=D6iG5 z?&3&iSSQ;uwLAh(%@3|)LU9%OS=PKeol>Ed4tIZZnn=aZI@MgKc{M&}p8KR)XIUoJ z8L4p0s@)+61?k%926PjQeqG|^o zuFuWaHOuS_0d}{ZzcZ0`Bbizr(b+OS8}eq2s&|Wx50;hK*xR01rrGzpV(CDgRocB> znO0|{LUCus()G^0GoPa=&Tu&EB~e}(8}pl4WAd)g7NA&fTZbpR@f2s~*cd;o9lh>n zMhoxtvh-at|5mE)bXJd+-sNR=4hVPmo`1VYI=ea~^D~ELXB2nWY;7+HZ}j}0@6zmi z*SohZQ_CadpcwV>l4w)Q&K05Y9o?X6LONV9W_J8M>5<+a$@WqH!fyjru$Tevl=NITmywLJ3WrCH{ORO?X& z>aU+a4Lw5aNhZ&02g^XiNovGI)JzMAE$!_QXE z5c0cf66MvJ)xI95Olj7sxx@1~&C~gTgEe<8@7HZCmbD&K-wl#ju2U=-ZMtKeF5&3y z>Tt}@R4DGQ*jja#&Y$!Amng4RtTd7o>ut-_@(5mb)=?oZt6e?*`x@WTeO{IsjZ9*- zZ`|L!k!Y^dtai`ly&m4K%&RkUXm&<%PtCq5*Y5qGpL+Zr?_151w?IeCEoTcfJ3HGt zJaxZ2?`9SoGqzi;M?7_pKqYVdm(AS%YSqG$th_&uN-XcoLCq-ctXk!uYLs1`CsAJM zX{mhco6M?pw)Ir2Q`~%(L~}GJXz_RNw4OcYnQBIn9dYLwFwtD;X_ZZMQJXaD?COxr z&r~Sxt69E1;;Bm3f)#t6@=DE8eaU`Jq@8V^4DwjxMw@hzRs@9t23g0<2l8hHLIP3l|2IfRN6#&t!70!@1FIxb$Fsz?>`UH zy646B>pZDfNb;UOcgOgBzlr2JAFF-}zsh3f^>%eA=4UDtch+nDR0Ds%N}{}0ukvZs zO-Ds&JuT8M&dSvC2q&M=S?Berh>D)ZyeEFN@NOTg9a@zN0Cy#fmUeR!*E<)Fn^oMJ zRVi?u!dM@~x-Mp-5*1W9WtDk7D(kvwDjlt6Mi~&h+SLW3jk!I%&rYT^)}3nF_`I6s>SS`qnA0^|G@Srbs*6Iy~9YlQYJOi|O%9svh6a-HO$2qe}MQpT3di z-*sM=eVoj_F7p6KZ&!z7e&$f@jN;CU^Ropa?QHAt{4ynZ&?Y9{smgQ2OuE0NvNy}W%QOS8^Rw(Vp6#aecICI- z8L3d*S+k;Co0(mXCsF0v|dnIamCIhAH zzrR05B%NIylKC0cdFB*%*K93k!F^I^FL#$_ReN#D6lrH$rj|#({9JE&H6E;03ED0H zgjP9)yyj(Ho+q(f=VkxjpX-i%W&!))&)-<4)fuT!+*h&GO~^9V=4F@TNtD-m**|`I zH6r*kPbt>f*5OI_koq>-Auqe1W<~R}X32=Ve_x`xPP6JRV;7twne6J2%+FLP z?ylL&DNwvk_ns5wwVD-aV%9|3*_Ns05qcxjxfIG6|M@d-;eTed?%s?sdw6O$eL&L9 zeTn2sy)ql7J6n=nnN?@xtykhUPjP3xs`~!9lE>S0YDtvW>XmL8vOPX3PPTP;5_Oom)L1m3QTe(7TIc6CVRXDSr;)hyn%R^{Ps zI>jW)D>ciWY$~C?GghRXZJAmg;Z8@bnw=g+n;9hU9e7T&qFK4?1DY<&lW4BeEF{sa z&x(kovn%uJj8rJ@tXXA@Kd)t>>@qxw@@mcE`%?c?vaQ3D$}GRj?h@zSq_Rb z-Lfx!TC=qZfZrK)hh~-Ga~Uv^bR(HpXXMcAjN-nU)k%?+bH325%kw14YyGUwZ}IC# zk#@HAc*jP%q5*xc*PolZf&(b@Fml)@^_j;B)x6UISlKB~Fc203m z&5E*ix_{njiDsY6LGjyje`>NVQ_CZCEo#q+TkjpTl{fajc>Ln-i;YK`mCBvpX>o^U z$++iiqPHva>Wow=TOYg}W!;wsYKhH)Son4t$ zXQV=LXT@@&W@YCrigjKt&C4tOEa%BU+V2AtX=hu9C%XfPjeSm7w7HK8UHhLIm2j_@ zWk!Q$r3&D0qDwSad0BcswHM08MIw1u4r)$uU(FJS)J`Emvo6n*D6iG5PXF+yJ&Lrm zt)p31s#-g{sFxU>_r+==?TCL)v!Yq`vo6<@Xs*&M=k=i3bOs+^nX{`yGCxzHxU*(; zrc5Pk!HwtR_c)KHR%({~EIk$e)Cg(T*_Ns05qg{$^($4;re_w-?v^)3t;EKat~PoI zSJ1qA5;@T^T@|?o;4RC#UWH{PJK<-*t1Pc;7KXEGkGHEsGCy-@ zc1AI4_WNV^eH@C_8mN+K^gA9C<&~b6m`by=i-FOsw=Gl4Bb+NUJEMZ=n2aMov)hUm zABAQ=pE$xBbMs%Kxh^_p7Y3ff`FW9ac4c0jkwddHiaTqzo`vFD9(~At(eYm|&am<4 z1c|h>t;4gTS+ZieiaWleyZx+g>8bRO^WBb?&S|dGto9!B2G74;B%NIylKB~Fc203m z&8kkO-FTH;BYQH=?>WuPtNkpQW2(ew3q;!4mZ{|tVq@JS@7Js1&8e+emYxJn@Bs`Iy~ux z;`{fj)q}QTJpVJJ5}wd(EqBa%W3==x&2kbDvz?n|Mbg>TA(@}4P~2Iw+Cy9Eh2pg6 zI_0&VR_8&bJ7-y+IomR|Ji^`{MpGvg?~Cu9FVCNzJ-(y6HLGe=B@5+q<7oz77aglR z)Ss=4X1!gRS7$_;om1Rhv$efFJ~mC1S8JBsg^$lg+QrQsp4>XCuGpM8CWAv(j5vB! zsC?D#zDKiKKhpblwm_tvZJAmgVGk{S*6Z=0t=*UV<)D-~uK8K_E)&glepag-a(IcP zvn%uJj8rJ@tXWa6`C0d#6XmsjRux)bhm~fXZ5^J6W@qbJx);^uv0H2`ntzpMV3+Gj zG}mdCyd7O+PMIR5eJKHj~ zJVJL2dh|Y2w5jb88~c38_>S&f&mKL;l^z+N^G-C^X;vq0`P>Ma^>$@moskN~eKkuj zNOcDnYs&F^oUedZY8Dl#LhHP#NITm)Jb7m3W6`Us6?^$uvO3j$J=`%^C%I0qicY@9 zxY*m(rTA&q%@lXmtNK$bwOOiab;@h?st#bz6+T-ay*k@Er01tpsBclHQ~8dI(Y|{< zEUSiU-y-j9v~)iAu2ZZ|6Ub4qx2wZ3KO+x&oH6Dp?yFc)u0_S<=j)W$DpsA*>EI zug*w?;%=H9DH9b}DZ7|7t$o&N7G3gXy6;Syb+&bQQgi*(0mX?KRA&9EYgEGBnpHnr zC6~y*V6=3u*-Z2LuAbxFx!*6AZluF9KO@!7IcC-VcxWfy|E*hMmdfnxJYCXlim0yd z#N$42^;5VASfrh0nOYv1cP$?M3OPeHD&ZN;R@OOwwSJXkN3rB2avss!m1%WGsJ+Wm zWr|s`-yhkBH|kYgiqSh^)S~~Z%Y5u*gT2;J4``s%ye{g=;`Aw#%X`N!J<2}-Vfi;F2y?A zIy~tJlizZ^5=ZVrT>(B@@|9iC{e)2wP_c`fVh>X6LOR4DGOS@LJp zJ}Z=6k5Qt$TC-%J{Qhh-%YCtiID}Rswd0UgT^;>Zw^Ygeqj0M)vUis z^4BYtEEMsHTgiyyT{);Z#hn$a98`_6^KpstTE(hs{~uqo^QegT8i=!-&Ldfud4wJ) zbxfqw+o+ClMgV@_XO~Ay?p7^4v96-pXL3+F*_is=_?||V&aOe?oqAwZ_WIy`vy8Zb++SdHOp>2qGzw_@k_i{vDB37F_WAB63cawF$Bp#Id3XI z>+I@q%+DN(ol)FZvD)!o+dWGk!T3GStMF_6tZsPsCq9a_vn^B0Bdk;D-|#C{(WZ-s zHJQ&WkMHPi%_?hLsr2~yCTTX)yt=E0o(fc(JE6Q~nOJ9}!ZEA%$D_Mvd3#sRHt^ZL zL^{pR*Z1O)u|Oq07Dct*vJOuwv~*S{KPukGz0zLW&**lfS*Zi~Q~VRnb-IP-{9G?@ zS%+qRro!>xf^IA8pub;!X#6JU{&t;inW52bj;p+7nOYvv`E03wkrgegvfWm+(k!*R zS{};ZFqkx(NM7}{D3(0bZ2onTbEef9kz(f*vtqwLxa(b%srJow2J9ZySl zPl{RPX`O8yo^;mX2Yl>%#8t|G`Y&&MNB70YBhAWgXmV|%rM=nrx@MVCQvF*bon0N0 z`I!pEoi(d{0+kBw-!|KqX6Ch;RlJ(J%e`%xS{@;%$!Mzga2hGz9&h2RxT6y8)~xc{ zm97e^TBD_N&1Ra{Rm*C2R`KzcWn!HXy4^l;%&Psd!J1a5;#SW7^0(3@-KL1D<7qi1 z1JW*X()_$C6UCaAINbL+9kjKZz~@XxE!?eIvHUy-lN)yx=Bq3_nk9}&^KY`Nqs;tF zg<{t1^U<+poX_zTZ`1XOCdzqk?r2u~-qYFh$+k=_k8tw`p1^0AMEf6quEWowEc&FYMUnP#1B9iBXs zGEhfEk~RIjUTd?ji&yT@D-jGa%J`lXmve$PbK!ZUOVLLXZ@p%UJL^@QP@kh>-log) zB+9Gx3bnNFGTGK4{pA%E^PKO9RqldZ96#fAJ$`Zb#>K=1tkG&d)@6DU&2>JO-S&`l z-;y-z?COxr&r~Sxt6BC$)hWAPqeOY7W~t(^mh~OaBJFI;)ba@V5hAywS^O;fi&&BQ z*!fA#ist9)EOX8?87M00?1}QHD~hGFEEDUD$kWa_X4U?9JOg#;_VbzKkal^Vq}wz* zUti5a8r7yg)nr+Rr@9ws`6qPEcjtBeq-Lqkl5_afZ_K~(iTo2W41U(1)rMldT^)}3 z87X#7F)Q}z{1Y)sow8elB)zWmv-C}BAG-6VBJFI;)bhxe*Kgu?`ETc#pS7RY>-tH} zveMxkx{79>$UmW3t!LegA(GCn%&Rj}p}4PRsX?OI&mB#hi2(z(>`>kOp$iB zb$Bw1%{q>WjnOI{9=rM3gXZV`v(R+8o&+vsx|nOYuUHy(QQKJP zpMhPjC(&G~S@mnVIaZo=c4c0jkqX6~HLG(fD%An{8^`al+c(o$&GMGfk;_hqw6m?l zle;YWs#qbP|Fs8g_LuM11*LN;$e~qcVD~QX&@2&?uR(~Uv#UcgKU1N&vu3rPt*wBr z3Tk_V}zLk#@FaYI)?#Pc_c^7TE*J^SkvL6CdDZKkvn3R&q1auU9NHA#<;b z*x=~x%CtHoZ^dScyDOHw@#lHjSHTnI)rwVhAVtRBwhm7sW7b< z`yyjj;AACgdwS4@%k(6gt0H4gP0(&Aw`P@Qon0N0`I!pEJvA%J%*^DLDw=gZE>T{q zS#r4O$XOuLZX{F7BUIbbqwgXX?c=6l|1(c&Rx~U9F+|a$rSo;pD$O3XS-(G4B%NKE zS7)R`ad*vDPL^S2cJa&|nx)bs9XVx+w6m?llidNj*~2SRyg4^}Pfx4P%39pyay^OX zI@PKI;OqQi>FnyT%+FLP?yOoUlXb0lT9@ZZl-GLNV+HB7DbmiiOf8QbXOhpNW9~sw zXMkH3j{fWJ=vbZOl^hhOT8)<8=V{5_p_=n=7fEMV=G7TFG&`fXvu2@O^|UU}bB|`# z1(j~>AqsG|b$Fs#zAC?36>YpM^`M=0&uXnBnw7PV@0Ct8SNd5h0Dgxon)P;dNaklM z6nECF_6XD{yBtuWyw=bD<4Yg29#u}GJI~vhS{@+_MK))ihvEb(Jgv`jj+Wf(X^%eC z%I;ab%xLL-o|d=o*IH7ovnvzpj7YU}iuM${t^QR*1R=XXZ zvr}Wln%;6$y_=ssSk`7>m+eU`SNd7zI_8%1d?Aj`t`5iiOoigkiq#6Jl4~TVdVbG| z@>)Op?WdphJ-{OEY|GU02x^>Vjum~%6Z^i4@g3dmWks{nA;Wh&T6&k4)vChZJR*|L zuFR`5!s#%b?B-yRcD8kSLefXQqRl-~>dV?I z2X)Y_`B|6iNi^5^SxB-oD|LN}q_e9-GCxzHxVvUK{pfSv*vF-b@;W~&%~Ff^-IF5i zV&+UOk5KI)qm_2Fi#K=Y@$LES^60+I@q%+FLP?ygv3s>;0VvOISw7O%!EeE!ZfH#^%hwLC(thweqM$Ah+Z zf%i?sCxEpk@1@*nYzjh>~cMc=BmgTj*#^0ERl3}bx7uC zDin9uEc>4;lwF=DQC=Atqgiy6cX0VLXEL=s!g^M_-e;=i#u=$(pDdK@(djak`~){` zpJ%}9Jg@D0CyHSoH0vBU&q}w>vdpYABHhk8X5IdH^hBsP>Dpca>d2=C7S%=m`xi;u;U+evFIeU&4rHnF^_S*jG|CVU10&3d~! zB=a*BidnPYAH1x@)5X5~KbZDCBU zw$k@T^jIgIX6WnQmh3S~VwODrevx*Tb$IHO8NMs>o#)@in(QB5cF+x#>bc`nck8x( z0twmL(bBnY6V0otg(YiSf18Y0I=eb7^D`BSS+&pmTiuXX^S931-Q#cN+j74uw9j8) zrj|#z10?5~MEmROCy4ZRI?qkflXlZqvWxU$p5Iuaxl*$_<;(GsW}RJ`S7)R`ac9kn za?Q^^m5*X}Mo07*p1(7ZcD8kRa;HG@pa<*yI*+ATRoyEcQGeQ)Uy)*C7Xic4Tb7A+Mk*Y$YIj)CigcxqhEv$jelC$t@zizI9;E&67ini% zho>ruZY}#JO?0%#i-6F=j+?8=5r9O&A-mmT_<`~ zx#$+2`R*P+lBsn@Djc(NpZBx}>B^ec*TfU)b)J^4J5?f`Kb3M_R-?m{(~D5#OtsW3 zRBv=M$>_uG%^V*rEBgif2_RQlUe_!cYx>*VOe>PVJ_{wy&M9WiKJRVSMN?Y^xu_;l zUh8e;{Wu|URK&Yd%dK_ik&b3{(#)(*i?1b%!_Vy0e~cE6GsI6o@h zs3Wg_$G3F1uca2ij)u>@ss7)Wc&=70JuKsUde6Y#u1u^mQlYrBYE|*6R0({~exkfu zwTi0TN(|L{+d4d@+D{o|&hE|rc>EggR;_k5)OfnQPvW^wwPfE})w<|NES+5)miZaw zqvjNMR;@Z#EBPqD5=oTTs#d)f`2;_2Tc(yrv=5$j?X2#@Z9>c=zFYP=)v^|^o<-vK zwI-gcRhv7ayj_`CXGE%RI-uNf?`C6*S+|yjG3UF%9Xz5*jjQCUDZptfqyE@v;&r~SxsajE1HmVj;xtQh- z)sh)iR@YgesLG9GYI%h2<5?%8c+*$I+IOdHlz3{zQ^`j8+XoZRRlXLI%y-`=>)JcA zQN$#3iaV=Tlq)w3e0_bX^|^VauZ1*q7WSTC>ptGL4o|8&?0rJF{#3@J zW}sS>|C#YU-5nu|XyxP?f0pTWqMh0g>m7e8l$3i%K1vn58ON;LACK;bS5zg^m1=>H zYZB=cRdxCq`OQ>g@*M5_a7Ve?p~r9Yxu&CPpuGdWPVuyE>GS(I>4R5WY zDd$R`Kku)@ll)iGQ3U)GQTSW}C_k?D9TWNnZ7|ygwpjKVwL-&aMu}{7i*n zR_yl&PoGhIEXtL96t}mI-(xqT>O{yoOMIqSXIrM0N4~r~DE0Sw#g_9^`1X9a^7xkS z^|a`fxT&IAUy=URs{Q>Hm-FRuzR&oc^fjScZ&xPP8Ifw|6!%r_LAlb?$hUlc&xvx5 zr+TVIBR-EU($2OHPb#+Tl1P43yx+H$>{YR49l@EemDP^Fl|AuHQPWjl`#%56t*XWH zj%<`>x8v>^M{#G>Di>9w>{cO(@=DdRb5wa`7oCf=v#q1r<0MG$MUOd}Zmj*fEO<+J z+RB>t?@PI;b(*D0%8clgDUwdj9g_K(3dNl@tB%G>e9XS4XFM&0sm%L2i%2`$GPOLS zlaLwrzwPj}I*q~q%=nh>j*rE&Qn4kQHd;Dg@2pfUIRmJjf4f*ZyE3uPNQL6Qs^zPz zuY#PPyT{Y&jMIFM1)WOgZ=l0d=S4yF{P!KK>Gs&`B#R@SCl6Kgvo7D0SguqoJ#P6N zdf&6!;h3MPP~2Iux?8%Iw{W?hM0sUwth39>T{vB8Zg#e1YI%enKlJE5sA#jY&b?Ek z((m=M_1oXIqCSYiFMGeG{t5^Sz^4|1(c&wwj%Qrdv@an(H)6&kBCl#lIry?COxr&r~Sx zui4Mh6qH?_CsAIjS*iqR#PJkqXIrM0N3@>J879rqoXdzsK2!CiYO9?U@O0Up#B-f$ z)hFuf5Mt@<%EUS&6^c8nR;Mz4-d77{mp4e1*Q%DekzE6hr${^7Iy||lHha+{u2Lr+ z?_^Y{@;Kw4+#MaO=KeVch2_rIC7SCrs~Uj63rr-PT^*A7nF__7HLDX3YMOQH$wYar zW_7O*k?W|4qZ-c_=xoc>@(7-mZuS)WiZ^@A@W#FiV6^dW)si`8HC|cMK9h%H7d#m} z_uHjfH=+Pa-%Pi@NA zb;QzHmWg#nDjc(Fe>}Q3?@hYqYyD32L^{pRogPNMGE|b*wBE7~&tpd|v+=0E!_#Uf zCRw?(qhNgMZq@3P%}R9a^8;5|b~Fn~_6&^g>AlkNc6CVRXQWy3*qLJ1?Dq$E3rMlm zvs6)y%k?D6Ydx)Q68HIQ&CbrYOf8SFFOQ1Od_OI5F}!^&H-3#zsJ7B~3{RKwNj%dG z+)*ugK2Fjc-_xjCXICcH896-djN;C!t)8U{W%r&F<+ZBStrGrLda2gg*5OGv6wmpy zPehxH7`dwb*0iGe`K|$II$xJ)uG6ft0q{(kbt4^;`I!pEoi$4}zOs)C%1`B?sM0DA z7+3(lhPYrNOf;`!nE`NSDc-g378de!Po_*|#; zc4cCn5oMz06!%r_LAjEN@)egvd99~aZ@$0x4b^(vIy~PspOlM27m6hu7YhmdNWT^*MBnWO46qqw_j@l+Mn zy7!zYuT?FTJyx2Ir${^7GPOLSPR5jF5^Yx3J7%I-YcmIb-WyGH;xayo<~q%4t>af) zBI)ePygDNliaTpoJ?5Wx(?Z#0dlKc9nk91}zve6uX*bg0$?X(8m)5j+GW7701#Q5__hh%={$VAO3?yFh8KK63e{H)9NB+4r_ zi!IcoBm??iK*W|<3lb17o- zc4c0jkqX6~HA|hgayAL){5r)X%4;>tj#;`GUEG9by=@(yI`r^{GYX+9it`5umjH2T?#hq0PW&CYrZg#nzM0u@h6&>e}RpOlU z7nrH#5p`D(i_f}`sWZy=ySm9}$$fb!?aEhPu@X5^NgFLygqnD+QZ0Styj|Z%sTtVW zm5Fsmq}n;fJyrXrj3z3ob-A8Id97-7>ZZR}O{AS|J)ZoQbYj~PS?Ol;o#Nv+&FUQN z;+E?)ulGcWrH^F9(plDFnV+d}%&PtIX!o&5>z2gYO33AV66rKMce;;>n&?4tzh9)? zNT!xY=wl{6_Nyz=#$RC1P8FY#WhE2!`)j7Y-_!DLdH23sTqK=cnOA3|LNROh`-9!b zBjrkW1*?%d<+Ywxc|J}(I9njn&bAIucERImQ*^BCF*nhqpBXK@J37|d9 z(J`83U6K8)x2r=kKXYhyMsa7&*0aa_OY4-^YWCPM;Bpjb*4vh;<&l{O6>G9y%y<5~ z8{g2~iWSSxr_S@f+?%`_F?X>~>_6!%wbrRR;48qV)IQC_WB z^)WbKD#be6Iy~{RM7?t_t6cVekuj%`)cTI8Sk-B!RnB$I>i%DDZ#e&Uk#u%-Nakmx zS$r(9lBc+{W_6-aO|$Mj-=kTbQtodr7ini(rj|#@9Fy7frz{?{sjH-&d*iowx1ZHX zGnG1kubm~D>olvqQS8SU-_z)4@5(^Yf08NgtJ!0(K#j6nOD4)|{Vbgyv-3&(IyWmb zkI=u!@0$BrIxF_-s~}cCXx3t5m+46~S85jD=I=Jt?Cb2xygDPt%sZpFyJlBUY!wXc203;&FVJ9N;U6K`<@f!)tY79k@rh`+d4dn zjJ40xXC}m(ohc~WuX&&Jv^t}_(g(#U>!YRjReE%OrHg>2T4z^>WqzhYac9+va;2U} zmaR_tSE$x^0f@A-EmO-QUtVg=qX%s|V|Uc7^2U`~J8!K{bDgJE%*1;<|8|jdc4Z=+ zkqX6~HLJXFZDxKh2c?rqa_^!)9jwEX(~fgC@u006e7r9nzs0*(w4zzLSHPbak>aLx znq|ex&MD_jrCH~JJ0$Zn6^i?6mL2cay**UJ$M10-O|AB`~5MBO|r+ISG0b`eurk65%cWp?aI75Bhu`g;_jNQWue%|dR9!Lyi&7t zv%$viiAJ;DwjR&V>sfMMWTAYQ-T02~^|MqQtGn^&92qU`&cN5ZD!9FxcjsnVv2>Po zSmtM>+BwIp+8>Ya5fJI>?CdgrNw+DY>g*BFEmzbt&R?2HJIgY)Ji?p6i~7z)(dLWa zagV^kva;6kQOi}99nDhz=1h=8(v4(ZoskN~tl94m?-4jCSMnCV<1A5L>1oM6slMXo zU}<(;7D}}oANd|LwC)q~5%l;iKH+Jxyb>L|Y)_(@=HISneGDv;&aRF!^D`BSJ8PD{ z@>-87w?2;FV>h0IPyd#uIMS(b@)Mk*Y$YIlf^MY@u2^gS$zbef$zs>OSxP6m;7 zE2IujzNqA7wPIwBOL?m26M!Vt$5M13xvRnDzR6WUMox zD)aJJyOvCp^Spdruk71}w7-iegW?sX0(2rWlLis$M zeM=(g7g_)7ooKGp?6;ruuiuXaNpDx?)fv&uJEyq2W@}YFqQ-MX zlPIs&EZ-z&9-b`_X=hu9CwE)so{59Dx}eDjob4I^zqc&SzpE6>>W29+@1pf~Wm=t)3dP+OOFz`--Wji#M0urRAq^XU@4OW2 zwA|szJ^{X}Sq_SRS$%nXd0F!7)oKs@py$~y(Ojij?t_5JEHZX>bx7uC4lg^SxUXiZ zdQxGotY-Z=K8f;5&C0U&c+=}7gr!6u&TJgqty z{YhR@?OnZ4oSBg+?yK74goDbR?__VEQZ4xlRzfZc7HMZ&N42a|=UFJuIoL4^rQMaa zS`Yir>nztPmM&QKdt{Ezt`5iijQs4J;?9b#-!}ZWjc3xlyf!xGtU$b)n}MZR7i(o| zc?3VpDj;`NjJHSo)z_$nd!ysy_UKx4?D9Q{=Q`Eube`M^#jcR?4JvBS#5yC)%kMkD zJ;mKsTiXxfXU9Z&t!l|Y;r(2EF4el3yTg-vdx$er_o8U4Cgi(z#xL#(%~m`u>vdPF zN;KDL_UIw=^KY`NLoz>eXm&<%XU(eL?Q^b?x9KuHiSlaAs*k~0KrYhTmZ{|tI-&So zzRO9p$)V7D;X53k)GRqg)c7e2#T#?ko?U=5`}v`iZ*tTN#XxHe|h7d z+#MN<=I8E3<~Wz@Ni%JG|YrQ?nF>DD2Mbef&7p9=+N z@a(l4#~x__}V@cT9KN z_@+jh&aw{8{7i-8-n!*Hx~guSZW8I0y45-Kez$^VXlGfbmPe#pRsXYY`SSP~pJ5)q z#=CVZnxFf~nT1`>C(&G~TkWgy-B_aOEX&L~Bhu}h&k=2QDCX|B(ZXj``?+R~W%+DOzs2RoGRm-ef zp?oD5wN|y7pL2zeT@RyH6t`z;d4w*;9Qlei>p_0Te_x{=cSpxMIki#|po4F;w71f^ z?rEu&vG#D0ku>Y<%Dg%w6^c7+mX0X+RW$3eJ!xiMsaZOXiH=i`IkU5~t;3Vq0Z)+f z$5d80bvf4yMkU;>S!%VcAu2Row&yy{tE%OWLEc^3mj_E{S%+nQMyj22%&PsdLEWd` z7sZ~|@tf?;&ezwp+|j4rV;2Q$es-2+YI%hGv3{H1Z!g~bZ}uJemGAhDp3rTrmysPo zqos42c^1B|Th(j*t+=A;EX&L~BNdMO>lSZSnW0@=lV<3&66)wyef)mj5NT&whbM1h z?rS-F0e`&TnpS;LHIgpllSr=BtY%<0&x)k8tV1$Cb7*$Pac9lahf>Ws`V)r}>GhiR z_Xvr!^TL^09${6RPNaCV-f>MUlC=zlj}fktyzXTc#iSER;Opw+nO0|{LNP1$`@t*R)M6u2Sk#-|lmw5z|*@J3+=3YoLP`+R4NzIC8Wi`wG!_m^aysUOb z`xr(fon4t%XQV=Lcg@!7@O}kymuBVroG%sWRr#mN$*Ig8_*wtujY_!N&+5#I+6?US zJc;HyKdaf-=k7$(+0{{Ieny&|Q`}jzqFkxz`L$%Cyw=ZB7eFJr_j2}^HRCe|6LP~2Cw)HSL(DE_6R7n#RX zD^&|g?MqLd*4x(M$ti(6=ObV4(4!AUcj@isX+@K~;^(Rz|AG}XuV$fOIggsWWgV9J znF`0O+8>YiRfsgbcoou4HCJcn>zQNjh*i}z`C5PXTBepqbh{UMkUAEuM1uo*vt=Cqk?(UYp>wusv955I0tJlCmKJE;7r_ptPKby((SDin8Ct#*Y}_T~AC zc%r;kwd}^2WstpXnOYv1-OMM}+V8nzY%G=)KkNIE63capRn3QUxW<`Hk+~G>)<2n6 zXQV=LU&RvR)oxc~{=1TeTB+D?FQ2AWkc;O;+S%6O$=5^&qhG6vHa>!%@tLaeTf8?m zK4?~=ChkQVExl(wOVy4{fZtmrlFqIU$^1-(;*Of-nN^{mgE zh_tgUQ_CY{aL5Y#>c1)l`|W-oX;yAzVg`1(o?q=}@v>+(-6Wmt%Dg%w6^c7+R#n;#_NmtBGF79EcX`@FweX~K`g0b_cQ@Rn zTIRj+J&n<^i>5j(^D`BSJF8YVZ`IbbF4L1Juk^Is{i5jDX+)}Zwq!sCIvontGE3l%{m(qD+S*CDf7u!ED$DDd)jb?JI`(#D{dGp9**V3m+3%0_Rg8+Q zopIoI#U;vlZtiH7{YC6HcXO~byDAUG*{S?4pBFx8>r_a;>V00bm3j~Lv(eId+?3|u z>zY+|BA=(}?dm8qKU1N&uVzs$x#LRS!sq*by=Ix2l{;o;Jb!1>?7BRZ@|Rh)WZTJ9 zQ8V6cO?#X`Qt4piou1!j;<-+>*vQ+>^RKfjE3h-7HSL_@&Z9r! zIGvy7v?nP>u2ceF)}l>cCfnDt4KS`GPOMN?W1Nn4U+EU{e0~) zqkOLU_zGIm>?&UiMMWtoZt`|zTAdLoc1|%X_UTnED>x$LN*;=wX+sZmS+bnj*V5g~ZYTWle!f;!yvj~XIvrLJz3OY}BWKS0`}OwDzh69^WgVXR z8NR7c9J6wF@Ux@XXbBbBDPy1We81eQck2 zu3OiV3t&!kkr6DtU71*CM5>)r+*!5tbuIgC#_w@HH?Q=w|M((F&XFw9*#ePvwsm-N z;*3=5^O&q>|KasN>#@iH+S#Be7hk zSoK!;xlSCNU71#A~=vxt>IMtzxxaqi=Ln#5gxQ+d4d{_fWY`I|9U; z9eiZQcB}Wu&!UUZJbj)m@m#4|>OEPt-mVVI{7i-7o~k7qKu$op&q(T?sg_j` z8AWvDEMR{A+m2*vc|<24GXwjtNBuO%$!v{yf^mbERsv&T)~E zSh~156YGprDDJFURrV^r_HXOy66JNORdkH^gXySafhuR4DGOTCLJ*5tYmJB+Bbl`_3NEe66!B zQ_CZYkQw)i6mM+Gf5$kp{QuRR(XQRL5k>V}p#M&O+=x{6QYIZm~&p5_)*7Tf#O zdSGW)zS}(`6^b*f7Rt=zDwJKMOO(f|mY%z#bpky2{u$`uDb?mZ0pd*$1{Qf`x0c+Y zT57Wup04VXc#c%9dd~7}$Jy1xGG9}nIJ0WiUs0p%Dn5zwSk+1+bRxBiX#KOZEmO-Q zsFqo+uQP45wdRAj+uPIr=4#DW_Y6=caJDC!V>GL|4)gC6X_H-6Cdy+qt94p-;IxX^G@ESe;mMmp=;ZLv^hR6V$Fpko@lH$bn5+0Cnj(*Qn<=&zVNb3^f{pVHLlvv~oLRM^T=UH?&Lzs@RI8jy z`?;Jp+1=`6a1T#beaPRAvSXqY@nWX_3T!6wvxfKhJQD7htM??D<20)i4g9x@q_eAs zWWHw8>=DIzH7m-@6f2R|#koXztY&pOeOf2r33Rq)YI%g7SYoJO{}*lcsNh5VsWff; zxHis;W;Jhe)t>V-&+eziqo~T4BdxP66YCkNaLlTGd+SN6^3Lk8sLg8Kolc~acRs%h zp51vO?Rd&RJIi`_KEG+e=f2`i28~5N9^a|kYF{d=(Pt`A*$bc5Ei8HRe0Bs)Z&?q` zd`*Sp{JO35Gjc!ARHH`fmOjR#xsbOkQ_CaFYq=X~7ms)o(XhzJ1KqctNJ7_ zJXW{r{7qiiTb7yij8r)OKj^knk-}59&!lPyiS$U_YR{Zki9EEktcNF^k?9nu%|{>Y z;A`*C)j6`>tX7%vuxij++DGzyq-Ec4TH_W+XIBr$d`*R7R_vP_&n;Je3}rmq<9V%L zCrx_Ip1ChWmX5M-c6G8$EsqdsnLno}D&9QtRHK+t@1OkkH+QJEHnXKqxwZ5v)qe5& zopZ#bT4z@#)-zI}IJ0VX>P$_wuHtirYKgC?)}Kcv($2OXp1h%gSm5VYqD>DiD?@(f z+bZE|%~s#*Lw4*uV4|6Frn8Zjs-Z}_+*~A`T|Ff8H5H08YgT8J)HLhrJ&E$jNXr_5 z;+o?r($2O_EsyBTnd2EP^=$28m@UqVW~Hv^=NXCSIL*r2rA~6r!EyIA^XeJdGe{~InJiWYE~yVeZEGvy#;8N%FBMFhv$p+(;jtK;6d0eKif*JXx4IL zf41cnn$=1`%8k8UJtXrr((EzCnKi2wpGpOaXJN04M0u=cSzBRcG-XuYwoEOL=#(gC zv|f?oP34&Sr|))b@6xr|F}{nFk1KhTe}ib^IWE#}yYn*3>*`QP6lYegX0(q_D<_&c z@0ci$R;~7ixXekB*4dV|nMbtZ!>r5aX;LlfAlA-SheC<9^UC4r>OG0)IMs5`@W451 za&~26JtGy0Gpkm6Fdv_O3}sjANt8#bmUSkwD*uKOsn*%n!;`)VG)w>8^^8;~ z&aPRW(+Xu*>q(Ty##wa@ruR0{&+2UJ;rZMTb+qEcslj~uY<-OE&adtn;N;1=4;~k3 zUp_@z-WR_Ab|S5}tA}O2MyfrgIJ0V@OjWj`+Pf-I#6D%mE^`uTXIrM0M~LW;^s1=u zvgh_WygD<6WUU58{iU_^IAjn#8Y9nVMX#>T zb48S;`b9oPtld9nBJFJJ;mLUvM|*rYQH#^ZnDNfkRngL{)Q#y#+TY9bG|%=`P~)d- z#b>}`=`8DEnXl0qs>d9&YTw?v$48{qsan&m%V!el&azA`k7#eZ zU&j$^B0lRu^J!KjD{FWB3+kFpB+n~WGYY!R_TMg!&aO z+ttG|U$e#8BZ@PtR+KCIK{(A}ubD)7tZLae%`DSt6V-a#GPOK{YITB~U&#?~;y(HM zOqFAKVVz=K$&dfC{u}B%$ElX;6WMWQ>FmnHdPXV~XI5=}r+|Me$2F>zPxLzirCK-J z?cvD|c=adxTwJ{AgVsvpJe4S^mN_?-ipMnysxfz{R&Vz8r^}0_v#Wwtm)^@AXPFN5|QhtAA$@m zJtLcDk0{Qp+4>n^R805xIZ^%;aW=hu3)0TE9-hQmuJd{n?XTAFL$kiV+}@)*G|TGP z1}Hj(Ryb$ z(xX|jUgE4@fmQW_eFE6y|4wV+)taSpT+5BgCR$66bK^|&{5q|CqVH0aYMo_0Eb}!L zj#;&DZ||(2W>Kv+5?|`1lXvdvtWf70@8Q^gzeqdFGPOLSZ}NH+YxTv>wI5IOSydEk z9@y1-k_S#C&nlKEtMzs_YZXUlSEki7QlXd?`{w4(3aWT@y}G(VqMSW*k79Wn9yOM% zSZ7-gPu6Hz%gMWY&;@;t{2gDZYQ4(Ukrtk{zGD>9T6!F5$Eg;I)C)38XIBr)e9abT zk0{QpTJ6ZIRF3^_>VF3A2llYbspg*xh)*l3f1&R99Fzb((NKqs2xG`n>} zxp^xjyZ|W_5^bKV8T*d8OVv0_ z@5tW&C7RFnxJX1=CEac0eGKVGHdjqaa1<*}O8X%+rVZIO1iWomhZ z$}yVtd9P?wr@EgRwo^ElEMC25=l3bdG(A`D9)@|osC=RI_8{# z{e4c9M{Aa9ZtjHgw)OB-*YUAtsT=2gW$it>c0S9ha++dId8B692Y^PH3$==PUhQEY-F_rf%OmtIlD+wP6>kzC zk{#^}Y3;aLv)cDj*{$_*^?^a6?QG zdm}3QxBPjfS11{rTJF!}{mf%O96Ntm=FI?{Dkx z->*OaxcqDRb^W{VmY>$2zFB|ze);$M=Xbw<%B%J2Kdry{u>5Bo`Nz{If4lyl@8Prm zx{gv2|7rQ{>3g0nt$gF_mH*ePb?x2b=Q}?ITKK7tdGuT5`SyJt?B9PxQ+Mj;|M}gA zm1vduF+|wU^Yhp1bM}6HqMrW-&(aU;Rj-%-0;OmF Axc~qF literal 0 HcmV?d00001 diff --git a/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/report.png b/frontline/cluster-fuck/RSIScalpingXAUUSD-trailing/report.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c91f23144f0b71a7c7da2a97f0945d84553ea9 GIT binary patch literal 8629 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 literal 0 HcmV?d00001 diff --git a/frontline/cluster-fuck/RSI_secret_sauce_XAUUSD/main.mq5 b/frontline/cluster-fuck/RSI_secret_sauce_XAUUSD/main.mq5 new file mode 100644 index 0000000..425b7f7 --- /dev/null +++ b/frontline/cluster-fuck/RSI_secret_sauce_XAUUSD/main.mq5 @@ -0,0 +1,508 @@ +//+------------------------------------------------------------------+ +//| RSI_SecretSauce_XAUUSD.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" +#property description "RSI Secret Sauce Strategy: Wait for RSI to leave 70/30 zone, then enter when it comes back in" +#property description "Based on momentum flip concept - not traditional overbought/oversold" + +#include +#include + +//--- Input Parameters +input group "=== Trading Settings ===" +input string InpSymbol = "XAUUSD"; // Default gold; same numbers as secret_sauce.set (that file uses BTCUSD as symbol) +input double InpLotSize = 0.1; // Lot Size (Profiles/Tester/secret_sauce.set) +input int InpMagicNumber = 789012; // Magic Number +input int InpSlippage = 10; // Slippage in points +input ENUM_TIMEFRAMES InpTimeframe = PERIOD_M30; // Trading Timeframe (set value 30 = M30) + +input group "=== RSI Settings ===" +input int InpRSIPeriod = 16; // RSI Period +input double InpRSIOverbought = 72.5; // RSI Overbought Level +input double InpRSIOversold = 32.5; // RSI Oversold Level +input int InpRSILookback = 60; // RSI Lookback for Peak/Bottom Detection + +input group "=== Entry Logic ===" +input int InpPeakBars = 2; // Bars to confirm peak/bottom +input bool InpRequireDivergence = false; // Require divergence confirmation (optional) + +input group "=== Risk Management ===" +input double InpStopLossATR = 2.75; // Stop Loss (ATR multiples) +input double InpTakeProfitATR = 5.0; // Take Profit (ATR multiples) +input int InpATRPeriod = 14; // ATR Period +input bool InpUseSwingStopLoss = false; // Use previous swing high/low for stop loss +input int InpSwingLookback = 30; // Bars to look back for swing points + +input group "=== Position Management ===" +input int InpMaxPositions = 1; // Max Simultaneous Positions +input int InpMinBarsBetweenTrades = 7; // Min Bars Between Trades + +//--- Global Variables +CTrade trade; +CPositionInfo positionInfo; + +string actualSymbol; +int rsiHandle = INVALID_HANDLE; +int atrHandle = INVALID_HANDLE; + +double rsiBuffer[]; +double atrBuffer[]; +double highBuffer[]; +double lowBuffer[]; + +// RSI state tracking +bool rsiWasOverbought = false; // RSI was above 70 +bool rsiWasOversold = false; // RSI was below 30 +bool rsiBackInRange = false; // RSI came back into range +datetime lastRSIExitTime = 0; // When RSI left the range +datetime lastRSIReentryTime = 0; // When RSI came back in + +// Trade tracking +datetime lastTradeTime = 0; +int barsSinceLastTrade = 0; + +datetime lastBarTime = 0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Determine actual symbol + if(InpSymbol == "" || InpSymbol == NULL) + actualSymbol = _Symbol; + else + actualSymbol = InpSymbol; + + // Check if symbol exists + if(!SymbolInfoInteger(actualSymbol, SYMBOL_SELECT)) + { + Print("Error: Symbol ", actualSymbol, " not found. Using chart symbol."); + actualSymbol = _Symbol; + } + + // Initialize RSI indicator + rsiHandle = iRSI(actualSymbol, InpTimeframe, InpRSIPeriod, PRICE_CLOSE); + if(rsiHandle == INVALID_HANDLE) + { + Print("Error creating RSI indicator"); + return INIT_FAILED; + } + ArraySetAsSeries(rsiBuffer, true); + + // Initialize ATR indicator + atrHandle = iATR(actualSymbol, InpTimeframe, InpATRPeriod); + if(atrHandle == INVALID_HANDLE) + { + Print("Error creating ATR indicator"); + return INIT_FAILED; + } + ArraySetAsSeries(atrBuffer, true); + + // Initialize price buffers + ArraySetAsSeries(highBuffer, true); + ArraySetAsSeries(lowBuffer, true); + + // Set trade parameters + trade.SetExpertMagicNumber(InpMagicNumber); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + Print("=== RSI Secret Sauce Strategy Initialized ==="); + Print("Symbol: ", actualSymbol); + Print("Timeframe: ", EnumToString(InpTimeframe)); + Print("RSI Period: ", InpRSIPeriod, " | Overbought: ", InpRSIOverbought, " | Oversold: ", InpRSIOversold); + Print("Stop Loss: ", InpStopLossATR, "x ATR | Take Profit: ", InpTakeProfitATR, "x ATR"); + + return INIT_SUCCEEDED; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsiHandle != INVALID_HANDLE) + IndicatorRelease(rsiHandle); + if(atrHandle != INVALID_HANDLE) + IndicatorRelease(atrHandle); + + Print("Expert Advisor deinitialized. Reason: ", reason); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if we have enough bars + int requiredBars = MathMax(InpRSILookback, InpSwingLookback) + 10; + if(Bars(actualSymbol, InpTimeframe) < requiredBars) + return; + + // Check if this is a new bar (wait for candle close) + datetime currentBarTime = iTime(actualSymbol, InpTimeframe, 0); + if(currentBarTime == lastBarTime) + return; // Still the same bar, don't process + + lastBarTime = currentBarTime; + + // Update indicators + if(!UpdateIndicators()) + return; + + // Update RSI state tracking + UpdateRSIState(); + + // Check existing positions + CheckExistingPositions(); + + // Check for entry signals + if(CanOpenNewPosition()) + { + CheckEntrySignals(); + } +} + +//+------------------------------------------------------------------+ +//| Update indicator values | +//+------------------------------------------------------------------+ +bool UpdateIndicators() +{ + // Update RSI (need enough bars for lookback) + int rsiBarsNeeded = InpRSILookback + 5; + if(CopyBuffer(rsiHandle, 0, 0, rsiBarsNeeded, rsiBuffer) < rsiBarsNeeded) + return false; + + // Update ATR + if(CopyBuffer(atrHandle, 0, 0, 2, atrBuffer) < 2) + return false; + + // Update price buffers for swing detection + if(CopyHigh(actualSymbol, InpTimeframe, 0, InpSwingLookback + 5, highBuffer) < InpSwingLookback + 5) + return false; + if(CopyLow(actualSymbol, InpTimeframe, 0, InpSwingLookback + 5, lowBuffer) < InpSwingLookback + 5) + return false; + + return true; +} + +//+------------------------------------------------------------------+ +//| Update RSI state tracking | +//+------------------------------------------------------------------+ +void UpdateRSIState() +{ + double rsiCurrent = rsiBuffer[0]; + double rsiPrev = rsiBuffer[1]; + + // Check if RSI left overbought zone (was above 70, now below 70) + if(rsiPrev >= InpRSIOverbought && rsiCurrent < InpRSIOverbought) + { + rsiWasOverbought = true; + rsiBackInRange = true; + lastRSIExitTime = TimeCurrent(); + lastRSIReentryTime = TimeCurrent(); + Print(TimeToString(TimeCurrent()), " - RSI left overbought zone (", rsiPrev, " -> ", rsiCurrent, ")"); + } + + // Check if RSI left oversold zone (was below 30, now above 30) + if(rsiPrev <= InpRSIOversold && rsiCurrent > InpRSIOversold) + { + rsiWasOversold = true; + rsiBackInRange = true; + lastRSIExitTime = TimeCurrent(); + lastRSIReentryTime = TimeCurrent(); + Print(TimeToString(TimeCurrent()), " - RSI left oversold zone (", rsiPrev, " -> ", rsiCurrent, ")"); + } + + // Reset flags if RSI goes back to extreme + if(rsiCurrent >= InpRSIOverbought) + { + rsiWasOverbought = false; + rsiBackInRange = false; + } + + if(rsiCurrent <= InpRSIOversold) + { + rsiWasOversold = false; + rsiBackInRange = false; + } +} + +//+------------------------------------------------------------------+ +//| Check if we can open a new position | +//+------------------------------------------------------------------+ +bool CanOpenNewPosition() +{ + // Check max positions + int positionCount = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(positionInfo.SelectByIndex(i)) + { + if(positionInfo.Symbol() == actualSymbol && positionInfo.Magic() == InpMagicNumber) + positionCount++; + } + } + + if(positionCount >= InpMaxPositions) + return false; + + // Check minimum bars between trades + if(lastTradeTime > 0) + { + int barsSince = Bars(actualSymbol, InpTimeframe, lastTradeTime, TimeCurrent()); + if(barsSince < InpMinBarsBetweenTrades) + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + // LONG Entry: RSI was overbought (>70), came back in range, now look for peak + if(rsiWasOverbought && rsiBackInRange) + { + // Check if RSI is back in normal range (below 70) + if(rsiBuffer[0] < InpRSIOverbought) + { + // Look for a peak in RSI after re-entry + if(IsRSIPeak()) + { + Print(TimeToString(TimeCurrent()), " - LONG Signal: RSI peak detected after leaving overbought zone"); + OpenPosition(POSITION_TYPE_BUY); + } + } + } + + // SHORT Entry: RSI was oversold (<30), came back in range, now look for bottom + if(rsiWasOversold && rsiBackInRange) + { + // Check if RSI is back in normal range (above 30) + if(rsiBuffer[0] > InpRSIOversold) + { + // Look for a bottom in RSI after re-entry + if(IsRSIBottom()) + { + Print(TimeToString(TimeCurrent()), " - SHORT Signal: RSI bottom detected after leaving oversold zone"); + OpenPosition(POSITION_TYPE_SELL); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check if RSI is forming a peak (for LONG entry) | +//+------------------------------------------------------------------+ +bool IsRSIPeak() +{ + // We need at least InpPeakBars + 1 bars to confirm a peak + if(ArraySize(rsiBuffer) < InpPeakBars + 2) + return false; + + // Check if current RSI is higher than previous bars (forming a peak) + double currentRSI = rsiBuffer[0]; + bool isPeak = true; + + // Check if current is higher than the next few bars + for(int i = 1; i <= InpPeakBars; i++) + { + if(rsiBuffer[i] >= currentRSI) + { + isPeak = false; + break; + } + } + + // Also check if previous bar was lower (confirming upward movement before peak) + if(rsiBuffer[1] >= currentRSI) + isPeak = false; + + return isPeak; +} + +//+------------------------------------------------------------------+ +//| Check if RSI is forming a bottom (for SHORT entry) | +//+------------------------------------------------------------------+ +bool IsRSIBottom() +{ + // We need at least InpPeakBars + 1 bars to confirm a bottom + if(ArraySize(rsiBuffer) < InpPeakBars + 2) + return false; + + // Check if current RSI is lower than previous bars (forming a bottom) + double currentRSI = rsiBuffer[0]; + bool isBottom = true; + + // Check if current is lower than the next few bars + for(int i = 1; i <= InpPeakBars; i++) + { + if(rsiBuffer[i] <= currentRSI) + { + isBottom = false; + break; + } + } + + // Also check if previous bar was higher (confirming downward movement before bottom) + if(rsiBuffer[1] <= currentRSI) + isBottom = false; + + return isBottom; +} + +//+------------------------------------------------------------------+ +//| Open position | +//+------------------------------------------------------------------+ +void OpenPosition(ENUM_POSITION_TYPE type) +{ + double price = (type == POSITION_TYPE_BUY) ? + SymbolInfoDouble(actualSymbol, SYMBOL_ASK) : + SymbolInfoDouble(actualSymbol, SYMBOL_BID); + + if(price <= 0) + return; + + // Calculate stop loss and take profit + double sl = 0.0, tp = 0.0; + if(!CalculateStops(price, type, sl, tp)) + { + Print("Error: Failed to calculate stops"); + return; + } + + string comment = "RSI_Secret_" + (type == POSITION_TYPE_BUY ? "LONG" : "SHORT"); + + bool result = false; + if(type == POSITION_TYPE_BUY) + result = trade.Buy(InpLotSize, actualSymbol, 0, sl, tp, comment); + else + result = trade.Sell(InpLotSize, actualSymbol, 0, sl, tp, comment); + + if(result) + { + lastTradeTime = TimeCurrent(); + ulong ticket = trade.ResultOrder(); + Print(TimeToString(TimeCurrent()), " - Position opened: ", comment, " Ticket: ", ticket, + " Price: ", price, " SL: ", sl, " TP: ", tp); + + // Reset RSI state after opening position + if(type == POSITION_TYPE_BUY) + rsiWasOverbought = false; + else + rsiWasOversold = false; + rsiBackInRange = false; + } + else + { + Print("Failed to open position: ", comment, " Error: ", + trade.ResultRetcode(), " - ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Calculate stop loss and take profit | +//+------------------------------------------------------------------+ +bool CalculateStops(double price, ENUM_POSITION_TYPE type, double &sl, double &tp) +{ + double atrValue = atrBuffer[0]; + if(atrValue <= 0) + atrValue = price * 0.01; // Fallback: 1% of price + + double slDistance = atrValue * InpStopLossATR; + double tpDistance = atrValue * InpTakeProfitATR; + + int digits = (int)SymbolInfoInteger(actualSymbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(actualSymbol, SYMBOL_POINT); + int stopsLevel = (int)SymbolInfoInteger(actualSymbol, SYMBOL_TRADE_STOPS_LEVEL); + double minStopDistance = MathMax(stopsLevel * point, point * 10); + + // Use swing-based stop loss if enabled + if(InpUseSwingStopLoss) + { + double swingStop = GetSwingStopLoss(price, type); + if(swingStop > 0) + { + if(type == POSITION_TYPE_BUY) + { + if(swingStop < price && (price - swingStop) > minStopDistance) + slDistance = price - swingStop; + } + else + { + if(swingStop > price && (swingStop - price) > minStopDistance) + slDistance = swingStop - price; + } + } + } + + // Ensure minimum distance + if(slDistance < minStopDistance) + slDistance = minStopDistance; + if(tpDistance < minStopDistance) + tpDistance = minStopDistance; + + if(type == POSITION_TYPE_BUY) + { + sl = NormalizeDouble(price - slDistance, digits); + tp = NormalizeDouble(price + tpDistance, digits); + } + else + { + sl = NormalizeDouble(price + slDistance, digits); + tp = NormalizeDouble(price - tpDistance, digits); + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Get swing-based stop loss (previous swing high/low) | +//+------------------------------------------------------------------+ +double GetSwingStopLoss(double currentPrice, ENUM_POSITION_TYPE type) +{ + // For LONG: find previous swing low + // For SHORT: find previous swing high + + if(type == POSITION_TYPE_BUY) + { + // Find the lowest low in the lookback period + double lowestLow = lowBuffer[0]; + for(int i = 1; i < InpSwingLookback && i < ArraySize(lowBuffer); i++) + { + if(lowBuffer[i] < lowestLow) + lowestLow = lowBuffer[i]; + } + return lowestLow; + } + else + { + // Find the highest high in the lookback period + double highestHigh = highBuffer[0]; + for(int i = 1; i < InpSwingLookback && i < ArraySize(highBuffer); i++) + { + if(highBuffer[i] > highestHigh) + highestHigh = highBuffer[i]; + } + return highestHigh; + } +} + +//+------------------------------------------------------------------+ +//| Check existing positions | +//+------------------------------------------------------------------+ +void CheckExistingPositions() +{ + // Position management can be added here if needed + // For now, positions are managed by TP/SL +} + +//+------------------------------------------------------------------+ diff --git a/frontline/cluster-fuck/SimpleTrendlineBTCUSD/SimpleTrendline.mq5 b/frontline/cluster-fuck/SimpleTrendlineBTCUSD/SimpleTrendline.mq5 new file mode 100644 index 0000000..6476f77 --- /dev/null +++ b/frontline/cluster-fuck/SimpleTrendlineBTCUSD/SimpleTrendline.mq5 @@ -0,0 +1,284 @@ +#property strict +#property version "1.00" + +#include + +input ENUM_TIMEFRAMES InpHigherTF = PERIOD_H4; // Higher timeframe for MA/cross points +input int InpMAPeriod = 150; // MA period +input ENUM_MA_METHOD InpMAMethod = MODE_SMMA; // MA method +input ENUM_APPLIED_PRICE InpAppliedPrice = PRICE_OPEN; // MA applied price +input int InpHTFBarsToScan = 1200; // HTF bars to scan for crossings +input double InpLineTouchTolerance = 170; // Pullback touch tolerance (points) +input double InpBreakBuffer = 90; // Break confirmation buffer (points) +input double InpLots = 0.10; // Position size +input long InpMagic = 26042501; // Magic number +input bool InpDrawTrendline = true; // Draw detected trendline + +CTrade trade; + +int g_maHandle = INVALID_HANDLE; +datetime g_lastBarTime = 0; +string g_lineName = "SimpleTrendline_Basis"; + +struct TrendlineModel +{ + datetime t1; + datetime t2; + datetime t3; + double p1; + double p2; + double p3; + double a; + double b; + bool valid; +}; + +bool IsNewBar() +{ + datetime t = iTime(_Symbol, _Period, 0); + if(t == 0) + return false; + if(t != g_lastBarTime) + { + g_lastBarTime = t; + return true; + } + return false; +} + +int FindRecentCrossPoints(datetime ×[], double &prices[]) +{ + ArrayResize(times, 0); + ArrayResize(prices, 0); + + if(g_maHandle == INVALID_HANDLE) + return 0; + + int needBars = MathMax(InpHTFBarsToScan, InpMAPeriod + 20); + MqlRates rates[]; + double maBuf[]; + + int copiedRates = CopyRates(_Symbol, InpHigherTF, 0, needBars, rates); + int copiedMa = CopyBuffer(g_maHandle, 0, 0, needBars, maBuf); + if(copiedRates <= 5 || copiedMa <= 5) + return 0; + + int bars = MathMin(copiedRates, copiedMa); + ArraySetAsSeries(rates, true); + ArraySetAsSeries(maBuf, true); + + for(int i = 2; i < bars - 1; i++) + { + double d0 = rates[i].close - maBuf[i]; + double d1 = rates[i + 1].close - maBuf[i + 1]; + if(d0 == 0.0 || d1 == 0.0 || (d0 * d1 < 0.0)) + { + int n = ArraySize(times); + ArrayResize(times, n + 1); + ArrayResize(prices, n + 1); + times[n] = rates[i].time; + prices[n] = rates[i].close; + if(ArraySize(times) >= 3) + break; + } + } + + return ArraySize(times); +} + +bool BuildTrendlineFrom3Points(TrendlineModel &m) +{ + m.valid = false; + datetime ts[]; + double ps[]; + int n = FindRecentCrossPoints(ts, ps); + if(n < 3) + return false; + + // We collected from recent to older in series order. + // Re-map as oldest -> newest to stabilize slope direction. + datetime tOld[3]; + double pOld[3]; + for(int i = 0; i < 3; i++) + { + tOld[i] = ts[2 - i]; + pOld[i] = ps[2 - i]; + } + + long t0 = (long)tOld[0]; + double x1 = 0.0; + double x2 = (double)((long)tOld[1] - t0); + double x3 = (double)((long)tOld[2] - t0); + double y1 = pOld[0]; + double y2 = pOld[1]; + double y3 = pOld[2]; + + double sx = x1 + x2 + x3; + double sy = y1 + y2 + y3; + double sxx = x1 * x1 + x2 * x2 + x3 * x3; + double sxy = x1 * y1 + x2 * y2 + x3 * y3; + + double den = 3.0 * sxx - sx * sx; + if(MathAbs(den) < 1e-10) + return false; + + m.a = (3.0 * sxy - sx * sy) / den; + m.b = (sy - m.a * sx) / 3.0; + + m.t1 = tOld[0]; + m.t2 = tOld[1]; + m.t3 = tOld[2]; + m.p1 = pOld[0]; + m.p2 = pOld[1]; + m.p3 = pOld[2]; + m.valid = true; + return true; +} + +double TrendlinePriceAtTime(const TrendlineModel &m, datetime t) +{ + if(!m.valid) + return 0.0; + double x = (double)((long)t - (long)m.t1); + return m.a * x + m.b; +} + +void DrawTrendline(const TrendlineModel &m) +{ + if(!InpDrawTrendline || !m.valid) + return; + + datetime tStart = m.t1; + datetime tEnd = iTime(_Symbol, _Period, 0); + if(tEnd <= tStart) + tEnd = m.t3 + PeriodSeconds(_Period) * 20; + + double pStart = TrendlinePriceAtTime(m, tStart); + double pEnd = TrendlinePriceAtTime(m, tEnd); + + if(ObjectFind(0, g_lineName) < 0) + ObjectCreate(0, g_lineName, OBJ_TREND, 0, tStart, pStart, tEnd, pEnd); + else + { + ObjectMove(0, g_lineName, 0, tStart, pStart); + ObjectMove(0, g_lineName, 1, tEnd, pEnd); + } + + ObjectSetInteger(0, g_lineName, OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, g_lineName, OBJPROP_COLOR, clrGold); + ObjectSetInteger(0, g_lineName, OBJPROP_WIDTH, 2); +} + +bool GetCurrentPosition(long &type, double &volume) +{ + if(!PositionSelect(_Symbol)) + return false; + if((long)PositionGetInteger(POSITION_MAGIC) != InpMagic) + return false; + type = PositionGetInteger(POSITION_TYPE); + volume = PositionGetDouble(POSITION_VOLUME); + return true; +} + +void TryExitOnBreak(const TrendlineModel &m) +{ + long posType; + double vol; + if(!GetCurrentPosition(posType, vol)) + return; + + double close1 = iClose(_Symbol, _Period, 1); + datetime t1 = iTime(_Symbol, _Period, 1); + double line1 = TrendlinePriceAtTime(m, t1); + double buf = InpBreakBuffer * _Point; + + bool closePos = false; + if(posType == POSITION_TYPE_BUY && close1 < (line1 - buf)) + closePos = true; + if(posType == POSITION_TYPE_SELL && close1 > (line1 + buf)) + closePos = true; + + if(closePos) + trade.PositionClose(_Symbol); +} + +void TryPullbackEntry(const TrendlineModel &m) +{ + long posType; + double vol; + if(GetCurrentPosition(posType, vol)) + return; + + MqlRates bars1[], bars2[]; + if(CopyRates(_Symbol, _Period, 1, 1, bars1) != 1) + return; + if(CopyRates(_Symbol, _Period, 2, 1, bars2) != 1) + return; + if(ArraySize(bars1) < 1 || ArraySize(bars2) < 1) + return; + + MqlRates b1 = bars1[0]; + MqlRates b2 = bars2[0]; + + double line1 = TrendlinePriceAtTime(m, b1.time); + double tol = InpLineTouchTolerance * _Point; + + bool upTrend = (m.a > 0.0); + bool downTrend = (m.a < 0.0); + + if(upTrend) + { + bool touched = (b1.low <= (line1 + tol)); + bool reclaim = (b1.close > line1); + bool bullish = (b1.close > b1.open); + bool stillHealthy = (b2.close >= TrendlinePriceAtTime(m, b2.time) - tol); + if(touched && reclaim && bullish && stillHealthy) + { + trade.Buy(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback buy"); + } + } + else if(downTrend) + { + bool touched = (b1.high >= (line1 - tol)); + bool reject = (b1.close < line1); + bool bearish = (b1.close < b1.open); + bool stillWeak = (b2.close <= TrendlinePriceAtTime(m, b2.time) + tol); + if(touched && reject && bearish && stillWeak) + { + trade.Sell(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback sell"); + } + } +} + +int OnInit() +{ + g_maHandle = iMA(_Symbol, InpHigherTF, InpMAPeriod, 0, InpMAMethod, InpAppliedPrice); + if(g_maHandle == INVALID_HANDLE) + return INIT_FAILED; + + trade.SetExpertMagicNumber(InpMagic); + g_lastBarTime = 0; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + if(g_maHandle != INVALID_HANDLE) + IndicatorRelease(g_maHandle); + if(ObjectFind(0, g_lineName) >= 0) + ObjectDelete(0, g_lineName); +} + +void OnTick() +{ + if(!IsNewBar()) + return; + + TrendlineModel m; + if(!BuildTrendlineFrom3Points(m)) + return; + + DrawTrendline(m); + TryExitOnBreak(m); + TryPullbackEntry(m); +} diff --git a/frontline/cluster-fuck/SimpleTrendlineBTCUSD/SimpleTrendline_optimization.set b/frontline/cluster-fuck/SimpleTrendlineBTCUSD/SimpleTrendline_optimization.set new file mode 100644 index 0000000..10ea2ee --- /dev/null +++ b/frontline/cluster-fuck/SimpleTrendlineBTCUSD/SimpleTrendline_optimization.set @@ -0,0 +1,14 @@ +; SimpleTrendline.mq5 optimization preset +; Strategy Tester -> Inputs -> Load +; Focus: trendline pullback entries + break exits (no broker SL/TP) +; +InpHigherTF=16385||16385||0||16388||Y +InpMAPeriod=50||20||5||200||Y +InpMAMethod=1||0||1||3||Y +InpAppliedPrice=0||0||1||6||Y +InpHTFBarsToScan=400||200||100||1200||Y +InpLineTouchTolerance=100.0||30.0||10.0||300.0||Y +InpBreakBuffer=30.0||5.0||5.0||120.0||Y +InpLots=0.10||0.10||0.01||0.10||N +InpMagic=26042501||26042501||1||26042501||N +InpDrawTrendline=false||false||0||true||N diff --git a/frontline/cluster-fuck/SimpleTrendlineGER40/SimpleTrendline.mq5 b/frontline/cluster-fuck/SimpleTrendlineGER40/SimpleTrendline.mq5 new file mode 100644 index 0000000..c87c3ef --- /dev/null +++ b/frontline/cluster-fuck/SimpleTrendlineGER40/SimpleTrendline.mq5 @@ -0,0 +1,284 @@ +#property strict +#property version "1.00" + +#include + +input ENUM_TIMEFRAMES InpHigherTF = PERIOD_M15; // Higher timeframe for MA/cross points +input int InpMAPeriod = 65; // MA period +input ENUM_MA_METHOD InpMAMethod = MODE_LWMA; // MA method +input ENUM_APPLIED_PRICE InpAppliedPrice = PRICE_OPEN; // MA applied price +input int InpHTFBarsToScan = 1200; // HTF bars to scan for crossings +input double InpLineTouchTolerance = 100; // Pullback touch tolerance (points) +input double InpBreakBuffer = 80; // Break confirmation buffer (points) +input double InpLots = 0.10; // Position size +input long InpMagic = 26042501; // Magic number +input bool InpDrawTrendline = true; // Draw detected trendline + +CTrade trade; + +int g_maHandle = INVALID_HANDLE; +datetime g_lastBarTime = 0; +string g_lineName = "SimpleTrendline_Basis"; + +struct TrendlineModel +{ + datetime t1; + datetime t2; + datetime t3; + double p1; + double p2; + double p3; + double a; + double b; + bool valid; +}; + +bool IsNewBar() +{ + datetime t = iTime(_Symbol, _Period, 0); + if(t == 0) + return false; + if(t != g_lastBarTime) + { + g_lastBarTime = t; + return true; + } + return false; +} + +int FindRecentCrossPoints(datetime ×[], double &prices[]) +{ + ArrayResize(times, 0); + ArrayResize(prices, 0); + + if(g_maHandle == INVALID_HANDLE) + return 0; + + int needBars = MathMax(InpHTFBarsToScan, InpMAPeriod + 20); + MqlRates rates[]; + double maBuf[]; + + int copiedRates = CopyRates(_Symbol, InpHigherTF, 0, needBars, rates); + int copiedMa = CopyBuffer(g_maHandle, 0, 0, needBars, maBuf); + if(copiedRates <= 5 || copiedMa <= 5) + return 0; + + int bars = MathMin(copiedRates, copiedMa); + ArraySetAsSeries(rates, true); + ArraySetAsSeries(maBuf, true); + + for(int i = 2; i < bars - 1; i++) + { + double d0 = rates[i].close - maBuf[i]; + double d1 = rates[i + 1].close - maBuf[i + 1]; + if(d0 == 0.0 || d1 == 0.0 || (d0 * d1 < 0.0)) + { + int n = ArraySize(times); + ArrayResize(times, n + 1); + ArrayResize(prices, n + 1); + times[n] = rates[i].time; + prices[n] = rates[i].close; + if(ArraySize(times) >= 3) + break; + } + } + + return ArraySize(times); +} + +bool BuildTrendlineFrom3Points(TrendlineModel &m) +{ + m.valid = false; + datetime ts[]; + double ps[]; + int n = FindRecentCrossPoints(ts, ps); + if(n < 3) + return false; + + // We collected from recent to older in series order. + // Re-map as oldest -> newest to stabilize slope direction. + datetime tOld[3]; + double pOld[3]; + for(int i = 0; i < 3; i++) + { + tOld[i] = ts[2 - i]; + pOld[i] = ps[2 - i]; + } + + long t0 = (long)tOld[0]; + double x1 = 0.0; + double x2 = (double)((long)tOld[1] - t0); + double x3 = (double)((long)tOld[2] - t0); + double y1 = pOld[0]; + double y2 = pOld[1]; + double y3 = pOld[2]; + + double sx = x1 + x2 + x3; + double sy = y1 + y2 + y3; + double sxx = x1 * x1 + x2 * x2 + x3 * x3; + double sxy = x1 * y1 + x2 * y2 + x3 * y3; + + double den = 3.0 * sxx - sx * sx; + if(MathAbs(den) < 1e-10) + return false; + + m.a = (3.0 * sxy - sx * sy) / den; + m.b = (sy - m.a * sx) / 3.0; + + m.t1 = tOld[0]; + m.t2 = tOld[1]; + m.t3 = tOld[2]; + m.p1 = pOld[0]; + m.p2 = pOld[1]; + m.p3 = pOld[2]; + m.valid = true; + return true; +} + +double TrendlinePriceAtTime(const TrendlineModel &m, datetime t) +{ + if(!m.valid) + return 0.0; + double x = (double)((long)t - (long)m.t1); + return m.a * x + m.b; +} + +void DrawTrendline(const TrendlineModel &m) +{ + if(!InpDrawTrendline || !m.valid) + return; + + datetime tStart = m.t1; + datetime tEnd = iTime(_Symbol, _Period, 0); + if(tEnd <= tStart) + tEnd = m.t3 + PeriodSeconds(_Period) * 20; + + double pStart = TrendlinePriceAtTime(m, tStart); + double pEnd = TrendlinePriceAtTime(m, tEnd); + + if(ObjectFind(0, g_lineName) < 0) + ObjectCreate(0, g_lineName, OBJ_TREND, 0, tStart, pStart, tEnd, pEnd); + else + { + ObjectMove(0, g_lineName, 0, tStart, pStart); + ObjectMove(0, g_lineName, 1, tEnd, pEnd); + } + + ObjectSetInteger(0, g_lineName, OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, g_lineName, OBJPROP_COLOR, clrGold); + ObjectSetInteger(0, g_lineName, OBJPROP_WIDTH, 2); +} + +bool GetCurrentPosition(long &type, double &volume) +{ + if(!PositionSelect(_Symbol)) + return false; + if((long)PositionGetInteger(POSITION_MAGIC) != InpMagic) + return false; + type = PositionGetInteger(POSITION_TYPE); + volume = PositionGetDouble(POSITION_VOLUME); + return true; +} + +void TryExitOnBreak(const TrendlineModel &m) +{ + long posType; + double vol; + if(!GetCurrentPosition(posType, vol)) + return; + + double close1 = iClose(_Symbol, _Period, 1); + datetime t1 = iTime(_Symbol, _Period, 1); + double line1 = TrendlinePriceAtTime(m, t1); + double buf = InpBreakBuffer * _Point; + + bool closePos = false; + if(posType == POSITION_TYPE_BUY && close1 < (line1 - buf)) + closePos = true; + if(posType == POSITION_TYPE_SELL && close1 > (line1 + buf)) + closePos = true; + + if(closePos) + trade.PositionClose(_Symbol); +} + +void TryPullbackEntry(const TrendlineModel &m) +{ + long posType; + double vol; + if(GetCurrentPosition(posType, vol)) + return; + + MqlRates bars1[], bars2[]; + if(CopyRates(_Symbol, _Period, 1, 1, bars1) != 1) + return; + if(CopyRates(_Symbol, _Period, 2, 1, bars2) != 1) + return; + if(ArraySize(bars1) < 1 || ArraySize(bars2) < 1) + return; + + MqlRates b1 = bars1[0]; + MqlRates b2 = bars2[0]; + + double line1 = TrendlinePriceAtTime(m, b1.time); + double tol = InpLineTouchTolerance * _Point; + + bool upTrend = (m.a > 0.0); + bool downTrend = (m.a < 0.0); + + if(upTrend) + { + bool touched = (b1.low <= (line1 + tol)); + bool reclaim = (b1.close > line1); + bool bullish = (b1.close > b1.open); + bool stillHealthy = (b2.close >= TrendlinePriceAtTime(m, b2.time) - tol); + if(touched && reclaim && bullish && stillHealthy) + { + trade.Buy(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback buy"); + } + } + else if(downTrend) + { + bool touched = (b1.high >= (line1 - tol)); + bool reject = (b1.close < line1); + bool bearish = (b1.close < b1.open); + bool stillWeak = (b2.close <= TrendlinePriceAtTime(m, b2.time) + tol); + if(touched && reject && bearish && stillWeak) + { + trade.Sell(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback sell"); + } + } +} + +int OnInit() +{ + g_maHandle = iMA(_Symbol, InpHigherTF, InpMAPeriod, 0, InpMAMethod, InpAppliedPrice); + if(g_maHandle == INVALID_HANDLE) + return INIT_FAILED; + + trade.SetExpertMagicNumber(InpMagic); + g_lastBarTime = 0; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + if(g_maHandle != INVALID_HANDLE) + IndicatorRelease(g_maHandle); + if(ObjectFind(0, g_lineName) >= 0) + ObjectDelete(0, g_lineName); +} + +void OnTick() +{ + if(!IsNewBar()) + return; + + TrendlineModel m; + if(!BuildTrendlineFrom3Points(m)) + return; + + DrawTrendline(m); + TryExitOnBreak(m); + TryPullbackEntry(m); +} diff --git a/frontline/cluster-fuck/SimpleTrendlineGER40/SimpleTrendline_optimization.set b/frontline/cluster-fuck/SimpleTrendlineGER40/SimpleTrendline_optimization.set new file mode 100644 index 0000000..10ea2ee --- /dev/null +++ b/frontline/cluster-fuck/SimpleTrendlineGER40/SimpleTrendline_optimization.set @@ -0,0 +1,14 @@ +; SimpleTrendline.mq5 optimization preset +; Strategy Tester -> Inputs -> Load +; Focus: trendline pullback entries + break exits (no broker SL/TP) +; +InpHigherTF=16385||16385||0||16388||Y +InpMAPeriod=50||20||5||200||Y +InpMAMethod=1||0||1||3||Y +InpAppliedPrice=0||0||1||6||Y +InpHTFBarsToScan=400||200||100||1200||Y +InpLineTouchTolerance=100.0||30.0||10.0||300.0||Y +InpBreakBuffer=30.0||5.0||5.0||120.0||Y +InpLots=0.10||0.10||0.01||0.10||N +InpMagic=26042501||26042501||1||26042501||N +InpDrawTrendline=false||false||0||true||N diff --git a/frontline/cluster-fuck/SimpleTrendlineXAUUSD/SimpleTrendline.mq5 b/frontline/cluster-fuck/SimpleTrendlineXAUUSD/SimpleTrendline.mq5 new file mode 100644 index 0000000..77ed295 --- /dev/null +++ b/frontline/cluster-fuck/SimpleTrendlineXAUUSD/SimpleTrendline.mq5 @@ -0,0 +1,376 @@ +#property strict +#property version "1.00" + +#include + +input ENUM_TIMEFRAMES InpHigherTF = PERIOD_M10; // Higher timeframe for MA/cross points +input int InpMAPeriod = 65; // MA period +input ENUM_MA_METHOD InpMAMethod = MODE_EMA; // MA method +input ENUM_APPLIED_PRICE InpAppliedPrice = PRICE_OPEN; // MA applied price +input int InpHTFBarsToScan = 500; // HTF bars to scan for crossings +input double InpLineTouchTolerance = 220; // Pullback touch tolerance (points) +input double InpBreakBuffer = 110; // Break confirmation buffer (points) +input double InpLots = 0.10; // Position size +input long InpMagic = 26042501; // Magic number +input bool InpDrawTrendline = true; // Draw detected trendline +input bool InpUseSessionModeGate = true; // Block entries when symbol/session disallow opens +input bool InpBypassGateInTester = true; // Ignore gate in Strategy Tester for optimization + +CTrade trade; + +int g_maHandle = INVALID_HANDLE; +datetime g_lastBarTime = 0; +string g_lineName = "SimpleTrendline_Basis"; +datetime g_lastEntryBlockLog = 0; + +struct TrendlineModel +{ + datetime t1; + datetime t2; + datetime t3; + double p1; + double p2; + double p3; + double a; + double b; + bool valid; +}; + +bool IsNewBar() +{ + datetime t = iTime(_Symbol, _Period, 0); + if(t == 0) + return false; + if(t != g_lastBarTime) + { + g_lastBarTime = t; + return true; + } + return false; +} + +int FindRecentCrossPoints(datetime ×[], double &prices[]) +{ + ArrayResize(times, 0); + ArrayResize(prices, 0); + + if(g_maHandle == INVALID_HANDLE) + return 0; + + int needBars = MathMax(InpHTFBarsToScan, InpMAPeriod + 20); + MqlRates rates[]; + double maBuf[]; + + int copiedRates = CopyRates(_Symbol, InpHigherTF, 0, needBars, rates); + int copiedMa = CopyBuffer(g_maHandle, 0, 0, needBars, maBuf); + if(copiedRates <= 5 || copiedMa <= 5) + return 0; + + int bars = MathMin(copiedRates, copiedMa); + ArraySetAsSeries(rates, true); + ArraySetAsSeries(maBuf, true); + + for(int i = 2; i < bars - 1; i++) + { + double d0 = rates[i].close - maBuf[i]; + double d1 = rates[i + 1].close - maBuf[i + 1]; + if(d0 == 0.0 || d1 == 0.0 || (d0 * d1 < 0.0)) + { + int n = ArraySize(times); + ArrayResize(times, n + 1); + ArrayResize(prices, n + 1); + times[n] = rates[i].time; + prices[n] = rates[i].close; + if(ArraySize(times) >= 3) + break; + } + } + + return ArraySize(times); +} + +bool BuildTrendlineFrom3Points(TrendlineModel &m) +{ + m.valid = false; + datetime ts[]; + double ps[]; + int n = FindRecentCrossPoints(ts, ps); + if(n < 3) + return false; + + // We collected from recent to older in series order. + // Re-map as oldest -> newest to stabilize slope direction. + datetime tOld[3]; + double pOld[3]; + for(int i = 0; i < 3; i++) + { + tOld[i] = ts[2 - i]; + pOld[i] = ps[2 - i]; + } + + long t0 = (long)tOld[0]; + double x1 = 0.0; + double x2 = (double)((long)tOld[1] - t0); + double x3 = (double)((long)tOld[2] - t0); + double y1 = pOld[0]; + double y2 = pOld[1]; + double y3 = pOld[2]; + + double sx = x1 + x2 + x3; + double sy = y1 + y2 + y3; + double sxx = x1 * x1 + x2 * x2 + x3 * x3; + double sxy = x1 * y1 + x2 * y2 + x3 * y3; + + double den = 3.0 * sxx - sx * sx; + if(MathAbs(den) < 1e-10) + return false; + + m.a = (3.0 * sxy - sx * sy) / den; + m.b = (sy - m.a * sx) / 3.0; + + m.t1 = tOld[0]; + m.t2 = tOld[1]; + m.t3 = tOld[2]; + m.p1 = pOld[0]; + m.p2 = pOld[1]; + m.p3 = pOld[2]; + m.valid = true; + return true; +} + +double TrendlinePriceAtTime(const TrendlineModel &m, datetime t) +{ + if(!m.valid) + return 0.0; + double x = (double)((long)t - (long)m.t1); + return m.a * x + m.b; +} + +void DrawTrendline(const TrendlineModel &m) +{ + if(!InpDrawTrendline || !m.valid) + return; + + datetime tStart = m.t1; + datetime tEnd = iTime(_Symbol, _Period, 0); + if(tEnd <= tStart) + tEnd = m.t3 + PeriodSeconds(_Period) * 20; + + double pStart = TrendlinePriceAtTime(m, tStart); + double pEnd = TrendlinePriceAtTime(m, tEnd); + + if(ObjectFind(0, g_lineName) < 0) + ObjectCreate(0, g_lineName, OBJ_TREND, 0, tStart, pStart, tEnd, pEnd); + else + { + ObjectMove(0, g_lineName, 0, tStart, pStart); + ObjectMove(0, g_lineName, 1, tEnd, pEnd); + } + + ObjectSetInteger(0, g_lineName, OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, g_lineName, OBJPROP_COLOR, clrGold); + ObjectSetInteger(0, g_lineName, OBJPROP_WIDTH, 2); +} + +bool GetCurrentPosition(long &type, double &volume) +{ + if(!PositionSelect(_Symbol)) + return false; + if((long)PositionGetInteger(POSITION_MAGIC) != InpMagic) + return false; + type = PositionGetInteger(POSITION_TYPE); + volume = PositionGetDouble(POSITION_VOLUME); + return true; +} + +bool IsWithinAnyTradeSession(const datetime nowServer) +{ + MqlDateTime dt; + TimeToStruct(nowServer, dt); + ENUM_DAY_OF_WEEK day = (ENUM_DAY_OF_WEEK)dt.day_of_week; + int nowSec = dt.hour * 3600 + dt.min * 60 + dt.sec; + + datetime from = 0; + datetime to = 0; + bool hasAny = false; + for(uint idx = 0; idx < 16; idx++) + { + if(!SymbolInfoSessionTrade(_Symbol, day, idx, from, to)) + break; + hasAny = true; + // SymbolInfoSessionTrade returns session boundaries as time-of-day values. + MqlDateTime fdt, tdt; + TimeToStruct(from, fdt); + TimeToStruct(to, tdt); + int fromSec = fdt.hour * 3600 + fdt.min * 60 + fdt.sec; + int toSec = tdt.hour * 3600 + tdt.min * 60 + tdt.sec; + + // from==to on some brokers means full-day session. + if(fromSec == toSec) + { + return true; + } + else if(fromSec < toSec) + { + if(nowSec >= fromSec && nowSec <= toSec) + return true; + } + else + { + // Session passes midnight. + if(nowSec >= fromSec || nowSec <= toSec) + return true; + } + } + // If broker does not expose sessions for this symbol, do not block by session. + if(!hasAny) + return true; + return false; +} + +bool CanOpenNewPositionNow(const ENUM_ORDER_TYPE orderType) +{ + if(!InpUseSessionModeGate) + return true; + if(InpBypassGateInTester && (bool)MQLInfoInteger(MQL_TESTER)) + return true; + + long tradeMode = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE); + if(tradeMode == SYMBOL_TRADE_MODE_DISABLED || + tradeMode == SYMBOL_TRADE_MODE_CLOSEONLY) + return false; + if(orderType == ORDER_TYPE_BUY && + tradeMode == SYMBOL_TRADE_MODE_SHORTONLY) + return false; + if(orderType == ORDER_TYPE_SELL && + tradeMode == SYMBOL_TRADE_MODE_LONGONLY) + return false; + + if(!IsWithinAnyTradeSession(TimeCurrent())) + return false; + + return true; +} + +void TryExitOnBreak(const TrendlineModel &m) +{ + long posType; + double vol; + if(!GetCurrentPosition(posType, vol)) + return; + + double close1 = iClose(_Symbol, _Period, 1); + datetime t1 = iTime(_Symbol, _Period, 1); + double line1 = TrendlinePriceAtTime(m, t1); + double buf = InpBreakBuffer * _Point; + + bool closePos = false; + if(posType == POSITION_TYPE_BUY && close1 < (line1 - buf)) + closePos = true; + if(posType == POSITION_TYPE_SELL && close1 > (line1 + buf)) + closePos = true; + + if(closePos) + trade.PositionClose(_Symbol); +} + +void TryPullbackEntry(const TrendlineModel &m) +{ + long posType; + double vol; + if(GetCurrentPosition(posType, vol)) + return; + + MqlRates bars1[], bars2[]; + if(CopyRates(_Symbol, _Period, 1, 1, bars1) != 1) + return; + if(CopyRates(_Symbol, _Period, 2, 1, bars2) != 1) + return; + if(ArraySize(bars1) < 1 || ArraySize(bars2) < 1) + return; + + MqlRates b1 = bars1[0]; + MqlRates b2 = bars2[0]; + + double line1 = TrendlinePriceAtTime(m, b1.time); + double tol = InpLineTouchTolerance * _Point; + + bool upTrend = (m.a > 0.0); + bool downTrend = (m.a < 0.0); + + if(upTrend) + { + bool touched = (b1.low <= (line1 + tol)); + bool reclaim = (b1.close > line1); + bool bullish = (b1.close > b1.open); + bool stillHealthy = (b2.close >= TrendlinePriceAtTime(m, b2.time) - tol); + if(touched && reclaim && bullish && stillHealthy) + { + if(!CanOpenNewPositionNow(ORDER_TYPE_BUY)) + { + datetime nowBar = iTime(_Symbol, _Period, 0); + if(nowBar != g_lastEntryBlockLog) + { + g_lastEntryBlockLog = nowBar; + Print("Buy entry skipped: symbol mode/session does not allow opening now"); + } + return; + } + trade.Buy(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback buy"); + } + } + else if(downTrend) + { + bool touched = (b1.high >= (line1 - tol)); + bool reject = (b1.close < line1); + bool bearish = (b1.close < b1.open); + bool stillWeak = (b2.close <= TrendlinePriceAtTime(m, b2.time) + tol); + if(touched && reject && bearish && stillWeak) + { + if(!CanOpenNewPositionNow(ORDER_TYPE_SELL)) + { + datetime nowBar = iTime(_Symbol, _Period, 0); + if(nowBar != g_lastEntryBlockLog) + { + g_lastEntryBlockLog = nowBar; + Print("Sell entry skipped: symbol mode/session does not allow opening now"); + } + return; + } + trade.Sell(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback sell"); + } + } +} + +int OnInit() +{ + g_maHandle = iMA(_Symbol, InpHigherTF, InpMAPeriod, 0, InpMAMethod, InpAppliedPrice); + if(g_maHandle == INVALID_HANDLE) + return INIT_FAILED; + + trade.SetExpertMagicNumber(InpMagic); + g_lastBarTime = 0; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + if(g_maHandle != INVALID_HANDLE) + IndicatorRelease(g_maHandle); + if(ObjectFind(0, g_lineName) >= 0) + ObjectDelete(0, g_lineName); +} + +void OnTick() +{ + if(!IsNewBar()) + return; + + TrendlineModel m; + if(!BuildTrendlineFrom3Points(m)) + return; + + DrawTrendline(m); + TryExitOnBreak(m); + TryPullbackEntry(m); +} diff --git a/frontline/cluster-fuck/SimpleTrendlineXAUUSD/SimpleTrendline_optimization.set b/frontline/cluster-fuck/SimpleTrendlineXAUUSD/SimpleTrendline_optimization.set new file mode 100644 index 0000000..10ea2ee --- /dev/null +++ b/frontline/cluster-fuck/SimpleTrendlineXAUUSD/SimpleTrendline_optimization.set @@ -0,0 +1,14 @@ +; SimpleTrendline.mq5 optimization preset +; Strategy Tester -> Inputs -> Load +; Focus: trendline pullback entries + break exits (no broker SL/TP) +; +InpHigherTF=16385||16385||0||16388||Y +InpMAPeriod=50||20||5||200||Y +InpMAMethod=1||0||1||3||Y +InpAppliedPrice=0||0||1||6||Y +InpHTFBarsToScan=400||200||100||1200||Y +InpLineTouchTolerance=100.0||30.0||10.0||300.0||Y +InpBreakBuffer=30.0||5.0||5.0||120.0||Y +InpLots=0.10||0.10||0.01||0.10||N +InpMagic=26042501||26042501||1||26042501||N +InpDrawTrendline=false||false||0||true||N diff --git a/frontline/cluster-fuck/SuperEMAXAUUSD/SuperEMA.set b/frontline/cluster-fuck/SuperEMAXAUUSD/SuperEMA.set new file mode 100644 index 0000000..f52ec17 --- /dev/null +++ b/frontline/cluster-fuck/SuperEMAXAUUSD/SuperEMA.set @@ -0,0 +1,36 @@ +; SuperEMA — defaults aligned with lab/EAs/SuperEMA.mq5 (v1.01) +; Load from Strategy Tester → Inputs → context menu → Load +; +; === Market === +InpSymbol= +InpTimeframe=15||15||0||49153||N +InpLots=0.01||0.01||0.01||0.10||N +InpSlippagePoints=55||20||5||120||Y +InpMagic=940001||940001||1||9400010||N +; === EMA (trend & structure) === +InpEmaFast=40||20||10||120||Y +InpEmaMid=180||60||15||200||Y +InpEmaSlow=125||100||25||400||Y +InpEmaTrendBars=3||1||1||3||Y +; === CCI === +InpCciPeriod=17||7||1||28||Y +InpCciOverbought=80.0||80.0||10.0||140.0||Y +InpCciOversold=-140.0||-140.0||10.0||-80.0||Y +InpPullbackCciLookback=20||4||2||24||Y +; === MACD (histogram = main - signal) === +InpMacdFast=14||8||2||20||Y +InpMacdSlow=38||20||2||40||Y +InpMacdSignal=9||5||1||15||Y +; === Strategy === +InpEntryStyle=1||0||1||2||Y +InpOneTradeOnly=true||false||0||true||N +InpUseStructuralSL=false||false||0||true||Y +InpSlBufferPoints=110.0||20.0||10.0||200.0||Y +; === Exits (so trades do not run forever) === +InpExitOnTrendFlip=false||false||0||true||Y +InpExitOnMacdFlip=false||false||0||true||Y +InpExitOnCciZeroCross=true||false||0||true||Y +InpMaxHoldingBars=168||48||24||480||Y +InpExitBelowMidEma=false||false||0||true||Y +; === Debug === +InpDebugLogs=false||false||0||true||N diff --git a/frontline/cluster-fuck/SuperEMAXAUUSD/main.mq5 b/frontline/cluster-fuck/SuperEMAXAUUSD/main.mq5 new file mode 100644 index 0000000..07831c3 --- /dev/null +++ b/frontline/cluster-fuck/SuperEMAXAUUSD/main.mq5 @@ -0,0 +1,448 @@ +//+------------------------------------------------------------------+ +//| SuperEMA.mq5 | +//| EMA + CCI + MACD histogram — trend filter, momentum confirmation | +//+------------------------------------------------------------------+ +#property strict +#property version "1.01" + +#include + +enum ENUM_ENTRY_STYLE +{ + ENTRY_CCIZERO_MACD = 0, // EMA trend + CCI crosses zero + MACD histogram agrees + ENTRY_LAMBERT = 1, // EMA trend + CCI crosses ±100 + MACD histogram agrees + ENTRY_PULLBACK = 2 // Uptrend: pullback to fast EMA + CCI was oversold + CCI crosses up through 0 + MACD > 0 (mirror for sells) +}; + +input group "=== Market ===" +input string InpSymbol = ""; +input ENUM_TIMEFRAMES InpTimeframe = PERIOD_M15; +input double InpLots = 0.01; +input int InpSlippagePoints = 55; +input int InpMagic = 940001; + +input group "=== EMA (trend & structure) ===" +input int InpEmaFast = 40; +input int InpEmaMid = 180; +input int InpEmaSlow = 125; +input int InpEmaTrendBars = 3; // closed bar shift for EMA reads + +input group "=== CCI ===" +input int InpCciPeriod = 17; +input double InpCciOverbought = 80.0; +input double InpCciOversold = -140.0; +input int InpPullbackCciLookback = 20; // bars to check prior CCI oversold/overbought + +input group "=== MACD (histogram = main - signal) ===" +input int InpMacdFast = 14; +input int InpMacdSlow = 38; +input int InpMacdSignal = 9; + +input group "=== Strategy ===" +input ENUM_ENTRY_STYLE InpEntryStyle = ENTRY_LAMBERT; +input bool InpOneTradeOnly = true; +input bool InpUseStructuralSL = false; +input double InpSlBufferPoints = 110; + +input group "=== Exits (so trades do not run forever) ===" +input bool InpExitOnTrendFlip = false; // close when price vs slow EMA flips against position +input bool InpExitOnMacdFlip = false; // close when MACD histogram flips against position +input bool InpExitOnCciZeroCross = true; // long: CCI crosses below 0; short: CCI crosses above 0 +input int InpMaxHoldingBars = 168; // 0 = disabled (e.g. ~8 days M15) +input bool InpExitBelowMidEma = false; // long: close if close < mid EMA (invalidation) + +input group "=== Debug ===" +input bool InpDebugLogs = false; + +CTrade trade; +datetime g_lastBarTime = 0; + +string WorkSymbol() +{ + return (InpSymbol == "" || InpSymbol == NULL) ? _Symbol : InpSymbol; +} + +void Log(const string s) +{ + if(InpDebugLogs) + Print("[SuperEMA] ", s); +} + +bool IsNewBar(const string sym, const ENUM_TIMEFRAMES tf) +{ + datetime t = iTime(sym, tf, 0); + if(t <= 0 || t == g_lastBarTime) + return false; + g_lastBarTime = t; + return true; +} + +double EmaAt(const string sym, const ENUM_TIMEFRAMES tf, const int period, const int shift) +{ + int h = iMA(sym, tf, period, 0, MODE_EMA, PRICE_CLOSE); + if(h == INVALID_HANDLE) + return 0.0; + double b[1]; + if(CopyBuffer(h, 0, shift, 1, b) <= 0) + { + IndicatorRelease(h); + return 0.0; + } + IndicatorRelease(h); + return b[0]; +} + +double CciAt(const string sym, const ENUM_TIMEFRAMES tf, const int period, const int shift) +{ + int h = iCCI(sym, tf, period, PRICE_TYPICAL); + if(h == INVALID_HANDLE) + return 0.0; + double b[1]; + if(CopyBuffer(h, 0, shift, 1, b) <= 0) + { + IndicatorRelease(h); + return 0.0; + } + IndicatorRelease(h); + return b[0]; +} + +bool MacdHistAt(const string sym, const ENUM_TIMEFRAMES tf, const int fast, const int slow, const int signal, const int shift, double &hist) +{ + int h = iMACD(sym, tf, fast, slow, signal, PRICE_CLOSE); + if(h == INVALID_HANDLE) + return false; + double mainLine[1], sigLine[1]; + if(CopyBuffer(h, 0, shift, 1, mainLine) <= 0 || CopyBuffer(h, 1, shift, 1, sigLine) <= 0) + { + IndicatorRelease(h); + return false; + } + IndicatorRelease(h); + hist = mainLine[0] - sigLine[0]; + return true; +} + +bool TrendUp(const string sym, const int sh) +{ + double c = iClose(sym, InpTimeframe, sh); + double emaS = EmaAt(sym, InpTimeframe, InpEmaSlow, sh); + return (emaS > 0.0 && c > emaS); +} + +bool TrendDown(const string sym, const int sh) +{ + double c = iClose(sym, InpTimeframe, sh); + double emaS = EmaAt(sym, InpTimeframe, InpEmaSlow, sh); + return (emaS > 0.0 && c < emaS); +} + +bool CciCrossAboveZero(const string sym) +{ + double c1 = CciAt(sym, InpTimeframe, InpCciPeriod, 1); + double c2 = CciAt(sym, InpTimeframe, InpCciPeriod, 2); + return (c2 <= 0.0 && c1 > 0.0); +} + +bool CciCrossBelowZero(const string sym) +{ + double c1 = CciAt(sym, InpTimeframe, InpCciPeriod, 1); + double c2 = CciAt(sym, InpTimeframe, InpCciPeriod, 2); + return (c2 >= 0.0 && c1 < 0.0); +} + +bool CciCrossAbove100(const string sym) +{ + double c1 = CciAt(sym, InpTimeframe, InpCciPeriod, 1); + double c2 = CciAt(sym, InpTimeframe, InpCciPeriod, 2); + return (c2 < InpCciOverbought && c1 > InpCciOverbought); +} + +bool CciCrossBelowMinus100(const string sym) +{ + double c1 = CciAt(sym, InpTimeframe, InpCciPeriod, 1); + double c2 = CciAt(sym, InpTimeframe, InpCciPeriod, 2); + return (c2 > InpCciOversold && c1 < InpCciOversold); +} + +bool HadCciOversoldRecently(const string sym) +{ + for(int i = 2; i <= InpPullbackCciLookback + 1; i++) + { + double v = CciAt(sym, InpTimeframe, InpCciPeriod, i); + if(v <= InpCciOversold) + return true; + } + return false; +} + +bool HadCciOverboughtRecently(const string sym) +{ + for(int i = 2; i <= InpPullbackCciLookback + 1; i++) + { + double v = CciAt(sym, InpTimeframe, InpCciPeriod, i); + if(v >= InpCciOverbought) + return true; + } + return false; +} + +bool PullbackNearFastEmaLong(const string sym) +{ + double emaF = EmaAt(sym, InpTimeframe, InpEmaFast, 1); + double lo = iLow(sym, InpTimeframe, 1); + if(emaF <= 0.0) + return false; + return (lo <= emaF + InpSlBufferPoints * _Point * 3.0); +} + +bool PullbackNearFastEmaShort(const string sym) +{ + double emaF = EmaAt(sym, InpTimeframe, InpEmaFast, 1); + double hi = iHigh(sym, InpTimeframe, 1); + if(emaF <= 0.0) + return false; + return (hi >= emaF - InpSlBufferPoints * _Point * 3.0); +} + +int PositionsByMagic(const string sym, const int magic) +{ + int n = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong t = PositionGetTicket(i); + if(t == 0) + continue; + if(PositionGetString(POSITION_SYMBOL) == sym && (int)PositionGetInteger(POSITION_MAGIC) == magic) + n++; + } + return n; +} + +void ComputeSLTP(const bool isBuy, const double entry, double &sl, double &tp) +{ + const string sym = WorkSymbol(); + sl = 0.0; + tp = 0.0; + if(!InpUseStructuralSL) + return; + double emaM = EmaAt(sym, InpTimeframe, InpEmaMid, InpEmaTrendBars); + double buf = InpSlBufferPoints * _Point; + if(isBuy) + sl = emaM - buf; + else + sl = emaM + buf; +} + +int BarsSinceOpen(const string sym, const datetime openTime) +{ + if(openTime <= 0) + return 0; + int sh = iBarShift(sym, InpTimeframe, openTime, false); + if(sh < 0) + return 999999; + return sh; +} + +void ClosePositionTicket(const ulong ticket, const string reason) +{ + trade.SetExpertMagicNumber(InpMagic); + if(trade.PositionClose(ticket)) + Log("Close: " + reason); +} + +void ManageSuperEMAExits(const string sym) +{ + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket == 0) + continue; + if(!PositionSelectByTicket(ticket)) + continue; + if(PositionGetString(POSITION_SYMBOL) != sym) + continue; + if((int)PositionGetInteger(POSITION_MAGIC) != InpMagic) + continue; + + ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + datetime openTime = (datetime)PositionGetInteger(POSITION_TIME); + + double h1 = 0.0; + if(!MacdHistAt(sym, InpTimeframe, InpMacdFast, InpMacdSlow, InpMacdSignal, 1, h1)) + continue; + + bool closeLong = false; + bool closeShort = false; + string reason = ""; + + if(InpMaxHoldingBars > 0) + { + int held = BarsSinceOpen(sym, openTime); + if(held >= InpMaxHoldingBars) + { + if(ptype == POSITION_TYPE_BUY) + closeLong = true; + else + closeShort = true; + reason = "time stop (max bars)"; + } + } + + if(ptype == POSITION_TYPE_BUY) + { + if(InpExitOnTrendFlip && TrendDown(sym, InpEmaTrendBars)) + { + closeLong = true; + reason = "trend flip (below slow EMA)"; + } + if(InpExitOnMacdFlip && h1 < 0.0) + { + closeLong = true; + reason = "MACD histogram < 0"; + } + if(InpExitOnCciZeroCross && CciCrossBelowZero(sym)) + { + closeLong = true; + reason = "CCI crossed below zero"; + } + if(InpExitBelowMidEma) + { + double c = iClose(sym, InpTimeframe, 1); + double emaM = EmaAt(sym, InpTimeframe, InpEmaMid, 1); + if(emaM > 0.0 && c < emaM) + { + closeLong = true; + reason = "close below mid EMA"; + } + } + if(closeLong) + ClosePositionTicket(ticket, reason); + } + else if(ptype == POSITION_TYPE_SELL) + { + if(InpExitOnTrendFlip && TrendUp(sym, InpEmaTrendBars)) + { + closeShort = true; + reason = "trend flip (above slow EMA)"; + } + if(InpExitOnMacdFlip && h1 > 0.0) + { + closeShort = true; + reason = "MACD histogram > 0"; + } + if(InpExitOnCciZeroCross && CciCrossAboveZero(sym)) + { + closeShort = true; + reason = "CCI crossed above zero"; + } + if(InpExitBelowMidEma) + { + double c = iClose(sym, InpTimeframe, 1); + double emaM = EmaAt(sym, InpTimeframe, InpEmaMid, 1); + if(emaM > 0.0 && c > emaM) + { + closeShort = true; + reason = "close above mid EMA"; + } + } + if(closeShort) + ClosePositionTicket(ticket, reason); + } + } +} + +int OnInit() +{ + string sym = WorkSymbol(); + if(!SymbolSelect(sym, true)) + { + Print("SuperEMA: cannot select symbol ", sym); + return INIT_FAILED; + } + trade.SetExpertMagicNumber(InpMagic); + trade.SetDeviationInPoints(InpSlippagePoints); + return INIT_SUCCEEDED; +} + +void OnTick() +{ + string sym = WorkSymbol(); + if(_Symbol != sym) + { + static datetime lastLog = 0; + datetime tb = iTime(_Symbol, PERIOD_M1, 0); + if(tb != lastLog && InpDebugLogs) + { + lastLog = tb; + Log("Chart symbol differs from WorkSymbol; attach to " + sym + " or set InpSymbol empty."); + } + return; + } + + if(!IsNewBar(sym, InpTimeframe)) + return; + + // Exits must run every bar; do not skip when a position exists (otherwise trades never close with SL=0/TP=0). + ManageSuperEMAExits(sym); + + if(InpOneTradeOnly && PositionsByMagic(sym, InpMagic) > 0) + return; + + const int sh = InpEmaTrendBars; + double h1 = 0.0, h2 = 0.0; + if(!MacdHistAt(sym, InpTimeframe, InpMacdFast, InpMacdSlow, InpMacdSignal, 1, h1) || + !MacdHistAt(sym, InpTimeframe, InpMacdFast, InpMacdSlow, InpMacdSignal, 2, h2)) + return; + + bool up = TrendUp(sym, sh); + bool dn = TrendDown(sym, sh); + + bool wantBuy = false; + bool wantSell = false; + + switch(InpEntryStyle) + { + case ENTRY_CCIZERO_MACD: + if(up && CciCrossAboveZero(sym) && h1 > 0.0) + wantBuy = true; + if(dn && CciCrossBelowZero(sym) && h1 < 0.0) + wantSell = true; + break; + + case ENTRY_LAMBERT: + if(up && CciCrossAbove100(sym) && h1 > 0.0) + wantBuy = true; + if(dn && CciCrossBelowMinus100(sym) && h1 < 0.0) + wantSell = true; + break; + + case ENTRY_PULLBACK: + if(up && HadCciOversoldRecently(sym) && CciCrossAboveZero(sym) && h1 > 0.0 && PullbackNearFastEmaLong(sym)) + wantBuy = true; + if(dn && HadCciOverboughtRecently(sym) && CciCrossBelowZero(sym) && h1 < 0.0 && PullbackNearFastEmaShort(sym)) + wantSell = true; + break; + } + + MqlTick tick; + if(!SymbolInfoTick(sym, tick)) + return; + + double sl = 0.0, tp = 0.0; + + if(wantBuy && !wantSell) + { + ComputeSLTP(true, tick.ask, sl, tp); + if(trade.Buy(InpLots, sym, tick.ask, sl, tp, "SuperEMA long")) + Log(StringFormat("BUY ask=%.5f sl=%.5f cci=%.2f macdHist=%.5f", tick.ask, sl, + CciAt(sym, InpTimeframe, InpCciPeriod, 1), h1)); + } + else if(wantSell && !wantBuy) + { + ComputeSLTP(false, tick.bid, sl, tp); + if(trade.Sell(InpLots, sym, tick.bid, sl, tp, "SuperEMA short")) + Log(StringFormat("SELL bid=%.5f sl=%.5f cci=%.2f macdHist=%.5f", tick.bid, sl, + CciAt(sym, InpTimeframe, InpCciPeriod, 1), h1)); + } +} diff --git a/frontline/cluster-0/_united-V2/MagicNumberHelpers.mqh b/frontline/cluster-fuck/_united-V2/MagicNumberHelpers.mqh similarity index 73% rename from frontline/cluster-0/_united-V2/MagicNumberHelpers.mqh rename to frontline/cluster-fuck/_united-V2/MagicNumberHelpers.mqh index dc1fa31..0423cc4 100644 --- a/frontline/cluster-0/_united-V2/MagicNumberHelpers.mqh +++ b/frontline/cluster-fuck/_united-V2/MagicNumberHelpers.mqh @@ -12,29 +12,18 @@ //+------------------------------------------------------------------+ bool PositionSelectByMagic(string symbol, ulong magic_number) { - // First try to find position by symbol - if(!PositionSelect(symbol)) - return false; - - // Check if the selected position has the correct magic number - if(PositionGetInteger(POSITION_MAGIC) != magic_number) + for(int i = PositionsTotal() - 1; i >= 0; i--) { - // Position exists but wrong magic number, search all positions - for(int i = PositionsTotal() - 1; i >= 0; i--) - { - if(PositionGetTicket(i) > 0) - { - if(PositionGetString(POSITION_SYMBOL) == symbol && - PositionGetInteger(POSITION_MAGIC) == magic_number) - { - return true; - } - } - } - return false; + ulong ticket = PositionGetTicket(i); + if(ticket == 0) + continue; + if(!PositionSelectByTicket(ticket)) + continue; + if(PositionGetString(POSITION_SYMBOL) == symbol && + (ulong)PositionGetInteger(POSITION_MAGIC) == magic_number) + return true; } - - return true; + return false; } //+------------------------------------------------------------------+ @@ -76,14 +65,13 @@ ulong GetPositionTicketByMagic(string symbol, ulong magic_number) for(int i = PositionsTotal() - 1; i >= 0; i--) { ulong ticket = PositionGetTicket(i); - if(ticket > 0) - { - if(PositionGetString(POSITION_SYMBOL) == symbol && - PositionGetInteger(POSITION_MAGIC) == magic_number) - { - return ticket; - } - } + if(ticket == 0) + continue; + if(!PositionSelectByTicket(ticket)) + continue; + if(PositionGetString(POSITION_SYMBOL) == symbol && + (ulong)PositionGetInteger(POSITION_MAGIC) == magic_number) + return ticket; } return 0; } @@ -144,16 +132,42 @@ int CountPositionsByMagic(string symbol, ulong magic_number) for(int i = PositionsTotal() - 1; i >= 0; i--) { ulong ticket = PositionGetTicket(i); - if(ticket > 0) - { - if(PositionGetString(POSITION_SYMBOL) == symbol && - PositionGetInteger(POSITION_MAGIC) == magic_number) - { - count++; - } - } + if(ticket == 0) + continue; + if(!PositionSelectByTicket(ticket)) + continue; + if(PositionGetString(POSITION_SYMBOL) == symbol && + (ulong)PositionGetInteger(POSITION_MAGIC) == magic_number) + count++; } return count; } //+------------------------------------------------------------------+ +//| Align volume to SYMBOL_VOLUME_STEP / min / max (avoids Invalid volume) | +//+------------------------------------------------------------------+ +double United_NormalizeVolume(const string symbol, double volume) +{ + double minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); + double maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); + double lotStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); + if(lotStep <= 0.0) + lotStep = 0.01; + + double v = MathFloor(volume / lotStep) * lotStep; + + if(v < minLot) + v = minLot; + if(v > maxLot) + v = maxLot; + + int digits = (int)MathCeil(-MathLog10(lotStep)); + if(digits < 0) + digits = 0; + if(digits > 8) + digits = 8; + + return NormalizeDouble(v, digits); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/cluster-0/_united-V2/STRATEGY_CONFIGURATION.md b/frontline/cluster-fuck/_united-V2/STRATEGY_CONFIGURATION.md similarity index 100% rename from frontline/cluster-0/_united-V2/STRATEGY_CONFIGURATION.md rename to frontline/cluster-fuck/_united-V2/STRATEGY_CONFIGURATION.md diff --git a/frontline/united_template/_united-V2_exponential/Strategies/DarvasBoxStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/DarvasBoxStrategy.mqh similarity index 89% rename from frontline/united_template/_united-V2_exponential/Strategies/DarvasBoxStrategy.mqh rename to frontline/cluster-fuck/_united-V2/Strategies/DarvasBoxStrategy.mqh index 6c2d7d5..989dc21 100644 --- a/frontline/united_template/_united-V2_exponential/Strategies/DarvasBoxStrategy.mqh +++ b/frontline/cluster-fuck/_united-V2/Strategies/DarvasBoxStrategy.mqh @@ -1,6 +1,18 @@ //+------------------------------------------------------------------+ //| DarvasBoxStrategy.mqh | //+------------------------------------------------------------------+ +// MQL5: no #if — use #ifdef only (no defined() / || in one #if) +#ifdef UNITED_V2_DYNAMIC_LOTS +extern double g_DB_LotSize; +#define DARVAS_TRADE_LOT (g_DB_LotSize) +#else +#ifdef CLUSTER0_ORCHESTRATOR +extern double g_DB_LotSize; +#define DARVAS_TRADE_LOT (g_DB_LotSize) +#else +#define DARVAS_TRADE_LOT 0.01 +#endif +#endif bool InitDarvasBox(string symbol) { @@ -24,7 +36,9 @@ bool InitDarvasBox(string symbol) dbData.minStopLevel = SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL) * dbData.point; dbData.maHandle = iMA(symbol, DB_TrendTimeframe, DB_MA_Period, 0, DB_MA_Method, DB_MA_Price); - dbData.volumeHandle = iVolumes(symbol, PERIOD_CURRENT, VOLUME_TICK); + // Same TF as box highs/lows (H1 loop in CalculateDarvasBox). PERIOD_CURRENT breaks when United EA + // runs on a chart timeframe other than H1 (volume/breakout no longer match the box). + dbData.volumeHandle = iVolumes(symbol, PERIOD_H1, VOLUME_TICK); if(dbData.maHandle == INVALID_HANDLE || dbData.volumeHandle == INVALID_HANDLE) { @@ -133,6 +147,9 @@ bool ValidateStopLevels(double price, double &sl, double &tp, ENUM_ORDER_TYPE or bool IsTrendFavorable(ENUM_ORDER_TYPE orderType) { + if(!DB_UseTrendFilter) + return true; + double ma[]; ArraySetAsSeries(ma, true); @@ -150,6 +167,9 @@ bool IsTrendFavorable(ENUM_ORDER_TYPE orderType) bool CheckVolumeConditions() { + if(!DB_UseVolumeSpikeFilter) + return true; + double volumes[]; ArraySetAsSeries(volumes, true); @@ -162,8 +182,10 @@ bool CheckVolumeConditions() volumeMA /= DB_VolumeMA_Period; double currentVolume = volumes[0]; + if(volumeMA <= 0.0) + return (currentVolume > 0.0); + double volumeRatio = currentVolume / volumeMA; - return (volumeRatio > DB_VolumeThresholdMultiplier); } @@ -191,13 +213,19 @@ bool PlaceOrder(ENUM_ORDER_TYPE orderType, double price, double sl, double tp) } bool result = false; + const double lot = United_NormalizeVolume(dbData.symbol, DARVAS_TRADE_LOT); + if(lot <= 0.0) + { + Print("DarvasBox: Order rejected - invalid lot after normalize (raw=", DARVAS_TRADE_LOT, ")"); + return false; + } // Use market price (0) instead of explicit price - this ensures market order execution // In backtesting, explicit price might fail if price has moved if(orderType == ORDER_TYPE_BUY) - result = dbData.trade.Buy(0.01, dbData.symbol, 0, sl, tp, "Darvas Box Breakout"); + result = dbData.trade.Buy(lot, dbData.symbol, 0, sl, tp, "Darvas Box Breakout"); else - result = dbData.trade.Sell(0.01, dbData.symbol, 0, sl, tp, "Darvas Box Breakdown"); + result = dbData.trade.Sell(lot, dbData.symbol, 0, sl, tp, "Darvas Box Breakdown"); // Always log errors, success only if logging enabled if(result) @@ -242,7 +270,7 @@ void ProcessDarvasBox(string symbol) if(dbData.boxFormed) { double currentPrice = SymbolInfoDouble(dbData.symbol, SYMBOL_ASK); - long currentVolume_long = iVolume(dbData.symbol, PERIOD_CURRENT, 0); + long currentVolume_long = iVolume(dbData.symbol, PERIOD_H1, 0); double currentVolume = (double)currentVolume_long; if(DB_EnableLogging) diff --git a/frontline/cluster-0/_united-V2/Strategies/EMASlopeDistanceStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/EMASlopeDistanceStrategy.mqh similarity index 73% rename from frontline/cluster-0/_united-V2/Strategies/EMASlopeDistanceStrategy.mqh rename to frontline/cluster-fuck/_united-V2/Strategies/EMASlopeDistanceStrategy.mqh index 70e4502..2ddbeeb 100644 --- a/frontline/cluster-0/_united-V2/Strategies/EMASlopeDistanceStrategy.mqh +++ b/frontline/cluster-fuck/_united-V2/Strategies/EMASlopeDistanceStrategy.mqh @@ -14,6 +14,7 @@ bool InitEMASlopeDistance(string symbol) esData.crossover_detected = false; esData.trade_open_time = 0; esData.last_bar_time = 0; + esData.es_last_sl_adjust_success_time = 0; // Check if symbol exists if(!SymbolSelect(symbol, true)) @@ -48,6 +49,64 @@ void DeinitEMASlopeDistance() IndicatorRelease(esData.ema_handle); } +bool ES_IsWeeklyADXTrendFavorable(const ENUM_ORDER_TYPE order_type) +{ + if(!ES_UseWeeklyADXFilter) + return true; + + int adxShift = ES_WeeklyADXBarShift; + if(adxShift < 0) + adxShift = 0; + + int adx_handle = iADX(esData.symbol, PERIOD_W1, ES_WeeklyADXPeriod); + if(adx_handle == INVALID_HANDLE) + return false; + + double adx_buf[], plus_di_buf[], minus_di_buf[]; + ArraySetAsSeries(adx_buf, true); + ArraySetAsSeries(plus_di_buf, true); + ArraySetAsSeries(minus_di_buf, true); + + bool ok_adx = (CopyBuffer(adx_handle, 0, adxShift, 1, adx_buf) > 0); + bool ok_plus = (CopyBuffer(adx_handle, 1, adxShift, 1, plus_di_buf) > 0); + bool ok_minus = (CopyBuffer(adx_handle, 2, adxShift, 1, minus_di_buf) > 0); + IndicatorRelease(adx_handle); + + if(!ok_adx || !ok_plus || !ok_minus) + return false; + + double adx_value = adx_buf[0]; + double plus_di = plus_di_buf[0]; + double minus_di = minus_di_buf[0]; + + bool strength_ok = (adx_value >= ES_WeeklyADXMin); + bool direction_ok = true; + if(ES_WeeklyADXUseDirection) + { + if(order_type == ORDER_TYPE_BUY) + direction_ok = (plus_di > minus_di); + else + direction_ok = (minus_di > plus_di); + } + return strength_ok && direction_ok; +} + +bool ES_TrailingActivationReached(const double position_profit, const ENUM_POSITION_TYPE position_type, + const double pips_multiplier) +{ + if(ES_TrailingActivationPips <= 0.0) + return (position_profit > 0.0); + + const double open_px = PositionGetDouble(POSITION_PRICE_OPEN); + if(position_type == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(esData.symbol, SYMBOL_BID); + return ((bid - open_px) / SymbolInfoDouble(esData.symbol, SYMBOL_POINT) / pips_multiplier >= ES_TrailingActivationPips); + } + const double ask = SymbolInfoDouble(esData.symbol, SYMBOL_ASK); + return ((open_px - ask) / SymbolInfoDouble(esData.symbol, SYMBOL_POINT) / pips_multiplier >= ES_TrailingActivationPips); +} + //+------------------------------------------------------------------+ //| EMA Berechnung (EMA Calculation) | //+------------------------------------------------------------------+ @@ -172,6 +231,11 @@ void PrüfeTrigger() if(bullish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) { + if(!ES_IsWeeklyADXTrendFavorable(ORDER_TYPE_BUY)) + { + Print("TRACE: Weekly ADX blockiert BUY-Entry"); + return; + } Print("TRACE: Versuche KAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); if(PlatziereTrade(ORDER_TYPE_BUY)) { @@ -180,6 +244,11 @@ void PrüfeTrigger() } else if(bearish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) { + if(!ES_IsWeeklyADXTrendFavorable(ORDER_TYPE_SELL)) + { + Print("TRACE: Weekly ADX blockiert SELL-Entry"); + return; + } Print("TRACE: Versuche VERKAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); if(PlatziereTrade(ORDER_TYPE_SELL)) { @@ -199,17 +268,23 @@ void PrüfeTrigger() bool PlatziereTrade(ENUM_ORDER_TYPE order_type) { Print("TRACE: Versuche Trade zu platzieren - Typ: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF"); - Print("TRACE: Lot: ", g_ES_LotSize); - + const double lot = United_NormalizeVolume(esData.symbol, g_ES_LotSize); + Print("TRACE: Lot (raw): ", g_ES_LotSize, " normalized: ", lot); + if(lot <= 0.0) + { + Print("TRACE: Abbruch — Lot nach Normalisierung ungültig"); + return false; + } + bool success = false; if(order_type == ORDER_TYPE_BUY) { - success = esData.trade.Buy(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + success = esData.trade.Buy(lot, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); } else { - success = esData.trade.Sell(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + success = esData.trade.Sell(lot, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); } if(success) @@ -219,6 +294,7 @@ bool PlatziereTrade(ENUM_ORDER_TYPE order_type) //--- Trade-Öffnungszeit speichern (Save trade opening time) esData.trade_open_time = iTime(esData.symbol, ES_Timeframe, 0); + esData.es_last_sl_adjust_success_time = 0; Print("TRACE: Trade-Öffnungszeit: ", TimeToString(esData.trade_open_time)); //--- Überwachung zurücksetzen (Reset monitoring) @@ -244,41 +320,51 @@ void VerwalteTrades() { if(!PositionSelectByMagic(esData.symbol, (ulong)ES_MagicNumber)) return; - + + if(ES_UseStaleStopLossExit && ES_StaleStopLossSeconds > 0) + { + const datetime stale_ref = (esData.es_last_sl_adjust_success_time > 0) + ? esData.es_last_sl_adjust_success_time + : (datetime)PositionGetInteger(POSITION_TIME); + if(TimeCurrent() - stale_ref >= ES_StaleStopLossSeconds) + { + SchließePosition("Stale stop loss - keine SL-Anpassung"); + return; + } + } + double position_profit = PositionGetDouble(POSITION_PROFIT); - double position_open_price = PositionGetDouble(POSITION_PRICE_OPEN); - double current_price = PositionGetDouble(POSITION_PRICE_CURRENT); ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); - + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); double pips_multiplier = (digits == 3 || digits == 5) ? 10.0 : 1.0; - double trailing_stop_pips = ES_TrailingStop; - - //--- Gleitender Stop (Trailing Stop) - nur wenn Position im Profit ist - if(position_profit > 0) // Only apply trailing stop when in profit + const double trail_dist = ES_TrailingStop * point * pips_multiplier; + const long stops_level = SymbolInfoInteger(esData.symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + if(ES_UseTrailingStop && ES_TrailingStop > 0.0 && ES_TrailingActivationReached(position_profit, position_type, pips_multiplier)) { if(position_type == POSITION_TYPE_BUY) { - double new_stop_loss = current_price - (trailing_stop_pips * point * pips_multiplier); - double current_stop_loss = PositionGetDouble(POSITION_SL); - - // Only move stop loss if new stop is higher than current stop - if(new_stop_loss > current_stop_loss) - { + const double bid = SymbolInfoDouble(esData.symbol, SYMBOL_BID); + double new_stop_loss = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_stop_loss < min_dist) + new_stop_loss = NormalizeDouble(bid - min_dist, digits); + const double current_stop_loss = PositionGetDouble(POSITION_SL); + if(new_stop_loss < bid && new_stop_loss > 0.0 && new_stop_loss > current_stop_loss) ÄndereStopLoss(new_stop_loss); - } } else if(position_type == POSITION_TYPE_SELL) { - double new_stop_loss = current_price + (trailing_stop_pips * point * pips_multiplier); - double current_stop_loss = PositionGetDouble(POSITION_SL); - - // Only move stop loss if new stop is lower than current stop - if(new_stop_loss < current_stop_loss || current_stop_loss == 0) - { + const double ask = SymbolInfoDouble(esData.symbol, SYMBOL_ASK); + double new_stop_loss = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_stop_loss - ask < min_dist) + new_stop_loss = NormalizeDouble(ask + min_dist, digits); + const double current_stop_loss = PositionGetDouble(POSITION_SL); + if(new_stop_loss > ask && new_stop_loss > 0.0 && + (new_stop_loss < current_stop_loss || current_stop_loss == 0.0)) ÄndereStopLoss(new_stop_loss); - } } } @@ -366,6 +452,7 @@ void ÄndereStopLoss(double new_stop_loss) if(success) { + esData.es_last_sl_adjust_success_time = TimeCurrent(); Print("TRACE: Stop Loss erfolgreich geändert auf: ", new_stop_loss); } else @@ -386,6 +473,7 @@ void SchließePosition(string reason = "Unbekannt") if(success) { + esData.es_last_sl_adjust_success_time = 0; Print("TRACE: Position erfolgreich geschlossen - Grund: ", reason); } else @@ -400,40 +488,34 @@ void SchließePosition(string reason = "Unbekannt") //+------------------------------------------------------------------+ void ProcessEMASlopeDistance(string symbol) { - // Skip if not initialized (symbol not available) if(!esData.isInitialized) return; - - esData.symbol = symbol; // Update symbol in case it changed - - //--- Bar-Daten oder Tick-Daten verwenden (Use bar data or tick data) - if(ES_UseBarData) - { - //--- Nur bei neuen Bars ausführen (Only execute on new bars) - datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); - - if(current_bar_time == esData.last_bar_time) - { - return; // Kein neuer Bar, nichts tun - } - + + esData.symbol = symbol; + + const datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); + const bool new_bar = (current_bar_time != esData.last_bar_time); + const bool has_position = PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber); + + if(ES_UseBarData && !new_bar && !has_position) + return; + + if(new_bar) esData.last_bar_time = current_bar_time; - } - - //--- EMA Werte berechnen (Calculate EMA values) + BerechneEMA(); - - //--- Debug: Aktuelle Werte ausgeben (Debug: Output current values) - if(ArraySize(esData.ema_array) > 0) + + const bool run_signals = (!ES_UseBarData || new_bar); + + if(run_signals && ArraySize(esData.ema_array) > 0) { double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); double ema_aktuell = esData.ema_array[0]; double ema_vorher = esData.ema_array[1]; - int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / point; double steigung = (ema_aktuell - ema_vorher) / point; - + if(ES_UseBarData) { Print("=== DEBUG INFO (Neuer Bar) ==="); @@ -443,7 +525,7 @@ void ProcessEMASlopeDistance(string symbol) { Print("=== DEBUG INFO (Tick) ==="); } - + Print("Aktueller Close: ", aktueller_close); Print("EMA: ", ema_aktuell); Print("Preis-Abstand: ", preis_abstand, " Pips"); @@ -455,41 +537,39 @@ void ProcessEMASlopeDistance(string symbol) Print("Trades im aktuellen Crossover: ", esData.trades_in_current_crossover, "/", ES_MaxTradesPerCrossover); Print("=================="); } - - //--- Überwachung prüfen (Check monitoring) - if(esData.überwachung_aktiv) + + if(run_signals) { - if(ES_UseBarData) + if(esData.überwachung_aktiv) { - // Bar-basierte Überwachungszeit - int bars_since_monitoring = iBarShift(esData.symbol, ES_Timeframe, esData.letzte_überwachung_zeit); - int timeout_bars = (int)(ES_ÜberwachungTimeout / PeriodSeconds(ES_Timeframe)); - - if(bars_since_monitoring > timeout_bars) + if(ES_UseBarData) { - esData.überwachung_aktiv = false; - esData.preis_trigger_aktiv = false; - esData.steigung_trigger_aktiv = false; - Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); - } - } - else - { - // Tick-basierte Überwachungszeit - if(TimeCurrent() - esData.letzte_überwachung_zeit > ES_ÜberwachungTimeout) - { - esData.überwachung_aktiv = false; - esData.preis_trigger_aktiv = false; - esData.steigung_trigger_aktiv = false; - Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + int bars_since_monitoring = iBarShift(esData.symbol, ES_Timeframe, esData.letzte_überwachung_zeit); + int timeout_bars = (int)(ES_ÜberwachungTimeout / PeriodSeconds(ES_Timeframe)); + + if(bars_since_monitoring > timeout_bars) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); + } + } + else + { + if(TimeCurrent() - esData.letzte_überwachung_zeit > ES_ÜberwachungTimeout) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + } } } + + PrüfeTrigger(); } - - //--- Trigger-Bedingungen prüfen (Check trigger conditions) - PrüfeTrigger(); - - //--- Trade Management (Trade management) + VerwalteTrades(); } diff --git a/frontline/cluster-0/_united-V2/Strategies/RSIConsolidationStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/RSIConsolidationStrategy.mqh similarity index 100% rename from frontline/cluster-0/_united-V2/Strategies/RSIConsolidationStrategy.mqh rename to frontline/cluster-fuck/_united-V2/Strategies/RSIConsolidationStrategy.mqh diff --git a/frontline/cluster-0/_united-V2/Strategies/RSICrossOverReversalStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/RSICrossOverReversalStrategy.mqh similarity index 84% rename from frontline/cluster-0/_united-V2/Strategies/RSICrossOverReversalStrategy.mqh rename to frontline/cluster-fuck/_united-V2/Strategies/RSICrossOverReversalStrategy.mqh index 266292a..ddc5f5a 100644 --- a/frontline/cluster-0/_united-V2/Strategies/RSICrossOverReversalStrategy.mqh +++ b/frontline/cluster-fuck/_united-V2/Strategies/RSICrossOverReversalStrategy.mqh @@ -79,6 +79,7 @@ bool InitRSICrossOverReversal(string symbol) } rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + rcData.trade.SetDeviationInPoints(RC_slippage); rcData.isInitialized = true; Print("RSICrossOverReversal: Successfully initialized for symbol '", symbol, "'"); return true; @@ -190,7 +191,13 @@ void ProcessRSICrossOverReversal(string symbol) double emaSlope = (currentEMA - previousEMA) * 100; const double closeCurr = iClose(rcData.symbol, RC_TimeFrame1, 0); - double priceToEmaDistance = (closeCurr - currentEMA) * 10; + // Raw (close-EMA)*10 blows past threshold on XAUUSD (~2600) almost every bar — blocks all entries. + // Compare distance in pips so RC_emaDistanceThreshold matches intent across symbols. + const double point = SymbolInfoDouble(rcData.symbol, SYMBOL_POINT); + const int symDig = (int)SymbolInfoInteger(rcData.symbol, SYMBOL_DIGITS); + const double pipMult = (symDig == 3 || symDig == 5) ? 10.0 : 1.0; + const double pipSize = (point > 0.0 ? point * pipMult : point); + const double priceToEmaPips = (pipSize > 0.0 ? MathAbs(closeCurr - currentEMA) / pipSize : 0.0); bool isBuyPosition = false; bool isSellPosition = false; @@ -209,7 +216,8 @@ void ProcessRSICrossOverReversal(string symbol) ApplyTrailingStop(); bool cooldownPassed = (currentTime - rcData.lastTradeTime) >= RC_cooldownSeconds; - bool isTrendStrong = MathAbs(emaSlope) > RC_emaSlopeThreshold || MathAbs(priceToEmaDistance) > RC_emaDistanceThreshold; + const bool isTrendStrong = RC_UseTrendStrengthFilter && + (MathAbs(emaSlope) > RC_emaSlopeThreshold || priceToEmaPips > RC_emaDistanceThreshold); if(isBuyPosition && currentRSI > RC_exitBuyRSI) { @@ -233,10 +241,12 @@ void ProcessRSICrossOverReversal(string symbol) currentRSI < RC_overboughtLevel - RC_entryRSISellSpread && rcData.previousRSIDef >= RC_overboughtLevel && !isSellPosition && !hasPosition && cooldownPassed) { - rcData.trade.SetExpertMagicNumber(RC_MagicNumber); - if(rcData.trade.Sell(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Sell Order")) + const double vol = United_NormalizeVolume(rcData.symbol, g_RC_LotSize); + if(vol > 0.0) { - rcData.lastTradeTime = currentTime; + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Sell(vol, rcData.symbol, 0.0, 0.0, 0.0, "Sell Order")) + rcData.lastTradeTime = currentTime; } } @@ -244,10 +254,12 @@ void ProcessRSICrossOverReversal(string symbol) currentRSI > RC_oversoldLevel + RC_entryRSIBuySpread && rcData.previousRSIDef <= RC_oversoldLevel && !isBuyPosition && !hasPosition && cooldownPassed) { - rcData.trade.SetExpertMagicNumber(RC_MagicNumber); - if(rcData.trade.Buy(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Buy Order")) + const double vol = United_NormalizeVolume(rcData.symbol, g_RC_LotSize); + if(vol > 0.0) { - rcData.lastTradeTime = currentTime; + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Buy(vol, rcData.symbol, 0.0, 0.0, 0.0, "Buy Order")) + rcData.lastTradeTime = currentTime; } } diff --git a/frontline/united_template/_united-V2_exponential/Strategies/RSIMidPointHijackStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/RSIMidPointHijackStrategy.mqh similarity index 92% rename from frontline/united_template/_united-V2_exponential/Strategies/RSIMidPointHijackStrategy.mqh rename to frontline/cluster-fuck/_united-V2/Strategies/RSIMidPointHijackStrategy.mqh index 3db8db5..120996b 100644 --- a/frontline/united_template/_united-V2_exponential/Strategies/RSIMidPointHijackStrategy.mqh +++ b/frontline/cluster-fuck/_united-V2/Strategies/RSIMidPointHijackStrategy.mqh @@ -2,6 +2,11 @@ //| RSIMidPointHijackStrategy.mqh | //+------------------------------------------------------------------+ +double RM_NormalizedLot(const string sym) +{ + return United_NormalizeVolume(sym, g_RM_LotSize); +} + bool IsNewBar(string symbol) { datetime time[]; @@ -111,7 +116,9 @@ void CheckRSIFollowStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); - rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Sell(vol, symbol, 0, 0, 0, "RSI Follow"); } rmData.rsiOverbought = false; } @@ -120,7 +127,9 @@ void CheckRSIFollowStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); - rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Buy(vol, symbol, 0, 0, 0, "RSI Follow"); } rmData.rsiOversold = false; } @@ -154,7 +163,9 @@ void CheckRSIReverseStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); - rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Sell(vol, symbol, 0, 0, 0, "RSI Reverse"); } rmData.rsiReverseOverbought = false; } @@ -163,7 +174,9 @@ void CheckRSIReverseStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); - rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Buy(vol, symbol, 0, 0, 0, "RSI Reverse"); } rmData.rsiReverseOversold = false; } @@ -223,7 +236,9 @@ void CheckEMACrossStrategy(string symbol) if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); - rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Buy(vol, symbol, 0, 0, 0, "EMA Cross Distance"); rmData.emaCrossBuySignal = false; } } @@ -252,7 +267,9 @@ void CheckEMACrossStrategy(string symbol) if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); - rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Sell(vol, symbol, 0, 0, 0, "EMA Cross Distance"); rmData.emaCrossSellSignal = false; } } @@ -265,7 +282,9 @@ void CheckEMACrossStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); - rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Buy(vol, symbol, 0, 0, 0, "EMA Cross"); } } else if(rmData.lastBarEMAPrev > rmData.lastBarClosePrev && rmData.lastBarEMA < rmData.lastBarClose) @@ -273,7 +292,9 @@ void CheckEMACrossStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); - rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Sell(vol, symbol, 0, 0, 0, "EMA Cross"); } } } diff --git a/frontline/united_template/_united-V2_exponential/Strategies/RSIReversalAsianStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/RSIReversalAsianStrategy.mqh similarity index 94% rename from frontline/united_template/_united-V2_exponential/Strategies/RSIReversalAsianStrategy.mqh rename to frontline/cluster-fuck/_united-V2/Strategies/RSIReversalAsianStrategy.mqh index 6762248..e204fb0 100644 --- a/frontline/united_template/_united-V2_exponential/Strategies/RSIReversalAsianStrategy.mqh +++ b/frontline/cluster-fuck/_united-V2/Strategies/RSIReversalAsianStrategy.mqh @@ -65,19 +65,14 @@ bool IsAsianSession() //+------------------------------------------------------------------+ bool IsTradingAllowed(RSIReversalAsianData& data) { - // Check if market is open - long tradeMode = SymbolInfoInteger(data.symbol, SYMBOL_TRADE_MODE); - if(tradeMode != SYMBOL_TRADE_MODE_FULL) - { + // Do not require SYMBOL_TRADE_MODE_FULL: many symbols allow one side only (long/short). + const long tradeMode = SymbolInfoInteger(data.symbol, SYMBOL_TRADE_MODE); + if(tradeMode == SYMBOL_TRADE_MODE_DISABLED || tradeMode == SYMBOL_TRADE_MODE_CLOSEONLY) return false; - } - - // Check if we have enough money + if(AccountInfoDouble(ACCOUNT_MARGIN_FREE) <= 0) - { return false; - } - + return true; } @@ -290,7 +285,7 @@ bool InitRSIReversalAsian(RSIReversalAsianData& data, string symbol, // Set trade parameters data.trade.SetExpertMagicNumber(MagicNumber); data.trade.SetDeviationInPoints(Slippage); - data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetTypeFillingBySymbol(symbol); // Initialize state data.isPositionOpen = false; @@ -444,16 +439,16 @@ void ProcessRSIReversalAsian(RSIReversalAsianData& data, double lotSize) if(data.UseTakeProfit && tp <= currentBid) return; - // Set trade parameters data.trade.SetDeviationInPoints(data.Slippage); - data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetTypeFillingBySymbol(data.symbol); data.trade.SetExpertMagicNumber(data.MagicNumber); - // Use dynamic lot size double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; - - // Place buy order using CTrade - if(data.trade.Buy(tradeLotSize, data.symbol, currentAsk, sl, tp, "RSI Oversold Crossover Buy")) + const double vol = United_NormalizeVolume(data.symbol, tradeLotSize); + if(vol <= 0.0) + return; + + if(data.trade.Buy(vol, data.symbol, currentAsk, sl, tp, "RSI Oversold Crossover Buy")) { data.isPositionOpen = true; data.positionOpenPrice = currentAsk; @@ -472,16 +467,16 @@ void ProcessRSIReversalAsian(RSIReversalAsianData& data, double lotSize) if(data.UseTakeProfit && tp >= currentAsk) return; - // Set trade parameters data.trade.SetDeviationInPoints(data.Slippage); - data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetTypeFillingBySymbol(data.symbol); data.trade.SetExpertMagicNumber(data.MagicNumber); - // Use dynamic lot size double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; - - // Place sell order using CTrade - if(data.trade.Sell(tradeLotSize, data.symbol, currentBid, sl, tp, "RSI Overbought Crossover Sell")) + const double vol = United_NormalizeVolume(data.symbol, tradeLotSize); + if(vol <= 0.0) + return; + + if(data.trade.Sell(vol, data.symbol, currentBid, sl, tp, "RSI Overbought Crossover Sell")) { data.isPositionOpen = true; data.positionOpenPrice = currentBid; diff --git a/frontline/united_template/_united-V2_exponential/Strategies/RSIScalpingStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/RSIScalpingStrategy.mqh similarity index 86% rename from frontline/united_template/_united-V2_exponential/Strategies/RSIScalpingStrategy.mqh rename to frontline/cluster-fuck/_united-V2/Strategies/RSIScalpingStrategy.mqh index 5daa1c1..630955d 100644 --- a/frontline/united_template/_united-V2_exponential/Strategies/RSIScalpingStrategy.mqh +++ b/frontline/cluster-fuck/_united-V2/Strategies/RSIScalpingStrategy.mqh @@ -120,6 +120,70 @@ void RS_TryReversalEscape(RSIScalpingData& data, const ENUM_TIMEFRAMES tf, const " ATR=", DoubleToString(atr, (int)SymbolInfoInteger(data.symbol, SYMBOL_DIGITS))); } +void RS_ApplyTrailingStop(RSIScalpingData& data, const int MagicNumber, + const bool useTrailingStop, + const double trailingStopDistancePoints, + const double trailingActivationPoints) +{ + if(!useTrailingStop || trailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(data.symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(data.symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(data.symbol, SYMBOL_DIGITS); + const double trail_dist = trailingStopDistancePoints * point; + const double activation_pts = (trailingActivationPoints > 0.0) + ? trailingActivationPoints + : trailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(data.symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(data.symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(data.trade, data.symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(data.symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(data.trade, data.symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + string ErrorDescription(int errorCode) { switch(errorCode) @@ -364,21 +428,7 @@ void CheckEntrySignals(RSIScalpingData& data, ENUM_TIMEFRAMES TimeFrame, int Mag //+------------------------------------------------------------------+ double NormalizeLotSize(string symbol, double lotSize) { - double minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); - double maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); - double lotStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); - - // Round to lot step - if(lotStep > 0) - lotSize = MathFloor(lotSize / lotStep) * lotStep; - - // Apply min/max constraints - if(lotSize < minLot) - lotSize = minLot; - if(lotSize > maxLot) - lotSize = maxLot; - - return lotSize; + return United_NormalizeVolume(symbol, lotSize); } void OpenBuyPosition(RSIScalpingData& data, int MagicNumber, double LotSize) @@ -520,7 +570,8 @@ void ProcessRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES Ti double RSI_Oversold, double RSI_Target_Buy, double RSI_Target_Sell, int BarsToWait, double LotSize, int MagicNumber, bool UseReversalEscape, int ReversalATRPeriod, double ReversalAdverseAtrMult, - int ReversalSignsRequired, double ReversalRsiVelocity, double ReversalBodyAtrMult) + int ReversalSignsRequired, double ReversalRsiVelocity, double ReversalBodyAtrMult, + bool UseTrailingStop, double TrailingStopDistancePoints, double TrailingActivationPoints) { // Skip if not initialized (symbol not available) if(!data.isInitialized) @@ -543,6 +594,10 @@ void ProcessRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES Ti RS_TryReversalEscape(data, TimeFrame, MagicNumber, ReversalATRPeriod, ReversalAdverseAtrMult, ReversalSignsRequired, ReversalRsiVelocity, ReversalBodyAtrMult); + if(in_pos) + RS_ApplyTrailingStop(data, MagicNumber, UseTrailingStop, + TrailingStopDistancePoints, TrailingActivationPoints); + if(!new_bar) return; diff --git a/frontline/cluster-fuck/_united-V2/Strategies/RSISecretSauceStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/RSISecretSauceStrategy.mqh new file mode 100644 index 0000000..a8c284e --- /dev/null +++ b/frontline/cluster-fuck/_united-V2/Strategies/RSISecretSauceStrategy.mqh @@ -0,0 +1,336 @@ +//+------------------------------------------------------------------+ +//| RSISecretSauceStrategy.mqh | +//| Cluster-0 orchestrator: RSI leave extreme then peak/bottom entry | +//+------------------------------------------------------------------+ +#ifndef RSI_SECRET_SAUCE_STRATEGY_MQH +#define RSI_SECRET_SAUCE_STRATEGY_MQH + +#include +#include + +struct RSISecretSauceOrcData +{ + string actualSymbol; + bool isInitialized; + CTrade trade; + CPositionInfo positionInfo; + int rsiHandle; + int atrHandle; + double rsiBuffer[]; + double atrBuffer[]; + double highBuffer[]; + double lowBuffer[]; + bool rsiWasOverbought; + bool rsiWasOversold; + bool rsiBackInRange; + datetime lastRSIExitTime; + datetime lastRSIReentryTime; + datetime lastTradeTime; + datetime lastBarTime; +}; + +bool RSS_UpdateIndicators(RSISecretSauceOrcData &d) +{ + int rsiBarsNeeded = RSS_RSILookback + 5; + if(CopyBuffer(d.rsiHandle, 0, 0, rsiBarsNeeded, d.rsiBuffer) < rsiBarsNeeded) + return false; + if(CopyBuffer(d.atrHandle, 0, 0, 2, d.atrBuffer) < 2) + return false; + if(CopyHigh(d.actualSymbol, RSS_Timeframe, 0, RSS_SwingLookback + 5, d.highBuffer) < RSS_SwingLookback + 5) + return false; + if(CopyLow(d.actualSymbol, RSS_Timeframe, 0, RSS_SwingLookback + 5, d.lowBuffer) < RSS_SwingLookback + 5) + return false; + return true; +} + +void RSS_UpdateRSIState(RSISecretSauceOrcData &d) +{ + double rsiCurrent = d.rsiBuffer[0]; + double rsiPrev = d.rsiBuffer[1]; + + if(rsiPrev >= RSS_RSIOverbought && rsiCurrent < RSS_RSIOverbought) + { + d.rsiWasOverbought = true; + d.rsiBackInRange = true; + d.lastRSIExitTime = TimeCurrent(); + d.lastRSIReentryTime = TimeCurrent(); + } + + if(rsiPrev <= RSS_RSIOversold && rsiCurrent > RSS_RSIOversold) + { + d.rsiWasOversold = true; + d.rsiBackInRange = true; + d.lastRSIExitTime = TimeCurrent(); + d.lastRSIReentryTime = TimeCurrent(); + } + + if(rsiCurrent >= RSS_RSIOverbought) + { + d.rsiWasOverbought = false; + d.rsiBackInRange = false; + } + + if(rsiCurrent <= RSS_RSIOversold) + { + d.rsiWasOversold = false; + d.rsiBackInRange = false; + } +} + +bool RSS_IsRSIPeak(RSISecretSauceOrcData &d) +{ + if(ArraySize(d.rsiBuffer) < RSS_PeakBars + 2) + return false; + double currentRSI = d.rsiBuffer[0]; + bool isPeak = true; + for(int i = 1; i <= RSS_PeakBars; i++) + { + if(d.rsiBuffer[i] >= currentRSI) + { + isPeak = false; + break; + } + } + if(d.rsiBuffer[1] >= currentRSI) + isPeak = false; + return isPeak; +} + +bool RSS_IsRSIBottom(RSISecretSauceOrcData &d) +{ + if(ArraySize(d.rsiBuffer) < RSS_PeakBars + 2) + return false; + double currentRSI = d.rsiBuffer[0]; + bool isBottom = true; + for(int i = 1; i <= RSS_PeakBars; i++) + { + if(d.rsiBuffer[i] <= currentRSI) + { + isBottom = false; + break; + } + } + if(d.rsiBuffer[1] <= currentRSI) + isBottom = false; + return isBottom; +} + +double RSS_GetSwingStopLoss(RSISecretSauceOrcData &d, double currentPrice, ENUM_POSITION_TYPE type) +{ + if(type == POSITION_TYPE_BUY) + { + double lowestLow = d.lowBuffer[0]; + for(int i = 1; i < RSS_SwingLookback && i < ArraySize(d.lowBuffer); i++) + { + if(d.lowBuffer[i] < lowestLow) + lowestLow = d.lowBuffer[i]; + } + return lowestLow; + } + double highestHigh = d.highBuffer[0]; + for(int i = 1; i < RSS_SwingLookback && i < ArraySize(d.highBuffer); i++) + { + if(d.highBuffer[i] > highestHigh) + highestHigh = d.highBuffer[i]; + } + return highestHigh; +} + +bool RSS_CalculateStops(RSISecretSauceOrcData &d, double price, ENUM_POSITION_TYPE type, double &sl, double &tp) +{ + double atrValue = d.atrBuffer[0]; + if(atrValue <= 0) + atrValue = price * 0.01; + + double slDistance = atrValue * RSS_StopLossATR; + double tpDistance = atrValue * RSS_TakeProfitATR; + + int digits = (int)SymbolInfoInteger(d.actualSymbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(d.actualSymbol, SYMBOL_POINT); + int stopsLevel = (int)SymbolInfoInteger(d.actualSymbol, SYMBOL_TRADE_STOPS_LEVEL); + double minStopDistance = MathMax(stopsLevel * point, point * 10); + + if(RSS_UseSwingStopLoss) + { + double swingStop = RSS_GetSwingStopLoss(d, price, type); + if(swingStop > 0) + { + if(type == POSITION_TYPE_BUY) + { + if(swingStop < price && (price - swingStop) > minStopDistance) + slDistance = price - swingStop; + } + else + { + if(swingStop > price && (swingStop - price) > minStopDistance) + slDistance = swingStop - price; + } + } + } + + if(slDistance < minStopDistance) + slDistance = minStopDistance; + if(tpDistance < minStopDistance) + tpDistance = minStopDistance; + + if(type == POSITION_TYPE_BUY) + { + sl = NormalizeDouble(price - slDistance, digits); + tp = NormalizeDouble(price + tpDistance, digits); + } + else + { + sl = NormalizeDouble(price + slDistance, digits); + tp = NormalizeDouble(price - tpDistance, digits); + } + return true; +} + +bool RSS_CanOpenNewPosition(RSISecretSauceOrcData &d) +{ + int positionCount = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(d.positionInfo.SelectByIndex(i)) + { + if(d.positionInfo.Symbol() == d.actualSymbol && d.positionInfo.Magic() == RSS_MagicNumber) + positionCount++; + } + } + if(positionCount >= RSS_MaxPositions) + return false; + + if(d.lastTradeTime > 0) + { + int barsSince = Bars(d.actualSymbol, RSS_Timeframe, d.lastTradeTime, TimeCurrent()); + if(barsSince < RSS_MinBarsBetweenTrades) + return false; + } + return true; +} + +void RSS_OpenPosition(RSISecretSauceOrcData &d, ENUM_POSITION_TYPE type, const double lotSize) +{ + double price = (type == POSITION_TYPE_BUY) ? + SymbolInfoDouble(d.actualSymbol, SYMBOL_ASK) : + SymbolInfoDouble(d.actualSymbol, SYMBOL_BID); + + if(price <= 0) + return; + + double sl = 0.0, tp = 0.0; + if(!RSS_CalculateStops(d, price, type, sl, tp)) + return; + + string comment = "RSI_Secret_" + (type == POSITION_TYPE_BUY ? "LONG" : "SHORT"); + + bool result = false; + if(type == POSITION_TYPE_BUY) + result = d.trade.Buy(lotSize, d.actualSymbol, 0, sl, tp, comment); + else + result = d.trade.Sell(lotSize, d.actualSymbol, 0, sl, tp, comment); + + if(result) + { + d.lastTradeTime = TimeCurrent(); + if(type == POSITION_TYPE_BUY) + d.rsiWasOverbought = false; + else + d.rsiWasOversold = false; + d.rsiBackInRange = false; + } +} + +void RSS_CheckEntrySignals(RSISecretSauceOrcData &d, const double lotSize) +{ + if(d.rsiWasOverbought && d.rsiBackInRange) + { + if(d.rsiBuffer[0] < RSS_RSIOverbought && RSS_IsRSIPeak(d)) + RSS_OpenPosition(d, POSITION_TYPE_BUY, lotSize); + } + + if(d.rsiWasOversold && d.rsiBackInRange) + { + if(d.rsiBuffer[0] > RSS_RSIOversold && RSS_IsRSIBottom(d)) + RSS_OpenPosition(d, POSITION_TYPE_SELL, lotSize); + } +} + +bool InitRSISecretSauce(RSISecretSauceOrcData &d, const string symbol) +{ + d.isInitialized = false; + d.rsiHandle = INVALID_HANDLE; + d.atrHandle = INVALID_HANDLE; + d.rsiWasOverbought = false; + d.rsiWasOversold = false; + d.rsiBackInRange = false; + d.lastRSIExitTime = 0; + d.lastRSIReentryTime = 0; + d.lastTradeTime = 0; + d.lastBarTime = 0; + d.actualSymbol = symbol; + StringTrimLeft(d.actualSymbol); + StringTrimRight(d.actualSymbol); + if(StringLen(d.actualSymbol) == 0) + d.actualSymbol = _Symbol; + + if(!SymbolSelect(d.actualSymbol, true)) + { + Print("RSISecretSauce: symbol not available '", d.actualSymbol, "'"); + return false; + } + + d.rsiHandle = iRSI(d.actualSymbol, RSS_Timeframe, RSS_RSIPeriod, PRICE_CLOSE); + d.atrHandle = iATR(d.actualSymbol, RSS_Timeframe, RSS_ATRPeriod); + if(d.rsiHandle == INVALID_HANDLE || d.atrHandle == INVALID_HANDLE) + return false; + + ArraySetAsSeries(d.rsiBuffer, true); + ArraySetAsSeries(d.atrBuffer, true); + ArraySetAsSeries(d.highBuffer, true); + ArraySetAsSeries(d.lowBuffer, true); + + d.trade.SetExpertMagicNumber(RSS_MagicNumber); + d.trade.SetDeviationInPoints(RSS_Slippage); + d.trade.SetTypeFilling(ORDER_FILLING_FOK); + + d.isInitialized = true; + return true; +} + +void DeinitRSISecretSauce(RSISecretSauceOrcData &d) +{ + if(d.rsiHandle != INVALID_HANDLE) + IndicatorRelease(d.rsiHandle); + if(d.atrHandle != INVALID_HANDLE) + IndicatorRelease(d.atrHandle); + d.rsiHandle = INVALID_HANDLE; + d.atrHandle = INVALID_HANDLE; + d.isInitialized = false; +} + +void ProcessRSISecretSauce(RSISecretSauceOrcData &d, const double lotSize) +{ + if(!d.isInitialized) + return; + + int requiredBars = MathMax(RSS_RSILookback, RSS_SwingLookback) + 10; + if(Bars(d.actualSymbol, RSS_Timeframe) < requiredBars) + return; + + datetime currentBarTime = iTime(d.actualSymbol, RSS_Timeframe, 0); + if(currentBarTime == d.lastBarTime) + return; + + d.lastBarTime = currentBarTime; + + if(!RSS_UpdateIndicators(d)) + return; + + RSS_UpdateRSIState(d); + + if(RSS_CanOpenNewPosition(d)) + RSS_CheckEntrySignals(d, lotSize); +} + +#endif diff --git a/frontline/cluster-0/_united-V2/Strategies/SimpleTrendlineStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/SimpleTrendlineStrategy.mqh similarity index 100% rename from frontline/cluster-0/_united-V2/Strategies/SimpleTrendlineStrategy.mqh rename to frontline/cluster-fuck/_united-V2/Strategies/SimpleTrendlineStrategy.mqh diff --git a/frontline/cluster-0/_united-V2/Strategies/SuperEMAStrategy.mqh b/frontline/cluster-fuck/_united-V2/Strategies/SuperEMAStrategy.mqh similarity index 93% rename from frontline/cluster-0/_united-V2/Strategies/SuperEMAStrategy.mqh rename to frontline/cluster-fuck/_united-V2/Strategies/SuperEMAStrategy.mqh index 3dba90e..52400fe 100644 --- a/frontline/cluster-0/_united-V2/Strategies/SuperEMAStrategy.mqh +++ b/frontline/cluster-fuck/_united-V2/Strategies/SuperEMAStrategy.mqh @@ -51,6 +51,12 @@ void SuperEMA_Log(SuperEMAData &d, const string s) Print("[SuperEMA] ", s); } +double SuperEMA_Point(const SuperEMAData &d) +{ + double pt = SymbolInfoDouble(d.symbol, SYMBOL_POINT); + return (pt > 0.0 ? pt : _Point); +} + bool SuperEMA_IsNewBar(SuperEMAData &d) { datetime t = iTime(d.symbol, d.tf, 0); @@ -176,7 +182,8 @@ bool SuperEMA_PullbackNearFastEmaLong(SuperEMAData &d) double lo = iLow(d.symbol, d.tf, 1); if(emaF <= 0.0) return false; - return (lo <= emaF + d.slBufferPoints * _Point * 3.0); + const double pt = SuperEMA_Point(d); + return (lo <= emaF + d.slBufferPoints * pt * 3.0); } bool SuperEMA_PullbackNearFastEmaShort(SuperEMAData &d) @@ -185,7 +192,8 @@ bool SuperEMA_PullbackNearFastEmaShort(SuperEMAData &d) double hi = iHigh(d.symbol, d.tf, 1); if(emaF <= 0.0) return false; - return (hi >= emaF - d.slBufferPoints * _Point * 3.0); + const double pt = SuperEMA_Point(d); + return (hi >= emaF - d.slBufferPoints * pt * 3.0); } int SuperEMA_PositionsByMagic(SuperEMAData &d) @@ -196,6 +204,8 @@ int SuperEMA_PositionsByMagic(SuperEMAData &d) ulong t = PositionGetTicket(i); if(t == 0) continue; + if(!PositionSelectByTicket(t)) + continue; if(PositionGetString(POSITION_SYMBOL) == d.symbol && (int)PositionGetInteger(POSITION_MAGIC) == d.magic) n++; } @@ -209,7 +219,7 @@ void SuperEMA_ComputeSLTP(SuperEMAData &d, const bool isBuy, double &sl, double if(!d.useStructuralSL) return; double emaM = SuperEMA_EmaAt(d, d.emaMid, d.emaTrendBars); - double buf = d.slBufferPoints * _Point; + double buf = d.slBufferPoints * SuperEMA_Point(d); if(isBuy) sl = emaM - buf; else @@ -418,9 +428,13 @@ void ProcessSuperEMA(SuperEMAData &d, const double lots) SuperEMA_ManageExits(d); + // Same order as standalone SuperEMAXAUUSD: skip entry logic when flat is not allowed. + if(d.oneTradeOnly && SuperEMA_PositionsByMagic(d) > 0) + return; + const int sh = d.emaTrendBars; - double h1 = 0.0, h2 = 0.0; - if(!SuperEMA_MacdHistAt(d, 1, h1) || !SuperEMA_MacdHistAt(d, 2, h2)) + double h1 = 0.0; + if(!SuperEMA_MacdHistAt(d, 1, h1)) return; bool up = SuperEMA_TrendUp(d, sh); @@ -453,14 +467,14 @@ void ProcessSuperEMA(SuperEMAData &d, const double lots) break; } - if(d.oneTradeOnly && SuperEMA_PositionsByMagic(d) > 0) + if(!wantBuy && !wantSell) + return; + + const double vol = United_NormalizeVolume(d.symbol, lots); + if(vol <= 0.0) { - if(wantBuy && !United_MayOpenNewEntry(d.symbol, (ulong)d.magic, true)) - wantBuy = false; - if(wantSell && !United_MayOpenNewEntry(d.symbol, (ulong)d.magic, false)) - wantSell = false; - if(!wantBuy && !wantSell) - return; + SuperEMA_Log(d, "Skip entry: normalized volume <= 0"); + return; } MqlTick tick; @@ -474,7 +488,7 @@ void ProcessSuperEMA(SuperEMAData &d, const double lots) #ifndef UNITED_MARTINGALE_NO_SELF_CLOSE SuperEMA_ComputeSLTP(d, true, sl, tp); #endif - if(d.trade.Buy(lots, d.symbol, tick.ask, sl, tp, "United SuperEMA long")) + if(d.trade.Buy(vol, d.symbol, tick.ask, sl, tp, "United SuperEMA long")) SuperEMA_Log(d, StringFormat("BUY ask=%.5f sl=%.5f", tick.ask, sl)); } else if(wantSell && !wantBuy) @@ -482,7 +496,7 @@ void ProcessSuperEMA(SuperEMAData &d, const double lots) #ifndef UNITED_MARTINGALE_NO_SELF_CLOSE SuperEMA_ComputeSLTP(d, false, sl, tp); #endif - if(d.trade.Sell(lots, d.symbol, tick.bid, sl, tp, "United SuperEMA short")) + if(d.trade.Sell(vol, d.symbol, tick.bid, sl, tp, "United SuperEMA short")) SuperEMA_Log(d, StringFormat("SELL bid=%.5f sl=%.5f", tick.bid, sl)); } } diff --git a/frontline/united_template/_united-V2_exponential/main.mq5 b/frontline/cluster-fuck/_united-V2/main.mq5 similarity index 71% rename from frontline/united_template/_united-V2_exponential/main.mq5 rename to frontline/cluster-fuck/_united-V2/main.mq5 index 0fc64f4..0881584 100644 --- a/frontline/united_template/_united-V2_exponential/main.mq5 +++ b/frontline/cluster-fuck/_united-V2/main.mq5 @@ -5,14 +5,17 @@ //+------------------------------------------------------------------+ #property copyright "Copyright 2025, MetaQuotes Ltd." #property link "https://www.mql5.com" -#property version "1.00" +#property version "1.21" #property strict +#property description "LOT_* nominal at ORCH_ReferenceBalance; scale = balance/equity ÷ reference (clamped). No performance-evaluator ranking." #include #include #include #include #include "MagicNumberHelpers.mqh" +#define UNITED_V2_DYNAMIC_LOTS +double g_DB_LotSize; // Include strategy implementations early so structs are available #include "Strategies/DarvasBoxStrategy.mqh" #include "Strategies/EMASlopeDistanceStrategy.mqh" @@ -22,6 +25,8 @@ #include "Strategies/SuperEMAStrategy.mqh" #include "Strategies/RSIReversalAsianStrategy.mqh" #include "Strategies/RSIConsolidationStrategy.mqh" +#include "Strategies/SimpleTrendlineStrategy.mqh" +#include "Strategies/RSISecretSauceStrategy.mqh" //+------------------------------------------------------------------+ //| Global Lot Size Variables (for dynamic lot sizing) | @@ -29,10 +34,20 @@ double g_ES_LotSize; // EMA Slope Distance lot size double g_RC_LotSize; // RSI CrossOver Reversal lot size double g_RM_LotSize; // RSI MidPoint Hijack lot size -double g_LotScaleGrowth = 1.0; -double g_LotScaleMargin = 1.0; -double g_LotScaleFinal = 1.0; -datetime g_LastScaleLogTime = 0; + +double g_Pos_RS_APPL; +double g_Pos_RS_BTCUSD; +double g_Pos_RS_NVDA; +double g_Pos_RS_TSLA; +double g_Pos_RS_XAUUSD; +double g_Pos_RRA_EURUSD; +double g_Pos_RRA_AUDUSD; +double g_Pos_SE; +double g_Pos_RCO; +double g_Pos_ST_BTCUSD; +double g_Pos_ST_XAUUSD; +double g_Pos_ST_GER40; +double g_RSS_LotSize; bool United_MayOpenNewEntry(const string symbol, const ulong magic, const bool isBuy) { @@ -58,139 +73,36 @@ input bool EnableSuperEMA = true; input bool EnableRSIConsolidation = true; input bool EnableRSIReversalAsianEURUSD = true; input bool EnableRSIReversalAsianAUDUSD = true; +input bool EnableSimpleTrendlineBTCUSD = true; +input bool EnableSimpleTrendlineXAUUSD = true; +input bool EnableSimpleTrendlineGER40 = true; +input bool EnableRSISecretSauce = true; input group "=== Centralized Lot Size (Granular Per Robot) ===" +input double LOT_DB_DarvasBox = 0.05; input double LOT_ES_EMASlopeDistance = 0.05; -input double LOT_RC_RSICrossOver = 0.1; -input double LOT_RM_RSIMidPointHijack = 0.01; -input double LOT_RS_APPL = 100.0; -input double LOT_RS_BTCUSD = 0.15; -input double LOT_RS_NVDA = 60.0; -input double LOT_RS_TSLA = 20.0; -input double LOT_RS_XAUUSD = 0.02; -input double LOT_RRA_EURUSD = 0.01; -input double LOT_RRA_AUDUSD = 0.10; -input double LOT_SE_SuperEMA = 0.01; -input double LOT_RCO_RSIConsolidation = 0.04; +input double LOT_RC_RSICrossOver = 0.06; +input double LOT_RM_RSIMidPointHijack = 0.03; +input double LOT_RS_APPL = 5.0; +input double LOT_RS_BTCUSD = 0.1; +input double LOT_RS_NVDA = 10.0; +input double LOT_RS_TSLA = 15.0; +input double LOT_RS_XAUUSD = 0.1; +input double LOT_RRA_EURUSD = 0.05; +input double LOT_RRA_AUDUSD = 0.08; +input double LOT_SE_SuperEMA = 0.02; +input double LOT_RCO_RSIConsolidation = 0.02; +input double LOT_ST_BTCUSD = 0.07; +input double LOT_ST_XAUUSD = 0.01; +input double LOT_ST_GER40 = 0.10; +input double LOT_RSS_SecretSauce = 0.01; -input group "=== Auto Lot Scaling (Equity/Balance + Margin Guard) ===" -input bool EnableAutoLotScaling = true; -input double ScalingReferenceBalanceUSD = 1000.0; -input double ScalingCurveExponent = 0.70; // 1.0=linear, <1 smoother, >1 aggressive -input double ScaleMinMultiplier = 0.50; -input double ScaleMaxMultiplier = 3.00; -input bool EnableMarginGuard = true; -input double MarginSafeLevelPercent = 420.0; // >= safe: no reduction -input double MarginCriticalLevelPercent = 170.0; -input double MarginGuardMinMultiplier = 0.20; -input int ScaleLogIntervalSeconds = 300; -input bool ShowScaleStatusOnChart = true; - -input group "=== Minimum Balance Recommendation ===" -input bool PrintMinimumBalanceRecommendation = true; -input double MinBalPerLot_ES = 1200.0; -input double MinBalPerLot_RC = 900.0; -input double MinBalPerLot_RM = 900.0; -input double MinBalPerLot_RS_APPL = 8.0; -input double MinBalPerLot_RS_BTCUSD = 2500.0; -input double MinBalPerLot_RS_NVDA = 8.0; -input double MinBalPerLot_RS_TSLA = 8.0; -input double MinBalPerLot_RS_XAUUSD = 3000.0; -input double MinBalPerLot_RRA_EURUSD = 1200.0; -input double MinBalPerLot_RRA_AUDUSD = 1200.0; -input double MinBalPerLot_SE = 1500.0; -input double MinBalPerLot_RCO = 1800.0; -input double MinBalanceSafetyBufferPercent = 25.0; -input double MinAbsoluteRecommendedBalance = 300.0; - -double ClampValue(const double v, const double minV, const double maxV) -{ - if(v < minV) return minV; - if(v > maxV) return maxV; - return v; -} - -double GetAutoScaledLot(const double baseLot) -{ - const double scaled = baseLot * g_LotScaleFinal; - if(scaled <= 0.0) - return 0.0; - return scaled; -} - -double ComputeRecommendedMinBalance() -{ - double required = 0.0; - required += LOT_ES_EMASlopeDistance * MinBalPerLot_ES; - required += LOT_RC_RSICrossOver * MinBalPerLot_RC; - required += LOT_RM_RSIMidPointHijack * MinBalPerLot_RM; - required += LOT_RS_APPL * MinBalPerLot_RS_APPL; - required += LOT_RS_BTCUSD * MinBalPerLot_RS_BTCUSD; - required += LOT_RS_NVDA * MinBalPerLot_RS_NVDA; - required += LOT_RS_TSLA * MinBalPerLot_RS_TSLA; - required += LOT_RS_XAUUSD * MinBalPerLot_RS_XAUUSD; - required += LOT_RRA_EURUSD * MinBalPerLot_RRA_EURUSD; - required += LOT_RRA_AUDUSD * MinBalPerLot_RRA_AUDUSD; - required += LOT_SE_SuperEMA * MinBalPerLot_SE; - required += LOT_RCO_RSIConsolidation * MinBalPerLot_RCO; - required *= (1.0 + MinBalanceSafetyBufferPercent / 100.0); - if(required < MinAbsoluteRecommendedBalance) - required = MinAbsoluteRecommendedBalance; - return required; -} - -void UpdateAutoLotScaling() -{ - if(!EnableAutoLotScaling) - { - g_LotScaleGrowth = 1.0; - g_LotScaleMargin = 1.0; - g_LotScaleFinal = 1.0; - return; - } - - double refBalance = ScalingReferenceBalanceUSD; - if(refBalance < 1.0) - refBalance = 1.0; - - const double balance = AccountInfoDouble(ACCOUNT_BALANCE); - const double equity = AccountInfoDouble(ACCOUNT_EQUITY); - double base = MathMax(balance, equity); - if(base < 1.0) - base = 1.0; - - const double growthRatio = base / refBalance; - g_LotScaleGrowth = MathPow(growthRatio, ScalingCurveExponent); - g_LotScaleGrowth = ClampValue(g_LotScaleGrowth, ScaleMinMultiplier, ScaleMaxMultiplier); - - g_LotScaleMargin = 1.0; - if(EnableMarginGuard) - { - const double ml = AccountInfoDouble(ACCOUNT_MARGIN_LEVEL); - if(ml <= 0.0 || ml != ml) - { - g_LotScaleMargin = 1.0; - } - else if(ml >= MarginSafeLevelPercent) - { - g_LotScaleMargin = 1.0; - } - else if(ml <= MarginCriticalLevelPercent) - { - g_LotScaleMargin = MarginGuardMinMultiplier; - } - else - { - const double span = MarginSafeLevelPercent - MarginCriticalLevelPercent; - const double t = (span > 0.0) ? (ml - MarginCriticalLevelPercent) / span : 0.0; - g_LotScaleMargin = MarginGuardMinMultiplier + t * (1.0 - MarginGuardMinMultiplier); - } - g_LotScaleMargin = ClampValue(g_LotScaleMargin, MarginGuardMinMultiplier, 1.0); - } - - g_LotScaleFinal = g_LotScaleGrowth * g_LotScaleMargin; - g_LotScaleFinal = ClampValue(g_LotScaleFinal, ScaleMinMultiplier, ScaleMaxMultiplier); -} +input group "=== Balance-based position sizing ===" +input bool ORCH_ScaleLotsByBalance = true; +input bool ORCH_UseEquityInsteadOfBalance = false; +input double ORCH_ReferenceBalance = 10000.0; +input double ORCH_MinBalanceScale = 0.1; +input double ORCH_MaxBalanceScale = 10.0; //+------------------------------------------------------------------+ //| Strategy 1: DarvasBoxXAUUSD | @@ -203,7 +115,7 @@ input int DB_VolumeThreshold = 0; // Set to 0 to disable volume threshold ch input double DB_StopLoss = 1665; input double DB_TakeProfit = 3685; input bool DB_EnableLogging = false; -input color DB_BoxColor = clrBlue; +input color DB_BoxColor = (color)16711680; input int DB_BoxWidth = 1; input ENUM_TIMEFRAMES DB_TrendTimeframe = PERIOD_H2; input int DB_MA_Period = 125; @@ -212,6 +124,8 @@ input ENUM_APPLIED_PRICE DB_MA_Price = PRICE_WEIGHTED; input double DB_TrendThreshold = 4.94; input int DB_VolumeMA_Period = 110; input double DB_VolumeThresholdMultiplier = 1.5; +input bool DB_UseVolumeSpikeFilter = true; +input bool DB_UseTrendFilter = true; input int DB_MagicNumber = 135790; //+------------------------------------------------------------------+ @@ -224,7 +138,11 @@ input int ES_EMA_Periode = 46; input double ES_PreisSchwelle = 600.0; input double ES_SteigungSchwelle = 80.0; input int ES_ÜberwachungTimeout = 800; -input double ES_TrailingStop = 250.0; +input double ES_TrailingStop = 370.0; +input bool ES_UseTrailingStop = true; +input double ES_TrailingActivationPips = 0.0; +input bool ES_UseStaleStopLossExit = false; +input int ES_StaleStopLossSeconds = 33800; input double ES_LotGröße = 0.03; input int ES_MagicNumber = 12350; input bool ES_UseSpreadAdjustment = true; @@ -233,6 +151,11 @@ input bool ES_UseBarData = true; input int ES_MaxTradesPerCrossover = 9; input int ES_ProfitCheckBars = 18; input bool ES_CloseUnprofitableTrades = true; +input bool ES_UseWeeklyADXFilter = true; +input int ES_WeeklyADXPeriod = 15; +input double ES_WeeklyADXMin = 40.0; +input int ES_WeeklyADXBarShift = 2; +input bool ES_WeeklyADXUseDirection = true; //+------------------------------------------------------------------+ //| Strategy 3: RSICrossOverReversalXAUUSD | @@ -258,6 +181,7 @@ input double RC_exitBuyRSI = 86; input double RC_exitSellRSI = 10; input double RC_TrailingStop = 295; input double RC_emaDistanceThreshold = 165; +input bool RC_UseTrendStrengthFilter = true; input int RC_tradingHourOneBegin = 24; input int RC_tradingHourOneEnd = 22; input int RC_tradingHourTwoBegin = 6; @@ -330,7 +254,7 @@ input int RM_InpEMADistancePeriod = 26; //| 4. Use the exact symbol name shown | //+------------------------------------------------------------------+ input group "=== RSI Scalping APPL (AAPL) - Pepperstone US ===" -input string RS_APPL_Symbol = "AAPL.US"; // Try: "AAPL.US", "NASDAQ:AAPL", or "AAPL" +input string RS_APPL_Symbol = "AAPL.NAS"; // Pepperstone / match tester set (also try AAPL.US) input ENUM_TIMEFRAMES RS_APPL_TimeFrame = PERIOD_M10; input int RS_APPL_RSI_Period = 14; input ENUM_APPLIED_PRICE RS_APPL_RSI_Applied_Price = PRICE_CLOSE; @@ -358,7 +282,7 @@ input int RS_BTCUSD_MagicNumber = 123459123; input int RS_BTCUSD_Slippage = 3; input group "=== RSI Scalping NVDA - Pepperstone US ===" -input string RS_NVDA_Symbol = "NVDA.US"; // Try: "NVDA.US", "NASDAQ:NVDA", or "NVDA" +input string RS_NVDA_Symbol = "NVDA.NAS"; // Pepperstone / match tester set (also try NVDA.US) input ENUM_TIMEFRAMES RS_NVDA_TimeFrame = PERIOD_M15; input int RS_NVDA_RSI_Period = 8; input ENUM_APPLIED_PRICE RS_NVDA_RSI_Applied_Price = PRICE_CLOSE; @@ -372,7 +296,7 @@ input int RS_NVDA_MagicNumber = 20003; input int RS_NVDA_Slippage = 3; input group "=== RSI Scalping TSLA - Pepperstone US ===" -input string RS_TSLA_Symbol = "TSLA.US"; // Try: "TSLA.US", "NASDAQ:TSLA", or "TSLA" +input string RS_TSLA_Symbol = "TSLA.NAS"; // Pepperstone / match tester set (also try TSLA.US) input ENUM_TIMEFRAMES RS_TSLA_TimeFrame = PERIOD_H1; input int RS_TSLA_RSI_Period = 14; input ENUM_APPLIED_PRICE RS_TSLA_RSI_Applied_Price = PRICE_CLOSE; @@ -407,6 +331,31 @@ input int RS_ReversalSignsRequired = 2; input double RS_ReversalRsiVelocity = 16.0; input double RS_ReversalBodyAtrMult = 5.1; +input group "=== RSI Scalping APPL — Trailing (cluster-fuck BTC-style defaults) ===" +input bool RS_APPL_UseTrailingStop = true; +input double RS_APPL_TrailDistancePoints = 120.0; +input double RS_APPL_TrailActivationPoints = 0.0; + +input group "=== RSI Scalping BTCUSD — Trailing ===" +input bool RS_BTCUSD_UseTrailingStop = true; +input double RS_BTCUSD_TrailDistancePoints = 120.0; +input double RS_BTCUSD_TrailActivationPoints = 0.0; + +input group "=== RSI Scalping NVDA — Trailing ===" +input bool RS_NVDA_UseTrailingStop = true; +input double RS_NVDA_TrailDistancePoints = 375.0; +input double RS_NVDA_TrailActivationPoints = 75.0; + +input group "=== RSI Scalping TSLA — Trailing ===" +input bool RS_TSLA_UseTrailingStop = true; +input double RS_TSLA_TrailDistancePoints = 900.0; +input double RS_TSLA_TrailActivationPoints = 950.0; + +input group "=== RSI Scalping XAUUSD — Trailing ===" +input bool RS_XAUUSD_UseTrailingStop = true; +input double RS_XAUUSD_TrailDistancePoints = 71.0; +input double RS_XAUUSD_TrailActivationPoints = 41.0; + //+------------------------------------------------------------------+ //| Strategy 11-12: RSI Reversal Asian Strategies | //| Each RSI Reversal Asian strategy trades on its own symbol: | @@ -508,6 +457,108 @@ input ulong RCO_MagicNumber = 20250420; input int RCO_Slippage = 10; input int RCO_MaxSpreadPoints = 28; +input group "=== SimpleTrendline BTCUSD ===" +input string ST_BTC_Symbol = "BTCUSD"; +input ENUM_TIMEFRAMES ST_BTC_SignalTF = PERIOD_H1; +input ENUM_TIMEFRAMES ST_BTC_HigherTF = PERIOD_H4; +input int ST_BTC_MAPeriod = 150; +input ENUM_MA_METHOD ST_BTC_MAMethod = MODE_SMMA; +input ENUM_APPLIED_PRICE ST_BTC_AppliedPrice = PRICE_OPEN; +input int ST_BTC_HTFBarsToScan = 1200; +input double ST_BTC_LineTouchTolerance = 170.0; +input double ST_BTC_BreakBuffer = 90.0; +input ulong ST_BTC_MagicNumber = 26042501; +input bool ST_BTC_DrawTrendline = true; + +input group "=== SimpleTrendline XAUUSD ===" +input string ST_XAU_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES ST_XAU_SignalTF = PERIOD_H1; +input ENUM_TIMEFRAMES ST_XAU_HigherTF = PERIOD_M10; +input int ST_XAU_MAPeriod = 65; +input ENUM_MA_METHOD ST_XAU_MAMethod = MODE_EMA; +input ENUM_APPLIED_PRICE ST_XAU_AppliedPrice = PRICE_OPEN; +input int ST_XAU_HTFBarsToScan = 500; +input double ST_XAU_LineTouchTolerance = 220.0; +input double ST_XAU_BreakBuffer = 110.0; +input ulong ST_XAU_MagicNumber = 26042503; +input bool ST_XAU_DrawTrendline = true; + +input group "=== SimpleTrendline GER40 ===" +input string ST_GER_Symbol = "GER40"; +input ENUM_TIMEFRAMES ST_GER_SignalTF = PERIOD_M15; +input ENUM_TIMEFRAMES ST_GER_HigherTF = PERIOD_M15; +input int ST_GER_MAPeriod = 65; +input ENUM_MA_METHOD ST_GER_MAMethod = MODE_LWMA; +input ENUM_APPLIED_PRICE ST_GER_AppliedPrice = PRICE_OPEN; +input int ST_GER_HTFBarsToScan = 1200; +input double ST_GER_LineTouchTolerance = 100.0; +input double ST_GER_BreakBuffer = 80.0; +input ulong ST_GER_MagicNumber = 26042502; +input bool ST_GER_DrawTrendline = true; + +input group "=== RSI Secret Sauce XAUUSD ===" +input string RSS_Symbol = "XAUUSD"; +input int RSS_MagicNumber = 789012; +input int RSS_Slippage = 10; +input ENUM_TIMEFRAMES RSS_Timeframe = PERIOD_M30; +input int RSS_RSIPeriod = 16; +input double RSS_RSIOverbought = 72.5; +input double RSS_RSIOversold = 32.5; +input int RSS_RSILookback = 60; +input int RSS_PeakBars = 2; +input double RSS_StopLossATR = 2.75; +input double RSS_TakeProfitATR = 5.0; +input int RSS_ATRPeriod = 14; +input bool RSS_UseSwingStopLoss = false; +input int RSS_SwingLookback = 30; +input int RSS_MaxPositions = 1; +input int RSS_MinBarsBetweenTrades = 7; + +//+------------------------------------------------------------------+ +//| Balance scaling: LOT_* = nominal size at ORCH_ReferenceBalance | +//+------------------------------------------------------------------+ +double United_BalanceScaleFactor() +{ + if(!ORCH_ScaleLotsByBalance || ORCH_ReferenceBalance <= 0.0) + return 1.0; + const double money = ORCH_UseEquityInsteadOfBalance + ? AccountInfoDouble(ACCOUNT_EQUITY) + : AccountInfoDouble(ACCOUNT_BALANCE); + double raw = money / ORCH_ReferenceBalance; + if(raw < ORCH_MinBalanceScale) + raw = ORCH_MinBalanceScale; + if(raw > ORCH_MaxBalanceScale) + raw = ORCH_MaxBalanceScale; + return raw; +} + +double United_ScaledLot(const double baseLot) +{ + const double lot = baseLot * United_BalanceScaleFactor(); + return (lot > 0.0 ? lot : 0.0); +} + +void United_RefreshScaledLots() +{ + g_DB_LotSize = United_ScaledLot(LOT_DB_DarvasBox); + g_ES_LotSize = United_ScaledLot(LOT_ES_EMASlopeDistance); + g_RC_LotSize = United_ScaledLot(LOT_RC_RSICrossOver); + g_RM_LotSize = United_ScaledLot(LOT_RM_RSIMidPointHijack); + g_Pos_RS_APPL = United_ScaledLot(LOT_RS_APPL); + g_Pos_RS_BTCUSD = United_ScaledLot(LOT_RS_BTCUSD); + g_Pos_RS_NVDA = United_ScaledLot(LOT_RS_NVDA); + g_Pos_RS_TSLA = United_ScaledLot(LOT_RS_TSLA); + g_Pos_RS_XAUUSD = United_ScaledLot(LOT_RS_XAUUSD); + g_Pos_RRA_EURUSD = United_ScaledLot(LOT_RRA_EURUSD); + g_Pos_RRA_AUDUSD = United_ScaledLot(LOT_RRA_AUDUSD); + g_Pos_SE = United_ScaledLot(LOT_SE_SuperEMA); + g_Pos_RCO = United_ScaledLot(LOT_RCO_RSIConsolidation); + g_Pos_ST_BTCUSD = United_ScaledLot(LOT_ST_BTCUSD); + g_Pos_ST_XAUUSD = United_ScaledLot(LOT_ST_XAUUSD); + g_Pos_ST_GER40 = United_ScaledLot(LOT_ST_GER40); + g_RSS_LotSize = United_ScaledLot(LOT_RSS_SecretSauce); +} + //+------------------------------------------------------------------+ //| Global Variables - DarvasBox | //+------------------------------------------------------------------+ @@ -545,6 +596,7 @@ struct EMASlopeData { bool crossover_detected; datetime trade_open_time; datetime last_bar_time; + datetime es_last_sl_adjust_success_time; }; //+------------------------------------------------------------------+ @@ -606,6 +658,10 @@ RSIScalpingData rsTSLAData; RSIScalpingData rsXAUUSDData; SuperEMAData seData; RSIConsolidationData rcoData; +SimpleTrendlineData stBTCData; +SimpleTrendlineData stXAUData; +SimpleTrendlineData stGERData; +RSISecretSauceOrcData rssData; //+------------------------------------------------------------------+ //| Global Variables - RSI Reversal Asian | @@ -619,22 +675,8 @@ RSIReversalAsianData rraAUDUSDData; int OnInit() { int initResult = INIT_SUCCEEDED; - - UpdateAutoLotScaling(); - // Initialize global lot size variables - g_ES_LotSize = GetAutoScaledLot(LOT_ES_EMASlopeDistance); - g_RC_LotSize = GetAutoScaledLot(LOT_RC_RSICrossOver); - g_RM_LotSize = GetAutoScaledLot(LOT_RM_RSIMidPointHijack); - - if(PrintMinimumBalanceRecommendation) - { - const double minBalance = ComputeRecommendedMinBalance(); - Print("Lot scaling initialized | scale=", DoubleToString(g_LotScaleFinal, 3), - " (growth=", DoubleToString(g_LotScaleGrowth, 3), - ", margin=", DoubleToString(g_LotScaleMargin, 3), ")", - " | recommended minimum balance=", DoubleToString(minBalance, 2)); - } + United_RefreshScaledLots(); // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable if(EnableDarvasBox) @@ -669,6 +711,10 @@ int OnInit() if(EnableRSIScalpingXAUUSD) InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); + if(EnableRSISecretSauce) + if(!InitRSISecretSauce(rssData, RSS_Symbol)) + Print("Warning: RSI Secret Sauce failed to initialize for symbol '", RSS_Symbol, "'"); + if(EnableSuperEMA) if(!InitSuperEMA(seData, SE_Symbol, SE_Timeframe, SE_SlippagePoints, SE_MagicNumber, SE_EmaFast, SE_EmaMid, SE_EmaSlow, SE_EmaTrendBars, @@ -704,6 +750,24 @@ int OnInit() RRA_AUDUSD_UseTakeProfit, RRA_AUDUSD_UseRSIExit, RRA_AUDUSD_RSIExitLevel, RRA_AUDUSD_CloseOutsideSession, RRA_AUDUSD_TimeFrame, RRA_AUDUSD_MagicNumber, RRA_AUDUSD_Slippage)) Print("Warning: RSIReversalAsianAUDUSD strategy failed to initialize for symbol '", RRA_AUDUSD_Symbol, "'"); + + if(EnableSimpleTrendlineBTCUSD) + if(!InitSimpleTrendline(stBTCData, ST_BTC_Symbol, ST_BTC_SignalTF, ST_BTC_HigherTF, ST_BTC_MAPeriod, + ST_BTC_MAMethod, ST_BTC_AppliedPrice, ST_BTC_HTFBarsToScan, + ST_BTC_LineTouchTolerance, ST_BTC_BreakBuffer, ST_BTC_MagicNumber, ST_BTC_DrawTrendline)) + Print("Warning: SimpleTrendlineBTCUSD failed to initialize for symbol '", ST_BTC_Symbol, "'"); + + if(EnableSimpleTrendlineXAUUSD) + if(!InitSimpleTrendline(stXAUData, ST_XAU_Symbol, ST_XAU_SignalTF, ST_XAU_HigherTF, ST_XAU_MAPeriod, + ST_XAU_MAMethod, ST_XAU_AppliedPrice, ST_XAU_HTFBarsToScan, + ST_XAU_LineTouchTolerance, ST_XAU_BreakBuffer, ST_XAU_MagicNumber, ST_XAU_DrawTrendline)) + Print("Warning: SimpleTrendlineXAUUSD failed to initialize for symbol '", ST_XAU_Symbol, "'"); + + if(EnableSimpleTrendlineGER40) + if(!InitSimpleTrendline(stGERData, ST_GER_Symbol, ST_GER_SignalTF, ST_GER_HigherTF, ST_GER_MAPeriod, + ST_GER_MAMethod, ST_GER_AppliedPrice, ST_GER_HTFBarsToScan, + ST_GER_LineTouchTolerance, ST_GER_BreakBuffer, ST_GER_MagicNumber, ST_GER_DrawTrendline)) + Print("Warning: SimpleTrendlineGER40 failed to initialize for symbol '", ST_GER_Symbol, "'"); Print("United EA initialized. Active strategies: ", (EnableDarvasBox ? "DarvasBox " : ""), @@ -715,10 +779,14 @@ int OnInit() (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : ""), + (EnableRSISecretSauce ? "RSISecretSauce " : ""), (EnableSuperEMA ? "SuperEMA " : ""), (EnableRSIConsolidation ? "RSIConsolidation " : ""), (EnableRSIReversalAsianEURUSD ? "RSIReversalAsianEURUSD " : ""), - (EnableRSIReversalAsianAUDUSD ? "RSIReversalAsianAUDUSD " : "")); + (EnableRSIReversalAsianAUDUSD ? "RSIReversalAsianAUDUSD " : ""), + (EnableSimpleTrendlineBTCUSD ? "SimpleTrendlineBTCUSD " : ""), + (EnableSimpleTrendlineXAUUSD ? "SimpleTrendlineXAUUSD " : ""), + (EnableSimpleTrendlineGER40 ? "SimpleTrendlineGER40 " : "")); return initResult; } @@ -755,6 +823,9 @@ void OnDeinit(const int reason) if(EnableRSIScalpingXAUUSD) DeinitRSIScalping(rsXAUUSDData); + if(EnableRSISecretSauce) + DeinitRSISecretSauce(rssData); + if(EnableSuperEMA) DeinitSuperEMA(seData); @@ -766,6 +837,13 @@ void OnDeinit(const int reason) if(EnableRSIReversalAsianAUDUSD) DeinitRSIReversalAsian(rraAUDUSDData); + + if(EnableSimpleTrendlineBTCUSD) + DeinitSimpleTrendline(stBTCData); + if(EnableSimpleTrendlineXAUUSD) + DeinitSimpleTrendline(stXAUData); + if(EnableSimpleTrendlineGER40) + DeinitSimpleTrendline(stGERData); Print("United EA deinitialized. Reason: ", reason); } @@ -775,35 +853,7 @@ void OnDeinit(const int reason) //+------------------------------------------------------------------+ void OnTick() { - UpdateAutoLotScaling(); - g_ES_LotSize = GetAutoScaledLot(LOT_ES_EMASlopeDistance); - g_RC_LotSize = GetAutoScaledLot(LOT_RC_RSICrossOver); - g_RM_LotSize = GetAutoScaledLot(LOT_RM_RSIMidPointHijack); - - if(ScaleLogIntervalSeconds > 0) - { - const datetime now = TimeCurrent(); - if(g_LastScaleLogTime == 0 || (now - g_LastScaleLogTime) >= ScaleLogIntervalSeconds) - { - g_LastScaleLogTime = now; - Print("Lot scale update | final=", DoubleToString(g_LotScaleFinal, 3), - " growth=", DoubleToString(g_LotScaleGrowth, 3), - " margin=", DoubleToString(g_LotScaleMargin, 3), - " ml=", DoubleToString(AccountInfoDouble(ACCOUNT_MARGIN_LEVEL), 1), - " eq=", DoubleToString(AccountInfoDouble(ACCOUNT_EQUITY), 2), - " bal=", DoubleToString(AccountInfoDouble(ACCOUNT_BALANCE), 2)); - } - } - - if(ShowScaleStatusOnChart) - { - const double minBalance = ComputeRecommendedMinBalance(); - Comment("Scale=", DoubleToString(g_LotScaleFinal, 3), - " (growth=", DoubleToString(g_LotScaleGrowth, 3), - ", margin=", DoubleToString(g_LotScaleMargin, 3), ")", - " | Rec.Min.Balance=", DoubleToString(minBalance, 2), - " | MarginLevel=", DoubleToString(AccountInfoDouble(ACCOUNT_MARGIN_LEVEL), 1), "%"); - } + United_RefreshScaledLots(); if(EnableDarvasBox) ProcessDarvasBox(DB_Symbol); @@ -820,49 +870,64 @@ void OnTick() if(EnableRSIScalpingAPPL) ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, - RS_APPL_BarsToWait, GetAutoScaledLot(LOT_RS_APPL), RS_APPL_MagicNumber, + RS_APPL_BarsToWait, g_Pos_RS_APPL, RS_APPL_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_APPL_UseTrailingStop, RS_APPL_TrailDistancePoints, RS_APPL_TrailActivationPoints); if(EnableRSIScalpingBTCUSD) ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, - RS_BTCUSD_BarsToWait, GetAutoScaledLot(LOT_RS_BTCUSD), RS_BTCUSD_MagicNumber, + RS_BTCUSD_BarsToWait, g_Pos_RS_BTCUSD, RS_BTCUSD_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_BTCUSD_UseTrailingStop, RS_BTCUSD_TrailDistancePoints, RS_BTCUSD_TrailActivationPoints); if(EnableRSIScalpingNVDA) ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, - RS_NVDA_BarsToWait, GetAutoScaledLot(LOT_RS_NVDA), RS_NVDA_MagicNumber, + RS_NVDA_BarsToWait, g_Pos_RS_NVDA, RS_NVDA_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_NVDA_UseTrailingStop, RS_NVDA_TrailDistancePoints, RS_NVDA_TrailActivationPoints); if(EnableRSIScalpingTSLA) ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, - RS_TSLA_BarsToWait, GetAutoScaledLot(LOT_RS_TSLA), RS_TSLA_MagicNumber, + RS_TSLA_BarsToWait, g_Pos_RS_TSLA, RS_TSLA_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_TSLA_UseTrailingStop, RS_TSLA_TrailDistancePoints, RS_TSLA_TrailActivationPoints); if(EnableRSIScalpingXAUUSD) ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, - RS_XAUUSD_BarsToWait, GetAutoScaledLot(LOT_RS_XAUUSD), RS_XAUUSD_MagicNumber, + RS_XAUUSD_BarsToWait, g_Pos_RS_XAUUSD, RS_XAUUSD_MagicNumber, RS_UseReversalEscape, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_XAUUSD_UseTrailingStop, RS_XAUUSD_TrailDistancePoints, RS_XAUUSD_TrailActivationPoints); + + if(EnableRSISecretSauce) + ProcessRSISecretSauce(rssData, g_RSS_LotSize); if(EnableRSIReversalAsianEURUSD) - ProcessRSIReversalAsian(rraEURUSDData, GetAutoScaledLot(LOT_RRA_EURUSD)); + ProcessRSIReversalAsian(rraEURUSDData, g_Pos_RRA_EURUSD); if(EnableRSIReversalAsianAUDUSD) - ProcessRSIReversalAsian(rraAUDUSDData, GetAutoScaledLot(LOT_RRA_AUDUSD)); + ProcessRSIReversalAsian(rraAUDUSDData, g_Pos_RRA_AUDUSD); if(EnableSuperEMA) - ProcessSuperEMA(seData, GetAutoScaledLot(LOT_SE_SuperEMA)); + ProcessSuperEMA(seData, g_Pos_SE); if(EnableRSIConsolidation) - ProcessRSIConsolidation(rcoData, GetAutoScaledLot(LOT_RCO_RSIConsolidation)); + ProcessRSIConsolidation(rcoData, g_Pos_RCO); + + if(EnableSimpleTrendlineBTCUSD) + ProcessSimpleTrendline(stBTCData, g_Pos_ST_BTCUSD); + if(EnableSimpleTrendlineXAUUSD) + ProcessSimpleTrendline(stXAUData, g_Pos_ST_XAUUSD); + if(EnableSimpleTrendlineGER40) + ProcessSimpleTrendline(stGERData, g_Pos_ST_GER40); } //+------------------------------------------------------------------+ diff --git a/frontline/cluster-0/_united-V2/report.png b/frontline/cluster-fuck/_united-V2/report.png similarity index 100% rename from frontline/cluster-0/_united-V2/report.png rename to frontline/cluster-fuck/_united-V2/report.png diff --git a/frontline/united_template/_united-V2_exponential/self-evaluate.mq5 b/frontline/cluster-fuck/_united-V2/self-evaluate.mq5 similarity index 74% rename from frontline/united_template/_united-V2_exponential/self-evaluate.mq5 rename to frontline/cluster-fuck/_united-V2/self-evaluate.mq5 index b9d92e9..971c874 100644 --- a/frontline/united_template/_united-V2_exponential/self-evaluate.mq5 +++ b/frontline/cluster-fuck/_united-V2/self-evaluate.mq5 @@ -13,7 +13,6 @@ #include #include #include "MagicNumberHelpers.mqh" -#include "PerformanceEvaluator.mqh" //+------------------------------------------------------------------+ //| Strategy Enable/Disable Switches | @@ -62,7 +61,11 @@ input int ES_EMA_Periode = 46; input double ES_PreisSchwelle = 600.0; input double ES_SteigungSchwelle = 80.0; input int ES_ÜberwachungTimeout = 800; -input double ES_TrailingStop = 250.0; +input double ES_TrailingStop = 370.0; +input bool ES_UseTrailingStop = true; +input double ES_TrailingActivationPips = 0.0; +input bool ES_UseStaleStopLossExit = false; +input int ES_StaleStopLossSeconds = 33800; input double ES_LotGröße = 0.03; input int ES_MagicNumber = 12350; input bool ES_UseSpreadAdjustment = true; @@ -71,6 +74,11 @@ input bool ES_UseBarData = true; input int ES_MaxTradesPerCrossover = 9; input int ES_ProfitCheckBars = 18; input bool ES_CloseUnprofitableTrades = true; +input bool ES_UseWeeklyADXFilter = true; +input int ES_WeeklyADXPeriod = 15; +input double ES_WeeklyADXMin = 40.0; +input int ES_WeeklyADXBarShift = 2; +input bool ES_WeeklyADXUseDirection = true; //+------------------------------------------------------------------+ //| Strategy 3: RSICrossOverReversalXAUUSD | @@ -252,6 +260,44 @@ input double RS_XAUUSD_LotSize = 0.1; input int RS_XAUUSD_MagicNumber = 129102315; input int RS_XAUUSD_Slippage = 3; +input group "=== RSI Scalping Reversal escape (XAUUSD) ===" +input bool RS_UseReversalEscape = false; +input int RS_ReversalATRPeriod = 14; +input double RS_ReversalAdverseAtrMult = 5.25; +input int RS_ReversalSignsRequired = 2; +input double RS_ReversalRsiVelocity = 16.0; +input double RS_ReversalBodyAtrMult = 5.1; + +input group "=== RSI Scalping APPL — Trailing ===" +input bool RS_APPL_UseTrailingStop = true; +input double RS_APPL_TrailDistancePoints = 120.0; +input double RS_APPL_TrailActivationPoints = 0.0; + +input group "=== RSI Scalping BTCUSD — Trailing ===" +input bool RS_BTCUSD_UseTrailingStop = true; +input double RS_BTCUSD_TrailDistancePoints = 120.0; +input double RS_BTCUSD_TrailActivationPoints = 0.0; + +input group "=== RSI Scalping MSFT — Trailing ===" +input bool RS_MSFT_UseTrailingStop = true; +input double RS_MSFT_TrailDistancePoints = 375.0; +input double RS_MSFT_TrailActivationPoints = 75.0; + +input group "=== RSI Scalping NVDA — Trailing ===" +input bool RS_NVDA_UseTrailingStop = true; +input double RS_NVDA_TrailDistancePoints = 375.0; +input double RS_NVDA_TrailActivationPoints = 75.0; + +input group "=== RSI Scalping TSLA — Trailing ===" +input bool RS_TSLA_UseTrailingStop = true; +input double RS_TSLA_TrailDistancePoints = 900.0; +input double RS_TSLA_TrailActivationPoints = 950.0; + +input group "=== RSI Scalping XAUUSD — Trailing ===" +input bool RS_XAUUSD_UseTrailingStop = true; +input double RS_XAUUSD_TrailDistancePoints = 71.0; +input double RS_XAUUSD_TrailActivationPoints = 41.0; + //+------------------------------------------------------------------+ //| Global Variables - DarvasBox | //+------------------------------------------------------------------+ @@ -289,6 +335,7 @@ struct EMASlopeData { bool crossover_detected; datetime trade_open_time; datetime last_bar_time; + datetime es_last_sl_adjust_success_time; }; //+------------------------------------------------------------------+ @@ -371,19 +418,18 @@ RSIScalpingData rsTSLAData; RSIScalpingData rsXAUUSDData; //+------------------------------------------------------------------+ -//| Global Variables for Dynamic Lot Sizes | +//| Global Variables for lot sizes (from inputs below) | //+------------------------------------------------------------------+ -// All strategies start with minimum lot size for safety (will be adjusted by performance evaluator) -double g_DB_LotSize = 0.01; // DarvasBox uses fixed lot size -double g_ES_LotSize = 0.01; // EMA Slope Distance - start with minimum -double g_RC_LotSize = 0.01; // RSI CrossOver Reversal - start with minimum -double g_RM_LotSize = 0.01; // RSI MidPoint Hijack - start with minimum -double g_RS_APPL_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_BTCUSD_LotSize = 0.01; // Crypto - start with forex minimum (0.01) -double g_RS_MSFT_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_NVDA_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_TSLA_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) +double g_DB_LotSize = 0.01; +double g_ES_LotSize; +double g_RC_LotSize; +double g_RM_LotSize; +double g_RS_APPL_LotSize; +double g_RS_BTCUSD_LotSize; +double g_RS_MSFT_LotSize; +double g_RS_NVDA_LotSize; +double g_RS_TSLA_LotSize; +double g_RS_XAUUSD_LotSize; //+------------------------------------------------------------------+ //| Expert initialization function | @@ -391,148 +437,52 @@ double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) int OnInit() { int initResult = INIT_SUCCEEDED; - - // Initialize Performance Evaluator - InitPerformanceTracking(); - - // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + + g_ES_LotSize = ES_LotGröße; + g_RC_LotSize = RC_lotSize; + g_RM_LotSize = RM_InpLotSize; + g_RS_APPL_LotSize = RS_APPL_LotSize; + g_RS_BTCUSD_LotSize = RS_BTCUSD_LotSize; + g_RS_MSFT_LotSize = RS_MSFT_LotSize; + g_RS_NVDA_LotSize = RS_NVDA_LotSize; + g_RS_TSLA_LotSize = RS_TSLA_LotSize; + g_RS_XAUUSD_LotSize = RS_XAUUSD_LotSize; + if(EnableDarvasBox) - { if(!InitDarvasBox(DB_Symbol)) Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); - else - RegisterStrategy("DarvasBox", DB_MagicNumber, 0.01, DB_Symbol); // Fixed lot size - } - + if(EnableEMASlopeDistance) - { if(!InitEMASlopeDistance(ES_Symbol)) Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); - else - { - RegisterStrategy("EMASlopeDistance", ES_MagicNumber, ES_LotGröße, ES_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(ES_Symbol); - g_ES_LotSize = minLot; - } - } - + if(EnableRSICrossOverReversal) - { if(!InitRSICrossOverReversal(RC_Symbol)) Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); - else - { - RegisterStrategy("RSICrossOverReversal", RC_MagicNumber, RC_lotSize, RC_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RC_Symbol); - g_RC_LotSize = minLot; - } - } - + if(EnableRSIMidPointHijack) - { if(!InitRSIMidPointHijack(RM_Symbol)) Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); - else - { - RegisterStrategy("RSIMidPointHijack", RM_InpMagicNumberRSIFollow, RM_InpLotSize, RM_Symbol); - RegisterStrategy("RSIMidPointHijack_Reverse", RM_InpMagicNumberRSIReverse, RM_InpLotSize, RM_Symbol); - RegisterStrategy("RSIMidPointHijack_EMACross", RM_InpMagicNumberEMACross, RM_InpLotSize, RM_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RM_Symbol); - g_RM_LotSize = minLot; - } - } - - // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) - { InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); - RegisterStrategy("RSIScalpingAPPL", RS_APPL_MagicNumber, RS_APPL_LotSize, RS_APPL_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_APPL_Symbol); - g_RS_APPL_LotSize = minLot; - } - + if(EnableRSIScalpingBTCUSD) - { InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); - RegisterStrategy("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber, RS_BTCUSD_LotSize, RS_BTCUSD_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_BTCUSD_Symbol); - g_RS_BTCUSD_LotSize = minLot; - } - + if(EnableRSIScalpingMSFT) - { InitRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, RS_MSFT_MagicNumber, RS_MSFT_Slippage); - RegisterStrategy("RSIScalpingMSFT", RS_MSFT_MagicNumber, RS_MSFT_LotSize, RS_MSFT_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_MSFT_Symbol); - g_RS_MSFT_LotSize = minLot; - } - + if(EnableRSIScalpingNVDA) - { InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); - RegisterStrategy("RSIScalpingNVDA", RS_NVDA_MagicNumber, RS_NVDA_LotSize, RS_NVDA_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_NVDA_Symbol); - g_RS_NVDA_LotSize = minLot; - } - + if(EnableRSIScalpingTSLA) - { InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); - RegisterStrategy("RSIScalpingTSLA", RS_TSLA_MagicNumber, RS_TSLA_LotSize, RS_TSLA_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_TSLA_Symbol); - g_RS_TSLA_LotSize = minLot; - } - + if(EnableRSIScalpingXAUUSD) - { InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); - RegisterStrategy("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber, RS_XAUUSD_LotSize, RS_XAUUSD_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_XAUUSD_Symbol); - g_RS_XAUUSD_LotSize = minLot; - } - - // Load adjusted lot sizes from performance evaluator - if(PE_EnableAutoAdjustment) - { - double adjustedLot; - adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); - if(adjustedLot > 0) g_ES_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); - if(adjustedLot > 0) g_RC_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); - if(adjustedLot > 0) g_RM_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); - if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); - if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); - if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); - if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); - if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); - if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; - } - - Print("United EA initialized. Active strategies: ", + + Print("United EA (self-evaluate build) initialized. Active strategies: ", (EnableDarvasBox ? "DarvasBox " : ""), (EnableEMASlopeDistance ? "EMASlope " : ""), (EnableRSICrossOverReversal ? "RSICrossOver " : ""), @@ -543,10 +493,7 @@ int OnInit() (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : "")); - - if(PE_EnableLogging) - Print(GetPerformanceSummary()); - + return initResult; } @@ -593,41 +540,6 @@ void OnDeinit(const int reason) //+------------------------------------------------------------------+ void OnTick() { - // Process performance evaluation (checks for quarter end and adjusts lot sizes) - ProcessPerformanceEvaluation(); - - // Update lot sizes from performance evaluator if auto-adjustment is enabled - if(PE_EnableAutoAdjustment) - { - double adjustedLot; - adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); - if(adjustedLot > 0) g_ES_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); - if(adjustedLot > 0) g_RC_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); - if(adjustedLot > 0) g_RM_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); - if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); - if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); - if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); - if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); - if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); - if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; - } - if(EnableDarvasBox) ProcessDarvasBox(DB_Symbol); @@ -643,32 +555,50 @@ void OnTick() if(EnableRSIScalpingAPPL) ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, - RS_APPL_BarsToWait, g_RS_APPL_LotSize, RS_APPL_MagicNumber); + RS_APPL_BarsToWait, g_RS_APPL_LotSize, RS_APPL_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_APPL_UseTrailingStop, RS_APPL_TrailDistancePoints, RS_APPL_TrailActivationPoints); if(EnableRSIScalpingBTCUSD) ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, - RS_BTCUSD_BarsToWait, g_RS_BTCUSD_LotSize, RS_BTCUSD_MagicNumber); + RS_BTCUSD_BarsToWait, g_RS_BTCUSD_LotSize, RS_BTCUSD_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_BTCUSD_UseTrailingStop, RS_BTCUSD_TrailDistancePoints, RS_BTCUSD_TrailActivationPoints); if(EnableRSIScalpingMSFT) ProcessRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, RS_MSFT_RSI_Overbought, RS_MSFT_RSI_Oversold, RS_MSFT_RSI_Target_Buy, RS_MSFT_RSI_Target_Sell, - RS_MSFT_BarsToWait, g_RS_MSFT_LotSize, RS_MSFT_MagicNumber); + RS_MSFT_BarsToWait, g_RS_MSFT_LotSize, RS_MSFT_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_MSFT_UseTrailingStop, RS_MSFT_TrailDistancePoints, RS_MSFT_TrailActivationPoints); if(EnableRSIScalpingNVDA) ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, - RS_NVDA_BarsToWait, g_RS_NVDA_LotSize, RS_NVDA_MagicNumber); + RS_NVDA_BarsToWait, g_RS_NVDA_LotSize, RS_NVDA_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_NVDA_UseTrailingStop, RS_NVDA_TrailDistancePoints, RS_NVDA_TrailActivationPoints); if(EnableRSIScalpingTSLA) ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, - RS_TSLA_BarsToWait, g_RS_TSLA_LotSize, RS_TSLA_MagicNumber); + RS_TSLA_BarsToWait, g_RS_TSLA_LotSize, RS_TSLA_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_TSLA_UseTrailingStop, RS_TSLA_TrailDistancePoints, RS_TSLA_TrailActivationPoints); if(EnableRSIScalpingXAUUSD) ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, - RS_XAUUSD_BarsToWait, g_RS_XAUUSD_LotSize, RS_XAUUSD_MagicNumber); + RS_XAUUSD_BarsToWait, g_RS_XAUUSD_LotSize, RS_XAUUSD_MagicNumber, + RS_UseReversalEscape, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_XAUUSD_UseTrailingStop, RS_XAUUSD_TrailDistancePoints, RS_XAUUSD_TrailActivationPoints); } //+------------------------------------------------------------------+ diff --git a/frontline/united_template/_united-V2_exponential/MagicNumberHelpers.mqh b/frontline/cluster-gold/MagicNumberHelpers.mqh similarity index 73% rename from frontline/united_template/_united-V2_exponential/MagicNumberHelpers.mqh rename to frontline/cluster-gold/MagicNumberHelpers.mqh index dc1fa31..0423cc4 100644 --- a/frontline/united_template/_united-V2_exponential/MagicNumberHelpers.mqh +++ b/frontline/cluster-gold/MagicNumberHelpers.mqh @@ -12,29 +12,18 @@ //+------------------------------------------------------------------+ bool PositionSelectByMagic(string symbol, ulong magic_number) { - // First try to find position by symbol - if(!PositionSelect(symbol)) - return false; - - // Check if the selected position has the correct magic number - if(PositionGetInteger(POSITION_MAGIC) != magic_number) + for(int i = PositionsTotal() - 1; i >= 0; i--) { - // Position exists but wrong magic number, search all positions - for(int i = PositionsTotal() - 1; i >= 0; i--) - { - if(PositionGetTicket(i) > 0) - { - if(PositionGetString(POSITION_SYMBOL) == symbol && - PositionGetInteger(POSITION_MAGIC) == magic_number) - { - return true; - } - } - } - return false; + ulong ticket = PositionGetTicket(i); + if(ticket == 0) + continue; + if(!PositionSelectByTicket(ticket)) + continue; + if(PositionGetString(POSITION_SYMBOL) == symbol && + (ulong)PositionGetInteger(POSITION_MAGIC) == magic_number) + return true; } - - return true; + return false; } //+------------------------------------------------------------------+ @@ -76,14 +65,13 @@ ulong GetPositionTicketByMagic(string symbol, ulong magic_number) for(int i = PositionsTotal() - 1; i >= 0; i--) { ulong ticket = PositionGetTicket(i); - if(ticket > 0) - { - if(PositionGetString(POSITION_SYMBOL) == symbol && - PositionGetInteger(POSITION_MAGIC) == magic_number) - { - return ticket; - } - } + if(ticket == 0) + continue; + if(!PositionSelectByTicket(ticket)) + continue; + if(PositionGetString(POSITION_SYMBOL) == symbol && + (ulong)PositionGetInteger(POSITION_MAGIC) == magic_number) + return ticket; } return 0; } @@ -144,16 +132,42 @@ int CountPositionsByMagic(string symbol, ulong magic_number) for(int i = PositionsTotal() - 1; i >= 0; i--) { ulong ticket = PositionGetTicket(i); - if(ticket > 0) - { - if(PositionGetString(POSITION_SYMBOL) == symbol && - PositionGetInteger(POSITION_MAGIC) == magic_number) - { - count++; - } - } + if(ticket == 0) + continue; + if(!PositionSelectByTicket(ticket)) + continue; + if(PositionGetString(POSITION_SYMBOL) == symbol && + (ulong)PositionGetInteger(POSITION_MAGIC) == magic_number) + count++; } return count; } //+------------------------------------------------------------------+ +//| Align volume to SYMBOL_VOLUME_STEP / min / max (avoids Invalid volume) | +//+------------------------------------------------------------------+ +double United_NormalizeVolume(const string symbol, double volume) +{ + double minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); + double maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); + double lotStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); + if(lotStep <= 0.0) + lotStep = 0.01; + + double v = MathFloor(volume / lotStep) * lotStep; + + if(v < minLot) + v = minLot; + if(v > maxLot) + v = maxLot; + + int digits = (int)MathCeil(-MathLog10(lotStep)); + if(digits < 0) + digits = 0; + if(digits > 8) + digits = 8; + + return NormalizeDouble(v, digits); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/united_template/_united-V2_exponential/STRATEGY_CONFIGURATION.md b/frontline/cluster-gold/STRATEGY_CONFIGURATION.md similarity index 100% rename from frontline/united_template/_united-V2_exponential/STRATEGY_CONFIGURATION.md rename to frontline/cluster-gold/STRATEGY_CONFIGURATION.md diff --git a/frontline/cluster-0/_united-V2/Strategies/DarvasBoxStrategy.mqh b/frontline/cluster-gold/Strategies/DarvasBoxStrategy.mqh similarity index 89% rename from frontline/cluster-0/_united-V2/Strategies/DarvasBoxStrategy.mqh rename to frontline/cluster-gold/Strategies/DarvasBoxStrategy.mqh index 6c2d7d5..989dc21 100644 --- a/frontline/cluster-0/_united-V2/Strategies/DarvasBoxStrategy.mqh +++ b/frontline/cluster-gold/Strategies/DarvasBoxStrategy.mqh @@ -1,6 +1,18 @@ //+------------------------------------------------------------------+ //| DarvasBoxStrategy.mqh | //+------------------------------------------------------------------+ +// MQL5: no #if — use #ifdef only (no defined() / || in one #if) +#ifdef UNITED_V2_DYNAMIC_LOTS +extern double g_DB_LotSize; +#define DARVAS_TRADE_LOT (g_DB_LotSize) +#else +#ifdef CLUSTER0_ORCHESTRATOR +extern double g_DB_LotSize; +#define DARVAS_TRADE_LOT (g_DB_LotSize) +#else +#define DARVAS_TRADE_LOT 0.01 +#endif +#endif bool InitDarvasBox(string symbol) { @@ -24,7 +36,9 @@ bool InitDarvasBox(string symbol) dbData.minStopLevel = SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL) * dbData.point; dbData.maHandle = iMA(symbol, DB_TrendTimeframe, DB_MA_Period, 0, DB_MA_Method, DB_MA_Price); - dbData.volumeHandle = iVolumes(symbol, PERIOD_CURRENT, VOLUME_TICK); + // Same TF as box highs/lows (H1 loop in CalculateDarvasBox). PERIOD_CURRENT breaks when United EA + // runs on a chart timeframe other than H1 (volume/breakout no longer match the box). + dbData.volumeHandle = iVolumes(symbol, PERIOD_H1, VOLUME_TICK); if(dbData.maHandle == INVALID_HANDLE || dbData.volumeHandle == INVALID_HANDLE) { @@ -133,6 +147,9 @@ bool ValidateStopLevels(double price, double &sl, double &tp, ENUM_ORDER_TYPE or bool IsTrendFavorable(ENUM_ORDER_TYPE orderType) { + if(!DB_UseTrendFilter) + return true; + double ma[]; ArraySetAsSeries(ma, true); @@ -150,6 +167,9 @@ bool IsTrendFavorable(ENUM_ORDER_TYPE orderType) bool CheckVolumeConditions() { + if(!DB_UseVolumeSpikeFilter) + return true; + double volumes[]; ArraySetAsSeries(volumes, true); @@ -162,8 +182,10 @@ bool CheckVolumeConditions() volumeMA /= DB_VolumeMA_Period; double currentVolume = volumes[0]; + if(volumeMA <= 0.0) + return (currentVolume > 0.0); + double volumeRatio = currentVolume / volumeMA; - return (volumeRatio > DB_VolumeThresholdMultiplier); } @@ -191,13 +213,19 @@ bool PlaceOrder(ENUM_ORDER_TYPE orderType, double price, double sl, double tp) } bool result = false; + const double lot = United_NormalizeVolume(dbData.symbol, DARVAS_TRADE_LOT); + if(lot <= 0.0) + { + Print("DarvasBox: Order rejected - invalid lot after normalize (raw=", DARVAS_TRADE_LOT, ")"); + return false; + } // Use market price (0) instead of explicit price - this ensures market order execution // In backtesting, explicit price might fail if price has moved if(orderType == ORDER_TYPE_BUY) - result = dbData.trade.Buy(0.01, dbData.symbol, 0, sl, tp, "Darvas Box Breakout"); + result = dbData.trade.Buy(lot, dbData.symbol, 0, sl, tp, "Darvas Box Breakout"); else - result = dbData.trade.Sell(0.01, dbData.symbol, 0, sl, tp, "Darvas Box Breakdown"); + result = dbData.trade.Sell(lot, dbData.symbol, 0, sl, tp, "Darvas Box Breakdown"); // Always log errors, success only if logging enabled if(result) @@ -242,7 +270,7 @@ void ProcessDarvasBox(string symbol) if(dbData.boxFormed) { double currentPrice = SymbolInfoDouble(dbData.symbol, SYMBOL_ASK); - long currentVolume_long = iVolume(dbData.symbol, PERIOD_CURRENT, 0); + long currentVolume_long = iVolume(dbData.symbol, PERIOD_H1, 0); double currentVolume = (double)currentVolume_long; if(DB_EnableLogging) diff --git a/frontline/united_template/_united-V2_exponential/Strategies/EMASlopeDistanceStrategy.mqh b/frontline/cluster-gold/Strategies/EMASlopeDistanceStrategy.mqh similarity index 73% rename from frontline/united_template/_united-V2_exponential/Strategies/EMASlopeDistanceStrategy.mqh rename to frontline/cluster-gold/Strategies/EMASlopeDistanceStrategy.mqh index 70e4502..2ddbeeb 100644 --- a/frontline/united_template/_united-V2_exponential/Strategies/EMASlopeDistanceStrategy.mqh +++ b/frontline/cluster-gold/Strategies/EMASlopeDistanceStrategy.mqh @@ -14,6 +14,7 @@ bool InitEMASlopeDistance(string symbol) esData.crossover_detected = false; esData.trade_open_time = 0; esData.last_bar_time = 0; + esData.es_last_sl_adjust_success_time = 0; // Check if symbol exists if(!SymbolSelect(symbol, true)) @@ -48,6 +49,64 @@ void DeinitEMASlopeDistance() IndicatorRelease(esData.ema_handle); } +bool ES_IsWeeklyADXTrendFavorable(const ENUM_ORDER_TYPE order_type) +{ + if(!ES_UseWeeklyADXFilter) + return true; + + int adxShift = ES_WeeklyADXBarShift; + if(adxShift < 0) + adxShift = 0; + + int adx_handle = iADX(esData.symbol, PERIOD_W1, ES_WeeklyADXPeriod); + if(adx_handle == INVALID_HANDLE) + return false; + + double adx_buf[], plus_di_buf[], minus_di_buf[]; + ArraySetAsSeries(adx_buf, true); + ArraySetAsSeries(plus_di_buf, true); + ArraySetAsSeries(minus_di_buf, true); + + bool ok_adx = (CopyBuffer(adx_handle, 0, adxShift, 1, adx_buf) > 0); + bool ok_plus = (CopyBuffer(adx_handle, 1, adxShift, 1, plus_di_buf) > 0); + bool ok_minus = (CopyBuffer(adx_handle, 2, adxShift, 1, minus_di_buf) > 0); + IndicatorRelease(adx_handle); + + if(!ok_adx || !ok_plus || !ok_minus) + return false; + + double adx_value = adx_buf[0]; + double plus_di = plus_di_buf[0]; + double minus_di = minus_di_buf[0]; + + bool strength_ok = (adx_value >= ES_WeeklyADXMin); + bool direction_ok = true; + if(ES_WeeklyADXUseDirection) + { + if(order_type == ORDER_TYPE_BUY) + direction_ok = (plus_di > minus_di); + else + direction_ok = (minus_di > plus_di); + } + return strength_ok && direction_ok; +} + +bool ES_TrailingActivationReached(const double position_profit, const ENUM_POSITION_TYPE position_type, + const double pips_multiplier) +{ + if(ES_TrailingActivationPips <= 0.0) + return (position_profit > 0.0); + + const double open_px = PositionGetDouble(POSITION_PRICE_OPEN); + if(position_type == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(esData.symbol, SYMBOL_BID); + return ((bid - open_px) / SymbolInfoDouble(esData.symbol, SYMBOL_POINT) / pips_multiplier >= ES_TrailingActivationPips); + } + const double ask = SymbolInfoDouble(esData.symbol, SYMBOL_ASK); + return ((open_px - ask) / SymbolInfoDouble(esData.symbol, SYMBOL_POINT) / pips_multiplier >= ES_TrailingActivationPips); +} + //+------------------------------------------------------------------+ //| EMA Berechnung (EMA Calculation) | //+------------------------------------------------------------------+ @@ -172,6 +231,11 @@ void PrüfeTrigger() if(bullish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) { + if(!ES_IsWeeklyADXTrendFavorable(ORDER_TYPE_BUY)) + { + Print("TRACE: Weekly ADX blockiert BUY-Entry"); + return; + } Print("TRACE: Versuche KAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); if(PlatziereTrade(ORDER_TYPE_BUY)) { @@ -180,6 +244,11 @@ void PrüfeTrigger() } else if(bearish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) { + if(!ES_IsWeeklyADXTrendFavorable(ORDER_TYPE_SELL)) + { + Print("TRACE: Weekly ADX blockiert SELL-Entry"); + return; + } Print("TRACE: Versuche VERKAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); if(PlatziereTrade(ORDER_TYPE_SELL)) { @@ -199,17 +268,23 @@ void PrüfeTrigger() bool PlatziereTrade(ENUM_ORDER_TYPE order_type) { Print("TRACE: Versuche Trade zu platzieren - Typ: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF"); - Print("TRACE: Lot: ", g_ES_LotSize); - + const double lot = United_NormalizeVolume(esData.symbol, g_ES_LotSize); + Print("TRACE: Lot (raw): ", g_ES_LotSize, " normalized: ", lot); + if(lot <= 0.0) + { + Print("TRACE: Abbruch — Lot nach Normalisierung ungültig"); + return false; + } + bool success = false; if(order_type == ORDER_TYPE_BUY) { - success = esData.trade.Buy(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + success = esData.trade.Buy(lot, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); } else { - success = esData.trade.Sell(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + success = esData.trade.Sell(lot, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); } if(success) @@ -219,6 +294,7 @@ bool PlatziereTrade(ENUM_ORDER_TYPE order_type) //--- Trade-Öffnungszeit speichern (Save trade opening time) esData.trade_open_time = iTime(esData.symbol, ES_Timeframe, 0); + esData.es_last_sl_adjust_success_time = 0; Print("TRACE: Trade-Öffnungszeit: ", TimeToString(esData.trade_open_time)); //--- Überwachung zurücksetzen (Reset monitoring) @@ -244,41 +320,51 @@ void VerwalteTrades() { if(!PositionSelectByMagic(esData.symbol, (ulong)ES_MagicNumber)) return; - + + if(ES_UseStaleStopLossExit && ES_StaleStopLossSeconds > 0) + { + const datetime stale_ref = (esData.es_last_sl_adjust_success_time > 0) + ? esData.es_last_sl_adjust_success_time + : (datetime)PositionGetInteger(POSITION_TIME); + if(TimeCurrent() - stale_ref >= ES_StaleStopLossSeconds) + { + SchließePosition("Stale stop loss - keine SL-Anpassung"); + return; + } + } + double position_profit = PositionGetDouble(POSITION_PROFIT); - double position_open_price = PositionGetDouble(POSITION_PRICE_OPEN); - double current_price = PositionGetDouble(POSITION_PRICE_CURRENT); ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); - + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); double pips_multiplier = (digits == 3 || digits == 5) ? 10.0 : 1.0; - double trailing_stop_pips = ES_TrailingStop; - - //--- Gleitender Stop (Trailing Stop) - nur wenn Position im Profit ist - if(position_profit > 0) // Only apply trailing stop when in profit + const double trail_dist = ES_TrailingStop * point * pips_multiplier; + const long stops_level = SymbolInfoInteger(esData.symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + if(ES_UseTrailingStop && ES_TrailingStop > 0.0 && ES_TrailingActivationReached(position_profit, position_type, pips_multiplier)) { if(position_type == POSITION_TYPE_BUY) { - double new_stop_loss = current_price - (trailing_stop_pips * point * pips_multiplier); - double current_stop_loss = PositionGetDouble(POSITION_SL); - - // Only move stop loss if new stop is higher than current stop - if(new_stop_loss > current_stop_loss) - { + const double bid = SymbolInfoDouble(esData.symbol, SYMBOL_BID); + double new_stop_loss = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_stop_loss < min_dist) + new_stop_loss = NormalizeDouble(bid - min_dist, digits); + const double current_stop_loss = PositionGetDouble(POSITION_SL); + if(new_stop_loss < bid && new_stop_loss > 0.0 && new_stop_loss > current_stop_loss) ÄndereStopLoss(new_stop_loss); - } } else if(position_type == POSITION_TYPE_SELL) { - double new_stop_loss = current_price + (trailing_stop_pips * point * pips_multiplier); - double current_stop_loss = PositionGetDouble(POSITION_SL); - - // Only move stop loss if new stop is lower than current stop - if(new_stop_loss < current_stop_loss || current_stop_loss == 0) - { + const double ask = SymbolInfoDouble(esData.symbol, SYMBOL_ASK); + double new_stop_loss = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_stop_loss - ask < min_dist) + new_stop_loss = NormalizeDouble(ask + min_dist, digits); + const double current_stop_loss = PositionGetDouble(POSITION_SL); + if(new_stop_loss > ask && new_stop_loss > 0.0 && + (new_stop_loss < current_stop_loss || current_stop_loss == 0.0)) ÄndereStopLoss(new_stop_loss); - } } } @@ -366,6 +452,7 @@ void ÄndereStopLoss(double new_stop_loss) if(success) { + esData.es_last_sl_adjust_success_time = TimeCurrent(); Print("TRACE: Stop Loss erfolgreich geändert auf: ", new_stop_loss); } else @@ -386,6 +473,7 @@ void SchließePosition(string reason = "Unbekannt") if(success) { + esData.es_last_sl_adjust_success_time = 0; Print("TRACE: Position erfolgreich geschlossen - Grund: ", reason); } else @@ -400,40 +488,34 @@ void SchließePosition(string reason = "Unbekannt") //+------------------------------------------------------------------+ void ProcessEMASlopeDistance(string symbol) { - // Skip if not initialized (symbol not available) if(!esData.isInitialized) return; - - esData.symbol = symbol; // Update symbol in case it changed - - //--- Bar-Daten oder Tick-Daten verwenden (Use bar data or tick data) - if(ES_UseBarData) - { - //--- Nur bei neuen Bars ausführen (Only execute on new bars) - datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); - - if(current_bar_time == esData.last_bar_time) - { - return; // Kein neuer Bar, nichts tun - } - + + esData.symbol = symbol; + + const datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); + const bool new_bar = (current_bar_time != esData.last_bar_time); + const bool has_position = PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber); + + if(ES_UseBarData && !new_bar && !has_position) + return; + + if(new_bar) esData.last_bar_time = current_bar_time; - } - - //--- EMA Werte berechnen (Calculate EMA values) + BerechneEMA(); - - //--- Debug: Aktuelle Werte ausgeben (Debug: Output current values) - if(ArraySize(esData.ema_array) > 0) + + const bool run_signals = (!ES_UseBarData || new_bar); + + if(run_signals && ArraySize(esData.ema_array) > 0) { double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); double ema_aktuell = esData.ema_array[0]; double ema_vorher = esData.ema_array[1]; - int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / point; double steigung = (ema_aktuell - ema_vorher) / point; - + if(ES_UseBarData) { Print("=== DEBUG INFO (Neuer Bar) ==="); @@ -443,7 +525,7 @@ void ProcessEMASlopeDistance(string symbol) { Print("=== DEBUG INFO (Tick) ==="); } - + Print("Aktueller Close: ", aktueller_close); Print("EMA: ", ema_aktuell); Print("Preis-Abstand: ", preis_abstand, " Pips"); @@ -455,41 +537,39 @@ void ProcessEMASlopeDistance(string symbol) Print("Trades im aktuellen Crossover: ", esData.trades_in_current_crossover, "/", ES_MaxTradesPerCrossover); Print("=================="); } - - //--- Überwachung prüfen (Check monitoring) - if(esData.überwachung_aktiv) + + if(run_signals) { - if(ES_UseBarData) + if(esData.überwachung_aktiv) { - // Bar-basierte Überwachungszeit - int bars_since_monitoring = iBarShift(esData.symbol, ES_Timeframe, esData.letzte_überwachung_zeit); - int timeout_bars = (int)(ES_ÜberwachungTimeout / PeriodSeconds(ES_Timeframe)); - - if(bars_since_monitoring > timeout_bars) + if(ES_UseBarData) { - esData.überwachung_aktiv = false; - esData.preis_trigger_aktiv = false; - esData.steigung_trigger_aktiv = false; - Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); - } - } - else - { - // Tick-basierte Überwachungszeit - if(TimeCurrent() - esData.letzte_überwachung_zeit > ES_ÜberwachungTimeout) - { - esData.überwachung_aktiv = false; - esData.preis_trigger_aktiv = false; - esData.steigung_trigger_aktiv = false; - Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + int bars_since_monitoring = iBarShift(esData.symbol, ES_Timeframe, esData.letzte_überwachung_zeit); + int timeout_bars = (int)(ES_ÜberwachungTimeout / PeriodSeconds(ES_Timeframe)); + + if(bars_since_monitoring > timeout_bars) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); + } + } + else + { + if(TimeCurrent() - esData.letzte_überwachung_zeit > ES_ÜberwachungTimeout) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + } } } + + PrüfeTrigger(); } - - //--- Trigger-Bedingungen prüfen (Check trigger conditions) - PrüfeTrigger(); - - //--- Trade Management (Trade management) + VerwalteTrades(); } diff --git a/frontline/united_template/_united-V2_exponential/Strategies/RSIConsolidationStrategy.mqh b/frontline/cluster-gold/Strategies/RSIConsolidationStrategy.mqh similarity index 100% rename from frontline/united_template/_united-V2_exponential/Strategies/RSIConsolidationStrategy.mqh rename to frontline/cluster-gold/Strategies/RSIConsolidationStrategy.mqh diff --git a/frontline/united_template/_united-V2_exponential/Strategies/RSICrossOverReversalStrategy.mqh b/frontline/cluster-gold/Strategies/RSICrossOverReversalStrategy.mqh similarity index 84% rename from frontline/united_template/_united-V2_exponential/Strategies/RSICrossOverReversalStrategy.mqh rename to frontline/cluster-gold/Strategies/RSICrossOverReversalStrategy.mqh index 266292a..ddc5f5a 100644 --- a/frontline/united_template/_united-V2_exponential/Strategies/RSICrossOverReversalStrategy.mqh +++ b/frontline/cluster-gold/Strategies/RSICrossOverReversalStrategy.mqh @@ -79,6 +79,7 @@ bool InitRSICrossOverReversal(string symbol) } rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + rcData.trade.SetDeviationInPoints(RC_slippage); rcData.isInitialized = true; Print("RSICrossOverReversal: Successfully initialized for symbol '", symbol, "'"); return true; @@ -190,7 +191,13 @@ void ProcessRSICrossOverReversal(string symbol) double emaSlope = (currentEMA - previousEMA) * 100; const double closeCurr = iClose(rcData.symbol, RC_TimeFrame1, 0); - double priceToEmaDistance = (closeCurr - currentEMA) * 10; + // Raw (close-EMA)*10 blows past threshold on XAUUSD (~2600) almost every bar — blocks all entries. + // Compare distance in pips so RC_emaDistanceThreshold matches intent across symbols. + const double point = SymbolInfoDouble(rcData.symbol, SYMBOL_POINT); + const int symDig = (int)SymbolInfoInteger(rcData.symbol, SYMBOL_DIGITS); + const double pipMult = (symDig == 3 || symDig == 5) ? 10.0 : 1.0; + const double pipSize = (point > 0.0 ? point * pipMult : point); + const double priceToEmaPips = (pipSize > 0.0 ? MathAbs(closeCurr - currentEMA) / pipSize : 0.0); bool isBuyPosition = false; bool isSellPosition = false; @@ -209,7 +216,8 @@ void ProcessRSICrossOverReversal(string symbol) ApplyTrailingStop(); bool cooldownPassed = (currentTime - rcData.lastTradeTime) >= RC_cooldownSeconds; - bool isTrendStrong = MathAbs(emaSlope) > RC_emaSlopeThreshold || MathAbs(priceToEmaDistance) > RC_emaDistanceThreshold; + const bool isTrendStrong = RC_UseTrendStrengthFilter && + (MathAbs(emaSlope) > RC_emaSlopeThreshold || priceToEmaPips > RC_emaDistanceThreshold); if(isBuyPosition && currentRSI > RC_exitBuyRSI) { @@ -233,10 +241,12 @@ void ProcessRSICrossOverReversal(string symbol) currentRSI < RC_overboughtLevel - RC_entryRSISellSpread && rcData.previousRSIDef >= RC_overboughtLevel && !isSellPosition && !hasPosition && cooldownPassed) { - rcData.trade.SetExpertMagicNumber(RC_MagicNumber); - if(rcData.trade.Sell(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Sell Order")) + const double vol = United_NormalizeVolume(rcData.symbol, g_RC_LotSize); + if(vol > 0.0) { - rcData.lastTradeTime = currentTime; + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Sell(vol, rcData.symbol, 0.0, 0.0, 0.0, "Sell Order")) + rcData.lastTradeTime = currentTime; } } @@ -244,10 +254,12 @@ void ProcessRSICrossOverReversal(string symbol) currentRSI > RC_oversoldLevel + RC_entryRSIBuySpread && rcData.previousRSIDef <= RC_oversoldLevel && !isBuyPosition && !hasPosition && cooldownPassed) { - rcData.trade.SetExpertMagicNumber(RC_MagicNumber); - if(rcData.trade.Buy(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Buy Order")) + const double vol = United_NormalizeVolume(rcData.symbol, g_RC_LotSize); + if(vol > 0.0) { - rcData.lastTradeTime = currentTime; + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Buy(vol, rcData.symbol, 0.0, 0.0, 0.0, "Buy Order")) + rcData.lastTradeTime = currentTime; } } diff --git a/frontline/cluster-0/_united-V2/Strategies/RSIMidPointHijackStrategy.mqh b/frontline/cluster-gold/Strategies/RSIMidPointHijackStrategy.mqh similarity index 92% rename from frontline/cluster-0/_united-V2/Strategies/RSIMidPointHijackStrategy.mqh rename to frontline/cluster-gold/Strategies/RSIMidPointHijackStrategy.mqh index 3db8db5..120996b 100644 --- a/frontline/cluster-0/_united-V2/Strategies/RSIMidPointHijackStrategy.mqh +++ b/frontline/cluster-gold/Strategies/RSIMidPointHijackStrategy.mqh @@ -2,6 +2,11 @@ //| RSIMidPointHijackStrategy.mqh | //+------------------------------------------------------------------+ +double RM_NormalizedLot(const string sym) +{ + return United_NormalizeVolume(sym, g_RM_LotSize); +} + bool IsNewBar(string symbol) { datetime time[]; @@ -111,7 +116,9 @@ void CheckRSIFollowStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); - rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Sell(vol, symbol, 0, 0, 0, "RSI Follow"); } rmData.rsiOverbought = false; } @@ -120,7 +127,9 @@ void CheckRSIFollowStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); - rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Buy(vol, symbol, 0, 0, 0, "RSI Follow"); } rmData.rsiOversold = false; } @@ -154,7 +163,9 @@ void CheckRSIReverseStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); - rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Sell(vol, symbol, 0, 0, 0, "RSI Reverse"); } rmData.rsiReverseOverbought = false; } @@ -163,7 +174,9 @@ void CheckRSIReverseStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); - rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Buy(vol, symbol, 0, 0, 0, "RSI Reverse"); } rmData.rsiReverseOversold = false; } @@ -223,7 +236,9 @@ void CheckEMACrossStrategy(string symbol) if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); - rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Buy(vol, symbol, 0, 0, 0, "EMA Cross Distance"); rmData.emaCrossBuySignal = false; } } @@ -252,7 +267,9 @@ void CheckEMACrossStrategy(string symbol) if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); - rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Sell(vol, symbol, 0, 0, 0, "EMA Cross Distance"); rmData.emaCrossSellSignal = false; } } @@ -265,7 +282,9 @@ void CheckEMACrossStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); - rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Buy(vol, symbol, 0, 0, 0, "EMA Cross"); } } else if(rmData.lastBarEMAPrev > rmData.lastBarClosePrev && rmData.lastBarEMA < rmData.lastBarClose) @@ -273,7 +292,9 @@ void CheckEMACrossStrategy(string symbol) if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) { rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); - rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + const double vol = RM_NormalizedLot(symbol); + if(vol > 0.0) + rmData.trade.Sell(vol, symbol, 0, 0, 0, "EMA Cross"); } } } diff --git a/frontline/cluster-0/_united-V2/Strategies/RSIReversalAsianStrategy.mqh b/frontline/cluster-gold/Strategies/RSIReversalAsianStrategy.mqh similarity index 94% rename from frontline/cluster-0/_united-V2/Strategies/RSIReversalAsianStrategy.mqh rename to frontline/cluster-gold/Strategies/RSIReversalAsianStrategy.mqh index 6762248..e204fb0 100644 --- a/frontline/cluster-0/_united-V2/Strategies/RSIReversalAsianStrategy.mqh +++ b/frontline/cluster-gold/Strategies/RSIReversalAsianStrategy.mqh @@ -65,19 +65,14 @@ bool IsAsianSession() //+------------------------------------------------------------------+ bool IsTradingAllowed(RSIReversalAsianData& data) { - // Check if market is open - long tradeMode = SymbolInfoInteger(data.symbol, SYMBOL_TRADE_MODE); - if(tradeMode != SYMBOL_TRADE_MODE_FULL) - { + // Do not require SYMBOL_TRADE_MODE_FULL: many symbols allow one side only (long/short). + const long tradeMode = SymbolInfoInteger(data.symbol, SYMBOL_TRADE_MODE); + if(tradeMode == SYMBOL_TRADE_MODE_DISABLED || tradeMode == SYMBOL_TRADE_MODE_CLOSEONLY) return false; - } - - // Check if we have enough money + if(AccountInfoDouble(ACCOUNT_MARGIN_FREE) <= 0) - { return false; - } - + return true; } @@ -290,7 +285,7 @@ bool InitRSIReversalAsian(RSIReversalAsianData& data, string symbol, // Set trade parameters data.trade.SetExpertMagicNumber(MagicNumber); data.trade.SetDeviationInPoints(Slippage); - data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetTypeFillingBySymbol(symbol); // Initialize state data.isPositionOpen = false; @@ -444,16 +439,16 @@ void ProcessRSIReversalAsian(RSIReversalAsianData& data, double lotSize) if(data.UseTakeProfit && tp <= currentBid) return; - // Set trade parameters data.trade.SetDeviationInPoints(data.Slippage); - data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetTypeFillingBySymbol(data.symbol); data.trade.SetExpertMagicNumber(data.MagicNumber); - // Use dynamic lot size double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; - - // Place buy order using CTrade - if(data.trade.Buy(tradeLotSize, data.symbol, currentAsk, sl, tp, "RSI Oversold Crossover Buy")) + const double vol = United_NormalizeVolume(data.symbol, tradeLotSize); + if(vol <= 0.0) + return; + + if(data.trade.Buy(vol, data.symbol, currentAsk, sl, tp, "RSI Oversold Crossover Buy")) { data.isPositionOpen = true; data.positionOpenPrice = currentAsk; @@ -472,16 +467,16 @@ void ProcessRSIReversalAsian(RSIReversalAsianData& data, double lotSize) if(data.UseTakeProfit && tp >= currentAsk) return; - // Set trade parameters data.trade.SetDeviationInPoints(data.Slippage); - data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetTypeFillingBySymbol(data.symbol); data.trade.SetExpertMagicNumber(data.MagicNumber); - // Use dynamic lot size double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; - - // Place sell order using CTrade - if(data.trade.Sell(tradeLotSize, data.symbol, currentBid, sl, tp, "RSI Overbought Crossover Sell")) + const double vol = United_NormalizeVolume(data.symbol, tradeLotSize); + if(vol <= 0.0) + return; + + if(data.trade.Sell(vol, data.symbol, currentBid, sl, tp, "RSI Overbought Crossover Sell")) { data.isPositionOpen = true; data.positionOpenPrice = currentBid; diff --git a/frontline/cluster-0/_united-V2/Strategies/RSIScalpingStrategy.mqh b/frontline/cluster-gold/Strategies/RSIScalpingStrategy.mqh similarity index 86% rename from frontline/cluster-0/_united-V2/Strategies/RSIScalpingStrategy.mqh rename to frontline/cluster-gold/Strategies/RSIScalpingStrategy.mqh index 5daa1c1..630955d 100644 --- a/frontline/cluster-0/_united-V2/Strategies/RSIScalpingStrategy.mqh +++ b/frontline/cluster-gold/Strategies/RSIScalpingStrategy.mqh @@ -120,6 +120,70 @@ void RS_TryReversalEscape(RSIScalpingData& data, const ENUM_TIMEFRAMES tf, const " ATR=", DoubleToString(atr, (int)SymbolInfoInteger(data.symbol, SYMBOL_DIGITS))); } +void RS_ApplyTrailingStop(RSIScalpingData& data, const int MagicNumber, + const bool useTrailingStop, + const double trailingStopDistancePoints, + const double trailingActivationPoints) +{ + if(!useTrailingStop || trailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(data.symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(data.symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(data.symbol, SYMBOL_DIGITS); + const double trail_dist = trailingStopDistancePoints * point; + const double activation_pts = (trailingActivationPoints > 0.0) + ? trailingActivationPoints + : trailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(data.symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(data.symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(data.trade, data.symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(data.symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(data.trade, data.symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + string ErrorDescription(int errorCode) { switch(errorCode) @@ -364,21 +428,7 @@ void CheckEntrySignals(RSIScalpingData& data, ENUM_TIMEFRAMES TimeFrame, int Mag //+------------------------------------------------------------------+ double NormalizeLotSize(string symbol, double lotSize) { - double minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); - double maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); - double lotStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); - - // Round to lot step - if(lotStep > 0) - lotSize = MathFloor(lotSize / lotStep) * lotStep; - - // Apply min/max constraints - if(lotSize < minLot) - lotSize = minLot; - if(lotSize > maxLot) - lotSize = maxLot; - - return lotSize; + return United_NormalizeVolume(symbol, lotSize); } void OpenBuyPosition(RSIScalpingData& data, int MagicNumber, double LotSize) @@ -520,7 +570,8 @@ void ProcessRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES Ti double RSI_Oversold, double RSI_Target_Buy, double RSI_Target_Sell, int BarsToWait, double LotSize, int MagicNumber, bool UseReversalEscape, int ReversalATRPeriod, double ReversalAdverseAtrMult, - int ReversalSignsRequired, double ReversalRsiVelocity, double ReversalBodyAtrMult) + int ReversalSignsRequired, double ReversalRsiVelocity, double ReversalBodyAtrMult, + bool UseTrailingStop, double TrailingStopDistancePoints, double TrailingActivationPoints) { // Skip if not initialized (symbol not available) if(!data.isInitialized) @@ -543,6 +594,10 @@ void ProcessRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES Ti RS_TryReversalEscape(data, TimeFrame, MagicNumber, ReversalATRPeriod, ReversalAdverseAtrMult, ReversalSignsRequired, ReversalRsiVelocity, ReversalBodyAtrMult); + if(in_pos) + RS_ApplyTrailingStop(data, MagicNumber, UseTrailingStop, + TrailingStopDistancePoints, TrailingActivationPoints); + if(!new_bar) return; diff --git a/frontline/cluster-gold/Strategies/RSISecretSauceStrategy.mqh b/frontline/cluster-gold/Strategies/RSISecretSauceStrategy.mqh new file mode 100644 index 0000000..a8c284e --- /dev/null +++ b/frontline/cluster-gold/Strategies/RSISecretSauceStrategy.mqh @@ -0,0 +1,336 @@ +//+------------------------------------------------------------------+ +//| RSISecretSauceStrategy.mqh | +//| Cluster-0 orchestrator: RSI leave extreme then peak/bottom entry | +//+------------------------------------------------------------------+ +#ifndef RSI_SECRET_SAUCE_STRATEGY_MQH +#define RSI_SECRET_SAUCE_STRATEGY_MQH + +#include +#include + +struct RSISecretSauceOrcData +{ + string actualSymbol; + bool isInitialized; + CTrade trade; + CPositionInfo positionInfo; + int rsiHandle; + int atrHandle; + double rsiBuffer[]; + double atrBuffer[]; + double highBuffer[]; + double lowBuffer[]; + bool rsiWasOverbought; + bool rsiWasOversold; + bool rsiBackInRange; + datetime lastRSIExitTime; + datetime lastRSIReentryTime; + datetime lastTradeTime; + datetime lastBarTime; +}; + +bool RSS_UpdateIndicators(RSISecretSauceOrcData &d) +{ + int rsiBarsNeeded = RSS_RSILookback + 5; + if(CopyBuffer(d.rsiHandle, 0, 0, rsiBarsNeeded, d.rsiBuffer) < rsiBarsNeeded) + return false; + if(CopyBuffer(d.atrHandle, 0, 0, 2, d.atrBuffer) < 2) + return false; + if(CopyHigh(d.actualSymbol, RSS_Timeframe, 0, RSS_SwingLookback + 5, d.highBuffer) < RSS_SwingLookback + 5) + return false; + if(CopyLow(d.actualSymbol, RSS_Timeframe, 0, RSS_SwingLookback + 5, d.lowBuffer) < RSS_SwingLookback + 5) + return false; + return true; +} + +void RSS_UpdateRSIState(RSISecretSauceOrcData &d) +{ + double rsiCurrent = d.rsiBuffer[0]; + double rsiPrev = d.rsiBuffer[1]; + + if(rsiPrev >= RSS_RSIOverbought && rsiCurrent < RSS_RSIOverbought) + { + d.rsiWasOverbought = true; + d.rsiBackInRange = true; + d.lastRSIExitTime = TimeCurrent(); + d.lastRSIReentryTime = TimeCurrent(); + } + + if(rsiPrev <= RSS_RSIOversold && rsiCurrent > RSS_RSIOversold) + { + d.rsiWasOversold = true; + d.rsiBackInRange = true; + d.lastRSIExitTime = TimeCurrent(); + d.lastRSIReentryTime = TimeCurrent(); + } + + if(rsiCurrent >= RSS_RSIOverbought) + { + d.rsiWasOverbought = false; + d.rsiBackInRange = false; + } + + if(rsiCurrent <= RSS_RSIOversold) + { + d.rsiWasOversold = false; + d.rsiBackInRange = false; + } +} + +bool RSS_IsRSIPeak(RSISecretSauceOrcData &d) +{ + if(ArraySize(d.rsiBuffer) < RSS_PeakBars + 2) + return false; + double currentRSI = d.rsiBuffer[0]; + bool isPeak = true; + for(int i = 1; i <= RSS_PeakBars; i++) + { + if(d.rsiBuffer[i] >= currentRSI) + { + isPeak = false; + break; + } + } + if(d.rsiBuffer[1] >= currentRSI) + isPeak = false; + return isPeak; +} + +bool RSS_IsRSIBottom(RSISecretSauceOrcData &d) +{ + if(ArraySize(d.rsiBuffer) < RSS_PeakBars + 2) + return false; + double currentRSI = d.rsiBuffer[0]; + bool isBottom = true; + for(int i = 1; i <= RSS_PeakBars; i++) + { + if(d.rsiBuffer[i] <= currentRSI) + { + isBottom = false; + break; + } + } + if(d.rsiBuffer[1] <= currentRSI) + isBottom = false; + return isBottom; +} + +double RSS_GetSwingStopLoss(RSISecretSauceOrcData &d, double currentPrice, ENUM_POSITION_TYPE type) +{ + if(type == POSITION_TYPE_BUY) + { + double lowestLow = d.lowBuffer[0]; + for(int i = 1; i < RSS_SwingLookback && i < ArraySize(d.lowBuffer); i++) + { + if(d.lowBuffer[i] < lowestLow) + lowestLow = d.lowBuffer[i]; + } + return lowestLow; + } + double highestHigh = d.highBuffer[0]; + for(int i = 1; i < RSS_SwingLookback && i < ArraySize(d.highBuffer); i++) + { + if(d.highBuffer[i] > highestHigh) + highestHigh = d.highBuffer[i]; + } + return highestHigh; +} + +bool RSS_CalculateStops(RSISecretSauceOrcData &d, double price, ENUM_POSITION_TYPE type, double &sl, double &tp) +{ + double atrValue = d.atrBuffer[0]; + if(atrValue <= 0) + atrValue = price * 0.01; + + double slDistance = atrValue * RSS_StopLossATR; + double tpDistance = atrValue * RSS_TakeProfitATR; + + int digits = (int)SymbolInfoInteger(d.actualSymbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(d.actualSymbol, SYMBOL_POINT); + int stopsLevel = (int)SymbolInfoInteger(d.actualSymbol, SYMBOL_TRADE_STOPS_LEVEL); + double minStopDistance = MathMax(stopsLevel * point, point * 10); + + if(RSS_UseSwingStopLoss) + { + double swingStop = RSS_GetSwingStopLoss(d, price, type); + if(swingStop > 0) + { + if(type == POSITION_TYPE_BUY) + { + if(swingStop < price && (price - swingStop) > minStopDistance) + slDistance = price - swingStop; + } + else + { + if(swingStop > price && (swingStop - price) > minStopDistance) + slDistance = swingStop - price; + } + } + } + + if(slDistance < minStopDistance) + slDistance = minStopDistance; + if(tpDistance < minStopDistance) + tpDistance = minStopDistance; + + if(type == POSITION_TYPE_BUY) + { + sl = NormalizeDouble(price - slDistance, digits); + tp = NormalizeDouble(price + tpDistance, digits); + } + else + { + sl = NormalizeDouble(price + slDistance, digits); + tp = NormalizeDouble(price - tpDistance, digits); + } + return true; +} + +bool RSS_CanOpenNewPosition(RSISecretSauceOrcData &d) +{ + int positionCount = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(d.positionInfo.SelectByIndex(i)) + { + if(d.positionInfo.Symbol() == d.actualSymbol && d.positionInfo.Magic() == RSS_MagicNumber) + positionCount++; + } + } + if(positionCount >= RSS_MaxPositions) + return false; + + if(d.lastTradeTime > 0) + { + int barsSince = Bars(d.actualSymbol, RSS_Timeframe, d.lastTradeTime, TimeCurrent()); + if(barsSince < RSS_MinBarsBetweenTrades) + return false; + } + return true; +} + +void RSS_OpenPosition(RSISecretSauceOrcData &d, ENUM_POSITION_TYPE type, const double lotSize) +{ + double price = (type == POSITION_TYPE_BUY) ? + SymbolInfoDouble(d.actualSymbol, SYMBOL_ASK) : + SymbolInfoDouble(d.actualSymbol, SYMBOL_BID); + + if(price <= 0) + return; + + double sl = 0.0, tp = 0.0; + if(!RSS_CalculateStops(d, price, type, sl, tp)) + return; + + string comment = "RSI_Secret_" + (type == POSITION_TYPE_BUY ? "LONG" : "SHORT"); + + bool result = false; + if(type == POSITION_TYPE_BUY) + result = d.trade.Buy(lotSize, d.actualSymbol, 0, sl, tp, comment); + else + result = d.trade.Sell(lotSize, d.actualSymbol, 0, sl, tp, comment); + + if(result) + { + d.lastTradeTime = TimeCurrent(); + if(type == POSITION_TYPE_BUY) + d.rsiWasOverbought = false; + else + d.rsiWasOversold = false; + d.rsiBackInRange = false; + } +} + +void RSS_CheckEntrySignals(RSISecretSauceOrcData &d, const double lotSize) +{ + if(d.rsiWasOverbought && d.rsiBackInRange) + { + if(d.rsiBuffer[0] < RSS_RSIOverbought && RSS_IsRSIPeak(d)) + RSS_OpenPosition(d, POSITION_TYPE_BUY, lotSize); + } + + if(d.rsiWasOversold && d.rsiBackInRange) + { + if(d.rsiBuffer[0] > RSS_RSIOversold && RSS_IsRSIBottom(d)) + RSS_OpenPosition(d, POSITION_TYPE_SELL, lotSize); + } +} + +bool InitRSISecretSauce(RSISecretSauceOrcData &d, const string symbol) +{ + d.isInitialized = false; + d.rsiHandle = INVALID_HANDLE; + d.atrHandle = INVALID_HANDLE; + d.rsiWasOverbought = false; + d.rsiWasOversold = false; + d.rsiBackInRange = false; + d.lastRSIExitTime = 0; + d.lastRSIReentryTime = 0; + d.lastTradeTime = 0; + d.lastBarTime = 0; + d.actualSymbol = symbol; + StringTrimLeft(d.actualSymbol); + StringTrimRight(d.actualSymbol); + if(StringLen(d.actualSymbol) == 0) + d.actualSymbol = _Symbol; + + if(!SymbolSelect(d.actualSymbol, true)) + { + Print("RSISecretSauce: symbol not available '", d.actualSymbol, "'"); + return false; + } + + d.rsiHandle = iRSI(d.actualSymbol, RSS_Timeframe, RSS_RSIPeriod, PRICE_CLOSE); + d.atrHandle = iATR(d.actualSymbol, RSS_Timeframe, RSS_ATRPeriod); + if(d.rsiHandle == INVALID_HANDLE || d.atrHandle == INVALID_HANDLE) + return false; + + ArraySetAsSeries(d.rsiBuffer, true); + ArraySetAsSeries(d.atrBuffer, true); + ArraySetAsSeries(d.highBuffer, true); + ArraySetAsSeries(d.lowBuffer, true); + + d.trade.SetExpertMagicNumber(RSS_MagicNumber); + d.trade.SetDeviationInPoints(RSS_Slippage); + d.trade.SetTypeFilling(ORDER_FILLING_FOK); + + d.isInitialized = true; + return true; +} + +void DeinitRSISecretSauce(RSISecretSauceOrcData &d) +{ + if(d.rsiHandle != INVALID_HANDLE) + IndicatorRelease(d.rsiHandle); + if(d.atrHandle != INVALID_HANDLE) + IndicatorRelease(d.atrHandle); + d.rsiHandle = INVALID_HANDLE; + d.atrHandle = INVALID_HANDLE; + d.isInitialized = false; +} + +void ProcessRSISecretSauce(RSISecretSauceOrcData &d, const double lotSize) +{ + if(!d.isInitialized) + return; + + int requiredBars = MathMax(RSS_RSILookback, RSS_SwingLookback) + 10; + if(Bars(d.actualSymbol, RSS_Timeframe) < requiredBars) + return; + + datetime currentBarTime = iTime(d.actualSymbol, RSS_Timeframe, 0); + if(currentBarTime == d.lastBarTime) + return; + + d.lastBarTime = currentBarTime; + + if(!RSS_UpdateIndicators(d)) + return; + + RSS_UpdateRSIState(d); + + if(RSS_CanOpenNewPosition(d)) + RSS_CheckEntrySignals(d, lotSize); +} + +#endif diff --git a/frontline/cluster-gold/Strategies/SimpleTrendlineStrategy.mqh b/frontline/cluster-gold/Strategies/SimpleTrendlineStrategy.mqh new file mode 100644 index 0000000..6341b88 --- /dev/null +++ b/frontline/cluster-gold/Strategies/SimpleTrendlineStrategy.mqh @@ -0,0 +1,318 @@ +//+------------------------------------------------------------------+ +//| SimpleTrendlineStrategy.mqh | +//+------------------------------------------------------------------+ +#ifndef SIMPLE_TRENDLINE_STRATEGY_MQH +#define SIMPLE_TRENDLINE_STRATEGY_MQH + +struct SimpleTrendlineModel +{ + datetime t1; + datetime t2; + datetime t3; + double a; + double b; + bool valid; +}; + +struct SimpleTrendlineData +{ + string symbol; + bool isInitialized; + CTrade trade; + ENUM_TIMEFRAMES signalTF; + ENUM_TIMEFRAMES higherTF; + int maPeriod; + ENUM_MA_METHOD maMethod; + ENUM_APPLIED_PRICE appliedPrice; + int htfBarsToScan; + double touchTolerancePoints; + double breakBufferPoints; + ulong magic; + bool drawTrendline; + int maHandle; + datetime lastSignalBarTime; + string lineName; +}; + +double ST_NormalizeVolume(const string sym, double vol) +{ + double minLot = SymbolInfoDouble(sym, SYMBOL_VOLUME_MIN); + double maxLot = SymbolInfoDouble(sym, SYMBOL_VOLUME_MAX); + double step = SymbolInfoDouble(sym, SYMBOL_VOLUME_STEP); + if(step > 0.0) + vol = MathFloor(vol / step) * step; + if(vol < minLot) + vol = minLot; + if(vol > maxLot) + vol = maxLot; + return vol; +} + +bool ST_GetPosition(const string sym, const ulong magic, ENUM_POSITION_TYPE &type, double &volume) +{ + if(!PositionSelectByMagic(sym, magic)) + return false; + type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + volume = PositionGetDouble(POSITION_VOLUME); + return true; +} + +int ST_FindRecentCrossPoints(SimpleTrendlineData &d, datetime ×[], double &prices[]) +{ + ArrayResize(times, 0); + ArrayResize(prices, 0); + if(d.maHandle == INVALID_HANDLE) + return 0; + + int needBars = MathMax(d.htfBarsToScan, d.maPeriod + 20); + MqlRates rates[]; + double maBuf[]; + ArraySetAsSeries(rates, true); + ArraySetAsSeries(maBuf, true); + + int copiedRates = CopyRates(d.symbol, d.higherTF, 0, needBars, rates); + int copiedMa = CopyBuffer(d.maHandle, 0, 0, needBars, maBuf); + if(copiedRates <= 5 || copiedMa <= 5) + return 0; + + int bars = MathMin(copiedRates, copiedMa); + for(int i = 2; i < bars - 1; i++) + { + double d0 = rates[i].close - maBuf[i]; + double d1 = rates[i + 1].close - maBuf[i + 1]; + if(d0 == 0.0 || d1 == 0.0 || (d0 * d1 < 0.0)) + { + int n = ArraySize(times); + ArrayResize(times, n + 1); + ArrayResize(prices, n + 1); + times[n] = rates[i].time; + prices[n] = rates[i].close; + if(ArraySize(times) >= 3) + break; + } + } + return ArraySize(times); +} + +bool ST_BuildTrendline(SimpleTrendlineData &d, SimpleTrendlineModel &m) +{ + m.valid = false; + datetime ts[]; + double ps[]; + if(ST_FindRecentCrossPoints(d, ts, ps) < 3) + return false; + + datetime tOld[3]; + double pOld[3]; + for(int i = 0; i < 3; i++) + { + tOld[i] = ts[2 - i]; + pOld[i] = ps[2 - i]; + } + + long t0 = (long)tOld[0]; + double x1 = 0.0; + double x2 = (double)((long)tOld[1] - t0); + double x3 = (double)((long)tOld[2] - t0); + double y1 = pOld[0]; + double y2 = pOld[1]; + double y3 = pOld[2]; + + double sx = x1 + x2 + x3; + double sy = y1 + y2 + y3; + double sxx = x1 * x1 + x2 * x2 + x3 * x3; + double sxy = x1 * y1 + x2 * y2 + x3 * y3; + double den = 3.0 * sxx - sx * sx; + if(MathAbs(den) < 1e-10) + return false; + + m.a = (3.0 * sxy - sx * sy) / den; + m.b = (sy - m.a * sx) / 3.0; + m.t1 = tOld[0]; + m.t2 = tOld[1]; + m.t3 = tOld[2]; + m.valid = true; + return true; +} + +double ST_LinePriceAt(const SimpleTrendlineModel &m, const datetime t) +{ + if(!m.valid) + return 0.0; + double x = (double)((long)t - (long)m.t1); + return m.a * x + m.b; +} + +void ST_DrawTrendline(SimpleTrendlineData &d, const SimpleTrendlineModel &m) +{ + if(!d.drawTrendline || !m.valid || d.symbol != _Symbol) + return; + + datetime tStart = m.t1; + datetime tEnd = iTime(d.symbol, d.signalTF, 0); + if(tEnd <= tStart) + tEnd = m.t3 + PeriodSeconds(d.signalTF) * 20; + + double pStart = ST_LinePriceAt(m, tStart); + double pEnd = ST_LinePriceAt(m, tEnd); + + if(ObjectFind(0, d.lineName) < 0) + ObjectCreate(0, d.lineName, OBJ_TREND, 0, tStart, pStart, tEnd, pEnd); + else + { + ObjectMove(0, d.lineName, 0, tStart, pStart); + ObjectMove(0, d.lineName, 1, tEnd, pEnd); + } + + ObjectSetInteger(0, d.lineName, OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, d.lineName, OBJPROP_COLOR, clrGold); + ObjectSetInteger(0, d.lineName, OBJPROP_WIDTH, 2); +} + +void ST_TryExitOnBreak(SimpleTrendlineData &d, const SimpleTrendlineModel &m) +{ + ENUM_POSITION_TYPE posType; + double vol; + if(!ST_GetPosition(d.symbol, d.magic, posType, vol)) + return; + + double close1 = iClose(d.symbol, d.signalTF, 1); + datetime t1 = iTime(d.symbol, d.signalTF, 1); + double line1 = ST_LinePriceAt(m, t1); + double buf = d.breakBufferPoints * SymbolInfoDouble(d.symbol, SYMBOL_POINT); + + bool closePos = false; + if(posType == POSITION_TYPE_BUY && close1 < (line1 - buf)) + closePos = true; + if(posType == POSITION_TYPE_SELL && close1 > (line1 + buf)) + closePos = true; + + if(closePos) + ClosePositionByMagic(d.trade, d.symbol, d.magic); +} + +void ST_TryPullbackEntry(SimpleTrendlineData &d, const SimpleTrendlineModel &m, const double lots) +{ + if(PositionExistsByMagic(d.symbol, d.magic)) + return; + + MqlRates b1[], b2[]; + ArraySetAsSeries(b1, true); + ArraySetAsSeries(b2, true); + if(CopyRates(d.symbol, d.signalTF, 1, 1, b1) != 1) + return; + if(CopyRates(d.symbol, d.signalTF, 2, 1, b2) != 1) + return; + if(ArraySize(b1) < 1 || ArraySize(b2) < 1) + return; + + double line1 = ST_LinePriceAt(m, b1[0].time); + double tol = d.touchTolerancePoints * SymbolInfoDouble(d.symbol, SYMBOL_POINT); + bool upTrend = (m.a > 0.0); + bool downTrend = (m.a < 0.0); + double vol = ST_NormalizeVolume(d.symbol, lots); + + if(upTrend) + { + bool touched = (b1[0].low <= (line1 + tol)); + bool reclaim = (b1[0].close > line1); + bool bullish = (b1[0].close > b1[0].open); + bool stillHealthy = (b2[0].close >= ST_LinePriceAt(m, b2[0].time) - tol); + if(touched && reclaim && bullish && stillHealthy) + { + if(!d.trade.Buy(vol, d.symbol, 0.0, 0.0, 0.0, "SimpleTrendline BUY")) + Print("SimpleTrendline BUY failed [", d.symbol, "] retcode=", d.trade.ResultRetcode(), " ", d.trade.ResultRetcodeDescription()); + } + } + else if(downTrend) + { + bool touched = (b1[0].high >= (line1 - tol)); + bool reject = (b1[0].close < line1); + bool bearish = (b1[0].close < b1[0].open); + bool stillWeak = (b2[0].close <= ST_LinePriceAt(m, b2[0].time) + tol); + if(touched && reject && bearish && stillWeak) + { + if(!d.trade.Sell(vol, d.symbol, 0.0, 0.0, 0.0, "SimpleTrendline SELL")) + Print("SimpleTrendline SELL failed [", d.symbol, "] retcode=", d.trade.ResultRetcode(), " ", d.trade.ResultRetcodeDescription()); + } + } +} + +bool InitSimpleTrendline(SimpleTrendlineData &d, + const string symbol, + const ENUM_TIMEFRAMES signalTF, + const ENUM_TIMEFRAMES higherTF, + const int maPeriod, + const ENUM_MA_METHOD maMethod, + const ENUM_APPLIED_PRICE appliedPrice, + const int htfBarsToScan, + const double touchTolerancePoints, + const double breakBufferPoints, + const ulong magic, + const bool drawTrendline) +{ + d.isInitialized = false; + d.symbol = symbol; + StringTrimLeft(d.symbol); + StringTrimRight(d.symbol); + if(StringLen(d.symbol) == 0) + d.symbol = _Symbol; + + if(!SymbolSelect(d.symbol, true)) + return false; + + d.signalTF = signalTF; + d.higherTF = higherTF; + d.maPeriod = maPeriod; + d.maMethod = maMethod; + d.appliedPrice = appliedPrice; + d.htfBarsToScan = htfBarsToScan; + d.touchTolerancePoints = touchTolerancePoints; + d.breakBufferPoints = breakBufferPoints; + d.magic = magic; + d.drawTrendline = drawTrendline; + d.lastSignalBarTime = 0; + d.lineName = "SimpleTrendline_" + d.symbol + "_" + IntegerToString((int)d.magic); + + d.trade.SetExpertMagicNumber((long)d.magic); + d.trade.SetTypeFillingBySymbol(d.symbol); + d.trade.SetDeviationInPoints(20); + + d.maHandle = iMA(d.symbol, d.higherTF, d.maPeriod, 0, d.maMethod, d.appliedPrice); + if(d.maHandle == INVALID_HANDLE) + return false; + + d.isInitialized = true; + return true; +} + +void DeinitSimpleTrendline(SimpleTrendlineData &d) +{ + if(d.maHandle != INVALID_HANDLE) + IndicatorRelease(d.maHandle); + d.maHandle = INVALID_HANDLE; + if(ObjectFind(0, d.lineName) >= 0) + ObjectDelete(0, d.lineName); + d.isInitialized = false; +} + +void ProcessSimpleTrendline(SimpleTrendlineData &d, const double lots) +{ + if(!d.isInitialized) + return; + + datetime bar0 = iTime(d.symbol, d.signalTF, 0); + if(bar0 == 0 || bar0 == d.lastSignalBarTime) + return; + d.lastSignalBarTime = bar0; + + SimpleTrendlineModel m; + if(!ST_BuildTrendline(d, m)) + return; + + ST_DrawTrendline(d, m); + ST_TryExitOnBreak(d, m); + ST_TryPullbackEntry(d, m, lots); +} + +#endif // SIMPLE_TRENDLINE_STRATEGY_MQH diff --git a/frontline/united_template/_united-V2_exponential/Strategies/SuperEMAStrategy.mqh b/frontline/cluster-gold/Strategies/SuperEMAStrategy.mqh similarity index 93% rename from frontline/united_template/_united-V2_exponential/Strategies/SuperEMAStrategy.mqh rename to frontline/cluster-gold/Strategies/SuperEMAStrategy.mqh index 3dba90e..52400fe 100644 --- a/frontline/united_template/_united-V2_exponential/Strategies/SuperEMAStrategy.mqh +++ b/frontline/cluster-gold/Strategies/SuperEMAStrategy.mqh @@ -51,6 +51,12 @@ void SuperEMA_Log(SuperEMAData &d, const string s) Print("[SuperEMA] ", s); } +double SuperEMA_Point(const SuperEMAData &d) +{ + double pt = SymbolInfoDouble(d.symbol, SYMBOL_POINT); + return (pt > 0.0 ? pt : _Point); +} + bool SuperEMA_IsNewBar(SuperEMAData &d) { datetime t = iTime(d.symbol, d.tf, 0); @@ -176,7 +182,8 @@ bool SuperEMA_PullbackNearFastEmaLong(SuperEMAData &d) double lo = iLow(d.symbol, d.tf, 1); if(emaF <= 0.0) return false; - return (lo <= emaF + d.slBufferPoints * _Point * 3.0); + const double pt = SuperEMA_Point(d); + return (lo <= emaF + d.slBufferPoints * pt * 3.0); } bool SuperEMA_PullbackNearFastEmaShort(SuperEMAData &d) @@ -185,7 +192,8 @@ bool SuperEMA_PullbackNearFastEmaShort(SuperEMAData &d) double hi = iHigh(d.symbol, d.tf, 1); if(emaF <= 0.0) return false; - return (hi >= emaF - d.slBufferPoints * _Point * 3.0); + const double pt = SuperEMA_Point(d); + return (hi >= emaF - d.slBufferPoints * pt * 3.0); } int SuperEMA_PositionsByMagic(SuperEMAData &d) @@ -196,6 +204,8 @@ int SuperEMA_PositionsByMagic(SuperEMAData &d) ulong t = PositionGetTicket(i); if(t == 0) continue; + if(!PositionSelectByTicket(t)) + continue; if(PositionGetString(POSITION_SYMBOL) == d.symbol && (int)PositionGetInteger(POSITION_MAGIC) == d.magic) n++; } @@ -209,7 +219,7 @@ void SuperEMA_ComputeSLTP(SuperEMAData &d, const bool isBuy, double &sl, double if(!d.useStructuralSL) return; double emaM = SuperEMA_EmaAt(d, d.emaMid, d.emaTrendBars); - double buf = d.slBufferPoints * _Point; + double buf = d.slBufferPoints * SuperEMA_Point(d); if(isBuy) sl = emaM - buf; else @@ -418,9 +428,13 @@ void ProcessSuperEMA(SuperEMAData &d, const double lots) SuperEMA_ManageExits(d); + // Same order as standalone SuperEMAXAUUSD: skip entry logic when flat is not allowed. + if(d.oneTradeOnly && SuperEMA_PositionsByMagic(d) > 0) + return; + const int sh = d.emaTrendBars; - double h1 = 0.0, h2 = 0.0; - if(!SuperEMA_MacdHistAt(d, 1, h1) || !SuperEMA_MacdHistAt(d, 2, h2)) + double h1 = 0.0; + if(!SuperEMA_MacdHistAt(d, 1, h1)) return; bool up = SuperEMA_TrendUp(d, sh); @@ -453,14 +467,14 @@ void ProcessSuperEMA(SuperEMAData &d, const double lots) break; } - if(d.oneTradeOnly && SuperEMA_PositionsByMagic(d) > 0) + if(!wantBuy && !wantSell) + return; + + const double vol = United_NormalizeVolume(d.symbol, lots); + if(vol <= 0.0) { - if(wantBuy && !United_MayOpenNewEntry(d.symbol, (ulong)d.magic, true)) - wantBuy = false; - if(wantSell && !United_MayOpenNewEntry(d.symbol, (ulong)d.magic, false)) - wantSell = false; - if(!wantBuy && !wantSell) - return; + SuperEMA_Log(d, "Skip entry: normalized volume <= 0"); + return; } MqlTick tick; @@ -474,7 +488,7 @@ void ProcessSuperEMA(SuperEMAData &d, const double lots) #ifndef UNITED_MARTINGALE_NO_SELF_CLOSE SuperEMA_ComputeSLTP(d, true, sl, tp); #endif - if(d.trade.Buy(lots, d.symbol, tick.ask, sl, tp, "United SuperEMA long")) + if(d.trade.Buy(vol, d.symbol, tick.ask, sl, tp, "United SuperEMA long")) SuperEMA_Log(d, StringFormat("BUY ask=%.5f sl=%.5f", tick.ask, sl)); } else if(wantSell && !wantBuy) @@ -482,7 +496,7 @@ void ProcessSuperEMA(SuperEMAData &d, const double lots) #ifndef UNITED_MARTINGALE_NO_SELF_CLOSE SuperEMA_ComputeSLTP(d, false, sl, tp); #endif - if(d.trade.Sell(lots, d.symbol, tick.bid, sl, tp, "United SuperEMA short")) + if(d.trade.Sell(vol, d.symbol, tick.bid, sl, tp, "United SuperEMA short")) SuperEMA_Log(d, StringFormat("SELL bid=%.5f sl=%.5f", tick.bid, sl)); } } diff --git a/frontline/cluster-0/_united-V2/main.mq5 b/frontline/cluster-gold/main.mq5 similarity index 79% rename from frontline/cluster-0/_united-V2/main.mq5 rename to frontline/cluster-gold/main.mq5 index 564b03f..f77c907 100644 --- a/frontline/cluster-0/_united-V2/main.mq5 +++ b/frontline/cluster-gold/main.mq5 @@ -5,14 +5,17 @@ //+------------------------------------------------------------------+ #property copyright "Copyright 2025, MetaQuotes Ltd." #property link "https://www.mql5.com" -#property version "1.00" +#property version "1.20" #property strict +#property description "LOT_* nominal at ORCH_ReferenceBalance; scale = balance/equity ÷ reference (clamped). No performance-evaluator ranking." #include #include #include #include #include "MagicNumberHelpers.mqh" +#define UNITED_V2_DYNAMIC_LOTS +double g_DB_LotSize; // Include strategy implementations early so structs are available #include "Strategies/DarvasBoxStrategy.mqh" #include "Strategies/EMASlopeDistanceStrategy.mqh" @@ -23,6 +26,7 @@ #include "Strategies/RSIReversalAsianStrategy.mqh" #include "Strategies/RSIConsolidationStrategy.mqh" #include "Strategies/SimpleTrendlineStrategy.mqh" +#include "Strategies/RSISecretSauceStrategy.mqh" //+------------------------------------------------------------------+ //| Global Lot Size Variables (for dynamic lot sizing) | @@ -31,6 +35,19 @@ double g_ES_LotSize; // EMA Slope Distance lot size double g_RC_LotSize; // RSI CrossOver Reversal lot size double g_RM_LotSize; // RSI MidPoint Hijack lot size +double g_Pos_RS_APPL; +double g_Pos_RS_BTCUSD; +double g_Pos_RS_NVDA; +double g_Pos_RS_TSLA; +double g_Pos_RS_XAUUSD; +double g_Pos_RRA_EURUSD; +double g_Pos_RRA_AUDUSD; +double g_Pos_SE; +double g_Pos_RCO; +double g_Pos_ST_BTCUSD; +double g_Pos_ST_XAUUSD; +double g_RSS_LotSize; + bool United_MayOpenNewEntry(const string symbol, const ulong magic, const bool isBuy) { if(PositionExistsByMagic(symbol, magic)) @@ -45,47 +62,57 @@ input group "=== Strategy Enable/Disable ===" input bool EnableDarvasBox = true; input bool EnableEMASlopeDistance = true; input bool EnableRSICrossOverReversal = true; -input bool EnableRSIMidPointHijack = true; -input bool EnableRSIScalpingAPPL = true; -input bool EnableRSIScalpingBTCUSD = true; -input bool EnableRSIScalpingNVDA = true; -input bool EnableRSIScalpingTSLA = true; +input bool EnableRSIMidPointHijack = false; +input bool EnableRSIScalpingAPPL = false; +input bool EnableRSIScalpingBTCUSD = false; +input bool EnableRSIScalpingNVDA = false; +input bool EnableRSIScalpingTSLA = false; input bool EnableRSIScalpingXAUUSD = true; input bool EnableSuperEMA = true; input bool EnableRSIConsolidation = true; -input bool EnableRSIReversalAsianEURUSD = true; -input bool EnableRSIReversalAsianAUDUSD = true; -input bool EnableSimpleTrendlineBTCUSD = true; +input bool EnableRSIReversalAsianEURUSD = false; +input bool EnableRSIReversalAsianAUDUSD = false; +input bool EnableSimpleTrendlineBTCUSD = false; input bool EnableSimpleTrendlineXAUUSD = true; +input bool EnableRSISecretSauce = false; input group "=== Centralized Lot Size (Granular Per Robot) ===" -input double LOT_ES_EMASlopeDistance = 0.05; +input double LOT_DB_DarvasBox = 0.04; +input double LOT_ES_EMASlopeDistance = 0.09; input double LOT_RC_RSICrossOver = 0.1; input double LOT_RM_RSIMidPointHijack = 0.01; -input double LOT_RS_APPL = 100.0; -input double LOT_RS_BTCUSD = 0.15; -input double LOT_RS_NVDA = 60.0; -input double LOT_RS_TSLA = 20.0; -input double LOT_RS_XAUUSD = 0.02; -input double LOT_RRA_EURUSD = 0.01; -input double LOT_RRA_AUDUSD = 0.10; -input double LOT_SE_SuperEMA = 0.01; -input double LOT_RCO_RSIConsolidation = 0.04; -input double LOT_ST_BTCUSD = 0.19; +input double LOT_RS_APPL = 5.0; +input double LOT_RS_BTCUSD = 0.1; +input double LOT_RS_NVDA = 10.0; +input double LOT_RS_TSLA = 15.0; +input double LOT_RS_XAUUSD = 0.05; +input double LOT_RRA_EURUSD = 0.05; +input double LOT_RRA_AUDUSD = 0.08; +input double LOT_SE_SuperEMA = 0.02; +input double LOT_RCO_RSIConsolidation = 0.02; +input double LOT_ST_BTCUSD = 0.07; input double LOT_ST_XAUUSD = 0.02; +input double LOT_RSS_SecretSauce = 0.01; + +input group "=== Balance-based position sizing ===" +input bool ORCH_ScaleLotsByBalance = true; +input bool ORCH_UseEquityInsteadOfBalance = false; +input double ORCH_ReferenceBalance = 10000.0; +input double ORCH_MinBalanceScale = 0.1; +input double ORCH_MaxBalanceScale = 10.0; //+------------------------------------------------------------------+ //| Strategy 1: DarvasBoxXAUUSD | //+------------------------------------------------------------------+ input group "=== DarvasBox Strategy ===" -input string DB_Symbol = "XAUUSD"; +input string DB_Symbol = "XAU"; input int DB_BoxPeriod = 165; input double DB_BoxDeviation = 30000; // Increased to allow larger ranges (was 25140) input int DB_VolumeThreshold = 0; // Set to 0 to disable volume threshold check. Volume data from indicator used instead. input double DB_StopLoss = 1665; input double DB_TakeProfit = 3685; input bool DB_EnableLogging = false; -input color DB_BoxColor = clrBlue; +input color DB_BoxColor = (color)16711680; input int DB_BoxWidth = 1; input ENUM_TIMEFRAMES DB_TrendTimeframe = PERIOD_H2; input int DB_MA_Period = 125; @@ -94,6 +121,8 @@ input ENUM_APPLIED_PRICE DB_MA_Price = PRICE_WEIGHTED; input double DB_TrendThreshold = 4.94; input int DB_VolumeMA_Period = 110; input double DB_VolumeThresholdMultiplier = 1.5; +input bool DB_UseVolumeSpikeFilter = true; +input bool DB_UseTrendFilter = true; input int DB_MagicNumber = 135790; //+------------------------------------------------------------------+ @@ -101,12 +130,16 @@ input int DB_MagicNumber = 135790; //| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | //+------------------------------------------------------------------+ input group "=== EMA Slope Distance Strategy ===" -input string ES_Symbol = "XAUUSD"; +input string ES_Symbol = "XAU"; input int ES_EMA_Periode = 46; input double ES_PreisSchwelle = 600.0; input double ES_SteigungSchwelle = 80.0; input int ES_ÜberwachungTimeout = 800; -input double ES_TrailingStop = 250.0; +input double ES_TrailingStop = 370.0; +input bool ES_UseTrailingStop = true; +input double ES_TrailingActivationPips = 0.0; +input bool ES_UseStaleStopLossExit = false; +input int ES_StaleStopLossSeconds = 33800; input double ES_LotGröße = 0.03; input int ES_MagicNumber = 12350; input bool ES_UseSpreadAdjustment = true; @@ -115,13 +148,18 @@ input bool ES_UseBarData = true; input int ES_MaxTradesPerCrossover = 9; input int ES_ProfitCheckBars = 18; input bool ES_CloseUnprofitableTrades = true; +input bool ES_UseWeeklyADXFilter = true; +input int ES_WeeklyADXPeriod = 15; +input double ES_WeeklyADXMin = 40.0; +input int ES_WeeklyADXBarShift = 2; +input bool ES_WeeklyADXUseDirection = true; //+------------------------------------------------------------------+ //| Strategy 3: RSICrossOverReversalXAUUSD | //| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | //+------------------------------------------------------------------+ input group "=== RSI CrossOver Reversal Strategy ===" -input string RC_Symbol = "XAUUSD"; +input string RC_Symbol = "XAU"; input int RC_MagicNumber = 7; input int RC_rsiPeriod = 19; input int RC_overboughtLevel = 93; @@ -140,6 +178,7 @@ input double RC_exitBuyRSI = 86; input double RC_exitSellRSI = 10; input double RC_TrailingStop = 295; input double RC_emaDistanceThreshold = 165; +input bool RC_UseTrendStrengthFilter = true; input int RC_tradingHourOneBegin = 24; input int RC_tradingHourOneEnd = 22; input int RC_tradingHourTwoBegin = 6; @@ -157,7 +196,7 @@ input bool RC_Saturday = false; //| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | //+------------------------------------------------------------------+ input group "=== RSI MidPoint Hijack Strategy ===" -input string RM_Symbol = "XAUUSD"; +input string RM_Symbol = "XAU"; input ENUM_TIMEFRAMES RM_InpTimeframe = PERIOD_H1; input double RM_InpLotSize = 0.02; input int RM_InpMagicNumberRSIFollow = 1001; @@ -212,7 +251,7 @@ input int RM_InpEMADistancePeriod = 26; //| 4. Use the exact symbol name shown | //+------------------------------------------------------------------+ input group "=== RSI Scalping APPL (AAPL) - Pepperstone US ===" -input string RS_APPL_Symbol = "AAPL.US"; // Try: "AAPL.US", "NASDAQ:AAPL", or "AAPL" +input string RS_APPL_Symbol = "AAPL.NAS"; // Pepperstone / match tester set (also try AAPL.US) input ENUM_TIMEFRAMES RS_APPL_TimeFrame = PERIOD_M10; input int RS_APPL_RSI_Period = 14; input ENUM_APPLIED_PRICE RS_APPL_RSI_Applied_Price = PRICE_CLOSE; @@ -240,7 +279,7 @@ input int RS_BTCUSD_MagicNumber = 123459123; input int RS_BTCUSD_Slippage = 3; input group "=== RSI Scalping NVDA - Pepperstone US ===" -input string RS_NVDA_Symbol = "NVDA.US"; // Try: "NVDA.US", "NASDAQ:NVDA", or "NVDA" +input string RS_NVDA_Symbol = "NVDA.NAS"; // Pepperstone / match tester set (also try NVDA.US) input ENUM_TIMEFRAMES RS_NVDA_TimeFrame = PERIOD_M15; input int RS_NVDA_RSI_Period = 8; input ENUM_APPLIED_PRICE RS_NVDA_RSI_Applied_Price = PRICE_CLOSE; @@ -254,7 +293,7 @@ input int RS_NVDA_MagicNumber = 20003; input int RS_NVDA_Slippage = 3; input group "=== RSI Scalping TSLA - Pepperstone US ===" -input string RS_TSLA_Symbol = "TSLA.US"; // Try: "TSLA.US", "NASDAQ:TSLA", or "TSLA" +input string RS_TSLA_Symbol = "TSLA.NAS"; // Pepperstone / match tester set (also try TSLA.US) input ENUM_TIMEFRAMES RS_TSLA_TimeFrame = PERIOD_H1; input int RS_TSLA_RSI_Period = 14; input ENUM_APPLIED_PRICE RS_TSLA_RSI_Applied_Price = PRICE_CLOSE; @@ -268,7 +307,7 @@ input int RS_TSLA_MagicNumber = 125421321; input int RS_TSLA_Slippage = 3; input group "=== RSI Scalping XAUUSD ===" -input string RS_XAUUSD_Symbol = "XAUUSD"; +input string RS_XAUUSD_Symbol = "XAU"; input ENUM_TIMEFRAMES RS_XAUUSD_TimeFrame = PERIOD_H1; input int RS_XAUUSD_RSI_Period = 14; input ENUM_APPLIED_PRICE RS_XAUUSD_RSI_Applied_Price = PRICE_CLOSE; @@ -289,6 +328,31 @@ input int RS_ReversalSignsRequired = 2; input double RS_ReversalRsiVelocity = 16.0; input double RS_ReversalBodyAtrMult = 5.1; +input group "=== RSI Scalping APPL — Trailing (cluster-fuck BTC-style defaults) ===" +input bool RS_APPL_UseTrailingStop = true; +input double RS_APPL_TrailDistancePoints = 120.0; +input double RS_APPL_TrailActivationPoints = 0.0; + +input group "=== RSI Scalping BTCUSD — Trailing ===" +input bool RS_BTCUSD_UseTrailingStop = true; +input double RS_BTCUSD_TrailDistancePoints = 120.0; +input double RS_BTCUSD_TrailActivationPoints = 0.0; + +input group "=== RSI Scalping NVDA — Trailing ===" +input bool RS_NVDA_UseTrailingStop = true; +input double RS_NVDA_TrailDistancePoints = 375.0; +input double RS_NVDA_TrailActivationPoints = 75.0; + +input group "=== RSI Scalping TSLA — Trailing ===" +input bool RS_TSLA_UseTrailingStop = true; +input double RS_TSLA_TrailDistancePoints = 900.0; +input double RS_TSLA_TrailActivationPoints = 950.0; + +input group "=== RSI Scalping XAUUSD — Trailing ===" +input bool RS_XAUUSD_UseTrailingStop = true; +input double RS_XAUUSD_TrailDistancePoints = 1000.0; +input double RS_XAUUSD_TrailActivationPoints = 550.0; + //+------------------------------------------------------------------+ //| Strategy 11-12: RSI Reversal Asian Strategies | //| Each RSI Reversal Asian strategy trades on its own symbol: | @@ -334,7 +398,7 @@ input int RRA_AUDUSD_MagicNumber = 30002; input int RRA_AUDUSD_Slippage = 3; input group "=== SuperEMA (EMA + CCI + MACD) ===" -input string SE_Symbol = "XAUUSD"; +input string SE_Symbol = "XAU"; input ENUM_TIMEFRAMES SE_Timeframe = PERIOD_M15; input double SE_LotSize = 0.01; input int SE_SlippagePoints = 55; @@ -362,7 +426,7 @@ input bool SE_ExitBelowMidEma = false; input bool SE_DebugLogs = false; input group "=== RSI Consolidation (ranging / mean-reversion) ===" -input string RCO_Symbol = "XAUUSD"; +input string RCO_Symbol = "XAU"; input ENUM_TIMEFRAMES RCO_SignalTF = PERIOD_M15; input bool RCO_EntryOnNewBarOnly = true; input int RCO_ADX_Period = 23; @@ -404,7 +468,7 @@ input ulong ST_BTC_MagicNumber = 26042501; input bool ST_BTC_DrawTrendline = true; input group "=== SimpleTrendline XAUUSD ===" -input string ST_XAU_Symbol = "XAUUSD"; +input string ST_XAU_Symbol = "XAU"; input ENUM_TIMEFRAMES ST_XAU_SignalTF = PERIOD_H1; input ENUM_TIMEFRAMES ST_XAU_HigherTF = PERIOD_M10; input int ST_XAU_MAPeriod = 65; @@ -416,6 +480,68 @@ input double ST_XAU_BreakBuffer = 110.0; input ulong ST_XAU_MagicNumber = 26042503; input bool ST_XAU_DrawTrendline = true; +input group "=== RSI Secret Sauce XAUUSD ===" +input string RSS_Symbol = "XAU"; +input int RSS_MagicNumber = 789012; +input int RSS_Slippage = 10; +input ENUM_TIMEFRAMES RSS_Timeframe = PERIOD_M30; +input int RSS_RSIPeriod = 16; +input double RSS_RSIOverbought = 72.5; +input double RSS_RSIOversold = 32.5; +input int RSS_RSILookback = 60; +input int RSS_PeakBars = 2; +input double RSS_StopLossATR = 2.75; +input double RSS_TakeProfitATR = 5.0; +input int RSS_ATRPeriod = 14; +input bool RSS_UseSwingStopLoss = false; +input int RSS_SwingLookback = 30; +input int RSS_MaxPositions = 1; +input int RSS_MinBarsBetweenTrades = 7; + +//+------------------------------------------------------------------+ +//| Balance scaling: LOT_* = nominal size at ORCH_ReferenceBalance | +//+------------------------------------------------------------------+ +double United_BalanceScaleFactor() +{ + if(!ORCH_ScaleLotsByBalance || ORCH_ReferenceBalance <= 0.0) + return 1.0; + const double money = ORCH_UseEquityInsteadOfBalance + ? AccountInfoDouble(ACCOUNT_EQUITY) + : AccountInfoDouble(ACCOUNT_BALANCE); + double raw = money / ORCH_ReferenceBalance; + if(raw < ORCH_MinBalanceScale) + raw = ORCH_MinBalanceScale; + if(raw > ORCH_MaxBalanceScale) + raw = ORCH_MaxBalanceScale; + return raw; +} + +double United_ScaledLot(const double baseLot) +{ + const double lot = baseLot * United_BalanceScaleFactor(); + return (lot > 0.0 ? lot : 0.0); +} + +void United_RefreshScaledLots() +{ + g_DB_LotSize = United_ScaledLot(LOT_DB_DarvasBox); + g_ES_LotSize = United_ScaledLot(LOT_ES_EMASlopeDistance); + g_RC_LotSize = United_ScaledLot(LOT_RC_RSICrossOver); + g_RM_LotSize = United_ScaledLot(LOT_RM_RSIMidPointHijack); + g_Pos_RS_APPL = United_ScaledLot(LOT_RS_APPL); + g_Pos_RS_BTCUSD = United_ScaledLot(LOT_RS_BTCUSD); + g_Pos_RS_NVDA = United_ScaledLot(LOT_RS_NVDA); + g_Pos_RS_TSLA = United_ScaledLot(LOT_RS_TSLA); + g_Pos_RS_XAUUSD = United_ScaledLot(LOT_RS_XAUUSD); + g_Pos_RRA_EURUSD = United_ScaledLot(LOT_RRA_EURUSD); + g_Pos_RRA_AUDUSD = United_ScaledLot(LOT_RRA_AUDUSD); + g_Pos_SE = United_ScaledLot(LOT_SE_SuperEMA); + g_Pos_RCO = United_ScaledLot(LOT_RCO_RSIConsolidation); + g_Pos_ST_BTCUSD = United_ScaledLot(LOT_ST_BTCUSD); + g_Pos_ST_XAUUSD = United_ScaledLot(LOT_ST_XAUUSD); + g_RSS_LotSize = United_ScaledLot(LOT_RSS_SecretSauce); +} + //+------------------------------------------------------------------+ //| Global Variables - DarvasBox | //+------------------------------------------------------------------+ @@ -453,6 +579,7 @@ struct EMASlopeData { bool crossover_detected; datetime trade_open_time; datetime last_bar_time; + datetime es_last_sl_adjust_success_time; }; //+------------------------------------------------------------------+ @@ -516,6 +643,7 @@ SuperEMAData seData; RSIConsolidationData rcoData; SimpleTrendlineData stBTCData; SimpleTrendlineData stXAUData; +RSISecretSauceOrcData rssData; //+------------------------------------------------------------------+ //| Global Variables - RSI Reversal Asian | @@ -530,10 +658,7 @@ int OnInit() { int initResult = INIT_SUCCEEDED; - // Initialize global lot size variables - g_ES_LotSize = LOT_ES_EMASlopeDistance; - g_RC_LotSize = LOT_RC_RSICrossOver; - g_RM_LotSize = LOT_RM_RSIMidPointHijack; + United_RefreshScaledLots(); // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable if(EnableDarvasBox) @@ -568,6 +693,10 @@ int OnInit() if(EnableRSIScalpingXAUUSD) InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); + if(EnableRSISecretSauce) + if(!InitRSISecretSauce(rssData, RSS_Symbol)) + Print("Warning: RSI Secret Sauce failed to initialize for symbol '", RSS_Symbol, "'"); + if(EnableSuperEMA) if(!InitSuperEMA(seData, SE_Symbol, SE_Timeframe, SE_SlippagePoints, SE_MagicNumber, SE_EmaFast, SE_EmaMid, SE_EmaSlow, SE_EmaTrendBars, @@ -626,6 +755,7 @@ int OnInit() (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : ""), + (EnableRSISecretSauce ? "RSISecretSauce " : ""), (EnableSuperEMA ? "SuperEMA " : ""), (EnableRSIConsolidation ? "RSIConsolidation " : ""), (EnableRSIReversalAsianEURUSD ? "RSIReversalAsianEURUSD " : ""), @@ -668,6 +798,9 @@ void OnDeinit(const int reason) if(EnableRSIScalpingXAUUSD) DeinitRSIScalping(rsXAUUSDData); + if(EnableRSISecretSauce) + DeinitRSISecretSauce(rssData); + if(EnableSuperEMA) DeinitSuperEMA(seData); @@ -693,6 +826,8 @@ void OnDeinit(const int reason) //+------------------------------------------------------------------+ void OnTick() { + United_RefreshScaledLots(); + if(EnableDarvasBox) ProcessDarvasBox(DB_Symbol); @@ -708,54 +843,62 @@ void OnTick() if(EnableRSIScalpingAPPL) ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, - RS_APPL_BarsToWait, LOT_RS_APPL, RS_APPL_MagicNumber, + RS_APPL_BarsToWait, g_Pos_RS_APPL, RS_APPL_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_APPL_UseTrailingStop, RS_APPL_TrailDistancePoints, RS_APPL_TrailActivationPoints); if(EnableRSIScalpingBTCUSD) ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, - RS_BTCUSD_BarsToWait, LOT_RS_BTCUSD, RS_BTCUSD_MagicNumber, + RS_BTCUSD_BarsToWait, g_Pos_RS_BTCUSD, RS_BTCUSD_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_BTCUSD_UseTrailingStop, RS_BTCUSD_TrailDistancePoints, RS_BTCUSD_TrailActivationPoints); if(EnableRSIScalpingNVDA) ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, - RS_NVDA_BarsToWait, LOT_RS_NVDA, RS_NVDA_MagicNumber, + RS_NVDA_BarsToWait, g_Pos_RS_NVDA, RS_NVDA_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_NVDA_UseTrailingStop, RS_NVDA_TrailDistancePoints, RS_NVDA_TrailActivationPoints); if(EnableRSIScalpingTSLA) ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, - RS_TSLA_BarsToWait, LOT_RS_TSLA, RS_TSLA_MagicNumber, + RS_TSLA_BarsToWait, g_Pos_RS_TSLA, RS_TSLA_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_TSLA_UseTrailingStop, RS_TSLA_TrailDistancePoints, RS_TSLA_TrailActivationPoints); if(EnableRSIScalpingXAUUSD) ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, - RS_XAUUSD_BarsToWait, LOT_RS_XAUUSD, RS_XAUUSD_MagicNumber, + RS_XAUUSD_BarsToWait, g_Pos_RS_XAUUSD, RS_XAUUSD_MagicNumber, RS_UseReversalEscape, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, - RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_XAUUSD_UseTrailingStop, RS_XAUUSD_TrailDistancePoints, RS_XAUUSD_TrailActivationPoints); + + if(EnableRSISecretSauce) + ProcessRSISecretSauce(rssData, g_RSS_LotSize); if(EnableRSIReversalAsianEURUSD) - ProcessRSIReversalAsian(rraEURUSDData, LOT_RRA_EURUSD); + ProcessRSIReversalAsian(rraEURUSDData, g_Pos_RRA_EURUSD); if(EnableRSIReversalAsianAUDUSD) - ProcessRSIReversalAsian(rraAUDUSDData, LOT_RRA_AUDUSD); + ProcessRSIReversalAsian(rraAUDUSDData, g_Pos_RRA_AUDUSD); if(EnableSuperEMA) - ProcessSuperEMA(seData, LOT_SE_SuperEMA); + ProcessSuperEMA(seData, g_Pos_SE); if(EnableRSIConsolidation) - ProcessRSIConsolidation(rcoData, LOT_RCO_RSIConsolidation); + ProcessRSIConsolidation(rcoData, g_Pos_RCO); if(EnableSimpleTrendlineBTCUSD) - ProcessSimpleTrendline(stBTCData, LOT_ST_BTCUSD); + ProcessSimpleTrendline(stBTCData, g_Pos_ST_BTCUSD); if(EnableSimpleTrendlineXAUUSD) - ProcessSimpleTrendline(stXAUData, LOT_ST_XAUUSD); + ProcessSimpleTrendline(stXAUData, g_Pos_ST_XAUUSD); } //+------------------------------------------------------------------+ diff --git a/frontline/united_template/_united-V2_exponential/report.png b/frontline/cluster-gold/report.png similarity index 100% rename from frontline/united_template/_united-V2_exponential/report.png rename to frontline/cluster-gold/report.png diff --git a/frontline/cluster-0/_united-V2/self-evaluate.mq5 b/frontline/cluster-gold/self-evaluate.mq5 similarity index 74% rename from frontline/cluster-0/_united-V2/self-evaluate.mq5 rename to frontline/cluster-gold/self-evaluate.mq5 index b9d92e9..971c874 100644 --- a/frontline/cluster-0/_united-V2/self-evaluate.mq5 +++ b/frontline/cluster-gold/self-evaluate.mq5 @@ -13,7 +13,6 @@ #include #include #include "MagicNumberHelpers.mqh" -#include "PerformanceEvaluator.mqh" //+------------------------------------------------------------------+ //| Strategy Enable/Disable Switches | @@ -62,7 +61,11 @@ input int ES_EMA_Periode = 46; input double ES_PreisSchwelle = 600.0; input double ES_SteigungSchwelle = 80.0; input int ES_ÜberwachungTimeout = 800; -input double ES_TrailingStop = 250.0; +input double ES_TrailingStop = 370.0; +input bool ES_UseTrailingStop = true; +input double ES_TrailingActivationPips = 0.0; +input bool ES_UseStaleStopLossExit = false; +input int ES_StaleStopLossSeconds = 33800; input double ES_LotGröße = 0.03; input int ES_MagicNumber = 12350; input bool ES_UseSpreadAdjustment = true; @@ -71,6 +74,11 @@ input bool ES_UseBarData = true; input int ES_MaxTradesPerCrossover = 9; input int ES_ProfitCheckBars = 18; input bool ES_CloseUnprofitableTrades = true; +input bool ES_UseWeeklyADXFilter = true; +input int ES_WeeklyADXPeriod = 15; +input double ES_WeeklyADXMin = 40.0; +input int ES_WeeklyADXBarShift = 2; +input bool ES_WeeklyADXUseDirection = true; //+------------------------------------------------------------------+ //| Strategy 3: RSICrossOverReversalXAUUSD | @@ -252,6 +260,44 @@ input double RS_XAUUSD_LotSize = 0.1; input int RS_XAUUSD_MagicNumber = 129102315; input int RS_XAUUSD_Slippage = 3; +input group "=== RSI Scalping Reversal escape (XAUUSD) ===" +input bool RS_UseReversalEscape = false; +input int RS_ReversalATRPeriod = 14; +input double RS_ReversalAdverseAtrMult = 5.25; +input int RS_ReversalSignsRequired = 2; +input double RS_ReversalRsiVelocity = 16.0; +input double RS_ReversalBodyAtrMult = 5.1; + +input group "=== RSI Scalping APPL — Trailing ===" +input bool RS_APPL_UseTrailingStop = true; +input double RS_APPL_TrailDistancePoints = 120.0; +input double RS_APPL_TrailActivationPoints = 0.0; + +input group "=== RSI Scalping BTCUSD — Trailing ===" +input bool RS_BTCUSD_UseTrailingStop = true; +input double RS_BTCUSD_TrailDistancePoints = 120.0; +input double RS_BTCUSD_TrailActivationPoints = 0.0; + +input group "=== RSI Scalping MSFT — Trailing ===" +input bool RS_MSFT_UseTrailingStop = true; +input double RS_MSFT_TrailDistancePoints = 375.0; +input double RS_MSFT_TrailActivationPoints = 75.0; + +input group "=== RSI Scalping NVDA — Trailing ===" +input bool RS_NVDA_UseTrailingStop = true; +input double RS_NVDA_TrailDistancePoints = 375.0; +input double RS_NVDA_TrailActivationPoints = 75.0; + +input group "=== RSI Scalping TSLA — Trailing ===" +input bool RS_TSLA_UseTrailingStop = true; +input double RS_TSLA_TrailDistancePoints = 900.0; +input double RS_TSLA_TrailActivationPoints = 950.0; + +input group "=== RSI Scalping XAUUSD — Trailing ===" +input bool RS_XAUUSD_UseTrailingStop = true; +input double RS_XAUUSD_TrailDistancePoints = 71.0; +input double RS_XAUUSD_TrailActivationPoints = 41.0; + //+------------------------------------------------------------------+ //| Global Variables - DarvasBox | //+------------------------------------------------------------------+ @@ -289,6 +335,7 @@ struct EMASlopeData { bool crossover_detected; datetime trade_open_time; datetime last_bar_time; + datetime es_last_sl_adjust_success_time; }; //+------------------------------------------------------------------+ @@ -371,19 +418,18 @@ RSIScalpingData rsTSLAData; RSIScalpingData rsXAUUSDData; //+------------------------------------------------------------------+ -//| Global Variables for Dynamic Lot Sizes | +//| Global Variables for lot sizes (from inputs below) | //+------------------------------------------------------------------+ -// All strategies start with minimum lot size for safety (will be adjusted by performance evaluator) -double g_DB_LotSize = 0.01; // DarvasBox uses fixed lot size -double g_ES_LotSize = 0.01; // EMA Slope Distance - start with minimum -double g_RC_LotSize = 0.01; // RSI CrossOver Reversal - start with minimum -double g_RM_LotSize = 0.01; // RSI MidPoint Hijack - start with minimum -double g_RS_APPL_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_BTCUSD_LotSize = 0.01; // Crypto - start with forex minimum (0.01) -double g_RS_MSFT_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_NVDA_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_TSLA_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) +double g_DB_LotSize = 0.01; +double g_ES_LotSize; +double g_RC_LotSize; +double g_RM_LotSize; +double g_RS_APPL_LotSize; +double g_RS_BTCUSD_LotSize; +double g_RS_MSFT_LotSize; +double g_RS_NVDA_LotSize; +double g_RS_TSLA_LotSize; +double g_RS_XAUUSD_LotSize; //+------------------------------------------------------------------+ //| Expert initialization function | @@ -391,148 +437,52 @@ double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) int OnInit() { int initResult = INIT_SUCCEEDED; - - // Initialize Performance Evaluator - InitPerformanceTracking(); - - // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + + g_ES_LotSize = ES_LotGröße; + g_RC_LotSize = RC_lotSize; + g_RM_LotSize = RM_InpLotSize; + g_RS_APPL_LotSize = RS_APPL_LotSize; + g_RS_BTCUSD_LotSize = RS_BTCUSD_LotSize; + g_RS_MSFT_LotSize = RS_MSFT_LotSize; + g_RS_NVDA_LotSize = RS_NVDA_LotSize; + g_RS_TSLA_LotSize = RS_TSLA_LotSize; + g_RS_XAUUSD_LotSize = RS_XAUUSD_LotSize; + if(EnableDarvasBox) - { if(!InitDarvasBox(DB_Symbol)) Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); - else - RegisterStrategy("DarvasBox", DB_MagicNumber, 0.01, DB_Symbol); // Fixed lot size - } - + if(EnableEMASlopeDistance) - { if(!InitEMASlopeDistance(ES_Symbol)) Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); - else - { - RegisterStrategy("EMASlopeDistance", ES_MagicNumber, ES_LotGröße, ES_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(ES_Symbol); - g_ES_LotSize = minLot; - } - } - + if(EnableRSICrossOverReversal) - { if(!InitRSICrossOverReversal(RC_Symbol)) Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); - else - { - RegisterStrategy("RSICrossOverReversal", RC_MagicNumber, RC_lotSize, RC_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RC_Symbol); - g_RC_LotSize = minLot; - } - } - + if(EnableRSIMidPointHijack) - { if(!InitRSIMidPointHijack(RM_Symbol)) Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); - else - { - RegisterStrategy("RSIMidPointHijack", RM_InpMagicNumberRSIFollow, RM_InpLotSize, RM_Symbol); - RegisterStrategy("RSIMidPointHijack_Reverse", RM_InpMagicNumberRSIReverse, RM_InpLotSize, RM_Symbol); - RegisterStrategy("RSIMidPointHijack_EMACross", RM_InpMagicNumberEMACross, RM_InpLotSize, RM_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RM_Symbol); - g_RM_LotSize = minLot; - } - } - - // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) - { InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); - RegisterStrategy("RSIScalpingAPPL", RS_APPL_MagicNumber, RS_APPL_LotSize, RS_APPL_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_APPL_Symbol); - g_RS_APPL_LotSize = minLot; - } - + if(EnableRSIScalpingBTCUSD) - { InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); - RegisterStrategy("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber, RS_BTCUSD_LotSize, RS_BTCUSD_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_BTCUSD_Symbol); - g_RS_BTCUSD_LotSize = minLot; - } - + if(EnableRSIScalpingMSFT) - { InitRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, RS_MSFT_MagicNumber, RS_MSFT_Slippage); - RegisterStrategy("RSIScalpingMSFT", RS_MSFT_MagicNumber, RS_MSFT_LotSize, RS_MSFT_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_MSFT_Symbol); - g_RS_MSFT_LotSize = minLot; - } - + if(EnableRSIScalpingNVDA) - { InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); - RegisterStrategy("RSIScalpingNVDA", RS_NVDA_MagicNumber, RS_NVDA_LotSize, RS_NVDA_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_NVDA_Symbol); - g_RS_NVDA_LotSize = minLot; - } - + if(EnableRSIScalpingTSLA) - { InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); - RegisterStrategy("RSIScalpingTSLA", RS_TSLA_MagicNumber, RS_TSLA_LotSize, RS_TSLA_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_TSLA_Symbol); - g_RS_TSLA_LotSize = minLot; - } - + if(EnableRSIScalpingXAUUSD) - { InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); - RegisterStrategy("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber, RS_XAUUSD_LotSize, RS_XAUUSD_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_XAUUSD_Symbol); - g_RS_XAUUSD_LotSize = minLot; - } - - // Load adjusted lot sizes from performance evaluator - if(PE_EnableAutoAdjustment) - { - double adjustedLot; - adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); - if(adjustedLot > 0) g_ES_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); - if(adjustedLot > 0) g_RC_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); - if(adjustedLot > 0) g_RM_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); - if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); - if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); - if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); - if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); - if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); - if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; - } - - Print("United EA initialized. Active strategies: ", + + Print("United EA (self-evaluate build) initialized. Active strategies: ", (EnableDarvasBox ? "DarvasBox " : ""), (EnableEMASlopeDistance ? "EMASlope " : ""), (EnableRSICrossOverReversal ? "RSICrossOver " : ""), @@ -543,10 +493,7 @@ int OnInit() (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : "")); - - if(PE_EnableLogging) - Print(GetPerformanceSummary()); - + return initResult; } @@ -593,41 +540,6 @@ void OnDeinit(const int reason) //+------------------------------------------------------------------+ void OnTick() { - // Process performance evaluation (checks for quarter end and adjusts lot sizes) - ProcessPerformanceEvaluation(); - - // Update lot sizes from performance evaluator if auto-adjustment is enabled - if(PE_EnableAutoAdjustment) - { - double adjustedLot; - adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); - if(adjustedLot > 0) g_ES_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); - if(adjustedLot > 0) g_RC_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); - if(adjustedLot > 0) g_RM_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); - if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); - if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); - if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); - if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); - if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); - if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; - } - if(EnableDarvasBox) ProcessDarvasBox(DB_Symbol); @@ -643,32 +555,50 @@ void OnTick() if(EnableRSIScalpingAPPL) ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, - RS_APPL_BarsToWait, g_RS_APPL_LotSize, RS_APPL_MagicNumber); + RS_APPL_BarsToWait, g_RS_APPL_LotSize, RS_APPL_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_APPL_UseTrailingStop, RS_APPL_TrailDistancePoints, RS_APPL_TrailActivationPoints); if(EnableRSIScalpingBTCUSD) ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, - RS_BTCUSD_BarsToWait, g_RS_BTCUSD_LotSize, RS_BTCUSD_MagicNumber); + RS_BTCUSD_BarsToWait, g_RS_BTCUSD_LotSize, RS_BTCUSD_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_BTCUSD_UseTrailingStop, RS_BTCUSD_TrailDistancePoints, RS_BTCUSD_TrailActivationPoints); if(EnableRSIScalpingMSFT) ProcessRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, RS_MSFT_RSI_Overbought, RS_MSFT_RSI_Oversold, RS_MSFT_RSI_Target_Buy, RS_MSFT_RSI_Target_Sell, - RS_MSFT_BarsToWait, g_RS_MSFT_LotSize, RS_MSFT_MagicNumber); + RS_MSFT_BarsToWait, g_RS_MSFT_LotSize, RS_MSFT_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_MSFT_UseTrailingStop, RS_MSFT_TrailDistancePoints, RS_MSFT_TrailActivationPoints); if(EnableRSIScalpingNVDA) ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, - RS_NVDA_BarsToWait, g_RS_NVDA_LotSize, RS_NVDA_MagicNumber); + RS_NVDA_BarsToWait, g_RS_NVDA_LotSize, RS_NVDA_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_NVDA_UseTrailingStop, RS_NVDA_TrailDistancePoints, RS_NVDA_TrailActivationPoints); if(EnableRSIScalpingTSLA) ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, - RS_TSLA_BarsToWait, g_RS_TSLA_LotSize, RS_TSLA_MagicNumber); + RS_TSLA_BarsToWait, g_RS_TSLA_LotSize, RS_TSLA_MagicNumber, + false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_TSLA_UseTrailingStop, RS_TSLA_TrailDistancePoints, RS_TSLA_TrailActivationPoints); if(EnableRSIScalpingXAUUSD) ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, - RS_XAUUSD_BarsToWait, g_RS_XAUUSD_LotSize, RS_XAUUSD_MagicNumber); + RS_XAUUSD_BarsToWait, g_RS_XAUUSD_LotSize, RS_XAUUSD_MagicNumber, + RS_UseReversalEscape, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, + RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult, + RS_XAUUSD_UseTrailingStop, RS_XAUUSD_TrailDistancePoints, RS_XAUUSD_TrailActivationPoints); } //+------------------------------------------------------------------+ diff --git a/frontline/united_template/_united-V2/PerformanceEvaluator.mqh b/frontline/united_template/_united-V2/PerformanceEvaluator.mqh deleted file mode 100644 index 991f603..0000000 --- a/frontline/united_template/_united-V2/PerformanceEvaluator.mqh +++ /dev/null @@ -1,607 +0,0 @@ -//+------------------------------------------------------------------+ -//| PerformanceEvaluator.mqh | -//| Copyright 2025, MetaQuotes Ltd. | -//| https://www.mql5.com | -//+------------------------------------------------------------------+ -#property copyright "Copyright 2025, MetaQuotes Ltd." -#property link "https://www.mql5.com" -#property version "1.00" - -//+------------------------------------------------------------------+ -//| Performance Metrics Structure | -//+------------------------------------------------------------------+ -struct StrategyPerformance { - string strategyName; - string symbol; // Store symbol to determine if it's a stock - int magicNumber; - double initialLotSize; - double currentLotSize; - double quarterProfit; - double quarterTrades; - double quarterWins; - double quarterLosses; - double maxDrawdown; - double winRate; - datetime quarterStart; - datetime quarterEnd; - bool isActive; - bool inPenaltyMode; // True if strategy is in penalty (worst performer) - double lotSizeBeforePenalty; // Store lot size before penalty - datetime penaltyStartTime; // When penalty started -}; - -//+------------------------------------------------------------------+ -//| Global Performance Tracking | -//+------------------------------------------------------------------+ -StrategyPerformance strategyPerformances[]; -int totalStrategies = 0; -datetime lastMonthCheck = 0; -datetime currentMonthStart = 0; -datetime currentMonthEnd = 0; - -//+------------------------------------------------------------------+ -//| Performance Adjustment Parameters | -//+------------------------------------------------------------------+ -input group "=== Performance Evaluation Settings ===" -input bool PE_EnableAutoAdjustment = true; // Enable automatic lot size adjustment -input double PE_LotSizeIncreasePercent = 10.0; // % increase for top-ranked strategies -input double PE_LotSizeDecreasePercent = 10.0; // % decrease for bottom-ranked strategies -input double PE_MinLotSize = 0.01; // Minimum lot size for forex/crypto -input double PE_MinLotSizeStocks = 5.0; // Minimum lot size for stocks (5-10 range) -input double PE_MaxLotSize = 100.0; // Maximum lot size after adjustment -input int PE_TopPerformersCount = 3; // Number of top strategies to increase lot size -input int PE_BottomPerformersCount = 3; // Number of bottom strategies to decrease lot size -input bool PE_UseWinRateWeight = true; // Consider win rate in ranking (50% profit, 50% win rate) -input bool PE_EnableBlitzPlay = true; // Enable blitz play: worst performer gets minimum lot size penalty -input bool PE_EnableLogging = true; // Enable performance logging - -//+------------------------------------------------------------------+ -//| Initialize Performance Tracking | -//+------------------------------------------------------------------+ -void InitPerformanceTracking() -{ - // Calculate current month dates - MqlDateTime dt; - TimeToStruct(TimeCurrent(), dt); - - // Determine month start (first day of current month) - dt.day = 1; - dt.hour = 0; - dt.min = 0; - dt.sec = 0; - currentMonthStart = StructToTime(dt); - - // Calculate month end (first day of next month - 1 second) - dt.mon += 1; - if(dt.mon > 12) - { - dt.mon = 1; - dt.year++; - } - currentMonthEnd = StructToTime(dt) - 1; // End of last day of month - - lastMonthCheck = TimeCurrent(); - - if(PE_EnableLogging) - { - Print("Performance Evaluator: Initialized"); - Print("Current Month Start: ", TimeToString(currentMonthStart)); - Print("Current Month End: ", TimeToString(currentMonthEnd)); - } -} - -//+------------------------------------------------------------------+ -//| Check if Symbol is a Stock | -//+------------------------------------------------------------------+ -bool IsStockSymbol(string symbol) -{ - // Check if symbol contains common stock indicators - if(StringFind(symbol, ".US") >= 0) return true; - if(StringFind(symbol, "NASDAQ:") >= 0) return true; - if(StringFind(symbol, "NYSE:") >= 0) return true; - - // Note: Symbol category check removed to avoid enum conversion issues - // String-based checks (.US, NASDAQ:, NYSE:, common tickers) are sufficient - - // Common stock tickers (without .US suffix) - string commonStocks[] = {"AAPL", "MSFT", "NVDA", "TSLA", "GOOGL", "AMZN", "META", "NFLX"}; - for(int i = 0; i < ArraySize(commonStocks); i++) - { - if(StringFind(symbol, commonStocks[i]) == 0) return true; - } - - return false; -} - -//+------------------------------------------------------------------+ -//| Get Minimum Lot Size for Symbol | -//+------------------------------------------------------------------+ -double GetMinLotSizeForSymbol(string symbol) -{ - if(IsStockSymbol(symbol)) - return PE_MinLotSizeStocks; - else - return PE_MinLotSize; -} - -//+------------------------------------------------------------------+ -//| Register Strategy for Performance Tracking | -//+------------------------------------------------------------------+ -void RegisterStrategy(string strategyName, int magicNumber, double initialLotSize, string symbol = "") -{ - // Check if strategy already registered - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber) - { - if(PE_EnableLogging) - Print("Performance Evaluator: Strategy '", strategyName, "' already registered"); - return; - } - } - - // Add new strategy - int newSize = ArraySize(strategyPerformances) + 1; - ArrayResize(strategyPerformances, newSize); - - strategyPerformances[newSize - 1].strategyName = strategyName; - strategyPerformances[newSize - 1].symbol = symbol; - strategyPerformances[newSize - 1].magicNumber = magicNumber; - strategyPerformances[newSize - 1].initialLotSize = initialLotSize; - // Start with minimum lot size for safety (symbol-specific minimum) - double minLot = GetMinLotSizeForSymbol(symbol); - strategyPerformances[newSize - 1].currentLotSize = minLot; - strategyPerformances[newSize - 1].quarterProfit = 0.0; - strategyPerformances[newSize - 1].quarterTrades = 0; - strategyPerformances[newSize - 1].quarterWins = 0; - strategyPerformances[newSize - 1].quarterLosses = 0; - strategyPerformances[newSize - 1].maxDrawdown = 0.0; - strategyPerformances[newSize - 1].winRate = 0.0; - strategyPerformances[newSize - 1].quarterStart = currentMonthStart; - strategyPerformances[newSize - 1].quarterEnd = currentMonthEnd; - strategyPerformances[newSize - 1].isActive = true; - strategyPerformances[newSize - 1].inPenaltyMode = false; - strategyPerformances[newSize - 1].lotSizeBeforePenalty = initialLotSize; - strategyPerformances[newSize - 1].penaltyStartTime = 0; - - totalStrategies = newSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Registered strategy '", strategyName, - "' (Magic: ", magicNumber, ", Initial Lot: ", initialLotSize, ")"); -} - -//+------------------------------------------------------------------+ -//| Update Strategy Performance Metrics | -//+------------------------------------------------------------------+ -void UpdateStrategyPerformance(string strategyName, int magicNumber) -{ - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber && - strategyPerformances[i].isActive) - { - // Calculate performance for current quarter - double totalProfit = 0.0; - int totalTrades = 0; - int wins = 0; - int losses = 0; - double maxDD = 0.0; - double peakBalance = 0.0; - - // Scan all closed deals in current quarter - datetime quarterStart = strategyPerformances[i].quarterStart; - datetime quarterEnd = strategyPerformances[i].quarterEnd; - - // Select history for the quarter - if(HistorySelect(quarterStart, quarterEnd)) - { - int totalDeals = HistoryDealsTotal(); - for(int j = 0; j < totalDeals; j++) - { - ulong ticket = HistoryDealGetTicket(j); - if(ticket > 0) - { - long dealMagic = HistoryDealGetInteger(ticket, DEAL_MAGIC); - if(dealMagic == magicNumber) - { - double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); - double swap = HistoryDealGetDouble(ticket, DEAL_SWAP); - double commission = HistoryDealGetDouble(ticket, DEAL_COMMISSION); - double totalDealProfit = profit + swap + commission; - - totalProfit += totalDealProfit; - totalTrades++; - - if(totalDealProfit > 0) - wins++; - else if(totalDealProfit < 0) - losses++; - } - } - } - } - - // Calculate win rate - double winRate = 0.0; - if(totalTrades > 0) - winRate = (double)wins / (double)totalTrades * 100.0; - - // Update metrics - strategyPerformances[i].quarterProfit = totalProfit; - strategyPerformances[i].quarterTrades = totalTrades; - strategyPerformances[i].quarterWins = wins; - strategyPerformances[i].quarterLosses = losses; - strategyPerformances[i].winRate = winRate; - - break; - } - } -} - -//+------------------------------------------------------------------+ -//| Strategy Ranking Structure | -//+------------------------------------------------------------------+ -struct StrategyRank { - int index; - double score; -}; - -//+------------------------------------------------------------------+ -//| Calculate Strategy Score for Ranking | -//+------------------------------------------------------------------+ -double CalculateStrategyScore(int strategyIndex) -{ - double profit = strategyPerformances[strategyIndex].quarterProfit; - double winRate = strategyPerformances[strategyIndex].winRate; - double trades = strategyPerformances[strategyIndex].quarterTrades; - - // Normalize profit (scale to 0-100 range, assuming max profit of $1000) - double normalizedProfit = MathMin(profit / 10.0, 100.0); - if(profit < 0) normalizedProfit = profit / 5.0; // Penalize losses more - - // Calculate score - double score = 0.0; - if(PE_UseWinRateWeight) - { - // 50% profit, 50% win rate (if enough trades) - if(trades >= 5) - score = (normalizedProfit * 0.5) + (winRate * 0.5); - else - score = normalizedProfit; // Not enough trades, use profit only - } - else - { - // Profit only - score = normalizedProfit; - } - - return score; -} - -//+------------------------------------------------------------------+ -//| Check if Month Ended and Evaluate Performance | -//+------------------------------------------------------------------+ -void CheckMonthEnd() -{ - datetime now = TimeCurrent(); - - // Check if we've entered a new month - if(now >= currentMonthEnd) - { - if(PE_EnableLogging) - Print("Performance Evaluator: Month ended. Evaluating and ranking strategies..."); - - // Update performance metrics for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - UpdateStrategyPerformance(strategyPerformances[i].strategyName, - strategyPerformances[i].magicNumber); - } - } - - // Rank strategies - int activeCount = 0; - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - activeCount++; - } - - if(activeCount > 0) - { - // Create ranking array - StrategyRank ranks[]; - ArrayResize(ranks, activeCount); - int rankIndex = 0; - - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - ranks[rankIndex].index = i; - ranks[rankIndex].score = CalculateStrategyScore(i); - rankIndex++; - } - } - - // Sort by score (descending - highest score first) - for(int i = 0; i < activeCount - 1; i++) - { - for(int j = i + 1; j < activeCount; j++) - { - if(ranks[j].score > ranks[i].score) - { - StrategyRank temp = ranks[i]; - ranks[i] = ranks[j]; - ranks[j] = temp; - } - } - } - - // Adjust lot sizes based on ranking - if(PE_EnableAutoAdjustment) - { - // Increase top performers (skip if in penalty mode) - int topCount = MathMin(PE_TopPerformersCount, activeCount); - for(int i = 0; i < topCount; i++) - { - int strategyIdx = ranks[i].index; - - // Skip if strategy is in penalty mode - if(strategyPerformances[strategyIdx].inPenaltyMode) - continue; - - double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; - double newLotSize = oldLotSize * (1.0 + PE_LotSizeIncreasePercent / 100.0); - - if(newLotSize > PE_MaxLotSize) - newLotSize = PE_MaxLotSize; - - strategyPerformances[strategyIdx].currentLotSize = newLotSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Rank #", (i+1), " - Increasing '", - strategyPerformances[strategyIdx].strategyName, - "' lot size from ", oldLotSize, " to ", newLotSize, - " (Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); - } - - // Decrease bottom performers (skip worst one if blitz play is enabled) - int bottomCount = MathMin(PE_BottomPerformersCount, activeCount); - int startIdx = activeCount - bottomCount; - - // If blitz play is enabled, skip the worst performer (it will get minimum penalty) - if(PE_EnableBlitzPlay && activeCount > 0) - startIdx = activeCount - bottomCount + 1; - - for(int i = startIdx; i < activeCount; i++) - { - int strategyIdx = ranks[i].index; - - // Skip if strategy is in penalty mode - if(strategyPerformances[strategyIdx].inPenaltyMode) - continue; - - double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; - double newLotSize = oldLotSize * (1.0 - PE_LotSizeDecreasePercent / 100.0); - - // Use symbol-specific minimum lot size - double minLot = GetMinLotSizeForSymbol(strategyPerformances[strategyIdx].symbol); - if(newLotSize < minLot) - newLotSize = minLot; - - strategyPerformances[strategyIdx].currentLotSize = newLotSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Rank #", (i+1), " - Decreasing '", - strategyPerformances[strategyIdx].strategyName, - "' lot size from ", oldLotSize, " to ", newLotSize, - " (Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); - } - } - - // Blitz Play: Apply penalty to worst performer - if(PE_EnableBlitzPlay && activeCount > 0) - { - // Find worst performer (last in ranking) - int worstIdx = ranks[activeCount - 1].index; - - // Remove penalty from previous worst performer (if any) - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) - { - // Check if penalty period has passed (one month) - if(now - strategyPerformances[i].penaltyStartTime >= 2592000) // ~30 days - { - // Restore lot size to before penalty - strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; - strategyPerformances[i].inPenaltyMode = false; - strategyPerformances[i].penaltyStartTime = 0; - - if(PE_EnableLogging) - Print("Blitz Play: Penalty removed from '", strategyPerformances[i].strategyName, - "'. Lot size restored to ", strategyPerformances[i].currentLotSize); - } - } - } - - // Apply penalty to new worst performer - if(!strategyPerformances[worstIdx].inPenaltyMode) - { - strategyPerformances[worstIdx].lotSizeBeforePenalty = strategyPerformances[worstIdx].currentLotSize; - // Use symbol-specific minimum lot size - double minLot = GetMinLotSizeForSymbol(strategyPerformances[worstIdx].symbol); - strategyPerformances[worstIdx].currentLotSize = minLot; - strategyPerformances[worstIdx].inPenaltyMode = true; - strategyPerformances[worstIdx].penaltyStartTime = now; - - if(PE_EnableLogging) - Print("Blitz Play: WORST PERFORMER - '", strategyPerformances[worstIdx].strategyName, - "' penalized! Lot size reduced from ", strategyPerformances[worstIdx].lotSizeBeforePenalty, - " to minimum ", minLot, " (Score: ", DoubleToString(ranks[activeCount - 1].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[worstIdx].quarterProfit, 2), ")"); - } - } - - // Log performance report - if(PE_EnableLogging) - { - Print("=== Monthly Performance Ranking ==="); - for(int i = 0; i < activeCount; i++) - { - int strategyIdx = ranks[i].index; - Print("Rank #", (i+1), ": ", strategyPerformances[strategyIdx].strategyName, - " - Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%", - ", Trades: ", (int)strategyPerformances[strategyIdx].quarterTrades, - ", Lot Size: ", DoubleToString(strategyPerformances[strategyIdx].currentLotSize, 2)); - } - Print("==================================="); - } - } - - // Reset month metrics for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - strategyPerformances[i].quarterProfit = 0.0; - strategyPerformances[i].quarterTrades = 0; - strategyPerformances[i].quarterWins = 0; - strategyPerformances[i].quarterLosses = 0; - strategyPerformances[i].maxDrawdown = 0.0; - strategyPerformances[i].winRate = 0.0; - } - } - - // Update month dates - MqlDateTime dt; - TimeToStruct(now, dt); - - // First day of current month - dt.day = 1; - dt.hour = 0; - dt.min = 0; - dt.sec = 0; - currentMonthStart = StructToTime(dt); - - // First day of next month - 1 second - dt.mon += 1; - if(dt.mon > 12) - { - dt.mon = 1; - dt.year++; - } - currentMonthEnd = StructToTime(dt) - 1; - - // Update month dates for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - strategyPerformances[i].quarterStart = currentMonthStart; - strategyPerformances[i].quarterEnd = currentMonthEnd; - } - - lastMonthCheck = now; - } -} - -//+------------------------------------------------------------------+ -//| Get Current Lot Size for Strategy | -//+------------------------------------------------------------------+ -double GetStrategyLotSize(string strategyName, int magicNumber) -{ - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber && - strategyPerformances[i].isActive) - { - return strategyPerformances[i].currentLotSize; - } - } - return 0.0; -} - -//+------------------------------------------------------------------+ -//| Process Performance Evaluation (call from OnTick) | -//+------------------------------------------------------------------+ -void ProcessPerformanceEvaluation() -{ - // Check if month ended - CheckMonthEnd(); - - // Check for penalty expiration (blitz play) - if(PE_EnableBlitzPlay) - { - datetime now = TimeCurrent(); - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) - { - // Check if penalty period has passed (one month = ~30 days) - if(now - strategyPerformances[i].penaltyStartTime >= 2592000) - { - // Restore lot size to before penalty - strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; - strategyPerformances[i].inPenaltyMode = false; - strategyPerformances[i].penaltyStartTime = 0; - - if(PE_EnableLogging) - Print("Blitz Play: Penalty expired for '", strategyPerformances[i].strategyName, - "'. Lot size restored to ", strategyPerformances[i].currentLotSize); - } - } - } - } - - // Update performance metrics periodically (every hour) - static datetime lastUpdate = 0; - if(TimeCurrent() - lastUpdate >= 3600) - { - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - UpdateStrategyPerformance(strategyPerformances[i].strategyName, - strategyPerformances[i].magicNumber); - } - } - lastUpdate = TimeCurrent(); - } -} - -//+------------------------------------------------------------------+ -//| Get Performance Summary | -//+------------------------------------------------------------------+ -string GetPerformanceSummary() -{ - string summary = "\n=== Performance Summary ===\n"; - summary += "Current Month: " + TimeToString(currentMonthStart) + " to " + TimeToString(currentMonthEnd) + "\n\n"; - - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - summary += strategyPerformances[i].strategyName + ":\n"; - summary += " Profit: $" + DoubleToString(strategyPerformances[i].quarterProfit, 2) + "\n"; - summary += " Trades: " + IntegerToString((int)strategyPerformances[i].quarterTrades) + "\n"; - summary += " Win Rate: " + DoubleToString(strategyPerformances[i].winRate, 2) + "%\n"; - summary += " Lot Size: " + DoubleToString(strategyPerformances[i].currentLotSize, 2) + "\n\n"; - } - } - - return summary; -} - -//+------------------------------------------------------------------+ diff --git a/frontline/united_template/_united-V2/Strategies/DarvasBoxStrategy.mqh b/frontline/united_template/_united-V2/Strategies/DarvasBoxStrategy.mqh index 6c2d7d5..62e6450 100644 --- a/frontline/united_template/_united-V2/Strategies/DarvasBoxStrategy.mqh +++ b/frontline/united_template/_united-V2/Strategies/DarvasBoxStrategy.mqh @@ -1,6 +1,12 @@ //+------------------------------------------------------------------+ //| DarvasBoxStrategy.mqh | //+------------------------------------------------------------------+ +#if defined(CLUSTER0_ORCHESTRATOR) || defined(UNITED_V2_DYNAMIC_LOTS) +extern double g_DB_LotSize; +#define DARVAS_TRADE_LOT (g_DB_LotSize) +#else +#define DARVAS_TRADE_LOT 0.01 +#endif bool InitDarvasBox(string symbol) { @@ -195,9 +201,9 @@ bool PlaceOrder(ENUM_ORDER_TYPE orderType, double price, double sl, double tp) // Use market price (0) instead of explicit price - this ensures market order execution // In backtesting, explicit price might fail if price has moved if(orderType == ORDER_TYPE_BUY) - result = dbData.trade.Buy(0.01, dbData.symbol, 0, sl, tp, "Darvas Box Breakout"); + result = dbData.trade.Buy(DARVAS_TRADE_LOT, dbData.symbol, 0, sl, tp, "Darvas Box Breakout"); else - result = dbData.trade.Sell(0.01, dbData.symbol, 0, sl, tp, "Darvas Box Breakdown"); + result = dbData.trade.Sell(DARVAS_TRADE_LOT, dbData.symbol, 0, sl, tp, "Darvas Box Breakdown"); // Always log errors, success only if logging enabled if(result) diff --git a/frontline/united_template/_united-V2/Strategies/SimpleTrendlineStrategy.mqh b/frontline/united_template/_united-V2/Strategies/SimpleTrendlineStrategy.mqh new file mode 100644 index 0000000..6341b88 --- /dev/null +++ b/frontline/united_template/_united-V2/Strategies/SimpleTrendlineStrategy.mqh @@ -0,0 +1,318 @@ +//+------------------------------------------------------------------+ +//| SimpleTrendlineStrategy.mqh | +//+------------------------------------------------------------------+ +#ifndef SIMPLE_TRENDLINE_STRATEGY_MQH +#define SIMPLE_TRENDLINE_STRATEGY_MQH + +struct SimpleTrendlineModel +{ + datetime t1; + datetime t2; + datetime t3; + double a; + double b; + bool valid; +}; + +struct SimpleTrendlineData +{ + string symbol; + bool isInitialized; + CTrade trade; + ENUM_TIMEFRAMES signalTF; + ENUM_TIMEFRAMES higherTF; + int maPeriod; + ENUM_MA_METHOD maMethod; + ENUM_APPLIED_PRICE appliedPrice; + int htfBarsToScan; + double touchTolerancePoints; + double breakBufferPoints; + ulong magic; + bool drawTrendline; + int maHandle; + datetime lastSignalBarTime; + string lineName; +}; + +double ST_NormalizeVolume(const string sym, double vol) +{ + double minLot = SymbolInfoDouble(sym, SYMBOL_VOLUME_MIN); + double maxLot = SymbolInfoDouble(sym, SYMBOL_VOLUME_MAX); + double step = SymbolInfoDouble(sym, SYMBOL_VOLUME_STEP); + if(step > 0.0) + vol = MathFloor(vol / step) * step; + if(vol < minLot) + vol = minLot; + if(vol > maxLot) + vol = maxLot; + return vol; +} + +bool ST_GetPosition(const string sym, const ulong magic, ENUM_POSITION_TYPE &type, double &volume) +{ + if(!PositionSelectByMagic(sym, magic)) + return false; + type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + volume = PositionGetDouble(POSITION_VOLUME); + return true; +} + +int ST_FindRecentCrossPoints(SimpleTrendlineData &d, datetime ×[], double &prices[]) +{ + ArrayResize(times, 0); + ArrayResize(prices, 0); + if(d.maHandle == INVALID_HANDLE) + return 0; + + int needBars = MathMax(d.htfBarsToScan, d.maPeriod + 20); + MqlRates rates[]; + double maBuf[]; + ArraySetAsSeries(rates, true); + ArraySetAsSeries(maBuf, true); + + int copiedRates = CopyRates(d.symbol, d.higherTF, 0, needBars, rates); + int copiedMa = CopyBuffer(d.maHandle, 0, 0, needBars, maBuf); + if(copiedRates <= 5 || copiedMa <= 5) + return 0; + + int bars = MathMin(copiedRates, copiedMa); + for(int i = 2; i < bars - 1; i++) + { + double d0 = rates[i].close - maBuf[i]; + double d1 = rates[i + 1].close - maBuf[i + 1]; + if(d0 == 0.0 || d1 == 0.0 || (d0 * d1 < 0.0)) + { + int n = ArraySize(times); + ArrayResize(times, n + 1); + ArrayResize(prices, n + 1); + times[n] = rates[i].time; + prices[n] = rates[i].close; + if(ArraySize(times) >= 3) + break; + } + } + return ArraySize(times); +} + +bool ST_BuildTrendline(SimpleTrendlineData &d, SimpleTrendlineModel &m) +{ + m.valid = false; + datetime ts[]; + double ps[]; + if(ST_FindRecentCrossPoints(d, ts, ps) < 3) + return false; + + datetime tOld[3]; + double pOld[3]; + for(int i = 0; i < 3; i++) + { + tOld[i] = ts[2 - i]; + pOld[i] = ps[2 - i]; + } + + long t0 = (long)tOld[0]; + double x1 = 0.0; + double x2 = (double)((long)tOld[1] - t0); + double x3 = (double)((long)tOld[2] - t0); + double y1 = pOld[0]; + double y2 = pOld[1]; + double y3 = pOld[2]; + + double sx = x1 + x2 + x3; + double sy = y1 + y2 + y3; + double sxx = x1 * x1 + x2 * x2 + x3 * x3; + double sxy = x1 * y1 + x2 * y2 + x3 * y3; + double den = 3.0 * sxx - sx * sx; + if(MathAbs(den) < 1e-10) + return false; + + m.a = (3.0 * sxy - sx * sy) / den; + m.b = (sy - m.a * sx) / 3.0; + m.t1 = tOld[0]; + m.t2 = tOld[1]; + m.t3 = tOld[2]; + m.valid = true; + return true; +} + +double ST_LinePriceAt(const SimpleTrendlineModel &m, const datetime t) +{ + if(!m.valid) + return 0.0; + double x = (double)((long)t - (long)m.t1); + return m.a * x + m.b; +} + +void ST_DrawTrendline(SimpleTrendlineData &d, const SimpleTrendlineModel &m) +{ + if(!d.drawTrendline || !m.valid || d.symbol != _Symbol) + return; + + datetime tStart = m.t1; + datetime tEnd = iTime(d.symbol, d.signalTF, 0); + if(tEnd <= tStart) + tEnd = m.t3 + PeriodSeconds(d.signalTF) * 20; + + double pStart = ST_LinePriceAt(m, tStart); + double pEnd = ST_LinePriceAt(m, tEnd); + + if(ObjectFind(0, d.lineName) < 0) + ObjectCreate(0, d.lineName, OBJ_TREND, 0, tStart, pStart, tEnd, pEnd); + else + { + ObjectMove(0, d.lineName, 0, tStart, pStart); + ObjectMove(0, d.lineName, 1, tEnd, pEnd); + } + + ObjectSetInteger(0, d.lineName, OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, d.lineName, OBJPROP_COLOR, clrGold); + ObjectSetInteger(0, d.lineName, OBJPROP_WIDTH, 2); +} + +void ST_TryExitOnBreak(SimpleTrendlineData &d, const SimpleTrendlineModel &m) +{ + ENUM_POSITION_TYPE posType; + double vol; + if(!ST_GetPosition(d.symbol, d.magic, posType, vol)) + return; + + double close1 = iClose(d.symbol, d.signalTF, 1); + datetime t1 = iTime(d.symbol, d.signalTF, 1); + double line1 = ST_LinePriceAt(m, t1); + double buf = d.breakBufferPoints * SymbolInfoDouble(d.symbol, SYMBOL_POINT); + + bool closePos = false; + if(posType == POSITION_TYPE_BUY && close1 < (line1 - buf)) + closePos = true; + if(posType == POSITION_TYPE_SELL && close1 > (line1 + buf)) + closePos = true; + + if(closePos) + ClosePositionByMagic(d.trade, d.symbol, d.magic); +} + +void ST_TryPullbackEntry(SimpleTrendlineData &d, const SimpleTrendlineModel &m, const double lots) +{ + if(PositionExistsByMagic(d.symbol, d.magic)) + return; + + MqlRates b1[], b2[]; + ArraySetAsSeries(b1, true); + ArraySetAsSeries(b2, true); + if(CopyRates(d.symbol, d.signalTF, 1, 1, b1) != 1) + return; + if(CopyRates(d.symbol, d.signalTF, 2, 1, b2) != 1) + return; + if(ArraySize(b1) < 1 || ArraySize(b2) < 1) + return; + + double line1 = ST_LinePriceAt(m, b1[0].time); + double tol = d.touchTolerancePoints * SymbolInfoDouble(d.symbol, SYMBOL_POINT); + bool upTrend = (m.a > 0.0); + bool downTrend = (m.a < 0.0); + double vol = ST_NormalizeVolume(d.symbol, lots); + + if(upTrend) + { + bool touched = (b1[0].low <= (line1 + tol)); + bool reclaim = (b1[0].close > line1); + bool bullish = (b1[0].close > b1[0].open); + bool stillHealthy = (b2[0].close >= ST_LinePriceAt(m, b2[0].time) - tol); + if(touched && reclaim && bullish && stillHealthy) + { + if(!d.trade.Buy(vol, d.symbol, 0.0, 0.0, 0.0, "SimpleTrendline BUY")) + Print("SimpleTrendline BUY failed [", d.symbol, "] retcode=", d.trade.ResultRetcode(), " ", d.trade.ResultRetcodeDescription()); + } + } + else if(downTrend) + { + bool touched = (b1[0].high >= (line1 - tol)); + bool reject = (b1[0].close < line1); + bool bearish = (b1[0].close < b1[0].open); + bool stillWeak = (b2[0].close <= ST_LinePriceAt(m, b2[0].time) + tol); + if(touched && reject && bearish && stillWeak) + { + if(!d.trade.Sell(vol, d.symbol, 0.0, 0.0, 0.0, "SimpleTrendline SELL")) + Print("SimpleTrendline SELL failed [", d.symbol, "] retcode=", d.trade.ResultRetcode(), " ", d.trade.ResultRetcodeDescription()); + } + } +} + +bool InitSimpleTrendline(SimpleTrendlineData &d, + const string symbol, + const ENUM_TIMEFRAMES signalTF, + const ENUM_TIMEFRAMES higherTF, + const int maPeriod, + const ENUM_MA_METHOD maMethod, + const ENUM_APPLIED_PRICE appliedPrice, + const int htfBarsToScan, + const double touchTolerancePoints, + const double breakBufferPoints, + const ulong magic, + const bool drawTrendline) +{ + d.isInitialized = false; + d.symbol = symbol; + StringTrimLeft(d.symbol); + StringTrimRight(d.symbol); + if(StringLen(d.symbol) == 0) + d.symbol = _Symbol; + + if(!SymbolSelect(d.symbol, true)) + return false; + + d.signalTF = signalTF; + d.higherTF = higherTF; + d.maPeriod = maPeriod; + d.maMethod = maMethod; + d.appliedPrice = appliedPrice; + d.htfBarsToScan = htfBarsToScan; + d.touchTolerancePoints = touchTolerancePoints; + d.breakBufferPoints = breakBufferPoints; + d.magic = magic; + d.drawTrendline = drawTrendline; + d.lastSignalBarTime = 0; + d.lineName = "SimpleTrendline_" + d.symbol + "_" + IntegerToString((int)d.magic); + + d.trade.SetExpertMagicNumber((long)d.magic); + d.trade.SetTypeFillingBySymbol(d.symbol); + d.trade.SetDeviationInPoints(20); + + d.maHandle = iMA(d.symbol, d.higherTF, d.maPeriod, 0, d.maMethod, d.appliedPrice); + if(d.maHandle == INVALID_HANDLE) + return false; + + d.isInitialized = true; + return true; +} + +void DeinitSimpleTrendline(SimpleTrendlineData &d) +{ + if(d.maHandle != INVALID_HANDLE) + IndicatorRelease(d.maHandle); + d.maHandle = INVALID_HANDLE; + if(ObjectFind(0, d.lineName) >= 0) + ObjectDelete(0, d.lineName); + d.isInitialized = false; +} + +void ProcessSimpleTrendline(SimpleTrendlineData &d, const double lots) +{ + if(!d.isInitialized) + return; + + datetime bar0 = iTime(d.symbol, d.signalTF, 0); + if(bar0 == 0 || bar0 == d.lastSignalBarTime) + return; + d.lastSignalBarTime = bar0; + + SimpleTrendlineModel m; + if(!ST_BuildTrendline(d, m)) + return; + + ST_DrawTrendline(d, m); + ST_TryExitOnBreak(d, m); + ST_TryPullbackEntry(d, m, lots); +} + +#endif // SIMPLE_TRENDLINE_STRATEGY_MQH diff --git a/frontline/united_template/_united-V2/main.mq5 b/frontline/united_template/_united-V2/main.mq5 index 35e7106..2cbee46 100644 --- a/frontline/united_template/_united-V2/main.mq5 +++ b/frontline/united_template/_united-V2/main.mq5 @@ -5,14 +5,17 @@ //+------------------------------------------------------------------+ #property copyright "Copyright 2025, MetaQuotes Ltd." #property link "https://www.mql5.com" -#property version "1.00" +#property version "1.10" #property strict +#property description "LOT_* nominal at ORCH_ReferenceBalance; scale = balance/equity ÷ reference (clamped). No performance-evaluator ranking." #include #include #include #include #include "MagicNumberHelpers.mqh" +#define UNITED_V2_DYNAMIC_LOTS +double g_DB_LotSize; // Include strategy implementations early so structs are available #include "Strategies/DarvasBoxStrategy.mqh" #include "Strategies/EMASlopeDistanceStrategy.mqh" @@ -22,6 +25,7 @@ #include "Strategies/SuperEMAStrategy.mqh" #include "Strategies/RSIReversalAsianStrategy.mqh" #include "Strategies/RSIConsolidationStrategy.mqh" +#include "Strategies/SimpleTrendlineStrategy.mqh" //+------------------------------------------------------------------+ //| Global Lot Size Variables (for dynamic lot sizing) | @@ -30,6 +34,18 @@ double g_ES_LotSize; // EMA Slope Distance lot size double g_RC_LotSize; // RSI CrossOver Reversal lot size double g_RM_LotSize; // RSI MidPoint Hijack lot size +double g_Pos_RS_APPL; +double g_Pos_RS_BTCUSD; +double g_Pos_RS_NVDA; +double g_Pos_RS_TSLA; +double g_Pos_RS_XAUUSD; +double g_Pos_RRA_EURUSD; +double g_Pos_RRA_AUDUSD; +double g_Pos_SE; +double g_Pos_RCO; +double g_Pos_ST_BTCUSD; +double g_Pos_ST_XAUUSD; + bool United_MayOpenNewEntry(const string symbol, const ulong magic, const bool isBuy) { if(PositionExistsByMagic(symbol, magic)) @@ -54,8 +70,11 @@ input bool EnableSuperEMA = true; input bool EnableRSIConsolidation = true; input bool EnableRSIReversalAsianEURUSD = true; input bool EnableRSIReversalAsianAUDUSD = true; +input bool EnableSimpleTrendlineBTCUSD = true; +input bool EnableSimpleTrendlineXAUUSD = true; input group "=== Centralized Lot Size (Granular Per Robot) ===" +input double LOT_DB_DarvasBox = 0.01; input double LOT_ES_EMASlopeDistance = 0.05; input double LOT_RC_RSICrossOver = 0.1; input double LOT_RM_RSIMidPointHijack = 0.01; @@ -68,6 +87,15 @@ input double LOT_RRA_EURUSD = 0.01; input double LOT_RRA_AUDUSD = 0.10; input double LOT_SE_SuperEMA = 0.01; input double LOT_RCO_RSIConsolidation = 0.04; +input double LOT_ST_BTCUSD = 0.19; +input double LOT_ST_XAUUSD = 0.02; + +input group "=== Balance-based position sizing ===" +input bool ORCH_ScaleLotsByBalance = true; +input bool ORCH_UseEquityInsteadOfBalance = false; +input double ORCH_ReferenceBalance = 10000.0; +input double ORCH_MinBalanceScale = 0.1; +input double ORCH_MaxBalanceScale = 10.0; //+------------------------------------------------------------------+ //| Strategy 1: DarvasBoxXAUUSD | @@ -385,6 +413,75 @@ input ulong RCO_MagicNumber = 20250420; input int RCO_Slippage = 10; input int RCO_MaxSpreadPoints = 28; +input group "=== SimpleTrendline BTCUSD ===" +input string ST_BTC_Symbol = "BTCUSD"; +input ENUM_TIMEFRAMES ST_BTC_SignalTF = PERIOD_H1; +input ENUM_TIMEFRAMES ST_BTC_HigherTF = PERIOD_H4; +input int ST_BTC_MAPeriod = 150; +input ENUM_MA_METHOD ST_BTC_MAMethod = MODE_SMMA; +input ENUM_APPLIED_PRICE ST_BTC_AppliedPrice = PRICE_OPEN; +input int ST_BTC_HTFBarsToScan = 1200; +input double ST_BTC_LineTouchTolerance = 170.0; +input double ST_BTC_BreakBuffer = 90.0; +input ulong ST_BTC_MagicNumber = 26042501; +input bool ST_BTC_DrawTrendline = true; + +input group "=== SimpleTrendline XAUUSD ===" +input string ST_XAU_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES ST_XAU_SignalTF = PERIOD_H1; +input ENUM_TIMEFRAMES ST_XAU_HigherTF = PERIOD_M10; +input int ST_XAU_MAPeriod = 65; +input ENUM_MA_METHOD ST_XAU_MAMethod = MODE_EMA; +input ENUM_APPLIED_PRICE ST_XAU_AppliedPrice = PRICE_OPEN; +input int ST_XAU_HTFBarsToScan = 500; +input double ST_XAU_LineTouchTolerance = 220.0; +input double ST_XAU_BreakBuffer = 110.0; +input ulong ST_XAU_MagicNumber = 26042503; +input bool ST_XAU_DrawTrendline = true; + +//+------------------------------------------------------------------+ +//| Balance scaling: LOT_* = nominal size at ORCH_ReferenceBalance | +//+------------------------------------------------------------------+ +double United_BalanceScaleFactor() +{ + if(!ORCH_ScaleLotsByBalance || ORCH_ReferenceBalance <= 0.0) + return 1.0; + const double money = ORCH_UseEquityInsteadOfBalance + ? AccountInfoDouble(ACCOUNT_EQUITY) + : AccountInfoDouble(ACCOUNT_BALANCE); + double raw = money / ORCH_ReferenceBalance; + if(raw < ORCH_MinBalanceScale) + raw = ORCH_MinBalanceScale; + if(raw > ORCH_MaxBalanceScale) + raw = ORCH_MaxBalanceScale; + return raw; +} + +double United_ScaledLot(const double baseLot) +{ + const double lot = baseLot * United_BalanceScaleFactor(); + return (lot > 0.0 ? lot : 0.0); +} + +void United_RefreshScaledLots() +{ + g_DB_LotSize = United_ScaledLot(LOT_DB_DarvasBox); + g_ES_LotSize = United_ScaledLot(LOT_ES_EMASlopeDistance); + g_RC_LotSize = United_ScaledLot(LOT_RC_RSICrossOver); + g_RM_LotSize = United_ScaledLot(LOT_RM_RSIMidPointHijack); + g_Pos_RS_APPL = United_ScaledLot(LOT_RS_APPL); + g_Pos_RS_BTCUSD = United_ScaledLot(LOT_RS_BTCUSD); + g_Pos_RS_NVDA = United_ScaledLot(LOT_RS_NVDA); + g_Pos_RS_TSLA = United_ScaledLot(LOT_RS_TSLA); + g_Pos_RS_XAUUSD = United_ScaledLot(LOT_RS_XAUUSD); + g_Pos_RRA_EURUSD = United_ScaledLot(LOT_RRA_EURUSD); + g_Pos_RRA_AUDUSD = United_ScaledLot(LOT_RRA_AUDUSD); + g_Pos_SE = United_ScaledLot(LOT_SE_SuperEMA); + g_Pos_RCO = United_ScaledLot(LOT_RCO_RSIConsolidation); + g_Pos_ST_BTCUSD = United_ScaledLot(LOT_ST_BTCUSD); + g_Pos_ST_XAUUSD = United_ScaledLot(LOT_ST_XAUUSD); +} + //+------------------------------------------------------------------+ //| Global Variables - DarvasBox | //+------------------------------------------------------------------+ @@ -483,6 +580,8 @@ RSIScalpingData rsTSLAData; RSIScalpingData rsXAUUSDData; SuperEMAData seData; RSIConsolidationData rcoData; +SimpleTrendlineData stBTCData; +SimpleTrendlineData stXAUData; //+------------------------------------------------------------------+ //| Global Variables - RSI Reversal Asian | @@ -497,10 +596,7 @@ int OnInit() { int initResult = INIT_SUCCEEDED; - // Initialize global lot size variables - g_ES_LotSize = LOT_ES_EMASlopeDistance; - g_RC_LotSize = LOT_RC_RSICrossOver; - g_RM_LotSize = LOT_RM_RSIMidPointHijack; + United_RefreshScaledLots(); // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable if(EnableDarvasBox) @@ -570,6 +666,18 @@ int OnInit() RRA_AUDUSD_UseTakeProfit, RRA_AUDUSD_UseRSIExit, RRA_AUDUSD_RSIExitLevel, RRA_AUDUSD_CloseOutsideSession, RRA_AUDUSD_TimeFrame, RRA_AUDUSD_MagicNumber, RRA_AUDUSD_Slippage)) Print("Warning: RSIReversalAsianAUDUSD strategy failed to initialize for symbol '", RRA_AUDUSD_Symbol, "'"); + + if(EnableSimpleTrendlineBTCUSD) + if(!InitSimpleTrendline(stBTCData, ST_BTC_Symbol, ST_BTC_SignalTF, ST_BTC_HigherTF, ST_BTC_MAPeriod, + ST_BTC_MAMethod, ST_BTC_AppliedPrice, ST_BTC_HTFBarsToScan, + ST_BTC_LineTouchTolerance, ST_BTC_BreakBuffer, ST_BTC_MagicNumber, ST_BTC_DrawTrendline)) + Print("Warning: SimpleTrendlineBTCUSD failed to initialize for symbol '", ST_BTC_Symbol, "'"); + + if(EnableSimpleTrendlineXAUUSD) + if(!InitSimpleTrendline(stXAUData, ST_XAU_Symbol, ST_XAU_SignalTF, ST_XAU_HigherTF, ST_XAU_MAPeriod, + ST_XAU_MAMethod, ST_XAU_AppliedPrice, ST_XAU_HTFBarsToScan, + ST_XAU_LineTouchTolerance, ST_XAU_BreakBuffer, ST_XAU_MagicNumber, ST_XAU_DrawTrendline)) + Print("Warning: SimpleTrendlineXAUUSD failed to initialize for symbol '", ST_XAU_Symbol, "'"); Print("United EA initialized. Active strategies: ", (EnableDarvasBox ? "DarvasBox " : ""), @@ -584,7 +692,9 @@ int OnInit() (EnableSuperEMA ? "SuperEMA " : ""), (EnableRSIConsolidation ? "RSIConsolidation " : ""), (EnableRSIReversalAsianEURUSD ? "RSIReversalAsianEURUSD " : ""), - (EnableRSIReversalAsianAUDUSD ? "RSIReversalAsianAUDUSD " : "")); + (EnableRSIReversalAsianAUDUSD ? "RSIReversalAsianAUDUSD " : ""), + (EnableSimpleTrendlineBTCUSD ? "SimpleTrendlineBTCUSD " : ""), + (EnableSimpleTrendlineXAUUSD ? "SimpleTrendlineXAUUSD " : "")); return initResult; } @@ -632,6 +742,11 @@ void OnDeinit(const int reason) if(EnableRSIReversalAsianAUDUSD) DeinitRSIReversalAsian(rraAUDUSDData); + + if(EnableSimpleTrendlineBTCUSD) + DeinitSimpleTrendline(stBTCData); + if(EnableSimpleTrendlineXAUUSD) + DeinitSimpleTrendline(stXAUData); Print("United EA deinitialized. Reason: ", reason); } @@ -641,6 +756,8 @@ void OnDeinit(const int reason) //+------------------------------------------------------------------+ void OnTick() { + United_RefreshScaledLots(); + if(EnableDarvasBox) ProcessDarvasBox(DB_Symbol); @@ -656,49 +773,54 @@ void OnTick() if(EnableRSIScalpingAPPL) ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, - RS_APPL_BarsToWait, LOT_RS_APPL, RS_APPL_MagicNumber, + RS_APPL_BarsToWait, g_Pos_RS_APPL, RS_APPL_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); if(EnableRSIScalpingBTCUSD) ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, - RS_BTCUSD_BarsToWait, LOT_RS_BTCUSD, RS_BTCUSD_MagicNumber, + RS_BTCUSD_BarsToWait, g_Pos_RS_BTCUSD, RS_BTCUSD_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); if(EnableRSIScalpingNVDA) ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, - RS_NVDA_BarsToWait, LOT_RS_NVDA, RS_NVDA_MagicNumber, + RS_NVDA_BarsToWait, g_Pos_RS_NVDA, RS_NVDA_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); if(EnableRSIScalpingTSLA) ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, - RS_TSLA_BarsToWait, LOT_RS_TSLA, RS_TSLA_MagicNumber, + RS_TSLA_BarsToWait, g_Pos_RS_TSLA, RS_TSLA_MagicNumber, false, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); if(EnableRSIScalpingXAUUSD) ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, - RS_XAUUSD_BarsToWait, LOT_RS_XAUUSD, RS_XAUUSD_MagicNumber, + RS_XAUUSD_BarsToWait, g_Pos_RS_XAUUSD, RS_XAUUSD_MagicNumber, RS_UseReversalEscape, RS_ReversalATRPeriod, RS_ReversalAdverseAtrMult, RS_ReversalSignsRequired, RS_ReversalRsiVelocity, RS_ReversalBodyAtrMult); if(EnableRSIReversalAsianEURUSD) - ProcessRSIReversalAsian(rraEURUSDData, LOT_RRA_EURUSD); + ProcessRSIReversalAsian(rraEURUSDData, g_Pos_RRA_EURUSD); if(EnableRSIReversalAsianAUDUSD) - ProcessRSIReversalAsian(rraAUDUSDData, LOT_RRA_AUDUSD); + ProcessRSIReversalAsian(rraAUDUSDData, g_Pos_RRA_AUDUSD); if(EnableSuperEMA) - ProcessSuperEMA(seData, LOT_SE_SuperEMA); + ProcessSuperEMA(seData, g_Pos_SE); if(EnableRSIConsolidation) - ProcessRSIConsolidation(rcoData, LOT_RCO_RSIConsolidation); + ProcessRSIConsolidation(rcoData, g_Pos_RCO); + + if(EnableSimpleTrendlineBTCUSD) + ProcessSimpleTrendline(stBTCData, g_Pos_ST_BTCUSD); + if(EnableSimpleTrendlineXAUUSD) + ProcessSimpleTrendline(stXAUData, g_Pos_ST_XAUUSD); } //+------------------------------------------------------------------+ diff --git a/frontline/united_template/_united-V2/self-evaluate.mq5 b/frontline/united_template/_united-V2/self-evaluate.mq5 index b9d92e9..3b56a55 100644 --- a/frontline/united_template/_united-V2/self-evaluate.mq5 +++ b/frontline/united_template/_united-V2/self-evaluate.mq5 @@ -13,7 +13,6 @@ #include #include #include "MagicNumberHelpers.mqh" -#include "PerformanceEvaluator.mqh" //+------------------------------------------------------------------+ //| Strategy Enable/Disable Switches | @@ -371,19 +370,18 @@ RSIScalpingData rsTSLAData; RSIScalpingData rsXAUUSDData; //+------------------------------------------------------------------+ -//| Global Variables for Dynamic Lot Sizes | +//| Global Variables for lot sizes (from inputs below) | //+------------------------------------------------------------------+ -// All strategies start with minimum lot size for safety (will be adjusted by performance evaluator) -double g_DB_LotSize = 0.01; // DarvasBox uses fixed lot size -double g_ES_LotSize = 0.01; // EMA Slope Distance - start with minimum -double g_RC_LotSize = 0.01; // RSI CrossOver Reversal - start with minimum -double g_RM_LotSize = 0.01; // RSI MidPoint Hijack - start with minimum -double g_RS_APPL_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_BTCUSD_LotSize = 0.01; // Crypto - start with forex minimum (0.01) -double g_RS_MSFT_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_NVDA_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_TSLA_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) +double g_DB_LotSize = 0.01; +double g_ES_LotSize; +double g_RC_LotSize; +double g_RM_LotSize; +double g_RS_APPL_LotSize; +double g_RS_BTCUSD_LotSize; +double g_RS_MSFT_LotSize; +double g_RS_NVDA_LotSize; +double g_RS_TSLA_LotSize; +double g_RS_XAUUSD_LotSize; //+------------------------------------------------------------------+ //| Expert initialization function | @@ -391,148 +389,52 @@ double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) int OnInit() { int initResult = INIT_SUCCEEDED; - - // Initialize Performance Evaluator - InitPerformanceTracking(); - - // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + + g_ES_LotSize = ES_LotGröße; + g_RC_LotSize = RC_lotSize; + g_RM_LotSize = RM_InpLotSize; + g_RS_APPL_LotSize = RS_APPL_LotSize; + g_RS_BTCUSD_LotSize = RS_BTCUSD_LotSize; + g_RS_MSFT_LotSize = RS_MSFT_LotSize; + g_RS_NVDA_LotSize = RS_NVDA_LotSize; + g_RS_TSLA_LotSize = RS_TSLA_LotSize; + g_RS_XAUUSD_LotSize = RS_XAUUSD_LotSize; + if(EnableDarvasBox) - { if(!InitDarvasBox(DB_Symbol)) Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); - else - RegisterStrategy("DarvasBox", DB_MagicNumber, 0.01, DB_Symbol); // Fixed lot size - } - + if(EnableEMASlopeDistance) - { if(!InitEMASlopeDistance(ES_Symbol)) Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); - else - { - RegisterStrategy("EMASlopeDistance", ES_MagicNumber, ES_LotGröße, ES_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(ES_Symbol); - g_ES_LotSize = minLot; - } - } - + if(EnableRSICrossOverReversal) - { if(!InitRSICrossOverReversal(RC_Symbol)) Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); - else - { - RegisterStrategy("RSICrossOverReversal", RC_MagicNumber, RC_lotSize, RC_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RC_Symbol); - g_RC_LotSize = minLot; - } - } - + if(EnableRSIMidPointHijack) - { if(!InitRSIMidPointHijack(RM_Symbol)) Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); - else - { - RegisterStrategy("RSIMidPointHijack", RM_InpMagicNumberRSIFollow, RM_InpLotSize, RM_Symbol); - RegisterStrategy("RSIMidPointHijack_Reverse", RM_InpMagicNumberRSIReverse, RM_InpLotSize, RM_Symbol); - RegisterStrategy("RSIMidPointHijack_EMACross", RM_InpMagicNumberEMACross, RM_InpLotSize, RM_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RM_Symbol); - g_RM_LotSize = minLot; - } - } - - // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) - { InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); - RegisterStrategy("RSIScalpingAPPL", RS_APPL_MagicNumber, RS_APPL_LotSize, RS_APPL_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_APPL_Symbol); - g_RS_APPL_LotSize = minLot; - } - + if(EnableRSIScalpingBTCUSD) - { InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); - RegisterStrategy("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber, RS_BTCUSD_LotSize, RS_BTCUSD_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_BTCUSD_Symbol); - g_RS_BTCUSD_LotSize = minLot; - } - + if(EnableRSIScalpingMSFT) - { InitRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, RS_MSFT_MagicNumber, RS_MSFT_Slippage); - RegisterStrategy("RSIScalpingMSFT", RS_MSFT_MagicNumber, RS_MSFT_LotSize, RS_MSFT_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_MSFT_Symbol); - g_RS_MSFT_LotSize = minLot; - } - + if(EnableRSIScalpingNVDA) - { InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); - RegisterStrategy("RSIScalpingNVDA", RS_NVDA_MagicNumber, RS_NVDA_LotSize, RS_NVDA_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_NVDA_Symbol); - g_RS_NVDA_LotSize = minLot; - } - + if(EnableRSIScalpingTSLA) - { InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); - RegisterStrategy("RSIScalpingTSLA", RS_TSLA_MagicNumber, RS_TSLA_LotSize, RS_TSLA_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_TSLA_Symbol); - g_RS_TSLA_LotSize = minLot; - } - + if(EnableRSIScalpingXAUUSD) - { InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); - RegisterStrategy("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber, RS_XAUUSD_LotSize, RS_XAUUSD_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_XAUUSD_Symbol); - g_RS_XAUUSD_LotSize = minLot; - } - - // Load adjusted lot sizes from performance evaluator - if(PE_EnableAutoAdjustment) - { - double adjustedLot; - adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); - if(adjustedLot > 0) g_ES_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); - if(adjustedLot > 0) g_RC_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); - if(adjustedLot > 0) g_RM_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); - if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); - if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); - if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); - if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); - if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); - if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; - } - - Print("United EA initialized. Active strategies: ", + + Print("United EA (self-evaluate build) initialized. Active strategies: ", (EnableDarvasBox ? "DarvasBox " : ""), (EnableEMASlopeDistance ? "EMASlope " : ""), (EnableRSICrossOverReversal ? "RSICrossOver " : ""), @@ -543,10 +445,7 @@ int OnInit() (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : "")); - - if(PE_EnableLogging) - Print(GetPerformanceSummary()); - + return initResult; } @@ -593,41 +492,6 @@ void OnDeinit(const int reason) //+------------------------------------------------------------------+ void OnTick() { - // Process performance evaluation (checks for quarter end and adjusts lot sizes) - ProcessPerformanceEvaluation(); - - // Update lot sizes from performance evaluator if auto-adjustment is enabled - if(PE_EnableAutoAdjustment) - { - double adjustedLot; - adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); - if(adjustedLot > 0) g_ES_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); - if(adjustedLot > 0) g_RC_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); - if(adjustedLot > 0) g_RM_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); - if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); - if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); - if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); - if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); - if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); - if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; - } - if(EnableDarvasBox) ProcessDarvasBox(DB_Symbol); diff --git a/frontline/united_template/_united-V2_exponential/PerformanceEvaluator.mqh b/frontline/united_template/_united-V2_exponential/PerformanceEvaluator.mqh deleted file mode 100644 index 991f603..0000000 --- a/frontline/united_template/_united-V2_exponential/PerformanceEvaluator.mqh +++ /dev/null @@ -1,607 +0,0 @@ -//+------------------------------------------------------------------+ -//| PerformanceEvaluator.mqh | -//| Copyright 2025, MetaQuotes Ltd. | -//| https://www.mql5.com | -//+------------------------------------------------------------------+ -#property copyright "Copyright 2025, MetaQuotes Ltd." -#property link "https://www.mql5.com" -#property version "1.00" - -//+------------------------------------------------------------------+ -//| Performance Metrics Structure | -//+------------------------------------------------------------------+ -struct StrategyPerformance { - string strategyName; - string symbol; // Store symbol to determine if it's a stock - int magicNumber; - double initialLotSize; - double currentLotSize; - double quarterProfit; - double quarterTrades; - double quarterWins; - double quarterLosses; - double maxDrawdown; - double winRate; - datetime quarterStart; - datetime quarterEnd; - bool isActive; - bool inPenaltyMode; // True if strategy is in penalty (worst performer) - double lotSizeBeforePenalty; // Store lot size before penalty - datetime penaltyStartTime; // When penalty started -}; - -//+------------------------------------------------------------------+ -//| Global Performance Tracking | -//+------------------------------------------------------------------+ -StrategyPerformance strategyPerformances[]; -int totalStrategies = 0; -datetime lastMonthCheck = 0; -datetime currentMonthStart = 0; -datetime currentMonthEnd = 0; - -//+------------------------------------------------------------------+ -//| Performance Adjustment Parameters | -//+------------------------------------------------------------------+ -input group "=== Performance Evaluation Settings ===" -input bool PE_EnableAutoAdjustment = true; // Enable automatic lot size adjustment -input double PE_LotSizeIncreasePercent = 10.0; // % increase for top-ranked strategies -input double PE_LotSizeDecreasePercent = 10.0; // % decrease for bottom-ranked strategies -input double PE_MinLotSize = 0.01; // Minimum lot size for forex/crypto -input double PE_MinLotSizeStocks = 5.0; // Minimum lot size for stocks (5-10 range) -input double PE_MaxLotSize = 100.0; // Maximum lot size after adjustment -input int PE_TopPerformersCount = 3; // Number of top strategies to increase lot size -input int PE_BottomPerformersCount = 3; // Number of bottom strategies to decrease lot size -input bool PE_UseWinRateWeight = true; // Consider win rate in ranking (50% profit, 50% win rate) -input bool PE_EnableBlitzPlay = true; // Enable blitz play: worst performer gets minimum lot size penalty -input bool PE_EnableLogging = true; // Enable performance logging - -//+------------------------------------------------------------------+ -//| Initialize Performance Tracking | -//+------------------------------------------------------------------+ -void InitPerformanceTracking() -{ - // Calculate current month dates - MqlDateTime dt; - TimeToStruct(TimeCurrent(), dt); - - // Determine month start (first day of current month) - dt.day = 1; - dt.hour = 0; - dt.min = 0; - dt.sec = 0; - currentMonthStart = StructToTime(dt); - - // Calculate month end (first day of next month - 1 second) - dt.mon += 1; - if(dt.mon > 12) - { - dt.mon = 1; - dt.year++; - } - currentMonthEnd = StructToTime(dt) - 1; // End of last day of month - - lastMonthCheck = TimeCurrent(); - - if(PE_EnableLogging) - { - Print("Performance Evaluator: Initialized"); - Print("Current Month Start: ", TimeToString(currentMonthStart)); - Print("Current Month End: ", TimeToString(currentMonthEnd)); - } -} - -//+------------------------------------------------------------------+ -//| Check if Symbol is a Stock | -//+------------------------------------------------------------------+ -bool IsStockSymbol(string symbol) -{ - // Check if symbol contains common stock indicators - if(StringFind(symbol, ".US") >= 0) return true; - if(StringFind(symbol, "NASDAQ:") >= 0) return true; - if(StringFind(symbol, "NYSE:") >= 0) return true; - - // Note: Symbol category check removed to avoid enum conversion issues - // String-based checks (.US, NASDAQ:, NYSE:, common tickers) are sufficient - - // Common stock tickers (without .US suffix) - string commonStocks[] = {"AAPL", "MSFT", "NVDA", "TSLA", "GOOGL", "AMZN", "META", "NFLX"}; - for(int i = 0; i < ArraySize(commonStocks); i++) - { - if(StringFind(symbol, commonStocks[i]) == 0) return true; - } - - return false; -} - -//+------------------------------------------------------------------+ -//| Get Minimum Lot Size for Symbol | -//+------------------------------------------------------------------+ -double GetMinLotSizeForSymbol(string symbol) -{ - if(IsStockSymbol(symbol)) - return PE_MinLotSizeStocks; - else - return PE_MinLotSize; -} - -//+------------------------------------------------------------------+ -//| Register Strategy for Performance Tracking | -//+------------------------------------------------------------------+ -void RegisterStrategy(string strategyName, int magicNumber, double initialLotSize, string symbol = "") -{ - // Check if strategy already registered - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber) - { - if(PE_EnableLogging) - Print("Performance Evaluator: Strategy '", strategyName, "' already registered"); - return; - } - } - - // Add new strategy - int newSize = ArraySize(strategyPerformances) + 1; - ArrayResize(strategyPerformances, newSize); - - strategyPerformances[newSize - 1].strategyName = strategyName; - strategyPerformances[newSize - 1].symbol = symbol; - strategyPerformances[newSize - 1].magicNumber = magicNumber; - strategyPerformances[newSize - 1].initialLotSize = initialLotSize; - // Start with minimum lot size for safety (symbol-specific minimum) - double minLot = GetMinLotSizeForSymbol(symbol); - strategyPerformances[newSize - 1].currentLotSize = minLot; - strategyPerformances[newSize - 1].quarterProfit = 0.0; - strategyPerformances[newSize - 1].quarterTrades = 0; - strategyPerformances[newSize - 1].quarterWins = 0; - strategyPerformances[newSize - 1].quarterLosses = 0; - strategyPerformances[newSize - 1].maxDrawdown = 0.0; - strategyPerformances[newSize - 1].winRate = 0.0; - strategyPerformances[newSize - 1].quarterStart = currentMonthStart; - strategyPerformances[newSize - 1].quarterEnd = currentMonthEnd; - strategyPerformances[newSize - 1].isActive = true; - strategyPerformances[newSize - 1].inPenaltyMode = false; - strategyPerformances[newSize - 1].lotSizeBeforePenalty = initialLotSize; - strategyPerformances[newSize - 1].penaltyStartTime = 0; - - totalStrategies = newSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Registered strategy '", strategyName, - "' (Magic: ", magicNumber, ", Initial Lot: ", initialLotSize, ")"); -} - -//+------------------------------------------------------------------+ -//| Update Strategy Performance Metrics | -//+------------------------------------------------------------------+ -void UpdateStrategyPerformance(string strategyName, int magicNumber) -{ - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber && - strategyPerformances[i].isActive) - { - // Calculate performance for current quarter - double totalProfit = 0.0; - int totalTrades = 0; - int wins = 0; - int losses = 0; - double maxDD = 0.0; - double peakBalance = 0.0; - - // Scan all closed deals in current quarter - datetime quarterStart = strategyPerformances[i].quarterStart; - datetime quarterEnd = strategyPerformances[i].quarterEnd; - - // Select history for the quarter - if(HistorySelect(quarterStart, quarterEnd)) - { - int totalDeals = HistoryDealsTotal(); - for(int j = 0; j < totalDeals; j++) - { - ulong ticket = HistoryDealGetTicket(j); - if(ticket > 0) - { - long dealMagic = HistoryDealGetInteger(ticket, DEAL_MAGIC); - if(dealMagic == magicNumber) - { - double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); - double swap = HistoryDealGetDouble(ticket, DEAL_SWAP); - double commission = HistoryDealGetDouble(ticket, DEAL_COMMISSION); - double totalDealProfit = profit + swap + commission; - - totalProfit += totalDealProfit; - totalTrades++; - - if(totalDealProfit > 0) - wins++; - else if(totalDealProfit < 0) - losses++; - } - } - } - } - - // Calculate win rate - double winRate = 0.0; - if(totalTrades > 0) - winRate = (double)wins / (double)totalTrades * 100.0; - - // Update metrics - strategyPerformances[i].quarterProfit = totalProfit; - strategyPerformances[i].quarterTrades = totalTrades; - strategyPerformances[i].quarterWins = wins; - strategyPerformances[i].quarterLosses = losses; - strategyPerformances[i].winRate = winRate; - - break; - } - } -} - -//+------------------------------------------------------------------+ -//| Strategy Ranking Structure | -//+------------------------------------------------------------------+ -struct StrategyRank { - int index; - double score; -}; - -//+------------------------------------------------------------------+ -//| Calculate Strategy Score for Ranking | -//+------------------------------------------------------------------+ -double CalculateStrategyScore(int strategyIndex) -{ - double profit = strategyPerformances[strategyIndex].quarterProfit; - double winRate = strategyPerformances[strategyIndex].winRate; - double trades = strategyPerformances[strategyIndex].quarterTrades; - - // Normalize profit (scale to 0-100 range, assuming max profit of $1000) - double normalizedProfit = MathMin(profit / 10.0, 100.0); - if(profit < 0) normalizedProfit = profit / 5.0; // Penalize losses more - - // Calculate score - double score = 0.0; - if(PE_UseWinRateWeight) - { - // 50% profit, 50% win rate (if enough trades) - if(trades >= 5) - score = (normalizedProfit * 0.5) + (winRate * 0.5); - else - score = normalizedProfit; // Not enough trades, use profit only - } - else - { - // Profit only - score = normalizedProfit; - } - - return score; -} - -//+------------------------------------------------------------------+ -//| Check if Month Ended and Evaluate Performance | -//+------------------------------------------------------------------+ -void CheckMonthEnd() -{ - datetime now = TimeCurrent(); - - // Check if we've entered a new month - if(now >= currentMonthEnd) - { - if(PE_EnableLogging) - Print("Performance Evaluator: Month ended. Evaluating and ranking strategies..."); - - // Update performance metrics for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - UpdateStrategyPerformance(strategyPerformances[i].strategyName, - strategyPerformances[i].magicNumber); - } - } - - // Rank strategies - int activeCount = 0; - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - activeCount++; - } - - if(activeCount > 0) - { - // Create ranking array - StrategyRank ranks[]; - ArrayResize(ranks, activeCount); - int rankIndex = 0; - - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - ranks[rankIndex].index = i; - ranks[rankIndex].score = CalculateStrategyScore(i); - rankIndex++; - } - } - - // Sort by score (descending - highest score first) - for(int i = 0; i < activeCount - 1; i++) - { - for(int j = i + 1; j < activeCount; j++) - { - if(ranks[j].score > ranks[i].score) - { - StrategyRank temp = ranks[i]; - ranks[i] = ranks[j]; - ranks[j] = temp; - } - } - } - - // Adjust lot sizes based on ranking - if(PE_EnableAutoAdjustment) - { - // Increase top performers (skip if in penalty mode) - int topCount = MathMin(PE_TopPerformersCount, activeCount); - for(int i = 0; i < topCount; i++) - { - int strategyIdx = ranks[i].index; - - // Skip if strategy is in penalty mode - if(strategyPerformances[strategyIdx].inPenaltyMode) - continue; - - double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; - double newLotSize = oldLotSize * (1.0 + PE_LotSizeIncreasePercent / 100.0); - - if(newLotSize > PE_MaxLotSize) - newLotSize = PE_MaxLotSize; - - strategyPerformances[strategyIdx].currentLotSize = newLotSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Rank #", (i+1), " - Increasing '", - strategyPerformances[strategyIdx].strategyName, - "' lot size from ", oldLotSize, " to ", newLotSize, - " (Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); - } - - // Decrease bottom performers (skip worst one if blitz play is enabled) - int bottomCount = MathMin(PE_BottomPerformersCount, activeCount); - int startIdx = activeCount - bottomCount; - - // If blitz play is enabled, skip the worst performer (it will get minimum penalty) - if(PE_EnableBlitzPlay && activeCount > 0) - startIdx = activeCount - bottomCount + 1; - - for(int i = startIdx; i < activeCount; i++) - { - int strategyIdx = ranks[i].index; - - // Skip if strategy is in penalty mode - if(strategyPerformances[strategyIdx].inPenaltyMode) - continue; - - double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; - double newLotSize = oldLotSize * (1.0 - PE_LotSizeDecreasePercent / 100.0); - - // Use symbol-specific minimum lot size - double minLot = GetMinLotSizeForSymbol(strategyPerformances[strategyIdx].symbol); - if(newLotSize < minLot) - newLotSize = minLot; - - strategyPerformances[strategyIdx].currentLotSize = newLotSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Rank #", (i+1), " - Decreasing '", - strategyPerformances[strategyIdx].strategyName, - "' lot size from ", oldLotSize, " to ", newLotSize, - " (Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); - } - } - - // Blitz Play: Apply penalty to worst performer - if(PE_EnableBlitzPlay && activeCount > 0) - { - // Find worst performer (last in ranking) - int worstIdx = ranks[activeCount - 1].index; - - // Remove penalty from previous worst performer (if any) - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) - { - // Check if penalty period has passed (one month) - if(now - strategyPerformances[i].penaltyStartTime >= 2592000) // ~30 days - { - // Restore lot size to before penalty - strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; - strategyPerformances[i].inPenaltyMode = false; - strategyPerformances[i].penaltyStartTime = 0; - - if(PE_EnableLogging) - Print("Blitz Play: Penalty removed from '", strategyPerformances[i].strategyName, - "'. Lot size restored to ", strategyPerformances[i].currentLotSize); - } - } - } - - // Apply penalty to new worst performer - if(!strategyPerformances[worstIdx].inPenaltyMode) - { - strategyPerformances[worstIdx].lotSizeBeforePenalty = strategyPerformances[worstIdx].currentLotSize; - // Use symbol-specific minimum lot size - double minLot = GetMinLotSizeForSymbol(strategyPerformances[worstIdx].symbol); - strategyPerformances[worstIdx].currentLotSize = minLot; - strategyPerformances[worstIdx].inPenaltyMode = true; - strategyPerformances[worstIdx].penaltyStartTime = now; - - if(PE_EnableLogging) - Print("Blitz Play: WORST PERFORMER - '", strategyPerformances[worstIdx].strategyName, - "' penalized! Lot size reduced from ", strategyPerformances[worstIdx].lotSizeBeforePenalty, - " to minimum ", minLot, " (Score: ", DoubleToString(ranks[activeCount - 1].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[worstIdx].quarterProfit, 2), ")"); - } - } - - // Log performance report - if(PE_EnableLogging) - { - Print("=== Monthly Performance Ranking ==="); - for(int i = 0; i < activeCount; i++) - { - int strategyIdx = ranks[i].index; - Print("Rank #", (i+1), ": ", strategyPerformances[strategyIdx].strategyName, - " - Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%", - ", Trades: ", (int)strategyPerformances[strategyIdx].quarterTrades, - ", Lot Size: ", DoubleToString(strategyPerformances[strategyIdx].currentLotSize, 2)); - } - Print("==================================="); - } - } - - // Reset month metrics for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - strategyPerformances[i].quarterProfit = 0.0; - strategyPerformances[i].quarterTrades = 0; - strategyPerformances[i].quarterWins = 0; - strategyPerformances[i].quarterLosses = 0; - strategyPerformances[i].maxDrawdown = 0.0; - strategyPerformances[i].winRate = 0.0; - } - } - - // Update month dates - MqlDateTime dt; - TimeToStruct(now, dt); - - // First day of current month - dt.day = 1; - dt.hour = 0; - dt.min = 0; - dt.sec = 0; - currentMonthStart = StructToTime(dt); - - // First day of next month - 1 second - dt.mon += 1; - if(dt.mon > 12) - { - dt.mon = 1; - dt.year++; - } - currentMonthEnd = StructToTime(dt) - 1; - - // Update month dates for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - strategyPerformances[i].quarterStart = currentMonthStart; - strategyPerformances[i].quarterEnd = currentMonthEnd; - } - - lastMonthCheck = now; - } -} - -//+------------------------------------------------------------------+ -//| Get Current Lot Size for Strategy | -//+------------------------------------------------------------------+ -double GetStrategyLotSize(string strategyName, int magicNumber) -{ - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber && - strategyPerformances[i].isActive) - { - return strategyPerformances[i].currentLotSize; - } - } - return 0.0; -} - -//+------------------------------------------------------------------+ -//| Process Performance Evaluation (call from OnTick) | -//+------------------------------------------------------------------+ -void ProcessPerformanceEvaluation() -{ - // Check if month ended - CheckMonthEnd(); - - // Check for penalty expiration (blitz play) - if(PE_EnableBlitzPlay) - { - datetime now = TimeCurrent(); - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) - { - // Check if penalty period has passed (one month = ~30 days) - if(now - strategyPerformances[i].penaltyStartTime >= 2592000) - { - // Restore lot size to before penalty - strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; - strategyPerformances[i].inPenaltyMode = false; - strategyPerformances[i].penaltyStartTime = 0; - - if(PE_EnableLogging) - Print("Blitz Play: Penalty expired for '", strategyPerformances[i].strategyName, - "'. Lot size restored to ", strategyPerformances[i].currentLotSize); - } - } - } - } - - // Update performance metrics periodically (every hour) - static datetime lastUpdate = 0; - if(TimeCurrent() - lastUpdate >= 3600) - { - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - UpdateStrategyPerformance(strategyPerformances[i].strategyName, - strategyPerformances[i].magicNumber); - } - } - lastUpdate = TimeCurrent(); - } -} - -//+------------------------------------------------------------------+ -//| Get Performance Summary | -//+------------------------------------------------------------------+ -string GetPerformanceSummary() -{ - string summary = "\n=== Performance Summary ===\n"; - summary += "Current Month: " + TimeToString(currentMonthStart) + " to " + TimeToString(currentMonthEnd) + "\n\n"; - - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - summary += strategyPerformances[i].strategyName + ":\n"; - summary += " Profit: $" + DoubleToString(strategyPerformances[i].quarterProfit, 2) + "\n"; - summary += " Trades: " + IntegerToString((int)strategyPerformances[i].quarterTrades) + "\n"; - summary += " Win Rate: " + DoubleToString(strategyPerformances[i].winRate, 2) + "%\n"; - summary += " Lot Size: " + DoubleToString(strategyPerformances[i].currentLotSize, 2) + "\n\n"; - } - } - - return summary; -} - -//+------------------------------------------------------------------+ diff --git a/frontline/united_template/_united/PerformanceEvaluator.mqh b/frontline/united_template/_united/PerformanceEvaluator.mqh deleted file mode 100644 index 991f603..0000000 --- a/frontline/united_template/_united/PerformanceEvaluator.mqh +++ /dev/null @@ -1,607 +0,0 @@ -//+------------------------------------------------------------------+ -//| PerformanceEvaluator.mqh | -//| Copyright 2025, MetaQuotes Ltd. | -//| https://www.mql5.com | -//+------------------------------------------------------------------+ -#property copyright "Copyright 2025, MetaQuotes Ltd." -#property link "https://www.mql5.com" -#property version "1.00" - -//+------------------------------------------------------------------+ -//| Performance Metrics Structure | -//+------------------------------------------------------------------+ -struct StrategyPerformance { - string strategyName; - string symbol; // Store symbol to determine if it's a stock - int magicNumber; - double initialLotSize; - double currentLotSize; - double quarterProfit; - double quarterTrades; - double quarterWins; - double quarterLosses; - double maxDrawdown; - double winRate; - datetime quarterStart; - datetime quarterEnd; - bool isActive; - bool inPenaltyMode; // True if strategy is in penalty (worst performer) - double lotSizeBeforePenalty; // Store lot size before penalty - datetime penaltyStartTime; // When penalty started -}; - -//+------------------------------------------------------------------+ -//| Global Performance Tracking | -//+------------------------------------------------------------------+ -StrategyPerformance strategyPerformances[]; -int totalStrategies = 0; -datetime lastMonthCheck = 0; -datetime currentMonthStart = 0; -datetime currentMonthEnd = 0; - -//+------------------------------------------------------------------+ -//| Performance Adjustment Parameters | -//+------------------------------------------------------------------+ -input group "=== Performance Evaluation Settings ===" -input bool PE_EnableAutoAdjustment = true; // Enable automatic lot size adjustment -input double PE_LotSizeIncreasePercent = 10.0; // % increase for top-ranked strategies -input double PE_LotSizeDecreasePercent = 10.0; // % decrease for bottom-ranked strategies -input double PE_MinLotSize = 0.01; // Minimum lot size for forex/crypto -input double PE_MinLotSizeStocks = 5.0; // Minimum lot size for stocks (5-10 range) -input double PE_MaxLotSize = 100.0; // Maximum lot size after adjustment -input int PE_TopPerformersCount = 3; // Number of top strategies to increase lot size -input int PE_BottomPerformersCount = 3; // Number of bottom strategies to decrease lot size -input bool PE_UseWinRateWeight = true; // Consider win rate in ranking (50% profit, 50% win rate) -input bool PE_EnableBlitzPlay = true; // Enable blitz play: worst performer gets minimum lot size penalty -input bool PE_EnableLogging = true; // Enable performance logging - -//+------------------------------------------------------------------+ -//| Initialize Performance Tracking | -//+------------------------------------------------------------------+ -void InitPerformanceTracking() -{ - // Calculate current month dates - MqlDateTime dt; - TimeToStruct(TimeCurrent(), dt); - - // Determine month start (first day of current month) - dt.day = 1; - dt.hour = 0; - dt.min = 0; - dt.sec = 0; - currentMonthStart = StructToTime(dt); - - // Calculate month end (first day of next month - 1 second) - dt.mon += 1; - if(dt.mon > 12) - { - dt.mon = 1; - dt.year++; - } - currentMonthEnd = StructToTime(dt) - 1; // End of last day of month - - lastMonthCheck = TimeCurrent(); - - if(PE_EnableLogging) - { - Print("Performance Evaluator: Initialized"); - Print("Current Month Start: ", TimeToString(currentMonthStart)); - Print("Current Month End: ", TimeToString(currentMonthEnd)); - } -} - -//+------------------------------------------------------------------+ -//| Check if Symbol is a Stock | -//+------------------------------------------------------------------+ -bool IsStockSymbol(string symbol) -{ - // Check if symbol contains common stock indicators - if(StringFind(symbol, ".US") >= 0) return true; - if(StringFind(symbol, "NASDAQ:") >= 0) return true; - if(StringFind(symbol, "NYSE:") >= 0) return true; - - // Note: Symbol category check removed to avoid enum conversion issues - // String-based checks (.US, NASDAQ:, NYSE:, common tickers) are sufficient - - // Common stock tickers (without .US suffix) - string commonStocks[] = {"AAPL", "MSFT", "NVDA", "TSLA", "GOOGL", "AMZN", "META", "NFLX"}; - for(int i = 0; i < ArraySize(commonStocks); i++) - { - if(StringFind(symbol, commonStocks[i]) == 0) return true; - } - - return false; -} - -//+------------------------------------------------------------------+ -//| Get Minimum Lot Size for Symbol | -//+------------------------------------------------------------------+ -double GetMinLotSizeForSymbol(string symbol) -{ - if(IsStockSymbol(symbol)) - return PE_MinLotSizeStocks; - else - return PE_MinLotSize; -} - -//+------------------------------------------------------------------+ -//| Register Strategy for Performance Tracking | -//+------------------------------------------------------------------+ -void RegisterStrategy(string strategyName, int magicNumber, double initialLotSize, string symbol = "") -{ - // Check if strategy already registered - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber) - { - if(PE_EnableLogging) - Print("Performance Evaluator: Strategy '", strategyName, "' already registered"); - return; - } - } - - // Add new strategy - int newSize = ArraySize(strategyPerformances) + 1; - ArrayResize(strategyPerformances, newSize); - - strategyPerformances[newSize - 1].strategyName = strategyName; - strategyPerformances[newSize - 1].symbol = symbol; - strategyPerformances[newSize - 1].magicNumber = magicNumber; - strategyPerformances[newSize - 1].initialLotSize = initialLotSize; - // Start with minimum lot size for safety (symbol-specific minimum) - double minLot = GetMinLotSizeForSymbol(symbol); - strategyPerformances[newSize - 1].currentLotSize = minLot; - strategyPerformances[newSize - 1].quarterProfit = 0.0; - strategyPerformances[newSize - 1].quarterTrades = 0; - strategyPerformances[newSize - 1].quarterWins = 0; - strategyPerformances[newSize - 1].quarterLosses = 0; - strategyPerformances[newSize - 1].maxDrawdown = 0.0; - strategyPerformances[newSize - 1].winRate = 0.0; - strategyPerformances[newSize - 1].quarterStart = currentMonthStart; - strategyPerformances[newSize - 1].quarterEnd = currentMonthEnd; - strategyPerformances[newSize - 1].isActive = true; - strategyPerformances[newSize - 1].inPenaltyMode = false; - strategyPerformances[newSize - 1].lotSizeBeforePenalty = initialLotSize; - strategyPerformances[newSize - 1].penaltyStartTime = 0; - - totalStrategies = newSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Registered strategy '", strategyName, - "' (Magic: ", magicNumber, ", Initial Lot: ", initialLotSize, ")"); -} - -//+------------------------------------------------------------------+ -//| Update Strategy Performance Metrics | -//+------------------------------------------------------------------+ -void UpdateStrategyPerformance(string strategyName, int magicNumber) -{ - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber && - strategyPerformances[i].isActive) - { - // Calculate performance for current quarter - double totalProfit = 0.0; - int totalTrades = 0; - int wins = 0; - int losses = 0; - double maxDD = 0.0; - double peakBalance = 0.0; - - // Scan all closed deals in current quarter - datetime quarterStart = strategyPerformances[i].quarterStart; - datetime quarterEnd = strategyPerformances[i].quarterEnd; - - // Select history for the quarter - if(HistorySelect(quarterStart, quarterEnd)) - { - int totalDeals = HistoryDealsTotal(); - for(int j = 0; j < totalDeals; j++) - { - ulong ticket = HistoryDealGetTicket(j); - if(ticket > 0) - { - long dealMagic = HistoryDealGetInteger(ticket, DEAL_MAGIC); - if(dealMagic == magicNumber) - { - double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); - double swap = HistoryDealGetDouble(ticket, DEAL_SWAP); - double commission = HistoryDealGetDouble(ticket, DEAL_COMMISSION); - double totalDealProfit = profit + swap + commission; - - totalProfit += totalDealProfit; - totalTrades++; - - if(totalDealProfit > 0) - wins++; - else if(totalDealProfit < 0) - losses++; - } - } - } - } - - // Calculate win rate - double winRate = 0.0; - if(totalTrades > 0) - winRate = (double)wins / (double)totalTrades * 100.0; - - // Update metrics - strategyPerformances[i].quarterProfit = totalProfit; - strategyPerformances[i].quarterTrades = totalTrades; - strategyPerformances[i].quarterWins = wins; - strategyPerformances[i].quarterLosses = losses; - strategyPerformances[i].winRate = winRate; - - break; - } - } -} - -//+------------------------------------------------------------------+ -//| Strategy Ranking Structure | -//+------------------------------------------------------------------+ -struct StrategyRank { - int index; - double score; -}; - -//+------------------------------------------------------------------+ -//| Calculate Strategy Score for Ranking | -//+------------------------------------------------------------------+ -double CalculateStrategyScore(int strategyIndex) -{ - double profit = strategyPerformances[strategyIndex].quarterProfit; - double winRate = strategyPerformances[strategyIndex].winRate; - double trades = strategyPerformances[strategyIndex].quarterTrades; - - // Normalize profit (scale to 0-100 range, assuming max profit of $1000) - double normalizedProfit = MathMin(profit / 10.0, 100.0); - if(profit < 0) normalizedProfit = profit / 5.0; // Penalize losses more - - // Calculate score - double score = 0.0; - if(PE_UseWinRateWeight) - { - // 50% profit, 50% win rate (if enough trades) - if(trades >= 5) - score = (normalizedProfit * 0.5) + (winRate * 0.5); - else - score = normalizedProfit; // Not enough trades, use profit only - } - else - { - // Profit only - score = normalizedProfit; - } - - return score; -} - -//+------------------------------------------------------------------+ -//| Check if Month Ended and Evaluate Performance | -//+------------------------------------------------------------------+ -void CheckMonthEnd() -{ - datetime now = TimeCurrent(); - - // Check if we've entered a new month - if(now >= currentMonthEnd) - { - if(PE_EnableLogging) - Print("Performance Evaluator: Month ended. Evaluating and ranking strategies..."); - - // Update performance metrics for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - UpdateStrategyPerformance(strategyPerformances[i].strategyName, - strategyPerformances[i].magicNumber); - } - } - - // Rank strategies - int activeCount = 0; - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - activeCount++; - } - - if(activeCount > 0) - { - // Create ranking array - StrategyRank ranks[]; - ArrayResize(ranks, activeCount); - int rankIndex = 0; - - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - ranks[rankIndex].index = i; - ranks[rankIndex].score = CalculateStrategyScore(i); - rankIndex++; - } - } - - // Sort by score (descending - highest score first) - for(int i = 0; i < activeCount - 1; i++) - { - for(int j = i + 1; j < activeCount; j++) - { - if(ranks[j].score > ranks[i].score) - { - StrategyRank temp = ranks[i]; - ranks[i] = ranks[j]; - ranks[j] = temp; - } - } - } - - // Adjust lot sizes based on ranking - if(PE_EnableAutoAdjustment) - { - // Increase top performers (skip if in penalty mode) - int topCount = MathMin(PE_TopPerformersCount, activeCount); - for(int i = 0; i < topCount; i++) - { - int strategyIdx = ranks[i].index; - - // Skip if strategy is in penalty mode - if(strategyPerformances[strategyIdx].inPenaltyMode) - continue; - - double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; - double newLotSize = oldLotSize * (1.0 + PE_LotSizeIncreasePercent / 100.0); - - if(newLotSize > PE_MaxLotSize) - newLotSize = PE_MaxLotSize; - - strategyPerformances[strategyIdx].currentLotSize = newLotSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Rank #", (i+1), " - Increasing '", - strategyPerformances[strategyIdx].strategyName, - "' lot size from ", oldLotSize, " to ", newLotSize, - " (Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); - } - - // Decrease bottom performers (skip worst one if blitz play is enabled) - int bottomCount = MathMin(PE_BottomPerformersCount, activeCount); - int startIdx = activeCount - bottomCount; - - // If blitz play is enabled, skip the worst performer (it will get minimum penalty) - if(PE_EnableBlitzPlay && activeCount > 0) - startIdx = activeCount - bottomCount + 1; - - for(int i = startIdx; i < activeCount; i++) - { - int strategyIdx = ranks[i].index; - - // Skip if strategy is in penalty mode - if(strategyPerformances[strategyIdx].inPenaltyMode) - continue; - - double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; - double newLotSize = oldLotSize * (1.0 - PE_LotSizeDecreasePercent / 100.0); - - // Use symbol-specific minimum lot size - double minLot = GetMinLotSizeForSymbol(strategyPerformances[strategyIdx].symbol); - if(newLotSize < minLot) - newLotSize = minLot; - - strategyPerformances[strategyIdx].currentLotSize = newLotSize; - - if(PE_EnableLogging) - Print("Performance Evaluator: Rank #", (i+1), " - Decreasing '", - strategyPerformances[strategyIdx].strategyName, - "' lot size from ", oldLotSize, " to ", newLotSize, - " (Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); - } - } - - // Blitz Play: Apply penalty to worst performer - if(PE_EnableBlitzPlay && activeCount > 0) - { - // Find worst performer (last in ranking) - int worstIdx = ranks[activeCount - 1].index; - - // Remove penalty from previous worst performer (if any) - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) - { - // Check if penalty period has passed (one month) - if(now - strategyPerformances[i].penaltyStartTime >= 2592000) // ~30 days - { - // Restore lot size to before penalty - strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; - strategyPerformances[i].inPenaltyMode = false; - strategyPerformances[i].penaltyStartTime = 0; - - if(PE_EnableLogging) - Print("Blitz Play: Penalty removed from '", strategyPerformances[i].strategyName, - "'. Lot size restored to ", strategyPerformances[i].currentLotSize); - } - } - } - - // Apply penalty to new worst performer - if(!strategyPerformances[worstIdx].inPenaltyMode) - { - strategyPerformances[worstIdx].lotSizeBeforePenalty = strategyPerformances[worstIdx].currentLotSize; - // Use symbol-specific minimum lot size - double minLot = GetMinLotSizeForSymbol(strategyPerformances[worstIdx].symbol); - strategyPerformances[worstIdx].currentLotSize = minLot; - strategyPerformances[worstIdx].inPenaltyMode = true; - strategyPerformances[worstIdx].penaltyStartTime = now; - - if(PE_EnableLogging) - Print("Blitz Play: WORST PERFORMER - '", strategyPerformances[worstIdx].strategyName, - "' penalized! Lot size reduced from ", strategyPerformances[worstIdx].lotSizeBeforePenalty, - " to minimum ", minLot, " (Score: ", DoubleToString(ranks[activeCount - 1].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[worstIdx].quarterProfit, 2), ")"); - } - } - - // Log performance report - if(PE_EnableLogging) - { - Print("=== Monthly Performance Ranking ==="); - for(int i = 0; i < activeCount; i++) - { - int strategyIdx = ranks[i].index; - Print("Rank #", (i+1), ": ", strategyPerformances[strategyIdx].strategyName, - " - Score: ", DoubleToString(ranks[i].score, 2), - ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), - ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%", - ", Trades: ", (int)strategyPerformances[strategyIdx].quarterTrades, - ", Lot Size: ", DoubleToString(strategyPerformances[strategyIdx].currentLotSize, 2)); - } - Print("==================================="); - } - } - - // Reset month metrics for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - strategyPerformances[i].quarterProfit = 0.0; - strategyPerformances[i].quarterTrades = 0; - strategyPerformances[i].quarterWins = 0; - strategyPerformances[i].quarterLosses = 0; - strategyPerformances[i].maxDrawdown = 0.0; - strategyPerformances[i].winRate = 0.0; - } - } - - // Update month dates - MqlDateTime dt; - TimeToStruct(now, dt); - - // First day of current month - dt.day = 1; - dt.hour = 0; - dt.min = 0; - dt.sec = 0; - currentMonthStart = StructToTime(dt); - - // First day of next month - 1 second - dt.mon += 1; - if(dt.mon > 12) - { - dt.mon = 1; - dt.year++; - } - currentMonthEnd = StructToTime(dt) - 1; - - // Update month dates for all strategies - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - strategyPerformances[i].quarterStart = currentMonthStart; - strategyPerformances[i].quarterEnd = currentMonthEnd; - } - - lastMonthCheck = now; - } -} - -//+------------------------------------------------------------------+ -//| Get Current Lot Size for Strategy | -//+------------------------------------------------------------------+ -double GetStrategyLotSize(string strategyName, int magicNumber) -{ - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].strategyName == strategyName && - strategyPerformances[i].magicNumber == magicNumber && - strategyPerformances[i].isActive) - { - return strategyPerformances[i].currentLotSize; - } - } - return 0.0; -} - -//+------------------------------------------------------------------+ -//| Process Performance Evaluation (call from OnTick) | -//+------------------------------------------------------------------+ -void ProcessPerformanceEvaluation() -{ - // Check if month ended - CheckMonthEnd(); - - // Check for penalty expiration (blitz play) - if(PE_EnableBlitzPlay) - { - datetime now = TimeCurrent(); - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) - { - // Check if penalty period has passed (one month = ~30 days) - if(now - strategyPerformances[i].penaltyStartTime >= 2592000) - { - // Restore lot size to before penalty - strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; - strategyPerformances[i].inPenaltyMode = false; - strategyPerformances[i].penaltyStartTime = 0; - - if(PE_EnableLogging) - Print("Blitz Play: Penalty expired for '", strategyPerformances[i].strategyName, - "'. Lot size restored to ", strategyPerformances[i].currentLotSize); - } - } - } - } - - // Update performance metrics periodically (every hour) - static datetime lastUpdate = 0; - if(TimeCurrent() - lastUpdate >= 3600) - { - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - UpdateStrategyPerformance(strategyPerformances[i].strategyName, - strategyPerformances[i].magicNumber); - } - } - lastUpdate = TimeCurrent(); - } -} - -//+------------------------------------------------------------------+ -//| Get Performance Summary | -//+------------------------------------------------------------------+ -string GetPerformanceSummary() -{ - string summary = "\n=== Performance Summary ===\n"; - summary += "Current Month: " + TimeToString(currentMonthStart) + " to " + TimeToString(currentMonthEnd) + "\n\n"; - - for(int i = 0; i < ArraySize(strategyPerformances); i++) - { - if(strategyPerformances[i].isActive) - { - summary += strategyPerformances[i].strategyName + ":\n"; - summary += " Profit: $" + DoubleToString(strategyPerformances[i].quarterProfit, 2) + "\n"; - summary += " Trades: " + IntegerToString((int)strategyPerformances[i].quarterTrades) + "\n"; - summary += " Win Rate: " + DoubleToString(strategyPerformances[i].winRate, 2) + "%\n"; - summary += " Lot Size: " + DoubleToString(strategyPerformances[i].currentLotSize, 2) + "\n\n"; - } - } - - return summary; -} - -//+------------------------------------------------------------------+ diff --git a/frontline/united_template/_united/self-evaluate.mq5 b/frontline/united_template/_united/self-evaluate.mq5 index b9d92e9..3b56a55 100644 --- a/frontline/united_template/_united/self-evaluate.mq5 +++ b/frontline/united_template/_united/self-evaluate.mq5 @@ -13,7 +13,6 @@ #include #include #include "MagicNumberHelpers.mqh" -#include "PerformanceEvaluator.mqh" //+------------------------------------------------------------------+ //| Strategy Enable/Disable Switches | @@ -371,19 +370,18 @@ RSIScalpingData rsTSLAData; RSIScalpingData rsXAUUSDData; //+------------------------------------------------------------------+ -//| Global Variables for Dynamic Lot Sizes | +//| Global Variables for lot sizes (from inputs below) | //+------------------------------------------------------------------+ -// All strategies start with minimum lot size for safety (will be adjusted by performance evaluator) -double g_DB_LotSize = 0.01; // DarvasBox uses fixed lot size -double g_ES_LotSize = 0.01; // EMA Slope Distance - start with minimum -double g_RC_LotSize = 0.01; // RSI CrossOver Reversal - start with minimum -double g_RM_LotSize = 0.01; // RSI MidPoint Hijack - start with minimum -double g_RS_APPL_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_BTCUSD_LotSize = 0.01; // Crypto - start with forex minimum (0.01) -double g_RS_MSFT_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_NVDA_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_TSLA_LotSize = 5.0; // Stock - start with stock minimum (5.0) -double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) +double g_DB_LotSize = 0.01; +double g_ES_LotSize; +double g_RC_LotSize; +double g_RM_LotSize; +double g_RS_APPL_LotSize; +double g_RS_BTCUSD_LotSize; +double g_RS_MSFT_LotSize; +double g_RS_NVDA_LotSize; +double g_RS_TSLA_LotSize; +double g_RS_XAUUSD_LotSize; //+------------------------------------------------------------------+ //| Expert initialization function | @@ -391,148 +389,52 @@ double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) int OnInit() { int initResult = INIT_SUCCEEDED; - - // Initialize Performance Evaluator - InitPerformanceTracking(); - - // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + + g_ES_LotSize = ES_LotGröße; + g_RC_LotSize = RC_lotSize; + g_RM_LotSize = RM_InpLotSize; + g_RS_APPL_LotSize = RS_APPL_LotSize; + g_RS_BTCUSD_LotSize = RS_BTCUSD_LotSize; + g_RS_MSFT_LotSize = RS_MSFT_LotSize; + g_RS_NVDA_LotSize = RS_NVDA_LotSize; + g_RS_TSLA_LotSize = RS_TSLA_LotSize; + g_RS_XAUUSD_LotSize = RS_XAUUSD_LotSize; + if(EnableDarvasBox) - { if(!InitDarvasBox(DB_Symbol)) Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); - else - RegisterStrategy("DarvasBox", DB_MagicNumber, 0.01, DB_Symbol); // Fixed lot size - } - + if(EnableEMASlopeDistance) - { if(!InitEMASlopeDistance(ES_Symbol)) Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); - else - { - RegisterStrategy("EMASlopeDistance", ES_MagicNumber, ES_LotGröße, ES_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(ES_Symbol); - g_ES_LotSize = minLot; - } - } - + if(EnableRSICrossOverReversal) - { if(!InitRSICrossOverReversal(RC_Symbol)) Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); - else - { - RegisterStrategy("RSICrossOverReversal", RC_MagicNumber, RC_lotSize, RC_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RC_Symbol); - g_RC_LotSize = minLot; - } - } - + if(EnableRSIMidPointHijack) - { if(!InitRSIMidPointHijack(RM_Symbol)) Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); - else - { - RegisterStrategy("RSIMidPointHijack", RM_InpMagicNumberRSIFollow, RM_InpLotSize, RM_Symbol); - RegisterStrategy("RSIMidPointHijack_Reverse", RM_InpMagicNumberRSIReverse, RM_InpLotSize, RM_Symbol); - RegisterStrategy("RSIMidPointHijack_EMACross", RM_InpMagicNumberEMACross, RM_InpLotSize, RM_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RM_Symbol); - g_RM_LotSize = minLot; - } - } - - // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) - { InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); - RegisterStrategy("RSIScalpingAPPL", RS_APPL_MagicNumber, RS_APPL_LotSize, RS_APPL_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_APPL_Symbol); - g_RS_APPL_LotSize = minLot; - } - + if(EnableRSIScalpingBTCUSD) - { InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); - RegisterStrategy("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber, RS_BTCUSD_LotSize, RS_BTCUSD_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_BTCUSD_Symbol); - g_RS_BTCUSD_LotSize = minLot; - } - + if(EnableRSIScalpingMSFT) - { InitRSIScalping(rsMSFTData, RS_MSFT_Symbol, RS_MSFT_TimeFrame, RS_MSFT_RSI_Period, RS_MSFT_RSI_Applied_Price, RS_MSFT_MagicNumber, RS_MSFT_Slippage); - RegisterStrategy("RSIScalpingMSFT", RS_MSFT_MagicNumber, RS_MSFT_LotSize, RS_MSFT_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_MSFT_Symbol); - g_RS_MSFT_LotSize = minLot; - } - + if(EnableRSIScalpingNVDA) - { InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); - RegisterStrategy("RSIScalpingNVDA", RS_NVDA_MagicNumber, RS_NVDA_LotSize, RS_NVDA_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_NVDA_Symbol); - g_RS_NVDA_LotSize = minLot; - } - + if(EnableRSIScalpingTSLA) - { InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); - RegisterStrategy("RSIScalpingTSLA", RS_TSLA_MagicNumber, RS_TSLA_LotSize, RS_TSLA_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_TSLA_Symbol); - g_RS_TSLA_LotSize = minLot; - } - + if(EnableRSIScalpingXAUUSD) - { InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); - RegisterStrategy("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber, RS_XAUUSD_LotSize, RS_XAUUSD_Symbol); - // Start with minimum lot size (will be adjusted by performance evaluator) - double minLot = GetMinLotSizeForSymbol(RS_XAUUSD_Symbol); - g_RS_XAUUSD_LotSize = minLot; - } - - // Load adjusted lot sizes from performance evaluator - if(PE_EnableAutoAdjustment) - { - double adjustedLot; - adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); - if(adjustedLot > 0) g_ES_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); - if(adjustedLot > 0) g_RC_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); - if(adjustedLot > 0) g_RM_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); - if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); - if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); - if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); - if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); - if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); - if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; - } - - Print("United EA initialized. Active strategies: ", + + Print("United EA (self-evaluate build) initialized. Active strategies: ", (EnableDarvasBox ? "DarvasBox " : ""), (EnableEMASlopeDistance ? "EMASlope " : ""), (EnableRSICrossOverReversal ? "RSICrossOver " : ""), @@ -543,10 +445,7 @@ int OnInit() (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : "")); - - if(PE_EnableLogging) - Print(GetPerformanceSummary()); - + return initResult; } @@ -593,41 +492,6 @@ void OnDeinit(const int reason) //+------------------------------------------------------------------+ void OnTick() { - // Process performance evaluation (checks for quarter end and adjusts lot sizes) - ProcessPerformanceEvaluation(); - - // Update lot sizes from performance evaluator if auto-adjustment is enabled - if(PE_EnableAutoAdjustment) - { - double adjustedLot; - adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); - if(adjustedLot > 0) g_ES_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); - if(adjustedLot > 0) g_RC_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); - if(adjustedLot > 0) g_RM_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); - if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); - if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingMSFT", RS_MSFT_MagicNumber); - if(adjustedLot > 0) g_RS_MSFT_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); - if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); - if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; - - adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); - if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; - } - if(EnableDarvasBox) ProcessDarvasBox(DB_Symbol); diff --git a/frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/EMASlopeDistanceCocktailXAUUSD_Genetic_Optimization.set b/frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/EMASlopeDistanceCocktailXAUUSD_Genetic_Optimization.set new file mode 100644 index 0000000..b4dc394 --- /dev/null +++ b/frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/EMASlopeDistanceCocktailXAUUSD_Genetic_Optimization.set @@ -0,0 +1,36 @@ +; saved on 2026.05.01 +; Genetic optimization — EMASlopeDistanceCocktailXAUUSD (main.mq5) +; Baseline aligned with Desktop 123.set; Strategy Tester -> Inputs -> Load +; +; Format: Parameter=Start||Step||Min||Max||Optimize(Y/N) +; + +; === Session / identity (usually fixed) === +MagicNumber=12350||0||12350||12350||N +Timeframe=16385||0||16385||16385||N + +; === Core signal thresholds (123.set starts) === +EMA_Periode=46||2||10||120||Y +PreisSchwelle=600.0||25.0||200.0||1200.0||Y +SteigungSchwelle=80.0||5.0||15.0||200.0||Y +ÜberwachungTimeout=800||20||120||2400||Y + +; === Trade management === +TrailingStop=260.0||50.0||5.0||500.0||Y +LotGröße=0.03||0.01||0.01||0.30||N + +; === Behaviour toggles (fixed unless you want regime tests) === +UseSpreadAdjustment=true||false||0||true||N +UseBarData=true||false||0||true||N +CloseUnprofitableTrades=true||false||0||true||N + +; === Crossover / profit logic (123.set flags) === +MaxTradesPerCrossover=9||1||1||15||Y +ProfitCheckBars=12||1||1||18||Y + +; === Weekly ADX filter === +UseWeeklyADXFilter=true||false||0||true||N +WeeklyADXPeriod=15||1||7||28||Y +WeeklyADXMin=40.0||2.0||15.0||55.0||Y +WeeklyADXBarShift=2||1||1||5||N +WeeklyADXUseDirection=true||false||0||true||N diff --git a/frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/main.mq5 b/frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/main.mq5 new file mode 100644 index 0000000..f901630 --- /dev/null +++ b/frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/main.mq5 @@ -0,0 +1,589 @@ + //+------------------------------------------------------------------+ + //| EMACrossOver.mq5 | + //| Copyright 2025, MetaQuotes Ltd. | + //| https://www.mql5.com | + //+------------------------------------------------------------------+ + #property copyright "Copyright 2025, MetaQuotes Ltd." + #property link "https://www.mql5.com" + #property version "1.00" + #include + #include "../_united/MagicNumberHelpers.mqh" + //--- Eingabeparameter (Input Parameters) - Optimized Profitable Parameters + input int EMA_Periode = 50; // EMA Periode + input double PreisSchwelle = 700.0; // Preisbewegung Schwelle in Pips + input double SteigungSchwelle = 25.0; // EMA Steigung Schwelle in Pips + input int ÜberwachungTimeout = 340; // Überwachungszeit in Sekunden + input double TrailingStop = 370.0; // Gleitender Stop in Pips + input double LotGröße = 0.07; // Handelsvolumen + input int MagicNumber = 135790; // Magic Number für Trades + input bool UseSpreadAdjustment = true; // Spread-Anpassung verwenden + input ENUM_TIMEFRAMES Timeframe = PERIOD_H1; // Zeitraum für Analyse + input bool UseBarData = true; // Bar-Daten statt Tick-Daten verwenden + input int MaxTradesPerCrossover = 10; // Maximale Trades pro Crossover-Ereignis + input int ProfitCheckBars = 15; // Bars bis zur Profit-Prüfung + input bool CloseUnprofitableTrades = true; // Unprofitable Trades nach X Bars schließen + input bool UseWeeklyADXFilter = true; // W1 ADX Trendfilter aktivieren + input int WeeklyADXPeriod = 15; // ADX-Periode auf W1 + input double WeeklyADXMin = 40.0; // Minimaler ADX fuer Trendfreigabe + input int WeeklyADXBarShift = 2; // 1=letzte geschlossene W1-Kerze + input bool WeeklyADXUseDirection = true; // +DI/-DI Richtung mitpruefen + + //--- Globale Variablen (Global Variables) + int ema_handle; // EMA Indicator Handle + double ema_array[]; // Array für EMA + datetime letzte_überwachung_zeit; // Zeit der letzten Überwachung + bool überwachung_aktiv = false; // Überwachungsstatus + bool preis_trigger_aktiv = false; // Preis-Trigger Status + bool steigung_trigger_aktiv = false; // Steigungs-Trigger Status + int ticket = 0; // Trade Ticket + CTrade trade; // CTrade Objekt + int trades_in_current_crossover = 0; // Anzahl Trades im aktuellen Crossover + bool crossover_detected = false; // Crossover erkannt + datetime trade_open_time = 0; // Zeitpunkt des Trade-Öffnens + + //+------------------------------------------------------------------+ + //| Weekly ADX trend filter | + //+------------------------------------------------------------------+ + bool IsWeeklyADXTrendFavorable(ENUM_ORDER_TYPE order_type) + { + if(!UseWeeklyADXFilter) + return true; + + int adxShift = WeeklyADXBarShift; + if(adxShift < 0) + adxShift = 0; + + int adx_handle = iADX(_Symbol, PERIOD_W1, WeeklyADXPeriod); + if(adx_handle == INVALID_HANDLE) + { + Print("TRACE: Weekly ADX Handle ungültig - Filter blockiert Entry"); + return false; + } + + double adx_buf[], plus_di_buf[], minus_di_buf[]; + ArraySetAsSeries(adx_buf, true); + ArraySetAsSeries(plus_di_buf, true); + ArraySetAsSeries(minus_di_buf, true); + + bool ok_adx = (CopyBuffer(adx_handle, 0, adxShift, 1, adx_buf) > 0); + bool ok_plus = (CopyBuffer(adx_handle, 1, adxShift, 1, plus_di_buf) > 0); + bool ok_minus = (CopyBuffer(adx_handle, 2, adxShift, 1, minus_di_buf) > 0); + IndicatorRelease(adx_handle); + + if(!ok_adx || !ok_plus || !ok_minus) + { + Print("TRACE: Weekly ADX Daten nicht verfügbar - Filter blockiert Entry"); + return false; + } + + double adx_value = adx_buf[0]; + double plus_di = plus_di_buf[0]; + double minus_di = minus_di_buf[0]; + + bool strength_ok = (adx_value >= WeeklyADXMin); + bool direction_ok = true; + if(WeeklyADXUseDirection) + { + if(order_type == ORDER_TYPE_BUY) + direction_ok = (plus_di > minus_di); + else + direction_ok = (minus_di > plus_di); + } + + Print("TRACE: Weekly ADX Filter | ADX=", DoubleToString(adx_value, 2), + " +DI=", DoubleToString(plus_di, 2), + " -DI=", DoubleToString(minus_di, 2), + " strength_ok=", strength_ok, + " direction_ok=", direction_ok); + + return (strength_ok && direction_ok); + } + + //+------------------------------------------------------------------+ + //| Expert initialization function | + //+------------------------------------------------------------------+ + int OnInit() + { + //--- CTrade konfigurieren (Configure CTrade) + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(10); + trade.SetTypeFilling(ORDER_FILLING_IOC); + + //--- EMA Indicator Handle erstellen (Create EMA indicator handle) + ema_handle = iMA(_Symbol, Timeframe, EMA_Periode, 0, MODE_EMA, PRICE_CLOSE); + + if(ema_handle == INVALID_HANDLE) + { + Print("Fehler beim Erstellen des EMA Indicators"); + return(INIT_FAILED); + } + + //--- Arrays initialisieren (Initialize arrays) + ArraySetAsSeries(ema_array, true); + + //--- Arrays mit aktuellen Werten füllen (Fill arrays with current values) + BerechneEMA(); + + Print("EMA EA initialisiert - Periode: ", EMA_Periode, " Timeframe: ", EnumToString(Timeframe), " Handle: ", ema_handle); + return(INIT_SUCCEEDED); + } + + //+------------------------------------------------------------------+ + //| Expert deinitialization function | + //+------------------------------------------------------------------+ + void OnDeinit(const int reason) + { + //--- Indicator Handle freigeben (Release indicator handle) + if(ema_handle != INVALID_HANDLE) + { + IndicatorRelease(ema_handle); + } + + Print("EA beendet - Grund: ", reason); + } + + //+------------------------------------------------------------------+ + //| Expert tick function | + //+------------------------------------------------------------------+ + void OnTick() + { + //--- Bar-Daten oder Tick-Daten verwenden (Use bar data or tick data) + if(UseBarData) + { + //--- Nur bei neuen Bars ausführen (Only execute on new bars) + static datetime last_bar_time = 0; + datetime current_bar_time = iTime(_Symbol, Timeframe, 0); + + if(current_bar_time == last_bar_time) + { + return; // Kein neuer Bar, nichts tun + } + + last_bar_time = current_bar_time; + } + + //--- EMA Werte berechnen (Calculate EMA values) + BerechneEMA(); + + //--- Debug: Aktuelle Werte ausgeben (Debug: Output current values) + if(ArraySize(ema_array) > 0) + { + double aktueller_close = iClose(_Symbol, Timeframe, 0); + double ema_aktuell = ema_array[0]; + double ema_vorher = ema_array[1]; + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / _Point; + double steigung = (ema_aktuell - ema_vorher) / _Point; + + if(UseBarData) + { + Print("=== DEBUG INFO (Neuer Bar) ==="); + Print("Bar Zeit: ", TimeToString(iTime(_Symbol, Timeframe, 0))); + } + else + { + Print("=== DEBUG INFO (Tick) ==="); + } + + Print("Aktueller Close: ", aktueller_close); + Print("EMA: ", ema_aktuell); + Print("Preis-Abstand: ", preis_abstand, " Pips"); + Print("EMA Steigung: ", steigung, " Pips"); + Print("Differenz Close-EMA: ", aktueller_close - ema_aktuell); + Print("Preis-Trigger: ", preis_trigger_aktiv, " Steigungs-Trigger: ", steigung_trigger_aktiv); + Print("Überwachung aktiv: ", überwachung_aktiv); + Print("Position offen: ", PositionExistsByMagic(_Symbol, MagicNumber)); + Print("Trades im aktuellen Crossover: ", trades_in_current_crossover, "/", MaxTradesPerCrossover); + Print("=================="); + } + + //--- Überwachung prüfen (Check monitoring) + if(überwachung_aktiv) + { + if(UseBarData) + { + // Bar-basierte Überwachungszeit + int bars_since_monitoring = iBarShift(_Symbol, Timeframe, letzte_überwachung_zeit); + int timeout_bars = (int)(ÜberwachungTimeout / PeriodSeconds(Timeframe)); + + if(bars_since_monitoring > timeout_bars) + { + überwachung_aktiv = false; + preis_trigger_aktiv = false; + steigung_trigger_aktiv = false; + Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); + } + } + else + { + // Tick-basierte Überwachungszeit + if(TimeCurrent() - letzte_überwachung_zeit > ÜberwachungTimeout) + { + überwachung_aktiv = false; + preis_trigger_aktiv = false; + steigung_trigger_aktiv = false; + Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + } + } + } + + //--- Trigger-Bedingungen prüfen (Check trigger conditions) + PrüfeTrigger(); + + //--- Trade Management (Trade management) + VerwalteTrades(); + } + + //+------------------------------------------------------------------+ + //| EMA Berechnung (EMA Calculation) | + //+------------------------------------------------------------------+ + void BerechneEMA() + { + //--- EMA Werte vom Indicator kopieren (Copy EMA values from indicator) + int copied = CopyBuffer(ema_handle, 0, 0, 3, ema_array); + + if(copied <= 0) + { + Print("TRACE: Fehler beim Kopieren der EMA Werte - Copied: ", copied); + return; + } + + Print("TRACE: EMA Werte kopiert: ", copied, " Bars"); + Print("TRACE: EMA [0]: ", ema_array[0], " [1]: ", ema_array[1], " [2]: ", ema_array[2]); + } + + //+------------------------------------------------------------------+ + //| Trigger-Bedingungen prüfen (Check trigger conditions) | + //+------------------------------------------------------------------+ + void PrüfeTrigger() + { + if(ArraySize(ema_array) < 2) + { + Print("TRACE: Array zu klein - Größe: ", ArraySize(ema_array)); + return; + } + + //--- Aktuelle Werte (Current values) + double aktueller_preis = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double aktueller_ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double aktueller_close = iClose(_Symbol, Timeframe, 0); + double pips_multiplier = (_Digits == 3 || _Digits == 5) ? 10.0 : 1.0; + + //--- EMA Werte in Variablen (EMA values in variables) + double ema_aktuell = ema_array[0]; + double ema_vorher = ema_array[1]; + + //--- EMA Crossover Erkennung (EMA Crossover Detection) + // Prüfe ob Preis die EMA kreuzt (Check if price crosses EMA) + static double last_close = 0; + static double last_ema = 0; + + if(last_close != 0 && last_ema != 0) + { + bool crossover_bullish = (last_close <= last_ema) && (aktueller_close > ema_aktuell); + bool crossover_bearish = (last_close >= last_ema) && (aktueller_close < ema_aktuell); + + //--- Neues Crossover-Ereignis erkannt (New crossover event detected) + if(crossover_bullish || crossover_bearish) + { + trades_in_current_crossover = 0; // Reset trade counter + Print("TRACE: EMA Crossover erkannt - ", (crossover_bullish ? "BULLISH" : "BEARISH"), " - Trade-Counter zurückgesetzt"); + Print("TRACE: Vorher: Close=", last_close, " EMA=", last_ema, " Jetzt: Close=", aktueller_close, " EMA=", ema_aktuell); + } + } + + //--- Aktuelle Werte für nächsten Vergleich speichern (Save current values for next comparison) + last_close = aktueller_close; + last_ema = ema_aktuell; + + //--- Preisbewegung zur EMA prüfen (Check price action to EMA) + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / _Point / pips_multiplier; + + Print("TRACE: Preis-Abstand: ", preis_abstand, " Pips (Schwelle: ", PreisSchwelle, ")"); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Trades im aktuellen Crossover: ", trades_in_current_crossover, "/", MaxTradesPerCrossover); + + if(preis_abstand > PreisSchwelle && !preis_trigger_aktiv) + { + preis_trigger_aktiv = true; + Print("TRACE: Preis-Trigger aktiviert: ", preis_abstand, " Pips"); + } + + //--- EMA Steigung prüfen (Check EMA slope) + double steigung = (ema_aktuell - ema_vorher) / _Point / pips_multiplier; + + Print("TRACE: EMA Steigung: ", steigung, " Pips (Schwelle: ", SteigungSchwelle, ")"); + + if(MathAbs(steigung) > SteigungSchwelle && !steigung_trigger_aktiv) + { + steigung_trigger_aktiv = true; + Print("TRACE: Steigungs-Trigger aktiviert: ", steigung, " Pips"); + } + + //--- Überwachung starten wenn beide Trigger aktiv sind (Start monitoring when both triggers are active) + if(preis_trigger_aktiv && steigung_trigger_aktiv && !überwachung_aktiv) + { + überwachung_aktiv = true; + + if(UseBarData) + { + letzte_überwachung_zeit = iTime(_Symbol, Timeframe, 0); // Aktuelle Bar-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Bar: ", TimeToString(letzte_überwachung_zeit), ")"); + } + else + { + letzte_überwachung_zeit = TimeCurrent(); // Aktuelle Tick-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Tick)"); + } + } + + //--- Trade platzieren wenn Überwachung aktiv und Preis über/unter EMA (Place trade when monitoring active and price above/below EMA) + if(überwachung_aktiv) + { + bool bullish_signal = aktueller_close > ema_aktuell; + bool bearish_signal = aktueller_close < ema_aktuell; + + Print("TRACE: Signal Check - Bullish: ", bullish_signal, " Bearish: ", bearish_signal); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Differenz: ", aktueller_close - ema_aktuell); + + //--- Trade-Limit prüfen (Check trade limit) + if(trades_in_current_crossover >= MaxTradesPerCrossover) + { + Print("TRACE: Trade-Limit erreicht (", MaxTradesPerCrossover, ") - Kein neuer Trade"); + return; + } + + if(bullish_signal && !PositionExistsByMagic(_Symbol, MagicNumber)) + { + if(!IsWeeklyADXTrendFavorable(ORDER_TYPE_BUY)) + { + Print("TRACE: Weekly ADX blockiert BUY-Entry"); + return; + } + Print("TRACE: Versuche KAUF-Trade zu platzieren (Trade #", trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_BUY)) + { + trades_in_current_crossover++; + } + } + else if(bearish_signal && !PositionExistsByMagic(_Symbol, MagicNumber)) + { + if(!IsWeeklyADXTrendFavorable(ORDER_TYPE_SELL)) + { + Print("TRACE: Weekly ADX blockiert SELL-Entry"); + return; + } + Print("TRACE: Versuche VERKAUF-Trade zu platzieren (Trade #", trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_SELL)) + { + trades_in_current_crossover++; + } + } + else if(PositionExistsByMagic(_Symbol, MagicNumber)) + { + Print("TRACE: Position bereits offen - kein neuer Trade"); + } + } + } + + //+------------------------------------------------------------------+ + //| Trade platzieren (Place trade) | + //+------------------------------------------------------------------+ + bool PlatziereTrade(ENUM_ORDER_TYPE order_type) + { + Print("TRACE: Versuche Trade zu platzieren - Typ: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF"); + Print("TRACE: Lot: ", LotGröße); + + bool success = false; + + if(order_type == ORDER_TYPE_BUY) + { + success = trade.Buy(LotGröße, _Symbol, 0, 0, 0, "EMA Crossover Trade"); + } + else + { + success = trade.Sell(LotGröße, _Symbol, 0, 0, 0, "EMA Crossover Trade"); + } + + if(success) + { + ticket = (int)trade.ResultOrder(); + Print("TRACE: Trade erfolgreich platziert: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF", " Ticket: ", ticket); + + //--- Trade-Öffnungszeit speichern (Save trade opening time) + trade_open_time = iTime(_Symbol, Timeframe, 0); + Print("TRACE: Trade-Öffnungszeit: ", TimeToString(trade_open_time)); + + //--- Überwachung zurücksetzen (Reset monitoring) + überwachung_aktiv = false; + preis_trigger_aktiv = false; + steigung_trigger_aktiv = false; + + return true; + } + else + { + Print("TRACE: Fehler beim Platzieren des Trades - Retcode: ", trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", trade.ResultRetcodeDescription()); + + return false; + } + } + + //+------------------------------------------------------------------+ + //| Trades verwalten (Manage trades) | + //+------------------------------------------------------------------+ + void VerwalteTrades() + { + if(!PositionSelectByMagic(_Symbol, MagicNumber)) + return; + + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_open_price = PositionGetDouble(POSITION_PRICE_OPEN); + double current_price = PositionGetDouble(POSITION_PRICE_CURRENT); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + double pips_multiplier = (_Digits == 3 || _Digits == 5) ? 10.0 : 1.0; + double trailing_stop_pips = TrailingStop; + + //--- Gleitender Stop (Trailing Stop) - nur wenn Position im Profit ist + if(position_profit > 0) // Only apply trailing stop when in profit + { + if(position_type == POSITION_TYPE_BUY) + { + double new_stop_loss = current_price - (trailing_stop_pips * _Point * pips_multiplier); + double current_stop_loss = PositionGetDouble(POSITION_SL); + + // Only move stop loss if new stop is higher than current stop + if(new_stop_loss > current_stop_loss) + { + ÄndereStopLoss(new_stop_loss); + } + } + else if(position_type == POSITION_TYPE_SELL) + { + double new_stop_loss = current_price + (trailing_stop_pips * _Point * pips_multiplier); + double current_stop_loss = PositionGetDouble(POSITION_SL); + + // Only move stop loss if new stop is lower than current stop + if(new_stop_loss < current_stop_loss || current_stop_loss == 0) + { + ÄndereStopLoss(new_stop_loss); + } + } + } + + //--- Ausstieg bei Preis unter/über EMA (Exit when price below/above EMA) + if(ArraySize(ema_array) >= 1) + { + double aktueller_close = iClose(_Symbol, Timeframe, 0); + double ema_aktuell = ema_array[0]; + bool exit_bullish = (position_type == POSITION_TYPE_SELL && aktueller_close > ema_aktuell); + bool exit_bearish = (position_type == POSITION_TYPE_BUY && aktueller_close < ema_aktuell); + + if(exit_bullish || exit_bearish) + { + Print("TRACE: Ausstiegssignal - Close: ", aktueller_close, " EMA: ", ema_aktuell); + SchließePosition("EMA Crossover Exit"); + + Print("TRACE: Position geschlossen - Trade-Counter bleibt bei ", trades_in_current_crossover); + } + } + + //--- Profit-Prüfung nach X Bars (Profit check after X bars) + if(CloseUnprofitableTrades && trade_open_time != 0 && PositionExistsByMagic(_Symbol, MagicNumber)) + { + Print("TRACE: Profit-Prüfung aktiviert - CloseUnprofitableTrades: ", CloseUnprofitableTrades); + PrüfeProfitNachBars(); + } + else if(!CloseUnprofitableTrades) + { + Print("TRACE: Profit-Prüfung deaktiviert - CloseUnprofitableTrades: ", CloseUnprofitableTrades); + } + } + + //+------------------------------------------------------------------+ + //| Profit-Prüfung nach X Bars (Profit check after X bars) | + //+------------------------------------------------------------------+ + void PrüfeProfitNachBars() + { + if(!PositionSelectByMagic(_Symbol, MagicNumber)) + { + return; // Keine Position offen + } + + datetime current_bar_time = iTime(_Symbol, Timeframe, 0); + int bars_since_trade_open = iBarShift(_Symbol, Timeframe, trade_open_time); + + Print("TRACE: Bars seit Trade-Öffnung: ", bars_since_trade_open, "/", ProfitCheckBars); + + //--- Prüfe ob genügend Bars vergangen sind (Check if enough bars have passed) + if(bars_since_trade_open >= ProfitCheckBars) + { + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_volume = PositionGetDouble(POSITION_VOLUME); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + Print("TRACE: Profit-Prüfung nach ", ProfitCheckBars, " Bars"); + Print("TRACE: Position Profit: ", position_profit, " USD"); + + //--- Schließe Position wenn nicht im Profit (Close position if not in profit) + if(position_profit <= 0) + { + Print("TRACE: Position nicht im Profit - Schließe Position"); + SchließePosition("Profit Check - Unprofitable"); + + //--- Trade-Öffnungszeit zurücksetzen (Reset trade opening time) + trade_open_time = 0; + Print("TRACE: Trade-Öffnungszeit zurückgesetzt"); + } + else + { + Print("TRACE: Position im Profit - Behalte Position"); + //--- Trade-Öffnungszeit zurücksetzen um weitere Prüfungen zu vermeiden (Reset to avoid further checks) + trade_open_time = 0; + } + } + } + + //+------------------------------------------------------------------+ + //| Stop Loss ändern (Modify Stop Loss) | + //+------------------------------------------------------------------+ + void ÄndereStopLoss(double new_stop_loss) + { + Print("TRACE: Versuche Stop Loss zu ändern auf: ", new_stop_loss); + + bool success = ModifyPositionByMagic(trade, _Symbol, MagicNumber, new_stop_loss, PositionGetDouble(POSITION_TP)); + + if(success) + { + Print("TRACE: Stop Loss erfolgreich geändert auf: ", new_stop_loss); + } + else + { + Print("TRACE: Fehler beim Ändern des Stop Loss - Retcode: ", trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", trade.ResultRetcodeDescription()); + } + } + + //+------------------------------------------------------------------+ + //| Position schließen (Close position) | + //+------------------------------------------------------------------+ + void SchließePosition(string reason = "Unbekannt") + { + Print("TRACE: Versuche Position zu schließen - Grund: ", reason); + + bool success = ClosePositionByMagic(trade, _Symbol, MagicNumber); + + if(success) + { + Print("TRACE: Position erfolgreich geschlossen - Grund: ", reason); + } + else + { + Print("TRACE: Fehler beim Schließen der Position - Retcode: ", trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", trade.ResultRetcodeDescription()); + } + } + + //+------------------------------------------------------------------+ diff --git a/frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/report.html b/frontline/units-sharpshooter/EMASlopeDistanceCocktailXAUUSD-sharpshooter/report.html new file mode 100644 index 0000000000000000000000000000000000000000..8d9931ff2cb1f08db57f053ae8cae2d908f9597f GIT binary patch literal 1883870 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 z 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

jB@%P_b0(KZRKre6ZN$~N zeb$xjt-eRiBm2v~>Xi8AT<(r*lS+jYBm@Z|+P0RoMeE0fUb6bJF+q_!K<2PoLJsh=^=+4wKCwtNkpy)cw zGQ-Nq2;1jtS?65G;xM;zCfakg%nngLEyXPX$M>+pl=?M&M*VIPs$23UF1OxWvQE3? z@npwz3yj<+;`h?7(!A=0@q6Op^oer4T@{x3nYQ=TqxfXyZmg9-v5(k`so9g+zm@%Z zS6-(p6))XE&x{`}5N|h<+2xTRA8*7u!JHg_R;zKg6UpxHY&o*GdbOIBHI3{p`Wxqy znls_+dT!qja1_PY)#5V6%E$=Y=j$2TR5_`Lpl823syTIar9^wCCnka=*3Gn?Wfi8p z(OT!6Qd{h$T9)4#V**&0}3&+zx(R!4ltjY9<4r&&KEIdh?uR6~6hI5w_1) zv*K#9gZz6i#7q{M!%+uMGsZ~bgi~AIxuHMEP^|B`RV{2DOO04r*U5TyL<4hK_ z*M*{c>DP@^sM32*#_MAeF{d*mXT{AM^Y74^{oU%-YG!>N^~Nq&O@!yES*KS1`B<6g zI=d=#^D`r4pRZ=I-fo%j@uC#tDoKg;Ts7-EfZy+z-mBT!mf7VIs$9f*z8>9}vj?C0 zM>aKktM5_s$o`Y>he?FzsaZP!bQ*d!d%H5j%E$=W=c}1MFLj2{JJ<8g{syMRdZwDG zVp5CZ+(P2*a_9F8P_SQ@c9{21trh3oInZ?Lzt zx}#Xpu53+NvA3*3Ge0xJ@yXiN4C-`@?)_np(fb=I#MP0~Nh`bJ?;?E|0Vh z>r|UYxn#{m+Wjb+c-&dNR?Xa)Nrh{xdiYLK&7!L$UFCaK%giSI>VCH?+m#tsMx^CF z*{5r{v8Mi^Sh}ZWS4B#!XGYP?F)I%h^`q|)Z)aPDD*sxq!X-bf+dq6{u;s+w>eXu2 z?o*4X6>s@j^mTwlIIY&#)yzI3bX}YW4{uk6ZhoeD<{sJSt65Pso|$>;d1kWz<6Dqe z&sDQ-VB|}vM+?N;*_PSm5zZ;{Zh56Dlft{so7h-R?X}?5owR9*+sgE@GLb` zzhcIj(?r*eWQLWI5wcHLb7QUBo%(%Ue3S4v+llo|HNzW1dAHHqR-yXilRJ|C`gl|; z_`jc-$T@OTbFzB1n(5pd>$>)*%M#&vYG$T-yAj^53f=t72-)YWSv|Q@bN?ixuNEiP zbJZ+`kry1-6ZvKrrDb+`M7LUduiMsd{C7I-xM|tjyh_Wer&DPd_ssXyz}VG9&8(4$ zuCpvNtc;AXeXg3n(nihvNk7tdS!+^rTDh;+uc1vO_We}gwvY1tB)>)~O!3TVPpR=9 zx&J5GyjIKFofzAT@@LBu-Mm&`&6?Zp?cbd&%GKs7bn`PKY@e=WIuu#C@yR-s?0u5F zpUYVj?Ri>;HfI{R%^|Ja&azA{kI-?An*D7cjX1NBPE0k=oUC4}W?4K|&-TA_;yY8# zx`Blg44$vIEK{tEjIe#Wnj39ZwCM!OYX0Z*4j*Sb(VnSh)|uolQI@x?!nExv`7S}t zR_osKb=FPI-s*K~X2oeIl}9RIz9y0Q&Qvq+9Q#ww1BB?%OmVH=ZsjydH3?_vZ>iyy;{vW?Z%BTTUGnGCTkX5Z&l(u zQ_cEn0Cl=6mSu{SkrB4fSF_GjY-@MVH@iqT(VnSh^fT)KjqCL+yqYL&g{MS!J+gVm& z`s34e)T@HE+Zg#fzGr){W@q(kHH+`a*(iUyGx442o7H3EV;%T<%PM^HGwl`;?lMVi z-=SvhOsTS+)$H%&NwjCGS$%(K`sfQq+tueXxjaI=MLogKf{0Ur<)ov3$2K*4tJkWT z-)6K&o1XIH{3gCL)l5exbMDq;@pYDEij|QOwog~Hy0q!2lUMHfX1}+eXwOu$a#>$P z7VTM8Fz#?A((*rxd%`(eMjm>03jzDhtn%OgrPXRCn$S9Z7HN~c-lJyiK>quguj9`b zUuRiGv-z13w(n3g?;Uwn({!3sSEX2?=3Y;Wy;t9YV2Ps_}dGSwVsJIg9`^E1+N zpY8LttjJM4+HIHW$W)4Pvz=(q(=w|i)g-#su2`1I<&htspTT}f(yEwa2|FsjYO}X- zwRY9lcfPmG2^LqgO*Cg}m(wx%ewbugW>y&);rM**iZ)S~Vz1=wm{V6*O0?%`muRcE zQYXtQOu5sZ>I?toUW4lK7ID6rKveB_Pg+!+tiDIh=k;rTV^>#7eCMheR=z`kb=zB3 z;hUcsVfzj><7Y?I?CMI1_DnUm6TvQa7Hwx)CYMLZe)0N#O%rkUxT$z~#cyi%R^Op! z=IAU(=C^T?PU1UL&GgJtL3Ek0_&Uon#mdMC+qbBh?6`kg3fiu&lxWXXvpNab!$0~< z(RP+qnD)Q>Mh-%!H8Hi%qc<&koA1%`m}hocN_1yxS>3LF{S;kiS%q$XrfIpy_W4@Y zne~<(YyD1&ah@^Jo~dQ_bMTfWX5t=ome`%GO@}?+ePkCe7s@WNLzw@uxvN}TeKG%NDYbVl^ zT@|+ZnWp6)*>`AJo%X!Nxg&(XbEVofSIdpJtH-d;c-u0&Ji@8vRLN?@+g;r5-ET29 zoh7Q9eYJV5mUSC;>k(+NR?^H@OQoh?uVw8zu^(~8u1v5pGD7z0T5haax6dlq?3^BF zJF%XrWg=>JDsnZ%+g72fb)g?oQ?ov=b|tGulwA`RNKZv#TpF=hhQ>W@lSwmq$2Bp^BH^XA*Vle!0VI zuZTOe%Z!{?s`1x*OZ%QUug+K1`}hB<3%PdbEz8U*BO@H&qF&BF(bv$At6dE#sW+|E zl?+*@1ASk=wCgOZFx3|@{Aoq;W)GR(vhN+#diS@e+S`1OmPa~5$g1wqG7%P@*hTfC z>ny9#&CiUmeTSB*agD6puBNm?%lf*X?+XxZXIUnfN4TR;F}&|~YG=~9Z9nOGuZTOe zJ65Uob%OA-tz(mx^`Xxg$5(znA@}Yo;G&l_X0| zF|@a=!j$h-^0QI|&1pdPq430KwQ6tmYBh`Rd8aL!ah`C6no$y-*hTeHv$L$iH$Nja z_u0Nh&DPtMvyJb6e}YmY~P~hwu9VPv#TN{+B4OxuQ<_feT)r6+gVm+ zO6}C|sfsvpAyM_2Z}wK-qvnx)WLC1{{3gCL)vS6o+0*goi?6e+!Z$xN!uB0%)=nd} zoW7dfY$w`t)l6-e8{`vhH}+1AW%32;3fzS-7H7M-uTb3zSMx^IH+vn>U+HE(g-?8ae&qRBsZ`NslxF*_eU9T}E z=SUf`i1XIvGtB$FW#!*rtzNC>@!JM`?34KB_4>M+|NP7-@sO**NzHDg!Z$xN!uI)U z*8YWRB>g@S)~%zO67894{_Cf2<}Bgy=Zm(pER)M4MB2aq)U)5=6m#zFL#f__Z+iB2 zuhz3p%Z${t{e8rV@Ju~(HkvimsaAwnRl)jfpRZ@p)}3wqH}5z9VPm00d!C+&Y*7#W zR!PrpB&#-$kQK|Px_um-V`X2SSlidVo0^l=_o#WK1KY2ciSIl$GgGQPI?YPWZY9qY zD0&hN&hJNv$>m#V?(=K5q?W|v2( zdf^rPZd1#pbSM2;Tm_^O_nO|s;C8w~H}QRx-F`I!;6PuFv!O$R3tPhZcjwv=ek zi>sln-b$xgso7bU$>kAMz4UHnJ-0h_`+0J*d##?;ZM^kxs-N?y4b7v=Q?C-fu4bKF zW&OKiSEg7Qk(&EtpRQ)HrsI%qk=D(b=G0Y|66=}X8GlKC22s})+bUG0XMURRQV?~j zy?9>VRnqES$?kP}R!5L_9nZhv$o#taCoxVd_EkOe)o!tJKV9pL8>#Tk&y0|LvYy47 z9Y}Qtk)ibN_wwK5N~~w<8Q#heTy7`ct|FJ&jf%{SBkpu2;;%iqFd$alUPM_GR>B^F3NtXYQGn zU1ce)&9nS4-qdF;fapWj4yrka_}d=r7Ut3o$F)70D}`+PNTeSXvldusM; zXJS2D&8io>H5xU0+cLX6!hRIdd&+>dgU9|DHCGgS^cs6TJG)owS&T>euzh!3VmwdJ z>T0Jtahy%@b+x!mu`)73_8odA-X_vM)3d89CDwEG%zXo_-_8Q@b|W>afBlU7dizoI zXj1d)cZ;BTXZ30|YmZ{2my@qf9`$sc@b&#=eW&90&#WGQzW6%JDtz-Z^3Q#?&)2hP zt6!vlM#^{RB-&~1zTV48uQa}p^ZkjotDt0Zd4xJDqrMMB#EAvejn?zc$?AL5JaRiW z75C%(Ccb&SzOH87ipcC9f4$?A+Cf$9^5m-~Nzj&s8(I6&^9s zb|V$0>ix=n*J932d+zsau{L^kcCXg62#>|uE}Kb&XX;t~@cy=a>DgIUA)KEXVfzj} z>%JiBO})-tPT?Q*lxWY>bE|w(aX$Wh(RP+)a(RT47U#J$zMFr;?=bIeT&rEG2%~2n zz3qwSJncf0io(A(vWKR(EHkT&C{ylpe7bfUZSpAkmwJ^iAK50_bF~W}GT6N?wjD@s zS%oRxgW4f+QFE(}u;ZL6-OUrXD)x7)?@{we-zHxeKF)9AJ6FwQD$MHf=S$7bvI^h) z%m~|es9D`1s($%?2hFLQ?L>Q~nz4+v+xgpUStgf96j?K#GG%?eV&qm`zS-;SUae;$ zYkjNpEY{*yg`=Jl;dy!{15uBwi=RcXnKPSAuR}qVbkhn34hGo%+5cEQCBkX7uBzEHWUcmgWrmfJrsf{mcc{7bW}m6~N)>Fb zn(4)&GUYt5cstuFRN3Pshx64yF{ishd0t=5-s(HlJQivD8|Qz$nz0VL**CAKf$?RM zKH2B1nclCl?}+i6-sPKhAG(ihrDkVaMa@4xza{_cXU=qKQkV1D^?sJtYL^&ht7)Fa z)h=)O_1b0km<+%X6H8}Tg=Kz5t8$;>)3r-}LN9@C5`ne%K$=rmS4ynsdSW`Tsc`1C z+S!)bYyM!CMnxvns|;v*PU{?g~}K!aXh1nSz#mg=nv3XY)N;9_iZj zC%zKjc{y_LG&pR%T@|+Z8ELss_W4>?AHm4&jCiB*b$hmFCX4bt|Kjaz%k1*Vk56o( zTfX{dq;%r(c~SL#Z?SpfBQ?#Li*tUhcFBwMtz{ntWVf>9GSkKcgy!k(NCsG#WZL3hl1G5v-^Td$H$NJ7-dE#vKT2HL+&WzQ!d=K<> z!q@86%#^;m_r1S$>&o?(Rruy-q~|`{r|X%uhzi%p={K^+aXqKF>+0SUw7C}ng}K;S ztGBZ(lglI2w^|p9t3|7`kFF!d%16hNZr8>F?YVOJ`Rm zRv8(g_LP>OHw@Xh+}e9D@V zU72BJWQ6Qn)J#+@HK)BN=G1w{HELEzB;Q~wSi7oHVm&j?hNyOKUG^m2&bA8GA0LgXzLxf$IH$~) zWBAv71$)2V+@al(`(NPcDofXSUeA)%cay5s$+8N~{EWOc8wP?K;acxje#2I`UtyN)hLLB2l%EyqhQf{b!!d-})LO+@a=?y(jp(wK4I{ zt8+!otj+X$?AN`v_mnKl6e}YmY~P~h^F9#f)XjFHJx|T5X%Qnj%}UMAvIj> zRJmsAS8*%fgxc$3Tdloi6{g(1r%2CtXyGw_`}`jj!KClKjdy5Qu~q*D0cg6)(F*Od zk4Ptg^Zl%x-m(hK{LBc)cWAfmEw(So?BBkdmuKhm#IC#zShS$sz-)czaf ziSMkq8lR|d_xb&Ly?L(wR^gkUAp$@NJ+^OA^A=b4)a=xhXwOnJv~>c|YgV+KWtm(a z`SX8omhbWqac%%a&3>ljo3qt-sCjJf*hjjF?<_Ur6SXJcZ!i#F7lUVtm5~v)?@%*& z3BLI((so&DqCHE^qD{@o=fa}xEUPfp{jA>WiZ`7ibbeviF)rQWY`px@=G9szryuE` zXZO_oK3C~puU9J;@^Jxdy6VX1oIR@ZC>y^`J^QQ8_h@+}%J%m){CX{GHuE~|?aBlzBO_$rp=DOS|L>>Q z%jX!;@|F76TrIa7#GUt*mYr=Cs_Z1^x-_$ZpCh9__srhvJJdW@&*nEjMj9*Bto76V zbkTJq6}tJE5wdSlvtsPteYpI#SL$DL)vVnMAJ>Yvvn{jBBj_~Wk16Jy+TmaD`<+{y z?XA8?%_F@6^pW48X046sq#JYY?8*!)BO_#=u4djxYIx+zRPy@1*;Sd+$~{-jy4#74 zy5rj>H9OlXRH<&U@0mKTxz!Fkv^VOq%uUVS>a}Vn7lrUxr2RD~sO>&p&6@EN><8w( zDQk-%Qt(?X1g-O%E$=Wcc@v_?5$7txDIMg zoo7s}XZq&$#rZ!!`RWzhDpbiZsc`Xz9eRGHv7uA^re<&TJ!;-MgL=N%RhtswS!(9JW7YFJ-Jq}pn|(Kg=G0Z166=|2hPM=!)$DAmP~}7gHS4@br4II9M|RV5vU|0jb?eiZcXl&; zo$>W(TX%@lZ-)`ArgZOsi}tnF zILk7*Jo4icMdP8fp7nhPd0yX%xPK$pYL}H6nq$7$RhN=>=lNplAH6#y_&VNx2KAO@ zVwDj^)~p`7zr;mZPgky3<9$$WzgL9*oa3A()^mNac7W2Cf*|2+t5Dtd<)%(fyfHtM z_yB)CLv&$pw;^f#$%<0|6U;FCVUd_(xd(=!dloGPbS{- zN|l=b{)}eDZ))~d-=Su8_?@fSdBI^ z&91tXSkF{*yL&0!mJA7JTZJmsRNk##q|FyA@w)yjMpJXLdbOI#>|0OJS)}c%OVM+73=V&kK@l5UpJB| zRz^nHzD3Qdd-hL2l2sgMJJFu0W_lT@d^!&-+Rm~HQz~I}sPOZ=?`5Z(N*G^B>7Qv< zO~qM$kD^C9I{gZj7|&F+&WPs~+gny)oSzwC`wm6x7F{CEUcAlse(q7U&IkKCGK%(= zWpa6h=mg)Ja%a@cw-v~*`=>2fgBX#6_Mh?1+E?*?VlCQERs|tb-_V1(S)YX%c_f4zyb>G|i>hgD@ z{9W0ZTprU-2o*TC7Hvai)AzH`;goab{M-m*-w zGBU#U9corater>yj-qDntUIoqiS}GIs~_6MSlO})Qz}=HUkgza0jyxkC#Ju@fokF&i(%i5cT`tj$BwzDjg z%Oh0#sHgcAO~i=@RdaKl%bS|L)%U1*>lo%ktYhKJW87E#c>Dk#T!M(-@IO5SF?I!eSAx7<1Nb+ zD&Q&um$RsbcNC+a%_!F4Voe2jBGU?Ovy6 zodh1gQ-t#jcj+1LoWB+3EvpdD&y28rvYz*}S-n{Wd;81uq>j^`sb`|v-l$E;Y-)YpRe`WS(YhQMn>4a zL(R+>-WfIbyz^a^FuY*u;1F$RS%oQ8P5gwffS%#@JKHK$+4n@vzG6+>r@OPLeD`;$*z=PGU#(uP=IxtdXLT_8 z-j4J8>(xw`ZmKGZuCuE`H$O8%_8n?&HP3$D?0YE_>$(1!sx@BD<;UVZs}3grj82nU zxoHj`u6s7m{Ij?G4n?=Fzq5$j#k`5~JpZh-YOJKk^+bf7U0I!#krA?QQMArKvRCEb zP|c~+Q(`?=(YlZ4``6agQJih7Q2p`oQN(`VV`TlT#+?4S$V0=4VF8K3~mZJ<`p~O&iCxGqIklX5Gg_j&-y^yq#^C zT^`{pH0luX9ZHJIxP1!E`4y_Yj*W_Ez7c=8Uv|7j0)* zCYML(=cGdIYg&ysmZT2uP0ilwd(^D^WBOS#_o3XQW=>D_?icZvWr~%N5w_1)^Zx8q zzyHgB0cM4osmzhNI?YPWUo%lf4Hc&N=6otj#Oa*j?emJ?)aSYGJ%_tb2YpN_?GV z6~6fyvM4f>9^2=unJ+$4Z#e7Ug|@3Wtxz+2y40RrMMSinWtm(aA>O9Li~Hu1_f=fR z`46n}dG{$58R7VR{fajF)maOE zt2C!B_DQtod1Gi3%l6`HXIX{mkB@fo3_d1l#HH@OH%?ZsRlqgrbK(Dnp+jgMOb)aZ&@anM^Lf) zk=&at;+!<$U+{jo#n$XsYYqBp^*w4n?*U^LU4<#}ovUW%lU>21X2sW8mMK<7M%cbX z&5EscLXO`m&8e#}CE7F9tR5j>XA*5^S%oQ)HM7xEG=GQNLis!Wy=H8~>wLHT4nsP?ND(=wl$er1|zh7gATA%LKF3uJM@lE>uJZ-tMw<}YtjEqox zzIt`KRlCaly=7E%obBst_4Tf7vUuIJW<>)P- z>+Q-6D#Wq4MfsBoV(X%wt8B08xWz9%D#&(K$mVB8$Ua}kVm%gPyBbqsomcJa zewkI7eVv|?oo$(29$`l$$Jpxb8`)h>Hs7ITqSz6y?5a$OZ(66XYgu0!@b}3{%g(M$ zurk8?Mc-zR?9;VOY|Za5RvWpm`o*eEMaubJ@piUVsB+gA@pbaMTEVG!lMVY`rF}HG zR=eVWn_fx^VKZYbO3Q;zSpzq_X!f~xoXDaQMq$7Tp!KF5>Dw*|(?}9jkLQ*SdV=II*6sW_)39 z^>z_=WsTMsXuQ{zmYE0YU0&~dEjyd<&~m$9qV@45&wNk4OW*V1J6>1ps<6$^jF5eY zmhpIa=Kg64_VJIiy+X@mO}e+wt13T-KUsr#S3-^}2m+DBlF- zZ=k3!{qb3|bd!kJYRj(Z`AT{7e$Bf>yJHnEAA=>DInt_Vmpx>E5`}frTUMc&pBdr! zeC_IotBKVxQmajz$YdI5jOzh!$HS8G=^ zb-Q_Ey0>RLo#1CPX*bcls@yhn#0FRF%ET%oQf{-wQ+$VV)$2os*Q;;&`z;geyiQmA zZp%S4Zft3L0u-ZJN}R^OrKwjXh(W|yTT!t>P3_rH2Q0eIr0&MS2D zGb3c5uV(HGX*(1B+q--RMq)i%&5FC6X61=z)wl4(XMPwhyR*jfa$8QU@3wxg+^kl! z2#@q;^8L!AY7*i3YIf0-=sLTyGAkoZ%{{VjQ8S&Hyv2Rr?5aqK^=vh>C!6o@qVxIq z9#*JwBAK7%`#TzQd|moGdo??&?@{x}{Q`e}e)HojCc^X7tgahQogaU?)a>l4(9O?` zkbSm~$W3i?6F~R`}*;M%cbZ%{nX5 z-#g|VzC+E>)(JPqRJ5ICnOq*xHFY zZL3fvGfOLlh_i|i)q8EXIGWic)BA4oT3_7wj@-BBD|m@-TAi9cg>8Oj zgzP)CtouLCawd9+@6mG0FR4BqEnw~Twqwyi>yb&Q$uURLWhW9%#Wx!OFjxB4D6kK700Z^TN3=Xqj3Pg_px?W)kt&y0|L zhnibQCRHu}hDtH6YLr;dRkOa@#+jp|@5r`gc6kIfvybHGLCl#iRu`Y8Z))~d-=XHQ zvk`Qo9_Kd^o~P#je&&-X!o6Rj>+H%5DYZBSo07-bO?+o+StmYS1x9S0T@|+Z znGv$j*Rog>XY&^K>RsH`KF)fsmfQCj^V;of%k1(9_hI0fz1J0Us%!iUXI&uP>eXuI z3w>kz5q@?0)oLaNVm670j_((0_I724m5~v$&sQ_7$IivzX^yjg1L%f}B z6{NQlwcn^_p-lI&(y9e$iDki zw4G%YrrfE<9+L0B)M`z?35 zvI^h)%m~|es9F0?)L?t{YCqeF_DnS^YhwR6(RS}aCYMK0V7?nb#ObWy@A& zU%F9G)XCPV(fB=(?|S}j_dR+Z$&&y1=xUsCinOl#X5I8pW%2mawN^X3GR4Zs2-$b& zSv_56_s;vTDW$c0u5ac&qYmXNTjK3TDpa)(;&s}H>l+e&<=eFEZN5XxV;x=Wb05`| z_|DVvzaOqt9GnLhTW42=ZGL8i?DMs(+fk`oE3@)%sOHo~xry~mEz_65F0KD2O|~tw z%OiXthr2HEygrgv)$8B?+2mE<6rC(zt!Pmm*=`P zuzkLs>3JF3#UREUr=8aBN?p6%=ajs&x2(bx{rMPrqs^P={YCT3tn~aXsuKGdTdQPz z9&ATWHgZq*-qPx>#dRgCTG3Oov#i24KQqGi=}H!D#n||fzGrr|rsSDtDp@C#{H@hm zx1D8~Tpl61Cg$@>6>-i_Sf!(~e`ZtU@zCBTwAt_U-3DzPHRQe$4^;vDUoEx}7nl zlD&^(+HPaAtim@xGs5;QYSxYg%+u~NbLt}7HEPaxbZG5%mSu8zL^p=`2&M6+)A}q+ z<_&c=-=pR8niq6kO)=4(t7Yah-3gN{%M2?cBW&NHW%XrqGh|=OE)GhxXL@Fxsv*8j zE4Q<(#uTb4|5aV&_fLk$+vn?In`ib`uT!(u5_(hF(>dFZ;+uI_YF>%&^}S`CW%U&Y zR%&log>HUkgzS^Gys?&+iL!cH_C1tI%X#Il^og)K=Pwq(dsfYhdkB~r-zy^K_>dfn zH#MVpXZ0OwZaWmMvgy}Ef6gHho~LH`v3@#+QnRawRSmA(N^a(?Yh}a+RZ#GzL*Mj-hCpH z*w3M|=L*gI%m~NltCy}m^@LEt>FqwTDjw%F(M~IM#S^o83vHJPYpr&cWpa7s$LGBv zL+*8gXzOc&LO(mh96}vjp*Z0KGM$P`t ze9?B6Wpa6h>>3|SKD&Lh+xm?n?oUA@q&HQ~v<7!`{Kg#!bRIRgT^rvrU92(xP z%&;;tLiX-jZmj7GA?xjFnM`Xt+lh5vxhrvX%TisuCEm`q3RT@X;B(zZoLdT$_ikFI zzNO6iqs?b)S!ba}_K~TAjq^>B*KsZDwmvkw{q17wMk;LcGb3d0uVrP()T!x*=xh19 z`j);v@%g5#rE36BxqTBdyF5aUoU2=nxlSK@#V>01R-dir(eF{9CRbNFzFHsGvv!~S zokY^Jvn*4rjEu0ozn(>#wVONW`g(SCr9?Ze-4)MFl_c%%ingaX_|R?&6bGsDWr2-*9qdAS39-!r>9Q(`?^&D#5M@w9k5+bUGQyjBeAZ9O$}u2FlT zu1>aAv$OgNHIMa$_|spB@GLd+T?%GA?<{+}Ds=NRQgff|{ne~*u&SQjuYqwp-PSWE z)-%=2ZZEr$e*XkDd)qR*Ji;yaI=SJLs%`?Z=KYFxvifW_i}1) zFy(HQ)EUxvw^NKRw_ZH6xA_V!kM(u(w;QKBQ_K2d0Qt-I_v0(QWfi*lnGv@4*RuAT zl~?t?y3Cxql{2l}Gd;6t=k5`2Stgf9=+aK7D;jU@VfC|SvKFH3&o-Z{Wo#Jx3NLhB zttru+r)6qj@bJH1T6UIYhLw>Kws+TZqpefw{j8aw9BptBgpweTsKh?wU0o81B9Nm|o>^)_I+-)UU-m-Hl)8czp#f$12%skm==(%<5 zQWxz5kF#wRJ-41N-v=x;^WIVO^7m#hYW7y2t7e^5AFF~;!`}MG zq~=Wcc(lzvJ`s_Nsm0e>R^gkU8DV>OJvZ8l#rmfoiF(Fqr?tBlYZL$a%uckOWtm(a z;TEb?%Mx!gJRcwHsw#+V%=vz|c&Amvw zovHFav*_8|eYT#(c;t?Izdj|#DfX)B*`M#=z4Ufvij@)Rxli`~dREsLXXD8HdwS;n zjq$ZRXH|7Q`x74G?QE-1HUEYVMQ0yPEMXc;~j$+*k8eRWNv~GsERi;_Yn9?D7b8gk05ZD|l}o ztEo9zeXg1t;gPeeJLb_U0Vm(*Q+UxQAp;EK6twNRFE%k7@ zc_1eI<~=9T?75#=)aC&D{mww#+V%=+-X3^VEnF@9*WzXxZ6(ww9M2i+#`R*2*)qtb2>yN}`q8*_8=a zMn=fqU(0-1jK~rdx2pD5v6@p?WlF4PYMFg8)I+WDh;22hx>?S5>2h-Zo7bAgT`Oq^ zt9j;R_1S9Hx8qvZNbfY{kG2Mt2+#7&%oDT8ZRCmW85OX7vd>U+yDf-l+t+BNW~ZgZ zdajzWif#@UO=sIGYNi@UMDJ=_P0O4zh;VE!Lb~RsZ7FM)rd8O@7pkx9?$Qmq)lSh$x_^X1=7( zu9L6KENb>vU!&%coY`0OzP_5)9pNiH+u2U6=W1Eq7e4Y8Z)aPDDqpi8 zdQNvDsOm|azzXgyTF=ti+NIj1?w@__x~TRz&!cB6=p<@m}wG%- zQ(C=eRlIZ$P0D`7oOO*i#`h{LzS&!SwwgI9qx&WHeY0CFj}tx`YtuK+3hMjkrDtbZ zMYZ{v5w`c&vuNwAa=$CY->jBsr?vZd*39ay`lgHZMce5-lglG?uI97I=#wmz6P5dF z_Euk`=KXuVh(_Gbc;cJa>x!C1#8G6ny=9qVWn_fyGt|tC?L}hDsjD<4+B4Oxb4dPM zv7+rPt1#sjPHEM@L0ZA_&HU-!JFnx1v$adF^~l~6G+k}!D9z)_ZQp@nDftE7hB?L zZ}r(~7Gb*S#o4b(nnhPzN`%wed|b`ijY`#4)a>la3@aleWbdzL_K~$4)xQUbIdyfV z#Coop#hbgS)?Ti40VUfiRKL7eQ~hq{LYzO@uX~G@z0GH9S$zV!=c(1b(j28OjgzPi4OqR($RPU|<^x~A1SkKflJIe4T=S=URvn{jBBU%?y zZCZI0@hBA<@4cIvlhxO#c`R#k^P33IQZt!}dR?7nrDkVWW>^^+A^Q|Hqhn6>^y6$- zk4UU%tC_eq-Qk7;ooyAWM9@^T{23=PXWhddpCPZ+?5w^<&HG)F1U)jQoC z!b;<8t5C%c13n7y;pj6mR0!X zXGYlGUC*LDwtqo>J+9}pb|0^3(}{(8IJdO@{i5wG%jEJ1Uy=Ie^?SInB-Oc8F`*ZY ze9za*)^?tyUsj^!F8h()Wae&dX}^~*5k0D2c#_Q!yKH~Ecsjc>waUl{#rvxFBWu=b z&g=EPv8yc|U#n~SCEiV^q437ewhC4BOOGho_x9at%-Ow5+4K@y>yDt$R$rlJXz%Yx z;j_1Y=R|m(n%nNZTZ5%$XIF)8erAO1Gt`V0*k4vJwtI^;r>?e?Sm(&AqGp|1>g7_- zw#+V%;3x30{?wwF6Ezcm`<>cF&ED#3)I1Vf`yJjyc%GVdw~Aj&c=NnnnPFvQgzWv* z%xO6GSoT+LYA53>_gppODe=uN9~N(CTZJlLbX1SE-*M8pI26yH?tf-IOJ{2ro@1F3 zxxw1feq5b-9*?Yb<1q8Q{r#fpEUVDW&x~-qzj}3sLUC6=vgV!G&i2ujy5fncZ=qf1 zZ$;Z#mdWK2{*H>_T|}bwnwTZ;QZ1g?TYa{gzk6SuN8)Oqryk{dT+8yr^u=x8F41-Q zb7oi>86kUrE$cpHMP0qy>xpjM%9&W_mHW7wsUy*ik?xsDw$-S%4y~+aYO7?@e$Tn7 zIaz(Snnig3UQK4v=_wJO6<0G)kRn@2YIb&2=;mjn=04eHsG0qn{VbWDi0y1A)^pYT ztM?icwXLlMTD_fZnOz>CV$B{DH7%b7Yo~%b4cYXbqP^u;C|X_idwa^hpDt0Jr)X}K z==J}2yE4bh$Oze|C|cc{M#$b@&0>v?_fAQ%1HFB}6YIHZCa*%xE{D=e<7}%?<#*)H5UPgUwYgshV@+^2 zpRHxxgw1Nb7iW_fjPsqRlTHPZ3a~0g(GR}Igmhpka zzAn-iZ)aO(mq&Duh(9sWh^waUefQ#*z0Fr>d8}8&-N#2_tK&aZ!E%)CR`5)) zGBQH;8Cq6-MCTrJ&g{QsomkJ)G8VNHhMD)QDj27qaz4!6oP3cLn^Gh$HD{}@Q8QJM zeb4OXHxZtvX6@wR6SuxXE48z$qS^e+2-&BoStlO*yUpG&Cf0M+tcs_vgow9$6EeFz z!kU)rU()jT??2<$y+zC3=5w`-Pgae7U(5dQbDZzd{bu$Cs4e9EW^Y+$SQ%+*?y1iH+XGnzmqc&J*Hm#ES(y} zKkm1SryI%CDkI91`xNi5Ua?*}gM1XDIdyfVq~5$%AN9sqq`uvBS2Et%*;b*--ZF7s z^2W?pJOAh_W9!(OI`?O*uTb+?)r%a5Sz?aB-*BO_#=qGlp(qS>Br_FY$r^=vik zM6s*8iMJc6Q2p}K>0XY^_jhuodx^AlJ2qcDTYLGl)vWK3w2GH%*=u{2TZ!ps+m0l{ zv((I~0CF3jwTrH^t3o$Fqo}J-_Wo)XYu)qJ@5%OGs86hCsu_Q&Qx7hl7H_w%XLfmn zKaF?GcW7z_Z}#|(*QVz7Q=e}lzDCU>Rcxy6SE!i?pRPWqSbS9v$y&hH7|8eUlEXMT(v0? zp68o6dr7427-qXFbn`PKWS^mCRXnNU_SNh>V`4qmH!HJZ|6r?G@piUlc6o&AIPaF< zJr;A$RpU*3ZoR14TYZI^xz}jFUxZuAw)2|^&r`E9l6=C#+m#tsMn=d!Ma?7KB2;L{ zS7*+a+(#w|;rcGPyj$tzWt+ z*Y7`R4d?Wuay_??wO(?S;XwTCwT?E?yadBU^tiqHxn&;`%$?CJ!tP^le$Gr+R zJvUo5CB8G&%z2&O`8RJ_g>QbQMbb^D)L`?z!U+lVgfbFNwY zI@3|2N3&wij%jvttmQ^3Jo7VcKe85ll zm42OVnOz>C<7lsDO%0Vi-FxijjX5RYtUg=K?HR=4jLbiG}f zVP!;-b)W20)U0m|^>5Vu+_QA1npGE}6DRTh*iR+fDpc7uQeT;?Un&0L&JFxTA?Iaz^UM*E+VH->>+x>T#K2 zWn_fxGt|uf&PW{Qw3JxSRkJdyoGE*qSE!<9)l_|csfdg$iybJh=k=O*jdn-w&h>Y9 z9Orp7PyXdAV`J`e-sCN-(9F+_aD0k-6?g4L)*mCpeq=qfW~~#%zLQF8wX-af%OiBW zs6L+KYEDmU$He_i^ThaT*Z*~mnnzAV`MapkP%}N6tb~rD___=_Q>={07x&pdMa_z= z`===U`NBkdrkd5i%>7SmFQ?T+v}e`4*bB)wE+4(J3oo`Of|Qg^PFZydsfYhdM_vL zau&>fGq-O3{9gC+@7dy?z2(;^dSp+TzP9a(nHbMgG`#{;2>rP`F?N<^byh}3*gi$k z>_@5FK3BecuVkV|d2UEAE^5rYBif`O( zC)PRgI^H3IUxSd(PP1(_s%SR#ZHYO1pya_mZfUV~vib@&>!v3v@xAVA|AmM|I7M5> z)vOK?<~FJMjLH{TQ=jbp)vWJpkMs}t@0TambJeVPm-Qy`c6oF~&3px}TP#k!`%B9&8gE) zqMcUifipud%pHEXYDC-=9{XLuc?Z*vn*>ikLVs6zoJRYtl{ia zd4I8J+1q@DmdEy>etxav<8rWNIW+GR(K{jia& z*j0{>^E|3vW=<9A?0cPMnOS8-y_u{dcm~h${_2Hx%Zl;6K8BQsb6IJkJH?=rDx zy!L6!egyrL+mQ-WI`+wm{dp!4rw@imdM_*1*Q7pMeYPhS-+eU`XSf<(;yW{vZeI#= z@iOnGx2(c9KQqGi8ES5MQ?JvSIlZdJrCYJ+IooPhwB1N1mq*$uVxRLW`eJ3H+sm(e zOJ3})zCz9F*6Z&!!Pl*pXQ-KZO?&g=>nzI@DFTq+zoMbt?m+IHoq)ER?L>Q~qIGMkkEuo5S(eG=5#5Q}>*Atzu6NJH zri+%n&1Y-*=XbjMry8N_x-pK@J)Soc^>NCEm`q3RS+Rf@kLMyNv`|FRsoj?q$y2>TA@z|Mdy}#xDB#`fApBbAPX~ z=sLS9bn`PKWS^ntbzbGOLCvYFH6_+L3OioIM$N3=UOm~i%r1|7dHJVa9ZaVtbh^n` zKG&JEv-%1(kL)pWx074J65$ki9rw-jT|?JJSJ3r#WrmfJrsf{myQ`VnEjt*?jn_UC z)SS9nQ(`?&&16+{V6ktIVlncBttYKe)s8ZeG{3QzI};yLz41S@w&q;@Hm3W#jOfHg zJI9$GQ!qqT`Qp}<^-Q&Wiey=ZXnsb~b)Vx?6s%5b@~P~P*{|8ocA}kD>!aRyp`AJi zpzSQn-Gj}oL3!P>~+gVm&syvx}*53U;cxb9LoSyNuul1^PjebXBYj1nf zZz6g;vR2P}y5kz!ZY{0w%+JUd_bEO@z3ZyA&;HN|Kec`<`(5^Vt*+$Bx*;C#wzVMJ zmf7Wzb~^}fQ0hQhZd4_w_C9%S=N0-Lt5fq+YfJk~XX>}#-{tMf)G8w*6rZABdEb6F zh_4c-wR*08)#2q=W$AZbor^q@?AWhlqE431&v@-F@wB)5Y(1~P5!7rsHmZw`q15cSXNHv#sku+~DQafNk^9hk zdr7n%nKuDLeMIRj6``BI&fP-^$hfy0>WA+kB0d_iuCJ@8s%9iSIlu>+2o< zq>i-g?5eQM&y0|LhL(wN_V+00lGysi#Co2V*->V1fVJDL(BkcE%k1(<>j=@euzg3F zzR}67ss84wGV7T-Prt+qsDdsZ&czVJ>Yr+X2vvq&UhJz7Ut7ECttM*lH5k!$^^pow{*LM$^PU*xlE)E4`#5x| zSo@u_v(-F$cNg)D%TyBInQGSewD`8ib~O=SXIX`Benx8Uv%SBXMH@9MKlUC-bLwhL ziS{f{tWImx!^wn1+gX;$>{1Sccz-v z&qXaF@pYDEij@(mxzF|~YF16NU$aJ6+u2UEXR29M&2+~#Ud35fVfy8zR8#kptFKY>NOzZC#}nVVYGywD*DmlQ-m(hc{7h4GkL@$m%qgP%3MXC2*Qi-F5nn+T zZD&~~mq%K6CSUi=`%qMcSwry9-m3LHovmNKg2E2%2+<=|uCzWMt8t-B-Dc_UlM+v7 zSEg1O;cecdcz^YZHNKcrY`r|0n%?@YtX4&i)~w-;-($6Q`I2}$+bUF<1w2E#jSuE{ z4gPHJBi1{}&gyH_Jm!sEbt!q{d1|J{N^IkPyXd-+3f=sS)Z8cg3^mi&z{TA?IQuXquL=)k8YS!&9`R*=nSA}kVW`yih)I3u2@)gF!dah^I z&3FFHtX7&?RWGX3D7B|%Ry@3}&ybfm+gp8&nn&Vn|My9R=c!riXYTXzc4cK&Mx^FG z*{7(PJ|OjnWZ%rU8n)glv7W7F{H6c)7;5&mRjBIsWWP*AMwIR6X{}^u@fAvLSyYR) zw+uCduFjO`&QmhCTvJ_iRgY{}g=~JNDY-}X8A{gaWYo}$vcI>pomkIRvc7`qEf8<_ zCS-PbgfpD@W#7Lg=G-T;ceW9wd#le@v%1p8{IaVvCBn1ROwOX-b+?v?uCpsMtc;A1 zy}z1aJ$8b^-(Z?p&r~z(CB884J$lS3m)dP)z_$b zI6gzWx<^(2%vm!2XFI2f_B`!UhtRi8ou^Qg;4I7J@`$SUS}S~Zrh6s0g&?1tXx=zk zevP6>&c|?OWSsFlMH984Xx7c`?-yfdSteN-8DV>WMf1(Uwgc7gz^1ouJKJX{nsXF* zW7nA?+Rm~HQ%*yvhs)=|V&1y$`_VOTsk8fRJ&W*&p8elB5uT}Mb;S7`3Bum83gP_B z2-~OVS#{2S?aTMoCE7DRG&LDcFgVqUwo`g0mq+OPAaC=Le7l8FXCHlaZ1K+C>TA@@ z4Kdi;+hO+JG4Y+LX1;_+yzO!%@pXPXQ>=`PuziM_6=`$FQg2tv?*S&-bJeVq!&%L) zDpz6p<^7%NtC`!plsrmu>a*3%_wIG_ZC}kUpE=6+Xzol5L#?s5Ry(^Ybn`RP za-Zz|wG3+Gt~&CiUGeTJHKszP_4`+QMz>ekN0dajxwzU_+CZbh~&v&$pgL76=>w;S^N zl*RYrY}Q6+^A%cdc~n1Z_BFl4cb=9tPd`S_?Cr_~DHvg)1vn{>%-#@Fq+ zT2}A-PcN^zwE%5-+bUGa-4xS1rM7Q&QhVL&7h#`3KlRb-bJff`P1a1*wU;$h3)s$Y zQgbGJ)HjpUtK-i7e(`l96~6hI5w>^NbE7@dxyv^f#%ZUuyOK4dW8zwuJ&CrnER)M4 z?Y=&((LPR5hSmDSe15&2rz`Y3mM8o5@eKW{XN0be^-L|XmbWZ(tBj0re1?A8?TmZ= z*wvO2?V0*jUYbuh`n`+_(`AR5h;RFDi8=S;=FK2VotBSz-Zgq2$&~$#h>7q_ zf2>pD#4p=9*9z^{?h4`j%m~|O=(%e|o(S+jYG{RsGn#^A()?rpisk@8j>aC1-1Qyu04_o2S)zrY}Z0 zoL_O#9_sa$RcPjC)a}*hcz^YZwpMB?UfCB@16seAwUxS(8|#Kkzo#wQ&azA{k0`dL zufz9pi8;IP>dSQT_u3ch#LvgK^lUwke>cj1Av5VYMO()!UAn7*S>3*0;(JD=i&eQ# z_Wo)XYt+2Ar_Aa6?QAF3dF`&~SvLdtFQALJvn{JOkF*+$)2Xz~o{svs+|Mjp_BLOm z<&jQoe+OdXJ4?&tG0^b6gkt-#@-Huv306i%$Ua5O`c4Ik?s?{q9;WY^XKI;#4DAfL z6u{vi6g?+s(hBnp2n4oTX*5Pby#Aw=LUNp~||Z zT_hJni#clw_W1X2t!8KS*=qjjJr`^`&S#|Psd9hkM0lQOR!0uEGC8`*t_t1!%m~^0 zt68k~qcG;w)tM6Oxt^IDCi2~G$+pZck9>LQ6tewDo4Md;{B3jVck&ADk}2%%M=)nD zYe_t3YL|*b>I_MCWnz^PX}3@D{@T^)H?7mXon+?J)szzJx!P@ejqYvZ=3j4Hg{r!) z(+LXQH>|!we(PGLsu?VP*xP)zmc@5}ADO?6t1BhGv$RY!!@7)`wzDa=&aMjE{7lnw zkL**lthIw@7m>2b|_&ucY1tIt#On($cOKKZyv#UZkKQlu1DQZ@KE_JU| z@xuSPibP^PSIxhCkH!4CC-HW+Wp;Ulsx$AFuV#rkdrbTZ{%007d#le@vu+|BQM2zl zKTh~)p9t{~`vJaF55C^AOtCUD!uI}pZud^^-6X=C9;tbywflIN2t3&#@*Uu!?JTP> z<$O~Or>%A`$gATR-v1pXlSo=f}gol1zYhdL`Uu#fT+{Y zQKCmZG1YZ;>C&BE$*xSTGBQH({_3UwnrwN0x59V3C)RT#Yj!#DkWQsqt(~$fRHa|m z3$#E!v0X8A6FOBue#Y0n)=!=7f7MgJf8HFOxO&oYrbiVlX7t~<^+Ti1vI^1s%m~M4 zD0pnYk*PoaujAVW`Tv-!Iy3B$LY{UtX%@)MTz(fBRbTxL1M`JYL`HIXYXr zbkL8|bk(Dz-9+=Ka$Cheon&K8adu^5l@aPcdlc`l+#lY3uks{zC48ku`f!z_#Copp zCCWl6E+5LaRjBUOsA0~%0{q#&*0NN!ywzu`dEFn-^5OOBq7|4~^z4rlKB{N^ZumOY zX3Hvk^E1+OpY8qiyxfmVA4E^j|8~Adwajnr*DSqVnPFvQgzVk5+*q^Y#8<)lT6S4! z((-KIOb?{5qH67SwpFMqruMa}7LD=Wd*>yHZJo_mXqgydzwSZAdxe(qhRmkRjKtR2 zRbiW-86o=&EmLV2VeRTj=V+Pim}+q5?QF~J@(4GCaQZpjGC=Ii&GqWA<{j9+|Lgzf zZ0+jCmoe?SDpKN^;;iF-`1|)x09Ly7JguXBXICax85yB?f9;AjU75^juk*v7=TEHX z`eF7Fd-Z8=TZL-7rQV-j()ws+qkLdPGuhT|ck+-i@FIx6C zU!&!b4B4L%NqpyNnH!E-8C~oQTW?n;SQ!~1`xGssVpY5RTdX-fQtg_nW%2g)rEFV; zs-k7DQxT`Cz&@B?Sr#pOo3GLGNJl0&qij9n9klH1s<6$^jF5eXmZ{T{A@`$fpVK7P zGqucbCaU#OptS7rt;{ZuQ0e8yPWrP_{hFWQW*Yp7SAA1-vixjC>#H{-dGoKVe@v8T zd1v@S`1_bQd%H5n%80r``eg5~XtCB!e8gk^EtYCrT`94it7!2ie%ShtY+HpYeIaSr zcp;8=_WfLomc7l_Xj!LKo1)Vky4g*9XKI-Wqu+57TW42=ZGL8i>{GP7WX(M-yXtXb zJy*->xbWZX7H?-;W|v3k{zc8H2By;`s=@B5*;{>$n#b~HS8Gay=c$>q3ca01cB{7Q zPi9ydSvszXxjfmYs9Du7va4R+?CMO3^;|W#z6_^XsoB|9q59=D1L+jRLR^u*+lg8{ zv$y#gEsx~Qo_yjvQ_IZekFQ$9Ry!h%^1$w@tiVE?uF@IVs-#q*YZt=_Jin zvbBw8YZsoQe%Pre@k}f8aqY6tMD5z;MPljfs<6z@j8J@rcG&~i`yv$n$yJmR>$%!h zuYEqB>}|{J@(9@ls`NX?Voom?e}ey+=84%=);)Y5*Ojx?Jbp*6KRuEN&r`GRSE8SN zz3MI9*xs(pure}2_Wo)X>ychvKii4*Y&GY7Tvl&yTZQVE*Pq7MMACPWsULjv`WfA^ z=ijsSJ9(~lS(k~d_P=}1oVgq&@tmn$R?EEO>Fuhp%+HKayt{VAS|{H0ouFLX^8Gi7 z^<3@JcZ26kQM9)$v&$p={c{~!>orj}dyRgldGW;F>MPXTs+awq5KfV-*PYr;FvsI+ zb<1Jn_P1+gc6Mckm5~v$Pf@cv2Ktq1pOK!SW@cKex2trBx6^rrD))5ahrN$g9fbFe zKimIIQ**NV8a306%j%b-RSy>yes2W}@;cnOz>?UOL__f6Gs+YPR!>&YrcJoz+*Ud8}Uj{VV#} zswNShsb=OW_u_iHGQ-Nq2-*9qSvTUci_FevZx@-n>c&~mRkLcGKfe6t)&i;7*;b>f z^T@s3C%)KCr0q{?Eo$~wpRH!ynmSSk@n^lhzM8e)M_%ITdb=ug^D|O&pX~kBEY^y& z@y$7J{^8}XwzHjB&sDR!LVR|Nn!RnAT^^y9rBgc2?}|BJZ^N7Txmwiht-eOhBOROk z&BqDP^3CKc?Dl=vQM0ovGpvk^kbR1pRq@};!0r4~qz z?v<)96!0@dW9}` zKF)fsZ&ohL-4a_1#M{}H+2s-4UXPbz2h8i0Jf7RVV=`E`;ZC{_@cJ-7Ca%9A zQC$RC&Hn6YVm(*Q)FFCzZF<`(RMDXJM6#NHeEkIW_&9n|v$y(eHIH}F`+FP`;dyG- zE>s*EZnMKXs>a*1hVLEIYVQ;l&(ZxQ;2_N;&WXO2uZ*8QXEz1-uBO`2|p=bIc zpxxh9X3od;oYwB+kv6o6e)HL6Z&`&YnKHAHE7!!@>~iumez&vfIoW-Uo|hH7r)O7R zIz!LwBcf;bhDp!PvI^n+jP%@R`wTs|^T~8@_Wbizl`pEq=-GJ>(RP+)a(RT_5cW7z zj|gg}Hv|v9*CXPszCz8^;YYl)t2dpaW_577+Kl)*%QD5vh}7I?dv`VS)-Jmi{Yn^l z#TDL}3W<6$a;3ysR%6O+P&rQ(YHrv-(R9G2n7sMtWcj&@Zj471?RVb3zM{!XwDXr% zY;ReGaeiim?Nby@kBIK}Vx8LRmQ|7)F}5R#_Pls|xmVihHd~g-Y(CX&XtZvU?A zh*H_+zthhwYDUlOr+u{gY&Gj^j=EK~f4;(h`!?~-^^v35GioNEq7J#8bMbX+d8Swy z8DV>WHH)@tC9L2%+V*`KiS|r2OFe#t7HwCjt1#6aJ}K5l%V-q6dutXgdz-J(@<`@P zU-VW>iSA4-vtv(w<05L&b(U4==4YhkKHFz#ncEIgaX;4f=ZF*SnOYWYc22i%n`pZV zN+y>_a%X0vt!|Qj4UAaA-PeAFlE>}_A|Bb!ZDKo5$t@BhD%}2lv2~VZf|ZdGw$D)V zSa$(CLEG6*v}Y=r`{Q~QPj6X;sk*=LxIFFks=i&$d8iKSqVe@SouOaNkL)=TRXb0Z zh|be5Gl#9Lck7v2It|I_wj&jy`I!-p_tfv2w(gHn|5w|G+|HcV#E;ott=I4Po)kHh za#FV@XUj6VJR<#m`||nxM&A#mQ#54J{EUyl*E4vwe)a8)ks6n;!YBQv75R8hOm9f4 zD#Fv-m8n%mMkqc*y)D-2-(LUoYsFl@m3{T*wYs8TeGSp~{fM`-twxnTh3t9J1~ZXw z-dyrxZ}l~5ZY#5PqP840i!M|7`fAo44s^{Pv8zHiKO;5w$v#ERbcPV&^m?&5b-SJI z#Coop)h)@1!mR~*51nn9T^?y2)V|WE_zUtV-rqB_sM%Y6g_>K(K)+(`ckC14dA?ca zx#>wubkC@9asNi2>@(D?>XwM--6!@?x3isC&sH<~^Ea$Z&Ca&0**wBcn~bKY8s^0M z)UfVwU zo_~M+rvHBZ>~G)x{Q9?ldi~pRZ{wA>a{-)_P_r?Q#19K zPygRvUqnZl^L}Nvc&HxRkH264_S+Xz-W6HE|M&aX`|@9_fB)Us(;iULxkOfsZu(ON}B%3uOSh!P=$fGLxKL~VgG zg{pM|Bn}lt2r)v!OcY3>GQGTBq3yY|2Lqbt=iu2U+Z7%U+ZJpRU^sC zd(Pfx56^z~&f2we>-@P(=NcIq&ENLzH@l6DK8-ap`Uvy)Pr!dUx_u-H{NG2|-CH*q zRdiZB1z-FRa-+{iBO_}5JZ<AlVEIC4 zIiME;IidB(?I9;p)n^~KalU}#SEG{B7c`6?^k`t7ZQAt64y6BLJa#okTY- z2Rw;&Ax-P7fQO6IAoem~k>sP9HTBmHbtrnWO@mzIYQpLKiuF?ygwxdopjK;M6?{{d zD$Aw=jSURrwbz|UveVTgzg^G}gy1^TY$~u$=${(qrB^AaUuuA~5O%7T!ygtB>V{%@ z1M4uVh;=U?J178E{Ao~mji42Lpy6O9injs;Y@!H0E}9*sMF#d~D+)~R}) zbmE9?0z+ah+B`^1?}05;*1Phn^)|=qDO<-NX*in~iLs=6c4?tr128y7o1&g%Y}}Z5 zuYz<_noR>9rllQR%r{LSc*WzSuv-JhJKtLTZ5?_2E5?*{H&r#VDa(HLmU@ zgpLCt0}wsVt_h#^1G67UnVdV^)YyHk6mE68dU9FYIRGExrI#t{KiBU1RqEx3)0m^d zEl*{Ir1Pb>-=UGOzimcYfj~T2obm%RJI5zgCmcrXLg=(l82aSrclrhrMw0+eO*Th0 zBxC863F=AV;OclrMY^Dw_3G|CYRE2-{KLei0zIV9;;R5Je8BibeU4_Mjl9b#ipwAaz1>UU#=iMNBF5gvYVNme?6-a6Y`#Q-?j`< zGVO{kkJD=dQ&~PU4{P+IGgx8!q1Rhb#Re%8!23Ls!)enn2s}A3;I$4;ZW?i`ZXy8d zFjnx1ro|>Umi?_em3rdHU$GRBhXZP90W#>+zP`ZP$oiis${~; z1NBhhylm5?!YAuOgc&bJcoaATubY~9=U;#)I^C7MR)&i(u+9qJ4{2+b4l8uyGF@d~ zklh3BRML+JyBf6@A(oH!N#)`TK;YXmHcd(+~mt(s_w65gn7h+xuQonDdm z9>r)j?Z=21-WcJE6#WfAyKOUJXBrgJ`#&=Wd^07N=kY12rctA>$5^2#w5I11cUPo= z#@JH$>Mhhfp2rCMWGXNcZIjl&I$E?k0hLCv4)kcsN*mQJOH@AZ~uhiw^Deyid98^8=(T@crPPaRqj6CpES z{HGr*ZkFmF1LRlw|C7&XnrQi-*Cef=%J@W~yC8%O%_U!v>7st9-S0rN1(3d`Tu;`xtt>NA>L>p$^^jjO9 zwa$&SoNFzauRQ!; zR2a#HGfU@I>lpUBpJLEE)A?K9P#e*z8PRuMgzh7ohJ1?N5wG7%%oK$;g@-T37dmo1 za^BDnhdnjR%=UbmX2*29&;xVV-y^tx!npIhGy9qOAd|OITVLP83c@P2M*QDtPUJ$G-;T5=sMK@u=+0;I zEIMsP2(V*Z)dAVmfh~<-8dTS1-Jgh2D?GvYt*3Xff4w$%UmhaDAwkhB-K!^)Q*@;N z%qsIMW!j6PH9xaxiHNqn!E&HpUCJrV!g5*j^G(r%czh0nE@X(`zFpjiW7zUD8@{qF zp?BJ3mpXPn^;srsO(|3Ow##8!n$FTkx<9aTpRQMF^8|Aeu;7L zdfeS5mNHZ5+M&`an2vUxQ*^ zpvtMhptdw{jjLw^Q3t3iTDlIhr^>JywUTy6F1!#Equn!=sd+Y)jr*!55utcOXoPqn zT9D)f-)KeqQyIigb5+wd${!Y$X^`;W$P*KFN5?o<;$-Q)O+WK>3guJ&*d)0^Q&rP< z*N{(vKb@BXdx|av-Ye?}kQ(nH>yZJDpQclsV%$_=8K?@WBs`{}*c{(?2GgQh=;@EXS%g&!!?Kf*`-tfjjX*k)F_^#}W6XVde9@&qL+0JwRM6*~q=9 z?17cUN|_+-*74S#K6BT;V)Nz3h_%2HV_waT0sRIh&M^hQf3%F=1N>|2ZL9hwW7YYC zsipD)r21)JPmuN;?Ic4)*GR+!Hk!V|!}aX|?GLHjuV*2)L^3(>e2(||9?Q-`>zKwF!Q`{x)U#$TeCf65!P77uVP zqsAn8V+y9Ebp5HiQi-*`Xp4>(+n>Xx4y(5Yl~3jt&L}f6D)^@*W>E2gbFdfrCQpXs zZirLK%7&od_7P1U-pKX*lxpXY%7W@t0#-tnq*|;+L3w3CAwqu5P#@d5W-$cY?MN&) zg!1t}$$C29FnHuv z%Bc^By7(X;4CR22 zAXlG(vISaA$VnZmXehai>9&L)cEEYpXk-vqqGjv>TSM{I*LgU)C_Y<~L*>^oHEB65oE5aULO&onYHYM~Q zci{{!@s|JQcQ{LQF?cj9{VWdnmUXO3sWzXVgOGbc1niB4C|AxISHO(3b)?v96yjC3 zh&@JefhtaoX`%&+mEti*V*ZuRthb_Bt+z4eH%{^ji?D_Bti8im(picgt9(kPj!JP_ ztg#sba(USHMj^A(!2xfq^5j^rv)tdYy{aNXSp5yUxS-Foc*E+MByfq#G{*6qXM%}_ z$UoV@;BS`4{ML~Gkpy~VDLkra1Ly@a5+iM)D$Dj zMSn+y6+l81&l^f{0gg!kN+6uRE}&bb;MvNu4@6F##c&hbDVK-HrX%`jec5B#3Ao1! z1p1=&dS`s_^=q`Ne1Zc!#xV!a=^2@-)@Eomx;&MgpmMU#vE9CNo=Wc(yVibR?j8g{ z`I!R*W{>!z@<{hDxOzeB@-uZo;+!!Rp4C(EG7J65$71l))$a$e2sZwhh$J>^9LCJb zbQtte1$QN%L9tSC=6t|X{~cc8mSsmYSAQ}3ydksP6}f*01$;aVBx$sMf)Yg;5ssUW z=OC}hQ@h5(C-iLOY9)^qG$jrOAI@3{!S-WKdHb(9jiW@-2#pBqIm%cs>?6KX-T0rZ zie`iGKbUD6)1~&(KB-x84zIt}U zz*D7_B)VdMLto~p{J#t=9|SsRQc?y z7H3VxV?zo0)i-!Qyk$HO+Ztnzx(u{hx?AQmUGCgYX($d;W^+9I|aEJMNxXye~~GYmcanY=^FHSdwn zAAeR$HtRfhsM4L7KP0D8ErJ@7bd`Q6#83}66>Gc1{l#dCMN1EMw+9^bK>|6Jy{!AW zWYiRk4--*`lC}nKPwn6B?vjlvSjs4QrSDtSM7izz0T^1V%XtmYFBPl3K=DhhQKh@E zt_+M4MVFFO&rma+D1ak=J3iicYu_##Nb$oBKmb|WcpDBO+^M{gs22zZ`qbO!E7*8n zdk2XsiEz$xJQE@bx05Gq_h3Yxc{t2Dhnv6kl|^=aV7&8__u4`|bjbW3*@Yq#eZm&i zA~G8=0Q*1P$HRUW827RKrph)pxe4-0twEa7=P{;YD9IIQJ03`~6S-{MjwGQYa#;Uy4j5d=l!QO0t!^&*+rO|0*{T8qpO0+jN>@CqvZ zOVN^P*ck-erd_yleJa+o>7&pF2T#`~R-p)XO)7EunU}hqnPx2YsyHYU_4Hg5tyLIF z9F&q~0ZBIL9+9OX`JAM;#?6-}1>G+`1MGQw#e)Qdd&5FqTzU6ei3PJ|Y5|>o6+U7? zJ#an4)wlg;m0M&GDf2S=dB{hS0BuZA-x)UqG=s4@OnvTOJk4|WYY!NwUumS=ovvE- zeysjQG+w^yhvB>@gXWLOr}oDHWLapk1lh%~%z*-L3>3f(5B{9~+ z>)`z8utq%vOh6y{Das%tgOaApR*qY37>ah;i7@H_OLi@2eeuia3j`ggpCXOleJMgG*vI>1n1J0p2QHQSH3d1_Q zTbpwjglM!_b~I2A&88XSeLXeqBc?Ae;ma7W2by}qgDyO8{fVG&p$U(0aqsiBVqvg58Lmzfkr!S?g_!)IKEQlsntMO6>y*j^*mn0c(d{VET zs%g;S7^!9wMyS^(e}f3E;E=N5_=FiKjBvBZyaRzL0L;9PJmQwLFHvNVBoKLw8%;g% z`mOPp%Dz@l%0!2JH07qulweV*LVUUDio7bItL)BqO=-G-(>KP z&#&bXN*DoE)>DXi%pdV%Vs%TJZ&lw0*fheb51JCmN?rBeGENhfxEsJebU$xcB(3k+ zU@HiN`0)dYw;n>2XxDUVf~1?JWSM68KEB#KVFQ> zCyizEep_F$f17?nxU~Y8V0Yp6(g}5ZNKA_Zs-P0EGvIpqac!Th1nGH#(b~1Nx--AP zi8Hbq3G~mc`jMB00~!cRRrS`I&>HE~7{bykyezJM&3nx(zT^ztL>uv+xbX0U-?a<* zMcO^Qh~$2=5K^!DWKltI*MYndrgqQ`+erv$7fxfv5E6qWyAm|cyPl-~zN1q4k3Lxw zr;W|O{;furB*Y7HYFm88VVvDH{m0+0*#7MV>#v>XW?*xUVq3M1c6UJkD=OGw8k8BW z?jEt^w+gT_-*ysi01BSWbbO{SE{QHSh9A@RV|DImt9jQUq?$BquKsefox#f842uZA z9{6QQWgN~q9_V(itbzK6$XE%4$XFwN1+=45^NsYme-#fp@~G^%jMhVP#Lunf5oC~b zzAAw^K=KuzlGyu~*U+aS&BMaAX3G#C$-Tz%&5R``J5fAT1$7fT#^_7lTh1DpXBPV@ za}%?L&UGq8#15JnopOC$xJU~5P^rTKVrBuG(=s`=$AN%>4Z|tElU-8Xh6Pg*dI1R2 zoME`k2yM1T@n;xq$r-D8nJRobpPB8;3G~V`SBT`a3hefma%--kwcAS1Z!r2)-(%^j?oMmxk8N zd4!ocl$U{gQBdH4dIp;dK@L1gbGf`^m5gj`>GeOJ;7lh`}e$opo8 z88gu0%Q8WnrT4AG$wQeR4;1e)`kMG=l7BO$brah5ajXxhba=)qZ;B(Z6W*I*1O3{e z6ZDhKQtq7Y#)HuH6vEb*ArDYJ{<6CLVeDJWD1_Vf16uQaz@r+S@fs$M2Ae^RUj3pANW z(biX47o+`tLsu2JmYk%j^s}{c&$pvT*9z`xG|Ia>x%|M%X0+e+`Fo6R3bAh{F+Ci? z(I?mM^{wrri=*JNhjEu{<`6H|!0L^N%SeRrT zNJrp*lQcNx{M)m`Gu@~8 zI0le`wbG#x(dw8?$$U7E6Z+?VTwklmX^y(IR}ymq`@TES9&se1D6r(W3^? z=Ydt=)7AN$k)Zzw0WbcbFbZaZrkoo*QJ04$eP5m&JsnwTJzJVB2)=&TmzfQLV*C0NFPpKpU~^}A|r^5mK* z62CktRv-A7(?&7fkGNIk9C=ruEpVD!O?gatooNw#U#EjT8kYC#BYO*8fNZs8nR?ej z3;lK#7BWoLit$WURlt}18a2rU(o?BjKeVf&cF7q*&Vi7&dte0bcp{B2( zV8?W$Ov(Qk{hR-0guv}yE7&3rwtc}o8V!*wohpjZr_T|roO5^JIJL2co@{rj0=J#) z^s!OVjEj4T26G*4_pzEsf4%r+?*VKpc1jT;Y)tpf;`U8wkHz~BO(HpGW9C(;%`!%A zhs`s(={RHkzyRUB)$wXj40AGd=j;@c&&52hCgvk*qJDGzM81@92C*~84S`!4g@9s- zDXz%qvs&`gXe+fhbYSk~o#Usit$zl|a zx;MyVHNw1;pix;@TyU*UjM<4Al@A7ke4-4R&$%Ff_bWUQMVCL@@af34PR|28#E-R5 zD2EWz5(rh}W=l?gDUzwaV?Q_k!v80WJVanW{Xl^PX-hhzr}dK$52m*OA>WaTQjQf$wYx_V3vKjGO-YRQRo! z$wR>&xC4vQYZ__X`ja(6FU??ZL!?f=1xOp)Lipa?zr3`&xt1yKS-WR5&57-4hFu`G zWBtV2&P)L-M$g``zBf-rd{l0I(Z?kAN+-F)vFjOpGrBRp19i>J9Dypo+zog4DsfuX zDFl}sarJRVtqdJG07K~wjIJZIo^w5=~dfxKan8RO)u$>sSaq9)JE&5${Kv>N+ z6Gnuejgl$ykH8;uYcIBLoyf+*q*)Ucc4LNEp3_(Ydkhiqj!9NpS`o7-)i;>>)31%x z8)5h~K=a7u&bq7U!7%F$lTFzlBdrg52|CZK7{eQlovvc8c|HtsUf*hm)8I_-(PzHj{; zm243%svmG0>Lc~G7+e*@SKq_gQqrgtzDoh8X=pbqvoEs9*B6>1qM5gnQ$ZiF-g&DB zH`-1|)$|;r8M8f#9^TH@G1av4yR@}Opm7y3Q&=+L__5J*{u|lUVI(tR z3sC18hWha$yz=_wH%Gqc^pje(m7BzhCj0@XQ za`S8#KGMiYfAkGqyZ$}-jC|LQT=H&*TPAq4YBLLdqf9FOVxfJ+$%!F~iXG7C)za|zKkTI-70<%w3X(o!V#G{{42o^!o z{E=%Gu#2G6RJMk}Ps+9P@0?~_p^`wh*elZFSv?g0dqhm8QQ_6OX{z`Z1xU9|Ly~3N znAv58J-zSb$Os{ffG--XNPhngJvchG!OR*)J{CG+zDSZqc4^R)9jL&C050R3)A07% zIAYK~55ng0Vc8mes`Q-IEaPhmr4~7HC?F)mXwyiB$3d(tr9L1;LjY2NpckP{Uh6Pa zSJ=q=ITQq?KKP4sOBq#!V2d^D*?oKM;`M{jOsEK@8VY^xfT7ZBQd0F((I~Ghos<|MoaL^t)DBS4KzM?x}l!uTHmy*t~$6VcTQUq zBl6i~n7Djm39KE2U$p2;PMon5H)xda#xxbA-=qvLwU8FaH^s^*7}5>$MB~L^`4a=S z{piuqm0(%=gL{N8kZVF>18P9BdN8a~tlm|nTi29Gx}o!Wk!bf|!F+H9{1fFG0aR#{ zZR+Aey)=1W+&Ft;ugFT2)9}=ZxUzK0Y5zKC%(U^C!@1oUdN8*iXT2Jy>t9g~=qvU3(@vNH8C=dv!&_0U(`#%cG{xz-GEn$EaNQ)v=PO=3{q1_C~w^2VJhjAP`|OgF zfs5ELL=kukfAk`6>B?6);+tIoe`X)C(|&u|KE%=V#21pPEH{Y~!F^5KiapIy(t~JPG zEq}p87~V1U0sjT0slDS9wwb4HNV+i}5)NDQfW>oyjS~Lxdo2Mg{J0GtU`sOWA!dPv zc4iSAdR*1dfxttn#fu^fge( zxbh|q{<97{fl^E~s8Z+P8<%{StzhR__XXfTyS_;`+T7ACwU}E9J)s_Fb%!IQQ2l zG28f~FP^Qh{h@t8Kca5&?Ts|qnR8TXhofkN{$L=%cyKnqG}y?)Au8YA0k0_c7}%N{ z8K^URstiq0_$$#J3WctZfW}yzrcBc&ec`+T$fy1dpg+0NHbCtvt|`4!%l@7;BgAur`O0cW*=V#ne;@ON@jaFTqk2LlWzS}4wA zVVRU~^kYQQ#re#BeZ$?LwUA2&FP(Vfj}kzsTb4)DAQm|~&SRc9jq9jJ{n1EFt3qUl zqZ!(2!TfnN`9nHy;Yr`&0iucb!0?O{|6`j6Lt!=dTAuG6ZdLYGxy^|jd9`yA(BjLZ zuO~UU5Nu{6wKrpaI5~xAf_8sMK%&dQC?f@>YXf^{3^evhTEu^7-B74^S8Y1KHUmpr zZ-`tr(7;BG+(rUf&X6saZWcCPg=wnLJQa3q0(R_E_(|!c9y63Y*#Uy-(f7zzQ&uTy{a|=F^6N9L!xxTQg6_y#^A9WUO8*I zZ=U@O5L8iUd@%%muHL%GS!od9_10O4&h-XP{*~G4%?s&)`|?Dq z`JL%}r_XrF854$E%1(M0!G1#9)N_Mo;CHlfekjo*v$ItZ`)qFv;HzJ#$qs276JJd3 z-C>7oKd!?Jh69e=diteNNX~0uW0qd}3cY_j$!*gH|Fd_u9l;ko)eZi7M<#Q!{_zDP z4T-?hUi`Z`TR5IUK}nZvS2E_j>!=>f3g0PApp#&IwbfZW^?+YP19^eel9SvoXYK^_ zIKlq-y2;)g@17psFx!EOj=H0-{`Vi94dldZrN>arLuJjmk6XA>nJ)6svVC2EI4rzme>^hEZ0B0<`{6d7r27>jWP51UN|gWeBi&3= zB^99}_0}RZ@|o68d$(y#2fyfM%KV&vQRAprN}KN_?6`bpcTsg@&YryGJ3Rtn=C*#g z&dG&@KvWvp+1Xd_IO=8iRuAd4=X$%3W{H}-31J%-gD#IdXyxx_#tX5a(2$)=s;n&; z)xS8b6zPrca5(v#d&R`-z#1kemTaeWvtuc6_Pxvj_4fOjVMry?EWh z?{V)$@Gt^0m%bqfJQv$mwr^i$R115tSlP8uI(qH!Dpe$i^RnaGmy9q6Zj*I?G* zT_zYdLn9mON&F}ItZ~)5rSQ65_E!B!dJb-~DZ+fs!SV~%4Y?-pi^(2M#Ar4`*vA8! z@@v>xr}j&A_A3Fvl+#?yVJ=h(4>A@Esy34u`=3n)>n&%E;v1>aY-!LS2)FKROX|Jg zWsplgSt1$wx9jU8uUVfc?Gf#zcnjz8_8OB%1hRCV38#5maSqv2+y1@Y*qos5Gl=A6 zpAQIe_ndG!5bjC+{2+$9_r;FFNw;N0jg)!1hJD|;Cc{|5T0XURv^ZK7bterOG9rn1 z+E{UJ5uCIQC8bFgf(so+ysjtXmNp%m-%t|pMV;k5@7BJWNR-K*jG-dJ#)h5U2zdeL z0PYztS*N-SRfcgeSO#&>?JO28N;^QioWY4ah2$BcnXikdlN|#_FkL;>pQ-h}fb<#0 z_%vxxWe&A{m)<#;8fq?PFGrA>R29!L`x{zgu9RR5ldwlj64a^@*qRy|)V?V!IvOyp zZE<2b<&VaLJLeLA5!Pjr^_?wgXYW@?enOT%>?3$EtUz)Y9@!=s`12!wrBj$Ycu}(P z_^@h75r(4FaT08*$TT1`!Fg^SO@tbTjQm}#T7Ka2x0af0lzIs3Km*P=He?!)_|>G{ zozT0Cg~xZ;%+XAyhU9l7hZRTr4u~8OJO-!#!C!v_8Pg?NWX^`UKF~YfHe3?*^nKlbJ>~RA`-)`0{ulgKZT?>Bjde4mM`|I3i$JDm^XC zLllEGD|yIKiM?fx)GPLu=bEu_6yc-U{7i} zVkqsx44pvec5)*jagnY8uc;ASN!?8yqWX;PpYAs!*)x(wvRuk8fnkx9~Tk zfH&$vZDD03u>E$SI8h#tX=p{{4RiSh@8b;T_xM`z9h zIqbz^4of-^!dsl*&kcT&iHbXybp1*=fkLxB zVz|bkAA$h4_=MFoxn@9OQbxw?h08a|eDvyZ6sBoFcz9XESs2#JN_e}mBgjA3{49a! zBstXW$RqfSpB`o-k(~cHbROdK51W}wN76?uL zNKbRHzHcb3xG{1&JAY3dkm=T0Xld#%-6lSXxZ4(hWJJ~OdHL5v^B~_R3&b`}n^G=BFeiLQQPY=^aS9Z4*i=d4X^4|^C!et-^x@J)ye`HqTn9-W zDQhurS%J#J{F~R8HhOfV>ST}%D8s|>sm>)khK<2^&GE&xQtirUR4#8tMcOoK2wCaH z<2frNxVuGKBp49`d&;$AJ!=USPUE7+JrQ~DPMp7h|33MKoQB)nZf$aP&K98%8;qAM z!rWuIa1lA8;$EPo2+MsCoD|}pfmAX|gulXZVggGd*CveVg94wv@ zvNYI+=aPo~QF;rSaG4$Ku|0JQek7^Q0`-`&>D|ojw@Ef&c0@}1o0}MnzZ%1r3BMu} zqZ;lk(`eKe&p2&$z?`Wk*^Ch?2Ag20rS9A;-inq=4ZIC=$G(_$*U@D|MK@@rfLn6PqkXh4u5+z?4ggo#uC$9%Sdr^CoPMh6@(rI?|&2 zAQo{yw>?zm754DQ-a%@f2Nsqp>0fWde~}j@@6nUL^zx z3lDo0B3aHwA6=N0d(-oz_#!MZNCm8YXROo4`8~!>Zzmn{Pb?3RECFjkmh5EB~FVEtBFP3?g4%QH;vz{f1VVb zs{3Ic1CgP#qY3x;b9(@rcUo-lf!{!|ThDf7e+~BcCB%A!nLjMt(CH=iSiv)62MnCI zDino>6jj>0elOPA74W_c;oL!4RxJ72gmC&ZP4v*DUe&Hk*6JL&OQ*+x%vK~_f9x|a zrGn8Rk&3YJOwqqh8$7KSfr4CjGHVgu716qnSDmg8hP0m%}VEb(i z>ZSFb!CJtPKj2J`13B8s$dNM!(?TfMx^Z^Mx1??Q3MN~D`7rrbO!B!bMhI5mPDqIXRpOa56isYZGjwTq3LP%?nUId40Ajq z;=UuZ3^~sG0!UTM-Ex@hm6(AfwLA}))N+f5mus?+V6%cA=TOe+Aua5BJ@ zcu$Ca=kK^EZ;A0Kjx3NN1bVB&AqOEscetSOTh zST^cZVP%k+(PaOtP&{V;&SO^szAV75i$O~zaiHhDvvzLTpkR%>;eOzqY3paCe=Cvu z%63P0UrW!%TL;J&{gnFQHqyTctD+(1jjoX~F{{DW3~H(J+H0EiJ7DDLZ2xxx%!r7O z3WQM)blnjc$g?0ua8oKdKYXEPDaX8O=V|z|pfwM;eP!ZN!uFQ{!C$dDBdma&&HmmO zv*J-bD8O!f*f)!#E0QqOjwXcS2qBqZk5w{OzQ<;~6wd5}vV1%)S%1cK-ff-DyjGiT z^9ZJ`Ej5eL#TeoiBO~8eU6u0O!1x2P7p#frunV5A(2s%)!09&_ZGXicNZz8|hxYrX zV9%F_#1@YvNQoYL-)#Cl!85)9gdaScM2D`$6-LdltlJji7dTEEzIP(VGiNeuVnBGt z(xoDxMml;7vIV?Cz3Q`I6lD9_akPV8OU0~0fi74HDG-qcxDS49eaUUk1P9vpYYom)j~I-)Vqe8C4u zWMz}PMdUz(%K!S8N1{!D9O7Y}zMBQC>vvg^MEX?<2kK2Dt)}#8i}$V8Y{{;}g5WtO z0!D5|#W!>>ozvT61+N~}J^JRuH)^JYfV+D&rRiF5JZn|PoSsv`U1ZwTZUaCJ{%FIN zIB|kZZ902e9n<-4r*da36PPpP7D&pnO_4DXWi!nrMn=z7`?@^f0p-ac&68j+WdOgj zW9RhtC56cLRFQ{e?@^q$rp*z2Vcj0pAVXK`(;6W?V7^8$_E$b;m;{C5d8l@kPxktJ z2HEKTmF?XDm~9U@kK|qTvfnQ$d|2tk*}=?~#9RacDZtYV4nse8V#{S^{UbKNywVcP z&JM+aY*Sybk@1FRCQkW=nSI6C&tyL)y|+~P<$&tFFG>U7PtSd0P9JF5Ko%gPL-AR*Dcf*} zTyK8oJ9#tj7^zm3gfCAi2IqtfuB!0vJLk3k?|3II=^a4x zAKGn4yH{jfDOyNCw2o9qiEqC&-X0?AW3C^SzE~zKmJPjJEPpmPHkm{NYbxGk5%XRxc&L zjsLu1qqkCif;JqqmO^eE`UVFKxBj*1W20KDAARqCvj2h-8KSx)XezwWe9POe76fTnLUwy&NNEgp7NG)(f7+`I++6t0757 z=UoB~U6ShW9=8pHbfHAeq2cQM?dmzVX`+7KT7t?Ge{MX^P&~~?4^eLG+m3zM&CUcC z24|?8!`padVtRg@LP-JERTFf6ZhA$MAkn*D)i&`&qG=<@(A1%+Rk1lsV=oSmh{glS zTav&zl`=Bo+(u>{N@jIBKc92D?BRClUp3^0u8E1;q&|`FLM8QEoK>h>m|5(V=<^B_ zn^??6MS|ULL^U|XFcqH`k{!-#mT}lWLl|{F{Zn;$sc9IkSIL9yxvDKneB7UoH8b2y zPa3K?A8gn0?G2n;Js}z_I}Q<25Oq{xLI?j!++xt`4SXX}jNdm6MW{Md5#Urk)zKJ> z6dUcp+rrhYNFC;LeKCsHEcM-}tUt5C<3;G+GzLMd(v194e{_Vl3#aPs zKEO}s56NnzpCl;gkl~lc@Jmp*`c!5-Z_MgD>Bx!d=8?^V^h4SbP29-&P4)bsmB9Bo zjKy;Ou3w}tNZC5|hR4-4SH~XK@zyIO!{0doT1zuQ46J#Uo`*Rq0ZK|~16fKN}7itGglSpfP zAmOr4SO2vyn3;yZb!vnJ=WP??D&+9+!SbW3V&2mouH&ba}Rf>LR(BBm@y=FPT8a?#Br~m!$|8F<{ zyNSX7C!61E(x1KlKTZ2zXC*W# zulCNLTWwRdCSEI0y!k*1w9pB>!)lJ1zS{~YP1r7 zg#6lK^^&W)&*sBUTWOS4`vBO7lN=B_2zt2^IN^zRqjkVI_6tCu=6GN?)3lQwkcUGa z@&sX>wx`+~RVsxP6o^c*<1^F^&M;fJO+FFA5mVj|*QKWO^Y{sAC-u3BCA1yO;AMGB zh*=V*K6$5y*GZ@Sd2VzQO2={Ks9N4Ic_`0Jl1sTVrHVmO!d- z6X6e7;xQ&~v%F{}IvJnQKFZiT8pcM3mopMmD_pmdyIUO)WG62rd-}VUVt+upa{k3B za*Vu_8gCqLg#fEf9tLv5O|`WkR!}ig_5xYuNCtTx#bny4KtLe!N0%uOgw)2W{pYMW zITYT3_|C~g*9aW?@X}MAjX!9Q(}xBA=qTj_IjY*)5(2{|8k50sck%5#)KYz^XuAec zmW5zJQK_T(;1QgzauPr3gDSe9Mea?-&)^Tloeoa1o$?FG4d9rMWd?lirpMfB^XieQ zwYnwJ9jLP#nvf{+-@_YU>EtullqxVSIilGrFXpv*n7)-THMa9UtQ2tW%Q^9t& zeH5(Iv-?z}{W8XW_Xp5oG-vEW!oYP1af!QgHzXl7iV$=Efe=D20$1{#u#ZBu->1>U zr8L(hknDV!$KXP-Y-gv~XOnRP0m!L+YC)Eh^-eGw#DVD1?+bBZAj4RxcTaq0tf=gq z)w$ovFi^tQPacYD+W;wE45!>5Dl#Y^T=4(JlV9ovb`-kv1o5aU@{L0%ZRSW^=NU&X zV?Tc_7L5u4{zz=qLz|kVENNZScZ4nO51}PQSuYf9_u+VYb<;OMKvmif~FiB zYlodr9t{Leq4V2=9K$?;vvhB9T<4^0a~eU)VGPQt&Pjq`bFs06-xg;F&eR$C94Gp+ zVt;4BP)#Wo9FaD3h&9e)wMW5lk-!`L(yFBY<`4{*8&(ni7d6l+zC9R~m#>pgd=DI_ zvn)bksA6aicIJ)>+)7wJ%dCin?uq4g=Po%lbu%JS`>Uo%QCLZVdu$#Z$t@$(xZsZM zRyfkzovLoYbTGQ-dU!|jgcjLnc9!gR`UP()8a-A+AIc&3>xEvAv4P-54F+1LOq>ai5?SR*`5#SML6;) zDr?1l`V@?vNfA+N(a##V@<8CYndD~*qHu%$JA+8D{7MPgja?>zJdB7;)$Kra+D$8^Jkw{vcYbYTpD-skLJm41Km`}to=vHa*J8P%KW_;3P4q zBeXr2LW(kc6RP?@Z@WxkC5`*w83~tq4V{1oox^GR8y-$Y)(|y4)k!EaI*uSsyMoM=v=`rvG5q*t3`|?S}S(zJhPL1Q`Vj%^{1) zv@@n~Oz){kyJZH^;l^r^eW(7P_O3ptsdLTGPNzCk_3{VPbw>m`*W0cwmtu*4K|*w? zwOdi?<;#GC`bAn&5;X=05YF{Fm0K-v)r%NNliF4x2_c0T!bc#rUcnm3(Uv3-K5{XV zql6Gc2nn2=^X?mKXJ==2_U_F7yXU|2=1k6ep0D3?-sd^Lm!~qto6El)&Ow~z(43l^ zzTxY9Sjgz={-M#C)@chH>$Ql@_W&|!<)$2_kph963Ggxj9-!L2ge$(h=fcsuuV}qi zkvX1Ug_`sBDUbz^tjo00K_6gRJB{_&T?_lx4i<#F1hVE13?*F&)?YFS=n?YR5g5S@ zrQd2&CL~j7PTdh?Go|!XIWiaci5&a-h91eI!aoWjxB1#PZ1zYd8!Eh)yHABEHIBNH z|EqPXO@+8um5|ugV;{_m)w9{dF!4CvW&KIBbhL1@HkW-uyK4Eg^0@d$2|u>0Noziu zQ`LVWzexiVk;Jlv9=inMe}9hQko{78KB2UGe3X*nIg zHx70D;L<%$`~GJeE~y1G&md6!zX|_m+%&zSrSBOV`mJls(|HnywKA134-#u#P<@vF z-!68BYoE+yLN1~bqC6mfjQX9|IP+yjS7vw2*4)X~UH_{J3+z=u-J_`=_B{@0{#;4) zadD(tnz_F659F&a*7nEpX5HTr5BoBFzPsCr5zAfCNmDch`a>=*w`{Biv<0-mgHk~?K>GpSYGpwy(KWk@;Iq6It9jwtClKMfd0Jiya z7rNIr*iC{D?t0%T9btZ0fKKvr2WhR5(tuZAVPyD$vb(W%VB%~GPZFP`N^X~a-O<== zg=~Tuu5zXOgh@Cui74H>spyh>k!2L@=7-I0lG}@gVQ`*V&qc!X%I%ycgp3oj9tCD3 zVEQsqw!kwjXG(ZunBFo8v{s?QCsZ6SdrvjKPL9jlt|xL9_4`;x3g39#xGp3fIC8q6 zL9kGhho%dRN2CC@h5bm4Yjr8Q&Re^GfB7@$$+U7r)V_?ox8>2yke zxv;lQYnYh05AL`)=Lkz(E*8}qNuMWF;+?n3CD(6@E%et~2KB|~h+I_W+mNNMsWA-j zVfV*iFXW;hXk_((WBSHoY;^VfV0}F>R^44B%7)%U8Z8cyFs{X{?&=ZnhW1CRe5Q79 zkiC4N2XEThUR||_g8S5#Da6Ih!RHou2OMoj76#5E=KZc4r8;v`)=s7~e}aNXJDZzW zx4rZX8tYZnygrdrEUB>7_c$4bNnJO%L{g+|8R-OI?v)74WbVrOt9 zltqgAf^gYJ@RlG?C6X%kk(TB7WWPq6!YaR2Vcb;L38MY>bw6DKdWt zt3>AnQCY_ESqxk&f?v!vF9}aYMb%C0Z}SxZfugBw$iBZ-;)Ne*dlIWDgJ$(-9lAW* zD5<9{sFM#~=a=->R4C}(Lw-;)&b(Q-5vVShsaN!`nLEw^*TBRjYl>PT;?gZG=o3;P z#%&7`c{3vF5&;r%2ATSknAO@V*^uomYVYd;T*$^R)NUD>cRq9o*yYv0M_N<%Eu7%f zBIJ(R1;psSQGP(dZRH0KA>;5J=$gT&jaFTM7UQ4k>YriFZ^yY$=3P;=(a zau5y*k}D-==cwUS_BadJ(R4yQeOnT8!`oCg^#`&>?i|lZ;JOH#NjkeqwbLnV$e@u4 zMuIL6TBDu@+%1)|VM6J{jwz7Hp>YJmbSs#ysGiW`=cDRT=&MuJI4G62Y+D=-zVq{E z6AN!lPG?lKc7|2Y3=T-=%86sBkH=w5QI91FkJ1#)_Y}VUE|9;HcE}iRieBCy{rAra z+nQLb;fZJWbcRn%3VOO~$r?jA&h-lwCYRii&FVE znCdL6IZI1qgfQHDtGbcSGrlF60{7gVu$vB>{6$yULnaX98r3I(w(brMp!0fX1YW@0 z*-~~3LyALYpoDXN?qVNKSpuXR^=KM!DGlA_6Mrtwp1%cTted3=+)%F+-1bPEz4wCRzYO;-8gsVsn3|u- z31QkypiL^;=;{UA4qmS+N(3wPR?iP5-GA0xs8n*x&-K|oXJLd(Ao%5^qd zf$QF#v_s7;S(Rf>5T?u?9)lxa_iwMS4?ajlWs!x3D^N#Mby*IPZ#bo`r5OoaRFLQ0 z`x31{+aM8HJsKG4S|qdgQ__wYAJX5qeD{#lXB%b9Q+37ZY(&Mm~dH!tTzxdP#%yEcx)vfQK_nt%Dcnq$W5pT1NnLFXrPFI-YliWupm!x1s zP&^bJmeuZkC;`}uaOk=Vz2zxkJ0PFb!m`%;uUF1B_0P))x}0W+Lo>(Oa0-1caBNZZ zCQ6<2f{&-k7WXU#)6MU~^^xWGR`_(V1wAb=E}_GQQX4WGuwTjy`fU#;`?q7&+q~$I zW-|xaRy+0?1^4TqI5%kOwLIo`esZs4rOS(gvzm2U&BYzvJNy@Oo;t~KTbnc@DUc>R zZG3>PoZ~s#S+P9tTf!?iNL>v4J;xzRVJ)q-@8S6Yt$dtWJj51cV(a(*MxXf6290mK zC1bj=lUo&c1x+uZl@;U=$TOPqYA(ZH@~rb0_|g}p)$~I9XSq&1ZZbJG4||`v+1Ktx z6qLCpWq6^hnK#1OQhx@ltu`lgG|u&>JSFrIB(uUp=GI3qq53`!Ap~81{W8UK`8jsE zkgrxLJQGRT;#!gJ0&B`kYCppN9s``) zq(X1_S0gp(wT%JdkdE8IJqk?huFKYeVs>k7L~E)+jfr-!cEmd&MA_FAxk0;Uc)O9h z>;=PQA&vFAMrbl;L?k`4GT*2M;HDJJsZ)eT?F>5nK`|~@!mQ?_A4x826g02Q{SFXG z8B-v;GLCLJ{z!Z_lL!{l)S&ta+)IfXBXcRP!d`}LmB2JW#m=0kQ{WIxPI5yNFi62U z_CIs_=csloTjWQQUyWy-ocD_Ns%N!pgWzG+jvR=M3;B+se-DcoTgWJFNB^{Atw^nZ&8D+Nq zMhNKj4<1!~S_Q61K#%?AGM%7g_86g5>q03Brx?`ZF>ZtqtKrS!@`Vi;oJ$%FK(Zv5 zyu{L2kv`$b1ft}wGNPi~G@dbeu5zm-BO({c8S=+NPi{#J0i0=QiuFlwh5imYPeglH zqKD%vL6}gDfafPajUlc9&FbKCVPBE6)vY)TtzlH1QYP7hZGM932iiUT>n}&3=`QiH zR2XoPexCWm3CrV6iIYeymP7?gjb3L2jDzI zx<3?=TWAR|i+M>1=^ldI^xt%;@|Y!uh008v>#G%K5+cUllEVB2eIhza%_oD=1?rP8 zD)8UK7mpXE{mXCu`d;$8%n*}J=y?C;uNVF$9TL4hKVBOLVVvphoAyh$7(xU8zURQZ K?f>@CpZ)_kQm#}0 literal 0 HcmV?d00001 diff --git a/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/123.set b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/123.set new file mode 100644 index 0000000..7db5038 --- /dev/null +++ b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/123.set @@ -0,0 +1,20 @@ +; saved on 2026.05.01 19:15:26 +; Expert Advisor inputs — synced with RSIScalpingNVDA-Escaper main.mq5 defaults +; Strategy Tester: Inputs tab -> Load +; +TimeFrame=15||15||15||16385||N +RSI_Period=8||1||5||21||N +RSI_Applied_Price=1||0||1||1||N +RSI_Overbought=36||1.0||20.0||45.0||N +RSI_Oversold=38||1.0||25.0||48.0||N +RSI_Target_Buy=90||1.0||70.0||95.0||N +RSI_Target_Sell=70||1.0||15.0||80.0||N +BarsToWait=11||1||2||12||Y +BarsToWait_Early=3||1||1||6||Y +RSI_Confirm_Buy=49||1.0||48.0||72.0||Y +RSI_Confirm_Sell=29||1.0||28.0||55.0||Y +MaxBars_Unconfirmed=1||1||4||40||Y +StopLoss_Points=0||5.0||0.500000||50.000000||N +LotSize=20||5.0||1.0||100.0||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N diff --git a/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/NVDA_Escaper_Genetic_Optimization.set b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/NVDA_Escaper_Genetic_Optimization.set new file mode 100644 index 0000000..82b6c09 --- /dev/null +++ b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/NVDA_Escaper_Genetic_Optimization.set @@ -0,0 +1,20 @@ +; saved on 2026.05.01 +; Same optimization ranges/flags as 123.set (Desktop); baseline matches main.mq5 defaults +; Strategy Tester: Inputs tab -> Load +; +TimeFrame=15||15||15||16385||N +RSI_Period=8||1||5||21||N +RSI_Applied_Price=1||0||1||1||N +RSI_Overbought=36||1.0||20.0||45.0||N +RSI_Oversold=38||1.0||25.0||48.0||N +RSI_Target_Buy=90||1.0||70.0||95.0||N +RSI_Target_Sell=70||1.0||15.0||80.0||N +BarsToWait=11||1||2||12||Y +BarsToWait_Early=3||1||1||6||Y +RSI_Confirm_Buy=49||1.0||48.0||72.0||Y +RSI_Confirm_Sell=29||1.0||28.0||55.0||Y +MaxBars_Unconfirmed=1||1||4||40||Y +StopLoss_Points=0||5.0||0.500000||50.000000||N +LotSize=20||5.0||1.0||100.0||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N diff --git a/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/NVDA_Genetic_Optimization.set b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/NVDA_Genetic_Optimization.set new file mode 100644 index 0000000..81b89e6 --- /dev/null +++ b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/NVDA_Genetic_Optimization.set @@ -0,0 +1,28 @@ +; saved on 2026.02.07 +; Genetic Algorithm Optimization Parameters for RSIScalpingNVDA +; Recommended ranges for profitable parameter discovery +; +; Format: Parameter=Start||Step||Min||Max||Optimize(Y/N) +; +; NOTE: Current values show RSI_Overbought=19 and RSI_Oversold=50 which are unusual. +; This config uses STANDARD RSI ranges (60-85 overbought, 15-40 oversold). +; If your current values are intentional, use the alternative ranges in OPTIMIZATION_GUIDE.md +; +; === PHASE 1: CORE RSI PARAMETERS (Primary Optimization) === +RSI_Period=14||1||7||21||Y +RSI_Overbought=70.0||2.0||60.0||85.0||Y +RSI_Oversold=30.0||2.0||15.0||40.0||Y +RSI_Target_Buy=75.0||2.0||65.0||90.0||Y +RSI_Target_Sell=25.0||2.0||10.0||35.0||Y + +; === PHASE 2: RISK MANAGEMENT (Secondary Optimization) === +BarsToWait=2||1||1||8||Y +TimeFrame=16387||0||16385||16390||Y + +; === PHASE 3: POSITION SIZING (Optimize with caution) === +LotSize=50.0||5.0||10.0||100.0||Y + +; === FIXED PARAMETERS (Do Not Optimize) === +RSI_Applied_Price=1||0||1||1||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N diff --git a/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/OPTIMIZATION_GUIDE.md b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/OPTIMIZATION_GUIDE.md new file mode 100644 index 0000000..d7d5ba6 --- /dev/null +++ b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/OPTIMIZATION_GUIDE.md @@ -0,0 +1,134 @@ +# Genetic Algorithm Optimization Guide for RSIScalpingNVDA + +## Recommended Optimization Strategy + +### Phase 1: Core RSI Parameters (Primary Focus) +These parameters directly control entry/exit signals and should be optimized first. + +#### **RSI_Period** (Y - Optimize) +- **Current**: 14 +- **Recommended Range**: 7-21 +- **Step**: 1 +- **Rationale**: Standard RSI periods. Shorter = more sensitive, longer = smoother signals + +#### **RSI_Overbought** (Y - Optimize) +- **Current**: 19.0 (unusually low - verify if this is correct) +- **Standard Range**: 60.0-85.0 +- **Step**: 2.0 +- **Alternative Range** (if current is intentional): 15.0-30.0 +- **Rationale**: Level where RSI indicates overbought condition for sell entries + +#### **RSI_Oversold** (Y - Optimize) +- **Current**: 50.0 (unusually high - verify if this is correct) +- **Standard Range**: 15.0-40.0 +- **Step**: 2.0 +- **Alternative Range** (if current is intentional): 40.0-60.0 +- **Rationale**: Level where RSI indicates oversold condition for buy entries + +#### **RSI_Target_Buy** (Y - Optimize) +- **Current**: 71.0 +- **Recommended Range**: 65.0-90.0 +- **Step**: 2.0 +- **Rationale**: Exit target for long positions. Must be > RSI_Oversold + +#### **RSI_Target_Sell** (Y - Optimize) +- **Current**: 70.0 +- **Recommended Range**: 10.0-35.0 +- **Step**: 2.0 +- **Rationale**: Exit target for short positions. Must be < RSI_Overbought + +### Phase 2: Risk Management Parameters + +#### **BarsToWait** (Y - Optimize) +- **Current**: 1 +- **Recommended Range**: 1-8 +- **Step**: 1 +- **Rationale**: Bars to wait before closing when RSI goes against position. Higher = more patience + +#### **TimeFrame** (Y - Optimize) +- **Current**: 16387 (M5) +- **Recommended**: Test M1, M5, M15, H1 +- **Values**: + - M1 = 16385 + - M5 = 16387 + - M15 = 16388 + - H1 = 16390 +- **Rationale**: Different timeframes can significantly affect scalping performance + +### Phase 3: Position Sizing (Optimize with Caution) + +#### **LotSize** (Y - Optimize with Fixed Risk) +- **Current**: 50.0 +- **Recommended Range**: 10.0-100.0 +- **Step**: 5.0 +- **Note**: Consider using fixed risk % instead of fixed lot size +- **Rationale**: Position sizing affects profitability but also risk + +### Fixed Parameters (Do NOT Optimize) + +#### **RSI_Applied_Price** (N) +- **Value**: 1 (PRICE_CLOSE) +- **Rationale**: Standard choice, changing may not improve results significantly + +#### **MagicNumber** (N) +- **Value**: 12345 +- **Rationale**: Identifier only, no impact on performance + +#### **Slippage** (N) +- **Value**: 3 +- **Rationale**: Broker-specific, should match your actual slippage + +## Genetic Algorithm Settings + +### Recommended GA Settings: +- **Optimization Criterion**: Balance (or Custom: Profit Factor * Total Net Profit) +- **Population Size**: 50-100 +- **Mutation Probability**: 0.1-0.2 +- **Crossover Probability**: 0.7-0.9 +- **Optimization Passes**: 3-5 +- **Forward Testing**: Always use out-of-sample data + +### Optimization Phases: + +1. **Broad Search** (First Pass): + - Optimize: RSI_Period, RSI_Overbought, RSI_Oversold, RSI_Target_Buy, RSI_Target_Sell + - Fix: BarsToWait=1, TimeFrame=M5, LotSize=50 + +2. **Refinement** (Second Pass): + - Use best results from Phase 1 + - Optimize: BarsToWait, TimeFrame + - Narrow ranges around Phase 1 winners + +3. **Fine-Tuning** (Third Pass): + - Optimize: LotSize (if needed) + - Very narrow ranges around Phase 2 winners + +## Important Notes + +⚠️ **Current Parameter Anomaly**: +- RSI_Overbought=19 and RSI_Oversold=50 are unusual +- Standard RSI ranges: Overbought 70-80, Oversold 20-30 +- **Verify** if these are intentional or if there's a scaling issue + +✅ **Validation Checklist**: +- Ensure RSI_Target_Buy > RSI_Oversold +- Ensure RSI_Target_Sell < RSI_Overbought +- Test on sufficient historical data (at least 6-12 months) +- Use forward testing on unseen data +- Check for overfitting (too many parameters optimized) + +## Example .set File Structure + +``` +RSI_Period=14||1||7||21||Y +RSI_Overbought=70.0||2.0||60.0||85.0||Y +RSI_Oversold=30.0||2.0||15.0||40.0||Y +RSI_Target_Buy=75.0||2.0||65.0||90.0||Y +RSI_Target_Sell=25.0||2.0||10.0||35.0||Y +BarsToWait=2||1||1||8||Y +TimeFrame=16387||0||16385||16390||Y +LotSize=50.0||5.0||10.0||100.0||Y +RSI_Applied_Price=1||0||1||1||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N +``` diff --git a/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/main.mq5 b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/main.mq5 new file mode 100644 index 0000000..4c53ecd --- /dev/null +++ b/frontline/units-sharpshooter/RSIScalpingNVDA-Sharpshooter/main.mq5 @@ -0,0 +1,446 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.02" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_M15; // Timeframe for Analysis +input int RSI_Period = 8; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 36; // RSI Overbought Level +input double RSI_Oversold = 38; // RSI Oversold Level +input double RSI_Target_Buy = 90; // RSI Target for Buy Exit +input double RSI_Target_Sell = 70; // RSI Target for Sell Exit +input int BarsToWait = 11; // Bars RSI against (after momentum confirmed) +input int BarsToWait_Early = 3; // Bars RSI against before RSI confirms favorable move +input double RSI_Confirm_Buy = 49; // Buy: max RSI since entry must reach this once to confirm +input double RSI_Confirm_Sell = 29; // Sell: min RSI since entry must reach this once to confirm +input int MaxBars_Unconfirmed = 1; // If still unconfirmed after this many bars, use fastest adverse exit (0=off) +input double StopLoss_Points = 0; // Hard SL distance in points (0 = none) +input double LotSize = 20; // Lot Size +input int MagicNumber = 12345; // Magic Number +input int Slippage = 3; // Slippage in points + +//--- Global variables +CTrade trade; +int rsi_handle; +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; +// Escaper: cut losers fast until trade proves RSI moved in our favor +int bars_in_trade = 0; +double rsi_extreme_since_entry = 0; +bool momentum_confirmed = false; +bool close_retry_pending = false; + +//+------------------------------------------------------------------+ +//| Reset escaper state (call when flat or after close) | +//+------------------------------------------------------------------+ +void ResetEscaperState() +{ + bars_in_trade = 0; + rsi_extreme_since_entry = 0; + momentum_confirmed = false; + rsi_against_position = false; + bars_against_count = 0; + close_retry_pending = false; +} + +//+------------------------------------------------------------------+ +//| EA lost sync vs broker: recover tracking / retry failed closes | +//| (must run every tick — new-bar-only logic skips session reopen) | +//+------------------------------------------------------------------+ +void TryCloseRetryAndResync() +{ + if(!position_open && PositionExistsByMagic(_Symbol, MagicNumber)) + { + ulong tix = GetPositionTicketByMagic(_Symbol, MagicNumber); + position_ticket = (long)tix; + position_open = true; + if(PositionSelectByTicket(tix)) + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + ResetEscaperState(); + Print("RSIScalpingNVDA-Escaper: resynced open position from broker."); + } + + if(!close_retry_pending || !position_open) + return; + + ulong ticket_retry = GetPositionTicketByMagic(_Symbol, MagicNumber); + if(ticket_retry == 0) + { + ResetEscaperState(); + position_open = false; + position_ticket = 0; + return; + } + + if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) || !MQLInfoInteger(MQL_TRADE_ALLOWED)) + return; + + if(SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_DISABLED) + return; + + if(trade.PositionClose(ticket_retry)) + { + ResetEscaperState(); + position_open = false; + position_ticket = 0; + } +} + +//+------------------------------------------------------------------+ +//| Adverse bars required: tight until RSI shows favorable impulse | +//+------------------------------------------------------------------+ +int AdverseBarsRequired() +{ + int need = momentum_confirmed ? BarsToWait : BarsToWait_Early; + if(MaxBars_Unconfirmed > 0 && !momentum_confirmed && bars_in_trade >= MaxBars_Unconfirmed) + need = MathMin(need, 1); + return need; +} + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + TryCloseRetryAndResync(); + + // Check if we have enough bars + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + { + return; + } + + // Check if this is a new bar + datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + if(current_bar_time == last_bar_time) + { + return; // Still the same bar, don't process + } + + last_bar_time = current_bar_time; + + // Update RSI values + if(!UpdateRSI()) + { + return; + } + + // Check for existing position + CheckExistingPosition(); + + // Check for new entry signals - only if no position exists for THIS EA (magic number) on THIS symbol + if(!position_open && !PositionExistsByMagic(_Symbol, MagicNumber)) + { + CheckEntrySignals(); + } +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number AND symbol for THIS EA + if(!PositionSelectByTicketSymbolAndMagic(position_ticket, _Symbol, MagicNumber)) + { + position_open = false; + position_ticket = 0; + ResetEscaperState(); + return; + } + + bars_in_trade++; + if(current_position_type == POSITION_TYPE_BUY) + { + rsi_extreme_since_entry = MathMax(rsi_extreme_since_entry, rsi_current); + momentum_confirmed = (rsi_extreme_since_entry >= RSI_Confirm_Buy); + } + else + { + rsi_extreme_since_entry = MathMin(rsi_extreme_since_entry, rsi_current); + momentum_confirmed = (rsi_extreme_since_entry <= RSI_Confirm_Sell); + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + int adverse_need = AdverseBarsRequired(); + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close faster before RSI confirms favorable impulse; full wait after confirmation + if(bars_against_count >= adverse_need) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + int adverse_need = AdverseBarsRequired(); + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + if(bars_against_count >= adverse_need) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, MagicNumber)) + { + return; // Position already exists for this EA + } + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double sl = 0; + if(StopLoss_Points > 0) + { + double pt = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + int dig = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + sl = NormalizeDouble(ask - StopLoss_Points * pt, dig); + } + + if(trade.Buy(LotSize, _Symbol, ask, sl, 0, "RSI Scalping Buy")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_BUY; + rsi_extreme_since_entry = rsi_current; + momentum_confirmed = (rsi_current >= RSI_Confirm_Buy); + rsi_against_position = false; + bars_against_count = 0; + bars_in_trade = 0; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, MagicNumber)) + { + return; // Position already exists for this EA + } + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double sl = 0; + if(StopLoss_Points > 0) + { + double pt = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + int dig = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + sl = NormalizeDouble(bid + StopLoss_Points * pt, dig); + } + + if(trade.Sell(LotSize, _Symbol, bid, sl, 0, "RSI Scalping Sell")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_SELL; + rsi_extreme_since_entry = rsi_current; + momentum_confirmed = (rsi_current <= RSI_Confirm_Sell); + rsi_against_position = false; + bars_against_count = 0; + bars_in_trade = 0; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + ulong ticket = GetPositionTicketByMagic(_Symbol, MagicNumber); + if(ticket == 0) + { + position_open = false; + position_ticket = 0; + ResetEscaperState(); + return; + } + + if(!trade.PositionClose(ticket)) + { + uint rc = trade.ResultRetcode(); + close_retry_pending = true; + PrintFormat("RSIScalpingNVDA-Escaper: close failed retcode=%u — keeping position, will retry when session allows.", rc); + return; + } + + position_open = false; + position_ticket = 0; + ResetEscaperState(); +} diff --git a/frontline/units-trailing/EMASlopeDistanceCocktailXAUUSD-trailing/main.mq5 b/frontline/units-trailing/EMASlopeDistanceCocktailXAUUSD-trailing/main.mq5 new file mode 100644 index 0000000..6d849c0 --- /dev/null +++ b/frontline/units-trailing/EMASlopeDistanceCocktailXAUUSD-trailing/main.mq5 @@ -0,0 +1,628 @@ +//+------------------------------------------------------------------+ +//| EMACrossOver.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" +#include +#include "../_united/MagicNumberHelpers.mqh" +//--- Eingabeparameter (Input Parameters) - Optimized Profitable Parameters +input int EMA_Periode = 50; // EMA Periode +input double PreisSchwelle = 700.0; // Preisbewegung Schwelle in Pips +input double SteigungSchwelle = 25.0; // EMA Steigung Schwelle in Pips +input int ÜberwachungTimeout = 340; // Überwachungszeit in Sekunden +input double TrailingStop = 370.0; // Gleitender Stop in Pips +input bool UseTrailingStop = true; // Gleitenden Stop anwenden +input double TrailingActivationPips = 0.0; // Mindestgewinn in Pips bis Trail startet (0 = Konto-Profit>0) +input bool UseStaleStopLossExit = false; // schließen wenn SL zu lange nicht angepasst wurde +input int StaleStopLossSeconds = 33800; // Sekunden ohne SL-Änderung -> Close (0 = aus) +input double LotGröße = 0.07; // Handelsvolumen +input int MagicNumber = 135790; // Magic Number für Trades +input bool UseSpreadAdjustment = true; // Spread-Anpassung verwenden +input ENUM_TIMEFRAMES Timeframe = PERIOD_H1; // Zeitraum für Analyse +input bool UseBarData = true; // Bar-Daten statt Tick-Daten verwenden +input int MaxTradesPerCrossover = 3; // Maximale Trades pro Crossover-Ereignis +input int ProfitCheckBars = 11; // Bars bis zur Profit-Prüfung +input bool CloseUnprofitableTrades = true; // Unprofitable Trades nach X Bars schließen +input bool UseWeeklyADXFilter = true; // W1 ADX Trendfilter aktivieren +input int WeeklyADXPeriod = 15; // ADX-Periode auf W1 +input double WeeklyADXMin = 40.0; // Minimaler ADX fuer Trendfreigabe +input int WeeklyADXBarShift = 2; // 1=letzte geschlossene W1-Kerze +input bool WeeklyADXUseDirection = true; // +DI/-DI Richtung mitpruefen + +//--- Globale Variablen (Global Variables) +int ema_handle; // EMA Indicator Handle +double ema_array[]; // Array für EMA +datetime letzte_überwachung_zeit; // Zeit der letzten Überwachung +bool überwachung_aktiv = false; // Überwachungsstatus +bool preis_trigger_aktiv = false; // Preis-Trigger Status +bool steigung_trigger_aktiv = false; // Steigungs-Trigger Status +int ticket = 0; // Trade Ticket +CTrade trade; // CTrade Objekt +int trades_in_current_crossover = 0; // Anzahl Trades im aktuellen Crossover +bool crossover_detected = false; // Crossover erkannt +datetime trade_open_time = 0; // Zeitpunkt des Trade-Öffnens +datetime g_last_sl_adjust_success_time = 0; // letzte erfolgreiche SL-Verschiebung (Stale-Exit) + +//+------------------------------------------------------------------+ +//| Weekly ADX trend filter | +//+------------------------------------------------------------------+ +bool IsWeeklyADXTrendFavorable(ENUM_ORDER_TYPE order_type) +{ + if(!UseWeeklyADXFilter) + return true; + + int adxShift = WeeklyADXBarShift; + if(adxShift < 0) + adxShift = 0; + + int adx_handle = iADX(_Symbol, PERIOD_W1, WeeklyADXPeriod); + if(adx_handle == INVALID_HANDLE) + { + Print("TRACE: Weekly ADX Handle ungültig - Filter blockiert Entry"); + return false; + } + + double adx_buf[], plus_di_buf[], minus_di_buf[]; + ArraySetAsSeries(adx_buf, true); + ArraySetAsSeries(plus_di_buf, true); + ArraySetAsSeries(minus_di_buf, true); + + bool ok_adx = (CopyBuffer(adx_handle, 0, adxShift, 1, adx_buf) > 0); + bool ok_plus = (CopyBuffer(adx_handle, 1, adxShift, 1, plus_di_buf) > 0); + bool ok_minus = (CopyBuffer(adx_handle, 2, adxShift, 1, minus_di_buf) > 0); + IndicatorRelease(adx_handle); + + if(!ok_adx || !ok_plus || !ok_minus) + { + Print("TRACE: Weekly ADX Daten nicht verfügbar - Filter blockiert Entry"); + return false; + } + + double adx_value = adx_buf[0]; + double plus_di = plus_di_buf[0]; + double minus_di = minus_di_buf[0]; + + bool strength_ok = (adx_value >= WeeklyADXMin); + bool direction_ok = true; + if(WeeklyADXUseDirection) + { + if(order_type == ORDER_TYPE_BUY) + direction_ok = (plus_di > minus_di); + else + direction_ok = (minus_di > plus_di); + } + + Print("TRACE: Weekly ADX Filter | ADX=", DoubleToString(adx_value, 2), + " +DI=", DoubleToString(plus_di, 2), + " -DI=", DoubleToString(minus_di, 2), + " strength_ok=", strength_ok, + " direction_ok=", direction_ok); + + return (strength_ok && direction_ok); +} + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() + { + //--- CTrade konfigurieren (Configure CTrade) + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(10); + trade.SetTypeFilling(ORDER_FILLING_IOC); + + //--- EMA Indicator Handle erstellen (Create EMA indicator handle) + ema_handle = iMA(_Symbol, Timeframe, EMA_Periode, 0, MODE_EMA, PRICE_CLOSE); + + if(ema_handle == INVALID_HANDLE) + { + Print("Fehler beim Erstellen des EMA Indicators"); + return(INIT_FAILED); + } + + //--- Arrays initialisieren (Initialize arrays) + ArraySetAsSeries(ema_array, true); + + //--- Arrays mit aktuellen Werten füllen (Fill arrays with current values) + BerechneEMA(); + + Print("EMA EA initialisiert - Periode: ", EMA_Periode, " Timeframe: ", EnumToString(Timeframe), " Handle: ", ema_handle); + return(INIT_SUCCEEDED); + } + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) + { + //--- Indicator Handle freigeben (Release indicator handle) + if(ema_handle != INVALID_HANDLE) + { + IndicatorRelease(ema_handle); + } + + Print("EA beendet - Grund: ", reason); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() + { + static datetime last_bar_time = 0; + const datetime current_bar_time = iTime(_Symbol, Timeframe, 0); + const bool new_bar = (current_bar_time != last_bar_time); + const bool has_position = PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + // Offene Positionen: Management jeden Tick (Trailing / Stale-SL). Sonst bei Bar-Modus nur neuer Bar. + if(UseBarData) + { + if(!new_bar && !has_position) + return; + if(new_bar) + last_bar_time = current_bar_time; + } + + //--- EMA Werte berechnen (Calculate EMA values) + BerechneEMA(); + + const bool run_signals = (!UseBarData || new_bar); + + //--- Debug / Überwachung / Entry nur bei neuem Bar (Bar-Modus) oder jeden Tick (Tick-Modus) + if(run_signals && ArraySize(ema_array) > 0) + { + double aktueller_close = iClose(_Symbol, Timeframe, 0); + double ema_aktuell = ema_array[0]; + double ema_vorher = ema_array[1]; + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / _Point; + double steigung = (ema_aktuell - ema_vorher) / _Point; + + if(UseBarData) + { + Print("=== DEBUG INFO (Neuer Bar) ==="); + Print("Bar Zeit: ", TimeToString(iTime(_Symbol, Timeframe, 0))); + } + else + { + Print("=== DEBUG INFO (Tick) ==="); + } + + Print("Aktueller Close: ", aktueller_close); + Print("EMA: ", ema_aktuell); + Print("Preis-Abstand: ", preis_abstand, " Pips"); + Print("EMA Steigung: ", steigung, " Pips"); + Print("Differenz Close-EMA: ", aktueller_close - ema_aktuell); + Print("Preis-Trigger: ", preis_trigger_aktiv, " Steigungs-Trigger: ", steigung_trigger_aktiv); + Print("Überwachung aktiv: ", überwachung_aktiv); + Print("Position offen: ", PositionExistsByMagic(_Symbol, (ulong)MagicNumber)); + Print("Trades im aktuellen Crossover: ", trades_in_current_crossover, "/", MaxTradesPerCrossover); + Print("=================="); + } + + if(run_signals) + { + //--- Überwachung prüfen (Check monitoring) + if(überwachung_aktiv) + { + if(UseBarData) + { + int bars_since_monitoring = iBarShift(_Symbol, Timeframe, letzte_überwachung_zeit); + int timeout_bars = (int)(ÜberwachungTimeout / PeriodSeconds(Timeframe)); + + if(bars_since_monitoring > timeout_bars) + { + überwachung_aktiv = false; + preis_trigger_aktiv = false; + steigung_trigger_aktiv = false; + Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); + } + } + else + { + if(TimeCurrent() - letzte_überwachung_zeit > ÜberwachungTimeout) + { + überwachung_aktiv = false; + preis_trigger_aktiv = false; + steigung_trigger_aktiv = false; + Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + } + } + } + + PrüfeTrigger(); + } + + VerwalteTrades(); +} + +//+------------------------------------------------------------------+ +//| EMA Berechnung (EMA Calculation) | +//+------------------------------------------------------------------+ +void BerechneEMA() +{ + //--- EMA Werte vom Indicator kopieren (Copy EMA values from indicator) + int copied = CopyBuffer(ema_handle, 0, 0, 3, ema_array); + + if(copied <= 0) + { + Print("TRACE: Fehler beim Kopieren der EMA Werte - Copied: ", copied); + return; + } + + Print("TRACE: EMA Werte kopiert: ", copied, " Bars"); + Print("TRACE: EMA [0]: ", ema_array[0], " [1]: ", ema_array[1], " [2]: ", ema_array[2]); +} + +//+------------------------------------------------------------------+ +//| Trigger-Bedingungen prüfen (Check trigger conditions) | +//+------------------------------------------------------------------+ +void PrüfeTrigger() +{ + if(ArraySize(ema_array) < 2) + { + Print("TRACE: Array zu klein - Größe: ", ArraySize(ema_array)); + return; + } + + //--- Aktuelle Werte (Current values) + double aktueller_preis = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double aktueller_ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double aktueller_close = iClose(_Symbol, Timeframe, 0); + double pips_multiplier = (_Digits == 3 || _Digits == 5) ? 10.0 : 1.0; + + //--- EMA Werte in Variablen (EMA values in variables) + double ema_aktuell = ema_array[0]; + double ema_vorher = ema_array[1]; + + //--- EMA Crossover Erkennung (EMA Crossover Detection) + // Prüfe ob Preis die EMA kreuzt (Check if price crosses EMA) + static double last_close = 0; + static double last_ema = 0; + + if(last_close != 0 && last_ema != 0) + { + bool crossover_bullish = (last_close <= last_ema) && (aktueller_close > ema_aktuell); + bool crossover_bearish = (last_close >= last_ema) && (aktueller_close < ema_aktuell); + + //--- Neues Crossover-Ereignis erkannt (New crossover event detected) + if(crossover_bullish || crossover_bearish) + { + trades_in_current_crossover = 0; // Reset trade counter + Print("TRACE: EMA Crossover erkannt - ", (crossover_bullish ? "BULLISH" : "BEARISH"), " - Trade-Counter zurückgesetzt"); + Print("TRACE: Vorher: Close=", last_close, " EMA=", last_ema, " Jetzt: Close=", aktueller_close, " EMA=", ema_aktuell); + } + } + + //--- Aktuelle Werte für nächsten Vergleich speichern (Save current values for next comparison) + last_close = aktueller_close; + last_ema = ema_aktuell; + + //--- Preisbewegung zur EMA prüfen (Check price action to EMA) + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / _Point / pips_multiplier; + + Print("TRACE: Preis-Abstand: ", preis_abstand, " Pips (Schwelle: ", PreisSchwelle, ")"); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Trades im aktuellen Crossover: ", trades_in_current_crossover, "/", MaxTradesPerCrossover); + + if(preis_abstand > PreisSchwelle && !preis_trigger_aktiv) + { + preis_trigger_aktiv = true; + Print("TRACE: Preis-Trigger aktiviert: ", preis_abstand, " Pips"); + } + + //--- EMA Steigung prüfen (Check EMA slope) + double steigung = (ema_aktuell - ema_vorher) / _Point / pips_multiplier; + + Print("TRACE: EMA Steigung: ", steigung, " Pips (Schwelle: ", SteigungSchwelle, ")"); + + if(MathAbs(steigung) > SteigungSchwelle && !steigung_trigger_aktiv) + { + steigung_trigger_aktiv = true; + Print("TRACE: Steigungs-Trigger aktiviert: ", steigung, " Pips"); + } + + //--- Überwachung starten wenn beide Trigger aktiv sind (Start monitoring when both triggers are active) + if(preis_trigger_aktiv && steigung_trigger_aktiv && !überwachung_aktiv) + { + überwachung_aktiv = true; + + if(UseBarData) + { + letzte_überwachung_zeit = iTime(_Symbol, Timeframe, 0); // Aktuelle Bar-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Bar: ", TimeToString(letzte_überwachung_zeit), ")"); + } + else + { + letzte_überwachung_zeit = TimeCurrent(); // Aktuelle Tick-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Tick)"); + } + } + + //--- Trade platzieren wenn Überwachung aktiv und Preis über/unter EMA (Place trade when monitoring active and price above/below EMA) + if(überwachung_aktiv) + { + bool bullish_signal = aktueller_close > ema_aktuell; + bool bearish_signal = aktueller_close < ema_aktuell; + + Print("TRACE: Signal Check - Bullish: ", bullish_signal, " Bearish: ", bearish_signal); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Differenz: ", aktueller_close - ema_aktuell); + + //--- Trade-Limit prüfen (Check trade limit) + if(trades_in_current_crossover >= MaxTradesPerCrossover) + { + Print("TRACE: Trade-Limit erreicht (", MaxTradesPerCrossover, ") - Kein neuer Trade"); + return; + } + + if(bullish_signal && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + if(!IsWeeklyADXTrendFavorable(ORDER_TYPE_BUY)) + { + Print("TRACE: Weekly ADX blockiert BUY-Entry"); + return; + } + Print("TRACE: Versuche KAUF-Trade zu platzieren (Trade #", trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_BUY)) + { + trades_in_current_crossover++; + } + } + else if(bearish_signal && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + if(!IsWeeklyADXTrendFavorable(ORDER_TYPE_SELL)) + { + Print("TRACE: Weekly ADX blockiert SELL-Entry"); + return; + } + Print("TRACE: Versuche VERKAUF-Trade zu platzieren (Trade #", trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_SELL)) + { + trades_in_current_crossover++; + } + } + else if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + Print("TRACE: Position bereits offen - kein neuer Trade"); + } + } +} + +//+------------------------------------------------------------------+ +//| Trade platzieren (Place trade) | +//+------------------------------------------------------------------+ +bool PlatziereTrade(ENUM_ORDER_TYPE order_type) +{ + Print("TRACE: Versuche Trade zu platzieren - Typ: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF"); + Print("TRACE: Lot: ", LotGröße); + + bool success = false; + + if(order_type == ORDER_TYPE_BUY) + { + success = trade.Buy(LotGröße, _Symbol, 0, 0, 0, "EMA Crossover Trade"); + } + else + { + success = trade.Sell(LotGröße, _Symbol, 0, 0, 0, "EMA Crossover Trade"); + } + + if(success) + { + ticket = (int)trade.ResultOrder(); + Print("TRACE: Trade erfolgreich platziert: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF", " Ticket: ", ticket); + + //--- Trade-Öffnungszeit speichern (Save trade opening time) + trade_open_time = iTime(_Symbol, Timeframe, 0); + g_last_sl_adjust_success_time = 0; + Print("TRACE: Trade-Öffnungszeit: ", TimeToString(trade_open_time)); + + //--- Überwachung zurücksetzen (Reset monitoring) + überwachung_aktiv = false; + preis_trigger_aktiv = false; + steigung_trigger_aktiv = false; + + return true; + } + else + { + Print("TRACE: Fehler beim Platzieren des Trades - Retcode: ", trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", trade.ResultRetcodeDescription()); + + return false; + } +} + +//+------------------------------------------------------------------+ +//| Mindestgewinn fuer Trailing erreicht? | +//+------------------------------------------------------------------+ +bool TrailingActivationReached(const double position_profit, const ENUM_POSITION_TYPE position_type, + const double pips_multiplier) +{ + if(TrailingActivationPips <= 0.0) + return (position_profit > 0.0); + + const double open_px = PositionGetDouble(POSITION_PRICE_OPEN); + if(position_type == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + return ((bid - open_px) / _Point / pips_multiplier >= TrailingActivationPips); + } + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + return ((open_px - ask) / _Point / pips_multiplier >= TrailingActivationPips); +} + +//+------------------------------------------------------------------+ +//| Trades verwalten (Manage trades) | +//+------------------------------------------------------------------+ +void VerwalteTrades() +{ + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + if(UseStaleStopLossExit && StaleStopLossSeconds > 0) + { + const datetime stale_ref = (g_last_sl_adjust_success_time > 0) + ? g_last_sl_adjust_success_time + : (datetime)PositionGetInteger(POSITION_TIME); + if(TimeCurrent() - stale_ref >= StaleStopLossSeconds) + { + SchließePosition("Stale stop loss - keine SL-Anpassung"); + return; + } + } + + double position_profit = PositionGetDouble(POSITION_PROFIT); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + double pips_multiplier = (_Digits == 3 || _Digits == 5) ? 10.0 : 1.0; + const double trail_dist = TrailingStop * _Point * pips_multiplier; + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * _Point; + + //--- Gleitender Stop (Trailing Stop) + if(UseTrailingStop && TrailingStop > 0.0 && TrailingActivationReached(position_profit, position_type, pips_multiplier)) + { + if(position_type == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double new_stop_loss = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_stop_loss < min_dist) + new_stop_loss = NormalizeDouble(bid - min_dist, digits); + const double current_stop_loss = PositionGetDouble(POSITION_SL); + if(new_stop_loss < bid && new_stop_loss > 0.0 && new_stop_loss > current_stop_loss) + ÄndereStopLoss(new_stop_loss); + } + else if(position_type == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double new_stop_loss = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_stop_loss - ask < min_dist) + new_stop_loss = NormalizeDouble(ask + min_dist, digits); + const double current_stop_loss = PositionGetDouble(POSITION_SL); + if(new_stop_loss > ask && new_stop_loss > 0.0 && + (new_stop_loss < current_stop_loss || current_stop_loss == 0.0)) + ÄndereStopLoss(new_stop_loss); + } + } + + //--- Ausstieg bei Preis unter/über EMA (Exit when price below/above EMA) + if(ArraySize(ema_array) >= 1) + { + double aktueller_close = iClose(_Symbol, Timeframe, 0); + double ema_aktuell = ema_array[0]; + bool exit_bullish = (position_type == POSITION_TYPE_SELL && aktueller_close > ema_aktuell); + bool exit_bearish = (position_type == POSITION_TYPE_BUY && aktueller_close < ema_aktuell); + + if(exit_bullish || exit_bearish) + { + Print("TRACE: Ausstiegssignal - Close: ", aktueller_close, " EMA: ", ema_aktuell); + SchließePosition("EMA Crossover Exit"); + + Print("TRACE: Position geschlossen - Trade-Counter bleibt bei ", trades_in_current_crossover); + } + } + + //--- Profit-Prüfung nach X Bars (Profit check after X bars) + if(CloseUnprofitableTrades && trade_open_time != 0 && PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + Print("TRACE: Profit-Prüfung aktiviert - CloseUnprofitableTrades: ", CloseUnprofitableTrades); + PrüfeProfitNachBars(); + } + else if(!CloseUnprofitableTrades) + { + Print("TRACE: Profit-Prüfung deaktiviert - CloseUnprofitableTrades: ", CloseUnprofitableTrades); + } +} + +//+------------------------------------------------------------------+ +//| Profit-Prüfung nach X Bars (Profit check after X bars) | +//+------------------------------------------------------------------+ +void PrüfeProfitNachBars() +{ + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Keine Position offen + } + + datetime current_bar_time = iTime(_Symbol, Timeframe, 0); + int bars_since_trade_open = iBarShift(_Symbol, Timeframe, trade_open_time); + + Print("TRACE: Bars seit Trade-Öffnung: ", bars_since_trade_open, "/", ProfitCheckBars); + + //--- Prüfe ob genügend Bars vergangen sind (Check if enough bars have passed) + if(bars_since_trade_open >= ProfitCheckBars) + { + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_volume = PositionGetDouble(POSITION_VOLUME); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + Print("TRACE: Profit-Prüfung nach ", ProfitCheckBars, " Bars"); + Print("TRACE: Position Profit: ", position_profit, " USD"); + + //--- Schließe Position wenn nicht im Profit (Close position if not in profit) + if(position_profit <= 0) + { + Print("TRACE: Position nicht im Profit - Schließe Position"); + SchließePosition("Profit Check - Unprofitable"); + + //--- Trade-Öffnungszeit zurücksetzen (Reset trade opening time) + trade_open_time = 0; + Print("TRACE: Trade-Öffnungszeit zurückgesetzt"); + } + else + { + Print("TRACE: Position im Profit - Behalte Position"); + //--- Trade-Öffnungszeit zurücksetzen um weitere Prüfungen zu vermeiden (Reset to avoid further checks) + trade_open_time = 0; + } + } +} + +//+------------------------------------------------------------------+ +//| Stop Loss ändern (Modify Stop Loss) | +//+------------------------------------------------------------------+ +void ÄndereStopLoss(double new_stop_loss) +{ + Print("TRACE: Versuche Stop Loss zu ändern auf: ", new_stop_loss); + + bool success = ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_stop_loss, PositionGetDouble(POSITION_TP)); + + if(success) + { + g_last_sl_adjust_success_time = TimeCurrent(); + Print("TRACE: Stop Loss erfolgreich geändert auf: ", new_stop_loss); + } + else + { + Print("TRACE: Fehler beim Ändern des Stop Loss - Retcode: ", trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Position schließen (Close position) | +//+------------------------------------------------------------------+ +void SchließePosition(string reason = "Unbekannt") +{ + Print("TRACE: Versuche Position zu schließen - Grund: ", reason); + + bool success = ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber); + + if(success) + { + g_last_sl_adjust_success_time = 0; + Print("TRACE: Position erfolgreich geschlossen - Grund: ", reason); + } + else + { + Print("TRACE: Fehler beim Schließen der Position - Retcode: ", trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ diff --git a/frontline/units-trailing/EMASlopeDistanceCocktailXAUUSD-trailing/report.html b/frontline/units-trailing/EMASlopeDistanceCocktailXAUUSD-trailing/report.html new file mode 100644 index 0000000000000000000000000000000000000000..8d9931ff2cb1f08db57f053ae8cae2d908f9597f GIT binary patch literal 1883870 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 z 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

jB@%P_b0(KZRKre6ZN$~N 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 K?f>@CpZ)_kQm#}0 literal 0 HcmV?d00001 diff --git a/frontline/units-trailing/RSIScalpingBTCUSD-trailing/main.mq5 b/frontline/units-trailing/RSIScalpingBTCUSD-trailing/main.mq5 new file mode 100644 index 0000000..b34e0a2 --- /dev/null +++ b/frontline/units-trailing/RSIScalpingBTCUSD-trailing/main.mq5 @@ -0,0 +1,581 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_H1; // Timeframe for Analysis +input int RSI_Period = 14; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 90; // RSI Overbought Level +input double RSI_Oversold = 73; // RSI Oversold Level +input double RSI_Target_Buy = 88; // RSI Target for Buy Exit +input double RSI_Target_Sell = 48; // RSI Target for Sell Exit +input int BarsToWait = 6; // Bars to wait when RSI goes against position +input double LotSize = 0.1; // Lot Size +input int MagicNumber = 123459123; // Magic Number +input int Slippage = 3; // Slippage in points + +input group "=== Reversal escape (intrabar, multi-signal) ===" +input bool UseReversalEscape = true; // run while in position every tick +input int ReversalATRPeriod = 14; // ATR lookback on signal timeframe +input double ReversalAdverseAtrMult = 5.25; // close if price vs entry >= this * ATR +input int ReversalSignsRequired = 2; // how many independent signs must align +input double ReversalRsiVelocity = 16.0; // RSI points drop (long) / rise (short) vs prior buffer +input double ReversalBodyAtrMult = 5.1; // last closed bar body >= this * ATR counts as one sign + +input group "=== Trailing stop ===" +input bool UseTrailingStop = true; // move SL behind bid/ask while in profit +input double TrailingStopDistancePoints = 120.0; // SL distance from bid/ask (points) +input double TrailingActivationPoints = 0.0; // min profit before trailing (0 = same as distance) + +//--- Global variables +CTrade trade; +int rsi_handle; +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; + +void ResetPositionTracking(); +void SyncTrackedPosition(); +double ATRPriceOnTF(const int period); +int CountReversalEscapeSigns(const ENUM_POSITION_TYPE ptype, const double atr); +void TryReversalEscape(); +void ApplyTrailingStop(); + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if we have enough bars + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + { + return; + } + + // Check if this is a new bar + datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + bool is_new_bar = (current_bar_time != last_bar_time); + bool in_position = position_open || PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + // While flat, process only on new bars. While in position, allow intrabar reversal escape checks. + if(!in_position && !is_new_bar) + { + return; + } + + // Update RSI values + if(!UpdateRSI()) + { + return; + } + + if(in_position && UseReversalEscape) + { + TryReversalEscape(); + } + + if(in_position && UseTrailingStop) + ApplyTrailingStop(); + + if(!is_new_bar) + { + return; + } + + last_bar_time = current_bar_time; + + // Keep local tracking aligned with actual terminal positions for this symbol/magic. + SyncTrackedPosition(); + + // Check for existing position + CheckExistingPosition(); + + // Check for new entry signals - only if no position exists for THIS EA (magic number) on THIS symbol + if(!position_open && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + CheckEntrySignals(); + } +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Wilder ATR in price units (signal timeframe) | +//+------------------------------------------------------------------+ +double ATRPriceOnTF(const int period) +{ + if(period < 1) + return 0.0; + + MqlRates rates[]; + const int need = period + 2; + if(CopyRates(_Symbol, TimeFrame, 0, need, rates) < need) + return 0.0; + + ArraySetAsSeries(rates, true); + double sum = 0.0; + for(int i = 1; i <= period; i++) + { + const double hl = rates[i].high - rates[i].low; + const double hc = MathAbs(rates[i].high - rates[i + 1].close); + const double lc = MathAbs(rates[i].low - rates[i + 1].close); + sum += MathMax(hl, MathMax(hc, lc)); + } + + return sum / (double)period; +} + +//+------------------------------------------------------------------+ +//| Independent adverse signs (need ReversalSignsRequired to exit) | +//+------------------------------------------------------------------+ +int CountReversalEscapeSigns(const ENUM_POSITION_TYPE ptype, const double atr) +{ + if(atr <= 0.0) + return 0; + + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + int signs = 0; + + if(ptype == POSITION_TYPE_BUY) + { + if(entry - bid >= ReversalAdverseAtrMult * atr) + signs++; + if(rsi_prev - rsi_current >= ReversalRsiVelocity) + signs++; + } + else if(ptype == POSITION_TYPE_SELL) + { + if(ask - entry >= ReversalAdverseAtrMult * atr) + signs++; + if(rsi_current - rsi_prev >= ReversalRsiVelocity) + signs++; + } + else + { + return 0; + } + + MqlRates rates[]; + if(CopyRates(_Symbol, TimeFrame, 0, 4, rates) >= 4) + { + ArraySetAsSeries(rates, true); + const double body = MathAbs(rates[1].close - rates[1].open); + if(body >= ReversalBodyAtrMult * atr) + { + if(ptype == POSITION_TYPE_BUY && rates[1].close < rates[1].open) + signs++; + else if(ptype == POSITION_TYPE_SELL && rates[1].close > rates[1].open) + signs++; + } + + if(ptype == POSITION_TYPE_BUY) + { + if(rates[1].close < rates[2].close && rates[2].close < rates[3].close) + signs++; + } + else + { + if(rates[1].close > rates[2].close && rates[2].close > rates[3].close) + signs++; + } + } + + return signs; +} + +//+------------------------------------------------------------------+ +//| Cut losers fast on violent reversals (evaluated every tick) | +//+------------------------------------------------------------------+ +void TryReversalEscape() +{ + ulong live_ticket = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(live_ticket == 0) + return; + if(!PositionSelectByTicketSymbolAndMagic(live_ticket, _Symbol, (ulong)MagicNumber)) + return; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double atr = ATRPriceOnTF(ReversalATRPeriod); + if(atr <= 0.0) + return; + + const int signs = CountReversalEscapeSigns(ptype, atr); + if(signs < ReversalSignsRequired) + return; + + ClosePosition(); + Print("RSIScalpingBTCUSD: reversal escape signs=", signs, " need=", ReversalSignsRequired, + " ATR=", DoubleToString(atr, (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS))); +} + +//+------------------------------------------------------------------+ +//| Trail SL behind favorable price (every tick when enabled) | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + if(TrailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const double trail_dist = TrailingStopDistancePoints * point; + const double activation_pts = (TrailingActivationPoints > 0.0) + ? TrailingActivationPoints + : TrailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + +//+------------------------------------------------------------------+ +//| Reset local position tracking | +//+------------------------------------------------------------------+ +void ResetPositionTracking() +{ + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; +} + +//+------------------------------------------------------------------+ +//| Sync local state with real position in terminal | +//+------------------------------------------------------------------+ +void SyncTrackedPosition() +{ + ulong live_ticket = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(live_ticket == 0) + { + ResetPositionTracking(); + return; + } + + // If we were not tracking (or ticket changed), start tracking the live position. + if(!position_open || position_ticket != (int)live_ticket) + { + if(PositionSelectByTicketSymbolAndMagic(live_ticket, _Symbol, (ulong)MagicNumber)) + { + position_open = true; + position_ticket = (int)live_ticket; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + rsi_against_position = false; + bars_against_count = 0; + } + return; + } +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number AND symbol for THIS EA + if(!PositionSelectByTicketSymbolAndMagic(position_ticket, _Symbol, (ulong)MagicNumber)) + { + ResetPositionTracking(); + return; + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(trade.Buy(LotSize, _Symbol, ask, 0, 0, "RSI Scalping Buy")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_BUY; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(trade.Sell(LotSize, _Symbol, bid, 0, 0, "RSI Scalping Sell")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_SELL; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + bool position_exists_before_close = PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + if(!position_exists_before_close) + { + ResetPositionTracking(); + return; + } + + // Close position using helper that verifies symbol AND magic number for THIS EA + if(ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber)) + { + ResetPositionTracking(); + } + else + { + // Keep tracking when close fails (e.g. market closed); retry on next bar. + if(!PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + ResetPositionTracking(); + } + } +} diff --git a/frontline/units-trailing/RSIScalpingBTCUSD-trailing/report.html b/frontline/units-trailing/RSIScalpingBTCUSD-trailing/report.html new file mode 100644 index 0000000000000000000000000000000000000000..b512b3d6580a876cd855a3c8dd54088db38de43c GIT binary patch literal 962604 zcmeFa&#!GqcHg%(NdN(li?U-i)!mORr6F0}B>Oc< zh+-4`(Gnx4lORSiXfzbTFycWbG30;2nI-ll78Dplpad|GAIMM>CrBVzN(N5qd%i5~ zy6>!7Yt_E{?W%KDle^DEP3`hWb_7t^P{n6CVd^zSdF z?|U#^O)pN5rpM{OUY|ak-k9E>KAPT5Kkwb?JL$jQNIw;y`}yg$^waPY@w+~rKA1jt z`1)^6`14}==Q92Mo%9plPG5h0`fB<+x9TeW_j~EuchXOOn!f8>>GR)8Kk4P^FHe7I zdg(8|kN^K5{T6)fY5LvY`s{n~HGUoK`Z)cxr|HTs|IX7-{?>2)Pv8GXZ~nWlzm$GQ zc?~~#{?u=#@BcXcya$In!vB3f{rkW&R{F2^)Boez$A|CxDE*t? z^E7?t)AT*Kim&3c`99{~hAW>Q+KBJ`G{uU)58waW=_@~ze#b}Y&+#Y!dgAr)5S9GX z{+-12X^O+Uht_|TKKWt#f3)qv^gDOH6Q4j_@%0DOw?Dg!&!zvqO)dC1{TqbeNRj{n112F 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 literal 0 HcmV?d00001 diff --git a/frontline/units-trailing/RSIScalpingBTCUSD-trailing/report.png b/frontline/units-trailing/RSIScalpingBTCUSD-trailing/report.png new file mode 100644 index 0000000000000000000000000000000000000000..52287c6f0d85f6e56ba2587bc37989176526fc82 GIT binary patch literal 8384 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 literal 0 HcmV?d00001 diff --git a/frontline/units-trailing/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization.set b/frontline/units-trailing/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization.set new file mode 100644 index 0000000..81b89e6 --- /dev/null +++ b/frontline/units-trailing/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization.set @@ -0,0 +1,28 @@ +; saved on 2026.02.07 +; Genetic Algorithm Optimization Parameters for RSIScalpingNVDA +; Recommended ranges for profitable parameter discovery +; +; Format: Parameter=Start||Step||Min||Max||Optimize(Y/N) +; +; NOTE: Current values show RSI_Overbought=19 and RSI_Oversold=50 which are unusual. +; This config uses STANDARD RSI ranges (60-85 overbought, 15-40 oversold). +; If your current values are intentional, use the alternative ranges in OPTIMIZATION_GUIDE.md +; +; === PHASE 1: CORE RSI PARAMETERS (Primary Optimization) === +RSI_Period=14||1||7||21||Y +RSI_Overbought=70.0||2.0||60.0||85.0||Y +RSI_Oversold=30.0||2.0||15.0||40.0||Y +RSI_Target_Buy=75.0||2.0||65.0||90.0||Y +RSI_Target_Sell=25.0||2.0||10.0||35.0||Y + +; === PHASE 2: RISK MANAGEMENT (Secondary Optimization) === +BarsToWait=2||1||1||8||Y +TimeFrame=16387||0||16385||16390||Y + +; === PHASE 3: POSITION SIZING (Optimize with caution) === +LotSize=50.0||5.0||10.0||100.0||Y + +; === FIXED PARAMETERS (Do Not Optimize) === +RSI_Applied_Price=1||0||1||1||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N diff --git a/frontline/units-trailing/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization_Alternative.set b/frontline/units-trailing/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization_Alternative.set new file mode 100644 index 0000000..3fca2be --- /dev/null +++ b/frontline/units-trailing/RSIScalpingNVDA-trailing/NVDA_Genetic_Optimization_Alternative.set @@ -0,0 +1,24 @@ +; saved on 2026.02.07 +; Alternative Genetic Algorithm Optimization - Respects Current Unusual RSI Values +; Use this if RSI_Overbought=19 and RSI_Oversold=50 are intentional +; +; Format: Parameter=Start||Step||Min||Max||Optimize(Y/N) +; +; === PHASE 1: CORE RSI PARAMETERS === +RSI_Period=14||1||7||21||Y +RSI_Overbought=19.0||1.0||15.0||30.0||Y +RSI_Oversold=50.0||2.0||40.0||60.0||Y +RSI_Target_Buy=71.0||2.0||65.0||80.0||Y +RSI_Target_Sell=70.0||2.0||60.0||75.0||Y + +; === PHASE 2: RISK MANAGEMENT === +BarsToWait=1||1||1||8||Y +TimeFrame=16387||0||16385||16390||Y + +; === PHASE 3: POSITION SIZING === +LotSize=50.0||5.0||10.0||100.0||Y + +; === FIXED PARAMETERS === +RSI_Applied_Price=1||0||1||1||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N diff --git a/frontline/units-trailing/RSIScalpingNVDA-trailing/OPTIMIZATION_GUIDE.md b/frontline/units-trailing/RSIScalpingNVDA-trailing/OPTIMIZATION_GUIDE.md new file mode 100644 index 0000000..d7d5ba6 --- /dev/null +++ b/frontline/units-trailing/RSIScalpingNVDA-trailing/OPTIMIZATION_GUIDE.md @@ -0,0 +1,134 @@ +# Genetic Algorithm Optimization Guide for RSIScalpingNVDA + +## Recommended Optimization Strategy + +### Phase 1: Core RSI Parameters (Primary Focus) +These parameters directly control entry/exit signals and should be optimized first. + +#### **RSI_Period** (Y - Optimize) +- **Current**: 14 +- **Recommended Range**: 7-21 +- **Step**: 1 +- **Rationale**: Standard RSI periods. Shorter = more sensitive, longer = smoother signals + +#### **RSI_Overbought** (Y - Optimize) +- **Current**: 19.0 (unusually low - verify if this is correct) +- **Standard Range**: 60.0-85.0 +- **Step**: 2.0 +- **Alternative Range** (if current is intentional): 15.0-30.0 +- **Rationale**: Level where RSI indicates overbought condition for sell entries + +#### **RSI_Oversold** (Y - Optimize) +- **Current**: 50.0 (unusually high - verify if this is correct) +- **Standard Range**: 15.0-40.0 +- **Step**: 2.0 +- **Alternative Range** (if current is intentional): 40.0-60.0 +- **Rationale**: Level where RSI indicates oversold condition for buy entries + +#### **RSI_Target_Buy** (Y - Optimize) +- **Current**: 71.0 +- **Recommended Range**: 65.0-90.0 +- **Step**: 2.0 +- **Rationale**: Exit target for long positions. Must be > RSI_Oversold + +#### **RSI_Target_Sell** (Y - Optimize) +- **Current**: 70.0 +- **Recommended Range**: 10.0-35.0 +- **Step**: 2.0 +- **Rationale**: Exit target for short positions. Must be < RSI_Overbought + +### Phase 2: Risk Management Parameters + +#### **BarsToWait** (Y - Optimize) +- **Current**: 1 +- **Recommended Range**: 1-8 +- **Step**: 1 +- **Rationale**: Bars to wait before closing when RSI goes against position. Higher = more patience + +#### **TimeFrame** (Y - Optimize) +- **Current**: 16387 (M5) +- **Recommended**: Test M1, M5, M15, H1 +- **Values**: + - M1 = 16385 + - M5 = 16387 + - M15 = 16388 + - H1 = 16390 +- **Rationale**: Different timeframes can significantly affect scalping performance + +### Phase 3: Position Sizing (Optimize with Caution) + +#### **LotSize** (Y - Optimize with Fixed Risk) +- **Current**: 50.0 +- **Recommended Range**: 10.0-100.0 +- **Step**: 5.0 +- **Note**: Consider using fixed risk % instead of fixed lot size +- **Rationale**: Position sizing affects profitability but also risk + +### Fixed Parameters (Do NOT Optimize) + +#### **RSI_Applied_Price** (N) +- **Value**: 1 (PRICE_CLOSE) +- **Rationale**: Standard choice, changing may not improve results significantly + +#### **MagicNumber** (N) +- **Value**: 12345 +- **Rationale**: Identifier only, no impact on performance + +#### **Slippage** (N) +- **Value**: 3 +- **Rationale**: Broker-specific, should match your actual slippage + +## Genetic Algorithm Settings + +### Recommended GA Settings: +- **Optimization Criterion**: Balance (or Custom: Profit Factor * Total Net Profit) +- **Population Size**: 50-100 +- **Mutation Probability**: 0.1-0.2 +- **Crossover Probability**: 0.7-0.9 +- **Optimization Passes**: 3-5 +- **Forward Testing**: Always use out-of-sample data + +### Optimization Phases: + +1. **Broad Search** (First Pass): + - Optimize: RSI_Period, RSI_Overbought, RSI_Oversold, RSI_Target_Buy, RSI_Target_Sell + - Fix: BarsToWait=1, TimeFrame=M5, LotSize=50 + +2. **Refinement** (Second Pass): + - Use best results from Phase 1 + - Optimize: BarsToWait, TimeFrame + - Narrow ranges around Phase 1 winners + +3. **Fine-Tuning** (Third Pass): + - Optimize: LotSize (if needed) + - Very narrow ranges around Phase 2 winners + +## Important Notes + +⚠️ **Current Parameter Anomaly**: +- RSI_Overbought=19 and RSI_Oversold=50 are unusual +- Standard RSI ranges: Overbought 70-80, Oversold 20-30 +- **Verify** if these are intentional or if there's a scaling issue + +✅ **Validation Checklist**: +- Ensure RSI_Target_Buy > RSI_Oversold +- Ensure RSI_Target_Sell < RSI_Overbought +- Test on sufficient historical data (at least 6-12 months) +- Use forward testing on unseen data +- Check for overfitting (too many parameters optimized) + +## Example .set File Structure + +``` +RSI_Period=14||1||7||21||Y +RSI_Overbought=70.0||2.0||60.0||85.0||Y +RSI_Oversold=30.0||2.0||15.0||40.0||Y +RSI_Target_Buy=75.0||2.0||65.0||90.0||Y +RSI_Target_Sell=25.0||2.0||10.0||35.0||Y +BarsToWait=2||1||1||8||Y +TimeFrame=16387||0||16385||16390||Y +LotSize=50.0||5.0||10.0||100.0||Y +RSI_Applied_Price=1||0||1||1||N +MagicNumber=12345||0||12345||12345||N +Slippage=3||0||3||3||N +``` diff --git a/frontline/units-trailing/RSIScalpingNVDA-trailing/main.mq5 b/frontline/units-trailing/RSIScalpingNVDA-trailing/main.mq5 new file mode 100644 index 0000000..5950bce --- /dev/null +++ b/frontline/units-trailing/RSIScalpingNVDA-trailing/main.mq5 @@ -0,0 +1,408 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_M15; // Timeframe for Analysis +input int RSI_Period = 8; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 36; // RSI Overbought Level +input double RSI_Oversold = 38; // RSI Oversold Level +input double RSI_Target_Buy = 90; // RSI Target for Buy Exit +input double RSI_Target_Sell = 70; // RSI Target for Sell Exit +input int BarsToWait = 5; // Bars to wait when RSI goes against position +input double LotSize = 50; // Lot Size +input int MagicNumber = 12345; // Magic Number +input int Slippage = 3; // Slippage in points + +input group "=== Trailing stop ===" +input bool UseTrailingStop = true; // move SL behind bid/ask while in profit +input double TrailingStopDistancePoints = 375.0; // SL distance from bid/ask (points) +input double TrailingActivationPoints = 75.0; // min profit before trailing (0 = same as distance) + +//--- Global variables +CTrade trade; +int rsi_handle; +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + return; + + const datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + const bool new_bar = (current_bar_time != last_bar_time); + const bool in_pos = position_open || PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + if(!in_pos && !new_bar) + return; + + if(!UpdateRSI()) + return; + + if(in_pos && UseTrailingStop) + ApplyTrailingStop(); + + if(!new_bar) + return; + + last_bar_time = current_bar_time; + + ResyncPositionFromMarket(); + CheckExistingPosition(); + + if(!position_open && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + CheckEntrySignals(); +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Trail SL behind favorable price (every tick when enabled) | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + if(TrailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const double trail_dist = TrailingStopDistancePoints * point; + const double activation_pts = (TrailingActivationPoints > 0.0) + ? TrailingActivationPoints + : TrailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + +//+------------------------------------------------------------------+ +//| Sync ticket/state if a position exists after restart | +//+------------------------------------------------------------------+ +void ResyncPositionFromMarket() +{ + if(position_open) + return; + ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t == 0 || !PositionSelectByTicket(t)) + return; + position_ticket = (int)t; + position_open = true; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number AND symbol for THIS EA + if(!PositionSelectByTicketSymbolAndMagic(position_ticket, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + return; + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(trade.Buy(LotSize, _Symbol, ask, 0, 0, "RSI Scalping Buy")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_BUY; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(trade.Sell(LotSize, _Symbol, bid, 0, 0, "RSI Scalping Sell")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_SELL; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + // Close position using helper that verifies symbol AND magic number for THIS EA + if(ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + } + else + { + // Position doesn't exist or wrong magic number - reset tracking + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + } +} diff --git a/frontline/units-trailing/RSIScalpingTSLA-trailing/main.mq5 b/frontline/units-trailing/RSIScalpingTSLA-trailing/main.mq5 new file mode 100644 index 0000000..1648b9a --- /dev/null +++ b/frontline/units-trailing/RSIScalpingTSLA-trailing/main.mq5 @@ -0,0 +1,408 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_H1; // Timeframe for Analysis +input int RSI_Period = 14; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 54; // RSI Overbought Level +input double RSI_Oversold = 73; // RSI Oversold Level +input double RSI_Target_Buy = 87; // RSI Target for Buy Exit +input double RSI_Target_Sell = 33; // RSI Target for Sell Exit +input int BarsToWait = 1; // Bars to wait when RSI goes against position +input double LotSize = 5; // Lot Size +input int MagicNumber = 125421321; // Magic Number +input int Slippage = 3; // Slippage in points + +input group "=== Trailing stop ===" +input bool UseTrailingStop = true; // move SL behind bid/ask while in profit +input double TrailingStopDistancePoints = 900.0; // SL distance from bid/ask (points) +input double TrailingActivationPoints = 950.0; // min profit before trailing (0 = same as distance) + +//--- Global variables +CTrade trade; +int rsi_handle; +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + return; + + const datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + const bool new_bar = (current_bar_time != last_bar_time); + const bool in_pos = position_open || PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + if(!in_pos && !new_bar) + return; + + if(!UpdateRSI()) + return; + + if(in_pos && UseTrailingStop) + ApplyTrailingStop(); + + if(!new_bar) + return; + + last_bar_time = current_bar_time; + + ResyncPositionFromMarket(); + CheckExistingPosition(); + + if(!position_open && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + CheckEntrySignals(); +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Trail SL behind favorable price (every tick when enabled) | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + if(TrailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const double trail_dist = TrailingStopDistancePoints * point; + const double activation_pts = (TrailingActivationPoints > 0.0) + ? TrailingActivationPoints + : TrailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + +//+------------------------------------------------------------------+ +//| Sync ticket/state if a position exists after restart | +//+------------------------------------------------------------------+ +void ResyncPositionFromMarket() +{ + if(position_open) + return; + ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t == 0 || !PositionSelectByTicket(t)) + return; + position_ticket = (int)t; + position_open = true; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number AND symbol for THIS EA + if(!PositionSelectByTicketSymbolAndMagic(position_ticket, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + return; + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(trade.Buy(LotSize, _Symbol, ask, 0, 0, "RSI Scalping Buy")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_BUY; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + // Verify no position exists for THIS EA (magic number) on THIS symbol before opening + if(PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + return; // Position already exists for this EA + } + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(trade.Sell(LotSize, _Symbol, bid, 0, 0, "RSI Scalping Sell")) + { + ulong new_ticket = trade.ResultOrder(); + if(new_ticket > 0) + { + // Verify position was opened for THIS EA (magic number) on THIS symbol + if(PositionSelectByTicketSymbolAndMagic(new_ticket, _Symbol, (ulong)MagicNumber)) + { + position_ticket = new_ticket; + position_open = true; + current_position_type = POSITION_TYPE_SELL; + } + else + { + Print("Error: Position opened but doesn't match EA magic number or symbol"); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + // Close position using helper that verifies symbol AND magic number for THIS EA + if(ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + } + else + { + // Position doesn't exist or wrong magic number - reset tracking + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + } +} diff --git a/frontline/units-trailing/RSIScalpingTSLA-trailing/report.html b/frontline/units-trailing/RSIScalpingTSLA-trailing/report.html new file mode 100644 index 0000000000000000000000000000000000000000..950f95baad48155ec775a3c377697b84a5632aca GIT binary patch literal 2231020 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%0AWjNV& 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�W*{nYrqbJ2L@n%Bqt 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 literal 0 HcmV?d00001 diff --git a/frontline/units-trailing/RSIScalpingTSLA-trailing/report.png b/frontline/units-trailing/RSIScalpingTSLA-trailing/report.png new file mode 100644 index 0000000000000000000000000000000000000000..5a26c1dc956e4f517c4b4a15ff98c82b1bd61b86 GIT binary patch literal 8829 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 L?~d~A$IkyBo(n?L literal 0 HcmV?d00001 diff --git a/frontline/units-trailing/RSIScalpingXAUUSD-trailing/123.set b/frontline/units-trailing/RSIScalpingXAUUSD-trailing/123.set new file mode 100644 index 0000000..0c7f7c1 --- /dev/null +++ b/frontline/units-trailing/RSIScalpingXAUUSD-trailing/123.set @@ -0,0 +1,34 @@ +; RSIScalpingXAUUSD-trailing — matches main.mq5 v1.06 default inputs +; saved on 2026.05.01 22:32:43 +; MT5 Strategy Tester: Inputs → Load +; +TimeFrame=16385||15||0||16385||N +RSI_Period=14||14||1||140||N +RSI_Applied_Price=1||1||0||7||N +RSI_Overbought=71.0||0||2||100||N +RSI_Oversold=57.0||0||2||100||N +UseEntrySlopeFilter=false||false||0||true||N +EntryMinSlopePerBar=1.0||1.0||0.100000||10.000000||N +RSI_Target_Buy=80.0||0||2||100||N +RSI_Target_Sell=57.0||0||2||100||N +BarsToWait=1||0||1||50||N +LotSize=0.1||0.1||0.010000||1.000000||N +MagicNumber=129102315||129102315||1||1291023150||N +Slippage=3||3||1||30||N +; === Reversal escape (intrabar, multi-signal) === +UseReversalEscape=true||false||0||true||N +ReversalEscapeTimeFrame=5||0||0||49153||N +ReversalATRPeriod=14||14||1||140||N +ReversalAdverseAtrMult=5.25||5.25||0.525000||52.500000||N +ReversalSignsRequired=1||2||1||20||N +ReversalRsiVelocity=16.0||16.0||1.600000||160.000000||N +ReversalBodyAtrMult=5.1||5.1||0.510000||51.000000||N +; === Trailing stop === +UseTrailingStop=true||false||0||true||N +TrailingStopDistancePoints=71.0||100||100||5000||Y +TrailingActivationPoints=41.0||100||100||5000||Y +; === Intrabar give-back (same bar reversals) === +UseGiveBackExit=true||false||0||true||N +GiveBackATRPeriod=14||14||1||140||N +GiveBackAtrMult=0.1||1.85||0.185000||18.500000||N +GiveBackRequireMfe=true||false||0||true||N diff --git a/frontline/units-trailing/RSIScalpingXAUUSD-trailing/main.mq5 b/frontline/units-trailing/RSIScalpingXAUUSD-trailing/main.mq5 new file mode 100644 index 0000000..96b6f2f --- /dev/null +++ b/frontline/units-trailing/RSIScalpingXAUUSD-trailing/main.mq5 @@ -0,0 +1,645 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.06" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_H1; // Timeframe for Analysis +input int RSI_Period = 14; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 71; // RSI Overbought Level +input double RSI_Oversold = 57; // RSI Oversold Level +input bool UseEntrySlopeFilter = false; // require RSI momentum on entry bars +input double EntryMinSlopePerBar = 1.0; // minimum RSI delta per bar for entry +input double RSI_Target_Buy = 80; // RSI Target for Buy Exit +input double RSI_Target_Sell = 57; // RSI Target for Sell Exit +input int BarsToWait = 1; // Bars to wait when RSI goes against position +input double LotSize = 0.1; // Lot Size +input int MagicNumber = 129102315; // Magic Number +input int Slippage = 3; // Slippage in points + +input group "=== Reversal escape (intrabar, multi-signal) ===" +input bool UseReversalEscape = true; // run while in position every tick (now uses ReversalEscapeTimeFrame) +input ENUM_TIMEFRAMES ReversalEscapeTimeFrame = PERIOD_M5; // ATR / RSI velocity / bar signs on this TF (not signal TF) +input int ReversalATRPeriod = 14; // ATR lookback on ReversalEscapeTimeFrame +input double ReversalAdverseAtrMult = 5.25; // close if price vs entry >= this * ATR +input int ReversalSignsRequired = 1; // how many independent signs must align +input double ReversalRsiVelocity = 16.0; // RSI points drop (long) / rise (short) vs prior buffer +input double ReversalBodyAtrMult = 5.1; // last closed bar body >= this * ATR counts as one sign + +input group "=== Trailing stop ===" +input bool UseTrailingStop = true; // move SL behind price while in profit +input double TrailingStopDistancePoints = 71.0; // SL distance from current bid/ask (points) +input double TrailingActivationPoints = 41.0; // min profit before trailing (0 = same as distance) + +input group "=== Intrabar give-back (same bar reversals) ===" +input bool UseGiveBackExit = true; // exit if price gives back vs best tick since entry +input int GiveBackATRPeriod = 14; // ATR period on signal timeframe (Wilder) +input double GiveBackAtrMult = 0.1; // close when retrace from peak/trough >= this * ATR +input bool GiveBackRequireMfe = true; // long: only after bid was above entry; short: ask below entry + +//--- Global variables +CTrade trade; +int rsi_handle; +int rsi_escape_handle = INVALID_HANDLE; // RSI on ReversalEscapeTimeFrame (may alias rsi_handle) +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; + +ulong g_giveback_track_ticket = 0; +double g_peak_bid_since_entry = 0.0; +double g_trough_ask_since_entry = 0.0; + +void ResetIntrabarGiveBackState(); +void TryGiveBackExit(); + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + if(ReversalEscapeTimeFrame == TimeFrame) + rsi_escape_handle = rsi_handle; + else + { + rsi_escape_handle = iRSI(_Symbol, ReversalEscapeTimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_escape_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_escape_handle != INVALID_HANDLE && rsi_escape_handle != rsi_handle) + IndicatorRelease(rsi_escape_handle); + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + return; + + const datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + const bool new_bar = (current_bar_time != last_bar_time); + const bool in_pos = position_open || PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + if(!in_pos && !new_bar) + return; + + if(!UpdateRSI()) + return; + + if(in_pos && UseReversalEscape) + TryReversalEscape(); + + if(in_pos && UseGiveBackExit) + TryGiveBackExit(); + + if(in_pos && UseTrailingStop) + ApplyTrailingStop(); + + if(!new_bar) + return; + + last_bar_time = current_bar_time; + + ResyncPositionFromMarket(); + CheckExistingPosition(); + + if(!position_open && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + CheckEntrySignals(); +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Wilder ATR in price units (signal timeframe) | +//+------------------------------------------------------------------+ +double ATRPriceOnTF(const int period) +{ + if(period < 1) + return 0.0; + MqlRates rates[]; + const int need = period + 2; + if(CopyRates(_Symbol, TimeFrame, 0, need, rates) < need) + return 0.0; + ArraySetAsSeries(rates, true); + double sum = 0.0; + for(int i = 1; i <= period; i++) + { + const double hl = rates[i].high - rates[i].low; + const double hc = MathAbs(rates[i].high - rates[i + 1].close); + const double lc = MathAbs(rates[i].low - rates[i + 1].close); + sum += MathMax(hl, MathMax(hc, lc)); + } + return sum / (double)period; +} + +//+------------------------------------------------------------------+ +//| Wilder ATR on arbitrary timeframe | +//+------------------------------------------------------------------+ +double WilderATRForTF(const ENUM_TIMEFRAMES tf, const int period) +{ + if(period < 1) + return 0.0; + MqlRates rates[]; + const int need = period + 2; + if(CopyRates(_Symbol, tf, 0, need, rates) < need) + return 0.0; + ArraySetAsSeries(rates, true); + double sum = 0.0; + for(int i = 1; i <= period; i++) + { + const double hl = rates[i].high - rates[i].low; + const double hc = MathAbs(rates[i].high - rates[i + 1].close); + const double lc = MathAbs(rates[i].low - rates[i + 1].close); + sum += MathMax(hl, MathMax(hc, lc)); + } + return sum / (double)period; +} + +//+------------------------------------------------------------------+ +//| Independent adverse signs (need ReversalSignsRequired to exit) | +//+------------------------------------------------------------------+ +int CountReversalEscapeSigns(const ENUM_POSITION_TYPE ptype, const double atr) +{ + if(atr <= 0.0) + return 0; + + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + int signs = 0; + + double rsi_esc[]; + ArraySetAsSeries(rsi_esc, true); + const bool ok_esc_rsi = (rsi_escape_handle != INVALID_HANDLE && + CopyBuffer(rsi_escape_handle, 0, 0, 2, rsi_esc) >= 2); + + if(ptype == POSITION_TYPE_BUY) + { + if(entry - bid >= ReversalAdverseAtrMult * atr) + signs++; + if(ok_esc_rsi && rsi_esc[1] - rsi_esc[0] >= ReversalRsiVelocity) + signs++; + } + else if(ptype == POSITION_TYPE_SELL) + { + if(ask - entry >= ReversalAdverseAtrMult * atr) + signs++; + if(ok_esc_rsi && rsi_esc[0] - rsi_esc[1] >= ReversalRsiVelocity) + signs++; + } + else + return 0; + + MqlRates r[]; + if(CopyRates(_Symbol, ReversalEscapeTimeFrame, 0, 4, r) >= 4) + { + ArraySetAsSeries(r, true); + const double body = MathAbs(r[1].close - r[1].open); + if(body >= ReversalBodyAtrMult * atr) + { + if(ptype == POSITION_TYPE_BUY && r[1].close < r[1].open) + signs++; + else if(ptype == POSITION_TYPE_SELL && r[1].close > r[1].open) + signs++; + } + if(ptype == POSITION_TYPE_BUY) + { + if(r[1].close < r[2].close && r[2].close < r[3].close) + signs++; + } + else + { + if(r[1].close > r[2].close && r[2].close > r[3].close) + signs++; + } + } + + return signs; +} + +//+------------------------------------------------------------------+ +//| Cut losers fast on violent reversals (evaluated every tick) | +//+------------------------------------------------------------------+ +void TryReversalEscape() +{ + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double atr = WilderATRForTF(ReversalEscapeTimeFrame, ReversalATRPeriod); + if(atr <= 0.0) + return; + + const int n = CountReversalEscapeSigns(ptype, atr); + if(n < ReversalSignsRequired) + return; + + ClosePosition(); + Print("RSIScalpingXAUUSD: reversal escape TF=", EnumToString(ReversalEscapeTimeFrame), + " signs=", n, " need=", ReversalSignsRequired, + " ATR=", DoubleToString(atr, (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS))); +} + +//+------------------------------------------------------------------+ +//| Reset give-back peak/trough tracking | +//+------------------------------------------------------------------+ +void ResetIntrabarGiveBackState() +{ + g_giveback_track_ticket = 0; + g_peak_bid_since_entry = 0.0; + g_trough_ask_since_entry = 0.0; +} + +//+------------------------------------------------------------------+ +//| Exit when intrabar price gives back sharply vs best since entry | +//+------------------------------------------------------------------+ +void TryGiveBackExit() +{ + if(!UseGiveBackExit || GiveBackAtrMult <= 0.0) + return; + + const ulong ticket = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(ticket == 0 || !PositionSelectByTicket(ticket)) + { + ResetIntrabarGiveBackState(); + return; + } + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + + if(g_giveback_track_ticket != ticket) + { + g_giveback_track_ticket = ticket; + if(ptype == POSITION_TYPE_BUY) + { + g_peak_bid_since_entry = bid; + g_trough_ask_since_entry = 0.0; + } + else + { + g_trough_ask_since_entry = ask; + g_peak_bid_since_entry = 0.0; + } + } + + const double atr = ATRPriceOnTF(GiveBackATRPeriod); + if(atr <= 0.0) + return; + + const double threshold = GiveBackAtrMult * atr; + + if(ptype == POSITION_TYPE_BUY) + { + if(bid > g_peak_bid_since_entry) + g_peak_bid_since_entry = bid; + if(GiveBackRequireMfe && g_peak_bid_since_entry <= entry) + return; + if(g_peak_bid_since_entry - bid >= threshold) + { + ClosePosition(); + Print("RSIScalpingXAUUSD: give-back exit BUY retrace=", + DoubleToString(g_peak_bid_since_entry - bid, digits), + " thr=", DoubleToString(threshold, digits)); + } + } + else if(ptype == POSITION_TYPE_SELL) + { + if(ask < g_trough_ask_since_entry) + g_trough_ask_since_entry = ask; + if(GiveBackRequireMfe && g_trough_ask_since_entry >= entry) + return; + if(ask - g_trough_ask_since_entry >= threshold) + { + ClosePosition(); + Print("RSIScalpingXAUUSD: give-back exit SELL retrace=", + DoubleToString(ask - g_trough_ask_since_entry, digits), + " thr=", DoubleToString(threshold, digits)); + } + } +} + +//+------------------------------------------------------------------+ +//| Trail SL behind favorable price (every tick when enabled) | +//+------------------------------------------------------------------+ +void ApplyTrailingStop() +{ + if(TrailingStopDistancePoints <= 0.0) + return; + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + if(point <= 0.0) + return; + + const int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + const double trail_dist = TrailingStopDistancePoints * point; + const double activation_pts = (TrailingActivationPoints > 0.0) + ? TrailingActivationPoints + : TrailingStopDistancePoints; + const double activation = activation_pts * point; + const long stops_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); + const double min_dist = (double)stops_level * point; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double cur_sl = PositionGetDouble(POSITION_SL); + const double cur_tp = PositionGetDouble(POSITION_TP); + + if(ptype == POSITION_TYPE_BUY) + { + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + if(bid - entry <= activation) + return; + + double new_sl = NormalizeDouble(bid - trail_dist, digits); + if(min_dist > 0.0 && bid - new_sl < min_dist) + new_sl = NormalizeDouble(bid - min_dist, digits); + + if(new_sl >= bid || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl <= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } + else if(ptype == POSITION_TYPE_SELL) + { + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(entry - ask <= activation) + return; + + double new_sl = NormalizeDouble(ask + trail_dist, digits); + if(min_dist > 0.0 && new_sl - ask < min_dist) + new_sl = NormalizeDouble(ask + min_dist, digits); + + if(new_sl <= ask || new_sl <= 0.0) + return; + if(cur_sl > 0.0 && new_sl >= cur_sl) + return; + + ModifyPositionByMagic(trade, _Symbol, (ulong)MagicNumber, new_sl, cur_tp); + } +} + +void ResyncPositionFromMarket() +{ + if(position_open) + return; + ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t == 0 || !PositionSelectByTicket(t)) + return; + position_ticket = (int)t; + position_open = true; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number + if(!PositionSelectByTicketAndMagic(position_ticket, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + return; + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + const double upSlope1 = rsi_prev - rsi_two_bars_ago; // older->prev + const double upSlope2 = rsi_current - rsi_prev; // prev->current + const double dnSlope1 = rsi_two_bars_ago - rsi_prev; // older->prev + const double dnSlope2 = rsi_prev - rsi_current; // prev->current + const bool buySlopeOk = (!UseEntrySlopeFilter) || (upSlope1 >= EntryMinSlopePerBar && upSlope2 >= EntryMinSlopePerBar); + const bool sellSlopeOk = (!UseEntrySlopeFilter) || (dnSlope1 >= EntryMinSlopePerBar && dnSlope2 >= EntryMinSlopePerBar); + + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold && buySlopeOk) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought && sellSlopeOk) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(trade.Buy(LotSize, _Symbol, ask, 0, 0, "RSI Scalping Buy")) + { + const ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t > 0 && PositionSelectByTicketSymbolAndMagic(t, _Symbol, (ulong)MagicNumber)) + { + position_ticket = (int)t; + position_open = true; + current_position_type = POSITION_TYPE_BUY; + } + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(trade.Sell(LotSize, _Symbol, bid, 0, 0, "RSI Scalping Sell")) + { + const ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t > 0 && PositionSelectByTicketSymbolAndMagic(t, _Symbol, (ulong)MagicNumber)) + { + position_ticket = (int)t; + position_open = true; + current_position_type = POSITION_TYPE_SELL; + } + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + if(ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + ResetIntrabarGiveBackState(); + return; + } + if(!PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + ResetIntrabarGiveBackState(); + return; + } + Print("RSIScalpingXAUUSD: close failed (will retry on next bar). retcode=", + trade.ResultRetcode(), " lastError=", GetLastError()); +} diff --git a/frontline/units-trailing/RSIScalpingXAUUSD-trailing/report.html b/frontline/units-trailing/RSIScalpingXAUUSD-trailing/report.html new file mode 100644 index 0000000000000000000000000000000000000000..203dcf4c2f35164885b9198c4af8936996e6cca7 GIT binary patch literal 5649556 zcmeFa-_NgCdfxTq1SBL>q#mQXE>#n$<9NUC_vd76VK?1rp_$BNkCTZSI`PanwiVYi z^4QawKmdW@Ac{hS5FBse))R(-S9i&&-!%v;qukX z&;PXrKVD0J-KPKjLHZruPe1>y<(Jd{=2q>}KYx_|-4D|5{9gK1-%tPj_tWq6=JL-j z|IG5WKl*k2|F5J!1wZ#*`m?|P#jnB7@#oR5Pt))AUivq`^4sry_Amd{|KWH4=6C<4 zZ+$KO8Rfsj@4Wt3e>MI3Pt))B%H@gh|K3P{{`=|gAE&?Y)Sq73jwk$H`lpZ6|Hr@k z^z!R|l>W|N^IrOIK2N^}{}w-s|299z`lsRFe12&oe&y#$EB<--^?yD6%+IDj<45Vo zi~r@HOuW8wQ6>Lw|6=0$Uee*iOY47>{>x9&|3}+iS$_M@uf%@=UGej;EWi21Q+zf3 z^C`99)AV-`em5!mgYKTYm=b@_!0N4|gX?$3Ymd%SuN5B@2cBdK`)lwV)|)bi_zHUIvn61!i& z`2F?EpYc5P@1_=h|MG_a_NAS0^M~mvzMA@nAEtNr=bn2@&@%YU# z-}Uv^k~aJkb6+npQN7$4fGAKr@z*guNvoA*CHu#R{;&740;E8}k^Z(-Gk?C*`>W7l6wT6~(^_2Kfb zUdAanDfU?Pi|NfkPW8Q%QLlL$M(~?71Kb6l0Y1CTZ!ph+N|@Q)b~kRnlDz)WH~;Y2 zmTLwiNw0j7CB2e%M?Oez5cWG>xr|cigSi9pO4=pC>H>WaW{JJcd7#~&`Msa|E8A+< zV|oE4{`p`2Z+`8)Z~k|Gu%#NvgI-C0;Rj|l{mqM^%x}E^^!;sB!LGr>)$pc$cXRXk zbJoBAJO9c1Wgo;HlgFm}FEjo5>EHW%fAH@<`@gDtbM9Kaxt!Db;7@ng&%U|*pVj_Z zpXi*@s6%?LlHBu&Z(Rb!O#5$s_aA?~*44RHm>nT!++XHNhnL>AmzgEs6uEkjv)!Nj zjlccPzw_gt`Q?YQxJ_>dc7^bk*ki~;-jx64cmAKh{P%z7*M8~uzy6)?J+zg()VgzO zAJ*?L`%Oms{`NP&_Kk8CG$e=W5iy?wbu`{FLfLtFi2y-&9n zuX2xOmlVgoGoI?T#9?PXO{=%;;lBS$dOA`&rYGEgN$=So{`m1d)RXi!;howi3ZR1b z?n(N8=vCqVm;auj)nC?o_TZ+{J;LnH>&sg z^SlWC=&g~GJfuhZcmCr)@&4hxzx(5dj=spV&@w&$d05N-$FINnTmR^He(HPw-j8Zq zXN|q+5zm*t5wnIK=k@>f9~|DRf9~~d;kc_)wTDpoW54$CZ~phc^_Z5Sm(V-C4{6sw z^~+!T#>;+7Fv4JFaK7}~$4h^W9?qH>T<_z)%pT^gR6qTVRO4K$!url|j{kZZnJ`K* zH^P{ud-R9U`b(*uuPlG~;~#zV&-}(i+nZ-LP&?Omy^PiCFQvrwTPamVhJ*S9WE-_@ zwECYOXZ*h~-23xSfAC*@^Z)qW|NUR7rIX)y%)>Bm!OR8je%Wsl`+>())RgN*)jIx3 zb#<9{>l44c#PZAR^N{BJ+;9A+zx(hv;GE_z$Cpn2SDyX9-$dKckAC;}{-f`_a_L1M z(@OTqs2;;?>-?qk%0K-2doQ8YR^NxU!tSyL`swr}SOe|T->p&R`WyabzF$B08~@yQ z|Hgx}%zaw-9lwOR4%QO+?ZO)DgKz%BfB$D5G45k6ioOs$m`L52JRUOYBSm|ByRG-@ zNzxqoF`fsrHT3OvnzQx$wG&nL(DwfN{cBa^NW)%P{_}sE@5RIW8CLTmOF=rRMx2N6 zXDjntP}@q2`&SZW_^rQ0_2shu(O>z6Uwu4ltlOa#>H=RjXSVRm<9xVe4zC+6AK%em z`^GEFKluIs`QJoO_AjJWSgm97JeTX&^B2UQKYR4@l5Mv4PygOS+iN)-?<{`rucWv3 z_VNzc>FL;S!M~OIb*lQm{SJC}JUzyM&(a$8(?`4!*ek#u4YE7*^!R;mzl3#u*?#l~ zk8Qv8h9I$dB|XvU@??1zF=|?{J#7vsi*(V)VJd<72ImG_Uu3D z5$@*jerhkXM_AtfW551W-~0Pt|G(d>KgFF_bFZg$AZEB#Cd-2?ne)G2*PplO%#y_-`e$O|c-Szd|`@rC8 z+?QA0z{md@E0zE3ci(wdj-+=_2t70fxI3yMeR%(iBm~(8GK@c!Rx$gu>Uur>_2({6 zv!)GqJ$QHhara4|?^%(duj=6Wmhb%I%dD<^Mt?O@p4&aIQvL6M{Z-tR^tg8X_P_SK zzxuG>!J1v6eShx{9`<`@mHzS9fAN+Y}pZrVlpJpHOXm&x;>7t}fnQga2FiUn%`BXmi95x=3ft^y-ON% z9fnm2R+9H=${g(OQ(dEtTYjO1U-h1N`}EMf%O|hpnZ5foji3*4FWY}G+{>zPAJ389 z>r+G1?Ag7jy+U;cd+BR^HSfUl(H`5qK0P$=mhMISv3k)wSwHRLIkJ0wYG|6hyB9MK zO`BC?KHB5E*VaSxZs}f}#O5q&{ok@ZWXPP`$8%)&`qa=gdv-6M&l-ErFU*7AT;`lP z`}EMfOSf!2b3P^a;!YIZ8)I}XTS*^ZBRaBweR^n~J^L56y01HUvnIjUUynWh`V`T` zOK)uJ;G5)LpMzP2=_5L>gS~oap8Yx)r`zD*T={Tq^@}>v@~zZ8_Q($QDx!&(T5auM zj5$c4!IE_?_l>ss{`&bH?9)T@?AO7_n&Dvb&g)4_Z`%(?8{LewdiZ{?h0aE&6Gc&XLa4#uqN#?dFw zpJS1yPY=zrX9r`B;TeM?Bv~ZxQ$!PQ>0q|suHd+DZhdW5HRd|F{Ub)FSXis495Bv>tJhd0SQmpN=;b4@q^w2!7JNWGvPHNTieyo47pM?BI`!|0DBSN3;Q$!PQ>0q|s zs?xzNlVvOC?U8+YXrBE$*h)U~7k1(}*iu9jFTGLQCqH%!<{N9ZA9oOyt(@J#mL8gC z&kn|&wf2tiZI~Yl_~`0^ZmY7aad(7~!alx7?%Bbt{I*w3H96MU*`-gBejSYV+jW(= z|F7(4=AA|R^w2!}bTGaghI2_svh15!B2;D7D58m%-q>yoUfYkFE1gZ^i)&>oXLN9l z9-3#*4#q0MuB+UIsLCR7pCX!g>5Z)&%vFH3JGcvwWRa&&56!b@2XmER?UwCABv~Zx zQ$!PQ=V0DWX`e5|7q`k*&N>Er_0T-~b#Sia&zU7>UN4f(-#;PeS!;OUV6P&Yc&XsF zV=&wAnMKckzHsGf>!Eq}>|m_(?cJnZRYlgQNfwFw6w$=nIT$tUAZpE`^LLGXee#%D zGE6)u`*&kn{c+MaVALL^yqfKL%ky!6Jl4#xc)o-z0kAjtwxuO6Cb zzYgYpw_THU2$5uwxbJ(Nns`eGqy6?xUxxrm*2>e?L-Xv}!8lF2&K9rFxgy+@MdCh1 zH1U=W#=6L^U^oOxvhv-9R-L%!*|USW|8MOFA41%eMF;y7(ZpLi812vZLS6sv${|RS zh3}1c^w2zeb};L{nb;`a5l$Dwsy^3h!Egj4+AlnX}|8yaF`t;B|dv-9N&q}h6VUjG|i;Y>d zrHCfp#=-kbRV8+la*~x#D3$GD?Zz=cl2xOJ=Gmu%%ja9)*ZXe*KZdBus!>D}FCDX8 zMF-o@>@|D$+Wz1vK$2CXhvwO{gK-iEi91N=bN=P~#~%9>BFQ3gpCX!gso>TQ<~lyt zgI;&={HF`a)2D~#*{_3h&6%}oI)zBGK-{Z{Cf?4$`Hqn_*|>jJbqbJVktZv3EIl;O zo*m2^{`0xQuO_G7SMh!dkz}pJ^Q;7O(fbwA#9KO;H`d#I^885_dHVFwJbQL9pO5Qc z%)IV@Ur!;Dtdh8;h$i0B!B__)QRn>m`Yd|>(}m>e(?j#@*}+)#tt;T`yd%_Pk+@G0 zO}wRpnWe9@M%Y;gFcktT{zahN7uXY{bIZT>G;nGM0@wJ{RKl1 zk8txlXI^xH^;JjByuFLpdfEHk3Z^ltv$BgVMKsagU7Y9AxgMZ=1DRWacuk%)a)wFf zwkDc+so~a%7I(%-^ZLjGrn?{+rB4w}v}YIN`EosyCLZD5ERMxKO*He?F7`2vQKfa0 z@*K}wu8H>UVx+OUrU(6Ygj?WO7u%X>=IvaJRlFzJ0@E0kT3$so(SBWgo5o?!4VEAt zCEfCBqM5gG@!@iAnEAThGlOc`&KY<8YZTE$`*bm%4?7b1+Xb2Xi)4}SMM$@5G||jU z4Yyktm+iOGIS`#c-KtSU6Ybf>zHiQec!YF|%zc_@<}F?9%hnt3}H=QG5}D%Wp?m+i^>4%lIQ@#p8-FD6l}G3*mQnrP21#`F1R z)DhCHmAS2nW?s5u+Zi?QQMS`L^vv_8TO^9H*j7Xn?b*e+tz_-7ubo2#@d)V_nfo-+ z%v-vc?a#aa*O}tIF55Y4x|MGWw-nJt`**Qb)q+`ClyoaIw=~hrOLuHN7Q@AO3TsA< zy5h2(bGz79L=)}V#XNm#^-^$glyobf$h9=l%u9D{?PA}FVla)7Ze^m@O(&XYzb?j{ z3jKE8V^XuPDCw406V1Gxi*x(!ohHU;Xrev4n04aT8;jXjlyr+#w~yVIC|$F) zi&-_it_bcwS&0gOnsjUIp4q3#Lw)?L=}lW4d+>z$43Fx&QJYx4o%7DXe2Qr1rBd7a zn03S0SFrM}+r+(WrzSeGkG+~`rq{>g_CDql`g~lIagBMd96g&?5zV~xM++a@cUxdQ zu1UDY_pz;sW;%k8trQQ`Yf`T9eQYVBnYZ!r@p2}@cgqxr&YyABD58m8cX7*`^UCM5 zZb}642pLz6CYpI`7bBguXVvppaIHjbMKsZ#UCgs=YaVj#j+fgI85f!RG||jkx|rYh zu$k_vGOjUaS0w6FL=)}V#XQC1AzqVjjk<~=bDt)fc}o|2E4X%53D?Lj_9>!?_UvLj zpS|wK34xk)Yit+$G||l4xj3K9vS-x0s(fo)7kd@aMEiAdem;9$ysOH#Ms~4R6V1H6 zi>+#K^vp5RtxVKXL=)}V#XNuM>9?b#Tc~sKoc7YpTe_I-_pFj?(yg(3W}haS>2)7J zYg+q(bs+j=R8-rQ0=ue&YvdW2PZ7<$rH|QuyPkSqm2ZvhW1l9P=?FevPqd--p?nK- z{p~(^{l%Z3>yC)BXR{R1%uA)VtNo~HKkjjfP{UQDiDo*2kL^18eO1ae{&;LDqM5h$ zvHg`#__(HqYjmQvBAV!R7r))`tBLHT_;NqH$YwTII zPZQ1bx{rHU9pi=~e80!4_}N!gagE$}`xMd4Tl$!HPI-J>lX8ttbmq|*XL;;zkfZ00 za88jk6rU#jx)}T3_Bl)3xp!X*GGp4|Q$!QJJ{Gs1Q}g+_3e4GNIgaFf>rj<%jXnSJ zX`-2z8g83#;iQ`H7Oq28!Zq$#>{Ub)?bpSq-tx_-4^`>b$S(G3qM5gJF_~Jm4j7AL zDJ1;Oo#5*L^E&cVy^4$+O1=N zbc;lNifE!eyV#$EL`b(*=8w%n+PRotH}TA`5cMiDs*Cx2o|}74X^vLDnRDJo zzB0Ep(acM&wyWJ@`@J{Xo&uy>HHv7W{f@<~O?y419M&4@6eivBYNDC9cCqL7hf|Pr zi$rZjG|`@2jA}i54TvwnMyTCl&+XGhGjHi)p60MCc}@Xpw@B2dh$h;zi;-^m#^MO~ zZ;`oA6V1G(i!%m9sr9eDNy5-eGGjHSK^QDr9_rTo+rXwNS8t)W0XLb^rfK20?9mM-?) z;R&WO(k2)7J zYx)ILJ|TBjth*s_W}+tH8uOl}8bvho(jVKMO+@>#0z}`;8q7S;D%(T9f@q9<%d3bc zdfmluH~iw-O5C15f_RjCi_C3JH1pCmEnIBRAi*?7zLkkuBb6rFvx`x6i&d{Z|B8}t z-K2NhqlsqT(#2@MUH1VO$H=!x)K)|j?b*ewq_z`H^zG%FIqxd!CZ&CFv89P-UTU@V zSjF_F| ziT3MaJ|B8zYetPTS0H1krct;S-c&ab7vP`Bb^I(xcRr-&xnql@$NVJ!Ak zZ(&tYzL_(+xK0zzywqx27vm{B>w1jEv!`1m>QzJ&?bpTFJpys-HWLt^Ki$gAeVSWX`-38cClwheVh8`vYk5X7%`(RiQ0;2qCLBqJ56>*eH$j-$~#S# zCYpKaj;&|Z-rd97An8^n`nZ0%cNb%IZ0$7NhDo=`+}5OT7h?@%Go8J5E04wK*K9>J z(SBW=_rvW9%-b;OmRA$ayxmyL_T&AvT^u9b@+zW<_UvNcx4Ez`j*@Qi+w=A<-I{qD z7eBdFecx9DP@BARH=E`I)06YABA(`&fT_d24y+o_Ap68MRLlO|)kh^Z7XY0{8phSP+ks zZuvCP%-gvbD|+-oc}36Nm9jm#XFdc;x4epIqW!u!KcBtRbO@7fc{S0@OV?~W7PI}B zQRv-K^vp5REw3V)XwNRjPLpSE@en56LXD3{6V1G(i`jnr=B-1JbSo3J6wyR`b}_%| zlWWA)>?=yTg*_U~NG(k?^Oi2g?xE+4Ylo`Zt&#T~P_^XIL^Hkas86%sShzS&!sXLMGjHSKo6EgD z7?BuHMWa=nrPPZQ0&rHgSBrl$(?6d>IqQJ*53XwNRjy5Fh zlksZi?Oe>2)7JyXVI4+KRp7@-)qN@z<+~-@ECa?+=&vFSmSua`~qZmQT}7-(O4r z`~CEHoYl(rZezZI=ke_spQ{qCad#%XifHETe4N{F?;oCnTA`_W|N_e><^su}>4tyrqlTeyfriOlLlu_##nD5lysT7v~z&HG{u@ zmIdN-r&}v?uO^y#I~VhN2)J8YpN9a`80nT*5lysb7xOzW)=g6&9wpt%Uj?x=(ac-A z*mo)(Ok<>5*n{z`F*MPhU5u(*`veS#M@hGEs?Vc|X5P}ptfaPjq1&{Qiji)SD88kq zXD6Cyzb?)Pt#e+QXwPFYp3hz}fOwR2i_C3JH1n2YF_~Hwm|z+s-O5BQ zMKsZ#U5t#{KF0>)QPM5mEN^R~nYVN?(=BV{xlQx1`&LiazMMF6Jsxj1wQsf2Ot1U6 z)v2a(R!!x_KAE|th-Ti}$DZmftRBjC&RbVYrnV-UY2Q9(HMLzQ02Tby zNA|H#5zV|*YTJYh8Kp1pz|5m;r}pu)I(7 z%&E(E&bTgKiQ0;2qCLBqHzC;Pn&4wU@v&X((?l~bwc2(p=D95UodwbP(=E8ztB5Ar zuZwZI7_%>ri=(7lUQIOfmM-@09^M8?xAKXI$L${W>|)Noat3m}3iCEZ{T6#}pCyTe5jAxR$+1m$@|6Z z+S^@Hp?o`M%{0jzmBx=bSzao&b-qQScG|HElW+MHd8mt9S8ws#MD|`9dhR&+7Vn@N z>#J*P^%j|WQtDlpd<#TvMMiZo??S-MT6)}pi=$L;c{S0@+l|F+zprPGQN86=L=)|I zWt`7nuJwl3vydqHmRA$ayrqkI=G0mR-lo}AjOwj?;?z<^6Ybf>AYSHo*D8JXVe&09 zw>8nsTf5jki3b^SlWmQhXy&ipTAFC)EnSQqZ_iy! z`ylBSPZ-;ZXrev4n8fXM@jgttm6=ciyCfcWq*XOf)DG-m4Zq;a_nYVN?=U4WA@gYFE zMWQ}MG|`@2%)L>oQVEsw5vsSy+^30V-qOXs-BB=|Kiyi1+GCX_+OLa|#3Bjt^xF~A zEim_LqM5gIG0v!Yna+PUkwkrpXrev4m}e8MQ(Ne_Bh+q@xla?#yrqlLe$RJa4gu1w zm8h+VCfc)$v0}(4jPq%>@(s+lG#x^uTV(FjL^Cfn+^&wgY`;}Oik>+}x|L5DTZ(9+ zy}Q_6F@SiKbc@VwO*HeCF2=eT-x;^6YL7wEEmoG>ifE$!x|m<1vd?VcmVhYfmRA$a zyq$|#wPIH)foY6%%d3bc+Ovz9!CQ4oARZ;%%2gkhCYpIm7n7-HERKrvT|zjUt+8&n{-3 znfI8k--3Axk#3Q>PZQ0&rHk2qYh8~!Fy~LVN}`q`nrQzn=2)ETFv~YE?-!p!q+2C( zOB2n!)Ns4~Vzi&NXV_h_cA8EBPA1kUqKWqF;wOnY_7;(AVLhnE;s~`{WbV^MGjHi) z)}DFhSM#4tBvGFtnrP21F25(2Z+$G^z;!H+a59n1eVSZ-^OnjC2ck zHG34%M0<8I_ZB_Gf8Zg~~aMEi9y_9J}Ndgn0dmRA$a zyrqjVf3)wXxlJqQ80i*zG>;;hXwNS8-j{d|lWx778xvc)m`roZaXsreSEXB{-lc~5 zRc2~w@=zbQ{W`?@gq~WTb5;G;n0F@DD59CS_A%y>R!V)Ys@@vk$F?S#>Gkor2Ol%f zu~*0EstT@=ee6?2GjHi*w%@M&I0s3%^3A4}BAV!R7q|S%3r8OBor&i#^;<9J*2I=B zM&*Z{aN)a&^WQAbx7?@5s4m9&hxKOpJPRw|K<+kyc!bl5VD8mKGcPsVcDE_F-&zNP zX^e!+tB5Ar?^w*|^Yz;iPA9G|wl&er+qigtIT68cepvHIxOo24i8YF7qJ6rU&*wXj z3gQv!w`w%e%v-t`OzkR6FrB}CYb9zcqKWqGVxECnXI~hd%QtYHQAeoXB6FW6nt7?= zb~Ea={kVHbr_^xq{PkNkifE!eyV!Sz2gD=PZ;`oA6V1Gxi*tSadZOc6&y2GZWjonp ze|vdrdFP&=A9L3MM7@e=qW!v<&-dhu+t%_*>P51^?@i*f&H+0MCLY|lh2Cn`T566v+?B9yLICk7=@yy8 z%Q_wE*TuftGcb*jZt--YeMUqR?RhK)@$$~c`|Ei?JW9Gn=C&r9dCRewO!Mt6*X}mm zr8!uXbjzoRCfdJ?ts7oIJVNaj=O<)tX`-38cClxbgmai>JLgTeK-5-56Ybf>*c-L) zhJcIXq+32sH1pCO+ooF>VKKk5(=D9YE897%i@l0yqW!v-OAsGuoTfmdv-Ca_3}>fwNvFF9wpt%UlXu2(acNNZ0%y6 zQ_KEUOk<>5`IMTah$h;zi&<^B*7;mZw{F6uTQ_MgihT)76V1G(i@74O-q~GRBgII! zNOaD1@!@j*#dr4>h(}1bYBcH5#cTWRue^Zi{OMMWBARHQV=X&MtvJ1-CCL3nrP-NU5tGdyT$=7o&y}Q}^3ryV$3RW?pKwwTn>$;K``r z6o_!uwU~jqKWqGVpIs=E=2e@&%s_K3*HfGx5(V5iDq7ExV4MX{<0qL{(WIE zjgfBQJf24pO|*9x+j%UAM@hHH+}1=hZ|P!It=PMVyCCTnYRWNIS&C?)J-e87K6w;Y zGwL|$mQNGSyrqkIZZjrgIiDur~#h(4*Ly&YU6Mfu?@t$4Gy-}-| z!p>rp+AW?be{7{sOBW-ZvwI;hjZwRWv+*89bidrMi?QPKoqsumNw>V3Xy)x)%=YJR zTjX^?*`AzHAA+P?UPUy~-d*gQeMPC=B6C|4&AfEYb{X~Ya`OY~!0j_x7>nnx-KtSU z6YbN*d_L3+`(|Ge(ybazH1n1&#wy9~h2Y}((=8J9DWZw?>|)lYdDg`d(k(LgX`-38 zbFueiC2DHtKbZ)kUPUy~eqEfO&%WK|7$V&&nOmA@<}F>!uM*ik^D#iWMWQ}MG|`@2 z%)379I_hJHbc@V=nrP-NUCjHatr`c6#Wg1rM?GyyranzH)9XHdw!F7|lzu#h`f+)h zh~TeR(~9Wb^t*kyyuW<8`KJ$-PnS2-pTKMqRi(J6^|kcB>l1oveU4T2TVtL_ ztx-fXe+<#5i6(zMhN%5@h+~j^3+FUF-^DIdG% z_GzM-ms)L`Qs!dUFpL^E&aV(dBi zssK)jd)dx;duFdDn(1{Px1Uq<3CsHbYqwILsxq!|=hR+BH1pCQ+m6P${q~8|Q;>wq ztB59g-Nmiv)OjEpYJXhsgBhRSOui1)dqCLA9`zoHB0?t+0*2sHJ zJe_E3qM5gJF`3${q;r^b%cqDY+Ovy&b;G+f5=Xdui|b;aCYpIm7o+{1x6GtA4%TrC)712a{cCqgS4~R#o-J*+qnrP;w zYqqPSM*C3{k95mg7lY~i=~j&*nrOc+CUJW|9K<7>Oht|jgrZMs@61C?in&|bhxV?*U z)0Afwh1qxcX3lx4oIRUQ6V1HTYU`CTzK3Avb8vBtd<#9YM-ff5XBYGNthx^nkCJa? z=9VU!c{>;Lz7l&y0H!hWEw3V)XumGz^Px|+XVg*hEw3h;d21KjwLEZfO};hmx;PU( z7;m{I+OvyUb!#O#AYPMgjhtvApB_2gV*BlseVe%696kW8|^er-&xn^H}VwH-w9$q+2&>wTQ9Ua)D-Ex?|gPi|xOiR{n~yrHN)*pqMFR^?mc``Fe*Gws{Qyt&8YEUrnnM$SUW+}5OT7kf@b z?5gsu(OqmSqKWqGVy^o=v#*+LYit+$G||jkj>W76x9|JFm-NbZ&RB(sbumtAVvS)b zqKWqGVpbe_#^MO|TV(FjL^Chlv0W7=+K&nc>>1lVGwxF>+c~R?y^3g}{kj-?Xuj%s zoHF(kA9*bHYNDB!T5auO%q8sI(S6D^W7Kc)i?+5RnrP21<{4va-4EhX>bLS4V@ngw zyq$|tN9#FV38pd9Ew3V)XumGb&u4vi8^oieTV72x^VTl5zc2=(^Pf({8iPb_MKsYK zU5wqO*V13uTeNG%L45vnt4(#{X-SoSCxV*o7yu7h|a`~qZmQR;A)1Sbd z1k^L&i!InkXwNS8R{9*n zY_rjr}zQ5RZ~>c{S0@Te{e{;|-=U(k-5cu-|e`v}YHSIA>q^ zev9%Akc^HRgD&O_vphwEZ{$M_f|-NL-eliF*dJ-ZmsXP=3Oi=$L; zk-4pjX5QMx_KE-%m@(3=O!RR{N6#)sy5+g0=@cg2;z>4JlYU*yti!GWI0Z?!@O2Z< zc>ztdUl;S6CZ4a)pTeYDUQIOfHe>OV%NZB%D(Ms;-KtSU6YbN*>+^YP=T9Nhtr|@< z^VTl*+-!OZkZzSkbMC_m^O6wLA5FAp7js5!B{^6_MM$^E+^30VUcMvSrCV%2?|!iB z@lI9g)~LIOHJWIq*L~dfJjD8hzVWyw;TrQiM2#Yvd21hgM&omUe5)in?`VvZc(}jS zI>~kpk#CW?Pm_LK%=TNE>^`MF^H*<`L@h-$(d%Pz%TrBwKI}0frMBnP=Mec;jV79T zyRn#eYJ0xia}JVkc@@z_dv-ArP5aJm^xF}tx9DP@CYpIm7jtFrnP1Icy+xuvMKsZ# zU5tAWd@hcXZ#_v#o<|eSyrqkI^Ml95^WVKi7yA^^M0<8IcEo+NubOOYU^@TVME1)*MKsZ#UF`cl1c*mT zx5oWG1hQDnA9;7HwJrwJ80nT*k#Swjn_E4^qoi9m>D?YV-MYD?bM|>!xHv|-Tf3P1-PSz;_*Otox-~x2 z$DSI$?&D`oZGx2&b+^RYh7GZsfkxN0=f z%v-t`)k;|R+H2$a6D|_|#EjXZ{r-;VPM1nrPR)}&iwyV$3RW?s5uYZvp3v9+!T)0%v1D~Ij-Y{4`}y5&_w6YbZ<`5txaCIk?Vl5Tl5(ac-An2DublXnxKehW!QzM72Nw+d{OB2n!wTqGHSQ+*Gb!qd}Z{;&CmLi&H&o1T}V>{i#UCrg2 zsgsbAXVkoj+)n&7^HQsA*TuY5yR0I;R>^al`sT8on(4UfVy_~aXkRYI9>i#-R1c%Gf6U7CfJ?VM>{ ze3z(C5lysb7cta?L;)$&p z^)5`h<<&$pZ|CCNerrW=NcmTcbjz!VCfd7;QQKm>I7+%j=C&r9c}o{#-@(^2$4Ix3 z*LxJvM0<8IpU++w@20NZD(7FBxuuC_-qOXW1Gm4Wj%>npZ|Pz(wN7(jeib9#%0w+iG|}E&?77W$A12)*b6XS5yrqj#wPK&< zfQw_KTlr>rt0q+w?b*e?6Y(G(CEdz5%Ud@mXy$EP%zMLdvph~o>$$`sjl}cUZq+EF ziT3GYJ|E9Cd5A|yw`w%e%v-vcHzJ-KE}r*fV$Lf`)Tf9h+OvyUVd`;lgp-LYb9*e) z%v-vcJ55%WgRyx2+AR|GDWZw?>|*Y!SV<0uN2uLenIoyzGg8gGwTtau2u$Zsw@RYc zSfz>f>tf#2iyH&<8w=hMP9}o6R};;=os0AB%ho#!rt_y;D^XO|>bG1I?b*fNuX7zj zq+4X}(?m0G>0*50#Z&ch43ci)8)F_tG|`@2%zGiM^V1lKqoiB7GXWKhmL{5cOBegj zM}uiix;5HeYGu9!nqd04+W6}}e%9o>i7!5(y$%HRnuKet+twbUNZ&s8)YTq?oUQPYYyURz*hs*oR$IBbbCzpTvVEJ@;GyMs? z$pLP?`^F-r_RYVdtcQh!Jcct#SyBvkZ*Z4(ac-An3dGl*-B*8F{-z6 zCAFo9CfcWqZ!b4e^Q(#0?kI>y$hT@V(ahVpxNN^YzdBXrTVp02HHv7W{kzyY?*SLr zWLu*qnk92f6V1G}i#_wJQ-E}9C2A|8iT3Pb-q~Z#HQ?e1=@yy$G||jkx)|;E>^htR zq+2UdTM?qYkz0OE1dEx6d$ zL^E&aV$=hmQpq|Y4W>2KTjQo%UPUy~eqEfO&#FxW@hIt*R};;=wTtalAehd7HW6bn ziQ0;2qCLA9H$!+T1kPd7t&vYP@twu)q30WV=OF3U%wLBfah~_E)2(xe+N~N*bkE&# zEM}HtXC3Dt=@w78yq@MBIGdPP8YLm-dYWj@V=?bqv#UPNNrM-k``gP~%RBe{{K)&o ztet;s)orQOw&_+r!IR%so~kX|!*>=Z6Km3~@tN9L!9#uA_EZzc9^bhwP_Ie2MovR~ zifHDgZ(8`+&gVe1Cf^$0$F?S#>Gkor7a!ZVynuR5#x=T+ZACQmmOkdWCaanUM582J zK1DRq>n?t~;ps$<#e6<%)d1pA>bLS)HcJ!Dyq$~lt=iT%d%<-6(}{S?y^3g}{kr%z zk;ML}r{9iJzvb0LGjHeO+qCxaRAIu!G3vLxifE#Jx_I|T=bG%D2@sEvaMfs{nYVHA z+J1W#h?|&d60R}VNHvORqCLBqyG^LO#Z6;hO@G}-7Q}1Ptx>ZOGWThsnYVN?zqw}Z zJ%DLVzBRIoeTrzJJ-ZnDi}sfjLA)m08r#J_O*HeCF81vpg6aI}7W-wNBARH=F2?iu zW?vD~t(Cd0iDur~#dgLH7tfz=l|-%jCQY!5qvTs&O*Hd%F2;Hny%2Z2bIMh=C)Z(O-u>dw&*x&VBARH= zF6QkP_Kq=jmHos=o`0d{cGO#`*)#j@w?NMvBj3trBCN4$To?NiSrCtsZ;`p3+-v4# zkGEYdHC&9Dqi00`rZMs@uOgagzhg1x$ryL+dcB)4`Ic7`&Ag?H!PNdzAY5FNZ;iVy zCQ(}vO|)kh`);KM@tSOFr2A`p=35tMqLw0>XwNQ2rIOuC z;d^UQ(k&za9!)g!mM%uRW#8fgrZLhjtp7cVXrev4m~|~yF9qUJ(k-kVz}(VAGjHi) zv>#Q{*52W5kaUYgZACQE-d*fD4{;kN-O9`lh6^w! zD}f*$rFshqz}Pctw%@Mfxeb$U`4kz|#XL=G-!ugmM@hH5nrPkW@-RXl&XRilU| z+Ovy&bxI%}A>AT#pC+1lOBb_}$DUE|0;F3c>Qh7$?bpS;JKwX@v=aVvx~Vm>X}hTNVmw`r-^3X(#34Q_0Gb@^Ve>bL@h-$ z(cWE*3NQh7$?b*eAKI`6A5RXv1RWi3U z(ac-B*ghW(rZLj3d@|8W3N+E4UF=J8Ks-viHS)obc@VwO*He?F81`yhal+|iQ0;2qCLA9Gip1J zJ*K%=lyr-yA#6=F^Oi35)&7HNjC2dPA)FI}^>i@h}f_!ef_&KXZ8lBiD+O|)khd($m^8^TX~)Z6pO+^30V zUTU?qi+x$nG3_1BpKg(;PZ3SDXBYDp1iOwJ_XL!0rtY`LcCk+r&AilVTNm?8ljqy= zI1f>_Q!^d&CR@1JtB5AruZvk>>LVVZc8knWTW)KjnV0U^+QpbZ+U>_!Jpai=67?yf ziT3Pb%pN_r%7c0NX6k->m8(81O*Hd%F6NDop4;=K0gD8bvhGo?Q&$o;>puBHdb<+nQ+REnSTHmEC^0c>Z*YM16{AqW!uU zw_k#|oo<~%q+4L_)kHII=i(<{q+50c<~cyRMWW36EJZZYo?Xn^G&>17he)@`+^30V z-qOWrKfG++^>I$UciB$8dpKs*$4b;zL=)}Z#rBDK>@!73w@T(C-q=&N-#+1T4v=ou zC^D{#acjQ)l~1@hLhTlr`!vza%Q0@dst>du)eW9A@n9Mw-SR4;iS|1d^ZD%a(;yz9 zc58Kkt%+vd+QpuorgM;Vi*LEDh$h;zi;-@*6zFFcL^E&W;+kH=6yE>F`)iN9V=>EyfVcl&U8fBATMWBKIrPaiCwE^nqkfw?mJB=CDJ{Z&4p zy^g{xt!$^xsmHAKsZpeFAKSG&@bUcl)=Jb?L=(O4;Apr@knN6ELmnrP{Ub)?b*esy0upfaB-A;D>EPQJOow*Y`?B@gVDCri~7amPC^Ky*aHr>kYx7WotLDDU+BARH=>tepKR;3bL94FoK zX`-38bTO*qJ&7g0>|3^T-gL{Sh$h;vi;-_&+_9=!;NmFhmRA$aymZI5W3l)CW!z32 zBi-^UqKWqGVt(Vro_*oFzU7;#`|Xj_EzCMRW0_`NYPGeC`HdHAcN8v;k#3Rbycu;q zwPmgQK|D&j<<+ED7xO#n_B#uvG14usBARHQWAXV?OU<1oPrn@@-Kx<|$Sf2Ny?3x5(V5 ziDur;#oX`q>>lm{q+1~BRYVi**Tp#F;Ja&W7b4vvbDt)fc}o|w{q_wmyQ*|+)Wou6 zYH6aGUiWd^6UOTkdeV?x8j;JlQ|HuUR_xU%qM4UUZI@EB{is#)+=ICbkZ;u}qKRI2 zamy3N<@2$ZI(%^srhEhGReUEiO1{O4y?n#(bxkz$Qo|N5#`zWNRMRd0+EW#hYu5#rq)n7Kz%5Xrev4m^;QE;t{I1*mL_d(ac-Am^;SySiG;wx5iC6 zkosW8X(^(K_UvLjpM5{gDXofYvaOL5O)|GN(ac-A*tg>irt?>Cv0wHnqKWqGVmu#q z)a=<;lynQ{Zatc4=B-_fT|}E{jOwjS)KWwf?b*fLUG%s(O7&Jg17m5TnYVN?&vRJ2 zqZo^0RBz=IE|wyiXwNPNao<=RC*AUCqM5gLv1cqkgh{tZbl$O;J5Ba^h(nm_Eu5Z5 z7Gi1AuZvkjYM&ZEgh{u2ifE$!j>Y*Lo_)gj5GLL7YNDC98;f)Mty?@#spca_y5&_w z6YbH(sF%lgUa+@lk2@eff4WttiDury#bx_FwOfbjYq#nY(L{T8G4fb@R|PJfKi$gA zeVSAMgeTrzJJ-e8d^PV--{OML^?$bmwZ|P#R-*dj@m}X&RJN5aN zF>3%yrnV-U>2)8sJk^w+kZF#U!=KVf;U~8h8w{$V;YVrPB)mz6P`4+z1>rq4#?b*ewH?(%d(Qik|x8Pq-KBSqqbTRWe zkBe*at&vy8WcuZuYihqT_TSudtU8}K?#kG!NWVU2Wv#tVI#nfH;}f+M(L{S5jhVyS zt0;T{wH#sQ%{1v^%)|7YR5LHN+BVTEDR% zKL6>&lDVykX5P}pzM4ZYjgoKq6wyR`b}^n0iH_~!DD_*YeDY|bnYVK>Z@2K|Td3zL z+o|VQ7FyytTY@kGsdrs8^!)-3gj#&n`yQEpGkLV=;(FsNEuSpC+1lOBb^e+!~9)bpG0{ zl_*so-cd3d;>Yl0`Umx7Mc4r(acK?w;qd`Ze^N$bIbOuOy^Ix zR-&i_nAOF;+BCR0LhTlr`!wm-#caP-j|Zmn*KUB^X`W-qrQLr3#KvBEw3V)XwNRjJ(zYz4dPMKt;~GXj5@d9S_PtxCq}yE zRb*Tjv%=JxYk+u^bSt0ivoz7nTaLwC*ITPVFpZIJ@vGE$gXdfq^Zbro)dJ#C(k-th zy}B586MO2Y!8As?cGJ?M!MxyL=)}V z#USn*i=(7lWNvGsnYVN?_q(l19=JG0y2Y=bBIBELMxDR(X+0l^M@hH5n)K^p-^ogx zXo`_;y_~bAJ&(mai)tk~ARZ;%$|n;oO?q{4{=S%%v4d%hbjz!VCfcWqZ;CTb)*B1r z5z?(1O*Hd1GwQYd_AN|cI)A!VqlhNjyNm7GG!T!FZmrC1O*HeCF6LlV1ZW&U&vM7@e=qW!vZ))>9CVl5XV+Ol$W|GjHc&>>v4Rw{C-^TV6#p(SBXbIwjAH`Zi3u<<&$p zZ|P!h1?Fvl+AWO5Bsymub@_bu`Ip-eClhNl>D$Hj7XmTAiji*7#kL}vXwPFYGiq!0 z2;x!FEo7Nk7h9TW<}Jr!@0q4udd9MyGv1!Ze%YspCfcuyky&|?9Nb(SCEfCBqM4WO z*zT49yt8b-J@SBQjC9MZh$h;bi+PI)|Ccwd*%|dNy&dJ7sr&8mzFA$biDq7EwS|kz z_H(DqI!y}~&s@7zuZSkvuZwv*jVGhtO`dM8%)Odu=IvaZ+i#yt+)bTsy-3tjL=)}Z z#lG3s+_hWJGq*L-%v-vcw=h}jdW^+0r&}dapCX!Q&o0KU1Ts9U>SH%~x>YjwX`-38 zbTQL8>ua|7X3xy&R!P*Sh$h;zi}8H+xC7#Ir(4f6w>8nsTf5k<8V1vu)2$bY&Q-fr zJ|FLeu$~XZqoiA`y0t4|`gJk)RjgGYn8rxA^6hz+BARH=V=-?ax9_9gC+6k&GH*uB z+w<%@x;67st8FuCw%?Oj?!%;8c*|`?G|}E&Y@ek?za1yt0&`mv&AhdXJz2*-Ou9v) zR{Eof_UmG-{(L7B_hHg4uO^y#I~Vh=IIIh-#PSd%-SR4;iT3Pb@Avf%VbZP4+^Q|t z%v-vccd1$J$2Z7hq+9tWHA@jqv}YHCxM%it2$OD+xvhz2-qOX)I_%o5Ly&X}H(X%G zX(^(K_UqzYVQM`e`t2y`mRA$ayp4-dM~%1Dw@Nw$NVjSf(M0=n@%nsrdIuLrNVjS< z(ac-B*tag8zjmu6Y9$4lXzwnzD;(hBxlbl?4}E2BYoeLAbTMkr?EUU@>X+xQ-6Bz+ zBARH=F2?hDzI=KNk#4QbZA~=umM&%`kF~D?7tfz=k*H4*O|)khA20p3UG;Gck#3Q> zPZQ0&rHj#iPX*>NK)SUOwH47sdv-C;qS_Uh#}Mfjnfo-+%v-wHTY-5DlWzGG(M0=o zG0&pD?x+wrhDo=)nrPq0f zM>v^?b#XqKXlbIEw{$VT4PoE)aSD=d90D*&)-=ut!y?bpSq7WO3}r!eW3R};;=or~FipNnhKtx@kaMbGTjL^Hka z<7dlz%SY+QW2hgOr^#dZ>(%7Rchm3o;qw0S@$$y<$>pCuSUz3eOn(AT_M<8Zj8So0 zKA}~ghVi&2;rj0K+4A|F=fa==%JRMC2dRZWT7H;XiZ;HQTJdUX-|Lsz>?_O9UiuZx zY)ehpcKjOL_x|F)v47_JpZrioH1o1W+uajDqP%Cy9*xiUYWeNut>vA2G#;6#PZ3S@ zx{Kd_;a#sK{#Xz5`K(poIXU<~UtJ?UcF*n8L^E&gVvIl5oEl%WE!(MYa2egjwj!En z&o1_UClg>6ou+kj#%=6#8#o38Z5lysb7vuTt z`)NQtO1^cI)(##`H1pOjwnrW?jgfCx6%jI^W~eVXJ4a^#Wk8} z=A~BKjm2yGpCpIcGwParYs?vSjUt+8&o0Iq@QG^;Rg-Ov?P8xMnt4kXv;9_eJgS-Q z&kC=l9V7eLr-^3TzmKh3iO4)c!o}X3)Gbvs^_EWd)qarb{23RS`ZUo@dv-Ebg7(RB zGLMjQk-AS6O}(X)ed~Ktoj>PVnc6v!X4Mfm&_SeIZE2)RYg;8=VYWFo(erWIY!>))kHJx*~z@4+B(xi=1~$ao{_Lm ze`)G1olL4$ZVjsVt8A&>jTkra%1kXyG}E4)?5leq^C*c|J{x0YznXgKk8O9L@~HsU z>E)V`vOV-Gsm4gWyqajH{W_Ty|Qbkj5=VUO%TWjrylWL5_%d3fI+OL!O)f4-cJu;7yczIRP)LS|k)wg!t9;o8< zX4%qN6E8BgHPKA_bn@Q{+&mxG|IPA_ugYW*{6!8UTU?qler6Zbfh2nE^OISO?Av&C_34viDuffld&SS zzhlJSJ3`_`>ONI8_0k_(I~m`=wZ9HZs`DpaWa`sIGws>QypL?1hpE|hgv5)~eX3~c zEuGBvTRAPAJb&UprVy`7VvTy|XST{KX=zvrIoR3n*U z7s}Q|Gws>QSUvd8LLvPt-%h=v8hM?ZZ?qn<#*1&QzgqJ)z1@DQNrC0e5a^$6xqax9jl>m0p z(EGy4sKmX0HO&6GCh;0|%~Yd`rh47W&zjy+Uq0b_r@7)@lX{K0s;bdMQ*ZC(wVwVu z(_M0V*;1WOj9IoOnrY8Y=9rw* zE|q!hLfl!uQb&fZGb2sCwUcqWUbml4p1;bgWNK-mnfB~t?kKOT2i1E=sPZCppDLPq zODChsi)q)IVVCV$_at`d^y7>FX0F;0GWBVqnfB~tKA+W7vG=aYyGG7Ac~{Kq=9s3b zm;Tsxos6@|SSPPlxYzsVeUQY-#W?7oA|MqN%rZvi~&HK0uWho$S*@Gws*O`BoIqI(Z+W$_v!J zs%Yx%oSfTlo#A8u93%1aYNDC;>Ey$uvX5U}_06s$BwjVDXzFd8%=Yuv6A#rxfW)gt z6V0?|C$mP^^A(Cih{S89Zr4a@>aCsZy9?$JpvG%uYHOmI_UvRMfnj{qVJx{{D0av+F~E#EVRQnrNmyJDEAaIuE;EYkvrlc#*nK6-~XRlhJ;A{GpTQ zukl)$+L~ylJv*7-3igf35o)|h-KUDC-p$`_S@qR=pTb5UVPJSO*GS^TLg#z?&KshBm}y+6+%*U4n=b8?i#D^s^r z(bQXx$xQ65x0X(xzs8Hbn@~YgYnrNo|I+-^++cj)t9wG4pb+0O#dg+ht z5-+x&Ii~fsNm8Bv9uU zqu$O|QnggkRIhuv?U$j}C&YIPa(;b(^$WSzq+a9B#q#%dElo7_(mPv^%J8yXrADST zRbJzJ*;YkU?c2+&xc5{NoU3m08rjP}O*HkEUS|6}3CKCX$wrP@K20>!>rQU@mACcz z&^vp^__G}E4)Oy+iNADmp1c#Z93pDLPqYbT@b)LJuvYE9-fx|3~9G}E4)%+-U> z$x-UO_#KKdzw(Ck<0d7OzVsSSuBr1HyMOkn@=z~7Ti#nfNoWH4%I_ z{cayF?=K%OZ!Di&{^^6|)8)W^Xi zH1Xt*hcWe?$OTilxooLkHI2;Fr-^3T^Qg?{^Nh-%?q@!B|Ls#nQ!lmJcBRa7AfB2{ zFpZIUc{R~Y`*iZ@kIv56-?3xw9U=3oQAJa4<7BqqpLwBLqHO7mV{(lqnrY8Y26N1? z>~sYCtbXRBj>#)^TNO>c)M~pixop30rZs=&RilY!+Ov~caqnXuA@d@2pDLPqODD7X z+Sflv$h=6^r;4U}-OFt=uks0fZk|8$s?kJKZ|&uL((ROHTv#WT?cpq%>*V|X&9|4g zmUr&?FUHKgR;IQln(1{XzrB36e11o<+L_qHvui#dD^fi^M$N>FZ^Jd_W6!UBs%Yw^ zR<%@fcKx(^M`ER#-`YGjm+dK?Jb&g@qlsqPvy*)lsqDSuWL`d1H1*OsTRR!)yS>sU z)hL;lPZQ0wXD9Oxw|thB$yfOfmc4hJ%*&^Wre3PJwUg0)yQYawuF1T{o@x11(NwQ{ zx&2BReYdw#7ZpV18#?Q*g;x_zy;N#jFSGq{s=X_5Q&s6T?n>FKiDr7;$*ot)ppBUr zZ&a|>R5gj$$o;oh6-~XRlX*HO^Hg)K`_r&%`Nzmk_GzM-_UvTV5%`!#$-H=@mt7~N zskd}8SNisS1GqCLM&^}IDO;Lorae2ENr2~M`fZ4_jYvA5q!}k>DwZmmdP^s>{nlHH zxyNmgIb$VpfRim%H1$%&ZP&@zfkO7-n`uSK zyu7Mts@J{TKJ(&9Y+u%S8zl4cYNDyP^fD{etXTy|<(f*baaYQC!_mK4nrNoio!mO} z;`5>I!!s&J$-KO(XzDGUjFqzeJtR1Jm)`EOrL*ox@a(y*iDufflld)W&n*+X#NE$) z+_U-$yH1$%et>@RIYOM4onfB}Ce0I}%J~EF|=jByJQ*Y;Fw%@m6 z+6BqHyqajHeLDI4N2ip1>Bufb=2fGLrryTMW&3?It(weh%yn{&CYovgPPV?b!7;g} z#%t8sbxGY)MN@C-WS%{@(sxpwKk*_{pC+1V&rW8d=h?B?rQMnG?bO-G*iQDTqN$f! zZMRP5TZ{8txF5pKG51x8*Vt5js%Wa$z5J}{&3r3&Uw*x>O1(y&i-EeWiKgD#%l6HJ z7?t-`bzb9p*;YkU?c2-TweZwm@2hIPM)tB#6HUFPmr?2EOTG31QZJ5KK20>!>rQUD zr;O+Gp8a9}9pQ9ijVhXYJ11kO7&C0ox@jNa7JD-FX`-3->|{Ql=kAbwRh8GsGqLOh zOBGGMrIY=Y0{Z}G8|h@9CYou#PR>Y*z28h6Fy z)kHJx*~vVm>~ZoTaWCJ_dGl*hAM->M#-H4NPkw!<%DhH*vYqLV>tvo%_S9Ye6V0?=C+Fw0vK=}(N}ZQi6-~W`laW{BD}JbMu}@i(>g;u1b((0V zJvuo*A8&Z}t&`_Zyy{fZ)LS~4cK}%xr*QHy`MzwaPCrImCugQUO*GS!o}J7Ul_%vq1~}Q6sryvX)LS~4?f1>JW>38CGPN|(O#64TZyq*( z;&qq0rHZEB(#fpcv)a!wIY#1@>-H>7G}E4)%>5Rtry}zxi5Krxee4Zx?VQZY5Z?)k zQ;@{VtI4QNzDYA?WFwxP$5WWZ%d3i}-qOjW>bckH6eRJ=Of5|`(|*Tf-a2UCKZh~- z6rje7vum#^ntDqo^Hiqi-jGvOjn|l!dnHwSmt9l6?&W6nIp2evu^%{5g zk+prcCYpLnFN3LfejOw8%JrJo{8KZ%?&Pd zSNfc5#mKyFF5efiHPKA_b@FW*jWHs7_MuJzZu6p(y{c&HZJhk%Qm@I~Q%{n44v=}( zXrh_+>0~}1_Z~eb;LgeM<=d$%`$k<;)u^JWms)LC<+ZlozO@Qt@;N}}RilY!+Ov~c zd2Ov8$UH)o7pePH(bQWync0VLOrF2Wi%fl*Xr?_o*>{4EPM-fMfm& z_S<(QkZMihHTF!)r;4U}-OFv$>-D|$&c$jfy~a$hYc$c+TYK4;UZ1DG%d704ZA~=O z>rQT&Uh|#hH-kNy*EvMyRilcg-qOjSYQMD@xA8@xvZXrz7`b=$X`-3->tv+0*s-vx zU&uU4=H*pIQ!o9oZRUkh$nWIYzuCw!*{g|W+Ov~UZ;!fE>#i8|-cd3yR@~dFXzDGU z%#-y#sxdMz+$4%I%hE(M?b*qEKKlkBI5|q@m8n~*XzJ~pjCr*$^8(eH%xm1)wO13( zv|lIl`M}dNCfDR$Bj=o6RW$XMPUcL@M|J)xFJvD#mv3{}Z@OmMvy-`Z>SG?^WFx8j zRMFI1I+;5z)=U!V2Qq=OrL!hpyfYQ6Wj$tTrae2E*|jI}f(m}-V~@!`RW$Wdt8Ei6 zRvBZBpx;_LIY#2;)kHJx*U7vS*3JRQJWAr_RYg;8=j7aeYn@N3F%mDYCYovQPPSJM zWF95)B6V98O}&kiZ!T48*oDGQv1d%4Kk=&3L^JKv$$UP3QO4JMM@YPCRMFI1IvG^$ zo{0VP{E64f)Ye2Z?b*rLukcld;N(pCcIs?o)O9kc`&7}?ORctBC$s%X?2u*IV=~_D zvZb2pn7dFlnrNmyJDJQqi5GHCKl8Dj>{CTkFSXj*$vFAr`QjJq?dMOt=wzQJnrY8Y z=4mfa%86ap^6k{U_t;MMsiLWuTD5R8z82#dljl#oRwvte&Kza~QBwNkfL z(bQWynddTnv+F2{mroPTv}Y${=hU}O#;s=M+d1=?>{CTkFSXisOlGyIeUl^-FH}sF zE!9-VT_<}r(MQqkr}}IY#2;)kHJx*U9<$JlXYan8eGgil*M$ z$##t~X4kh>x7Uw5yCzdx6V0@DC)=YBnMX;yGWD^?Wc%)YQjL*#Wu`NJg}EE*-zf3 ze!Ohytch1R68o~H zb2+(Q6V0?|Cxf|tV-;p7MJ=b6s7pZwzUog9hR zK1|}pYE8Rtxo;=i>wK(}_f?74cqiPRf7fkQG}Y^)^0Vc=<)ifDF+KQkd7A2{@z<+q zR`qWB-9B92Up`*mSU$P@(+A6^%bV#>U@nP0axlcV%#dH>jrHy+@2gU;(JF%KHPO@` z!}Mw5$sdnl>X~cpr>^pPk*TGLW_sPpZ!e!MpLgJ6=A5~zseA|NfA-&VS9!fi-BLwU zFIC(&y=LXO?~L0%Oy-63+SWuf?bpeyV)Iqo?h)2%eddMRKs@Jh>E@c-yvEJEyqak0Wxu!W zN;$XRQ&E2il6iSG(M+#9xpn5n+H$N6?b_=@m^v@7Dw=vbC*xiS%q6Y$0ek0}Pd2XU zhgTELv`;7Jrv!6rCQ0TI>bz=H(bU^Gxu*T3I`ds#RHH@{&9rwXgQ#arj*xk+)NNHX z_0~?d*MxY&V}Q)7WNMu((M)@GGH)BO_D;z>Lgtlwam-XKRW$XMP6k!GI+0Z8KiRl4 zwKdU9dv`K!bh5|fV^xjUsOj}e-Bv|YZ|P)y5yw+|eGHIzk*QA;&9rAHV@KI{1JE%< z;zjB{RW$XMPG$|RXU%jBP~}CYK20>!o}J7pHXrjiiI-0mO}(9y^BHU3m>eVV@@k@) z_Uq*QeAbGPE2=1omsb@{y`__R#@b4EK=l+P@p_WhhMsfVnrY8Y<~-7~PCkXG^1@8) zNm@H%&0(pcskd}8zc*>MpH7aEc;Pl^IN8!fGws>Qtk?96$)_-h7r!GkZg$NxAedR$ zIp!%y;^oz3R44QK>=W4Ry(64!#F*?=MN@A#CiCQv@0$dtAc>b(6V0^WF*)DU?n%5( zA)R{PmM*Cbve?=A9O$204hil%zq%Wcn4tnaPw-s@A<4fbQ6 zp{UVBQ*Z5Mdq*7a^*Ko9MJL;uXr|Yl-0}Mfnjq}FqP z{W-b0Y^gq@Joc#UQ$!>rQSzD)ad~yN~BEbzZzV#6E?fske4AvOB#hbEuD<&MEka1I=LqG8hM`O(?m1v*~zF)^d(;Bs>EyTHI+{lO}&kiZ!fnX z^R2a4%D7iy{@c82G|^1^bTXa~y)t@lJM#kb2qznBRMFJiIXPFi_?%pmd5t+Hlj*$o z@~zM3sSbgYYi{xybxf{NrC%pwPGO(NMg1b~fiC+TonDXZWS=IQY0qOa=aKfw88DAf z=S3&`RMFH+e{7dsqy4N?^W5bHs`DpaHJWIq{W_VL^Sjl53A$=y+_ywDS&*G2zqo#Mkf8JVY_>bUD*V

3Yil$y_wY8IdYeG7C{=|z;_GzM-_UvS?lRfh=WTEBTseA9S zo$OOZQ!lmJ+R1Fcr``wWzRH$rsw0odK20>!{++xx&%a?F7A5h@)##QgntJJvt)1*o zyzp(|vZeDn*{6wS+Ov~+rrx)rijsKcn{q8xH1*OS+d4T{Yx>6I7>Sox6V0?=C+Fw$ zREFTzr}FL8z4yqoYp*Jrda2dcPDcOis|-QKMA=eJb==uCZ;!Aw(M)@GGSAf8cmLd8 z>Vf>s$9A$$6-~X=YHKH>{a7PdcZPs!jKm9TLysn!Y41)(b%2L?l*B7jw^Y&8+dJ8F zg5owv;+2_NnrNmyJDKONJ=yhbn8XVykmpV$O}(X)(SEGXs^+dP^rWd-v=o?*b%VWa`sIGwpdy=Is)mU8r4%#EaB@s%Yvho$PBr$K?4F zub0QPcPE3WXGIku@mi_ds`Tn)oNe=-Pu>N%#|uoonrNo|Iypa|HIHQP9VPMds-mg4 z8WVcos)S>yYH6VLx59_m|c4{(MWcw@^sm7@BB2!xv&9qM^ABwY3Rt`Ys5fZN& zRW$WBPGguCL|MbD~>GEd!6L{Mi zW*E5R>9zECJ|TCaJiCv_s?=-D``c15vj$T=se+p6^I zWPSz7vt~L4NxU!?d2Tn;OnY`RlWS|o1v;G4U*$NXzdSOwlYOda>ZMlOeT9N^3jfKN zQ-E`gHJWIqy*t?+edy!}RbDG~TNO>cwUfcjJ{fZglX#(bvo+C7dv`KU16-8##4ZEjqII$nrNmyI~jNL`}QkNVXC~Iq_^9nil*Mu$voHS8I#Xp5-*=7 znrXjIM#Y!sEG}jx=P-$vR~1dYos;vqdY_Z$zsU<@vR4z$v}Y%y2Euof*Evk$#VG|IPg&RwV)RW$WdtL=87%Jy6JOk6Y7)Od}$w^*Z! zrh47WZBIk3Pv|=Zcdkmk#;gdc(L_^k?PdF9J-#T6e!Og{?x9C#YHOmIUUzcK(@=b8 zSw&#i1A+OI3g%hEuNqZ)ce0P_ z{O1~99@C!3WbT+-nI4@Sp~{QYeX8{8WK;MfnjIss4m zfw8J=>8yztzw&19(`cqWJDK-m*!OGhQXd~B@ycK6v{cd5OMh&ec;)tc)=W4lQnqw% zCqMRFOwUe6ZHVWK1#ohd#EX^JwkrKP8MPt4nHFYSF`VqvL^JKz$+^bZ{zfO993}Dc zs-mfv{@8X*&R?ms<`i)8lOTzgR};;&Unld6GM>5+FprXWc~#NW+c}xvT(IxDp_5}I zUS3T!)1IBoFUt5Pn9TMgr?s)1IBo zv#g#P0-V4v-%dRb8}$UmO5MH{NmDPiYT;z>I(h!Yt7JOkI(dCQ-_9dWYnN~5>`t~- z>D9@(+SId7Mo#aiI%c&d-gK`fnrXjdGUiv9hj~_1$Wi>vM;?>Cs%Yw^R@;ur*ds>W zwU6rji5H#h(?m1v*~xr9>!usL+qWTVyh`epDw=vrC;RKJZxh+FrFy0{@|f(?L^JK# z$-ZodPL7gzB$ilrZ8T4S6m79jii&$art9xg@#Qq+a8$s=S(L>W^XiH1Xt*$1t_; z*Myg2WL}x6rHN*G-N|n+pDmv^^)YXs^Xyn)hF!j$Gxy&Z<`}pYtduO)a zlU~EiWlJ^Hk$Y#KCYou_PDZ9@@11f)j*@xtI~2AmntJJvt)0vy(^?ghYLv{&r-^3T zvy=IJo)gNuK$(|M6-~XRlUc9n82)W!+=t@xF`c)bk3No2=T)PMrry%Yr0QEW&7XOd zOf5|`)83s7pV}3h`w*GeO5IjPQ*Y^Ho{jPJ&xZh+7n%Ar(M)@GGEa$EwJ&(94{`QA)TcuTRLOy^~%)NL^JK#$vnm9n~6m@+eqp@RW$X| zAKTSlukH8U0dx$Kc|i@&y-1pA&rW7_h$rVfhRM9pb3guUdP^tsjyBJp#4$+bh1Aw_ zf_Gde^Z7hu@-a;2m8n~*XzHzj=oFR%xLPZos2tkb^F;n zN6EbSrdyh5ru{mZchLFny*`Gi^YW^qskd`7Z=v&LUZ)_LmsbpFi=cQ$R6f|o6wuU<1V^=UG$lbP*!&O@C8Bwm@iPZdqQ^v729ns?i8tqw5LI!~W? z)oG%c_BGu*InwCDw=w!;g7z*HoE#(Z!n_mJK9(k$Y0pkZ4IAEHD;ojxD2W%&czRUP z)LS~4?YGy-pc*Cd@@b-(_U~kCMaVHZN{v@`vZacq-pZOX?&aU|tXnQ6JC*z6Bmd;w^<<&$p?b*rL zPxjRHfq9g~izg^-RW$X|AKNYUdu2;!b+T6z&9q-9=dX-fIRJa_D2bO> z6-~YL$JS29jn|$VozOqWNW93@)He@0dJ) z;#H%GX414DYt08+w0;5#fQa!sKwMt;6YOA8DUib2| z<-O&j^rKX>b}n{Yo~E1Q{hDa%k74>W@#K$(Gqr15z!dL8+0xm)Y^$QF_U&ctwfVA6 z?vb^-OqgFRTXQm zN4#G%_s={J<#Te3)Qe2Nyp?kMF`3MBU5Ki;$NqXGCu8oZQzPAfms)K-CWETIC(hY* zP3krBnC#O;Gwpdy<|ztKl`d)~%C}R`!^R$yeX3~crB+)z*>{5xoQ$f8vZb2p$WHcY zqM7#WWIms#N*DX5JG|^1^bu!jc=)HZ+qaPR1>Zpz5jlxeai# z5xY=cO*GSQSAY9&INY0pmfWjkaZCGmm> zJnKwNy`_`Ue%~48U690!Ol?gx)1IB|OZ4F6U6{lxf3MM6b7<-<)Jv_lb~4)U+mF}>NW8G($mbd#w_@tq$*dyqRC(<~RC$rQPnCY1%$cN* zYK+8--z2ba)zD0Pb~0~8@iC8*c%gm(*{`LFrrvH$W^JM`yFLU-yu6xdru{mZ^-R8X z@*&Mo%C}Rms79V$dsWfYORct@UFY_DZdyD9NxZz8Xr?_o*>`Re*~lSG;>9ls*(ZE8 z^_EWN-l8?9Ak`R&7i*v%JJ0Ib$^QN1Lzu)XQ-54K($dMk9Tz%z{u(c2A2*k;aM~*l z-8=W}WH9%ooQE)p7pdE-XzJ~poWGyqn_b69yu6xdroB1&_KP~rwOZ425949-8n1d) zH1(~WT(+OPXjVNF#^mGFiC4WQnrY8Y=2={ilaG@pUL|#(Dw=vrC$s&YdY@xe;x%55 z`65+I6;1WJm!CB{*ZBMs+TXHc4_;H}HQKqxdQCL-mR?5w@g!xG_8GV1)Ky+3Q=cZ9 z>2)W!IoJ5&^I7Q*eLQ!SSG_8ldP^rG|M1mo9;dGIDw+B;(M!nUe7bNHPK9ab~4UTczf@;tGr6;K2^m)h-uo0L^UBn%nTn>~(#g1?%^rV9b>?%8W$*0ML^JK#$*l6S-dQrQ z$-73*Iq|fpytY)))LS|k?e`^Kryz+JncA9Yrae0uH!<3$>gnVti5Kp`@~EPzw{$Xd zTI>EfQk}WVs~nSknrNmyJDHVzo*m`W{hnJxPE+6H^&(SC6V0@D zC*wv1d*|^Krpk+_S#4D`_0~?tYTu@M4wHDHce6FoO#5|m{t6N*`*vw{_|;TRaNiwm zn1`K{4&~c9+quTI|Mse)sh3)9ajvm!KW`23REC_B-^-S2s^eDs@PzWb>*W0H6wjD^ zp8Q;6>4dTCH8WM8lV?8H_##tF6Wu%aJSO9v#fa;fheb)e@^^$RRW$W-q}zH-=2u2N zr=iY4YP@bPH^JEV`D>>AI+>@v>~ou(T}P?$@~Wb#w{voCzo!QGT$Ol@ytn98MN_@* z<@RSN_=LVQ6z8hcYur_pR})RWjhA_Qy|>B>H+kKcjC^}}YkB9M74(=)Yc$bJuRFQr z845lhYhUb~6U-xIUNx#{>Mfm2s@AFyvrWv%%9hTUd6i5pO*GTqoos*ko6I9rd9BoK zRW$X|AKR^z*?#X0ZE*7ZnOBV_nrY8YMm>{VnMfx`$h=71r;4WD(#fc3@=~3@%8N{W znrNmyI~mVsk3MvAgv@KDZmXiHw{x=herHmh|6C)OdNt8Z`*m`DK0D{cJS@Vw#*(_F zil*M$$)20cagTY7#4Fc^Jnmdf?@sodp#bwJi5IEcs`Tq*?`bGdjgffq9`iY?yg2%> z+TJ>Wjd>VUD90I{a*n$9SffghPG(&boov^Jfa?5-SB)l`X`f>3(qV;&YE@v2d!S10q!-}ZMj&_5%gFZ-NX$7HW2nrXjdGM^6# zkL_e6Kz`<D zZmFWFw{)_9oA<6Z?lW@)B9I~mMguCv_piyUQGnwO~2cR%lpg6%Nxrlmw)RQA;)Z`00asXMPRcx1+oZka>ZrR};;&UnleV?01&E zcZAGqrEaUDskd}8Gds^pc^4$};`hGnOh_~B*~y$+TRSdva+J)ARbH>B^@^UIYU(YW z%qlgXlVfCFxpL3aL^JKz$>^gzmF0ADl+4Skil*Mq$(T(b^RnJrP~E3rRkn22b+T6z z&9rAH_S;x%^v>{CTkz3%1q`%pJ&js-V!S2@qf%J+~nF1ooU z^%{52!mEj(GEJ`c%l4E^=ReuV{@JIAW_sPpt@okw7b$(rqhwxQRW$X| zIa@oKnU}A3j*)p~rj{m}X}?a!xi)X+wGVNZ7y56nDw=vbC+GHis`v0!g0iKvW?o)R zG}GRl>{}`0UOqqbk=InDZmXiHms)K*Cg=8B;}2F$xNo3r>D*4XSCN`&?@qSQV3T>2 z%!^L2RngQ-e{ARE{iPBYC+qDUaZ;WCF0UF*G}Atvygnc9Inq@SWL}eZjXEaRsG_O2 zbTW1q?en;#I)CCtranzH)1IBonQcs_gdA@c}{*Gk=1MN@C*WVGD7w|K0o@*1<+ z2TZ-1Xr}!-na^jZv~+Tm#LKISrry%YJVRmK*-ff360dxQ!qP-D?b*pp^nCNMD2W%( zP}twu(bQWy*?%(T7~uALj>$evG}E4)%-OZ4TJsnt@#4vuF;7GBt>yQ0J$s9%Ac+^g zqJr$e(qvpG^ZqvL`7jSVB^}CfMppxkyr0bbksnLF)N0$x5Y`y`)=Z}$iI-QCQJtKt zQ9b(=rw})JVNCO?qN%rYa&Et8&2$QqczHF^O#7T&ABws@&+Ph?W+vs^Ip>&Mql%_p zYPH>%%=Tl=WPfFpGp+d(uNqA>)1IB|--SA*l}7n?&g^8LDw=w!)z(htcY=Il^87Vk zbh1wq&9rAHODCgp&v%RY|4-i8>{wD{%X&Wx574Tr%>6e2 z=`g4lC>`lc8MFWiF+lWyx4&U&L~jRr+cGEnhA;P}R5f+F>rfu{h53*9a*um~#EVQl zO*GTYPUiDP_ejFY_Y#R$OFdFWQy=Z*_?}-8obc8PnL#OvelRRobLntJPxV-qi|@cl8lM&jjaqM7D(^8S3$ zijZS+mBhQRIh}lc+fU|-Dy|Fx^9nUyJ*s4M z@}vDujTfk{pLq3XqM2rPGHVFpF&WG&oN6R>PZdpl%$WRWzwd{0q&F*B( zoulj;%qt{bE%ithO?{-3IlGSUj{w#66E8CLG|^1+I(fex!yA(;)OdlqtBR&R&dF?l zd?PH9y$=OWH9nZenrNn(o$Q`T2lEPv7pZ%yXzC-K%*w>LnjSYgt)F<2si%o%n%T*C zKBqDS%&R0`IM3*)qN$H`vU|@WsMbilu!4L))67ohesZ)T#5@f367AcmYY1jNpUnQ- zQzfsHaq8Tu3<1>|iPy(%72#;2nPzq}pU+t*W2CC$WKR`Mz18Zt$`JNMOn1E5b&bRe zE9AAE%;$^01%}?cPU7XMlH19cL&ZB17^~VoN6)n8tk!(=Zm}ksY2Gn;zj4s(y{jZ% zt}2>(>yKl{WVYW+KTyxswp2TL<~5V6il+M9%U@3aJpHu&v}*Qpzn(sC<0XE5wap;D z+x~4op1wc*eERzI%iHgMIQ@G1X8RjR3GC1}{bTzldaL~=Nv8+L+tIdEbDy^dcQw(} zTcvuLe%^TU=kGJcEGizA@rJi8)lBF1GAbHlRW#N7UUvKNp4@A8FUOi_>a9bL_A=|# zoY@xc5^YZqcrxBlp* zx{t}9|K?1KcSty=C_WXb^TKn2X{3o}n%T+RY4c{+RZ=ffk53_J>LZ74> zi|>lLZtq1;;x%hJ(xZx|-umOX*)`kG^Qz7|`K2rKnsc4pqlspk*~zR;^m^}}ylZYJ zd#Y&aBc06Z7LV%si5H#hX`-2Cb~2yOsSbH5k$AP#BULo@(N0EHb-Ye~DUf(Qn8uoD zrrDkBWg{=!4rTjx>J`=8V>0@;SQSmZ)#~WkwO5^p-PM-@bzXF`r-^2o*U3ml@XmVk zunLJ6sJp6Y>f@Zu^IXpD_4pS0`iU2ra%VA`r)Z{`oy=V}C-HhMlX&qITzqG=rasci z-rgz314J)N_Rl@ygg;xQoSQFZ)M2NG}1&f&Fo}k zBesS>{z18a2U8ueN&YJ1mm3XZ{HBv=WeeUHiL(eF4-r=93 zIB)w^?Hjso5AJEAskcfU?Pc6X7SAd;Dp$$8JWVvy=T07Zu8}_WZlELc3g;SoRMFH& zI~mNJxz_r(d9_R(w9iH-SE=&)?|c(%jFazgCu6*oKB=ysdG%;Aqmv)c z=jEK|68G2lsG_Nlbh0;-gp)4?GA}aqG|^0Rj>&jFetiVDdd2gwONq>@M-@$doReA6 z6lZpHa?f2}bEem1>ZQAyX=W$$`EHhzd-ASXbIz7}q>83K(#gCvB+6;&-f-m*F|KJi8FJ*n5cJ-DlhrasQgd;6U_uSjm(QTEykK?rkS108!|j6SE%!%lRZ^5^^s1-s>wUq zh;MPWEnTrnfJ{A2G}FvZW~LX-InbBkyD~oWnb%aGwr7PCB2_f?R;%M`L-^LB{ocuQ z+<@G+bX_NVnrNmOos4V~U!&j|IHzJ0cTD)q=X7$PDw=w$)lp7v+mA0l#j|UiQf^zi zo|F4D(M+>DIlk+LV{%X4HNTT%RW$Y1A4fZx_iH+9ChRG6U{WUllgp34Z*FzU0!?t?Wv-vk8|?Jw|h_G)dBnG8i|*y ziDsJD$@}fdo|CI2Ual&d`ba0U3c{mWBk|gA%8fM9Ofx$f%-!C*O5#Q8u_~JSNGGET z!mFjf7fHM@|8O+XOfx%~&v!9u2<~MPubq0Nil#o^$^5p}o_n?J;jS^B^IjzJ+L=b0 zXr`H+%oU+?YskG!;`MQRzfr9jsiLX3&N+5JdB5p5YCoM^qsGhCL^I9nWIkWK-$Le9 zYP?)kH1&~AWb!8h56iCYotxCwo;8?7gd;YuseVmhDwviTf0^XQhBlB`K(M$uApi^xhuxDw&t7il#os$shlHdp!~mr+@Cr zyynb4dNk2Yb2^#Nhjns%(+y|W6{@^?RMFH&IvHz1Z>EJ+WZTje6E8CLG|@~mI~i48 zAAX-*pMUSe|4J54#>oBG|Kx?@4=o+_GptJQId*Q5P$PD`rmCtf|8 zXr|en?5(JfptNtN?!D)Ca;%D`-fA_%$=>W5JFIO>HPxAC*XW&NO*GTYPUZ=0XGMiG zLO%1ko$RTiskd4k>tvqc!@N0OCu8JpTe_-~T}?F8yiVrx#XS}0VHFZD%*0$(H1*aW zM?0D6hm&K1Y}?Xxo$P6%nPzsfUm1b~#b-YAn9LK(aowAy-fDHUlUW7f%(U>7ZA;g6 zvZsk=n%T*iM>=O&apO~!#0%q;ql%{9`r}w9f7)iu$T6eJaXcr^VYe+^)yb|VnrU7q z@84VSm{&=>Tvasn)*nYZndi=<$`(4gM&d=L@y?uPn%T+BcA^s^WL_ol`t&v?&v`-_ z>-@di)JeQBR<(W3x??iyk|Ry#b+T8DN+(xIyy%3uZdp@r{c-e|>{XkRYK_EeXBy2@ zG}D}8@~5}DzE9SQkjyJ2UOlR4>SLVD_A{rA#vf2cJ#yR9702WrO*GTYPG)xP>{p-~ z*=Ig$cKx6}XJrW6&l)w)$?GRxJ(|qxWHNWw$uA{pyjtp!Dw=xR>m4_{M*C3{g6!Js zpVv>kdNk2Y^Nz`=rS_RuNW4hhQ$14K_YeHR3|I(Fs%{352mpun(1>VkG%hf&xg#*I}Pf!pW~iGB4KP#`Q9qX=W$$+@@36_gW_N!np!ec}1#d>LZ=Z{KKjEc`Z=o z#opP|L^I9oWISIy=V0$$p~~w)Jyu0iALnG`?wDysJrSwa$h=%lG}F9J#yKdAK2Fa0 zTH;(Iob0NisgHCr=M>SMf^_owRbFK3X`-3tbuw=%i|3JK-jjFDoO8OWXzE8h`Sq>V zhc{$!O!j8iD<@w4nrNokoZLPiX4l@S^w-4`uYOfD^^r~{RcCg6UOMsmE7M35%{0H0 zoq5=KbA0=D>dL(JiL^I9oWb8b~DJ`A6c9mC4-BU$VAL(T8t{YNa zIq_txWvezJ2K>QW@}ay8LR^E#RP<=%esrA*@Gs-mfn zb29hC<2wcMc3+AlUalsZX=W$0Lf1*WE@cuger-3dk4TylTHn{m_mrK`?s-c^;WiKaf@%h7E&^m2{NYiAm1qM1H-@|e?5 zt&e-wR8=ys{Z_tcrKzcpbTW68qw$AMu9121F0Xi>Ml;RpS>~xW_B{3FP?K?Oum-LydKnJRW$XHPDY)8cN5IDK$RDndYWjanVpQ&ULQ7> z#$WckcI92O=A5MNsiLWmbTZl>?})R1UO(}AFpV|QOfx$fwIT5r7s$Lq;zjD7Dw_I8 zC$pl-*0*O*Hk9UM5p#9}3@WY+Jfw?RCpE(nK?T?&Og> z%8%#6SA*k~GQL0JGoQQv=9hLNRW$Wht7G?}P~nA@ve!HJ)OpR`JI9)6rkS10yS$=z zmLqb7la1`(JXJLHkxoYY<9vryYh+$nLpqvhrkS1W??YiHs(m~4JZ$bU*;7SRZ?!sl zOy+sjXeLP~_f&b!P1RFHQ+@8`3@c@3olYget?NFondf4jCYt(4FSGs5Tt9q={yl z*~zR)jow-G@AopP*Qc$|a{4z-eWa7w{^+eG)t=OA-WAi%G}1&f&Fo~>={nVY_pZci z=A`q}+n3(rd!se=F;0GYJKM;ew0KV$iPwjYU5PoJ+@pzRn$yXAKJK}A%zLW5W_5Cp zDw_I8C-WRgoPNN`>(_aasi%o%n%T*CKIf}4U|yll>p?wMMN=Q?WbC-$)`2MT0@d{s zFEaHs(M&TtnRfuivuiM~Q0GPJo+_I9I4ASOfa~P-6E84zHPKA-I(dJ-_>?l7T%pdZ zr5>rGsgHKDvkL{P>nC0hrm-fPX=W#5o$U7B70x!2x~Gb!KGMl-e_XMNTAvz;7iuQ( zrbn7+rrDkRam#As6&1$s_U&A=_WI%ESQSmZ)#|v~>qqoaa%_?s%Yx1KaO?sUe6TW@JuJyNW5H4G}F9JMjz$OImo<9 z;^nHMsgH3oZ#3r_WhckP%%g4Tieqw*CYotZC-eDuax+>z(8(1NuO3x2_0}K9jmd03 z)`Vc@%(T`|ym~azOfx%~^GMIh6%sE}_f*l;M>?6iXbx4}q|vr?-7(qIL^I9oWIkWC z--7-fD-ECdtTkSAvZsos-fDI9n2h#2=VCy0{lx3RG}c5j&Fo};N61-Gp$@ryJ9Y0p zx05|pH1$@iW1WnhC8Qr-|Ga+U1t+_jXr_6cyjO;BMYW%ZYTrTnm1A;+#EaDVb)`rZ zO}$m|XeXon@h%#v)=0egrpKCSrrDkB?LvJjQRDS+a;%D`KHACg-YK12Bk`h>V@)*E z%ue=qq44#}_U&AEcFmh+-&+sVYIXFO% zC&$?inOCXtBK24mO?{-3y_qDb)=0c~k5_!^PczNzWbB+e-(JN!xk}=NY|l|eQy=GK zq*%_H5KewAl6bkAXr_6cygy$w=OFVcHD0bNn)(iRWaJ(_5yIi1Ys zLxnN!SB%%muO$+%9#u5;kxm9x=er^plh;qY9!z6RG}FvZW`(imbx&Hx=BS-AL(Rd*X~Sf{ltq*Jxw&z z%ueR>dF$i~iC0TKQbkiA?PT=6@tWyeAn|%IjWy9sGdmgk74h@oPn=8Cc#*oNil#o& z$!LFEV@#?w5-(Q!#F}WPnVrm=`JKv;bD6{os}0OfBULo@kxs@gn%h6uNW7qiqlspk z*U7js0`F`zk7Vy%CGm1q(bUH|86ywg+UN_Tq*^2Kay8LRGdmgCj_c$qi5F{hV^uWu zF;2d`?I&|i;p|A93*21aqlspk)5&~3?k79n0y}T>llJY@=ig?%Go(iqO}*9XxU*1f zzc-V_n0(p#@wTO!>YS$SQE`OyOX^df=h|S>p?wMMN=Q?WZqun%&sp5YP`tQ(?m1P>}1{<65UwEF}XtG zMe3d^n)*m5qy2GDM5^m2UJs_RCYotxCo}PKZbrV8xW|jsJykUIkxpifnm4=dsqvaQ z{n+anBULoj=U)DD`seAV?dLt*ucyzO%kb-~tuOv=`?vjg`u_Cu>Fd)kZ@>HD^y}%H z?QdY3fjt)7Z}X4spL}omHFPKSx^$&p^X4PmQHDx-rKzdEhw0~yCx70<)T#2ic4c03 zdzo)~q>84R+sjO_oqM0ITQAVQp{r({{L0&VPo}p@9i4jdjJ2~?zLrV7JWc+tlfOOv z>-5_n+|kSYePi-o2jMZVaC<#wDy}M;`Zy=E{a$s*wJY_Sc~o{)(Nr^!%B+RJN>=hV5#isgLwBSIf}~flO=UUOUrB6V3FwlgE$B{ta%|GP&1(=MJ}#P6kzs zLQe18lY7nFJA0bU>tvq&@z%*zD!q7z8@^qjouH|YbTVr;oqdU0SL!vhlRZr|)68Qs zGrj1Y#XRiRm3Ym)rt(zL)JHm*cL42Q`(l68wufmYsjh#vk?Du0iDsJF$#}l_>?WDl z$-F#OH1*awy-DW25B0fwck%kR$H=NCZ%khQY-5imnrTia^Z9rR&Kr{}RC@KOqN$H` zGAq5D6!W%K7PKv0ac}X#6uH-XR!o_l%#_o~Ms6h%FH-kZ$?Ih1m{A=BXIkqgUS#TN zqM2rPG84V1ry}zTiPwYrd;9Npq&s?c%^O0a>O@ez7f8Iw)YD{MC*%3N-Q;_T#Opyl zRz*`E?PRYu~ffIq}oBbX_NVnrNn(oy_Np*2!evbEa9OUI2kv#>%CJ_ zUBAYQ^DHopHPKA7J2~EOA@eGU7f&e1s%YvXo$P(5j#O(TUP$sWPl;9>nrUVya~CSA zAt3WQiI=B}rasQexUka#_)$ExIYGAmo6y;D%d zuXgsZV&X-no+g@U=Gir$FS;j&%qt{bE%ithO}+KUafw&kerHDlJ8o@DwUcMfF?&?e zRG)kK%g}GiJf09&iKgBvHNwmB{cP-^t7KjnwPH;))8|h9cHnm? z_|AHJr(|9y^YT>D)WGBlB`K(M&TtnarJ>6T9o}+o^l+nb%Z1^+**>z13=jljD;=m}z16 zylttbI`f$P-#Dw9*~$Kn@=J*-FRVG>0cW2*tCLw}9N+&#C--Dt^E%npL^I9nEa&W^=PiJQDICV%?< zG;5@arasciJeL`@pH8lkc#-LQZ%obZJbp)+=R~}FpI*9BubEd>q&{nP$j;Omm0ycwUals8*U8@w-cjcBecW~x!oE_!Yt~#$dd*>caG}Gr}@<=E1`FIA-*?WBLs_~k2Cf1{h zrasci+;j29%A*vUZn1+qN$H`GS91e{qy=&US#TNqM2rPGM~@6H{`V|@0xpd?Wv-vk90Ek zp&Tcl3nX52vZsk=n%T*CzIYyqKXERRcs;1cs%YxtoQwn$XDFPR*11UHC&wqS>EtSj7o8BRqN$H_GV0S%Palmxq*^2Kay8LR z^E!EdzG(Cz^9tu0(SN(DXzHV#?5&e8MG`MEjWy9sGdmgk$=;pUmokahr{B-&M~S|s zKGMmog18y`$(JID7n#N@4$U;XljC_L#^g(x#EaBpRW$XHPUbFJR5wnlH4?A=+fb1v znrUVyGv#!49xo-%HF9?CsiLWmbTUqWU_KewcwLGlUaX~$HPKA-I(h$gipRW4;^nHM zsgH0nzS;JV?U!Fof9X2cIO7S5K20>!j81N!FP=wo9=3ks)u)Q4KGMmYQ$#aKP`z%y z+Lo?&lh@AF(?m1P>}1qcuRcvQ)4Wc` zQ@S^KT?-^$r0%MssgH9q_F7P_>7*amEvIi=y6TwhYNDBDb~2d9IRJa_^=rI#Cwr=B z>a9PH9h2RAeo1xpQ;j=Q?zcv_Pim%_oy_ye-aKsm#H*zqpYPSwM?2Z=pI5K(`XkdQ z+to}nJDDeOqn?Vrca_9zzwtU!MN=Q?WbP+Bv+G-t#EWO4;zUR@&Fo|(dg!&{oyS|5 z#A`o+5UHZ6k8?8mT~Kvuyl%_acyUa2HPKA-IvM*9#h z-M1o%*MH~k-?v|FOLY%DGgD6!&GfmG$K80n`~Z zUMTbORMFH&I++ze&S|K7SLQYII@!}iGtKN|?mas7n)j}}YwmTjr;4UN(#hOijAz%_ zz3552=BDbYqNzUja)$JpPZ+xy+Y`_cdUx0-fDGpdQGZaHSJ?_+a9tb)hd~nr-^2o*U88)vG*9I zJ7iuZ^Kwtwb+KF>v}H8L+(6U{WUleu>q%{j=tN}U&;7X4eKil#o&$!vdg zo{Lo1KiP;KiJfVriDsJJ$sfaamdq=hYD zIj%>A4)|%`&UM$xq#moHskd4kJ-f!39M`sxYK_EeXS(W+vU@u}nO8}?TvhTq8M~(+ ze?J?e6ED>S!l} zDptVJZ7}GcdlIktsm7{ks?WVVwl?JP-nw(Kp44mR9-Ll?c4Rg6kzPhceVp%L)r9?- zwxui1ulb&PnrNoao&4?TU#H*xpk#0VeLa2NMoawqYNPkv>8I0=r|(ZcpT0i*^7gwQ zPQRYM+5U!oMukeP*S9nEd_Ghe$5jwyULo`9QAJa4{n1PH^G1|Ee~&8bjGa*#$zI#i zb)D>KqM2rPGM_I#MSt|kM>S>~x=5;dG4XA=} z>aIVP$h<(^RYg-D=VZ1Y^X7P^jBk>*E!AW4%qwMA6;1WIm&dP^k$b?+QT+>h@Sfaj z-j%YeiKgB<<8c)2I_nw@E^iDvrT$)i`wJM;L4WX!L760f=YZ}e_)W~8Z) zbTW3*;_4Rk&iK-7+fqF$&+KGR6U{WUlle``sQQJ>t7Klh!5-(o^q8ipxBfVKOvWke zxF;gj8krZ=a5T|OGdmecfOj71rA+39T{%Y;O?{k`F&aB>EuCB=^Kv!OO!GRK&*#p= zD%5!)^Kw3Mw^|*Mc%6SgKk<*vo2YHU`3Q&V%86IMCYotB zC;$2Rymj*H;)z$kDw_I8Cu2?MRs6gzeX_A->S>~xW_B{aqa2+U;F!F2;?+|3RMFH& zIvMTvs=Qvis=Q`fC;ypgtchlt*~!>t^RkiG#S^cVx~Gb!KGMnDMf287E7y3nOg&9B z)67oh^EtJeuZt&Mf2AI&qN$H_GHZ;z{`tIg;`LzaYNDCub@Kkr9OpFDdGW-nr9R^~ zW!m<8XZWyYI&ZV^w$E8ByYAOyUMDl! z@%poqV@)*Eykjz0y89L9#m_Z9sJp6Y>f@Zu8Z|GwK6fQv^X)CRRC(J~lpbiR&%HeA zT;pG#&^eiY?n=GpO*(fkM4D*oBfac>Gnk`tjm!%*drrEmnLc;&w?l3KYJJQbj-qsj z%-25G*sqGFKGMlv`VOj>BAM5xx6@E@4yc)Cb}~d{0q z&Fo~(uA>})y?2EwuLpJ9sG=*EHTBU>#*GQO{iM3`xkj#-TBeaEnrUVybMMrfhxOd! zHS6q})IC)+^^s2Y_R;9%^%E~L^)%5;Gdmg27w@x?d4Ar(bPvenX7|nozMPx{VFdy+0#Tb&Fo~(Iiku$GOv<&VV8B*dQHByY`^E^8j07= zG}2^VC-a_MC-J&=Rd~&uc7ZTWLFhUecYJL_Q$t_ zlIr?3UJs_RCYotxC-crh&&g|lukleufH&Of-!%1+PWJXr>Es%T7rs&W{_G>OlaY;l z*hZna8t7KyTqFB$PnEn*X5!`b&ovUS{qFim6U{WUlbLuqJCC?60eqeq>85A`s27$jc7l14Lw8cR`np2Q!jl|2OGz&Ad(~^;i{6z18a2 zF&V30tdpI}5LC3aE!9-#on5<{Xr`H+%xvCcUM2B@hn+-UQ*Zrow3FHXXm!9bxklo( zGmSLSOtU-Lt0DMQ;#?yVFH((?m1P>}1}h;5oTY;^nELski<( z+R11?>M))DxhL_OyMOjn(Nv#%`ODDLP@GHh37tKQm#)-n<{sSBL{lHq@bUh9^zptM)xLwAZ*eA8CG&Ds(bQWNd#Qfj z&Z+XJ_pB;Utm57f-0kCx%IjxdJ(_5yIi37?K5s|)r9|e{ql%_J+R5=55cJQlo8Q}( zuDDWenMS+pnrUVyqp~kfcgVa#=0)nBDw=xhkE6$A*6ulD^6N&wZRxsB_B7E16JRJGb(^7C6^P zrk*C6X=W$CzV+T7^9tu0N!?RLQy=MMv_Gy=!%XYkm3YnFKYOZZs?WVVc1M}-t$&04 zd3!(FH+0o}1Zh6J5LKjW>a9}8u9WxoM@cQcTqE;xHPK9;J9*@e^25g<8qcrK+ne3K zo!ZB9_up`Gtcs@IYIU@edE07FKaYNDCubuy~xk#k1#Na%1blXug zlffJrwllk~l6mdll!;W))JHlQXMemg`O=kn%{#mPw59ZpCYotxCwn{Q7?UsCyV1U# z>#mb=8r!L@(9~P4j$J43mE%!QM5;9sFIN-IG^dj<+m1QD6XjMBTuLNfJ*sHxW1ReG zfBZ!pI(hxXt49;fG`o|%y~j(5#H*z~W0e=%kHibTbi8J|6iB>!G?~}QWbS0wmlBCr zOFdFWQy)1dv!cmKyea{@PMW&u6nrU7q^E(^y?fhh3A@KrrR~1ctoRiu9xN@9S*H642Ok+(n)67oh?a0oG z>RKl8;>i-+lKh^T*hnX{+SECrd@XRUkxuqBnb*mDz9`#a?_J?sV@o|!MN=Q?WWO@x zS|stpXzbKLX{MRSWWO@xS|;%#^|)R}Qy=YQZ%5)ai+$oy_~4ogDL4B=N$%W*CzrO*GTYPR8@aD?+^0w{6|njx%f4cyV^^siLX3S{+y8 z#rCsCE!uG*)tgB4UsgH9q&vV6ZEoa#4pKRotj(j)PL^I9oWbZCuGOv<)q5264Ni?Qu>LZ=Z znx?4zpnBh)vTdnOK<1ri@r>L5zuEQpF`09Ys1Ab6tE66}9%q4BoxGpo^PJq1dd=%( zR};-N@0h$lU$oOkCs(-33o|iS6-~Vz>5j{b%I*(?m1P>||ym-a5HL;`N|DXT@gQ{-~x2Cw7tRwSCTtiC2#%vpN~$j#I}* z<`ohzP;N%*K7i$FGn|)+< zGEa#_qYs^2CGq0@$ni`iualX6#HT3WOiPy}PA$V)y zPp<~|pwjjzzQ zZ>OGz%{nHNx~Gb!-fDI9n9O^tyfJzG#EVQlO*GTYPUiE)b$xJhg~Y3+9;u?Kk90CC z6P+9rH{-M|)&29FCn(6&(?m1P>}2j&c-yxh8E%`~%e=7S>cwx3qb-nrQI z^m*GM!mqEkH}Jdd-}d9_`_s>-uTQ_c{qBd;ucvRezk!r+D-8CA|FQiON$viGQE!DF z9D7l1OEvd-_bgmZH1$@gUZ$Tnp8WZHOi>5nRpDaY)V6e8rk*C6>2oKKypxYU=000| zcRhSuC-d@D(bQXi9PMQ8LpgU1yp+kjJWVvy>`umBL_EKKDU^AEdaR13KGMnFJ{sp) zRWdJ66U{WUllgpJ?_DSJ@>J2(M?2ZMT@&-HDw!9U#+qoRnVpPtjUUW0xlZQgsiLWm zbTUulMiosMlV7_subHzCPZP~FuanV7VIS&j%&uR%@~)Y4PFEF8eVmio{&@VMlY0`c z`KiXLXsXY>JU+cf#_8<3kb6(+HE$2@YNDx+^fD_2yivKQ&TDQjd#Y%v`MvDb61;Zh zUbA~S)bzW4 zH1*aW$BxN+`@J!_C-a)u$*v}vX?`a=mDlI4yldv!^-eufMN=Q+nC1h>S>~xW_B{359jOmY~(+mbwkQ| zE|GXWsK=^k>Z6^E`>c1W|M|O&pn55gc(qI;O*GT|PLAf0WZrYGan{*&OFdFWQy=GK z)a_x%#aSm`3M5`&>T05y=5;ckuN{3<@7+`5HM5glRW$XHPR0$$ab*kp=k*gWI@!}i zGtKN|p2l_dD=sAxFH-kZ(bPveneFGCVy~-j+rzykI=QFDYwrHpQ$r|?6x;8e&7_xWWL~Ib#F`^YcQw=JP99mW`C#tOuPan} z^{Aq$k9M+G<#p}KyyhO2;pJErP4&5#GmOe!O%r!w8ehOSr>^zbsCSm(c*daKmY zqcV40qO6uod+NOA_OhpnrkdHy`$-XJy?ou??)D8`)yu9XntH3$v0jEpaZ^Ur7tzZ# zaxYgC&GfmGN6)bLvpv|ZwM_2is-mfnbTYp->h;b&x!1h;$Idj;L^I9oWbecm zd+#chUjLnQa3h@zs$K$e?Yhxx=J_?L#;W{XFOOd8?3jk(~Wae^;FSRpL_Ysz*?{Uy~Pt^rlogKIT!26 zy=I(?^=YE1kMuIJjeY}3H zSDz}H`e-NPS>oRLzI^7@GL1FSOfx%~YeMHF+`T~NwNv+0(bPvendi@)`SpGI^Nl-G zPZP~Fuaoz$je1V*sq&h6P35YhsgH9qYK)z`VKLLX7sI$#zY^v3 z&ovS+R};-Nuao!l0-lqrBwns6n)*m5V@DaIP&CuRcN;(aA#q*rWDLh-%s(7WG}FvZ z=87s_Cxdy<$;O$-WLDhAH)3h(Bb|)I4y%2~$*Wg+?N0VI(M&Tt8S_Z=%MSA@iPxts z2Xa)=)JHm*?f3fUo|BDp_s^axn(A{ee;HmIvcI=+%_hd>p44mJ+7MS0O?`})Kfc{5 z$y3VljRRo1e&*GqiDvrT$s=n+_LZ=Z^xd0lt)F?3si%o%n%T)r z=e;#mh0Kf8JykUIkxs@;(%D^n-Tu`2nHQOQnrNn(os8#0vKOzE@n*Ddr_MQNT~j@% z$Es-RtyaBNxSvn^&sQ6t?@m9Rems4D`uX(r>6f?P{c!sA^vyd{0q&Ff_DxZot5tyu$KJ%H!WZtFnX&bF{|E8(8S{*kge|kHk%$_J}Kb^dO;?<*x zW}4HD8I{I*^kMH^A@O=p zk5$psTYnrqCi@jXSW~wxUDwH;CYotxC*%3zTdUw?{3)OLtg~x6*;7SRZ?ziXBr*vjwRWdK$ zF%hexsgHCrsXBWSFPr1rmg@d_-g(x}G}1&f&F^HVir{5)yw7~*HPuc%Qbkj5wK{rC zX1%GiVtUzn@wTPwI@!}iGtKN|<^a*xQ?R0X*?xTHb355nMN@CJI@-xt6ME-WU%E1{ zna5;L6U{WQlX;s$T$xBG_vBqOJK0r5Qy=GK(88L@>z`{RUalsZX=W#L@6?-zRY|-^ z9aR%LJhsm``e z?$<;!%{C^t&*#s>ka_vc=W}wuDw=w$)e&RzU)vvzKUhWJr){YolUJY`siLVq_wtuP zRbGGP9-R{*_ny>i<{q3qT%?Jn-a2H2m%V#KUYEYh>(B3btchm&+{xb#`OaJWeBKR5 z^zqu6SHCKn`bZ~}s&mTib?MCOuS_FNG}FvZX1e3lYrbwb$hL3i$}=%f6-~X>>ew+E zBM&mWD1Ar&d|o>9dN|qDL^I9n0_N4siLWm9FtiG5w)NF^U76TZSUr3 zqM2qMlUW53?Xr=1mBb4kc5VXK)WdaR13KGMm&H6+SuNwufSYu>~Q zG?5)dnrNn(os8#m=V4V6FH(||s+aiYiGyGr84 z(@?Q0n)*m5lWH{nkZO&@YiAm1qM2rQvUe)|Ql`dh&U1|%e|S46*U8TPY}W#bSC1w$ zI+@SM*>%)Yq4&O)NW6Mf(bUI`$!tHqh91u;NOk>ljXj!Zra8yt$Mby*a{w~0ka+c| zqN$H|GIBe8>j|l@pLji(#+qoRnVrmPAZI`M+I4gNtTkSw?x~`wk90EI|7tmT{lu$f z8fl`LW_B{Nk@&mc?7b@_UZn1+qN$H`GAdi*9T!sVNxbInpFLGH)#qLwd)ENpTRfrn zC829q>NV%?V~-}9`e-l5w+h0`w=$U*EBB(ao|@@%Cy%^q0Pifno#LHky_LzlTvasn zaZcuGF7NAow*pmOeAB&e#A~LRos8#;lK}SKRWh&rTw|0OY3d`L%sq){{2|qz%xmWP zHEMk@`;1i4RG)i!{QP=*_UZ{0MY80uWsgHCr>%5#@iCclYyg0x1G|@~mJDJbN)2#bhk@g+rja_td zg_Dgf^+**>y;bqJyS&(bCbdqT*S$#Q#nY;BdZ3wRcCwew!^!tTnU|-Eras=uQBOpw zJ#}7luarqOQbkjJ?&S z1Hs#kJhyGB{=Ue}W3s1-W}4Z_c)qyyh0Lqed41Z}j*cptdh3s)$7CjU(dvLyYb0L# zx1}RZG}D|;e);{oyWWZly?2Ggt49@0eT~HUOk#WR(}6 z&pRbTAJ@seJXJLHkxoYYG2TX1UT|`i%*)e6GtKT~&~%vB$-GECQbkiA?_{So1l1C4 zOZEJE=6M#GMw)1*nVrltB5{o_dha@!m#2!R-uk0=#k9|@KmV;2(|!j~bjBJpE!_Fl zwsch|yP9aGd7Zr9b`#fYf_at9%T+~FZ~bw!laYORvuo^DwJp_7o;mZv?e2~$n(A{e zkI%gLgz^3kKonZ|P!&GfmGN9WgkXWcQmO6ujRqN%t3ICfOt zPgzF^4@c!1sh6vXW}4T@d_MeVoL{37y?r}%?>+NO%vD8GZ?ziX_P2 zZH1a?W+$_f&B?D{%A{WKfK$n;sgHCr^LJ;(^wO1j%{#m1iKuuLshMVWGEc!pyQl2E zdlIj?$7D|xO?{k`G0vhVa(1F#iqv_znrNnZoxDGvHzxPwT{An`RYg-D?PT2E9j}>Q zx)QJXsm7{ks?WXrWq9>9-&=33{L*#4ao)L@tBIyQ(#!l_kW(x0Ql!!gt3%ue6KSHE zK6moS^!l~Aall(sRmi-0RMFJOIGOF|eO}I}{8}LM>d{0q&Fo~}cjK&-UrS_Or0%Jr zsgHCrYnnW&J(XT_&a=qW(?m1P>||CEa7^B39_>5G-6mvSuU+@o&$^}}bx##dy;bqJ zeJHk{>9v!2y%xy4dNk2Y^E!F|s+p5{y>``j&Fo}X6-|AdlUdsmpRH&AyndAzoa}0% znPzq}M;~trGsgHKDSG)IGAn|%IjWy9sGdr2{FmFt*l6c`1=d86Md~3NQ z?$m4Ip0>8n(Y1T?u9L|WBeUL{o7Krk<(+IE^DvxK_Lj z9(;G(_B_%LoQ(PF|MGvQ|2h5dfB5g`b+W68W}0_Q=JRhXvDbI-}f*_|9~qM2rPvUe{mnOCUt!t9jw_VFFUn)*m5W5>m-*F1MsdClx( zPZP~Fvy+*4dGoL;iPxvM6UsA>$$pM`E|PfdOy8Gc=5_L3W9(D|olBf+#F*@=qWkYL zWAgc}a*wCEoc{T;joocab>cPanyE(>P4&5#zYMLsZlBOuRb9GLuQ}&pJ(_6htwWAm zDL>jDpBKQY=~5u`>d{0qeeUFMPyago_J>}vm-*knzn;&>?=E=#cZJNWM-@$dq?1u^ z>ZRA00##mQ>S>~xW_B{4&)HGFl&JD*sYj}4>LZ=Ze8=mb*RS#-Q%@7kG_#XgMc~{3 zbm=$Q$&~v%zsn0wb~VvV^EwPx&!%JjIRs!-)c>Ygf^`bZ~x zUnm6CYggtqZ}zcQ(?{n@G}FvZCUYn6x_0GVGmptT^+**>eYBI~ItV&>{VFf^&Un*f zO*GTYPG;ie>_c5kRC$rQr;4UN(#bqw9j)`}^R*;dU>Oc#)~6iDsJF$$UO%oqR7*DuUuO%3xmM{(8(+TvasnkxmBHPez>=sIGsq z@xe6KL^I9oWPWcquGj?g3Uywj?x~`wk90EIA6L|a>iTtFEz?L7%{04{-iv?T0Pdh^j+CwMOQJd8ea^W}4Z_Oy}d;YcQ{HvXT9_r;4UN z+R5?P3E4ka$-L<0SQSn6xtGUhUbqzny_Gk^u911UnrQ0dyv#4vefYg*^ZfhR+_q=` z(i`qEuaSAVnrNoaojf}8;`2GD;J~~}=H;rQskhGQz03UbY5)0Z>u0|^{dD^A^!@4Q z)7Ph8-hTJP>DSXY+imH)Baug9K7rXXzHh~I6wdq_H#4>^)!(9+H@$W>(M&TtnO`S# z(rftLXFl^vnbhM>S!l(cQLN12h|#x*QeiiTq8|1)9g-$N1figO6Ijwk5tjr$2&Q$_kokEWL`Vf zNEJ=>xtGUhUi>bl^VMB&uaSAVnrP}Hz05i_C&$Drylv^a^J`BN&GfmG$7f!6zPS1Y z^J}ahedcq|uRT>X^;WB6=hyr9W1W>U>IvGGuIgl06U{WQllgqerQ`WE{O&WK*~zXd zntH3%aZbKAw*Yxm*U!9qG|^0RI+@SM+CC?}#`&4{?bN;ZtWNGxMN@CJI@-xzof>Ca z>t|jMrg251W}4Z_-d7jMyh7$h>Ygf^`ba0E{mvbmSTprxUUTj!KbXdvXr|en?A*); z<~@1W++#AG5Y@42>f@Zee`(ZNCu1eiwp7ow=5?~GiDsJD$@}v~**wN%+#%~TpV`T- zDw=w$)v>ed{bXjedrGS7CtetnT}?F8%uZ$%fwNA2DUo=!)FV|i^^s0S_U`R0z7(kP zB2!Nj%`~%<`Fu`|?n{}(3;X8pKLt11$zHwYOMxn{hm&JXW_2>24DYPBqNjHCYov9F?oMJZ%nR|c)6-*>LZ=Z8~B}d^6S=%w=G>Y@xuNS#;iya z%`~%<@q9Ru8&`(BmPx!wJyu0iZ~bv>;)Nv3Jq`7`z1wX|*LAX|iDsJF$=o@0s)1h1 zBwn9>zkeZ8MN@D6akP_h!?U+$dM%Q8?X~pLI#M&u>|`?c#^fqBUOV+j6-|A#lf8BF zYgghm^WGw<#;Rzl&%ONR^v~^1h@bv2!|Cn8uiG6H{MCEM1X4Xzd^jrz%-LSIzo&ge z*PV-bnrP~+QoT&~TSGpd{yx+AttHbMRbG70V@)*E=T07Z8tUO==S!XNah=QyPL5U4 z)W%k1Cq_7$>*wkLpcHb^Xk%M-$C7 zvy*w(P5ezT^xhTDHIllgil#o&$v6$=WnSk3nHQOQnrNn(oy>EMQBKR=yF%vmppN=$ zy*sC=k9M+muhY3J^P2MvMa%Skw>o8avUh99xhwCQHRpU#k5$R)p?wMMN=O)Ci66xcZLFA7-?Io_akQRpIucn)#qLwyAQ?p zmUo>;m27Y`?&b5j&pQ{}sYjY<>a9}8?L(2NSDi?vH8L;U)9>uJYNpSfJaQkZWggW* zka?BNYo{KmqN$H`GVW^kGB4~ewk_48^31)nr-^2o*~xz9h5XuQKKD$_Q$aBB*9g~r}yEmC%yE3nNXVLZ=ZQ+&=o)V09LM$A(%7NK{GG|@~mJDD}c(RnZEa4l2iwb$E6s%YwCoP7Ux z6>fa8o>bRQym~azOmjN<@qFG*xz`ejSC1;1`e-M|wJmh=`ia+rX{?E6n%T)ryquKt zS|afxbx##deWa7o{`fQ(o!pan&AMiKP>og5RG)i!Y;6dikg1;M=AP7R&U~at6HR@j zm%-GVYuyTDUJs_RCYtGUCy%TR;q&oaeUt>C|Gt&Tyn0m8)WX9m%`bZ~xw-kjV&XH_?4NrwuX(c%>?J#z zXr`H+%;(!{`gpp&eFqaB{$Re81Tk5&h8^1VpnwKI)0(M&Tt z8I^tB4HNh6&$Vx-J~uP-jseECs%{V6i z@%cO__f&YzxlZm=MN=Q=WITnlI>6imcZ;+w)#=BK*)^HEnrNnZoy_NRcA>z0{lu%K z9;>3MxBfUP@!H$Z95e2pL3Q<;y!tfJOfx%~_q0cMR40%&t+#+rFJT<(zv=_Egc-Tdj^wy!h5S`^lhMBk^)I z(M&Ttnbknf>>B4?+qZLNCwr=B>aA8sJK5b&hLdX~UZ1w}_0E0%nrUVy^ZC3nxk}=- zQ;$^9)JHoxt{dk}t488Qrm-fPX?7z2d48I_dRkN4-_4IigFY)WE zZLa*?_HX;~^!@4Q)7Ph8-hTJP>DSXY+uuM+m|Ve|!4Z>9>JC-k&e(sW2+P zl*znYRW$XHPR9BmzJHEXYh+&h!hNiXW}4Z_tn%`D?<$!W>Lr}rIZb_>lX(WjtGs?G zaIO(^PgfJoG_RAf*W$dh?7gdGUal&d`bZ~(YP@?&sx>k%GL1FSOtU*VPUp$IO6EoC zu_~JSNGJ0fZ_zp*RA0L?uX(eNl}|%)&Vg*itI>V!%DZOHIdSWxqe@;UV|CzsPXYs-meM?d0q4 z=b-RK0#xC~>wHpOIq~Y(L^I7cCb!SWn{J%_b=_B^V6 z&Pyj=e`dN`cHKT7tAV1gQKI)gFP?bytCH8rpc+>}km|~b*PofjnrNn($7Ju$Dl%XD zTw_b!Q$@%Nl z7wSRXRYg;8wK~?xsJKRUO(*Z?W7_t#v+I@5HMUGWO*GTYPUfv49`m&mua>%}il*K= z=V&K$&E&0?79kE$R*^-?79;t7hl zT1GR?>||C0IV-A5nZ%1HDB=?cn)*m5vogflPrht3@wTO_u9HC%D~?DL%`~%<`FzeU z)MfD+uXarKRMFI1e;hlz#!j+(KKW84@p3iMO!GRK&lhL&oQG9Oyj)c@^^s2YZ`Zsm zUE}rWossG~=fgD9%udGh;p~sDOQe&lBwnN*tD>oocCxo4aasB%uRl9E)}1}q z=~RYX%G7v$daHKCYFYPhn)*m5vvSW#yzo8Uwxz4CllQMRMw)1*nVsxcYvS7@KJ%IP zlXvP-dZ4MdS{=Ji-s{Gl9SPiI-nMjAC%c+xrg@#r=fk>Ck3N`P<0dbk`OHpsRngR2 zt&Vmwzl-frtx@B}Zv@3(mDWsiI{DMv*%?;8I5l3Vyl&r4-FwgKs2v?m0TSLgEGLt}2@PxG|Y$xjtAY+-?PGyvUR(V3Y`Hrg_KY zkH1&GI4i1KnZ(OgMN=Q?WL60{cRJmQBwo0c4K-eoCYotxC*%3NYR%iWs%qa(opR2c zU6XpOil*Lbb!_6bw?7(xIMZ7HR3pb^zUh%BnrUVyvoa*QMUu>`Bwio4*$37fkt&+{ zNGJ2Y?&z%r)q9b|i|3Q$6^CY;*~vV~>SQDL5;b1zzdcnn^^s0y_U=@M+>0b$`xo9K zO*GTIPUfi}@1B@@i5f3B*;PeTALnGO3oxgM-dc{y>(_XZsi%o%n%T*GKBpS!UMBI{ zoe-&_sgHEBU%7WLl6di3U+d1U`F!y$!0f%NBwns6xt;8N3H@HA#%pI9?b2wbna5=G z-f=chCs#?lcIxlju^2rj$Jsl+e}y@C+fuzFF>l>9nZ}yT>tt3KM=33tSE=#hO#}00 z*K9xD-ROiHoV@<2My`{+J2mEYGIrUVYy`}!)Ohixfmjtyy&dU}-A~?cN{CL?vw!YM zyk@Qva8=P%pU4bI^Xco;FK@s5;q>e2 zo9%Dl%n8XXGI@LnjJ*}BU-lc$*^jsF+5i9G=AM&{Gtb35O*HjZ!=t_I-Wmd?J?9$d z_OhpnrkdN!-u@~3@SfajW-oi1XzC-q%(Fl7P87Ucqs|NOuQLPHOrJaX+ta^JzYQIe zc^=ARUMKbPRMFJOIQivmzQz4TXNHZvi?*dJrd~aoXr?)x+&*7?+rVv`l~+i;dQ{QW zTYnrkzh?X0FUo-G`l(lsCYotxCzH98U*nWe`*!Nyd)75oOFdFWQ*X68*2(+HMrWpl z6BlhuHPty+OknD2qM7D(GEdGR1&jAAaJIl_KC_cuRW$WhtD~LFbjR6=LOns-(siBe zX`-2Cb~2wYs!c>*fXv%xKDU!SRW$WhtD~Ka#4g?wC)J+BYi_EZDw^tZFMk=j6UBK4 zlUi?F?n%97o{M>!XzHWA?9^=H2A~?5*Z#%EXr`i>K6moS^cp_iPYgId#-DB9PCXNw zx&L-m(bQY5jvbZv_D63mMrG84wJp_D=k1+cO*GT&PR1HIUMZsz&}TlslVeph^;WA9 zPWEaxQUBDobZsZcnrNn(os61PTA!*RWh%=`Z`iYQy=MMW_I41sVDQAd3Nn-qM2rPGP9ld)@$_MJ$cvMvujTk zO?{-3(f)WQiFGo*gw?iG&#vdE8mpqIKKJsM;psJaV%NgSNAR^QpZm-`xTlGx-YRwU z{2J}Yj51y|y=;H3ZK?M1>`Y@#G}Gr!{&ryPHPh?+n~$A}&6h%%m#2!R-umM>C%-ne z*Iw_ue&*GqiDsJ9$$UPZ!**)>UP{z?^{Aq$k90Eg56{W#XI^CLX`-2Cb~2LyZ%nR` zd6BxOil#o&$!Pz_E!l8p*Xw6q52mpunrU_?$EydXBNZ~Q2lZGLO?{-3d4s*vKfiWm zUUROK$<)(CGtKN|o`;I=po5cNyYjACbIu3#_`X6-eWa6_zB`H6Yk|azOg&9B)4WdR z*9mdzE1rkFmPoun-Bm?XALnGA;)}l?%l^4W;^k_hnPzq}?>cv~k=HVb7fv5IJ9C=) zNGJ0SWN&uelX%TM(;`)zrO>06ruy8=V|SD}0{JzYuU)4b=Ur9p-(QX9r<(dmFO#WL zQUAKFoZ6P^9p$;b?5U!u=JqlZdT);1lY7nVWls}Ly>-a3d&>Kb3DMmrm|>rbq+YHj zn(1>VkE{;in9S-vXHWTDCiUWpR-E5`&s=Pzlf61MI(hv%FTUxXCi6O(&ljy9$h^YY z#+G`dil#o&$*fb0)(50oCH3+&(M&Us$#_2Rj)`-j)XP&vQy=GKo~@5h4A99vsn@(K zCRY>9G_RBQuWdN_^|>qYnmHYDRngQ(IvH!G4`EVEC--DtGdtPSL^I9oWbT=J*+@^` zHMf&JRW$XHPUd;2Xq^uyUy3ANcvhSdi!{+pb2|C_?~^m}Z8v1zbFOh#C-TPI%%+~x(Qt|ppkUMHiz z7%M90-s?+=#EaBDRW$XHPG&{DlU-j5+~)OQ`raGbGCLV#a{Sd`&aNw*Y$SD0mAp>o zOv`g}PvSN6nhCY&&K;DR>T@rD8F~lMZM&)aXDz6?@H1%;##u^#pPn6V>>iSh)VCrh3ndWu!{(R0U zjZ2lB2DCHA5Ab1{)7nrUVybDu4$V*9k^T_4IMUOYqb;hnX8Bb^MY@tlHG*RS$o z@9b$Zx0A6hjK*X*xk}f@ap-9<(x*GRl}rjaI^Y34DRRS@xRGMro`@!IR{ zBULo@kxpifKwR+ysx_*-K5Z$FbH+e3&Fo}vzlFVbl`1c!0`ETqH`2*ye|!TSsa8q6 zJWb|xvU~pzdha@km#2!RKGMnjB2IKJ6Hdlzx^3yImDhMyr+3p#Gmpu5K4(7}%qyI0 zWIE!hqN%t3IIi;g`gX>RdyAfv*H659G|^0RI=OwmsG5nrcZI~OM-@$dq?3_;I5(N2 ze_lWFB2!Nj%`~%<{lp9P67Acm=V7y+n|V;j&Hg&k*VJ3BjvbRxrwJ!}WAgfm7nr)5 zXr_6cj8w$kdBiuu+qZLFC%dX>>aA8sJDF5HC$FD)(aD}BnrUVy^G?3F#tZYX3W*n~ zd#Y&aBb|))qpC^IDX?b37Yy5$>i&7oYRw1JSQE`Ovy;8Lax$-wc#*oNil*NBa+pnLc;&x2J!de*42n*V}(zPoFmz;@4MOOTRn) zbo%l1{psh^*Qa0Je)q%a*V8xK-@p+RDF85c+{<5veiNNDY@Yv#GJ0~ak$UZCq9RQ+^^so2s?fQ^9;0$k>NWGI>}jHz zK6moSmGbRvz3krn1m-=7*Q}#*k1Cq_7$>v+tlErjykYOWe&*GqiDsJF$^OkxFC{Xs z2X&kQ)9J6KKGMmkP(-?^+Ycwd7RbEF)YC*W&Fo}WrN;NFf_a6^>p?xf4@*-Y?c{jR zg-%{S^Lj9iHPK8nI~kR_ai&M+6*4bU_f*l;M>?79k9NdKwI}nMbDi8WjWp3rGdr34 zP~JSOC-0hjo$RTisgHCrZ@h8tTYN2$c+tt8CYotxC-eE7JKSCiC0?E?n)+xbqr$~m zCs#?lz%J0ks! zRMFH&I@zxcxpZY-^VWv!Orw1o%{04{y{}PRy7I1>*U6+FtD>oobTaR2cV=3bB8eBj z-?!#%1IPg|)?!8Fq@0&BiI=NNUMGWU+!Jx8)suM5-9LM(XsXXgPitgf80%-oBkW=bW|w?omZk zZ?!ru^Ln)38*WCTLr;4WDs(AFMjP}Q821s@NvyF7J zr-^2o*~xzDbuE#4k-DdfrasQe{9YaILyoKWt_99Ef~l*CW}4T@`!@=mvyImhXB!{X zKW=G|c7mop+R0uW?zKqfwZG}nDpE7e>||zM&Q8>|Oy&?%uaikVRz*`E=j8oc8qUojw<3v`tBGcs*U5NW z-TmZSi8?RLu3c3$^^s2Ya$5G!H4?9t>%92Rf_ePa1v0O2n^%u2d7X^J&RZwniX>im zgB?vY)4XHyUeDys!+L7GW}aQUs%YvX#$=pP#aH}zio&VAzAc}4^=YD+W_0rYe9T5X zC$C@S)u)Q4KGMldKb(8{?#m}$Ez@|9T{F$>WPe3Tfv=*s zE!9=HGiKL2Q%@7kG_RBQyUM)Yd;JC+)LVZXRpa%?_B*p{d|{+*>8eiNnMRsu zrum(G32Gpa7vNStpZT2YYtI(DIo?ku^Y!oY+Gp3i)$V<3s@5MzJDD}OQTjou zH4?AA0yolRUMDlri{@cuUMKPLRMFH&I@zm&Ak`{~m#2wlns-dzt5KtDhs>)aUal&d z`Zy=^R>Ao8dQz>Cc)6NrrkS0Ld03q2k$IKGYrkLfeKWC8gpBtBGcscTC=&Z@>44C+q)8mdvXp zUal&ddaL5GiPy{KPn>Y`oLnREay8LRGdmf~@wE+oI|iLxCGjHlSQSlujFUh9`<~p7 z;q5=9x_;u-qlspk)5&~3?w3b5DUf-E#H&XYO?{-3K^0X^PXD}q;`Lw}YoeKEcXE6? z2Ay0X@p@2?RngQ(I+^u8o|D&4yvWqkL^I9oWImraCRa$jTI!K1n)*m5d*^=8KV#pb zZRv`M7nypRXr`H+jOU9}S~9PYcs;1cs%Yx1KaNYh*#6tw?ApmO@sw>#*LAX|iDsJF z$*g>FQcfg5KJ!^mP|yjUDw=w$)zMC7`#mRDNxVEwG}F9J#%?0A5s!J5#LHDhQy=H# z{YKcRZk#i%8i|*yiDsJF$$mA^rxK?cF(!Z9ZmGk5?EC70Mmia5rjOgaInJ&>6*$#M zrk*DAIvJ~n_?>0%T_y3t*C!lRH1%;#-s{F4CxdL;QoT-|dClaiqNzR~mA{<+dHQMl zY1QmqRb5Y?xA79czS`cv@3w#2kEicXKcBun{qpv^A5OoXzS;f;Qo<9VY5-#odaM0* zXJ@U9nu)fhn){sR(t9+~)LW%`nSS1Q^5^d{<&JXnJskM>rAX$5Y!5S)NE6NUxs$&= z{p0=L)qXrh_s9FzHc z-uJ-hYgf^`ba1HH|4$-sPiIIPZP~Fvy=I~MsFTgA@L%0PZdplq?6J9xDEm{t@HM)ZK=*N zXC9M1O*GTYPWGyd$-F}1MJIczXzHy$j-Fj}N5ZKMId8MFwx#Pj+0#Tb&Ff^=qoQgr zuD3szsPcl7T~##o)*r_@*{w2W|Ga*c*Mn(%vP3h@>||skAAjG4()$(X65neibx##d zeWa89?D||J@nYq5JZ5R8nVk&gaZknGyGr7<*V{+ui8S@mPIlMH>(_X(cjlWOtvEE( z%ueQAUf%4wO5%l`WF-2LDw_I8Cwu2{(LZ0h60ezeB=%Dj@9UqRd-==Ila1`Hz}?$@ zylmrl`-ZNXkC1w-Np3G=ZV~4nm#)lfelN$WXsWrrj9l--c0R)4-c#u{@2m(v^G7@8wt( zO*ONZv1W4ChFn|qWMA`o+0{f-KibQ;x5{hWIe?Wu@=ULP?n%Dp^K!o`nrc2T|Mdy? z6Hy$U+xPHsg67h7!f`e)_iLi5w;CQX$Np>koo{4cyRxtOnMRsurq7-H?U0**TIM`U zvF|A>A78t2uetkgPZdplq?1{9>QP;}+N*ujJxw&z%udGhp*kpDDPOnwTKjhD1bc2L zd#Y&atyV{m$*eo|sIFY?)jHYJL^I9oWY(oRr=qTlS9`V8JykUIaZctv{PAuY5`k-1 z>NW4|+SNoe&Ff^IY4vuZu3h(e%{(T%s%YvXoy@vZC-b^4eZKM0JCkXg18Sz(ogAn0 z?7i2n_WCRJxptM?_Ok-pnO)zCBwqWO{792|os89kw@$v5Nxb-NnOGG~edL&o`aN%^ zb?d72nt68ZX`-2C9+O$C8)fqtlW%1bFU(P}BO9rrsgHCr@8)xM7H?gZUNbw{(?m1P z>*W3XPxNIoI=QFHYvy&btBR&R&dEFr;+=K76-m5YO*GTYPR7oumvY|9BwqWMWuio1 zQy=MM?4lv9jrSIBU5VG+{j;Zvruy8=Uk06udgLRYw%sLg_vT_fsn@)7F;^2!eY}^W zbGevn-M3$DOV_Ov*r`UUXsY?W9N+Xz?kk^g{B!>nYoe*Q4mq|uIomj=lY2DLOmjN<@qAw5b?-XYIBU|`ql%_J(#hUkbm+0Lnr>UFGq0JQ>}jHz zW_B{3FV1$zyeIFP+sU3PntJPx;}S3SL`=Nmdw}5N^-nhTXrh^Bb~5YO;%o%WE1Ya3 zbx##deWa67(}XW2M|;Yky8g*VGW9gkOfx%~b!;B<3Uyu&>K{WVXzJsf%o77nofn+E ze&PkDt|ppkUMKVU;%tYr>z=#3W}aQUs%YvXoy^<2y$16ti5GY~73rFK>yKj- zFYHA);}4x&Bk^)I(M&Tt*~@mwyh`H5lZ{Aqbz-Eck8?85{>1Gk)f$PHtBGcs*U5ao z_%tq=S4q5FRW$X{PIjs_G0&=zc#&zWiDsJF$(TpRUpAwYt0Z1L*%+&$sgHCr_LIHr z8sB$pTe|8xd9S5^-#ja`lR3MN?{7ozT_y42*WTuI^2=MbChM7^w-)^~?m1fB$vv9r z-Z`g}AI}%xT1Dm+60aUrH1*aW$0c5E`<-1V%s1PXt~e(5Xrh^Bb~5YwJmwV=FH-kZ z(bQXi9PMPZ-|e5*PrM#XV@)*E%ue=a*SK||eLHpUJ?nllse7tu>aA8sJDKfwD)+E{ zY+JfM)kqah^|_b747~y9@!mS;p|GmzNxkMgIn$$wrrtW_STCdA!%Z^r-RQQZ+RO7Y zbv4mUpF8>6fwzX>on>Vr@+`e~%9V13%&SKgO}+KU(N6ZN)Ib%dl-riB>ts(8%`~%< z`Fzp+&SYLC^V)0sB2_f?)*mCBj6Kx2e|{;Fd68+XiDsJF$*fFtDz9HkoNMHm?5U!u zk90EcOm${jF9psulBuVOW}4Z_d_JB^-~HUagPd(~OslD8F=NUh}S#T}?F8yiVrx#b-q5;T>^CERm6-|AllX}1@O>)o$;?#jDn%{l30PZdpl zoRjw|<0#$1?D||F@d8s<6U{WQllgq!4M67-RbCJ3u_~JSXeWE?4ua@ci>U}ah znR};BJ6U{Wg zlcQ7hbaIs%FMfvtBlCM|bjLe6I{8DYRT3{cInrcqCwtYJmohb8baJeUrascix3?+* zC;hk-xXFw2EKd{7H1C+apTKr%2reaVuLpHk6-|AdlW`L&&T>UJNn%XC7D>EZO*GTY zPUfv4``Kj9Cfj%LaYFgJasTW8@_(oQIsNZ{`0r;yj)c@^)XI9znyC22{&h^buEy1^=P7*=5#Wj zkLTZ;?**ZG|^1+JJ}nPE7W+k)FV|i^^s2Y_ZF`O z5-&3KG|@~mI~mW1gh%hUu=lP|oobTZb2-WLgO1rjeZ^)%5;Gdr2j7ww$F z$+r@TS4%xoMN=Q?WSq*3D_cl){TeSa^)%5;Gdr2j=VaHn5~mtl>X9m%`Zy=^tm+4A zrgbZlc)6Nrrg@#bKVP&WWba*}#tTk%RngQ(I~iY4iPucG0(aLxn8uoDrrDhwuL$Yn zDv1}J9IK+Kk9M+m6U?nh;&<8?2Rc{dc}RGIC62wPv&?WdB^F#*0kj z>|ow8nJYpk<-C_T)yOf;Q$14D&{xTt*y#76252mpunrY@S8Mps<=ilyS60c8h z_jtvsXzC-KjC3c?-e2DSOwZRE=e)U|PWCj>O!GRKr+z*dJCArTDx7KrbypQleVmgq z)}nuoXIh|IqsGhCL^I9lYgf^`ba0E{hpIi#n`r# zJ@>Oao#sru9!z6RG}FvZ_G;MBd*i&T&wSQtuX6r)}w~ zPIfiXO!GQLZ=(RkpByu90}{UwDh=DVk|!C-Y|HDBB_PDv1~REM&itDw_H@ zC+{`J-b|}T;^k_hndWsepAY}3=Nxo$mBh5fcHN_j zrrv6GT;j#{^DLAz)B02(@#@h;GtKN|t_VHm6%sE}_f*l;M>@G@cD;V$^lW`iU2rdYWjanVpR1bDdlv z@p@2?RngQ(IvJHMUS$Z@k8Mj=Tql#Mr-^2o*~xf5jJJBufiW59!hGg)uaiAhH1$@i zW5;CPBk7%>0NJ*s+Q~Chbyd++pL_Ys>7S>cwx3qbUhdb^=WXVTUtev${BHZV{doHR z^z-TK(=Tto`{DHK>6`6uASLWO;O>NfZ2v@WwLf9BXHGZwq+WAY>Go)%slSKm=ZzXkA38tK)JHm*`%q53=4+A6Yp?f-G|@~mJDKTq^nB>OU&~}(yp!*}H!+TM zGFJyq_VL=4dCi-BeENOG6lpT6lUc=vb9{RAp_6;^u9*CL6R ztBGcscTC=&FPcZv$yE|BR~1ctjFY)5;or3QS|IW2(L^)N>Ey@rc~u0jB@(Y5RW$XH zPG*kj>`1&8_*x^GdYWjanVrmavNsQ_ka&^0r;4UN(#dRpv?jz%>s%o5YMDlwXr}p{ z?98suB@(ZedZdb`KGMmof^c%obAiN*Og&9B)67oxQ_gdVbB(0#siLWmbTZoS)p(r? zBwi1uu_l^nb|=UC<(!9ANW31@V^uWukxu4$0cXv0E|Yk9nrNn(oy^k$&MwrsP~zpO zqN$H_GHdDMo{0VP`ZZqYon1{d)4WbbYK?iAlX9L*)OeA)r;4UN&dIDX_NZQpBwns2 znrU7q<3yudcYP_7c)6-*>LZ;Ds(5$fdY?;?#EVR0O*GTYPR8gHR~Ta+b}5s1VP5K} zqN$H`GEY!=PG0|1Bj#EA35rM)%`~%!ecYJL zGaw(gY$MLRu0=90R};-Nr<3nn5`bI1F#1GmLiXMj&NcR^qN$H@GTV>J>-gJ*q`H3Q z)uV}Kn%T+70leAuwZ!)tN!?RLQy=MMraNB$+>?3DnSDH%;!B)*o}!s%cXE6`27B)c z-)n5CM`sW;^>I$#zZd-Y-XzuwZF_jrDygoYc!8;_iDsJD$@|xWo#gsjqRQ(*9besj zPygLIr}ysT{g&L%-FF|e{oE0c#veHO_8&d|f2aRB{qKM9{=8!{>lx#9T+sl2`y zNxWQ5G}FvZ=D9{^c75Oc-oBk{e%X&s_Egc-Tdj`GuJ`$^SE6U{W^n2g=h{VbHTUjgRpCtiK3XzC-J zytm&=>|VCy1NDn-OLdMpW3^_VCYotxCzE+Jk0kT;Pc{CLdZdb`-umOH?7D5gvu1*m zS3lL*r-^2o*~xCLJ(#bbc*@36FZ}vyd;7jS{dD^A^!@4Q)7Ph8-hTJP>DSXY+uy(y5ON%x2;sf_SSh14Fusole^IICw~Ez?*N%`~%<-Fq0pyiVrjsiLWmb23OdmE)LS_nLR5>}sN^w+=bl%S^pIFZZNg^D~V!(M+E^dGtydx2fU`TwJk< znOINaHFy8*siLWmbTZq|yS(!o&Fp0FCP^}{l6j%ea#os} zdh48{$7Ju03{XW1+O|~BuV)^UJxw&z%ueR>Ib$-`(?0XL$7D|xO}*9XXeYB`Gnz@# z$yG8hPZP~Fvy*w7!af7zu5$YhKIUOK753NvP+)nmX(bQY5MmQO({kTd1Uovc4 zy6%`vrjaI^XWM2DiDy!}&^F9SsD8_T^mojG?T~#tV`D1g7gtNQ&QXuo{ z(L^)NIlJcbv9ixuCBKxY^6F7VQy()Xv;CM;pbp#VpL;T|IoHWOnrNn(olNFui+NAp zHS6rUr5>rGsgHEBKf8V{ka&@)r-^2o*~zR-bas?qOC(;T?x~`wk90EHAMc|f`FJgG zvhl$*)||CZI(v_=B@!=E_f*l;$2l4IETZDaSu?#BNW8$*)kHJR>tsG3Y9Znk z)oY2w>p?wMMN=Q?WXvS7^W;!nzsieDJxw&zyiR6iV!U6@d02%iFHmqrasciXg|In8;{B7B8eB7#+qoRnVpPV zuf6@`^Y-W3w{y+P5RS>7Dw=w$)p3;}ZTp=y)453Eh1*i`rbn7+rkS10b2CojbuN>5 z?I&jBwjtLXzC-K465;dIH|6G zs`0@z)}0N}oEm~liNuT4JykUIkxpj&ofB@C0*P14G}1&f&F*CEn#Vhjml8Ez z59+Zhn)*m5vu-?kYdI#bU*kolo+g@UW+(Icn9}ZNf7*ADyT)W*p~kDF9;u?Kw<;dD zpZsXQ_nn|iff}zKO*GTIPUcsTyxTP|B@!=CcU95U$2pnp$9EUvnbx&P;^k_hnPzq} zDqrw5R)=|o8ZSE8Q$11TrF4Y=|*Z#Gy=uOv5Gdr2gom%^AnZ#?S9;u?Kk90Cm zWjg7{wMgQH`xTw@VVY@XC!>ZS&gQXBzLrV6P-pL`qN$H_GSB_EV{(ne%hg0P&Ff@7 zpLgTawM2~S(#c%s zJ5Ih8NxXO#D!zR|GtKN|GIwgcZe?n`cIuHTn)*m50o%5yv zj>(=TnrUVyQjs%Yx1KaSl`-oLltjmhhOt&vXV-DZ&{nrUVy`;{TL zGKtrxEfGM@IcsGI+aIq9IVM+0yudWpWL_up{9AN>kIbvocaB{$&aU_NNBiM$^1VpnXwSU(yQbkiA>15pF71tP(YK_DT z_bxb^Xr`H+%;$@Dq0oC*NxXLIkt&+{NGG#KE#8F!)s<_!+A-PFL^I9oWIUg9PYjq> zNxVM3RcpqoXzHV#9DmJ>WAe&1UVnCStchlt*~v_4<6S5?xlZEcsiLWmb286z#cwT~ zj7+y}sZKv;I}7!2va5+^n%Bvwe(?4yz`RQ0<*K5oxBfUb@nZX3C)Y^4Tun67%ueNQ4J&D)MdyAjm?&OPA(f#vtFMm1x^Yqj9^PV33diuQeHTd<_M)14s-}d9_`_s>- zuTQ_c{qBd;ucvRezkzEYoYBPd;QR!?G0OYroTL+dTHDffS5=-SntH3$vGZ$wqt4rh z!oG9cQq6Q`FT1K}s+qmaC&WrZ&pbFX_vBvlCM2#VntJPyqrJ>JwP-d8rs&(-mTE80 z%+%9FGkxylZ%_X^{q_eXdzt_JF&X!wU}VNzEV>tk%qyf`J*sHxtv`CHe%@wT{OO%( zwe5FiTF7-W|GH%#H4-mZ6U{Wc zljAuD#$?<$(7v6z_nzO$u_~H+tJTp?X7!$vU4v}fQcZQ{G1=2ZGtKN|KA$%atCDzq z+}>_fq(`b~>a9PHb}~<%$M-s+f3A^u?dQ%TO*GTYPG*&^Q?ZF}ueNWe?!D(8lRZ^5 z^;WA9PIlMHH4-m6Io3oo&Ff@T__*hxaMOAFcCPDWR~1dY)#_L$v;FbCRhU`h#A@5p z)v3m+XsXY>{AFnEHFnyt9(3lCYXMZp@>$jFpu911Un#}0rmw#7Y$EWznyh7&H zql%{9_Ik&S$!tGPtj4QCQe8ju>d{0q%{eANo-f{UA@d5ESC1;1`bZ~xRcfTVe&$7{ zo+g@UUMI7j$#rst%nQ_ARW$W+PTnh;qBS9$eD2D;=FC3Gl$CFhCYotxCu8q4PV~sU zC-0hdABxmHRW$XHPUbq_xxfBgpvsF(Jxw&z%udFf19xX48`)1%wC^BuEjqbE;zjD7 zDw=w$;<4*w+y&yUlh50@+_qHbm@|*bo+g@UW+(G|@1B#ZBwn~7$?4xT_0}IpI~ncA z8X?ZE&jqTy*gJcgXr|en?Cn>aOH_G1sK=^k>Z6_Pr61?6yS!!|li}o86U{WQlUWbs z&aSH@Ual&d`Zy=E{od_tmm-OmtBGcs*~zT%iV{7nlP}wBt$jQ7ifZP>3q3bx*O4lk zdaKp3vun2Bb@KW(UYKXOnrNn(o$TFoLnl{By!ic*nVrmPO{d1|QY7)(t2HA{=5;ce zN2k5$vMJSLVz`c_TPHIuUobuEy1^=P7*=5%uVe9`?F zaPqZ8;?<*yrasciTr+u8*H662)YC*W&Fo~}bQ7htbaI8ni_|?;H1&~AX0_?Xs0_Il zNW30Q-}{aG>`wOfE3PH(u76OERmtmQBwq1NWbB{UPrS&~(?m1P>|~~#&N}&8BJp}q z$IX1Y+EG&LZ=Z8e_-Fw=#*B zr-^2o*U9)!BWmrP71gaw;^nHMsgHB=-hO9q@mAneBYJ076U{WUllk3M&&gF1ubICm z!?%`Hotf6HNaD3KjWn6t$?*vhtf+2f60e!>41tqbZR(wBycIar*rUm;PTuPhox3$} zWfCt}6-|BI>>6K1#tA-eom?aFay8LR^Uki_YE+KNRT3{(6-|Alll>iudy&LzXZpVV zh|Eq#-L<##crTN9vF4k-DdfrasciY=5*SWdFQ=;?**ZG|^16I~lv?x-OB-Dai-C z`e-LRyHL2dzUOO=bKc0;GF@?<{CGZRoebs`?(ynTC9jiFW9)qG3sl!X)kvnECYovH zF&Wv;hiw%cjmcnMp~j2UJykUIkz+F2k6XJPs_Wle|6m$xqM7D(GOJNB!*ZBcxW^0B zT~##oaZcXbAI&6RwhZ$_k;Kc@L^I9rn|QI7KAwGQrkS0L+l}y*&UkhW zEqvy)-dxWy*;7SRZ?!t^=6bf@-A_Khv2Rns_wtw1KTkhxKkwmwJ$>HRu=w@W*4FQ~f7_3z?@vFU zzCQi(_PZZWzn;F?{s#89*mFXL_mAzLj~?9HiNcqb+m^1~gU6a^>a9{Eyd19&ka=P4 z*tT?arcn;4nLc;&x2J!de*1%xz0BY1W8PHejmmX0FHaRsz4b>g)z4ec%%8v4JEQ$^ zPednI$-F#GG}FvZc27g0_pXz9d8%mYBc06CP|l7r{NA>7-7(qIL^I9qHj&p44mR9vohHZx24w%gpSY>X1)G>b!UZ(7M$j;OL&5 z`BWzJa#hj&_edx6n+wsN3wmeVr_r`_-TAeriDvqIOdh=t#dj7v#c>_MOPS2eRYg;8 z{c-gCn&+Y7+w0-vDw&t3iDsJD$@|xWoy_Z{Oy=dPqN$H_GWuN1w4B*B?vZF)y6Twh zYNDBDb~3+M;OsqOF6J|zIUOPO_nv2MwK{H0zP#1%v3A@WlPhFiJ*xa&FOSW<9#4oJ zH)n>ue&*GqiKaf%%gF5FFHUl$+*9W@YY$DTo+_H^^Km(YmzmXibL^g4uQ~JU2X*X2 z>i$hrAL(W0*G}s7S|IfzQ%@7k^tqEqre1tLuR0O^_iKsNt49@0eWa7U`b1J)KlOSr zeebF%vy*YJDo&m2(TB_{RCY^^Dw=w$ z;<5QP+aI5;C)J+JYu@a`)kHJR>|`c-&YlInE7QK6diQZ|Cwr=B>aA8sJK3+;#64|o zOIN1qsiLVq_wxAk8dY9y)h5m=``l;l!97hh^;W4dUXIdtjLJB*+O|}Cd48smCYtGU zCy!3AKW=viVNK=iSfIYoXFm6+?5U!uw^|+TWL6qSr+?_=8kyI}w{r$~-*vjHnPzq} zYf_z@6a9DlcIw`HZYO)HXzHz2|Bt-4+m-CLk}&g826_NbRh^T67ZT9As23Lu9IC=H1$@iqn*r3T+hipnb*wyGw!~@{4-KTQ+@8` z@hj#13!Mt=b64&)a}VxSrEBV=z3kQDUb<4R*_p>{DwZG1l zM`dJQu_~H+tJTq?GTR@GKbT)%x-zf1M`ceHP4&5#GmOft+H_XSm#*Av<{sSBL{lH> zWwzhRGA{+rH=;h|)7EPtKZrEZOrJY>{HVDL<&js%Wauy*zfM{P@E7OfKAf?aIAo@4;hDH1&~QX1?Rh zwXR*M*UU^kO*GTzP9C{ZrjPl3`xy$($J*Z@Q)>FSLZw%aDw=w$;&J&k+V8#{OseZw zdi7|cndWsenS1pi*Aki6gL?3DJip$5>(Tz4ruy8=#vVK6moy`St#N7bEGscGY>!-G9>wkt&+{ zcqcp6d$+FCYv$gWOe0M+)67ohp0aa$$gL~!n%l{qDw_I8C!_uG_=7R|RwVPn3-FF6 znrU_?$LTzoSIN9~>d|}gn)*m5V^2J;X(H7snU|-DW}4Z_ILGI$l5d4FFHaRseWa7w zey2L*R^Uc2=9r!)nrU7q^Sx;AMz32}-Zk^=+EqnUALnGg#_9IYH4-mZ6U{WUlW}*I zcQ*Z2Ch^*-zi-E4w3Fjoo-w<=7fHOxG}dHZCnM4GoO~~nc!_Iap9O;Bk^)Inb*nOZ*j7bdzr**KiL?mqN$IZ zT_fG`Zoa-3NxVL7>j*~^%{22mncwH!e0?vJczLR5>f@ZezXlzx4mc*)NW5H4G}F9J z-ro(5s+q{V%E?Ao6-|Allf66WUbgWV33uC4eY4ZNHC{W@sCUy$b2|CJ*sHxtv`-C4aN53H6)kn`Zw73Xrh^Bb~0<&;@LHvT%pE`)IC)+^^s0S z`{UarIVP{4cs-cLnrNn(os3r(;#2ixUf~9NQukER)JHlQm5I)d1p4QmbB%M(uF2HX zL^I9oWPBfPzIJBU74GtSP>)s7)JHm*iCwgJ%Kmx%#EVQlO*GTYPR94ezgaS`ka#_) z$Es-R7>a9PHb~35Pr_MpOM&h+IjWp3r zGdr0zUeWh)OsX<*K5ok94wM8G>JU+tO9X zKqM2rPGQTfc z5n@b6?&mX~^;9EvEcTlQB2_f?R;#0(j5XoM?Y6ym&4h1lTdJKrH&ss+P4&5#znuPl z`f2;qs@co^diuPbQ^Mb`HiF-6|7|~>zCZnZ`ughEFtdE?1H?_ugx{NP*LmTE80&ot6RGkxylZ%_X? z{quK99_?dPCOWrdErYPRW$Y1AH7s}AAkOfy))YHj>=UsFHaNAG`o}I9dpjF z>ttS_9;>3Mk94wkCoHJqTJil*NBz(?m1P?&SE~CdcHS zyld{96Vzi>H1#n~W|sN#wodlOLZmSr(RW$W+PTt>*<(Ry)ZQH|K3p1_P0*M!x zx|(RFd7aGf!-<&K$*-FlfBZH4&*{HT|NSTb_gQDx59+ZhntH3%afw&kekaF#Es%Ki zXrh^Bb~08}-hT3HiNuT4JykUIkxu41*{Sk+Es%IUn8xc!%`~%M;Q9To9*EJHa{e)YjiDsJF$z<-$!z$Ex(aD}Fn)*m5WAD^?tr6?w8i^N1 zV@DIsG_#YrU+z?0zm`e7NPW)JQ0$4gAMQ{+mr1-lP3Cnn_sc!zbrLU66-|BQn2h$v z)uxzTpUWg(o+g@U-Z2^HeK6;6vg>o1#LHDhQy=GKw%>W<4NhLa#tZWlR};-Nvy-`B z?v2S6YP?9@Q$14Lw$uZ9bPBpenBTY2Z%uYtO<7Fe~GBsZNyQ@+Erm2r`GS>Du zdCvQPqPr3}yIwu<>eECs&FJLz`{HUQGGG5xW1lLT`e-NPK8d*A2QSLBEnV+aqgqBb^MY-hT3R8>`xu>Y3JzcZTe}v!{t>n%&7> z%6Z*>8$R>7XV;|uzMQkw>gd@u+8^I}g8unhB=KVJ9BVSKlewSl>^xq}Bwjo>Gvga? z`}o6Kew}slb@>{vK27FzGMPKon%6>!m#2!RK5|S(`{T2?9FwagUY;hJY3A8AzAv70 zkoo$j8r%LmRz*`E>13YZi_#rZt&(_onrNn(os93p?>FABxE46oxI5WXMN=Q=WSoKm zRmaJjHCYot> zCx6@$%y>+`l}WsI>X9m%`bZ}uyY_0lZbcHWPg~04Xrh^Bb~3YTZyr{q#%n(d6{(`B zk94xXBXR3G)j0P|%Tq;DeeUHi1K(Zcs&N0^MkhCskKDTIyymSVa5d4?$9Wm=wz*Ya zx8-m0;_uwmL^FNvWx1l^3bA@;b^6H1*aw$L&M0{WxLmrPuea z%xliGU(G$hl zHK?wClNXtKnrNn(oy>O$z23V@;>9Z6InOonSL>bT!t3^Ux1jBFbQSKr>*P<{w_?nS z&i&2nWS;hlvK=z7Q04V-LYxC?>a9PHO}sw6tq$6C{-4jGNp<~mjb!@oiO`>GqM2qM zler@F#^frA7o9NgE)?sT;yDGKy#BdHIN8-?MkjyzSB;n3dsn#0t49@0eax85_WNrl z)H1d$U2%5Zqlspkb4-4GpR-?qd%P+nUOlR4>a9PHn_aisP-gYvz~@}P{kZXpW)S1pL==iX{h!Kqg0PQcu(pz zXVTfDiKaf<%icZ|W@K$k_56B%FUP8As`rrtW_=ovOEPNSM8 z_Rs65UhJPeO*GTzPX6}vkJCSY*DLlizn(sC{=(m{wz=|mr=Lzgp1wc*eERzI%iBNw zaQgN1&Gv6#Z;L(&RZOTVe|%ruQ;~U{)C<&ORW$XHPUgvaXMYi2*|t=V$}{)Qo+g@U zW+&tO;`IZZj4{e*KKD$_Q$;VuabJXs%YvXoeZkZt=H(Eds44?$7C{%HPK8nI~f(Ju9JHbubIbWtUMf5 zH1&~AM*E%H7UAS7nHQO*GTYPUe{} zC-r(MQ|pEG)ZA-jo^*@v^TL>1CH3+&nb*mD0n3|*)k(cPRW$W>q&s?c%@?km`fJ?p z)V6fpG1=2ZGtE3E<8-5!cwtrLGoL#h@l?^&Tdj_EGSB2Xb+|7D?(^cFvZsk=n%&9q zP8+k4p1f;*C&#L2>f@Y@+AZ|Y&P?ld`_Hv4U3E-$HPKA-I+@>x{~0G7`!l{&BeKCeg>O?{-3LDk!lcrB86 zk!h@nW}4Z_I4|Jc7xP-;279cj_P08ty*W*Nq?4Jwd$a4F#B1)EmZyrQ`rON3hQ8X! z-!1cbXD8~lEA^VUj(|5ZzPGw>w3oee6t6`xubpXhw&brmd30?EZ!C*%p+n~N+EwE< zbN}tCqN$H_^2;{2cK0OCMKUi}6V3Gbm^{MCNObV>D()V{%-XHEKQEnm{S{R-^<$m< z$M(myiRhot3s-sl6-_kL%uZ%H;#BsXm(IL?Pu){RQy=MMt_hv=`rMUy%{J5eJylN? zP4&5#$E=k9>trPo|5<-ekdras!s@t!!D_M~33GmSOTOrJY>{QMd{mA6tp zcO_o)_usK9n)*m5v*Oe_+jw3$^ZI@7>}jHzW_B_wQoWhj%5`3Uq#oamq^XZ~a{Mw5 z#^g&^<~4W!%-?#nKc}fa_i~2$HNP-Q=*hjO)@$aun5T)RKF-VgJx0!&=~5*1ay8LR zpF4T<{F=99cyG&G%A{VdDw_I8C-ZJtXRdYWO1-i) z-I-R;eO@z<$(|;fX|`?c zdheCbHvSp)NEJT$8p^O&{+Lo?)GNz>(siLVq_wv}4^5YBR*X+o>r_yWA zm2!_JntJPyOuA6cB81SYSdJp zdpW}l8yUTuk@TEzoOx9CG||*Ydf96~dT5*)XH7-Wwp4@9*C%c+xrg@#r?~7lvWAELQdCk14a#hjP$2l3bEpFi&6N zC%c+xrg@#rn_;oHsFMIXxk~Egs-mg4{y26_MwJ&%MMZT@q}r2u&Fo}P6U{WUlUWrM zWqM@ZlX%TMCV$#yoS2?qKD;OQn%T>qCYpNd zkP%*vPlK?3u9152{9mkzX8PR8-=6+)`seR@#a`yu)939T2>ktO8%e%9{dD^A^!@4Q z)7Ph8-u~%_)32v*wtoYATYL%r@{UcM%VmX#lXOCh_Sd;`|Lv)wskd77QvJLU<)8OZ zb=J!G1+*>IRA=s;$u!bLGtKT~=k{yNuIr>;td)xPWHt5HA0wO`-+;m~xk~ByF8uCYot>C&#M?I2m{P`^@J~Izc^F zMN@CJI(kfIbx1UmB-NhGYv$Rtr-^2o*U5Z4C%zq)%zN^#nVsyaqN$H_GTR@g@1$BI z@p3iMOfx&#z407la+So3FABvqGn)DsC%^udX1Zr%UJ4{$J(_5yIi1Y!!#vVE-H5x~ z+Fz$$QO!Cg_o$+&w^|)HyKdWmf7@A9F9xB1?n%5>pc<*7sXq7em!UUpKDdAU?WL$a zuWf&a^epFMJ*n56tEwJNH1$@)qrJ>?AWoIQYk|y*Og&9B)8|eexucBl+ut_Z9n2cP z_BZ(O@oS09t49@0y;bp8C*$lI_9XW4SX1rEyk;JiT~##I=UyH^D(_#&dB^VQ_IKF2 zxhMCUcT{#Y(bQWFM|jywy}5|AO?{-7{j(IW zUAfoXUiMVcRC9Y7wZ_i7%D1ft@5#Pq_OhpmrascktRHvIQoMF0U$ZlfZ6 zf%Vs17m~SC74%x-Hv1k`H1&~AX4R>)YC0Fmy>PM-2|}caW}4Z_+>LUog3g6W}4T@`}akAZPs)tV*;PeTZ?!r$^seyp*W%0(DmvO?{k`QIqK0Vub$rS|ITvQ%@7kG_#X&3eHP8 zuO$*MQukER)JHnmdqss#UO(}AFpX!QnrUVy;}o`+ja15`#PQA~yNaDp;SK=GqHPg&aW=iXg$rWn6=wwe7O?{-3k<;S#lXyS*RwVKI zwDnkyCYotxCv!#UoQ1lTNxVM&woZ;z(bPve8C2sN_%XZ2Ye8*GSFG`3@9b%!ndWrz zkaiT}&6;3twsG_O2{y472i|xmnFuu2&RM$_udNk2YGdr0%Kva!N<`r(Re^8I> zmNoT}PWIOMq`H3MMW&u6nrUVy^ZPs}SE%u7sYj}4>LZ=Zvs_M&iTQQg(iLadWa??6 znPzq}D~vtn6%wxp_4rL%O}+KU(X(r&A5l+)G5KB~@gh@C6U{WUlkt7Htt?JC?54b<;rm#j>s4#sOVoJvsFKymJ$2Xj0;d`uOyfLXGtE0D zJhJej}{2pL{QHs*y}tEfZ;?nPzq}zt6ex>0YA7tEC>P zqN$H|ay>79R zIj2fA)67n04O{GFF#p)WeAb%==wwe7O?|YJ||#1@j4k! zu2SQ*pK6R$(bPvenL85Rm|UaAi%j2J?UUEZc!$!dD`)RrrN+xuC99M7_Qz+T&_DOo zc+EW1a#hh(pL_Ys>F=kXwmvu52z~8^UQN$T+@8l-k+*9W@=lyM%i@BO;>hEFtdE?1Hf1PPOmn72~nHQPH znrNoao&4><*BbeoMZIP`>mc(gRbDt#;;5pjk90EHAOC7W6?>3vOINMeB-2KFeukvhnO~!hq;2WCPWCj>Ofx$f=?Lz-iRv}c zdsoT4ctSZ=MN@D6ah#K{|2nPeoNENt^)s&?O*GS-PUiRVEUV|_3Yk}rDw_I8C-aP3 zRMEuQbx-CsXZAs+o+g@UW+(IeqWdw(yeIFPb#~oSk5tjrM>?7J7e)JMq`H3MMW&u6 znrUVyWAzZvBgwo%;zjD7Dw_I8C$pl-nQ0*dYFoPEI+;v8O*GTYPG)V0$Gk$~Me3d^ zntJPxqu0r7zmsEPccyKrcJkaaEl(9q^|_bF?kGQgw;&p)UdZx&?lZ5dKt0w(Q*V_z z*2~yiLVE4YuklKF+fwc2d6~MJXr|AdJaR`FKHk62>%XgHUal&ddh3r7PL6vbteS8a zblcLkog8bTnPzq}UwQLJodVil*NB<7g)%$@D6Ia2Isj(siBeX`-2CcJk{R zb8jA2CG)~AE1VFiqN%t3INHgqZHam!jL9$CSGFx(*U6qHnrUVyBc1nFR4?0a+h;y= zI>M9bu_~H+tJTp?CRL}(>!mC6nt7eLZ=ZeKc=O zu9A3pnrNnZos0y)ACs#jUal&d`Zy=E{m%WGm|gcIUNiU4t}2@9b1#qIhvFB;=R~-w z>Pfxkor}4eXzHWA?A83>Mz6M|tFDxHrcw2TX8PR8qxYeBawdL}l0L4IdAX`+>a9PH zT`BW*!g!?*s;^y{*W9BrE4|*AWIp$DhEbV!S2+pEYgg_y^Qi1;lH1GiTAyC7Qt7q7 zzZ&I2n(7Q*j^Cp|A6}!ts|1z{%0~aVFN2dCk14a#hjP z$2l4M|DfueQ+_Rydbyftra7H_d%IXkV|9mb`>D8l&W}4Z_-W_yg z-jjFD?PO0CO?|YJz1j7-EAg72YOIQ;`rON3hTeSr=&j-rh;Htw_L_Mv1~12&XzC-q z>{r#FyE3o2z3i!?spj@FDpS23$aB}*jWc`M(?nAr>1DP*dIOyO^ZK=39J4%4G}Gr! z{&wIk_K)wwtswE9#d%vp5S{=Jq-cMRb6^d~3rAX@KYNDCub@Kjw zPSSZPlX|(TXzC-KjFZ;h-Pe~QsTWV5$C_xSnVrnj^`4Wfq+a`-1Cc74`bZ~xGf9rg z>z{AL>=U&E@nVuX!^sR})Qroob24th zb#~IwJ70@rUalsZX83K+R2z%I8LsSdF@OiO*GT&PLB6Z>EtSz7pcdpXzC-K z%o`J&(=pesI*NYmUZn1+qN$G=li7Y|*ACTNfyApv6U{WUlfgWGc>%rmtwiGWpdPED zsgHB={>GJ4CvYo}c!8;_iDsJD$*fF_f3tLQg~W^0x#ozRps9~^GUpV|n(5YcwsFpN zGMRdsXr`H+%o<%Ldi(8z?Qf7LCFtY|i5IDRs%Yx1ipQOyVEehZ81+P?+Ee8e=n1G?RD4DI#W|0>102<#=Gck zOZB<)nP=CYCYotpC*zhI^ip8hk6U{WEliTm}_LGs0_{`^=UH7S?skd5< zaB`eo}0$t6Q55e^Ys(2ow}!rrasci-tEq$x_aWZGxaplOfx%~`{hx}N#^S(UM=-F z`_}1w> zMXLuguakIrs%YvX$7I$sMK9`tD*CRrrRyeMo+g@UW+!`l_5LzNEJ=J)#}*UHBV*6cWbhL zu90}TnrNn($7E(Z(cNuiUM2C`Pc=rWXzC-K%r#-u6M-rc`nILIf1dFy)ILw~G|^1+ zIvE_@$`G6o@|n*(CcCO=>aAACj>$aB6~9bKC)Y^4Tun67%ue=h$tCkDiPwIralZ4( z9DnxqM`yW6wMOFQYBH~ry$WM8uabD7e!!_l*VIRj$yhUayHKB&Kh?PRZk{HZY34B* z--rGxuJOXl4DGK|uc+ppU3;o%>aA8s&#qAg;m)pWBwl=jBGyDR&Fo}WzBtvIpURwS z++QAvRMFH&JK3wd##!vPrMiEfH}Tq;Mkfq3)9g-;D~vI_ekqiAp?`~2(bQXi96KiS zri8f0m{e;dUalsZX-> zBwnQMsiLWmbTZoSW!EnS?(upsjWy9sGdr0#DL6ZixRtN{b*?-nd#Y&atyV{m$-F

d$`p4;?zf-c8`TKl~jK}wJg(@#N*;PeTZ~f6r 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 Axc~qF literal 0 HcmV?d00001 diff --git a/frontline/units-trailing/RSIScalpingXAUUSD-trailing/report.png b/frontline/units-trailing/RSIScalpingXAUUSD-trailing/report.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c91f23144f0b71a7c7da2a97f0945d84553ea9 GIT binary patch literal 8629 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 literal 0 HcmV?d00001 diff --git a/frontline/units/RSIScalpingBTCUSD/main.mq5 b/frontline/units/RSIScalpingBTCUSD/main.mq5 index 7866af1..ea69523 100644 --- a/frontline/units/RSIScalpingBTCUSD/main.mq5 +++ b/frontline/units/RSIScalpingBTCUSD/main.mq5 @@ -23,6 +23,14 @@ input double LotSize = 0.1; // Lot Size input int MagicNumber = 123459123; // Magic Number input int Slippage = 3; // Slippage in points +input group "=== Reversal escape (intrabar, multi-signal) ===" +input bool UseReversalEscape = true; // run while in position every tick +input int ReversalATRPeriod = 14; // ATR lookback on signal timeframe +input double ReversalAdverseAtrMult = 5.25; // close if price vs entry >= this * ATR +input int ReversalSignsRequired = 2; // how many independent signs must align +input double ReversalRsiVelocity = 16.0; // RSI points drop (long) / rise (short) vs prior buffer +input double ReversalBodyAtrMult = 5.1; // last closed bar body >= this * ATR counts as one sign + //--- Global variables CTrade trade; int rsi_handle; @@ -35,6 +43,12 @@ datetime last_bar_time = 0; bool rsi_against_position = false; int bars_against_count = 0; +void ResetPositionTracking(); +void SyncTrackedPosition(); +double ATRPriceOnTF(const int period); +int CountReversalEscapeSigns(const ENUM_POSITION_TYPE ptype, const double atr); +void TryReversalEscape(); + //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ @@ -77,21 +91,38 @@ void OnTick() { return; } - + // Check if this is a new bar datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); - if(current_bar_time == last_bar_time) + bool is_new_bar = (current_bar_time != last_bar_time); + bool in_position = position_open || PositionExistsByMagic(_Symbol, MagicNumber); + + // While flat, process only on new bars. While in position, allow intrabar reversal escape checks. + if(!in_position && !is_new_bar) { - return; // Still the same bar, don't process + return; } - - last_bar_time = current_bar_time; - + // Update RSI values if(!UpdateRSI()) { return; } + + if(in_position && UseReversalEscape) + { + TryReversalEscape(); + } + + if(!is_new_bar) + { + return; + } + + last_bar_time = current_bar_time; + + // Keep local tracking aligned with actual terminal positions for this symbol/magic. + SyncTrackedPosition(); // Check for existing position CheckExistingPosition(); @@ -120,6 +151,155 @@ bool UpdateRSI() return true; } +//+------------------------------------------------------------------+ +//| Wilder ATR in price units (signal timeframe) | +//+------------------------------------------------------------------+ +double ATRPriceOnTF(const int period) +{ + if(period < 1) + return 0.0; + + MqlRates rates[]; + const int need = period + 2; + if(CopyRates(_Symbol, TimeFrame, 0, need, rates) < need) + return 0.0; + + ArraySetAsSeries(rates, true); + double sum = 0.0; + for(int i = 1; i <= period; i++) + { + const double hl = rates[i].high - rates[i].low; + const double hc = MathAbs(rates[i].high - rates[i + 1].close); + const double lc = MathAbs(rates[i].low - rates[i + 1].close); + sum += MathMax(hl, MathMax(hc, lc)); + } + + return sum / (double)period; +} + +//+------------------------------------------------------------------+ +//| Independent adverse signs (need ReversalSignsRequired to exit) | +//+------------------------------------------------------------------+ +int CountReversalEscapeSigns(const ENUM_POSITION_TYPE ptype, const double atr) +{ + if(atr <= 0.0) + return 0; + + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + int signs = 0; + + if(ptype == POSITION_TYPE_BUY) + { + if(entry - bid >= ReversalAdverseAtrMult * atr) + signs++; + if(rsi_prev - rsi_current >= ReversalRsiVelocity) + signs++; + } + else if(ptype == POSITION_TYPE_SELL) + { + if(ask - entry >= ReversalAdverseAtrMult * atr) + signs++; + if(rsi_current - rsi_prev >= ReversalRsiVelocity) + signs++; + } + else + { + return 0; + } + + MqlRates rates[]; + if(CopyRates(_Symbol, TimeFrame, 0, 4, rates) >= 4) + { + ArraySetAsSeries(rates, true); + const double body = MathAbs(rates[1].close - rates[1].open); + if(body >= ReversalBodyAtrMult * atr) + { + if(ptype == POSITION_TYPE_BUY && rates[1].close < rates[1].open) + signs++; + else if(ptype == POSITION_TYPE_SELL && rates[1].close > rates[1].open) + signs++; + } + + if(ptype == POSITION_TYPE_BUY) + { + if(rates[1].close < rates[2].close && rates[2].close < rates[3].close) + signs++; + } + else + { + if(rates[1].close > rates[2].close && rates[2].close > rates[3].close) + signs++; + } + } + + return signs; +} + +//+------------------------------------------------------------------+ +//| Cut losers fast on violent reversals (evaluated every tick) | +//+------------------------------------------------------------------+ +void TryReversalEscape() +{ + ulong live_ticket = GetPositionTicketByMagic(_Symbol, MagicNumber); + if(live_ticket == 0) + return; + if(!PositionSelectByTicketSymbolAndMagic(live_ticket, _Symbol, MagicNumber)) + return; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double atr = ATRPriceOnTF(ReversalATRPeriod); + if(atr <= 0.0) + return; + + const int signs = CountReversalEscapeSigns(ptype, atr); + if(signs < ReversalSignsRequired) + return; + + ClosePosition(); + Print("RSIScalpingBTCUSD: reversal escape signs=", signs, " need=", ReversalSignsRequired, + " ATR=", DoubleToString(atr, (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS))); +} + +//+------------------------------------------------------------------+ +//| Reset local position tracking | +//+------------------------------------------------------------------+ +void ResetPositionTracking() +{ + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; +} + +//+------------------------------------------------------------------+ +//| Sync local state with real position in terminal | +//+------------------------------------------------------------------+ +void SyncTrackedPosition() +{ + ulong live_ticket = GetPositionTicketByMagic(_Symbol, MagicNumber); + if(live_ticket == 0) + { + ResetPositionTracking(); + return; + } + + // If we were not tracking (or ticket changed), start tracking the live position. + if(!position_open || position_ticket != (int)live_ticket) + { + if(PositionSelectByTicketSymbolAndMagic(live_ticket, _Symbol, MagicNumber)) + { + position_open = true; + position_ticket = (int)live_ticket; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + rsi_against_position = false; + bars_against_count = 0; + } + return; + } +} + //+------------------------------------------------------------------+ //| Check existing position for exit conditions | //+------------------------------------------------------------------+ @@ -133,10 +313,7 @@ void CheckExistingPosition() // Check if position still exists with correct magic number AND symbol for THIS EA if(!PositionSelectByTicketSymbolAndMagic(position_ticket, _Symbol, MagicNumber)) { - position_open = false; - position_ticket = 0; - rsi_against_position = false; - bars_against_count = 0; + ResetPositionTracking(); return; } @@ -308,20 +485,24 @@ void OpenSellPosition() //+------------------------------------------------------------------+ void ClosePosition() { + bool position_exists_before_close = PositionExistsByMagic(_Symbol, MagicNumber); + if(!position_exists_before_close) + { + ResetPositionTracking(); + return; + } + // Close position using helper that verifies symbol AND magic number for THIS EA if(ClosePositionByMagic(trade, _Symbol, MagicNumber)) { - position_open = false; - position_ticket = 0; - rsi_against_position = false; - bars_against_count = 0; + ResetPositionTracking(); } else { - // Position doesn't exist or wrong magic number - reset tracking - position_open = false; - position_ticket = 0; - rsi_against_position = false; - bars_against_count = 0; + // Keep tracking when close fails (e.g. market closed); retry on next bar. + if(!PositionExistsByMagic(_Symbol, MagicNumber)) + { + ResetPositionTracking(); + } } } diff --git a/frontline/units/SimpleTrendlineXAUUSD/SimpleTrendline.mq5 b/frontline/units/SimpleTrendlineXAUUSD/SimpleTrendline.mq5 index c869eeb..77ed295 100644 --- a/frontline/units/SimpleTrendlineXAUUSD/SimpleTrendline.mq5 +++ b/frontline/units/SimpleTrendlineXAUUSD/SimpleTrendline.mq5 @@ -13,12 +13,15 @@ input double InpBreakBuffer = 110; // Break confirmation input double InpLots = 0.10; // Position size input long InpMagic = 26042501; // Magic number input bool InpDrawTrendline = true; // Draw detected trendline +input bool InpUseSessionModeGate = true; // Block entries when symbol/session disallow opens +input bool InpBypassGateInTester = true; // Ignore gate in Strategy Tester for optimization CTrade trade; int g_maHandle = INVALID_HANDLE; datetime g_lastBarTime = 0; string g_lineName = "SimpleTrendline_Basis"; +datetime g_lastEntryBlockLog = 0; struct TrendlineModel { @@ -180,6 +183,75 @@ bool GetCurrentPosition(long &type, double &volume) return true; } +bool IsWithinAnyTradeSession(const datetime nowServer) +{ + MqlDateTime dt; + TimeToStruct(nowServer, dt); + ENUM_DAY_OF_WEEK day = (ENUM_DAY_OF_WEEK)dt.day_of_week; + int nowSec = dt.hour * 3600 + dt.min * 60 + dt.sec; + + datetime from = 0; + datetime to = 0; + bool hasAny = false; + for(uint idx = 0; idx < 16; idx++) + { + if(!SymbolInfoSessionTrade(_Symbol, day, idx, from, to)) + break; + hasAny = true; + // SymbolInfoSessionTrade returns session boundaries as time-of-day values. + MqlDateTime fdt, tdt; + TimeToStruct(from, fdt); + TimeToStruct(to, tdt); + int fromSec = fdt.hour * 3600 + fdt.min * 60 + fdt.sec; + int toSec = tdt.hour * 3600 + tdt.min * 60 + tdt.sec; + + // from==to on some brokers means full-day session. + if(fromSec == toSec) + { + return true; + } + else if(fromSec < toSec) + { + if(nowSec >= fromSec && nowSec <= toSec) + return true; + } + else + { + // Session passes midnight. + if(nowSec >= fromSec || nowSec <= toSec) + return true; + } + } + // If broker does not expose sessions for this symbol, do not block by session. + if(!hasAny) + return true; + return false; +} + +bool CanOpenNewPositionNow(const ENUM_ORDER_TYPE orderType) +{ + if(!InpUseSessionModeGate) + return true; + if(InpBypassGateInTester && (bool)MQLInfoInteger(MQL_TESTER)) + return true; + + long tradeMode = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE); + if(tradeMode == SYMBOL_TRADE_MODE_DISABLED || + tradeMode == SYMBOL_TRADE_MODE_CLOSEONLY) + return false; + if(orderType == ORDER_TYPE_BUY && + tradeMode == SYMBOL_TRADE_MODE_SHORTONLY) + return false; + if(orderType == ORDER_TYPE_SELL && + tradeMode == SYMBOL_TRADE_MODE_LONGONLY) + return false; + + if(!IsWithinAnyTradeSession(TimeCurrent())) + return false; + + return true; +} + void TryExitOnBreak(const TrendlineModel &m) { long posType; @@ -234,6 +306,16 @@ void TryPullbackEntry(const TrendlineModel &m) bool stillHealthy = (b2.close >= TrendlinePriceAtTime(m, b2.time) - tol); if(touched && reclaim && bullish && stillHealthy) { + if(!CanOpenNewPositionNow(ORDER_TYPE_BUY)) + { + datetime nowBar = iTime(_Symbol, _Period, 0); + if(nowBar != g_lastEntryBlockLog) + { + g_lastEntryBlockLog = nowBar; + Print("Buy entry skipped: symbol mode/session does not allow opening now"); + } + return; + } trade.Buy(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback buy"); } } @@ -245,6 +327,16 @@ void TryPullbackEntry(const TrendlineModel &m) bool stillWeak = (b2.close <= TrendlinePriceAtTime(m, b2.time) + tol); if(touched && reject && bearish && stillWeak) { + if(!CanOpenNewPositionNow(ORDER_TYPE_SELL)) + { + datetime nowBar = iTime(_Symbol, _Period, 0); + if(nowBar != g_lastEntryBlockLog) + { + g_lastEntryBlockLog = nowBar; + Print("Sell entry skipped: symbol mode/session does not allow opening now"); + } + return; + } trade.Sell(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback sell"); } } diff --git a/lab/EAs/RSILadderXAUUSD/main.mq5 b/lab/EAs/RSILadderXAUUSD/main.mq5 new file mode 100644 index 0000000..bf8b093 --- /dev/null +++ b/lab/EAs/RSILadderXAUUSD/main.mq5 @@ -0,0 +1,437 @@ +//+------------------------------------------------------------------+ +//| RSIScalping.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.03" + +#include +#include "../_united/MagicNumberHelpers.mqh" + +//--- Input parameters +input ENUM_TIMEFRAMES TimeFrame = PERIOD_H1; // Timeframe for Analysis +input int RSI_Period = 14; // RSI Period +input ENUM_APPLIED_PRICE RSI_Applied_Price = PRICE_CLOSE; // RSI Applied Price +input double RSI_Overbought = 71; // RSI Overbought Level +input double RSI_Oversold = 57; // RSI Oversold Level +input bool UseEntrySlopeFilter = false; // require RSI momentum on entry bars +input double EntryMinSlopePerBar = 1.0; // minimum RSI delta per bar for entry +input double RSI_Target_Buy = 80; // RSI Target for Buy Exit +input double RSI_Target_Sell = 57; // RSI Target for Sell Exit +input int BarsToWait = 4; // Bars to wait when RSI goes against position +input bool ExitOnAdverseRsiBarStep = true; // new bar: exit if last closed RSI vs prior closed is against trade +input double LotSize = 0.1; // Lot Size +input int MagicNumber = 129102315; // Magic Number +input int Slippage = 3; // Slippage in points + +input group "=== Reversal escape (intrabar, multi-signal) ===" +input bool UseReversalEscape = true; // run while in position every tick +input int ReversalATRPeriod = 14; // ATR lookback on signal timeframe +input double ReversalAdverseAtrMult = 5.25; // close if price vs entry >= this * ATR +input int ReversalSignsRequired = 2; // how many independent signs must align +input double ReversalRsiVelocity = 16.0; // RSI points drop (long) / rise (short) vs prior buffer +input double ReversalBodyAtrMult = 5.1; // last closed bar body >= this * ATR counts as one sign + +//--- Global variables +CTrade trade; +int rsi_handle; +double rsi_buffer[]; +double rsi_prev, rsi_current, rsi_two_bars_ago; +bool position_open = false; +int position_ticket = 0; +ENUM_POSITION_TYPE current_position_type = POSITION_TYPE_BUY; +datetime last_bar_time = 0; +bool rsi_against_position = false; +int bars_against_count = 0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize RSI indicator + rsi_handle = iRSI(_Symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + if(rsi_handle == INVALID_HANDLE) + { + return(INIT_FAILED); + } + + // Initialize trade object + trade.SetExpertMagicNumber(MagicNumber); + trade.SetDeviationInPoints(Slippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + // Allocate arrays + ArraySetAsSeries(rsi_buffer, true); + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsi_handle != INVALID_HANDLE) + IndicatorRelease(rsi_handle); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + if(Bars(_Symbol, TimeFrame) < RSI_Period + 2) + return; + + const datetime current_bar_time = iTime(_Symbol, TimeFrame, 0); + const bool new_bar = (current_bar_time != last_bar_time); + const bool in_pos = position_open || PositionExistsByMagic(_Symbol, (ulong)MagicNumber); + + if(!in_pos && !new_bar) + return; + + if(!UpdateRSI()) + return; + + if(in_pos && UseReversalEscape) + TryReversalEscape(); + + if(!new_bar) + return; + + last_bar_time = current_bar_time; + + ResyncPositionFromMarket(); + CheckExistingPosition(); + + if(!position_open && !PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + CheckEntrySignals(); +} + +//+------------------------------------------------------------------+ +//| Update RSI values | +//+------------------------------------------------------------------+ +bool UpdateRSI() +{ + if(CopyBuffer(rsi_handle, 0, 0, 3, rsi_buffer) < 3) + { + return false; + } + + rsi_current = rsi_buffer[0]; // Current bar + rsi_prev = rsi_buffer[1]; // Previous bar + rsi_two_bars_ago = rsi_buffer[2]; // Two bars ago + + return true; +} + +//+------------------------------------------------------------------+ +//| Wilder ATR in price units (signal timeframe) | +//+------------------------------------------------------------------+ +double ATRPriceOnTF(const int period) +{ + if(period < 1) + return 0.0; + MqlRates rates[]; + const int need = period + 2; + if(CopyRates(_Symbol, TimeFrame, 0, need, rates) < need) + return 0.0; + ArraySetAsSeries(rates, true); + double sum = 0.0; + for(int i = 1; i <= period; i++) + { + const double hl = rates[i].high - rates[i].low; + const double hc = MathAbs(rates[i].high - rates[i + 1].close); + const double lc = MathAbs(rates[i].low - rates[i + 1].close); + sum += MathMax(hl, MathMax(hc, lc)); + } + return sum / (double)period; +} + +//+------------------------------------------------------------------+ +//| Independent adverse signs (need ReversalSignsRequired to exit) | +//+------------------------------------------------------------------+ +int CountReversalEscapeSigns(const ENUM_POSITION_TYPE ptype, const double atr) +{ + if(atr <= 0.0) + return 0; + + const double entry = PositionGetDouble(POSITION_PRICE_OPEN); + const double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + const double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + int signs = 0; + + if(ptype == POSITION_TYPE_BUY) + { + if(entry - bid >= ReversalAdverseAtrMult * atr) + signs++; + if(rsi_prev - rsi_current >= ReversalRsiVelocity) + signs++; + } + else if(ptype == POSITION_TYPE_SELL) + { + if(ask - entry >= ReversalAdverseAtrMult * atr) + signs++; + if(rsi_current - rsi_prev >= ReversalRsiVelocity) + signs++; + } + else + return 0; + + MqlRates r[]; + if(CopyRates(_Symbol, TimeFrame, 0, 4, r) >= 4) + { + ArraySetAsSeries(r, true); + const double body = MathAbs(r[1].close - r[1].open); + if(body >= ReversalBodyAtrMult * atr) + { + if(ptype == POSITION_TYPE_BUY && r[1].close < r[1].open) + signs++; + else if(ptype == POSITION_TYPE_SELL && r[1].close > r[1].open) + signs++; + } + if(ptype == POSITION_TYPE_BUY) + { + if(r[1].close < r[2].close && r[2].close < r[3].close) + signs++; + } + else + { + if(r[1].close > r[2].close && r[2].close > r[3].close) + signs++; + } + } + + return signs; +} + +//+------------------------------------------------------------------+ +//| Cut losers fast on violent reversals (evaluated every tick) | +//+------------------------------------------------------------------+ +void TryReversalEscape() +{ + if(!PositionSelectByMagic(_Symbol, (ulong)MagicNumber)) + return; + + const ENUM_POSITION_TYPE ptype = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + const double atr = ATRPriceOnTF(ReversalATRPeriod); + if(atr <= 0.0) + return; + + const int n = CountReversalEscapeSigns(ptype, atr); + if(n < ReversalSignsRequired) + return; + + ClosePosition(); + Print("RSIScalpingXAUUSD: reversal escape signs=", n, " need=", ReversalSignsRequired, + " ATR=", DoubleToString(atr, (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS))); +} + +void ResyncPositionFromMarket() +{ + if(position_open) + return; + ulong t = GetPositionTicketByMagic(_Symbol, (ulong)MagicNumber); + if(t == 0 || !PositionSelectByTicket(t)) + return; + position_ticket = (int)t; + position_open = true; + current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); +} + +//+------------------------------------------------------------------+ +//| Check existing position for exit conditions | +//+------------------------------------------------------------------+ +void CheckExistingPosition() +{ + if(!position_open) + { + return; + } + + // Check if position still exists with correct magic number + if(!PositionSelectByTicketAndMagic(position_ticket, MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + return; + } + + // On each new bar: last completed RSI vs the bar before — exit if that step is adverse to the position + if(ExitOnAdverseRsiBarStep) + { + if(current_position_type == POSITION_TYPE_BUY && rsi_prev < rsi_two_bars_ago) + { + ClosePosition(); + return; + } + if(current_position_type == POSITION_TYPE_SELL && rsi_prev > rsi_two_bars_ago) + { + ClosePosition(); + return; + } + } + + // Exit conditions based on RSI target + if(current_position_type == POSITION_TYPE_BUY) + { + // Check if RSI is against the position (below oversold) + if(rsi_current < RSI_Oversold) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit long position when RSI reaches buy target + if(rsi_current >= RSI_Target_Buy) + { + ClosePosition(); + } + } + } + else if(current_position_type == POSITION_TYPE_SELL) + { + // Check if RSI is against the position (above overbought) + if(rsi_current > RSI_Overbought) + { + if(!rsi_against_position) + { + rsi_against_position = true; + bars_against_count = 1; + } + else + { + bars_against_count++; + } + + // Close position if RSI has been against for Y bars + if(bars_against_count >= BarsToWait) + { + ClosePosition(); + return; + } + } + else + { + // RSI is no longer against the position, reset counter + if(rsi_against_position) + { + rsi_against_position = false; + bars_against_count = 0; + } + + // Exit short position when RSI reaches sell target + if(rsi_current <= RSI_Target_Sell) + { + ClosePosition(); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + const double upSlope1 = rsi_prev - rsi_two_bars_ago; // older->prev + const double upSlope2 = rsi_current - rsi_prev; // prev->current + const double dnSlope1 = rsi_two_bars_ago - rsi_prev; // older->prev + const double dnSlope2 = rsi_prev - rsi_current; // prev->current + const bool buySlopeOk = (!UseEntrySlopeFilter) || (upSlope1 >= EntryMinSlopePerBar && upSlope2 >= EntryMinSlopePerBar); + const bool sellSlopeOk = (!UseEntrySlopeFilter) || (dnSlope1 >= EntryMinSlopePerBar && dnSlope2 >= EntryMinSlopePerBar); + + // Buy signal: RSI crosses from oversold to above oversold (checking the actual crossover) + if(rsi_two_bars_ago <= RSI_Oversold && rsi_prev > RSI_Oversold && buySlopeOk) + { + OpenBuyPosition(); + } + + // Sell signal: RSI crosses from overbought to below overbought (checking the actual crossover) + if(rsi_two_bars_ago >= RSI_Overbought && rsi_prev < RSI_Overbought && sellSlopeOk) + { + OpenSellPosition(); + } +} + +//+------------------------------------------------------------------+ +//| Open buy position | +//+------------------------------------------------------------------+ +void OpenBuyPosition() +{ + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + + if(trade.Buy(LotSize, _Symbol, ask, 0, 0, "RSI Scalping Buy")) + { + position_ticket = trade.ResultOrder(); + position_open = true; + current_position_type = POSITION_TYPE_BUY; + } +} + +//+------------------------------------------------------------------+ +//| Open sell position | +//+------------------------------------------------------------------+ +void OpenSellPosition() +{ + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(trade.Sell(LotSize, _Symbol, bid, 0, 0, "RSI Scalping Sell")) + { + position_ticket = trade.ResultOrder(); + position_open = true; + current_position_type = POSITION_TYPE_SELL; + } +} + +//+------------------------------------------------------------------+ +//| Close current position | +//+------------------------------------------------------------------+ +void ClosePosition() +{ + if(ClosePositionByMagic(trade, _Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + return; + } + if(!PositionExistsByMagic(_Symbol, (ulong)MagicNumber)) + { + position_open = false; + position_ticket = 0; + rsi_against_position = false; + bars_against_count = 0; + return; + } + Print("RSIScalpingXAUUSD: close failed (will retry on next bar). retcode=", + trade.ResultRetcode(), " lastError=", GetLastError()); +} diff --git a/lab/EAs/RSILadderXAUUSD/report.html b/lab/EAs/RSILadderXAUUSD/report.html new file mode 100644 index 0000000000000000000000000000000000000000..203dcf4c2f35164885b9198c4af8936996e6cca7 GIT binary patch literal 5649556 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

d$`p4;?zf-c8`TKl~jK}wJg(@#N*;PeTZ~f6r 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 Axc~qF literal 0 HcmV?d00001 diff --git a/lab/EAs/RSILadderXAUUSD/report.png b/lab/EAs/RSILadderXAUUSD/report.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c91f23144f0b71a7c7da2a97f0945d84553ea9 GIT binary patch literal 8629 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 literal 0 HcmV?d00001 diff --git a/lab/EAs/SimpleTrendlineTSLA/SimpleTrendline.mq5 b/lab/EAs/SimpleTrendlineTSLA/SimpleTrendline.mq5 new file mode 100644 index 0000000..c869eeb --- /dev/null +++ b/lab/EAs/SimpleTrendlineTSLA/SimpleTrendline.mq5 @@ -0,0 +1,284 @@ +#property strict +#property version "1.00" + +#include + +input ENUM_TIMEFRAMES InpHigherTF = PERIOD_M10; // Higher timeframe for MA/cross points +input int InpMAPeriod = 65; // MA period +input ENUM_MA_METHOD InpMAMethod = MODE_EMA; // MA method +input ENUM_APPLIED_PRICE InpAppliedPrice = PRICE_OPEN; // MA applied price +input int InpHTFBarsToScan = 500; // HTF bars to scan for crossings +input double InpLineTouchTolerance = 220; // Pullback touch tolerance (points) +input double InpBreakBuffer = 110; // Break confirmation buffer (points) +input double InpLots = 0.10; // Position size +input long InpMagic = 26042501; // Magic number +input bool InpDrawTrendline = true; // Draw detected trendline + +CTrade trade; + +int g_maHandle = INVALID_HANDLE; +datetime g_lastBarTime = 0; +string g_lineName = "SimpleTrendline_Basis"; + +struct TrendlineModel +{ + datetime t1; + datetime t2; + datetime t3; + double p1; + double p2; + double p3; + double a; + double b; + bool valid; +}; + +bool IsNewBar() +{ + datetime t = iTime(_Symbol, _Period, 0); + if(t == 0) + return false; + if(t != g_lastBarTime) + { + g_lastBarTime = t; + return true; + } + return false; +} + +int FindRecentCrossPoints(datetime ×[], double &prices[]) +{ + ArrayResize(times, 0); + ArrayResize(prices, 0); + + if(g_maHandle == INVALID_HANDLE) + return 0; + + int needBars = MathMax(InpHTFBarsToScan, InpMAPeriod + 20); + MqlRates rates[]; + double maBuf[]; + + int copiedRates = CopyRates(_Symbol, InpHigherTF, 0, needBars, rates); + int copiedMa = CopyBuffer(g_maHandle, 0, 0, needBars, maBuf); + if(copiedRates <= 5 || copiedMa <= 5) + return 0; + + int bars = MathMin(copiedRates, copiedMa); + ArraySetAsSeries(rates, true); + ArraySetAsSeries(maBuf, true); + + for(int i = 2; i < bars - 1; i++) + { + double d0 = rates[i].close - maBuf[i]; + double d1 = rates[i + 1].close - maBuf[i + 1]; + if(d0 == 0.0 || d1 == 0.0 || (d0 * d1 < 0.0)) + { + int n = ArraySize(times); + ArrayResize(times, n + 1); + ArrayResize(prices, n + 1); + times[n] = rates[i].time; + prices[n] = rates[i].close; + if(ArraySize(times) >= 3) + break; + } + } + + return ArraySize(times); +} + +bool BuildTrendlineFrom3Points(TrendlineModel &m) +{ + m.valid = false; + datetime ts[]; + double ps[]; + int n = FindRecentCrossPoints(ts, ps); + if(n < 3) + return false; + + // We collected from recent to older in series order. + // Re-map as oldest -> newest to stabilize slope direction. + datetime tOld[3]; + double pOld[3]; + for(int i = 0; i < 3; i++) + { + tOld[i] = ts[2 - i]; + pOld[i] = ps[2 - i]; + } + + long t0 = (long)tOld[0]; + double x1 = 0.0; + double x2 = (double)((long)tOld[1] - t0); + double x3 = (double)((long)tOld[2] - t0); + double y1 = pOld[0]; + double y2 = pOld[1]; + double y3 = pOld[2]; + + double sx = x1 + x2 + x3; + double sy = y1 + y2 + y3; + double sxx = x1 * x1 + x2 * x2 + x3 * x3; + double sxy = x1 * y1 + x2 * y2 + x3 * y3; + + double den = 3.0 * sxx - sx * sx; + if(MathAbs(den) < 1e-10) + return false; + + m.a = (3.0 * sxy - sx * sy) / den; + m.b = (sy - m.a * sx) / 3.0; + + m.t1 = tOld[0]; + m.t2 = tOld[1]; + m.t3 = tOld[2]; + m.p1 = pOld[0]; + m.p2 = pOld[1]; + m.p3 = pOld[2]; + m.valid = true; + return true; +} + +double TrendlinePriceAtTime(const TrendlineModel &m, datetime t) +{ + if(!m.valid) + return 0.0; + double x = (double)((long)t - (long)m.t1); + return m.a * x + m.b; +} + +void DrawTrendline(const TrendlineModel &m) +{ + if(!InpDrawTrendline || !m.valid) + return; + + datetime tStart = m.t1; + datetime tEnd = iTime(_Symbol, _Period, 0); + if(tEnd <= tStart) + tEnd = m.t3 + PeriodSeconds(_Period) * 20; + + double pStart = TrendlinePriceAtTime(m, tStart); + double pEnd = TrendlinePriceAtTime(m, tEnd); + + if(ObjectFind(0, g_lineName) < 0) + ObjectCreate(0, g_lineName, OBJ_TREND, 0, tStart, pStart, tEnd, pEnd); + else + { + ObjectMove(0, g_lineName, 0, tStart, pStart); + ObjectMove(0, g_lineName, 1, tEnd, pEnd); + } + + ObjectSetInteger(0, g_lineName, OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, g_lineName, OBJPROP_COLOR, clrGold); + ObjectSetInteger(0, g_lineName, OBJPROP_WIDTH, 2); +} + +bool GetCurrentPosition(long &type, double &volume) +{ + if(!PositionSelect(_Symbol)) + return false; + if((long)PositionGetInteger(POSITION_MAGIC) != InpMagic) + return false; + type = PositionGetInteger(POSITION_TYPE); + volume = PositionGetDouble(POSITION_VOLUME); + return true; +} + +void TryExitOnBreak(const TrendlineModel &m) +{ + long posType; + double vol; + if(!GetCurrentPosition(posType, vol)) + return; + + double close1 = iClose(_Symbol, _Period, 1); + datetime t1 = iTime(_Symbol, _Period, 1); + double line1 = TrendlinePriceAtTime(m, t1); + double buf = InpBreakBuffer * _Point; + + bool closePos = false; + if(posType == POSITION_TYPE_BUY && close1 < (line1 - buf)) + closePos = true; + if(posType == POSITION_TYPE_SELL && close1 > (line1 + buf)) + closePos = true; + + if(closePos) + trade.PositionClose(_Symbol); +} + +void TryPullbackEntry(const TrendlineModel &m) +{ + long posType; + double vol; + if(GetCurrentPosition(posType, vol)) + return; + + MqlRates bars1[], bars2[]; + if(CopyRates(_Symbol, _Period, 1, 1, bars1) != 1) + return; + if(CopyRates(_Symbol, _Period, 2, 1, bars2) != 1) + return; + if(ArraySize(bars1) < 1 || ArraySize(bars2) < 1) + return; + + MqlRates b1 = bars1[0]; + MqlRates b2 = bars2[0]; + + double line1 = TrendlinePriceAtTime(m, b1.time); + double tol = InpLineTouchTolerance * _Point; + + bool upTrend = (m.a > 0.0); + bool downTrend = (m.a < 0.0); + + if(upTrend) + { + bool touched = (b1.low <= (line1 + tol)); + bool reclaim = (b1.close > line1); + bool bullish = (b1.close > b1.open); + bool stillHealthy = (b2.close >= TrendlinePriceAtTime(m, b2.time) - tol); + if(touched && reclaim && bullish && stillHealthy) + { + trade.Buy(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback buy"); + } + } + else if(downTrend) + { + bool touched = (b1.high >= (line1 - tol)); + bool reject = (b1.close < line1); + bool bearish = (b1.close < b1.open); + bool stillWeak = (b2.close <= TrendlinePriceAtTime(m, b2.time) + tol); + if(touched && reject && bearish && stillWeak) + { + trade.Sell(InpLots, _Symbol, 0.0, 0.0, 0.0, "Pullback sell"); + } + } +} + +int OnInit() +{ + g_maHandle = iMA(_Symbol, InpHigherTF, InpMAPeriod, 0, InpMAMethod, InpAppliedPrice); + if(g_maHandle == INVALID_HANDLE) + return INIT_FAILED; + + trade.SetExpertMagicNumber(InpMagic); + g_lastBarTime = 0; + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + if(g_maHandle != INVALID_HANDLE) + IndicatorRelease(g_maHandle); + if(ObjectFind(0, g_lineName) >= 0) + ObjectDelete(0, g_lineName); +} + +void OnTick() +{ + if(!IsNewBar()) + return; + + TrendlineModel m; + if(!BuildTrendlineFrom3Points(m)) + return; + + DrawTrendline(m); + TryExitOnBreak(m); + TryPullbackEntry(m); +} diff --git a/lab/EAs/SimpleTrendlineTSLA/SimpleTrendline_optimization.set b/lab/EAs/SimpleTrendlineTSLA/SimpleTrendline_optimization.set new file mode 100644 index 0000000..29aaeca --- /dev/null +++ b/lab/EAs/SimpleTrendlineTSLA/SimpleTrendline_optimization.set @@ -0,0 +1,14 @@ +; SimpleTrendline.mq5 optimization preset (TSLA-focused) +; Strategy Tester -> Inputs -> Load +; Focus: trendline pullback + break exits on TSLA volatility (no broker SL/TP) +; +InpHigherTF=16385||16385||1||16387||Y +InpMAPeriod=55||30||5||160||Y +InpMAMethod=1||0||1||3||Y +InpAppliedPrice=0||0||1||6||Y +InpHTFBarsToScan=500||250||50||1500||Y +InpLineTouchTolerance=65.0||20.0||5.0||180.0||Y +InpBreakBuffer=22.0||8.0||2.0||70.0||Y +InpLots=0.10||0.10||0.01||0.10||N +InpMagic=26042501||26042501||1||26042501||N +InpDrawTrendline=false||false||0||true||N diff --git a/lab/EAs/catcher-optimization.set b/lab/EAs/catcher-optimization.set new file mode 100644 index 0000000..f7d4f7e --- /dev/null +++ b/lab/EAs/catcher-optimization.set @@ -0,0 +1,21 @@ +; saved on 2026.04.25 +; optimization profile for double-top-bottom-catcher.mq5 +; load this in Strategy Tester > Inputs tab > Load +; +InpTf=1||0||0||49153||N +InpHtf=5||0||0||49153||N +InpUseHtfFilter=true||false||0||true||Y +InpEmaFast=9||7||1||14||Y +InpEmaSlow=21||18||1||34||Y +InpPivotLeft=2||1||1||4||Y +InpPivotRight=2||1||1||4||Y +InpPatternLookbackBars=180||100||20||300||Y +InpMinPatternSeparation=6||4||1||12||Y +InpMaxPatternSeparation=50||20||5||80||Y +InpTopBottomTolPts=120.0||50.0||10.0||250.0||Y +InpMinEmaPriceDistPts=80.0||20.0||10.0||180.0||Y +InpPrevLevelLookback=120||50||10||250||Y +InpLots=0.01||0.01||0.0||0.01||N +InpSlBufferPts=25||10||5||60||Y +InpMagic=930101||930101||1||9301010||N +InpSlippagePts=30||10||5||50||Y diff --git a/lab/EAs/double-top-bottom-catcher.mq5 b/lab/EAs/double-top-bottom-catcher.mq5 new file mode 100644 index 0000000..9286bed --- /dev/null +++ b/lab/EAs/double-top-bottom-catcher.mq5 @@ -0,0 +1,350 @@ +//+------------------------------------------------------------------+ +//| double-top-bottom-catcher.mq5 | +//| Lab EA: Double top/bottom catcher with EMA distance + HTF trend | +//+------------------------------------------------------------------+ +#property copyright "Lab" +#property version "1.00" + +#include + +input ENUM_TIMEFRAMES InpTf = PERIOD_M1; // Signal timeframe +input ENUM_TIMEFRAMES InpHtf = PERIOD_M5; // Higher timeframe +input bool InpUseHtfFilter = true; // Require HTF trend alignment +input int InpEmaFast = 9; // Fast EMA +input int InpEmaSlow = 21; // Slow EMA + +input int InpPivotLeft = 2; // Pivot bars left +input int InpPivotRight = 2; // Pivot bars right +input int InpPatternLookbackBars = 180; // Search range for patterns +input int InpMinPatternSeparation = 6; // Min bars between tops/bottoms +input int InpMaxPatternSeparation = 50; // Max bars between tops/bottoms +input double InpTopBottomTolPts = 120; // Max diff between top/top or bottom/bottom +input double InpMinEmaPriceDistPts = 80; // Min stretch from EMA at 2nd touch +input int InpPrevLevelLookback = 120; // Lookback to find previous support/resistance + +input double InpLots = 0.01; +input int InpSlBufferPts = 25; // SL buffer beyond pattern extreme +input ulong InpMagic = 20260425; +input int InpSlippagePts = 30; + +CTrade g_trade; + +int g_hEmaFast = INVALID_HANDLE; +int g_hEmaSlow = INVALID_HANDLE; +int g_hEmaFastHtf = INVALID_HANDLE; +int g_hEmaSlowHtf = INVALID_HANDLE; + +double g_emaFast[]; +double g_emaSlow[]; +double g_emaFastHtf[]; +double g_emaSlowHtf[]; + +int OnInit() +{ + g_trade.SetExpertMagicNumber(InpMagic); + g_trade.SetDeviationInPoints(InpSlippagePts); + SetTradeFillingBySymbol(); + + g_hEmaFast = iMA(_Symbol, InpTf, InpEmaFast, 0, MODE_EMA, PRICE_CLOSE); + g_hEmaSlow = iMA(_Symbol, InpTf, InpEmaSlow, 0, MODE_EMA, PRICE_CLOSE); + g_hEmaFastHtf = iMA(_Symbol, InpHtf, InpEmaFast, 0, MODE_EMA, PRICE_CLOSE); + g_hEmaSlowHtf = iMA(_Symbol, InpHtf, InpEmaSlow, 0, MODE_EMA, PRICE_CLOSE); + + if(g_hEmaFast == INVALID_HANDLE || g_hEmaSlow == INVALID_HANDLE || + g_hEmaFastHtf == INVALID_HANDLE || g_hEmaSlowHtf == INVALID_HANDLE) + return INIT_FAILED; + + ArraySetAsSeries(g_emaFast, true); + ArraySetAsSeries(g_emaSlow, true); + ArraySetAsSeries(g_emaFastHtf, true); + ArraySetAsSeries(g_emaSlowHtf, true); + + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + if(g_hEmaFast != INVALID_HANDLE) IndicatorRelease(g_hEmaFast); + if(g_hEmaSlow != INVALID_HANDLE) IndicatorRelease(g_hEmaSlow); + if(g_hEmaFastHtf != INVALID_HANDLE) IndicatorRelease(g_hEmaFastHtf); + if(g_hEmaSlowHtf != INVALID_HANDLE) IndicatorRelease(g_hEmaSlowHtf); +} + +void OnTick() +{ + static datetime lastBar = 0; + datetime barTime = iTime(_Symbol, InpTf, 0); + if(barTime == lastBar) + return; + lastBar = barTime; + + const int need = MathMax(260, InpPatternLookbackBars + InpPrevLevelLookback + 20); + if(CopyBuffer(g_hEmaFast, 0, 0, need, g_emaFast) < need) return; + if(CopyBuffer(g_hEmaSlow, 0, 0, need, g_emaSlow) < need) return; + if(CopyBuffer(g_hEmaFastHtf, 0, 0, 5, g_emaFastHtf) < 5) return; + if(CopyBuffer(g_hEmaSlowHtf, 0, 0, 5, g_emaSlowHtf) < 5) return; + + if(PositionExistsForMagic()) + return; + + TryEnterLongDoubleBottom(); + if(!PositionExistsForMagic()) + TryEnterShortDoubleTop(); +} + +void TryEnterLongDoubleBottom() +{ + int firstBottom = -1; // older + int secondBottom = -1; // newer + double neckline = 0.0; + double lowA = 0.0; + double lowB = 0.0; + + if(!FindDoubleBottom(firstBottom, secondBottom, neckline, lowA, lowB)) + return; + + const int c = 1; + double close1 = iClose(_Symbol, InpTf, c); + if(close1 <= neckline) + return; // wait for neckline break confirmation + + double pt = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + double stretched = g_emaFast[secondBottom] - lowB; + if(stretched < InpMinEmaPriceDistPts * pt) + return; // no enough EMA/price displacement for reversal + + if(close1 <= g_emaFast[c]) + return; // keep confirmation strict: close above EMA fast + + if(InpUseHtfFilter && !(g_emaFastHtf[c] > g_emaSlowHtf[c])) + return; + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + double sl = MathMin(lowA, lowB) - InpSlBufferPts * pt; + double tp = FindPreviousResistance(firstBottom); + if(tp <= ask + pt) + return; + if(sl >= ask - pt) + return; + + sl = NormalizeDouble(sl, digits); + tp = NormalizeDouble(tp, digits); + g_trade.Buy(InpLots, _Symbol, ask, sl, tp, "Double bottom"); +} + +void TryEnterShortDoubleTop() +{ + int firstTop = -1; // older + int secondTop = -1; // newer + double neckline = 0.0; + double hiA = 0.0; + double hiB = 0.0; + + if(!FindDoubleTop(firstTop, secondTop, neckline, hiA, hiB)) + return; + + const int c = 1; + double close1 = iClose(_Symbol, InpTf, c); + if(close1 >= neckline) + return; // wait for neckline break confirmation + + double pt = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + double stretched = hiB - g_emaFast[secondTop]; + if(stretched < InpMinEmaPriceDistPts * pt) + return; // no enough EMA/price displacement for reversal + + if(close1 >= g_emaFast[c]) + return; // keep confirmation strict: close below EMA fast + + if(InpUseHtfFilter && !(g_emaFastHtf[c] < g_emaSlowHtf[c])) + return; + + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS); + double sl = MathMax(hiA, hiB) + InpSlBufferPts * pt; + double tp = FindPreviousSupport(firstTop); + if(tp >= bid - pt) + return; + if(sl <= bid + pt) + return; + + sl = NormalizeDouble(sl, digits); + tp = NormalizeDouble(tp, digits); + g_trade.Sell(InpLots, _Symbol, bid, sl, tp, "Double top"); +} + +bool FindDoubleBottom(int &firstBottom, int &secondBottom, double &neckline, double &lowA, double &lowB) +{ + double pt = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + int minShift = InpPivotRight + 1; + int maxShift = MathMin(InpPatternLookbackBars, Bars(_Symbol, InpTf) - InpPivotLeft - 2); + if(maxShift <= minShift + InpPivotLeft + InpPivotRight + 2) + return false; + + for(int newer = minShift; newer <= maxShift; newer++) + { + if(!IsPivotLow(newer)) + continue; + for(int older = newer + InpMinPatternSeparation; older <= maxShift; older++) + { + int sep = older - newer; + if(sep > InpMaxPatternSeparation) + break; + if(!IsPivotLow(older)) + continue; + + double lNew = iLow(_Symbol, InpTf, newer); + double lOld = iLow(_Symbol, InpTf, older); + if(MathAbs(lNew - lOld) > InpTopBottomTolPts * pt) + continue; + + double neck = HighestHighBetween(newer, older); + if(neck <= 0.0) + continue; + + firstBottom = older; + secondBottom = newer; + lowA = lOld; + lowB = lNew; + neckline = neck; + return true; + } + } + return false; +} + +bool FindDoubleTop(int &firstTop, int &secondTop, double &neckline, double &hiA, double &hiB) +{ + double pt = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + int minShift = InpPivotRight + 1; + int maxShift = MathMin(InpPatternLookbackBars, Bars(_Symbol, InpTf) - InpPivotLeft - 2); + if(maxShift <= minShift + InpPivotLeft + InpPivotRight + 2) + return false; + + for(int newer = minShift; newer <= maxShift; newer++) + { + if(!IsPivotHigh(newer)) + continue; + for(int older = newer + InpMinPatternSeparation; older <= maxShift; older++) + { + int sep = older - newer; + if(sep > InpMaxPatternSeparation) + break; + if(!IsPivotHigh(older)) + continue; + + double hNew = iHigh(_Symbol, InpTf, newer); + double hOld = iHigh(_Symbol, InpTf, older); + if(MathAbs(hNew - hOld) > InpTopBottomTolPts * pt) + continue; + + double neck = LowestLowBetween(newer, older); + if(neck <= 0.0) + continue; + + firstTop = older; + secondTop = newer; + hiA = hOld; + hiB = hNew; + neckline = neck; + return true; + } + } + return false; +} + +bool IsPivotLow(const int shift) +{ + double v = iLow(_Symbol, InpTf, shift); + for(int i = 1; i <= InpPivotLeft; i++) + if(iLow(_Symbol, InpTf, shift + i) <= v) return false; + for(int i = 1; i <= InpPivotRight; i++) + if(iLow(_Symbol, InpTf, shift - i) < v) return false; + return true; +} + +bool IsPivotHigh(const int shift) +{ + double v = iHigh(_Symbol, InpTf, shift); + for(int i = 1; i <= InpPivotLeft; i++) + if(iHigh(_Symbol, InpTf, shift + i) >= v) return false; + for(int i = 1; i <= InpPivotRight; i++) + if(iHigh(_Symbol, InpTf, shift - i) > v) return false; + return true; +} + +double HighestHighBetween(const int shiftA, const int shiftB) +{ + int from = MathMin(shiftA, shiftB); + int to = MathMax(shiftA, shiftB); + double v = -DBL_MAX; + for(int i = from; i <= to; i++) + v = MathMax(v, iHigh(_Symbol, InpTf, i)); + return v; +} + +double LowestLowBetween(const int shiftA, const int shiftB) +{ + int from = MathMin(shiftA, shiftB); + int to = MathMax(shiftA, shiftB); + double v = DBL_MAX; + for(int i = from; i <= to; i++) + v = MathMin(v, iLow(_Symbol, InpTf, i)); + return v; +} + +double FindPreviousResistance(const int firstBottomShift) +{ + int start = firstBottomShift + 1; + int end = firstBottomShift + InpPrevLevelLookback; + int bars = Bars(_Symbol, InpTf); + end = MathMin(end, bars - 2); + if(start > end) + return 0.0; + + double r = -DBL_MAX; + for(int i = start; i <= end; i++) + r = MathMax(r, iHigh(_Symbol, InpTf, i)); + return r; +} + +double FindPreviousSupport(const int firstTopShift) +{ + int start = firstTopShift + 1; + int end = firstTopShift + InpPrevLevelLookback; + int bars = Bars(_Symbol, InpTf); + end = MathMin(end, bars - 2); + if(start > end) + return 0.0; + + double s = DBL_MAX; + for(int i = start; i <= end; i++) + s = MathMin(s, iLow(_Symbol, InpTf, i)); + return s; +} + +bool PositionExistsForMagic() +{ + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket == 0) continue; + if(!PositionSelectByTicket(ticket)) continue; + if(PositionGetString(POSITION_SYMBOL) != _Symbol) continue; + if((ulong)PositionGetInteger(POSITION_MAGIC) == InpMagic) + return true; + } + return false; +} + +void SetTradeFillingBySymbol() +{ + long mask = SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE); + if((mask & SYMBOL_FILLING_IOC) != 0) + g_trade.SetTypeFilling(ORDER_FILLING_IOC); + else if((mask & SYMBOL_FILLING_FOK) != 0) + g_trade.SetTypeFilling(ORDER_FILLING_FOK); + else + g_trade.SetTypeFilling(ORDER_FILLING_RETURN); +} diff --git a/lab/EAs/rsi-dual-martingale-hybrid.mq5 b/lab/EAs/rsi-dual-martingale-hybrid.mq5 new file mode 100644 index 0000000..066a3d3 --- /dev/null +++ b/lab/EAs/rsi-dual-martingale-hybrid.mq5 @@ -0,0 +1,404 @@ +//+------------------------------------------------------------------+ +//| rsi-dual-martingale-hybrid.mq5 | +//| Two robots: RSI reversal martingale + RSI midpoint trend helper | +//+------------------------------------------------------------------+ +#property copyright "Lab" +#property version "1.00" + +#include + +//--- core +input ENUM_TIMEFRAMES InpTf = PERIOD_M5; +input int InpRsiLen = 14; +input double InpRsiOverbought = 70.0; +input double InpRsiOversold = 30.0; +input double InpRsiMid = 50.0; + +//--- money +input double InpBaseLot = 0.01; +input int InpSlippagePts = 30; +input ulong InpMagicBase = 2026042501; + +//--- robot A: RSI reversal martingale +input bool InpEnableReversalMartingale = true; +input double InpMartingaleMult = 1.7; +input int InpMartingaleStepPts = 300; +input int InpMartingaleMaxLevels = 6; + +//--- robot B: reverse martingale trend follow (RSI cross midpoint) +input bool InpEnableTrendReverseMartingale = true; +input double InpTrendPyramidMult = 1.5; +input int InpTrendPyramidStepPts = 250; +input int InpTrendMaxLevels = 5; + +//--- rescue / coordination +input bool InpEnableRescue = true; +input double InpTroubleLossMoney = -8.0; // martingale basket in trouble below this +input double InpRescueLotMult = 2.0; // base lot multiplier for rescue trade +input int InpRescueCooldownBars = 3; + +CTrade g_trade; +int g_hRsi = INVALID_HANDLE; +double g_rsi[]; + +datetime g_lastBar = 0; +int g_lastRescueBarIndex = -1000000; + +enum RobotDirection +{ + DIR_NONE = 0, + DIR_BUY = 1, + DIR_SELL = -1 +}; + +// Magic map: +// base + 1 : reversal martingale basket +// base + 2 : trend reverse-martingale basket +// base + 3 : rescue positions +ulong MagicRev() { return InpMagicBase + 1; } +ulong MagicTrend() { return InpMagicBase + 2; } +ulong MagicRescue() { return InpMagicBase + 3; } + +int OnInit() +{ + g_trade.SetDeviationInPoints(InpSlippagePts); + SetTradeFillingBySymbol(); + + g_hRsi = iRSI(_Symbol, InpTf, InpRsiLen, PRICE_CLOSE); + if(g_hRsi == INVALID_HANDLE) + return INIT_FAILED; + + ArraySetAsSeries(g_rsi, true); + return INIT_SUCCEEDED; +} + +void OnDeinit(const int reason) +{ + if(g_hRsi != INVALID_HANDLE) + IndicatorRelease(g_hRsi); +} + +void OnTick() +{ + if(CopyBuffer(g_hRsi, 0, 0, 10, g_rsi) < 10) + return; + + // Rescue management can run every tick. + ManageRescueCoordination(); + + datetime t = iTime(_Symbol, InpTf, 0); + if(t == g_lastBar) + return; + g_lastBar = t; + + if(InpEnableReversalMartingale) + RunReversalMartingale(); + + if(InpEnableTrendReverseMartingale) + RunTrendReverseMartingale(); +} + +void RunReversalMartingale() +{ + ulong magic = MagicRev(); + int count = BasketCountByMagic(magic); + double rsi1 = g_rsi[1]; + + // No fixed TP/SL: close reversal basket when mean-reversion reaches RSI midpoint. + RobotDirection dir = BasketDirectionByMagic(magic); + if(count > 0 && + ((dir == DIR_BUY && rsi1 >= InpRsiMid) || + (dir == DIR_SELL && rsi1 <= InpRsiMid))) + { + CloseBasketByMagic(magic); + return; + } + + double rsi2 = g_rsi[2]; + + if(count == 0) + { + if(rsi2 < InpRsiOversold && rsi1 > InpRsiOversold) + { + OpenMarketByDirection(magic, DIR_BUY, NormalizeVolume(InpBaseLot), "REV start"); + return; + } + if(rsi2 > InpRsiOverbought && rsi1 < InpRsiOverbought) + { + OpenMarketByDirection(magic, DIR_SELL, NormalizeVolume(InpBaseLot), "REV start"); + return; + } + return; + } + + if(dir == DIR_NONE || count >= InpMartingaleMaxLevels) + return; + + double lastEntry = LastEntryPriceByMagic(magic); + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double pt = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + + bool adverseEnough = false; + if(dir == DIR_BUY) + adverseEnough = (lastEntry - bid) >= (InpMartingaleStepPts * pt); + else if(dir == DIR_SELL) + adverseEnough = (ask - lastEntry) >= (InpMartingaleStepPts * pt); + + if(!adverseEnough) + return; + + double lot = NormalizeVolume(InpBaseLot * MathPow(InpMartingaleMult, count)); + OpenMarketByDirection(magic, dir, lot, "REV scale"); +} + +void RunTrendReverseMartingale() +{ + ulong magic = MagicTrend(); + int count = BasketCountByMagic(magic); + RobotDirection dir = BasketDirectionByMagic(magic); + double basketProfit = BasketProfitByMagic(magic); + double rsi1 = g_rsi[1]; + double rsi2 = g_rsi[2]; + + // No fixed TP/SL: close trend basket when RSI crosses back through midpoint. + if(count > 0 && + ((dir == DIR_BUY && rsi2 > InpRsiMid && rsi1 < InpRsiMid) || + (dir == DIR_SELL && rsi2 < InpRsiMid && rsi1 > InpRsiMid))) + { + CloseBasketByMagic(magic); + return; + } + + if(count == 0) + { + if(rsi2 < InpRsiMid && rsi1 > InpRsiMid) + { + OpenMarketByDirection(magic, DIR_BUY, NormalizeVolume(InpBaseLot), "TREND cross"); + return; + } + if(rsi2 > InpRsiMid && rsi1 < InpRsiMid) + { + OpenMarketByDirection(magic, DIR_SELL, NormalizeVolume(InpBaseLot), "TREND cross"); + return; + } + return; + } + + if(dir == DIR_NONE || count >= InpTrendMaxLevels) + return; + if(basketProfit <= 0.0) + return; // reverse martingale: only add into winners + + double lastEntry = LastEntryPriceByMagic(magic); + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double pt = SymbolInfoDouble(_Symbol, SYMBOL_POINT); + + bool favorableEnough = false; + if(dir == DIR_BUY) + favorableEnough = (bid - lastEntry) >= (InpTrendPyramidStepPts * pt); + else if(dir == DIR_SELL) + favorableEnough = (lastEntry - ask) >= (InpTrendPyramidStepPts * pt); + + if(!favorableEnough) + return; + + double lot = NormalizeVolume(InpBaseLot * MathPow(InpTrendPyramidMult, count)); + OpenMarketByDirection(magic, dir, lot, "TREND add"); +} + +void ManageRescueCoordination() +{ + if(!InpEnableRescue) + return; + + ulong mRev = MagicRev(); + ulong mRes = MagicRescue(); + + double revProfit = BasketProfitByMagic(mRev); + int revCount = BasketCountByMagic(mRev); + + if(revCount == 0) + { + CloseBasketByMagic(mRes); + return; + } + + // Phase 1: no fixed rescue TP/SL; close rescue on RSI midpoint recross against rescue direction. + RobotDirection rescueDir = BasketDirectionByMagic(mRes); + if(BasketCountByMagic(mRes) > 0 && + ((rescueDir == DIR_BUY && g_rsi[2] > InpRsiMid && g_rsi[1] < InpRsiMid) || + (rescueDir == DIR_SELL && g_rsi[2] < InpRsiMid && g_rsi[1] > InpRsiMid))) + { + ulong worstTicket = WorstTicketByMagic(mRev); + CloseBasketByMagic(mRes); + if(worstTicket != 0) + g_trade.PositionClose(worstTicket); + return; + } + + // Phase 2: if martingale basket is in trouble, launch one trend-aligned rescue trade. + if(revProfit > InpTroubleLossMoney) + return; + + if(BasketCountByMagic(mRes) > 0) + return; + + int barsNow = iBars(_Symbol, InpTf); + if((barsNow - g_lastRescueBarIndex) < InpRescueCooldownBars) + return; + + RobotDirection helperDir = (g_rsi[1] >= InpRsiMid ? DIR_BUY : DIR_SELL); + + // avoid adding rescue in same direction as losing reversal basket when RSI trend disagrees + RobotDirection revDir = BasketDirectionByMagic(mRev); + if(revDir == helperDir) + helperDir = (helperDir == DIR_BUY ? DIR_SELL : DIR_BUY); + + double lot = NormalizeVolume(InpBaseLot * InpRescueLotMult); + if(OpenMarketByDirection(mRes, helperDir, lot, "RESCUE")) + g_lastRescueBarIndex = barsNow; +} + +bool OpenMarketByDirection(const ulong magic, const RobotDirection dir, const double lot, const string comment) +{ + if(dir == DIR_NONE || lot <= 0.0) + return false; + + g_trade.SetExpertMagicNumber(magic); + + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + + if(dir == DIR_BUY) + return g_trade.Buy(lot, _Symbol, ask, 0.0, 0.0, comment); + return g_trade.Sell(lot, _Symbol, bid, 0.0, 0.0, comment); +} + +int BasketCountByMagic(const ulong magic) +{ + int n = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket == 0) continue; + if(!PositionSelectByTicket(ticket)) continue; + if(PositionGetString(POSITION_SYMBOL) != _Symbol) continue; + if((ulong)PositionGetInteger(POSITION_MAGIC) != magic) continue; + n++; + } + return n; +} + +double BasketProfitByMagic(const ulong magic) +{ + double sum = 0.0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket == 0) continue; + if(!PositionSelectByTicket(ticket)) continue; + if(PositionGetString(POSITION_SYMBOL) != _Symbol) continue; + if((ulong)PositionGetInteger(POSITION_MAGIC) != magic) continue; + sum += PositionGetDouble(POSITION_PROFIT); + } + return sum; +} + +RobotDirection BasketDirectionByMagic(const ulong magic) +{ + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket == 0) continue; + if(!PositionSelectByTicket(ticket)) continue; + if(PositionGetString(POSITION_SYMBOL) != _Symbol) continue; + if((ulong)PositionGetInteger(POSITION_MAGIC) != magic) continue; + long type = PositionGetInteger(POSITION_TYPE); + return (type == POSITION_TYPE_BUY ? DIR_BUY : DIR_SELL); + } + return DIR_NONE; +} + +double LastEntryPriceByMagic(const ulong magic) +{ + datetime newest = 0; + double price = 0.0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket == 0) continue; + if(!PositionSelectByTicket(ticket)) continue; + if(PositionGetString(POSITION_SYMBOL) != _Symbol) continue; + if((ulong)PositionGetInteger(POSITION_MAGIC) != magic) continue; + datetime t = (datetime)PositionGetInteger(POSITION_TIME); + if(t >= newest) + { + newest = t; + price = PositionGetDouble(POSITION_PRICE_OPEN); + } + } + return price; +} + +ulong WorstTicketByMagic(const ulong magic) +{ + double worstProfit = DBL_MAX; + ulong worstTicket = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket == 0) continue; + if(!PositionSelectByTicket(ticket)) continue; + if(PositionGetString(POSITION_SYMBOL) != _Symbol) continue; + if((ulong)PositionGetInteger(POSITION_MAGIC) != magic) continue; + double p = PositionGetDouble(POSITION_PROFIT); + if(p < worstProfit) + { + worstProfit = p; + worstTicket = ticket; + } + } + return worstTicket; +} + +void CloseBasketByMagic(const ulong magic) +{ + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket == 0) continue; + if(!PositionSelectByTicket(ticket)) continue; + if(PositionGetString(POSITION_SYMBOL) != _Symbol) continue; + if((ulong)PositionGetInteger(POSITION_MAGIC) != magic) continue; + g_trade.PositionClose(ticket); + } +} + +double NormalizeVolume(const double volRaw) +{ + double vMin = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN); + double vMax = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX); + double vStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP); + if(vStep <= 0.0) + vStep = 0.01; + + double v = MathMax(vMin, MathMin(vMax, volRaw)); + v = MathFloor(v / vStep) * vStep; + int vd = 2; + if(vStep < 0.01) vd = 3; + if(vStep < 0.001) vd = 4; + return NormalizeDouble(v, vd); +} + +void SetTradeFillingBySymbol() +{ + long mask = SymbolInfoInteger(_Symbol, SYMBOL_FILLING_MODE); + if((mask & SYMBOL_FILLING_IOC) != 0) + g_trade.SetTypeFilling(ORDER_FILLING_IOC); + else if((mask & SYMBOL_FILLING_FOK) != 0) + g_trade.SetTypeFilling(ORDER_FILLING_FOK); + else + g_trade.SetTypeFilling(ORDER_FILLING_RETURN); +} diff --git a/polymarket/__pycache__/__init__.cpython-312.pyc b/polymarket/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index eb2a4605fa97d63dcaf72b0ec8a6037781614977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmZ8ey>HYo6u0wn$t8D11&IyG8;aCMMRY}<^Z8BARxAqED-R_N9VC+*RyZ}|DW=jY$=z2|S^aRjUh^`1X)0QlJjE3Iz4?nJc}_lYZtyU~`@r$RG=3n1ynf4f~ugA{l2f1O=dj&oCP`K@y&P zjSiG(B+(0I(9V%jk{F(&U6L;hs|_y;L`sU@XhJ*xxh9gmQ+g3aJ1AGO((ElOYrbS? zzPdtlr4eOICRAnLY@pdS*+$PsStV3s?;>->TU*Dlg0mW_65VLY3Q(RKZnKw7)@gL& zKT5aKt>4hDB5~XJ1(A~M3C>E>MtefdR{lOQS9x1D+9fqRywqvh(W`#sLtd0bwBdoO zc_)&_iBRzkqYA2QD7(Kbclq&AA~n!8X}(#kAQZbjfR_r`7*I zonp*OZZJ-(<|3R(MUMn~s_$8jZhiGb3ui8b@Q>p|?`#d+x&I;l1-4JY_75;Q1(WX} O{p*FX^D)rtw)P*M%gDO` diff --git a/polymarket/analytics/__init__.py b/polymarket/analytics/__init__.py deleted file mode 100644 index 53bfc92..0000000 --- a/polymarket/analytics/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Analytics Module""" - -from .metrics import PerformanceMetrics - -__all__ = ['PerformanceMetrics'] diff --git a/polymarket/analytics/metrics.py b/polymarket/analytics/metrics.py deleted file mode 100644 index 75a7e9c..0000000 --- a/polymarket/analytics/metrics.py +++ /dev/null @@ -1,216 +0,0 @@ -""" -Performance Metrics and Analytics - -Calculates various performance metrics for strategies. -""" - -from typing import Dict, List -import numpy as np -import pandas as pd - - -class PerformanceMetrics: - """Calculate performance metrics from backtest results""" - - @staticmethod - def calculate_sharpe_ratio(returns: List[float], risk_free_rate: float = 0.0) -> float: - """ - Calculate Sharpe ratio. - - Args: - returns: List of daily returns - risk_free_rate: Annual risk-free rate - - Returns: - Sharpe ratio - """ - if not returns: - return 0.0 - - returns_array = np.array(returns) - excess_returns = returns_array - (risk_free_rate / 365) - - if returns_array.std() == 0: - return 0.0 - - sharpe = np.sqrt(365) * excess_returns.mean() / returns_array.std() - return sharpe - - @staticmethod - def calculate_sortino_ratio(returns: List[float], risk_free_rate: float = 0.0) -> float: - """ - Calculate Sortino ratio (downside deviation only). - - Args: - returns: List of daily returns - risk_free_rate: Annual risk-free rate - - Returns: - Sortino ratio - """ - if not returns: - return 0.0 - - returns_array = np.array(returns) - excess_returns = returns_array - (risk_free_rate / 365) - - # Calculate downside deviation - downside_returns = excess_returns[excess_returns < 0] - if len(downside_returns) == 0: - return 0.0 - - downside_std = np.std(downside_returns) - if downside_std == 0: - return 0.0 - - sortino = np.sqrt(365) * excess_returns.mean() / downside_std - return sortino - - @staticmethod - def calculate_max_drawdown(equity_curve: List[float]) -> Dict[str, float]: - """ - Calculate maximum drawdown. - - Args: - equity_curve: List of equity values over time - - Returns: - Dictionary with max_drawdown, max_drawdown_percent, and drawdown_duration - """ - if not equity_curve: - return {'max_drawdown': 0.0, 'max_drawdown_percent': 0.0, 'drawdown_duration': 0} - - equity_array = np.array(equity_curve) - peak = np.maximum.accumulate(equity_array) - drawdown = peak - equity_array - drawdown_percent = (drawdown / peak) * 100 - - max_dd = float(np.max(drawdown)) - max_dd_percent = float(np.max(drawdown_percent)) - - # Calculate drawdown duration - in_drawdown = drawdown > 0 - if np.any(in_drawdown): - # Count consecutive periods in drawdown - durations = [] - current_duration = 0 - for in_dd in in_drawdown: - if in_dd: - current_duration += 1 - else: - if current_duration > 0: - durations.append(current_duration) - current_duration = 0 - if current_duration > 0: - durations.append(current_duration) - - max_duration = max(durations) if durations else 0 - else: - max_duration = 0 - - return { - 'max_drawdown': max_dd, - 'max_drawdown_percent': max_dd_percent, - 'drawdown_duration': max_duration - } - - @staticmethod - def calculate_calmar_ratio(total_return: float, max_drawdown_percent: float) -> float: - """ - Calculate Calmar ratio (return / max drawdown). - - Args: - total_return: Total return percentage - max_drawdown_percent: Maximum drawdown percentage - - Returns: - Calmar ratio - """ - if max_drawdown_percent == 0: - return 0.0 - return total_return / max_drawdown_percent - - @staticmethod - def calculate_profit_factor(total_profit: float, total_loss: float) -> float: - """ - Calculate profit factor. - - Args: - total_profit: Total profit - total_loss: Total loss (absolute value) - - Returns: - Profit factor - """ - if total_loss == 0: - return 0.0 if total_profit == 0 else float('inf') - return abs(total_profit / total_loss) - - @staticmethod - def calculate_expectancy(win_rate: float, avg_win: float, avg_loss: float) -> float: - """ - Calculate expectancy per trade. - - Args: - win_rate: Win rate (0-1) - avg_win: Average winning trade - avg_loss: Average losing trade (absolute value) - - Returns: - Expectancy - """ - return (win_rate * avg_win) - ((1 - win_rate) * avg_loss) - - @staticmethod - def generate_report(backtest_results: Dict) -> str: - """ - Generate formatted performance report. - - Args: - backtest_results: Results dictionary from backtest - - Returns: - Formatted report string - """ - equity_curve = [point['equity'] for point in backtest_results.get('equity_curve', [])] - daily_returns = backtest_results.get('daily_returns', []) - - # Calculate additional metrics - sharpe = PerformanceMetrics.calculate_sharpe_ratio(daily_returns) - sortino = PerformanceMetrics.calculate_sortino_ratio(daily_returns) - dd_metrics = PerformanceMetrics.calculate_max_drawdown(equity_curve) - - report = f""" -{'='*70} -POLYMARKET BACKTEST REPORT -{'='*70} - -Strategy: {backtest_results.get('strategy', 'Unknown')} -Period: {backtest_results.get('start_date')} to {backtest_results.get('end_date')} - -INITIAL METRICS: - Initial Balance: ${backtest_results.get('initial_balance', 0):,.2f} - Final Equity: ${backtest_results.get('final_equity', 0):,.2f} - Total Return: {backtest_results.get('total_return', 0):.2f}% - -TRADE STATISTICS: - Total Trades: {backtest_results.get('total_trades', 0)} - Winning Trades: {backtest_results.get('winning_trades', 0)} - Losing Trades: {backtest_results.get('losing_trades', 0)} - Win Rate: {backtest_results.get('win_rate', 0):.2f}% - -PROFITABILITY: - Total Profit: ${backtest_results.get('total_profit', 0):,.2f} - Total Loss: ${backtest_results.get('total_loss', 0):,.2f} - Net Profit: ${backtest_results.get('net_profit', 0):,.2f} - Profit Factor: {backtest_results.get('profit_factor', 0):.2f} - -RISK METRICS: - Maximum Drawdown: {dd_metrics['max_drawdown_percent']:.2f}% - Drawdown Duration: {dd_metrics['drawdown_duration']} periods - Sharpe Ratio: {sharpe:.2f} - Sortino Ratio: {sortino:.2f} - -{'='*70} -""" - return report diff --git a/polymarket/api/__init__.py b/polymarket/api/__init__.py deleted file mode 100644 index 7c0526e..0000000 --- a/polymarket/api/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -"""Polymarket API Clients""" - -from .gamma_client import GammaClient -from .clob_client import ClobClient -from .data_client import DataClient - -__all__ = ['GammaClient', 'ClobClient', 'DataClient'] diff --git a/polymarket/api/__pycache__/__init__.cpython-312.pyc b/polymarket/api/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4699bf4999dc380b51ef48ca652ba16e93271b5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmYL^Jxjze7{`;o9_^juO%4a*(BYgEK}3){5Er?*6hf}4M=-gRG>UZ){1onPeii)$ z7F-kuH{rIMd{V7GgeU+1^YVk|c`%3&giyEq3I2C$x^RBQY8S*kVkkunGe=9 diff --git a/polymarket/api/__pycache__/clob_client.cpython-312.pyc b/polymarket/api/__pycache__/clob_client.cpython-312.pyc deleted file mode 100644 index b96d782968eddb3222669fda37d7996e1896dcaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7015 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 MJzU^(f+^GTKT-ROKL7v# diff --git a/polymarket/api/__pycache__/data_client.cpython-312.pyc b/polymarket/api/__pycache__/data_client.cpython-312.pyc deleted file mode 100644 index 8d58587a62914f9a00ebc54b339b8210a199f573..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3883 zcmb_fO>7&-6`tkpl1qvbW&K39{I~H>WV)i{Sc+Pxc3Zh}?4YvhTFD`VfyJ6Tl9pa_ z>Di@a5>#pwKFC1<*Xcn9k^=5chJr!?Qou*Mmmb=KR2Pu4a8UzA557@RfEMnh@9iHc zK`nCd0-Sj>Z+_mq?|pBEe`;+_5cmx9BmFCo{(+6)6MSK79E3%pku1?TEn;w44r<3WtR_T}3q6S)KPn(8r${MUN zkiaFz&0M(vi>NqlRGzi%k~KOwsF^uypcHO7kTVN|8ofykvqYISSkSFph8DGwsTXZ) z5SPoSB|S4k?M!Gx;w2toGR-@}xSq2e>8B;!L^T{?0?bNtjsz2_truv{JFHhqeq-xn z5Ecm~;5U+uXk3=pB3VIe*90ok=swVDB8^Q8TJ(;Xm9#xtj7BvHba7V~r}62imH=Hs zYXME1ws;ztk-Q^hlUj${-%4Xmx~SF$Gg|!_aTuF|v27JT-RUII^PbbIBVH{}n@rvf zn+){&V7Sirk*FRHUFQ!vR;%enlp=9V|=w; zEtL#h4I+LpZ<)nvQ4h; zHFl1wj56729RnLprdQoXC(|*8xUe`Bjucqz#HOfa!KO~k3WQk-seoBdv|K{MAt5bl zOuIAPH7pD$aM7#L@zJX#W=`w2dd;92dJEWYXH@N`Zkgz&mpXy_Z(jD>09gRd)AY7yQSp4d#=*QtEr{QCh(4* zl__J82xsA%F(9zh5w;grb%U$gj^W^v%^frTuM;ln5~oAM3&qf&w;FQ_Zmp9mhds{TzzhuJz>cwdC=?Ci^xz_b;BkfA-fuTumPN z_w!WGdg{np>d1O(Xe~ALHR0mJ&pY<79vWD>v6NdqaQa!t&}wq%KXo1yuPi*pCu6a( zUh=f};JF0<^t)~6ME(z=2(ptbL%vW{O@jkkx#qyc)b3svr$B(m2v_5DZXN?Nye2^5 ze-HqX&-vi#F+~9G--Rjg0=ztMo5myKTczD*%SL6)Yx10G7_gXcZn!}xTygoiBYoqO zK{ltu-DM5l6!@HAI&I`#N5K86iNWv{@`!T-04jv?5$^@YTOhmrLF)5jpcN2T!l~80 zO~J5DGYHeS-h=|OSr_Tt_n?1uPv1gxBh`7Ya<}r}z|!TRp}k}28?nR0w&kcv{3lJpn7)iiYTO#6W}2>07W%6=xxN(*mV+$w9o`7j`2`M@1nsT ztO*3qn_2DNfvMMx4-N~10s!4hy5HRB?uFZ?Be4*zOQgNaMRniO2%>s=RXXjW`dWGR z=g?6hn2qPURW88Ozw(*^4R_oXn#+wp3jxt8UaG&Q8fq~|;Xg*mlzy4oxrTWzVlD~& zKO7Cb*muy={(EB^>HML)kj~d!f|)FX1#&7KnS6N&Yi=^lz0^=j;Txm~FDgZG5{gnV zwX%V7Qc-S{Rm0cB6b1g>C<@z;OJSfmyk#?ohrcqc8~e~YH(M~g&RIVem_8X&^^v!| zYdXWnvRmM5*!mcXJLD_jM=w&RZeQFK_J|j`htg8#Z(HjG<;T{RTW`K4iNg=3>IAB# z6Dz}y23+yU_!jomyIRDNrK5EM)ylCI`-_uXC~o$q#G!{)oj|oRQ0XN^nDahs4u+hs4{^JI?n}LJzw~d?lUn{P+WQ7W(kg pu#Q0iw-U!~Mnq27Y9n0x-$~yZ>H8Zw_^;?sIBw)?f~C94e*wJmxq$!x diff --git a/polymarket/api/__pycache__/gamma_client.cpython-312.pyc b/polymarket/api/__pycache__/gamma_client.cpython-312.pyc deleted file mode 100644 index 9925edd0fa74c49f018e938a5a2e8e67a59b41d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7238 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 Dict: - """Make GET request with error handling""" - url = f"{self.BASE_URL}{endpoint}" - try: - response = self.session.get(url, params=params, timeout=self.timeout) - response.raise_for_status() - return response.json() - except requests.exceptions.RequestException as e: - raise Exception(f"CLOB API error: {e}") - - def get_price(self, token_id: str, side: str = 'buy') -> float: - """ - Get current price for a token. - - Args: - token_id: CLOB token ID - side: 'buy' or 'sell' - - Returns: - Current price as float - """ - params = { - 'token_id': token_id, - 'side': side - } - response = self._get('/price', params=params) - return float(response.get('price', 0.0)) - - def get_orderbook(self, token_id: str) -> Dict: - """ - Get orderbook depth for a token. - - Per docs: https://docs.polymarket.com/quickstart/fetching-data - Endpoint: /book?token_id=YOUR_TOKEN_ID - - Args: - token_id: CLOB token ID - - Returns: - Dictionary with 'bids' and 'asks' arrays - """ - params = {'token_id': token_id} - return self._get('/book', params=params) - - def get_best_bid_ask(self, token_id: str) -> Dict[str, float]: - """ - Get best bid and ask prices. - - Args: - token_id: CLOB token ID - - Returns: - Dictionary with 'bid' and 'ask' prices - """ - book = self.get_orderbook(token_id) - - best_bid = float(book['bids'][0]['price']) if book.get('bids') else 0.0 - best_ask = float(book['asks'][0]['price']) if book.get('asks') else 1.0 - - return { - 'bid': best_bid, - 'ask': best_ask, - 'spread': best_ask - best_bid, - 'mid': (best_bid + best_ask) / 2 - } - - def get_market_depth(self, token_id: str, levels: int = 10) -> Dict: - """ - Get market depth up to specified levels. - - Args: - token_id: CLOB token ID - levels: Number of levels to retrieve - - Returns: - Dictionary with bid/ask depth - """ - book = self.get_orderbook(token_id) - - bids = book.get('bids', [])[:levels] - asks = book.get('asks', [])[:levels] - - # Calculate cumulative depth - bid_depth = sum(float(bid['size']) for bid in bids) - ask_depth = sum(float(ask['size']) for ask in asks) - - return { - 'bids': bids, - 'asks': asks, - 'bid_depth': bid_depth, - 'ask_depth': ask_depth, - 'total_depth': bid_depth + ask_depth - } - - def calculate_impact(self, token_id: str, size: float, side: str) -> Dict: - """ - Calculate estimated price impact for a trade size. - - Args: - token_id: CLOB token ID - size: Trade size - side: 'buy' or 'sell' - - Returns: - Dictionary with impact metrics - """ - book = self.get_orderbook(token_id) - - if side == 'buy': - levels = book.get('asks', []) - else: - levels = book.get('bids', []) - - remaining = size - total_cost = 0.0 - levels_consumed = [] - - for level in levels: - level_price = float(level['price']) - level_size = float(level['size']) - - if remaining <= 0: - break - - consumed = min(remaining, level_size) - total_cost += consumed * level_price - remaining -= consumed - - levels_consumed.append({ - 'price': level_price, - 'size': consumed - }) - - avg_price = total_cost / size if size > 0 else 0.0 - best_price = float(levels[0]['price']) if levels else 0.0 - impact = abs(avg_price - best_price) / best_price if best_price > 0 else 0.0 - - return { - 'average_price': avg_price, - 'best_price': best_price, - 'price_impact': impact, - 'levels_consumed': len(levels_consumed), - 'slippage': avg_price - best_price if side == 'buy' else best_price - avg_price - } diff --git a/polymarket/api/data_client.py b/polymarket/api/data_client.py deleted file mode 100644 index 42cbaf1..0000000 --- a/polymarket/api/data_client.py +++ /dev/null @@ -1,88 +0,0 @@ -""" -Polymarket Data API Client - -Provides positions, trade history, and portfolio data. -API Documentation: https://docs.polymarket.com/developers/misc-endpoints/data-api-get-positions -""" - -import requests -from typing import Dict, Optional, List -from datetime import datetime - - -class DataClient: - """Client for Polymarket Data API - Positions and history""" - - BASE_URL = "https://data-api.polymarket.com" - - def __init__(self, api_key: Optional[str] = None, timeout: int = 30): - """ - Initialize Data API client. - - Args: - api_key: Optional API key for authenticated requests - timeout: Request timeout in seconds - """ - self.timeout = timeout - self.api_key = api_key - self.session = requests.Session() - self.session.headers.update({ - 'Accept': 'application/json', - 'User-Agent': 'Polymarket-Trading-Framework/1.0' - }) - - if api_key: - self.session.headers['Authorization'] = f'Bearer {api_key}' - - def _get(self, endpoint: str, params: Optional[Dict] = None) -> Dict: - """Make GET request with error handling""" - url = f"{self.BASE_URL}{endpoint}" - try: - response = self.session.get(url, params=params, timeout=self.timeout) - response.raise_for_status() - return response.json() - except requests.exceptions.RequestException as e: - raise Exception(f"Data API error: {e}") - - def get_positions(self, user_address: str) -> List[Dict]: - """ - Get user positions. - - Args: - user_address: User wallet address - - Returns: - List of position dictionaries - """ - params = {'user': user_address} - return self._get('/positions', params=params) - - def get_trades(self, user_address: str, limit: int = 100) -> List[Dict]: - """ - Get user trade history. - - Args: - user_address: User wallet address - limit: Maximum number of trades to return - - Returns: - List of trade dictionaries - """ - params = { - 'user': user_address, - 'limit': limit - } - return self._get('/trades', params=params) - - def get_portfolio(self, user_address: str) -> Dict: - """ - Get user portfolio summary. - - Args: - user_address: User wallet address - - Returns: - Portfolio dictionary with balances, positions, etc. - """ - params = {'user': user_address} - return self._get('/portfolio', params=params) diff --git a/polymarket/api/gamma_client.py b/polymarket/api/gamma_client.py deleted file mode 100644 index 0d8e411..0000000 --- a/polymarket/api/gamma_client.py +++ /dev/null @@ -1,177 +0,0 @@ -""" -Polymarket Gamma API Client - -Provides market discovery, metadata, and event data. -API Documentation: https://docs.polymarket.com/developers/gamma-markets-api/overview -""" - -import requests -from typing import List, Dict, Optional, Any -from datetime import datetime -import time - - -class GammaClient: - """Client for Polymarket Gamma API - Market discovery and metadata""" - - BASE_URL = "https://gamma-api.polymarket.com" - - def __init__(self, timeout: int = 30): - """ - Initialize Gamma API client. - - Args: - timeout: Request timeout in seconds - """ - self.timeout = timeout - self.session = requests.Session() - self.session.headers.update({ - 'Accept': 'application/json', - 'User-Agent': 'Polymarket-Trading-Framework/1.0' - }) - - def _get(self, endpoint: str, params: Optional[Dict] = None) -> Dict: - """Make GET request with error handling""" - url = f"{self.BASE_URL}{endpoint}" - try: - response = self.session.get(url, params=params, timeout=self.timeout) - response.raise_for_status() - data = response.json() - # According to docs, /events returns an array directly - # But handle both array and dict responses - return data - except requests.exceptions.RequestException as e: - raise Exception(f"Gamma API error: {e}") - - def get_events(self, - active: bool = True, - closed: bool = False, - limit: int = 100, - tag_id: Optional[int] = None, - series_id: Optional[int] = None, - order: Optional[str] = None, - ascending: bool = True) -> List[Dict]: - """ - Fetch active events/markets. - - Args: - active: Filter for active events - closed: Filter for closed events - limit: Maximum number of results - tag_id: Filter by tag/category ID - series_id: Filter by series ID (for sports) - order: Sort order (e.g., 'startTime') - ascending: Sort ascending or descending - - Returns: - List of event dictionaries - """ - params = { - 'active': str(active).lower(), - 'closed': str(closed).lower(), - 'limit': limit - } - - if tag_id: - params['tag_id'] = tag_id - if series_id: - params['series_id'] = series_id - if order: - params['order'] = order - params['ascending'] = str(ascending).lower() - - return self._get('/events', params=params) - - def get_event_by_slug(self, slug: str) -> Optional[Dict]: - """ - Get event details by slug. - - Args: - slug: Event slug (e.g., 'will-bitcoin-reach-100k-by-2025') - - Returns: - Event dictionary or None if not found - """ - events = self.get_events(limit=1) - for event in events: - if event.get('slug') == slug: - return event - return None - - def get_market_by_slug(self, slug: str) -> Optional[Dict]: - """ - Get market details by slug. - - Args: - slug: Market slug - - Returns: - Market dictionary with clobTokenIds, outcomes, prices - """ - params = {'slug': slug} - markets = self._get('/markets', params=params) - return markets[0] if markets else None - - def get_tags(self, limit: int = 100) -> List[Dict]: - """ - Get all available tags/categories. - - Args: - limit: Maximum number of tags to return - - Returns: - List of tag dictionaries - """ - params = {'limit': limit} - return self._get('/tags', params=params) - - def get_sports(self) -> List[Dict]: - """ - Get all supported sports leagues. - - Returns: - List of sports league dictionaries - """ - return self._get('/sports') - - def get_market_prices(self, market: Dict) -> Dict[str, float]: - """ - Extract current prices from market data. - - Args: - market: Market dictionary with outcomes and outcomePrices - - Returns: - Dictionary mapping outcome to price (probability) - """ - import json - - outcomes = json.loads(market.get('outcomes', '[]')) - prices = json.loads(market.get('outcomePrices', '[]')) - - return {outcome: float(price) for outcome, price in zip(outcomes, prices)} - - def search_events(self, query: str, limit: int = 20) -> List[Dict]: - """ - Search events by title/keywords. - - Args: - query: Search query - limit: Maximum results - - Returns: - List of matching events - """ - # Note: This is a simplified search - actual API may have different endpoint - all_events = self.get_events(limit=1000) - query_lower = query.lower() - - matches = [] - for event in all_events: - title = event.get('title', '').lower() - if query_lower in title: - matches.append(event) - if len(matches) >= limit: - break - - return matches diff --git a/polymarket/backtesting/__init__.py b/polymarket/backtesting/__init__.py deleted file mode 100644 index 2c0eada..0000000 --- a/polymarket/backtesting/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Backtesting Module""" - -from .engine import BacktestEngine - -__all__ = ['BacktestEngine'] diff --git a/polymarket/backtesting/__pycache__/__init__.cpython-312.pyc b/polymarket/backtesting/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4da5a73c93f988e3a84dd639001afe91017eafa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 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 ah8XxeV)x%6jOGtYM}egD_XLJ)P5&PgH4B6Q diff --git a/polymarket/backtesting/engine.py b/polymarket/backtesting/engine.py deleted file mode 100644 index 9cf6476..0000000 --- a/polymarket/backtesting/engine.py +++ /dev/null @@ -1,499 +0,0 @@ -""" -Backtesting Engine for Polymarket - -Simulates trading on historical market data. -""" - -from typing import Dict, List, Optional, Any -from datetime import datetime, timedelta -import pandas as pd -import numpy as np - -# Configure numpy to handle division by zero gracefully -np.seterr(divide='ignore', invalid='ignore') -from ..strategies.base_strategy import BaseStrategy, MarketSignal, Position -from ..api.gamma_client import GammaClient -from ..api.clob_client import ClobClient -import time - - -class BacktestEngine: - """ - Main backtesting engine for Polymarket strategies. - - Simulates trading on historical data with realistic execution. - """ - - def __init__(self, - strategy: BaseStrategy, - start_date: datetime, - end_date: datetime, - initial_balance: float = 1000.0): - """ - Initialize backtesting engine. - - Args: - strategy: Strategy instance to backtest - start_date: Start date for backtesting - end_date: End date for backtesting - initial_balance: Starting USDC balance - """ - self.strategy = strategy - self.start_date = start_date - self.end_date = end_date - self.initial_balance = initial_balance - - # Initialize API clients (for data fetching) - self.gamma_client = GammaClient() - self.clob_client = ClobClient() - - # Backtest state - self.current_date = start_date - self.market_snapshots: List[Dict] = [] - self.trades: List[Dict] = [] - - # Performance tracking - self.equity_curve: List[Dict] = [] - self.daily_returns: List[float] = [] - - def fetch_historical_markets(self, tag_id: Optional[int] = None) -> List[Dict]: - """ - Fetch markets that were active during backtest period. - - Note: Polymarket API may not provide full historical data. - This is a simplified implementation. - - Args: - tag_id: Optional tag ID to filter markets - - Returns: - List of market dictionaries - """ - # Get current active markets (as proxy for historical) - # In production, you'd need to store historical snapshots - events = self.gamma_client.get_events( - active=True, - closed=False, - limit=100, - tag_id=tag_id - ) - - markets = [] - for event in events: - for market in event.get('markets', []): - markets.append({ - 'event': event, - 'market': market, - 'timestamp': datetime.now() # Would be historical in real implementation - }) - - return markets - - def simulate_price_evolution(self, - initial_price: float, - days: int, - volatility: float = 0.05) -> List[float]: - """ - Simulate price evolution for backtesting. - - In production, use actual historical price data. - - Args: - initial_price: Starting price - days: Number of days to simulate - volatility: Daily volatility - - Returns: - List of prices over time - """ - prices = [initial_price] - for _ in range(days): - # Random walk with mean reversion - change = np.random.normal(0, volatility) - new_price = prices[-1] + change - new_price = max(0.01, min(0.99, new_price)) # Bound between 0 and 1 - prices.append(new_price) - - return prices - - def execute_signal(self, - signal: MarketSignal, - market_data: Dict, - timestamp: datetime) -> Optional[Dict]: - """ - Execute a trading signal. - - Args: - signal: Trading signal from strategy - market_data: Current market data - timestamp: Current timestamp - - Returns: - Trade dictionary or None if execution failed - """ - # Get market from market_data first (needed for prices) - market = market_data.get('market', {}) - - # Use token_id from signal if available, otherwise get from market - if signal.token_id: - token_id = signal.token_id - else: - token_ids = market.get('clobTokenIds', []) - if not token_ids: - return None - token_id = token_ids[0] - - outcome = 'Yes' # Default outcome - - # Get current price from market data - import json - prices = json.loads(market.get('outcomePrices', '[0.5, 0.5]')) - if signal.action == 'BUY': - current_price = float(prices[0]) # Yes price - else: - current_price = float(prices[0]) # Use Yes price for exit too - - # Validate price - if current_price <= 0 or current_price >= 1: - return None # Invalid price - - # Calculate position_size based on action - if signal.action == 'SELL': - if token_id not in self.strategy.positions: - return None # No position to close - # For SELL, position_size represents the value we'll get back - pos = self.strategy.positions[token_id] - # Validate position data - if not (pos.size > 0 and np.isfinite(pos.size) and - current_price > 0 and current_price < 1 and - np.isfinite(current_price)): - return None # Invalid position or price data - position_size = pos.size * current_price * signal.size # signal.size = 1.0 for full close - if not np.isfinite(position_size) or position_size <= 0: - return None - else: - # For BUY, calculate position size and check limits - # Validate balance - if not (np.isfinite(self.strategy.current_balance) and self.strategy.current_balance > 0): - return None - - position_size = min( - signal.size * self.strategy.current_balance, - self.strategy.current_balance * self.strategy.max_position_size - ) - - # Validate position_size - if not (np.isfinite(position_size) and position_size > 0): - return None - - # Check if can open position - if not self.strategy.can_open_position(position_size, token_id): - return None - - # Ensure we have enough balance - if position_size > self.strategy.current_balance: - return None - - # Execute trade - if signal.action == 'BUY': - # Buy tokens - safe division - if current_price > 0 and current_price < 1 and np.isfinite(current_price): - tokens_bought = position_size / current_price - # Validate tokens_bought - if not (np.isfinite(tokens_bought) and tokens_bought > 0): - return None - else: - return None # Invalid price, skip trade - - # Validate balance before subtraction - if not (np.isfinite(self.strategy.current_balance) and - self.strategy.current_balance >= position_size): - return None - - self.strategy.current_balance -= position_size - - # Ensure balance is still finite - if not np.isfinite(self.strategy.current_balance): - self.strategy.current_balance = 0.0 - return None - - # Create position - position = Position( - token_id=token_id, - outcome=outcome, - size=tokens_bought, - entry_price=current_price, - entry_time=timestamp, - current_price=current_price, - unrealized_pnl=0.0 - ) - self.strategy.positions[token_id] = position - - elif signal.action == 'SELL': - # Close existing position - if token_id in self.strategy.positions: - pos = self.strategy.positions[token_id] - # Validate position data - if not (np.isfinite(pos.size) and pos.size > 0 and - np.isfinite(pos.entry_price) and pos.entry_price > 0): - return None - - # Close fraction of position (signal.size = 1.0 means close all) - close_size = pos.size * signal.size - if not (np.isfinite(close_size) and close_size > 0): - return None - - exit_value = close_size * current_price - entry_cost = close_size * pos.entry_price - - # Validate calculations - if not (np.isfinite(exit_value) and np.isfinite(entry_cost)): - return None - - pnl = exit_value - entry_cost - if not np.isfinite(pnl): - pnl = 0.0 - - # Validate balance before addition - if not np.isfinite(self.strategy.current_balance): - self.strategy.current_balance = 0.0 - - self.strategy.current_balance += exit_value - - # Ensure balance is still finite - if not np.isfinite(self.strategy.current_balance): - self.strategy.current_balance = 0.0 - return None - - self.strategy.total_trades += 1 - - if pnl > 0: - self.strategy.winning_trades += 1 - self.strategy.total_profit += pnl if np.isfinite(pnl) else 0.0 - else: - self.strategy.losing_trades += 1 - self.strategy.total_loss += abs(pnl) if np.isfinite(pnl) else 0.0 - - # Update or remove position - if signal.size >= 1.0: - # Close entire position - pos.realized_pnl = pnl if np.isfinite(pnl) else 0.0 - self.strategy.closed_positions.append(pos) - del self.strategy.positions[token_id] - else: - # Partial close - pos.size -= close_size - if not (np.isfinite(pos.size) and pos.size >= 0): - pos.size = 0.0 - pos.realized_pnl += pnl if np.isfinite(pnl) else 0.0 - if not np.isfinite(pos.realized_pnl): - pos.realized_pnl = 0.0 - - trade = { - 'timestamp': timestamp, - 'action': signal.action, - 'token_id': token_id, - 'outcome': outcome, - 'price': current_price, - 'size': position_size, - 'reason': signal.reason, - 'confidence': signal.confidence - } - - self.trades.append(trade) - return trade - - def run(self, markets: Optional[List[Dict]] = None) -> Dict[str, Any]: - """ - Run the backtest. - - Args: - markets: Optional list of markets to backtest. If None, fetches markets. - - Returns: - Dictionary with backtest results - """ - print(f"Starting backtest from {self.start_date} to {self.end_date}") - - # Fetch markets if not provided - if markets is None: - markets = self.fetch_historical_markets() - - if not markets: - raise ValueError("No markets found for backtesting") - - print(f"Found {len(markets)} markets to backtest") - - # Simulate time progression - current_date = self.start_date - day_count = 0 - - while current_date <= self.end_date: - # Update positions with current prices - for token_id, position in self.strategy.positions.items(): - # Simulate price movement - # In production, use actual historical prices - price_change = np.random.normal(0, 0.02) - new_price = max(0.01, min(0.99, position.current_price + price_change)) - self.strategy.update_position(token_id, new_price) - - # Process each market - for market_snapshot in markets: - market_data = { - 'event': market_snapshot['event'], - 'market': market_snapshot['market'], - 'timestamp': current_date - } - - # Get current prices - market = market_snapshot['market'] - import json - outcomes = json.loads(market.get('outcomes', '["Yes", "No"]')) - prices = json.loads(market.get('outcomePrices', '[0.5, 0.5]')) - - market_data['prices'] = { - outcome: float(price) - for outcome, price in zip(outcomes, prices) - } - - # Get strategy signal - signal = self.strategy.analyze_market(market_data) - - if signal and signal.confidence >= self.strategy.min_confidence: - self.execute_signal(signal, market_data, current_date) - - # Update equity curve - self.strategy.update_drawdown() - equity = self.strategy.calculate_equity() - - self.equity_curve.append({ - 'date': current_date, - 'equity': equity, - 'balance': self.strategy.current_balance, - 'unrealized_pnl': sum(pos.unrealized_pnl for pos in self.strategy.positions.values()) - }) - - # Calculate daily return - if len(self.equity_curve) > 1: - prev_equity = self.equity_curve[-2]['equity'] - daily_return = (equity - prev_equity) / prev_equity if prev_equity > 0 else 0.0 - self.daily_returns.append(daily_return) - - # Advance to next day - current_date += timedelta(days=1) - day_count += 1 - - if day_count % 10 == 0: - print(f"Progress: {day_count} days, Equity: ${equity:.2f}") - - # Close all open positions at end - final_equity = self.strategy.calculate_equity() - for token_id, position in list(self.strategy.positions.items()): - # Assume final price is entry price (or use last known price) - exit_value = position.size * position.current_price - pnl = exit_value - (position.size * position.entry_price) - - self.strategy.current_balance += exit_value - self.strategy.total_trades += 1 - - if pnl > 0: - self.strategy.winning_trades += 1 - self.strategy.total_profit += pnl - else: - self.strategy.losing_trades += 1 - self.strategy.total_loss += abs(pnl) - - del self.strategy.positions[token_id] - - # Calculate final metrics with safe division - if self.initial_balance > 0: - total_return = (final_equity - self.initial_balance) / self.initial_balance * 100 - else: - total_return = 0.0 - - sharpe_ratio = self._calculate_sharpe_ratio() - - # Safe win rate calculation - if self.strategy.total_trades > 0: - win_rate = (self.strategy.winning_trades / self.strategy.total_trades * 100) - else: - win_rate = 0.0 - - # Safe profit factor calculation - if abs(self.strategy.total_loss) > 1e-10: - profit_factor = abs(self.strategy.total_profit / self.strategy.total_loss) - else: - profit_factor = 0.0 if abs(self.strategy.total_profit) < 1e-10 else float('inf') - - # Ensure all values are finite - total_return = total_return if np.isfinite(total_return) else 0.0 - win_rate = win_rate if np.isfinite(win_rate) else 0.0 - profit_factor = profit_factor if (np.isfinite(profit_factor) and profit_factor != float('inf')) else 0.0 - sharpe_ratio = sharpe_ratio if np.isfinite(sharpe_ratio) else 0.0 - max_dd = self.strategy.max_drawdown * 100 if np.isfinite(self.strategy.max_drawdown) else 0.0 - - results = { - 'strategy': self.strategy.name, - 'start_date': self.start_date, - 'end_date': self.end_date, - 'initial_balance': self.initial_balance, - 'final_balance': self.strategy.current_balance, - 'final_equity': final_equity if np.isfinite(final_equity) else self.initial_balance, - 'total_return': total_return, - 'total_trades': self.strategy.total_trades, - 'winning_trades': self.strategy.winning_trades, - 'losing_trades': self.strategy.losing_trades, - 'win_rate': win_rate, - 'total_profit': self.strategy.total_profit if np.isfinite(self.strategy.total_profit) else 0.0, - 'total_loss': self.strategy.total_loss if np.isfinite(self.strategy.total_loss) else 0.0, - 'net_profit': (self.strategy.total_profit + self.strategy.total_loss) if np.isfinite(self.strategy.total_profit + self.strategy.total_loss) else 0.0, - 'profit_factor': profit_factor, - 'max_drawdown': max_dd, - 'sharpe_ratio': sharpe_ratio, - 'trades': self.trades, - 'equity_curve': self.equity_curve - } - - return results - - def _calculate_sharpe_ratio(self, risk_free_rate: float = 0.0) -> float: - """Calculate Sharpe ratio from daily returns""" - if not self.daily_returns: - return 0.0 - - returns = np.array(self.daily_returns) - if len(returns) == 0: - return 0.0 - - excess_returns = returns - (risk_free_rate / 365) # Daily risk-free rate - - std_dev = returns.std() - if std_dev == 0 or np.isnan(std_dev) or not np.isfinite(std_dev): - return 0.0 - - mean_return = excess_returns.mean() - if not np.isfinite(mean_return): - return 0.0 - - sharpe = np.sqrt(365) * mean_return / std_dev - return sharpe if np.isfinite(sharpe) else 0.0 - - def generate_report(self, output_file: Optional[str] = None) -> None: - """Generate backtest report""" - results = { - 'strategy': self.strategy.name, - 'performance': self.strategy.get_performance_metrics() - } - - print("\n" + "="*60) - print("BACKTEST RESULTS") - print("="*60) - print(f"Strategy: {results['strategy']}") - print(f"Period: {self.start_date.date()} to {self.end_date.date()}") - print(f"Initial Balance: ${self.initial_balance:.2f}") - print(f"Final Equity: ${self.strategy.equity:.2f}") - print(f"Total Return: {((self.strategy.equity - self.initial_balance) / self.initial_balance * 100):.2f}%") - print(f"Total Trades: {self.strategy.total_trades}") - print(f"Win Rate: {(self.strategy.winning_trades / self.strategy.total_trades * 100) if self.strategy.total_trades > 0 else 0:.2f}%") - print(f"Max Drawdown: {self.strategy.max_drawdown * 100:.2f}%") - print("="*60) diff --git a/polymarket/docs/API_REFERENCE.md b/polymarket/docs/API_REFERENCE.md deleted file mode 100644 index d2c15e5..0000000 --- a/polymarket/docs/API_REFERENCE.md +++ /dev/null @@ -1,627 +0,0 @@ -# Polymarket API Reference - -Complete API reference for the Polymarket Trading Framework. - -## Table of Contents - -- [Rate Limits](#rate-limits) -- [Gamma API Client](#gamma-api-client) -- [CLOB API Client](#clob-api-client) -- [Data API Client](#data-api-client) -- [Base Strategy](#base-strategy) -- [Backtesting Engine](#backtesting-engine) -- [Live Trading Engine](#live-trading-engine) -- [Error Handling](#error-handling) - -## Rate Limits - -### Overview - -Polymarket APIs implement rate limiting to ensure fair usage. The framework includes built-in rate limit handling. - -### Rate Limit Specifications - -**Gamma API (Market Discovery)** -- **Rate Limit**: 60 requests per minute per IP -- **Burst**: Up to 10 requests in a single second -- **Headers**: `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` - -**CLOB API (Trading & Orderbook)** -- **Rate Limit**: 120 requests per minute per authenticated user -- **Burst**: Up to 20 requests in a single second -- **Headers**: Same as Gamma API - -**Data API (Positions & History)** -- **Rate Limit**: 30 requests per minute per authenticated user -- **Burst**: Up to 5 requests in a single second - -### Handling Rate Limits - -The framework automatically handles rate limits with: -- Automatic request queuing -- Exponential backoff on 429 (Too Many Requests) errors -- Configurable delays between requests (default: 100ms) - -```python -from polymarket.utils.config import Config - -# Configure request delay -Config.REQUEST_DELAY = 0.2 # 200ms between requests -Config.MAX_REQUESTS_PER_MINUTE = 60 -``` - -### Rate Limit Errors - -When rate limited, the API returns: -- **Status Code**: 429 Too Many Requests -- **Response Body**: `{"error": "Rate limit exceeded", "retry_after": 60}` -- **Headers**: `Retry-After: 60` (seconds to wait) - -The framework will automatically retry after the specified delay. - -## Gamma API Client - -### Class: `GammaClient` - -Client for Polymarket Gamma API - Market discovery and metadata. - -#### Constructor - -```python -GammaClient(timeout: int = 30) -``` - -**Parameters:** -- `timeout` (int): Request timeout in seconds (default: 30) - -#### Methods - -##### `get_events()` - -Fetch active events/markets. - -```python -get_events( - active: bool = True, - closed: bool = False, - limit: int = 100, - tag_id: Optional[int] = None, - series_id: Optional[int] = None, - order: Optional[str] = None, - ascending: bool = True -) -> List[Dict] -``` - -**Parameters:** -- `active` (bool): Filter for active events (default: True) -- `closed` (bool): Filter for closed events (default: False) -- `limit` (int): Maximum number of results (default: 100, max: 1000) -- `tag_id` (Optional[int]): Filter by tag/category ID -- `series_id` (Optional[int]): Filter by series ID (for sports) -- `order` (Optional[str]): Sort order (e.g., 'startTime', 'volume') -- `ascending` (bool): Sort ascending or descending (default: True) - -**Returns:** -- `List[Dict]`: List of event dictionaries with fields: - - `id`: Event ID - - `title`: Event title - - `slug`: Event slug (URL-friendly identifier) - - `description`: Event description - - `startDate`: Start date (ISO 8601) - - `endDate`: End date (ISO 8601) - - `markets`: List of markets in this event - - `tags`: List of tag IDs - -**Example:** -```python -from polymarket import GammaClient - -gamma = GammaClient() -events = gamma.get_events(active=True, limit=10, tag_id=21) # Get 10 active crypto events -``` - -##### `get_event_by_slug()` - -Get event details by slug. - -```python -get_event_by_slug(slug: str) -> Optional[Dict] -``` - -**Parameters:** -- `slug` (str): Event slug (e.g., 'will-bitcoin-reach-100k-by-2025') - -**Returns:** -- `Optional[Dict]`: Event dictionary or None if not found - -**Example:** -```python -event = gamma.get_event_by_slug('will-bitcoin-reach-100k-by-2025') -``` - -##### `get_market_by_slug()` - -Get market details by slug. - -```python -get_market_by_slug(slug: str) -> Optional[Dict] -``` - -**Parameters:** -- `slug` (str): Market slug - -**Returns:** -- `Optional[Dict]`: Market dictionary with: - - `clobTokenIds`: List of CLOB token IDs for Yes/No outcomes - - `outcomes`: JSON string of outcome names (e.g., '["Yes", "No"]') - - `outcomePrices`: JSON string of current prices (e.g., '[0.65, 0.35]') - - `question`: Market question - - `endDate`: Market end date - -**Example:** -```python -market = gamma.get_market_by_slug('bitcoin-100k-2025') -prices = gamma.get_market_prices(market) -print(f"Yes: {prices['Yes']:.2%}, No: {prices['No']:.2%}") -``` - -##### `get_tags()` - -Get all available tags/categories. - -```python -get_tags(limit: int = 100) -> List[Dict] -``` - -**Returns:** -- `List[Dict]`: List of tag dictionaries with `id` and `name` fields - -**Example:** -```python -tags = gamma.get_tags() -for tag in tags: - print(f"{tag['id']}: {tag['name']}") -``` - -##### `get_sports()` - -Get all supported sports leagues. - -```python -get_sports() -> List[Dict] -``` - -**Returns:** -- `List[Dict]`: List of sports league dictionaries - -##### `get_market_prices()` - -Extract current prices from market data. - -```python -get_market_prices(market: Dict) -> Dict[str, float] -``` - -**Parameters:** -- `market` (Dict): Market dictionary with outcomes and outcomePrices - -**Returns:** -- `Dict[str, float]`: Dictionary mapping outcome to price (probability) - -**Example:** -```python -prices = gamma.get_market_prices(market) -yes_prob = prices['Yes'] # 0.65 = 65% probability -``` - -## CLOB API Client - -### Class: `ClobClient` - -Client for Polymarket CLOB API - Trading and orderbook data. - -#### Methods - -##### `get_price()` - -Get current price for a token. - -```python -get_price(token_id: str, side: str = 'buy') -> float -``` - -**Parameters:** -- `token_id` (str): CLOB token ID -- `side` (str): 'buy' or 'sell' (default: 'buy') - -**Returns:** -- `float`: Current price (0.0 to 1.0) - -**Example:** -```python -from polymarket import ClobClient - -clob = ClobClient() -token_id = market['clobTokenIds'][0] -price = clob.get_price(token_id, side='buy') -``` - -##### `get_orderbook()` - -Get orderbook depth for a token. - -```python -get_orderbook(token_id: str) -> Dict -``` - -**Returns:** -- `Dict`: Dictionary with: - - `bids`: List of bid orders `[{"price": float, "size": float}, ...]` - - `asks`: List of ask orders `[{"price": float, "size": float}, ...]` - -**Example:** -```python -book = clob.get_orderbook(token_id) -best_bid = book['bids'][0]['price'] -best_ask = book['asks'][0]['price'] -``` - -##### `get_best_bid_ask()` - -Get best bid and ask prices. - -```python -get_best_bid_ask(token_id: str) -> Dict[str, float] -``` - -**Returns:** -- `Dict[str, float]`: Dictionary with: - - `bid`: Best bid price - - `ask`: Best ask price - - `spread`: Bid-ask spread - - `mid`: Mid price ((bid + ask) / 2) - -##### `get_market_depth()` - -Get market depth up to specified levels. - -```python -get_market_depth(token_id: str, levels: int = 10) -> Dict -``` - -**Returns:** -- `Dict`: Dictionary with: - - `bids`: Top N bid levels - - `asks`: Top N ask levels - - `bid_depth`: Cumulative bid depth - - `ask_depth`: Cumulative ask depth - - `total_depth`: Total market depth - -##### `calculate_impact()` - -Calculate estimated price impact for a trade size. - -```python -calculate_impact(token_id: str, size: float, side: str) -> Dict -``` - -**Parameters:** -- `token_id` (str): CLOB token ID -- `size` (float): Trade size in tokens -- `side` (str): 'buy' or 'sell' - -**Returns:** -- `Dict`: Dictionary with: - - `average_price`: Average execution price - - `best_price`: Best available price - - `price_impact`: Price impact percentage - - `levels_consumed`: Number of orderbook levels consumed - - `slippage`: Price slippage - -**Example:** -```python -impact = clob.calculate_impact(token_id, size=100, side='buy') -print(f"Price impact: {impact['price_impact']:.2%}") -print(f"Average price: {impact['average_price']:.4f}") -``` - -## Data API Client - -### Class: `DataClient` - -Client for Polymarket Data API - Positions and history. - -#### Constructor - -```python -DataClient(api_key: Optional[str] = None, timeout: int = 30) -``` - -**Parameters:** -- `api_key` (Optional[str]): API key for authenticated requests -- `timeout` (int): Request timeout in seconds - -#### Methods - -##### `get_positions()` - -Get user positions. - -```python -get_positions(user_address: str) -> List[Dict] -``` - -**Parameters:** -- `user_address` (str): User wallet address (0x...) - -**Returns:** -- `List[Dict]`: List of position dictionaries - -##### `get_trades()` - -Get user trade history. - -```python -get_trades(user_address: str, limit: int = 100) -> List[Dict] -``` - -**Parameters:** -- `user_address` (str): User wallet address -- `limit` (int): Maximum number of trades (default: 100) - -**Returns:** -- `List[Dict]`: List of trade dictionaries - -##### `get_portfolio()` - -Get user portfolio summary. - -```python -get_portfolio(user_address: str) -> Dict -``` - -**Returns:** -- `Dict`: Portfolio dictionary with balances, positions, etc. - -## Base Strategy - -### Class: `BaseStrategy` - -Base class for all Polymarket trading strategies. - -#### Constructor - -```python -BaseStrategy(name: str, initial_balance: float = 1000.0) -``` - -#### Abstract Methods - -##### `analyze_market()` - -Analyze market and generate trading signal. - -```python -@abstractmethod -def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - """ - Args: - market_data: Dictionary containing: - - 'event': Event information - - 'market': Market information - - 'prices': Current outcome prices - - 'orderbook': Orderbook data - - 'history': Historical price data (if available) - - Returns: - MarketSignal or None if no trade - """ -``` - -##### `get_parameters()` - -Return strategy parameters. - -```python -@abstractmethod -def get_parameters(self) -> Dict[str, Any]: - """Returns: Dictionary of parameter names and values""" -``` - -#### Properties - -- `name`: Strategy name -- `initial_balance`: Starting USDC balance -- `current_balance`: Current USDC balance -- `equity`: Current equity (balance + unrealized PnL) -- `positions`: Dictionary of open positions (token_id -> Position) -- `total_trades`: Total number of trades executed -- `winning_trades`: Number of winning trades -- `losing_trades`: Number of losing trades -- `max_drawdown`: Maximum drawdown (0.0 to 1.0) - -#### Methods - -##### `update_position()` - -Update position with current price. - -```python -update_position(token_id: str, current_price: float) -> None -``` - -##### `calculate_equity()` - -Calculate current equity (balance + unrealized PnL). - -```python -calculate_equity(self) -> float -``` - -##### `can_open_position()` - -Check if strategy can open a new position. - -```python -can_open_position(self, size: float, token_id: str) -> bool -``` - -##### `get_performance_metrics()` - -Get current performance metrics. - -```python -get_performance_metrics(self) -> Dict[str, Any] -``` - -**Returns:** -- Dictionary with: `total_trades`, `winning_trades`, `losing_trades`, `win_rate`, `total_profit`, `total_loss`, `net_profit`, `profit_factor`, `max_drawdown`, `current_balance`, `equity`, `unrealized_pnl`, `open_positions` - -## Backtesting Engine - -### Class: `BacktestEngine` - -Main backtesting engine for Polymarket strategies. - -#### Constructor - -```python -BacktestEngine( - strategy: BaseStrategy, - start_date: datetime, - end_date: datetime, - initial_balance: float = 1000.0 -) -``` - -#### Methods - -##### `run()` - -Run the backtest. - -```python -run(self, markets: Optional[List[Dict]] = None) -> Dict[str, Any] -``` - -**Returns:** -- Dictionary with backtest results including: - - `total_return`: Total return percentage - - `total_trades`: Number of trades - - `win_rate`: Win rate percentage - - `sharpe_ratio`: Sharpe ratio - - `max_drawdown`: Maximum drawdown percentage - - `equity_curve`: List of equity values over time - - `trades`: List of all trades executed - -##### `generate_report()` - -Generate backtest report. - -```python -generate_report(self, output_file: Optional[str] = None) -> None -``` - -## Live Trading Engine - -### Class: `LiveTradingEngine` - -Live trading engine for Polymarket. - -#### Constructor - -```python -LiveTradingEngine( - strategy: BaseStrategy, - poll_interval: int = 60 -) -``` - -**Parameters:** -- `strategy`: Strategy instance to trade -- `poll_interval`: Seconds between market checks (default: 60) - -#### Methods - -##### `add_market()` - -Add a market to monitor. - -```python -add_market( - event_slug: Optional[str] = None, - market_slug: Optional[str] = None -) -> None -``` - -##### `monitor_tag()` - -Monitor all active markets in a tag/category. - -```python -monitor_tag(self, tag_id: int, limit: int = 20) -> None -``` - -##### `start()` - -Start the live trading engine. - -```python -start(self) -> None -``` - -##### `stop()` - -Stop the trading engine. - -```python -stop(self) -> None -``` - -## Error Handling - -### Common Errors - -#### `ConnectionError` -- **Cause**: Network connectivity issues -- **Solution**: Check internet connection, retry with exponential backoff - -#### `TimeoutError` -- **Cause**: Request timeout exceeded -- **Solution**: Increase timeout value or check API status - -#### `RateLimitError` -- **Cause**: Rate limit exceeded -- **Solution**: Framework automatically handles with retry logic - -#### `AuthenticationError` -- **Cause**: Invalid API credentials -- **Solution**: Verify API keys and wallet address in `.env` file - -#### `MarketNotFoundError` -- **Cause**: Market slug or ID not found -- **Solution**: Verify market exists and is active - -### Error Response Format - -All API errors return JSON: - -```json -{ - "error": "Error message", - "code": "ERROR_CODE", - "details": {} -} -``` - -### Retry Logic - -The framework implements automatic retry for: -- Network errors (up to 3 retries) -- Rate limit errors (with exponential backoff) -- 5xx server errors (up to 3 retries) - -No retry for: -- 4xx client errors (except 429) -- Authentication errors -- Validation errors diff --git a/polymarket/docs/DOCUMENTATION_SUMMARY.md b/polymarket/docs/DOCUMENTATION_SUMMARY.md deleted file mode 100644 index df9b227..0000000 --- a/polymarket/docs/DOCUMENTATION_SUMMARY.md +++ /dev/null @@ -1,166 +0,0 @@ -# Documentation Summary & Evaluation - -## Documentation Completeness Assessment - -### ✅ Complete Documentation - -1. **API Reference** (`API_REFERENCE.md`) - - ✅ Rate limits for all APIs (Gamma, CLOB, Data) - - ✅ Complete endpoint documentation - - ✅ Request/response formats - - ✅ Error handling and codes - - ✅ Code examples for all methods - - ✅ Parameter descriptions - - ✅ Return type specifications - -2. **Glossary** (`GLOSSARY.md`) - - ✅ Core concepts defined - - ✅ Trading terminology - - ✅ Position management terms - - ✅ Performance metrics explained - - ✅ API terms documented - - ✅ Common abbreviations - - ✅ Price notation explained - -3. **Strategy Development Guide** (`STRATEGY_GUIDE.md`) - - ✅ Step-by-step strategy creation - - ✅ Complete examples - - ✅ Advanced patterns - - ✅ Best practices - - ✅ Common strategy types - - ✅ Testing guidelines - - ✅ Strategy checklist - -4. **Quick Start Guide** (`QUICKSTART.md`) - - ✅ Installation instructions - - ✅ Configuration setup - - ✅ Basic examples - - ✅ Common use cases - -5. **Implementation Notes** (`IMPLEMENTATION_NOTES.md`) - - ✅ Framework status - - ✅ Known limitations - - ✅ Next steps - - ✅ Security notes - -### Documentation Quality Metrics - -#### Coverage: 95% -- All major components documented -- All public APIs documented -- Examples provided for common use cases -- Edge cases and error handling covered - -#### Clarity: Excellent -- Clear explanations -- Code examples for every concept -- Step-by-step guides -- Terminology consistently defined - -#### Completeness: Very Good -- API methods fully documented -- Parameters and return types specified -- Error handling explained -- Best practices included - -#### Usability: Excellent -- Quick start guide for beginners -- Advanced guides for experienced users -- Examples for all major features -- Troubleshooting information - -## Documentation Structure - -``` -polymarket/ -├── README.md # Main entry point -├── IMPLEMENTATION_NOTES.md # Framework status -├── example_usage.py # Code examples -└── docs/ - ├── QUICKSTART.md # Getting started - ├── API_REFERENCE.md # Complete API docs - ├── STRATEGY_GUIDE.md # Strategy development - ├── GLOSSARY.md # Terminology - └── DOCUMENTATION_SUMMARY.md # This file -``` - -## Key Documentation Features - -### 1. Rate Limits -- **Documented**: ✅ Complete -- **Details**: Limits for all APIs, handling strategies, error responses -- **Location**: `API_REFERENCE.md` → Rate Limits section - -### 2. Endpoints Reference -- **Documented**: ✅ Complete -- **Details**: All methods, parameters, return types, examples -- **Location**: `API_REFERENCE.md` → API Client sections - -### 3. Glossary -- **Documented**: ✅ Complete -- **Details**: 50+ terms defined, abbreviations, notation -- **Location**: `GLOSSARY.md` - -### 4. Strategy Development -- **Documented**: ✅ Complete -- **Details**: Creation guide, patterns, best practices, testing -- **Location**: `STRATEGY_GUIDE.md` - -## What's Well Documented - -1. **API Usage**: Every method has examples and clear parameter descriptions -2. **Error Handling**: Comprehensive error documentation with solutions -3. **Rate Limiting**: Detailed rate limit specifications and handling -4. **Strategy Creation**: Step-by-step guide with complete examples -5. **Terminology**: Extensive glossary covering all key concepts -6. **Configuration**: Clear setup instructions and examples - -## Minor Gaps (Non-Critical) - -1. **Market Makers**: Not documented (optional feature) - - Would require additional Polymarket docs - - Not essential for basic trading - -2. **WebSocket Integration**: Mentioned but not detailed - - Framework doesn't implement WebSockets yet - - Documented in implementation notes - -3. **Advanced Order Types**: Basic orders documented, advanced types not - - Market orders, limit orders covered - - Stop orders, conditional orders not detailed - -## Documentation Best Practices Followed - -✅ **Clear Structure**: Logical organization with table of contents -✅ **Code Examples**: Every concept has working code examples -✅ **Cross-References**: Links between related documentation -✅ **Progressive Disclosure**: Basic → Advanced content flow -✅ **Searchability**: Well-organized sections and headings -✅ **Completeness**: All public APIs documented -✅ **Accuracy**: Documentation matches code implementation - -## Recommendations - -### For Users -1. Start with `QUICKSTART.md` for basic setup -2. Read `STRATEGY_GUIDE.md` before creating strategies -3. Reference `API_REFERENCE.md` for specific method details -4. Check `GLOSSARY.md` for terminology questions - -### For Developers -1. Review `IMPLEMENTATION_NOTES.md` for framework status -2. Check `API_REFERENCE.md` for integration details -3. Follow patterns in `STRATEGY_GUIDE.md` for new strategies - -## Conclusion - -The Polymarket framework documentation is **comprehensive and production-ready**. All critical components are documented with examples, and the documentation structure supports both beginners and advanced users. - -**Overall Grade: A (95/100)** - -- Coverage: 95/100 -- Clarity: 98/100 -- Completeness: 95/100 -- Usability: 97/100 - -The framework is well-documented and ready for use. Minor gaps exist only in optional features (market makers) that aren't essential for core functionality. diff --git a/polymarket/docs/GLOSSARY.md b/polymarket/docs/GLOSSARY.md deleted file mode 100644 index 2b1b4d2..0000000 --- a/polymarket/docs/GLOSSARY.md +++ /dev/null @@ -1,200 +0,0 @@ -# Polymarket Glossary - -Complete terminology reference for Polymarket prediction markets. - -## Core Concepts - -### Prediction Market -A market where participants trade contracts based on the outcome of future events. Prices represent the market's collective probability assessment. - -### Market -A specific question with binary or multiple outcomes. Each market resolves to one outcome based on real-world events. - -### Event -A collection of related markets. For example, an election event may contain multiple markets for different races. - -### Outcome -A possible result of a market. Binary markets have two outcomes: "Yes" and "No". - -### Token -A conditional token representing a position in a specific outcome. Each outcome has its own token (e.g., "Yes Token", "No Token"). - -### CLOB Token ID -A unique identifier for a conditional token in the CLOB (Central Limit Order Book) system. Used for trading and order placement. - -## Trading Terms - -### Bid -An offer to buy tokens at a specified price. The highest bid is the best bid. - -### Ask -An offer to sell tokens at a specified price. The lowest ask is the best ask. - -### Spread -The difference between the best ask and best bid prices. Represents the cost of immediate execution. - -### Mid Price -The average of the best bid and best ask: `(bid + ask) / 2`. Often used as a fair value estimate. - -### Order Book -A list of all open buy (bids) and sell (asks) orders for a token, sorted by price and time. - -### Market Depth -The total volume available at each price level in the order book. Indicates liquidity. - -### Price Impact -The change in price caused by executing a trade of a given size. Larger trades typically have higher price impact. - -### Slippage -The difference between expected execution price and actual execution price. Caused by consuming multiple order book levels. - -### Liquidity -The ease with which tokens can be bought or sold without significantly affecting the price. High liquidity = tight spreads and deep order books. - -## Position Management - -### Position -An open trade holding tokens in a specific outcome. Can be long (holding Yes tokens) or short (holding No tokens). - -### Entry Price -The average price at which a position was opened. - -### Exit Price -The price at which a position is closed. - -### Unrealized PnL -Profit or loss on an open position, calculated from current market price. - -### Realized PnL -Profit or loss from a closed position. - -### Equity -Total account value: `balance + unrealized_pnl` - -### Balance -Available USDC (USD Coin) for trading. - -## Market Resolution - -### Resolution Date -The date and time when a market resolves based on the outcome of the event. - -### Resolution Source -The authoritative source used to determine the outcome (e.g., official election results, sports league data). - -### Disputed Resolution -A market resolution that is challenged by participants. May require manual review. - -### Settlement -The process of distributing payouts to winning positions after market resolution. - -## Performance Metrics - -### Win Rate -Percentage of profitable trades: `(winning_trades / total_trades) * 100` - -### Profit Factor -Ratio of total profit to total loss: `abs(total_profit / total_loss)`. Values > 1 indicate profitability. - -### Sharpe Ratio -Risk-adjusted return metric. Higher values indicate better risk-adjusted performance. - -### Sortino Ratio -Similar to Sharpe ratio but only considers downside volatility. - -### Maximum Drawdown -The largest peak-to-trough decline in equity during a trading period. Expressed as a percentage. - -### Calmar Ratio -Return divided by maximum drawdown. Higher values indicate better risk-adjusted returns. - -### Expectancy -Expected profit per trade: `(win_rate * avg_win) - ((1 - win_rate) * avg_loss)` - -## API Terms - -### Rate Limit -Maximum number of API requests allowed per time period. Exceeding limits results in 429 errors. - -### API Key -Authentication credential for accessing authenticated endpoints. - -### Signature Type -Method of authentication: -- `0`: EOA (Externally Owned Account) - standard wallet -- `1`: POLY_PROXY - proxy contract -- `2`: GNOSIS_SAFE - Gnosis Safe multisig - -### Funder Address -Wallet address used to fund trades and pay gas fees. - -### Chain ID -Blockchain network identifier: -- `137`: Polygon mainnet (production) -- `80001`: Mumbai testnet (testing) - -## Strategy Terms - -### Signal -A trading recommendation generated by a strategy, including: -- Action: BUY, SELL, or HOLD -- Token ID: Which outcome to trade -- Size: Position size -- Confidence: Strategy's confidence level (0.0 to 1.0) - -### Confidence -A strategy's assessment of signal quality, typically between 0.0 (low) and 1.0 (high). Used to filter trades. - -### Risk Management -Rules and limits to protect capital: -- Maximum position size -- Maximum total exposure -- Stop losses -- Position limits - -### Backtesting -Simulating strategy performance on historical data to evaluate profitability before live trading. - -### Paper Trading -Trading with simulated funds to test strategies without financial risk. - -## Market Types - -### Binary Market -A market with exactly two outcomes: Yes and No. Most common market type. - -### Scalar Market -A market with a range of possible outcomes (e.g., "Bitcoin price will be between $50k-$60k"). - -### Multi-Outcome Market -A market with more than two discrete outcomes (e.g., "Which team will win?" with multiple teams). - -## Tag Categories - -Common market categories identified by tag IDs: - -- **Crypto** (tag_id: 21): Cryptocurrency-related markets -- **Politics** (tag_id: varies): Political events and elections -- **Sports** (tag_id: varies): Sports betting markets -- **Economics** (tag_id: varies): Economic indicators and events -- **Technology** (tag_id: varies): Tech industry events - -## Common Abbreviations - -- **CLOB**: Central Limit Order Book -- **PnL**: Profit and Loss -- **USDC**: USD Coin (stablecoin) -- **EOA**: Externally Owned Account -- **API**: Application Programming Interface -- **REST**: Representational State Transfer (API protocol) -- **WebSocket**: Real-time communication protocol -- **JSON**: JavaScript Object Notation (data format) - -## Price Notation - -Prices in Polymarket are represented as probabilities between 0.0 and 1.0: -- `0.50` = 50% probability = $0.50 per share -- `0.75` = 75% probability = $0.75 per share -- `1.00` = 100% probability = $1.00 per share (guaranteed outcome) - -For binary markets, Yes + No prices should sum to approximately 1.0 (accounting for spread). diff --git a/polymarket/docs/QUICKSTART.md b/polymarket/docs/QUICKSTART.md deleted file mode 100644 index 2258c36..0000000 --- a/polymarket/docs/QUICKSTART.md +++ /dev/null @@ -1,173 +0,0 @@ -# Polymarket Trading Framework - Quick Start Guide - -## Installation - -```bash -cd polymarket -pip install -r requirements.txt - -# For live trading, also install: -pip install py-clob-client ethers -``` - -## Configuration - -Create a `.env` file in the `polymarket` directory: - -```env -# Required for live trading -POLYMARKET_PRIVATE_KEY=your_private_key_here -POLYMARKET_CHAIN_ID=137 -POLYMARKET_SIGNATURE_TYPE=0 -POLYMARKET_FUNDER_ADDRESS=your_wallet_address - -# Optional -POLYMARKET_INITIAL_BALANCE=1000.0 -POLYMARKET_MAX_POSITION_SIZE=0.5 -POLYMARKET_REQUEST_DELAY=0.1 -``` - -## Quick Examples - -### 1. Discover Markets - -```python -from polymarket import GammaClient - -gamma = GammaClient() -events = gamma.get_events(active=True, closed=False, limit=10) -for event in events: - print(f"{event['title']}: {event['slug']}") -``` - -### 2. Get Market Prices - -```python -from polymarket import GammaClient, ClobClient - -gamma = GammaClient() -clob = ClobClient() - -# Get market -market = gamma.get_market_by_slug('will-bitcoin-reach-100k-by-2025') -prices = gamma.get_market_prices(market) - -# Get orderbook -token_id = market['clobTokenIds'][0] -best_bid_ask = clob.get_best_bid_ask(token_id) -print(f"Best Bid: {best_bid_ask['bid']}, Best Ask: {best_bid_ask['ask']}") -``` - -### 3. Run a Backtest - -```python -from datetime import datetime, timedelta -from polymarket import BacktestEngine -from polymarket.strategies.examples import SimpleProbabilityStrategy - -# Create strategy -strategy = SimpleProbabilityStrategy( - threshold=0.15, # Trade when probability deviates 15% from 0.5 - min_confidence=0.7 -) - -# Set period -end_date = datetime.now() -start_date = end_date - timedelta(days=30) - -# Run backtest -engine = BacktestEngine(strategy, start_date, end_date, initial_balance=1000.0) -results = engine.run() -engine.generate_report() -``` - -### 4. Live Trading - -```python -from polymarket import LiveTradingEngine -from polymarket.strategies.examples import SimpleProbabilityStrategy - -# Create strategy -strategy = SimpleProbabilityStrategy() - -# Create engine -engine = LiveTradingEngine(strategy, poll_interval=60) - -# Add markets to monitor -engine.monitor_tag(tag_id=21, limit=10) # Monitor crypto markets - -# Start trading -engine.start() -``` - -## Creating Your Own Strategy - -```python -from polymarket.strategies import BaseStrategy, MarketSignal - -class MyStrategy(BaseStrategy): - def __init__(self): - super().__init__(name="MyStrategy", initial_balance=1000.0) - self.my_parameter = 0.2 - - def analyze_market(self, market_data): - prices = market_data.get('prices', {}) - yes_price = prices.get('Yes', 0.5) - - # Your trading logic here - if yes_price < 0.3: # Undervalued - return MarketSignal( - action='BUY', - token_id=market_data['market']['clobTokenIds'][0], - size=0.2, # 20% of balance - confidence=0.8, - reason="Yes probability is undervalued", - metadata={} - ) - - return None - - def get_parameters(self): - return {'my_parameter': self.my_parameter} -``` - -## API Reference - -### GammaClient (Market Discovery) - -- `get_events()` - Fetch active events -- `get_event_by_slug()` - Get event by slug -- `get_market_by_slug()` - Get market by slug -- `get_tags()` - Get all categories -- `get_sports()` - Get sports leagues -- `search_events()` - Search events - -### ClobClient (Trading Data) - -- `get_price()` - Get current price -- `get_orderbook()` - Get full orderbook -- `get_best_bid_ask()` - Get best bid/ask -- `get_market_depth()` - Get market depth -- `calculate_impact()` - Calculate price impact - -### DataClient (Portfolio) - -- `get_positions()` - Get user positions -- `get_trades()` - Get trade history -- `get_portfolio()` - Get portfolio summary - -## Notes - -1. **Historical Data**: Polymarket API may not provide full historical data. The backtesting engine uses simulated price evolution. For production, you'd need to store historical snapshots. - -2. **Rate Limits**: Be mindful of API rate limits. The framework includes request delays, but check Polymarket documentation for current limits. - -3. **Authentication**: Live trading requires proper authentication with `py-clob-client`. See Polymarket documentation for setup. - -4. **Testing**: Always test strategies thoroughly in backtesting before live trading. - -## Next Steps - -- Read [Strategy Development Guide](STRATEGIES.md) -- Read [Backtesting Guide](BACKTESTING.md) -- Read [Live Trading Guide](LIVE_TRADING.md) diff --git a/polymarket/docs/STRATEGY_GUIDE.md b/polymarket/docs/STRATEGY_GUIDE.md deleted file mode 100644 index b45d6f0..0000000 --- a/polymarket/docs/STRATEGY_GUIDE.md +++ /dev/null @@ -1,423 +0,0 @@ -# Strategy Development Guide - -Complete guide to developing trading strategies for Polymarket. - -## Table of Contents - -- [Strategy Basics](#strategy-basics) -- [Creating Your First Strategy](#creating-your-first-strategy) -- [Advanced Patterns](#advanced-patterns) -- [Best Practices](#best-practices) -- [Common Strategies](#common-strategies) -- [Testing Strategies](#testing-strategies) - -## Strategy Basics - -### What is a Strategy? - -A strategy is a Python class that: -1. Analyzes market data -2. Generates trading signals -3. Manages risk and positions -4. Tracks performance - -### Strategy Lifecycle - -1. **Initialization**: Set up parameters and initial state -2. **Market Analysis**: Receive market data and analyze -3. **Signal Generation**: Decide whether to trade -4. **Position Management**: Track open positions -5. **Performance Tracking**: Monitor PnL and metrics - -## Creating Your First Strategy - -### Step 1: Inherit from BaseStrategy - -```python -from polymarket.strategies import BaseStrategy, MarketSignal - -class MyStrategy(BaseStrategy): - def __init__(self): - super().__init__(name="MyStrategy", initial_balance=1000.0) - # Your initialization code -``` - -### Step 2: Implement analyze_market() - -```python -def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - """ - Analyze market and generate signal. - - Args: - market_data: Dictionary with: - - 'event': Event information - - 'market': Market information - - 'prices': Current outcome prices {'Yes': 0.65, 'No': 0.35} - - 'orderbook': Orderbook data - - 'timestamp': Current timestamp - - Returns: - MarketSignal or None - """ - prices = market_data.get('prices', {}) - yes_price = prices.get('Yes', 0.5) - - # Your trading logic here - if yes_price < 0.4: # Undervalued - return MarketSignal( - action='BUY', - token_id=market_data['market']['clobTokenIds'][0], - size=0.2, # 20% of balance - confidence=0.8, - reason="Yes probability is undervalued", - metadata={'yes_price': yes_price} - ) - - return None # No trade -``` - -### Step 3: Implement get_parameters() - -```python -def get_parameters(self) -> Dict[str, Any]: - """Return strategy parameters""" - return { - 'threshold': 0.4, - 'position_size': 0.2 - } -``` - -### Complete Example - -```python -from typing import Dict, Optional -from polymarket.strategies import BaseStrategy, MarketSignal - -class MeanReversionStrategy(BaseStrategy): - """ - Simple mean reversion strategy. - Buys when price deviates significantly from 0.5. - """ - - def __init__(self, threshold: float = 0.15): - super().__init__(name="MeanReversion", initial_balance=1000.0) - self.threshold = threshold - - def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - prices = market_data.get('prices', {}) - yes_price = prices.get('Yes', 0.5) - - # Calculate deviation from fair value (0.5) - deviation = abs(yes_price - 0.5) - - if deviation < self.threshold: - return None # Not enough deviation - - # Determine action - if yes_price < (0.5 - self.threshold): - # Yes is undervalued, buy - confidence = min(1.0, deviation / self.threshold) - - return MarketSignal( - action='BUY', - token_id=market_data['market']['clobTokenIds'][0], - size=0.2, - confidence=confidence, - reason=f"Yes price {yes_price:.2%} is {deviation:.2%} below fair value", - metadata={'yes_price': yes_price, 'deviation': deviation} - ) - - elif yes_price > (0.5 + self.threshold): - # Yes is overvalued, close position if we have one - token_id = market_data['market']['clobTokenIds'][0] - if token_id in self.positions: - return MarketSignal( - action='SELL', - token_id=token_id, - size=1.0, # Close entire position - confidence=confidence, - reason=f"Yes price {yes_price:.2%} is {deviation:.2%} above fair value", - metadata={'yes_price': yes_price, 'deviation': deviation} - ) - - return None - - def get_parameters(self) -> Dict: - return {'threshold': self.threshold} -``` - -## Advanced Patterns - -### Using Orderbook Data - -```python -def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - orderbook = market_data.get('orderbook', {}) - bids = orderbook.get('bids', []) - asks = orderbook.get('asks', []) - - if not bids or not asks: - return None - - # Calculate bid-ask spread - best_bid = bids[0]['price'] - best_ask = asks[0]['price'] - spread = best_ask - best_bid - - # Trade when spread is tight (good liquidity) - if spread < 0.02: # 2% spread - # Your trading logic - pass -``` - -### Using Historical Data - -```python -def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - history = market_data.get('history', []) - - if len(history) < 20: - return None # Not enough data - - # Calculate moving average - recent_prices = [h['price'] for h in history[-20:]] - ma = sum(recent_prices) / len(recent_prices) - - current_price = market_data['prices']['Yes'] - - # Mean reversion: buy when below MA - if current_price < ma * 0.95: - return MarketSignal(...) -``` - -### Position Sizing Based on Confidence - -```python -def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - # Calculate confidence - confidence = self.calculate_confidence(market_data) - - # Size position based on confidence - # Higher confidence = larger position - base_size = 0.1 # 10% base - size = base_size * confidence # Scale by confidence - - return MarketSignal( - action='BUY', - token_id=..., - size=size, - confidence=confidence, - ... - ) -``` - -### Risk Management - -```python -class RiskManagedStrategy(BaseStrategy): - def __init__(self): - super().__init__(name="RiskManaged", initial_balance=1000.0) - # Override risk limits - self.max_position_size = 0.3 # Max 30% per position - self.max_total_exposure = 0.6 # Max 60% total - self.min_confidence = 0.7 # Only trade high confidence - - def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - # Check if we can open new position - if len(self.positions) >= 3: - return None # Max 3 positions - - # Your trading logic - signal = self.generate_signal(market_data) - - if signal and signal.confidence >= self.min_confidence: - # Verify we can open position - size_usdc = signal.size * self.current_balance - if self.can_open_position(size_usdc, signal.token_id): - return signal - - return None -``` - -## Best Practices - -### 1. Always Check Data Availability - -```python -def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - prices = market_data.get('prices', {}) - if not prices: - return None # No price data - - yes_price = prices.get('Yes') - if yes_price is None: - return None # Missing Yes price -``` - -### 2. Validate Token IDs - -```python -def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - market = market_data.get('market', {}) - token_ids = market.get('clobTokenIds', []) - - if not token_ids: - return None # No token IDs available - - token_id = token_ids[0] - # Use token_id... -``` - -### 3. Use Confidence Thresholds - -```python -# Only trade high-confidence signals -if signal.confidence < self.min_confidence: - return None -``` - -### 4. Log Trading Decisions - -```python -import logging - -logger = logging.getLogger(__name__) - -def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - signal = self.generate_signal(market_data) - - if signal: - logger.info(f"Signal: {signal.action} {signal.token_id} " - f"size={signal.size:.2%} confidence={signal.confidence:.2f} " - f"reason: {signal.reason}") - - return signal -``` - -### 5. Handle Edge Cases - -```python -def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - prices = market_data.get('prices', {}) - yes_price = prices.get('Yes', 0.5) - no_price = prices.get('No', 0.5) - - # Check if prices are valid - if yes_price <= 0 or yes_price >= 1: - return None # Invalid price - - # Check if market is close to resolution - market = market_data.get('market', {}) - end_date = market.get('endDate') - if end_date and self.is_near_resolution(end_date): - return None # Too close to resolution, avoid trading -``` - -## Common Strategies - -### 1. Mean Reversion - -Buy when price deviates from fair value (0.5), sell when it returns. - -### 2. Momentum - -Buy when price is trending up, sell when trend reverses. - -### 3. Arbitrage - -Exploit price differences between related markets. - -### 4. Market Making - -Provide liquidity by placing both buy and sell orders. - -### 5. News-Based - -Trade based on external information and news events. - -### 6. Statistical Arbitrage - -Use statistical models to identify mispriced markets. - -## Testing Strategies - -### Unit Testing - -```python -import unittest -from polymarket.strategies.examples import SimpleProbabilityStrategy - -class TestStrategy(unittest.TestCase): - def setUp(self): - self.strategy = SimpleProbabilityStrategy(threshold=0.15) - - def test_analyze_market_undervalued(self): - market_data = { - 'market': {'clobTokenIds': ['token123']}, - 'prices': {'Yes': 0.3, 'No': 0.7} # Undervalued - } - - signal = self.strategy.analyze_market(market_data) - - self.assertIsNotNone(signal) - self.assertEqual(signal.action, 'BUY') - self.assertGreater(signal.confidence, 0.7) -``` - -### Backtesting - -```python -from datetime import datetime, timedelta -from polymarket import BacktestEngine - -strategy = MyStrategy() -end_date = datetime.now() -start_date = end_date - timedelta(days=30) - -engine = BacktestEngine(strategy, start_date, end_date) -results = engine.run() - -print(f"Total Return: {results['total_return']:.2f}%") -print(f"Win Rate: {results['win_rate']:.2f}%") -``` - -### Paper Trading - -Test strategies with live data but simulated execution: - -```python -from polymarket import LiveTradingEngine - -strategy = MyStrategy() -engine = LiveTradingEngine(strategy, poll_interval=60) - -# Add markets -engine.monitor_tag(tag_id=21, limit=10) - -# Start (will simulate orders) -engine.start() -``` - -## Strategy Checklist - -Before deploying a strategy: - -- [ ] Strategy inherits from `BaseStrategy` -- [ ] `analyze_market()` implemented -- [ ] `get_parameters()` implemented -- [ ] Risk management limits set -- [ ] Edge cases handled -- [ ] Data validation included -- [ ] Backtested on historical data -- [ ] Paper traded successfully -- [ ] Performance metrics reviewed -- [ ] Error handling implemented -- [ ] Logging added - -## Next Steps - -- Read [API Reference](API_REFERENCE.md) for detailed API documentation -- Check [Glossary](GLOSSARY.md) for terminology -- Review example strategies in `strategies/examples/` -- Test your strategy thoroughly before live trading diff --git a/polymarket/gui/QUICKSTART.md b/polymarket/gui/QUICKSTART.md deleted file mode 100644 index 198b3f3..0000000 --- a/polymarket/gui/QUICKSTART.md +++ /dev/null @@ -1,98 +0,0 @@ -# Quick Start - Cyberpunk Dashboard - -## 🚀 Get Started in 3 Steps - -### Step 1: Install Dependencies - -```bash -cd polymarket/gui -pip install -r requirements.txt -``` - -### Step 2: Run the Dashboard - -**Windows:** -```bash -run.bat -``` - -**Linux/Mac:** -```bash -python app.py -``` - -### Step 3: Open in Browser - -Open: **http://localhost:5000** - -## 🎮 Using the Dashboard - -### Starting Trading - -1. **Set Parameters**: - - **Threshold**: How much price deviation to trigger trades (0.15 = 15%) - - **Min Confidence**: Minimum confidence level (0.7 = 70%) - - **Initial Balance**: Starting USDC (e.g., 1000) - - **Category**: Market category (Crypto, Politics, Sports) - -2. **Click "START TRADING"** - -3. **Monitor**: - - Watch markets update in real-time - - See your balance and equity - - Track open positions - - View performance metrics - -### Features - -- **Real-time Market Data**: Markets update every 2 seconds -- **Live Strategy Metrics**: Balance, equity, P&L, win rate -- **Position Tracking**: See all open positions with P&L -- **Cyberpunk Theme**: Neon colors, glitch effects, animations - -## 🎨 Customization - -### Change Colors - -Edit `static/style.css`: - -```css -:root { - --neon-cyan: #00ffff; /* Main color */ - --neon-pink: #ff00ff; /* Accent */ - --neon-green: #00ff00; /* Success */ -} -``` - -### Change Update Frequency - -Edit `static/script.js`: - -```javascript -updateInterval = setInterval(..., 2000); // Change 2000 to desired ms -``` - -## 🐛 Troubleshooting - -**Port 5000 already in use?** -- Edit `app.py`, change: `socketio.run(app, port=5001)` -- Then open: http://localhost:5001 - -**Markets not loading?** -- Check internet connection -- Verify Polymarket API is accessible -- Check browser console (F12) for errors - -**Trading won't start?** -- Ensure all parameters are valid -- Check that markets are available -- Review terminal output for errors - -## 💡 Tips - -- Start with small balance for testing -- Use threshold 0.15-0.20 for balanced trading -- Monitor win rate - should be > 50% for good strategies -- Watch drawdown - keep it under 20% - -Enjoy your cyberpunk trading! 💀🚀 diff --git a/polymarket/gui/README.md b/polymarket/gui/README.md deleted file mode 100644 index bfc841a..0000000 --- a/polymarket/gui/README.md +++ /dev/null @@ -1,125 +0,0 @@ -# Cyberpunk Polymarket Trading Dashboard - -A futuristic, cyberpunk-themed web-based GUI for the Polymarket trading framework. - -## Features - -- 🎮 **Cyberpunk Aesthetic**: Neon colors, glitch effects, and futuristic design -- 📊 **Real-time Market Data**: Live market prices and orderbook data -- 🎯 **Strategy Control**: Start/stop trading with customizable parameters -- 📈 **Performance Metrics**: Real-time P&L, win rate, and position tracking -- 💹 **Position Management**: Visual display of open positions with P&L -- 🔌 **WebSocket Updates**: Real-time data streaming - -## Installation - -```bash -cd polymarket/gui -pip install -r requirements.txt -``` - -## Running the Dashboard - -```bash -python app.py -``` - -Then open your browser to: **http://localhost:5000** - -## Usage - -1. **Configure Strategy**: - - Set threshold (probability deviation) - - Set minimum confidence - - Set initial balance - - Select market category - -2. **Start Trading**: - - Click "START TRADING" button - - Monitor real-time metrics - - View open positions - -3. **Monitor Performance**: - - Watch balance and equity updates - - Track win rate and P&L - - View position details - -4. **Stop Trading**: - - Click "STOP TRADING" when done - -## Controls - -- **Threshold**: Probability deviation threshold (0.05 - 0.3) -- **Min Confidence**: Minimum confidence to trade (0.5 - 1.0) -- **Initial Balance**: Starting USDC balance -- **Category**: Market category to monitor (Crypto, Politics, Sports) - -## Features - -### Real-time Updates -- Market prices update every 2 seconds -- Strategy metrics update in real-time -- Position P&L calculated live - -### Visual Feedback -- Neon color scheme (cyan, pink, green) -- Glitch effects and animations -- Status indicators -- Notification system - -### Responsive Design -- Works on desktop and tablet -- Grid-based layout -- Scrollable market lists - -## Troubleshooting - -**Port already in use?** -- Change port in `app.py`: `socketio.run(app, port=5001)` - -**Markets not loading?** -- Check internet connection -- Verify Polymarket API is accessible -- Check browser console for errors - -**Trading not starting?** -- Ensure strategy parameters are valid -- Check that markets are available -- Review server logs for errors - -## Customization - -### Colors -Edit `static/style.css` CSS variables: -```css -:root { - --neon-cyan: #00ffff; - --neon-pink: #ff00ff; - --neon-green: #00ff00; -} -``` - -### Update Frequency -Change in `static/script.js`: -```javascript -updateInterval = setInterval(..., 2000); // 2 seconds -``` - -## Screenshots - -The dashboard features: -- Glitch text header with "POLYMARKET" -- Three-panel layout (Strategy, Markets, Performance) -- Bottom panel for positions -- Animated background grid -- Particle effects -- Neon glow effects - -## Notes - -- The dashboard runs in simulation mode by default -- For live trading, configure API credentials in `.env` -- All trading is done through the framework's strategy system -- WebSocket provides real-time updates when available - -Enjoy your cyberpunk trading experience! 🚀💀 diff --git a/polymarket/gui/README_COMPONENTS.md b/polymarket/gui/README_COMPONENTS.md deleted file mode 100644 index 35206c8..0000000 --- a/polymarket/gui/README_COMPONENTS.md +++ /dev/null @@ -1,40 +0,0 @@ -# Component Architecture - -The GUI has been refactored into a modular component-based architecture to prevent code bloat. - -## Frontend Components - -### `/static/js/components/` -- **MarketsComponent.js** - Market data fetching and display -- **StrategyComponent.js** - Strategy controls and status -- **PositionsComponent.js** - Position display -- **BacktestComponent.js** - Backtesting functionality - -### `/static/js/utils/` -- **Notification.js** - Global notification system -- **WebSocketManager.js** - WebSocket event management - -### `/static/js/app.js` -- Main application entry point -- Initializes all components -- Manages component lifecycle - -## Backend Blueprints - -### `/api/` -- **markets.py** - Market data endpoints -- **strategy.py** - Strategy control endpoints -- **backtest.py** - Backtesting endpoints -- **__init__.py** - Blueprint registration - -## Benefits - -1. **Separation of Concerns** - Each component handles one responsibility -2. **Reusability** - Components can be reused across different views -3. **Maintainability** - Easier to find and fix bugs -4. **Testability** - Components can be tested independently -5. **Scalability** - Easy to add new features without bloating existing code - -## Usage - -The app automatically loads all components on startup. Each component manages its own state and updates. diff --git a/polymarket/gui/__init__.py b/polymarket/gui/__init__.py deleted file mode 100644 index a6a162a..0000000 --- a/polymarket/gui/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Cyberpunk Polymarket Trading Dashboard""" diff --git a/polymarket/gui/__pycache__/app.cpython-312.pyc b/polymarket/gui/__pycache__/app.cpython-312.pyc deleted file mode 100644 index 5c6dd6efb3630f0895ed8e0232849f9a7bff3b3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2477 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 LbL_AvOW*$i3Z?Da diff --git a/polymarket/gui/api/__pycache__/markets.cpython-312.pyc b/polymarket/gui/api/__pycache__/markets.cpython-312.pyc deleted file mode 100644 index 6c2cf530fec050140bd57c5ede9f9b52cc5d0990..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7060 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 L=_Ehx#Qc8&Bcg=t diff --git a/polymarket/gui/api/__pycache__/strategy.cpython-312.pyc b/polymarket/gui/api/__pycache__/strategy.cpython-312.pyc deleted file mode 100644 index 3ecd24c2cf7208e8f001176b97c2eefd3e65c5b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1801 zcma)6&1)M+6rWj1yDQ21@UCSi#T13uPS#-O)|R%Ew3IY$p$$*#LMKxd)e9G(^#q+=Ko>7S=SaSZe_M+4 zB83H;(gilf*KA4)HsxN~TJBeJHO?GPo4x9%cfPFN^}3t}xqoEpR!U?)Yjvs5+zuDo zgTU*!2R)%N`lw3-F7#k#d8-*Qz4`Oae)&dx2#UkI!TziW(N7*^3ijDu5Kj=F6$>Fg zD>i6xn-Etc8xUMiw5YxE3tA`tlwXq~)*#`&`32?GI0aB-3QRh;bfG%?+&!d1+jCk@ zXP*ich`78bvc4C%-1RzvP=OMmfzXfKjxFmVRG)bVF0ducIU?Rs$5NThQRLjfmT0%r z6y-Ri9s4dNC$k_%axjlJ2Tj91M`x1T%a1<)urUqm?6v3){obdH?>OYp4LsKHy;iU7 zu!od4nq9Zy_--Tiz3cac*`(Z#4?u}Za0%Ql!wz;q4A8$SS~4fb`oz3CF|JH1*FcU} zDr3V0dAgikQO{6zNefXnqp?*m>6`P$Ci$Q1t*lAZ+jUSDdrNQ=xi}tm=#tVe$Sx&r zm>dfWM^$AN(4&ZK4Kz`ZWah|s;H(NeSOGDk@%Za!#?agtPOpZB|LlV`K$(&wG`=$PI z+aui;{e*49t$cxk-$8^ajPa?W;Pihw!n-ff&R@l~r@3dhN5!2%K2%ZB9OTC4VeN^q$Z{=~)$40E_S!ds_G9&2YQq+AQ77OpScUmsyhhS`$$+o9CL s+`|3F@!|3PAvQ+%{Zl24w 0 else 0.5 - no_price = float(outcome_prices[1]) if len(outcome_prices) > 1 else 0.5 - - # Try to get better prices from orderbook - try: - yes_book = clob_client.get_orderbook(yes_token) - yes_bids = yes_book.get('bids', []) - yes_asks = yes_book.get('asks', []) - - if yes_bids and yes_asks: - yes_bid = float(yes_bids[0].get('price', yes_price)) - yes_ask = float(yes_asks[0].get('price', yes_price)) - yes_price = (yes_bid + yes_ask) / 2 - except Exception as e: - pass - - spread = abs(yes_price - no_price) - try: - yes_book = clob_client.get_orderbook(yes_token) - yes_bids = yes_book.get('bids', []) - yes_asks = yes_book.get('asks', []) - if yes_bids and yes_asks: - best_bid = float(yes_bids[0].get('price', yes_price)) - best_ask = float(yes_asks[0].get('price', yes_price)) - spread = best_ask - best_bid - except: - pass - - markets.append({ - 'id': market.get('id', ''), - 'question': market.get('question', event.get('title', 'Unknown Market')), - 'event': event.get('title', 'Unknown Event'), - 'yes_price': yes_price, - 'no_price': no_price, - 'bid': yes_price - (spread / 2) if yes_price > (spread / 2) else 0.0, - 'ask': yes_price + (spread / 2) if yes_price < (1 - spread / 2) else 1.0, - 'spread': spread, - 'token_id': yes_token, - 'volume': market.get('volume', 0) - }) - except Exception as e: - print(f"Error processing market: {e}") - continue - - print(f"[DEBUG] Returning {len(markets)} markets to frontend") - return jsonify({'markets': markets}) - except Exception as e: - import traceback - print(f"Error fetching markets: {e}") - print(traceback.format_exc()) - return jsonify({'markets': [], 'error': str(e)}) - - -@markets_bp.route('/market/') -def get_market_details(market_id): - """Get market details from real API""" - if not USE_REAL_API: - return jsonify({ - 'orderbook': {'bids': [], 'asks': []}, - 'best_bid_ask': {'bid': 0.5, 'ask': 0.5, 'spread': 0.0}, - 'depth': {'bid_depth': 0, 'ask_depth': 0} - }) - - try: - book = clob_client.get_orderbook(market_id) - - bids = book.get('bids', []) - asks = book.get('asks', []) - - best_bid = float(bids[0].get('price', 0.5)) if bids else 0.5 - best_ask = float(asks[0].get('price', 0.5)) if asks else 0.5 - - bid_depth = sum(float(bid.get('size', 0)) for bid in bids) - ask_depth = sum(float(ask.get('size', 0)) for ask in asks) - - return jsonify({ - 'orderbook': { - 'bids': bids[:10], - 'asks': asks[:10] - }, - 'best_bid_ask': { - 'bid': best_bid, - 'ask': best_ask, - 'spread': best_ask - best_bid, - 'mid': (best_bid + best_ask) / 2 - }, - 'depth': { - 'bid_depth': bid_depth, - 'ask_depth': ask_depth, - 'total_depth': bid_depth + ask_depth - } - }) - except Exception as e: - print(f"Error fetching market details: {e}") - return jsonify({ - 'orderbook': {'bids': [], 'asks': []}, - 'best_bid_ask': {'bid': 0.5, 'ask': 0.5, 'spread': 0.0}, - 'depth': {'bid_depth': 0, 'ask_depth': 0}, - 'error': str(e) - }) diff --git a/polymarket/gui/api/strategy.py b/polymarket/gui/api/strategy.py deleted file mode 100644 index 74d7e91..0000000 --- a/polymarket/gui/api/strategy.py +++ /dev/null @@ -1,51 +0,0 @@ -""" -Strategy API Routes -""" - -from flask import Blueprint, jsonify, request - -strategy_bp = Blueprint('strategy', __name__) - -# Global state -is_trading = False -strategy_balance = 1000.0 -strategy_equity = 1000.0 -strategy_positions = 0 -strategy_trades = 0 - - -@strategy_bp.route('/strategy/status') -def get_strategy_status(): - """Get strategy status""" - return jsonify({ - 'active': is_trading, - 'balance': strategy_balance, - 'equity': strategy_equity, - 'positions': strategy_positions, - 'trades': strategy_trades, - 'win_rate': 0, - 'profit': 0, - 'drawdown': 0 - }) - - -@strategy_bp.route('/strategy/positions') -def get_positions(): - """Get positions""" - return jsonify({'positions': []}) - - -@strategy_bp.route('/strategy/start', methods=['POST']) -def start_strategy(): - """Start trading strategy""" - global is_trading - is_trading = True - return jsonify({'status': 'started'}) - - -@strategy_bp.route('/strategy/stop', methods=['POST']) -def stop_strategy(): - """Stop trading strategy""" - global is_trading - is_trading = False - return jsonify({'status': 'stopped'}) diff --git a/polymarket/gui/app.py b/polymarket/gui/app.py deleted file mode 100644 index d6f5a9f..0000000 --- a/polymarket/gui/app.py +++ /dev/null @@ -1,81 +0,0 @@ -""" -Main Flask Application -Componentized version with blueprints -""" - -from flask import Flask, render_template -from flask_socketio import SocketIO -from pathlib import Path -import sys -import os -from dotenv import load_dotenv - -# Load environment variables -load_dotenv() - -# Setup paths -project_root = Path(__file__).parent.parent.parent -sys.path.insert(0, str(project_root)) -gui_path = Path(__file__).parent -sys.path.insert(0, str(gui_path)) - -# Import API blueprints -try: - from api import create_api_blueprint - from api.backtest import set_socketio -except ImportError: - # Fallback for direct execution - import importlib.util - api_init_path = gui_path / 'api' / '__init__.py' - spec = importlib.util.spec_from_file_location("api", api_init_path) - api_module = importlib.util.module_from_spec(spec) - spec.loader.exec_module(api_module) - create_api_blueprint = api_module.create_api_blueprint - - backtest_path = gui_path / 'api' / 'backtest.py' - spec = importlib.util.spec_from_file_location("backtest", backtest_path) - backtest_module = importlib.util.module_from_spec(spec) - spec.loader.exec_module(backtest_module) - set_socketio = backtest_module.set_socketio - -app = Flask(__name__, - template_folder='templates', - static_folder='static') -app.config['SECRET_KEY'] = 'cyberpunk-polymarket-secret' - -socketio = SocketIO(app, cors_allowed_origins="*") - -# Set socketio for backtest routes -set_socketio(socketio) - -# Register API blueprints -api_bp = create_api_blueprint() -app.register_blueprint(api_bp) - - -@app.route('/') -def index(): - """Main dashboard""" - return render_template('dashboard.html') - - -@socketio.on('connect') -def handle_connect(): - """Handle WebSocket connection""" - socketio.emit('status', {'message': 'Connected to Cyberpunk Dashboard'}) - - -@socketio.on('disconnect') -def handle_disconnect(): - """Handle WebSocket disconnection""" - pass - - -if __name__ == '__main__': - print("=" * 60) - print("CYBERPUNK POLYMARKET DASHBOARD") - print("=" * 60) - print("Starting server on http://localhost:5000") - print("Press Ctrl+C to stop") - print("=" * 60) - socketio.run(app, host='0.0.0.0', port=5000, debug=True) diff --git a/polymarket/gui/requirements.txt b/polymarket/gui/requirements.txt deleted file mode 100644 index 777e8f2..0000000 --- a/polymarket/gui/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -Flask>=2.3.0 -flask-socketio>=5.3.0 -python-socketio>=5.8.0 diff --git a/polymarket/gui/run.bat b/polymarket/gui/run.bat deleted file mode 100644 index daa1f88..0000000 --- a/polymarket/gui/run.bat +++ /dev/null @@ -1,13 +0,0 @@ -@echo off -echo ========================================== -echo 🚀 STARTING CYBERPUNK POLYMARKET DASHBOARD -echo ========================================== -echo. -echo 📦 Installing dependencies... -pip install -r requirements.txt -echo. -echo 🌐 Starting server... -echo 💀 Open http://localhost:5000 in your browser -echo. -python app.py -pause diff --git a/polymarket/gui/run.sh b/polymarket/gui/run.sh deleted file mode 100644 index 2bfca2d..0000000 --- a/polymarket/gui/run.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# Run the Cyberpunk Dashboard - -echo "==========================================" -echo "🚀 STARTING CYBERPUNK POLYMARKET DASHBOARD" -echo "==========================================" -echo "" -echo "📦 Installing dependencies..." -pip install -r requirements.txt -echo "" -echo "🌐 Starting server..." -echo "💀 Open http://localhost:5000 in your browser" -echo "" -python app.py diff --git a/polymarket/gui/simple_app.py b/polymarket/gui/simple_app.py deleted file mode 100644 index 1122d5c..0000000 --- a/polymarket/gui/simple_app.py +++ /dev/null @@ -1,643 +0,0 @@ -"""Simplified dashboard that definitely works""" -from flask import Flask, render_template, jsonify, request -from flask_socketio import SocketIO, emit -import sys -from pathlib import Path -from datetime import datetime, timedelta -import threading -import time -import numpy as np -import os -from dotenv import load_dotenv - -# Load environment variables -load_dotenv() - -# Setup paths -project_root = Path(__file__).parent.parent.parent -sys.path.insert(0, str(project_root)) - -# Import Polymarket API clients -try: - from polymarket.api import GammaClient, ClobClient, DataClient - gamma_client = GammaClient() - clob_client = ClobClient() - data_client = DataClient(api_key=os.getenv('POLYMARKET_API_KEY')) - USE_REAL_API = True - print("[OK] Connected to real Polymarket API") -except Exception as e: - print(f"[WARNING] Could not initialize API clients: {e}") - print("Falling back to mock data") - USE_REAL_API = False - gamma_client = None - clob_client = None - data_client = None - -app = Flask(__name__, - template_folder='templates', - static_folder='static') -socketio = SocketIO(app, cors_allowed_origins="*") - -# Mock state -is_trading = False -strategy_balance = 1000.0 -strategy_equity = 1000.0 -strategy_positions = 0 -strategy_trades = 0 - -# Backtesting state -backtest_running = False -backtest_results = None - -@app.route('/') -def index(): - """Main dashboard""" - return render_template('dashboard.html') - -@app.route('/api/markets') -def get_markets(): - """Get markets from real Polymarket API""" - if not USE_REAL_API: - # Fallback to mock data - return jsonify({ - 'markets': [ - { - 'id': '1', - 'question': 'Will Bitcoin reach $100k by 2025?', - 'event': 'Crypto Markets', - 'yes_price': 0.65, - 'no_price': 0.35, - 'bid': 0.64, - 'ask': 0.66, - 'spread': 0.02, - 'token_id': 'token123' - } - ] - }) - - try: - # Fetch events from Gamma API - events_data = gamma_client.get_events(active=True, closed=False, limit=50) - - # Handle different response formats - if isinstance(events_data, dict): - events = events_data.get('data', events_data.get('events', [])) - else: - events = events_data if isinstance(events_data, list) else [] - - print(f"[DEBUG] Fetched {len(events)} events from API") - - markets = [] - for event in events: - event_markets = event.get('markets', []) - if not event_markets: - # Some events might have markets directly in the event object - if 'question' in event or 'clobTokenIds' in event: - event_markets = [event] - else: - continue - - for market in event_markets: - try: - # Get clobTokenIds from market (per official docs) - # https://docs.polymarket.com/quickstart/fetching-data - clob_token_ids = market.get('clobTokenIds', []) - if len(clob_token_ids) < 2: - continue - - yes_token = clob_token_ids[0] - no_token = clob_token_ids[1] - - # Parse outcomes and prices from market (per docs format) - import json - outcomes = json.loads(market.get('outcomes', '["Yes", "No"]')) - outcome_prices = json.loads(market.get('outcomePrices', '[0.5, 0.5]')) - - # Use prices directly from market data first (faster) - yes_price = float(outcome_prices[0]) if len(outcome_prices) > 0 else 0.5 - no_price = float(outcome_prices[1]) if len(outcome_prices) > 1 else 0.5 - - # Try to get better prices from orderbook (optional enhancement) - try: - yes_book = clob_client.get_orderbook(yes_token) - yes_bids = yes_book.get('bids', []) - yes_asks = yes_book.get('asks', []) - - if yes_bids and yes_asks: - yes_bid = float(yes_bids[0].get('price', yes_price)) - yes_ask = float(yes_asks[0].get('price', yes_price)) - yes_price = (yes_bid + yes_ask) / 2 - except Exception as e: - print(f"Warning: Could not get orderbook for YES token: {e}") - # Use price from market data as fallback - - # Calculate spread from orderbook if available - spread = abs(yes_price - no_price) - try: - yes_book = clob_client.get_orderbook(yes_token) - yes_bids = yes_book.get('bids', []) - yes_asks = yes_book.get('asks', []) - if yes_bids and yes_asks: - best_bid = float(yes_bids[0].get('price', yes_price)) - best_ask = float(yes_asks[0].get('price', yes_price)) - spread = best_ask - best_bid - except: - pass - - markets.append({ - 'id': market.get('id', ''), - 'question': market.get('question', 'Unknown Market'), - 'event': event.get('title', 'Unknown Event'), - 'yes_price': yes_price, - 'no_price': no_price, - 'bid': yes_price - 0.01 if yes_price > 0.01 else 0.0, - 'ask': yes_price + 0.01 if yes_price < 0.99 else 1.0, - 'spread': abs(yes_price - no_price), - 'token_id': yes_token, - 'volume': market.get('volume', 0) - }) - except Exception as e: - print(f"Error processing market: {e}") - continue - - print(f"[DEBUG] Returning {len(markets)} markets to frontend") - return jsonify({'markets': markets}) - except Exception as e: - import traceback - print(f"Error fetching markets: {e}") - print(traceback.format_exc()) - return jsonify({'markets': [], 'error': str(e)}) - -@app.route('/api/strategy/status') -def get_strategy_status(): - """Get strategy status from real API""" - if not USE_REAL_API: - return jsonify({ - 'active': is_trading, - 'balance': strategy_balance, - 'equity': strategy_equity, - 'positions': strategy_positions, - 'trades': strategy_trades, - 'win_rate': 0, - 'profit': 0, - 'drawdown': 0 - }) - - try: - # Get portfolio data (requires user address) - # For now, return basic status - return jsonify({ - 'active': is_trading, - 'balance': strategy_balance, - 'equity': strategy_equity, - 'positions': strategy_positions, - 'trades': strategy_trades, - 'win_rate': 0, - 'profit': 0, - 'drawdown': 0 - }) - except Exception as e: - print(f"Error getting strategy status: {e}") - return jsonify({ - 'active': is_trading, - 'balance': 0.0, - 'equity': 0.0, - 'positions': 0, - 'trades': 0, - 'win_rate': 0, - 'profit': 0, - 'drawdown': 0 - }) - -@app.route('/api/strategy/positions') -def get_positions(): - """Get positions from real API""" - if not USE_REAL_API: - return jsonify({'positions': []}) - - try: - # Get positions (requires user address - would need to be configured) - # For now, return empty - return jsonify({'positions': []}) - except Exception as e: - print(f"Error fetching positions: {e}") - return jsonify({'positions': []}) - -@app.route('/api/strategy/start', methods=['POST']) -def start_strategy(): - """Start trading strategy""" - global is_trading - is_trading = True - return jsonify({'status': 'started'}) - -@app.route('/api/strategy/stop', methods=['POST']) -def stop_strategy(): - """Stop trading strategy""" - global is_trading - is_trading = False - return jsonify({'status': 'stopped'}) - -@app.route('/api/market/') -def get_market_details(market_id): - """Get market details from real API""" - if not USE_REAL_API: - return jsonify({ - 'orderbook': {'bids': [], 'asks': []}, - 'best_bid_ask': {'bid': 0.5, 'ask': 0.5, 'spread': 0.0}, - 'depth': {'bid_depth': 0, 'ask_depth': 0} - }) - - try: - # Get market by ID or slug - # Try to get orderbook for the token - book = clob_client.get_orderbook(market_id) - - bids = book.get('bids', []) - asks = book.get('asks', []) - - best_bid = float(bids[0].get('price', 0.5)) if bids else 0.5 - best_ask = float(asks[0].get('price', 0.5)) if asks else 0.5 - - bid_depth = sum(float(bid.get('size', 0)) for bid in bids) - ask_depth = sum(float(ask.get('size', 0)) for ask in asks) - - return jsonify({ - 'orderbook': { - 'bids': bids[:10], # Top 10 bids - 'asks': asks[:10] # Top 10 asks - }, - 'best_bid_ask': { - 'bid': best_bid, - 'ask': best_ask, - 'spread': best_ask - best_bid, - 'mid': (best_bid + best_ask) / 2 - }, - 'depth': { - 'bid_depth': bid_depth, - 'ask_depth': ask_depth, - 'total_depth': bid_depth + ask_depth - } - }) - except Exception as e: - print(f"Error fetching market details: {e}") - return jsonify({ - 'orderbook': {'bids': [], 'asks': []}, - 'best_bid_ask': {'bid': 0.5, 'ask': 0.5, 'spread': 0.0}, - 'depth': {'bid_depth': 0, 'ask_depth': 0}, - 'error': str(e) - }) - -@app.route('/api/backtest/run', methods=['POST']) -def run_backtest(): - """Run backtest""" - global backtest_running, backtest_results - - if backtest_running: - return jsonify({'error': 'Backtest already running'}), 400 - - try: - data = request.json - start_date = data.get('start_date') - end_date = data.get('end_date') - initial_balance = float(data.get('initial_balance', 1000.0)) - threshold = float(data.get('threshold', 0.15)) - min_confidence = float(data.get('min_confidence', 0.7)) - - # Parse dates - start = datetime.strptime(start_date, '%Y-%m-%d') - end = datetime.strptime(end_date, '%Y-%m-%d') - - # Run backtest in background thread - def run_backtest_thread(): - global backtest_running, backtest_results - backtest_running = True - - def log_message(msg, msg_type='info'): - """Emit log message via WebSocket""" - socketio.emit('backtest_log', { - 'message': msg, - 'type': msg_type, - 'timestamp': datetime.now().strftime('%H:%M:%S') - }) - time.sleep(0.01) # Small delay to prevent flooding - - try: - log_message(f"Starting backtest from {start.date()} to {end.date()}", 'info') - log_message(f"Initial Balance: ${initial_balance:.2f}", 'info') - log_message(f"Strategy Parameters: threshold={threshold}, confidence={min_confidence}", 'info') - - # Import backtesting engine - from polymarket.backtesting.engine import BacktestEngine - from polymarket.strategies.examples import SimpleProbabilityStrategy - import traceback - - # Create strategy - strategy = SimpleProbabilityStrategy( - initial_balance=initial_balance, - threshold=threshold, - min_confidence=min_confidence - ) - - log_message("Strategy initialized: SimpleProbabilityStrategy", 'success') - - # Create engine - engine = BacktestEngine(strategy, start, end, initial_balance) - - # Custom run with logging - log_message("Fetching markets...", 'info') - markets = engine.fetch_historical_markets() - - if not markets: - log_message("ERROR: No markets found", 'error') - raise ValueError("No markets found for backtesting") - - log_message(f"Found {len(markets)} markets to backtest", 'success') - - # Run backtest with progress updates - current_date = start - day_count = 0 - total_days = (end - start).days + 1 - - while current_date <= end: - # Process markets - for market_snapshot in markets: - market = market_snapshot['market'] - import json - outcomes = json.loads(market.get('outcomes', '["Yes", "No"]')) - prices = json.loads(market.get('outcomePrices', '[0.5, 0.5]')) - - market_data = { - 'event': market_snapshot['event'], - 'market': market, - 'timestamp': current_date, - 'prices': { - outcome: float(price) - for outcome, price in zip(outcomes, prices) - } - } - - # Log market data periodically (only once per day, not per market) - if day_count % 5 == 0 and len(markets) > 0 and market_snapshot == markets[0]: - yes_price = market_data['prices'].get('Yes', 0.5) - equity = strategy.calculate_equity() - log_message( - f"[MARKET] {current_date.date()} | Yes: {yes_price:.2%} | " - f"Balance: ${strategy.current_balance:.2f} | Equity: ${equity:.2f} | " - f"Positions: {len(strategy.positions)} | Trades: {strategy.total_trades}", - 'market' - ) - - # Get strategy signal - signal = strategy.analyze_market(market_data) - - if signal: - if signal.confidence >= strategy.min_confidence: - result = engine.execute_signal(signal, market_data, current_date) - if result: - # Calculate PnL for this trade - trade_pnl = 0.0 - if signal.action == 'SELL': - # PnL already calculated in execute_signal - # Get from closed positions - if strategy.closed_positions: - last_closed = strategy.closed_positions[-1] - if hasattr(last_closed, 'realized_pnl'): - trade_pnl = last_closed.realized_pnl if np.isfinite(last_closed.realized_pnl) else 0.0 - - equity = strategy.calculate_equity() - unrealized_pnl = sum( - pos.unrealized_pnl if np.isfinite(pos.unrealized_pnl) else 0.0 - for pos in strategy.positions.values() - ) - - log_message( - f"[TRADE] {signal.action} | Size: ${result['size']:.2f} | " - f"Price: {result['price']:.4f} | Balance: ${strategy.current_balance:.2f} | " - f"Positions: {len(strategy.positions)}", - 'trade' - ) - - # Emit real-time trade update - socketio.emit('backtest_trade', { - 'action': signal.action, - 'price': float(result['price']), - 'size': float(result['size']), - 'timestamp': current_date.isoformat(), - 'balance': float(strategy.current_balance) if np.isfinite(strategy.current_balance) else 0.0, - 'equity': float(equity) if np.isfinite(equity) else 0.0, - 'unrealized_pnl': float(unrealized_pnl) if np.isfinite(unrealized_pnl) else 0.0, - 'trade_pnl': float(trade_pnl), - 'positions': len(strategy.positions), - 'total_trades': strategy.total_trades, - 'winning_trades': strategy.winning_trades, - 'losing_trades': strategy.losing_trades - }) - # Don't log skipped signals to reduce noise - - # Update positions - for token_id, position in strategy.positions.items(): - price_change = np.random.normal(0, 0.02) - new_price = max(0.01, min(0.99, position.current_price + price_change)) - strategy.update_position(token_id, new_price) - - # Update equity curve - strategy.update_drawdown() - equity = strategy.calculate_equity() - unrealized_pnl = sum( - pos.unrealized_pnl if np.isfinite(pos.unrealized_pnl) else 0.0 - for pos in strategy.positions.values() - ) - - equity_point = { - 'date': current_date, - 'equity': equity if np.isfinite(equity) else strategy.current_balance, - 'balance': strategy.current_balance if np.isfinite(strategy.current_balance) else 0.0, - 'unrealized_pnl': unrealized_pnl if np.isfinite(unrealized_pnl) else 0.0 - } - engine.equity_curve.append(equity_point) - - # Emit real-time equity update (every day) - socketio.emit('backtest_equity', { - 'date': current_date.isoformat(), - 'equity': float(equity_point['equity']), - 'balance': float(equity_point['balance']), - 'unrealized_pnl': float(equity_point['unrealized_pnl']), - 'total_trades': strategy.total_trades, - 'positions': len(strategy.positions) - }) - - # Calculate daily return - if len(engine.equity_curve) > 1: - prev_equity = engine.equity_curve[-2]['equity'] - daily_return = (equity - prev_equity) / prev_equity if prev_equity > 0 else 0.0 - engine.daily_returns.append(daily_return) - - # Progress update (less frequent) - if day_count % 10 == 0 or day_count == total_days - 1: - progress = (day_count / total_days * 100) if total_days > 0 else 0 - log_message( - f"[PROGRESS] Day {day_count}/{total_days} ({progress:.1f}%) | " - f"Equity: ${equity:.2f} | Trades: {strategy.total_trades} | " - f"Positions: {len(strategy.positions)} | Win Rate: " - f"{(strategy.winning_trades / strategy.total_trades * 100) if strategy.total_trades > 0 else 0:.1f}%", - 'info' - ) - - current_date += timedelta(days=1) - day_count += 1 - - # Small delay for visibility - time.sleep(0.05) - - # Close positions - log_message("Closing all positions...", 'info') - final_equity = strategy.calculate_equity() - for token_id, position in list(strategy.positions.items()): - if position.size > 0 and position.current_price > 0: - exit_value = position.size * position.current_price - entry_cost = position.size * position.entry_price - pnl = exit_value - entry_cost - strategy.current_balance += exit_value - strategy.total_trades += 1 - - if pnl > 0: - strategy.winning_trades += 1 - strategy.total_profit += pnl - else: - strategy.losing_trades += 1 - strategy.total_loss += abs(pnl) - - log_message( - f"[CLOSE] PnL: ${pnl:.2f} | Entry: {position.entry_price:.4f} | Exit: {position.current_price:.4f}", - 'trade' if pnl > 0 else 'warning' - ) - - del strategy.positions[token_id] - - # Calculate final metrics - if engine.initial_balance > 0: - total_return = (final_equity - engine.initial_balance) / engine.initial_balance * 100 - else: - total_return = 0.0 - - sharpe_ratio = engine._calculate_sharpe_ratio() - - if strategy.total_trades > 0: - win_rate = (strategy.winning_trades / strategy.total_trades * 100) - else: - win_rate = 0.0 - - if abs(strategy.total_loss) > 1e-10: - profit_factor = abs(strategy.total_profit / strategy.total_loss) - else: - profit_factor = 0.0 - - results = { - 'strategy': strategy.name, - 'start_date': engine.start_date, - 'end_date': engine.end_date, - 'initial_balance': engine.initial_balance, - 'final_balance': strategy.current_balance, - 'final_equity': final_equity, - 'total_return': total_return if np.isfinite(total_return) else 0.0, - 'total_trades': strategy.total_trades, - 'winning_trades': strategy.winning_trades, - 'losing_trades': strategy.losing_trades, - 'win_rate': win_rate if np.isfinite(win_rate) else 0.0, - 'total_profit': strategy.total_profit, - 'total_loss': strategy.total_loss, - 'net_profit': strategy.total_profit + strategy.total_loss, - 'profit_factor': profit_factor if np.isfinite(profit_factor) else 0.0, - 'max_drawdown': strategy.max_drawdown * 100 if np.isfinite(strategy.max_drawdown) else 0.0, - 'sharpe_ratio': sharpe_ratio if np.isfinite(sharpe_ratio) else 0.0, - 'trades': engine.trades, - 'equity_curve': engine.equity_curve - } - - log_message("=" * 50, 'info') - log_message("BACKTEST COMPLETE", 'success') - log_message(f"Total Return: {total_return:.2f}%", 'success') - log_message(f"Total Trades: {strategy.total_trades}", 'info') - log_message(f"Win Rate: {win_rate:.2f}%", 'info') - log_message(f"Final Equity: ${final_equity:.2f}", 'success') - - # Prepare results for frontend - equity_curve = results.get('equity_curve', []) - if not equity_curve: - equity_curve = [ - {'date': start, 'equity': initial_balance}, - {'date': end, 'equity': results.get('final_equity', initial_balance)} - ] - - def safe_float(value, default=0.0): - try: - val = float(value) - return val if (val == 0 or (val != float('inf') and val != float('-inf') and not (val != val))) else default - except (ValueError, TypeError): - return default - - backtest_results = { - 'total_return': safe_float(results.get('total_return', 0)), - 'total_trades': int(results.get('total_trades', 0)), - 'winning_trades': int(results.get('winning_trades', 0)), - 'losing_trades': int(results.get('losing_trades', 0)), - 'win_rate': safe_float(results.get('win_rate', 0)), - 'sharpe_ratio': safe_float(results.get('sharpe_ratio', 0)), - 'max_drawdown': safe_float(results.get('max_drawdown', 0)), - 'final_equity': safe_float(results.get('final_equity', initial_balance), initial_balance), - 'equity_curve': [ - { - 'date': str(point.get('date', '')), - 'equity': safe_float(point.get('equity', initial_balance), initial_balance) - } - for point in equity_curve - ], - 'net_profit': safe_float(results.get('net_profit', 0)) - } - - # Emit results via WebSocket - socketio.emit('backtest_complete', backtest_results) - - except Exception as e: - import traceback - error_msg = f"{str(e)}\n{traceback.format_exc()}" - print(f"Backtest error: {error_msg}") - socketio.emit('backtest_error', {'error': str(e)}) - finally: - backtest_running = False - - thread = threading.Thread(target=run_backtest_thread, daemon=True) - thread.start() - - return jsonify({'status': 'started', 'message': 'Backtest running...'}) - - except Exception as e: - return jsonify({'error': str(e)}), 500 - -@app.route('/api/backtest/status') -def get_backtest_status(): - """Get backtest status""" - return jsonify({ - 'running': backtest_running, - 'results': backtest_results - }) - -# WebSocket handlers -@socketio.on('connect') -def handle_connect(): - """Handle WebSocket connection""" - emit('status', {'message': 'Connected to Cyberpunk Dashboard'}) - -@socketio.on('disconnect') -def handle_disconnect(): - """Handle WebSocket disconnection""" - pass - -if __name__ == '__main__': - print("=" * 60) - print("CYBERPUNK POLYMARKET DASHBOARD") - print("=" * 60) - print("Starting server on http://localhost:5000") - print("Press Ctrl+C to stop") - print("=" * 60) - socketio.run(app, host='0.0.0.0', port=5000, debug=True) diff --git a/polymarket/gui/start_dashboard.py b/polymarket/gui/start_dashboard.py deleted file mode 100644 index 5eec17a..0000000 --- a/polymarket/gui/start_dashboard.py +++ /dev/null @@ -1,34 +0,0 @@ -"""Simple launcher for the dashboard""" -import sys -import os -from pathlib import Path - -# Get the project root directory -script_dir = Path(__file__).parent.resolve() -project_root = script_dir.parent.parent.resolve() - -# Add to Python path -if str(project_root) not in sys.path: - sys.path.insert(0, str(project_root)) - -print("=" * 60) -print("CYBERPUNK POLYMARKET DASHBOARD") -print("=" * 60) -print(f"Project root: {project_root}") -print(f"GUI directory: {script_dir}") -print("=" * 60) -print("\nStarting server...") -print("Open http://localhost:5000 in your browser\n") - -# Change to gui directory for Flask templates -os.chdir(script_dir) - -# Now import and run the app -try: - from app import app, socketio - socketio.run(app, host='0.0.0.0', port=5000, debug=True) -except Exception as e: - print(f"ERROR: {e}") - import traceback - traceback.print_exc() - input("\nPress Enter to exit...") diff --git a/polymarket/gui/static/js/app.js b/polymarket/gui/static/js/app.js deleted file mode 100644 index 150a591..0000000 --- a/polymarket/gui/static/js/app.js +++ /dev/null @@ -1,133 +0,0 @@ -/** - * Main Application Entry Point - * Initializes all components and manages the application lifecycle - */ - -import { MarketsComponent } from './components/MarketsComponent.js'; -import { StrategyComponent } from './components/StrategyComponent.js'; -import { PositionsComponent } from './components/PositionsComponent.js'; -import { BacktestComponent } from './components/BacktestComponent.js'; -import { Notification } from './utils/Notification.js'; -import { WebSocketManager } from './utils/WebSocketManager.js'; - -class App { - constructor() { - this.components = {}; - this.wsManager = null; - } - - async initialize() { - console.log('[App] Initializing application...'); - - // Initialize WebSocket - if (window.io) { - this.wsManager = new WebSocketManager(io()); - this.setupWebSocketHandlers(); - } - - // Initialize components - this.components.markets = new MarketsComponent('marketsList'); - this.components.strategy = new StrategyComponent(); - this.components.positions = new PositionsComponent('positionsList'); - this.components.backtest = new BacktestComponent(); - - // Initialize controls - this.initializeControls(); - - // Load initial data - try { - await this.components.markets.load(); - this.components.markets.startAutoRefresh(30000); - } catch (error) { - console.error('[App] Error loading markets:', error); - if (this.components.markets.container) { - this.components.markets.showError('Failed to load markets. Check console for details.'); - } - } - - this.components.strategy.initialize(); - this.components.positions.load(); - this.components.backtest.initialize(); - - // Start position updates - setInterval(() => this.components.positions.load(), 5000); - - console.log('[App] Application initialized'); - } - - initializeControls() { - // Threshold and confidence sliders - const threshold = document.getElementById('threshold'); - const confidence = document.getElementById('confidence'); - const thresholdValue = document.getElementById('thresholdValue'); - const confidenceValue = document.getElementById('confidenceValue'); - - if (threshold && thresholdValue) { - threshold.addEventListener('input', (e) => { - thresholdValue.textContent = parseFloat(e.target.value).toFixed(2); - }); - } - - if (confidence && confidenceValue) { - confidence.addEventListener('input', (e) => { - confidenceValue.textContent = parseFloat(e.target.value).toFixed(2); - }); - } - } - - setupWebSocketHandlers() { - if (!this.wsManager) return; - - // Backtest handlers - this.wsManager.on('backtest_log', (data) => { - this.components.backtest.addTerminalLine(data.message, data.type || 'info'); - }); - - this.wsManager.on('backtest_trade', (data) => { - this.components.backtest.addTrade(data); - this.components.backtest.updateStats(data); - }); - - this.wsManager.on('backtest_equity', (data) => { - this.components.backtest.updateChart(data); - this.components.backtest.updateStats(data); - }); - - this.wsManager.on('backtest_complete', (data) => { - this.components.backtest.displayResults(data); - const btn = document.getElementById('runBacktestBtn'); - if (btn) { - btn.disabled = false; - btn.innerHTML = '▶ RUN BACKTEST'; - } - this.components.backtest.isRunning = false; - }); - - this.wsManager.on('backtest_error', (data) => { - this.components.backtest.addTerminalLine('ERROR: ' + data.error, 'error'); - Notification.show('BACKTEST ERROR: ' + data.error, 'error'); - const btn = document.getElementById('runBacktestBtn'); - if (btn) { - btn.disabled = false; - btn.innerHTML = '▶ RUN BACKTEST'; - } - document.getElementById('backtestStatus').style.display = 'none'; - this.components.backtest.isRunning = false; - }); - - // Strategy handlers - this.wsManager.on('strategy_update', (data) => { - document.getElementById('balanceValue').textContent = '$' + data.balance.toFixed(2); - document.getElementById('equityValue').textContent = '$' + data.equity.toFixed(2); - document.getElementById('positionsValue').textContent = data.positions; - document.getElementById('tradesValue').textContent = data.trades; - }); - } -} - -// Initialize app when DOM is ready -document.addEventListener('DOMContentLoaded', () => { - const app = new App(); - app.initialize(); - window.app = app; // Make available globally for debugging -}); diff --git a/polymarket/gui/static/js/components/BacktestComponent.js b/polymarket/gui/static/js/components/BacktestComponent.js deleted file mode 100644 index 706ae14..0000000 --- a/polymarket/gui/static/js/components/BacktestComponent.js +++ /dev/null @@ -1,295 +0,0 @@ -/** - * Backtest Component - * Handles backtesting functionality - */ - -export class BacktestComponent { - constructor() { - this.equityData = []; - this.chartCanvas = null; - this.chartCtx = null; - this.isRunning = false; - } - - initialize() { - // Set default dates - const endDate = new Date(); - const startDate = new Date(); - startDate.setDate(startDate.getDate() - 30); - - const startInput = document.getElementById('backtestStart'); - const endInput = document.getElementById('backtestEnd'); - if (startInput) startInput.value = startDate.toISOString().split('T')[0]; - if (endInput) endInput.value = endDate.toISOString().split('T')[0]; - - // Event listeners - const runBtn = document.getElementById('runBacktestBtn'); - const clearBtn = document.getElementById('clearTerminalBtn'); - - if (runBtn) runBtn.addEventListener('click', () => this.run()); - if (clearBtn) clearBtn.addEventListener('click', () => this.clearTerminal()); - - // Initialize chart - setTimeout(() => this.initChart(), 100); - } - - initChart() { - this.chartCanvas = document.getElementById('realtimeChart'); - if (!this.chartCanvas) return; - - this.chartCtx = this.chartCanvas.getContext('2d'); - const container = this.chartCanvas.parentElement; - this.chartCanvas.width = container.clientWidth - 30; - this.chartCanvas.height = 250; - - this.drawChart(); - } - - async run() { - if (this.isRunning) { - this.showNotification('Backtest already running', 'error'); - return; - } - - const startDate = document.getElementById('backtestStart')?.value; - const endDate = document.getElementById('backtestEnd')?.value; - const balance = parseFloat(document.getElementById('backtestBalance')?.value || 1000); - const threshold = parseFloat(document.getElementById('threshold')?.value || 0.15); - const confidence = parseFloat(document.getElementById('confidence')?.value || 0.7); - - if (!startDate || !endDate) { - this.showNotification('PLEASE SELECT START AND END DATES', 'error'); - return; - } - - const btn = document.getElementById('runBacktestBtn'); - btn.disabled = true; - btn.innerHTML = '⏳ RUNNING...'; - - const statusDiv = document.getElementById('backtestStatus'); - statusDiv.innerHTML = '

'; - statusDiv.style.display = 'block'; - - this.clearTerminal(); - this.addTerminalLine('Starting backtest...', 'info'); - - this.equityData = []; - const tradesList = document.getElementById('tradesList'); - if (tradesList) { - tradesList.innerHTML = '
No trades yet
'; - } - - setTimeout(() => this.initChart(), 100); - - try { - const response = await fetch('/api/backtest/run', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - start_date: startDate, - end_date: endDate, - initial_balance: balance, - threshold: threshold, - min_confidence: confidence - }) - }); - - const data = await response.json(); - - if (response.ok) { - this.isRunning = true; - this.showNotification('BACKTEST STARTED', 'success'); - } else { - this.showNotification('ERROR: ' + data.error, 'error'); - btn.disabled = false; - btn.innerHTML = '▶ RUN BACKTEST'; - } - } catch (error) { - console.error('[Backtest] Error running backtest:', error); - this.showNotification('ERROR RUNNING BACKTEST', 'error'); - btn.disabled = false; - btn.innerHTML = '▶ RUN BACKTEST'; - } - } - - displayResults(results) { - const resultsDiv = document.getElementById('backtestResults'); - const statusDiv = document.getElementById('backtestStatus'); - - if (resultsDiv && statusDiv) { - document.getElementById('backtestReturn').textContent = - results.total_return.toFixed(2) + '%'; - document.getElementById('backtestTrades').textContent = results.total_trades; - document.getElementById('backtestWinRate').textContent = - results.win_rate.toFixed(1) + '%'; - document.getElementById('backtestSharpe').textContent = - results.sharpe_ratio.toFixed(2); - document.getElementById('backtestDrawdown').textContent = - results.max_drawdown.toFixed(2) + '%'; - document.getElementById('backtestEquity').textContent = - '$' + results.final_equity.toFixed(2); - - statusDiv.style.display = 'none'; - resultsDiv.style.display = 'block'; - } - } - - clearTerminal() { - const terminal = document.getElementById('terminalOutput'); - if (terminal) { - terminal.innerHTML = '
[SYSTEM] Terminal cleared...
'; - } - } - - addTerminalLine(message, type = 'info') { - const terminal = document.getElementById('terminalOutput'); - if (!terminal) return; - - const line = document.createElement('div'); - line.className = `terminal-line ${type}`; - - const timestamp = new Date().toLocaleTimeString(); - line.textContent = `[${timestamp}] ${message}`; - - terminal.appendChild(line); - terminal.scrollTop = terminal.scrollHeight; - - const lines = terminal.querySelectorAll('.terminal-line'); - if (lines.length > 100) { - lines[0].remove(); - } - } - - updateChart(data) { - if (!this.chartCtx) return; - - this.equityData.push({ - date: new Date(data.date), - equity: data.equity, - balance: data.balance, - unrealized_pnl: data.unrealized_pnl - }); - - if (this.equityData.length > 1000) { - this.equityData.shift(); - } - - this.drawChart(); - } - - drawChart() { - if (!this.chartCtx || this.equityData.length === 0) return; - - const canvas = this.chartCanvas; - const width = canvas.width; - const height = canvas.height; - const padding = 40; - const chartWidth = width - padding * 2; - const chartHeight = height - padding * 2; - - this.chartCtx.fillStyle = '#000'; - this.chartCtx.fillRect(0, 0, width, height); - - if (this.equityData.length < 2) return; - - const equities = this.equityData.map(d => d.equity); - const minEquity = Math.min(...equities); - const maxEquity = Math.max(...equities); - const range = maxEquity - minEquity || 1; - - // Draw grid - this.chartCtx.strokeStyle = 'rgba(0, 255, 255, 0.2)'; - this.chartCtx.lineWidth = 1; - for (let i = 0; i <= 5; i++) { - const y = padding + (chartHeight / 5) * i; - this.chartCtx.beginPath(); - this.chartCtx.moveTo(padding, y); - this.chartCtx.lineTo(width - padding, y); - this.chartCtx.stroke(); - } - - // Draw equity curve - this.chartCtx.strokeStyle = '#00ffff'; - this.chartCtx.lineWidth = 2; - this.chartCtx.beginPath(); - - this.equityData.forEach((point, index) => { - const x = padding + (chartWidth / (this.equityData.length - 1)) * index; - const y = padding + chartHeight - ((point.equity - minEquity) / range) * chartHeight; - - if (index === 0) { - this.chartCtx.moveTo(x, y); - } else { - this.chartCtx.lineTo(x, y); - } - }); - - this.chartCtx.stroke(); - - // Draw labels - this.chartCtx.fillStyle = '#00ffff'; - this.chartCtx.font = '10px Orbitron'; - this.chartCtx.fillText(`$${minEquity.toFixed(0)}`, 5, height - padding + 5); - this.chartCtx.fillText(`$${maxEquity.toFixed(0)}`, 5, padding + 5); - } - - addTrade(trade) { - const tradesList = document.getElementById('tradesList'); - if (!tradesList) return; - - const emptyState = tradesList.querySelector('.empty-state'); - if (emptyState) emptyState.remove(); - - const tradeItem = document.createElement('div'); - tradeItem.className = `trade-item ${trade.action.toLowerCase()}`; - - const pnl = trade.trade_pnl || 0; - const pnlClass = pnl >= 0 ? 'positive' : 'negative'; - const pnlSign = pnl >= 0 ? '+' : ''; - - tradeItem.innerHTML = ` -
-
${trade.action}
-
- Price: ${trade.price.toFixed(4)} | Size: $${trade.size.toFixed(2)} | - ${new Date(trade.timestamp).toLocaleTimeString()} -
-
-
- ${pnlSign}$${Math.abs(pnl).toFixed(2)} -
- `; - - tradesList.insertBefore(tradeItem, tradesList.firstChild); - - while (tradesList.children.length > 50) { - tradesList.removeChild(tradesList.lastChild); - } - - const tradesCount = document.getElementById('tradesCount'); - if (tradesCount) { - tradesCount.textContent = `${trade.total_trades} trades`; - } - } - - updateStats(data) { - const equityEl = document.getElementById('realtimeEquity'); - const pnlEl = document.getElementById('realtimePnL'); - - if (equityEl) equityEl.textContent = `$${data.equity.toFixed(2)}`; - - if (pnlEl) { - const pnl = data.unrealized_pnl || 0; - pnlEl.textContent = `${pnl >= 0 ? '+' : ''}$${pnl.toFixed(2)}`; - pnlEl.className = pnl >= 0 ? 'pnl-positive' : 'pnl-negative'; - } - } - - showNotification(message, type = 'info') { - if (window.showNotification) { - window.showNotification(message, type); - } else { - console.log(`[${type.toUpperCase()}] ${message}`); - } - } -} diff --git a/polymarket/gui/static/js/components/MarketsComponent.js b/polymarket/gui/static/js/components/MarketsComponent.js deleted file mode 100644 index d1cda54..0000000 --- a/polymarket/gui/static/js/components/MarketsComponent.js +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Markets Component - * Handles market data fetching and display - */ - -export class MarketsComponent { - constructor(containerId) { - this.container = document.getElementById(containerId); - this.markets = []; - this.updateInterval = null; - } - - async load() { - try { - console.log('[Markets] Loading markets from API...'); - - // Show loading state - if (this.container) { - this.container.innerHTML = '
LOADING MARKETS...
'; - } - - const response = await fetch('/api/markets'); - - if (!response.ok) { - throw new Error(`HTTP ${response.status}: ${response.statusText}`); - } - - const data = await response.json(); - - console.log('[Markets] API response:', data); - console.log('[Markets] Markets count:', data.markets ? data.markets.length : 0); - - if (data.markets && Array.isArray(data.markets)) { - this.markets = data.markets; - console.log('[Markets] Rendering', this.markets.length, 'markets'); - this.render(); - } else { - console.error('[Markets] Invalid markets data:', data); - this.showError('Invalid data format: ' + JSON.stringify(data).substring(0, 100)); - } - } catch (error) { - console.error('[Markets] Error loading markets:', error); - this.showError('Failed to load markets: ' + error.message); - } - } - - render() { - if (!this.container) return; - - if (this.markets.length === 0) { - this.container.innerHTML = '
NO ACTIVE MARKETS
'; - return; - } - - this.container.innerHTML = this.markets.map(market => { - const question = market.question || market.event || 'Unknown Market'; - const yesPrice = (market.yes_price || 0) * 100; - const noPrice = (market.no_price || 0) * 100; - const spread = market.spread || Math.abs(yesPrice - noPrice) / 100; - - return ` -
-
${question}
-
-
- YES: ${yesPrice.toFixed(1)}% -
-
- NO: ${noPrice.toFixed(1)}% -
-
-
- Spread: ${(spread * 100).toFixed(2)}% -
-
- `; - }).join(''); - } - - showError(message) { - if (this.container) { - this.container.innerHTML = `
${message}
`; - } - } - - startAutoRefresh(interval = 30000) { - this.updateInterval = setInterval(() => this.load(), interval); - } - - stopAutoRefresh() { - if (this.updateInterval) { - clearInterval(this.updateInterval); - this.updateInterval = null; - } - } -} diff --git a/polymarket/gui/static/js/components/PositionsComponent.js b/polymarket/gui/static/js/components/PositionsComponent.js deleted file mode 100644 index 1d52031..0000000 --- a/polymarket/gui/static/js/components/PositionsComponent.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Positions Component - * Handles position display and updates - */ - -export class PositionsComponent { - constructor(containerId) { - this.container = document.getElementById(containerId); - this.positions = []; - } - - async load() { - try { - const response = await fetch('/api/strategy/positions'); - const data = await response.json(); - this.positions = data.positions || []; - this.render(); - } catch (error) { - console.error('[Positions] Error loading positions:', error); - this.showError('Failed to load positions'); - } - } - - render() { - if (!this.container) return; - - if (this.positions.length === 0) { - this.container.innerHTML = '
NO OPEN POSITIONS
'; - return; - } - - this.container.innerHTML = this.positions.map(pos => { - const isProfit = pos.pnl >= 0; - return ` -
-
-
${pos.outcome}
-
- ${isProfit ? '+' : ''}$${pos.pnl.toFixed(2)} -
-
-
-
Size: ${pos.size.toFixed(2)}
-
Entry: ${(pos.entry_price * 100).toFixed(2)}%
-
Current: ${(pos.current_price * 100).toFixed(2)}%
-
P&L: ${pos.pnl_percent.toFixed(2)}%
-
-
- `; - }).join(''); - } - - showError(message) { - if (this.container) { - this.container.innerHTML = `
${message}
`; - } - } -} diff --git a/polymarket/gui/static/js/components/StrategyComponent.js b/polymarket/gui/static/js/components/StrategyComponent.js deleted file mode 100644 index e2afc61..0000000 --- a/polymarket/gui/static/js/components/StrategyComponent.js +++ /dev/null @@ -1,135 +0,0 @@ -/** - * Strategy Component - * Handles strategy controls and status - */ - -export class StrategyComponent { - constructor() { - this.isActive = false; - this.statusInterval = null; - } - - initialize() { - const startBtn = document.getElementById('startBtn'); - const stopBtn = document.getElementById('stopBtn'); - - if (startBtn) startBtn.addEventListener('click', () => this.start()); - if (stopBtn) stopBtn.addEventListener('click', () => this.stop()); - - this.updateStatus(); - this.startStatusUpdates(); - } - - async start() { - try { - const threshold = parseFloat(document.getElementById('threshold')?.value || 0.15); - const confidence = parseFloat(document.getElementById('confidence')?.value || 0.7); - const balance = parseFloat(document.getElementById('balance')?.value || 1000); - const category = document.getElementById('category')?.value || '21'; - - const response = await fetch('/api/strategy/start', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ - threshold, - min_confidence: confidence, - initial_balance: balance, - tag_id: parseInt(category) - }) - }); - - const data = await response.json(); - - if (response.ok) { - document.getElementById('startBtn').disabled = true; - document.getElementById('stopBtn').disabled = false; - this.isActive = true; - this.updateStatusIndicator(true); - this.showNotification('TRADING STARTED', 'success'); - } else { - this.showNotification('ERROR: ' + data.error, 'error'); - } - } catch (error) { - console.error('[Strategy] Error starting:', error); - this.showNotification('ERROR STARTING TRADING', 'error'); - } - } - - async stop() { - try { - const response = await fetch('/api/strategy/stop', { - method: 'POST' - }); - - const data = await response.json(); - - if (response.ok) { - document.getElementById('startBtn').disabled = false; - document.getElementById('stopBtn').disabled = true; - this.isActive = false; - this.updateStatusIndicator(false); - this.showNotification('TRADING STOPPED', 'info'); - } else { - this.showNotification('ERROR: ' + data.error, 'error'); - } - } catch (error) { - console.error('[Strategy] Error stopping:', error); - this.showNotification('ERROR STOPPING TRADING', 'error'); - } - } - - async updateStatus() { - try { - const response = await fetch('/api/strategy/status'); - const data = await response.json(); - - document.getElementById('balanceValue').textContent = '$' + data.balance.toFixed(2); - document.getElementById('equityValue').textContent = '$' + data.equity.toFixed(2); - document.getElementById('positionsValue').textContent = data.positions; - document.getElementById('tradesValue').textContent = data.trades; - document.getElementById('winRateValue').textContent = data.win_rate.toFixed(1) + '%'; - - const pnlElement = document.getElementById('pnlValue'); - const pnl = data.profit || 0; - pnlElement.textContent = '$' + pnl.toFixed(2); - pnlElement.style.color = pnl >= 0 ? 'var(--neon-green)' : 'var(--neon-pink)'; - } catch (error) { - console.error('[Strategy] Error updating status:', error); - } - } - - updateStatusIndicator(active) { - const statusDot = document.getElementById('statusDot'); - const statusText = document.getElementById('statusText'); - - if (statusDot && statusText) { - if (active) { - statusDot.classList.add('active'); - statusText.textContent = 'ONLINE'; - } else { - statusDot.classList.remove('active'); - statusText.textContent = 'OFFLINE'; - } - } - } - - startStatusUpdates() { - this.statusInterval = setInterval(() => this.updateStatus(), 2000); - } - - stopStatusUpdates() { - if (this.statusInterval) { - clearInterval(this.statusInterval); - this.statusInterval = null; - } - } - - showNotification(message, type = 'info') { - // Use global notification system if available - if (window.showNotification) { - window.showNotification(message, type); - } else { - console.log(`[${type.toUpperCase()}] ${message}`); - } - } -} diff --git a/polymarket/gui/static/js/utils/Notification.js b/polymarket/gui/static/js/utils/Notification.js deleted file mode 100644 index 6b243c1..0000000 --- a/polymarket/gui/static/js/utils/Notification.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Notification Utility - * Global notification system - */ - -export class Notification { - static show(message, type = 'info') { - console.log(`[${type.toUpperCase()}] ${message}`); - - const notification = document.createElement('div'); - notification.style.cssText = ` - position: fixed; - top: 20px; - right: 20px; - padding: 15px 25px; - background: rgba(0, 255, 255, 0.1); - border: 2px solid var(--neon-cyan); - color: var(--neon-cyan); - font-family: 'Orbitron', sans-serif; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.1em; - z-index: 10000; - box-shadow: 0 0 20px var(--neon-cyan); - animation: slideIn 0.3s ease; - `; - notification.textContent = message; - - document.body.appendChild(notification); - - setTimeout(() => { - notification.style.animation = 'slideOut 0.3s ease'; - setTimeout(() => notification.remove(), 300); - }, 3000); - } -} - -// Make it globally available -window.showNotification = Notification.show; diff --git a/polymarket/gui/static/js/utils/WebSocketManager.js b/polymarket/gui/static/js/utils/WebSocketManager.js deleted file mode 100644 index 191fda1..0000000 --- a/polymarket/gui/static/js/utils/WebSocketManager.js +++ /dev/null @@ -1,71 +0,0 @@ -/** - * WebSocket Manager - * Handles all WebSocket connections and events - */ - -export class WebSocketManager { - constructor(socket) { - this.socket = socket; - this.handlers = new Map(); - this.setup(); - } - - setup() { - this.socket.on('connect', () => { - console.log('[WebSocket] Connected to server'); - }); - - this.socket.on('disconnect', () => { - console.log('[WebSocket] Disconnected from server'); - }); - - // Backtest events - this.socket.on('backtest_log', (data) => { - this.emit('backtest_log', data); - }); - - this.socket.on('backtest_trade', (data) => { - this.emit('backtest_trade', data); - }); - - this.socket.on('backtest_equity', (data) => { - this.emit('backtest_equity', data); - }); - - this.socket.on('backtest_complete', (data) => { - this.emit('backtest_complete', data); - }); - - this.socket.on('backtest_error', (data) => { - this.emit('backtest_error', data); - }); - - // Strategy events - this.socket.on('strategy_update', (data) => { - this.emit('strategy_update', data); - }); - } - - on(event, handler) { - if (!this.handlers.has(event)) { - this.handlers.set(event, []); - } - this.handlers.get(event).push(handler); - } - - off(event, handler) { - if (this.handlers.has(event)) { - const handlers = this.handlers.get(event); - const index = handlers.indexOf(handler); - if (index > -1) { - handlers.splice(index, 1); - } - } - } - - emit(event, data) { - if (this.handlers.has(event)) { - this.handlers.get(event).forEach(handler => handler(data)); - } - } -} diff --git a/polymarket/gui/static/script.js b/polymarket/gui/static/script.js deleted file mode 100644 index 514d044..0000000 --- a/polymarket/gui/static/script.js +++ /dev/null @@ -1,752 +0,0 @@ -// Cyberpunk Dashboard JavaScript - -const socket = io(); -let updateInterval; - -// Initialize -document.addEventListener('DOMContentLoaded', () => { - initializeControls(); - loadMarkets(); - startStatusUpdates(); - setupWebSocket(); - initializeBacktest(); -}); - -// Control Initialization -function initializeControls() { - const threshold = document.getElementById('threshold'); - const confidence = document.getElementById('confidence'); - const thresholdValue = document.getElementById('thresholdValue'); - const confidenceValue = document.getElementById('confidenceValue'); - const startBtn = document.getElementById('startBtn'); - const stopBtn = document.getElementById('stopBtn'); - - threshold.addEventListener('input', (e) => { - thresholdValue.textContent = parseFloat(e.target.value).toFixed(2); - }); - - confidence.addEventListener('input', (e) => { - confidenceValue.textContent = parseFloat(e.target.value).toFixed(2); - }); - - startBtn.addEventListener('click', startTrading); - stopBtn.addEventListener('click', stopTrading); -} - -// Load Markets -async function loadMarkets() { - try { - console.log('[DEBUG] Loading markets from API...'); - const response = await fetch('/api/markets'); - const data = await response.json(); - - console.log('[DEBUG] API response:', data); - console.log('[DEBUG] Markets array:', data.markets); - console.log('[DEBUG] Markets count:', data.markets ? data.markets.length : 0); - - if (data.markets && Array.isArray(data.markets)) { - console.log('[DEBUG] Displaying', data.markets.length, 'markets'); - displayMarkets(data.markets); - } else { - console.error('[DEBUG] Invalid markets data:', data); - document.getElementById('marketsList').innerHTML = - '
NO ACTIVE MARKETS (Invalid data format)
'; - } - } catch (error) { - console.error('Error loading markets:', error); - document.getElementById('marketsList').innerHTML = - '
ERROR LOADING MARKETS: ' + error.message + '
'; - } -} - -// Display Markets -function displayMarkets(markets) { - const container = document.getElementById('marketsList'); - - if (!container) { - console.error('[DEBUG] marketsList container not found!'); - return; - } - - console.log('[DEBUG] displayMarkets called with', markets.length, 'markets'); - - if (!markets || markets.length === 0) { - container.innerHTML = '
NO ACTIVE MARKETS
'; - return; - } - - container.innerHTML = markets.map(market => { - const question = market.question || market.event || 'Unknown Market'; - const yesPrice = (market.yes_price || 0) * 100; - const noPrice = (market.no_price || 0) * 100; - const spread = market.spread || Math.abs(yesPrice - noPrice) / 100; - - return ` -
-
${question}
-
-
- YES: ${yesPrice.toFixed(1)}% -
-
- NO: ${noPrice.toFixed(1)}% -
-
-
- Spread: ${(spread * 100).toFixed(2)}% -
-
- `; - }).join(''); - - console.log('[DEBUG] Markets displayed successfully'); -} - -// Start Trading -async function startTrading() { - const threshold = parseFloat(document.getElementById('threshold').value); - const confidence = parseFloat(document.getElementById('confidence').value); - const balance = parseFloat(document.getElementById('balance').value); - const category = document.getElementById('category').value; - - try { - const response = await fetch('/api/strategy/start', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ - threshold, - min_confidence: confidence, - initial_balance: balance, - tag_id: parseInt(category) - }) - }); - - const data = await response.json(); - - if (response.ok) { - document.getElementById('startBtn').disabled = true; - document.getElementById('stopBtn').disabled = false; - updateStatus(true); - showNotification('TRADING STARTED', 'success'); - } else { - showNotification('ERROR: ' + data.error, 'error'); - } - } catch (error) { - console.error('Error starting trading:', error); - showNotification('ERROR STARTING TRADING', 'error'); - } -} - -// Stop Trading -async function stopTrading() { - try { - const response = await fetch('/api/strategy/stop', { - method: 'POST' - }); - - const data = await response.json(); - - if (response.ok) { - document.getElementById('startBtn').disabled = false; - document.getElementById('stopBtn').disabled = true; - updateStatus(false); - showNotification('TRADING STOPPED', 'info'); - } else { - showNotification('ERROR: ' + data.error, 'error'); - } - } catch (error) { - console.error('Error stopping trading:', error); - showNotification('ERROR STOPPING TRADING', 'error'); - } -} - -// Status Updates -function startStatusUpdates() { - updateInterval = setInterval(async () => { - await updateStrategyStatus(); - await updatePositions(); - }, 2000); -} - -// Update Strategy Status -async function updateStrategyStatus() { - try { - const response = await fetch('/api/strategy/status'); - const data = await response.json(); - - document.getElementById('balanceValue').textContent = - '$' + data.balance.toFixed(2); - document.getElementById('equityValue').textContent = - '$' + data.equity.toFixed(2); - document.getElementById('positionsValue').textContent = - data.positions; - document.getElementById('tradesValue').textContent = - data.trades; - document.getElementById('winRateValue').textContent = - data.win_rate.toFixed(1) + '%'; - - const pnlElement = document.getElementById('pnlValue'); - const pnl = data.profit || 0; - pnlElement.textContent = '$' + pnl.toFixed(2); - pnlElement.style.color = pnl >= 0 ? 'var(--neon-green)' : 'var(--neon-pink)'; - } catch (error) { - console.error('Error updating status:', error); - } -} - -// Update Positions -async function updatePositions() { - try { - const response = await fetch('/api/strategy/positions'); - const data = await response.json(); - - displayPositions(data.positions || []); - } catch (error) { - console.error('Error updating positions:', error); - } -} - -// Display Positions -function displayPositions(positions) { - const container = document.getElementById('positionsList'); - - if (positions.length === 0) { - container.innerHTML = '
NO OPEN POSITIONS
'; - return; - } - - container.innerHTML = positions.map(pos => { - const isProfit = pos.pnl >= 0; - return ` -
-
-
${pos.outcome}
-
- ${isProfit ? '+' : ''}$${pos.pnl.toFixed(2)} -
-
-
-
Size: ${pos.size.toFixed(2)}
-
Entry: ${(pos.entry_price * 100).toFixed(2)}%
-
Current: ${(pos.current_price * 100).toFixed(2)}%
-
P&L: ${pos.pnl_percent.toFixed(2)}%
-
-
- `; - }).join(''); -} - -// Update Status Indicator -function updateStatus(active) { - const statusDot = document.getElementById('statusDot'); - const statusText = document.getElementById('statusText'); - - if (active) { - statusDot.classList.add('active'); - statusText.textContent = 'ONLINE'; - } else { - statusDot.classList.remove('active'); - statusText.textContent = 'OFFLINE'; - } -} - -// WebSocket Setup -function setupWebSocket() { - socket.on('connect', () => { - console.log('Connected to server'); - }); - - socket.on('strategy_update', (data) => { - // Real-time updates via WebSocket - document.getElementById('balanceValue').textContent = - '$' + data.balance.toFixed(2); - document.getElementById('equityValue').textContent = - '$' + data.equity.toFixed(2); - document.getElementById('positionsValue').textContent = - data.positions; - document.getElementById('tradesValue').textContent = - data.trades; - }); - - socket.on('backtest_log', (data) => { - addTerminalLine(data.message, data.type || 'info'); - }); - - socket.on('backtest_trade', (data) => { - addTradeToList(data); - updateRealtimeStats(data); - }); - - socket.on('backtest_equity', (data) => { - updateRealtimeChart(data); - updateRealtimeStats(data); - }); - - socket.on('backtest_complete', (data) => { - displayBacktestResults(data); - }); - - socket.on('backtest_error', (data) => { - addTerminalLine('ERROR: ' + data.error, 'error'); - showNotification('BACKTEST ERROR: ' + data.error, 'error'); - const btn = document.getElementById('runBacktestBtn'); - btn.disabled = false; - btn.innerHTML = '▶ RUN BACKTEST'; - document.getElementById('backtestStatus').style.display = 'none'; - }); -} - -// Notification System -function showNotification(message, type = 'info') { - // Simple notification - can be enhanced with a toast system - console.log(`[${type.toUpperCase()}] ${message}`); - - // Create notification element - const notification = document.createElement('div'); - notification.style.cssText = ` - position: fixed; - top: 20px; - right: 20px; - padding: 15px 25px; - background: rgba(0, 255, 255, 0.1); - border: 2px solid var(--neon-cyan); - color: var(--neon-cyan); - font-family: 'Orbitron', sans-serif; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.1em; - z-index: 10000; - box-shadow: 0 0 20px var(--neon-cyan); - animation: slideIn 0.3s ease; - `; - notification.textContent = message; - - document.body.appendChild(notification); - - setTimeout(() => { - notification.style.animation = 'slideOut 0.3s ease'; - setTimeout(() => notification.remove(), 300); - }, 3000); -} - -// Backtesting Functions -function initializeBacktest() { - // Set default dates (last 30 days) - const endDate = new Date(); - const startDate = new Date(); - startDate.setDate(startDate.getDate() - 30); - - document.getElementById('backtestStart').value = startDate.toISOString().split('T')[0]; - document.getElementById('backtestEnd').value = endDate.toISOString().split('T')[0]; - - document.getElementById('runBacktestBtn').addEventListener('click', runBacktest); - document.getElementById('clearTerminalBtn').addEventListener('click', clearTerminal); - - // Initialize real-time chart (wait for DOM to be ready) - setTimeout(() => { - initRealtimeChart(); - }, 100); - - // Clear trades list on new backtest - const tradesList = document.getElementById('tradesList'); - if (tradesList) { - tradesList.innerHTML = '
No trades yet
'; - } - equityData = []; -} - -function clearTerminal() { - document.getElementById('terminalOutput').innerHTML = - '
[SYSTEM] Terminal cleared...
'; -} - -function addTerminalLine(message, type = 'info') { - const terminal = document.getElementById('terminalOutput'); - const line = document.createElement('div'); - line.className = `terminal-line ${type}`; - - const timestamp = new Date().toLocaleTimeString(); - line.textContent = `[${timestamp}] ${message}`; - - terminal.appendChild(line); - terminal.scrollTop = terminal.scrollHeight; - - // Keep only last 100 lines - const lines = terminal.querySelectorAll('.terminal-line'); - if (lines.length > 100) { - lines[0].remove(); - } -} - -// Real-time chart data -let equityData = []; -let chartCanvas = null; -let chartCtx = null; - -function initRealtimeChart() { - chartCanvas = document.getElementById('realtimeChart'); - if (!chartCanvas) return; - - chartCtx = chartCanvas.getContext('2d'); - equityData = []; - - // Set canvas size - const container = chartCanvas.parentElement; - chartCanvas.width = container.clientWidth - 30; - chartCanvas.height = 250; - - // Draw initial chart - drawChart(); -} - -function updateRealtimeChart(data) { - if (!chartCtx) return; - - equityData.push({ - date: new Date(data.date), - equity: data.equity, - balance: data.balance, - unrealized_pnl: data.unrealized_pnl - }); - - // Keep only last 1000 points - if (equityData.length > 1000) { - equityData.shift(); - } - - drawChart(); -} - -function drawChart() { - if (!chartCtx || equityData.length === 0) return; - - const canvas = chartCanvas; - const width = canvas.width; - const height = canvas.height; - const padding = 40; - const chartWidth = width - padding * 2; - const chartHeight = height - padding * 2; - - // Clear canvas - chartCtx.fillStyle = '#000'; - chartCtx.fillRect(0, 0, width, height); - - if (equityData.length < 2) return; - - // Find min/max equity - const equities = equityData.map(d => d.equity); - const minEquity = Math.min(...equities); - const maxEquity = Math.max(...equities); - const range = maxEquity - minEquity || 1; - - // Draw grid - chartCtx.strokeStyle = 'rgba(0, 255, 255, 0.2)'; - chartCtx.lineWidth = 1; - for (let i = 0; i <= 5; i++) { - const y = padding + (chartHeight / 5) * i; - chartCtx.beginPath(); - chartCtx.moveTo(padding, y); - chartCtx.lineTo(width - padding, y); - chartCtx.stroke(); - } - - // Draw equity curve - chartCtx.strokeStyle = '#00ffff'; - chartCtx.lineWidth = 2; - chartCtx.beginPath(); - - equityData.forEach((point, index) => { - const x = padding + (chartWidth / (equityData.length - 1)) * index; - const y = padding + chartHeight - ((point.equity - minEquity) / range) * chartHeight; - - if (index === 0) { - chartCtx.moveTo(x, y); - } else { - chartCtx.lineTo(x, y); - } - }); - - chartCtx.stroke(); - - // Draw balance line - chartCtx.strokeStyle = 'rgba(255, 0, 255, 0.5)'; - chartCtx.lineWidth = 1; - chartCtx.beginPath(); - - equityData.forEach((point, index) => { - const x = padding + (chartWidth / (equityData.length - 1)) * index; - const y = padding + chartHeight - ((point.balance - minEquity) / range) * chartHeight; - - if (index === 0) { - chartCtx.moveTo(x, y); - } else { - chartCtx.lineTo(x, y); - } - }); - - chartCtx.stroke(); - - // Draw labels - chartCtx.fillStyle = '#00ffff'; - chartCtx.font = '10px Orbitron'; - chartCtx.fillText(`$${minEquity.toFixed(0)}`, 5, height - padding + 5); - chartCtx.fillText(`$${maxEquity.toFixed(0)}`, 5, padding + 5); -} - -function addTradeToList(trade) { - const tradesList = document.getElementById('tradesList'); - if (!tradesList) return; - - // Remove empty state - const emptyState = tradesList.querySelector('.empty-state'); - if (emptyState) { - emptyState.remove(); - } - - const tradeItem = document.createElement('div'); - tradeItem.className = `trade-item ${trade.action.toLowerCase()}`; - - const pnl = trade.trade_pnl || 0; - const pnlClass = pnl >= 0 ? 'positive' : 'negative'; - const pnlSign = pnl >= 0 ? '+' : ''; - - tradeItem.innerHTML = ` -
-
${trade.action}
-
- Price: ${trade.price.toFixed(4)} | Size: $${trade.size.toFixed(2)} | - ${new Date(trade.timestamp).toLocaleTimeString()} -
-
-
- ${pnlSign}$${Math.abs(pnl).toFixed(2)} -
- `; - - tradesList.insertBefore(tradeItem, tradesList.firstChild); - - // Keep only last 50 trades - while (tradesList.children.length > 50) { - tradesList.removeChild(tradesList.lastChild); - } - - // Update trades count - const tradesCount = document.getElementById('tradesCount'); - if (tradesCount) { - tradesCount.textContent = `${trade.total_trades} trades`; - } -} - -function updateRealtimeStats(data) { - const equityEl = document.getElementById('realtimeEquity'); - const pnlEl = document.getElementById('realtimePnL'); - - if (equityEl) { - equityEl.textContent = `$${data.equity.toFixed(2)}`; - } - - if (pnlEl) { - const pnl = data.unrealized_pnl || 0; - pnlEl.textContent = `${pnl >= 0 ? '+' : ''}$${pnl.toFixed(2)}`; - pnlEl.className = pnl >= 0 ? 'pnl-positive' : 'pnl-negative'; - } -} - -async function runBacktest() { - const startDate = document.getElementById('backtestStart').value; - const endDate = document.getElementById('backtestEnd').value; - const balance = parseFloat(document.getElementById('backtestBalance').value); - const threshold = parseFloat(document.getElementById('threshold').value); - const confidence = parseFloat(document.getElementById('confidence').value); - - if (!startDate || !endDate) { - showNotification('PLEASE SELECT START AND END DATES', 'error'); - return; - } - - const btn = document.getElementById('runBacktestBtn'); - btn.disabled = true; - btn.innerHTML = '⏳ RUNNING...'; - - const statusDiv = document.getElementById('backtestStatus'); - statusDiv.innerHTML = '
RUNNING BACKTEST...
'; - statusDiv.style.display = 'block'; - - // Clear terminal and add initial message - clearTerminal(); - addTerminalLine('Starting backtest...', 'info'); - - // Reset chart and trades - equityData = []; - const tradesList = document.getElementById('tradesList'); - if (tradesList) { - tradesList.innerHTML = '
No trades yet
'; - } - - // Reinitialize chart - setTimeout(() => { - initRealtimeChart(); - }, 100); - - try { - const response = await fetch('/api/backtest/run', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ - start_date: startDate, - end_date: endDate, - initial_balance: balance, - threshold: threshold, - min_confidence: confidence - }) - }); - - const data = await response.json(); - - if (response.ok) { - showNotification('BACKTEST STARTED', 'success'); - // Results will come via WebSocket - } else { - showNotification('ERROR: ' + data.error, 'error'); - btn.disabled = false; - btn.innerHTML = '▶ RUN BACKTEST'; - } - } catch (error) { - console.error('Error running backtest:', error); - showNotification('ERROR RUNNING BACKTEST', 'error'); - btn.disabled = false; - btn.innerHTML = '▶ RUN BACKTEST'; - } -} - -function displayBacktestResults(results) { - const resultsDiv = document.getElementById('backtestResults'); - const statusDiv = document.getElementById('backtestStatus'); - - // Update metrics - document.getElementById('backtestReturn').textContent = - results.total_return.toFixed(2) + '%'; - document.getElementById('backtestReturn').style.color = - results.total_return >= 0 ? 'var(--neon-green)' : 'var(--neon-pink)'; - - document.getElementById('backtestTrades').textContent = results.total_trades; - document.getElementById('backtestWinRate').textContent = - results.win_rate.toFixed(1) + '%'; - document.getElementById('backtestSharpe').textContent = - results.sharpe_ratio.toFixed(2); - document.getElementById('backtestDrawdown').textContent = - results.max_drawdown.toFixed(2) + '%'; - document.getElementById('backtestEquity').textContent = - '$' + results.final_equity.toFixed(2); - - // Draw equity curve chart - drawEquityChart(results.equity_curve); - - // Show results - statusDiv.style.display = 'none'; - resultsDiv.style.display = 'block'; - - // Re-enable button - const btn = document.getElementById('runBacktestBtn'); - btn.disabled = false; - btn.innerHTML = '▶ RUN BACKTEST'; - - showNotification('BACKTEST COMPLETE', 'success'); -} - -function drawEquityChart(equityCurve) { - const canvas = document.getElementById('backtestChart'); - const ctx = canvas.getContext('2d'); - - if (!equityCurve || equityCurve.length === 0) { - ctx.fillStyle = 'var(--text-secondary)'; - ctx.font = '14px Orbitron'; - ctx.fillText('No data available', 10, 100); - return; - } - - // Clear canvas - ctx.clearRect(0, 0, canvas.width, canvas.height); - - // Setup - const padding = 40; - const width = canvas.width - padding * 2; - const height = canvas.height - padding * 2; - - // Find min/max for scaling - const equities = equityCurve.map(p => p.equity); - const minEquity = Math.min(...equities); - const maxEquity = Math.max(...equities); - const range = maxEquity - minEquity || 1; - - // Draw grid - ctx.strokeStyle = 'rgba(0, 255, 255, 0.2)'; - ctx.lineWidth = 1; - for (let i = 0; i <= 5; i++) { - const y = padding + (height / 5) * i; - ctx.beginPath(); - ctx.moveTo(padding, y); - ctx.lineTo(canvas.width - padding, y); - ctx.stroke(); - } - - // Draw equity curve - ctx.strokeStyle = 'var(--neon-cyan)'; - ctx.lineWidth = 2; - ctx.beginPath(); - - equityCurve.forEach((point, index) => { - const x = padding + (width / (equityCurve.length - 1)) * index; - const y = padding + height - ((point.equity - minEquity) / range) * height; - - if (index === 0) { - ctx.moveTo(x, y); - } else { - ctx.lineTo(x, y); - } - }); - - ctx.stroke(); - - // Draw glow effect - ctx.shadowBlur = 10; - ctx.shadowColor = 'var(--neon-cyan)'; - ctx.stroke(); - - // Draw labels - ctx.fillStyle = 'var(--text-secondary)'; - ctx.font = '10px Orbitron'; - ctx.fillText('$' + minEquity.toFixed(0), 5, canvas.height - padding); - ctx.fillText('$' + maxEquity.toFixed(0), 5, padding + 10); -} - -// Add animations -const style = document.createElement('style'); -style.textContent = ` - @keyframes slideIn { - from { - transform: translateX(100%); - opacity: 0; - } - to { - transform: translateX(0); - opacity: 1; - } - } - - @keyframes slideOut { - from { - transform: translateX(0); - opacity: 1; - } - to { - transform: translateX(100%); - opacity: 0; - } - } -`; -document.head.appendChild(style); diff --git a/polymarket/gui/static/style.css b/polymarket/gui/static/style.css deleted file mode 100644 index 0d6cca6..0000000 --- a/polymarket/gui/static/style.css +++ /dev/null @@ -1,866 +0,0 @@ -/* Cyberpunk Theme Styles */ - -@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Rajdhani:wght@300;400;600;700&display=swap'); - -:root { - --neon-cyan: #00ffff; - --neon-pink: #ff00ff; - --neon-green: #00ff00; - --neon-yellow: #ffff00; - --dark-bg: #0a0a0a; - --darker-bg: #050505; - --panel-bg: rgba(10, 10, 20, 0.8); - --border-color: #00ffff; - --text-primary: #00ffff; - --text-secondary: #00ff88; - --glow-intensity: 0 0 10px, 0 0 20px, 0 0 30px; -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Rajdhani', sans-serif; - background: var(--dark-bg); - color: var(--text-primary); - overflow-x: hidden; - position: relative; - min-height: 100vh; -} - -.cyberpunk-container { - position: relative; - min-height: 100vh; - padding: 20px; - z-index: 1; -} - -/* Grid Background */ -.grid-background { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-image: - linear-gradient(rgba(0, 255, 255, 0.1) 1px, transparent 1px), - linear-gradient(90deg, rgba(0, 255, 255, 0.1) 1px, transparent 1px); - background-size: 50px 50px; - z-index: 0; - opacity: 0.3; - animation: gridMove 20s linear infinite; -} - -@keyframes gridMove { - 0% { transform: translate(0, 0); } - 100% { transform: translate(50px, 50px); } -} - -/* Particles Effect */ -.particles { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 0; - background-image: - radial-gradient(2px 2px at 20% 30%, var(--neon-cyan), transparent), - radial-gradient(2px 2px at 60% 70%, var(--neon-pink), transparent), - radial-gradient(1px 1px at 50% 50%, var(--neon-green), transparent); - background-size: 200% 200%; - animation: particles 15s ease infinite; - opacity: 0.3; -} - -@keyframes particles { - 0%, 100% { background-position: 0% 0%, 100% 100%, 50% 50%; } - 50% { background-position: 100% 0%, 0% 100%, 50% 50%; } -} - -/* Header */ -.cyberpunk-header { - text-align: center; - padding: 30px 20px; - margin-bottom: 30px; - position: relative; - z-index: 2; -} - -.glitch { - font-family: 'Orbitron', sans-serif; - font-size: 4rem; - font-weight: 900; - color: var(--neon-cyan); - text-transform: uppercase; - letter-spacing: 0.2em; - text-shadow: - 0 0 10px var(--neon-cyan), - 0 0 20px var(--neon-cyan), - 0 0 30px var(--neon-cyan), - 0 0 40px var(--neon-cyan); - animation: glitch 2s infinite; - position: relative; -} - -.glitch::before, -.glitch::after { - content: attr(data-text); - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.glitch::before { - left: 2px; - text-shadow: -2px 0 var(--neon-pink); - clip: rect(44px, 450px, 56px, 0); - animation: glitch-anim 5s infinite linear alternate-reverse; -} - -.glitch::after { - left: -2px; - text-shadow: 2px 0 var(--neon-green); - clip: rect(44px, 450px, 56px, 0); - animation: glitch-anim 1s infinite linear alternate-reverse; -} - -@keyframes glitch { - 0%, 100% { transform: translate(0); } - 20% { transform: translate(-2px, 2px); } - 40% { transform: translate(-2px, -2px); } - 60% { transform: translate(2px, 2px); } - 80% { transform: translate(2px, -2px); } -} - -@keyframes glitch-anim { - 0% { clip: rect(31px, 9999px, 94px, 0); } - 5% { clip: rect(14px, 9999px, 29px, 0); } - 10% { clip: rect(95px, 9999px, 96px, 0); } - 15% { clip: rect(9px, 9999px, 97px, 0); } - 20% { clip: rect(43px, 9999px, 27px, 0); } - 25% { clip: rect(87px, 9999px, 3px, 0); } - 30% { clip: rect(80px, 9999px, 94px, 0); } - 35% { clip: rect(66px, 9999px, 28px, 0); } - 40% { clip: rect(68px, 9999px, 100px, 0); } - 45% { clip: rect(14px, 9999px, 33px, 0); } - 50% { clip: rect(60px, 9999px, 85px, 0); } - 55% { clip: rect(75px, 9999px, 5px, 0); } - 60% { clip: rect(1px, 9999px, 80px, 0); } - 65% { clip: rect(79px, 9999px, 63px, 0); } - 70% { clip: rect(17px, 9999px, 79px, 0); } - 75% { clip: rect(85px, 9999px, 65px, 0); } - 80% { clip: rect(60px, 9999px, 27px, 0); } - 85% { clip: rect(38px, 9999px, 73px, 0); } - 90% { clip: rect(50px, 9999px, 29px, 0); } - 95% { clip: rect(3px, 9999px, 14px, 0); } - 100% { clip: rect(88px, 9999px, 53px, 0); } -} - -.subtitle { - font-family: 'Orbitron', sans-serif; - font-size: 1.2rem; - color: var(--neon-pink); - letter-spacing: 0.3em; - margin-top: 10px; - text-shadow: 0 0 10px var(--neon-pink); -} - -.status-indicator { - margin-top: 20px; - display: flex; - align-items: center; - justify-content: center; - gap: 10px; - font-family: 'Orbitron', sans-serif; - font-size: 0.9rem; -} - -.status-dot { - width: 12px; - height: 12px; - border-radius: 50%; - background: var(--neon-pink); - box-shadow: 0 0 10px var(--neon-pink); - animation: pulse 2s infinite; -} - -.status-dot.active { - background: var(--neon-green); - box-shadow: 0 0 10px var(--neon-green); -} - -@keyframes pulse { - 0%, 100% { opacity: 1; } - 50% { opacity: 0.5; } -} - -/* Dashboard Grid */ -.dashboard-grid { - display: grid; - grid-template-columns: 1fr 2fr 1fr; - grid-template-rows: auto auto; - gap: 20px; - position: relative; - z-index: 2; -} - -.full-width { - grid-column: 1 / -1; -} - -.backtest-panel.full-width { - grid-column: 1 / -1; -} - -/* Panels */ -.panel { - background: var(--panel-bg); - border: 2px solid var(--border-color); - box-shadow: - 0 0 10px rgba(0, 255, 255, 0.3), - inset 0 0 20px rgba(0, 255, 255, 0.1); - position: relative; - overflow: hidden; -} - -.panel-header { - background: rgba(0, 255, 255, 0.1); - padding: 15px 20px; - border-bottom: 2px solid var(--border-color); - position: relative; -} - -.panel-header h2 { - font-family: 'Orbitron', sans-serif; - font-size: 1.2rem; - color: var(--neon-cyan); - text-transform: uppercase; - letter-spacing: 0.1em; - text-shadow: 0 0 10px var(--neon-cyan); -} - -.scan-line { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 2px; - background: linear-gradient(90deg, - transparent, - var(--neon-cyan), - transparent); - animation: scan 3s linear infinite; -} - -@keyframes scan { - 0% { transform: translateX(-100%); } - 100% { transform: translateX(100%); } -} - -.panel-content { - padding: 20px; -} - -/* Controls */ -.control-group { - margin-bottom: 20px; -} - -.control-group label { - display: block; - font-family: 'Orbitron', sans-serif; - font-size: 0.9rem; - color: var(--text-secondary); - margin-bottom: 8px; - text-transform: uppercase; - letter-spacing: 0.1em; -} - -.control-group input[type="range"] { - width: 100%; - height: 6px; - background: rgba(0, 255, 255, 0.2); - border-radius: 3px; - outline: none; - -webkit-appearance: none; -} - -.control-group input[type="range"]::-webkit-slider-thumb { - -webkit-appearance: none; - width: 18px; - height: 18px; - background: var(--neon-cyan); - border-radius: 50%; - cursor: pointer; - box-shadow: 0 0 10px var(--neon-cyan); -} - -.control-group input[type="range"]::-moz-range-thumb { - width: 18px; - height: 18px; - background: var(--neon-cyan); - border-radius: 50%; - cursor: pointer; - border: none; - box-shadow: 0 0 10px var(--neon-cyan); -} - -.control-group input[type="number"], -.control-group select { - width: 100%; - padding: 10px; - background: rgba(0, 255, 255, 0.1); - border: 1px solid var(--border-color); - color: var(--text-primary); - font-family: 'Rajdhani', sans-serif; - font-size: 1rem; - outline: none; -} - -.control-group input[type="number"]:focus, -.control-group select:focus { - box-shadow: 0 0 10px var(--neon-cyan); -} - -.control-group span { - display: inline-block; - margin-left: 10px; - color: var(--neon-cyan); - font-family: 'Orbitron', sans-serif; - font-weight: 700; -} - -/* Buttons */ -.cyber-button { - width: 100%; - padding: 15px; - margin-top: 10px; - background: transparent; - border: 2px solid var(--neon-cyan); - color: var(--neon-cyan); - font-family: 'Orbitron', sans-serif; - font-size: 1rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.1em; - cursor: pointer; - position: relative; - overflow: hidden; - transition: all 0.3s; -} - -.cyber-button::before { - content: ''; - position: absolute; - top: 0; - left: -100%; - width: 100%; - height: 100%; - background: var(--neon-cyan); - transition: left 0.3s; - z-index: -1; -} - -.cyber-button:hover::before { - left: 0; -} - -.cyber-button:hover { - color: var(--dark-bg); - box-shadow: 0 0 20px var(--neon-cyan); -} - -.cyber-button:disabled { - opacity: 0.5; - cursor: not-allowed; -} - -.start-btn { - border-color: var(--neon-green); - color: var(--neon-green); -} - -.start-btn::before { - background: var(--neon-green); -} - -.stop-btn { - border-color: var(--neon-pink); - color: var(--neon-pink); -} - -.stop-btn::before { - background: var(--neon-pink); -} - -/* Markets List */ -.markets-list { - max-height: 500px; - overflow-y: auto; -} - -.market-item { - padding: 15px; - margin-bottom: 10px; - background: rgba(0, 255, 255, 0.05); - border: 1px solid rgba(0, 255, 255, 0.3); - border-left: 4px solid var(--neon-cyan); - transition: all 0.3s; -} - -.market-item:hover { - background: rgba(0, 255, 255, 0.1); - border-color: var(--neon-cyan); - box-shadow: 0 0 10px rgba(0, 255, 255, 0.3); - transform: translateX(5px); -} - -.market-question { - font-weight: 700; - color: var(--text-primary); - margin-bottom: 8px; - font-size: 1rem; -} - -.market-prices { - display: flex; - gap: 20px; - font-family: 'Orbitron', sans-serif; - font-size: 0.9rem; -} - -.price-yes { - color: var(--neon-green); -} - -.price-no { - color: var(--neon-pink); -} - -.price-value { - font-weight: 700; - font-size: 1.1rem; -} - -/* Metrics */ -.metric-grid { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 15px; -} - -.metric-card { - background: rgba(0, 255, 255, 0.05); - border: 1px solid rgba(0, 255, 255, 0.3); - padding: 15px; - text-align: center; -} - -.metric-label { - font-family: 'Orbitron', sans-serif; - font-size: 0.8rem; - color: var(--text-secondary); - text-transform: uppercase; - letter-spacing: 0.1em; - margin-bottom: 8px; -} - -.metric-value { - font-family: 'Orbitron', sans-serif; - font-size: 1.5rem; - font-weight: 700; - color: var(--neon-cyan); - text-shadow: 0 0 10px var(--neon-cyan); -} - -/* Positions */ -.positions-list { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - gap: 15px; -} - -.position-card { - background: rgba(0, 255, 255, 0.05); - border: 1px solid rgba(0, 255, 255, 0.3); - padding: 15px; - border-left: 4px solid var(--neon-cyan); -} - -.position-card.profit { - border-left-color: var(--neon-green); -} - -.position-card.loss { - border-left-color: var(--neon-pink); -} - -.position-header { - display: flex; - justify-content: space-between; - margin-bottom: 10px; -} - -.position-outcome { - font-family: 'Orbitron', sans-serif; - font-weight: 700; - color: var(--text-primary); -} - -.position-pnl { - font-family: 'Orbitron', sans-serif; - font-weight: 700; -} - -.position-pnl.positive { - color: var(--neon-green); -} - -.position-pnl.negative { - color: var(--neon-pink); -} - -.position-details { - font-size: 0.9rem; - color: var(--text-secondary); - line-height: 1.6; -} - -/* Loading & Empty States */ -.loading, -.empty-state { - text-align: center; - padding: 40px; - color: var(--text-secondary); - font-family: 'Orbitron', sans-serif; - text-transform: uppercase; - letter-spacing: 0.2em; -} - -/* Scrollbar */ -::-webkit-scrollbar { - width: 8px; -} - -::-webkit-scrollbar-track { - background: rgba(0, 255, 255, 0.1); -} - -::-webkit-scrollbar-thumb { - background: var(--neon-cyan); - box-shadow: 0 0 10px var(--neon-cyan); -} - -::-webkit-scrollbar-thumb:hover { - background: var(--neon-green); -} - -/* Backtesting */ -.backtest-controls { - margin-bottom: 20px; -} - -.backtest-btn { - margin-top: 20px; - border-color: var(--neon-yellow); - color: var(--neon-yellow); -} - -.backtest-btn::before { - background: var(--neon-yellow); -} - -.backtest-results { - margin-top: 20px; - padding: 15px; - background: rgba(0, 255, 255, 0.05); - border: 1px solid rgba(0, 255, 255, 0.3); -} - -.backtest-metrics { - margin-bottom: 20px; -} - -.metric-row { - display: flex; - justify-content: space-between; - padding: 8px 0; - border-bottom: 1px solid rgba(0, 255, 255, 0.1); - font-family: 'Orbitron', sans-serif; -} - -.metric-row:last-child { - border-bottom: none; -} - -.metric-row .metric-label { - color: var(--text-secondary); - font-size: 0.9rem; -} - -.metric-row .metric-value { - color: var(--neon-cyan); - font-weight: 700; - font-size: 1rem; -} - -#backtestChart { - width: 100%; - max-width: 100%; - background: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 255, 255, 0.3); -} - -.backtest-status { - margin-top: 15px; - text-align: center; - font-family: 'Orbitron', sans-serif; - color: var(--text-secondary); -} - -/* Update grid for backtesting panel */ -.dashboard-grid { - display: grid; - grid-template-columns: 1fr 2fr 1fr; - grid-template-rows: auto auto; - gap: 20px; -} - -.positions-panel { - grid-column: 1 / 3; -} - -.backtest-panel { - grid-column: 3; -} - -/* Terminal Panel */ -.terminal-panel { - margin-top: 20px; - background: rgba(0, 0, 0, 0.8); - border: 2px solid var(--neon-cyan); - border-radius: 4px; - overflow: hidden; -} - -.terminal-header { - background: rgba(0, 255, 255, 0.1); - padding: 8px 15px; - display: flex; - justify-content: space-between; - align-items: center; - border-bottom: 1px solid var(--neon-cyan); - font-family: 'Orbitron', sans-serif; - font-size: 0.8rem; - color: var(--neon-cyan); - text-transform: uppercase; -} - -.terminal-btn { - background: transparent; - border: 1px solid var(--neon-pink); - color: var(--neon-pink); - padding: 4px 10px; - font-family: 'Orbitron', sans-serif; - font-size: 0.7rem; - cursor: pointer; - transition: all 0.2s; -} - -.terminal-btn:hover { - background: var(--neon-pink); - color: var(--dark-bg); -} - -.terminal-output { - height: 200px; - overflow-y: auto; - padding: 10px; - font-family: 'Courier New', monospace; - font-size: 0.85rem; - line-height: 1.4; - background: #000; - color: var(--neon-green); -} - -.terminal-line { - margin-bottom: 4px; - word-wrap: break-word; -} - -.terminal-line.info { - color: var(--neon-cyan); -} - -.terminal-line.success { - color: var(--neon-green); -} - -.terminal-line.warning { - color: var(--neon-yellow); -} - -.terminal-line.error { - color: var(--neon-pink); -} - -.terminal-line.trade { - color: var(--neon-cyan); - font-weight: 700; -} - -.terminal-line.market { - color: var(--text-secondary); -} - -/* Real-time Chart */ -.chart-container { - margin-top: 20px; - background: rgba(0, 0, 0, 0.8); - border: 2px solid var(--neon-cyan); - border-radius: 4px; - padding: 15px; -} - -.chart-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 10px; - font-family: 'Orbitron', sans-serif; - font-size: 0.9rem; - color: var(--neon-cyan); - text-transform: uppercase; -} - -.chart-stats { - display: flex; - gap: 20px; - font-size: 1rem; -} - -.chart-stats span { - font-weight: 700; -} - -.pnl-positive { - color: var(--neon-green); -} - -.pnl-negative { - color: var(--neon-pink); -} - -#realtimeChart { - width: 100%; - height: 250px; - background: #000; - border: 1px solid var(--neon-cyan); -} - -/* Trades Panel */ -.trades-panel { - margin-top: 20px; - background: rgba(0, 0, 0, 0.8); - border: 2px solid var(--neon-pink); - border-radius: 4px; - overflow: hidden; - max-height: 300px; - display: flex; - flex-direction: column; -} - -.trades-header { - background: rgba(255, 0, 255, 0.1); - padding: 10px 15px; - display: flex; - justify-content: space-between; - align-items: center; - border-bottom: 1px solid var(--neon-pink); - font-family: 'Orbitron', sans-serif; - font-size: 0.8rem; - color: var(--neon-pink); - text-transform: uppercase; -} - -.trades-list { - overflow-y: auto; - flex: 1; - padding: 10px; -} - -.trade-item { - padding: 8px; - margin-bottom: 6px; - background: rgba(255, 255, 255, 0.05); - border-left: 3px solid var(--neon-cyan); - border-radius: 2px; - font-family: 'Courier New', monospace; - font-size: 0.8rem; - display: flex; - justify-content: space-between; - align-items: center; -} - -.trade-item.buy { - border-left-color: var(--neon-green); -} - -.trade-item.sell { - border-left-color: var(--neon-pink); -} - -.trade-info { - display: flex; - flex-direction: column; - gap: 4px; -} - -.trade-action { - font-weight: 700; - color: var(--neon-cyan); -} - -.trade-item.buy .trade-action { - color: var(--neon-green); -} - -.trade-item.sell .trade-action { - color: var(--neon-pink); -} - -.trade-details { - font-size: 0.75rem; - color: var(--text-secondary); -} - -.trade-pnl { - font-weight: 700; - font-size: 0.9rem; -} - -.trade-pnl.positive { - color: var(--neon-green); -} - -.trade-pnl.negative { - color: var(--neon-pink); -} - -/* Responsive */ -@media (max-width: 1200px) { - .dashboard-grid { - grid-template-columns: 1fr; - } - - .positions-panel, - .backtest-panel { - grid-column: 1; - } -} diff --git a/polymarket/gui/templates/dashboard.html b/polymarket/gui/templates/dashboard.html deleted file mode 100644 index 007bc67..0000000 --- a/polymarket/gui/templates/dashboard.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - CYBERPUNK POLYMARKET | Trading Dashboard - - - - - -
- -
-
POLYMARKET
-
CYBERPUNK TRADING INTERFACE
-
- - OFFLINE -
-
- - -
- -
-
-

STRATEGY CONTROL

-
-
-
-
- - - 0.15 -
-
- - - 0.70 -
-
- - -
-
- - -
- - -
-
- - -
-
-

ACTIVE MARKETS

-
-
-
-
-
LOADING MARKETS...
-
-
-
- - -
-
-

PERFORMANCE METRICS

-
-
-
-
-
-
BALANCE
-
$0.00
-
-
-
EQUITY
-
$0.00
-
-
-
POSITIONS
-
0
-
-
-
TOTAL TRADES
-
0
-
-
-
WIN RATE
-
0%
-
-
-
NET P&L
-
$0.00
-
-
-
-
- - -
-
-

OPEN POSITIONS

-
-
-
-
-
NO OPEN POSITIONS
-
-
-
- - -
-
-

BACKTESTING

-
-
-
-
-
- - -
-
- - -
-
- - -
- -
- - -
-
- TERMINAL OUTPUT - -
-
-
[SYSTEM] Ready for backtest...
-
-
- - -
-
- EQUITY CURVE -
- $1000.00 - +$0.00 -
-
- -
- - -
-
- RECENT TRADES - 0 trades -
-
-
No trades yet
-
-
- - -
-
-
-
- - -
-
-
- - - - - - - - diff --git a/polymarket/gui/test_server.py b/polymarket/gui/test_server.py deleted file mode 100644 index a77d7b1..0000000 --- a/polymarket/gui/test_server.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Test server startup""" -import sys -from pathlib import Path - -# Add paths -gui_dir = Path(__file__).parent -project_root = gui_dir.parent.parent -sys.path.insert(0, str(project_root)) - -print("Testing imports...") -try: - from polymarket.api import GammaClient, ClobClient - print("✓ API imports OK") -except Exception as e: - print(f"✗ API import failed: {e}") - sys.exit(1) - -try: - from polymarket.strategies.examples import SimpleProbabilityStrategy - print("✓ Strategy imports OK") -except Exception as e: - print(f"✗ Strategy import failed: {e}") - sys.exit(1) - -try: - from flask import Flask - print("✓ Flask import OK") -except Exception as e: - print(f"✗ Flask import failed: {e}") - sys.exit(1) - -print("\nAll imports successful! Starting server...") -print("=" * 60) diff --git a/polymarket/strategies/__init__.py b/polymarket/strategies/__init__.py deleted file mode 100644 index 33c5928..0000000 --- a/polymarket/strategies/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Polymarket Trading Strategies""" - -from .base_strategy import BaseStrategy, MarketSignal, Position - -__all__ = ['BaseStrategy', 'MarketSignal', 'Position'] diff --git a/polymarket/strategies/__pycache__/__init__.cpython-312.pyc b/polymarket/strategies/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4dbe77b591184a71ca0df7cb2dffe0763a49e00b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmX|-ze~eF6vyA?Qd>$gISU0{GStyQqy=$R3UvyB$JIN-;UyRDPB9LGe}#KD{}v}l zGwLAS3f($+(dZk#?+5RF`0`%kcnCg}ew0g}KilRng09#c_~IEjq`(Oe6e)rKH zFbxUhz=I`8do@kMhrO9rb-~PyaHC7ZxGeM0+!^LXE`?nYPfBPLoiZ!Baot4cKl^i; zmrON-nYPkNU0x(RO&^i#E5s&V_zSeZq}ou=F<~n`FYOvr3h@OtzJ=}N>^Q58zLt(H zlo*TqN*Fh0{7zbJvg+Sr)&ae>3{jTSAs$xsc5qT?eyha9L>||gw!2=|lo0X``(H49 OgXzcc=&5ho_k9CL3tyN3 diff --git a/polymarket/strategies/__pycache__/base_strategy.cpython-312.pyc b/polymarket/strategies/__pycache__/base_strategy.cpython-312.pyc deleted file mode 100644 index 5a2239a27db5e5c2be4895277094831b4aa85e3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9320 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 O?i>C8&ES{r>Hh)%l?dGc diff --git a/polymarket/strategies/base_strategy.py b/polymarket/strategies/base_strategy.py deleted file mode 100644 index 67ae2ca..0000000 --- a/polymarket/strategies/base_strategy.py +++ /dev/null @@ -1,218 +0,0 @@ -""" -Base Strategy Class for Polymarket Trading - -All trading strategies should inherit from this class. -""" - -from abc import ABC, abstractmethod -from typing import Dict, Optional, List, Any -from datetime import datetime -from dataclasses import dataclass -import numpy as np - - -@dataclass -class MarketSignal: - """Trading signal from strategy""" - action: str # 'BUY', 'SELL', 'HOLD' - token_id: str # Which outcome token to trade - size: float # Position size (0.0 to 1.0) - confidence: float # Confidence level (0.0 to 1.0) - reason: str # Human-readable reason - metadata: Dict[str, Any] # Additional strategy-specific data - - -@dataclass -class Position: - """Open position tracking""" - token_id: str - outcome: str # 'Yes' or 'No' - size: float - entry_price: float - entry_time: datetime - current_price: float - unrealized_pnl: float - realized_pnl: float = 0.0 - - -class BaseStrategy(ABC): - """ - Base class for all Polymarket trading strategies. - - Inherit from this class and implement: - - analyze_market(): Your trading logic - - get_parameters(): Return strategy parameters - """ - - def __init__(self, name: str, initial_balance: float = 1000.0): - """ - Initialize the strategy. - - Args: - name: Strategy name - initial_balance: Starting USDC balance - """ - self.name = name - self.initial_balance = initial_balance - self.current_balance = initial_balance - self.equity = initial_balance - - # Position tracking - self.positions: Dict[str, Position] = {} # token_id -> Position - self.closed_positions: List[Position] = [] - - # Performance metrics - self.total_trades = 0 - self.winning_trades = 0 - self.losing_trades = 0 - self.total_profit = 0.0 - self.total_loss = 0.0 - self.max_drawdown = 0.0 - self.peak_equity = initial_balance - - # Risk management - self.max_position_size = 0.5 # Max 50% of balance per position - self.max_total_exposure = 0.8 # Max 80% total exposure - self.min_confidence = 0.6 # Minimum confidence to trade - - @abstractmethod - def analyze_market(self, market_data: Dict) -> Optional[MarketSignal]: - """ - Analyze market and generate trading signal. - - Args: - market_data: Dictionary containing: - - 'event': Event information - - 'market': Market information - - 'prices': Current outcome prices - - 'orderbook': Orderbook data - - 'history': Historical price data (if available) - - Returns: - MarketSignal or None if no trade - """ - pass - - @abstractmethod - def get_parameters(self) -> Dict[str, Any]: - """ - Return strategy parameters. - - Returns: - Dictionary of parameter names and values - """ - pass - - def update_position(self, token_id: str, current_price: float) -> None: - """ - Update position with current price. - - Args: - token_id: Token ID - current_price: Current market price - """ - if token_id in self.positions: - pos = self.positions[token_id] - # Validate inputs - if not (np.isfinite(current_price) and current_price > 0 and current_price < 1): - return # Skip update if price is invalid - if not (np.isfinite(pos.size) and pos.size > 0): - return # Skip update if position size is invalid - if not (np.isfinite(pos.entry_price) and pos.entry_price > 0): - return # Skip update if entry price is invalid - - pos.current_price = current_price - unrealized_pnl = (current_price - pos.entry_price) * pos.size - pos.unrealized_pnl = unrealized_pnl if np.isfinite(unrealized_pnl) else 0.0 - - def calculate_equity(self) -> float: - """Calculate current equity (balance + unrealized PnL)""" - # Validate balance - if not np.isfinite(self.current_balance): - self.current_balance = 0.0 - - unrealized = sum( - pos.unrealized_pnl if np.isfinite(pos.unrealized_pnl) else 0.0 - for pos in self.positions.values() - ) - equity = self.current_balance + unrealized - return equity if np.isfinite(equity) else self.current_balance - - def update_drawdown(self) -> None: - """Update maximum drawdown""" - self.equity = self.calculate_equity() - if self.equity > self.peak_equity: - self.peak_equity = self.equity - - # Safe division - avoid division by zero - if self.peak_equity > 0: - drawdown = (self.peak_equity - self.equity) / self.peak_equity - if drawdown > self.max_drawdown: - self.max_drawdown = drawdown - else: - # If peak_equity is 0, set drawdown to 0 - self.max_drawdown = 0.0 - - def can_open_position(self, size: float, token_id: str) -> bool: - """ - Check if strategy can open a new position. - - Args: - size: Position size in USDC - token_id: Token ID - - Returns: - True if position can be opened - """ - # Validate inputs - if not (np.isfinite(size) and size > 0): - return False - if not (np.isfinite(self.current_balance) and self.current_balance > 0): - return False - - # Check if already have position in this token - if token_id in self.positions: - return False - - # Check position size limit - if size > self.current_balance * self.max_position_size: - return False - - # Check total exposure limit - total_exposure = sum( - pos.size if np.isfinite(pos.size) else 0.0 - for pos in self.positions.values() - ) - if not np.isfinite(total_exposure): - total_exposure = 0.0 - - if total_exposure + size > self.current_balance * self.max_total_exposure: - return False - - # Check balance - if size > self.current_balance: - return False - - return True - - def get_performance_metrics(self) -> Dict[str, Any]: - """Get current performance metrics""" - win_rate = (self.winning_trades / self.total_trades * 100) if self.total_trades > 0 else 0.0 - profit_factor = abs(self.total_profit / self.total_loss) if self.total_loss != 0 else 0.0 - - return { - 'name': self.name, - 'total_trades': self.total_trades, - 'winning_trades': self.winning_trades, - 'losing_trades': self.losing_trades, - 'win_rate': win_rate, - 'total_profit': self.total_profit, - 'total_loss': self.total_loss, - 'net_profit': self.total_profit + self.total_loss, - 'profit_factor': profit_factor, - 'max_drawdown': self.max_drawdown, - 'current_balance': self.current_balance, - 'equity': self.equity, - 'unrealized_pnl': sum(pos.unrealized_pnl for pos in self.positions.values()), - 'open_positions': len(self.positions) - } diff --git a/polymarket/strategies/examples/__init__.py b/polymarket/strategies/examples/__init__.py deleted file mode 100644 index a050dec..0000000 --- a/polymarket/strategies/examples/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Example Strategies""" - -from .simple_probability import SimpleProbabilityStrategy - -__all__ = ['SimpleProbabilityStrategy'] diff --git a/polymarket/strategies/examples/__pycache__/__init__.cpython-312.pyc b/polymarket/strategies/examples/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e32cb14dd48344db18ac269a7f41761b5c08e40e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmX@j%ge<81UdP2nN2|YF^B^LOi;#WDIjAyLkdF_LkeRGQx0P;Qxp>;Lke>`V-#~G zizaK8kZVO^Zb43}LU2h@Vo7RxW@_6g2URSZy3T4qUNQckLF zYDGb6QHgG1N?B%ceo;(8eokd>Vo`Q#NlY=^Ju#^eCl<%V$7kkcmc+;F6;%G>u*uC& pDa}c>D*^=r$jQaRK;i>4BO~KY28pK(mJhhqE^w(gvKMgx#R1CbS+W2C diff --git a/polymarket/strategies/examples/__pycache__/simple_probability.cpython-312.pyc b/polymarket/strategies/examples/__pycache__/simple_probability.cpython-312.pyc deleted file mode 100644 index 18abd931deb18f0aa270625e3ee49fe4b473d09a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3783 zcmb^!TWk~A^^WJ^8OM1$kdW8JkPB>A1kQoT~EHd3pYb}Q1a22rVe^0`vKs{Yud71Pm5P1UN>{uzbUuK4P?GkztTboo_p>&=bo4U+}avK055)cS3S^<&_BsX4cO{r`wUFh5Jqu?DICzKbRZr`({Y+Y zn8u98q}e!|=HeWM0_a-^v-c6^6!tOgpN|K#!5E)QhvwAuil&I)F^vUzLDf_{E6&-b zY%8g(_}*=qY=%PDO&Kee_~D|Wi)qS%4sc^y)Ej6X9Ni`wsww4u>rjZtt zvTBOAWG$miggzs8#{w>MQBBw`|Lql9HFR0~EZ{GP&&!rlyW9<5^)8wNma>-crS`E< z{n-8hCO-xvC@4;WAp)3+(*pAUa0?D745k$pGw{zUY?3daB!#*At#J+ql_2I7UJ?3$ zN0Pz9eI_1)m0&V}LojbCpxabDJcnXox6ijxlZk3V<`zRDK-Gp;&2ILhY>Nw-Y}I1T zrcy1@HVjcSK0NLnwG>U;pKMW0ElzlJE~Cq7#cfx0)mCLqT97qaPbjWnFPe(AXlU4N zORKt+F!ZE~71&DDJcU?`fq(My+vfrOl3GJHj6QtC=Fv}qHc#aPkI72_P$*C5kyQPH zJqEt2o`X=9iUs5#g^(v1F~B8XDmABwH6!?9lg&ESyJpIou78m&qSJK4-^k~V{axA; zQrWasJtbE4-$7kB#qhV$CaltXlJy7tm6Z z(@m^o%?{w6i|*^l6E(RzfzCP%=*xTP&hlXpSVePti=izJ)-s*8x$~#=1%cCU{LAziX^f8GHU$0RxAKX*U zV5*@tpXWV|c+8WebVneP?0qwl&%6DbcCaQC7WR`f2QN^!MkpTwo_y_8V_cpGZ3b=f zS{~p~UcfE+5DtSJt-oe)Tb}dA_TR9O4>;WMap3ozkBQp?%ptJD{_+CF@0$qeAUAn(cmslj{))T|KP=T_L+p48c*0GpUbcIw&ujI+v9@(x| zBOuqO)I=lijf2h?5hi#PLRknikJzvf@}q$BOAyPu$2;dvZAAaX8k@ zVGe4GIA+}XDhHSIRdKl$Q%xw=tV@GLDc^=$XWhW8;f52Mv2fj3R`g5QGD$#J_bX>z z`uz89rhfH+z@N_MI(BQ5qbE*|<_1J4c1;S1WA#itExw{+&d`(Ci_ommm_9<}e_a*9~84QzW0EY6dhGmY^P2 zCAQ2cp+5r1A~EHqb|0DD}>r4veP|O=|EkBYs0I<>%AK% zH#;W^oYOh5${+Lp{Ak zVg15`_RYvxLD*`E{M=r%=jrw0!^{h~8C>hujb!!c)Yd_#RoZ%Cz?8>O2Ir9`rHBUMT* zmikra*c+dmE)QOP*&6Kas-R$JS7j1)L@L9m?O^fnI`g}>-?o(xO+0Ho@jqO<)!kpT zAKra%x7eli||2_e=9iDXEs;Un(svmxeXx#M_@_ z%Olr7gnd+;B^ws1&*{~Uitd~CQ$y+5{$b6R!M~I0$AOn?7(U@={A#N z>SG4F)j;mhcfAr^Z^XnE*@V8zR!r*=)6{x&rsdmG&D|w0yt>GeZP?IXLeF7X8B;N* z;F1{S#ezlD606<|VI(y;|2Oa5Nht#lYZ4H6FNY2dJsf&4PpeqK8FvvaA}J^16YQg!>ul7XIG$QZm8n6F2D~hsoFedP2x?ydPL?&$mc Optional[MarketSignal]: - """ - Analyze market and generate signal. - - Strategy logic: - - If Yes probability < 0.5 - threshold: Buy (undervalued) - - If Yes probability > 0.5 + threshold: Sell (overvalued) - """ - market = market_data.get('market', {}) - prices = market_data.get('prices', {}) - - if not prices: - return None - - yes_price = prices.get('Yes', 0.5) - no_price = prices.get('No', 0.5) - - # Calculate deviation from fair value (0.5) - deviation = abs(yes_price - 0.5) - - if deviation < self.threshold: - return None # Not enough deviation - - # Get token_id from market - market_obj = market_data.get('market', {}) - token_ids = market_obj.get('clobTokenIds', []) - if not token_ids: - return None - - token_id = token_ids[0] - - # Determine action - if yes_price < (0.5 - self.threshold): - # Yes is undervalued, buy - confidence = min(1.0, deviation / self.threshold) - if confidence >= self.min_confidence: - return MarketSignal( - action='BUY', - token_id=token_id, - size=0.2, # 20% of balance - confidence=confidence, - reason=f"Yes probability {yes_price:.2%} is undervalued (deviation: {deviation:.2%})", - metadata={'yes_price': yes_price, 'deviation': deviation} - ) - - elif yes_price > (0.5 + self.threshold): - # Yes is overvalued, sell (close position if we have one) - confidence = min(1.0, deviation / self.threshold) - if confidence >= self.min_confidence: - # Check if we have a position to close - if token_id in self.positions: - return MarketSignal( - action='SELL', - token_id=token_id, - size=1.0, # Close entire position - confidence=confidence, - reason=f"Yes probability {yes_price:.2%} is overvalued (deviation: {deviation:.2%})", - metadata={'yes_price': yes_price, 'deviation': deviation} - ) - - return None - - def get_parameters(self) -> Dict: - """Return strategy parameters""" - return { - 'threshold': self.threshold, - 'min_confidence': self.min_confidence, - 'max_position_size': self.max_position_size, - 'max_total_exposure': self.max_total_exposure - } diff --git a/polymarket/trading/__init__.py b/polymarket/trading/__init__.py deleted file mode 100644 index d2d5ebb..0000000 --- a/polymarket/trading/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Live Trading Module""" - -from .engine import LiveTradingEngine - -__all__ = ['LiveTradingEngine'] diff --git a/polymarket/trading/__pycache__/__init__.cpython-312.pyc b/polymarket/trading/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d57cfc7952e9877cbee6362de13d7c924f415882..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 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 F`oD1oy1f7Z diff --git a/polymarket/trading/engine.py b/polymarket/trading/engine.py deleted file mode 100644 index a418901..0000000 --- a/polymarket/trading/engine.py +++ /dev/null @@ -1,302 +0,0 @@ -""" -Live Trading Engine for Polymarket - -Handles real-time order placement and position management. -""" - -from typing import Dict, Optional, List -from datetime import datetime -import time -from ..strategies.base_strategy import BaseStrategy, MarketSignal -from ..api.gamma_client import GammaClient -from ..api.clob_client import ClobClient -from ..api.data_client import DataClient -from ..utils.config import Config - - -class LiveTradingEngine: - """ - Live trading engine for Polymarket. - - Monitors markets, executes strategy signals, and manages positions. - """ - - def __init__(self, - strategy: BaseStrategy, - poll_interval: int = 60): - """ - Initialize live trading engine. - - Args: - strategy: Strategy instance to trade - poll_interval: Seconds between market checks - """ - self.strategy = strategy - self.poll_interval = poll_interval - self.is_running = False - - # Initialize API clients - self.gamma_client = GammaClient() - self.clob_client = ClobClient() - self.data_client = DataClient(api_key=Config.DATA_API_KEY) - - # Trading state - self.monitored_markets: List[Dict] = [] - self.last_check_time: Optional[datetime] = None - - def setup_clob_client(self): - """ - Setup authenticated CLOB client for order placement. - - Note: This requires py-clob-client package and proper authentication. - For full implementation, install: pip install py-clob-client - """ - try: - from py_clob_client.client import ClobClient as PyClobClient - from py_clob_client.utilities import create_or_derive_api_creds - - if not Config.PRIVATE_KEY: - raise ValueError("POLYMARKET_PRIVATE_KEY not set in config") - - # Initialize client - host = "https://clob.polymarket.com" - chain_id = Config.CHAIN_ID - - self.trading_client = PyClobClient( - host=host, - key=Config.PRIVATE_KEY, - chain_id=chain_id - ) - - # Derive API credentials - creds = self.trading_client.create_or_derive_api_creds() - - # Reinitialize with credentials - self.trading_client = PyClobClient( - host=host, - api_key=creds['apiKey'], - api_secret=creds['secret'], - api_passphrase=creds['passphrase'], - signature_type=Config.SIGNATURE_TYPE, - funder=Config.FUNDER_ADDRESS, - chain_id=chain_id - ) - - print("CLOB client authenticated successfully") - return True - - except ImportError: - print("Warning: py-clob-client not installed. Install with: pip install py-clob-client") - print("Live trading will be simulated only.") - self.trading_client = None - return False - except Exception as e: - print(f"Error setting up CLOB client: {e}") - self.trading_client = None - return False - - def add_market(self, event_slug: Optional[str] = None, market_slug: Optional[str] = None): - """ - Add a market to monitor. - - Args: - event_slug: Event slug (e.g., 'will-bitcoin-reach-100k-by-2025') - market_slug: Market slug - """ - if event_slug: - event = self.gamma_client.get_event_by_slug(event_slug) - if event: - self.monitored_markets.append({ - 'event': event, - 'markets': event.get('markets', []) - }) - elif market_slug: - market = self.gamma_client.get_market_by_slug(market_slug) - if market: - self.monitored_markets.append({ - 'event': None, - 'markets': [market] - }) - - def monitor_tag(self, tag_id: int, limit: int = 20): - """ - Monitor all active markets in a tag/category. - - Args: - tag_id: Tag ID to monitor - limit: Maximum number of markets - """ - events = self.gamma_client.get_events( - active=True, - closed=False, - tag_id=tag_id, - limit=limit - ) - - for event in events: - self.monitored_markets.append({ - 'event': event, - 'markets': event.get('markets', []) - }) - - def execute_order(self, signal: MarketSignal, market_data: Dict) -> Optional[Dict]: - """ - Execute a trading order. - - Args: - signal: Trading signal - market_data: Market data - - Returns: - Order result dictionary - """ - if not self.trading_client: - print("Warning: Trading client not available. Simulating order.") - return self._simulate_order(signal, market_data) - - market = market_data['market'] - token_ids = market.get('clobTokenIds', []) - - if not token_ids: - return None - - token_id = token_ids[0] if signal.action == 'BUY' else token_ids[0] - - # Calculate order size - position_size_usdc = signal.size * self.strategy.current_balance - - try: - if signal.action == 'BUY': - # Place buy order - # Note: Actual implementation would use trading_client.create_order() - # This is a placeholder - print(f"Placing BUY order: {position_size_usdc:.2f} USDC at token {token_id}") - # order = self.trading_client.create_order(...) - return {'status': 'placed', 'action': 'BUY', 'size': position_size_usdc} - - elif signal.action == 'SELL': - # Close position - if token_id in self.strategy.positions: - print(f"Closing position: {token_id}") - # order = self.trading_client.create_order(...) - return {'status': 'closed', 'action': 'SELL', 'token_id': token_id} - - except Exception as e: - print(f"Error executing order: {e}") - return None - - def _simulate_order(self, signal: MarketSignal, market_data: Dict) -> Dict: - """Simulate order execution for testing""" - return { - 'status': 'simulated', - 'action': signal.action, - 'timestamp': datetime.now(), - 'signal': signal - } - - def update_positions(self): - """Update all open positions with current prices""" - for token_id, position in list(self.strategy.positions.items()): - try: - current_price = self.clob_client.get_price(token_id, side='buy') - self.strategy.update_position(token_id, current_price) - except Exception as e: - print(f"Error updating position {token_id}: {e}") - - def check_markets(self): - """Check all monitored markets for trading signals""" - for market_data in self.monitored_markets: - for market in market_data['markets']: - # Get current prices - try: - token_ids = market.get('clobTokenIds', []) - if not token_ids: - continue - - # Get orderbook data - orderbook = self.clob_client.get_orderbook(token_ids[0]) - best_bid_ask = self.clob_client.get_best_bid_ask(token_ids[0]) - - # Parse outcomes and prices - import json - outcomes = json.loads(market.get('outcomes', '["Yes", "No"]')) - prices = json.loads(market.get('outcomePrices', '[0.5, 0.5]')) - - market_info = { - 'event': market_data['event'], - 'market': market, - 'prices': { - outcome: float(price) - for outcome, price in zip(outcomes, prices) - }, - 'orderbook': orderbook, - 'best_bid_ask': best_bid_ask, - 'timestamp': datetime.now() - } - - # Get strategy signal - signal = self.strategy.analyze_market(market_info) - - if signal and signal.confidence >= self.strategy.min_confidence: - print(f"\nSignal generated: {signal.action} - {signal.reason}") - result = self.execute_order(signal, market_info) - if result: - print(f"Order result: {result}") - - except Exception as e: - print(f"Error checking market: {e}") - continue - - def start(self): - """Start the live trading engine""" - print("Starting live trading engine...") - - # Setup trading client - if not self.setup_clob_client(): - print("Warning: Running in simulation mode") - - if not self.monitored_markets: - print("No markets to monitor. Add markets with add_market() or monitor_tag()") - return - - self.is_running = True - print(f"Monitoring {len(self.monitored_markets)} markets") - print(f"Poll interval: {self.poll_interval} seconds") - print("Press Ctrl+C to stop\n") - - try: - while self.is_running: - self.last_check_time = datetime.now() - - # Update positions - self.update_positions() - - # Check markets - self.check_markets() - - # Print status - equity = self.strategy.calculate_equity() - print(f"\n[{self.last_check_time.strftime('%Y-%m-%d %H:%M:%S')}] " - f"Equity: ${equity:.2f} | " - f"Open Positions: {len(self.strategy.positions)} | " - f"Total Trades: {self.strategy.total_trades}") - - # Wait for next poll - time.sleep(self.poll_interval) - - except KeyboardInterrupt: - print("\nStopping trading engine...") - self.stop() - - def stop(self): - """Stop the trading engine""" - self.is_running = False - print("Trading engine stopped") - - # Print final performance - metrics = self.strategy.get_performance_metrics() - print("\nFinal Performance:") - print(f" Total Trades: {metrics['total_trades']}") - print(f" Win Rate: {metrics['win_rate']:.2f}%") - print(f" Net Profit: ${metrics['net_profit']:.2f}") - print(f" Final Equity: ${metrics['equity']:.2f}") diff --git a/polymarket/utils/__init__.py b/polymarket/utils/__init__.py deleted file mode 100644 index 3c95cd3..0000000 --- a/polymarket/utils/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -"""Utility Functions""" - -from .config import Config - -__all__ = ['Config'] diff --git a/polymarket/utils/__pycache__/__init__.cpython-312.pyc b/polymarket/utils/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3c02af3a724ebfe09460ebff9e895bf3136ff628..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmX@j%ge<81UdP2nf^ffF^B^LOi;#WDIjAyLkdF_LkeRGQx0P;Qxp>;Lke>`V-#~G zizaK8U}#BZPG(7^f?H``a!F=>UhzvtpdL-eTWrqxd1;yHMa)31pC-#K_W1ae{N(uf zTWrY)36N-FPELIMN`}uMJAYZaSj7|+<)>wqBqrsg>ZVo{q!yLvCZ?2S7Uvhm6y)br z<|Y~RRh1Z5#jlMMC%4&LI0fI~DIn1M`UJY;4}W7IYr zQmN{taEfz^Igu!bNIg_N=2)qhQ72Mi)JUy*>MbdUN;&nt@zOD7vE+Z=```cl|9k&i zf2ppvBH)+czvh0dK#;#+rSQY@h5cKg@C;#)IKrTeA%VtG@HHk3E5^7Hg*q&Ot(f8_ z6fq#I>2)51wMm3AJw+JvYeP;MH>VBGiuJhF%_o<*<&;269G}Gfbdp|XSJ*C-6yVg|E>9M=vB;5$A=xExyDh*kSA6Fi^mWs+Qm?^i3x~xhesi zQVcHvAB*|!X&-aGvVX-0hsYveXh_@;1A~ei!C*!6`496Q=ez*kIbW;X(-EuovjCXY&?-|Vw%g?290ewk!@uhWo)Cyww=hf zGaY4Ylg6IPvq!I+PUdtO+pNt!o@WoA`>tYsTXgyDK9=bzGOaqM7c#7a>0{fL3{3x1 ztgy-B?dbvM8P%NI&+F$(_w{0e7Daps?9mXPNUzYsLsr6<1bT)2f)^gD&7q)g&QFA= z$tV>HduNC!NllY;YL&jypfhq$5#9jh^{B>?(aWl(Sas-ZBHqaW5sigODmoV;Rn(={ z98l@4Ct?8)8Kwx2Crm~nYR!RqtIqKx;rA015%Ow%tS+s#=nUPy;CRu_R#MZOd5Gx$ z?rbHsHk~(bz#H`vK5Crs5dk;3ZXR*DT*EH4#Y0XIF<+EAV4!yBU_UWSg@O^_AsC<{ z-Z;5#bPZor>&x`&sRL9r7zIJeSwMqaLhOoahgfNYs?SiEyd5JWQOZO5h&hOisMRGp zwfjJnd~1XXfl2Ut1F?bZxGqn+ z-GnE32^U#uV*Tu4mZht|U>tQC1qGF<3wJVUoGza`IN*Z#QEIiKD?S%Eo=D!uGi*Hj^TpB3A1w^hz;a} z8L4ad{>gVwez(=j_RrqguI)Co?$+9WtL^%=wo6l9e`mX)DI4|y0`C6~)k0B8aL`bc zYNeXXwjJ`ITj}y_OmDVkdbUm} zm}jrCB~zI(yr_I$DR*D~sYz+Qp)}synEG~6!EWxgoyu^Tg%{j&PCny)8&NvFO53fC zz@}TlZteCCWyg2C+g^FttMo$cR3@_J2Q45TXuGg8wml{fO)5Q88~)8J8TZ!b3O2P1 zdeXh)+;+<6NTqvX!?$@RGrBdTU=v5Td^98dgD=NkUU)P1YD~U(TaMgS2IrN&dotFZ zi7D85B>$*z4)frnACMdOIzT#N<17m4SJsM++SR zp}|jFj!2D znZ|z*@Yy#a=K7CNk(*99lg-f3=uVc9N#9kmi7*Q1cXuwcx--e*p_elGDr1MXt>S^`A=3W%^1PIN`f5 bool: - """Validate that required configuration is present""" - if not cls.PRIVATE_KEY: - print("Warning: POLYMARKET_PRIVATE_KEY not set") - return False - if not cls.FUNDER_ADDRESS: - print("Warning: POLYMARKET_FUNDER_ADDRESS not set") - return False - return True