From 3ef9c3f9efbbdb6d69467ffddc2d2607b103605f Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Sat, 13 Jan 2024 14:05:10 -0800 Subject: [PATCH] remove windows driver (#1793) --- README.md | 1 - drivers/windows/.gitignore | 307 ---- drivers/windows/ECUsim CLI/ECUsim CLI.cpp | 38 - drivers/windows/ECUsim CLI/ECUsim CLI.vcxproj | 178 -- .../ECUsim CLI/ECUsim CLI.vcxproj.filters | 36 - drivers/windows/ECUsim CLI/stdafx.cpp | 8 - drivers/windows/ECUsim CLI/stdafx.h | 15 - drivers/windows/ECUsim CLI/targetver.h | 8 - drivers/windows/ECUsim DLL/ECUsim DLL.vcxproj | 197 -- .../ECUsim DLL/ECUsim DLL.vcxproj.filters | 42 - drivers/windows/ECUsim DLL/ECUsim.cpp | 261 --- drivers/windows/ECUsim DLL/ECUsim.h | 50 - drivers/windows/ECUsim DLL/dllmain.cpp | 19 - drivers/windows/ECUsim DLL/stdafx.cpp | 8 - drivers/windows/ECUsim DLL/stdafx.h | 16 - drivers/windows/ECUsim DLL/targetver.h | 8 - drivers/windows/README.md | 144 -- drivers/windows/docs/Message_Size.png | Bin 57389 -> 0 bytes drivers/windows/docs/RxBits_defs.jpg | Bin 356832 -> 0 bytes drivers/windows/docs/RxBits_valid.png | Bin 114419 -> 0 bytes drivers/windows/docs/bus_init_signla.png | Bin 109347 -> 0 bytes drivers/windows/docs/connection_flags.png | Bin 57588 -> 0 bytes drivers/windows/docs/iso15765_ioctls.png | Bin 45301 -> 0 bytes drivers/windows/docs/message_send.png | Bin 95451 -> 0 bytes drivers/windows/docs/msg_filter_passfail.png | Bin 111538 -> 0 bytes drivers/windows/docs/other notes.txt | 347 ---- drivers/windows/docs/read_msg_flags.png | Bin 68261 -> 0 bytes drivers/windows/docs/reginfo.txt | 2 - drivers/windows/docs/start_msg_filter.png | Bin 71232 -> 0 bytes drivers/windows/docs/start_msg_filter2.png | Bin 70796 -> 0 bytes drivers/windows/docs/start_msg_filter3.png | Bin 46516 -> 0 bytes drivers/windows/docs/start_msg_filter4.png | Bin 46333 -> 0 bytes drivers/windows/docs/timeout_info.txt | 42 - .../panda Driver Package.vcxproj | 99 - .../panda Driver Package.vcxproj.filters | 14 - .../windows/panda Driver Package/panda.inf | Bin 4242 -> 0 bytes drivers/windows/panda.ico | Bin 97642 -> 0 bytes drivers/windows/panda.sln | 92 - drivers/windows/panda/dllmain.cpp | 19 - drivers/windows/panda/main.cpp | 79 - drivers/windows/panda/panda.ico | Bin 97642 -> 0 bytes drivers/windows/panda/panda.rc | Bin 5150 -> 0 bytes drivers/windows/panda/panda.vcxproj | 189 -- drivers/windows/panda/panda.vcxproj.filters | 43 - drivers/windows/panda/resource.h | Bin 898 -> 0 bytes drivers/windows/panda/stdafx.cpp | 8 - drivers/windows/panda/stdafx.h | 19 - .../pandaJ2534DLL Test/ECUsim_tests.cpp | 87 - .../windows/pandaJ2534DLL Test/Loader4.cpp | 240 --- drivers/windows/pandaJ2534DLL Test/Loader4.h | 55 - .../pandaJ2534DLL Test/TestHelpers.cpp | 254 --- .../windows/pandaJ2534DLL Test/TestHelpers.h | 48 - drivers/windows/pandaJ2534DLL Test/Timer.cpp | 21 - drivers/windows/pandaJ2534DLL Test/Timer.h | 20 - .../pandaJ2534DLL Test/j2534_tests.cpp | 1602 ----------------- .../pandaJ2534DLL Test.vcxproj | 122 -- .../pandaJ2534DLL Test.vcxproj.filters | 63 - .../pandaJ2534DLL Test/panda_tests.cpp | 187 -- drivers/windows/pandaJ2534DLL Test/stdafx.cpp | 8 - drivers/windows/pandaJ2534DLL Test/stdafx.h | 14 - .../windows/pandaJ2534DLL Test/targetver.h | 8 - drivers/windows/pandaJ2534DLL/Action.h | 57 - .../windows/pandaJ2534DLL/J2534Connection.cpp | 360 ---- .../windows/pandaJ2534DLL/J2534Connection.h | 143 -- .../pandaJ2534DLL/J2534Connection_CAN.cpp | 41 - .../pandaJ2534DLL/J2534Connection_CAN.h | 43 - .../J2534Connection_ISO14230.cpp | 83 - .../pandaJ2534DLL/J2534Connection_ISO14230.h | 39 - .../J2534Connection_ISO15765.cpp | 232 --- .../pandaJ2534DLL/J2534Connection_ISO15765.h | 65 - drivers/windows/pandaJ2534DLL/J2534Frame.h | 58 - .../pandaJ2534DLL/J2534MessageFilter.cpp | 104 -- .../pandaJ2534DLL/J2534MessageFilter.h | 47 - drivers/windows/pandaJ2534DLL/J2534_v0404.h | 428 ----- .../pandaJ2534DLL/J2534register_x64.reg | Bin 1068 -> 0 bytes .../windows/pandaJ2534DLL/MessagePeriodic.cpp | 30 - .../windows/pandaJ2534DLL/MessagePeriodic.h | 33 - drivers/windows/pandaJ2534DLL/MessageRx.h | 61 - drivers/windows/pandaJ2534DLL/MessageTx.h | 25 - .../pandaJ2534DLL/MessageTxTimeout.cpp | 43 - .../windows/pandaJ2534DLL/MessageTxTimeout.h | 52 - .../windows/pandaJ2534DLL/MessageTx_CAN.cpp | 44 - drivers/windows/pandaJ2534DLL/MessageTx_CAN.h | 33 - .../pandaJ2534DLL/MessageTx_ISO14230.cpp | 40 - .../pandaJ2534DLL/MessageTx_ISO14230.h | 32 - .../pandaJ2534DLL/MessageTx_ISO15765.cpp | 180 -- .../pandaJ2534DLL/MessageTx_ISO15765.h | 54 - .../pandaJ2534DLL/PandaJ2534Device.cpp | 328 ---- .../windows/pandaJ2534DLL/PandaJ2534Device.h | 95 - drivers/windows/pandaJ2534DLL/Timer.cpp | 17 - drivers/windows/pandaJ2534DLL/Timer.h | 18 - .../pandaJ2534DLL/constants_ISO15765.h | 20 - drivers/windows/pandaJ2534DLL/dllmain.cpp | 22 - drivers/windows/pandaJ2534DLL/dllmain.h | 4 - .../windows/pandaJ2534DLL/pandaJ2534DLL.cpp | 432 ----- .../windows/pandaJ2534DLL/pandaJ2534DLL.rc | Bin 4630 -> 0 bytes .../pandaJ2534DLL/pandaJ2534DLL.vcxproj | 152 -- .../pandaJ2534DLL.vcxproj.filters | 173 -- drivers/windows/pandaJ2534DLL/resource.h | 14 - drivers/windows/pandaJ2534DLL/stdafx.cpp | 8 - drivers/windows/pandaJ2534DLL/stdafx.h | 14 - drivers/windows/pandaJ2534DLL/synchronize.h | 56 - drivers/windows/pandaJ2534DLL/targetver.h | 13 - drivers/windows/panda_install.nsi | 214 --- drivers/windows/panda_playground/ReadMe.txt | 40 - .../panda_playground/panda_playground.cpp | 86 - .../panda_playground/panda_playground.vcxproj | 191 -- .../panda_playground.vcxproj.filters | 45 - drivers/windows/panda_playground/stdafx.cpp | 8 - drivers/windows/panda_playground/stdafx.h | 17 - drivers/windows/panda_playground/targetver.h | 8 - drivers/windows/panda_remove.ico | Bin 95950 -> 0 bytes drivers/windows/panda_shared/device.cpp | 169 -- drivers/windows/panda_shared/device.h | 32 - drivers/windows/panda_shared/panda.cpp | 637 ------- drivers/windows/panda_shared/panda.h | 271 --- .../panda_shared/panda_shared.vcxitems | 25 - drivers/windows/panda_shared/targetver.h | 13 - drivers/windows/redist/.gitignore | 2 - drivers/windows/redist/README.md | 7 - .../windows/redist/vscruntimeinfo.nsh.sample | 13 - .../windows/test certs/commaaiCertStore.pvk | Bin 1196 -> 0 bytes drivers/windows/test certs/commaaicert.cer | Bin 756 -> 0 bytes 123 files changed, 10489 deletions(-) delete mode 100644 drivers/windows/.gitignore delete mode 100644 drivers/windows/ECUsim CLI/ECUsim CLI.cpp delete mode 100644 drivers/windows/ECUsim CLI/ECUsim CLI.vcxproj delete mode 100644 drivers/windows/ECUsim CLI/ECUsim CLI.vcxproj.filters delete mode 100644 drivers/windows/ECUsim CLI/stdafx.cpp delete mode 100644 drivers/windows/ECUsim CLI/stdafx.h delete mode 100644 drivers/windows/ECUsim CLI/targetver.h delete mode 100644 drivers/windows/ECUsim DLL/ECUsim DLL.vcxproj delete mode 100644 drivers/windows/ECUsim DLL/ECUsim DLL.vcxproj.filters delete mode 100644 drivers/windows/ECUsim DLL/ECUsim.cpp delete mode 100644 drivers/windows/ECUsim DLL/ECUsim.h delete mode 100644 drivers/windows/ECUsim DLL/dllmain.cpp delete mode 100644 drivers/windows/ECUsim DLL/stdafx.cpp delete mode 100644 drivers/windows/ECUsim DLL/stdafx.h delete mode 100644 drivers/windows/ECUsim DLL/targetver.h delete mode 100644 drivers/windows/README.md delete mode 100644 drivers/windows/docs/Message_Size.png delete mode 100644 drivers/windows/docs/RxBits_defs.jpg delete mode 100644 drivers/windows/docs/RxBits_valid.png delete mode 100644 drivers/windows/docs/bus_init_signla.png delete mode 100644 drivers/windows/docs/connection_flags.png delete mode 100644 drivers/windows/docs/iso15765_ioctls.png delete mode 100644 drivers/windows/docs/message_send.png delete mode 100644 drivers/windows/docs/msg_filter_passfail.png delete mode 100644 drivers/windows/docs/other notes.txt delete mode 100644 drivers/windows/docs/read_msg_flags.png delete mode 100644 drivers/windows/docs/reginfo.txt delete mode 100644 drivers/windows/docs/start_msg_filter.png delete mode 100644 drivers/windows/docs/start_msg_filter2.png delete mode 100644 drivers/windows/docs/start_msg_filter3.png delete mode 100644 drivers/windows/docs/start_msg_filter4.png delete mode 100644 drivers/windows/docs/timeout_info.txt delete mode 100644 drivers/windows/panda Driver Package/panda Driver Package.vcxproj delete mode 100644 drivers/windows/panda Driver Package/panda Driver Package.vcxproj.filters delete mode 100644 drivers/windows/panda Driver Package/panda.inf delete mode 100644 drivers/windows/panda.ico delete mode 100644 drivers/windows/panda.sln delete mode 100644 drivers/windows/panda/dllmain.cpp delete mode 100644 drivers/windows/panda/main.cpp delete mode 100644 drivers/windows/panda/panda.ico delete mode 100644 drivers/windows/panda/panda.rc delete mode 100644 drivers/windows/panda/panda.vcxproj delete mode 100644 drivers/windows/panda/panda.vcxproj.filters delete mode 100644 drivers/windows/panda/resource.h delete mode 100644 drivers/windows/panda/stdafx.cpp delete mode 100644 drivers/windows/panda/stdafx.h delete mode 100644 drivers/windows/pandaJ2534DLL Test/ECUsim_tests.cpp delete mode 100644 drivers/windows/pandaJ2534DLL Test/Loader4.cpp delete mode 100644 drivers/windows/pandaJ2534DLL Test/Loader4.h delete mode 100644 drivers/windows/pandaJ2534DLL Test/TestHelpers.cpp delete mode 100644 drivers/windows/pandaJ2534DLL Test/TestHelpers.h delete mode 100644 drivers/windows/pandaJ2534DLL Test/Timer.cpp delete mode 100644 drivers/windows/pandaJ2534DLL Test/Timer.h delete mode 100644 drivers/windows/pandaJ2534DLL Test/j2534_tests.cpp delete mode 100644 drivers/windows/pandaJ2534DLL Test/pandaJ2534DLL Test.vcxproj delete mode 100644 drivers/windows/pandaJ2534DLL Test/pandaJ2534DLL Test.vcxproj.filters delete mode 100644 drivers/windows/pandaJ2534DLL Test/panda_tests.cpp delete mode 100644 drivers/windows/pandaJ2534DLL Test/stdafx.cpp delete mode 100644 drivers/windows/pandaJ2534DLL Test/stdafx.h delete mode 100644 drivers/windows/pandaJ2534DLL Test/targetver.h delete mode 100644 drivers/windows/pandaJ2534DLL/Action.h delete mode 100644 drivers/windows/pandaJ2534DLL/J2534Connection.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/J2534Connection.h delete mode 100644 drivers/windows/pandaJ2534DLL/J2534Connection_CAN.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/J2534Connection_CAN.h delete mode 100644 drivers/windows/pandaJ2534DLL/J2534Connection_ISO14230.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/J2534Connection_ISO14230.h delete mode 100644 drivers/windows/pandaJ2534DLL/J2534Connection_ISO15765.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/J2534Connection_ISO15765.h delete mode 100644 drivers/windows/pandaJ2534DLL/J2534Frame.h delete mode 100644 drivers/windows/pandaJ2534DLL/J2534MessageFilter.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/J2534MessageFilter.h delete mode 100644 drivers/windows/pandaJ2534DLL/J2534_v0404.h delete mode 100644 drivers/windows/pandaJ2534DLL/J2534register_x64.reg delete mode 100644 drivers/windows/pandaJ2534DLL/MessagePeriodic.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/MessagePeriodic.h delete mode 100644 drivers/windows/pandaJ2534DLL/MessageRx.h delete mode 100644 drivers/windows/pandaJ2534DLL/MessageTx.h delete mode 100644 drivers/windows/pandaJ2534DLL/MessageTxTimeout.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/MessageTxTimeout.h delete mode 100644 drivers/windows/pandaJ2534DLL/MessageTx_CAN.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/MessageTx_CAN.h delete mode 100644 drivers/windows/pandaJ2534DLL/MessageTx_ISO14230.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/MessageTx_ISO14230.h delete mode 100644 drivers/windows/pandaJ2534DLL/MessageTx_ISO15765.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/MessageTx_ISO15765.h delete mode 100644 drivers/windows/pandaJ2534DLL/PandaJ2534Device.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/PandaJ2534Device.h delete mode 100644 drivers/windows/pandaJ2534DLL/Timer.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/Timer.h delete mode 100644 drivers/windows/pandaJ2534DLL/constants_ISO15765.h delete mode 100644 drivers/windows/pandaJ2534DLL/dllmain.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/dllmain.h delete mode 100644 drivers/windows/pandaJ2534DLL/pandaJ2534DLL.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/pandaJ2534DLL.rc delete mode 100644 drivers/windows/pandaJ2534DLL/pandaJ2534DLL.vcxproj delete mode 100644 drivers/windows/pandaJ2534DLL/pandaJ2534DLL.vcxproj.filters delete mode 100644 drivers/windows/pandaJ2534DLL/resource.h delete mode 100644 drivers/windows/pandaJ2534DLL/stdafx.cpp delete mode 100644 drivers/windows/pandaJ2534DLL/stdafx.h delete mode 100644 drivers/windows/pandaJ2534DLL/synchronize.h delete mode 100644 drivers/windows/pandaJ2534DLL/targetver.h delete mode 100644 drivers/windows/panda_install.nsi delete mode 100644 drivers/windows/panda_playground/ReadMe.txt delete mode 100644 drivers/windows/panda_playground/panda_playground.cpp delete mode 100644 drivers/windows/panda_playground/panda_playground.vcxproj delete mode 100644 drivers/windows/panda_playground/panda_playground.vcxproj.filters delete mode 100644 drivers/windows/panda_playground/stdafx.cpp delete mode 100644 drivers/windows/panda_playground/stdafx.h delete mode 100644 drivers/windows/panda_playground/targetver.h delete mode 100644 drivers/windows/panda_remove.ico delete mode 100644 drivers/windows/panda_shared/device.cpp delete mode 100644 drivers/windows/panda_shared/device.h delete mode 100644 drivers/windows/panda_shared/panda.cpp delete mode 100644 drivers/windows/panda_shared/panda.h delete mode 100644 drivers/windows/panda_shared/panda_shared.vcxitems delete mode 100644 drivers/windows/panda_shared/targetver.h delete mode 100644 drivers/windows/redist/.gitignore delete mode 100644 drivers/windows/redist/README.md delete mode 100644 drivers/windows/redist/vscruntimeinfo.nsh.sample delete mode 100644 drivers/windows/test certs/commaaiCertStore.pvk delete mode 100644 drivers/windows/test certs/commaaicert.cer diff --git a/README.md b/README.md index 4252592a0..330a94741 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,6 @@ As a universal car interface, it should support every reasonable software interf - [Python library](https://github.com/commaai/panda/tree/master/python) - [C++ library](https://github.com/commaai/openpilot/tree/master/selfdrive/boardd) - [socketcan in kernel](https://github.com/commaai/panda/tree/master/drivers/linux) (alpha) -- [Windows J2534](https://github.com/commaai/panda/tree/master/drivers/windows) ## Licensing diff --git a/drivers/windows/.gitignore b/drivers/windows/.gitignore deleted file mode 100644 index d83d95948..000000000 --- a/drivers/windows/.gitignore +++ /dev/null @@ -1,307 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -Debug_x86/ -Debug_x64/ -Release_x86/ -Release_x64/ -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ - -# Visual Studio 2015 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ -**/Properties/launchSettings.json - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Typescript v1 declaration files -typings/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# JetBrains Rider -.idea/ -*.sln.iml - -# CodeRush -.cr/ - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# installer -*.exe -*.zip \ No newline at end of file diff --git a/drivers/windows/ECUsim CLI/ECUsim CLI.cpp b/drivers/windows/ECUsim CLI/ECUsim CLI.cpp deleted file mode 100644 index 6c8a469ac..000000000 --- a/drivers/windows/ECUsim CLI/ECUsim CLI.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// ECUsim CLI.cpp : Defines the entry point for the console application. -// - -#include "stdafx.h" -#include "ECUsim DLL\ECUsim.h" - -std::unique_ptr sim; - -BOOL CtrlHandler(DWORD fdwCtrlType) -{ - if (fdwCtrlType != CTRL_C_EVENT) return FALSE; - - sim->stop(); - sim->join(); - - return(TRUE); -} - -int main(int argc, // Number of strings in array argv - char *argv[], // Array of command-line argument strings - char *envp[]) // Array of environment variable strings -{ - - int count; - - // Display each command-line argument. - std::cout << "\nCommand-line arguments:\n"; - for (count = 0; count < argc; count++) - std::cout << " argv[" << count << "] " << argv[count] << "\n"; - - SetConsoleCtrlHandler((PHANDLER_ROUTINE)CtrlHandler, TRUE); - - sim.reset(new ECUsim("", 500000)); - sim->join(); - - return 0; -} - diff --git a/drivers/windows/ECUsim CLI/ECUsim CLI.vcxproj b/drivers/windows/ECUsim CLI/ECUsim CLI.vcxproj deleted file mode 100644 index b77937ce7..000000000 --- a/drivers/windows/ECUsim CLI/ECUsim CLI.vcxproj +++ /dev/null @@ -1,178 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {D99E2FCD-21A4-4065-949A-31E34E0E69D1} - Win32Proj - ECUsimCLI - 10.0 - - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - true - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - false - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - false - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - - Use - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)ecusim.lib - - - - - Use - Level3 - Disabled - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)ecusim.lib - - - - - Level3 - Use - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Console - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)ecusim.lib - - - - - Level3 - Use - MaxSpeed - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Console - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)ecusim.lib - - - - - - - - - - - Create - Create - Create - Create - - - - - {96e0e646-ee76-444d-9a77-a0cd7f781deb} - - - - - - \ No newline at end of file diff --git a/drivers/windows/ECUsim CLI/ECUsim CLI.vcxproj.filters b/drivers/windows/ECUsim CLI/ECUsim CLI.vcxproj.filters deleted file mode 100644 index ea223e30b..000000000 --- a/drivers/windows/ECUsim CLI/ECUsim CLI.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/drivers/windows/ECUsim CLI/stdafx.cpp b/drivers/windows/ECUsim CLI/stdafx.cpp deleted file mode 100644 index d4a23c3cf..000000000 --- a/drivers/windows/ECUsim CLI/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// ECUsim CLI.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/drivers/windows/ECUsim CLI/stdafx.h b/drivers/windows/ECUsim CLI/stdafx.h deleted file mode 100644 index b005a839d..000000000 --- a/drivers/windows/ECUsim CLI/stdafx.h +++ /dev/null @@ -1,15 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#include -#include - - - -// TODO: reference additional headers your program requires here diff --git a/drivers/windows/ECUsim CLI/targetver.h b/drivers/windows/ECUsim CLI/targetver.h deleted file mode 100644 index 87c0086de..000000000 --- a/drivers/windows/ECUsim CLI/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/drivers/windows/ECUsim DLL/ECUsim DLL.vcxproj b/drivers/windows/ECUsim DLL/ECUsim DLL.vcxproj deleted file mode 100644 index b9a085a6c..000000000 --- a/drivers/windows/ECUsim DLL/ECUsim DLL.vcxproj +++ /dev/null @@ -1,197 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {96E0E646-EE76-444D-9A77-A0CD7F781DEB} - Win32Proj - ECUsimDLL - 10.0 - - - - DynamicLibrary - true - v142 - Unicode - - - DynamicLibrary - false - v142 - true - Unicode - - - DynamicLibrary - true - v142 - Unicode - - - DynamicLibrary - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - ecusim - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - true - ecusim - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - false - ecusim - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - false - ecusim - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - - Use - Level3 - Disabled - WIN32;_DEBUG;_WINDOWS;_USRDLL;ECUSIMDLL_EXPORTS;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Windows - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib - - - - - Use - Level3 - Disabled - _DEBUG;_WINDOWS;_USRDLL;ECUSIMDLL_EXPORTS;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Windows - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib - - - - - Level3 - Use - MaxSpeed - true - true - WIN32;NDEBUG;_WINDOWS;_USRDLL;ECUSIMDLL_EXPORTS;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Windows - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib - - - - - Level3 - Use - MaxSpeed - true - true - NDEBUG;_WINDOWS;_USRDLL;ECUSIMDLL_EXPORTS;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Windows - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib - - - - - - - - - - - false - - - false - - - false - - - false - - - - - - Create - Create - Create - Create - - - - - {5528aefb-638d-49af-b9d4-965154e7d531} - - - - - - \ No newline at end of file diff --git a/drivers/windows/ECUsim DLL/ECUsim DLL.vcxproj.filters b/drivers/windows/ECUsim DLL/ECUsim DLL.vcxproj.filters deleted file mode 100644 index 299d65445..000000000 --- a/drivers/windows/ECUsim DLL/ECUsim DLL.vcxproj.filters +++ /dev/null @@ -1,42 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/drivers/windows/ECUsim DLL/ECUsim.cpp b/drivers/windows/ECUsim DLL/ECUsim.cpp deleted file mode 100644 index 19f2bf360..000000000 --- a/drivers/windows/ECUsim DLL/ECUsim.cpp +++ /dev/null @@ -1,261 +0,0 @@ -#include "stdafx.h" -#include "ECUsim.h" - -ECUsim::ECUsim(std::string sn, unsigned long can_baud, bool ext_addr) : - doloop(TRUE), verbose(TRUE), can11b_enabled(TRUE), can29b_enabled(TRUE), ext_addr(ext_addr){ - this->panda = panda::Panda::openPanda(sn); - this->panda->set_can_speed_cbps(panda::PANDA_CAN1, can_baud / 100); //Don't pass in baud where baud%100 != 0 - this->panda->set_safety_mode(panda::SAFETY_ALLOUTPUT); - this->panda->set_can_loopback(FALSE); - this->panda->can_clear(panda::PANDA_CAN_RX); - - DWORD threadid; - this->thread_can = CreateThread(NULL, 0, _canthreadBootstrap, (LPVOID)this, 0, &threadid); -} - -ECUsim::~ECUsim() { - this->stop(); - this->join(); -} - -void ECUsim::stop() { - this->doloop = FALSE; -} - -void ECUsim::join() { - WaitForSingleObject(this->thread_can, INFINITE); -} - -DWORD WINAPI ECUsim::_canthreadBootstrap(LPVOID This) { - return ((ECUsim*)This)->can_recv_thread_function(); -} - -DWORD ECUsim::can_recv_thread_function() { - while (this->doloop) { - auto msgs = this->panda->can_recv(); - for (auto& msg : msgs) { - if (msg.is_receipt) continue; - if (msg.bus == 0 && !msg.is_receipt /*&& msg.len == 8*/ && msg.dat[0] >= 2) { - if (this->verbose) { - printf("Processing message (bus: %d; addr: %X; 29b: %d):\n ", msg.bus, msg.addr, msg.addr_29b); - for (int i = 0; i < msg.len; i++) printf("%02X ", msg.dat[i]); - printf("\n"); - } - this->_CAN_process_msg(msg); - } else { - if (this->verbose) { - printf("Rejecting message (bus: %d; addr: %X; 29b: %d):\n ", msg.bus, msg.addr, msg.addr_29b); - for (int i = 0; i < msg.len; i++) printf("%02X ", msg.dat[i]); - printf("\n"); - } - } - } - } - - return 0; -} - -BOOL ECUsim::_can_addr_matches(panda::PANDA_CAN_MSG& msg) { - if (this->can11b_enabled && !msg.addr_29b && (msg.addr == 0x7DF || (msg.addr & 0x7F8) == 0x7E0)) { - if (!this->ext_addr) { - return TRUE; - } else { - return msg.len >= 1 && msg.dat[0] == 0x13;//13 is an arbitrary address picked to test ext addresses - } - } - if (this->can29b_enabled && msg.addr_29b && ((msg.addr & 0x1FFF00FF) == 0x18DB00F1 || (msg.addr & 0x1FFF00FF) == 0x18da00f1)) { - if (!this->ext_addr) { - return TRUE; - } else { - return msg.len >= 1 && msg.dat[0] == 0x13;//13 is an arbitrary address picked to test ext addresses - } - } - return FALSE; -} - -void ECUsim::_CAN_process_msg(panda::PANDA_CAN_MSG& msg) { - std::string outmsg; - uint32_t outaddr; - uint8_t formatted_msg_buff[8]; - bool doreply = FALSE; - - if (this->_can_addr_matches(msg)) {// && msg.len == 8) { - uint8_t *dat = (this->ext_addr) ? &msg.dat[1] : &msg.dat[0]; - if ((dat[0] & 0xF0) == 0x10) { - printf("Got a multiframe write request\n"); - outaddr = (msg.addr_29b) ? 0x18DAF1EF : 0x7E8; - this->panda->can_send(outaddr, msg.addr_29b, (const uint8_t*)"\x30\x00\x00", 3, panda::PANDA_CAN1); - return; - } - - /////////// Check if Flow Control Msg - if ((dat[0] & 0xF0) == 0x30 && msg.len >= 3 && this->can_multipart_data.size() > 0) { - if (this->verbose) printf("More data requested\n"); - uint8_t block_size = dat[1], sep_time_min = dat[2]; - outaddr = (msg.addr == 0x7DF || msg.addr == 0x7E0) ? 0x7E8 : 0x18DAF1EF; //ext addr 5th byte is just always 0x13 for simplicity - - unsigned int msgnum = 1; - while (this->can_multipart_data.size()) { - unsigned int datalen = this->ext_addr ? - min(6, this->can_multipart_data.size()): //EXT ADDR VALUE - min(7, this->can_multipart_data.size()); //NORMAL ADDR VALUE - - unsigned int idx = 0; - if (this->ext_addr) - formatted_msg_buff[idx++] = 0x13; //EXT ADDR - formatted_msg_buff[idx++] = 0x20 | msgnum; - for (int i = 0; i < datalen; i++) { - formatted_msg_buff[i + idx] = this->can_multipart_data.front(); - this->can_multipart_data.pop(); - } - for (int i = datalen + idx; i < sizeof(formatted_msg_buff); i++) - formatted_msg_buff[i] = 0; - - if (this->verbose) { - printf("Multipart reply to %X.\n ", outaddr); - for (int i = 0; i < datalen + idx; i++) printf("%02X ", formatted_msg_buff[i]); - printf("\n"); - } - - this->panda->can_send(outaddr, msg.addr_29b, formatted_msg_buff, datalen + idx, panda::PANDA_CAN1); - msgnum = (msgnum + 1) % 0x10; - Sleep(10); - } - return; - } - - /////////// Normal message in - outmsg = this->process_obd_msg(dat[1], dat[2], doreply); - if (doreply) { - outaddr = (msg.addr_29b) ? 0x18DAF1EF : 0x7E8; - - if (outmsg.size() <= (this->ext_addr ? 4 : 5)) { - unsigned int idx = 0; - if(this->ext_addr) - formatted_msg_buff[idx++] = 0x13; //EXT ADDR - formatted_msg_buff[idx++] = outmsg.size() + 2; - formatted_msg_buff[idx++] = 0x40 | dat[1]; - formatted_msg_buff[idx++] = dat[2]; //PID - memcpy_s(&formatted_msg_buff[idx], sizeof(formatted_msg_buff) - idx, outmsg.c_str(), outmsg.size()); - for (int i = idx + outmsg.size(); i < 8; i++) - formatted_msg_buff[i] = 0; - - if (this->verbose) { - printf("Replying to %X.\n ", outaddr); - for (int i = 0; i < 8; i++) printf("%02X ", formatted_msg_buff[i]); - printf("\n"); - } - - this->panda->can_send(outaddr, msg.addr_29b, formatted_msg_buff, 8, panda::PANDA_CAN1); //outmsg.size() + 3 - } else { - uint8_t first_msg_len = this->ext_addr ? - min(2, outmsg.size() % 7) : //EXT ADDR VALUES - min(3, outmsg.size() % 7); //NORMAL ADDR VALUES - uint8_t payload_len = outmsg.size() + 3; - - unsigned int idx = 0; - if (this->ext_addr) - formatted_msg_buff[idx++] = 0x13; //EXT ADDR - formatted_msg_buff[idx++] = 0x10 | ((payload_len >> 8) & 0xF); - formatted_msg_buff[idx++] = payload_len & 0xFF; - formatted_msg_buff[idx++] = 0x40 | dat[1]; - formatted_msg_buff[idx++] = dat[2]; //PID - formatted_msg_buff[idx++] = 1; - memcpy_s(&formatted_msg_buff[idx], sizeof(formatted_msg_buff) - idx, outmsg.c_str(), first_msg_len); - - if (this->verbose) { - printf("Replying FIRST FRAME to %X.\n ", outaddr); - for (int i = 0; i < 8; i++) printf("%02X ", formatted_msg_buff[i]); - printf("\n"); - } - - this->panda->can_send(outaddr, msg.addr_29b, formatted_msg_buff, 8, panda::PANDA_CAN1); - for (int i = first_msg_len; i < outmsg.size(); i++) - this->can_multipart_data.push(outmsg[i]); - } - } - } -} - -std::string ECUsim::process_obd_msg(UCHAR mode, UCHAR pid, bool& return_data) { - std::string tmp; - return_data = TRUE; - - switch (mode) { - case 0x01: // Mode : Show current data - switch (pid) { - case 0x00: //List supported things - return "\xff\xff\xff\xfe"; //b"\xBE\x1F\xB8\x10" #Bitfield, random features - case 0x01: // Monitor Status since DTC cleared - return std::string("\x00\x00\x00\x00", 4); //Bitfield, random features - case 0x04: // Calculated engine load - return "\x2f"; - case 0x05: // Engine coolant temperature - return "\x3c"; - case 0x0B: // Intake manifold absolute pressure - return "\x90"; - case 0x0C: // Engine RPM - return "\x1A\xF8"; - case 0x0D: // Vehicle Speed - return "\x53"; - case 0x10: // MAF air flow rate - return "\x01\xA0"; - case 0x11: // Throttle Position - return "\x90"; - case 0x33: // Absolute Barometric Pressure - return "\x90"; - default: - return_data = FALSE; - return ""; - } - case 0x09: // Mode : Request vehicle information - switch (pid) { - case 0x02: // Show VIN - return "1D4GP00R55B123456"; - case 0xFC: // test long multi message.Ligned up for LIN responses - for (int i = 0; i < 80; i++) { - tmp += "\xAA\xAA"; - } - return tmp;//">BBH", 0xAA, 0xAA, num + 1) - case 0xFD: // test long multi message - for (int i = 0; i < 80; i++) { - tmp += "\xAA\xAA\xAA"; - tmp.push_back(i >> 24); - tmp.push_back((i >> 16) & 0xFF); - tmp.push_back((i >> 8) & 0xFF); - tmp.push_back(i & 0xFF); - } - return "\xAA\xAA\xAA" + tmp; - case 0xFE: // test very long multi message - tmp = "\xAA\xAA\xAA"; - for (int i = 0; i < 584; i++) { - tmp += "\xAA\xAA\xAA"; - tmp.push_back(i >> 24); - tmp.push_back((i >> 16) & 0xFF); - tmp.push_back((i >> 8) & 0xFF); - tmp.push_back(i & 0xFF); - } - return tmp + "\xAA"; - case 0xFF: - for (int i = 0; i < 584; i++) { - tmp += "\xAA\xAA\xAA\xAA\xAA"; - tmp.push_back(((i + 1) >> 8) & 0xFF); - tmp.push_back((i + 1) & 0xFF); - } - return std::string("\xAA\x00\x00", 3) + tmp; - default: - return_data = FALSE; - return ""; - } - case 0x3E: - if (pid == 0) { - return_data = TRUE; - return ""; - } - return_data = FALSE; - return ""; - default: - return_data = FALSE; - return ""; - } -} diff --git a/drivers/windows/ECUsim DLL/ECUsim.h b/drivers/windows/ECUsim DLL/ECUsim.h deleted file mode 100644 index 2f5fe0f7a..000000000 --- a/drivers/windows/ECUsim DLL/ECUsim.h +++ /dev/null @@ -1,50 +0,0 @@ -#pragma once - -#include -#include "panda_shared/panda.h" -#include - -// The following ifdef block is the standard way of creating macros which make exporting -// from a DLL simpler. All files within this DLL are compiled with the ECUSIMDLL_EXPORTS -// symbol defined on the command line. This symbol should not be defined on any project -// that uses this DLL. This way any other project whose source files include this file see -// ECUSIMDLL_API functions as being imported from a DLL, whereas this DLL sees symbols -// defined with this macro as being exported. -#ifdef ECUSIMDLL_EXPORTS -#define ECUSIMDLL_API __declspec(dllexport) -#else -#define ECUSIMDLL_API __declspec(dllimport) -#endif - -// This class is exported from the ECUsim DLL.dll -class ECUSIMDLL_API ECUsim { -public: - ECUsim(std::string sn, unsigned long can_baud, bool ext_addr = FALSE); - ECUsim(panda::Panda && p, unsigned long can_baud, bool ext_addr = FALSE); - ~ECUsim(); - - void stop(); - void join(); - - // Flag determines if verbose output is enabled - volatile bool verbose; - BOOL ext_addr; -private: - std::unique_ptr panda; - - static DWORD WINAPI _canthreadBootstrap(LPVOID This); - DWORD can_recv_thread_function(); - - BOOL _can_addr_matches(panda::PANDA_CAN_MSG & msg); - - void _CAN_process_msg(panda::PANDA_CAN_MSG & msg); - - std::string process_obd_msg(UCHAR mode, UCHAR pid, bool& return_data); - - HANDLE thread_can; - volatile bool doloop; - std::queue can_multipart_data; - - BOOL can11b_enabled; - BOOL can29b_enabled; -}; diff --git a/drivers/windows/ECUsim DLL/dllmain.cpp b/drivers/windows/ECUsim DLL/dllmain.cpp deleted file mode 100644 index 69b58914b..000000000 --- a/drivers/windows/ECUsim DLL/dllmain.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// dllmain.cpp : Defines the entry point for the DLL application. -#include "stdafx.h" - -BOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved - ) -{ - switch (ul_reason_for_call) - { - case DLL_PROCESS_ATTACH: - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - case DLL_PROCESS_DETACH: - break; - } - return TRUE; -} - diff --git a/drivers/windows/ECUsim DLL/stdafx.cpp b/drivers/windows/ECUsim DLL/stdafx.cpp deleted file mode 100644 index b4056ecd0..000000000 --- a/drivers/windows/ECUsim DLL/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// ECUsim DLL.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/drivers/windows/ECUsim DLL/stdafx.h b/drivers/windows/ECUsim DLL/stdafx.h deleted file mode 100644 index f3a07375c..000000000 --- a/drivers/windows/ECUsim DLL/stdafx.h +++ /dev/null @@ -1,16 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -// Windows Header Files: -#include - - - -// TODO: reference additional headers your program requires here diff --git a/drivers/windows/ECUsim DLL/targetver.h b/drivers/windows/ECUsim DLL/targetver.h deleted file mode 100644 index 87c0086de..000000000 --- a/drivers/windows/ECUsim DLL/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/drivers/windows/README.md b/drivers/windows/README.md deleted file mode 100644 index 241d09d4d..000000000 --- a/drivers/windows/README.md +++ /dev/null @@ -1,144 +0,0 @@ - -# Windows driver -``` - ;" ^; ;' ", -______/\\\\\\\\\\\____/\\\\\\\\\_______/\\\\\\\\\\\\\\\______/\\\\\\\\\\_____________/\\\____ ; s$$$$$$$s ; - _____\/////\\\///___/\\\///////\\\____\/\\\///////////_____/\\\///////\\\__________/\\\\\____ , ss$$$$$$$$$$s ,' - _________\/\\\_____\///______\//\\\___\/\\\_______________\///______/\\\_________/\\\/\\\____ ;s$$$$$$$$$$$$$$$ - _________\/\\\_______________/\\\/____\/\\\\\\\\\\\\_____________/\\\//________/\\\/\/\\\____ $$$$$$$$$$$$$$$$$$ - _________\/\\\____________/\\\//______\////////////\\\__________\////\\\_____/\\\/__\/\\\____ $$$$P""Y$$$Y""W$$$$$ - _________\/\\\_________/\\\//____________________\//\\\____________\//\\\__/\\\\\\\\\\\\\\\\_ $$$$ p"$$$"q $$$$$ - __/\\\___\/\\\_______/\\\/____________/\\\________\/\\\___/\\\______/\\\__\///////////\\\//__ $$$$ .$$$$$. $$$$ - _\//\\\\\\\\\_______/\\\\\\\\\\\\\\\_\//\\\\\\\\\\\\\/___\///\\\\\\\\\/_____________\/\\\____ _ $$$$$$$$$$$$$$$$ - __\/////////_______\///////////////___\/////////////_______\/////////_______________\///_____| | "Y$$$"*"$$$Y" - _ __ __ _ _ __ __| | __ _"$b.$$" - | '_ \ / _` | '_ \ / _` |/ _` | - | |_) | (_| | | | | (_| | (_| | - | .__/ \__,_|_| |_|\__,_|\__,_| - | | A comma.ai product. - |_| (Code by Jessy Diamond Exum) -``` - -## Installing J2534 driver - -[Download](https://github.com/commaai/panda/files/4844692/panda.J2534.driver.install.zip) - -Depending on what version of windows you are on, you may need to separately install the WinUSB driver (see next section). - -## Installing WinUSB driver - -Installation automatically happens for Windows 8 and Windows 10 because the panda -firmware contains the USB descriptors necessary to auto-install the WinUSB driver. - -Windows 7 will not auto-install the WinUSB driver. You can use Zadig to install -the WinUSB driver. This software is not tested on anything before 7. - -More details here: -[WinUSB (Winusb.sys) Installation](https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/winusb-installation) -[WCID Devices](https://github.com/pbatard/libwdi/wiki/WCID-Devices) -[Zadig for installing libusb compatible driver](https://github.com/pbatard/libwdi/wiki/Zadig) - -## Using J2534 - -After installing the J2534 drivers for the panda, you can do... nothing. -You first need to get a J2534 client that can load the drivers and talk to -the panda for you. - -A simple tool for testing J2534 drivers is DrewTech's 'J2534-1 Bus Analysis -Tool' available in the 'Other Support Applications' section of their -[Download Page](http://www.drewtech.com/downloads/#OtherSupportApplications). - -## What is J2534? - -J2534 is an API that tries to provide a consistent way to send/receive -messages over the many different protocols supported by the OBD II -port. The place this is perhaps most obvious, is sending data over -different protocols (each using unique packetizing methods) using the -same data format. - -For each PassThru Device that should be used with J2534 (in this case, -the panda), a 'driver' has to be written that can be loaded by a -client application wanting to send/receive data. - -A lot of J2534 has good ideas behind it, but the standard has some odd choices: - -* Platform Locked: Requires using the Windows Registry to find installed J2534 libraries/drivers. Drivers have to be DLLs. -* Architecture Locked: So far there is only support for x86. -* No device autodetect, and poor support for selecting from multiple devices. -* Constant vague language about important behavior (small differences between vendors). -* Most common differences become standard in later revisions. - -## Why use J2534 with the panda? - -J2534 is the only interface supported by most professional grade -vehicle diagnostics systems (such as HDS). These tools are useful for -diagnosing vehicles, as well as reverse engineering some lesser known -features. - -## What parts are supported with panda? - -- [ ] **J1850VPW** *(Outdated, and not physically supported by the panda)* -- [ ] **J1850PWM** *(Outdated, and not physically supported by the panda)* -- [X] **CAN** -- [X] **ISO15765** -- [X] **ISO9141** -- [X] **ISO14230/KWP2000** - -## Building the Project - -This project is developed with Visual Studio 2017, the Windows SDK, -and the Windows Driver Kit (WDK). - -The WDK is only required for creating the signed WinUSB inf file. The -WDK may also provide the headers for WinUSB. - -To build all the projects required for the installer, in Visual -Studio, select **Build->Batch Build.** In the project list select: - -- **"panda"** *Release|x86* -- **"panda"** *Release|x64* -- **"panda Driver Package"** Debug|x86 (Note this inf file works with x86/amd64). -- **"pandaJ2534DLL"** *Release|x86* - -The installer is generated with [NullSoft NSIS](http://nsis.sourceforge.net/Main_Page). -Use NSIS to run panda_install.nsi after building all the required projects. - -Before generating the installer, you must go to copy vscruntimeinfo.nsh.sample to -vscruntimeinfo.nsh and follow the instructions to bundle in the Visual Studio C -Runtime required by your version of Visual Studio. Without this runtime, the panda -code will not work, so without this file, the installer will refuse to build. - -## Developing - -- Edit and merge pandaJ2534DLL\J2534register_x64.reg to register your development J2534 DLL. -- Add your output directory (panda\drivers\windows\Debug_x86) to your system PATH to avoid insanity. - -## ToDo Items - -- Apply a style-guide and consistent naming convention for Classes/Functions/Variables. -- Send multiple messages (each with a different address) from a given connection at the same time. -- Find more documentation about SW_CAN_PS (Single Wire CAN, aka GMLAN). -- Find example of client using a _PS version of a protocol (PS is pin select, and may support using different CAN buses). - - -## Known Issues - -- ISO15765 Multi-frame TX: Hardware delays make transmission overshoot - STMIN by several milliseconds. This does not violate the requirements - of STMIN, it just means it is a little slower than it could be. - -- All Tx messages from a single Connection are serialized. This can be - relaxed to allow serialization of messages based on their address - (making multiple queues, effectively one queue per address). - -## Troubleshooting -troubleshooting: -1. Install DrewTech J2534-1 Bus Analysis Tool -http://www.drewtech.com/downloads/tools/Drew%20Technologies%20Tool%20for%20J2534-1%20API%20v1.07.msi -2. Open DrewTech tool and make sure it shows "panda" as a device listed (this means registry settings are correct) -3. When DrewTech tool attempts to load the driver it will show an error if it fails -4. To figure out why the driver fails to load install Process Monitor and filter by the appropriate process name -https://docs.microsoft.com/en-us/sysinternals/downloads/procmon - -## Other -Panda head ASCII art by dcau diff --git a/drivers/windows/docs/Message_Size.png b/drivers/windows/docs/Message_Size.png deleted file mode 100644 index 3a20a2ef39fbdf5922e6a230ec79746d81c4c3b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57389 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 TA&2G#@Q;kdWAOsfXFmT2;F3Nr diff --git a/drivers/windows/docs/RxBits_defs.jpg b/drivers/windows/docs/RxBits_defs.jpg deleted file mode 100644 index db01f62c95dba3414203ed932a74688c24a2f910..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356832 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∋#Y7C*>IVjk{%XH<3J)J6;?>8BRDB(99Z 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%0D`wj55cWj!J8)hABTmZKqQIG ztD#t9DZF20Nv%7}g^K9ZPJq_O#{1fd++`Tfc@+i*7^Q(mwWRL__;HZF3Jl2PT>djU zvD8vmQlG?g+*_)@eG_3mQ+9K=~6>oqa4J<=&(3Z%8V}_tuilZR_nYzw_XdIHp!_N+1YKL z9w6Z{EE9$`wPzMZfisn5BNgCR+KK3;f?|yW&uC8nDqB**8Gj>c_n%eADIAw`)X(P) z9g{fpY*CXmZC>C1hya%X8)0Wqp)#w0U9b@ypVtQDsaphQw*#m9Q*)#t zo)s&bz1YQ9(#s>yH}WRH6G)wS6^$|HTa_E71C197mql(gO5P4K!|-eyn8wEkOHHpH zN>>DgU~l@Fcna(WHJLl!oTiB8QYPp`A{pixs!2Q7PR!~cCq>l!9AQZUc>MUK`EI2* z2<|9^CER88lxex>9a1Ouw5i39%zimXUe%pX+FO4uc;lNaSKQjT%j^^x7TALIpho=u z)xknX=K-UE)^M@>FlZRubA8V^8h^fxpJm0!0A#FYjE^7P?61-6bLXsOtm}TvBkg1j zz=25x_nmlOoy`hcN&dTPP$y{E1d}mZj*{{$NY6|%G%_Ge*+?qcl?PZZWonLitfitP zrxfPP>Ib*IA5n)Q4-m1Tdem&X4|OOGlWfj_mIRVIZ!9wn!sx_ATEFka<)2sioi9#4 z<&SZ;zYy$|P+}ihAsptA7T-YH<1EJ&H(C1Atj|gvCKVu>$UM4=RJm$XKS35j5`^!9R#bf7rig#0L)o=wGX1CTQ0-%jeguwM zey?~o9{SLM6eL!da3kYA&8&;a{aTCj=zAXj7}h?_rNgfAE&HWkTjjTs zT)Ad{zLS*PU|aXf>vY<`lc1O1^L-%p+qK11|XM(U8RhMZ7b|T zwbsBGd4dIE076TCHFKC>i+?So%y5Uz*m)ofsJ(H&>{^gT9XrJu=2#)*r zRmOj(t`%r&q7HS~i_&^xSPsQ2csH7GEXSPY?Y*Il@WGm5P)yg;T{IbZjBW)drM<&Zg1V1YBrCLJBgb|u>Dvi4*jt?lNX{| z^qDOv`FNbuXSNIbp9L&^XZg&QBMA|*IK<}>3o(`A-YHpzX25E2K%~a8S$s?zUp;j% z+E-ne{a5DXR=EP>>aFy&OqFA)#-e$kHHdjmDa-Rv%dYkO_0yva<7*SY*`7vBGCRYS zwPf%Ny8^@Vn)kvEnd;U8sbJ00#^_#YkaSd9?=Q()=m(65{{A!@o4b)JPhb71$M?s}(t?+4Gk;h}7{CEcQVLJ;?I&d-=k7E7W;ZVc;yd$h zjr#s(tAVwNC@q`gwhIxpL8l!P7F;B=%~Q5sE%Ijnn!iCSk^=ClQSd74$nfUG5r@2>!yf2Jb9-aZ*PJfYgi7EXh_ibqO3 z&eGHro?U}uD>lh?Jr>QwCfTHgquq*@HocDkKQB2(>qa0*;|_M^&a~SZnU;PBf#l;3 zA5xs+*k#fwmOARe0#74V%9gU~l0ulnp}qTi+vJk75~dlP6};kCTk_WW7kt-C`^;aO zCtlJ!Zmv*R-e>bXkPsc=7!f&rnvo@&ydxWnG|HW8@VVBK@a<0La#`0Oj+~Ez_ER{w zf)>Vy(>lJir&UK}!8Woo+soUk#3Ye*M*+Bv&GD(MaD}5jDA0{`3n}Br#%Z0ap`D<- zJ9lC^Td}VFL+@$l=;2AZ&h=+j;wl5qr**kB%PsM!(n;2U9mqgvpjEp97n+zH*F5xA z>llEIqV9c(c%_u5@?9k6Vd_Lrr&6$hjsFOaQ?xW-^XEd!_mV+SX@*UPq?R8#12tXY znF$Jl6?MNr8|7+ytp#A#B9y$OCo5_eV=E`74p=&)Xr=EpY+F$e z&y&p4qOaw64cNMyRUT%z+sNwf9xC26%T)l9H^JsOd|vE#t&>!(H&jx4uxm`H>NAC@ zD~1WZb#)vX+1#RA8{j*lsbCJkf(^tX=mq(M>)%+*rdpoh%npOV_v<&v1GpSaVuULq zwoNOoo4t||XfModP5J?QC42ii_ovTYAJ2=V+^^2mR-28RNoC`Djo~()RNUD1Au%Ta z+iYa>2YLh>?bHFQ5l5L3s^#y^R6uA`%q z&lBZEFMD!gu?w4Zb0oXwc${&c{uj{@D|HO7xdpT{4H|~s7jYKnQG>y?&yluWfnam` zO@;_ns#C3FgL^Z?Dz;Z z8o&YrAToZ53s-CDVOi1@@_?~_{LQ2$yAwlfJ~>WH?K^g(?K%s%9PLo@z-tk*0$B9u z2Y4W0g*|)e{s(c+g`c z8YbRh6G8VxDK2(@6xH%gT?$%ocMkpfE!@>bW$@$+HUY~3k4u=5Gde+H)xX(d$Lg`F zV-Fa%T*tmzkWPdI2y(W8&}76ar5?Fq^%RC%K_KDWp|&TQs4B*qy{b|aN^deD8+*3 zn0VUfO`AdQ5^+_}-8)etMrSWgx+N|*r*RZxFLZ2L* ze3buiDmP)TCeh3Gs848=NSdx|)4N}$XgGpzCPpaw;+0 zNVF)Vf5SuWl8i;0aUZ`m;1{RW&?9sGqjyC&_fhGH#;kP)s-js{)DtNlsaYa^s%?atcA# zU4Y3Gc(TWGB9J}e`1a(065FwFfuav?vauls+2(36r$sPH={p#q>W5apLvU z9kY5Vfmr$l#))|Zzwp&H;q$c#x$wemr&Mv|>6_jl8L<}6D*et>kgw?8fTMwA@@Kro zp5}$pK?{7`=Kjtaj&y+2>;a8P`wGet3`eCYI~1)6#hB@l2{9n9@%#yk$A7+5KRfYH z-i+Z?4bOdrxsNBD-c(i;wALf1oyq5m9sPQFP5;u>t8*~T@%S=|Z1xyhf}d&jHha5f zmJI;+06}vgP`t&yQW)SnK~1WA|0&s^$)zcd^zL3#%ShLk4demBZonljO_mm}yVoYXQ3$Mwp2?l+`Q<@q4{ z*^l~Jg4)JLWGOyCgYR|(!0@pVxkHGRyTU4r`J*#rrWOlC^RJjo<_J8qYZzkD2rKLF zRUFVcU#)Cb=lN&x&RMo&Y;01JzO%X-?<}FqWh_HU^9*Yr<1p@@<@n>lgm&52;p~jd zGhag`X5b=B_Pg=!;$Y+20k2q}O!dV8Pvhrv%@|8RPIFXydFyTRs!w~))5TjAP8)~M zvldcHW>J5**tdLHR>O=j=ZtySIGQ3&RJV zO``nMc_dGhp@yjnS*^+@8zWG$d?=yhY6Eq-qfLaC92;s;?B0&J6c}pM4Br|Mg`fTQ zO3ak&rQg$2eX}pGUHXF;%|6v<_IAq_J7A|Cwib3ozp^(2jM=fQG*H>$09Ff=xeEP+ z|C|Kr6cU-((BfZtZALpUd-9`#oZ%%upR7Bj`d6=dZeFrfRTaOP!L=J$JTiO}H7KLF zWhkRGYHq%;YG|HUVHdUnBq6%&23IDo0?LR1==mc}w`R|bdGhH=MhwBQ=LgYRG#=*F zeczB@`jyf6*QuD#UlkP45E4FNdl#a(u*1oZ0sqjOrK}w6Z#+g!YR_u3ZnRyej@e&q zsQd1>Pr2=PL2G0w@J1%sf#+p0=u{@Bj_{dU!Isx)xvk~0eRf| zW`jT3<5&8kT6iCn-Sen*Z|&E!k}hMS%x^YXBeDo`81G>GvQ3x~qk+J%9I`IJBn*52 z82wgGkQ1{EgJ_kh+voMhx|BesOidg1QaygN?aS}BP8TQ`zZSYk-RuAl#U6ww(<4q# z>-e2N2p|^0S6&Q`Cf~{Vs>~}u{pp(c)Y31%igR2N*(Juc!kG#c%|iJE`?(t6I=>J- zZ3h6+-)=qm<1DHU@x{=}mTDZWAp_``B9HhO_!+?)V>WR?6Ky>I7oq&p-tZu5;wj> z{8q!{IT}=sIJF7nBxM6S#b4wLVzlE*N||k!hY?9zKOm%nr$gR%uNZAgZFr?b+Z*4+ zEt_Q~S1m7j8X2OUDpL)lstuSjknanNOQl5x&OBQco+NlZiJ5B0q4l9s{=@(10U6#M zU^k{IC505OPCWLovD=YB__+G`$E?U^9>26Ex-X%^Qq+%-S#eS zH-F{_SB<3{{%B~a1BKbl)U7kjtweN-mE;c2pE>y+!{VaqW`798JTSgU{ONXd ztF3XYE`fh!@2_cF!(_$x&eCk~f<+!+_A37=BKg+`0`5W<+_r)2KeZ=?w4bop+%zDB zQMkAksbxXCs;JlaYU6gWje>kV^eaoDCS`qm*S-vUh;;FtU*<!N)NS&b65F4St@!cUnl*B!<`8 z`1mFLYZF(ZJaoD}R*>DMQR(^X!}AdrBc9YH-Z? zTO?)j`b-M5&i`lZ#TNYVzgzAbwX=mw7*0kLWN)Xg`( zDhm3ABP_7yz+lydv1(iX6>*;QzAbrq=kUk!(ZJ4u?HF&n;;kNb*+|LW(9N}wwXn^K z4LDzFv};_#-c;R=rM)G%Xj)HwPI%I1HaS6oeC)}Z5T9C<{pnQIP;F^q^l)BR0jcIn zP@ChcDlIFQQyvQfXIJQ>2SXE^%mFNb>pFs!ZG7Vt5m0Z(&bFb#ry5p%IkAin6WY#( zI@1!hq-e1n6m=`w@#mFwJoTJ!(i~Nn z3uBJhR_q!6GhqY(aZiQCVs1sbE#s8^>RyJ=>?rL_3(z`YplgTLeZpPRvW?{jwpgts zt>0|w^&6BNFY7LE-NLJ*HCZT0_wWlx=ppjL5|g_jOA)&_i6A}bD?E&9`?IZVP7oB% z@BYqyjTAm5)-u|8aq{ZDMM?eRyiTT}AF`{qovs)q1p1u-8(9{%T9z%~G&N!^nn%0= zHWOw=bacOV8n@Oo&T>6`-^LUEz24HFd@1z0^W1eOC6dvmDEFn3YZ=!0PVXeHIX`&1 z$CZZR)^>+S%TZ^cPjr4Pf z**@mh8<+q`##co2^M&Wfy{Ey?l_&Emf1QtCQyA<(t z&2}6h$OXAn!q4>OH0AGVfZMe{u>(Ap8EfgK???PUChaCyFRf-0y0=y##hy2w4yWfX z%1K6kNWbuD&n(UEafO;`;>`MdM3=%QS$7XVljwSS%rr4$ECaO+kiT90P#nM6oS{)< zo={hGU`@By$x%P@rIqOLp)jpom$Tkwk_9K;>p8#si&sTpf-|+iWE@k7+6{q6XcD|v z!w*nZc~wWXZS;-$FcW{{N!%=O#5-4cBrr59rH(%_WvuuOX*k*|7gXIhf-A#u>rStK zF8i}--|Lk@p@m!f6+((At}r7LM?vp}fup8W`w9cnaO?Dy1|4*{OW-lO0Ru#>27@#t zX8Pe*!Em*C1HH&4?*X{F)T2t9`%W&m@al`7A0PXp%T9N7G*^NpZy*ySMH-z8@EDlh zSn?e~-x^f!HUjO}!S;WZrw#k+!DqE&!g;8A9ZcC{D|`3&pr+Nq&Hd$h{mONQ1rei?ffObyR z7e|(EpL*;4^sSy#Y^2`Cc%aIPQO=^l#Y_Ii;YV51)Avjz%hQYMnQato(c$h-L?`}7 z_DpOyJ0B(?6hhrI8V|iMXbOxey+1^TAck(sP z2)DQAHQpvI^{tvfmYz4=Eq`GMQ%fzg%mCpdOylZ>o^E626-CtHb>vIUe;Z-)Z@Jk2{l#N_Z5MvC_3AKyJ-TCV!%+e8ze}nE zbP`X1Z~Jw;e33@~QJTKWQjX$I$M81dbMgzYUh`KlucHmX(=DX! zL{2d=AP1^RzU8p7O_qU~g?^#5{V~RENUJOpjcliqdS1xPHbjEU-W%wb7oL9Vym0wF zH?f8FaQV~*oO4l@S|$~`cnkY}G8%IhH@U6Stv#3BU^Kjxb=ZtpA=e_J+xU+Lk51B- zyR@%b{~{BSin*P8SrW0$jUj$1tj1@yHNt;Wk^3V=GIn(#5uf+ZMKJAHcbXU%=7i&?g=x-j>t=Ir9$T_|An?sGXGV{+>iD*! z^bk+St!qj~rxceR?HNN#K9p6-}Z{|Jp(uKtCV!Krr>ceY%IQ6~W_2`Wao_B^sY zf}I6*o>Q%Dm<%`%5;fHuJhq-@MVx{X zM)7@%K(E2|=r#(2MdZHCp4X-bQ%UsTPt`a^^jyF8MZMrIcz%W`(*4t2v1f0r`w|mB z*`D9halvq#m>N$Uuv><2Cr-Jd{-2-UpiOz zw={fucDCvjCQrvgwA`y$dfn^g2d6wqvD+3QP-jeb)r(k-bkD5HI4b)jb3P(D{AT!f zVUAjDu3v~*O>Xc=Ep9;kZqpsjF$r~B7f9@*Ijhr6iSm+cr>1`zTigbp1s)E{1#s*z7KNFDe~3QprJS?o%< z=!hLr5kDd;(){XupfiVV7f7%>utJPichG?FW57TTE?$3RXT(2mMbV))(ETCTY3I6? z!iA7~*&&Xc4cr{EhV8dZ$ew{y4ZNGyx?UN^PI>qYW^2|r(qw;H9x(zEK>k<~LED@? z%AJuB?;e^90kw#f+IGNT6*f{oZQhGT$SAjXv@4RgGQ&zSG1n$Ga^`I~`Svi?o9OX8 zVg+ueDaw_1B-ahseWqa{^8f*?6s;#{%RPwWp-QdzYC;{hdisak=-S@nE|}(*$ZnBX z;|2OFJBS5#-BdZUwcXJjKBz*+ukHv z(>4`$G;IY{$|LR6^_S*ebXKI+qwLITNazE~Qm}H@P%@PL=s3`Jxg5CJbv0ag#MMiH zqff}H@tJ&FL6Y^tJSxNJl%|x#pu$o~{~Tqk^o5_}&;{JiCLX0j__zc;5#i=`Bpn*W zNVu9dSEh-W9f*zHNiqg!o_O=@O%YQsZ^`iEZ?;9`qAd%p-@a{kIkvieyacMpmjuPg zii-UjCk3#cJ4h6foKw0Bx5_LjLg0TfX8E7>plu^b=Ib&Xv zsGsoSu4tU7@0mMnSD5vlf0UrlSia8T8X@B=8XEFCipM2x8S4Ql#I_?0EYqAN&JdiF zk-bkFdaJO>zIu>if^b*b7m(uMTKG}1c>Nk{3vSP@m@7-RpeyWV?V{;;XWTE_c}d^H z@+{op^M(i!5jvQWRT*kd<$mJ_4=^{hhak9s1Z{Mu*TZ-jhi0c}z041Poo4&#ZER`? zY4|~y<4!DRX==_) zo%k3J$&R&6X?bu~o$^)0AE-_clP)|k zeS8cqBI;!M!^X74#t8P4Zk7rdEz-G5-IWVAL!NVCcubJS z5dhottZ$k$xP-Au?R4h_$+nSpL1bM@cw!$A(PbTI)-DW8#vQVkSx;z5ZSO1Aj<^jy zLU7rZ7EKZYx&eRk&`(ZD{=xV1$*0p8bVyL5y93S7-E3Hw2&?h8M?fK-J1Q?y%4|}z zC$`cNE8li08x_-e0j?(V2om=UxdU}9FraH%gf>u=^^p-jDXV}>%#SodlzorZo;LGyq)wIXV_es^c7Lq&^pIl>skJP9A-NIb zSCI&{nZ}bpLrMP2m51cp-#n+f<-3eT4m0~Ivq%+(GWf5)+!MD;VDJOT1T*v-{W}yDp2Xe zR71HvnQ*dS)tea<2|5$eiHI|tNxm4WGqNkov3aM*qfAmyJ$W|9^&V#rQTbWW4%$Et z%dO_I5_VJ{Ofsa@qb*_VS_aM9ggUx01kx5;&ZyjGYPTPB5$LgW;}ll~JWk+k~i+qL{nEi#gh>7!6FOS=lCQGG^KM~+`n0oT3 zdOR{610uqX*b63EaTrs@D_$XCYvZ2DK<5cIL|klI37UYlX`M9Tbutm|1*cq zz-ONPXMOt5n_67^HJr8G4cA^W@rIMosUD;@NLjt>Edxalox^COwFbFJ=pO$YasmhTGu;< z(x%YrtNJcUcLU=dKPk_?^YRQYr=?M}jrpqk-~^7@P>b|fnS{2LxmHzj-N%*OerJe> zR^wKQ_HUUUAy)0sH%Q@b*;pIlL=EL|MMGh;*WcoQ-4ngumzun#U)pi8Tvf1Ds_Zgo zxOje4x0SD%IjV<>DWjAW?b&Es;OG3tzxn-3tnT>XcsICIt%*p)DI zhLUG!C$r`dlV#SzT;*C9+_2OQb#-7Zm4|5atk!cB|day_p9Hm zZ>i5nn_kPLxcgO>@4jfGyT*8DmiA2>fy(OYa@SD-@VAb4Td9Oj;aAWq!*nYf*SK#PuFOHz$=U9WWzznZ&`5vr=g%o^EtjM&8 z-le}Y3{p#uFh6pqYwFGCrIhqDZ4B9??-K))Eg8lYkPd~XQXn~79eQYvaPy#74=)y( z<18)YczO*jj$rYi1}fNtvoU8I&x}o)r|#HRMfi;mNsVjW31!CtO#y%GOSq!u1(wmY zprIuBOWCK@waVwGPfco1yonyta#3SVVj=QNU32r&$8g>WMf1aUir7g5^=YD8(7qK@ z+Ie?CW{4t--dma`;EhL!!Q3$|kbD-;VX;h|Y@*FX?ktG{p4~`uE`ZsvR*nn#UJ$28 z-I%+7+37az4)2Lqf?gJC>9$p$ipHnx5jLUqNw~tXTDuJ&Q;fC43)AA2{mgQ_(`&y2qe^xW)H8U^as+*#*I<@2)Aj>m3oSa)3H`OD!8R}zmw z9>hT2(8kX<1nuX%=sa4~qkF@^I&o@~*=!Xu#Uv08#tw*8{|Q(5Kb)@q6=M&G2U7h2 zlfsYXxuHXSKfZqg@Avy>Q7n{jH=fC@p$)ve7DZPMyBiL}BMv-|bw%(46%G5v-)tD( zB><}u;WCuaCeBEj6NKn8teJm#5bYM{`{7}8Say5EQlls;;dWJqJG=KqsnjUv)3 zcS-QyY-Rh%iF8+~u7-Sa7>Ds9sjmkRwA5fCLv;Yv$!u<0%3RX1&w2dgsdLtR9kT;D znau`e0%g+Px1KID-l{52S(>CqCV2Kk4q99AkR0FnTYYeJ*~pYH7^*$e)1%D+WV$Od zU09}h^YobEwm-Gd?nMJ=+qEO1Pc6x&)lZbUaG8+k2zu*YBww>7U<6q3@s zg4cws{IiF3>_Uo>957zfmZe(Iz(%UcIL>X8|7Jt5c$uQM14YD=;TkfBJst{*v0ya# zIKxX0+cx$nh+=oCOYuaNg)jsC$2hHKO5Z(hA7d{6Uqhi!u}8(ZsY zF*&s>iVMWVZ06+p)6~2G==)HMLKKon_HymWQ~2I;h6bjG(Xu)#jE2Be3b{j}YNT$! zE>j8&H;HaZjeQ@dKdrBKqUv4Z9~Ao~vGzR2zek%*(~?@|&{|G-%JNmh$8D7-eL*f~ zLH2jN@epO6Vr{U5R32=eSs_2?(!_L}3I$@aM@^{p$s%?umxEF~&KDtSTg1YxALu6H z(yqsOVpM7Ab{b7;dFxlNYg$nF@72#8*l*Pg_w=G3oaru7i%)22&Cn@mX!S3^hGiUR zDqBkZun|w*LB;xWL+cx2LP1ZP^Kt>Z092QH6-8$(gD&SMIn-oPEa5)0L4XfyAz z!fF`>*k5@(gt}baiKD^!&MSJ)n`2VwD)Voy2VE4kND(*VTUgfcu@B=uv$z^>m6~hh zwn6f4v1c+D} zMDiPIYvpV(9~o~4+Y z+hj>8E?OWI7ywE^x}JsGRt$c>M^_w%gP5;CQTGQpsdVr9~_ z`@T|QmF+ktDN0yjN(DZCGiPLTqeMr$4z{Zm%P65~&n9=V6Nl)CMj*E=Kd`{Mc1)2o z+vNKaxR^2nJ7drxT9sPbm32c&{iUVKF(AB|E4=DWx{J{^m6HipU2Q0KYLm*j)#a$^SGZ(IwiDSim(9K9LG(Sq}N>5DUx${_pKdXR2ruMQb=_f7K_uk?$B$J-Ks zOQUaFO&jj#rOiP91W~zr2zj>-^9h|-xu+GX$F9?+(`FH$Ru24YcoKD)B4n6?PNwDt z?%7oCAkTuYz4^x|^VVLSfiJDOqs=vSS)CK5dwZeOWV{u}Y6$H`JQ6agDG0RCId|Y< zm9aY1?751K8d^B>%d{LV0x*r#TOD1&Gxa)!{~&&tP+;n}@2A)uW(SvkeezuYE%>&7 zT6}k*`^1;Ij306QWD!z0yy4!i8gZkF;G-U-LbtCbhZR=J1MT5RvX+@88sI(~}6{74I$K$-F!D;fH)5Ox#RFx4d&F-uXNO37{|)r^WAONljX>&L2)HQHoYFBqHj}W92ea0@f-h zyg`MTxmWZXXd*|(Su;I{2{ymkw(H72MRaxjW+OC59C#t00fpEYfG7e8SVy1l!@4b% z4p1Ga%S5~OtgAIg!&P0}K#QFTJW&#L;1uNDa*_q4*6S^({$jEgR(|Cm# zjg3?c8IU}lI^T_AztNpt*%HTttJiX$*SWhO&&I3!LUnShRK;MxTg*ms2rhndQFx=C z5?-Oakf@&SmG;`h3L_p~zlb!+%F6;hM-3cqQ`b6?#tESpKCU(kl{iZbR zyQbKpSg0Lm28B!Z){WIGxtC=7G7UaIxf2IY`f`qqtWcmGmxqlp>9vugyH;g zr#3}VU{W8GL@2RgKgRGT7>@7!3e`q;VAeSLmC!K3bQsr8YNEmRHCz2bm1mzbH<4L9 zeaOP`xq7>+4a31}Yb74uNyad4cXzBES0?UPD!7`zB=Aay4I!G)VG|o$Tef*oTFSFo zb0FQ+IxZb4Zpge3HBtuyVGnBl``Ntq*bap7} zNc2gU^W5gSU(*uRZ&+U`bro7tUx)E6S9PAUw;D?arBg~*P194ojCG$hQmtYuDGFuQ zJA!gB_)VwA(T}NvN??h{ms0Pez4&j5{@ExZ&Q*}+L$6>G*9aD_Smf}YuE(9nzNve5 zwJQb9qrIywy;u#|0uQw%RE6EjRb`vOoK!vM;(_PMUeBx9M4v2(c%NkZlQVI~rATYd zQ%$LyHNNS(7zY1|*%agTNW%}o4oKki9pl(ME^7Z8djZ2$Zv-~40>Z!l=LB22eqA%E)=~mD+ha{zl)2^t%If#^=&r z%9}4s*eT<1+x~Ur0H+KlM*(MkD#Icxb-KU0t^Sr9{;bC3S^O0{MzTKD{}q}Mvwqp9 zY|{P3gMhy@AM}+9HebZlJ<<-~KJA9m`LvV)k{GgVZtVwz*b%c4e0D1h_SdP?DV0B0 z(#|FD)~TPa6dExZo^v%dX(gPDW2VtlMj+4%oUQlX%u4^0wp^{bjp*45k#_nh=@-!= zGXXKgH)*T z-j0$!?G{yzuD_%&l_P-cPgP2-PaWQ`9KwHVxVi6n#O=4htQ;C(uLU&hkTbOs6`}G4 zB=Cp(6U2w_emqRVJnZ8tXt*BXi@tlpjP2!#=c|T;7W|jfgb8fkm zk;6m3;QhC>vueg@Gue^8z+7r8{<=Jih9pmb`miPV-mCkmGz33P@vJ zNNjtvOhate-B`U(3HP6b4>mu8T&utA$bbAUob>ibmj#pzB{B)q2S-k321%`XnUs&Y zGpHDVo$2oG1)F6*>lV&g*BBw^=4+_NuaHue^sP!V@&#LOnNNCt{&bveDQjX3iw*_W zjn{Mi$(-(aXQ>;xbFid#xW}kLq*Sj@;>P>Os)HxJL(cxK?fkFTFkdpFC3JLrKUZ_A zkegluvF#A-s{QJi$!jjBU--1_7=SRo5^mjX;#A1-$It=~He)264=a#+5K(q)j1na@7o2z98yY zahP2Y$@sx-;~1@r$WxKVXMTA8_UR^w%{bnU1tHBkS5vK%&yTbW!W9O2tn9^>(k%@lW!WD3*I^#FnL}-Eb zU#5E3_=q`TrgH8!AiJ&=Q5>mZuDQ_1zyO)xN%Obue=@a$-$CgHgr8#!eFz+Fx4%w1 z4)a4p7{PRUheg9!3I_}XfAS_E+QpXZkFgk4OSA45s;gs30t#N<3}+$4fZ{6B3)Vag zaLLbl=iPkrgatyc`66MxMMzdgVUL3C3M4EDH*iO4h|di?(0|<#u0qp#k2V&oubPVhR(lvl1e~EgA-#8I zDp)xaTN`=tj;$|-uf(wJi6&a+#%_Ib9Uz|Y9mCuLr$`NfyF9Tjm92u5rcI<$mE)Y? zjehgd+xcyySO;(d>~DT=Fh5&gUr6L>#a07vw6c-MfZJfOpNQqz7Xgo`&^U7aP;}_2 zxeDX^qb=ODV?CP%-vBy1z%35+1~X-DKQ8^2Hqd1C!m{^FW1_$e&6Zlit4Gwl&KlAw zsM!~9%ga&|H+mdeW^Juy(S{2t5>$UXC(sQWs8%FEPy`IL4NQh%RD?dypg?x)4p&_PSFdTxwo%4mwM4t5d-Y zkjjC>>fhNj+7yWjo1+m+{8>*0;do^s?rLgXen-f>pp4Bb|LY~N*v3b1h(FYWIGzBBG+wK|rO0fbZ!3@88E3VB%uu)x&NE zO9~T82kV!xyS2C+@6W2O1gN(?d15ka=B*vyV5oHXfT%@pPHKt>;70L#C%5!DACQo= z+a}6WlXM96cFF)9qJq!(x$~Xscn}iP4`@=~>`{!p(6}i}v8(DUfn|}=$VVGf!!}fY z-@5*2Fu31)Yt`F3FoG~d48!}rDNu*D1%?K8wMvlm$Syop^;vj(N$P`$A1+x7T4s{3 zcfy_zT1&jJx@2&=Gywt^(}|QbjmjF|oO^^ashW+?Rg3%*YhYk&2mrTK!E-|z(T{L- zDMJf-owX#9^oZ8nNbr>%v6cZLBe`~8u3 z=R|CMV%d27Pn~bQZG7LW`GFgJ5eVHrdji&5bO*2sS$e+cRa4@=<(RdXRTUAnvUuyb zMN7bh!1gjohAwJp7ut==kBp%|sExVp6mE^7J1lfKZ%7CYg{y7d2sD0UAHqeGwp=tD z?xTVxi-Mn54E^4Xss`ZARFE*k(Nxg2ElMYIG&B1Xw69R+ zIt8{rt|(>b(w#enr*y_dUuG;PtX=~e3Hk}$_@?nPC3qPqE~=0@>WOn})D|7CLN(s? zBSWMB==0fBc&*i1LCUex-uB!z`hWufN)!%USe)2|Q2<4uujcTJOCLm@dF%rCS7oN6 zH&-@`(XWG5PIZTm&0o(+D8N`R|JfnOT*h=Sn1)eH7INR%zAb3e4cuLx(cZq_9z)?A z3L$S!MBn=DC2)SDm3w`XNBJEx5+L$}W08O!(?F<}a!j7mXW{)oem`|am1zAdh#|K^P^k{5 zs2(d%#b~TrdG$yVZzJu7BUpZIJ;3%tud1-F!I7mI6fMG4>y2jJFnggOD zLM9RNdp}CDho>Yvzg(o`ZbQvWpHCJkOv*mV7P6--UYt^4zX~UQnX&_Uj`^8^L&Cor zZ&l}j16yoWQ{pjd*u7M9OWJ#dX-r#S-(zc;j-R!f+Z!ksC2_yXoIHy zrdAUNo~Vgg1CBp%|s-{=gr_as1aW^3Jr|3j&o35f)50e!ht_`NEbR-+}hR2ekqF`z@itf75 zNl#j2HT0NX)Q*!$&)lTyiki@4uN; zO+lXC@N-}87N;{Ptf&(FRVu8G7j6B~x#r%-{f?A7%T)%ZZBH_-8VtQLVpJvQp+_Y2 z69wEB!}OP-u9<~ozF^WbbSiWP0^Y0Jo{Zh9?s|*7kv+J~BeO>$a}HHqlAhi^?lg%QN=NFH7RPlV^4xWAspW*HkJ5giLtdt}F}!7b?f6is zBnR)xXAYAD`5r{aCBekz*Rq4@g5YEg@u)JRBDx;@YV?hs zB8pEi`h5>1I5l_>aq~gK6S<6UDX<0xidLU>-WB!BMmD>2Y%)8uc8>|BRx*Y&gp zqIF?c2cxWls%kAebZ?KoLGhYBJ*ve+8KQ?Mg1)4y*3utiwvmsU^Cv7#7n?0fEy$^X z8fTwU7o$wECqNZHfeZ~s(KHrdDKVnN$YB_|?mG2+C zR(QAPOA!+a79_HeW!{jpR}M;e7MLTgmc@5ARk(58;r>>-u<}b$di4A`+`H1XZXaEq zZyh0_8l@N^HZ~Wf%27YEJR)#?V`)t52BmZYE0RNql2}tA+|Lfa`-LGQ9o+uYY4LSM zQQcxp+S+_hibO_4pv+IoL;PF{O?zSJjbqJBX+{XSpYBssKlEt)X7;Rp!N}2NIbS&u z8+K!hv>!kA6!+P45V@5A&1Y)BJV%HNlJXC~p6De<%cSuV9@J)wmlB3$XPPXN+{)iX zvLc4L7kSp^YCg22SXJBTsO4SV^1t|5bShV44_OdY0%HC!`gT(RwN+&@zP#AuJRBd~ z(=+%v{e;Pzmd$F|CJrd&FE$5<-|Bm!}~_BmT?}$YMD(3qLY?yScby)6S8hpZ7J8&<#+Y_@*NL<55EzN zx;_`h3Gxj5s#+~ z>Bo=nQ9obZuY@@$dYC26R6LNl9P-Cd!UzTsqU8@yT4ur=syrmyi}SXo`fWt9BP~q` z`AYOLLgRiJg@q8(b#{9L8`5DfYMiWbr?G@CZFyT48p0xLI%vt6hEF~tV*Q6|VO3)D zY+Sj-D`PP!Lflp|ckm#1CA;YpOifXi2_F6=F>`U$By5LRlrX*@T>o>&o|DW(SqRyF z;Cs#?dia{>krMI}H0SM0dK9Rchx364YIG3Y92LHNjK6;R!goO~25|iGrOC|g!vn2=r;phhZ=9uS*c*{ z`%;(%tjq!94qPTa4;2$D@F?2X>uaTUjR5hPVBYP>d*f57pE$Gk+17MZIK|49T{+Jm zv)k||BxZZ2B+Rt^WmtVZO;563WzaY#_MA&8ELP*KH$&U1>a8geI=^HFx_&nK!Q>v4 zA)2_IexJ#aWm_Yt;_ut{oftS8)sqd63Zl73KN}ZL@TD6bJ0x19&rGTFcTlBia${Oo zBN?}$Zxvs2PgD_S7oJ?ZYU<;bR+?q;Lhj6u@BEbNpGI*So+BYif?V(!T?yqwETMGK z3@ABZGnNVWnI1s38vfWf{G;?A>L&lmm{}-&%j1Rj9KXhObBq#+o7MCVy^c%6HxG+P z-Y(a_x#|gL%WWWDaA#S3Jum%pIcX!AlL_Sek?|GTl&<6m}Ax=c1`N?)0B}Nj_dis zw7!>C27W*n>58dyS-^zPP6?-0W46<1zJD2t!swD{x&*6#>%{!YDLRv0pqp-mBwENq zFUU62%gKw13}Gzv7IpNmG@4&4C7#fveU|bCBt$;p87}OCa(wZ4Vp2Q!WO!vNALoSp zK)Ds5zLX%)09V-0Lj|0yg_s(Z);F!YenB{(7QAoqYB_F!vU*#{KK-u2;RiIK7~a1O zD+Q6-^vdE6^)Ex_*rk8n{{M=K{{M^udyn&~A^jM($mh_`oZ!L|FknF?df2^Wu4TVD zhIDhded8lOmR_gN>;5K`a&P*cX7!8z#9Qp2^b`L*3-SML$$vCly^^sY(8<-x7AZ~& zNpeei+{h30kG`$FGYm`miX_|YTZo^g>qZVqTI2 zUPgwTqnpI1Ug`OCG9D5wMCsQc4^>grZJS)SyE>oulXH!%N2Yt&`bu7%3(g3L{N3+7 z_W6P?>a*Tlajuy!!Bccg&!-X9g7Xnz6EoL&Js#CQPV18Byfk!kmdg1@ zRg{q%FUXVmSfh?1`0@TDRAK@ z0hYZ)Z^rLOSMuGf9Yb?Quzh0q35a@4NMPhk-KpXa3_@;P!Y`IptA9Q!k@y;rkhnp& zNxEUt5XPERU4Y&nTanEB{cnw7IuW2U=FfzdT+Hu}bpFfgrLj|Ms8b{pVqgfIKB|a1 zcuA8dq$WEEQIzpa%`y>D!b@?4x?kypRcR;d@!7}SJz#CFnI1-l3G2{yh^%zLghZhP zCPaO82NXGgQ08H?b8arp-7!scOkE0`Wh9-?+QuxTb|eep-HGf3#}wyI+YDQ9EB^$| zi1D2nw)3H&BDSB7wSjT{7CoCxtr-Z$=T!i+#Pz11WCWnw#~UE)KaX)?(+i!#7qzf* zsIj7SOlNMb<&ISrE%nohc=Y5f2gP%Nn(NmGblc2tDSY%&!Z|T!ZGoPvVAZxBG}u;u4#bN~+Db={nuUrcDq8&NUq2bw|?^?Pis7G_DosDWE6D97qRe5z=R8)uuDm9?S16H>j zee5k;!&!~TZ%IJECf2qV>=XOfA?Our$}_52s65>vquBsqbfsp#oF;#@&~8M-8D5_o zQThm&?~3-0U@CoRd)QWSH)q{cC9M(pcP?^9{Dq}gaAG<^)j(21V-2g z)fY2DTUcp;}> zB|egedu^G6Y23@oCfh%+t0%8Eu$Ett4%)h`xmYn?T(|2p`5TQq`CY&@d?Mjhcx6LF zd_kL)0((5>{ai+hrd`a8LK`d?aI9HfKSg(6NGO@}{PA4!oRF*T{=yI+QV2JtvgZr# zcK}XSr6l|!GtWhI8Aw+tO(aGjz@tEfPYn|Qk;6j`# zivA$gBxnBwXE=d*17A;%mvI>Vv;jvzYb=DL(2{&(Si5WS{&L!$`240j(f+$2ZU zHx3gaH5-_E<*sA%`IwDe!WQdFxErzzd~K@#axoV0zEMdIonsIToXU`8#ZehMzzyFb~)Sm?MZ(+LScPQjyRg~dD@a+PstPD*b;DfzXxeL#ruQFyRkWvDs1YuhRz^2~zcwR$K4!1!bv@_J2e zG8RI-`+J?^%NuvIr)jV9@mEF!d_sk+gh6J-h|)YC7-YD~gQ^%aIH|Vs0Jz@6;$ve3 zj7BuhnNT>DPcB9e+bZ|u<^!5F@k4A=D--YAG+Qy1p1PAJV{cy2@vOxqsrg^ZFWtlC zUA4YyyaN-{>9e(|^T816X-HUbwC=?ss8n4e26kdeUa~i99kOSUKK>Hv9|foEe&=Ty zZ@o1~yGel{ABICrxK?ZR!18vVOhg8Jg)EKC)<(2;Uqv>bz6(ytbGEG0AJ1xV$^#OA z9@b4FCD2V1%a0E~Kahv>q9qNmw3^!b!rAb^pu=1`EV1=E1&tp{*h3&MM>>tSibu+} zpmV7Yw7I>?%jX`-Ui@X`3AynwJn#LF4TiJqy@V!K|7EzXrsgDAVXGo))M_$l1Z211 zX_Q^U4HEk)bsjP$$ZM*RLmpBBgPg)S}kaPY`<4455tuYborDo~$z_T^&+RYx$x zg(vbw)Sr)*f3j4U6jfI3GQGO9YzXTy7c-JlWJR7C;_zQSficP95{dMwQiyu&2O(~JRXG0e(RBaFR42H);VL|GDT~w zbZqF8a%soe2U4?G)#81kZ&rN&n%*@5Pj9@a`*0biOS?-z+tcw%EAyigZr8 zB%Yffz`61A%Duk%>TpuRN|yR~&?>kJ3R;I(4H}vUlyHv?Pbn{!!smFdXVvbHae;SU40T}C)V{D&|dIj!)V;Ayp8caZ)u{)$YGPr z$6faqtsD-a%Ma=P@E2mhbV0*tkH|GK)Py1xJaf@tyK)%t^nHd;+=~avE4(RnE8qGr zEB5kxID*zg=RgLK`iXTHKl42QYsO8B8IJBo>Ynh!EjoqInX(!|$6JCzZ0XRjxMHW*;Xf42~}^wn-EKT zUwwZqH?vaxLe0AhG)E$(%0mSS0xydvsxOzOR)k_Y%&e`~0_MLK%W;U_f%#oQyw{7C zST%=$UX2(i_Z@tl+gx)sEB5TNnB|dnt-~2a9sJtCB*a{8ru&YXkU!*1b~bjQuzE>B zAbT}^-$mW8v7;utf^Xg)W0gM~0>7){Gy%H2vu{sf>KqIXk)B|!HLT65GmLd}hzc+{0pK8tke4qf*YS{45nlV3~rG z*Xc=T?8#Z0c3gKFWufyj*)0`B8Xnn{LA7W(%f}k^PYAtjyXW8Jqf3w+&q=m@pA?1b zW>PN7Y;X=Lq)#L_NzQ@t2Ib)rlXe5frHNKt<$c&7%Q`676D(jrb2%=i$!vRFmQdYL zoa0>2Y4+C2$8TNm94PlvPLozPOcQ6&Rld}8_r?n*4XaCeS$YOKXudrh2#nhu&b_Z| zG49|}M2?z4y3U*2fQ*hBNW zmuIiTYgDQ~jxHwT*=E{rOkh2Zc{cWO4GD#E?+}?T}ZRN0_ z-?+*rVzp@<*QJ@|`)j@ie^c#dsJI5ad$syRvgvTvtPazjp44R2G&ag{oTB(E1(D@l zH?etKJVQ7t`2{6+9hdHJz0^{qn3j0V@{rtW!HD(ybutt^6r_df+SnuVoFE*xHT6oX z?UgClX7~MmX6i=3XQ>9))!@p)Vr3{8UJiuyzk%EypDsd91xnKXwER8@!3CC3QmGzv zZ2Cc>+x9pzw%KnAjLUM#!nWb9(f~Yj(z-43Ay85oJPcMG` zB4P33{#l+Cgkg|tzqX^rJ|IltksCaEb*j3&YE%nC!o)`2ryA3u=>9o)O5p-a+$`I+ zVtpY?#(eVq=h8k~n}T8arMb?sI!T?UgM>21td#hrElLtwn>S_cuO}pWSEDm?_H_5* z8*AnrCC#dTj@HF>gmL=lUG=#snQkqiNtytmkR`OqDx;JC=5|QDOr)j~^3DTs8K)#f zn`A{9Z<5(3l^gF(R0o0@Bz}i;W$~(Z%}6!C#P8$AyHBiC8~85i*lBJ;B>`LgV&y`| zyx>0($xdE$&+q><$Ni7VEer6|Kh41Yi!b@Fe&GN989#8__ry@9$CrA8h}q{KE<1fd z2iP6$5-{H#1wtPhKW%(l1GB?|eCD}r<-Z6x{T4{}cNP>kYX(l+W;N}gh`V(u%|bAq z{`@KRQmRM}rtd)O!DOp6MVYYteTbQMep@=R!c&`lLui-~bHxBpO$^ge7hdn;$#vaFc+vz$&8*jvzYm#X4(l!>U@44~C($0|uwr%GqrVLP?;u`=z2C4=d!YU1XkIYbGjJ@%CG|WQ!-8?wKC_}F^kQm_T<_BB zGUI*iPe{s{-X#Us2Xg*sZpBqXA%<%=P^DYeH{x5D$kqf=Il3v&VosrAECEF~%#*6( zHb7O4>Y)Lt4%H9+{!R7$pA=je`wBTUPT^DE(V-G1FM}`~p@I4&-46xl#^4|+w{FRA zk6!IeGcw)&GJQ%=Wk__Q;L0^$Zjm~}tU_-u&iD)qzh2E{?c>`b*4x=}RMwMU;lc3F zE7;(~Z5TmewbY@cB*{OS*Lw8~6Wi(R(Nne0)J?bVJ?TcZ8w^sITI?4A2QgkOP4zXt z_Nu}9J?vcF%)I9+pTkf1(~U|B(&-MemZ6-TCRZp{c+np11nuqm6Iq%o#pDWxaDF^U zvhcj4T}ScSmjRw<_g-Ng_uh#8X!{ae6a`LYa((-jPial3HvprmlowejhdHQ*IL)k6 zBZL9n{0DAONwdAW$qaShYoW||y_Yd=F^top$tMbwh({;Wt>cv%5kVg&gSbnk9oFzw z(4Q&dCr-+beumKSOk69S+U{nVH(K&wSAgD?*yusa##V%mtEq))(*EAJq0eDh=Naew_DKN+E}aZ0-1!Pz6i{jHO>r!y|g7MN5OXD~7 z2~WA|cS3ms{OvQfXPs?dn`zeEm8T9KM2j zew0dvB{MjQwxeiv40uT=)HO5cnrA%%^ia@cidajKC&26pu~P! z^E>%9iK$&Ifcj|&E(`?VdIILe`5$qZUK4?N={e3$<2s|XM?fkIlG0wrvW2wv27@qo zl??5C0JQHy=yE?3Fop82B0Ak+V=il@xFyQinfz(HK9L>>k&8%Hi6=rdLpr4m{r%+T zND!%%68D`mu+7cwg+hSs%;8nTwwJCRI}FDQyQ{r%es3g3@^W$up!#t}yP6X_XqR2QcC%eGIUJ_rL>$$D9+Y`;8&31BYm7_p)BoY`UlL8dQOcJY< z;zdypc>uT1N>~j5-R@q7F}Sw?<}04T?E|`{OD3_YsKiu-bfQc|BcR?tpwdECwnV+p zFTrG^)kb`$l#1x7FAq_}u$~OJG97=WGf4%e`l#R2=GKl}QyR+kl$!iY2HYAw_F@`MV7_*X%lw{xTp!w11wS;gknT5!IOh(ssM@A6zTQ7#L&&PEQ zUAJCSc3`O4cEO62l+iP#UJ+CE9>Fy!FYoZL1+}nb!klW-Ayz%Ex zdIaWv@#mwKjlrHZ7yBwU( z?`dH*A6klcYvM;C*m@9dBPy1vq?;B!BycH>?KaD0&+igRr%sajA{vm?;~0|Bu2#sM zkhT%un$GB9ZSJ9V?dvu&sTx9!TWtVyK(>?-uztj43}oD7IdcNNzBy3aRro>IuP?w) zCp3N}BVR+ekU4oG6(V#n=~my^xRi*s15vRvdzaBv=$d8ntC)aM*b_<~N z-ZTTK3ahNE4jgaQhbVx3fV@HD$et?kk<_1d=PbeGY7RF``}p^tzy2mPiS=2BLn^F- zVLz~#-5Hyn>UaYK;%LN;tdfhZgIS8<&Hb*Z=ZBev`3tUy)(ULR+@9CBg1a(%?jQ*u5xQ=s~6<1 zkZaNc>ua@ClNd{W{1|TH75&Hlz%;xLySo(STUuqkShuq87>lWiBc9ts7-fW(}! z4x6xzucxZCj!J(px`epub^#%p&;Pws`n#G_MT;$D1@F(!o+;7JYU23Hzc$KILDjLK zDF?qGVcl2bb27qO*66h$tmrFlzc>AB7~^R|5uK_3=p?OxJjMJCpQPV|pYB4(a;s8V zL^apLhO%q(MZJBhO6o>tQniv?H=KELryP+0ljdeYg12OM0mq2q@x^)jmB##Ht8DXk zSXm+I&uR5vE;X2`+`P7GSSOL`Wtb226h)Q?!I|3BB4V=Nw)|Jo(?9dQ_K5_O7?UE! zw-+oXBAJSCp^2SJBI1(<-!1{BnQwnwNCnGmJqD3o7J{c=k9^J7F*MB_^~1DyABNX0 zp@P?tVb(Wo`Gz;k08<}mt=ElC z*l$!-QEduFi$UPK(Nh9U&Ls6Ne}YOY*X-p7)?a|tv0b0CGUxq3Aw_B{7_e5>k# zk>4!`SJ|Ehati1v`=U8i`m}`EVqz!2&=PaU79Qfe3JwkjI+Y~7Mk}-;gOEO+;^T`} zyW!Cn=vbr9LiRoFcmdWE#x+}+ZkBi2oEsaoKzPf^=W-8c<6o#%?pMU8Qbos9`Lg@j z7fX7gqaL5rvWw(N&WN?hjhMaCr%4V8UTGdu=UTkeS_wL6=^nBCYG&mdr7pQO_we@# z9rX7jmueOBoAim^{p4{Ccou!B>7-ql4!tt|Y1Km?3i@L8m!Wh`Aao70bDl0MMuz-l z_yzEHj+v?WN8bFnQiddc1lvuWA0o=)`B=#U!_lmOPwQ5gtNX_nk2>_W$J7)?lAr$E zl^9^_d&|o2C~fo7zACLp^Y@Y2Pd2|jEono~Ib)Mxt=*lq9L!tnmCrdSFFb?m!@{tIawHdap*FHo7fvfx&Sv)L)9@VrAb4qkqDYxl9tFabo@1mJS&P zXs}nIG&y*#x@^lo@UuI=$J{cfZ(^f~x6ICPfk4?1Nu3;f3_TH?q9ZCh>7x#!Me95c z<@h-coW}qR%+peAR(T+c>wdy56#w8bfXF)?v~Z@vpA2Sx*D1=R>zfOWHg*82gS}n$ zPJncRwL#!uJ^!1`OgvnvFLLfoln)H)MywyA=+IFL^t3s!t-gSp(ocOrGn+&KocJC@ z3EDPigQR#o&;oLF8J^{EkyuA}uxwyD+l@(GZj~|ewn3M8#E`eM8x(}vLnB6(wQdh4 zmYA*f_RN4*g^r~-GV|vE(i^Ff$Ixc?Vow2-3GvjtBraYm(gs3sCtczRn%F6ant;L9 zo$I&klS(MxpHnTl9A{lohcS!Or6qqB&Ag-59VtOU1Z;}h7O|aUcQFMMa!7W;pal|w z=HfzP&P9Te{Zi1k8rloi)pdXe>S3ZF{hSdz`;@cgb52)>Q;Ts`x*Ue8Z`e>vvHD1o zfuzhwV0mBt#p0*cW99ve+%uT8&QMYE+wGW*+y!L(kzQxdII5O_VeKc#u&kSUaw_|Q zgAZhN7Ij$LQ>nknhY=#Gs&gELz}jq_`q9zQ2HoY#{XWG2;T1lZ48eDkl;agmu3|k7dKaf{u+xJMLTTDB z$@m2F%7^p;XO-{&-eawoaR5rb<$m?ao3GjFs>{~QgAxW+D?GUE1@^g z?^oG7>8xaW6aA)7Kl$Ih!E`FKq~ojM_7$`n02~3eZJy{J@6~D1cLoR7u%VUe+^#zYtZC> z)L_m3cM?s;!9uQP^D586dYSKh979$Z)bPH#eHaq8B5g0V`7@aG;b+b3y1sP7O~$h% z+ow>?=Z4wkW`HnlkF3dj6y}-J@wBkGp6*)7&Yui)$q~PL4;^HYIIA+;dNcYLzYN8Q zpvi0B@MSoX6`vf=cR8nx{jrshhU+G6{5;_M`%mv>2b|x$&c9&wdZ}#l58BiVAhvTT z>2)G`nCn!sv96|39}9DzuuAZrE3N8*mZZ9kYdDga$zI2W&CV5+QEL<>7O@(l%W`?P z?3$eylY9?*j)O$e?LOi6l3Y6%Uxa5^S(;UrnU-dH4U}mwHf1$5(bVc@)ID^#9>|xQ znfYWoEiZd??^vx@95@`UC0)>V@qL$r?IHj|$jOv=_l5d*7-*4Q+xgeN;%7H_!roQB zD|vT_3uIur`SMXZ3=$Wzn~mN@8<9cW?Zy?xjp)oEbk-5BX?jEJ0?m`;n9#}|ilDmd z*vAl*U+qg)F`A8{>WzZNd_H5H(*69L|I&ApAF0n1;uSE8{<+qA`+ttA}VX9_qBeBV8EGP6z8)%2DXbupSCr6XDVs|2dHOg7i7`l=2U*PYvS9y znxKrjE%H+JkrELDmWFCYQ(z=PJSO2pEAk<|*7A~SOgX@Z7uTC(AjOyL35h8Bl-ag{Fnm0Z&nWYst{`lq>Hd2g>r z``uMUfHB~}QzVO6QWdzS&3*DS7{eMVI{&*WS~1dm_&Lg6(VH-?p-lMfD_t3Dk(k)< z=&|Vg*ufJm(tcIVmGL#pvWAGNqN*sUiT0yF)ATH{ZXQH^0dcN`DxIHt`}jl9`d@~( zM~q#*Nt}+?PHu*d;%8#3#?;QClOczS=NsPsk}cRf&CZan-`5j6_}xG>`aA^D&jJnn zhV)c7ko3wJVVwS#lCExMEuTR-u)3z}cn0k!OHB!83Uam0j{2CU_4Yt`OiSW}%1+4Fya6pU zStVlOKIsQRwGnwhu-fk!Z}S6V!|k2cFXmfOY`I&IVZIRJYm#JJ;WlP4eqktu-d@$j zx18z7J~%IMZe8AX#&Oo(PM^V}C`C8TOy$0i-p=8R^i#_NpJ1xM-0bGz1gl|NX*1ut z!y;r5svZsl8Y-+5XIBJd9CqnQAMHli2G{5047u zV|;Tm-FQ-kkC`$dT!DXHLu2_7=ZbYNKLj*HM7%R7P!tw=z-`RL&Di2B7GX;XxAHVB zzD=C!6@lQ1Vf9E4!1~MsK(r{mtV*^Uqu0n4CTKCG(IXg6BE+8aG4u)Amz7c~NmMMc zPLu$gtvQ!wP5UNV&b7=QnzPfkYn*416I^SxH0g5?ZJYO70?fU!U^-7R{MY zHrtR!t$t~{7@537tHn&wtjax<0zjVMB=Zf4g8EJjNl60|Ns!ZxwRaS2OwPn*CIZv&@o z#`ndO&}y++Kb<^8+NMqAaxbX5jK4+6Eb@1Vk*6d^$&pJV~Yqfp|mv| zAR{)QE*)Q;tr3F%%kVwQksMEnC1qHSM=R0nx7$7W6`Mz%?+r0iYKV6TF9qYr?mSLK zf8_mqhKulRd#}MyK~f1p{1+%XUX-YKPYCF*cE+iH1lO?#{`J*as+#(+)I7$pOb%ibHfV+!-44LO&8K zy5L>-4iY7OSqJ9G@v#z?|8^rx?h$Tb$ihwa2CGB09CRFP$X3wngKV_dazD=xua8sI znJ@wp_SbdXI|(g~L2*f<_C_&QapGwR>zY6$nu1b?A4kOikJPbu*HL z^PixT!SkP|{K0`WcI>V|S%J(r=P@gQTKukg1yl+J4jP?0Fy4v+rVW_!h>!YyRD=vy zw)zR4nqP<27EnMl|MW_#8xmc zF7<6Q-LSlCTA-AymcEz>>h@s?@r-x*tJ{`|Vr0?zL#%F}cf}MC1KXdiyoyYAidqxYS zVW^s+r7TP*BRq~TTLoy(C!^Iv<(~|1ZtXWfTHK_(Q8w?prDlAcpD?_Knurz1HnHRG z_f<+tq#Znk^-F?gy=S#&8z+vXoKqStX1LoO_KHW7w>Eds1B-6yyGt5F9pu(4l-Py2 zgahrXbj_szFHK==L&Lq?lN^4ouroC1gA+=R-$q}g|6K1=+1NurM)rs*lGf*Ywd6q{+M|D%z({W^ zPeH{Ge-JS9hz_#l9iW@z|+XbEJ$tVLV?g!f+O7#8h;$pc_8OyHPRb+ ziKn@K&du9wLUo27kX!R!s;SVrtM|?r^kz@y>eFX!La3#cFBbOr#za%xl zxD9j;jCSiQPW0-mZhd+3&q~+EnYl)mj6DUn=xCNLo|B2W3z!;38x;M{fT|T#m2{oG z@F!<SE9|V=X|9rv>Nw-v3kGcFnm_RK-o`ybExCH_6o$F7fpV zI6D9Z?uyoP{$!>oeW$y#-bj;#&+sN5D(6`YOjS zh#OVfrGuK3Dxp@esHzFFo)Og;tbD||F+-9Ej%-PzS_~&ULJl}4Ex)47+irhfwCB^8 z_&)#Y%6;~>l+4dM-&$*MH2pofah`8EUSPf9BZyYWHgw}-gg|>TXOB5ODC1EW&_Q`9 zy62ja!cE{Ek`KPJ3Ym4)!Ok8}`s4$`RWnY8@?%`dH_}`3i4bHijjWN>&>STpSJtY? zL4>q6#(?;gUt+we0xXf76r*wqReutq%@x}Js9*;>*@1P(3Xh4P#Y&uFt!2}_*H$V@ z{H(Kq+*LKEM%UDWK5fFd1GaozsxibF-v}G&BOd%}|CH(=ILr9SQn+JQ-$)F>)Us|9 z`&C_rH+t%XYa3V?_etwAX|sti;|xf(tmTVH@?(T~Fxe%=#JvCt(-ODdVzaIxR0}d=w3>5Nk ztLoK3lHae8TVL6Q-PU-TeMzpj?R?SKpbGqC*TwV{gvG+o>WnQZr)(P5V=(EC#iBV@ z(vS(w*+MMMH*3sT?JETHz5Pse3iWMwycEe@z3#wG`a}|qe;No6m5{nzLOM69)0s>L zI-~q}1MhOVF6UWNGC#k|k^q04GQc@l{AI|kL%KDUW^IH~Y*g_JW-#t%!r3o(#-H{0m&J9i>u^TK*ESP| z$?WgwiQL+{z2$n#zHQh_&}h;c(1Oi2V_bCH8?tx^sp*eYI{v1?M3U^rTE#gHM?S;< z-v61(vhE=G%e7{-ZsckMM~3WS%5dIYJMw_%Me{-hTNEMJKisfC#AhzK(dQo`e5_S7 z2rV~mzkyuZ+m{IKAn$H7zG*h8SgrBkS0eEz7Yzwl*Aa$TDB<7%UW07y{dmpxf^r&& zoix`HIGpKKHqdI_?`iai4kw+go^{)O0~0lt%mIg1*{&n|LB6{R&8`bmkQl7syrc)u z-Y&(_aTJnUZzNgDfhHw-@N;wD$IkoorC*WrPngJ39ql5B18utthG670tNprhD%W_P z`|A?R+}TPXttH>ew?(pg6{0s3Uf7w+rMwYE1$gxnW`Z>x4N2YQu5d4d^2gH8pMuKR z1z!PhFyN(oz?%%l=iDzw<1S}))#vM-6G4X{gf@@pBRA?m*oOr{Z$XZc6-;0hXLW01 zL0(}^Ttc&KF+Jf3RVF7=zMY7@Vo@8EVW+%Qw3jnb`Xe+kboELc+%D-)piX#3d--6F z+2YE?D%fYW$)`?5OjqT@LoAx#rOuugbcm(OOyu+cGBQ9|7hM z?tt)eE#EKj6Vf}QSz{lXNLNzMgvtNh z^W_SSjqx^#$7)y|Odh$WzEW7nNwIGhZnQ6!=5grvVymeZ9A|`16=W^9n_FLU)tC0v zEn57`&=&G_#}^(Lo*=^=3m5h1yN)@zWVkgT*rml38t#aF__&s&RYElloqIq*J){rq zzeag`VY^3l8?JP0jCh({bF*;%@=?x_4_slAtKgzg94V)lUVBq zW&%OAwWYhd1I{ycwSa5g=V zwQQRd0HZ$>RGoM5(lFuxbmbb*7P#m>t7db61_ehHv{BV*HonOiMw&KZYGcxP%qLx6 zky%Kns%2VE!MvMk?d-eX)nYE53^WD^ zaGA{K=0`jk3Cbq1(F1Rnfn|0PDw z2NVzxkQ!P*MWn=ll+YnQ6p=1nLsMF4Aqs@hqg3f7)BvHQlt4lW0YaSj`_1{yxiR1O zIM&u$>mSHQ?&P}9Ym9UJ23?vW6N^EaFC36~DFTZf9Yr-6AY08iH65wGr{|ncjJaKMu(qd?#o0Y zUd0vDoTzVU8>Imo9V)SFLF`cz36s+?7i1)N&qOMwUUuJ_yq(Q-L6XI1B)$w3bpfZW zIC32;yC0;hzC4UKGqqTM@v6p7sAxszokUd&y2d>8N**ym7>}FlSW4G$UiK0j`ftXueYN&5dqFuYV@=>+{i2btO*?4;kCtev~iEfRv z2nJM(>8QY5pBAyz7fHWbrkW;6k*4a6M5zY7=J_-hiWpt>STjV2Vu|et2$Kjnt%pGz zv@!0s)Vqw|iIKu~d%_z;|1bqqp0e`Hjy`-lZ?S4tYH~VIM?C412yf18{=`8g!4I!9 zzVuz2-K*zX`a;00`r`IBd>Um_PC^^XcH*3)Y0ir{Zklula9wbW$rYoeda|HS4&D`0 zUZV?VXAU8P8Nc~>Q$MTzlOW{uR!fb0U)hOy%z?|N^;R#~cg)Am#9};VDmMfvKKeyc zuU>3wtq9W)_dCx}RS}hZ#8bL%)u50AD{-{fb908=Fj3p79Zi%!Q+*%EB~GLR$G_HS zR+ZkD3kHR0w=0S74~y{(W|n#7{RB08n&zT#=7N-N0Ccm-r-bIVLO1{+nbT zGY;e5E(Oe6KcpN0qCFP!d{Ol{&WPtpBMfw`-Z9(mw%N}tEaC6w+TvZM77zez2v(sx_}}@LQ#?E8u7zkWvG^RH zw!?=!55ShB8lFL4rUHss9jjjW+xd5=F}@2cTvh?P%@Y^va5dSiK`o^n>PPF|7H#ek4LX0~*r6fN%orG|$?|J#ZrsUr6c^%pH5uDC zx%bq_d$g2WU%Amev%gWMBj;LVF^OOCKmzyukT}6$4nCH3n0@GZwH>wlWKqs>llO^p z%y%vYA_i}eyKoi^HWTutdqHytFL{2nG%Fpj(Uvm{bE~8-?uzk z6HM7U7CK-zV+GQI$UjUPYmL5*tBoW)Xr&}T00`Uh$2Zv&{yyO2qhO;XVcjFs+7ynM zCUvRA^a_LdG&{G+?2OYZ#2d<-%Zm+S!#TQZ7`MVX30ei#Z^!oFTYQ=BeQI*Z5T0mT z6w1yBa&($g)06nIKr(wgTaYZ}?Ch%~u6^rTF!%2LsyD4;X<$SgJ#j|d3~eOuOP~+- zJN~1>(U!yubOK@Dt3i$-^uNj5v6xHpS*9bn1&E#P3Bt_SyeEyrIO3h)M7aao+F(Xj zL)GqB;oQttBDYWWVfI*_Tqcwa;TTk{Q3H=}IeU`M;0V#IZlSouwg|4NoV1TOfMSFj zz}`D2Q-XDWk9;`?o!nWvUe0PDeZSwxrl-i$X_F*>X-Yz|x2Klj;yXQTOR9-QUg*p& z_c?CrRsi}~=PR}+s$Q3uGiDf^Lm(Xtj(on|RZYKQO{RR324Y+%A2pSvezcXTmMn_Q zlh7YvyWRclF?*I{Q@WCd3!g3tm4^2ZO@q2Qz8V4Dat`PO#^mgj7DVS9T>fO*Bh{lD zsHu-TcA!^ur`Zwl=^msvib+WqbcHJ^s`dqH|KfV6`hr1E; zC4;SY=ar?H*aJO}gX;<%VX^J=mqB2Ct2TV=MCrCwk%%z5JW003j^Uv@VO3eVjg@oK z#f0dHHky@Ru^J=wi?+B4O=*CNGff^2K{e;|^H_W*pACmtK3`0_LO0lf2hY2ZNt=X- zzEd+F(%yI7O+jJW-u^wv&bm@E-AaVi4i3+~YKTQ-vs!0q?T4y@ z{vBb`6yvm`tMBPPmHp@$H`bOz$-6Hfqvm~1C~S|deJ}T&HyG=9+BVW!Dmg(Yw@A`K@G^4REH zwGAf-m}6AKZM#c>YWIaB+}_^jgT_BLSqg`9ul6I=UX+`O?|7^QsTR?!AH4f&mcQ-` z{5?S%jT-88w9A;s3+R&qsV|NZycB^4;e zZ2s)L7D)$^9xYnx9*F;jnuZ#$)Jb}pUzi$pM7WWgaXmsyFoU|;E%*d^y-~5} z$3I*hZ(0l8l}Ex?QnNyG@CGAb9{8p83T!>DDo4e)NU<*s+D}KRJI#s|rcTZ7+ir#Z zBp4m70l{&DBj|YC=KypENM#_Vm`K1>3=`x`MLrH;?|*VoOm$;g_;LHjKV=aGkzcgo zY!>L1er0{VF=6!7+EC1Z{5MMp^KmIH$HsUwPlucv8xWGyoWzZXzmjO8l7@<#{uFUV zF1@N4>!1iP_7`iNwE`^0?(3Fr$luF}eRA1geW_7#_!{ej5Ox3!v2cKCd~EKrzOu0V~NIG3vsN8Zf>qssH&!X=`!A+`NFZ0M>>5g9!}5~u z@oroBh=UZa@2wYH=$4>DyBqxs>jQ#5v^(AVTDZ*(tvymU>hf6ARXy<2%VzZ8$WN30 z(KvUK3sA8iKBa_?5+(69!NFX@fy8-fwUVCirjxnnc+MQ4U3kr>C(?c+rEU`S z9fP4xeXVU%<`})+irf}&XxOXFIJzuK=lDk0aEmhKN~+JoiAh&J&>L>VxBu6SjqTy} zHt4PIp;MQ=Bpxi2r1hRcdOIJk)9e-4YgV{AdZvAh%To3CF(bH4r{UJY4bFzTNE8PL z=bT@GQ8^Ce*Hq!xAfky;{4R4WjQztj(9`TzNU2W=1ww8};eb8(GC1=HcOsW0Oxs^j zcbSKGU5yI6RE5d-wSbHX6R-}5*8A|XGAX#3G2ueG_0Ckz>D#XEJ&8C;59RSpnVV`uv zdNhnDVC#}H0Lm=NO+Ib-Tz+&%*Q>+aDnYMTMr<$4G-X&~O5a8>5l#&{$zgDXyo_5a zpbdV{<)@t8?`r3D?^_2Ud`*IH**v+h#e5hO-X30Y&sfLXynxF&z@o-GzH&T~F#-_n z!{_i$Wz9BvvK7QK@$}R&I5Y1hV8b{>10V2k(Q~t4u@hT^`#OS5(jJu}nN7i@ZZ0rC z)R=57%@EeGkNUg&X<&DGyUM4;i(`rD&qh*!1nX~o>E!goKh+Cih9&kIPZHpd3 zl@!Mfjugv{G#_+@!#(&fgm9B9qvql9L+*^Tw1{FYz6{?#Oq+JSB`{Eol{})y`UNaq z@bJR&HT%;e4doN>9#oW@8t;sCk#w3T=7KfK%@d<8K3gl3=Wpa?Ymlpj`>hjHKkcm9 zb|r*yhYinhVsKaI0&LXG7Xp1rJO*P=y8;j}R3Q-1m+gZ}^pL8nq6P&g(vu?ER(uK+ zw+HNZu!cLG_ikm^%;*8RpshP)zZv_bbf#kZQ^f%?!23ASB zmD@Z)ug6QL3R-(+yf{V8+Z#(e`?n?#d%-Bg@bAHZ6NJWtE=u(RG^5<>m0Z&GwGoYU zwCk~7ZC=U4o&KA|-n>unDd&>P(%y{b^Fc5UIXmKP9>U+GpU2!BDfWCL17&0`M;Aoy7xnyi?d{A9&HDWcqQJmz^lH|0Q$MKuL z1|1cq$QU3fl)8~UepE=KQ8kyqr(immSi!342YrHvb&9k(@tfhCDR^R ztACiztI719Y!D_!CU%r0S}m#$nEk4c->=53llu{kz^i+jIYYNBExx zS|Etz^oL3K8zq&|-tPiT_^&?y3l@>CAsKMGjsH5JAm{zH7A8qvO`L7gR-NZ{f9ZPVnxNEf-6cLSa!;4gAdJe~5H49r2_AqSJu-O&us+mie)xIE z_9SMy9Jw-LzTc$XR;nL(r#xR9nv7Y!*U*LQu^g1tH8JX}zn@r0rpFQWOT7=OjnD`y z#UCoZ6w`7k700sOLq(reem=$s@dgcZEH_BL(U!|Q@sfrM&YyOD5FiX?T@;h6*Y4sm zl1t!>x)cBQxXqXFH`me_8mKBz`Z>|oL#8HYWz3WsX4!273s*G!4y38B1i&t9yPHPD z8alkfCpFG0qK@tNaZy1|Zh2UEBGg4fz8~E-d-GgYsi4ul*Ea@*e9U#-izK0sH#c+u zf~)LBye~355^GV2+wl#GCIN@2a3jTq(GjZmhe@B<^cqgq@B%W`$$MNb$19qSLll{C z9NE}&YGmVk*hPxaU>hX3-yu|bfa)f_uez3>0gAGT)873!$*NBPd16A(NlUQAmoppm zJV*iiHiA7uh|J#Y^J~WCjcMkg@^eLr5lb3*5a(k^Sl@Upb?65a>a=(!oO4M0QMuc- zr=Q<2-MZ{o`I@ar&G>(<$e>0;-qzw3g8vq6D4U` zCk4d;4?7WI83f0eMZ8NB2AeV^m}n?=S(L=X+N#6Jw5|SQP=UMRxpsh!stG|^W?M{G z%x*vpW%sS}E^Db-f~!Qw!}LE)uu`l)Lr4e>I|%HGsY!5JtB;G3kkTOZv!)`}&c_po3$VibCn}bA8Gja2IBgBRvjqu^gjzzK^J5$`JT0|8s5dVsyIgHzGzQyE)M9_p~GNH`XnPFF_@3eX*od%2sZ@ zqcDLZ(h3==a|MO&1j+G&ADhY74$OMx z>mQ}4J@_2I67$`;A2t@zF;Qw2f6|FO9<wIREWb& z`68}3b2=UvYYhM_)pHsslUnT~-u_`2LiT|vZ zY&(B@uM%h`BY%mEx~%4@>B6Z*>KP3LZx>Z&;h-i4nsr^4Xe+D8GUZZVx5lDkEXWj_ zKQu~HpXY@vM908inp_Tu<*(YX;y%}ewd%lfa(#)R=Lb1IJiC-AF_Kmw8Foh(gt;Jb z;FTjc*I&@*c4BbDYh|@vS!l{YemS#Sc0k_7ihnYR`Zamry2fqy&90$Ky+I2|Gr2eQ zI{J;Gb&9{se(tB)S3mK!+5)J`PxzKN=xllOwb%k)#qU8aD9Y(h7HCyh8$tS?Fb`?x z=_sxgb{+6!@6GSGhTkJW*9V!Iw?I1vM__CfXmpo6ki+cD__~<_THmuR%-HIlr1DSs zFJycnN6c$RHr=n_9Kd*b9B{vVA0Fo;mmpVGc-SA@ z0~73u;whyL?gNEIs(!1`q8%%})JcWPJgiLTxuKh5m|^mPk;0`A&hH*-8%dIn*&?d_ zWW%q>_6P2PAJ5-UOleBDp7KALYPK|5`s!X?6PmpZC6U+%Wht4YtH<(m!*7^jhI)va zib)5y_9ixnWg@b2d6eK)&-HridCaE*7nYT(9@!s11>}n!k7Tc?o%SrNO##EEEhko$ z3^0NPaaCAQg`**AFDT45M<=Nb9)rbIq1*Vc&ANe(x{{h$P{3>Rh!1t2<3Qn(xs{Y@HF{-0~`J@5@S*Rns-gWuDQDt}U4S!J~MLueJZr0Sa53|?1y9q&T&65W9 zqlYzE$+Uv7?kSX?k;6E?G>^e7Mea3?UD6}Z0^Xz+h3iEt?WW8XhmMlME>3;Jc7gc6 zdh6rnPv=4qZ*nZgZ{pWN^P8sqs=!9iMLP$tZv}cBPYE?{21Rc+le?bM49Si}*h zwD3j41ak{(J8z-c(LuEm)QrSq3%&&(ux0(-FS@BsZk_i`AUlQVU4OVNr?N$k!LAid zaK&RHNG7E!%tih<@DEdWUI<`%e^mvNa1eVF8V!DQZ1{)CFlOy}m>4`9c#S3S#}g$- znl6%ee>mKkpr2_`8uC4!*7tNV)T}l6f=v5+^zPe7o2v@9c|SUXUY(hbz`rkLw(b&Z zvD`kM&2t$OgN9L!+yg%vc$fcU8oL_u^#Gn_xdRQ+hhcsCn*=E4ZFv|O(jD@4C;XC7 z<5-jI0#wr?&X#fuVcDO}dbq*;@Kut^opfyJhmteWeakn($$KmM<7jmOB~kRYVUFr_ zjhXw&Z2CTCqLe#rZ78Ctz*HYNghlmL4|@?RFoTopqqNYjB%FsM`>e4o#1UvYz?;-) zPd%|=_mXbY4~dSM$aJJ>Q~qwbQqDkEX4eZTK3&GxHFjK5BhboB+?yE*3Dqau{z zJhU5!nHy5C)+%*@Z5cjMX~BvRjq#)o_@L89QjE%Y^}=9uuFzPBYB3xNq1r+_I^F@7 zPfgj1*TX=L;jd@smmD0#eUQ3lNZi~m*3Q!d32;!wts=!6b(-Pm^{(Z)uDOJ9K&%L3 z9;gm+qQy|ocf7HmoY`P-Rg(v)9!dF+QzZ;!G>6mP7ZBD9`d)x7vy_CJU(1QL-D@34 zT`ext#RscHSGE<#GP+g$lnU1eFFLSuNa>rWEZdPV`@>SiOfW|C*=uM03e<8!L_udo zg~~O(bM<8+Ts6nZT1W#HKgVQst-AjyH3M>TwFx~H<;dvLya``_STb}@g!E~_NUwwc z6h^rwK_k@8d}w=9p7vVmX%m+JWkalg0-JZA>8(>Ui^cL*{5PW8dlw?{Vfx6M3Je0ctYXhXn{e=2; z&CT=7mph+|6Z8-x4J8(U*OM!Oyku0NH@>~4eM5gQtvJmL?2v$6_5qdT-VAUl{3R*@ zGmtfh?qM4}6~FA~CHf|KI*`NA$N(QlpvuDzT#t3##Gt^cX)`Py9oU8cZWv3QQ4h@NHr zPCc$lgjuAxuBAXf+t?ThHs)A#{L#WJjXR-vG{K6>{F zf}zf6&*h=rm~WO{Jojn7zR3;p?AtmTK5yeG;Y#V@nH+L{o| z3W)9zI9gz))>BEx@8UmAld;8Jbs-Na+ii2P+)10I<#gGUfu$c}OVPDo4b{~*Kgadd za^@PF9WKK+@70)cW*W_lT<|S7U{r!mJp2(y67U~-YJvvg zpoKBYnZ#()aBSCU@>1Rj5V)Nl*mNY{!!7+wzJIhV$xx=*Q8j53lpy|Cq{Yx?h-2kL zl&ixXu=wKE#M1=Si@41)azU~r^hQEL;spVw@qnP1g*#D>?U6{NjgR3cec#}c?S`)} zo*!?cz}^PeKn&0sya^W8vbh7l5fE$|=G$cKN`iT^j9_CHpI|GNV4f4iIcZ$3#a6JWL{#X6|fjqooFcJk9Kzu5_fQ)Otn zQm~}jn-X7F{rDVa6faHqt4qjp`P3^GW#k6U&JCK>jZl_XYO!;@m?VuMjZ=)_qp(IK z*d311qt<4fZTGfc1LoMuy~!~AwPy}8_h0sSFeS7lXUDD;iE6uB3iLHP%*70v8a#Es zGFU+D!o!mPZ;y@TjSZ(5q5X|lwnew%&HT;Iid_Yp{^V0h^bbs8$8G^I{T6s7c4!o;WQq09$4bn{6|v$am!sgFn2^1_;`t{ z7j@AEY6*H%*Z$&C_};FusMWm|JJq8WE3PuTG3(~+DHZCu>?1lzP*x7EwY96n`tRaR zWMuIW*{A;p-uJ&A&cAyA{{|KL|5^k4nCpN1t^7auIsH2UhOhkZ|9=+PYd~ln&Y_eE zYWO#rj&Nhi@7zlxHP;t;!_>JcBx#ID#;bS4$-YRHM{4!FwIA$Oc*R9WfL%DNvZiNC zYz@l#3e(#!(=#Uge}mn6;>EPHYRY^Rj!N3n-KM&G!@8p*;4k{G&Vv#|6e~kGMrG8l z7wP!6we#Jo8}-=sJ+Yel5Kgoo(dZt_P_O#y-l;R!J78ugB`k9if<@k=bk8ePzInp2 zy|qw4$w3@%BzIg{TGI!S5iEP1!$8f^(g7R1I1*F!$#+HNdwxWsdgw2lQZ$2XsdoKob1P$8&6A zL(2lPPo(;JI1?>y;TGcoSvc?60TpOnBxj)FWh3P4GA&$(%3sY?>)w8082)%3@t{5T zZspyu%`d$!IN@ryX|$>#U14;BznGQn^A@rXG5u+W&HG_cn>)O0kw_f9jaVtP(AE}Zet9YL_NWf>opn8NBs|*;*Iu5llcdw^H0v9-+5`+oc1|MOP+kwi-QLyc(mX32_SMo`zhr(UOxbkgcie z`|^DHExVTAht#)U^ecnBVPeLpn#dXF@NbkoJ9(6ft1 zj%`6v?I4!(h^&GXu>v9C81j#ooZY%-E?ezH^2*z$)#p#!*%YIEC-h$Bfw^T@)7*nq zVh1K{XXX7WTilAVCd)t!Zp4o6{WCybmHs9|4d+hgZbkoO*7eDiwNX@zE^^5BSPzkaU`05~_g06G^kuEJ z)Si?W+m|Uc1`9#Dff)ylkg1L{?!Sdh#JTdv20fv2J4S>tZScuYShW&%E$2{LMQa&J z;;hf!?W}N+j3b}d-aaj$q$ve8^&TtvQgN5i(m!36SV;`s1KlqkEot>0F$2|79Xwys zv4`$XNz>6!GUq#RabL(DB}BbL?4hoZFk3h3@EuK!bOsXN`B~lR8bfL;fD!m*VKcU6jYY z<0hqD^lgDH+veu@@Z5iTw>k1cUj$Rl%X3T-Kg(AlOLseMk*^Td+pyU{RPMZ zMj{mgM&Vp4GiODhktYQ>*GDJ0HG>z3n$gltPl$IW?hY;1eETT4XmdBYV3PU6<{KtK5#Dm#km9>j-StNx%XJ!2b3ptH8?}8 zd$S-cGq{--)tuXDt1AuTP0f@H?lmONvTpbnXU!04u;V8WQNLRNeiWcTwjShNRx?`Q z5gNrbbC@>7QeM=&^s{^K5}A$=SovAc#QRh0bbQ$e(&P%|e)?jb1m04L7xfF~QhnT- zCT@YgrJ7JAG^b^XkapWxMUHR5nwY%zEI=GzFmuX@-)LHbnL}f4Z$ct#$KPA`D z)ws4R-=ueJMQhz|ClqS3Fqk*~ixTJ1`@B3L5y&2XGnIREF=K=)aU(z4JEur@<@OEx zHwdbGvt_SQIkFJ~4)m}7eS`v{|Aopfo6qnF%y_q>og#*WYI)*^qqLpiS5~$Hm9i%2UsHv$q{)8{>uRZ3+e~$GVf0t){e<1+?=ou?;L!r-?DBP zs1hY@(2db{4rkR47f13FM=hGy-(*T;Oa%XKXtco$%a;xs8(6rFmT&dAudA+&VTXOe z1i#4~I8X@DyP$ws?00EH3?whI@R%iOH@P*?#>Hm z#!fQFPW~{t6OxQ94^vxaYW;UW_04zi+FuRnFSImpXJT$27h`IqA5mo7ZdoH$}ig=7Lv z5fIGEC7XR)b*n)bW?b0ps3KEh1tvB{CvI#u`>odosfL0nPK$E5OM6B#)+*MczEd!W zy5`f5Gn@%&H+sIF6!7o_==t{0n^^rX`$WkPI^=L5)yL?EcCi5J8nNO4^{_y5%Zp3d zbI3QP+7J9;noU^w1%dGdQhXj&(b|gXN&st|xF+lVJz^(cFg7;f_rT?N^+zUaZH3Kc zWfPMths1+_g|LAHMWT9#`GG-J1|BM7fu?PE>IMvUc*Y%Z#B9;Ugt7C_QELFTV3V$y z?+AxGLUnLYvUc>WfTKNter%-ECZr^}-!UrUV=M1_e0!s1{ssZyuDA z5k_ukOjkBv>6+grJzu9DcOaKd3Fv~@E(G#ObcOp^-bx*4sAeVC;Xtn&Q8@aSe>-f zl6h?0l#2ha`vCy1N5GeJ0IQv*BsZ5+_79KRVXV4vbe<_b0-g*^SsRneiu_mpP9FGb9sUUVV!Lzb9e)FAV z!dCF*_z7P9W4WBHF)6iK^lxmK?uR5*45@`-@P{eML>5q(rUyx&rvSz8GKsRof4?;_ zg(l!GZTz5XaQ@0_gWE&GXo6~yUpg_yu{^Z#qeWhIL{3&!bH+Bl?;PVJ>B?; z1JcJjt}8vuRHGky{k1iX%FnsQo8itfv$})0=AQZj_Qsk<$I4ngH*y=bfbtGS0qN7= z6ukwOU#-nPU`$=(@JsIfO0;Lt*Ru~w1ODEbIX7@YnYTmSE5UknCA0ZV;lzQR!P?O` z%d}E&eYCepx~8h)s|MGatpUA7MUoc^fE5tcGTU$$_xt@9Ugbeb*03#V;YR>4f>q7C z$?DM|UOVx^1DONsC?&KAJBQtAF^dEC$3%{eP&B;^%(I1dE?s-tEcx<|k&nR*`)=Q< zHF`hHaK-T_-(|D6m$?S!~nGX(fUoX9{Vs1#Twcc&}>s|n#x~H>= z7+N#&N_D6??KWl|0ijps41%tdTlC#~Llfy4+k?;$^22DF%d1aB5z=$md=$-jUh@?F zE{-BkZJZAd_0b)Xgr#YDlwG$X*!+5WQ{K3`@#Tket+vg#Y|GU=#Ip{Hj19IQ<;+yl zb4IE_%}0WPoO%XIlIkz(ofLrX6C07;W@6F(}k?jU$v)i)0Tzeoe!--KT|Zbj+RFAH2BMA~Yc>m%~ckwZVRRmALve_vHq2 zqut{&|M%I?zv_~M_Du8FU)+hxGR^XCm=(;Q#ZNVs%NKxJYG28gG{;lqQq$NxatDrF zfizqpW^<%L<1NMWo=Wkd`s_zKeKgrbG3geMJo^ph%=7y-Fn@QN!%-KE?HXR2xsn1$+ zd<%bN5~+FNwFWCqVYi)li4wJ(5p*^^YNq?X+l!1vb)5Uz!B5g`hw=ZM&Jej23(LJ* zEU}JZU;Rv&cJ-c8tg^2pt?y0MiUu?L3dI-?|I*)XgsKM4+DN0zW-`Gim5kfJHSUrR zB7|r>{xFJ&?U3{M3vvfK29@*Nb?b?)vUJY{OSNySfuGc>KARas&ZHZp-_f5-*1}d9 z=+A|H^V65ubvP1q^S_{7WZ8oh>wt}mOF`+~SX8~)Izbm154`a6xH=Z62bn`uX|kns zUCNahmYQ54YfK|pW6&VOH8Rh|Fy@`K@KY`Ex0kQ^5Hb>a3SotXOZ{Wh!Fv9lgIWYr zh7RpWF6NIW2k`g>?^@E!3g#RIS$>@2hFC}QNIx#-z(7Cqz9zYITe zt39a6ed+%8re*s-*i)9>Vq-|-q^2@$vp74|AQEaci}w0JT6_p4-m+1+SeW;SFk!S8 z($h?WzFae)kyy&2%5D9yXx$#%@or}4*uVY17{=qAeEY0pE z)C+~O)AKBUd91o&#oY3P0xPL&zhPs^TK|de`u}Ya%jtiwyzQU~T?`|qC6SXD#318C z|KEU|#;;C?4u?3Amllc1l;9s499f+dxU)jUqUKfWo@8RbyU^~lx>}-kWBcmgPJ%aW zu3TkjD+_h7bdsA9x0!Wc5-mo1l<7}R+ZBSX8}`PTZi?T#CvXAK^ z%&B9x%lZWMmjpM*s>Bmw#{E+H%_8HAyN!?$@dMBPDH|DeU*+Uu=?(rGPhcyaFT{Xy zH9)J9W$m_zN8(uKV6T!E9^?XdeH>Ubeabds9X z691*yjan7zSDvR0jPdJoir0)(bU$~Cf8;vFljQ`v`>mrM)GP7)@bwzbuQy=OD$}nx z%Wq90YXN0=zwL#6W#LFVaeze$C%V%JZXVI|dQO(Hpv-N;$!$ha9%`}_o>qczPKj%# z|Gke$JVq2c8t5(XEXorhc5O+#@9N#=kn!?&PUc+iYO?L{h4~E8BYi;3+f(anxt_tZ zKA9jOG1mm1j?c_?C~v@*x=>Hy)hvY&gQm($k0M3#%i?x`OYP^A00%r zT!c8Dmut4L>tLp3TGeHmj$S{lu=aX6!}K*<{b^~Nswrls!6(@ZTIOjPs75JhQL1O- zdOFG3KlEnU=K8L#j1Ht(-qRw}GJj%gJ;(&`83D4AJxv$i9(Jw@{IIiyKc^UvLTJZ5 z=u0^Bv;Fi3Rufsym3&83;7CNy;|^8vyv9@#7Y4|sR+(nzhYoaziYl5qX3iNlM$I-m z^SMefB&H^JA=__N1|ldj-!(XfQMo43SZ?Q3S|X|Nc>`1|V*2zyy#u>`>$&VFX(7Qt<#5O^V3 zdHQJdx41YUSz(2>+uAw+vt#E*aj*F=K^%m~!p^lM6*{hWBSRkI(Vn)QQ>!;?*Hh0S zj6QE_C1<=omE7+$KPUa%*n3#i613)jNoY6NU$Omo3Kk$WjdUI(czJHwR`=mN_^0L! zD0v-87lCB6W*Z9x(7+-jePi}=O#UXXjFy%VG(QTxTjwl52q@ZI|DX`&tfaJ*m=eW} zaW<3MEtx{S#=8|a%HeT_8o!M6jfVnhpG?&mvE$%v#?Aq1KZ$5kbcj%(Wl$``u`ng26 z!@!nvy8BkgN4IEhW=Avb2GZRIQX~&3w_#=ML73HS&S0BoQXYrAo#r{ZDxPtX7T1<5 zis$a>ZC5#ndENT^nr&xUb+6l-)YIOZYiED8hL?w!#~Mh5NRNX&fjZK;d=1ZWoU>!}+!ZyiMZhW7-0TIIPCye?|>n`tM#WM}nIxOJfJj^WE)2M=zs=W9~Tf=_Mh}10!ak-a3}UC%|hVShOX6y zhi&dISP?WUO!99mU)qjrxsN+3$^1TUd#0Zp(P4|qON1rZD&=*D@ASPe)c$)??eKZc zhj1;W5A(}Qc`})TD07qN{i1=#My!C0BP7<_YgD7+)v~YQ4rhN^+S{!&3+UCcH<3HQ z35ljc$qkHQ+wFFf_xxu=EGY%8+|(>Lw(~!#?e*b>v#pn3CqUWTb(WH!K+&7i86Pw2`m4Z}L7&7KmK^ zn%BTW$q}8zE990alq2S3E>>>4dLRW8Uvf1q{`gM!_YCbXpVCCt@IN~5q0MTF3QP6% za2+hiico>Z>R{U=P*#A8mLAbOBDAJuuCEc3k8jDd4;XCC&`=>KRxixzUz&8!NSPX7 zo8N?qKURM~ptWBq9_yjm=$BG$Qf<6OM?CpmBya3)1csTsYCtZJ#~;3c1I8Mg6V0?F zV1Lhgi*bL77S0nVA)Fkpc5~f#^W3F8X=~fXB~B&TgHA|(fthc*j1OVgXWGFL7%+NJ z#>b9Rd-oy*u0ptuhl}$+lPc0h25_V`tkT+upQ45wU2wEXb>8tU->sp&lZRl&cS=jL zSBd@f-@A2|te>`u#jlJ>cYK;YEz`YP8#%wLVtKdTtz^`&%AvngV#lyP3%I#ddtJ|J z*5AQ;RKcE$$+a95_YN(|_p7!OG!uYp%{H^DxQhLv(9ZU zIt!kBDLiwbcA2D6pkd_N@afU-qHS#-zxB~o#LBia&a;Ks!rPeveaK2!Nh!v)F7=0b z^j0e}q-X-|wwar%_8zmrsRF0&~M7Fk$2*(AAE%Tby&3>r`*~DJfM3eW1ojV9J65Ri}qH>9LXZyrj^B zT`RguV4f<0@gvW<;hiVVH7_YO(1X7>v-3FltIs<=z1s)uc!RK>LU$Wgxy^m!S#Huy zYoU7KE$OkbN~}Y!%czcDD@f>TUH3Y`6j(8~+U&nw|2ioJ{!(+w>3b&s8M($hJ|G^y z*&-3DXO^<+d7bv^bjbI)Cof!Nb(#{gm{aMhUY!z{oe^X-)mGj(hg4Mf8I85u9$%`Q zec~Y0Yq4%Hi)hK%pgGjq|zhB^Lvf%|-#z>kXB11`ll~sUK zo5zFHG;w)$0}o4mGfv(1^g9Xk#2wm?T*q)H7dfj++mR^Jo)SAmVwj(X6-|?TMBSh^ z(M*;!uhMyG1q+@RIy_5lz#Bx(`uc_zH@;b_n@yvnG4*wSViku632h;q0er(dQ}EikZuKhqAXT?i3F%B3!(hckIzk zHA$)43RGAlLNEFLjIn(9yP|5l&>n)moGNE~vmiZTQxBkGH=pXaMU`x)H8cKJMFvn=p8JDFhji#A7SNN>}N za{BWA=b1zaB3hx*!bNB&Z3ZIS1g8)skc4lWFR5uhhs^geak=B*E-^d5RVR_|mJ+$s5JgyeLaf};zwX+A_hi-u;r zo448Gr_6DJ<@*|@zQH#XVlbFxYaiWnU{?f%nvV4qqnB&K-X zl|7G@n0PPS0OA5s_MIY9!b15zWcF)a%vkY-^e6~r?<({(T9I2O)XAid`USe>tiap6 zE7Te^e|^zP__->*U#NBNDFt|KeI)kU=(R`Z6m9SDft9YnETfsxA(wOWC)|Ov_b_fx zM0i&84UMsLLiILFw=dhY#N9(gVrNPHp4w!N6{9kTu?)Prxvt z94O-+Q}P;DdajAzFTD{s@WY0y{QJ#B{$`H2^f4v#)Jy|ViEiJbgcR+^VrM`34!!rC zP4S#h79(%nZ?KQ zR35?aH{!32t_@Vzv{9>vUgm=?afl1cEC#fFEnjmI2ywT>9Th>6KH{j}~ly-lQQ%j-4xZ!lTwt%RrTg-;g46}nvUD24r_MirF z&2Q(T=+BG96CGHs*qx2qr7ToNmD7R_E57<5GEZ9OT0zmAke7u?q5sKC!B^MT;6sJu zS)p=s`*%WgI@fdaQ`Zjr#s82K(z#cWPD??62F|XCvfdaymQ5D8yv%=jm}D|8XCujD zprwu9HmcLUVG(dP*6tfq)g7aIJ=a;PC0(vb&aGuy97wI*kIQ_V9j@a=a>iEap_r~R z;gZ>stV}%zmQas7FTX~xzI^cQI-AwNd639ZQA1Jgh+@pza zB3?rs5J7K@s7XnU!M9S?@qV7lUG{>RMwP?P=X+5Qma8u2H4z8jzP1j^jh(MV1Vip; zEx_3G_IFxrgd1#lM-W`yscuWZEbz+c`jw7eeLVPE5M|Zzf^R+1jJT0MdSv z+vq>Kt9b`Z(qUG2m*K$`x%{IWS+7(r{yU7>zZw6(GHp-vHZubv6%9J&HXq~~9#zn2@-Epv0E zVq7ZIMSe4-n8_gx%uAn@vvnq6_aDb~pGF7YX88y^y^ z?_`_Hx$UqV=80c{FB(AY6Qc<#j~Y^Ssbd-qlCX~=4Z!*Tnv*=`YMua`A*qN8Yst)p zGeYxTQ(?3!DiZo4Zf37t86Az6>j-hlE0tCgcDLjJ=wv>;g%&a$#{!ON+6W!@PLvRR zSWsfF<1o?F*$LGz%nnN-IxK$C^*f3ZPlk2a_OwJvOo-qptDds=)#MqY%?fn$&B2+& z+9~eM@d&6tnXv4)EJTg2RR2;PlPK?dd(X(#M?pih-a`3TtBGg{=s7#LiH^^`l-CHRigfNvZqgG9f}ShRY)$ob zs9hLkj2Es9)d_ttAI#=@!W0f-31hr_<*zit!tt zV^{=Qs|$9*ye68(L^_gQ4bhno#lNV>o|(w(IKAXGs?m6$GQ@hCRr>pYTG)Yi7x*Ik z)bo1UTt3lda2r#vWWV=gxnryBA{v&+2@ni2g&XUer6p`kS@p-lrCSe789(l;U+{A{ zZwDThdM!BxC-))W?$BkNVFAfsi*)#!J$yd>(IcWz(q12CU?4GRUK-ML}(qeZ$zLxt|L6QAR z-|1Yya$7c8U!^j6LFG~3$=mJ&fv@9TN>}0T=A!C8g=W9tLvo?A7_WUlI~z?uG?zKT z%HD6j&+Q0R(~MVMT`Ko&IR$7y0M@1?6-StH=#--e7q8$mlGQ4liVsy=>M}$#ZfVHa zYN*-ixqS0@6)=4w0@T?C=iZ9?RU&kl6%w|pS3Yp`wscly!c58g+tcagbYf zi7cb^(ECjQ(N{PSKRzbuAhmwr-y2{09QkYsYLp!darMkZVVBBjKMpM0_=Rhz`BAc- z;eF~(W4Avw#fYd2z2$>xmgi`2#-Nn$PD!Hce@?esJdM3mmR_F%3;wlCl{eaCjX4aY z_6~N!PWd||U~%x0L0Nv8A?STMuqXfhn#X#2aWymx9WJ{FG(G-0=`4iME>#Q-Z&lF6Vs@7EJ9At&dNu@aImzgf0Pg94$^=tx~os zmOB{2eC@Zbe%D#oE_L2RZK_;S8|)n2Hu`)vZcf0;RyhR5^~>{_+fLfK7u};(m!HgjJtG6|Et))u#^!;AmAX zdTWDfN9m1@)YILxhr{Iz0s6x}V=4=rtP1`PY%o)fJl1ynf>N;MJPk-DT&2xEV_d57o&6 z;P47WGNhAcP#Z}}(F@~#c7|>86m&O z0NGGYl9&|hVA6B*5{u8Ps{rPvCJa{1%Ltj+vsm|rRY2aU$-CuO+1Ceq&Y&;QTa5BM zGAls$aaoZy;kHRIZ`$&POSU>z=kB+g%z{$KxDG&=YiUE{^~mAb|4^%3RFg=G-p?hy^YB8;u5QF+ z?%fUh@byzH@M=6g%~MnNwKsWyyO7sBl7li>XWTL#U6Y& zN_6ld4mq0FE#9mxU{^e{hU{ge>O-Z|?ciZv>BK481aG>~tk&u!d-A-#`a3bXt2-kB zZV zM~dC%1FTpUr2|MiRK3j1p$56}3_Z(wl0oKuxfw#WUkYr}eGfL{uJfz2K|l>`z0r+= z(a^xD-uld@Wct`%v=l_@Hr!_PQo+$j%vC&BOjfC}qoUxAT59Z0u?a$pFCHNh)Fq>j z`W0La?(bLLnX5JJN15YV9al7LvV6P^TW;3}H>PnD?7?dZ4qV|xd*RVTP`UK$-HkU& z($S6T#e)b#SL%t*7RRw&%cz=fp5#Yy{!`_pBPSZ7zw$wQ&82k}J|eqxmo*M>%K&k6 zYr~VjYy)+QJ28^4uq+!)Y%#+&c!r_F);yp(M_9DiA{q*di&m#YDHahoE1H( zxT!n|@#_?aO<;=jZc640^YdS!^>ddbO8pSK^^VIJmuo%t%RPoO^EQCJ)QD4F&g?GC zQ+DI~G^Nx)z5!B`x4ME+dqrm_=L^sa+EQCOAgoLK0H&y(%C`~Y&lXs;lI&?p%ZBFP zmAh>fpe@hbq^*c7F4^ib!g}o)`j=;+_;4**_W-q|&>AiSjLs}w9okX7`Q`rK^f`aa z?fQS&G_i{RZ|cq3RE#$vrqm?L6>@^1(HFs1?0Eb3OuckuMT%?aN2}SbJqTI;jBo&L zAgJ8IiE@XIy&K@qrwo8IS&%vW5lfQCGOo=6fh<~)-}Xc8Z8bH3fBb516R2`cJmiEg z=dK@m6dKIyrPeBUdLcVtX*jUud4>Si8>q8&-b=w~M}=2{@};xuf`1u1A=%(m!flLy_1C7`E8UZX$rSChmp6>I=@A zf`rm%J*8^AZG=5KjoN+8JJ|?WoYQ(+zX9 zf0uW-Z4cP1rl#9$mis4Y$fv4NsPUIeXs|;)YEaSi;Z$c7ULvNK@tRy5oliE7lY`OUium})@i)D$aU&B8S& z84S$9j>BBhZ}|m|5Kz9^3AHnHy%~Ww>t#*-tvw zTwLTTe;b-cy_1F>JedhD5rI(M*J(o%Yu=Uyh%ae^UOF`!4F-2DDK7Ag{o1K1IAF=$ z9S>N?veHv$7@rD`@;k>fxOeV=NbXU!O&#NsOxx_=on9uhN_GWzG5fqQ4vObfGTTi- z7)aw}V!?AGTWcY7-7oMgvyOf|3o-=;SpP%z^Tsy~+p#f`;VeNskH%1po>CB2I6Zfg zXY8=v={5VfPYU8B+k5RDxz!i!jt-m_DEXjXeYED_nPa+sFRPbFEkN$jg95h}UcfFL z*%aE!I8Ar>eE4t^he0{4;KGILs7j#zXI}FlE6DYriMgKxn$LwQ|6DSV=#6)=VZO+x zrVc`)mP;!+mUnW>e1pdmQzEqv5KTYBRv!aBL7OJrxS*Iq8;}rAm#*edc z{IPQLSN${Z)^a7=K~`SgqcIjQE694yyer>&HptI?+-<5wqLk`AhPgUhp#3)ZGNCEGj3kU&m!N;(mJl_3PvP#WYY z?=WnJ6`%Tqy1UUzIu8}y^qabd9sbQ!3B6bRz+0}cU)JYMz)H!Y@=ThnV?-oVa#z6T zQBg9;AkcRXT$5>08|F3jE@wBt+AR2nmzD0(Zk*)~zRy2kA{p?ii{FA?#4-5vrzP|# z@(-wySiF_|TXHlj4`{@8a)1_pk}p;P75`QeInI zA9X0-=aUnV^RSMrH@Ex_CzuBj!k(kPHxRx<+N38&$Q=0xPoOf?edx)}nAYD+XO}_6 zHV&XH7Nn52f@AS=>iR!$@gUu7Mj7l1}i2xx`l1z1#!sZO*oT%-InL8FPv-npJH*9Z}EE9h;E z*7R|9F=02(=6S8~buN}1BkTP%q~hR;N#KNVm>mWtY0xpVCeaqMZJJ{OgkV@Mhi_<% zlBF7DsEFCx4)t>&hf6AKpXeg3;VigMxP>tf4183egY%L^@bRfju{i3+jh}kkFPTJA zZDu9~EmwVp;KJ9|M^ffJ`(C8kU@*oLdHNS=r>jm#$k18fp214Fl4S>Ib)_p7ipASGT%jO8~ z)t-Y*-m`U?x_mdTdOk#N;GQio6TUie*&K$uZGkP{r%4#*Ha@87-`Lr%O}|?WYFJ(PLw~M@#NJox70R^NZ6~29jAl*G>kIlaP zn4<&fgHn5M63~?uGnud|`FD)VLC6kk`}6}@s3M*C8EoA@07nGnTh)E3ZX7Y0+53Rz zAfE}gkPjrxUk;GE!*a^$fx4q1%Wz!8{KC?3Q?{NBzUNo=xOX~;d@E%Spj8nA zJa&LRF^m}+`U!etGbyHeBLa4TA>#JMrst@3I`nL+W^Ll~hr2q@MmFBD>1o@9#5iq> zolLg2bcctTrkUtUHkn$hANZqELOj;v-4NXRL{0q~+;VyBKA;4uDcjQl@Pp?`ufuQ9 zA3$dHwahlh(CxW`9r7=UAO=$f&cQrJTRif~g74Nwa<;J3ud6p_fB4mlI(~Z4ms>$Z#}^z59B#Q*V~eZ>Hd)qxC*L;W^Awn7nP*%wMs>|1L=QSCH#p0nosR z0D*Jv^I-shl@9=V3u6lRKL9ut7_Fl+3pgz?qPJh=+~f8|M`CoI;QF{;m|>Ff_Z9@1 zE5$$je05Et!a@`O^*HHJtc4Rc6hMFdo9UGrKj89Z&h&ChX0%#8CZwBY7z-@(xt8rp z=!~kc7^|jDc;Nw$vW;_=dkqTEBqP>}!(zVF>H+%O5E26+YH%$`?jTFF+PkT`yR_vEwTs`+@Voc}^Y`RaF6 z;p~{Q+ypJ`BLa}HLpn)2cFose)2uNqzs$8+tUc8(gdO(`aKLAG$hf^H=BnxI%x~7! z=)GrHy)I;Y#|x3R)vdZYDMYERa2Pt#nvko2OPD09uk68)#45QU8(N4D79+ z=lw`b&MI`7RGXs(Xr;nM6XysbCxA<|~-B^NydaBT-MpJ%AcfH{m#+Wt0{=ok{p|s>nx8Ll{%Wg!;)GSV+Q*0Y) zBlW!0h56>Dgs9D1#Z$r%mL$AdZH5Qvqr!M&xay1Yf&H)NVag`h~Dp zkm;=t^(y>%(M6KF?m7Oc%j4^Ox%H?|Lso|(RJBiF_I`9XiEomi`)M|d$B+f9lo!bc ze->MmW0!S9N5@`j34Z34KNx+<&drE16n;0;1`{RaCEF3#?&*8cKwF3Z27KN8dD#iJ zH*XTtG8=O;N|e<_zyutgP+>>}sp7HQHg>@dk8-H+g``cAS<(|KgaQVDc$1VHN>;0u z;p|l(3xryVPfj(k`8ERBLa3rl_JBMyE zt3Mfqig~p zeNzUCW=DFy0CbxjO82vUi&q4ySra|{4xVNOudjPT6?u)i3U04c;7p}VLMbnqO415W z^~*b(35q9Zo~KZ}J}?QtO|LDrNN{VY)YJmO$tXu-Du&vTRzW`Pd^5l(uDbgkN%`@$! z!_q%b{N-1#Sm~zWQoor#Q>Z6?GciF`0s2fSllqK4y@3%|+rfHxY;*57lXx-H|7Qnd zm8BbQ=67=1tI!9pI&d9&zo1P?*2Y?Ws`?RUC-b8^b6bd1bmt;FPUX4=ftwE=caJH= z;cwOiUu&uN&B9dvPcuh?v`^GqNHpls9%NxS^R67#vRbHD#9`QR{>H(#P;D^(Dx^_( zT`$F2jcAbhzy6VJ8{#1|>Hw!~qL$o5?Cyf`x@T+#=~-mx@ieHObF4S7O8YR`T_hOw z?2fKd&AIjy5lpJmf4%B^QqVJ{01a&LVck)Iiqq-((2JQIc<1CGPcPSZGEKvR@O2m4 z`1fbIxKZXMVyMTzveN=mIYPSNZGMmwlw7V6C9o}Pzx2NvKdjymi~ zLMO^_1}y*KqU*ENCniKKLu+H`Hq9Gnhdt`7!|(@GZ~R#CY`z@ynKq?JVW`r#f`p8g zZ(D@(xx5Uyq?sNeo&}nCpOu1j6${6Pr<1=mN{1d;tY(DY$~>}<^Y)%`ZVYd_q4Z*V z&!*OCSvP;f#%#CNQ%jwQ9Mo6{5ZEj_wENAZK_H)DFwsMQGo_m`O{lTbE3ZwEX1kM; zuX4NqOS8OUTG3(jmZYVbrsbw^8yI{mKpZOLFrJtBUUbvm{-Ywx9$%1rIK|4`0}*=c ztX;`00kZY2<9%L=Scg!;2#_$z6*dEt`9#0~lLE0>^0pVCT1Fn)l;J_#0+giSvXybj zJmDv3KQnSM@5L%cP+y^npOwj6^KM?UCD7J9hF_EDAuw3p#+XyPBX%SWHVgoA?rMU% zQFZ#Cb=BB0sPNS<-w+oQ6A;JC&R&nWd$w#=v|mhvcu(h{5wz06)eazLU$CWDwLj{x z7NJO!QLgQC%FH%~{9JiIB83#UP4&dK-alB3=N%h0h;7p6*k4BYIBhgPb?>6fxBEgh zMjVVc5fnLc{*~pWh5HRdEi+sV?`-`|sLLM5X#MhBLWQ`b=Vqy?u_36#CId?&YW|z* z+~>18%}15%9=kTdS$Hr{f@z!a;MGqxA0}9G>+Yzq3o4R}@;Ay#LdWrV(n!7kl>!(D zUfUe=*>E$plLNP9t54nNu6V%B8Eik;{>l809-&+brejk@CPoIP0eUZEeL-3_Yr(L? z+oTxMPN>5#>&=+oOcE=R0gQ{AzzGCfb;g*A$iWjjqLcf1uOpbq!(hvGq7GlGQ`)Wt07!L>K!5Q=IlboM4)w1fe+z&Rppq9u z6}02k@h;rg7p?sjlKM02k;uVsNUWcSmY6H|&bv=T}` zOwXLl%&x4T0+dwQ)W9Q7$XfyWiJ1+CxzWA*2Vc3HKbC>8`im6KSqXhhlWnzjClxgw zo%O~Ftf3f7W<4$99G>M^&u6u5??jYDi*TsJ@cQ^VD>3OFp7yJuA!I^T%AM6n7Si4)an#2$)gsVb~))H^5@sq*uJ~D(lVdUcHDb*36aOFmty44 zvu9crc4Y{E1mqKb9u*erItP}_v_w^Jl;;&?WN+4Xgbd_+!Vruf{EE#L*mo}?R)Ap1 z6b)IAyXEn+pSiTJM<`s!RYjKcw7K_teT;YI>eOXf&Vc>%x?6hTZ`bF(@y0WybW7d( z(cKoH+f-7^_UNsea_F3?yYaT-*dyiTXJW!>7xVO3t%3f;Vk^MjbH|SKer=89OxV)1 zIJ!*Ca++R@dwN_=nSS`@N8G>l3lXOJc7PB0Ki{kNzgFVE{Y(GTmH`OwhSCkmale_4 ztyH#B^Silyq~oB5Y|;3^hvMI}DEqQ8-$$;kC#QY;dg)VcM5)vm6Mw1*fO)XD^XQ0l zCkfmXz5N|$&&PCZH1#N5r#k)Tu;&EtV5IEN=IcZUn;;unA&{`-<-y}Jsq{FH6B`;Z zAagzGi7?B9YYNL|scGyQo6SvXTQ$-=k)7M6F$=?`~nihJvB&% zW`d?S@JI)$(?k?F{m0@aX8G0qfJ`<}LanmFz40@{n7K@8)oT2alC37J#zY|Y*br0hXhfBpRJ#`w zUQ(*%m3d|HkD;Fs4ywi_{8{4~xfx9#AMG=kAAjo$NHxSeO}DgfT!Si5yWj3^91jB9 zP?=j|HdJzLjE5!HrN|Q}3Xck+-Q zB~(#iO&3{z9!zJpH*rqG+BU8(GmdX|#=KkD97{`CwZO|Y29|HxNPp74P-PfJzYJuTR@C1B5Uov=a}%SOPT(Ow`H43IMi zh8&Fcsp~&>nJ7*r&}S(F)0%{*-M4Crf2t;)Tgc;2LGgah4rt`;n=C1jb61kPXPr#E z&)9eoia5Mw-SzH3{m`ARI;%&j32JF==4d{+_36g1-Gm#ILXO&?^=YwKL#-#jnJ$&v z4xq>HTr51JVPmhO*@SoPmlNRo3n+ z;T`+ZZ+AS^JGfN`GQAf;`|wg*LSLB)r3Qs|hbSHzk3DZ(rw@Hi-32um-)J!Ej z`BHqjFu6hM8ZR$f?Dm~)KWa7SL{7S*RDwRiYZ)VSP%xY>YWd0H@=({^GzZW_DIHQx z2KYs`ENUZCebZRgo|^p1FzU;9Q!X#LGYZ`(4aI|t{En)>T=kEBB+J3Vw+=wxOT(p3 zNlyS);jhEx4)0adQB;98ta=jEX;w4Sw62lL9vS!<$B`V#@k6MzO>{P1{MDbnb$h5% zqePAzQDO9L+k7isV*`VO^|c0}2y;94UH7nbF-?hTM-g^JAh@~KwF1gZ7x=^&sL7Lf z^T()b^=8=ata}FbYTbcUQX0R{*O0dpufv+IroK|1HDz1d?6C-(Yet9L4R0GSk8g^Z z(9(Y`BNeTzJn+K|eWb`zQu^VI5?gv`hdt*}@w&Bn1r-r1C5tkiQ?`(1wXL)Pm47`N z)45)osoMO5ff5$ds6TCZk)HIlc6cF?`H=8m=>4(j6mVyE z_{Ih6mqS~%{sm2mhk~^9<%ibYA3-A)=)F9vgNuh(=z&fLDo_z>SnaDu83?)S2W3%d z$66Ij;^Mx`b-03vD@5S60efBM5)ZTsSNy;Yyf82c^L`5t5eu5~ucs|JL@Lpta z<1D)(2Bu~M9axlqbmimo=jF@2`VQc&)?4Fd*-ec}g#|~^YA0CFsK>YfdFzA^&XMi6 z3RF|n3g;4?f)FGNARf5#y-mFH#%cx|mCji~IK5T8^)}j4c+HPSHlD;@vfR zLh7~yMn3}P<=q0h`R!-_;iH)1t}a0s62z&`+{MWn0{(}ymaQAy_D5B~i?NB>n~*!l zI#>o`^}LR0=ng#g#3V$?l^*qS!9TqIRh}5qVC9}(;d<_P+IV9#_!B98`0110sI!2y zqk5VIp6LA5y1bC%U`m3$_|5c7z9kw)lLV3W_4z`7p%0E=RK0DrK#AW>KJcXwxnQm0 zzoDr9Cwl+)c>S49CDub>e(o_pCs;5%;UUh(Gz_5x|9)(=oc=NWm3L0WgVt{LbZcYO z83P*t-RfJcz;GufXangEm~p2Whj+lX+i^3SJl@uFD#&!EX}lfWf5LXeRh`{+NFS5l z>%{B^nSDfiw|KInPtmN8U+1eTU8xeC;LnL|+U==TC9i$10Vyk!vh}ZoPL zxjiD^cfH+#JX4}7PvsEN{@cNRz5ait=>Egt^j}6RlGtE#Kwcj!>?fiewiK}YRGK`i zzDiU-Qutoc(%uFe2egRGRlVzn>@zJ<4wnzZLaE4U^SzE;>ggu$604xC@%H4P#A{_% z4of?H|O{1e=6&rE84zKye>%w>(a3+I#eOLHj`-XZmHzq&0a#M#X z{@d``!uh9puU^~9iH&yXoqJQf!PTRcwO?n~gVzfcBIj!qEp_GU`sImm_PH8J8Qia2 zi1#SR+HKYQh2~WhhPOMMkOdAgfrJ-3sO%==%kX21MT^n3lv$IyfP<|j!U-vw;`7!R zk$5xn`I16Q@udQIrk+jhp`vVX3El)cOsqwb01)M7{+d5>g~M7PDO_NMb5E%<=uF2r zH+$64WVDrY#nx;Vk#BIyZP=JgXmO4UMbvrzvfA5}K351|6xHeMV@&DDFZ#F`C_wdf zukJ(@2sMal9yY(5n$qXV$FR2dgUJHzL<^h%$5c>Y`~7{pwS9PE<~6-s?J}!G!IuWl z6hq=5voAylIZ3b7JY@0Gdf(}ZJr@>_fO7SRRVfK}Bu>*zmZ`+OL_g%Z;I>34%{rnl_0! z!)06Rp>Y!zH1&QNpK}pfyv+&FF{4h|m)&^}t*G(=YhBYK*S^?^ht4Hgjrq-}*g1q| z;0!4`%U2K4NXClmjRS2uxD6niH1ch7P7`CI(1%*neYqBov)irRPiI<(h6bi6IQN{l z(2LO#l6vU)w1Uaf45{+s86oCgyb!s$7t|%bH#`)VYPsq;(RUtl;dM@Z*}Q0%$tuXM z7q=?Hel=6elLM(m^Q#(C5urAi)s3n#PaPhoHj!dn{5OlBeRZ_DfzFtM4>uy4GVQFU;i`R*t|EP_z)j zqh2*G0zQcKD@{$Do_Qe9>HA3~Q)%#RV=(!Gos_-_&Z@jHeGbg^$o4}4i=yyT@y(oz z6b;Sz;-LkzUrq)x;9n^AfbsTVe_TJ3@VN|bZ;rUS*e_O-mp4yLX=YH$t8FH#b{y4u zkf6TT>|+VvZI7SO67o=0y7Zttq9@wwD(pud z_?C}BNr7j+*V59)4zqH{3o7eZTdqO?kusFMXf^M|re#buDTc-!lTSw7(;V)s{xMN^ ze((KlVWaBD5(>`GzadVtmn7KW5C)AX{eu$HOlmlwOu$Yhf#t)eivgNIvF5I90K>V~ zfn3|Z>{UD+E_i4&7B0u=Ckd!%I6_-n}=$gNoKx5X*!6)||<2*U$8QNcM zYq~stUbo~>%J~#wQi@X4m6RGCdGY}sSiwM6%7nsrBRgdClNwL%VqgtNx{Zhsc;yqO?hqu!8WZM*j>9319;}suA z^w_O0?Rkn><83U#HWkzJ<}SOs?83--LpunwXAk^#IFbHJ=;Oe zD414f?Jl(sen^pY$@J{(_$lISBr@>za;K^R_?$txq9fvh*eGHU2%BhLD;#EkgoZZ+ z8zxNJ%sMp#X?}BQCdBRHUK#rwT*Hu12oT+z0Ap{Ipgwv;52H3b+=MqH$Tp!LcO(N_ z?@cyE4*&6K9+RQ`x=HA)Ui1Kt>Gii_19q`7BW$k1wk*w^hTZYJl^^=C->j&>#NuUI zJ(P^cwxDvec2tu7I4Xm=kvO3IqiW)AjI*03n=ftdVBd{N0-?A!TSh-&KDNt!mfDGP zzj3nnyH)yIqdOOUyAqTX;tk&CJR{cH_Sn%dyLy&=4b4QK0`U)}Ka~Wo-Xa4LFD|QI zSc#@;Wl{p*;S9|asN2kYJ?*LYHB0_2^wFnI@{Q6%EnHVF+zPMrnme~pN47kWsU-fC zP>z$FMb6ASRE)l~^V&v3$WrF#hER#}MY;3IB~kEqX$~9G&R8o6;;;MZwE+P?*I+I% zyoF(+z-G!4cmH4%1Zp!=RD0mL5#jGx0^+QAQdo%FI-38Lq9N04r5m4`YV}2* zpr?~Oj4ENJ*1xB6@6i#W1;olvm+#Dz+02iCo)C$F3L{rC0+FS5_8Nhu?Vx)RHE*Lb zsE9)-3u1{o;)#kwzTe` z%4?bYTc*$ZpmzchaZX+#tm@_|MWY2!$J zJEcJ#FvREl0A6hwHI|pnpU9u9`!Sj&UCXt1j0_Y8X?Z)-tx&l!tGqYz6xP{XLk+qE z5UAA5xmggjXSwmxn23{W7Dtp2==8}F|(k_C)YQ)4F*ic zY6z9vp0@}p@qF61+0SDHT}_rnCxl%Bc9*jC^Z`d9;6&okk=}=d%8lQ|(v2_C^9xo= z3VS@p6F{HsZ=5$MIQ6~VmvBlb{g18V_h%IaQxLaj4B(u-@X&1ti_LmQ`Mwq0HT>IZ zOuf>36k1&0=LorDIV49b->D5q?u5!76*h}6xA0aQMgwss?fQnMRH@wH;6hT+X~xRq znjp@AzG6gQ6eOGFj+)77ZH1RfwFrCJmUjl?)`wCQ4M{ochL)S|@(;~Q&FCUhHev7r zPg)pfD#^E%ArQ1mj(OdDI(*3fI<+}rbGuV144vStRXx*|Y2EzB(K8ISns>LpPG4;dG3i*NO=(S@cQ*O;?fm&g z#j@)N)4bAJA(y_zTPa>dlz+f}!{r>YwlwFaN^c8v6K0a_oudc+uXxdUCO*9G|Y_!Dd|gzK)n^gXD;1 zbBniJPQlsnh-%(6YuIHUgF#F=Y97|I+}rWv--0NB_8kPM-~5rknSL&k2amMsk@F{NC=!P1 zkXfNtj+^xO$9(X!I*18OZ+`FIFJ6((jfkm}^b1spX~S6Pu^DE;Hl^28XM2H$u*?0P z3B=s~>Tf-F5@4axk39!d&M&HhJ>+!40w-$W+GhHGjh0FQ6IR^_-@GP;vWttJpx$i5 z@+zZ{jndQ~t59ERH|@<2r~?u-#e4J-HY4@}RnD!f>dLr6Q5&Qrv!nz|MHLM0J)N_Z zR5UPdoOQ+TF&cmX_G`UA(#JA0^(}jr7wcCY&NiCQvR8v5m1&)CytAd*?AhY2-aYH(s)mulro(|CUHu;2`#Q@DWtc78>b&nP39!te z-eVBL73r_115#j|K_YEfjYB1)u!LlPJHp3aDpWv*DhDK3yZ z8aI&s7~Bb$mh&GaT`^phyF>S*h@4Ys9ySGu98KIJAJ`wUKBhV(RYPLct1Z{iUCGzwyD>#9_%sYm1wfN z+L!a5^+fD!e6A8(r)3fVfQzEzGHv9;IZjPYj@{Q5v;s9gm;9ampQ4c_^AO4}5i&&rp?Ro=UkE+)(wRGk$zngTld zK93MnbL+P@_L2+$0Xz7wTWUT>_2DO>vX%5u1Q=j!vmA<@u7%C=v3u=`R_nRc*I#jG zI~SR9a`K@4jz?;Ph+@BEWTb`i1s!Sso+7MGiWhFz@_xsFNh`TjenZqw4fzyx#Oh3S zX#b#g7BER;sn~opLwZw_efI4$}?>!r4~}TqGPEE!>RfjO{oB5Im~~1>G|P}qr#%2PmQj;d8aV18;>DC z$Xm4~q}JL!jXb6&u^AL>3s97vbeQ}(>haryimjF=W*oq>Z*a-1HqUPIcat5#33HSBK7qZ9$-(sdeA{k!3*Lv6q% z#o3g)*oMQ&XC*~8^7$8$=n!q4zPrr@*Ull@`g4)ASGtJ-?^KbZW=Mx~x-zz7VTC1{ z8?b0&Pe8z>+fR$Vo0LjRx>yt~aeA)fNR7 z)F*r1g;Z6n_Kl}Ax9vSLlzSeZaBCIHnuCk!UEsCF<&5Y{l5V3A8gNWt!-Sik*~{n~ zGb7^}EJvJoSBa_~8Kw9p<6Bh+{uc~i<(;IOfU@}GW~Dhuwji0G^i(T7Noj-n8W6|w zx>WYHgo|2C%-^l9`uN&d#L~VX9_o%n6z5Q6noDhF4!N)?qI`#^m!~|w9Us4&hjEF8x*K7F@cr~$f7u{ge?A@ z+~~hzHvd9a{r7peET-hHccElRRP&u-Ss+EIn6$JPQ1fHMY+E?U&e*5pSjrzg*DYC; z(pDW22InaSwWmyEz0FGXC&X?sp3F6Kfb2!+RtIkqZHIEcGTAjA4tS%Eqj*2c_AL#pKE`+)R^W5QkF~a6+3WWiPpXJg z3K9bYp1SH7wMuYxO|ABlpGgTte4zZM+S<6Zw3}ZNco$NJSxT~{UxCf`4MyYr)Gt@3 z4Ier>TMukK6^VTcIjq8X&2IgqSpC6VQB#@nz_=4)ZMGt3k~P0z>CLdj$xjs0z;Ntj zTaK_^R$BhuxXR3JsYIfH)?#`0pWF+fJOY=k!Ur7KZXD%!L2onoyRZP);LO{M5lYSB zPZ(ITJGbRKflC`?NTnQ2#e*I8pM2#)zIN!smgQq%BEtaa#(!$HP zOCXnCAJ>du%I?ddoMgcaK6sex_WZ@hw~cEAN>~QTC3FJphvhNLAu0|PHOuwRIc;{z;FpCxd&FwLL+4_RK4O8aS6j zn0ir3j*-ecEQ^9j=R^r7aJ_vPd8zQYLfMQ`3gWz+MTM@o9q;p$1l%ERh@j;)KN@cb z8hnLV5ImT~p)VI6MwT6VYkrE*WdszQ+beD%gfkVd3Q zqdizO#rT5m`qGJe?B~xKTPw*r7tg%-_2**0iD4<`m!&yp@8>2PmxqlrCQpksha)8c zyfM^9*AQH^F(EpkT*(J!oU=MmvZV*?kLzv9W_gv<(0t`ZSlpi*Cp*vT1YlYpK63nG zmZZGn(D?=5>+Lc1zz;N#;V9pOTR0 zcjuM7mf^pIyk{K6{eC%P8uLlF#;1d&+cqX*Y{pt%ka*}PI*0mZ5-iQA28c3H?R)*J z!`2l|@*IKU#vh#T7I+HrcbwloqR+gv@4>^bX$|Sf`yCYJ=3?(vN~v3S0(VfUGIKym z44Rh}{24-j3d2OjJGHgXoQcFpnmcY;c6WE`@uv-+BD+>>H4pXtAL`ySs;Tw=_Qh>M zR74a+P(Y=3rFU$A0qMPFE7A>--U28fy+~K8(jqkqgccyurAv*35<`_hAfbdnLiSz1 zGwwL&j(hk2jQ<_?)#YtSGP07j*7MBooS(@p+CD0m;<50Jb?y*+q=b-x>rqX+_Q)kB>kYZBSdlx04TpNo582_u}xv<&@;+f{Q=2No|j88-C z*FC;46-pH6S4{Rj=T-19FKC-sNk?tZ7c8_k{p>3)c%~^eW}Eebf;~(yaWqK)fs2(Q zAP8VN1g5r=wt;yG^=Y`^MnIrqwpyumHe+;2j&~$8sYe=P))IJybNsTda9i&F+Ri{_ z?rQor!tdn8fuog!krA8aeed-EZx55OQZz^=z|ru8&7LZPUwGW5#jMWynJ@z^2&Uy1 zt`3e8SP2aKZ{HI(TR>)!=YI%>@ErPH_=-rZvdn997RHpg#=a?2RkrmbNXR4AZ1+Y< z|66j%zr<1(gN6*Ik*O@3*Htgq`tf=#O;}g^Km5yxVl((YJ=p6)vt=jtAv0%|g-It( zWG9&Thh8{_aI!UI&-LeA#xR(RoK_<^{uDK^5t;G5RJ-M|m{zWL^2~+9n|w-5WXVAH z2o5=2$(V_eyEX#BmxB1*PX+Qdb7DY~*>?-YL7islxhdO(ZE>0{1#K6cKjANCT5w)7 zP&P6Fi9R5dCxR?8}9P!6b9jgg>hPH{kWZPVq@&JTL_^Ukwcm zQz9eF3)ZMkPf3(2r_iwVz7F$Ad10YncA+l?d@3LG3z~I@ZwJ9OIPhoMuzAplA4z)t zcVbOwav9;Et|78=yuTLq@o&w~m2O!6H#HsVK`)k#n^6-7YN?$4aKf(!LZaZ;ul&L)8sFctXllDrMy5GUW>)peOfe}3%WGGLY4n(y=4u!9+_l&kbrPU=wB_AdvCZe{Fiqb8`uv8kQ zhBRy(WC)H1PI}1x>m#w{6|$+V`|g$VHZFB;N%)jg&d-vXn0arNl35$Fl>T9QD{+8C zHhI#AD>|P~BzhHtMZ9u4avCW|d@aCCUbu}4`kj{u@iaFG?G5RrWBX8*{ruTEO7&O3 zFAmr%D|O!Nn{$@V3!FD834bafv3&q(S{GBq)kL?foBCJIR*!}_Jm zIsUal7khI3GabWL*YbR!XY3+((w3Y}(jRaO`WQ+K^_vyElG1x^1(8po3oh%k8LaGFO3_Y-L@ejl~tQpx41pyfCz&){iK6Pv>r{tlWIEmQvCjJ z7%v{dimT=tkPjC@aRIF;m!B|nX<8{hzbQT1X(Lc9TwE=8N#odD ztiN*V=1wN>p8vb`bmIb9@XX@2n3 z?rhpFBJ#BOijzXVh@?gY^!%O(_al85;ByoGCPMaGYDz4lNqYgPq>ROh#MV|qE=0|< zW>g=)6U7jL*-@*U$r4K<(KX>53vMAoYpEq}Gp#+gy+3kSe-8Ky#zjhs_q;V*8(p%y z(d$06^#|j(P8+PeZ|lx^9p^BY;UKR++&M5+aATBjRYgSu-~v|H)afw-U8R;Jz*ws# zqe!F?@IIu=k&Pi)QSP>>y`psOE0JqlHw6ndRPJ7_9*%w=U3qRy?X~D?Swg~DaD#?L{AQTdlNWQ=H*$#~R) zse|SEXtL&Ly^XwgL3L-5^n;^Q{bp}R3^^-<66&)jN|)M$e-jTyR-j;9SE%R?@s3Qo zDT;1VLVHAY1#&p-eg<;i7jGr#vvT!Z%Zp$SicyPO4&_z8G;~YPE;#!+t<2f&)N7-&6f=K|FDXS*Le&Qq5= zi_S6b(RqIQ1tW{j+PiV-|4y7mo=b$gSM=*~W{r&+j)7boHQ?=xjSJ3zp`bzJCy-a|W?sRv2KXWXWBRvQNkvFR$q0 zlZ&F7j{h*JG~Q?S>S1pAl4bFzO(gc+MqggpP^i*H2{q!#aAuLtoa$$Os9}Tm<%tR* zwVKR~@j&k;6s{t$QBbC6Yo6Y7ya-2$Z_^tz*%A~|Kxnk0vT4{c{G!do)LyM9FR`53f+W1 z2lQUXrJ(+9G!Tr5*W@SgXwA|cf}bNEpDUnzu?w9y@cGGh-@Z?Y<;w27YyRIDMQ5(K z&dD+(8*#s-6Q>*H9R^y`{qX3j3pQoXo-KSLw1}L{90Jlx#k!{4Nw&H{NjC}8e;vm{ z7b8QhC+J+R_yXTfKGE#y8|rs#gptizg702h%1XFKHg_ugSt9gr{;JGe9=TArX5^CF zx;b86+tjL?8eJw+@qEKPM{)yRz5#c2^{S}hTip9a*_jQ+uhrm#6xuy)fGatF)C9rN z)b5WXd(*p}s|shD=A`lFDQ3;|%J_GkM|pwQgiAmV4Yv=&?xNfdLl-t?rE3qe4880G zYier`G2@VOM0;WprzUSuY)?@`YA2Xu0~>*r=f7P0RY4!EszB2!dKJ(0W0+I zFWLGzI?%RlwV}cX;TVJp8|di!l^SvJg7<<&QiqQ&Uhit z4td4N`!F-B%NDXMwX0hSoHSkEsP*tKEep%_ZZ&dDk%4RnE8DXE{yIhIu$frfYfZPZ z^=~!M>Sc$SQJ<4(%WR!Tt5!A18&hq*|S;xTU!3?yVg&`ErV#3zq)$Nz(8$ zS2yEF`Bs(%{1~C7niJPF}|zYTuTx3 z@t%E`ULsE4L#s>H)Ona>73EbrS4gBx~%KQ|GATOgs_T=L&vQ5=PHMKTcrl>6CTDW25ZZiFN?ei(6ygYx^P_BD-Q8q6(EI-}U zz~3lK!E0-v(>$3c8EYIX;4nRB32-`bLlxbgMfFxaxGOhp|8i<<9OUy~?zMnS_ zkEOE$id-foU#-8hyf0sNruKcG&4;k%uBg6{uZ%HPJC^gPzWj9+{Za4q0K3`H3V*`z zx69VKK_8K>;(F{UI}3r+#DMuCsN5Vw5vE3FPGrc!*f8=1TEq~mn1iahcFPD=d78SZ z_0UztnZL(!oNqiZQc?G{eqM9w*}B%diTrRcWB0Iuqnk5_Uu*NjrGvE6+Zmfl)Ib^+ z>?YNOEDq+UT6N-P!=7Ne6Dfx$K*bo~M09eoIL9|QJk%%q&Bqdz(AEv2TlTR1<8&bPjA1@tt5~1Ay zweNZ>M9GDkucqSEK_qf?sqW7(=O9H*SYUTcYXV^ z`{JCA@0xS7$)oD!bL)hJ+c^W5(=s6bzq-5Iy*2C>0qU5{nm}T1ArzQQnxhz5-Tl`(wtQ2;~ll$$y#X9s81ji z*i4z2MqH@dM@3YOUGR>|EJkLa4(h<^x}12e*uvYB5uQeId~z+5bTq3+;mwH#ni@`3 zZf)#R6RY?u*0#T&=4UajN51yBM~UG=q=gGvr#w7opn#0KI?Qx?cvIIv@_4t z=BtX`hes-X_6WLS0JKE!_#$t}I9xomrO(XKJ1M=W%Cw=iF=HF_`44{s^VZt&&RZZN zy8aNL3j-2>?V<5F?6LO}$K+^AlWaq|+7Dj+;j1A2a{}ol`8>U1nC{0HO?I1gGxGc< zT5YAEo+1;+hpOVOp6rs(%+mALyk{%i3JPZe(EgQMp-o%Mq!jSmqH{2{-*Yt&{T&_+ z2xe0buDvkul}E@AC(Z``_{I037JG0d?GQa_S#x)W^*KwjM)JV(vbof1qOO_BQgF!)w_$4h5s4>4tCksE-*a7%5a z55K98kIsYEt)$bj(oOBrJ*HrePZN8A;FSO{w+zhH^Y=|^2mi)50-t!Bn7g}F&$s@w zsUPNS2?kqAl6v}E_VrhoZjr~7Rcqy2TAW0xQPPcjp}J*QuOEw7lhvlu*H*1e7_Q^s z;*K4lM>JK4Dn}CN;jhId9C18y5ynhaP7}GTTE9ky#Xn21(jCnA;s^f zuX;xd;P45_`}=?VUT|0nw_9sEiw)|RCle8yPR-3H8FY)~h$tL8f3Iq7jwji!FE^{P z`A|`B=Q(`LZ5)|gm#(C45|?>jAbtD62B;|}hM#~P%xo`j^##!#;}QP;Adwca>L-K~ zXIr@_I6!o742OQ))5r*UWjyW2mKxEJQi2B((GRJC#dHNyVQh^J;kX>aG6+KVCb&Cv6(J;0X{xs;i; zz`%Gm&Q04os#&kp846EL*23^g&*+)B6qBVi7G_V;`BQ&<#lcozK93CP$gi}Pr_V@j z_zQWBC{>JGI%0#qi1}1ZnI&$({o8XPf$gb=CwZDYn?I?)sX10B1)4YMm+Fy?>F0|l zOebhIg_gIy?DDLaQ$z!{&pvf|p}TOpFb>PHa&(ZDm7NQA^r8u;A9x+#k~8#8SecMM z3<#57C8AK_*)!`?7NcJOTiY#@F>@B|CNSwvB+oJW)u1Q34IWGfwoLye>zO%`?s<}; z$;KGh6sX5^+zEQjxXNld@yn*u`ve{gsk=Sg8PF{&w)$ZuX>X=3Syaa-*LDzd#M4@z zrC`v`i9NysZ>ECy>mR00buCw13@|}~nc>k)5w4!C23-p_fRF1H;p&m8jLxsaOEvp{ zYx_-Bh?}lO)z^cCtN&p-=QCAyVSF{WwKYP18_f}R({;-e*|Ndq9~fw@>rnDR4Pk$jM`%{=6!lcUEYyz!lT!>C^4($m*b2qn|LX&|0v4 zTtk(bYg^%}d9$^Ne*K$I8M~3MPl+J4-TT?N^=jk2I9`yiCb@g8dIsa1G?SiDY(957&wHVyH~*z z-`rl%;kE`vyY0k=K)X-CeHhIIBP)01CO69Y!$zSyf#O*^`Mx%t zs)fC}46t3s=wVa&SSSzD)lw$JYHhd9G`v-9!}r=Um>5M$qy)_P5ha$m5+m^Z=qafV z41|pWSsnX$eF;^6$&mSW(pA=%mD;1`lQW9wu@{+w8+}c)S;XC@qY}XNOaze-lsK9# zU4xvJ6X)7+6W+i+1o27Chu#~Gqxn2oXyV>+&>VynPGBSKD6`mgEhKp+v{0&$-S zS!rMX2W8ne1Q=Gb1ws2XZ;={HzJwJylCLzYI>0jo!b*NT*rgN7tUTU_zmS`g$I}M% z*cT-}9y>^!5T)^23!UcKqk3A3dHUN%KQ_ev^Bd*Hgx{UmQpjVyyKd4LWifSKx1lcB z+(5POR9c!`ItS;#E!J)g?Td>LsR`7s6_RmsidF&ITIdMyT5L3+C-eLVHGbK*A9sbW zMe6Qewj(QkKKWRd_d$~W50fw`B2>PLL%&hM<)~oF^#=FAZC^u)!cx)xrM$Ym0O)>b zf+JC7I^xnb=zug__v!Now-#H-T-}Q|$*HmGQUK_}71Q=a`f`r@$`72|?iF>kYJ~;1 zl>b8#WkflA*EBjXVJ$pI4;Z=VHya(kwh*dMPaP?rpk?f;>OJ6K!g%w@-S7G`pdgzb zZC_T$V}KGUq=u3&0@-3tbpfZPh>HY%Y%VVa=v`R|mVJzNs#6-cTXjkH>&oTAtm@CA zqD|An?SdIbYaf;D_hPM^xK<|X!6Lg?VA>=yH3oL^#*ua)c%W(lh5N6$Lm znOM29XafLpa3iZK#^0eS=N@;T?$q#9^%t;I{~2iIxg8LZApJT^$vs%B-65R$A<2l+ zOMOVw4vIN^ObuPyp*~g6S91zh=bvrLp1V6=h4TAZTxg?nYD`0-%rw8EwIZ~l^u&R9 zBv)whoVzbC1U0vcUJKQD=>eMrnoGr)w>Ezxu6cCu&xGGONwu2TF0E^8V)RUb2Xht0 zH(MZs`S%2FzYpaZ&0Mw>e;sJ#WZMAOF}!9OF{v^3ou3^hM>gxe-f@?d(&D_tdv*P; z#2ojNxTn7>wyV`DI(d8j%;BnrlXm|w*#@e7HdWvR6j6l2&p(@T|1HG&|D4sUSN+D( zGr=i1ippFBL8HVNz{&sX$l?F`t^NyZ^nbqKfBo3M%xDM=|8_t5cb5QL-oeQAu_b@%-K<*CyVU8l^C>e3&++jOAe%Jg=iV|Rmwbr;U+)B-e=JMy_2F*3e zH8D>A-Me{7fxlkHU1V+fM{yA~IPa)rn(j|Z>?%|yyGFwds_bs4Kg3tz8a8sX8akf+ zu9KCQT+T`EzSS3`%u%7`Y%vu>R7T6wY8#Ol$WQZ=RS`Wf>*T)sAB@*xV7+GO37j5E zqV<9sv?3WiL9|{Tu2{NMsk>G9-RTU+sZaGW1b34f$Q?ex0P){*2H{oKqE;x67OvKIR4Ik#fR$I+&>g-rdH#=pZMsFmU_+1q)&MM!}ON{ zLil5_{hiq1l9=+H8>8yz-x+P;tJ`Sh`plDz0<;U{8vdE-@HkzL`my+zdiZlq$F!w$ zjY(O|#r*-NZu?!WV4Q^hYABTLI9+XDW;CkQ23#n-=q8LE**~e*Q$7SaaZz0lk=zX9 zoRd~sK66UM%J*=Yh*^CASv9%kzxFpnGKYa@_-d#Y^^QbzoBhLN@Z{KXnPGYg59}U= zo3xH!Clqqw`$K?~_I#`c`0y1MwK8Jk$~DTjNeE0~IW@9Sby5m~C)@MM)s3J1bxNqY z4rOz<@Z77&p(JIqe2z1gK^phTk=RmkvEVPABU+io)t>PUUlp9CHg@%7>erL}h{L6m z2fLbY$&$xeh*+dbgI`^kt(rT}xW8ELO(#*a`VoIi=V!};Vz*rr)~i=}Af2VO_ME(Z zMy^8Xr?t!-s1!qYJtq$B$*agUR{)Z-2>;@yXmnK|KgO@WWe8YPFLt+HFDi4?2B=)&ta_or!pQ?Ef?<`gu42O?rcA-vYwY+bJk$r~u;1vR>JFZP;tbk%A(EFrA}aLU0A< znmax59hb3gKA;jun0+&O9*B5mSa>?|rsiFfQ`mcSGyg#uMU1JDnO7oI(y3dOZ>fsK z;9%8w%@lcvvb5T%NTrqZR4yLYz1D{-H5jj=p$Xdy?0F(F;i3TWqV=R`9}(9f|CO5X zS>dQg{o%PZzAWzyHxxem{OtR8M|!Qxx8LjN82nykvFh1y`GUx$yvGb6S{Cdo3Z)F5 zyQ3DRtD!4X;NdJQr<2#U?}6RTA1jfASfLwzLs1(qj|&ILHiOZqtwtE1JA3EUnMf6rG*Ur2mRxig!*m~yXS(*?{Y(#P4Hn?0`X=$s#2WlChye!Ew=C#iB@LzXM zb|M{YqQ>wv5byGvxiF-4a*2`+|2>mc$Pu$bZpo|3g62FynyWkA|p_vz?}8aLX9ObRkXT8kbM1HtxfpPaDFQEa$czK<)Ytq zsiz%1s=_#4nJS_>o(ys;Zl82^#WJNotkqMv<<^IC93K!FB9(=`Dm-jVZkKNOxs3qn zw0+%~Hwjomo zRU`{j20^tO4!(XNwuH5mSn}o)|JI32p9~w!lq{9gQ#E!j$c2r=J$Jg}BVUfxmQTaL ziay87;xs|GPY9=s4Ex<8WLJwxa;110yd!x;H|vBrzsOOO05|kG6k*YaSP2}~;0zEz zaC1GP!8Mkl4v?GA`PGE>FRJ~7Sru=FP@<%8vDFRQ-xyuKVW+<|He0zgJN(kQnzYx< z9?9l>{!xr`%%_vJN_QzlX@fU*q3~oUOqnnhl!W4RyqKkGdKfr9hwv{uhI+l*!6s6$ z4i}dl(WGt6vSk5DajrXU?g(32cr~v_DL1PpEuNeGFL{$E2|rjwf?s&QQP~qU!tPnD zVGTs*LcQkp0zp!Ks0F@cYZ~WyA6%}I7l3(6-vMf2rGy|R-+qJVqQKN5l4Tb^3xS8P zY57FI@8WNiRM@Mvrpa%^gbhE_5{Azsp4OlFI|^nSn;;V8x2gRDCqMit|L*py z*DOrejX}38oCh;}Oss(3&P_-y%>nU~P{!vnofiPW=o;gXz@fs#Z)DeQ95%J5<0e3Z zJcYM9DW=~iFB_5rN)(dUa!RQo7lkLxpKR4>t6%QS37_tXPCus;EP!I+wDl=oTKKe5 zR^K`^0;x2D6hUML5;DpREDgtU@2@V{8e%$*!Ru=wDMd@E$!K1f(b5=45LX|TKe~+z zALg;AT~AtAOUQwPJ)P=Yn_Hy$7M{J$Qvde;+*1vSk*wvn$0HUaL;>LvWJy2r^c7ZnS!@W%@e0?>I*4F=hqPRa;v7}9>Lb3RV~W@gF7jWbqIx%~=f@CW zJ1N4(^+t>=_sf*O9u3_IW;a(Fnktl-Mljn}i*;GPQS8c4N(%MZz zY#i6PyZuh>DbpKS?clwdfj7evruKD)MY$84lG8Lw;B>&ZpBpVNUURJPJRF2) zGe(p*fI>UXKc9a`U~ev=-~PkoEJJkz$2lrZ9<;0ObW_OIL53PU5<%(YwWm&Pg#@j| z`#$<@-o=$MU6EFW^AW;4;a#eFrJr4P+=OeVo3gT-78-~plX+)H61@r&P`4r>m7} z()jxWCjAOQwt7f#l~CxOt({t#UoLiZ27oiR3b*U>7`9K@znTv;a4STW=d{nx*2pW- z{b|OqhY=}@(m%aAl!BnYYvCo}p>v79BW?uQ=dr#Re|@Jl&)jKOvNVHM@}Bu|l)bgI zN5iriXaF6;&nDA0onuLKod*Bd>iIHRv9+*#QMer0zLYolGNW~4y#gCPgKkhtZev~s zpQVOG#La+D(-kV+#r$Pbib=ENvt^6LV-2%9_Ggm+S~I#ob+wd_NnQ{hUuB>--?*A+ z>0`UlRM(g=u(KBz6t6r#Z8?g_i@F_@gzU|ynt!<5k8eyDP$7T`ujzm%w z1w|eC><03sJpc5^>YBadeEZ1A)V5brhJi%-=vJ^`(epPKsS; zNhfpD1lRcFs-GEwK7evvwGP0@1heBMgq(_~RWuOYfz;mvy|SUI)T=cc1)A8};gj&> z=M0M3`8$- zWJxBD{}S;ag2R(>hAdotc(o4$}Vo{)jvH240SSHZ9d=}63;t5I_F^bb=jWGBfj_X9xyHyK`QcXxN0C`j8?1Z4RO z_B@W5`*ne5_Q7aP+ygU}wAVfAdgq6%%q_$dteYb)=>0Sb{j;*lV2d5K3YB`{QFi@n z#!RLApuQKl9;%uLxcWt=%RRz-_;)2>rT{}c75Fu5X#0-;!;}`l#%KpxN%jK54tss&WzMpv81K{Rp9*~p z*{j5D!h(9i>80je1y2!y1HOXv+R^w43Uyv0qds4_l>S-Bb=_G^`q;W>hHgUx!4#-K zFzMnLn7k8<`h$SMywY-R=33#-klcSIJs?Iv@~k-njj%cH_|v^(U{VajHJX zKC|UGsR=?$kppBl-+WavjNda>k1cCZY|}3zr|nn~CB@q|!mHoMe=}Szd>q)#U;E7# zH{<*lwoaFVm51$rCTkocX4z) zr4R%Sb--D@^i=&CVf8vCOKeX|Cb;St>D+3oF`M%x9IGir^`uErqrl|kwIqhxxVoKI zq|h{W#^S47>74dv=k;~*uWLFfnjljq?j?^YxTUhq&~Ip0m=1Tl3$u`r|h$+om9uiRoE~tJCFe(^yZJ>O+}4qC!9K;PHT)>YO2hHmhmf7wMuMeLe{t3~`;2ZAAAD9I1_svi6ojcotnMf}$) z#DD9te^W*NrGXKkZ2Uhv>C~aiIi27u)Uh5O=Hw23YA*kI`oo_uvS$_vlwb3+U|T(l zQe;cg6}{`)e-8$Var1gAw`RJEP1KuOW;%{yRskMiUPx_n@ych*T(~J=bfX5N+mWnL zVpOLr#r!+4FEx?x9%-?PjOz(!bzttc8mgEL0)G#{fL+>AMh9{Z`hJ0F+>%`iHw48* zlB^uK43kb;QC~9j8@#Hq+t_iiXFX4fzgR1e=pZJ{){x$w4v{$g^#^u`CKBXnO;$=# zw;)?}b#Ra|z$UZ?xpfop#eN{$ro^@QFux^Bh($(6||w2|coP;GY~9t$^+3AGYg zG==O;3%ONMX6#x0(KYsAh@k6ndmm>^Jt;*R__;4`u6@KG z2W~l$&&mAicBC3q1SLM1R(GxliY5@N2IPkzvU${P?))RW=%g>Rr=HGx=ldEe0L5h< zLeAQ~12Q7QQ=vO$#NAsjmJfPEX%<5K`5abC3pI#6wTNWgd4|FOdHoSJm6WpnUDF>C zv+@%dFMA4YPw@PHW~L@|Hagy7vw&#W{n@P|to>aK6^MeI7dBtNna;aE7TXaUZD z?eL_Q-$s%DFkNqhECcrwYWH#uz`yo^$qDADYQ?l&gS^gW3Haf}Wv2fcHo$9=FaEcv zq>=4n#yc+YZ>annX_U6ojvXp19kNy1`q7+{b+JrXxWa~64a`{*0$G-J$sR&E*wwp>I3EX3i=r#1yUarLq{WQ_!w@T217zSP zW~1m7On63JhW3DNM4n#lP0BS&kdpr*`8!fqu5V_1urBz`Cu0`xrc1Ny%GIJsBUW*? zKvT0LYd-lJc$G4uVbdvS|6rYD<-?iNxpKrW7eJX<{<>(z2r zE#2A~urRar$`?3O1QEJfyJ;ZJ$4%uYclYw&?BJ&BPz#o1&gn63IOwtLM_knQ=d2SX zou7C*+*xRIBelp|+xU~Hh;XZ@s-K5NA)@eBM{1#L-ELiAAOz)>u2NMoU3LMq!Cetj z#x0C1tQ>InT-XYg=|@N3qravC3pX32n7rMrV9cJ;^xdSVGgj|^)O9L$J@~seK`&ia zR(Zr%Gsqlno6+!TD#vR?OE?cKS9zILufQV6KpEMXTEE?-dy2Hv&EJ4rPm(n1k>Lrt z+TDeHH8&Wf_N)NmpULzlM|ji6E^7DN?n9LymzYJ0FY}Cg+G+X2#8058CT+Mr&fI4d zAll|l8aPrMuFg5+1x`ZzZTMtPG8MEEau{-CXrh9?sOBAg+0=6$wxR0Zs4h1Ha2`%B z+AnrNdt+~7SnIQljWm?hHI&UuppbBPrTUElTt@aL3Nna6w!*hI&0kj|bml7n^2gX< zV3Uk92ck-vx`~(RO}zqpKvg4O)NdvEX^NAGrN_{CNtx2tP_a)f_f9?&1)o^$F=qy_ zaIk%Fg=-j7jC(EIwVX`FrNYWwR%*rxTePx?V;`gn{tgRzvC9y2l09$lPiVjxd>nNz zIvuV>=WXpEjdek}f>^_O!5&;nKO?#<;0^;7ZpFcu(siLL%_;s?fzEr16z01v8!dzR zqBGg=6B5#?xwbkR8-CRYOeim>t-otrWLx?6B=*>$9Eq{=I_8V|0=r7q*y%HhT9j@h zvv#2PqvdP#hAcbUA3_7e6oyU22h+4~#IcTl6A)(-;I6@oK57q1OD<6sEo;xs&2HKS zM?6Uq;WlE`%LvT$@NKGV5-f4vOF#13Y3IKYK4MCLNJW!xT4TJV?7H}*Ne<|D*z-c( z!M746w|0{A9`sZ-#E9HpxlI2SWgRj#*-&PBEzv>6>E(%edU%0hj_LFt3q1mRzHL}= zY0-jbd9YQImdg%SYe^}xTAgbtl|Se%t^4?TS-FGtf{l&+9N2?AXRot@yT6$B^@*UQ zc%ZU<-5cKp!)oWmvgDeZdU9*-Fva?5u;l_!Mby6E#H**LZ2L=(|I(+WyoCT;zwHCB zIghbNK+C$*(pWS@lp58KJL5lgzB_a&sHOxXFLQHl9+{v1{hdHdf}L+W*kxK=XR=9U zAt^+hH;E22>Rd(S3 z7aFmgT2QuWLQQ-+v*p(i({0d_dPi#FO5nh`K0hY`xuy^O8XOR%txB`180x277!Cqb z5F{3lZ$PRG5oXF-?iVsQH@N4Xp5$E5b#J#@v%*Y1&Lxd~|A#4sPn5bq8e3B8*omLU`4| zc5UjJD2gZb1ehhoMO=beENl4U3v-+g z?vN>T!8#Qxys)f%>?>WcedM)Ri47)MMH8McoS(Hd_8iLwZDNOVXV67C?!F|MWsx^+ zzDp9&cZ_?a#v*{n5R!CUTXGKVq>fEV^}fd!YR&Qd=FY1QVf>B#=kJ3uZ+*p?SDyST zFP@=5I;_GZ^W4>xymAFvODAg%KFEY&H|SEmK+SB;Ru;yxX=)uNM!Q3$eFvY_p78tC}njuOt_#dbYW& z`fs}Kz6iS31#VdFPmte)-lT4R4+y_D=?dc8?7}`HR(g;T^!j}J>=-7x*Zp%EkFtJG zM1NW#SfsSls_+<>#bdAZMik0z{8V*HeTOQQd-#LBY*zohDh!_St713q87+>P{)eU3I+yhYs zNqO-|=XfeK?>){xwc2RRbU#vMtJk7Xg59)qDgWg(qRkJ9QrigKM1LN7l$jbQ9^-YB(a!vD7}8U1ij2!e{UM9U%TJ-G zS49gZkA81F>jCGIl)fs}>R}0?TW01#{Op_1&K$G(EvrPbnSMdnh7^JmQw6napL6#L zv(9Uj-ty{KKBx`sh)HYDQCzOz`1j^+<_xM9UJ(Hdz_4md{Hfd0uZncY*E7m~VIN*= zX$DEP?cDoO_SZX2kL63C&L6znQIsH$Ovl|X>$@vS;WYRzLG>S|whBGZtTL zdH=E5dOTPBL1??34b|p%jh%Vh`yt=3F#M(pykN{S&~50xX6YJW@H{)j`BFvCEHDF2 zXJwzE>UL`KQX@)))9_)Z^+}8ADHBpLX|BB07eAWTytvRqpe%$lvTBp}HWmu*Rz-46+VsweP-=bza-Rp%*gV&|pA;2DZ2IY5h)}eF2T+ zlP86vNNa>~r3cuEWSt6$(%k)5whv*$adWjZEy49Xz1V!NIH8@ILkJzr=L?E!I7^2vdPl{NHc^5{0T0@Y|YXh z1fjdq=)z=ZkIZ>{*j<2e2%nLsUCbm4mpF5S_k$lRrSYvgB;QT{#oaI5%Bk(x;H_L1 zEGA|HlT8mqbyPTx4oyBj%T_tz_tk5lJR`eSY{PkcqZo?$yoFbPdH4 ziwlI9+Dg~bZta=1M)SqjgrFr}A*MHHX66qoe@y-NtPuZdclcMu;Qymo0X+S`z%BfX zSMk5lOit%&DqbYBw2Asjxt*QVY8Y*O1zbdKLJ=!2!fhiy(A$~v_U3KbP6=(%Q*Q*Bb-4d{r=>+% z4IbUmOxM#NClrmGX~$-i9wycwj5FZ6rl%gmdHWl4x4+yF$S};Me628nu!y3q_#o;v)Pxd>51g4Y={X@K5|O87`}hJA z`S9e6x_GYqaoX1z^*Gqej`PmDFXo|1n`|GnLQ_S2Povbn0SU;0vj?fq|3g>E%-vmG z2PO~H(@4bRXfJral>pw|&_>gOA67;D_Bd<;7nKFo_hc_#CN+LTIF{DUZUp!`4!>u5 z`7-(9SL3H=@P@Jv4mrmh8(#0PTG|PCaFjV#yXywackCj%cX)mQu}hg)x=p#Z_ql?a zUk|^`^#)Yd3;KNWzs&jJ+^Lucg03yKbZwUBReDK>iH)(mJl|^0Dg(1Qd`jehRC*Ou z5l>j&(%IB^5nquN;nRTe>ZFOY(C=4(Dm+ba_Q(Y?mvw)z>K57XVo?!Xs%bNnxHyAB zVqO=u79Xxb+$RPP!!l-r3xsZ8U|Od8k{|1l&b9wu5HN0P%U$oa{XFq1ca}X}<;hip zR@3404&Uw##;6D+`H1IIkYSmDtC<}pNJhw?YlmX0V=tFFd;-8E!>-c5-YBP$J)dfE z8+9Ai1DQFm+`aM0QJ1w8@~Y zRBccBthsY!epG+R7wM2IJyK;OUW~1L@KVF>t$&yTEyhF3xOUS4B_Yyno;taOyCMmb zIC)p2PpQ!aj9J9y>b>&rZ`11W!ec{nUh@?x7S`(t#`g3R6$si6@XR%~*P;@_35mFm zNVvYl0>#LA?SI+l{$*A&?e_mo+Wh~Kh^qOVeC)wcJgM;qx-KHRY?h>$AEBu(lTJ^j z3TKJ6JXARLIicd7)RW0 zu<9ZI9Qus~jA%dK0Veft)yCmh8s)BR@8>UXx}$>+GiXK?;Jyxaa%vwGOY84oX`+@b zp-)p)C%cXO@}4)XVwlw4T3xtrq~4sBYGm@wXV{cNzi@foN{U% zWPHJX)II|6(Qb3(AnQ42> z!QLg9e)Ifbsdwbu>wB<Rn+j}#lePMR65xG}Ys)bu_^Of1+o8ajoQ&1V5h{e= zSh!F_INhou`@Q-D)*@hC&=Se3_d$=KXqI5e=5j25tTE{Ttf);WuX{{<(2`~D2O!&x z+Bx}SwOaT!lG&1B8NjIS;4+E_U+<8iYf>|UBUo#zN??z^>Ze{L?D8LcwLbqnfz#_R zy<1KxH`Vv??MZ}Cb*1*}MJSn6$mE90j&o?4=PTC)i@Rl}O|3H%soyigtib*@IEcf3 zK+e)wKk!``P{)>s#7Y1iY2WCAr$On)Yx<4x62(xww)A1fw*|TSZ<;2j{(7~EQdq<1 z6`Wu4U(3j#kYMakG{8PP^PV_CF?hu4Mr)K?T zo23~wPq*2TFufs&r0sou+JdejMDcigKx$pWTcIR;3-yGP@_syC=YjHH?dK({%eA%rtWc|o7f83G4AT+hMI^-XS z?Jj@2yaQ4`p0n%N4V=}#-LCE_?bWMFs5Ng-|V zPG3MTnmSIU&(_}DB3Iw96+9<-&h_Q(UF$2})+~PXMv!3HCq{4 zo4H^g{6ZquYBwXj_q~_0@r_F>pFuQ9(}L;Begh;WECjGL;LKE!7NlA+&|v<-?t1c8 z+djrl#;&BZh#j~}U4pStTkt!a^yerNEr_ev=u_|Vf?=;e>;J*tdq*|BzHPp^?Vw_z zqp%ea=_0*v3m~uo=^eHrAjA;qEs$*il&VyvD!nC<5+Z>l(xpp{BtRha5=a0;AR*58 z_r7bLnR8~(S##FA)>-SFng9GFOH!Wi^E~%`U)SflT@%_W>HFDppvfzvOB|HeaV06d zs3c2*Hx{XI#aK#;-$z=wS3QM+O&@+*K+39QoiX$am;mfYfsw{JGR;`UbSz>59w`3_7aKfF zS<`Ot&X)IWQd+`fI8@sYlg+SdH#;V6>?mXnT^n?}ubUsnBb-#ff+7ORAZbyRzqlsb zjDK;J-&j9W53OhO<7JoLAMPm801fBJ4e>{8VE;~&q95gSvVL(LN=I%7DeY+&#Fu6P z%ywYp%Lh}TU{8L9osZ$?^ypt?&X=;?=&CummvdnKUtF9EGGYcyW3SICH+oR48-MP{ z>FaJUq9e~7`6)CR?V<9la;tL8Dt~XUq-YA3H88CZI_)5Ko@K@eix!@}NCl5UsInw8jmu>7c;w;QLklc6`w8 z{+@aM`8L5!r(Vv&l;Ae2(*2MG0jHU)2VsZyR4;>B--2*RhsW8E;nmYKM6n&#CH6f! zG8rmPF*oSaHb|~19!6a~@vegTi_3^JFs`&QbFjk+lgyt<_LF z$-_Wa(PEUb`zJGXkMmec7@6Gq zwurt=f1c`(Nx39$dQQV8Q?til>q~hbyAikU0RE}lFYlH7$@=W}r0pUocz(c}Y!}kl zqoa`OPmgCy{^Du?u0UrgO7V^O^H3`qU`glu9(;IbmZ`t`6ve~p!w!~A@dwsk`(5-8 zVfmoWXKjfAaChqoeywX5U(rT_3)!$Se<0t!a*k4jk2tA*u=P0GAC7UE&{6)@pWsr8`Czx3F zd~UM~AHFH#ctlCo|6Z-DyRf`#SzJmXK#&scSW(^1eKiAG$PE&WjE>b~No)_>9zO ztLNG_!b{dgPI_~Y;Km|ZUTny{1FiEg7YgN$ud4Mu0Tb}mw*+ap1H@QoK; z^v{OFvY(LGf}yKX$CJ^q#jxX3{?~4EyU2LoJRf?x^%j472&I`%;9^x-dYZXR(B{O5 zADL$@4P$8>Z4oB*CNUk_yuH0k1|IwYfArKrwk-U5deG+R0Mb+-9Mq<5kr_VW zF7V!WZ%<<{prLyx?f#GV^LDn|pO1h^7<<2jR1~5-#yRa(WY>2qFp7a#EH_iS6>Cg70yrlMRc$5$S{o%x@ggijtx zpvs>Vtxr*QzGE5@Dq`ZiS(dLvm5PdRXKX7rxGL8tW*+uNVyS(lY$^f4FuptQ!3R<= zZ1jn1xUU9U3HF5^uW~mjHx69)-zgpAPJ7=-Fx%r`0& zn@OF#Vr_PqK3I~z<63PzEiT8@Xv6dUIu2cDMRER%|^rHPiP&FDF}J#O+D}GIWzf`18~8q-ysUdyh)( z4B=aXikOw0I+q(IaPqECTVxMiFt#DuF1-)5uIZlu3&x!2UbnntVujQ;+i1is1w8b_ zFe5|Uw@nUL#t}gkKwE=X_Am#wknaZsdTTL(d8qXjqkpA*|A!hB|GD}g1CmU&rI_#5 zYzxkhF5sMowP_t@GW-iyuS0YO$XjS{a`bey8jn>6aBC?<7%19F?cg=CI&EWyzr%K@ z0|z^ShZBoCSoRyd&kzuARHT1lCFT@of-}YG-vMk8oB;+*rT@d?FD?fxJ(8^@8V zqopJ-_%$|Kd3;^jaXV=O_uiL0`Q&$6uhH#=mvI8O4jQjng<4dZhq(_L1ns!}Y(iXn z!1xh9sBt(|!|>hV$YG-PRX@zEdDMF4Z?%c00))RdPgoez&t0;Cu3t~dx1aP^3=ysH zNx37U_Sn{~R^E?qj_=$#t(D~aqwu(VO(LI*pWbF^6pq@AhP)fFz6dwFAd<3OEoM(G zGM%W~fTIr3K_mKFY~BXuc=76QdO;6pT@ z*Q`8Q*|Abz$q9lvaLu=Wb5IgIbE{kya5inQbjpKASAe5*5Hc6`)$;Na2j`SefWY4J zHRqaNwt)32Ejop$$2~Y9qx?Z&=Eq#Q(7x9rz(03R3-0|%_Est1Xx8RIHMozBi>8w9 zYHD@W_^Ib4V(ft%NaB8W7WqSa`9{Eee#~Z{A)VYk0P8k5EAJ29{6rgIB>M1AQI91` zUR!?f!0Y{qKhfMSNd;OHnHB&O-Zmj9u?1XYX)P1v z7iu3+ACRae4YYGfTC4oivO8;6A9(l1T37Mic%X%NZ~FjAEf$qJeP^ZxgKmxlMQ>ql zW?WwB%_u+wowiGFWKCG&n2<=md9}xrcCIje0*3bQWZIOx7<&j2bHCE^W<= zxvNvP1_PB7db2k(gMTs-ct*2xx9}R7@G)XF<87(mJ-2nbI9;Z+f5jT&@QV{rgn+z;}`0g>iYc(`&Qy0*n^^ zY&oh|=mLs;)Sj(5MM^w(D?KVDG0>&XR_>RPMTpG2%1DzzrJV#2PEx~DaAVvHXzilAh*-?jJ| zUGQU!sE-?{r<1mngAIO=x(EjREl25s-5!@wkSom8wy?k+zDrL+C+vBTz0>u7M{4_O ze08cRqkh?6eYe~2bT_ZHorHLTqT&{AVk3PVfgK)lD1a+HT6|n8tdx$!&aCQZ|5#f% z%s?|Em(74SO0ig2hZKD|_pop;Ah7;0T@1p~f%fkW4vrTHAG)kzqZ4v|E(1i-DNY#L zY}M`;R}5VV^7JEC%T8?vFP({8MAn7_QWIJZQ@TS;jAi-b7Z<95l_=h@ALEm`)YXIc zH`?$Yyrq&-)TFE$Q)^_41m!#WksaXN6L>j`nWX)~+lR5Jb+@DK?x!X=svzQ4Tl96} zu%fOI(W~Xowqs~MJS^+Ii;7~*pxIwnKGC?usyk#TF(}RH&Kbc~BA^4BA8z(b4~yFG z1q4z+R(u4qpJ2O(-kyF!ohA}SvCL+c8Yo7F-p!UaIE$0?VBesZOen8rqqB%!xKiI} zh^Ro4IY^xkUWLE*;L)jV_usBWupXJcnAP(+q=I8O-te{uDN6dGLr_CPy3d8 z5AMwVi^pv_hmQAGKn;nk$LJB1d^8*|xcc88jPUa`@&tE;($55loOzsPBCR&8b-VLU z-qTDr35UVq(_AD@bwLM%GD+yP(Yn>;@jYb#1*F8eNKOhZ(B+U=O7G^Pw$1`l?!)w$ zt%e@a{TXk1GR|EcylfEus7cB)C+>POPz(uGGZvRvTLX)=KdOkfQjocxzKK=22r#bf zIC-O$ft)=3FI0V-8QMQqEb$P_IJ4|;5Va72rSCz9x|(b4V(Q<-U7J|Ukb=-usXOSt z{^d5Ms!D~epHv`~%j#i>ssv&l4c4T%8j^eoo z{#Hlq58bkM0lj?pB_+J(aw%2TRPlSoeo4#3oAP0j+5XcTMzYD;K@OQ}Pp}Q4nCOXY zv~dObY|J-%eg4F+$dd^W)LF|r^glTY<0vP&pE z6tVk#wd?yUsblz#Q7{g%2f-d(((EnOPAG0EzhQ!>JxyDwscGg9!B1*<0B^ILVsM`6 zK$&R*ekbnmx&`;}^fpFhbOZkB`+KzlFIKxhfSats_>QM)dd*)BD8s(`Jg&DAHB}AL zQlBP{S7RG~YRlRNR*LK%PL`xcO&f#7vds{)))Ka+@&Aq41>q3twSCy>H{2 z7im}&ZL|1D?kUiM~iW zv1P}dmXSeM%CB}Qr9u+Of(3-ror;jZnzV8uh&{XlgKWMLLgt5gCqp`7w9s^9d*PeN z^0qC06CZ)>D!2BB=PJ*Y`wCxIme;r(QQh=nAngy&x1bw4MnQzB+?L|TMihn9=hrhC z>?|l}ns<$WJvIhZGZc-w7yPj30IRE=oS_BxA2cuBwjhAf%~J#AvV#rzBr8kKw9BsZu8EVv zg>ocRkV9gwmqLv=Kel7q=lTYYvQ##j(fixo()mjOM0#=Fe>87dg1@haRb#HS&o07h zMc`OF5l@4)$iT)n+N2dZEd^0%8FVo`d=IMyT3?`4pi4tb+n@1I3@QdD6o)VUbw`%_ zw{_b`VbeQW-B!*N@Tu~LYgs(-K57wp2BHvv;-*fq~@?e-i#$Q}UdpSMV3jP1dovuoX9O)RZcjC?fmfkH!25 z>E}5TTXv;}5G^CQ2@B$Wn2h0Iz&9)j# zNImkPCf^?!wFp7@M(R+TZWVI(xcWdq^Xs`Jgh(MuZb zyy8FDcFeH3A)(c`uFk6m)K|{2EgHA)RbEaIz8fofqE)z6Vy2nSClyyMt1=y`RXJvN zDI>JmBM7vs9l5OfKdLbQfs)2+_aD>u{|{#6{|p`YpK=TQkKX*hPwW11>h=#noqwb* zFuS|)TTxju~LoW>kS{x{5 z`TompBTxqlD4!b??Y=}*5P5=-^2#~&DCF*S`j_T7>E~~`_*?BuK1bM#UNR&WmE^M# zhh)i-3DR^uBEMF+^r@b0-j#bfTjA{vsp72qV(x@9vChPu< zb!J6aYVFdT_sXn{l#Z!&2Bg`K$1o;)8aoXi`&sy-_$&SrP9z*KjH>az$_9>Weg2^` z$t-QP<)k?}pFLq+y8kcml4I6AXvXgd&%xW8MJmhfJ$9K3Ig6w2E~?`PB_k+CGr7d{ zGU}nMRh{n+s5nxUN~ScsOowXx;sQf>#6r)Z7XV--3F`TTidny+<7L`0L9p z+51{|dWFLjg~J}7|3j@O7QhsYj7Q04yK&B{u12%q+WB_Nvf>jp<|&i+;*!*{=T5KX z&ke^L$u^2qRUs+|WyPnhlV?b44cL+9M#P-+uAgouSW;5Tlex#gE=fB)Rf={F8b>D5^ci_mF&-4PF94=!|FwFn0= zt=iT3gO@T;XqA^a4#49Nq6U&GtzX?t>(`Q`@(3)vj2E zsEd5(%&xOE3$@39e2Pc9_3ZlRtqFyiN-)r}(dksEgj_ik=>Rp0Dknah28dBqy@Vq98mjbn;Rl6{kY1>PK zGj8WBd6-!sQS#Z1*B?YgC4*V_()2Ii%A=ipaAdJuyt=mpBrTFRM0Rd|k^vsgBI~h; zi&Af5rHxElJKdG;O_P=&aLULkq=Q5Uq>&=fKMxCmR%i4kN0x2aI3~6>NN)Y?rqEbl zgTgcfbyi{CzrKIEy-@jxj>*nBmGL+6sE*3O${B8Fs6Z&nA_rZx<3H@C{7J(!X?#kL z;}#?N6Pg&UfDGXS?o&ru`fF(Nkr*|o!}k_B+KwC3cdptpK9!=Qbixla#3;s21>O|o ze&Gu(S`OTpG9mJE{e2T|U(`zvT5756l{J{QPRb>0rn{Y$87`M^KY3hKHm}!XrlAN4 z-gTBPJpc!yJC!EO+d|2o5or4J5UT$&MISqt7;WZAm&f#PpS2xWY$o;aXuaypB34y# z&xO7<45P^0Rq7sT`|eJuHg{Sd@U1rai6>&%xhh{R99LM8zqkYyj4*+#N+B-gMmel} zpiR3Vro^11?>N$Q@h3yXlV;A-x}KMs@WxZ-yUuZIFSkE?XE$a=bIkF&%<8y_ zi|Z?c)|o;^88rlrTO1H6+dV-Y;4m4}!|pS~=*EoS=vUyV!ekNH@pam%U5L1)tY6OA z{_G1^(NE92Up?D?iruy#mlAkFXPFnA@YOcm#wPD!KRPY2Ap;JHx|eIBryA|fS6G*# znBdy-Ib%OkS_ItL4GUdkO*Ze=POgd9i~kLEV*TX;mBWrA2y?hx+Q^{Q+(v4+h za^J!mFQ;ROipSpEt}jR?gToH-xw)N>q-#D|7b>MM`06|*S~X%tH+^ICR7IMQvso(~^Fou1tx%7M(RnEWSYMj!g$x{R^?!w9M)I(+0+S~|N9}UJj&`NoJ zLEBGg@05aGJ|AvXVi|H0w1*km7^P*m9>k!+idMvQn7Ng!Ic3#lgWvz0@Mdg7q@;vy zc;Bdgd%N{_A5HitBh5Fn&wgf7KChXF1(ekkW}!jf);h)O?oKJQhOVG%kq|Ge#$iIWbYTN6fR^50$UKcVmucs+bdT$ ze6TsQ{DM;8W{o6<_>vbj_?b>(1p13@VFU14{mIAnUlQlM8@7bjst7k@rPon-+5M`V z*&vO>UKlH#Jyew77cTgV%M!pemvjIWlGYf$m$RwtOEZ1*#<6o_iX2&x*yY;cLf35T zwG*YmulH%F3WSz0(}%N#mt1pI_xI|fIf9o&qae?DnKMi!ZL zIS|ZzC(9b@x1)JSa_0ZZHTwVGO%XUBsc)(sSMYW5U82c%7&C3tY^f?2dGxIszmYzW zq?HlRc^=)A*VW@6GR~wO=K@NExLW4bUtEUiz>&}47cgLl{>{q-iN6rvb;Js&|9mh1tFHsy(K!RE1}(~hzT6d+h)>|0M4|C?Fm@oXK0IYWVCm{7Uu9v5 z>wjv$x%N)uO!DxTwGu8~pv(Nf)f04dz`z$zgv>JVEOoZSsOk{#HI0SHkx%hajvxczx}PJ#1ZM9jXxBy1Q-!aTgP8qbRyR_VC2Fn9p>Y% zu}x`V0OarQ?@&F8(wW-(-ru2+hflK`H&(Vl!KJzVu^$BGx}tr*$F$W{b-R0c7Ys$I zH+O$%I8X)vy9vb#@|!u+dP)F00oLr@7jqgI5^XHb8XOJJZOefHbJA1h<>4<_R(MR- zawjIpG|gQ{_Y?Q$Be#RlzrX7;sgbizeky-6km)IAI78%UGxkMoDpo0_i5`39d@`eQ4L)uXT-x<$Lu5VJuiG=81TvB0=5#DnV zl|79kb+{hA4UBv5;YRZn=@gDUXUO1ui{)%`m=$w!_M1OjqEf%|Q5H^qG)qhBiTg#V zGYgp{iOVuJZ?&jSBQd?m#uRp4YOg(h$egDFTdMSkv6O@h7>72e5upzc3pP0NYX;}j z=Y3ubqM}P~7xf$sM_RHp<76IZIyuBp7fb&#d35vSQ8*vD{?%+_UPfV+{b=vMX3nFK z4H+pw=&Xr`v5&hf1*Wfw*L4-odI*FY+cBGG2Rw}F*UJbYO*n@-1aKc>lC zDE`sQotJf`rv{s2TQQOdnuIF&BNi2ab8QK$Dl>pV`C+4rOb}UCN$R@^F_>!KrG==x}6wJG6N+ENlq01s20M~;%Lqu7KpBu zhp;V%0i^!xm|I`yMju$FhO~Km?EQ3W$ZzcX4Wpi8ulz0==pC&~tN883Ckvh3nonZ( zo1{eW7i?}6?%-!V+cbUYMS^{Ry}5rHHXC$(6Hz$*5pdXtM=>7IPd;x^o*R&!4}Ccs z(V{x4pNV9;bWb$qz?Qw*l-^)xJt=1O%aM5^BuKNsb8FQ3wp}l&k4gXsqtIGWyaE5#M0K%S69&X z^>`af;YB8S7TIZb#dwa995nB7+Aj<#WXTKiI4^Jc_wH$D+gq-rUPZ1vBjFDZju!lJ zJ4K_dlWt8^v&sGTcX}$18o$mP&`_6=XToM>$WRhMHsK zQzwfl1Dn~^g+v|`nnS`aOKP;3uJnQp^DQG|KmWe3*kC*Zcg1ZAbPzGVDx-uaBt)|cpMP2v&%ru}&Gr&x#Ia0FHAIzTF^(LgWMr0hknmIB8 z>|j=3Wcdbkht%CZe+=b1!*v{_oj3fz#7LH5<`wNho?g56uuob`eSsRfHwsz3jO=R0 zPc{S60C~0{0BE~Z9?sjT&LBVH%+M@5FI3*ZJ*adQ+_#}gcODA;}FHV zS8gVO+i4>&Ma~C2Z{YeuX{lUoTD#}X3p$+=p!}~&JO35D@FG>yAr3>`g|I* zR%%?B0f?AE@;PYO!}%kudn+?i^yA3*OYPTpI>gjR{U3ipI}rmU5$g4QO|{LM#FN5H zjdsp<)+SNL0*4R9>>zIBupjM{WtE1FhlP50DkIlDp~tvx)04UN=V5kB7~KeVxiIwr z5|2bqs7^F&@j?w7YikMoe3GCD5wmRWVt@W@iI+J`r9vat$w+~%-k-@cn={dnkcD8o z^s3?!6DJd2Ik#qyB{m^CQ6#32b=?Wd3p|-N(w+Dd)8Xzqt08js5WydJgS>PGN2^;U zEef2H^Ij1(9~>Fd!XWH2uP=;MmSm*wHP~ZWD7^8HXKCfybtcZGn-~ySfn?}k{iX2q z+~IqUz!XSuPaFun5M#cys|71AyVH>!JmyABr&>u;@dtiu-Ml&5OI;>kOYMx{r{{7^ zRhaM=wCPrlhNm`kY^|*--Cv|LIE7HRgGPSqY^23+pv7C?b3~?NzB8P&-g#CeTN;k} zbAF$^Vtgml=CPTV_UG*p<@~DFzo&w7F!lMqHkC4Jn%A4MJGP>B^wHQx;`EE0WCLG5 zr0|wtO>o$7Fu`r_XBd7qUzFiaGe{_+t9pp<0@Es=yG`Hye}cohvor_}-}}D}NRE8# z{6P5Y6kpX1g;z^OrBzn&c+=skG~WmhyQO`UKTE1k_H0}5nnu{^Ah`qQnZzRdarD>* zTWTIMncjv!T7$b}Mi2W++Y9=9?SjY(*Jnm&?G-&-!z!A= z6qg%Z(7D1*B+E*CJx+r;bkUPA54*98k3BE!3eOuv}HCH|m0 zbo510mCQ0#78}kBpOonuy$b#7!nXlmi<(Nb-g4CvOaP;!pY7}s6>>dzUUOTj@2uW< zJqo>FO@hdY--ER~vd{nGD(V4HlR$4ZQJkaWm~)b?mfFgDAYTZq3|a*+$C_{8`iB?( z@t^Q@N0tifm;ZG~HKd7ELn@#SG`-k%Cc0x!j(_O&#=LieTPVk|aLZwXvR2DUJve+%~GLk+-nJ2Q4MV5 zM}s(3a9%04@O;aaS^RHMMc_2aMTRE~ZvO-W?T@SRCfgEdaK;PItELJvVJ1Lgtu|{e^aF)w zWf!aC65o-PGf><7tV^?O`_6mxTYkqEr!^@U-#cpM8yQ%ZdM0|&AvBsA=Krm&rqtpb zQh@>wBT^-)#4U&KyHvS(W46axhdD$uFpPgl7L^*?6$QpV`?VnT_Qk>{KX9(KT1Sfe zpfxq;PIuWlG?r^ACGgrE5@QIjGywl%wE~-Y=?(@ZDY6S z-$JrRnsC4E?lW{%@-6f7;Y!I|k0ASKt06%tJL`%XB9N}x>=D^mT{=veIdNFa(PdlG z2GDPGC0GhDaCjtr(FG{(nU417BU&Y&^lUH0y2U)!y03g#jol- z+&V)l#>7;Ewe6r zM%J(;@5Vcv%mZx=wtW6gulwJ0yX|g#G3jzCzF}^gkQW+Ru>UVU3Z1RTG^=2eI{bzyEd9LV2Q?Z~XfFU2<4MWRN;l+^jiLWOh#8_*zwy z==ge!JJP+;K}DYn`p7Z`c2>T{;@}?c@)&!y2BmP0@=zWVGIfhDOAuV0cIw!b;;YZQ z)kd8&e7C=t<=iqU-)E0vVtn()s z&F<66u$4~;4h~_TD9S{W&x8GTp(obSdBHshW6f?JV}1=UYuyRzmL_Rnl?1N|2{fUs z&HaU#9l=Mn-NI)!!SQA}uwxuqze1s4v!M$nb7rY$!@VQ$6ytyjS8>#u{SV3_wcqob z{aS+4d&Fs;w{k_cr4|<$81t8j# z?f-pp{$G9e|DYjX!TnCCfhv4l(;lpR)|lg82$7oZ-x|?;XQm_m@z{h~RadN*UBS1B zOd0!1k!RD*5=+S{j9&Wd6jG=ARi+?<=`+VqeoG7QT6d|7dX?aFFTr=0HuE$fZ8lB# zwUFk*d?VlEsv135U`e5@3&N)k{FGEj4Qm?Ee)lZX)c`M4Mj}m{QmZ%N$ebSs@6Ufd zAISUrgs4D{--`2z|GQG-pOpo?g&c#JVVoM%i>}l*bAl$=hGaTnmYT}l{Jh1P_dkw6 zUw;fAPw`I9#82>2PW~9P397a(@x1bT5eZ1V0ztAVu4BG!mmp5+X}cyIk9P)byhNQ& z{TuXM0L<`#h5+_ehXmx)r7_hn9*&LUaHZKd@4QF>=YIQEW+=tIt2N}e`bxt3(z9$V zkCvQ^5z#!%*@*#`INdZF5SZG0eI&-$eW)=TG+eObm;!Rt(HG{$a+stua$m*wPuFrb4}WxPb{RVdXE$^Vx5I{d0?CcZGt;5l*Q*(hkv~%R z_XOp_>P=@{3Ucok=hDlXDOb*{z-XyVPtHZFFdz@GLY#Vvs^9u#az_#O3_AT@yxHRe zI$$JE58$IVBwB3Mo36UBhAb6+n3)Dza2^n18dI??gMypB|0TU%{Ut z81Lj-(+(#vY6d9qHv2tvwOy#|T#%v8cybs&T|h5p-`;3{L%66T3kpu&*90kT}D|(Kwy0`nexUTg69Q0%QG8iq?+V z^%&lmoLSWXfOJS5J*5ePgnI1i+`iG_VZY-h&Hx&q7z-C1IEJy8Db`Y z&QYIEL_x1p8c}X?Id(DbSmqm^w^cl!xdgXfI-#{57F^4K_-Yav%?XJxr6`(r!p)Rx z`P_Aj)(M%^C~4^{Xe?!y>WQLFGd@)^qyB6eZy4Hev!)QW{2Ry(@&G|OGea=3-y@Te z=J0HG{u;)w>wM*n(QH+lVIske`hBTXW{}%Xq8H$nkX20o+sE+e(QeFOGccw&xrRxN zYXN#ar@gU|(@}bY)Y{2t__n^K_8<28>~|?LpaK5jhQc(6!?G6~v*F6;0v#k8;D}1O zqu+>)X(r&Jh@x$&$HysCqMn}b-Vwx5fhHyu&Ba3Ml)TJB{|=N?ELT9GFzy;4lqv@F ziex|o<@1XR1pCW3ea+zEPD`Od-yM<$72MRN(lGyhLd`EqG9Mk_5oJbe!iu;Pq1lbe zhduc3WLhIIEIh3g7o6P}x+ldwn-(=U(=>n9TWk6A z$j2S$nen^kI%)jZl1+reLhY;yYUH$fI=hq|GIA2!NTD7CPv>Vg{+m75Nl}uSq?k8i zdVtWTk`DMFJM>Pr;V;FU^TYE1w%7BZd{sE3QzP>wM8;53!bej=*TGKK zuUt)svn}@lk!3FJGcmBfSlOrbrPNMox-pXx7KS3+qv9}!%fsVuDjxi%Oe{G#GiKrX zE^tGwT33Q$b669cN_=^r&U3c}ANO-SYh*WOphEDJhtbNYPsS9LVDqu}83pgJa)4&w+20wG;7LYyAX z5OAwdu|bdG#uoNYp;{@&+ ztc}F9niK!`wd)0gtiJX8*V^5Z=>G#)yKX-QRT_N${ax6%RLn5eB6j_v9D|&Rs6BQ3 z-8#hGXa6o`JDSIgMTEa>FSv*u(^Z-)Wd5o4E$Pu&aVq`C{_MA^<-xc7ZdFcAm#JSD zzN0En;bR+eId&8F>;8TA)@E522PMQE-zP1IUA)=UN=DkpcMb2p?UwaZNG7O+K(k;(4=v21(6$ZSX}Nr{dAknOmq7%IQ{jq58jzrqL;ULZm?TQq+lY?&zWFy zxR}%b|D@ymf0EnrrW*LAa)s0zy=f>g1mCl^<4;lBRs^sHV!o{p03Ot z7O>+Z!LR8!Fwya)x5p-S9KA=LMwCAC;=l7E!++YurDt0Yx{KMLT5J)Wg)hMzf8iSkuQ#l~*)$fa}%4VIAw7n*&#ZrQa3+4$G=Kn>BBWXUT6mP&Q;mz#z z0fS7&uYLi+Hsl;zO%UFhb_tRn-~aY*2k_I?yGJHf*=Nimg$#GrL0zUZLu~8mP_%k( ze($qV({UWhRE{<5yAyFEBpT8OA2K^k)is*~2hCcMAPefF+!T-Gdino&109dR`brl-2C*4e91;1vaJ%;4NdoE-rgOSFbN(}&KY2)=+u zAX3Gd>o(uvA@lQIjRMI5kLyf+bJnX$%i_3fdYyX4@w|BJob96U;`p3-AWKUh4C!AM zt@OZHErPrrPi%Bq&h_W2h- zCXLYPKf>jirfv48(AHbYii=Z&)HttmTv9KxtiH9}E4`B`Z0B#5mK!=;v2E-%-WjRk zzeK&$sBuY1(Sa(f;GW_-6gI4ZOPT&K6&`Oy`wReGp0cgz25~!uZsMhEICI+p?+YYRPEvh2XK36toLPw$h!p)Z){;v1WnvMIK`-d!4TuiFM zgm;F zScO^H{L`c((s#I+$sH zP^dczRc9h8?et5XbeC0*6w_uF_9hZhEB*JF))&IGVxp@GRnzlg?33X-;pe>tDt#}i z&xna0Pweo^aJFZiZc>D)myk>BMvdLIQzz)*HP^2Ytrz@(aN3GHfGCqEfiUosWl#q6 z`#Ha_81O^S7KbC-1#8JGk)@a+uxj-4wHkxij2ER*=Z*bVk*2n?nwDEDqmxK!jAq4H zvZIWlOR-zdw87odnzR26Z|c9+AO9c&{>Oa{X=+ZgKRGCV0i}9aqg2X_m`ieF>!NT; z%<7Ky0c`6FyP$IC%a0s<{*Zd>bsjIsz!?{y<^$V81!t{OLWd2Ctprr<9`M`#b>us@D0up9T7s3!)v>t$siGqV z=397*N$A2iO1DuBzPbaHg;)rJmwRpdiVsWVtb_7tD%x zmG7-5X_Aj3{zk>-Xqecmop2X6y|L1TdA9v3Gx9=md0+ox)QobPD}K5@a~vm)`_^|s zI7&Mt4=FSt7ty0y(u@@$JSG|E05QDh(&q|a6!Pn9@tDCu6y8^AmIAOgJ*m!xuCrPK zPCfUj?XOdod_v_*QzB`~t@bsvNei*y{8H--37Lo>CrDj_8AM||KiJn;G zqmhtlfSn=khw2Ws!MI~?`H5Ulr1P|r>v6ckOAs&>InT`0=&X)<6LMzb?FYDU*7X;+ zTVL|T{{Hw8_DSbowWevQl6+|yF>>bF!v>+*`=^Cmk)^xC z(uXaB21p$HI6aqw<-7yNNaXVz_4P>e{6bQTPRZK3PZ2ZH!N}`KR``)G&lVb;@1ieP zeAR#K+htv;ZMy!URHLjXs&?C1qbzxCrVl<=DPsG{Zo8-ZLuUj&!9#T{WL!bersE@B z5fxB6?{zU>3?3B^nI|FEszDoHJ;*e-H83J`~Jp}=$ zFXzqQx%>gFT^m}c=b~TRFf*+b)p)4G?_Pq#-iR(R4f7ZXso%CAj;KG{Dv|}KgXS#1 zLShT9(@!9k;(p@KgNQ~bD0+y0uo7IZ_VvYt$@r_nmQ&4*d7qP#cHHvbc1@I9H~8a_ zB3Ua7``1WY{ys|fhGw&#uT!p|`rK~o*CsAy6$U0m=cmlK8XRxYp-D3+G(tR7A|MJf z_ld@`P8+@3jLo8|&NIFojj)t!cz$`7D*3nF>ori0nwReNhr-Q7)r|wvUY2|4>ck*P z($4h3i?&{FLZuEOd(oLx9383SPQbFu=b%AMpuFb=2FTeDaJW$@KV=;o34Z#+O|PC@ z+K}E7YGix$Mbjfkx!>+Q!eEn>)#gR2)(XV((pE@G5@F;_9rjP|(R^OGT?tj@k(Vg4 zuBnXU;48Nh<+azg6;H0qe#Mbq$ui&zN#$W)+_{hb65oo^Tm3S=Yaek&K`n7WvhMk_ z4GFIDgZ|8Ck%1O9Rl~O4`9|e@a9pKxF4`Cbw^_vJD(3NP55swG2bwf*?1uyqEJO5y z{TTRr(4WA7zcjuT4;TKe{kzSLJ|-alAQq&7@DxY3o~oY|@|)W$u`Ay91uyhZbB zxg?YVjdY&L975Kpr6;)y*2dkH!D<}AdK`MRvOUpvw)C|_P-3~S-jzH6ouyc*q$eLT z!ahM$isi`0Ohz(3d^*gv8`aev@(o}#k^3}=!J}^MnnjC!egE5};m{Phj!ITdT2WkK zONIgU2TOy08xl>nk7{se82p^#(I@N=jm$Y(+PDtNH%gupwM;!&ZdH0UbF*p8 zVQxeGj6%!pfZ|EAnU5GMi1q$AQ~IrDNz*W}{n~87O9R8?Qtrt(eYjzmg_V_?ph|Aw z&pm55ls@FRmQ~+pzg%>~@=}bIRYMGP0LNf8StfEs;%6c8uqRuu^ab$v>^U~LivnQSPi-1V)V^!4%iz5x}dNwkw24H9rS!;2|~jM_u| z9GQP+MgNMx0lc$aH7KS|?^y7P~+1qI5( z4&PCjPz?~m!e8WQgnXhzL@TsZ%(>_9jsBo6^)$yEX2N!y9+(XVR6ASLmwYGHf==r2(zzsF032r2^Zm+n@FhgL#1=F{=bMx9Lu6eTb`{-FQ z*FOO|gks(nBCq$>xMH@Yi*HCw`EX=hr4LPKo)Jr-8m(P1Xya(o>Q?tgO<5PzL{AaJ zg_e`B&8|xLw4yS&*WLAu(qT;PzVjt_BoOcw@V#vPLF-t`+8DWnpekOJmi9A8Kbp>{ zo(I~Rf`21a^G{lj109xRG1WrH@!jStZmKTL)xM9?TtHXD=l8_F#7&=GvlG63yvpz4 zl-&0|A2Bb$=AF5bx0|swEn{IZ{S+hd$swuub+=7sQ@M~KkrCf2(5!W1V8|8$vypN+{M5XQxhT8 zy;;2HmzClKUo?(b7H^D#%S%VXwr&R=dZYv6oyU$ z63l~NT-AYx9}Q@6fKu#dZ)m{|Etg`&BuKaAt(B{>9j zHhn&K>s-VMRHfzQ_FDeg(c&e2@)AD^ zE;}PI!h31O#$AAg`(q5g=R^8rVA`T$cC$?bZ9tiq#EU}P;4?e|#XwBx6biO4>uCUz zAE2cE{mf;VIz;Clpb#Ukkz5PC!wz3Ag;#%pXD6<^RF^_LKqvRF zM?$&{_9exDDdjsP=Qcnx`vx3US8;{g%Rpo;zIn?P#o@=%NzsHk_KbsiDP6BI>cF5I zou4{*sKmJw3fqQ>ucveL@neT`dw|F5Cu1N|(_?;=6hepU93mAt#{953%jg0Ub#w^* z;Q;u*fxpzbXOM`r_}TuNbNNshu28)FUs!w3s3!Mz>leGCh=}y2(m_CwUKOP;dXpL( zLWmIQp+>1nmA<4(jg){uLZl^1U4Zl^2@n!`PpAO`>%E`%ydU=S?zPX@W1sVh!Qev} z@E`a8y5}|L{1M@w4|gc0twH&b|01%Tqq|c=BQaPJO8RLHKN4a8H$&yPyv=A8QwLTn z7Wku2=$#JV(4{%uJ=v@l zFhHu8^!%W^rwshiLJzcS#TBx?QmRb>j)3)TYXnq-H&yr$V5$`UawPypF_Y8SmALp7rp6qp^rhyKM4vR?1$C@;s9|AS-Xsr4&ei7qAb@jI|?j@omuxB#%~!P2iCoL4EylBNQ2E#=5xTof(uaf zv~eWZW*SY0AM3&p9oPq>IM)^^IkCW%ET!9}N97f`^>PqblW`^9fDQRYu;&#^!97A8 zrf=}Q<5O5ar@cbKrd5trL$&`FJjKX`pO6dtsQolHjjx0enwf!@v|Ag)P(gjdHJhhu zDaUrS3zYnyMBZH}FC_nl!Wl27fp;N-Wo=848ACaamOQRooHlZa3$GtFbUsoxpNO@p zc(G-uK0{7*(3RSrCiK{v+i$r{EwweK-QQUZsaaZxn=y9!-gy#A{5YxQf8Z37P2!87 zE6|dtbw3(K-|gX|oUeVSxp-Byk)&K5Plul?%WyR?7|WzMNS7Gh^uIWJ;}XAA<7Zu2 z6WjT;o2RR3ukg6M#AywaO1T8}k+UQop9auzpP{%~phsAXV#82aC&xrSD;gA)$4x6M zF)d!n5{P``2R-ZN{a4D<)ly-WKDfBWYX zF$?*=^f^n-_-Avvuh|XNzZra4HWyhSvUYyTGudT|W9##C?0XqUX#d95^eWirP#w#2 z_g+nxF#0EEnwyy03nLoqcWeVj>nP_)q8+ADe=~5aOMRt*_Wj2+Sz(@wn>tjhVY*R_ zGY0p5POvWpZ=e*|dt3LWXy3awFw;}>uVtNYQ%{JJC=XOd4aOQHxjZrfiGnrgm@w|C z6e0KA_ftZ5J)JAGm)e*ocOIRTh4I2F$Oj1_=9O;nn}0LZ`?-v$8=W8lVNwW_OHQ~O z<&t>+L$dhWS@!eu@rw=Q3}&X7YD2K0S^R=%dHOUyU?dYpK+Fb=p+j6kcel#g z``TAH?IqlcI5_T6E}W$Q_xsK%mvR`Z6t`t?>`a&r;Zo3=?=lZc6u+$Kw|b z4-VtM|Dj@aIcT%bB1U~}B3+cdT)6`GUMOF}-tM@sL1Qc<C3spgs z2U9g}FO95w+;Jq@K5#XxEuReq`oMn!M|qtIJdL(UeM*+pTdMQ>`yK&r>{)%|?Z$+d zFtGEIQS;J}(g)VET){cj<~FgO73`*yCc0+1nac=0*Rh%o}M}11W5HJ^<%^V&S z(^?(9f6Ct69HIT4+RQKb-cSEgis(BIIi1C`q>1zwx2Qy3=euUTYYhW42|4m(p2gLZ zZo|QL1fM??E{}B%#wMhdfY%!R>oC5%jnf+b4V@v@Ct1ys&|^l37N_9EUfHP-WQMDL z6rIFsRB0+U*1RP(k4d@sscj*5!P@%KAJQYqPQSCvda1kLP#oXOM{I(2?7`wnI3;}J zj)S60=4ghh=1j|BgS)~=ra^E;Z;^3m|M&?Hu&a&BvONjX`J3Sj;{Yo?@Cf&7p%vcr zFM*q$AhD$Sf6IISMEd*3Bt999i#*b8p*pk)+>n-rTG~-g5*G6z=S{+==Nh)@ZFke| zJq9T;Y zEB1-+%O6*)1l1=?==edrxK7!9{Umw}YimDQ<-cHrPTEG_RqI^qF0CZf^NEv*VJBRJ z8N+n$F@?#hczD}ZguPZ9kqy?=4s_?LPJ9S4^~G@DGmsJn5>Fyn9CT`K2(g6wmp;f4 zN-+WdJXU2X;7j#5@YoCUuXPYgPq{ULs@QO8Niixk!c>eMxUx_$JsAS5HMeM)bL^=k zA`dOoY~pTx%~*)cYz5~QmT)&kuvzi9%??YL1^J=koP?=DyhNz;^>E`(Z(N!a8d95% zp4lXD8!|RoI~bbT?4&f-h8{xw>I{zvk3asW8M5F)HA`4Gw_cabEv*hCkU)qN&8~u$ zZ(0{TEvP+ish7;IT*Di{ayd8h17~>UM!3VRY3A~t5;jejUo(l+mXyZhPbZjh!7Iv> z9o|R<%!430ar)&jmhrT2hKt6Zh3<$hsitMOb2ku;+n6M#N-*%}eftZ_HJ>IjDa}D(E>|<^{ zz-320QXafu1>$`s#>c>~<4#Czk~Po){?QuQKl0DXC!K@+pcStkO?*HD?*o!r%vVqR z7o4;C3>0zP(|~j8D&Rm3X{csqFY1hmr#}Tk+??40HVlElRZRu=#&L~bds0k73{-~ zMmj?<7Y~Pe2E32wt?+S?m%gYduNsRTqr^$4zc?gzn}SYAT461QTY)H|$K4`CkL02& zU6RK3C4^_3ZWlm`Lu!v0QQ5Zk;~USZyPDQD2;MY!6Mmn1n8WV0;H`YsBzxaiFlJhJ zAG@Lv7|M!24q(hEvzu@qhB$IpD{H~V zF;K(Kr5N07PNQukfLIZIOxvRl=ncOa)q_5NK6fj8hOOVf80^WW_l@m$dAF6d@Rowd zUQ45vbY6^HBwb8~+bMHK?9ujm-rl*o~cx?^Kdar0-k%ovIp>l_zn3VN+;p>4q-P3wj zjiM0HIG!)FwK}}bG(Q{KqHq|q_POqF$_PcC=OC&O>D?syF;v*pt z^QO9y8ZGehvmaNTOU_+eca`jyO_X$35H>W=4jE3UT&S>_tX3FmiY>HeHFw0c9Qw9w z1@E^UJ)NRuA9DdkVtPr^>UL1_056RH=tMBd7ESTT9{JT*)qH)zAyyvn{Nk@NOVr-7 z?v3ymxvvM65ACDWkGHY7cKeN!|chQ&AR?zikDN2(WEwtDf7T(py z;d~cEm2ij~P2Z@x##D%`vaG;K_EeIs4Dw`eSS-V{6U0&=$nJ2q98(JgG~EYWTRe( zKc#GJ6Y2p7*1Qu^=ws6w{WvU{iNJ3B*W}~o`D^@t-i-w=xx_nAHsOUWosLsx)BE{2 z?UGBVjj$sF1Bb=Tzd&c`qQjc}u+&ccOs-F`#zY)iVGNqGG6Y~m#4kS$|8mE_6LIb7 zd|t3cQd3MKSBQA`;c@>K^|$50n(BamA=camporXr|33Z^0KaTW+GxkOH->N{J25XS zglA(cMz&n?44T&h$=1JnhQB#8_qKU1Nf@B@(!V#Fo5wj!N;?HlLraT{f><_U^y@rEG2g@ zM46SCKhlymP$tnjG+ZFvgdgid+TFse zp-COxfiYpYW@lNIdzF`kwb0@Se$x@}XA=ww_LBsFNMf|$VwhkDKmXWfv(B7DHLH;M zD)uf_w_11+sT_s*8JCpln)ch}H^=$2-r&DGB!DQTD9qD4a1$?h)E*zSI_yJ||v zgo$EMm2I=fM%Ig0*C9tI>$xd1K8zZuY3xDeMXFKeK#G$hqdLqC(o2^>rr^ z4qk70_ESB&>O#u21d%pr5VI<*goEaqO_B79ieg6A9%~nH=;3e^` zC-I%gQ0n%MVQ~YA5iHhu)4~8Q=WZLiIgHB~S1es%Osoj$?^oS5S?xtvp9ZMqf6%(% ztM!rpCIz6Bt0A?oN?kSoHo8%aN@mx~7#bsAx8r0J)}3V#^1WM)?_D$R4E_2qOt3Pp z)dc@pI|~t=!4@JHo0OZ5<5S}^jRP83=Kw}LH`7`#TV9!~LfXKYvpNPhir9p1T<4s- zo%GVtdbx|m#HyrD^{aI{V@(AgdE_`zyK7b^vVg|r3M`$_*^ZP@Y$|`^i&00e()Twc z>Qv9SQLZms4L`$K^~*^wzI@GU*w)ne-gsXSC#gE>R3Ps(pmBF}_LM)YBkU$cApTy+ z<4`h@kG8T~h8-#b&&X15HAZD5i!eslN4`75NO-Kd&A_R$_`&*ZGbY>EM=N%~FD!HI zRUYz+tK*5P~&m{{YsSi8tFTr|Zs8@xiV*5$QY@P5{; z*{!SJNBRC{5W^d$3-Oz3tCWpIvPL)#0yIg=^yUWbDEDS|dNC@?z(*#w*9E?#5Oyc* zFYGxgF-Bds^eGlS>wvq8KZ$uV-pp5~ng8{v!>58m1Kj{|Mmb(3^*t4&dygN)=*IkL zNl|^K6RU%r@5W$HN`i!8l7yGZ>e1u@_F(n6Wz(YOBtf0Um4fKxzmjc91=dt?U-T7l ztgHBf=5grRw^4|6JKdoiv4=%I&%KQu5%AZADP}2IMy^65O3RX3&-xwIQ~jeS zEelrPvTXF(Kg_iEudINgm<;~wJ?0BI=Zw%QBz{JBqJud?^A-&^>q5!@u+DERAsP*N zjrzQ?gvz*k&7w`>#!zGO&r74;SJ-lOB+}WOUzcWskt0D`*rQCH@*Df+&TBT{^`UmU zz)1>SiIUx3)Sl@qM$K}3xxYsqhSQACXDxa~|Z}Z@~6Tq+Q)#1^fCVYWy z3oJTTG1IrdZDTLF{!+}xPzvL=n)zhErHNp)YrE++1DHg^149(4SEy{C$LX%mNuglT z*OY|3<~bcyLs|yps|S}IyV)`jApfYN_TT?;AXKl|2LqT3zly&ZelL*+PW1h_88+wvvk4qz z+X!^hRaopVz+ZrTv!ChT5xbQTeVy~hqs_}I=g&&2{IoLAOi=I`F z?Lrol?$At+xoM^(+XQ5YwM?u!WG>giBvIctVot*k&AIzwp2x|G%yJC9qNh1gqr<3vr|=dJYQFJ@=&PhH+4mzrC~#jPq7 zbkGH8#zk~C3KJsI*C>wAB8P{39yit*T9A?-co1%W>zRD~B|h1lJ*2A)__Afnuxxyo zxuL|VzkRIpo_%^_zlrJC{B4S5vyoFJW0 zP5Q0(!&t?Ec{sx2G?b-N{=R=f4=e$+=b6@}${PtskTd$XOLn=^-pu-(2b8^hyz zR|_r~{a(-S@K8bHT8IOXJuGIA$VBHG3X!3@0v4YeNNMQ&c(Xag6&!ee_)dL-RC>k( z?#OFbuKQ$o{_gM@3G0dfip1-N%)?e{NHi0yHKEjdp58-@o$C~rk4Tl zWMk4tc_KS)=ZE*|fq**@0KNoEbkgj#O=T>py2}t>TXjV{az4eU&((wlA@KTS8M4`u zzUP0~gx{Ahv#{n)9X1gDg{dWMDl~^43(#0Q^R7|yV^H0D#4}1!EQN!6@JsH-&%ZwH zoV{W$()P;Webd_)rYZvpe!S&2`}97=1}Bt>23vh?ZSAs)v4n3fj}s`{38aYKJ7{WZ zS_?IS{}lKZ^Dg8PnJL)0c0wKW6_R&*&{JKja@8LD4eC1jGEMA3&v21|^7%7{8;=J5 z0$Z7v#Z*KYWw71DJ8@$x#*bzeTD_y(pGI#kiS*1e zevoTv#H_9~nTpE-?}#*y(D`!vkIAC%*EL08SKBpjj){DaFrK(4GE(J&aYc&ve)x>Nv_zNreh9b)7*C-i));K{5L%T}Xk=*2$ zi3tbL?CV2<#%SJ0QKh!x)P3eo^i2Fi@2Go_uPBK5ru0~4yZvQtiAtX${CPbFsp`ik zzd==Sl|hYX+U}sIQ*fo>xeAJzlg0}CnGRZ+M%cKr%sH*!YNUgBI;diG$&Q*BRlJsp z9&aKUUj=0h=#Gm#j|tB946>u*G6RyCWT~ zjWD7X(o!w!_r+Z+lN{m(aBRllIbdmX>?ook71W92$w^{zYpuZEY{k8w1 z&wHnvDZV8-I%2)#5psR($$EAz!RC3-;V8kQ3o5wE+ zN=vIe=#uQs8^vIYI?o68_KmfI^C?O(*4_9^oUtZAd*@*eucO0Q340b`VyZmCuO8Le z8D)8b?GGC5#g)bmkrPIfgvTq#JWsyWV$kt*dgmeB8LJODx#;BxB?}X1RjK@JnYR3R zx5K9B*Z)-M`j0)R{{@cpKPW2y-H6!#ZPEPCN=*6Se~f!D{6B)nKPw%QbMQ_O?+W|| z3LXt-+|{^hN$oEw>8tDxC1-zrKJrFNF!{w4nN7~{*CvB?=Y0c(8`hGB2w@TGLS)BS8m1mAK~bAF zE@sy?^H^m4;wB_9TeWy+zg{+WB^F`9iXH{(JX3;#s~dxn>zh6UdDmrhi}53VE}?fAPMr6E`0vI&v4dVRN+D(+*bNVx`Egur@FS&^I;>Ia9&MW z+D_Z}DSyLIh-|?MK6LT3PZ_=&8XP9g{nk~s;lkbL-0L>hZ(NeDF{~gAn&m63h7CjN z*Bf3+h3t*_POg5=wbNAqkCblaINP>Qz<|{G`8OFV>$c z;U`hipet8l=<{5> zUy)bANcma?mfB z4{96$8{aW$F#2GZ9$Oou{pim7^RD5S3p$Fk9V)8j_rv1*S2r~*f!f0S&#C2f8;VKP zSB1oqIlgnIScl)J#rnq4+1N*ZcVlADR{l6lES5ve+zvl;>yc`LnEUjGXLA!_q}sE@ zKv`s=&_HQEcb%A8SGWBtYXS&QU8F(V{WbZ==ne(oAi(}W4+7f)%lBzV_=NK32(4Kr zv9N8E8)H=;ED!D?G&uahu+$DMM-2fg9G&&{9isbm~l=2+6ql4KKbN0038BGyIr z7uV@^@$v<+0-ZF2U&eP6?7OUo5J~-U=Cut5$a&MPd$ESeo7W``I!1=wXBt`95tLO| zm>$_SGVHd-Dh$+NFZz+c^Dz^Cg*#qJce)E;PrXDP^Ku&~T`&)kaUI#ZIGh?W?YruO zJxfcR$jn0Le{43NZP*f~GRh4S2K5Gz=9?WTtB!9vzAJXk*~;v z`aW?5*xrJ@$dTdNx7FbE*Y&XrhQ|moM76QgRB&gPhYy)gqSwB5Xj4H=8Gv-nXN#!C`eJsE=6q6~EwRq=g;x6H7scU!j-eQ%&5nXnDOAyAMaq(`I@DhJyB$ zwcg{{_dp+KL}?X>)%#C7AS4j0X2NsfEM@RBc1jPocK^?OIgG@um%IV0mPv{?(*r{+ zd;lInP9g3>^`GT<&W{#}J@?_Xn@xxQ8t(s9FZw@Sh5xwY{GU8p|NY+mhoJT<>i=A| z|Mum-2u0^&6_<(EPNnJ3M#2POiCfMTIM4_rjF!68!L3;6+f*8BE8ELf(yIB&PppzE z$F^{tSvgB~Kefyv4JkHh;O7-oI$qX!U>mGf)i`Y@VUFM~Q|_*>9yXkqC;}7vg19u< zCPKgz+x<8SqRqpI%tvhBVuod#U>mPg5*!k2pD3=z*LKS@hU>o~)=9sM?&MrzLvtsW zS9BH{O?DW4c0+@`(da#Ir#D%3hKp=pmOFEwDuE3ir?2h5I!q-R2_4uI{bAOKxKl~G z4OOWVdJ7gX%SyMRC?y`y0*uE&9pkF{r@iQ#gpEXTD=fE7p3@T7ls z=xJuoB{4eM(Lm0a2a?7Y+Bq^-s~5%Zd@gj$4@$Z6LXT~k+#vh?7yI2DB=^|uO_aN1 z{{sxfK+S(}?k6H5S|YNDuIk5aYDHdY&^;N;%`YOnoZN-~Hd?!+OedQ|nst$_ThjpZrXM*#b^RZl%c9NzI{P?=~mf$3YZ3 z5P$ynWXgZ%yMM^ymUVL*^9aRO#oxD%ek5SXa5zHBr{@cF;*L4gwE&Zwbt&sfC*~v! ze&l(s1I_~s`OXUfmy~N2&PxY=eg)LZ%;5%PPJtzKYry`r>Qgw0`*irU|8)4TzZop| zbCM(jj1M`hRH;iqDKfqbSr4@Bwlv~9Q6;@1hsdIx<=w-Lh2Z?$BhY%>eyB-5i1tjN zcKtIC5QdHF!}YeEYl3F?tIlC1hgt_FClH#R4)R+Ng44!0fl$`rtiFrjcZMKJHbNC~ zMh9BvHT6Uuf08Ul1)x{Qu+UYG9@rc9NR0ocZ=YnqUtI?Lri>BoazJ-9hNN6wy=R8k ziwUvZHWM)o7=*n^LrVobT3S#XS__f zG;?A{PTeV(IS#;#;Lg%4f`j#jd`;sN^KOM78=2nav*?%XirZkkMH!a7?|q#sB6++K z!0yU6ga##JQ1RJGI&Q{7ncL`Fqo7HDl_^c+W7&c$O5JQ=KaWNq58R?f5O(!AH)aD$ z=|Ae4WB!>BBp}sADFdbybO#m@3?XfCPWE1k*+jE#V|Urh&!>Kv?2$Zs-Er3Kr~@u9avQj zumWf0{3%C>*w7MocoSu8uVLi`%d*~?d&TnCrwF0;=ToTaDCU&**DZ`JWk!l^7Udf< z;9H~qJN9 zP^Aa&i-%6yQ!JhV(hIAxR7^`%-H3MAYmpyt|(%GwIQs7J_N9UThV$Y&{j_ z5$xl=6KK$t?Zjia2FW5`KRp{_ObexskTP&(lcxg$*O48BA1^4E2=asz?@1C=Zrb9> zq|XmK2K5L|wRabr-tH_^SjaUsyTGbj45w8vzD zmWji|ttE6p-XSwJdZF$X9WTB9)Zem@PlI=sjihO9zrq^l^3JF?(MJDf;L((aU7TID z2@{~a$rGSNEqovN>^;cS)bMg{>k!qZ%jwDpA#wa zs3i0=Hugz>A=LqaMl5e_#=Xmev3rYo9DEmEA%#++V-5EgjLK7n{J;n5_?u62)N@iZ zgM!bsrIHPz&ZpSGm*>#x06zhxtm# zlmygd>gkUxXv{8zn7Gf+*5FXh>;T&*^N1$GRoK|^Q-N;NW0%E>zL}}nd`nx(Ai0=N zV?&)cf(`7j8%XH*fkg8iQ$CCP2EyDy(uw_RJ^e?%gvV>DOJe^#u>E5+70K|=BiFyr zZ~vq3{!!Wa?-FiEn$q;E6ppUkGxAUYm~&TqJxh&S)L$+s7X>dAr873aN?iRhZh^RB zV2rc{b!~3TCm84`BZ^M3e=|H_C26f!QxLPB$z@=mLdPXPhCKQl65RB`CBvwp=*CD1B?!a$^>K|OO9LP*po!fr_^ewvl&5(X#2`rW%j|Eryn04wXGjY$0 zR|Ze=O}}9h$7lF{5d?J@D>8&~7%u+n*R!xjNTddMOdr)rSQY5zfGureZJa-}*k%3y zG=Y^5UQ#LzQKRf9&E-Nn6@%cZWDR%x%<$D58 z#$GpNz0T9~@Udu9@n}y!Hc=5RmDLd|myit~R>U~91RSQ@TU3ji6ph>Bj1LIV2l>TmR4QU_sK9cc{L#>M^R4$4(c9xQ!(n*kxMONd zKBNj{jM`py)(wSe+Vrp^^ znEergZ)y$ux23t>U2A91=VU|MsqUU67{4SSptu1aP94j#je_E)y}_McQ<|vl`hv?z z^+L$Kkq6~IY8rjLf1bV|eiyOuIMmwia^>V>xV6%6)ey*+V-MbIth3+TpIkoL?9FTu z6&+veby6fyMhezdMO&+{!h$8~j+xJbGS z$yf{U^VSpV>}vlE>qGk|3C~FkJ%=4$o=Z%#imlKBYq$`riAxjTSGtE{>Y|f3MvgXq zC;i0LO|(H{0M4*<^SLiHCBs@u6kg70#h5vlZ_tIY^QFjQ`UeJ2Z_{&ml7_>u$Rb;- zdM9?wNPXkc=MlsB98wYB_H$~kR{?xx@S2041Mf8jnTRjUtH8)M~%4W*@DcV#UFD^C9wkRa(jlf1;)6Zy6;IN4Zup5PHMUFYn&kqfWi zsHRyMZ5qJal7ZpInq(T`%!H;OB79-HrpyHO6diy=DrS@1+aM+QfVYmnc<#&W83(JJ z@)EAq6oVj{HRt0N{aVX(o#tF(^~y3zFZ*{`8~m(1?n7Ib4er`5tXW@}G9yudoptD%)vx09nIi<^pE;O<`lM=Ag%5*OFW%n7c4O<5}OQD^*!(IYrTR3l<12 zLx-mCh(i1}bV%}$d(5lkLx+y!wsEKIr2SezOG?w`bn;M$GGN^jh|K3!SEHmY^a(vOZzt znL1*WGj>PSJy%Dvth*Cn&UrV6qUvxq=;gqw5^5@Wt6eXqQ}YJUc@MoJwSExO3cseH z=3w)ks?aPa?>6k%E7y}Gp77`8Gzm|$uCmInWk0pOlTc|zT!vRop7spegdW;A1%Y0= zH>c#Rh^~*mBK7Yz7p`wMiHo3`>YIKaNs{3m`K&aVA6bq^dhho5Ts!f|0vIaN_gE^j zf*TdRxqR~@uS`23+)sCTjd!f@ zC+bXssTv#=1{5MtpzP-Kx_6(WhW3+elVm$Vrc7m_R%XXqRFr}qm}eCLx9ycJ2%WOs#(A0msH88Sqb5xq`zJmFfc5M zCZbC?ds*nh@PYZfzZvdAa1~9~!^9Y5{b3f+aQHXF8&Cx9qMyf0BWixahOdT^!Lb$| zDUAM}V!l-7){NHw-TUc^rt?P8){B}1{cb1CDlK`S%XGpsv!MbZhCi{MD8bW5MnbRm z>d}T~o!}${{hlN<8#t9F^l(B7c}VgYy7j5!a}6r|vc%g*b6iLWBKlM@J7f!uY&ml9 zk&q$$&A<$5o%X}xA=Qt6ES}Vc;W^l_1gui+GihQ(H#BoDE1pSe+4xpra=%DEAIAmcwSfe?38CUB zZ-?4M7Q$TtPH$J|C-6pjUjaCPJKRoOu+MGqn}yz^DFL;ihfd zCRNI4x_kM}7BnH0ZM}J>_t)W;4rOWM(N~%?ku36&TG5KVpR(EEcNKo_G0E-j@aC0= zGf!;EaAnso$^CMHa|k~-bv^^jG$$i9t=f%H`;}miP_>*}A~mQvbEC-}$-f!o?7?C6 zs~goXr!~bwtg}f;KUzRts`Y>FtLA2;Nt>j+GH`Pvm; z_bHyQE3u^_j`>Qnu?035~|Z{(_j~Gl-KA1R({e>@C{Q4#sB0R%hQH47Il z7DJjGG62p1?g9G5-bU3)!Qs|7Ghper1r2*uQW#|Cv0CyQPb;D}bvjF(>u>cWM+4^WpLX$6hH?uos2DVPuoZ@d z^otY9x}v_W&MrB1WjU|ftWJ%3VumL&otR9+gQ{bj@5~MWrl<}9lx8}W&{`kli@AYK zDp=V!Bgo&$(-uJ|x214+4#PUU$*U)}S5y=E_gB^?SD;EB#@}{bVmq|cT#JUP702?s zK_-}O^;Wn**pLA8DGxAg@T(h9&pjRs5ry4@?rFt*BrVSxYql=xM{q&|4y)zCx0T^( zxl{ZX0?K7u$)xvHK&tr50=jrJJ)>WJ+~nx@qBZ{mW_1%TZ@gTN4SguqbD*yS?1{j0 zZ=e^Eq-kv?Niz@W)5Y;8D4hQAW2oSrE4OVgIDl`H-e2O4-SJ|nSYO~a8D3fSd%kMv z9c56_r90spc(6W1<*=fqQXo2`bltYoo7sYj=~YSh^x}@e++6*G3}(NgelT3S-^Dil zA)TZ5LrIBBhXJJ4eFJn{MGbQU>Ibfj7MRbNr6wFB$-Ad+s8iPgEtW8)5VJAOE3mpQ zO-^d&{snByT$9w*)&Qdt{1h@Td;k0T%-gC+nRAGv?+{B;gM{YR;Ivm_DZ~E~C;>6>xyLKC`jmz16P4v7daB6T*a~>y2VH!MK~d zIA(`z!T{517$bVbV)er9ziyIev{yu?HfF0#@8-C-=ITq-G`om(td%c<0fq<8yxgL) zxIj`q+ulh{WSx#$DO-bI4HH{y#BH3J8@RHjl%$!em{dZ`Y#TDT<~C^mD~Xrt`Q*ZW zAHR1;(w1z_HJfBauP*BKmZ~+c!|9qq*LKRGyH8`zW|aO4H)_jsIPL(wV-bNd$$Ah^ zyFzUP&MobPtj5gZ4sxS_KHkMPQv5!DOJw!n&kxu)ivO#~H_vlE4JtHCeLw!T#-~-u za?X$ycObE&TmknJBUZPR)k_RkwdDT{w1m&aznH;7@zOJ-WzdGUNQCn+}h;9TjKKX|DV#S`_6`CYPp|UNWr2iZ}G0PA_`J9v1~~Re!N* z_VOvNk9?L-%UXnPrrEl99%#fC{~v+p9}N*U@BX`fihq=e{&DyBkN%qfPapHYKl{Is zxc*_c^j|oP&b5b_AKSvTNC*G&Ueb8F0*;{XH`YvwSLsW{c>z7y2CC6vE!S_;2cRqdKG1x*gujh5r>zGGIA63Xl^+#_Jq3hy0o zz3_TH)y#2fpfF+mAYe#j_fjv2CB8#+GuWUB=~?Z;VT1QS-XGmMJx5FZ0k~oli^zNq zWJI{S3)Quq-4uNNGif6Tzo{Yem&<9FTkP@lBcA!RuX1wpQP$Ru5OXYh6%TWule0zr z)+_w@kS)sAXu5tfrLqOBiVhv)*z7z8*;d=BxgSePvE$@I#3^0tE3^5N0qrw9v{dFu z9`b&of`;Zk)7y5xEp+F$)Hl>k0hEX2{GqeS#mikPl~ikC2PVT(5cPZO6pjN`YjWaQ znl)i0-DNF#ueH1by?#hIzzV#c-m1#*3h-YgOdVH~a-8o*?0Zq>!=zusZ^=YI=T6m{ zQ4)B~a{x!@ED;q-;p@clmdrM=J>kv%_Qt%|{J}}bRwMcVy^G65`Ycv6!z^|>aTJ3l zV;R$EqwH}C9DgVLPG)+6kJv*E)6AsK#yZvHHu5srl`@jfrKP{EbRbz<`?aAlEn~;8 zu;tZaCb>^5Q9uC8PYUG{#W(9lN~LQ*~oP?%Wg+ z`tJPanzc#x=_o?D65L>nMyI)W_>ZAdc9iE7c&mzCiqdY~4Bjy)fk25)=~bZyR8YI( z=}q8Dn|9yQgWkZe99fTzHX3#cDSb$OAg`u>dy}E+vIeBHqtCKHTp2OHe|RWGOkRI3 z-uV54w%mdTGN{^AbH;UHVndKRywxF4mly@n>ez}>#QQCbf7VE9Bc1`jaEQBKr%S$= z-T%__F6d8O#^+b~`#fyxLlLLrZQ|XdDP=sph}TfO-fkojas^0iEE!aPpG&e*2gv68BbWrKd&A%;h#;vM8YLnI79r+AHGVIl2-dZ zpOywXe4W@Uc#Y*9tiv@j=lQiNq-$aP*i4UY1-HkMn$VFNH+go!R<^_-csN1H^K?Pn zbdg*fq|_k*s5MtlMNh|xb$$cketjGrsx75OUxkhmqvRZm**BhxKYf)UXZ^HxUbpKl zV;6&~+U#?MxN1qa6~nC}cQXt!HK2aNcADiw4*wPHqn#13pW)^ySVPTu#)N1Q@`{>! z&^8bago{LSNuNWWYi2{2uyIh4Zs`~20}I0RrnI5YnoKsDf)~HL_pmJN%JC|2$3%*Yl_YDsbEmabovqKb%+Cb68CCa>&Fo;Nt2y!QA2Yf2O<*-Aj}c! z`unN9-erFlg^C8+cAw#Xa8dvDrBNpkG}7@;Xqdr@z(<1?sR=!os*Iu7w6Yhk5wVUH z8%mofvA8HB}P%ye%P}`$GB3t)+_0NTU3kXkh+o_n(dm&^yA%w zcL!46Z+G2K&SUZ)3rBn&D~pDtL>)}b?Lb@W|06kZ`xSBUW0Pe@ky%S>;VN^h|7hI8h++cS(*hu~Moc+Cx^5QR9Yl#! zo#MgK1axjE@+*%Y+8kIFl2<=pv{9~)_S}%)ezKjAEt7PP&*X&hBf#jlAA6*g(yXLW z>5jZM!U&K8YO`a+9i675G@v1^`h~?a7OcIgYQ1^19xwR4xuy2|;oT$5yy?yG^Q$jX zl3qo#T|P#7r9pf?Z{z)`f3s@|R=DT(n@#g@K$*{@n8f&3{khmdAc5K`?5tb<$hMX{ ziG%Hdr|JuTPPS6B?2izb%M08wAt}+XKcx%QiFHqQU4WyL^VF^1Wo25~L%(If$cHMB zjnJ$>X@f^aXFotxMz)5R2oPJ-ICi=qnhX`@(*hSd6tLb<<%OY>OKF?iT%$4q=IJ6x zs>QEqp-5O4JkTTMR^vG{x8a(}YQPV{E7N5FKXny2OG^WV7Uz4EE9DZ558A1% z2qsj&B|oBFMMJtWoX*G6<*UKv#bT$lt7Kk!b~1M=q&=-(dDD1YnB(>N<5-gT&iwc| zOcYZ}1pl0>anXAC%f>bzZ4P=+r-nfm>}T!chL#G-1C?|{87L~@Erkt-B)R+CVm}AC^J3#_K$?BQEYxkA|vA09>SAlVo}o%WF5Z1GL^3Sij+k!|!n z6Y&BrveKOgiQu=QrWp>YPuR$r#Oe>V5-J56^5_fYEkbuCG8+Nl4V{fDJX0*CiC1>spd`^N^StfV`9W2=g_zLgSw7&dGG;SPc_yednz}sePESU*;N% zn=gLc17g-=W#xm4i!Q+EslJ*3cL1clWYd0^7I+q<1kfjdxH!Z)<4Jy zUq6z+<$nEc!1-qnC|OmUP5hav$|LGp?y$%tcdd~i7}7IP-n99Gn&EQ2?+x96Ec4nV-3VW>Zekq zvwPk0Ef(wx4|G<()priaal@2d+)LJTk`xIqDZGR)07S}!8lLYCsmX%2O*w=J1z=c1 z&kMW;H`eryt;joer{2yA7;kMYkfuf1vYeIDSSA+8A;AQzS+lIb=*c`~serqkC85$M zg`-<|YmYK?E(M>bh4tQupK0#LWfy5a2}mW{ER0WAd$gudz1Hh*Hh9#%Z|Aot5L+MM zx}KIFuvD=9HfmRGb99;d%D1e1|C9MaeJG85sF<-Y)X9`!I4-sksyD*&2r=EI%QpSx z%f~XjLJHSN3l5o?ABPhdwq|nZPv%c^*GnW@bq+rm{AN?Ba5gCI*rui(HYMjbi*9gj z#io7T?WO)N-|GKwPu~iMh9~>GviL~lgOUxk&tw-askCZvYsOoX_+<|7i8L$IBv$ry zS7;aFhgb#$*Z+%$^?w2%{%3Lc>VrIoDx2{g%2iMLd+9)Rv4L(;_(p=to3txTwxRwb=xIBzlSL5gD zy%p7JrZ$U{;F9vfVMFswyR@R+CzXKHE>kyHZc`k8p?U@zF?DHky^_s2`q6NW3>f^r z{W#C9gf5=vmoESwFO`|O=xE$dC>+(#+j}XcK4q;`#Rn9TeR2HI(us;NY(t9y_CTu! zfKVz%gI8X*`=Oztl+SYDC3DV6JfP)6Us-l&W)z!PH3(j<6s2i--t6IjTOOytBlLIN zzo>a;3bqenbu}Z^`m*fp2hi}EAc%zi2tp}VdPu7*i2wAp(>Fltxsqq|ew-cl^cr_( z5j@UH>z>6!GsccKEVqJ0iQR*3q1%a|{%oVtXpfkuf|p?h6BzXBSW3>vpBZVIfh$;uHwtB0G}0uSyTpfE zFLBDZd+g@dbJf{CPO5kn@vZKSO^3+FvBYnU0sTgfM8h&M!(^g}W zYuk)jChs~!wi|L_WXA>>+2BMYUjvoM&9E<_Jl9SbY=R=a6N-NJ1h~)z#ZQO!YnB*^ z#k+CD^%|%0hzeY>%=@aI%%%QOI;oQZ6p-&lH%K-SW&{;1wOpS2!c^( zsl{4nX8sC(1P&OV9ag~ zA3~L{g0%V88x><{?5mW`v`%#Y6t)6b(~i|;5JI{as@OkpIAFm&Bik^hT8LeAwCm2> z8tVj$q@<>-e(Z^034lDuS&M2DoThLxOx7|&M~)&3TAdfy1}0e+a;xqyT?#=M_@JDl z$x?HJ!(gh`&+$>hEawS-B=y=y@0_a)lrc>%)#1TQpJ>VT>09a?Rr)dsKd4n6(J)-8 zk_AjDdm%NgV8Rt0(j1ZHaxy%&;q(j+_rWPjOpwd^Pd3iG_Qn<&3rWE9JN=Qz^*oB+ z!Z&;i*Ei`#F|G=G+!CkezRQCda+ec{*ReOc&Yy1U_2lxOKRw11gDXA2szCw3A6R94 zlmME7wM6yxAdx1^&l%A($hU`2E0zw%n`b!K!QYla^2G~!xcVW;j_0ZDubPhPoDr#5<&QwC)&`GP5g&HI zT)Ih4D0VzAsYPUigQ#9jHdj-oTCTWC*?>@y<3x z3F=KqJXnau8{RB?d!l6S_MDLZx&OT)zyGfVsY7K%1B*F&2aXYe46oua;!AoCc5W(5 z9)I+Gd_}91Zoe*M=w>r!QtIbu`jUv2R`6gz8bS_qn+R8p&cg&;E4yAx=f<2o@%Ql( zyo9fwv6N`}$Af$SGcWxU`TC!yqW}3s_D?zM9|7}u0U=s^;aTN@A^jb;{D*yC?QaOy z4t;b`jL?if@eHs1O1%V*rZv}4HmkN*D$vLvan9r&07UD1B<2bLD_l{<0c*T_2rxLsS$yP2DrYOm(bGYX1Kb`=hTuU6hME z@n^A-hpl zRQdvm9B`WalV=77c0GNXQ}QcY;x#@UGDmn}i+X9r(Y~9NFCo;r;6MiY9QGk}pgG{^ zFM}jFUdh6Js$y$}2mv99I+8GZ?he9v2JduJ!}#tBxba8JxA)I#-~JTe7Z-bDEqn9k z+IbVzr%8`T0D*PMqjwqmjbh8Yp&yp5L6dEYC^v_)mVW%NL}Gu%;?oEJ*pU5yy$IkG zUgYdc*b|Q8LIKyX(Ma>ZIj#RA7Ri5Z`}_xu*?-0!o<~@kFm2x}!3S4kRW|K;2_x${ z+$upyysrZgS-;tQTD)hOlakT%$@x3O#EnwlP;C%=kD(NwvY%(v?6zY;0N08%LtSf0B3)iszyzQG@ zSV(B9zxuL?IxC6=Oiv+tJtHwOG#ZX3!SPvyO#xCS1||J8javH~OZ%&I;}LQ+Pjf2)?5 zZna`iD>jv5yHWI+?E=MT0Q(M`Tid5oc;s)rg?C^EgO9{z5pUV zpV8Vi4S_7dsM`Wim)0+g^hfxWD2b` zbaxH%`Qw41;Hqe46TYfu)2CcP?zoX#<1RPI8jgSdb^85DKb-MZL1RtZG>wg~X|jN* z(3Z<@Hl%=srS;Ru;`Lwpoh@+)Wwz7)U;nDVIThB>A$-KcoP5nCl%hT*8&AS;PQS3X!Yh2yK{Kwqo=#$VRGF{JzPSNdrZ$6wjzB1QWc2YAS$DMz*CgZs8r*<6ZKe>tK3G z$t3@s*!L$*M7Ufa<$r3+|Nk)l{NEcH|NF`QkL0=YITL-4n`rD&Ix0}gFZ;*{_XS#} z=1#MPiCJB~0DP)l-1G^KD%JCfVISGFD_;KxkaqT7Lal1d213gVC^}k6-5uKZ zfMB2HE7LuuO(db!|h3(_lgdHswse;n0H|1xLQNe=czethcItp;qm6mI6wU)}uj1dcN zQu5`hvb)L!ZEZYZiG1p(*)AG@xW?4_QVY&5lY%fX(G3i<3&+H#3$)m_hwaB31y5EREajk6|QN{}VZTDlZJzo8@!~HY-;U$8 zzea;wBNV#>2RVdc@9CE(EHj%nguubLQOXrf^VAzMI{q@=H5r7-?*~C`Ivk&ml37>$ zu@+-m0kiV_OY}>ia!|29#g;YH@ImC=6#-=Bs~mB?*^N89Ydu(a`mxIaR0)s0iI z_a{Kp9=5>a`Re_1!H)}130AUU8kB`^KaHVHRks_Go@u|UwOW+d>`tY~`lxgaj5@zJ z9?U*FDJ#CQ=dIJkkl6HMUByNsy>l35S}wDLHIw`~cz?1D@Xn&=t+$5ga-;iRctIoW zmB*tC@1FLiU`r<_DUK{h17nq>ls#tr-BkSuiG+dCKkbr!oSiRGHoM?CA%pIcGu3wo z&=_KyOu+Kf>|N+}IO>`f9AI?WhkwJ&0FC~$M@l`HheZ8nvzKR`YOsL%2p;+rI> zeLZrakakm|~LwIQsBszWU#*Mls z8qX@K-F=e-?5l8?s@j%7_@Y;0%(GAaed(HwQ_RMt`HF0PXw2T82B0q?;5gx6;u3)T zG}Xt^alzt2))UY2a`itho)$@n+VVPM%wwMzUHxG9^Q9P?cb=H{96@n0haut8!Fky& zheKXVY8Danh{pL|i5$e?PO%(Y&!#Rcf<|Ri{U`E0AJ>}D-|uUk{({Zx*1Jk2jZE}< z&yUzO7Hz-FJ#zQA3osp=^0PEH-x_N(nU|!nrVM478o>`}esKVi0>!&boDv;d+zf4= zDZ_y7eV=bmD92!C2-jW>3aJ0U-25`^enQlQh~AQtx_7Ii{t(rea)5>LC7DAoLg0#D z8=YlNl9IYU8Xs{Ozmuj$Ei5M5bmzgA{2LA1*E%;2Zx1)!ou!a<0V!;n^UpN#Jp*Wz zFJ13P`IfX~#1n|lzh2DI9k8d~)g@08^k$g*-dLyVo@T{SA681s=B7ftw6%C5uEqiu zDlGDg@F8$=qg8l9^beHFp9&;-9y@;yJAuR6AN>@HEr2sC%o~He8s*&k19;7=3LG)=p++jH%S-uVXRb`up*1~^9M0gHQ%bbwud)Qf8eZwOE1?5zdv;KHYq zFJDkqeTW`B;bKX$X1Mha#~vtE6gIo5wH+mC+%ZooT7}7n-u8j|x#WkwikWPzYkV2x zvL;4DS}_pQvXcJh2=^ukHOq$h=XcZZ^6q$U_9O4tA#-uc0jD=UU)as5&T_bayE3@K zwvlDmscuAWPDxz5!eE1wf8PYWi`&65G2y~f6ShFB?Lz8rHru0=R;__aGGHy%S#m==r5df8sq;e)=dd zONml854b{hEuvxyezf>JX}cC~>mBu@)qM1_jN1kC;sTy+`}KZ^E3RS7K6AGoqEaAd zwbQ)T5;fRN-`1g)bG-d`5bb}M?i8CH+c0Vr|1K=?L3Tyz)oV?AZ7tMTozzH3ggw>>Nlx@*RbFZnL<4~%c8qMI9JmAztu zqvER>5CiPE&AY6_ylNA_MxzP&a<{Ypb|kQcC3Uk*on|GDKA;C#AN&6lD*IDd{qPyh z23NrPk;CQ<)^=o#7>us@EVPXLUGI%=yhHACQs}xsls1y76S&d|3#%!6mW(q_g!eG- zS2V2^Fi*)(wpk>5yO%=cj5GtGpWXn?!IS)qAjGvi55$b{dySTyeCW>~@W8mVneqCX zp%{f4gxKiU`AerQrlnp?ytR6MwktDF&9anoOFYT+7j9`~#H4J=3t&FEnMI9z_*RV( zl;>Am<^t0?IZ5zVK)GFFX42hyEEuHv;gL>Qp8t#14V<7APe=M&uGZ@}{z$!k9w2vF zTbsrDMS8e1*(`*; zt-+<;-yP{KvS8V5BFn!Rn^C(wXjp;v(+;yfDh%e`44dI@ZzP9N30#hh=!b7= zwE0NimmP16y~f+#8v4}!_3GR82atYZ0;F!r-${CCt|muqd~ti;MlufI7zTfQnj z?bSLxdp0`3GFf|9)pcvd7w=d~qBvJ{Z3b^=imlhlG%h`-hsGEA6&~=SF6bh3IsAXK zb$#~-CTd>*%zf|)tYfhUQV+As-BsE0@(_VznOt|kLq^)=pBp2d{paX--Y$}p$cg>hn-QNR!%iv{8Hl&o8K0jxlvp?@DIec(( zK40Ea|Hq|WjEsSmK%UYD|D?~zr*NsR8YeZ)61SX^&4;=;Vswjmu;Nk4bck@b(6##S zveR1Fi5h~bFg}7 zYEN@GR;zzz&425lthljf-)Mz>OfFSBX~u62H@#-R_od|;U{vkIPM^eJvLa)Av@g5X zAk20;6wlitzr}TeIq-0&2z9ItP8Sh{ISWrI63^XnmtL!B6q_3SN^|YCx}7|4J=H61 z3V*SRk(kdv=vu17+NAy?K?Dhf})d;b|6JI?xPP zvCntOU$F{TEE`EuHFGR}%-CVWglnK;*jrl$x*^^MXN!L^mNICy$sMnx`=RCHh?eP0 z-%PP9DJJygm3PnG^A)OYpO4Asa(;69`dbB=!UA=Rv|CNt=)&xhqA}&t+wVp<++&O8 z#$$C20-!O!+2Dic{qIpD@;2$h=l$C|rldb7egmTJq^M&8*O#w#V$it=ofC~~txxfO zYJHrn5t)1X->77gtmr!B{zj3lOF>Fs1q;hRSRRlFZnm$2*v~gEy}&hA8g}Q@;=`IQ z&GN4uC$n{2_2VK%d)rROv|Q&rj*@FD!0bgGH}<-u663&CQ%O_rmvage>Mm zYJ5W*pzvL#k~4Zk##_F@Wz=fYN+Ei$k_bSh3xdyWZqJNI&#G^%D>th`x60a}i)_pH@6^Q)4%BT~dnFk#tdhG1EQzN?^3JL`Y^Y4?k8s1u!s4o$td@PFe zZ9!;RvT4YgHW}GpYO^vt`!;!*DP)sjYdfSosa=l2x)(y*3FLciI=Zy1v`BX?+1Z>^ zSr$+U{jp&1%!D_S<0-xRWNrF~9_hx{uim}AeTIq)moi&{$>6zZkKNZ;W=Hlny<#q- z$K|HBCRA}0Q}4A9`N~)-h&=n{;8Zi!^ct}(RFkGsG}CMYQMAQxu7}fSpCyEguUjNO zl^u9+^1Y||=3l%OZeFp*kFY^{wqvVk#N(C&$KC^_$qJ-JX340xUrLgZ`+j0zAVeZa zX3gubqaxJHu1&vipmGkISxz~>Vvk{zeeIiJC>Ml6l?0EOfqIh<(fMSu?`%@JM$GEbm!eXEEd*${IMIl=}SWF z4D5^v@;#JCS#u5EY47$cHPD$=4W|YSc~449)F{MPb)0dH`<8ys$D_-QKlc2s1(Jug z1phkOp+Sx|<|(^Q@u+ayE$-9@s=7q5>%6w}(HbAp`6}-F*G?s=!D6K)o>tZG_jD!vcxbZ*2a5}V(r zJm}IHmPhji^;uza34$Bf--zat8#hUO8Pgp{4eT8v2Ut5+F?EE(}MK!! zuZYglH`j!{7y)^YRD%`*y1SsH!FFNxL$hq2==M-~#vAIV!n}(d~>Z!BnbJUBpvyj^_4LuCwR!(?kSgxuoi!Nj^&1mvHev zDqhKlZmW(2NgQ{o73q%iLKicSFS;G^jLd$sc7 ztuCIkW1_ecE}daB&oQ}5b7T2_`$4Zlqa!CSgGdg)E~XUEVbNj0*@LMytR!8vJg4-^NdLApRev6 zBQ?C*iYe0)aa?)#6G}2WqYbs9W*_;e!}Ux!Z&@Gx>gBE-P)L)Tyfv3aEK1lFjtfTS z2CHm_VyQWorT_yYS9{Y&$kgOMNIvCqO!Z6s7cT=P#p~UyVns72aV86sY1D!DdX~QN z8O#*QbnpfoIHPMHrDNSc;UlRw`-L8S^7IRZ3LVquGm!R61!g{_1}Vw`M)}Q-U0f1; zk9@>e6C3x1&AB~45Oo*406qE|4z$M)Tz z3_qqjL%w@TaU@vNX9mm95Zg@;&N^p7^NXAtS@kJweIn~D8UZ*q3Ea3IbDjpdSRgf} zX)6Bne+14nu;#}1wgNj#W4|VTlXQe%6(M`7NO@C{o=a>I2_1)WHJvO5q?YM{;>n1a z5$Ben)N>}nvcmna0*(ZF#0{#1=J(?&JLQ{j@^lsqCih}@#N@6dDoWMeBsU2C>^GZ7 zRFSbpksxAfdymjIY!2E_!Hm)eW1xJ8nwy4y;zn_!qsR*Rb)D`a7@us?6m(hjq{-0o{F|W;l&%yG!M2sW);Lsj42?DYI#4Ce$bCI9$Bn z)L46g{lr_NJPBQ)#d%mpdlrSK1e$6FHH4(n7giha zxTIB$GiFUvR;G??r~m`v{Q9o(BuQ;!f>;y?_QyHp_Uk)Poim%wyfwI)O4Y2uURM6c8^AMO0Y;TUiu zQ%W7jLunY6b=#nLeQ&wQB2Mu!Dyh-f^Pm}Be*Y64n-fOGop}uMJ%k2zdE#tjs&IPB z>szN(PY`3g9JXs*tt!xNd_A&bz;I;M6}xuBw9KnfVyLD20t(rGu1lCxnR3xzMa*?mff$z&guzOj%QoWf@5=|Au%frJW6=yRYV);qQ9=0_(Gdl-Tk`S^9)ycVOaq;Td^?jFG}-9O%UlT1ev{NN=^N9qRdLE z86-F7lhs^aB<3*~&1VmNVGkE0k)Vx+BdB9LGx@=So8@|ooy5E4HeM3(VhZrEP$*(X zTMR;eu=ZNh*5*#BSIX+Xh2#1_A4+8pSyta38JoK|*1R{#5^O5>@5dfq1}+EkR#-DPm!yqXx9xoIobEY-bJ31xAdw~&!OAUmUD>wLZHQwH5`mzuMN4< z&=P5F*I-e`8D&K_1&-^DzH33MKUSK=n9lyfUBXviYH=eA7`d%J&sK8%lPrev@k6_{ z`f`0Pp51!{Nl}&W<)^GZ8n~sXk1g8FCtL43CgOvT1!Eg7^Ytl@yV7o9`>(C}l!9`R zjav;%K`FsOOt`;htB?X=^9UQEmcFSlTOrgoC5@&y=ihXnKIbOT3uTTEGu+C}k z78BQ6cKdY={|7o2@8riC*^Mg+z@<(;KVjfe26{!?^9YDQVEz?xdy z;MBwp!rL*#Ox_kSJd5x@VbmB@u$k7O38Yhl)hfopVB5CN>o;~KsG8@B;xn99?!D!*)7?lEGq zU}v9~b^Hj+5@N83-F_bji(MQ1-eT6)l{1>%iK}JEg^uB?lHhN)rsWkCrT5NrOu7}h zK04^!5OU!{xD(~Zrw)7M@C~pl`~x+w=rx%E#;i7J zddwgN7)r~D`xQR0ITthk5^p zdfQ?=2}SvLFL53PEZ_-Ft+q%{iTGCuroM5uA0?Pp{s!aZ0-uW zot*_Rgjf2Z1E>DN?n(S+gGz4I@ zD^=BqB|qQ;-PF#1?Uyj394l#DA*~QoUW|2}#FqNL-S45WCYxjDl?^%6mHo__%9s|> zpIL{0=OD&Qer#c*gwM1n9G)3Fl%ip~g!#HVCN;khpE$xi7$u-Lz4g@9_*>XsGXMf(KHr8P**8I2S zmjnwxZ1#Q0;U*xU(eYHm83w9Lzy;^;r;erg}=kcvOnViOhoce}m zplFq}TG$>-K&fRRWqEt>95BxsLH5o1-U=2RE+;%k#;56?b*jRBW(3Vfq*-moj;fUL z;+xGI7D1_xjwQuU-FHYOC-;2eDireUFi+(}Qt~SZ&7fuiTAsQ*vJm*Q@6u`WOb@HE zJoBx--VovB=QYN33mYSm;(z-(VuYF7zuB?)7;I$(En}eJQ(55F)y|Q4<>Omqrj`X+nb`Lc(K8ob10E{%Bwa{DW(Qz*(jX zDb95b7j<}V9+wHve`~$! zP_K=Vyl7J6`eB?VUGON2b(JwlciN1orgBC&ULg8J7dF9mIZXbnsjK@dy63gLNY~@f zYy#P@ZJq79GF`W1Lf11!8sC9Yp}Cp!S~fE2lsz1GUsjG2iPY`{=fKt6A(PwQs?B`R z%a!Cg`}Zrh6KrSOEWF$;{9c;JJmumk6ZJp|qUJsX{|W5!(BEvo*^H)|%KMH6iassP z6Ez(7sQXbIsk@e{Vn`)S&U`RE&fk>e#yJ%<0`h3~=6oBZwLK%WCv zuuOP5?w!T0k0$xQJdV$Ni81a>GxYya(Z=gH?eej-UavqkicpPqW0F@pn~%sv+y%qc z_5wTgVrMJcQI|P1UuFzjK(rUKMq03jCBWj2Yx3F@o)y9XfwemI%`K?ljWLXK#Ba9t zZ2rb!bZcx|M(XJEt-P2H%l-?ZlsdWum%m!CT9jozK>9$19Hm_-og_J~rEI|M{L}TU z+`1a}_MLlMh}!6A$Jnw-5;=R9Hak1;W^<%VWBd(mvF#cjbw(b6Syzg`m~{$b(P6Cf zcx@y3jBn4v)jK)2j$`6->u)ZZ8Y|bJ(;9v9Vv|gD7ff}KNe1+?lV^s<)R^Ow#()Sh zeI?pvyMgGufI1Nj2#uc$z7IH)qrw`TS&^I9y4#W{D;Btv{Xg>I^h1EBgI{(RFkHE&*fdEtTmf{|a##Zs3T1e?>< zXSZA0GGARu(gdbn|nWuDe~Pugs!K)Il5@z2gms@BxWo&?DxVjm>T@VVv5qgO_zt}~TKUDdR+MoJ2Qd9pCi$lkgk?@;MqHoiQ z)rmpvlg6fhvqeV(;olq3?3k6{J`_+r3Q1#SxD4S={##1YKa-|7(^zW2sbw>?|2Nz2 zB31rKJPLdA@FnypAfAK9X@hdA%EcPz*J{0SyF2~|pFgELiCB|Kl8^U0YiC#Fo)dlJ z<-(RZ_gWPKR=aJGq4LULiS<&z-kfGicP~kYeUhj-O z>WIscZ`f0|>;Q)PCzJ^j{I$DWLA^`pXy zT~vgQHY0vBuho+Qz1J|N)MwNphI*=$<~OeYXWeLcQd^a&V8g}Y;cM&?^T!_OJkR~r z72|Q4{wjHnG}TKq-H9#{>kCpz1eIz_;_Q92qv%O7Tut-+?)qa}g>z%$4RYl)=-J@= zLxA@x`0&`+j{FCfE(4p}T?+lzHhy1&{S3R zEPOa6V{)Q!Z7%g_GUkqDbQ>AHLDE}#iDNptucUa}u6qX#WO&fd%^0p3Z6@8zcm#T1 zJEc@lGo*{+GZm_eAooyGrYPj z1N~u~0`BY)>l>RQdyg3U6@IIx<#e)+F#y4{F4<{9l!X*u3wK3!(Fy}Haa ze6b+zvsNnuN)T#x7D}k48KlY~HISHM%371p!yAlagfIG6cLf?G&BT+DUu^N0?HN@o zOv8?gun}-?i+lF?HQI-<-c@J$t`jb#rmp4+Ykfngi^cGkX9WqWj6GCe=`4PchH}qD zEcTgFfc&KMZ5K(>Q3mwV7&o2Fc_TZ8u59(5e|fZXFW&5oKp+us$ub-TL{Ne1(R5Vn zmhj;RY54;m;Q{tR=p`-98R)wl0hS~%iXbyOX=yWB8o+wuxBgxc%p2l$A*r-o2^N0* z91JylF;C=FE9t{7mivrzM1-KqvVM;zL0u&?I7fl7R}uIFAGqF}7#5?wJ|L4)5@^5D zljFkb&OSS=#kpxQOt}Z}Wr<9cgM$_GSl0CbD5)yl`PT5)i^s3sOFy+Kyx7NPCNqTT z=NTyyO}k}L^$X`4B8NpNf!$wO)RbBmX9N#7Q^2AX4P>)sH@ zob!h!K2&YJS(D)=36wATMfLe@-e-yZPjLy4$^F)^?1JawWHK%!Zzj8TZDl^~lUyIM zwfCNfK?3-mT}>4)aB)7<;w&~%K=WxJ4~hIxjz0}}v4jc%N;B8R(`MB}`Ta$goviUR zu_}k<11sCgJ8|m^GOrBRd#8%$c?8U7%#IqX z`o7IrNp614+8}!il&*@&-pG=uXq2d-@C8Ghm@bFni~^6%$X0w>s`*kwaDx99X=qj6 zr~B=ysaW{u)RPGvFn+FQKQ7;X)I2D#)Eiagh?(KCQGf-TNj)CL`%ii{gKIPFmWwR7 zq>W=_r8K-^Dec^{xf=~h1cl+g@s+_)!6n_(p_0LOH?w2&f}M}@T15QQK;yFV?pk+B zr%Z40J>2{%U=%Eear$ss#j-9^w)O0pn~j_JSReb8{Jj1R-N+Z1sV&p|)P|LUiFSKd zn^ozQoROSk1)W@o)@)XB`4lX6R2dvGnPDQB;j!wX2ZfZy=#Z~3>Jo-$i4D=ohiYXDQ zN-DN6zu5}NJ1XUvzl?V2-UM+|=5Y_EW=Gh&_zn%~&A6yMi@Gl-KGQ4G;Sp`BK;VJ> zW?PaR#xvLDSuG|zY6z2A)d>#g*XL$I*vOrdpdhkA(y`QC-I`AA z(2}pr6O4k{reyBDHkd(jth6_&F6~MApWt<;VgI!+Jl&Un+>+)gMwhPSy4^Ts^Igq4AJEGhNUU_;-b#mS zN$&ZLk}pl_y56?5h~&RwCe!!UT7mZK8HdE^bTKOZsZjG|L&rnkN_}ar57})T zrOb2-MP>$SOU?GU%BW6INBbibfDdw_;ov4>2JqwG`dmj{=1 zz>>SyW`0%3~d?mZQAp;Wb!kVoYOja|9`3;rC3R0MhAtyKE5thr2aV~cRW&jpl~ zuEOSkN&h4Jl?>0)@#TQfsepT{1|rKsQ!Ud+AdAff9Ba8$*A(QBAM*pbnGIC+822he z=M+92uZjrGl?$3kayZ*9mh6Jm%CZ(V11+`yGZ$N3ZN*RtQhWQR-czT*-! z*RW74)A1j21|=znEs7;A=4q$5&pc0u+GL*nVdg$rn!aVtEE(P9N-(Gey@fnGz3J6P ze#hU~Su>N!D$kMml^AWczCy+edB^r@^e<>N(h7h#zd?W{2^Krc+Zsx# zlYW^Y;08q<-=7E#OLqIWg|pgeR#vNUi;cnr)4iQ)9aLQYEkd;XVQ941W*s6>GNoxI z5h(o#k0{2ZgV*@!Nj2IJ1iX4C9)HsnIr+wgAwBS>+|+}F%VilFsA2{%kmj;tMPK3b=oPak?v(^*1Pq2UsbJ0_k2Ohcs|8r#U~R~Y%tjJ9c_0ts z$;Ce!UPE6egv97{#%j`z(;}u5e=0D|W`$3BaIPx0EA_gGrwgnPn`Y^}a7Z8ITc%u} zH5L#w&cu2C&DK0pvC(rF-LLy_X7*hzYQqd4g|ei1Z_IoAK1ikiuHG~!w)#ahN0o(_ z*E*Y<3da$fMTON^i;a0ZaN|pN9lXs)M=M&r$Af;|@}8S;4lPZ!D6_&rTPnfKV#@Dc z9V}zH|8fE>v^lcHuCl2NxmO*v79OycLsMzjSD_WWXHEX1Eotm5sp4DsUk@ReW|J?y zK0#$56%IUzqqOxkv+)+8e*sVCqM5iPnwtYnABrwI@cw%d;|3 zvN5O_y=S#P z06%s8N_v%U9}?cY`Jf}j&Ffr!f}MwsRjw-Z&^qa9MgRi2fk4;gOeE>a{(g5oCvK(F zIvO)(`eLtn4UIkue%Q@WnT?U}G^mSzjgFD;!s;;6iY6EU02)nGP7I#)@Cds4XhEKL z>sq(nsh_5EdCi;hX`NPWZbL<$%hC%3D3PfRkC@!$oht#HnUycG?;n?%Ra9mYEsj3~ z>#foi2IrbtE1EFxk-F!CN=m9=J8l_bb|`F)js1m5#Xx!%Ux(k}SIBaGo?tZem#?Yi zG05z1HZz@oQTeU|ffNG|+)1Y;A|fP+GO10zH~a+3aV^Su^vN9sg=#q{;6_^7l6ho9 zMyAsS4|}-nh;k#V^^5e%iQD7-+G}Figt8|w4SIw6Dvz}o&U6C?krpYQP-gpkEgFQp zhwyg229%pwCq7C>JWX7y*eps@0P`d#r<}dPMof?Yn$La3j`_eeG9+8IAtT$kG35|0 zmLesNJs2iRd^ru7e{QaN80Ne_pgFW7>NGz6lBQo$2n_ch>;wr1lP@hd+A&?t+tr~{ ztyQ&EEN8nqM4`d82%<~$#5GdWINB?ddYpkMZC;2W~1 z++dBdQzuM&uKgE_D{@chZ?+azgJa@V7ajOcjRsk3L-U1(m)JemUpnq-oQ@0@&jgDG zX&3CSV-|V3OS9<@Asxos`ns&=IO+%PtgiDc*M(>RW0;kySn$EW+4!rAPbA>&#`@sH zktg|X3f7L5>ecc(5f#YuT)Al-5%s}kZ;OmHGG;G28i&Ff2g~G5SAXu%&YAI8*HphH z--fOc7>$$QrL<)nceCJTI>qaU_}lV-DIbzR=czlZ!gU1wtJi03@FPC=(4~LTpU^*> zA%||U5?Fi2kQKXHw<1l9OfMy8RlyRfQ*9@}$X+zQ&q#leOID_#(T zCja;=jAm72R05eCvI&JQLH9hVvCdOg==?0)^DhvvbsjtQDy1T3eekvaM1Qw_R+L_v z_!^G(#sSNyaw}v?Giqi~sgR3?akDE$9gVuQzT$`PT~8bpsan;dZd6NW-D#cMImsst zSlL~%;MnTi^fT*rd@+s~9*@m)#`@p1^D(;Z!%Cmu@NSxNb*VE6gUE*iIw7e59KZf) zMw=x~pab%rRMy`8Oftrqk{#cy^z2#fYw^I8g?r%o@%H+u&ZjOH!!?mkX{ANyGCZhP zbDeYW(k1J)HTbVcs7VVltks&nRi?S6@hig~fygXyo>V{7QHmdgMw{aeyl@|mFEUWG zZXx1rc~O-9oT70?3M&%4zIOG~+;()s{Rivt+dakVH%%YYQI?mjRRhD<^vor-6U_P~ zW$F*gP(@y;ac|*|S+}wBMNq0qOGZtZnb|?de4c}~0b_?qUeut7X-)$tjK*O23wqCq zXLJB@bNp&rzC_wR`3F@zVn!A=M7|$FFTT9~VvQiATz>%t@!EZX97ce0hIaBCMmn{F z*Y>|L%W?0_8?(saOb9Gg4Qfl@c+RyRQ%d9omyab; z<~h9R1hdANM*WtsaWCw$u%7poNB@n~5mTn2C;^>ZB8-&&ZOTR$7sKAk*1lDCXMl0P zayLL5`0F9|*)PFxxh7+ArKl0Bq@lS9WL_n!v6>j}xd=;0sn`o6`^iW6twL_VHkH5s z%|<%^C+%JOS4KMh^S@qNckAjMl~qBEKWh&S>Ws9z7H?#w8cbQG0afR(^lT>&7i873 zj&Rt}s$OfA3^0e|q#tW(4CwP=g*+RLcz$6i`N9P{EZ-D}Fr8=psFpt^}Eu3x;@e+m07zN^VQAn6mFNVqE*u!mQm0XD?hJ~TBvh24c z877-=W+88wJ^|(7v-H=j;ulBRNw}Z>uW^Y|*TZcQSO`zyCdZ zZnPMKm9c%U;1TU;fR3Z1n3Ap%^|UhsH4z3L+iuCaxf@`{)^^i;f8+(bJ6li6Sy-U- z99JeG18d)c1&D&Co=Som6EKXYMGVrhanaEGe+V`EKX>{6U-14|58c?NTbG#b$eJ3N z71VG=4fRf_ucfLsOSLM|ZqWaRVpEV~|6LB_s}G9RFJAnUFV{`8-`vc^X&Fw9DKI0u z(pCL$zfN?5k0CVbj_8C#AdGxU{~V;XuzF-2t;`K#40cRiZ8V$oYj?`9YLlFR3w0)> z8U0}>BuBA|bl(aBDm}6t7P6X80Ple@@BsK&q(qQRU*9lXzNZ`P4sC$~`Nm^ec`A-V zasQng_n$Tl|G^o5MhRYil+!MxmNufgdM#}6WZ6Wie}Fm*{517+x@;;Sjd8r;WXg&| zi(Iar^vxt^)h)xFcH9f(tjBGe>-?u0L3llFgs6r^9e!ukPgwIUe-^&-*8P^typJ!& z#JLpDt$(kv{$F@F{_{uv(+&N%Xye}x0SlO137H$wzYQ7vT*;b6To^jBQhQ>PovPkhOG@nmL=Sb9W_|5|CjbLhalhZkr)7EGK5_w9A``H!qx z2b}Jjf%7Hw_Xxg?4bEWmZVXv(ch5B~0z67{u z1qvt4@MSMFW_wHb{;B=afhS?%iVLz3vC z?A_kpu^+y4^V&7cYH9WX;K$!=wb-;-2p{8*!H3_{m>RRm+%Y!BBU8W<HLyZg5(`a#+R!B0*>!q$*pfXH9osMI9R>BQTZ_JK}y z?r?zW@VPpIovrn;hoGS|;YG8Ky!y`Xon@n&2pK*1@@*#hHb{+kaZhnG`>%!lzWoTrpYFy?{zi+C&&UWe1Yj#14%b5m#766m27KNe8JlM9mD&3n1 zvx1dbIif>`)uLinE0%)|W^r9lHbXhjTM(MnAhQr5MnZ&QttIDjb+K|Nt#n_=#D)4! z;)>$6{@a>rJ-LfEW7f%&xdrzNE0JWlNtlc6F1{o z3BGmtaAc)6w2oc}048z zwZKLc6<@Xtsp%MK-`n&o&W;Rt@3uLDqLd?TfsVkKFHb((rMZ{_o_nxyGA|&*mojY1 z-`N(Z`Z1M}gt}D3Ecjq*fuq}~5$@fS&}6=hk|(2CIfSL1U2UxMQ%;9=SqDP=hry-T zOTJ`I_76AmK^J{BBGHHga)j)H_QQ|q^a%CnaSs1kU7He1l5FcSQ$WQT>HKw4zp*8F zKcRA;SFS^YLrr*X&<7oY*HQgE8aqPX^26~%)&N70oxIhaF4lr}QT#|&4C{EjZ^?@A zh-PH^mAl6FiPua-zIDA`KzTA)iKD0_w!RLE93ejz`}0Y_;VgR&=GWGKr;caK8s6%7 z1htEz9MZ|z1)rT^lUfl7!r_j7lza$3fD6tF7M!5Q0wWNyO<)9yFh4L>M!|fSqNT(k zWBVYN3x7}7g*Fg%<^3uqUArorbv**rN`{Wzx#gc-2Q~n69?XqA5AoR!iW;K&d9O{C zm)5P80j*jrz2ps}&`Pk#GWVl-uu=h~XzdwS9L$SaLKB`*Ew~iIX=cR;p@5$>tCfbE zwpqal{R`gK()EoEH>-6~3+ltxqmS}9w2<1WUldet+40R=btCaf?$d~c31?Q8K}bb^ zUf8?ReOosHrFH96^&{>iXf@ehfAG6HuBxDeHPq1#dyN*gSAM6j+5+Kn2?tpXNj75! z19Y>qNKy8mKhIup3l5%qlc{G2HmY1PEfp$j-j~$WFK;C#AC!p#Je&KShQ63WJ8TBC ztdg>gN=dkMYd=?v?jdEM)!>il=ZugUTr!SZE!kB3gOF=c<+YLQb`5*bX3|l9gj>QD zYb|@t%*&TP_JsLMEQY+W%lSU-GxNN9Z{Fhe0vTowEX_}rjcTsj(i5{w=o)Ud1-$j@ zDMA-{AYqfJh^F-@OdC!#+L%E;RA%bXxZ(nWlZD&!uMJLvEggow_}KS7bT`wzsdNe| zV1*XUG+N80l434&COvtd@pQrm9iuTURhZu!1#))wjQAv1{`*CCiwuS@CMPL3K&eI9 z150$S#Et%8@(kknsla-u6bIuBb3QaGik|)T30V}_=qOxj!67|CXt#ac_M`$A5+xVV z9aWykoiwF#`OJQSj%%aj(T!ibINntSk1{E(X_gqiCedFw zdpM{fu1vUE28Z3elqolyX}8gn7z%k3)QaEra|{hl9h1H?v`H^L8nt_k+cwz_GI%ha zrAJm7R*h7qE_%?;u~H=iQY_=q;|3SPt-IPVVX)+hvjks2%GbrUsvQTn#{$v0Ri`Rm z<+b%zX6=Tgs&WH2BnmX3OIaJC(3+i_IH5-bS9(h&60xvLTw6!d_blUZTMwIW{LS__ z(ej8plREo18(AKb0Lsx7X*%jjWw`C%=!;d2#ghhJG5rFjE#t`-(c%fNy3p^wHOpC~ zx7s0yyf5ibyY+^~Y(1~h|2kFIMra<@8VZ_AZ8|TjGj5NBu2bP_Xgw1nRf?d6{fm}t z0GJE~pbwW`MB=F3WsIolfy8DIoT2du-)ufTX*6I?6L_n<{>a5quf6JOnnyCwBdItJ zpYen~JHMjgdplUtWczMqE>B%Kd{T`JRvz{>)U-`6wf(a&GZ_fE_FQ2lGsUd@Y-sU?GhSsWub?l)=#KW@om zCE|?dE0#3jNmF_AgjM4g3-N~@OMBv{(5WJ;`TWB>dSS+_Q5r?0W%H$MVAN41@Ur4{ zk8AEz1S#V5mwj4w`|I)9A3Z=~O3e)5%p@_|{ zj)JjtKPT{OvSFoEnb+k%Eal7sfAu{0rK$L{Gsu2FCfPJCEK?`QP%)$>7xEeCbl`i> z+^$Tt$O_F*azccFyv!qahvv`)<7Qo0PCv`b;a&7-8vEO0fr*K6*2$7Xjo#oH0B&Ee z>fB!bzMsa~f8untPExLYhR^oMJFz0GT(TUdIVVaUp&yxU?^3&H4_!#&2`H+bEN01w zU>UWRi4dL*g8(vbxD({GOW*XTXdQoSAnk&_A)*TE3A_WQK?k+pKXhAs^y)+B>7Xb3 zUavd)8_@+wd}#bpb517RSs0SyGDQm**@~P0o6Y}OIyt1lj{>0zQXugL)hx+n zFYA0Btuw^G(Vk6o3W(P|UjjnUZM$$RdiDJ}4DD3cP1`q5gS4=-r2aDhIr+>BT-U!LGzVLU+ijxzq0L1#fR+MSDEdI} zTp5QcTFwS<8=6SA^DAxC@$)bDk3h0|^3&`z_3~+PF6M&<1`l#9TE6)Kq_)}S2>q|FX;OL>chNBhm;{4;YH|ml0uu#u5Xs&Hhjp&2F{%a`qKLe-#KXDWMk-UK5 z%sa|UH-0`ixv>S)@o|-uYtVO3C~^C_+?`px~MszR*ZmzJwC>vR_7AcuKs%%^Pl_e z|1cmr@sAPq{}eg!Pk0wG_8Bft-|g7(h8{iya`9|fx0Mir0=hLNkkP9Fn_Zpq6j1!P0*=+! z&Y)C*$aY$uI{5b}y06>0OgPrzfyecGThl2Kh?|^u!`T(JylpMJ>wCKC0fmvDXJZZ` z5>lFnWzh@iWuZ+aUQwZ5@Z<3*!AeQJarJ9n-0AN++ zS^Q78C))xSZTaTI&(!l}ddX{cJ7*%BCiO>_gZBu(R>Fd{lwe^CmUUTvE%ea3L}vt- zwBC_v#3mH`but7ny}rie%{RRp+P!Wl&*kT$XVwlo+T3M zHA!nt?MR(P$^yvyrgsv&o+W3DW3`$0C{Z!@EQf1FZ}?!N%rcVpM}D?PRNrXFHT64a zh!FYY3IGVJZVjQ2R$$-3q=u}#{Bk-zFH`pDY0@?Rj4%2gF+3JZilCxlwQViSGbS@+ z64$JAv~|NK`}g{g{=UoB-OK-Trm#iY>~s=% z%I;|)l=z@r2d6&I^4?AaugHDMRpqWOla`h)Y%+0-RCL}K%RUqchuCgn)~Ys%CL^`u zEjR3H3D!D^!VDn}N=)BY;##trM6eJ$m&vW z8}RnhR$bn7V$U<$Wlkif3PR7k9`ocZBzPyi5Ohf1;{GFe$*=p1n0KG4 zM)|M3&{V}tXpHuDi2syvk+X#{hm%O-_{>66lV1h8Au?cSJN2Cbd$d)U%@`D5U zD<;+Kb(!}gaJ4S>nb&h8F|i=$UL(?^xDzv$)u*$9I*$sJcaG%f2W@6V)B>)t4ij;` zHo0~`&DH+VUD>C+{NE*BjWj$D$QH1+#%tSvG-Mnjmv*+aS6ANzIv<+)Pnp3s@FCh8 zq&E+6temG=n$APQ8d6Qsbh|Bk)7g=9pU|h9d@}C7;i($#KiMw8wgam&mPm5zEN>kl zZOLOW>DHr+yvzZm#7B&(O*lpRM@&GQzDNsAJ*}7#JJs8Md^SPmuc6!=@7LxW8E3Yy zxj+8B4*W6j{MNdsT49aI{kewn?k3IEoyV342D*rz60HNk(aXogBOF`SbyT10oh+tlOSeyF{gKZSm zN5#x4kLk=9r>Ny=P}ZAh!jyuPrU(VYO=fumz5??ny9r9>gH1~49qH% z{uOZ945(xpjOdF->uv^D`_}Ov%RQJLM(Y{Qgg-(z)?B&%K_X~dq=s+yk4EpVQPc1b z=wCClyy)u8++uQQwj59mcMn=Q>8+r9ec!)CYKP%mYrQ*+9jRMPX6*e?$3U(y4Gliv zJp49zna;44`CzUqjL2Rwk;b=+YZw63d4+s5Q=T2dOLuQKjXxK2y7&Mif{ z@LOspak$%_nBWSXfC%jb4rg7jT)E?@mkqTC#ii{MIUOgD z*iEuej?e+>k9hCI6qY4-^b@T!)&}dASq=gJaJ@f6c)3v$jgE%>=U&dAnvjyuq38EG_7 ziN9=qWJoBcZWu~}^GbXojqCak3T$FWoTQ3o492o&Vl#_JT~-=P7UNM@>#D2cN?{Q~ zQs>?$aCl1pbyBK%;-O2CurivfH85aZPeCL@u1uN$I$&uw-qC9un7W%S=wG*;C+?My zx+HFw1B@=q$bH{Bd*hVQF0I<8!!83jn1NFduRq&!#ncK~W0g9Wntv?iD<*T4Z{Xbm znE@BHk-4LdHscd&%@p+y49+?u7D~z{ow~0+bmq5_u&8;_6Kh?j`?OxhmTtR3Stw}H z4@XxpY@K4Tyo1|S%OmkrCmWyU)wnMP_GMHzf6KjvWo}%>8#JGgk;U9z?^FxS_6gtVqL@^X^ zM5UJJt|;91GnM^X!SgntC_S1G8QCP+WN?@I!{NrM$8mz}%MNBUo~r4#GX?G@*8i8) zBP$lG&tS^}4LKBHvK+MK7mNNBAyWG&Euao^jX>XxGqeM6UUx;ZY# z_o~A4ztUfQKZQ4Y=+7PCVb6)})^lFV4st-R1)hhOSt+YiB(mX=68EM-=Y8u6>cZO1 zBWE8p$D1^4rX>4;%X^=#o~o9>NIf7}tJf$!s(zD}mOqRX{Ys&6tgnjj{);xUj=7s+J+9$7eqZ#KUZZX8}R-cViwHjuP4DMVNC4N0{1xNyyf?SiOa&rKZ@7te-GbZoit2}k(W z-D3BwWeYn#>LgGn1a#w>t^M^n^#q7eNzXyhUEWC)GTU5#plap7t1C50T=)jjfO3lA zjEL4JtnJ8Cvmuv*H>zAGRyx>fQ%Kit9sPdlSR5i3eo|z_Zh2s3*Gm9ymZqEtiNGe{ zoum<@C;=ne+4m(Dg@ZX{h==?$*dzvQpJfR*?tt*eiZjw@3|c$UH4J4Mx!vGW?J`v< z1QF1QA#(bNRQxjZbdFLko0km|w^JYA?j#NCwNmDBND;)P@1ZIcDlrAs$ z>70KrS)VyV+qxil@uj;+)=8p>sm7P&w%vfdP@j8Q-Me99knb&O>(i@$vnjYZt>l*Q z=Kv8+OA+F21@Ex>49KRzG*@b6G#7kTd*dZa?Nvp%NztKFk!0pX`i*9*-ddJ%8DlHq zZyh)Ucv#UH=WXj#-}CmGyzk7=6Unkl7pKXX`QbP1F`l_jmaE+5!b`9P7`Y}1nNRW$ zrDI%`k4j?|mRVRt2*oA5h{93@Fr_I7*B*knfRkcrS^3mt=T|F5ySyw_hwb`;Pv5>H zFBnQ&vL}9>oVPBJc#00S{ES(QlEAD4SQN4vM#;iBiwKQEhKsc&s(n04o^Mw?{#b%F zNOtU?$TVwIu-2oGbVWI-PU$J+(PnurOG__cDPmen` zCDFC2(Q6bnJykfaKo5JkJhe!i68}K?9XvW`lyblBgX5LQ!&wXG1hjs2h_SgUGN)%aFkjov27nr{wFp!T``fhKjr}or+|G9mV6$G-W zE+0fZ3Cqewrq|`{(|1?#j(P#^U4@o0kO7cI-ma4qJ^djjf6$`t^~y2|>6UEmob~5B z`;%Fu<_r1Hwe6ukEqovOegFLT^7$XH_W%Bm{}dqj4~;o%1CCB*!n!&w4|&uIj;_J} zmHVWk6m3=H$ap<)w|;o-F;V#mbY}b^be?}9JY9J5x^$4-ocqf^e-1d^*wB($?e%1) z<26Vd_ht2+wS2-n7WS&Q>q@1QS*~6#3c3%0OKb*H$md;ve}HF3(B2ADk8kC@HnyHL zwsf+J-lhkR02_}w>d|7MwHv=zz{oExn3Sjp>u`xj%L)$#UBupA{=sLiy7trD1gMgM zV{}Z5%6FuNyY6*~iPX?kaVtB{$xf5X;;08^8wMdwq52u+$Gd1t=g^^`BU1B@tJjl1 zc@euU+S_)`gI96r0_*Ara}6~q9zK5o2D18J&ffz+<31Cb8~nvj%mYo`#*dHm=|muB zz|uW?=wkr-NC~!U{3$w?p+^z_@No&2oe~XzFU4NLdu}W3)T7hfidSAusvF0~&u5;j zpjsO%80%D7B+?z;+d1_b^6t72_nbg|F}UlC(h9mP6C4;Jlwg_TnpXEWTMT~b_!>>= z!!&{$3;+&4Qxz2(4pLk%V&Rr)%7+$na;fECGloKP$lFqv8f*CzF;B4kw0Cc2^TZUL z+ajm(W;o@n?}w4>CcUW$r3>=AY&98`r4UDx(nCt@(8`sFVKWy-qTZuJ|TlWNNYFSpGLt zKH&MWi;7=llDd!ltd8x^9**z2=S;TEZ9qKB#C7@1t!?Lfv4r*Whu%nVY0Au$9hXSe zP4^JJvo~Jrt-u09{cO}ECBvHveGUJEa_0q0VuqVG;8=a(On$TeQqrTg*NV7*JfptKVESK^7nMR%JX-XOH?zH^t zFWs(x>%mU5MF7?Y|7Md|WvM%>20983KCY<#OXXpt7-U}HP*1o%r06~j{$loF&Duky zgD30k+UJRi4v{~MIPAObnM(~q$8@6iFbK4;g*pz{OvO#O7GM4AkK~tIhd5I9G`1j2 z4MFVKI5F<>oyz;IZ^l_7e9}VD@nOTMOLxwc-e#fG!yc9!cKqvd%L%bE3>8ozyH{NnKO^9`SYdrtM{W@!j;pMP_s-*N>J3<%P9 zpP7&0!St=QfZWQy%E+83yze7;QZ|IG`pr-FQsZfe9NWNCwNSNuNXU+(9Q33bYxY#*U|cU&J2ld#e;d3%lqKlKs%=OfCu2jg!{nc2{h zl}Y9faEB$qL*$%k$ZYas7_Vfc$H<;tB`1UaKw+g(@6}e5O?$htup)`=&pV#>T;Sj8h=&n-?6x+mGNsvd z7ry0r*Ft8r7J(yg7T#EyKokp+h+&{sPzbh^&T4c{ zN6R0jMuRGtXK8kAOQhrKtVmafPdn#x#@~bI63%|+esIdu=%b;uT>H+cbIauxrPm!E ziW-Oao9YsWTh}cJ&STQN2Z|a-EGSwrO%v;^9rz*;ovrHT5klC=>@AwuO};@FVhENo zj1SMPQp)0Y-$AcqwCl>;vxPF-FyzejQNggPUj7SOx=#yHissiF0EVIpjZTv|N_SD8 z1tEPQi`wFUu(2<)vDOzd^Fd#nX~6)OF+OD5ZyLN;iZ&?nJIFQKEkfVwQp0>Y&!tvq za`*AK{vWya=^3YEiJsL zt>0}&Y0bQ3uD{v5StBE1<7}s)X2W3UQV^>FY%VlQEYHVJPJa92YqzH130pQcHk&UJ zTZe{@a%gTAXwGN-0E?&&yai{mrpT_?tHE?4-5S_X?_)RmPVD zRz*negAXdO!M|^d-@@NHpZ=<)UgGt2xtry32p}39DL*-06A7d{Ik@!Ox|!(6mr_T% ziwmGFRB}|lG7Ats@(RIpW3+L#MTJKTZ}!X@Vm8+>V!W7yeh#$|pJTk2T$BnG)%F!Irv4bHt!(?(hWFkeC{zASdZABN<9u$|^YI(w=ysIQgLCgfGd!vaJ_fmj zdmBzKI-(*&q);QjlehuP@BoX2(a$}aFk9Bt-Q09iS*w3z;6ZV)cop!iD>oi19WK-% zq{!16tIk3yD_wwobNX53B4PSKT<-JeiT*REgN}jpf`5w^w|@Y1VG-au4h!@6yd9 z{O)~?_N5Ab)j!*zW-sMo3FS^|#g#3&g;)zk(xmg!j)`3i&>g$N3X2)9HjApw3GgV{GuGoMr#yKN3(N75oK$p<$;$UXF5x;GJDGhs`Zl8= zYUWC_m6>mE`~HkH+oQ++YrED3xN9G&T+adjjFM!$?OQH%Jh4^GcS z$RlRGR)g_~vkfzR=aL;et<3|xr&h>)m~?Es*`X%WpYekx?pj+b_PdiHjhpL2=VxEq|mCDZYDDOCm-MfNG7gR8;C`PiuZ zaoS*~fnaU#sxym=B(@oohZ>9PAbw!RlsDU7{t5bH>>5VOGx`rR(XY2}I?P?r+ta8p zahjZOp^``eaH2(tlIw#e4QZD1Bn*5wwE<>9?YCHK)Y$RJHrC*e)vl)B!J{D}jC;U0 zZPy1{o!*$2`R)yVf^uC42pZmgVE4vf_S>R#!cri8XLGByERqmt3KR(lB~9sKcMnj_ z{pw{-Xx)3YJ{{)hv8f(%Uq}GpH_S2xSIgc;7H6t$ZnQ(rg$wCeUSYg-P%5LqbIJ)L zk$w=;SK-OfZNu9AZ^qkv}lQo*3H(UqPJ*e;jX* z=U;6B+Lf}0alX{15y~U2+WTB@15A~tFlIYVOzXdhU5(+DKCsZ%ndapCpczw9Gb*gH{o?y(t?9!jGsyv+(m!CBcWABA9G!W` zv>C_WFWItG^*u+#oOx>V*^O)H!^<{pJ)3Y23&rJXERI6_>`yInPMj<=yDWELnpBvF zZXuEAj6$Mv4xmv#k@1A3v1DU#PcRKxBZz0=1Go2Q+r+((`%eaL)$Nm;51Ycguz?+h zv96$r0RN_-=tj`u(Btn;RIOyV3Byc@+nr_ln-U#Yg#nI zl8IMde}oGmslOVYpFmc8%%z1_gb^}|;FG0u1(kW3`5&VC$oGD=^~j%&LlS99m9;FA zDm*ly8Pzl<@B2%f|9BY0AHtP%fNR@0&6<={4DJSSp7##n)aZ;v_m$8abjFJb5YNu~ zb~lADQ>Wh_h(~?L@0UEe;o++^9x$%>&G_F8mQxjbLiMp=u&I;C5S8okuxY7ZslExh{rqj2g+>B^RKqm!%4 zkHxN2B@c|f_mnm-a=0YT3i5GVnBqgn*ReRAXD%Xc5(~(tXVF!MDhz%|JQ=;wiO}9| z7b-|V%LeP6TiFH-=RG9yXf;mU{mLP9f$i%{xtHwadf^eqD||Ojdk7(vP>knc0dO#@ z6+bV3L)SEWM8?9O+G<(tdIU8qG>O0>>c;hRY5gd~l0Mh)uJ}c7@y(3Yx)G{mRwBK< z=Ft7G=&FeRb6o`+H@_pbp&8cClXqR6K!7c${WYJ{{8VWc8$?l{Z;6GXKD={0czg10 zdTe+8eFcguh~X&Y_RKos+1dT?i+qEoH}f8J7B@U4HKErUn?f*d=TfZRJO}uA*WuE3 zuSonQ0hV~7C!b%|c70~t1nsu9I<1@>E8soFIYf;%JCtTL&7^$GzdFo1{}8YuPAl}i ztK^4v_6tTA4$oYA^SfNMqFl3CN;pdd*A#CC+(JZekjt@>YDw)=fW7&xt*wo1{W==^ z`&xsOi~@QvK3Z#Y_3m#~$fXqxBTj=yzX_y`dy{So)H$QKinZ`=QDudf(_YHQ+tg18D_5Ao(bVQpGqGi`_KeIOGq9rAsszrlz2^l9e2ZT{l z&l_&8whB1SmloG8EUg@*kJVx=M`unKS;Zy0G;#MeSA1m?B+bJrdvF!Sl_M9{!SVTBf1lTJDNw; z<$TuAx~Vm+A~0tS0k4_#M$5$h9E=9!(7!PL1?}T7V;Js83{#xRYi*(ahCk8qYlY$} z^IOfSxTXRXomi(X_JFmYjXB%>BgcNosD0OoJa7Y6`RM2?L_*`(5|Vv9)w16hs?JL1 zIC2KzV|9-Q1oQ>)g~aANM_($9Jv;&f=k5~JUOggozqVKFU%1K>r+I4H-oZ625iS(k zRJa?Z9D8vCPU==1cUH7V@7tf*9)+wEg@*g0zn0FMWy6#!!fFz?=b=O| zaCgFdyG?QcWr$VwVdz2ElmqYKk))v!7SIE1v^_2UvYAD!*8a`fq5|kbhWVMXVh<1- zlGz@F2NgZ-e^yO!pXA!LBWgbiUkR3FB}Qz3j`O~5Z%5XTDP{ZJgYm#xN8ol&!Gnor z0X}^{vx{2hj-y01KjqkE z-#O_EE{T~7IDHQPCDQ_77iHlbl2=}?yh-ZO3&6&E`0}7W{Vp*jX7IBZWqsBIOcx@~ z0;HleczjN92B=4E_Cl=S&Nx$ce|#Xf9srW;A^eWt*NT1xpK6mYg!Y}|oO~q_G;Wl= zQ50XfA*;qaTWJ&NHw<6?Rcq$#u$XaFqGA0SogSK%V&YfkInuq0CoN85oLWk<($vdU zSF&#X>F@e9*6Iqd1N&*Aezot(7pw~t0GL#x(dvu?hi{wmyInvC!!Yit& z@v)cEDSwQceC;Z9@zuD|jmZYB)6ZnHv_!0GdR3W!)c06U z!^(NQL!lq(v1Q`bvw!EZ-2>03eXrg$Ki^Jv+C&rRwj(6*pgW!Ll?9U;Oor8kOYvkCvZ3C8L#}gzPZFE#{e3E&!z;IKe z4L%8&G5Xr*k=L0MpogZefjskOvaRZ8Z!1jHoVdER7bpB4^`bfhZhTVM@KDRl@|Bb7 z8ufo8?Y*O#TGzF2T=t5H^riyRL6KgUx&Q&`J(P$F2q7RnKp-jt(w9^v6zMe}5E7}8 zE+8Ns5+NisDIp0p5MaG?@9&&%oNs(j^=gIxt*LD5wW4^7Rv}AWd zP-&{3gHlli#w8ouv1Y_zrIt1OKT@a_j>>8)#bvX_wNN}k9EHT$ z)Mw=M^_=*0Je_k-`;3;_EJO|Qwo2X@0Lzh41Ry@xfa6h-=EI|%zm zQTytl5^cOEsyUFpg6B*r_OQ4NnmBmGYn!n4E&qA~=32XE_Z?PwwuoU#S(Vri>Q$lo zT}P<}jVUwJ5dV6QUWi`~hb4{H1;iA}K_2^PW2t;D z6mk1{I{M_v+pBuhq+i1w{j()vic(=%St!>gs(yU!=LeHqcC{VhjXudM%CnNPvec%f zaDCen$UGH~?YMiNq#Aw=7)^m4?pP>EO6k&fFZuTSO_$8x{CiOI1va7AL%>psH|=p#}Km$3E`M)%h~!96<+R&m|l@& z!(P$7nH^O`H25O?elZ-*pj54zE3mrz`|NX{&I018(uhhf-C&ZRHi6F!%z@`HQSKki$H0z?}98xEzi8PD=#l%FQds z?lI{ki5}gF`(=9i(dG3{dGyEI`sSKb+}7s4xBPaeO4QJkb^3NP?CJQbG7#lO;Vjn1 zXw<2P)x$S@xMgqAer4nUFXv>5X-Q0(JFcfAoM^?Uxw7Mn_QykwVL5RkyjSYn$uioY zSp0Hij1Jmo{$ldN=Npt8n-I`OK-pk*TNbGWK;8wAW{Gm0<$GF)-)ixV%=5ix)b zq|QJ>v!Y}DP4H)TBWUD98TxXE9|&uImz^l1>J^nI~jyU;>(<7|&U zo$C(Zp9$(V6^V&Y?>P*31Od2WxekF)QqP+mWHnb< z3>-`j^P+b0HiICX*f;JUPDd%-;5^T(+mvK}9z_&YQ~10+GbRk#gEr_NI2p-_#It9E z#_w`)WT9MI3b;$V!uqHKwTaoZwaz=?QwNiYU=sofl62bMoejJ{d^o8eERrCU(FALk z&+ZD`ieIYh2;WG*EkElQ;pDEXe=I%8&g^y03U4pX&A1oY%G7Li_3p@xoE7^4=b?{u zGaqltHXD)!oR|hl6gFkNbI#1Q+uxqD`$=%a*%E)Rk~UJc>~kmOx9so~H_zzzLNEjO zir>y(8YYX0~D#y#>>D>uW2?ES7;X6_eUxe5Rv$lH5< zI5+PC35~h-$oj>CjbqQE!UE!M3*{T0Tp0}1T73N zfdL1wn+XpDA=E53f1PphQ}_^+#Oy&@OrV9Xb@?k!T~L8MM`Lt!^n5Eprra!dzuiK& ze;HoROv@)v3QyY5u*1HqM>BZJ)4L8kpUTi#4Jpg`iJ-vMeH1j%XosjiU-DHb2FIf~ zWAO+`+PHy#`w2^5byL#j+6J>F+*|+fY&SGUrX7h*Ry?0JyJ|1gF`99iHH6({T3>+x znpqj>OV3>M@9AZNCo#ct>+P%>A>{;Yd zkA`I#NqltK`+aEte(n}{)KC+Dd`Oeb|aU1m7b1Le4;7{Vkg3Nh9{=^6tRDm9h& zL%8v6UeqLy_5Bvk+tLw!kL(^=r>+{L-l<~EM5(0&BHZ=uitsDFI$o94#f6)?0To+S zAS(%78Pt5=Vnr)O%TBqjXI% zkv9Ku*lWA`%8LvP&2_1x-TF-b<0$K=gE!tKKUl~yk@kIg@AagUhu@yPyGYgEu>C@l zj3>J3=X_zNQLhNWtDn}iN`W*U{uH2e z#`>)Ow2>JlSf(F^Z)NB1TGN-}<`8cKsRGsSG>lj~7wEXy;?bo?P$+!j&Py-ja++1dj4rIPdZP|2?7mn3xBMfWfKcT|V@c|pm zT=z+dyiMaWnp_W;_Cx|;SS_)WT3Hq+=(gYMFuvdBOf zFnsZs7nkwQT2|ETi^29MH@w&q7f-|1oC?ZVy_2%H%fwaorw5ObsP$mWJn^|Z{@^a7 zRu?=ic7HXehl^=?s6?Oal;b9@98|B*%vC2i@iqP?Bj)57sL5wKLV9kx@^bUc`^3%f zyfe`(@Vts|3CiZHhUtib;Rj926A%JwiiggrCXST0kE5kf@eOoS<69jmOzj!(jE z89-6D8`dzQP}+K%Q9{}%^6@Eke`srOL>oFae2(1kh1t)NX34ex(bRt+WEL-XCqb`L z)MUEP(R;%Q8i11u1kD@{au`pkp+8mbkIf5sCi{9Q@1p`ignX^Rgt%Mjj`6>X>JPFO z`LqZ|)j$jJ|1)*;x6L{0R~j~7iB}FE795WwuEU=Nm+WitPoNzIN80xW6Pj0^F!eH< zPI5W6KK1Q8F?4EfoP>|!EK>DaZICm5Bz3g1pTtHTD-fq}D;zmc_XUyjxu;&_UV{r& zFzh=6!FV-Jl-EQCCI`~B)Y);VX*exItNebYq(y>d>iCYyQuZV{_U+|x`iI2fvF(KxTmu@Tg6#pkCh7T zk2~C^r5w5}+`oO!UgUHzkJa}~;yU{CSP&LLLbSEzF>+0gzmIEU>g{pDgNfi7qcDXU zrC-w-OL`XZ3vQ=QcKNG{J!HL7Q*sV>J3j@C_*R~?E5&98mB2KQeuhICL1ZB=_;ZF( zmAe`Ozm2=RW`hl>Job0rg%#GMi$E*ea%KDOyvp&_Rjs5AO_Mz=(+5-Mw|pZEH%z`s zg-+QRc@Lf4w872zvF|=-xXtHA0qAqL!k<&q?t+rd^efoX756f=p9D6|juv$CJCVWe zzT~`!6Ytw93zt4~dzfN1B)VlZtB{S%#)@jwH%XH<93J500NKphiCExwIVatiDzLv; z$gEw&i)-x1L&uy98S-T=+i0^^MjQ#pE-Z5(74h=V>EFu-mS5=|=)M%F^)(Km`9@wS zM|*RNj7Cg;R2TvGB?m&O_3=IqJ1_d;QL5^p{l+!{RjoUFwfLhzHym7ohDg#l$ux!A zq*L2{e!^J0+3nXjXC>n-qwg4TpiRTlC??eNq5{oro3B`?-L|gjmw%KM#4n3Zel#L3 zdIP6VO&@}b zdh=T?hXlgL`AdDjE2f<{h`Lo|?<9*%Xv8dXxlFHw`3KgIZ@61YegQwt zE*d)fD>;p@IWBuJBj$`d3m2x#k%hXQ>0olw+jT7=!{Qesze409DFKgmROhet)jBws z`0&0JZ7yw>+~%tr@EIsNrE^G`Tmok)7$7nnaoUFl!E*B$j6jwi_-xXQ)NGXB@uR4N&=p zlNes*h8xXKn$zOC@m6_8VXdH)o!B%0wLfRQw3X`R2@yI4M4b;|jPXJ+!`bVY@6Zf@ z31oEL@i47eN$zr`1siz~oBynVwq?BT4xNuN4|r+yG8v9C8kF-VEYxmdWp;?q%B@<` z2fXO6$A* zV^s0YSFDVbxJX&R>AI~G10iM=ygMyGwQtj82v*92h%U^|?GBurBmi2~`4R?uM^GcLdvzWNZUhYwe#7@0uY$Y6W|V98 z)35E>ku|+MRq+px$0j*8oPO?3W=`PbAp4Z+KUexx!@%xQ4l7FJoOCFrA=fh3r5yY5 z7x*F$z^9RNDXN95ff#S?*V{=^=}sKj@xmOLk)IuY*-@H=Ht~~Q1Z0prplI;Y#!E&nQs2&&3`QKJ9O)MmD-#`Rx>*#Ju% zW!&5x_j42j*irW=-Zby-94Q7i4^~AW86$xhp7nu+t=`;`p<|q(k=pvV?|YvfUozh? zDjT%(={c3TS=y71GKN)$rjH<8WX7@M(=(8wmN2yh<1|Gc`?TKr!^!&WzgU{e>qhOV z*pD#fT`NXe0bJ#%#6L7CI){(8*psMGVMaOU zv`f`%3b*1{GN4ehCR2Ykkm#0FH&qKCU{1Pa{k{_J;jmRpwx_6NRTt1 z#3?$0p}iYSpGfj9g7L2HS}^YVX~vt`8`9-W4W;6wQjPM8A*Ww^fvipS%~vnFEuGBV zp0`$93w5t{tqx3Yg+7=t>}_e%Ok{PXjU8o)ta_z{XknIGs3W^AL#V-D zAGZn(>#v`9#j>thabCaA*re=bl8B{^F<$OV`hU>$x*GrEw;%u7Y4<;RQ2)Ze31oi% zQ@Gn%B-|NbzVpLRhH+{O!g2&Igt>axt?UBFoXjOi^tZE~FAFdyTu#6HDt#vSy7|%0 z3)0G(GDObCWuc1s7H}Hq+QzJ$+c;9**%$ot+>>*^fmSQ2H%jTO>`!L=iGv2y#3l{+pnrwh)r54gZ$9heVtn*{p9TLJJdsbh0QZLj4{cA`M@LIBb zx+KTXAnGunq|4wgLE)C;!5?U3U}HG85HN?BFj*uS~crX9B#>l#)5@gKuE+^uk--iHZ7!V~I!t==DNMP7tPvMb}C%A`wKPpt+m#f~vh8&&2)Rp^Peq*~9$wiv86^l?f%HP|_GB)jzCmNwCv+M`xQLe;m;oXSK&3A!j z56~hnsQoEG;sCj94vBlTq+<2ZH$iqns;~3h{Cmf`GBs{kpYe~>hA^j0trqJ8 z{+f6n?&wq13R$RWNMNIk90v1a!(W>r;k`~I8+ml-kA~kuqI8eR>h>?V9*n(Cws}(8 zp!D@p@>#L#=0$3wmMaw)$uwbuD}}Q$jyVbRl-+WM8B-g)vJ1?iMPZ*Z(jsH1rfsBwSuy=3EABgb&w{QxmUj1yl{4=5-i zv5@uMj)0mGXyW_Bo7eCKzSyNpbzoOlJULF)LvoNrczAt|AH z%R`FpE+Bg29~65eeW=rf6|Oj1DF={%5pE!&2j_ufbI#*rYD0GC%bvH^!hTofU!L_n zts-V#`J#uMw%)>?a>)MV2=7A}EoB@mYPI z>_HYDR~42MUpYqA>PicEG;dYns)ukE=SJgQBt$ES2S-ZkvEP3Dds4^0FTnh}8J&ME zy8P#g3K{(F_%}ve8KO-WE*4O9Xm0Rk_4_?*LCP#E*$-;V zyInYklBfERi!5dhlh+`{%YDra+M8ZQ^C&g$fXjTohNz;xYB_*c=!pt1{)=V3{~w4e zZqbQm=Q0@6$mGfk&}>6N8>vhIX1ZD|QDiIfrP-|UbbRV#Js#0#qH&z_Dp>x@(hv0q zi^S{0uDeVa6J`hM^KGoB28&7(${r}kON`ZFP!)0k;QH|#%ItwHUHcueJ~y$I)d|l? zT-!y`Sd$c;OYwLj{4Q-b;vzvjn8WpvoVjl9f@6>W2OjPl{4&r8(~6ja2g+F<`g%y$ z6eh?q#ABl=j$?pV(PQQ8xjubwfH%?FiZPhY&?I)ZN-&1$CwFt`86Ak)KbEg0>$`|UitTz9$SR!qo05KUMfuTo#x+mmP~~V8vjhYZj-rSJZo@(b=}bi zbr}~5OP<#~q)6M?WyE zBgaS!bS6ouzjjT$%2IR2^G%TW&HL8P;v+>L473)=xnj?WQg8y+A8#-Ed_SSodC`VV zqX{`1j~Xh*8kp?`f)s;@`Iri({_)R}j*#d#a4DfqBjvfS?gkRln~ey|T>d@RDV<&U zpa~NC{6XQOLtX!?>z95r;k79S1_hd0)E3EF71xGRYxO}#_UTCeDUU>$B=^S$8|B_% zw<=qqn3=}Vs^z?6fMi#1a0o+o9dqS&TMMyy9p2k@ze#t^Ei@`jFgTwU%09JRN z}wQt30B^$&#>P4v6;)xh?u{f`;5*y zml4}~b843Hu~}3sM!{QXiV@B|OCA>4+(1=H$9+iqw$Cw|P~Ak8@q5NE^#n4uh^=+k z2kUp6rPa@Xuw-;iBjCxZ^X)XvC^TS z&}(~ZDJW>`@QTImCq@$aFP1AXawr$@@SLX!=_ZOVj-o_IpN!Yr(=7LsG=eVWi_HAl z3c>_#POIy^=9%s@Ps0P`15A3;EY(pOjc4Xm<`o7%D`1+m%#7IENkKx1p~A1DcbkE% z1bABPYpVinu%uW!K7duAjg;OR+u@Q^biM&L{@wfxEL~@_|JfDQHmBM6G6Ptp$c+Xo zTdc^=qKAAdVYB{w{ltV<&-L2{dc1_CU3JasN-a>CA~w4!Bq>5ej~++jqHvMqP9N$r zB8uU+tn#iU_f8f?F@$V;m?O&&?afch^;3J&2Zx!bTe9s@X z4=}kuX;H!pi$oWGnsl9)xSg|chzVjQPVNFEwv>mAdLRq4GkF~0X9%osENt_#qixtEogn4o^8pQ8=q?D zDspsHcYXZQg@j@=ljO7KTQbqe(caks_gW43C10d~=%# zRJZ)~v;-f)V>vudLOj@q4fL3%Y_ zU1*72fMho|wJ+Hulc%VkiBs zUSxkAopHRzStg5K#T;N=Ag#UXB4{TRR)sqIWKns24C3t@za9h2RkHwh;!K8g3ibJ@lM!^> zuH+8DJeg8wGT<0O%p0Hka$WacL zY0Jwk_Hi9uE(5=AO#pPf$Wgd}>pbe;jc>|`ndR20PhDOP+Rz)e&)(l8KI_q7tv+<7 zdv^;ZaS2^&mY72}O~GybXDsaL1K-K2l$)4Xl}hNyjN!|Zs&4Hkm32klC!AW&Fi#~n zh^#6#_HNaO_llQxfib-@ft}1RJ=c#GFTkq{EgbMWK`ANjfuQyD(&2j68135J2(-{! z+!fRlC8v8aiq)4KAxO{dX=&;#1iiKRbAUDXDvNG>pbGv2w}6+gZT#(9$QH#bFB<%v z2D-WG2|nIKw$!m@L`S!IS&{BfkfTEp*KLfx0T)6OscBCFsBy8g{EXZ}7~i~766u`m zp&`dicVszCa%t7@DYPA(K3dclbDrG(9~J z6+Ya0fiX}3*KT4&lXBU5f$C>-choASBY#5sQhm+4Z?_^{WCDv^+G8AzABldxkYON* zS9~F%Fqhh}-DLEIknx-f4XABBIIX+F)G(22x=rd0V_)<&K?daqjoM53{#*jUfJ5`F z?SHYnMxd24suDDAGFk894w)jD#sHE`HX1h8FdrBpFhDRQ_0JeiT1%CimkTCR3FLN zr<+R88UWmthLWS3_pIU;EJhs13|RAOx;GvHcIuS!Sa~p1U*>qUO5beR(`#g$><(9@ zadm^EwSJ?!CC<}tr_Y{jolrD-;3$u86U$Wp@Q3ebQ+N%(`Slwr773khC3)ulixxZ* zzskx(h!x8g8Ar|Yp`IAM_Yc@@9i*bF3JU?-R@Sp+2(@W7H0h1jJ-9aGW2lcCux$&# zAYDO$^!+;fUzsf}3-53HG^C3?Jp=2lvf@!`5Y1l$5CxZx=ko?74KA-9gm~{4)Rz6D z_wkSF{BQ7{Frj$|c-tRz=EQw)(_6gT4LWU$Ds@a8kJDQEKz~JUncR+#2Uc zHsM{n#)n{YU^u7ucLcg$Xnx-V@p3ZEuY4e^+AIIt@&&(pY0B2zkNO7hruf$Xtgo$| zRz?_#HPu{gUNPj(D``xX%lD#SW$?8t6BD(r;PoP=r#&Ns?0I~0OiRud?opTVs9`*x z&Vh?8{vnHUx^%Bi`cj^V^#eQ5-S>;1z4EcC`Jd}6R0z|eQbd5Vsir_#7~M#OD1s7H z`i@78mBIw7Di2EBLf1n56`MH#oR2rT4 z1AUIQEOuVn32vullu@y_S_m{MY62oiUTQu`E^LBFM zs}8M&xH))F1tFQp?sbv{N->kC!M_UbbBAxi5Q zHQa^p=}cgtGb_-3ySQ_75md`H3BHDE7Oo_^V|1YPQr=k~g=0yV{;Vv03g=f#{$24` zdvdzeWf-2r+1yyJAl?NyyC+NrKz3A$v>cRV2RBQ4-5~A~ZJq~sW4WSHNZwkAa*vTA zi3ty=rvpey`~poQ2{mO*D>PDiuW`mc-~`7*&-b^Z1LYq-6G_S3DgopHw{DbTNLe3p zEBk2Z@Pd4F+C~UlVM(GT5-rBv8!TG5vkCNp&GjMyXN}1W>Zs;n zME|a~)HKgWWz{O3&>`#vP5>(Ry6nX}GdC`9vS)uEAAM(ejJ07k4zx_Qq6DdW5}#)y z5o80YhdJ>@8qz*qLS3nq$lCZICuku#V*sO05<9$p717?zD6WO|KW5-c8R`ZRW}_N9 zkb;4{1fwN{=#w1$?@DUlpY`i)rv3Ts6mMC3Kxx}>lJugv!UWbNmy{8(TZL;Xj?eVE z+UaYVHs7n-qUey>8;G9>rTXNe&qlVY!rVHvS*wn3!uI~452lnes2!Uo&Tjd)Gw~ug zh_2-uoj_$aw*{>y#BZMSw=nIJFTaAM$@|1q)iyypIj!dc2wZ6x@#BaOuhM7r=l%h|s=b zQhe_2ZHV^4!++&({P#cQpMUuuH=I*|?8*81u!p<3Kwu2E;hFJpwE1pue!tfsV1jfn z{t~6*;)paj!S_7Sxh}!B~t<UVye!;k60cR)}&)1DR$J!ACRPt{D zkmN?XjCs#7+sv(1i5-9Jdyqo&``1@5<*RO{ZBDPM9hg-Q#1$o!1987Bn~oB%#@izx z8O%!W1+$_DFk9_FGoK{{CoZa*jLS$nqeEPW_nW?ahDzDdc0U$9^gfk1 zS~x+y_sI78#n1Z{=qQo7g$vzTX=+wwfJkfXvhuB%I%U*kapo$wLU4LbdKW}S<1k+QU?S+ZRc3h=-#C0g@G#8ERbH5 zI*XfD94bKbk?OEMLo^z-x__xg z<719_=K?w*k>x`3qTzI@cspeVLtIE6>0g@Jo92}bl6AL}0`+e}cQ!$C_c9s#v}aw% z5_FrW@EeEnljxR{WY*{>4Rx`afzwN)^-}tn49u6!Z|~1Ah9im}-Jtn7{0I;q%PN~L zD=f@SY4n(}BBIv)d)tddjf<#U1DuWOc2xt4ILPfp2+)PDBX$bdThOBu0WL(u{juX) z5GR3*jzA?Rfv6Y$36j&;yO#1xHgY$u-JIXYv-nuV6!AQ%a4v;gc@o0)3)32P z7iw)YIXn&(knVCy)nef&5mc?F{T%D70MkH<8uVzkF5QH)*f$8>86#|5ucRhJoD3kIeahjTND2c7M%<_7fn))LwhRJmLE zj-wNiF=X(iVcfqskt4=>tUK^g9J;YE@^_JgWH?^(Wg%@dFkw+tltBm7ve z1}=t2QDA=lXgDPU;!)k?2zHuwI(L+)fgs@`fJSq88CjDRH13}ia~IYQwdHZb%T;}fH;t>Vx!ak&B~LKBeG;m1ozt;|7}5x4YQr}0 z^KG+t8Sdl+soxnfpMFVvnrW*fXbz@S5G13n4q!cFFjhZn#lD}sb7Prf22|Nv=Tt9} z<Go&7qIApzZud3KjCrsRwF-FLb#g<0eVl8wa+NjigtUd!T}`yzO+8LCSK!9Ga9 z1Taz<_nj}(q7)S|MF@m2#hFWVw>H)|?JF8!vK$-yJY6gjMS<%D?H(Dnx2j+o!Zc;4 zo*E*9p@i=Vxh%C$%A9lLA?X?DA|q4lmqvtUiy-$Pn`zCe!OW~QH%j){dJ0AA1#*34 zWGz%G`)u3L8^ODyhoJ#6K*yig5l*<+k(gJi(t z!!gNa94~so#>>c0e`5qESvxEmN~jqBV3Jc8k)0g5o)OfXy%#tfXtM!5gfdJj4)y8Y z?Fkl-8*1MW+rw`=y6$_;j4!;kH{zUnQ}7$J&>~9m4y$H`Bq*kAL|>juWN&#T>!%NhnMMkrW5`M4!9WI>0|L4KCF4d4={Oi$-l^q_q~2|;SsmI zArClR=M?Fq$(b7CLNPHum0l6*$iN!c$O?L5$oSj%rtt;&MjvQ#;|yr1ak>gm^%Z)f zeeTfi6RgCM@tQ7XH5>qb2U^U=gBm+5)UHm?_YMEe=zGo3@SQi9srJ9IBF9Lf?Zad12WD*J2VSQJ% zPOTsC>kLV6@>5K$7J=pX4$CfEiBvvN)Of=7`p*-UVu`pp+Uy*3d8w`tHqy5^GO>7zO>>}v za7TJDM)296&!n=nO zZs{Y%<;RyrWGw=mi8!v5v)CaB@#vE7vM;c_}Aodp$~fobH8;P@{3rjl8s<##G-Mo8LXIm!0hMT#S;x!}>I0 z*8(NBJI`HhB?}GLu?`&>D(6n>o#7HL_wI_)T%)-WCYgGGERT6wU{@VrVH$QU znLt=n^j81%au0Z{usy_gliHVEfq4VCll@$8;1Bp0-gVn>nzWVq=yZ|jLa;A-2mHZ`F zO$?XQLYgo zEhkL5o$Hu?yb>+;B{aA&eMu?4JEbRuCsspicaZ%1DVyinoOERyD=SR_Y|_1qzRkU$ zQNP#=h2lSov$G}ii@G5ww@7qSI@HvH?2+G^#)=(f=xufg}*{Ez_$8c)-{F z=x)b_Y6&bBN0rB{5N$!NGizFxe#m-C?-=$YB?^${??+f}HpW`_{t?(~c>~_!Gm26( znI_YAX2+I!w03O>-&euQ+<2vs!)pauNP=tX{o|8Xqo73w5VLL<_@tXhv^w&ya!l6h>!UpMG_DaC>||M*U0I zScz^C&uAuez`j?;8<2UaUU6l2vu(%X3!djwmzd!EI!bHiwnm1|(Z^OzhH^&-$tFrm z6c(h%_&sqAg6i`2&ylP_yBi**b6H=Fmk_Uee&_6smy#=EX?7Or_iU~>qL&xz8=4%Y z3B(iG2Z^xYl!rPZkAumF|nuzoJsPpF2yv>Q zo6OeHY1vN=^d5kQ7w5(SNyk6v)sb4f_sOi>E3Kk*&e!wmChQ(TwfKwNr<+|L69{_O z?y5h0)#@zz*-+a9kBpRdlpHomXUhyDr1D#=*N4g^ukQ81ckXa}hM`;(0j8V>kvCid#tt4;{N|53GZUE`w>{1CdP3pXlHrFZEH^L56f9iBNhb}7 z@Y9l386_Z4cQ4^MM@LH^-cWVKnFJhuR!L#;{yAmZ8%CmLA?UP(+{E0|hwdoGJRoXa z)8d3=D#gst@V1AE6JUvWee{gMpta4W>*l*;&DvX^{d-sM_}SebD^N@1^vE~R--`=O z4jX~myZIL8nWswh8w1VGEo=9xArr-?*-35QF<_2xZpIMs)_fX{1rA1J^_y;2KF;-X zM)l}RC5y${)oIjvO%YWuD6w#rDO=xNNUDKa#;2y{>Q;{EzZij3Re#I8m+G-)8M{yy zm$W73zd`h;xa4nX%y$C&&?JS2u5LoZq|GDvVS-dc8t&cpfcXqMPQAi?=LNLbI#_nP zqg=mU-!z9rda20vwREm5$TGpm|Mx3`7R zI868>4Qm4}!eE(#4GC}l+iCP~NZ5ZzWd!)O6WW^)As+4Z#}kO{C=Zq$5X-+Oum5W? zoaNKsO7DMnjt{n>Jo}5~b`3q{xO2emFP2BHpIEIvv5GJTmyB2@sx|rmsC#E_fl$aI`>xEI`Uguyq^iCHz6(sBMqp4Su$q?)MTi4xlstZe!tZngf5s`xUJCU-T;e_ATLjf3YOT(Fw;r z>fT3s=zrdWzZ*93H!uEQ8tDGxnUi$oPVYBDv_Aotf`(Wr00%+LXDd^*cysNTve}jU zraHT!$mh&kw>vO+aEr9vK0p#`ZeWVVrXMyZIa(|QC~p+(hH@o_k3&QJ!aA-e6*k+Gl6c^* zM^%Txb6>Q?7!_@TSFp64v|tTE-c}&4wwyk9@?>M<*DE8A?;m2u_+Fi9cwxSr_b!#N z=TRhdctSIT(5rxi)~;H6*oNCyhi4%H9$OPMJR?*F+qi`UUp};?EVTKhjrdF?=3q^bCeyK!`zSh)Ti_~g4|NuA9s#x+vE=CwOoiteAA5A!!yPdH!jeFUxWPn}HM`VC!BilC>pxRc(f+>j&&r z*R(}eh`nkbhx&~hHBp}@?^zQtgjp>LR?~Y|h!HanzG?($=a*q|x{QxP(F(bBhM(57 zucN&`uhw<1_Df&;R`7h0=j8c&Ut+YJzl!BsmqlB-xhUSQL^syD6AEV3-Sb0hw0&#i zWy#|^Dz;R-McgP(4WyMVJAr9j4VcUb1aiLk0W|+9`{2v>8-9D1kJ|jK z>@(Ov0D3)*d(1;~k$Z=Ew;9>E=2FxjFUZTCXq_txcH@$r^r8d=T03EbYH-ZEfbRdk zgt2Ez%ZbhhY9+X0aNf)i6hUv&+gzv{o9D~3YWY1#@3t*R3ZFsM&xKe?wX{2FW1c0~ zvjhjW-M2%F8>wNJo~@JKETxjUg-!0T!S$05E<=2uppsiWMH;$ z&tPI|=z6)10Wg0HRV4KK_CZzaYF#V7=@;e4@o0`X-6R^g1F>6V?YMAxxE4*PED?MW zxbs)cp8t3f>1_ReNAwT3_lG~i^-e**k@OXpNJ|Ags)p$(B7muI8eVjC%xUpne%9FN zosz6Ewq6Yt4GXS1keyhm_8SSmbErEKkQ4#FR5+&n!suzw;|Yo**qjlX|9PU>>{h4z zZvNeS_{f_d+q+*rI-SC;sZv^v>f=Yb2VCDB4;|P^f|>`->dA6oBbVch2M0}-8lWXD zp^#Rj40Hi}0pTu#AZb?jR2Zpu3Tn~4qv28{!?2+HNOE>vRnhLpOL5tQF(QB7OKp3i zMLKyhd66RJ%x_g-fp5=*x=)?nC)xT1UMo zCHW35Lk75wED2qFm;PTYN+|qHvc3lv-k-M(UU#IkcLPPXcZJ@37++Urz-&r+zngRD zyb&K$&U{Q7Q_&?oeB$$$pWp1xpDKol#BP_DHd>ayC>&ifd_L;2yAt3AO=$%2v+a2d zW_gh-M?+WZZPr|~8>cH)!%jLxk^V2=)_;%T{kz)b-!CJAZQ5}A;y3}^x*rgb7z@?? zXOZ)FL!JM#&-v$n^mlT||09n6f9txxt1tw8$_|B&hXLYH-l5U)BmmH>Q@Ds?Wy-Bj zZ)vRLXAEow(Uau(0<)G?xx3WlrX|-9FFv)X2DdV|f zI@xRzYee`xMnJ{tCZrJ@D_3t{QAUbbuX;~ZuhYe;Z@&I^ImajKN?HQQqv}c`+g~jG zU&M(xsm8#am9iq<lalIOf(6C_Yt~HiK`EQ;7 zu|1`s?gkOSChH~3et)hwXIl2kPStV7CvnOeVOJ7gMgfyDZ65X9id$89bz2ux( zI%j6Rs!sO|6skxew&I2UfVs^P7{KJ-nDAS@m2o8#Xv50_XuA97KcG3*^83iapkQ3k zi|*MH4Y%{+78OQviSXl`)r98V7C@JA;PbafbVMYfW~hrRWpVj{dN2j}HnoHqT*uc~ z)sNXP4!BYQ+Qw7Dt_ijdLzMfje%NvpB)jepngR4Fj4Wm~x84*5|Q2y^DsIEoOHS7pF@gS_kU4 zC)1bxX!a!VJ1u@Y4`o4VMjYz!5nZrwxPBt9OcI3e`FxcVKPWfzdx=PPgR7?PoO9pH z1xpg26gG_DJ%oJ@7=vn4pDzxHjr7WJ;B01aUxVUWSrP44^t!J?R}uBc{lJANDlUK= zW$!`(EFRNbx2btx-gQV$1wTFHX>AFvDYFjUYSSATF~^Z0yw*n)Nq@{@u6A{kH~}~t zv>aljVR|H!!&^8`IAY%W|8V!7QBAG?zaaK5DphGJRjSfEA_4+J=qN2mkQzgj-s4da zr7HDERa$5PDM^F?QL2FSCczL$1f+x{ln_XWv+tUDGxz*v?te{LQ{LnStQ9uGo0s4bH#ovjkaI%)#pp=x$^2g33PtVDVLE%8k8km``qxkkmPr7Gry$; zT2SKUnQ%lmG{7zmkRu+D4W885$hENvb1TTem}Hk>F8AY_oKhZc&3YGX)Uc3sGi~Q^ z@x(*A&px{OYbSKUQh?QeQ|0>50`ZlhZ8(CpsWz5@v{Bk>or=H zLn-Ry%jHFm;{>NKTGmWLkwwhwYDj@ntm@14$<9B{W(+6OdvsgZy1KHhp1Tm=B%@s>v zpTwPsy}k-R&vsZ4(y2ZZ6ARTQIPi=DPyMH1`mbWE)MtCn(90M=KVQd0k*UqJRwyHy73`T%Wimjp{;`;e6`MSJSY z(5hE*H{MAVohHm>_FexjUVQg7zy0&`g3ECK<(d_{j>!+jdtNgAYY(MrYl)7v1^Y5H z()DG6lZCP=0bav=GHbM^bxJ_u3Ne_9MEUf?0`;{m0Sms^i_A50(HkGL=_U+{=J;`* zF+OYb>T+g39=Y-+nkuXMRJn86CZ(rMS1#*5RNl=5F(56iR|3(?*)p3^aw^uWzm(hvpFsG+-yzGwLe_HR=H@f zRQ;zVD00 zNrc~MtF-}_$e+_QeV;2<7f1bfQEl+S%ixo2_&h8bkBmpZqYX21$DhC`5^bm{RMEw? zDSYs^`pZ1fUPdKoj_a^6MKb5@c}Q*WqLrHPWIi9IF|zD&A=PEJ!AH6BviT|hQc6gb zdjLVeZlYZ{9JJunMSO*$<^6yFN=3nh>ymktQGeXUXv3rX!Eb?{)B?Qeq-k>X@yp`L zFAR^DTp%ZuSM{5HEt8lU)UU3~!nEh*+Syh++S~3kJ3veYGvlOWxj*Xj+V7m2V%La zDD>?6o>G6UK%G)N&NQI9WqqGoKZRMJT;MwjhzYW9lZ*Cb{^$4HVQZa~@!KDz3ulD1 z0Rrjw@!{#Pv+mK3*+?7$Im+|-#!^G_ifNhB*tsX`VUu*KXrIvcKki~kyCnSPdFDnu zu?uWCt@^9G;zYDYv9DMYch{hidEPp{rtm0T`b~(S>dGgf{#-ESs5SEm#kT9O~r3TRv?f_Rx>-QWunV;|BV zC~{`#C%Up5W-J8ue=Mh3O!~gpd37XNH15h&1LJ~&)U=$F)xO#sprIc-Y;+nrkyo0r zWHlIqo%CDE#RT;zwW~#oKn^%!G%7`a3_Dw$nbXa=GR3wDDd|NeVk3GEEUL(o?;czn z$&FiYu3{xlw>FJUyGQPom}F1jGw`F+oD<~H!o7L!c(Jp<^xnXN4vKGeAS1zs6C@tz zIU|7Hep`F{>dWZUpRT?rJ$w@AuR|R(e-ETXz@zKa!QXF8q&S4{N2;}WZxb6~agXAE zaVD8@EPM0>Glg`iSL8V>%y~J#`T8Pc7RYSH!)yH{qg?mIoen;>i}+r7RpeR07CWeU zQoD0`5S6TPrM*pP&YZXYo&)Ny$Iz<5_`WaFD0{u#0TD`6NCRPCZtX{i_p7Rw|WCm6EMT(Zyg@YI`XvYhx)*v4ghLd$&>ipJVIv;!stwZh%@Fqv2-X7MV zh0;KG{ep&gGjmiYa^0V?3`qVI#Y$i5$KJzgcb~VqXhP z7o2*a?ti%M+-p~5N_U4k;sSCyV^!$zH>$H+P^|C!3&gD8q2msz$|}iI8Rn{9ZmJVu z=rxlu$j}hsBz8GjB6n$~tpFKiAV+ClY%!o51H_onXDWQbC*l4FaEo_@YZJjpPjE9j z55nh>E>+|3YEk?p{-axuvR`%S&idr^Jk(ZnsC30mgP%kp=&1aL#SzZ}$_3!Bj_u-{ zA!gq^Ro_gU(?|D7X*KeMi}uJhlQ<(!jwHVP_#;SL9|F*%;|pT@XV|v^yXZ8M7{}_vk$*ki?f*YKTm+&6 zKC{)a%h6>HA8n~i<&$r9fx#{&^y1g=_XjIT-T&4Xc^27XBJ{KI*va?!#1BWtqz>}f zBCxaR1IX}w%@W)16uMZ~RT<%Q_;{7H=6F(mLHcBtV6&Rw#&9lMk6ttne;w`c2$2L& z#fK%R$u)f%kA_u*=XH(xYHVSTrd)4k0b4=%@VBa`5k05oQnVcX`4=-$Hjx@7kVK>UC~r#)!~)l(MvK%#sD_FnGt?H zB@o9kYH;0NY`H+^@N4)PT|cs(T<4YLS2$nrE9cZYjhUuq-7pg9lHUk;7?szbXj9Qb z?I;ww{OyQTi{Cf{V*`0FMVT51#m=&4;>}nRWfFSL#=QBowFaSbDe&zaMqpLKNN_zV2uGR|S$-oxHPF@;=G{W^&Viuz== z-ZmP&PAysU`60bwX%yA7>!RS?$YJDQyo>Bg|GlSd|Em|nd4VsYrs}O;+~!HUKG>mo&kFKQn2*K z54$$Wtw_1q<#I&Gzwe$>>;Lewj`X!^L1}BOXKa_>PS=|%-{@_Z&e=UYYAJ9*9w;!hI*F|_f0wig5dY|FJAcRHCJdtM&pVBgL zy2q8@&6;n?5_j{&Eu7$Gt)Ajc`+ZfyzTXYgtt5aCS!S-=@U*>Zdap+r9GA158V1M? zfD*t0s2KifBc>M%RGwGmmZUme8*&it_ep(AsHw5M>Z^m`h28?Jl_}q(RYt`aRIa*w z+tPV;t~y}XgwH=pQmz~y>K9Nz!Q{C2PW*>TrfcHg$Ls(8K$j8fbY#er21G|4gQGLd zye}{E}gqWarPk@cK){`Wf*@SuMPO^&W0Y7G5;J$gGkWTWy<` zD)LSbb9ek1-+m{A;y782_9nO5k=*q4+%>0z+Nui-Up~jF3;BIral2V|qsNh1 zTuWx8w>UvigeI6>wgc}I0M=j&J`=eD&vA)aZU@%nzfW?i#jXFt>HWVy%lS^%_yRh~ zgmmVX*D=!G;Ol-Uls2=@zX$3c6*t!>wsWp#40_wFpu@MmtBwvn>+{Rr?ChGUECYz` z%@(KCZHozDym^F{_L{9%?oae%=9L|^;B|^Vt%5H^8=V_$-#NF~Uj)-}3wq_6f5AA! z0kK|XUNGK>nyTDG{8%ir!+*6J1ec7m2bKPvGd}kJPf6o2{lpi8W8pBv2~<>p6GloiRK(O9#qo3&RH(qWt$cZ0Ub-#f2YpjxitP7Nw~E04Txd zw`^(g`C%<>HDVW9O(|9?$aeaRl zjrc$Da{j-TY5rHsrM`pwR+az8wd0L`GA1uIp{St1_Br3DW@%2g{;bni{sRXGY#^xa-d>z#yOHfc;x68Rl(zJU({Hf( z1b!O6?lg|uelNEg1l!#wl6;2$G9Zw**faED%895CUs+~r+3Fdq@1ifZO$0B{9U(`J z5XP0il6(n`&3FHab6r0Qy|{6;zD`M@G2fnZK5QMpIWa#^+blR$ZDzfc1BwiJBvr%=`1pq_;9Y7C zs(h(ka5_$W<)nkvoK^G~n4|~pp&g>JA6Kq|rt+H%|*{e6=C$aZ3AZa#b+PM2Wcq2(lBFIwmlI}@TH(1nSNE&1r; z?^hv>|7KR6GnjHwdGLmGfJtD`U;tUH+Pc!pDJjX!#p|->EKSPFg2$GRuWX~Qo!!53 zFr~NgNmW1S0D=3}$QdLuG(ms3%GYvR#aLT^xa!p4nmhn2DiFT2nX@$fm{~w08Zoi+ z3a}1Qag;!$KAXH=Z!WbQfzfa_EA zuEbXCr7^&?-9(Ng`%as|r4UF=Fk7TGqf^@{^Fh)YQU2DX^wC302Zi@aY=*|XpDe~l zUZ|+D;Q(qx4>ebs?A;JB`k=-lZ%$AuQpr>8c~YCEbL7Te?R*hafT$2DF5WX|z|5F8 zm`&^5jMip40AxuM61l@!dk)C2PVu4NG1PcmDbVrCO92we=l|KQ)s;Z3-@3TC8&frP z5R)H_Sq=8EkEs=Pnof6y&$5UEpw?}%SMC>?C3HEm9;O@orjUEQ{Yr1~Zw+VloCU1g zBQ=-GD-jpVvLnbgg4Wk86Z6@<&&a$E)*s`$268tmdC{XX1okX!?AxnF=Q2U({!0M| zvu1uXl2JsLLIKt_Adzu|cN&C4IDEV88^g@I8ia$FoJ(K|7(-#%V_S*RyAcGeP?TpI zpsyZi!$9L25tx8`v&#_hutyck07;4gW<^Q1yVN1-W_vFIejX^G6#(9vk~#1}WdUPY zq71;2fp_RE$GrUh6FvdhdCexrYy{=z=I0y`C|2OT6=UnU09->2TlpoxpnscHo zyOf?;M~FEv;OXFKKb!&9=IE3$`tC)Sa67Z?fqtPE{Y5^$=Cp`8f#dBNHv>8N^8Eu3 zvHfRC{mU;i@DVYH#u9xPTR@7sSLEzBD89l#%5;@WD(cZxT-7ewrKe7-cA|fO9f(r; zR{yZze~lIVkH}Bv7NY{dwWk57EI)u$$>+nqPNZf1;reSW5591d1^N+E~s84ZP=e53Ov=j4h+VDK}Z`cxDtg}uKkos`S)#J2P`;s~x zu7s4rlnOs-&hl=Vhzn&Z%L&Zlu>={9`U@|kt7o(`Y~X%sqV~HM@3+EGsrQELeVwZL zVjuQg40Mx5;_8>qKzcYrypx*GWtiy#^Cr1@lCoDPzX$hzN)G?9{1MLyf}% zOtU;}B(Yvr7GBSubM@6~@BI3-an3p5S+XZ8Mj1mDHM!YEB=G5Lw620>159M75| z_(u&V?SMp?h+eU#ouXIK#>n2PaKGSlE{5Zz3CUE|bU9d)SwQ9IV`dEAka>0LKUWq? z93Ii?yX`0MwC=Ucoia3wD9z7zGOe1}$kc0>Din!oAA41xprM_pyklvsG2`OdIuR>B zK!=c~J6vFARxxOf$V;f- zHI7F#L14$j{cp5hyOi+gEcBE##rOD;Z(X;vz6c(!e^GelVy2TSJ}H`|Gt-2mAsQg= zE-K|E2*;WgGkk7l`XV#kY8rZgR2(1GDcQy?7$mBJudtPA=(gJ5yP{%KJ0j|5@+gWM z0f6`Lwcj1IgR6&l%fgAKizB4Y{=o7AW9k!*)%4y*v|HU;OVKM` zX;$zmUa=&kbQK->Vh|eRsbi#i>72H_vi944(+aIRWkra5=Vrj#V9bt34ZCpo8^z2* zwW<`i_}yUpO)j1q7ke%GbQ9B#4%qmLC9`d+)*`3U$^ggR{jv#IiN!gxe1HNai|ftX zhJ{@f;Y(I#!=Fk{N90VTw@NM5?pochKlj zqdI0$2mGY&iIdZ{3Og3K)M@oA$etWId~YN&?AfxoEasNZ*>w-o`^$WzanJHMf0u2v z@PrclPNCL(8u$M3$awL65guX19}_Dp_X{5yx-r#T>^mn&r&5AQ@Hg!e4NMGaI3b(E zOBW#~u+>V#0~Qr1y0Z?}<6x;C4cSfMb?HMUI=SSsD{nh&dkp8wjBiMAc$@QWF)?Z} zLL;lyGV-pp4EJBWic{&(-uF!`z=NR;wc&d3VFzj6dz&Vfz>$gep$ohWS!qhgXUEfC zbVP(G*itSZA(%dW+gk5Z%RR7oRr0lbxbs+bi5-v4SX;WK;=4BL_no%6cUTwqVHYnm zdqhHFB?LXKGUwGjxe_e&^?HX(buj*!v? z-Q%N6H-9#oh>+fP5AB?#e={8@)S~ZZJDs&3TS{K!&mJ_*l9VI_L6)+1Osx*dEPd)U zY=78u{=hD?;HS%WLzIH;xZQ}pFy5bdI$DEu)t4c9i*8beSPL2qiOnsn*nD3SBe~?_ zaeQRNS z8q7zYSo-p4!7Xb1Y4T!>2UQdzIr%bGdBhjhJV2g$r!slsNBAub7OP`iGjLdTbyg@daM_Z6nf_gGQle6PF*d0PEPz)?KYrTD4rG6 z5%?+z9;&DvHbt1#CMUoyn`8>19?T89sA&kmq>u;;(QcMDGjO>Rew3}*66c`@w)uM} z)WNih_n#g{~bvn|p>zN{G|dstZr(aTlkVrW}8@PbkXV-|0y{s{HMd zqWVDa^|uus${=xR-qk@TAU&S6G>KkCNTm@nNx5!3{u=eIH&|zlBX9b(Kj;@`NlP@r z8g_F(|KXYmBe|zA>I8pZG3eobqh0t>EMd77el*&-=~3Oo`-iTR;Cb;Q5(>6}) zuH%mF2cL`8MD(Qbf|*~+vkv=C?;eJphd}cFneYC7G$LaFeS1*O0vj5dCD>c-o{RWr zyt9|%j=CJ-uF=Z><{^bhai<8||62QN%^@;MQcF$`EEi@QNl?v2)ij}}^>Bu?y5!gs zoJsv-<37wX5>CWVUuzs?I{75pB1rg?VGvZ@ zCFr_LIW60S#W)mBHAFpF>8cF0?V1~$u=ev4(zG%k=x8I%gLTSY?zoB%j3vtHW3QP)Z zjIo1Mj=wIFP?3>9URH18Ndz=t&SNmaMMm2>osmjx@j}sY)gsK?YSANf>MRAHITte6 z(|u;ioGDaLpZ(-)x+T!acTTT-Tub#Tb~g*vT(M(VTVq34ci<}K4Ql@jPfNF&;Rld@ zLaP68{a7XqAKVMM!u87_;8iC396C-0V#Wr2Gzu5m*gIj1Aru8XKk%pZ>2{th{0ZP1 zlXKb7t<#tX@-C^IA#e~NPyP#;d{8spPX~R`NqWX966=!FBwYmH;V6s0K%PiT z2LyrIFgOoLZuBI zC^1@CCI}w^w#F_V^F8SoyyN}MlGpQDY(H5~WmfI?!Xt{@c!H7|-m$H&c6ueIZiG~) zXl|FIp^z~(jn11zV#N^nxa1bS@2{7i{{4^U{IcINzV)Z)(~l0lCK>G1Rs{rbJyN2F zhtuNpZ_zQ&ah_-D@G36M1QL~>nS1Uqsi(JdcY07i<1))B!B#ruWw<|ZOulm)}aJdfSg*pyW5Vyu4)S;;rwx_ z2E3||nMEXGf~WwEk5K*|;T*0_kzZl>1NenGCBa%B zRfoT{`_zu5A4kz3_gU_BQAf|$cRbqSJJ$T@dTWDhdJUJmkXq>?i05@diA=?vb7dIa z+JZTDCBkcp5p_;Fp(J=BzkI?KvuMr=$*v68wp{HuI1?)$Z8*+8Mo;S`K4OkS79iZm z=KOP&00z;DrBAi9duf2EWNX?R!?USzZ&z*V-yRYqm(IC4miVhAB|46NZeMG4Ccp+O zYr!XL2Dp#rmuOI>tE^UuH>Acv#$M22H>M?-`vO4d0Ur<1gSkzFh@EHdewmuG1@@?W zYkhb1>=(tm&vk@#N19l9)q(;N`A&_=)@4b(HvauecvH*bBKhg!R*7sP&qnxQBi7vd&G3n#T}74Z9<(6yz28i=)SqtE`Cp?fWVF68U!PnYm7S5wk^n&I-;& z3YtXY;0Z5jC{d*VixNZ|vs3{kJlrde8Z*pjya|SvbEE~J7;#fR%-)aG#16xY;fNP2 zhi;|xed_uFD!TeBXwu4t;oxaIl?)SL)D}*&oGhuxG4!$sWKK;y)<+^2doeSm9Ji!5#2RyvI)nkD0`vu)nt_>oq{w zZ+P+WpR>=k$fa#ftNl(*!nWu{N|1*1t^_)E*E6!H8DWtkhN86=L7Y3!*$9`)McPj|3YuC_Q8U~Iw$joS&-0rx)aUJx}(^ET= z{{MtHhT7Ts4_H)76}0G$qjROPnqtilO$46#?{B9^ma^2mGbVMm^{Z=Dg683e*w;B< z4oYzTgJ2F1NMP0AuQ4(}cDquS2YJS*zWlhWeqE@`AW+n#i(H6Wo;a8@a)VLrQ*i|A zXd)@fY{xXLH*Z07Zrux!zbp!-A;&mSE07VbC{>>)wwHL8qYi`=0bOU%_4Mu%ct6kK$jZ)H8< z^AYHuuj*H)iuzDPvevgFrM8_#N6B#hXvrTv>sIqYKXF#J}^P7HV##%OEu}F}ua{1aqK051$PH^B- zGzL?U5tC+ckjW8WL5p2hjk&Z-B6bf-ceUhNG5}6Rv{(Js`HxrawjSI+Tq*>XkZlaG zNh!H3G7%wtswbt4w>D=s6^p@+`lC?P;Bnp6s;7%tuuvy66irXf3|bwjr>$V;v@gV1 zr1RG=7|hs_&LbBNY^lam3drja$eK{X3*Uc+1^Zhr415)TIg&dcz0oduA+o=e9}AJF znRXzAm{um(1VpbHpTf0Vij1f&^hsg%egX69UuNHD`pWBTgqL$zB;yIZ2|BkfG6k;f)N7iCEp=R5BoHV>TA8vLFQJT~Q*R!J+56gXCOI zMw|Mp?zKZYhVgG>xTblmY1e7FDO|8_gO6npU>%Ph)i4 zLdTIt;@=Z4no{#$e; zUSif6GZ!id%&ji4VCzNNn9u_$+6IQ!X1_AE=%Ez2Ut#Ze>b$1OQRoRY+1-o(!_q1! zyEp^2lc1Q7c5|af{o#5?RFnNwUTH#q=44^E*FPq-IbYk;Sz4!+It8ate(d+k3P)n2=NNZ?}wTYe{G;rb=#9|DIb53Yv#?Lq&JzHM%B8fY4H4%Q(mV z>&kGNDs+E1-ej;wG3&ec3Pz6CqhzU{&71}C0;&1RM22G^Mm2V!WZ$Y`;slqWM{E%GkvjWf2Ld5eA*kFP&Cws1miI*T{9w`%Ut<5 zaP;dZD0?kD&dO{qNsv_)d1#2KspSz{Cxcg1iDaAgC{*ha+NViD9;Mm*5B}-jN_s^+ zW1DWZ_PDT*I$N!W>kt*7<0uLwB|-L`B+_(Zv;cQPt8s1 zpzq0;?lU+L9z=e_8(?1sk*B-q55C+4#qevq{`%H5{N=J4@8=uW1ZA<2?_BIq z<_>%ofUr?p-qaYVgrK@h{MhHf(i(q?U4mLv;aB#cKBI&XeR8c`sm%X|T>pPoBRH!h z!t~_ufR8d?b`t$qVhnWAGfzg5()Z2QA2S-1Z-kVY9+PJiPU=!=Q!@Qolpw@8m(`t* z&eMy2v!nULuk^3@b51fZmWH3XO_y+t9LoCGS?V1A0%|a5pRO6_0dL%Usi*NoDS1a4 z7yHP8Ts2WC7FIySnzcP)&H6w!>bqaYJ*`iE+>C@PQo)J`?8NrN2Su$)^L2o~^&E+t zLXg^=^WBM{_N;`MmG^xv^d$W9_SU7pJz@CJW8#(#!(8{1nM@hO7C+oFci>+BPlSDm z%~W9PY#nNIbJQFZnk znV}i5d36{u%=aXUTt~YQ^Y4R_+SPF+vY?Kk_)#EFJlKsIP^DjUyR>59LYbA&%t4T+n21Q!THO+frJ>kIR)6PIosqKcFmy$Yxi+u7r`AE!YYu8Jzw@iG6nh zx8Y-fU zdz(19K`UTNf@J2KXL`mV;!;O4z2LMS8_aO-?&g;6ZkIuWPs%p;h1F@|34Qfd-0AH$ z4~Clw%P`LfHC5wCGHNl!n0>nmd(y~tZ$S8vYg1-rkE)kkhqmOTV!vB9dX6aG0BDw2 z)hU!yLea6%ut>KZG^Y7C{G5T00XLK9tGm=l2xMSb*bTtj`_TET>oU`0YXNqcq5Ypz7ag8ff7Wt6-zF1S;1qqg zxs?GML}Bs!kh;JKzpu{85z!cnQN5NO%8${U9`G@sEmEY<{b`KtLOL+-0bQIMhO5`t z^oCW=`D6a} zEfU#pd=syPv3ZFMze&^?7a{N)edy%(>a#X~xE}d?2Gt)ju|yv?6Y*ae&+_ZZ=bQCY za`bd8_3dzwS})FveZ7NwLp*7)@Hl*U0rT1bg=@quoSzbNWEsq~643$ZbTOsSolW{u z0O8e2GB6BO`Y|1X*_Av4Ps#yjq1on@EWBuMYYEU7i^sqUIHn~NnGwAmu$O>IcQxCH zE@01@;*0~;GY$+5>St+WG46lmb$1K{*bqAp3Gu8Sy_eNa^u0nPaIBzFTV?~aw$@z{ z@SIZ!wnvt@;D{Th3EW{C9wgDp-QY_Gs8%Y4Alhrj`OZ=&imy}UA_@bxuwi*ASQGUf zt@+Y}tSgzAXLkuXz;p~c*y;X2jlglK6Li-V+vHH|E!yupI|574iKcctRr)4fCY@;5D^gBpS+ z0UI|=7kSg!7gj%8q0B#}G%wz8iFv#+TpG(AZqZYCh88~F8bKy9AKJ^E23AX_0=GS*O>+-u7-LEeFs{hK!L6XR@o<;5y+!2EX|5f+%)7u44nRY#*yc1I_t0~(N*Cp}IpU&U% zMw)C9{U!@9cp2Ti;QB7vHHc;(TonwGDy&@d83|Ev;+DO%2J~ebTr9RML++EJBUlQ| z=GF)#AfE~9IcKrpF#NhamF)J(l7HH<5&Pa+x}XZ?0m)ng@EWdd!83@^b1*?pKboV+bX%aFHzODEr16DESzj5- zAwvf0Q2sZ;UX9ndH&q|&D5Z1Vj*~fZxGBGk^2j;ur53&bx!nid+YdzapZ^bnIzSl zvqqaAJq*43Br0@mE3X88)V|=j?AJ$hB-3Uw3bPhiVM$xHj}HCpoJBV^6qSH=K4`kd zmS#yu8;>Y$6Qo#-M0!9Ojc9T6Ag%M$1DA)Z$F9rT-ay@}SADbj_RBH((!=4)#cKIg zQT}VWVK^_iCX%&Q5`~DmY?U7&qAmK%y}UpGzs?UQ0ec}J1cpw# zEOd5dY1U^(fACP!f%n!@z)ahdb;B|5kIRdE`fodcvSk^+jyCe-7YyS3r)vZkVhpcRFC}c?7 zHH}I_pD(=Ryt(m*E6{*8}UQ7%uYbpc03Q^6Lv$5b3>i8Mhr?8t6xruz6B2| zW$QDkByNBih5eihjE3f#%I12FDuSlp7x&v2e7YRbzq12;76iJyM@D=}pj6El2r8VF02I_~I5pr%-m-Gndr zeV5vTH)7!4@Dd5l-dtU3Gqx(Ex9ySO=EBM&pqpA!z?$<9Wh=l7T7)WH_;f*AhIi)P zWy0VEl*Q&BY)2-bvvfx1OYB7&kwIj@7{}|%R&o9;>AdBGRAabOz|Jf#K;toG*vKt* z`k+N{Hd@h&NJ=ij<)|@!2iYOkX+a%e(usqS5?ep-?-#Ol~q}WV5|m=xI4w_@4EBTq~qAPP9*y@Cv)wke z`AB(K#BLq;Fq81{QEQVe94Z$r!^NMvGjMk=GmDKJL}LRyZS}`AD~QY?rLiII}W83gP;>%hYY{^!zCC3e|5zvaYKKSWO-%W4Bc+ghn7{H+O!y~NltpvFC=|J zIB4KBWJXubanZstdoaj7W!7u7XG30QxpB#a9K!#J1 zwO~?L;`@vl=u)Yg6yu>YD-rt6s8@YNa!cf&Z`?X*BDcn6GqU_M0!E4yNKH&9`6v6% z+97Oe+#^2oi`flH8MbQ?O^dO+{)@QyqWW-V4Den9^}r~386D9FX zV|m+q4IfY2*L;wDa_I1(bZt-Pi`9RJ^VT%yXYAMzu`O-eZ5;23Dyu^ELhaprTTo+T zOT%wu8HyS>{KCKsbivmVe)2k9pbO44_Xb#ot{^|Hk&-42^*Z0Fk=YCB3-|qJwr+OU ze>;)89`ciZscX>PHm*cT9v&n| z+xb;MoWXy$YcP|(6rER_%}YXBbY$m3Q3EAI-R1mY>DcKf7&8+Z257Ongi)Z6iNsiRlR~N9L5!*_0Dt>8%@&YiLZ&=s6SlXbLUiy zX|M#vRxQ8cy<^|s^^bgd`yG5WP5Q0=GFPdED}V%(!J= zX`A*VvuyPjV5cVnH`3{WH}WtsJ-AD1!%Va6DPj*kG^@<*p?bkmgd?K?d;eo{$+KLo z%PLJzhMpeC$?LYo*}J2wsu+_pGa+ldv#U+xLFLs9^zTWnPT-%%wQaU1;p~3K`PWDI zAFdF(edM{E?3;zHe9!Ro z-t8f(1cU`8)AJq2i*#>v?p+hy-|RL4CYbJo6H1Y7&ctD9xlkO)z%Gv&!ctzDyTH^S z8zeZl*GXZ^n8hrImX<<6{r(k^EvzbJ3nwG|d}jIbmlfAZzpBsLnt%b6;(SRgyLM%E zy1cx}-~5$wxw6hs^c1Doacee)o1YF_KSut;_1gW2{#iPRB2>FtczOK0w9)uqG)h5D z=$x78J?yQw(|_M7KlFGpETl*0(Zd7pLS;mot+Fl76ggKQH0=hB!EW{BUo&~&>_4$6 zAQXaXn#RPkd}A&y6upEk{NYOBNHUY88WfA1N99#R$GgkFUPMPc7+8X75ta@JB|?$; z^n8hrR!G%$t*!m2D)lY=F8kC|=qMnbasIqMCJdKTjt~WoGG*OS?2^EJ<{M-<%#IFz zlhZZTQXW_2odcKj^_;P#8h_ zg?dzzu2Awm1t^c%cDX^Z)RpW+hw%+4ZK&P zI#0vKRw8pZIRouJ>)i{mI5Ap=C+l2rH)n=*VxQXJYOJweq_Id`gtC?c*0+*H_dlmW zQp%E1%@Sn+3`bzM&kJu?vgGxi=us)+nnaA=&K8OjYYHO~RFe1dxA$4JjMOAp_E6}BtIq{_XrYwcg_NdQ|0h@g9tlP)Vocl2> zBAbs8t2WPTs_41ZzS|@$TA-Lmg{hdCs}xEOx;a8oct+HIozlB)?)Y^zJ*Cb_x5CD% zb3slRRI1#dB{cho+xMy?1B*AV>vi!oT{`|$&bc9O)!d#uz`yO()>=2QjJRxaS|vw? zT3`9_%KwfCYls-X{uMvCV64bmA@|hd!ZYU_xo^}eJdhvJyq5mp$IAp$2QSUl;>LW} zd@lh%<4WlnM94v?8ba;(Ms2PiqS5jpV)gwmvGZ`RI)N49g(d^u==;p>s%Se=AwO{E ze(=6td)~SH)K>=DFo}$3GAW4(PdtN!A5S}ICl;wvSbd6)`wyG&7G9yK&5^}?;o?eZ ze?J6t)}MhTlts<9=qJ}$-g$nl6~l5Xr3K6^l}N4oToxSkbS^@d$%diE!4YLzEUliH zf?*-1C+ns!=j_4zt4t-*nLk`i^I%V}AkUCc1x~+@S!tN0UDUc4@$1hBYY0L>2`O`s z!*?{7ped1=Q!x35>wDs*@W@FyQ+Gde$0%n@bWw;8%s@Pc=Cj^L7r#3l{7u)8WyGxR ziakE|IMG7ku!#OF2>a~fu}jO=373ZQqX*)DYHD2`dRw(e@UJwF+%t8diWFsSx1+Td z%}hjlk{08U1a{f@7JB&3au;<5(5vq4DggBYyn5MHgVQ0%NSUkj!!9f8`vvXAZz~`C zG*#EFd{NNuk?}>?NmBFk4cowjpG7Kec@0p#$+78SyQ-SD;^dlUQcY3zirS>q_Kt65 z1*hBDyI>xC(vNeBo{gHPUS`@_U{efw%-^}Yfz(D7f&<8JpA<+2ioB&PIvw>u=l`m@ zF}iD;7>^A3hV-g)fFKB%iGMcxRZ_gZFDgc@PhhK|<=GTZJK%0^ge8^H#8S40MWX+j zVn>mbcz$pF?zQ>ckU9XWPZ^!i)ee>y=iW*gde8{%Srm5E%zavykS%)p=b-vroz?8a z2&IDcl&2`Kgl@a8K7x@K#-2cQDo>ds@YgPP!)DBt-T;5Y>Lslryf{X{dQ@TkQg7E3 zx_9UW#LHf})WcZT?MUqrn(*ecVJl^u9#4Igq}TUZH?mx%3C9o5*bCPBbZfs*49KGR zvnf@6-8*=tl<;7emVl8;GrM#dWS!n*%6%8G{;Ny&FtfXsRKm>b?W*Rv!=xW zw3#2fA#}=oe>FX_aDfI{AhKma@uC-LPK*Rb9pm`>;{^<=bl(=c=?u<$X*S3KzauslrA8>gNoD`kebjE3y4yc zs#KLGB}8f<0U}*MKx%}LgwR`nPy`#!Jh zI?m(#9oUhiut!tk55ElOWW$M;*{QCMfOjaQ*COwR%^VWirMxzKH5FS~zf~pN=y-Dle=8H?V2#+gIpmFq z*jd^0hmC9e&2oAqfiVIB=E_9j74N=ckTJ0!AznBOjLm9VF?i z?M4Q_`y7Zq2++a|wDLqwl{}mB3+3tclQ_O6@7^?*>{5#CR$PsX9R{&)Hoo#K%d&71 z9W9{chsUPcjns_JM_#8(K_}q?G`I_`h+1Mn%P)a??$Zr)hxzZ;3=b2hMZWfFzMn7g zu$$G;4>VNk1RMKihdBFN_PaezLqy1A;voeGAFW^KXvKxbjDSK9TxKCHN&WlYyTX$v z$g&Js^VdhBo3g-NEweGg1?p!yH4mut8h;e&#-A?|2Uq^mN5LRkp0e?_xp4!2c_ObRpO26@{epZ|@(WktG zCg?hBjNlt0W~J;d08QB+D64_Ue^Xzm{0DtOV5CIIz$~_ryCgzp$e+9gvKb;-eWev` zvIFVCkzfcCaM^EHGBi=6_n!bPW%Mw37xUn2%*AJ!C!;>Tm&ePqF7ggQmpi+t*-iY- z=vA~Ok&scpeE3Mfg;@?A={mX{Hy}00Rg~WR5_L5ttp4kH@76>c z(Sx^OJSN9NtnaJ=`?_ksb<2L1k;{RDgG?szFiyHr#f@ktA5*{Y5mC7xMMt3S$Y7tq z-@@)txnDK?1#ICb+3lzqrDSP8yzL00I~M#bc&qCB?G&fBA59e}#6PxJ%N>}j5n~L0 zBL#F5359vhqFEyc5OV}&`C0ir{KGuHz4#heQ;lMhHO8m1B$4ryN{TrW0ummPu{-$* zLOL`l<>pdznUd*mO+fPNA!9wRc+t4g`u)AdfbA2xQ|Y==eI?vZ7dELt3QDbVT1aXQ zyq7>gg4|pQWBD}|wweplWL+~|X|dE~Ct7y-S-$bfV~^RAi`)4x zneb}_RU1KneCWBx!NRN7X?*#0f_r%#9_L4BI&9hd4dCvK8oldHOzABxF5IA%2&JdK zoc|e58nCwk{kv3qS`UCc^aO_T3Kbsy-y!DzqjLK1z4}L#=0Bjw|1kh8taGr7z2@k5 zh8wWEtX7FCX%7U9z;+Z>d^P#{RwN>45k|q&-33>^A;ElG_=&B^gM*gUzyl)ljNQIP zk@Ue-W{ITvVnklD<+cBFDCi4vCI3(O)q-yauJAvU!iFsrm{euruBtkqKGR55YC-CU zAYj&{DX@NieK{YbZqhBRk8zm>P)*LKl7*w20+`v%4@_){9(<2oXK+g;VQpKvaxI)9 zY`jyYsEx20Zl?Hm-U_fNr+n!L`QoM~nQX*H)3z6vlg7k;dwva^i_d(Fa9DuXlyv3O z+(_psO^=z0%-4&qLLx89TYR$ZPe!YvRkdWhvzRBhoT;?_#?Xmm|>7V)h zTXWuxI`)HoG5&p&o5%?0`oF^%|9?fL9=kX{6?!#js@E`%XVT!>)9DNO^A0wpe2Vjy zPI@Z)+-7Wrqav74HFz|ZV~3OgXHyjB^WJpE`-G2SClOyUHV(R1ulb!bJd-ee#U;eY zI3dleIh8&PFO3%C%b98x$UHg@{2J&g#s47RFKXIVLSGw>HmR|_Bj;1-CaYBcQbJUV zhW}b0IH7A6^vd(#Rb^-E!S-*y=lf-WeTEa514McgeP=~t*|b-^ch&sXE@aCQU-@(X z8Qfc#&2^c?sdVhrPN*BZpJ(0JQ}0aqTHBt0>(QqVUf8jC@m||&RkbNAeJqjyKfi#2 zhnnfcJBA6~DUkg5jVwY{;-23C)BHlUPf@|BdZwKt@d$C zMN&XJS{!2AA_iS5ECHtF8a!>zRLgbs503%LUx2F=4OvJtm=Svw$s2NU6pf1KTXU#2 zykLQ-)qa+EUG#G6LzXk5d!6bglcTw+8$8=OW*)*V8|%8I^fKe}i5`Q6(R_k8_D4U> zl=}MUYV2Fsjb-?R&P4v^TM*^T0oG?5hI@M>6Y$AS9HICFNf5QgW355t(ixrnY_qBA z00tN?9am0AuP1wVk{HH&2QaaM(YN9!2DFtKkATLTS_#c;kuE}aqepaP2nkQ@<%|5J zKZwy>TLa?*a+|zHZ7f`ISIpT_D$31`Pv&Wpq_>Ofk5_O<_j55sV;$-Ba4o}E|4K?Y z(NEF7!z|y68HEAhn5SU6aO`#JnLXrW5cXFCG%{bxi)R88dK8oZDbb6tx6LCCSR^AA zov`VMM+ka}owt|B5C2Cl2rbNag)6U;R(hhW}hw|8ZPfJ75$(e_dUSnHrB|s&+a) z!p0`<793a$$98kPG+79 zKmJbSlG&Z-L7hQmpv!OD$%PcY)C3n)eP!SH6jnh`ML*q_nye6gQ?zM#WSwvz(hd`c z4G=Fele=GQUyr=gIJV<|g+MDY8Bq!fs+b~_yq!Vk=t)j>-%hBceVDuO;?j@zS{ir8 zgmDs&E$h^Cdb+>vJ1w|anE^w^3MsXM4+Nd>7tX5(SX!>E4c9EqjMO#X?l}^M4GLXi zepiAE(`IMlL3}OPB3g~b(2n=@aTzdo`}fJ8BJpd>oN-t0)p^`r2{g`eM+%BZ+~yL{ zQ*$gbY*Y&|ZIqIErzhn!zG&l{II}{YWKIcKCL64GZfhg6KjHiChqV(|h559FkNPJK z-bUJ$8U=87Ty(mtEn3sCh4hz3%rwP3-PR8f{qWi9#&(A2r70X(Nx)1p(f0$Y78vA; z8&V$ScYKydk;!@%WYfZybR$71ZBC%xw^_#KnnWMpg zoCWP}<0BAD$UVEfl@!W4IO9g=LrEk&bqXDy9_s?a}y5cQ;1yLKX7{uSTZ**_`tvCy`)y++;9~~;@;XEE_NnV zdC(QvKON$(8j3GeU;jL~?{Utfx+BF1>3-+irfQvS9L6sz(=|lKdITG>4019N2n!ZT zO0Gg~5{uA*8hu3D)v@}cc~lAPH)%75;Y&U9M$w-ODl)^~i3n*@0+qSYuC!;ps2Q#u zk~%Kq=inK;|Eo3KrVu8gYBQfK=zA$i5?vzX!5X-&RnVLkISC2Z;v4ghi7i)~{$^I# z=sdQD%E0;e%IZ~PCU&;mjxmg>aKPU>0pCj>snyc4*|cMbs59%c3w%^2k$X8uf~ZD& z5pd0$fVX46UYx$pDgrq5c>BX(*(?sc7@?(ACDuke;~=^0w*TufZoOc-@> z{j{EUtENh?!3|&Y33RQ9a6ngRtY_VVORx!X9aYuOx%x21H)-2Uh`zQnA0cJDEHf~U zsoLgVt12bY#!2LjcI;b6@Id-zti^a;L2*-HffF>2V{+|vT8v$Q{YQ4C8MWRQ z?E1VxT?q@=uycy@XPYb1i*(ea`P@9T!F#K}iX@>4=3?!V)mE7{5rN%3#*;k|ixI2c ztKunVhgFB%6IpEZc+Q=$8@|mF7%f|Zwz*1 zMPc(Rp(+n!J8X@sHXxT$7dr~Z4f(vgG0DacO9iyTLl!7p&_2c$=W7366|28lP!_NO zn`Lu$!MSDiee}Utdd>x8{Gpw z+ImS$^ViLF^F~S(&!CT1%rr|w0-KG(^+oZkX35{_ny6(4C~A+{k3cD+>T_Z{F0!{z z`nQ^2n4m3;bYPMkuXH)z6mU%17I|S+}eaHrreDsZ}FA*Y!RV(G>GwoGJ2I8aAQWvZO}#(eX83Wi#-q*m$dnw@Z+ zW`*teb}XwRJ3H*>zgiU7*x}XoZCZD?dPrAQgnO8Hp2ICv93B3-xs1-v=Z=2%+_(gfeA&CDDzk~gY*s%kpo9yEQOGOwm->Y!$j zJ<%oQ!pTKIpqeP->%E7*BrriTk}=gXZ0<6ZF9Yzb{Ob>=Hcc=30r|A$dp|ZW=Ev0e z#}YY*o8-JAilO)H#`TL21M+xHz6XfD(os0qrPYzd7_(VKyeN?{+qRkIq)UxdW3ADl zn0qB=id7$;Crjo^pcZiQ&1gSdZt7ZicLE?S__G}ihRe2Y#1RFW|D{JgnWDYc9jQb3 zEjl#j)7FlVfCe2j%ezkY zBL3~r{YyS=dZ)(HTBz@hdIqmSYi|l@=|nY{s)Ql@a%!<#-#RCjQ5hvj7xk^=8r%-TC$LNuR zrCB%t4;hSgt3LBm^B(oy%to7_rK#TrSvEHNLCdhFAhRYkBco>O$Dl~2gXYAYp*PkL z@$+){)T{-|^k@7?3u2*|s@~r$k`@W+7;HEWQf(v!it<%5xO^@+J#D$v2(GZ06J;Ck zL*gn`oirsWB3AyZT%~CV_Yosp>lhK|0S2zF`0u!2msvjQW^c$(QLL#VGn`rJh zd(Os`Yd>0c=k3e#G^kHNI;A#1#AiCWmr`LBS&gf<_0g)J=OtZD@OAeNY!4l+qor5Y zZiMuOV3je>zi9h(S*S*5P#4qwCgZhKT` zb8=1I3CKC*h<^U5Quw@{V-|v|uVv7n5;aWO#TBUD*%eFtVbfs)qZg^baIgK8CkM$j zTM>n@7-+IhzV4=9NvY!xzshH8Hyh%P<@{Xcebf~G{uK1jVReBn!q6|(d+mo+qJu?= zG!Rp}7I~dKI8ol#BFoIUGJ6Ch{=$#AZ+6Gtq~4${fihX8bB>(Mt{X)xwp z7BW-uQ_CW+57%iq8GLWf>(ZDgY6#@GcSY)BD+HYVVqj{KYs~Jve)_XERu}yW z4i|3p?zZo^YsE~`t-|kr1Vd8Ff$r@|rdq8Z0Z~Q4RwX40w+~*9^rV4{r-=PzI4d-T zC)g=swWI;05mxaf^QV5G)03)a$0Nq&N^k3*PIpY&vMjxNSjX!F*U*TJFFiZdWtOY- zl+5ZhU_{!e>Vl05A8R@fsAzb*X`wGjZ@7Qc=#$Zu74y15;g7e;S0*=;SSCbjo}XSL zSF2W3ZxGz22KZD*tlVZ6qy7J8d9e&ePcD4iAU?Xz`)oxVj;~JC$MqLgGC#eX)|r5} zy43>2-$_0fp+wH?=1PP4biub`AO_A-z6PB9BbWnRwnK0Lq9BFpl0FQl-mG{IXYw8_g-|QW~@KW{$0G={SS+-4&*~5FE*{q{RZ@qKLicn{`Q<70{K% zP8GX)KEP}IHq!t-E>g`A{c?kJON)G>o^A1RI$=AA@HTn8>cc__6fId`SKU-_z8+ol zYsYr1q+0IPA>x8=!W!9O#0(d@n2Q+F3DIYAmoCErWvkuo9roOjY`2fkCeUe~-e~J< zRu0CFh*9UXuh(EnWjjVcqD!i6c!l6vGcd#tj=x4}ZK!H$a@m*Kvx9w>ss#U;aQ zcLx5_Vw1{bKV>D?-r1}ZhH@kHndeP{DzkEH{8R<3Ox9$XGQt^)im>xE$etzh3ydrI z&4}-0RDP2G#?Hp2C6r^uewFVjuxO6kojijZHc(tpDK9&)j7g}`BW3^WS*E!4&WacL z-zpqy*5G+^o&IemJ8~r;9{#H+qJ%h(o}A3tZ=`aF?Ty|k&Ohl-Hw^fc2d>le|lSZ7N`#($-`XU%vxs+hU1x;+`rRL%`cHJSf? zuvTw6Z~evCHU;CuECO?_QM`}`HAFyaG`|dW-1y>(E*HmkS(&)52U*Q6|2r z$*DB}6KHWU|B5yn6h50tAt0cj&LEO0xtj(7-6SS^Mcn+l!s6C@yq7Bf)52)r_m3+H zi#(N@(&AlB7kRiljCbz;t<6E0TKbzs zNc$Yr-KqsM(!{F`+_*AMs|5kKK7>D}Kd>#Al8Y+6ZSkfmkLY^O9u*5ansnqNIUkDG#q$x65(eTYZ5c{ zH^*NP=>4R)MDBHcZ@aSqGI<9hk=Q$?FZD?PWulC1>h2cDPgHf$ahWP=?H{F`)VkR9XB^ZQToc_w)5@B^>-GvX_JOx zVwyN<^?>3Wz9vDE6wPn{UmviNZXjjiQ}S zhZuiJI_nj7D-+a@xvLswJw5pP_`2oI+iY8G5W5Frl7AK*3la3v!to5)qNGc$tx0uV zMNnWj`>Wt(Df(t;IKgGxm5vD6)e<55ujP_;VunHc?T%D~c!mMOK{-2U#{BBa#EAz5U1QB!6pzhj&-iStK01-m2`i1AU8j3layNR3bULc;f4L64FI;b|trL zm@Sk@l`(ySdlZ%vZQt3p!%PWnULQ{~+Q|$VDX2?*wss^3>v83$VP@!X&d!;9UfP)s zDc=kg_1ITR^&?MP>h(Phz1qHeSoSBdgsnQiPZph*sxMrh9cr$`Mfemr@*6vk&YpMZ z_5#}+%1W)SZu4$p_7rLUo0)%6i7$(QJ#%twq)+V%+N=iZM-JWUHS8VG>>u{K-I?3i z>eA3@bH9u{e$|9vS~paV*Yk@{R~pkUytfZcuIQxqiyjjDF_`@YpB>N_12P==_kpP+ zx$o4=RN+KTH|5kOZ(D6CTp_mRce{kH^o?t$4%mJ>1+ZKY*mm6R>4J<~nyN(==T;)O zmaxZfn#s?{*(NypN|DhM_(MBIK-7FHd&-G%LFc^QdhMjTue|R#I)BpLMR$Nw={WEC zMlV6K+OXU2A+?n-V5gb(%}iz>E-rp6uD*G_Hd8xc?VAf`DFrI*u|G z!hy~^;q|Wc-)#SSO2H&?{chL7Bumfgj}w0^Qy0KR?mPw=k}A#UYR8ne|8~MHP5zxM!NZ^Jrwpg#KIxgs$UDjv&#Wg)XYYA#o&@x@H5i|u zpk3QlNR?aX6Xj{cOx>juUFR}?iU^d75bJG3%Ph(W^Cp=nX;51(E<&DexOiqTF^_LJ_MC^Mc{ZiusLPMkYnzOd;eor3>9km^?&?072XHSha z+0D3Jnp(EwQ!b5|0Y9!gGlp0=$K%Y)t#(XxYmd$BuUWnpJ7WZ!O^<~XQgMF+Qh$`8 zVCEaV5~S_xx6H^wfusl_EtIq-CHe^(fBWQKz9vzc_7X{RH_ejR**LihyOp)5TLb;% z$dNJkG+OdpIfnfqw5zskAct9zuQ)y&UWXnjTHCL~nLb#tN;FjW3G7_Ycvo3^pn_gq zin+uI^nW&okUlKpxU#s{9ltC&r{MM27@qe=37l+vKu=MbT773 zNDg3-Da}A5Eea-99CIM7?xM!M8C8DqQqN9Y`7SuI2ockIj!-qrwX68TtG^Li*yuv9 zt*0!1$+a*0jxZZf)Xz4#pOvYF12ykAjzk79KWgewyX}VSdLj*G22Vn>O=BpJaSZPA z`rPpG^?QnJWP3%A7pfxHc0|N9Kg8ainweav!x?}kk1{<6B7a-YrPhEUrjwNLBF_Lc z_ZsWwY`ddDhn9x*X;wIld3`9*{1JtAV5>6hOv|95?!<5gv1cHni89cK2u>$g*s-2rKmHwd&t> z{1?q8O^hx-4Fe0hUYq~$($dalsQNiVZgihb&kZN&njDoP!SjOVFy&^r4<~0jd zYGi)gXW!BDLy6;0tml^3eS_^25}}VoPF`wHF(PEG?A3&n;lj}$ETSs1QmUQ6e&fU4 zDmBSfF{f%h1{Vm0xg@7;tiLErusKjr$a?s^t+GP+gg-@;@Yyz4VJEpebeGrZSzTNA<+c2kt`x7GYfD@OD2+X zQ?{^w*|<*F0Hlb_R4Z61$y|!T=&WI8Fr+M3k-r#P>F>oIoyX?bWwt`^qSSvqyhR`$;;T@#DIFu7dXvxV3E(=M6Cl^W z+K4~1<~F@R`>QBYdo=Ri4AU2{hf&FrX^yD)P`=ELdU780aqOI=jE(gxxz>|UPzZ_f z9LYu{)#ApC_4SSHW~RD`q(uyus(1;j;(=Qm0(5gsT7zU)Sv=UrKH=U*VwKswXbg7m zAZk-DGE2YbyHdL<4vWZj(hd0XJLf*6Cd61^PN@ATQQ;j*XR|Jlji(d1NKP*JuMH`_ zg}y-=-Tu-@e@xV%=BUne4nTR_6;!Ysnxk?jnZH?p&W$u_h`r?ltK5J3-U!`GyzilF zC?bnJ_EBbPq)5#&S3PqfSM65z7#$^*`SCPZV+x^ zT_S(Y^YmC6Iapa56N>uam~{KhR$ zZ)aV;u};}9YQF3g*YVPO=p-f)Ml{XZ_C!qIaGCms5 zm!mwJ5=OC{$-Am*UftLnwXCMoxm-->O$|g)h`^YAfapj%c#F-!Fn zW?{WX5JAOCrNyksE6^kC7SM{2COao_ zN_ICxY|SjqL5)E$cE1*&v3VNqk<1n;h%2I=pe1(#x8%LM;~zjo)$x2QOg-ue@0Yjl z%lT41=a#3wOaa+gWw2c`a>Yft)MK_<@R7d+)C!Ak5$avIc0$#45=qAyO7y!>(1YKa zHhZYywGfjiyPtI*tOlV*QUclO)rl!*omC3XEm{~?NQER)woTnk{gA;ULxlrLUTbBR z%Sv9$!Ax~f@K|LaP&VOD0XW?)YEgH*K4xZ+m-f0hWxR{tr9PFFy&O957bpTu`;#v| zxBlexc_GkOE&++&^I=Y(cGK%IOs>r7$Law&v(jmyz@?#GC|`O3PwIE!_GUN06<^{= zO|N`8b3NoHE_xbQ$S3Jy-p~`8QE~1QMD8&*@N_HdkM0|V>Fnjrmeuj$4MoFR%^^`) z>dczG)yp0c#fK8`I6SFrm>Hg(r^-yyyg93NrcF76C_;^mR?0uWY_U`?bZfJ+dJd(q>q`eNBjp&DTY70|MmM<^uP3FJZ zHUDnz&S$(8_TKPagNDDyqt5r0$D9*zx38}q9Pm3+RJLqU1we@`95J}RNZ}L_&5BiO z_5erO)cQ^;=dOE0K|k^Ym?=k>K~^+~E>$OfE+*Sz^i*+(Da5f6T((u^X{A_rtn2QN zX}0vD@V#hv9!IJBUu*5)=>+`Pr{RKrHDk;DEKFcjM*NNmw%kjNE)*%zuxS??=`usH z`zyQMk(3mI&js(q7tkr%V{`8Q&!#ypzwipR_z~u8%fQ;TTeJn;nyv%c{Gw}@$yvNw z_Fn#yR$Qf;^|8fC!a=HBL(dOqAQ5D=JLYD!r2b>{-vb8xgB|JLZTxQ`|G`x758j-A zr1<{#`+EQUPQW|mnSUVWh-D_hfF96jti@+`%M9yRVi|V!vv(bG2adlSP5omDz8R{R z9cmy&mW?N#r0$i571P|iS_G*=1)c#xUWF^)T}+Sl2&?PQA+IGFxZ7|pvik_SlS+sW zvJx6^7EnfC+tYBH+wDZJJ!EpETyYqr`vJTjbd?Imuw3zjsCIn56dJX5xl^3ZXhLs; z7ZJ4^m02ObOJ(%Lw4^;5sdjcibmEq}mRm=-dF+nSZmyMe%}DUu8`}$`GV2^t(Ah3X zZGvu0cVK`q*osDIHaLq;6qh1ZC6`26ZF<&BuOhE5x7_}{D|~*kTeN1?HY-hjLccV3 zzSvg$`1D+Ams*ialcw4NqBt)Ku{zRFiUi3R`VQvSBJok0VL<#tavVcK=*N{N?~hYE+KTb_0oyGz!`A4DtM8 z!X?hI&NAs&k2~j@Vp`|l{O8c5jdZC=YW9=t>?Y}5F#M8H$uIB*w=p(u4sWbp_>yPs z@zQe;XZEXaE!;IrM;_QvGmfFkTtg+e3 zXRraFgFnNu8%__$5EMkSfhd_vZ7JWbChrM;*nB=UeE7yaq%5U4X*(B|Y_4$wKU+{~xN(TjARJe4iP& zH=(Yl#+%e;%7rgMze6FmdBe;8+CR1X6)Vbq_e7`h;9>_)GMZPuQ$s*q?9*ugb9t)> zq?LuUuuCb@4RYi3IEzOqR;;72?jsBX>b=$$_VHS#uq)Ls=Bw{vJh*yfSJ0S0B0lxK zoPb|z&RjB@-NJ&MXp+L$(id1lZ`dBxBdi58z5g4<`hK|tLsX>hvr(cr6Da%LMTdLP2K zGla;0RT-UCGkluyZZuZuZx)C~QGMLX5yUQT3ucg? zFmi@h98W6o+#fe`fE;aa8+?mA!OYVZWLQv<6y6GGUmKrJoc~j5Co@{!ch4sf{KWo= z|J25rz9-HpJ+FT(zH|k>DoM3W3l6jqJX}^Qs@$_}uE%&4IGWQheZSTAWN$L=1#TddH@O@B(R z&MO8tnaS7P9=`Fia-Is0*`cex$?Eh<1iOMBwK!@>{c1ivzryag{e>!=Ttew*s$3)=cc-ykHn1> zIEgi9yO^nPU%1MliQ8Y1DnZXDrbdO@x!^wR#U@Z5SJA>M@lN*yo14^~sofWhxh~&- zaQvG93(Jq=O}7WkpvGINn1IZ=!F$Je+AkZ+*&20k8!V=|)eN>1&K$AA-De}<=X~Is z*?1a^n(G-@>AeKQ{U^pr(6%s80LXaDZzhGcd8`qu&>y}8^u2B9b2NGaNsUYV&3!2C(|M^_lzOe4VdKOl&quv%qijqy z&hO(L_m1r%o~)QkF~4=Hm};-)-zOeQ<%S$AJ&`kKLn!IX4}n#JCv8a|#O8LjRAwP< z{xLciVd_WysZim2zcuB`-JqZ0UzgT2S1q{#LaW z^Eb;p!4`La4PZO3uKJ5)b9~)e_dwMac{MZViw<|-0W&S^x>17Ygx}COB@SyDXP9?Yd%w{Dj!D(iE%HDl+vT z0B-`1y@+d4^%|AH4po{d!`+I@x`iIBQYBvdienhxjB$p;3h^>6 zfJ{2xH^UpOrLiVEb5Y;a$x=HqC2ZePvb<-z3jaP%xsucUrG0HK51G`;IqYg$&)5ZL zE6>}E!>?3hX*QWt*y$X^;#&V^wox3dUS*xd2KcU`IM-MhNT+!i@Z#I@$2p&52D1<=2~eVnKFVREjA96cAAcw*p0UT z)_H0kop-e%!$qu(_0dz@3{@?OpZi z(Xi!#)!Me*qeqFDJ~Ia+p6P_FYs~EIWW14%VlHk*0_k1A3+4`48AI+1xz7s!iJf-q zV1FyTnFTCx7k6^+b%4dPrQ3NerDE5&?^fPOPYRPsFb~gSeO%OUVm>nTtVM4ut=u5P z?{AiTGt7<_{}GpeOl-$_c7B-!pj2{^{{4r$*9*z#;GP$2F)j{AXO}kC9*y1hd$yk1U*C}UC0$;B?(r*mH36Zq zMB@O&88hGIas@*(>$wua@e*E@A3#LS;ARYrTRR@}qx=cld$m8nBZKF<8ERWy#i~cF7@YD=`wIQnZsd8kV76458PugCSN$1qCVK&!d62) z?(JmjToan9O0zCQ56(m!9PUKyO0rLkSi5f`GX2f)vR1{L z8*MtLXy)XDP3;flD4FiIi|6qziGtPHJ|dADY|)qK)sU+_YKuxmVVY*?A;73$9mc7s z{#M)}W}&EH1Gljfw*M0QB>xrsq7uIp5T8doH)z;WJ$Ab0)Grm4)At+CE|mls8r`i{ zy(~;f?1(v&)nJpW#KpZ?oLN{4Stp<%QJ)l|eS?CeC*i7?@=)B@>L?>^v7=7XDQ$UL zmoOKtoxGP@PJ5+n2O1Ln&D%>kF=(G_`|Om(yA#jlet)pHOz`gMJrB>K=jFewU6lOr zFm(v-wC+#CPrr$uiE<+s?xDeniKtg~*Q1_R`M-6#_Hy=eyTDU1wZFEHAAkKaIRYuE4LH9t-#+^q5BC}A(xRJ2K-VXC=o96EuW2%=2+&%gh(+WQ{`^Pk2F z{+Eag|4F@P`G4@V{xuc$&p5{axa9w@tHD39*LQR-uYRYw-yIE!_$X8Ps0tMk`=;x3 zUKp2kN>$hAnyRkjFH@l3(i&|jQ5kuDooxbJ7HC(r$PXQ_jl?4@+9&$mNaNoOyD!-2 z9T!>S;SI&y<8vMR4+|*)pZo+B-Z|e`xby29i*Q7Mmi6a6j*wd;S>I+T)y^M6%_|RE z_Ukhg5Ta$n30z-i#UPkkL`1ODgg@97E&I8S5b5GGc%1wz)zde4QB`E+xap>CqGxUy?TC3 z?0bcjP2yR#!KYwgTX`i>J-iXTt?k9k!TQ6GGi+#1WweqG*!AiWuaRBST3`CBuI1|} zllambBl`;1ds38i`*S2j>jz#}jnwg7Sye*PW`)9#h5*i{;8~khG74eF_stix<(<0g zUwmY%bxszqFkMT!xWS0jgqM^=KSR!q2wP=H6gc=i23WrZOn7TEAE_ttPpH~!77(xEPxuiZpqyB&=tNi0gkH2mf_sl?=jIw zC!nca>MAj{f3v((cRpM|3dlR)YpuRwvyLV5=_lMU3_O#zCM}~inPpO+r2UldZ_90`aq6-1rwmv}HVi-!w{q3cLBmFBk?C~|8#HD)@H+iZ zP`gctpho?$TR4O=-Yw`s4`Q4hjXYHj9bkXQ=LCfqH(rH6E(-KX{(^AnMSo83JM{!} zY5knx&(p>JDVK8U^Wx`Qvddju_o^Z8af><2-B4eq2FVlc6BRsFH$zGi;-$v6ZJed` zwFzHA>`0%m!v)g;3of8yy&`VpT(6dsUymtLOTe(Wi;3}6#^?uAgG)_a_xIu1gw$ad zX+O|z9r{yg7c_h%dBO=`_LMt?5XZM0=g}$*PLm&&kuE@W?YDESs~?UOd{%9*86HAT z2|D+^MgB4`J!S1K3-1Z3h9Kv2NNu;<)=KGwOat!T&p=A!vU0v(sbBCweodEEd(VUt zGA&afW#?fcgD{5w4XFHH$#}a~_!S+`CD<)!LC2(PA~R2~9xJ6MU00V*Za;hF7cV@0 zg#Y}aYL8ka!}l4HH?{Gc>5Nj;vXJLjJl+O$u=fXW(UNMD z+ubHb%$u5MVKaE0%iW%L8{a6Vu#$VOo3u+7#<8)nItvI~v68e(;L>l#;dXYnI7+!? z%&<7pmS*za3uXfhn7wah@+AlTS0nk~Qes&EFiOFmy4x##)Q>8rFT{CAOz)P=!XtXyOz@+K2MD^)&uw zQAQF`CVN}z^F`smCx`2>nfEC$4Dl#*=^nLYFP-KEq-jk|0aVS9{Mb_qu>KQ;se^Y; z9=GL5pOa+eebm4^H?BRbc{FhNH;dCAzO<}Fj4i^48MWvzts_hWf}3J0nvBR=zJqSR zH;&zLv;Qfi(%LH2ap|u!CojK}DlU>3j;yggLaC8eNA2Q|n&|ukGm4(>F%~HxRwG>* z%L%?he6{w)F`elz8Kg@se6ZicP_d5C`WBJRxSkO51bC+hqV($QrKz61x4%3R25(Rv zv9TNkZ1Wd!+rHsL(`~Nv?it%ia{2p>Mw+$AG;%Eg|=TTc2nZaL& zvg8d)#Aa&ukxJ|jb-UypgjLt_xr6#k8OM!u{X&vlzDfu@uKw1MAn@|FQ(%OHb^0l2 zCl*aVKx#D&s$Y3tVvdirG}+j$e@7~)*^*w$=h`u61La>0VZY2Uu4@{KRDmC#nk4#s z?UH3HchV;s<-FX>osWLm*!n!T%DJrYaZIAaYM5ydqy{C8#nc^*FIq*HybGRXe2B!t zo8cPZVd7KlDIMRz7~$Fn`@nbtd!(1w%z4apbcD_=5Gck>JAm_NQcuQ-=cfV#a&QLK z`C@=rnu!GGA{*mNc?Ks?$X!&B`Rw95V6x#74Tg?o+#+ovw@d%DGOL)W%%Xhx1;s7R z9N}F|Q#0*AWu4+MykDjG7^{frV@&FV0(GR9U{YFiZe(%@*i!Z}S3^*KC0bOwy>6Pq zrb*Y;ysK1X@@+*^*rLx>Pu^m=(_JG9_Y=Oqejjw*A}Rd1uY|EuG5Jgx=_{R>xuuwM z)9hTJqs}T2A2D3#Bpvjib~Jdk!GDJi5JV%&eNKMp=f6;1&UO~?<{-RStx}`MvIsnF z0i|538pV+z5%ln7S8-~7H_+^aMmX1@#+q(^nHnTd+!$Hh_GqZDPe%&=`sU6YZRI@8 za>qGwdZ9tg(yC7^zK}V$0c5yp>v1D(@!O8xC@nr~@`XY6=rSblgbtNxmz1k!30WsL zbHg{?_r_@MGaoh2PZPXmZe@m06|9HWJkd3i4~;@Z4IOpl9_m(SxYIwkzJXC9KE^%F zldRK}Y;u>lxrD6SuXe11E3~%Tq&=@Kn{mlW0Z7^PSd%{+FeTWi+j%$ulmmjC-Mz@m z$S_pBoJl~yjh(3*F@k%GiTHrL-39%Cbn~Zq*mQbx=C56?oJKWD$u27DP!RBedVK*T zc0%%7O{H>2P}a?@ungRu{JR@zUT021PF^y2_}6I^@Ew3B3cgr1c<#eDh~hT0rzP7U_ynChfd;qHzy;p){Tj)s>6Do5%3GH?>LXkTOT;9 zlr)F_PJ3*7CEMp#vDxa9+_@|<%*BiO;=M+9Q!bg{@!C&Z?04U zHgzi+6AM|XMT-f`=w%hIQIs*0RNRKsz5#$ouIuhJgz-c3$w?o)gkNcDl=&*S^2_qk z)~A&7zudNvAz$$`tuf@0Ok6r^mGd%gHhNz3!PmmC2mJmO>BIAGS|0Pmdn(TpH6mf@1*=c5z4D-9~z=s=kNx>g6FfbFIVdVSl=nj448`emP99yk#ASG6~O1 zr=Dn6cZ&t={TV{+%2yvcHRq*&_I;?X|D^y8iudw)d152OQ*^(lKZ5o*OOR%Jm%8|P zv|SO!zhUdUT*4N^IAz#+Rb|yjr?trcp405q;s3$jn@6+xxBtF6>PQDe&23RdQEDEd zt)eI@rV^wBHKaj}A(4Drv^CfKt+7hXp-7^}w8o;SF%`tDrjQsS1U>h2&RTn|{ha6Q zz0W#l|MC0%p8vAsMsiP|>waJF>-9Da14grSTw6d~`ycBy=(*FpJ@GE0)gKY7J>vOG z#3iv6_Oy=VGg#g}VX(WISk7x>&9Wx#ay}&hXR1m}-X@o=DyUb!cxhmH^R3B5p^{CAGo1RRyur1*oiJ9b4v|a?pJEg#{J4*G9 z=-AY%Z@C^*>3Y=y&Jao{2_TRZ@L4#|p)tqWwVzD$(Au-x5oqmRoIV@uHX&H==rx68 zKcZ>tPQf6E1Oe5RTU0yazQdKpyhdg-8}RlYu%42W`zCyaO{*5hY*@Kmt(vDxJ~4P9 zCMkC-T7i&&cOI_}sIITWR*_AxLm8?#hWX@v`QAlaFe?O8`Pw? z8r5b1aY79Qwrwq;o=D98sCybS`vGBi@Qp8fS5meF7$-#H4y4g980%}>GP+Z7vvHjJ zvGo?Y2*WAE7zM((eY<|8*E@S!?bwo<^wH-Txa&YCnKjs78{`}~Y+?<)T zJdSEF{~PYw71P$eQV_5!*>M)?jHqtgVko>N!Abm1U5w@Xth1unseSDQN?F|$TWGA8{_RJ_~{zQZI}VB(!H^Cv30%rjfbXB z2lP{_3WeB#pDDM({oE@5MXT4PFE@!@*t00y16og47s$cCY6nrK`!S;7*wL|f@eW3 z+DiVHJO0dP@aLbrWVPxm$2{9^wZSwkVqS0^SFN?iDacNXB+~qmfm$_5zJjU9KAR1K z6f)QmT0z6$W1|WHx6FQ8><1UGC;QnmnSzv`khXJoE;h?(UKim_eJ$Hy)TLqCFk`1{ zW~AFK-dey@X&)h%e61lQPi1Qe0R4MiTA-dGmtj2WprVMBAlD6HjX( z5S!}wpW=sK-%hWN`CB`ANqbkWo%2nGRF{fg6=+u0Tk3P&vcguNqQ{@H=&E@!>j>@ ztQ8B%zKc-!rn$8jPm0*%WXShORt!q<6<6@2JxmOGu2ZufSY{5LDwFY@Z8knNBuzC> zUQG{7iLynfI;H2=7PqIBURyhrQ9^|%mv=Qrj%uN{%>HngA9OmY0$h>^HVB~r6&0wU zhXtx4pY{8FsV`BF7m2qYzp2_ZrT4LY{E1VeJeLaZXq`pyYB|piG$R20HuFxMu{?Dp z517{QvYwsT(;C}pZWF!SzX`|-B;uPG{~~(`Oz>?u&hy6RPJz{znh50&_u_<|SN*{T z_m7^5CWk_(9mQ>$Uxw1rMr?`nmGocR-Uq8MUnh<d(Gz?+ zUS2@fg1v?pC)U)%-{zhq-_yzP;v=lIt_&;hGNNNivg%)m z`-pi0<+57<9b&k&WimkAk<7HzcV!Af_LV<%E9H)TyLa)%iRh>Cr{$;Vd*M-AS|vZT z>)zyWnOP+gw%t1#vPvM7eL46IAJw^tA~o6SE{s(jPKZ!WHZ{k}CJh3*=fB%aIyQgZ zf}>RO>|m+2LygHU$E!kwy~mdnA)m$^3`J4+gxhLLW%FMpUVWLtDepX;CVDbA2<6Mp z$?VJM4bx2=2(FyvUVp;?1n1=V6NRNCF z5lVjEVfp=PhEV>eoKI1;)dt(Js*vGNY1SGwTeVdr>yd3IAY;4!;?#uLLT?@-_s)Q} zQC^)a;Z3=#$l#f;b4IcHGWT`3WQ3nm;2u%nBuk@JS38sx-5~9=TtO&G*W>deQ0lq2 zCa;bLc*QWg!l$o&{qby0U4Ylu^HV}r{cywXC~TWBUOr~w$tADpQ&%oE9)NaXlMb^y zfPQ=h>*;bc#k%*+bgcTbzWmCFm45Z_iXX$uz7|^>M?Z#NTC|q#^yjtH>d>0Nu_ur_ zs}I0o4&tBO^Xs#g`?glWjPfSZF_dxSumV3q_YT7N4?w6n32O8s~()01e_=<{d zwTdvo-B4WC(tc+0_c@2G9_niBxI8gneZgGpExwSjNWc%=7_d(phf56Fj2~-mDz$s+ zuK4BS^QSx+hmF?24TJq7btF}M-3BpSH<-ML400k@-LtytO`7_OmvU46Dc5@?^RPFA383!a0X$EMX{FMK>(#_%I>H&}L9uU}|~a7EFK%EiY%voRq4q_7oIw zd|%au%)Ovfe8D0ras*FV9q!&Ki|!-N=21($6wKPqVX(6?rK-a}+r7L_otSwedFtKA z$1<+~X^cZ=PD*u7D&TwcvlE4_cH-HI0M&cGZ?4~&p8syws+vRrKO$zHe6_mQdy95V zm8P_|vpo~A>YHZasU557gVG(J@EmQZtLTv4*nssiFi1FirFtcz{@En=>Aiac$J3`t zXBS1K20}Uc(z>HNGRsL z{M0VUQ5<=bhwHCXrZrlh0VYgxf(9HiCH0E1Z)-WY1$5Vt7J~#6=;sNln;IzowSQHOYcv<1dN#xg$wDxOht7{?~otzQ#!mzt=LpSViVR^P*hROvehT&4&)AQ zBG2k8FTYz|Nm(6|QUEFv$bprluCB0UD(>N2hEOL*9_Qp#4qO7 z4s_&^(*!s}H-+p75jlOz3ogTtKm|aOKne8b?Z0|%?@ygNJXiJg2v#rBn`w%yt@Ep! zFb6es)>$&MJvyMcl+OKBJ*{uLr&0X$9@)S5u1tw=HpP#9b|1JmaHZ-({Ljx3wl8;w zGy3Od8#CX{nK>}YHMnw?*L{XlHuJ2Papmw0)USEAYK~`O>%2IpA!RbA^XpBWI~=k4 z#@j9exZ$EL^V${5VR`Q7rDXq+Z3BfU^aYk!`)+bFEv@p|#A9*a0n9ZRpnlB;7zTeZMR;@S}U6y-0Z?GeilgPNj%l59RwFNplRhD&y?5 zdUgqi)iC~qlM0eTZjq2{m|NGI6hpDRZUmTLH7sELGNYh5?&RM6&yiiNjr@J}mM#}} z;zwcjD7E-p4B|%QSFx9NKJ6dOC}sJ@V53$Y0YbszaGGf}pN;Cz5xcLi)p4|$^X-DM zk;Upqe%T}>!W$(J zoukcaAU+1^RXO3ff8RVK_3hjMd@H8dVL!z{Lh;w>aCoVqCzs|EW9zFlhGd`^J|&V# z3xq3p>81Je2qIfYq~*$(wtqNuKrZHy7-H|M13p%>1%25Kt-x@mfQHHC^|Cn~7}p%} z>yOC^uMcx%E1s_TOGGv;6F@Jf&%K8G>WKUI@2?fWGL;G>2KlPoRd^Y8)Sd}>l6V*^ zo&CW5;M_hIEe1HQ%j%{TIAQ3c4UM1sv~Qi+?k*WqX*tgKW*8)D8czRld}ur&SEWI{ zGvK~$rN*rPOUXXN`djT{fc9qjN$9|(l4n`YKGq$5QC%DEDu(pGfA6M12nm#2eCuFNX zfr9ASG#dR6N2`B>CJOW2=Q}D8^ws9sRzmibSU3>n*Mu*JtA7e_TLL3H*)Mr4QwfJxd+qcv4u;_fb182n{#y# zw`j&r$+ej<_lNkG85bM}&j_E7(fGqbe3&=z(x=X(80r$#KpT=O@{ME51xMr!I+pk0 zX;O2d<+;S@$vqRch0&B41!gj&a#pR~G;fK-b#?H@-Vs=VIVf*C24ObvINI9P>X_Z% ze|>!XnU|nkWWuk{UI!OECm8wkekkaJqgO}kE?WBzGz~f}c@_uuGnuH8-jcXPFIX0N zGMiHM6?BVbS&le>L;>a;caUg`Nr*>p3!kYwGQTIX^rtDe)Q_D(j=IW6hZ6Oji|+DX zoVR2J`PY%;QXvy2=+}8zo6XtYG2;%wgCaM};h550k zR-39s->Zc;RuD|GE5EnA(K_UfBfO)1Yi&v@)*qcVUe$G%QcCVLy8~=lJHu5mts~-xxxkWz{CvWnY7dRx%pZ^!?29<<_pW9Bs@1x;fyR-mSgf#C z3$ex~f&8e>secDHbZpID89Z#?&hAjoY=jG!#jp_w&PNOtTsD(4rW7TI)P&d}*0-Ch z^rx1K9GeV^0+6?aIbBX*8ls;s3?x7QNWPKPmlCrW!jF-1?YmqeX)JHFaeZ~BT&|jw zur$KiNQW?{RD?)3YQB&v@p6(9fgiz8)5 zz4VHT>aKx&kNK2Y$4DbHuutc#E9VIVNR1w(uHZWHavO79m{S7u2OlHH1zJSJWgmZtf)<%>@#FYQy~C5 zR43r95VMWti$h(lW4%wcWgtA|?BRUBguGOLKddoA5g=}#T-{O4orgMv-+xgrj(iv+ z)j3uyTZn@~Q&Ql|&b5h03&5ocE~XUIg_MY`EfZ_x;?v*X;wXvDBmtF<&ExcmsQP2m zh)LL&O$DKa-h9U~NXaqxoTHWB|EdfnR4OSQ*Y_x@xic7LHe9<@j&uwfHLU*8(VOC- zWa`8W5vi`)7s=Y^b}o(i7lx$&>MbxXE#?OOcnyP}={>Yk52`IC6ZwZVOH+0)u8>lM zkYOnnFT61*UXyE_RO?-v3wT8ynQp?RE}Lqj0-?R~z&YPfY5vkf0AAlrPL_r&aGj-j zec0e`l9QU^Zdr@UI*X_Gwm~WU(35p6Ot61<&7Y3r7+c3R-|x9F0>6=XXoN=u%tcn&w!_aXInn7Yl)jfwMCGM4^)Y_1_NQ0_^%Yoefh0r$ z8y2QfYzdBfiwOqL)7+&>)&q4;b(#oiTP7EE-0fc!(w7ol>Q*IA=;g5jdi~kfD3L6$ zV-S>f{DHudQh7Lz$kX5K1UY|VRQSn#&iCgYCurGXjkS{%J9qSn0F{N8Tf zhh{Z_DSChOi%jE`#R8csST2&#&#nq%5hii4cF?W;QsoKmMKPlpPVj)44$IUJcOND? z4mzhpmE%lKUN0sl5(aE(enSVgHS45S62-g;gD?0x!2+W>`&32_t}huqdG>NDs)1{M zWb?SuQ`fY4!)Qandl#=H$D$pcX$J!=v?nGPjcp4ABRzrnpT^qpk&?ig`993UX0ver zHMYhbL-g~Rt^zX%er?o}vL|%$4m*fNQHB4=;^?=kF5(Z=9=`M(tH(#)+mAa)=Y6DZ z&dFI@0Qj>KTQGY(hhnN%MhiX83YWX*!!!+Y1L!UNmvB?0S99-+U*ER|w{y_XJ~1o3 z{>+%WyzPO{ z5Lca*?(N3v!Mz216u)uoMlLn?XP%fT8np4S!fbx{d)h%_YSh{!eBcxowe-$CywP9zJ4aH`9}QjacOTwZqw|K{ht@VbjzW7SNKnxENo0bpa&Fv_(G zt{hN2&dEeBB}N$%_W{E!aqHuGGNW~=rsEVBjC3Z$1BsBBPHOl~tf(@44$DLZt=Gwc%@M5MmGBzl8TnhK(s_U~1VsG=>D+&`ojomId zdaIM?GN%fy&7$RLvcs+4#>Ni)Y|U{EDg`%AXzZx!408?3?RaN=_F5@1SjCO9ZEls? zku}4%^$q7tBfY;`z|C!HA{5SP$OAQGwcBh9i*#<7j$lKN5klod~$CiQh+laO8rI`cZSar4N)cJSw|u6+5vlr{ z_ebh449`xm&p0G^Xa#>=24feau6BLh2)}Ej;G;b;F}#l-UR`TB5Jx%ogCwXZh57;X zEtDSX3lpT=x2h6YLud7G%E^T-2=^Q-eXQ~PVMN30*>yA7k|UQ&JEK1~wD%;XQyBpk zl=ToAfvH%oaf9osO7@K%l}HE#?X_A0s_pE}*^*3c7XxxSph5@o_9$~l%LnEHu=g-g z(IMPsRMZ#3J=pymzIQ(jSSe}|sn4Eiy;^hN@sJ9O<&_-_D+W1Lf>V_e7B&MyO8uWo zAM8K%n@zf0zE=i}7M1Lz`b}8=MslC^5WArJ9D0`3*`q6n@V(m)l3vyASe^Yyy8 z6Dx54kq`PIgu~XFSMz0wWwPY;_3 z49(5}meS<)-~`L7}U|NMtJ zU+o#Qjxf|58RPQ}lL~Rc+kg4djB??6_rCPQ3F+R}*1CP5pO`+MLlW|Lp4AET_!jW< zOsOG=6Ru^;>Bs=u&wd}Uv4u^74aroYB$hntr~o%NV(HPVOjs(DT4HD1ZTSNkP3vP0 z(1|a|^sWeJ_iI@;9EVp|e|U2Ue4Vs4HO|D4eg`2$Q{HhSLfc762oGsHo#GpvZq>z19&J9TsueH9`3R< zZ-){wZ&Ca@Z!%$%=I^o;7&nGhDKTqrwH2n?8%X_6GffN>cy8W@zCPt8m-TD@bJ}c? zx*_!;Ttnf_GDM1O==(`@>$+8H?QGenO#m!BO4yVb#K3#s0K|2g?6d=}1V9SqmbNhT`=5tH19w4hkf)7e~JHmw`MKY*SU z{5C4fPQK^-@wuId$Fk}jowt%KQ3-Qsd#S)aIe1z1h~kL60R{hQHai6FrMhjiSmHLX zqRYDO)vRTH_R;dNpkZ{q9(FSG>5Kt=ud4hl$I~*EYv1`+un_4K6vy57ceH%4U_~E? zNuOmI^6Dbbm%YgqWT}r3Bt>0@Z6X^;Z4=6HSgQ{1nY7vqIDT$^uCcE!Ax7KmS^j&6!67?j5ixlaj$5hS-YJ`J3uS{*y2EImWz0Ew zuhmTvu{&~nRjxR@4j3lC=WzB_Sb$JVLGUq)%+XYL4IUe(wwr0F&S3p^Cs(AMf5Rqm zzx9rB{kW`8hsOXQ_0=uH{2TBgamN@K8l1mnB4Xm0U&uvs#zgaSUABPCn0uDwfNQ^) z?Z82o?wUm)JnJl5>Ew4Ulk4Ac-uST!qt0Qbzn5r*yR2g%6=(=&{;0TRa#GrGXVKo| zc?O|s1A>!}^VzTPrU~M0?zRQIK?p0HiOo}rU*dwj#@C3b zA>|R!z8R$1xsu?KYpgcvUL}ZR|`hxOu_Fjro|9;uio^MlQgo0-BhgiEXBQl z`Tq9h$jRDAh-s&I)Pxk@fO)UUu5wR}lwi+Wh<>?>WG+;zeF&5SKqyb4uPtU@(&l!V z?iL(ojv6%vg%>s6GfY#Tb89K){rg2odQxIS-i6~Y?Rzd1T&nS$#(I`~xR$t4H57Pl zIm;XR+)Qm@%rUdR+z%C1fF910VZ91uKU`391F8PJ*u3jFTYD|XAA9<`U(VV0JEDH@ zF6{)xH0{}>=EFCS1r0eAB-R@Tq~2N&fJ^fJ=FKA;?2c`IW<>i2KMF{U`+{q%PM-b4 zQ76aa)H5oQ{S7*bY|3rMoI&Z7{X+EH4B^K$zajvjpFsv-KTC@L^f!pI*C7k?Vab@G z(S%L)zYQ8SahkFzt7g)RKawYE>+IYKyMCa+)6(E?cd<6J{SLioC<9$LT5j17k_SG$ z0Lx;UNN***LAfxFv^+Ev-lllH+Eg2y9mq-4lK67DxQ%PzRYJ>STD!_@lLvfs%B%;7 z3L&qil#wfz%(%{jkqzLbeSX+tpo?!mNEl`K6LbRsYHy(mHmFgosdF|6inO@j({kbX z&u3ywPgQYYdqru&Gq=iH0f5s zMa%dnMXd@!R`9KD2f05SSS5h7J+1)V&-%mRPCB`#if3g`lOoWf4EeZ1=!89@_hFnx zV}D*~r(%zkmF=ThY6s!X*rrBVBrmVE(?#RK83Aed^Ep?3>f$)mDkV*ru*kmNhvQq* z_(JF_vstaPYn4+bJDO%+0O5!0+_6E zELq_GjmWMA(2?}?$~=5q zP$W4kbei-oxTorAEv_tX5-viJ&2heec#iB77M;K$F`E?{YAx?(lgZDIaF^SqmxGTuuNPJtuJW^W1DUIDkX zhODC1#4VHgvg<=ke;yaH2rWmq;qG#ia>Hl8k)#o%Z735v&?s0=JI(mMU@Lkd-3b{w zW6QpuDW7mIryf_QTA@CgF_Se&U#7I50~TWWaV^Z~*f#0lFm6MJv^sUygw_ersz;0E zAZvrGsF0a!`^g6?K-33qJ6hX!di-I3Cc;M4!(pZAILCv#nKx)C&P8g)*8-MaH0&BLN2Ycl& z+UaB@25)Y-7P3mFhvTQjB0#6;rgMaq+VZGlQx$0^etr`h$-Q7SpD^`C?+o0gV>z-Z zfk}`u(`wT09r$3lR>zL!{})R1|8A3i z6;v3`e(9bHq-`cLjECDOkgkG0tjn9D@+&-V)Q=>7m5MX|U8LThDOeQ{?O_RL8oz|^ z#gBvy`WsY4Z&Wv43!;w1_r;#%g!+v?1+GuOUEg8})W<`2i%d(~Fp#QX_dlsy4fB13Jey@lBDC2e$azG8|UW8B7^=?-vyeKwBAqUT$Bw^1xlg5qCC zr$melGOnZ7Ws`ln40)?%6RYCnwkC!ahFQtxlpaLt_pSPrV)LB@wk;ur8U@)mp+{4l z4k(SFhT$7I_~Fs7!JL$5ac8c?=hY~+;mDp-EE+G_Sb55juSlzXR2H;oX>$OK)S3CF za9Jl~SFjkVo-!ZM3H&R}vtG(w#WPRD>=^MbCvHyErx)&V&N+d!9%P^OOajD1Y}LfK zyedkT{}o`GXE6mNCXJ!!P6oe9Ky&}#0PfW({;M;I$*6I;38{l*tDX9bL`bUI_#ckN zFIm!ghykNIfE4R*{;^fEYgw1O-sCyT{25a^tk%u+vDw^U{-YaqPc6MUL??$&HK^Fi zw@qxrM)KL}{T2ypx$bDg5D&}D2fZhG*&S><$#G-T*0Qv`kpi~f7|R6AnsQ}eTEs3k zUPD}*l8Qn}J1dhep>(q5htEs+Xsmnj%2D;tT(gN*;{N*!Q{_c=L`vNBS#HOy zjrQ>8=`8`n7bSX`=NJdyJ+6o(>b881@6?x^ee#tQl z{ITY)yh-yt-tf~8-q~ArxR`!DIvZVP!rdKkQ#s4*Do6`iA1>nlSJFK|Ax+)hmLkkLSq3g4@ct zv>OjZrp$bjvPPwm#NZ91ItV#uW&mp2<#HEBEiy@wMSH>|CHuRkNhW?se_i5H>SdPQ zjI_Vki9B2o!^BARgzTwRMUT3;UuE9M4Su=QouS6JFFH92TD0`oy*N0P5WRn)61Ux) zTuyKNT_h73b|ubuJ@-e0XL^1%_TDGb^3;~@D{ZkSboMuU?l;O`TI>Vjo}CS^JrphB zb`B%6(lU%l8^FoUj;i0>YzV(J;7OB%1`h2}3tH{hVwB^!S)nvTM^CC<1xOyO%*pU0a6L;bsEEqIr!1 zZ3*UeaVq4lA5>Pm;2nSyvd^-4W+4z!f3l8@@NGh7OpA*mqL;$T?9Qaz|TUs?A)#1&qzue!>cM%eg6J(=Kn#o@(j`1isw(cFc7e5+RqFyQ~ zu|Hf~y_6xhQ?+0onq8&VtT58k^$_|Nbf)U3Ypvz)2bCQgd2Uv#5RAB6;7th{9RwRi>vZ_83 z2+;~hDZ!@(25%jWb?>flePxxCV6G-#dVBJfgTJ`IRIa91roB8kSYp$2*~GqEa@=uC zN6@st%~)ysLQ)cVsKX=IwXBlL?B9j^_8nY?iJemRdaHZ1-h8^89|25%@Zq(2^V^>> zgqj{c7*=~3X1SmJa<(-5`(tPqV(=WAAz;t+6<})*@OH@C%vBAUAeD&$PVPG|dW8;| znak%0#?M>K+d{rAWKx$uP=;%3k+(d_tzJMQ8PYHaQth5m;6p%688TwrsQYy4n_U~+ z*~%6{ohP`#o%pM_?q@yCO}Qj_LV_$WX^=g%WVJs8F=htK4PjxUnO-6(X*jOpvqS!i zKlf>>xz5{x?j!K-&Xu*s1Gh!YQ&ME`c4VWp(*pG(E4O?P#?s?U=vRA(GWlfU{xaVw z_bT>FUHtj74}*28wsWU6IwWf!XDnD{BJu_taPHm6aR?qx3VfE8mm~N-MnDa@Ax9h1 z+Vot65F4|y0Tf*4T|aZS6hAQY8CgSzHn;8e?G=ltlct{NwgcTPqrb8*%oy(19Gpsd z*s85IeK;?Aa(>Vmee}TZGqe?0P06*G-IpI`bVJ|#;V7^C!!hsz5U?n=vkV2=`;zsN zJy5^MUklxp3(mV49Jd?-8le(@I2NwyCX4_4!|`{q*w%c(Z}C2o`}kE1%Z2-m=1_h* z5(ArpTQ;Z7jW>Sq955z+)<(l_c$|D(XmU>TP}b{)7mjXEs(?OXox!cbbXvDS2}$-B zWBr$LnWYR5xk1xNa-3Z@@v6t1@sBtpJU8tn5E(0af*pXJy8nqhq*9j&LaKX8v9Ef@ zUQx;geFZ%~T`j@U^7{BAV{ka?K|U^6h6N|EKgSYEAb#Fji>yVhhtqTcUmc$kP3n3E%%D)c$u>;Q!itoXIGmKO6~B zjM0O3Ew6n;ya&gYJ;%S`=lt)=I0wLE%E0Wf=FlIG6g?rFF1hJ@)!jr`6TYT%x%;?}fzqaCO;EQ;E9jeaFVO&##lm z@^UZb15Vy*%|8>8T@_=s@zhtu;&7acLGi9Xo ztp)sg`R@!@&dWqD&Cf66$QS3glVz$M@%9Dyl=Mwnv4$cT15P&?_rv;G9j$&*U8%nlOBxS$8XkzDCo@LzFnNo{7BqptK;W zMQnh;jpv~AAcCc^9K zF_K{8Zu10_Qpe1?iARJDb4Z3O?FxgWS4$6U7vq9~PX6Htt8U8T{z-d2l*+bSXa<)OMumcA34ql~pl~y>J&))D9$pRl7(Q*rWw$J;t8uOmZsAnB7ax zO8|bHkP36#sv$8?42?9P zQ*$1@JsnQ-@9Q1)-)(Eip-H?oL74P3rp?Ae3?>YNw*`1jGg_GAdk(dEjf8@1Y)%XnTb@dv< z@x)4WKttLB#T2)isMBBh4`##v0%G{TZSwDdy6XqP&6!(e?H%bv-rJ_(z9mudK7!U+ zbhBBCm$ZTl{)8uSvPk& zH1^9utNKcI9AUEv+o(oKpb&q>%BCC4lP7y)QCD(U$hO09`;C@bMEJ~m`<|K@ao6rI zW4_*Oo`hGviLn_s#D&3SbE~!f7uJd)<&_in#;LXL<=3v6PDvV2w{=u$#g!?<5F{}< z!G1MPltEglm=xncSu;9V$!vAj^7L%u74oXTDSr#~blMVvBJ_rP)=?tx<%u(%Kk9xx zj`eNzo&v{;W{E1|r_%yiE+thYQ$f=pht-x&YgzMia|k0tvxbn>kJ@g(lDACtJbvG z8z;Fz%wtRhnM@TKbY{iOu*y(+g>EU#N|Qk0joKiaPdDqj^iS!Fj@RsPA1)@SPyG&S zzU$D3)eH;~Vn+I=7TgM^IXiLXme>=o70>yAjRGt}!)zL87`t1(?NE9$x)&q*m{ks& z1ct}&&>QQfv`kN1R?xA3*9|GN3nk=)PWu3Jz!%PW`(S;%HG2tG#ZTSvlp+;%LUFB` z9Ef69u&(jMkn*tE+N{5TpD)|>dD@1lGP&SG`yQGFXB=S`vLHE#+&0oF%G!gUd)E88 zF#3v>GnM{uXem97d(aRt>p; z*UVLO%Cxu2mf03|NKS`Mn^y+9L#^TW_7e_H?I}b}uVzoj9YX(TRAE6ylg~^;&$E78 z)K_F_*r}fQSeY>Gg_o5jIueU#qO)X)iJ9tFs19jaNWhl4H4{u&L(*KHkF?t;X5{b- z;n!wMvx>F?`-cf-qYDSiWqNu4uWlTN|N57dL0(4rSG5UV^m!KPTQC~umE(YT`yksG zZZO|b&Ud0fPq_4|-P0RXh`MDxN2}49L*PTbz{;q>ARR=C0ce%I%WI?^-`kvf;@Lpq zwve-@3%tt(s0XRa9GHJ^_U|3?pXdw`24d*Y7g0~>WrXQ&vw>;DSF>Lj^7(1F>F!BL zQ$;7yX86goBaey5b)x6+aHeI z>li?;pocaB5bAD@|9o5e0tU}UV281iC%G@M^ekENlL+N;%!8W#GAy1hH~k~t{NlZp zaKf8IuWK&9H+cCz_#r1CUHzBXH~;yL_P@W;|Ng6-Q+E;*HgO4c=+oF@8m1-gNVgZL zpm3>_3_4c-`~uafJ4ohr?N_0Dsa!nIuH1cX)Nxtl-%InqYnA`FRhb~^BuEsNbv(6A z?LdNz2No2V)3xDL+b`)R{S#)@Z{ac6w6=Ji7TWfUp(p_jc?8Ep&X51fB>UeayMN&* z{r7wSQ?2p;vkTzg|Ka~pME?Klj1;@E2WD`$Wb+;T;se~UatxX6ubP~DSKd0Nu4w9q z&vbb!XlI%JkiRX{{MXC%&1I9boYqfWrS{a0rm~XK_hKr9@r6@kHdRRjm?;a`hHH)+ z=qM|KzTVy<*w(-ZwPv)OcMm*%T4;`x>6{ zk6)XljP*M_sE`Sdygroq`cMXkVg|V=Di`JKouo6`YE)euZDpCb5g1@nr@bc!W!nFp zwp-ZIDp`kGRg6oaGOGZ1?2G22CMBha$`0&&i(#GIoHLZQ)yf%2Rr zybQ~eJvI@qluQ?;4yWp8cl0!?*vxn7s<+(e{RuyV}6PNw#~2g1`R zcif&SW1ALIiqfV}w4VOMaR`Alqlf3?#XtAq*=-3y^3E|4uy>AseRVq2E+XU2@W1k| zNQ!QzXwvzRG*3E*Q!#rK?2dYw=+&cSvZZ{P5!eExGKc`f*|IHERcJ&ocTD)^;rR`t z>I%~5EUK8gy6U%Qh<7{pub)uYiZdSNngJx(4!btt#a$!)g5?mw>c=>Kv*?%SF>w8Y z{n-^VmN220MZZDf2dScLSnV(uMy?gzGj0lVA@f?Z+2^0iKn84MuW&~F@XG95FBo=4 z+u^ex<6@vs68YfBwbV)2JC9367Lk<}p*x+L2iLa&@LMA%1M_-j(6$wGevA8^srSRt zhJ#cWXZY=&Nz(I(Bc9*cBW+a8w2@BjNbTAQOr04J=&4=#d%iJcbZga5RF#pHOy6z- zKxc%yxGMKFl!4tN>F1uE?{ZTDBxDL_6M&!$?b+!BV;VkTX|zvrse7@RVoa_audXx+ z*h?77lB7#9KakOvQBthL8FOBQ9lkE^6hO&LaI=2_mm7(sD*H#gnV-zPGnHFaO7{*F?)`6G0N}uw6$ij zk*aCVNYt&6{SW1f!OzC*#&;CE=I#sJh9}6%`fH!l_q9n%EVxwXYj%2eHgQj2=uMcb zY928f|=loXwjjiXQ227puN4ORvAjWKQjVNzB?ZRh?&ygiX+hwIM z8nHBchq2TNT!RkR4WZpJcMbPmcrA3W!#ohE{?XPl@&}SRma{} z`TJ^sNjid}?;7WAfEYQU@l|4;(8|{4yUHt(p4ac=2+pts@)$yh9=pc{OfH^E5;Fee z6Papwy`#L=ri#{=umr`&{NZTty@=AGmwyZKw#RrtTBpU%FL%IsXnBi&#WQ^>ORkQY zUUvKHB6(M%onxpeD)ySE=Vs9wJb$+QQUQg!0fX2T-VwsHI^ z*(^GHY7pw76g7cpAQ0K(?tS@)`P?Ur+Ad~J-vM7a?Iezv88U^82`cY>qwJ;O96NRO z{41sd{7O|;y=8Oxi;A-V8n)3SXu}t6BU8z=TIdd`F~UqLns0$3$=XIibnZz{LOF}n zLKeMQ_w$CQg4B>F?lK`|C8k?2$h)}hq~t@mMV3}tJHN%c!V|F&igaLNC1e|!8jkI? zP04E*AEoh>9n7Yyn~w<1sKqo&xHrnuCt604X8~>bt>7u&bjz**Ba|$jkVtK&N<)bd43}H8L0HB)4Ig!59W=NTR5|K20%b&hs@P{qo5$=){m+CVM%X)`r z4Z#CuzXz6}TRB$DyhA;vcI%6tEg-?RW3OQ}Ud2%fl5s3xLh!&#C+9Q5qxsB5T^1#u zcb&4Ta~J;bLr)B1q)F}liBy(X4OJ&L@XBb=DpWU1AE$4Jbi;aAD1CRwFmRF}U7QEw zUjCLS%{ZoxsWyY|G&WT>Y$uw^S;SV>jv8m_}G27xWJ+vH+s*zXC)^>{?(RAC+W#=t?pUM6x zT>M7MS3dfz2lm5g+oO;#g$0VLNLiWuayt5Ve_*!3#VQuLAO^Q-?8UoQE>o|zJ_xyn zNB5?+sey&UL__o$yC3lZQF^jWd8Q#<#=B-g z(K?#J$5~}7S}J>1)?wz51!G(aGQJd_U~tO%yoB!?m+$L=w?i@$F|W0sGh!Eq8jX&D z7#UD>0FgT9-Uj<;6mxlwNmpyu`}kR@UMZ@KiGarU&YyV`cQ!cSbBfV|hLNmS`>_x_m7n&ms@J&vle&8dQ+^e72=gf zl2TN+Q#Od`-x|skFTmf+0kkjNs}$3&W@nqCVTb}lIW~mfPn>DYl3E2{ z2=DBxIwl!cRvs#;drjUd#R%l_d4F9^xiL|5_lYejSrRfHb zXn1JS+}=X_VRd$qYs_i+_Qg0+qWZhg1M=M#$ex7n-=>>cM75oN1T2 ze!i(HMWS#lcag`w*W$ z8eB6P_J=KS0n8Qx+QQ9ow0NHmpzQ5N0i=~?{|6B)dwUG$GG6onJ+TB@c3g=+D zt~*qlLXCd#YuVB-_s6IeadC7R?eC&E%%EC+p2#jFXntsxCsM| z`Val;8^`WuZ4ryN8au`KnK6M^HX~KNFL_d6Z~Sh1UzRxgtnljEH5pueti7X9CAp^4 zMD96aVy3trBaoJJWY!oHTFzfXFvz(Z;#V}gv7{836BP-vuROX z>zB6N+fD-dsVK4V8Tu7#)0#saSY5-rDUKxc6gfvx&q~TbLo|IBr)j9z;e2T?R~s}Q ztf~zCJ-V$P`>2x!2S@lI_lYQyQYS}C4Kw%fZ&ojcGsIq?gA8do7~V))T1^`B2tsyE zEIg%+KYf|1n|r_gi6KZAH`F;`;lq8Gwh*5kQcR%Q|6zN-NRw-*hUpyvY6)|=5=Cm& zmsI&fT!?j@8MN1)KH3%MU|7IR|HEb+ss-j=`H%Joq}PLhr~EBxLFH2SC3Sdh&3r7b zGo$1W@5`#vL$!BQiht0ZuWzB}lcF)#Hkn!ANZ=y{1H)+;Yv6zy`}?da5H)ntDq2^q zS4JXkK+;|0t!2t>bRdka9;7(R*CRwKGB3#^oBM&-7x#ypNmp2hS#qNLZ;C)3GIyNP zVl#6>Q>i{US~(}{CsCU*MT+_@{`SD|r7B{KIEq{VlerR=tS&o#BWgxEPMLL8vyKS&p302#x z+~~WLX24uxG&(R?pLATrJIJShnMIG<3@V`@NWG2Tv*)?V)$jPsE3zN>%HMFHMRn+d z1T4*q@ccQ=!zvlp%Yzg5@Ogat%5HM+!nUgxmWPK2R|6p|F;=L|3|O!-{ceh zkKW^nCCY`U)iUz{UDUZjR3qNMJxn}aIa2YtQpl}R(?W+E!VzlK@4h(asG*Z${|PpG z^~$HyWYfr;URV-bo|+Z6 zLj$yOT;l|J$9R+&nN6QoCMJ9ZS5P~}1*xV!1uLxq9f@hG;O@ z`+QyASC)#OQx#Dk4j!!$u-okkgl%z83wnWo^FcNd`L|sF>-X&ap z5j%e{dM|(B49=rr;#cScb7LsgdT@{>4tw8nga#}`+?ZKxxOcVk84u!hhE=5a#2|D? z=N`p2?a|~Nhz$SW*^5#w`ZM0hE-7olhsnjmSynYQdGk5#$FSBMeaxa-NuJh?!t9Oh zK~(8%Ipv^P6^=4t=^x637z5inFoOHT1{={i$wdkKI7>!Y)I}PM=#8TGJe_Y+^e^2O ze17?&)TBCZ+-tmryGg2TL~>3;N)ln*4-}|3Szbu6+dqd|vcH8pRpTiz`n33Niqa8P zULCMgA3jSQ5|#Sp12Ci~+jzA#})F{Zssj!YY;EZy=?TvN!zS zhi<-P;_1NYQy__3pxsxSavD=LFJfm@Qr4@ROVLSI zB$IY9qg)S+>4!70ERiMPTswtb%mqjUh0U5o9!eiQPU@W2?LV@2J>V?mKX8x8fCS|K zy0oO^wK#d>eeC&q@(b$)&t$vdAuN8^0SHVfY*z4la=Ez*zS6A=ULQpQMVI+*?xEm{ zlO$7vfo&&6`#}9Zzbay>G-tDQUbyq&ns4mKnOs51=w-6~XS%W0cD=4&b4Cy~__xM( zZHYmoTIP3cIHI7YmT;Q{w776fhV|MF#$M+wxYZyt* zBZQk_QhvyF^kDGnR#>ig5fd|8{rw;tf2GOCurMGl2Ap{AWlZ4Rn}shTOeTu**4DPa z+uyZAZeB|?H$9}tD$C=aX-yAc7+5pgW;x{rD1pBzW#4V-sXz6SVasOBA2tynjqu2k zLCm7{@h+^XGreadkpG2A7D#ms&_S%x5FY*)35ob zU0iL**~RWE<5?gwv~Nh_!*LxvhTERk1vDMsoU>K=P=`%KtnRHTyhA| z>*Gq(w|de6X|$!5%`>KjUAWaz665`$I6@5wKxowU!+C39TY^5my+^H%E!@^LqaCHXEu@7j^TF|`J0+kKbQSOev#+yC|7WD96G&my}(aG)odSMCwhHmzvZ1Sg(O7r81Uke6; z1Xh1 z)3-AZ$srK4P}DOz;PN(v?o>{AlWjiY;FVpw>wDy1b*J6WX=+=f>U|wi@igQ~XtOR_ zzdWC@T%RjbcvLn_-gmR+jLL&LnZGvjhhx3%r5^$yOD!g62e^tSx|+ljfHU5bE}!F; zgUa6?M8(u?c=>V0gpUh%3194Duj~?+;m|0p5cEu0z01kBscAT$oP;EH%TJan2B9{i zGOEo}S#eUxjp@|M*Rz?~rx>hAMjp+*Gv~~TKZ}braB-A%5$W_iwN@*i*C6TyGVeS5 za(AuijX?8HqN8Eb78P{|+a?1e50@7LwexqXjC(25EW@nVaSmcIeXr`+QEz{P5rXw# z&!R8-z$u&oo9k;+yfi~?*M&L7*bfO$*fSomB$Di^2!p3?-f}u2`E7SW^e^tZ(~|<} znF?6*>Xo6rPr1?)hc~SjMi2WS=+WFliR%$pEF&BBJo3{hP>S)iStH5x;~It_ev~fI zK{^yDBkc%pSD<~u|FC7}u+lE|w;p-_Z-*Hzo!SB(AL04OD!sF6wtGzpsp6qLG7Gyx zojjwID1~yXOpxA|t$91UB@i8AKWjP`W4l$V%n|MFIwVc9mE4}nTp>reex>|qv?)7%R-$p} zs;Nr5!8vNZzhjPy647M2H?u&YfKa~q#C=K@s(&>6afL)697Vynz-xIP;s*~AksJVJ z<$?NfJ77BT)%L^yl$91hN!@O~;F2*9=f>bkzB+)pAAN4kVbcS{= zigN$>o2+xmH~?5yscEc~tFwcs=cM1;n1eg=VFO{Z{b3p*cbI03o>r|a>|0d`=CUm_ z%_j7wTOIUf>mVv)(e>KZ_q!6We0`s5;98`&D%wNS%`&_X2V!DfRyX~}uR2S0zb=NX zTUMKIFPfO|7=>-@0Z$) zi)QB>-DYN%SfB}mA#{}se~wVg_pbfK`qkA=sz4j~K zodZ)Iqc`uTZ$=l4WV3zwc1!%jnhS@&#>`BRwY0nR_A1aZ>mti=h@)z!g2xi6TFK=& z1Z02r*i`yBk>o~}?|@YqwmCY(-ilwU-uFg90x5%#t(s$e>Amu)_-pUvWY#`CwkE|V zRJK=Vts{RgH)fmgJM2slY>_N!G)uFVA4AA#d3!3+Sb`B&{mLk_s#bW?Eo#;Dg@cCC zi;>RnBTce^&9oB{oggJD>K$y64d@`bW{KP(60heBTXm|zgp*RwF)@qkW^-m^2>6HC(K$FHNIP>(A4>qP2Ef_ z7qf9>K`VL1zh#g$V}AwYFgWJJzQYqx`9`pl(AMpJ9fO1w>90o}7bE<>?Vf#j62W*~s`&E^&O=jN# zU^d?QkgW&^gzX3&Q{ub5jK$Zy^&`~wS^>1x*OyCVc6@b@0C@Vw`VrzBpP2Z`Hyu(K zH>Z63lq`-VP%-S$cca|E>pSX+$nN5sL`>k$(m!B?c!Zc7(@!8usmUdeiCKGhqGaWu zc@0glb6o`oa&2h>AsJ^{MCW1`8+??q)K>2}{0vsbk3s_Xy?meKK1wkw7BP_{>!luR z>z0P3ZJq0-caW;w*NwKGjXT0Ap!o9AoO==5w=O4*QT8twq8|QZVeEgsPaB=R^YG0V z`iVQAtEc?bNNL$V)v&BY?<#j!kTA1h7~a^a;&$plT@YH^h-(DR2QRIkEOa;$9YK-e z?WC%D+`O?$@8`7T{dyc$T*Ef#SEk1&{EOo<(R|%ei3Pu-Z!+bkFcAgmvCUEp$ozrO z6AAjmT$v+OBBEDI(-7cSCZr>Z7jn)tdDFbP!dfxx3P-^-dGN&}jnT{%%3^NObv4QZ zqym}yN0C`&w)5wW$qdfZ`AR)u-)fih74|mhjhHlG;Ko1G;e0Y1sOqR~Rhx*i9bHQ_ zQfj{+L;8?$hkcdZMA%X)7JDab$3A55@J3Zrc>{vHx-%qSq$6e5zvr4VJ8FxHs}1Rc zgdB*Y<5PM)75~SNzW?9l2}16z6xl7AE#3hIp117fV-cmuq;+R1`VSk3+_|1XMAml( zcJS_5B%>BkEznXa;YuIFrr!;DR6&atr{;z0ZVi1eV@8Yhz4&cc>bs4*H11> zazl;?srW)PmLcyq2-HI#6KKHUrq~%qc5z_wa@hHwDoEpBV0hEuPTgPWA+c9BqB(t5 zJ&_w)Ft?qRJ#ISKgQavF_Uma+Te?X`?%mIJa5TC><$8=q^|E5W;=o_mC2hV^1VoW1 z`7A|BCW`Tgt16U`o=}!IrisibZ}UFG;d2Ehj&#^FGc~Xq<)#p=$y$3AW<}Q zXb1(J+OPTS-3a+R(H!1mRhE_*JW+EHg=3oD+d7?FKwV8&%PEGz%`;*+Ga4;Y?KRI( zoTMK=cxEW%AZjL#2H+f&QM!A>PH4pO^0sa@dd075AEg0^e!|HA4sLBrr&bS^S~uD0 zS~U~Vm{Z=VE7&>%mCVHh>|?m?-$M??NUcP0Bvysp~U(6KEA7DsggM z5P?zUV6*~0QM}qgPrXO_r@HoIw|Jv2>9|kD<>Aj76uq%z!fFd0q~2IVwRUsclX6?g zO(_UbVmu9>6^RRmGU9<05`s9rMjNUoSms9GE3o7W%EmTp5btl_)gP1EB*Hy=vjM!5 zI~_ZeslUTdc&|&EeXxJQCS6r$pAM%L3T-PZ9X4 zuiHyCnO%D>ac1P&Lp}>G_LH9k=PoZD_WYuUZVtUIIF*d5?Yf2i7vc1-;pSL?dfP7K zbI-K{8^XX$tc{U$NZ0FgI)%@&I-Z*ZmY64obkn_HhyDa?YFk=UdMY8Luh)_4zf_N( z^**~CraAyK-Z~$LrBhrQ?(f=Vl{mEiC>65FdzJs{1c&GaZsP&7^l7D)f8i`${_bLN zw)#;r7L2Ubd6lcqv(kt@gV-!6Ui0YmC}BWuWNdT;b;_Z+kZ4 zvxkA%wz0Q;yevn(x&I*3_&ogsxL| ztv5h#bre4{D=E`dhXDoEjNst68?=~*wMGN7bDHs%=g*wSzH56IBrMRVs+wo7hbzoc zJV6)WsOm4HS8WI{g;&Ea>17{uzJG$#%R&)qp`p)`MC`-A+2&22?-J5*YZ1~Jj9Ey` zM0u_rKifep5;l0IV_uI_=y|ocji5YevR2Atq5CZyxy5kRry`#5E_a#sGkshLYvIlW z+7(Wt;f?c8Nfm=nA_4=t$Pz^^UBx9a^9c$l$5&2=i>alP!#hYYY;f_*umZA1UMS*P zZDY7wR9Bw-e|YB1WIFAP911`Js5RFBZ5rtf@rqqDA^hLBb)M>Vx*}p4(Jzv@EosS- z-v1ryOUUInF>!=K{Q-iQ8Su+$^=83waO?LUyqxUlYQ^i7}!e$|rzVUImkj9|E z%fAyODJv5NBLEeN8`DZrkDjTCvSZ^Mwa5gZS3f8V#E8h(MDYN7+I04a*k#5@0xg4IJFYh2317bJK}wv3zbY;> zKk*saKz2&;0S{kTABnTc58qeHOrsIr=-e$exeO`tY~aI_+h6`|$$jm8ss`JMq_2F* zE`rn)yTwZ2*`(%bCw%}0be`!m10rI$j=&5;q%i9w0!=ZAL3(;!)pbegx!r8KXQFS> z%+xX;QTFRUD985a2=JU)O&-wCN7qf>%w2l zMbZB$68p!w>`^jRC2K5?kIw_g>%fE=G;OhGH~Qq;^p)A(m1?fVN>!@<;MG(AY;3S# z_4V7SlP|MVc=sGKQHzyfaL=So_Y%=G)#RG0hV6fo`){Mb+;B0$=v75=8i0ex)dHw+XXm*TubHVmSn{Z4@L?EylrED67FC zE-*2WNUPyl8&whJTAuBui&?l)K4*hI+q;t&*;I9K;|*4OPI#1eqoeU+nu>d<%jZyY zstF}^N1SIRjISTB5_bt&)xU$g$7^ph_V>Hn=gvpJ|8y>I?A(BP^3?o)L6Pj_s0=?B zfEXJp(u($_cmzS?;}9y_jz*_*p1qSKOL`^VDPmLlVWbcUN_tf7!d`8exYnrD^9}7V zkYlw$^`F{%QV;+$_*wp2dtLp0#o(r&QFzBO8DFU{HJN)SG9~$>Bs-g1<#V>&;EIR# z@&Gt%>gZtabh(m$b0W!JG41opSobiCFF?Lscui}%c;@(|`N)&Ll%lDXcaY~f8{fX$ zpssMsC_mlL&D)kU&GPNBK+vZ}26QYxPkJ1Tq_~yB)z4i-a2}$v&stpg+hdaNuM0eq zU$DE$4Tb5U>Eq?9{ja>V455nKL8{9m;f**>1YPJ^8FIF+D)rXo)a_3mQ)gPtv9Hd| zaYTRYuz*4x^=PM8#@irBuZXY&8aHR#v}k18fmI9^-oSO^gY!V?x@7e5h52NgWcG8u z0VhR=fucr?*sxBRd~or<>Y7IC<}Dpr2DU}-WK(@3qwjS!&-p2biom4-)Hg*ZD_w|+ kC+DSAc(JP3y`8m-#^#Hu<@LiBvHzdWw*QNV_RskL0@enh^8f$< diff --git a/drivers/windows/docs/RxBits_valid.png b/drivers/windows/docs/RxBits_valid.png deleted file mode 100644 index 6f7c4c326d9e0b962f1819925920faeeb8c5643e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114419 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 *5oTXlKRt&AISi^2cl;D{j4$feW9jj=l6aR;< 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

y5kgzeg!a(c!FpG@RzsK1I;D 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 diff --git a/drivers/windows/docs/reginfo.txt b/drivers/windows/docs/reginfo.txt deleted file mode 100644 index 03182832b..000000000 --- a/drivers/windows/docs/reginfo.txt +++ /dev/null @@ -1,2 +0,0 @@ -#32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\PassThruSupport -#64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PassThruSupport diff --git a/drivers/windows/docs/start_msg_filter.png b/drivers/windows/docs/start_msg_filter.png deleted file mode 100644 index 7cb1a7a4c8e742c7c310680b00a083effaa78295..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71232 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 pw`S{qPs diff --git a/drivers/windows/docs/start_msg_filter3.png b/drivers/windows/docs/start_msg_filter3.png deleted file mode 100644 index ffc8e34820eec5ce004913a37bc371aa092e4e53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46516 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 Nq{L)JD}?p@{};AauJHf> diff --git a/drivers/windows/docs/start_msg_filter4.png b/drivers/windows/docs/start_msg_filter4.png deleted file mode 100644 index 9c21fb014d2349b60dfd0969b6254bcc04af8495..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46333 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 r7lZ%SuR|0c|DPH*1^#WnJ-@*Kw~a14mZf)) diff --git a/drivers/windows/docs/timeout_info.txt b/drivers/windows/docs/timeout_info.txt deleted file mode 100644 index 22cfa2c5d..000000000 --- a/drivers/windows/docs/timeout_info.txt +++ /dev/null @@ -1,42 +0,0 @@ -From focum information on NI hardware: https://forums.ni.com/t5/Automotive-and-Embedded-Networks/15765-2-with-NI-products/td-p/1454256 - -///////////////////////////////////////////////////////////////////// -Timeout Diag Command is the timeout in milliseconds the master -waits for the response to a diagnostic request message. The default is -1000 ms. - -Timeout FC (Bs) is the timeout in milliseconds the master waits -for a Flow Control frame after sending a First Frame or the last -Consecutive Frame of a block. The default is 250 ms. - -Timeout CF (Cr) is the timeout in milliseconds the master waits -for a Consecutive Frame in a multiframe response. The default is -250 ms. - -Receive Block Size (BS) is the number of Consecutive Frames the -slave sends in one block before waiting for the next Flow Control -frame. A value of 0 (default) means all Consecutive Frames are sent -in one run without interruption. - -Wait Time CF (STmin) defines the minimum time for the slave to -wait between sending two Consecutive Frames of a block. Values -from 0 to 127 are wait times in milliseconds. Values 241 to 249 -(Hex F1 to F9) mean wait times of 100 μs to 900 μs, respectively. -All other values are reserved. The default is 5 ms. - -Max Wait Frames (N_WFTmax) is the maximum number of WAIT -frames the master accepts before terminating the connection. The -default is 10. - - -There are no defined lower limits for these values; you can specify any -value down to 0. However, as you correctly pointed out, the timing is -done by Windows, and will be subject to the jitter introduced by the OS -which can easily be in the order of 10s of milliseconds. It is however -hard to give more accurate numbers as the actual jitter is dependent on -the workload of the computer -///////////////////////////////////////////////////////////////////// - -J2534 04.04 does not appear to have default adjustable parameters for -the timeout related fields. For now, these default values shall be used -in the Panda J2534 implementation. diff --git a/drivers/windows/panda Driver Package/panda Driver Package.vcxproj b/drivers/windows/panda Driver Package/panda Driver Package.vcxproj deleted file mode 100644 index 5b448e96a..000000000 --- a/drivers/windows/panda Driver Package/panda Driver Package.vcxproj +++ /dev/null @@ -1,99 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {BD34DB24-F5DC-4992-A74F-05FAF731ABED} - {a1357fe7-03e0-4d61-85f4-09c7ed38c0c1} - v4.5 - 12.0 - $driverCurrentWindowsConfigurationName$ Debug - Win32 - panda_Driver_Package - $(LatestTargetPlatformVersion) - - - - Windows10 - true - WindowsKernelModeDriver10.0 - Utility - Package - true - - - Windows10 - false - WindowsKernelModeDriver10.0 - Utility - Package - true - - - - - - - - - - - - DbgengRemoteDebugger - - - - False - False - True - - 133563 - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - - DbgengRemoteDebugger - - - - False - False - True - - 133563 - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - - - - - - - - - - - - $(KMDF_VERSION_MAJOR).$(KMDF_VERSION_MINOR) - - - - - - - $(KMDF_VERSION_MAJOR).$(KMDF_VERSION_MINOR) - - - - - - \ No newline at end of file diff --git a/drivers/windows/panda Driver Package/panda Driver Package.vcxproj.filters b/drivers/windows/panda Driver Package/panda Driver Package.vcxproj.filters deleted file mode 100644 index b4cf07798..000000000 --- a/drivers/windows/panda Driver Package/panda Driver Package.vcxproj.filters +++ /dev/null @@ -1,14 +0,0 @@ - - - - - {8E41214B-6785-4CFE-B992-037D68949A14} - inf;inv;inx;mof;mc; - - - - - Driver Files - - - \ No newline at end of file diff --git a/drivers/windows/panda Driver Package/panda.inf b/drivers/windows/panda Driver Package/panda.inf deleted file mode 100644 index 69390dcbc0616f2c9466d1cfb57dd592395ab6eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4242 zcmchaTTdHD6vxkVrGAH11brfI%&k!52RlH55+K45q>>6bwxOs5BQK;uQNMcI-+#`I zXT5k6w^E~#y*qQxocnG6{%gy=x9@DrGP|{&-PnNthF$S?Q9vSmkF(tFfM2t6Zkz_Z z6W-sKaD{(nZ*6E}AXhfx-md}PWp~N02bFuELuj=4J+Xy?)&T530__7k=JZLp_Z)sb zPQ^1W-8-?ab!;0tAEDgmDc%YD1sHq4oy%w2V0El*JNC?0Y}uaL8oLc^^0sQ5X#9+~ z4ir|n^%U5u?XsHeH^6V&I_K;5XW;V&4Mu_UAn58`7HuC{Z_w|8XMdvU*bdl#0CTaB zQdW>HN7!T+`LBVsro7MxeiyK#4_aVUS60jMM<63SIxPH^^CpShC$eUhmhZ*Qy;!G< z`*RCj>M)YFZkKM**5hl8OiS299&Xza_I}Bm)105;zCBDLuo?$W{S#hWFF48e19qz= zd!7+L@c4#9BE+mL?JUj%-jIo)cS&zqb8gZ;F#`&Y!c&Hm}#q z<#WBFy=KeRDzf9-NtG=8EhSUsnjOW})2!kj<(6l{ycCj;W_#TARuuHfxciWKE$W%7 z={?o!{ZwT=ARC9^raLu4PEA)4c`8=7ax}MUaUVy$GW8bQ#W_ngS7)<0od?J?cFLUk zTV>fimy!qSZfOcF*V$>?pJKU-8aWq;kA1RX7x-c59$hL|+g`JFh@7|KzYFA$h*==k z6+PE*`x4c%hw5aWWgpk~OO*esyvg#4V)YhPgVej#DN=m=8<|_grq^llm~W2A=yxM> zejIW_^+z523V8%6PuKI#6q-_!j%DiJ1Aj;7nDH?SnsD>p5pg1hcRkV5Y?~yFczG!U z{y(3|vQek`>?$kBg6gI6?`5dB)d_C)K63JDKHYcyzV?06qAK;Vlq$cze0%V(esxCc z3Rj)tiZ0+)N#AeodGYmKC-j8rZjl!>x5(D`EnB8~NYB-Gs%l6t^heQmIil~%_{T+` zRQ>X5euG5nT6_F1kwCeUqmR?5&R^w8Nm`|E|JbQ~-cY}lX0C6PCw0NHOo@i$9Z`W^ b@XfQ2&0bTR_IU5wFUTifr`a;qJbCgThdPlt diff --git a/drivers/windows/panda.ico b/drivers/windows/panda.ico deleted file mode 100644 index 593a5cd33cb2202aa2f5a2a6feba94379f2767c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97642 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

kqf&<%6xfEC%bX@to2%VOZIz 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 diff --git a/drivers/windows/panda.sln b/drivers/windows/panda.sln deleted file mode 100644 index 39c8a63e2..000000000 --- a/drivers/windows/panda.sln +++ /dev/null @@ -1,92 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2027 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pandaJ2534DLL", "pandaJ2534DLL\pandaJ2534DLL.vcxproj", "{A2BB18A5-F26B-48D6-BBB5-B83D64473C77}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "panda", "panda\panda.vcxproj", "{5528AEFB-638D-49AF-B9D4-965154E7D531}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "panda_playground", "panda_playground\panda_playground.vcxproj", "{691DB635-C272-4B98-897E-0505B970DCA9}" - ProjectSection(ProjectDependencies) = postProject - {5528AEFB-638D-49AF-B9D4-965154E7D531} = {5528AEFB-638D-49AF-B9D4-965154E7D531} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "panda Driver Package", "panda Driver Package\panda Driver Package.vcxproj", "{BD34DB24-F5DC-4992-A74F-05FAF731ABED}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tests", "pandaJ2534DLL Test\pandaJ2534DLL Test.vcxproj", "{7912F978-B48C-4C5D-8BFD-5D1E22158E47}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ECUsim DLL", "ECUsim DLL\ECUsim DLL.vcxproj", "{96E0E646-EE76-444D-9A77-A0CD7F781DEB}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ECUsim CLI", "ECUsim CLI\ECUsim CLI.vcxproj", "{D99E2FCD-21A4-4065-949A-31E34E0E69D1}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "panda_shared", "panda_shared\panda_shared.vcxitems", "{0C843279-68C7-4679-AE51-9BC463D50D1C}" -EndProject -Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - panda_shared\panda_shared.vcxitems*{0c843279-68c7-4679-ae51-9bc463d50d1c}*SharedItemsImports = 9 - panda_shared\panda_shared.vcxitems*{5528aefb-638d-49af-b9d4-965154e7d531}*SharedItemsImports = 4 - panda_shared\panda_shared.vcxitems*{a2bb18a5-f26b-48d6-bbb5-b83d64473c77}*SharedItemsImports = 4 - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A2BB18A5-F26B-48D6-BBB5-B83D64473C77}.Debug|x64.ActiveCfg = Debug|Win32 - {A2BB18A5-F26B-48D6-BBB5-B83D64473C77}.Debug|x86.ActiveCfg = Debug|Win32 - {A2BB18A5-F26B-48D6-BBB5-B83D64473C77}.Debug|x86.Build.0 = Debug|Win32 - {A2BB18A5-F26B-48D6-BBB5-B83D64473C77}.Release|x64.ActiveCfg = Release|Win32 - {A2BB18A5-F26B-48D6-BBB5-B83D64473C77}.Release|x86.ActiveCfg = Release|Win32 - {A2BB18A5-F26B-48D6-BBB5-B83D64473C77}.Release|x86.Build.0 = Release|Win32 - {5528AEFB-638D-49AF-B9D4-965154E7D531}.Debug|x64.ActiveCfg = Debug|x64 - {5528AEFB-638D-49AF-B9D4-965154E7D531}.Debug|x64.Build.0 = Debug|x64 - {5528AEFB-638D-49AF-B9D4-965154E7D531}.Debug|x86.ActiveCfg = Debug|Win32 - {5528AEFB-638D-49AF-B9D4-965154E7D531}.Debug|x86.Build.0 = Debug|Win32 - {5528AEFB-638D-49AF-B9D4-965154E7D531}.Release|x64.ActiveCfg = Release|x64 - {5528AEFB-638D-49AF-B9D4-965154E7D531}.Release|x64.Build.0 = Release|x64 - {5528AEFB-638D-49AF-B9D4-965154E7D531}.Release|x86.ActiveCfg = Release|Win32 - {5528AEFB-638D-49AF-B9D4-965154E7D531}.Release|x86.Build.0 = Release|Win32 - {691DB635-C272-4B98-897E-0505B970DCA9}.Debug|x64.ActiveCfg = Debug|x64 - {691DB635-C272-4B98-897E-0505B970DCA9}.Debug|x64.Build.0 = Debug|x64 - {691DB635-C272-4B98-897E-0505B970DCA9}.Debug|x86.ActiveCfg = Debug|Win32 - {691DB635-C272-4B98-897E-0505B970DCA9}.Debug|x86.Build.0 = Debug|Win32 - {691DB635-C272-4B98-897E-0505B970DCA9}.Release|x64.ActiveCfg = Release|x64 - {691DB635-C272-4B98-897E-0505B970DCA9}.Release|x64.Build.0 = Release|x64 - {691DB635-C272-4B98-897E-0505B970DCA9}.Release|x86.ActiveCfg = Release|Win32 - {BD34DB24-F5DC-4992-A74F-05FAF731ABED}.Debug|x64.ActiveCfg = Debug|Win32 - {BD34DB24-F5DC-4992-A74F-05FAF731ABED}.Debug|x86.ActiveCfg = Debug|Win32 - {BD34DB24-F5DC-4992-A74F-05FAF731ABED}.Release|x64.ActiveCfg = Release|Win32 - {BD34DB24-F5DC-4992-A74F-05FAF731ABED}.Release|x86.ActiveCfg = Release|Win32 - {7912F978-B48C-4C5D-8BFD-5D1E22158E47}.Debug|x64.ActiveCfg = Debug|Win32 - {7912F978-B48C-4C5D-8BFD-5D1E22158E47}.Debug|x86.ActiveCfg = Debug|Win32 - {7912F978-B48C-4C5D-8BFD-5D1E22158E47}.Debug|x86.Build.0 = Debug|Win32 - {7912F978-B48C-4C5D-8BFD-5D1E22158E47}.Release|x64.ActiveCfg = Release|Win32 - {7912F978-B48C-4C5D-8BFD-5D1E22158E47}.Release|x86.ActiveCfg = Release|Win32 - {96E0E646-EE76-444D-9A77-A0CD7F781DEB}.Debug|x64.ActiveCfg = Debug|x64 - {96E0E646-EE76-444D-9A77-A0CD7F781DEB}.Debug|x64.Build.0 = Debug|x64 - {96E0E646-EE76-444D-9A77-A0CD7F781DEB}.Debug|x86.ActiveCfg = Debug|Win32 - {96E0E646-EE76-444D-9A77-A0CD7F781DEB}.Debug|x86.Build.0 = Debug|Win32 - {96E0E646-EE76-444D-9A77-A0CD7F781DEB}.Release|x64.ActiveCfg = Release|x64 - {96E0E646-EE76-444D-9A77-A0CD7F781DEB}.Release|x64.Build.0 = Release|x64 - {96E0E646-EE76-444D-9A77-A0CD7F781DEB}.Release|x86.ActiveCfg = Release|Win32 - {D99E2FCD-21A4-4065-949A-31E34E0E69D1}.Debug|x64.ActiveCfg = Debug|x64 - {D99E2FCD-21A4-4065-949A-31E34E0E69D1}.Debug|x64.Build.0 = Debug|x64 - {D99E2FCD-21A4-4065-949A-31E34E0E69D1}.Debug|x86.ActiveCfg = Debug|Win32 - {D99E2FCD-21A4-4065-949A-31E34E0E69D1}.Debug|x86.Build.0 = Debug|Win32 - {D99E2FCD-21A4-4065-949A-31E34E0E69D1}.Release|x64.ActiveCfg = Release|x64 - {D99E2FCD-21A4-4065-949A-31E34E0E69D1}.Release|x64.Build.0 = Release|x64 - {D99E2FCD-21A4-4065-949A-31E34E0E69D1}.Release|x86.ActiveCfg = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {8AF3826E-406A-4F1C-BA80-B4D7FD4B52E1} - EndGlobalSection - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection -EndGlobal diff --git a/drivers/windows/panda/dllmain.cpp b/drivers/windows/panda/dllmain.cpp deleted file mode 100644 index 69b58914b..000000000 --- a/drivers/windows/panda/dllmain.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// dllmain.cpp : Defines the entry point for the DLL application. -#include "stdafx.h" - -BOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved - ) -{ - switch (ul_reason_for_call) - { - case DLL_PROCESS_ATTACH: - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - case DLL_PROCESS_DETACH: - break; - } - return TRUE; -} - diff --git a/drivers/windows/panda/main.cpp b/drivers/windows/panda/main.cpp deleted file mode 100644 index 621c600b8..000000000 --- a/drivers/windows/panda/main.cpp +++ /dev/null @@ -1,79 +0,0 @@ -#include "stdafx.h" - -#include - -LONG __cdecl -_tmain( - LONG Argc, - LPTSTR * Argv - ) -/*++ - -Routine description: - - Sample program that communicates with a USB device using WinUSB - ---*/ -{ - DEVICE_DATA deviceData; - HRESULT hr; - USB_DEVICE_DESCRIPTOR deviceDesc; - BOOL bResult; - BOOL noDevice; - ULONG lengthReceived; - - UNREFERENCED_PARAMETER(Argc); - UNREFERENCED_PARAMETER(Argv); - - // - // Find a device connected to the system that has WinUSB installed using our - // INF - // - hr = OpenDevice(&deviceData, &noDevice); - - if (FAILED(hr)) { - - if (noDevice) { - - printf(_T("Device not connected or driver not installed\n")); - - } else { - - printf(_T("Failed looking for device, HRESULT 0x%x\n"), hr); - } - - return 0; - } - - // - // Get device descriptor - // - bResult = WinUsb_GetDescriptor(deviceData.WinusbHandle, - USB_DEVICE_DESCRIPTOR_TYPE, - 0, - 0, - (PBYTE) &deviceDesc, - sizeof(deviceDesc), - &lengthReceived); - - if (FALSE == bResult || lengthReceived != sizeof(deviceDesc)) { - - printf(_T("Error among LastError %d or lengthReceived %d\n"), - FALSE == bResult ? GetLastError() : 0, - lengthReceived); - CloseDevice(&deviceData); - return 0; - } - - // - // Print a few parts of the device descriptor - // - printf(_T("Device found: VID_%04X&PID_%04X; bcdUsb %04X; path: %s\n"), - deviceDesc.idVendor, - deviceDesc.idProduct, - deviceDesc.bcdUSB, - deviceData.DevicePath); - - CloseDevice(&deviceData); - return 0; -} diff --git a/drivers/windows/panda/panda.ico b/drivers/windows/panda/panda.ico deleted file mode 100644 index ff0e071f54f12f1eefa86fa744c9cbdea5af0e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97642 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

xcZ%~e%r)s~h1IC;B{x$XEz)-RwJ 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 JBze1w(toE=W&QvF diff --git a/drivers/windows/panda/panda.vcxproj b/drivers/windows/panda/panda.vcxproj deleted file mode 100644 index ccda7a6b2..000000000 --- a/drivers/windows/panda/panda.vcxproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {5528AEFB-638D-49AF-B9D4-965154E7D531} - Win32Proj - panda - 10.0 - - - - DynamicLibrary - true - v142 - Unicode - - - DynamicLibrary - false - v142 - true - Unicode - - - DynamicLibrary - true - v142 - Unicode - - - DynamicLibrary - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - true - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - true - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - false - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - false - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - - Use - Level3 - Disabled - WIN32;_DEBUG;_WINDOWS;_USRDLL;PANDA_EXPORTS;%(PreprocessorDefinitions) - true - false - - - Windows - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);winusb.lib;setupapi.lib - - - - - Use - Level3 - Disabled - _DEBUG;_WINDOWS;_USRDLL;PANDA_EXPORTS;%(PreprocessorDefinitions) - true - - - Windows - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);winusb.lib;setupapi.lib - - - - - Level3 - Use - MaxSpeed - true - true - WIN32;NDEBUG;_WINDOWS;_USRDLL;PANDA_EXPORTS;%(PreprocessorDefinitions) - true - - - Windows - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);winusb.lib;setupapi.lib - - - - - Level3 - Use - MaxSpeed - true - true - NDEBUG;_WINDOWS;_USRDLL;PANDA_EXPORTS;%(PreprocessorDefinitions) - true - - - Windows - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);winusb.lib;setupapi.lib - - - - - - - - - false - - - false - - - false - - - false - - - - - Create - Create - Create - Create - - - - - - - - - - - - \ No newline at end of file diff --git a/drivers/windows/panda/panda.vcxproj.filters b/drivers/windows/panda/panda.vcxproj.filters deleted file mode 100644 index afddad6e8..000000000 --- a/drivers/windows/panda/panda.vcxproj.filters +++ /dev/null @@ -1,43 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - - - Resource Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/drivers/windows/panda/resource.h b/drivers/windows/panda/resource.h deleted file mode 100644 index bf006ff4b39308a5e03a0ec6a72052338fd83d16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 898 zcmb7@TTjAZ42Iup6aT}PaA_h={R4C3f(X+vN91bZuo(;i!@)z0e_eh00R|0OBu)9+ z(!PD$W?!Fm)%A`fx>2rJ4c(%Nw-QBa;-&gPj&($CT~2L{HPl=)EznX+VqIbjt<={9 zFVYF(^q@jhbWVK9J0dnFG9+t-SKyaKCRnFC9Wt=i*#o_i^F;lW{61N8s<&M1t$7?n zu}%)gF`A^;?;GSA*_(WGma39h+7yi;L&Fb?}_I^>3A+uSYnKuP&+ z>xxJVd*8nDP4AqVhVJ2z%WzU^GOP$Yhe-%RhW&S!wy%qSBil{dNJzK164&VxWRu_^ l^n?jIe%>n94%EZ2*PFCkRO8xy413GkzJQUx^?Lii{cjM-d_n*K diff --git a/drivers/windows/panda/stdafx.cpp b/drivers/windows/panda/stdafx.cpp deleted file mode 100644 index 8793e09b4..000000000 --- a/drivers/windows/panda/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// panda.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/drivers/windows/panda/stdafx.h b/drivers/windows/panda/stdafx.h deleted file mode 100644 index cc3d3b966..000000000 --- a/drivers/windows/panda/stdafx.h +++ /dev/null @@ -1,19 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -#endif -// Windows Header Files: -#include - -#include -#include -#include -#include diff --git a/drivers/windows/pandaJ2534DLL Test/ECUsim_tests.cpp b/drivers/windows/pandaJ2534DLL Test/ECUsim_tests.cpp deleted file mode 100644 index 8a9161475..000000000 --- a/drivers/windows/pandaJ2534DLL Test/ECUsim_tests.cpp +++ /dev/null @@ -1,87 +0,0 @@ -#include "stdafx.h" -#include "Loader4.h" -#include "pandaJ2534DLL/J2534_v0404.h" -#include "panda_shared/panda.h" -#include "Timer.h" -#include "ECUsim DLL\ECUsim.h" -#include "TestHelpers.h" - -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace pandaWCUsimTest -{ - - TEST_CLASS(ECUsimTests) - { - public: - - TEST_METHOD(ECUsim_ISO15765_SingleFrameTx_29bStandardAddrPad500k) - { - ECUsim sim("", 500000); - auto p = getPanda(500); - - p->can_send(0x18daeff1, TRUE, (const uint8_t*)"\x02\x01\x00", 3, panda::PANDA_CAN1); - auto msg_recv = panda_recv_loop(p, 2); - check_panda_can_msg(msg_recv[0], 0, 0x18daeff1, TRUE, TRUE, std::string("\x02\x01\x00", 3), LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x06\x41\x00\xff\xff\xff\xfe\x00", 8), LINE_INFO()); - } - - TEST_METHOD(ECUsim_ISO15765_SingleFrameTx_29bStandardAddrPad250k) - { - ECUsim sim("", 250000); - auto p = getPanda(250); - - p->can_send(0x18daeff1, TRUE, (const uint8_t*)"\x02\x01\x00", 3, panda::PANDA_CAN1); - auto msg_recv = panda_recv_loop(p, 2); - check_panda_can_msg(msg_recv[0], 0, 0x18daeff1, TRUE, TRUE, std::string("\x02\x01\x00", 3), LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x06""\x41\x00""\xff\xff\xff\xfe""\x00", 8), LINE_INFO()); - } - - TEST_METHOD(ECUsim_ISO15765_SingleFrameTx_29bExtAddrPad500k) - { - ECUsim sim("", 500000, TRUE); - auto p = getPanda(500); - - p->can_send(0x18daeff1, TRUE, (const uint8_t*)"\x13""\x02\x01\x00", 4, panda::PANDA_CAN1); - auto msg_recv = panda_recv_loop(p, 2); - check_panda_can_msg(msg_recv[0], 0, 0x18daeff1, TRUE, TRUE, std::string("\x13""\x02\x01\x00", 4), LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x13""\x06""\x41\x00""\xff\xff\xff\xfe", 8), LINE_INFO()); - } - - TEST_METHOD(ECUsim_ISO15765_MultiFrameTx_29bStandardAddrPad500k) - { - ECUsim sim("", 500000); - auto p = getPanda(500); - - p->can_send(0x18daeff1, TRUE, (const uint8_t*)"\x02\x09\x02", 3, panda::PANDA_CAN1); - auto msg_recv = panda_recv_loop(p, 2); - check_panda_can_msg(msg_recv[0], 0, 0x18daeff1, TRUE, TRUE, std::string("\x02\x09\x02", 3), LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x10\x14""\x49\x02\x01""1D4", 8), LINE_INFO()); - - p->can_send(0x18daeff1, TRUE, (const uint8_t*)"\x30\x00\x00", 3, panda::PANDA_CAN1); - msg_recv = panda_recv_loop(p, 3); - check_panda_can_msg(msg_recv[0], 0, 0x18daeff1, TRUE, TRUE, std::string("\x30\x0\x0", 3), LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x21""GP00R55", 8), LINE_INFO()); - check_panda_can_msg(msg_recv[2], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x22""B123456", 8), LINE_INFO()); - } - - TEST_METHOD(ECUsim_ISO15765_MultiFrameTx_29bExtAddrPad500k) - { - ECUsim sim("", 500000, TRUE); - auto p = getPanda(500); - - p->can_send(0x18daeff1, TRUE, (const uint8_t*)"\x13""\x02\x09\x02", 4, panda::PANDA_CAN1); - auto msg_recv = panda_recv_loop(p, 2); - check_panda_can_msg(msg_recv[0], 0, 0x18daeff1, TRUE, TRUE, std::string("\x13""\x02\x09\x02", 4), LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x13""\x10\x14""\x49\x02\x01""1D", 8), LINE_INFO()); - - p->can_send(0x18daeff1, TRUE, (const uint8_t*)"\x13""\x30\x00\x00", 4, panda::PANDA_CAN1); - msg_recv = panda_recv_loop(p, 4); - check_panda_can_msg(msg_recv[0], 0, 0x18daeff1, TRUE, TRUE, std::string("\x13""\x30\x0\x0", 4), LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x13""\x21""4GP00R", 8), LINE_INFO()); - check_panda_can_msg(msg_recv[2], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x13""\x22""55B123", 8), LINE_INFO()); - check_panda_can_msg(msg_recv[3], 0, 0x18daf1ef, TRUE, FALSE, std::string("\x13""\x23""456", 5), LINE_INFO()); - } - }; - -} \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL Test/Loader4.cpp b/drivers/windows/pandaJ2534DLL Test/Loader4.cpp deleted file mode 100644 index f4a0b70fa..000000000 --- a/drivers/windows/pandaJ2534DLL Test/Loader4.cpp +++ /dev/null @@ -1,240 +0,0 @@ -// Loader4.cpp -// (c) 2005 National Control Systems, Inc. -// Portions (c) 2004 Drew Technologies, Inc. -// Dynamic J2534 v04.04 dll loader for VB - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to: -// the Free Software Foundation, Inc. -// 51 Franklin Street, Fifth Floor -// Boston, MA 02110-1301, USA - -// National Control Systems, Inc. -// 10737 Hamburg Rd -// Hamburg, MI 48139 -// 810-231-2901 - -// Drew Technologies, Inc. -// 7012 E.M -36, Suite 3B -// Whitmore Lake, MI 48189 -// 810-231-3171 - -#define STRICT -#include "stdafx.h" -#include -#include "Loader4.h" - -PTOPEN LocalOpen; -PTCLOSE LocalClose; -PTCONNECT LocalConnect; -PTDISCONNECT LocalDisconnect; -PTREADMSGS LocalReadMsgs; -PTWRITEMSGS LocalWriteMsgs; -PTSTARTPERIODICMSG LocalStartPeriodicMsg; -PTSTOPPERIODICMSG LocalStopPeriodicMsg; -PTSTARTMSGFILTER LocalStartMsgFilter; -PTSTOPMSGFILTER LocalStopMsgFilter; -PTSETPROGRAMMINGVOLTAGE LocalSetProgrammingVoltage; -PTREADVERSION LocalReadVersion; -PTGETLASTERROR LocalGetLastError; -PTIOCTL LocalIoctl; - -HINSTANCE hDLL = NULL; -//BOOL bIsCorrectVersion = FALSE; - -BOOL WINAPI DllMain(HINSTANCE hInstA, DWORD dwReason, LPVOID lpvReserved) -{ - switch (dwReason) { - case DLL_PROCESS_ATTACH: - // The DLL is being mapped into the process's address space - - case DLL_THREAD_ATTACH: - // A thread is being created - break; - - case DLL_THREAD_DETACH: - // A thread is exiting cleanly - break; - - case DLL_PROCESS_DETACH: - // The DLL is being unmapped from the process's address space - break; - } - - return TRUE; -} - - -long WINAPI LoadJ2534Dll(char *sLib) -{ - long lFuncList = 0; - - if (hDLL != NULL) UnloadJ2534Dll(); - hDLL = LoadLibraryA (sLib); - if (hDLL == NULL) return ERR_NO_DLL; - - LocalOpen = (PTOPEN)(GetProcAddress(hDLL, "PassThruOpen")); - if (LocalOpen == NULL) lFuncList = lFuncList | ERR_NO_PTOPEN; - - LocalClose = (PTCLOSE)(GetProcAddress(hDLL, "PassThruClose")); - if (LocalClose == NULL) lFuncList = lFuncList | ERR_NO_PTCLOSE; - - LocalConnect = (PTCONNECT)(GetProcAddress(hDLL,"PassThruConnect")); - if (LocalConnect == NULL) lFuncList = lFuncList | ERR_NO_PTCONNECT; - - LocalDisconnect = (PTDISCONNECT)(GetProcAddress(hDLL,"PassThruDisconnect")); - if (LocalDisconnect == NULL) lFuncList = lFuncList | ERR_NO_PTDISCONNECT; - - LocalReadMsgs = (PTREADMSGS)(GetProcAddress(hDLL,"PassThruReadMsgs")); - if (LocalReadMsgs == NULL) lFuncList = lFuncList | ERR_NO_PTREADMSGS; - - LocalWriteMsgs = (PTWRITEMSGS)(GetProcAddress(hDLL,"PassThruWriteMsgs")); - if (LocalWriteMsgs == NULL) lFuncList = lFuncList | ERR_NO_PTWRITEMSGS; - - LocalStartPeriodicMsg = (PTSTARTPERIODICMSG)(GetProcAddress(hDLL,"PassThruStartPeriodicMsg")); - if (LocalStartPeriodicMsg == NULL) lFuncList = lFuncList | ERR_NO_PTSTARTPERIODICMSG; - - LocalStopPeriodicMsg = (PTSTOPPERIODICMSG)(GetProcAddress(hDLL,"PassThruStopPeriodicMsg")); - if (LocalStopPeriodicMsg == NULL) lFuncList = lFuncList | ERR_NO_PTSTOPPERIODICMSG; - - LocalStartMsgFilter = (PTSTARTMSGFILTER)(GetProcAddress(hDLL,"PassThruStartMsgFilter")); - if (LocalStartPeriodicMsg == NULL) lFuncList = lFuncList | ERR_NO_PTSTARTMSGFILTER; - - LocalStopMsgFilter = (PTSTOPMSGFILTER)(GetProcAddress(hDLL,"PassThruStopMsgFilter")); - if (LocalStopMsgFilter == NULL) lFuncList = lFuncList | ERR_NO_PTSTOPMSGFILTER; - - LocalSetProgrammingVoltage = (PTSETPROGRAMMINGVOLTAGE)(GetProcAddress(hDLL,"PassThruSetProgrammingVoltage")); - if (LocalSetProgrammingVoltage == NULL) lFuncList = lFuncList | ERR_NO_PTSETPROGRAMMINGVOLTAGE; - - LocalReadVersion = (PTREADVERSION)(GetProcAddress(hDLL,"PassThruReadVersion")); - if (LocalReadVersion == NULL) lFuncList = lFuncList | ERR_NO_PTREADVERSION; - - LocalGetLastError = (PTGETLASTERROR)(GetProcAddress(hDLL,"PassThruGetLastError")); - if (LocalGetLastError == NULL) lFuncList = lFuncList | ERR_NO_PTGETLASTERROR; - - LocalIoctl = (PTIOCTL)(GetProcAddress(hDLL,"PassThruIoctl")); - if (LocalIoctl == NULL) lFuncList = lFuncList | ERR_NO_PTIOCTL; - - if (lFuncList == ERR_NO_FUNCTIONS) return ERR_WRONG_DLL_VER; - - return lFuncList; -} - -long WINAPI UnloadJ2534Dll() -{ - if (FreeLibrary(hDLL)) - { - hDLL = NULL; - LocalOpen = NULL; - LocalClose = NULL; - LocalConnect = NULL; - LocalDisconnect = NULL; - LocalReadMsgs = NULL; - LocalWriteMsgs = NULL; - LocalStartPeriodicMsg = NULL; - LocalStopPeriodicMsg = NULL; - LocalStartMsgFilter = NULL; - LocalStopMsgFilter = NULL; - LocalSetProgrammingVoltage = NULL; - LocalReadVersion = NULL; - LocalGetLastError = NULL; - LocalIoctl = NULL; - return 0; - } - return ERR_NO_DLL; -} - -long WINAPI PassThruOpen(void *pName, unsigned long *pDeviceID) -{ - if (LocalOpen == NULL) return ERR_FUNC_MISSING; - return LocalOpen(pName, pDeviceID); -} - -long WINAPI PassThruClose(unsigned long DeviceID) -{ - if (LocalOpen == NULL) return ERR_FUNC_MISSING; - return LocalClose(DeviceID); -} - -long WINAPI PassThruConnect(unsigned long DeviceID, unsigned long ProtocolID, unsigned long Flags, unsigned long Baudrate, unsigned long *pChannelID) -{ - if (LocalConnect == NULL) return ERR_FUNC_MISSING; - return LocalConnect(DeviceID, ProtocolID, Flags, Baudrate, pChannelID); -} - -long WINAPI PassThruDisconnect(unsigned long ChannelID) -{ - if (LocalDisconnect == NULL) return ERR_FUNC_MISSING; - return LocalDisconnect(ChannelID); -} - -long WINAPI PassThruReadMsgs(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout) -{ - if (LocalReadMsgs == NULL) return ERR_FUNC_MISSING; - return LocalReadMsgs(ChannelID, pMsg, pNumMsgs, Timeout); -} - -long WINAPI PassThruWriteMsgs(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout) -{ - if (LocalWriteMsgs == NULL) return ERR_FUNC_MISSING; - return LocalWriteMsgs(ChannelID, pMsg, pNumMsgs, Timeout); -} - -long WINAPI PassThruStartPeriodicMsg(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pMsgID, unsigned long TimeInterval) -{ - if (LocalStartPeriodicMsg == NULL) return ERR_FUNC_MISSING; - return LocalStartPeriodicMsg(ChannelID, pMsg, pMsgID, TimeInterval); -} - -long WINAPI PassThruStopPeriodicMsg(unsigned long ChannelID, unsigned long MsgID) -{ - if (LocalStopPeriodicMsg == NULL) return ERR_FUNC_MISSING; - return LocalStopPeriodicMsg(ChannelID, MsgID); -} - -long WINAPI PassThruStartMsgFilter(unsigned long ChannelID, unsigned long FilterType, - PASSTHRU_MSG *pMaskMsg, PASSTHRU_MSG *pPatternMsg, PASSTHRU_MSG *pFlowControlMsg, unsigned long *pFilterID) -{ - if (LocalStartMsgFilter == NULL) return ERR_FUNC_MISSING; - return LocalStartMsgFilter(ChannelID, FilterType, pMaskMsg, pPatternMsg, pFlowControlMsg, pFilterID); -} - -long WINAPI PassThruStopMsgFilter(unsigned long ChannelID, unsigned long FilterID) -{ - if (LocalStopMsgFilter == NULL) return ERR_FUNC_MISSING; - return LocalStopMsgFilter(ChannelID, FilterID); -} - -long WINAPI PassThruSetProgrammingVoltage(unsigned long DeviceID, unsigned long PinNumber, unsigned long Voltage) -{ - if (LocalSetProgrammingVoltage == NULL) return ERR_FUNC_MISSING; - return LocalSetProgrammingVoltage(DeviceID, PinNumber, Voltage); -} - -long WINAPI PassThruReadVersion(unsigned long DeviceID, char *pFirmwareVersion, char *pDllVersion, char *pApiVersion) -{ - if (LocalReadVersion == NULL) return ERR_FUNC_MISSING; - return LocalReadVersion(DeviceID, pFirmwareVersion, pDllVersion, pApiVersion); -} - -long WINAPI PassThruGetLastError(char *pErrorDescription) -{ - if (LocalGetLastError == NULL) return ERR_FUNC_MISSING; - return LocalGetLastError(pErrorDescription); -} - -long WINAPI PassThruIoctl(unsigned long ChannelID, unsigned long IoctlID, void *pInput, void *pOutput) -{ - if (LocalIoctl == NULL) return ERR_FUNC_MISSING; - return LocalIoctl(ChannelID, IoctlID, pInput, pOutput); -} \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL Test/Loader4.h b/drivers/windows/pandaJ2534DLL Test/Loader4.h deleted file mode 100644 index 971014414..000000000 --- a/drivers/windows/pandaJ2534DLL Test/Loader4.h +++ /dev/null @@ -1,55 +0,0 @@ -// Loader4.h -// (c) 2005 National Control Systems, Inc. -// Portions (c) 2004 Drew Technologies, Inc. - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to: -// the Free Software Foundation, Inc. -// 51 Franklin Street, Fifth Floor -// Boston, MA 02110-1301, USA - -// National Control Systems, Inc. -// 10737 Hamburg Rd -// Hamburg, MI 48139 -// 810-231-2901 - -// Drew Technologies, Inc. -// 7012 E.M -36, Suite 3B -// Whitmore Lake, MI 48189 -// 810-231-3171 - -#include "pandaJ2534DLL/J2534_v0404.h" - -//Other Functions -long WINAPI LoadJ2534Dll(char *); -long WINAPI UnloadJ2534Dll(); - -// NCS Returns of any functions not found -#define ERR_NO_PTOPEN 0x0001 -#define ERR_NO_PTCLOSE 0x0002 -#define ERR_NO_PTCONNECT 0x0004 -#define ERR_NO_PTDISCONNECT 0x0008 -#define ERR_NO_PTREADMSGS 0x0010 -#define ERR_NO_PTWRITEMSGS 0x0020 -#define ERR_NO_PTSTARTPERIODICMSG 0x0040 -#define ERR_NO_PTSTOPPERIODICMSG 0x0080 -#define ERR_NO_PTSTARTMSGFILTER 0x0100 -#define ERR_NO_PTSTOPMSGFILTER 0x0200 -#define ERR_NO_PTSETPROGRAMMINGVOLTAGE 0x0400 -#define ERR_NO_PTREADVERSION 0x0800 -#define ERR_NO_PTGETLASTERROR 0x1000 -#define ERR_NO_PTIOCTL 0x2000 -#define ERR_NO_FUNCTIONS 0x3fff -#define ERR_NO_DLL -1 -#define ERR_WRONG_DLL_VER -2 -#define ERR_FUNC_MISSING -3 diff --git a/drivers/windows/pandaJ2534DLL Test/TestHelpers.cpp b/drivers/windows/pandaJ2534DLL Test/TestHelpers.cpp deleted file mode 100644 index 1281eb9d6..000000000 --- a/drivers/windows/pandaJ2534DLL Test/TestHelpers.cpp +++ /dev/null @@ -1,254 +0,0 @@ -#include "stdafx.h" -#include "TestHelpers.h" -#include "Loader4.h" -#include "pandaJ2534DLL/J2534_v0404.h" -#include "panda_shared/panda.h" -#include "Timer.h" - -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -void write_ioctl(unsigned int chanid, unsigned int param, unsigned int val, const __LineInfo* pLineInfo) { - SCONFIG config = { param, val }; - SCONFIG_LIST inconfig = { 1, &config }; - - Assert::AreEqual(STATUS_NOERROR, PassThruIoctl(chanid, SET_CONFIG, &inconfig, NULL), _T("Failed to set IOCTL."), pLineInfo); -} - -std::vector panda_recv_loop_loose(std::unique_ptr& p, unsigned int min_num, unsigned long timeout_ms) { - std::vector ret_messages; - Timer t = Timer(); - - while (t.getTimePassed() < timeout_ms) { - Sleep(10); - std::vectormsg_recv = p->can_recv(); - if (msg_recv.size() > 0) { - ret_messages.insert(std::end(ret_messages), std::begin(msg_recv), std::end(msg_recv)); - } - } - - Assert::IsTrue(min_num <= ret_messages.size(), _T("Received too few messages.")); - return ret_messages; -} - -std::vector panda_recv_loop(std::unique_ptr& p, unsigned int num_expected, unsigned long timeout_ms) { - std::vector ret_messages; - Timer t = Timer(); - - while (t.getTimePassed() < timeout_ms) { - Sleep(10); - std::vectormsg_recv = p->can_recv(); - if (msg_recv.size() > 0) { - ret_messages.insert(std::end(ret_messages), std::begin(msg_recv), std::end(msg_recv)); - } - if (ret_messages.size() >= num_expected) break; - } - - std::ostringstream stringStream; - - stringStream << "j2534_recv_loop Broke at " << t.getTimePassed() << " ms size is " << ret_messages.size() << std::endl; - - if (num_expected != ret_messages.size()) { - stringStream << "Incorrect number of messages received. Displaying the messages:" << std::endl; - for (auto msg : ret_messages) { - stringStream << " TS: " << msg.recv_time << "; Dat: "; - for (int i = 0; i < msg.len; i++) stringStream << std::hex << std::setw(2) << std::setfill('0') << int(msg.dat[i] & 0xFF) << " "; - stringStream << std::endl; - } - } - - Logger::WriteMessage(stringStream.str().c_str()); - - Assert::AreEqual(num_expected, ret_messages.size(), _T("Received wrong number of messages.")); - return ret_messages; -} - -void check_panda_can_msg(panda::PANDA_CAN_MSG& msgin, uint8_t bus, unsigned long addr, bool addr_29b, - bool is_receipt, std::string dat, const __LineInfo* pLineInfo) { - Assert::AreEqual(bus, msgin.bus, _T("Wrong msg bus"), pLineInfo); - Assert::AreEqual(addr, msgin.addr, _T("Wrong msg addr"), pLineInfo); - Assert::AreEqual(addr_29b, msgin.addr_29b, _T("Wrong msg 29b flag"), pLineInfo); - Assert::AreEqual(is_receipt, msgin.is_receipt, _T("Wrong msg receipt flag"), pLineInfo); - - std::ostringstream logmsg; - logmsg << "Expected Hex ("; - for (int i = 0; i < dat.size(); i++) logmsg << std::hex << std::setw(2) << std::setfill('0') << int(dat[i] & 0xFF) << " "; - logmsg << "); Actual Hex ("; - for (int i = 0; i < msgin.len; i++) logmsg << std::hex << std::setw(2) << std::setfill('0') << int(((char*)msgin.dat)[i] & 0xFF) << " "; - logmsg << ")"; - Logger::WriteMessage(logmsg.str().c_str()); - - Assert::AreEqual(dat.size(), msgin.len, _T("Wrong msg len"), pLineInfo); - Assert::AreEqual(dat, std::string((char*)msgin.dat, msgin.len), _T("Wrong msg payload"), pLineInfo); -} - -unsigned long J2534_start_periodic_msg_checked(unsigned long chanid, unsigned long ProtocolID, unsigned long TxFlags, unsigned long DataSize, - unsigned long ExtraDataIndex, const char * Data, unsigned long TimeInterval, const __LineInfo * pLineInfo) { - PASSTHRU_MSG msg = { ProtocolID, 0, TxFlags, 0, DataSize, ExtraDataIndex }; - memcpy_s(msg.Data, 4128, Data, DataSize); - unsigned long msgID; - Assert::AreEqual(STATUS_NOERROR, J2534_start_periodic_msg(chanid, ProtocolID, TxFlags, DataSize, - ExtraDataIndex, Data, TimeInterval, &msgID, pLineInfo), _T("Failed to start Periodic Message."), pLineInfo); - return msgID; -} - -unsigned long J2534_start_periodic_msg(unsigned long chanid, unsigned long ProtocolID, unsigned long TxFlags, unsigned long DataSize, - unsigned long ExtraDataIndex, const char * Data, unsigned long TimeInterval, unsigned long* msgID, const __LineInfo * pLineInfo) { - PASSTHRU_MSG msg = { ProtocolID, 0, TxFlags, 0, DataSize, ExtraDataIndex }; - memcpy_s(msg.Data, 4128, Data, DataSize); - return PassThruStartPeriodicMsg(chanid, &msg, msgID, TimeInterval); -} - -void J2534_send_msg_checked(unsigned long chanid, unsigned long ProtocolID, unsigned long RxStatus, unsigned long TxFlags, - unsigned long Timestamp, unsigned long DataSize, unsigned long ExtraDataIndex, const char* Data, const __LineInfo* pLineInfo) { - - PASSTHRU_MSG msg = { ProtocolID, RxStatus, TxFlags, Timestamp, DataSize, ExtraDataIndex }; - memcpy_s(msg.Data, 4128, Data, DataSize); - unsigned long msgcount = 1; - Assert::AreEqual(STATUS_NOERROR, PassThruWriteMsgs(chanid, &msg, &msgcount, 0), _T("Failed to write message."), pLineInfo); - Assert::AreEqual(1, msgcount, _T("Wrong message count after tx."), pLineInfo); -} - -long J2534_send_msg(unsigned long chanid, unsigned long ProtocolID, unsigned long RxStatus, unsigned long TxFlags, - unsigned long Timestamp, unsigned long DataSize, unsigned long ExtraDataIndex, const char* Data) { - - PASSTHRU_MSG msg = { ProtocolID, RxStatus, TxFlags, Timestamp, DataSize, ExtraDataIndex }; - memcpy_s(msg.Data, 4128, Data, DataSize); - unsigned long msgcount = 1; - return PassThruWriteMsgs(chanid, &msg, &msgcount, 0); -} - -//Allow more messages to come in than the min. -std::vector j2534_recv_loop_loose(unsigned int chanid, unsigned int min_num, unsigned long timeout_ms) { - std::vector ret_messages; - PASSTHRU_MSG recvbuff[4] = {}; - Timer t = Timer(); - - while (t.getTimePassed() < timeout_ms) { - unsigned long msgcount = 4; - unsigned int res = PassThruReadMsgs(chanid, recvbuff, &msgcount, 0); - if (res == ERR_BUFFER_EMPTY) continue; - Assert::IsFalse(msgcount > 4, _T("PassThruReadMsgs returned more data than the buffer could hold.")); - Assert::AreEqual(STATUS_NOERROR, res, _T("Failed to read message.")); - if (msgcount > 0) { - for (unsigned int i = 0; i < msgcount; i++) { - ret_messages.push_back(recvbuff[i]); - } - } - } - - Assert::IsTrue(min_num <= ret_messages.size(), _T("Received too few messages.")); - return ret_messages; -} - -std::vector j2534_recv_loop(unsigned int chanid, unsigned int num_expected, unsigned long timeout_ms) { - std::vector ret_messages; - PASSTHRU_MSG recvbuff[4] = {}; - Timer t = Timer(); - - while (t.getTimePassed() < timeout_ms) { - unsigned long msgcount = 4; - unsigned int res = PassThruReadMsgs(chanid, recvbuff, &msgcount, 0); - if (res == ERR_BUFFER_EMPTY) continue; - Assert::IsFalse(msgcount > 4, _T("PassThruReadMsgs returned more data than the buffer could hold.")); - Assert::AreEqual(STATUS_NOERROR, res, _T("Failed to read message.")); - if (msgcount > 0) { - for (unsigned int i = 0; i < msgcount; i++) { - ret_messages.push_back(recvbuff[i]); - } - } - if (ret_messages.size() >= num_expected) break; - } - - std::ostringstream stringStream; - stringStream << "j2534_recv_loop Broke at " << t.getTimePassed() << " ms size is " << ret_messages.size() << std::endl; - - if (num_expected != ret_messages.size()) { - stringStream << "Incorrect number of messages received. Displaying the messages:" << std::endl; - for (auto msg : ret_messages) { - stringStream << " TS: " << msg.Timestamp << "; Dat: "; - for (int i = 0; i < msg.DataSize; i++) stringStream << std::hex << std::setw(2) << std::setfill('0') << int(msg.Data[i] & 0xFF) << " "; - stringStream << std::endl; - } - } - - Logger::WriteMessage(stringStream.str().c_str()); - - Assert::AreEqual(num_expected, ret_messages.size(), _T("Received wrong number of messages.")); - return ret_messages; -} - -void check_J2534_can_msg(PASSTHRU_MSG& msgin, unsigned long ProtocolID, unsigned long RxStatus, unsigned long TxFlags, - unsigned long DataSize, unsigned long ExtraDataIndex, const char* Data, const __LineInfo* pLineInfo) { - Assert::AreEqual(DataSize, msgin.DataSize, _T("Wrong msg len"), pLineInfo); - - std::ostringstream logmsg; - logmsg << "Expected Hex ("; - for (int i = 0; i < DataSize; i++) logmsg << std::hex << std::setw(2) << std::setfill('0') << int(Data[i] & 0xFF) << " "; - logmsg << "); Actual Hex ("; - for (int i = 0; i < msgin.DataSize; i++) logmsg << std::hex << std::setw(2) << std::setfill('0') << int(((char*)msgin.Data)[i] & 0xFF) << " "; - logmsg << ")"; - Logger::WriteMessage(logmsg.str().c_str()); - Assert::AreEqual(std::string(Data, DataSize), std::string((char*)msgin.Data, msgin.DataSize), _T("Wrong msg payload"), pLineInfo); - - Assert::AreEqual(ProtocolID, msgin.ProtocolID, _T("Wrong msg protocol"), pLineInfo); - Assert::AreEqual(RxStatus, msgin.RxStatus, _T("Wrong msg receipt rxstatus"), pLineInfo); - Assert::AreEqual(TxFlags, msgin.TxFlags, _T("Wrong msg receipt txflag"), pLineInfo); - Assert::AreEqual(ExtraDataIndex, msgin.ExtraDataIndex, _T("Wrong msg ExtraDataIndex"), pLineInfo); -} - -unsigned long J2534_set_PASS_filter(unsigned long chanid, unsigned long ProtocolID, unsigned long tx, - unsigned long len, char* mask, char* pattern, const __LineInfo* pLineInfo) { - unsigned long filterid; - PASSTHRU_MSG mask_msg = { ProtocolID, 0, tx, 0, len, 0, 0 }; - PASSTHRU_MSG pattern_msg = { ProtocolID, 0, tx, 0, len, 0, 0 }; - memcpy(mask_msg.Data, mask, len); - memcpy(pattern_msg.Data, pattern, len); - Assert::AreEqual(STATUS_NOERROR, PassThruStartMsgFilter(chanid, PASS_FILTER, &mask_msg, &pattern_msg, NULL, &filterid), - _T("Failed to create filter."), pLineInfo); - return filterid; -} - -unsigned long J2534_set_BLOCK_filter(unsigned long chanid, unsigned long ProtocolID, unsigned long tx, - unsigned long len, char* mask, char* pattern, const __LineInfo* pLineInfo) { - unsigned long filterid; - PASSTHRU_MSG mask_msg = { ProtocolID, 0, tx, 0, len, 0, 0 }; - PASSTHRU_MSG pattern_msg = { ProtocolID, 0, tx, 0, len, 0, 0 }; - memcpy(mask_msg.Data, mask, len); - memcpy(pattern_msg.Data, pattern, len); - Assert::AreEqual(STATUS_NOERROR, PassThruStartMsgFilter(chanid, BLOCK_FILTER, &mask_msg, &pattern_msg, NULL, &filterid), - _T("Failed to create filter."), pLineInfo); - return filterid; -} - -unsigned long J2534_set_flowctrl_filter(unsigned long chanid, unsigned long tx, - unsigned long len, char* mask, char* pattern, char* flow, const __LineInfo* pLineInfo) { - unsigned long filterid; - PASSTHRU_MSG mask_msg = { ISO15765, 0, tx, 0, len, 0, 0 }; - PASSTHRU_MSG pattern_msg = { ISO15765, 0, tx, 0, len, 0, 0 }; - PASSTHRU_MSG flow_msg = { ISO15765, 0, tx, 0, len, 0, 0 }; - memcpy(mask_msg.Data, mask, len); - memcpy(pattern_msg.Data, pattern, len); - memcpy(flow_msg.Data, flow, len); - Assert::AreEqual(STATUS_NOERROR, PassThruStartMsgFilter(chanid, FLOW_CONTROL_FILTER, &mask_msg, &pattern_msg, &flow_msg, &filterid), - _T("Failed to create filter."), pLineInfo); - return filterid; -} - -std::unique_ptr getPanda(unsigned long kbaud, BOOL loopback) { - auto p = panda::Panda::openPanda(""); - Assert::IsTrue(p != nullptr, _T("Could not open raw panda device to test communication.")); - p->set_can_speed_kbps(panda::PANDA_CAN1, kbaud); - p->set_safety_mode(panda::SAFETY_ALLOUTPUT); - p->set_can_loopback(loopback); - p->can_clear(panda::PANDA_CAN_RX); - return p; -} - -std::vector checked_panda_send(std::unique_ptr& p, uint32_t addr, bool is_29b, - char* msg, uint8_t len, unsigned int num_expected, const __LineInfo* pLineInfo, unsigned long timeout_ms) { - Assert::IsTrue(p->can_send(addr, is_29b, (const uint8_t*)msg, len, panda::PANDA_CAN1), _T("Panda send says it failed."), pLineInfo); - auto panda_msg_recv = panda_recv_loop(p, 1 + num_expected, timeout_ms); - check_panda_can_msg(panda_msg_recv[0], 0, addr, is_29b, TRUE, std::string(msg, len), pLineInfo); - panda_msg_recv.erase(panda_msg_recv.begin()); - return panda_msg_recv; -} diff --git a/drivers/windows/pandaJ2534DLL Test/TestHelpers.h b/drivers/windows/pandaJ2534DLL Test/TestHelpers.h deleted file mode 100644 index 9df59d7b5..000000000 --- a/drivers/windows/pandaJ2534DLL Test/TestHelpers.h +++ /dev/null @@ -1,48 +0,0 @@ -#pragma once -#include "stdafx.h" -#include "pandaJ2534DLL/J2534_v0404.h" -#include "panda_shared/panda.h" - -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -extern void write_ioctl(unsigned int chanid, unsigned int param, unsigned int val, const __LineInfo* pLineInfo = NULL); - -extern std::vector panda_recv_loop_loose(std::unique_ptr& p, unsigned int min_num, unsigned long timeout_ms = 100); - -extern std::vector panda_recv_loop(std::unique_ptr& p, unsigned int num_expected, unsigned long timeout_ms = 100); - -extern void check_panda_can_msg(panda::PANDA_CAN_MSG& msgin, uint8_t bus, unsigned long addr, bool addr_29b, - bool is_receipt, std::string dat, const __LineInfo* pLineInfo = NULL); - -extern unsigned long J2534_start_periodic_msg_checked(unsigned long chanid, unsigned long ProtocolID, unsigned long TxFlags, unsigned long DataSize, - unsigned long ExtraDataIndex, const char * Data, unsigned long TimeInterval, const __LineInfo * pLineInfo); - -extern unsigned long J2534_start_periodic_msg(unsigned long chanid, unsigned long ProtocolID, unsigned long TxFlags, unsigned long DataSize, - unsigned long ExtraDataIndex, const char* Data, unsigned long TimeInterval, unsigned long* msgID, const __LineInfo* pLineInfo = NULL); - -extern void J2534_send_msg_checked(unsigned long chanid, unsigned long ProtocolID, unsigned long RxStatus, unsigned long TxFlags, - unsigned long Timestamp, unsigned long DataSize, unsigned long ExtraDataIndex, const char* Data, const __LineInfo* pLineInfo = NULL); - -extern long J2534_send_msg(unsigned long chanid, unsigned long ProtocolID, unsigned long RxStatus, unsigned long TxFlags, - unsigned long Timestamp, unsigned long DataSize, unsigned long ExtraDataIndex, const char* Data); - -extern std::vector j2534_recv_loop_loose(unsigned int chanid, unsigned int min_num, unsigned long timeout_ms = 100); - -extern std::vector j2534_recv_loop(unsigned int chanid, unsigned int num_expected, unsigned long timeout_ms = 100); - -extern void check_J2534_can_msg(PASSTHRU_MSG& msgin, unsigned long ProtocolID, unsigned long RxStatus, unsigned long TxFlags, - unsigned long DataSize, unsigned long ExtraDataIndex, const char* Data, const __LineInfo* pLineInfo = NULL); - -extern unsigned long J2534_set_PASS_filter(unsigned long chanid, unsigned long ProtocolID, unsigned long tx, - unsigned long len, char* mask, char* pattern, const __LineInfo* pLineInfo = NULL); - -extern unsigned long J2534_set_BLOCK_filter(unsigned long chanid, unsigned long ProtocolID, unsigned long tx, - unsigned long len, char* mask, char* pattern, const __LineInfo* pLineInfo = NULL); - -extern unsigned long J2534_set_flowctrl_filter(unsigned long chanid, unsigned long tx, - unsigned long len, char* mask, char* pattern, char* flow, const __LineInfo* pLineInfo = NULL); - -extern std::unique_ptr getPanda(unsigned long kbaud = 500, BOOL loopback = FALSE); - -extern std::vector checked_panda_send(std::unique_ptr& p, uint32_t addr, bool is_29b, - char* msg, uint8_t len, unsigned int num_expected=0, const __LineInfo* pLineInfo = NULL, unsigned long timeout_ms = 100); diff --git a/drivers/windows/pandaJ2534DLL Test/Timer.cpp b/drivers/windows/pandaJ2534DLL Test/Timer.cpp deleted file mode 100644 index 33d029e84..000000000 --- a/drivers/windows/pandaJ2534DLL Test/Timer.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "stdafx.h" -#include "Timer.h" - - -Timer::Timer() -{ - reset(); -} - -// gets the time elapsed from construction. -unsigned long long /*milliseconds*/ Timer::getTimePassed(){ - // get the new time - auto end = std::chrono::time_point_cast(clock::now()); - - // return the difference of the times - return (end - start).count(); -} - -void Timer::reset() { - start = std::chrono::time_point_cast(clock::now()); -} \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL Test/Timer.h b/drivers/windows/pandaJ2534DLL Test/Timer.h deleted file mode 100644 index cbf5579a5..000000000 --- a/drivers/windows/pandaJ2534DLL Test/Timer.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once -#include - -//Copied from https://stackoverflow.com/a/31488113 - -class Timer -{ - using clock = std::chrono::steady_clock; - using time_point_type = std::chrono::time_point < clock, std::chrono::milliseconds >; -public: - Timer(); - - // gets the time elapsed from construction. - unsigned long long /*milliseconds*/ getTimePassed(); - - void reset(); - -private: - time_point_type start; -}; \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL Test/j2534_tests.cpp b/drivers/windows/pandaJ2534DLL Test/j2534_tests.cpp deleted file mode 100644 index 674569acc..000000000 --- a/drivers/windows/pandaJ2534DLL Test/j2534_tests.cpp +++ /dev/null @@ -1,1602 +0,0 @@ -#include "stdafx.h" -#include "Loader4.h" -#include "pandaJ2534DLL/J2534_v0404.h" -#include "panda_shared/panda.h" -#include "Timer.h" -#include "ECUsim DLL\ECUsim.h" -#include "TestHelpers.h" - -using namespace Microsoft::VisualStudio::CppUnitTestFramework; - -namespace pandaJ2534DLLTest -{ - TEST_CLASS(J2534DLLInitialization) - { - public: - - TEST_CLASS_CLEANUP(deinit) { - UnloadJ2534Dll(); - } - - TEST_METHOD(J2534_Driver_Init) - { - long err = LoadJ2534Dll("pandaJ2534_0404_32.dll"); - Assert::IsTrue(err == 0, _T("Library failed to load properly. Check the export names and library location.")); - } - - }; - - TEST_CLASS(J2534DeviceInitialization) - { - public: - - TEST_METHOD_INITIALIZE(init) { - LoadJ2534Dll("pandaJ2534_0404_32.dll"); - } - - TEST_METHOD_CLEANUP(deinit) { - if (didopen) { - PassThruClose(devid); - didopen = FALSE; - } - UnloadJ2534Dll(); - } - - TEST_METHOD(J2534_Device_OpenDevice__Empty) - { - Assert::AreEqual(STATUS_NOERROR, open_dev(""), _T("Failed to open device."), LINE_INFO()); - } - - TEST_METHOD(J2534_Device_OpenDevice__J2534_2) - { - Assert::AreEqual(STATUS_NOERROR, open_dev("J2534-2:"), _T("Failed to open device."), LINE_INFO()); - } - - TEST_METHOD(J2534_Device_OpenDevice__SN) - { - auto pandas_available = panda::Panda::listAvailablePandas(); - Assert::IsTrue(pandas_available.size() > 0, _T("No pandas detected.")); - - Assert::AreEqual(STATUS_NOERROR, open_dev(pandas_available[0].c_str()), _T("Failed to open device."), LINE_INFO()); - - auto pandas_available_2 = panda::Panda::listAvailablePandas(); - for (auto panda_sn : pandas_available_2) - Assert::AreNotEqual(panda_sn, pandas_available[0]); - } - - TEST_METHOD(J2534_Device_CloseDevice) - { - Assert::AreEqual(STATUS_NOERROR, open_dev(""), _T("Failed to open device."), LINE_INFO()); - Assert::AreEqual(STATUS_NOERROR, close_dev(devid), _T("Failed to close device."), LINE_INFO()); - Assert::AreEqual(ERR_INVALID_DEVICE_ID, PassThruClose(devid), _T("The 2nd close should have failed with ERR_INVALID_DEVICE_ID."), LINE_INFO()); - } - - TEST_METHOD(J2534_Device_ConnectDisconnect) - { - unsigned long chanid; - Assert::AreEqual(STATUS_NOERROR, open_dev(""), _T("Failed to open device."), LINE_INFO()); - Assert::AreEqual(STATUS_NOERROR, PassThruConnect(devid, CAN, 0, 500000, &chanid), _T("Failed to open channel."), LINE_INFO()); - - Assert::AreEqual(STATUS_NOERROR, PassThruDisconnect(chanid), _T("Failed to close channel."), LINE_INFO()); - Assert::AreEqual(ERR_INVALID_CHANNEL_ID, PassThruDisconnect(chanid), _T("The 2nd disconnect should have failed with ERR_INVALID_CHANNEL_ID."), LINE_INFO()); - } - - TEST_METHOD(J2534_Device_ConnectInvalidProtocol) - { - unsigned long chanid; - Assert::AreEqual(STATUS_NOERROR, open_dev(""), _T("Failed to open device."), LINE_INFO()); - Assert::AreEqual(ERR_INVALID_PROTOCOL_ID, PassThruConnect(devid, 999, 0, 500000, &chanid), - _T("Did not report ERR_INVALID_PROTOCOL_ID."), LINE_INFO()); - Assert::AreEqual(ERR_INVALID_CHANNEL_ID, PassThruDisconnect(chanid), _T("The channel should not have been created."), LINE_INFO()); - } - - bool didopen = FALSE; - unsigned long devid; - - unsigned long open_dev(const char* name, long assert_err = STATUS_NOERROR, TCHAR* failmsg = _T("Failed to open device.")) { - unsigned int res = PassThruOpen((void*)name, &devid); - if (res == STATUS_NOERROR) didopen = TRUE; - return res; - } - - unsigned long close_dev(unsigned long devid) { - unsigned long res = PassThruClose(devid); - if (res == STATUS_NOERROR) didopen = FALSE; - return res; - } - - }; - - TEST_CLASS(J2534DeviceCAN) - { - public: - - TEST_METHOD_INITIALIZE(init) { - LoadJ2534Dll("pandaJ2534_0404_32.dll"); - } - - TEST_METHOD_CLEANUP(deinit) { - if (didopen) { - PassThruClose(devid); - didopen = FALSE; - } - UnloadJ2534Dll(); - } - - //Test that the BAUD rate of a CAN connection can be changed. - TEST_METHOD(J2534_CAN_SetBaud) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); // ENABLE J2534 ECHO/LOOPBACK - auto p = getPanda(250); - - J2534_send_msg_checked(chanid, CAN, 0, 0, 0, 4 + 2, 0, "\x0\x0\x3\xAB""HI", LINE_INFO()); - j2534_recv_loop(chanid, 0); - panda_recv_loop(p, 0); - - write_ioctl(chanid, DATA_RATE, 250000, LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], CAN, TX_MSG_TYPE, 0, 4 + 2, 0, "\x0\x0\x3\xAB""HI", LINE_INFO()); - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - } - - TEST_METHOD(J2534_CAN_11b_Tx) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, CAN, 0, 0, 0, 6, 6, "\x0\x0\x3\xAB""HI", LINE_INFO()); - - std::vector msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(msg_recv[0], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - - j2534_recv_loop(chanid, 0, 50); // Check no message is returned (since loopback is off) - } - - TEST_METHOD(J2534_CAN_29b_Tx) - { - auto chanid = J2534_open_and_connect("", CAN, CAN_29BIT_ID, 500000, LINE_INFO()); - auto p = getPanda(500); - - Assert::AreEqual(ERR_INVALID_MSG, J2534_send_msg(chanid, CAN, 0, 0, 0, 6, 6, "\x0\x0\x3\xAB""HI"), _T("11b address should fail to tx."), LINE_INFO()); - J2534_send_msg_checked(chanid, CAN, 0, CAN_29BIT_ID, 0, 6, 6, "\x0\x0\x3\xAB""YO", LINE_INFO()); - - std::vector msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(msg_recv[0], 0, 0x3AB, TRUE, FALSE, "YO", LINE_INFO()); - } - - TEST_METHOD(J2534_CAN_11b29b_Tx) - { - auto chanid = J2534_open_and_connect("", CAN, CAN_ID_BOTH, 500000, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, CAN, 0, 0, 0, 6, 6, "\x0\x0\x3\xAB""HI", LINE_INFO()); - J2534_send_msg_checked(chanid, CAN, 0, CAN_29BIT_ID, 0, 6, 6, "\x0\x0\x3\xAB""YO", LINE_INFO()); - - std::vector msg_recv = panda_recv_loop(p, 2); - check_panda_can_msg(msg_recv[0], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x3AB, TRUE, FALSE, "YO", LINE_INFO()); - } - - TEST_METHOD(J2534_CAN_TxEcho) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, CAN, 0, 0, 0, 9, 9, "\x0\x0\x3\xAB""HIDOG", LINE_INFO()); - - auto msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(msg_recv[0], 0, 0x3AB, FALSE, FALSE, "HIDOG", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 0); - - ///////////////////////////////// - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); // ENABLE J2534 ECHO/LOOPBACK - - J2534_send_msg_checked(chanid, CAN, 0, 0, 0, 7, 7, "\x0\x0\x3\xAB""SUP", LINE_INFO()); - - msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(msg_recv[0], 0, 0x3AB, FALSE, FALSE, "SUP", LINE_INFO()); - - j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], CAN, TX_MSG_TYPE, 0, 3 + 4, 0, "\x0\x0\x3\xAB""SUP", LINE_INFO()); - } - - TEST_METHOD(J2534_CAN_RxAndPassAllFilters) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - J2534_set_PASS_filter(chanid, CAN, 0, 4, "\x0\x0\x0\x0", "\x0\x0\x0\x0", LINE_INFO()); - auto p = getPanda(500); - - p->can_send(0x1FA, FALSE, (const uint8_t*)"ABCDE", 5, panda::PANDA_CAN1); - p->can_send(0x2AC, FALSE, (const uint8_t*)"HIJKL", 5, panda::PANDA_CAN1); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x1\xFA""ABCDE", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x2\xAC""HIJKL", LINE_INFO()); - } - - TEST_METHOD(J2534_CAN_RxAndLimitedPassFilter) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - J2534_set_PASS_filter(chanid, CAN, 0, 4, "\xFF\xFF\xFF\xFF", "\x0\x0\x02\xAC", LINE_INFO()); - auto p = getPanda(500); - - p->can_send(0x1FA, FALSE, (const uint8_t*)"ABCDE", 5, panda::PANDA_CAN1); - p->can_send(0x2AC, FALSE, (const uint8_t*)"HIJKL", 5, panda::PANDA_CAN1); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x2\xAC""HIJKL", LINE_INFO()); - } - - TEST_METHOD(J2534_CAN_RxAndPassBlockFilter) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - J2534_set_PASS_filter(chanid, CAN, 0, 4, "\x0\x0\x0\x0", "\x0\x0\x0\x0", LINE_INFO()); - J2534_set_BLOCK_filter(chanid, CAN, 0, 4, "\xFF\xFF\xFF\xFF", "\x0\x0\x02\xAC", LINE_INFO()); - auto p = getPanda(500); - - p->can_send(0x1FA, FALSE, (const uint8_t*)"ABCDE", 5, panda::PANDA_CAN1); - p->can_send(0x2AC, FALSE, (const uint8_t*)"HIJKL", 5, panda::PANDA_CAN1); - p->can_send(0x3FA, FALSE, (const uint8_t*)"MNOPQ", 5, panda::PANDA_CAN1); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2, 1000); - check_J2534_can_msg(j2534_msg_recv[0], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x1\xFA""ABCDE", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x3\xFA""MNOPQ", LINE_INFO()); - } - - //Check that the order of the pass and block filter do not matter - TEST_METHOD(J2534_CAN_RxAndFilterBlockPass) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - J2534_set_BLOCK_filter(chanid, CAN, 0, 4, "\xFF\xFF\xFF\xFF", "\x0\x0\x02\xAC", LINE_INFO()); - J2534_set_PASS_filter(chanid, CAN, 0, 4, "\x0\x0\x0\x0", "\x0\x0\x0\x0", LINE_INFO()); - auto p = getPanda(500); - - p->can_send(0x1FA, FALSE, (const uint8_t*)"ABCDE", 5, panda::PANDA_CAN1); - p->can_send(0x2AC, FALSE, (const uint8_t*)"HIJKL", 5, panda::PANDA_CAN1); // Should not pass filter - p->can_send(0x3FA, FALSE, (const uint8_t*)"MNOPQ", 5, panda::PANDA_CAN1); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2, 2000); - check_J2534_can_msg(j2534_msg_recv[0], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x1\xFA""ABCDE", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x3\xFA""MNOPQ", LINE_INFO()); - } - - //Check that the order of the pass and block filter do not matter - TEST_METHOD(J2534_CAN_RxAndFilterRemoval) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - auto filterid0 = J2534_set_BLOCK_filter(chanid, CAN, 0, 4, "\xFF\xFF\xFF\xFF", "\x0\x0\x02\xAC", LINE_INFO()); - auto filterid1 = J2534_set_PASS_filter(chanid, CAN, 0, 4, "\x0\x0\x0\x0", "\x0\x0\x0\x0", LINE_INFO()); - - Assert::AreEqual(STATUS_NOERROR, PassThruStopMsgFilter(chanid, filterid0), _T("Failed to delete filter."), LINE_INFO()); - - auto p = getPanda(500); - - p->can_send(0x1FA, FALSE, (const uint8_t*)"ABCDE", 5, panda::PANDA_CAN1); - p->can_send(0x2AC, FALSE, (const uint8_t*)"HIJKL", 5, panda::PANDA_CAN1); - p->can_send(0x3FA, FALSE, (const uint8_t*)"MNOPQ", 5, panda::PANDA_CAN1); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 3, 1000); - check_J2534_can_msg(j2534_msg_recv[0], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x1\xFA""ABCDE", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x2\xAC""HIJKL", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[2], CAN, 0, 0, 5 + 4, 0, "\x0\x0\x3\xFA""MNOPQ", LINE_INFO()); - } - - //Check that the order of the pass and block filter do not matter - TEST_METHOD(J2534_CAN_RxWithTimeout) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - J2534_set_PASS_filter(chanid, CAN, 0, 4, "\x0\x0\x0\x0", "\x0\x0\x0\x0", LINE_INFO()); - auto p = getPanda(500); - - PASSTHRU_MSG recvbuff; - unsigned long msgcount = 1; - unsigned int res = PassThruReadMsgs(chanid, &recvbuff, &msgcount, 100); // Here is where we test the timeout - Assert::AreEqual(ERR_BUFFER_EMPTY, res, _T("No message should be found"), LINE_INFO()); - Assert::AreEqual(0, msgcount, _T("Received wrong number of messages.")); - - //TODO Test that the timings work right instead of just testing it doesn't crash. - } - - TEST_METHOD(J2534_CAN_Baud) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 250000, LINE_INFO()); - auto p = getPanda(250); - - J2534_send_msg_checked(chanid, CAN, 0, 0, 0, 6, 6, "\x0\x0\x3\xAB""HI", LINE_INFO()); - - std::vector msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(msg_recv[0], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - } - - TEST_METHOD(J2534_CAN_PeriodicMessageStartStop) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - auto p = getPanda(500); - - auto msgid = J2534_start_periodic_msg_checked(chanid, CAN, 0, 6, 0, "\x0\x0\x3\xAB""HI", 100, LINE_INFO()); - - std::vector msg_recv = panda_recv_loop(p, 3, 250); - Assert::AreEqual(STATUS_NOERROR, PassThruStopPeriodicMsg(chanid, msgid), _T("Failed to delete filter."), LINE_INFO()); - check_panda_can_msg(msg_recv[0], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[2], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - - auto timediff_1_0 = msg_recv[1].recv_time - msg_recv[0].recv_time; - auto timediff_2_1 = msg_recv[2].recv_time - msg_recv[1].recv_time; - - std::ostringstream stringStream1; - stringStream1 << "times1: " << timediff_1_0 << ", " << timediff_2_1 << std::endl; - Logger::WriteMessage(stringStream1.str().c_str()); - - Assert::IsTrue(timediff_1_0 > 90000); - Assert::IsTrue(timediff_1_0 < 110000); - Assert::IsTrue(timediff_2_1 > 90000); - Assert::IsTrue(timediff_2_1 < 110000); - - msg_recv = panda_recv_loop(p, 0, 300); - } - - TEST_METHOD(J2534_CAN_PeriodicMessageMultipleStartStop) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - auto p = getPanda(500); - - auto msgid0 = J2534_start_periodic_msg_checked(chanid, CAN, 0, 6, 0, "\x0\x0\x3\xAB""HI", 100, LINE_INFO()); - auto msgid1 = J2534_start_periodic_msg_checked(chanid, CAN, 0, 6, 0, "\x0\x0\x1\x23""YO", 80, LINE_INFO()); - - std::vector msg_recv = panda_recv_loop(p, 9, 370); - Assert::AreEqual(STATUS_NOERROR, PassThruStopPeriodicMsg(chanid, msgid0), _T("Failed to delete filter."), LINE_INFO()); - Assert::AreEqual(STATUS_NOERROR, PassThruStopPeriodicMsg(chanid, msgid1), _T("Failed to delete filter."), LINE_INFO()); - //time diagram. 10 ms per character. * is send event. : is termination of periodic messages. - //*---------*---------*---------*-----:----* HI - //*-------*-------*-------*-------*---:----* YO - check_panda_can_msg(msg_recv[0], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x123, FALSE, FALSE, "YO", LINE_INFO()); - check_panda_can_msg(msg_recv[2], 0, 0x123, FALSE, FALSE, "YO", LINE_INFO()); - check_panda_can_msg(msg_recv[3], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[4], 0, 0x123, FALSE, FALSE, "YO", LINE_INFO()); - check_panda_can_msg(msg_recv[5], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[6], 0, 0x123, FALSE, FALSE, "YO", LINE_INFO()); - check_panda_can_msg(msg_recv[7], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[8], 0, 0x123, FALSE, FALSE, "YO", LINE_INFO()); - - auto timediff_HI_3_0 = msg_recv[3].recv_time - msg_recv[0].recv_time; - auto timediff_HI_5_3 = msg_recv[5].recv_time - msg_recv[3].recv_time; - auto timediff_HI_7_5 = msg_recv[7].recv_time - msg_recv[5].recv_time; - - auto timediff_YO_2_1 = msg_recv[2].recv_time - msg_recv[1].recv_time; - auto timediff_YO_4_2 = msg_recv[4].recv_time - msg_recv[2].recv_time; - auto timediff_YO_6_4 = msg_recv[6].recv_time - msg_recv[4].recv_time; - auto timediff_YO_8_6 = msg_recv[8].recv_time - msg_recv[6].recv_time; - - std::ostringstream stringStreamHi; - stringStreamHi << "HiTimes: " << timediff_HI_3_0 << ", " << timediff_HI_5_3 << ", " << timediff_HI_7_5 << std::endl; - Logger::WriteMessage(stringStreamHi.str().c_str()); - - std::ostringstream stringStreamYo; - stringStreamYo << "HiTimes: " << timediff_YO_2_1 << ", " << timediff_YO_4_2 << ", " << timediff_YO_6_4 << ", " << timediff_YO_8_6 << std::endl; - Logger::WriteMessage(stringStreamYo.str().c_str()); - - Assert::IsTrue(timediff_HI_3_0 > 90000); - Assert::IsTrue(timediff_HI_3_0 < 110000); - Assert::IsTrue(timediff_HI_5_3 > 90000); - Assert::IsTrue(timediff_HI_5_3 < 110000); - Assert::IsTrue(timediff_HI_7_5 > 90000); - Assert::IsTrue(timediff_HI_7_5 < 110000); - - Assert::IsTrue(timediff_YO_2_1 > 80000-10000); - Assert::IsTrue(timediff_YO_2_1 < 80000+1000); - Assert::IsTrue(timediff_YO_4_2 > 80000 - 10000); - Assert::IsTrue(timediff_YO_4_2 < 80000 + 10000); - Assert::IsTrue(timediff_YO_6_4 > 80000 - 10000); - Assert::IsTrue(timediff_YO_6_4 < 80000 + 10000); - Assert::IsTrue(timediff_YO_8_6 > 80000 - 10000); - Assert::IsTrue(timediff_YO_8_6 < 80000 + 10000); - - msg_recv = panda_recv_loop(p, 0, 300); - } - - TEST_METHOD(J2534_CAN_PeriodicMessageStartStop_Loopback) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); // ENABLE J2534 ECHO/LOOPBACK - auto p = getPanda(500); - auto msgid = J2534_start_periodic_msg_checked(chanid, CAN, 0, 6, 0, "\x0\x0\x3\xAB""HI", 100, LINE_INFO()); - - std::vector msg_recv = panda_recv_loop(p, 3, 250); - Assert::AreEqual(STATUS_NOERROR, PassThruStopPeriodicMsg(chanid, msgid), _T("Failed to delete filter."), LINE_INFO()); - check_panda_can_msg(msg_recv[0], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[2], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 3); - check_J2534_can_msg(j2534_msg_recv[0], CAN, TX_MSG_TYPE, 0, 6, 0, "\x0\x0\x3\xAB""HI", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], CAN, TX_MSG_TYPE, 0, 6, 0, "\x0\x0\x3\xAB""HI", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[2], CAN, TX_MSG_TYPE, 0, 6, 0, "\x0\x0\x3\xAB""HI", LINE_INFO()); - - auto timediff_1_0 = j2534_msg_recv[1].Timestamp - j2534_msg_recv[0].Timestamp; - auto timediff_2_1 = j2534_msg_recv[2].Timestamp - j2534_msg_recv[1].Timestamp; - - std::ostringstream stringStream1; - stringStream1 << "times1: " << timediff_1_0 << ", " << timediff_2_1 << std::endl; - Logger::WriteMessage(stringStream1.str().c_str()); - - Assert::IsTrue(timediff_1_0 > 90000); - Assert::IsTrue(timediff_1_0 < 110000); - Assert::IsTrue(timediff_2_1 > 90000); - Assert::IsTrue(timediff_2_1 < 110000); - - msg_recv = panda_recv_loop(p, 0, 300); - } - - TEST_METHOD(J2534_CAN_PeriodicMessageWithTx) - { - auto chanid = J2534_open_and_connect("", CAN, 0, 500000, LINE_INFO()); - auto p = getPanda(500); - auto msgid = J2534_start_periodic_msg_checked(chanid, CAN, 0, 6, 0, "\x0\x0\x3\xAB""HI", 100, LINE_INFO()); - - J2534_send_msg(chanid, CAN, 0, 0, 0, 7, 0, "\x0\x0\x3\xAB""LOL"); - - std::vector msg_recv = panda_recv_loop(p, 4, 250); - Assert::AreEqual(STATUS_NOERROR, PassThruStopPeriodicMsg(chanid, msgid), _T("Failed to delete filter."), LINE_INFO()); - check_panda_can_msg(msg_recv[0], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[1], 0, 0x3AB, FALSE, FALSE, "LOL", LINE_INFO());//Staggered write inbetween multiple scheduled TXs - check_panda_can_msg(msg_recv[2], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - check_panda_can_msg(msg_recv[3], 0, 0x3AB, FALSE, FALSE, "HI", LINE_INFO()); - - auto timediff_2_0 = msg_recv[2].recv_time - msg_recv[0].recv_time; - auto timediff_3_2 = msg_recv[3].recv_time - msg_recv[2].recv_time; - - std::ostringstream stringStream1; - stringStream1 << "times1: " << timediff_2_0 << ", " << timediff_3_2 << std::endl; - Logger::WriteMessage(stringStream1.str().c_str()); - - Assert::IsTrue(timediff_2_0 > 90000); - Assert::IsTrue(timediff_2_0 < 110000); - Assert::IsTrue(timediff_3_2 > 90000); - Assert::IsTrue(timediff_3_2 < 110000); - - msg_recv = panda_recv_loop(p, 0, 300); - } - - TEST_METHOD(J2534_CAN_BaudInvalid) - { - unsigned long chanid; - Assert::AreEqual(STATUS_NOERROR, open_dev(""), _T("Failed to open device."), LINE_INFO()); - Assert::AreEqual(ERR_INVALID_BAUDRATE, PassThruConnect(devid, CAN, 0, 6000000, &chanid), _T("Baudrate should have been invalid."), LINE_INFO()); - Assert::AreEqual(ERR_INVALID_BAUDRATE, PassThruConnect(devid, CAN, 0, 200, &chanid), _T("Baudrate should have been invalid."), LINE_INFO()); - Assert::AreEqual(ERR_INVALID_BAUDRATE, PassThruConnect(devid, CAN, 0, 250010, &chanid), _T("Baudrate should have been invalid."), LINE_INFO()); - } - - bool didopen = FALSE; - unsigned long devid; - - unsigned long open_dev(const char* name, long assert_err = STATUS_NOERROR, TCHAR* failmsg = _T("Failed to open device.")) { - unsigned int res = PassThruOpen((void*)name, &devid); - if (res == STATUS_NOERROR) didopen = TRUE; - return res; - } - - unsigned long J2534_open_and_connect(const char* name, unsigned long ProtocolID, unsigned long Flags, unsigned long bps, const __LineInfo* pLineInfo = NULL) { - unsigned long chanid; - Assert::AreEqual(STATUS_NOERROR, open_dev(name), _T("Failed to open device."), pLineInfo); - Assert::AreEqual(STATUS_NOERROR, PassThruConnect(devid, ProtocolID, Flags, bps, &chanid), _T("Failed to open channel."), pLineInfo); - write_ioctl(chanid, LOOPBACK, FALSE, LINE_INFO()); // DISABLE J2534 ECHO/LOOPBACK - return chanid; - } - - }; - - TEST_CLASS(J2534DeviceISO15765) - { - public: - - TEST_METHOD_INITIALIZE(init) { - LoadJ2534Dll("pandaJ2534_0404_32.dll"); - } - - TEST_METHOD_CLEANUP(deinit) { - if (didopen) { - PassThruClose(devid); - didopen = FALSE; - } - UnloadJ2534Dll(); - } - - //Test that the BAUD rate of a ISO15765 connection can be changed. - TEST_METHOD(J2534_ISO15765_SetBaud) - { - auto chanid = J2534_open_and_connect("", ISO15765, 0, 500000, LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); // ENABLE J2534 ECHO/LOOPBACK - auto p = getPanda(250); - - J2534_send_msg_checked(chanid, ISO15765, 0, 0, 0, 4 + 2, 0, "\x0\x0\x3\xAB""HI", LINE_INFO()); - j2534_recv_loop(chanid, 0); - panda_recv_loop(p, 0); - - write_ioctl(chanid, DATA_RATE, 250000, LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, TX_INDICATION, 0, 4, 0, "\x0\x0\x3\xAB", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, TX_MSG_TYPE, 0, 4 + 2, 0, "\x0\x0\x3\xAB""HI", LINE_INFO()); - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x3AB, FALSE, FALSE, "\x2""HI", LINE_INFO()); - } - - ///////////////////// Tests checking things don't send/receive ///////////////////// - - //Check tx PASSES and rx FAIL WITHOUT a filter. 29 bit. NO Filter. NoPadding. STD address. Single Frame. - TEST_METHOD(J2534_ISO15765_PassTxFailRx_29b_NoFilter_NoPad_STD_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - auto p = getPanda(500); - - //TX: works because all single frame writes should work (with or without a flow contorl filter) - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 11, 0, "\x18\xda\xef\xf1""TX_TEST", LINE_INFO()); - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x07""TX_TEST", LINE_INFO()); - - //RX: Reads require a flow control filter, and should fail without one. - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x06\x41\x00\xff\xff\xff\xfe", 7, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0); - } - - //Check tx and rx FAIL WITHOUT a filter. 29 bit. NO Filter. NoPadding. STD address. First Frame. - TEST_METHOD(J2534_ISO15765_FailTxRx_29b_NoFilter_NoPad_STD_FF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - auto p = getPanda(500); - - //TX - Assert::AreEqual(ERR_NO_FLOW_CONTROL, J2534_send_msg(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 12, 0, "\x18\xda\xef\xf1\xA1\xB2\xC3\xD4\xE5\xF6\x09\x1A"), - _T("Should fail to tx without a filter."), LINE_INFO()); - j2534_recv_loop(chanid, 0); - panda_recv_loop(p, 0); - - //RX; Send full response and check didn't receive flow control from J2534 device - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x14\x49\x02\x01""1D4", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x21""GP00R55", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""B123456", 8, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0);//Check a full message is not accepted. - } - - //Check tx PASSES and rx FAIL with a MISMATCHED filter. 29 bit. Mismatch Filter. NoPadding. STD address. Single Frame. - TEST_METHOD(J2534_ISO15765_PassTxFailRx_29b_MismatchFilter_NoPad_STD_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //TX: works because all single frame writes should work (with or without a flow contorl filter) - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 6, 0, "\x18\xda\xe0\xf1""\x11\x22", LINE_INFO()); - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xe0\xf1", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAE0F1, TRUE, FALSE, "\x02""\x11\x22", LINE_INFO()); - - //RX. Send ISO15765 single frame to device. Address still doesn't match filter, so should not be received. - checked_panda_send(p, 0x18DAF1E0, TRUE, "\x06\x41\x00\xff\xff\xff\xfe", 7, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0); - } - - //Check tx and rx FAIL with a MISMATCHED filter. 29 bit. Mismatch Filter. NoPadding. STD address. First Frame. - TEST_METHOD(J2534_ISO15765_FailTxRx_29b_MismatchFilter_NoPad_STD_FF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //TX - Assert::AreEqual(ERR_NO_FLOW_CONTROL, J2534_send_msg(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 12, 0, "\x18\xda\xe0\xf1""USELESS STUFF"), - _T("Should fail to tx without a filter."), LINE_INFO()); - j2534_recv_loop(chanid, 0); - panda_recv_loop(p, 0); - - //RX; Send a full response and check didn't receive flow control from J2534 device - checked_panda_send(p, 0x18DAF1E0, TRUE, "\x10\x14\x49\x02\x01""1D4", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1E0, TRUE, "\x21""GP00R55", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1E0, TRUE, "\x22""B123456", 8, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0);//Check a full message is not accepted. - } - - //Check tx FAILS with a MISMATCHED filter 29bit flag. 29 bit. Mismatch Filter. NoPadding. STD address. Single Frame. - TEST_METHOD(J2534_ISO15765_FailTxRx_29b_MismatchFilterFlag29b_NoPad_STD_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x0\x0\x1\xab", "\x0\x0\x1\xcd", LINE_INFO()); - auto p = getPanda(500); - - //TX - Assert::AreEqual(ERR_INVALID_MSG, J2534_send_msg(chanid, ISO15765, 0, 0, 0, 6, 0, "\x0/x0/x1/xcd\x01\x00"), - _T("mismatched address should fail to tx."), LINE_INFO()); - j2534_recv_loop(chanid, 0); - panda_recv_loop(p, 0); - - //RX. Send ISO15765 single frame to device. Address still doesn't match filter, so should not be received. - checked_panda_send(p, 0x1ab, FALSE, "\x06\x41\x00\xff\xff\xff\xfe", 7, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0); - } - - ///////////////////// Tests checking things actually send/receive. Standard Addressing ///////////////////// - - //Check rx passes with filter. 29 bit. Good Filter. NoPadding. STD address. Single Frame. - TEST_METHOD(J2534_ISO15765_SuccessRx_29b_Filter_NoPad_STD_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x07""ABCD123", 8, 0, LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID, 0, 11, 11, "\x18\xda\xf1\xef""ABCD123", LINE_INFO()); - } - - //Check tx passes with filter. 29 bit. Good Filter. NoPadding. STD address. Single Frame. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 11, 0, "\x18\xda\xef\xf1""TX_TEST", LINE_INFO()); - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x07""TX_TEST", LINE_INFO()); - } - - //Check tx passes with filter. 29 bit. Good Filter. NoPadding. STD address. Single Frame. Loopback. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_SF_LOOPBACK) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 11, 0, "\x18\xda\xef\xf1""TX_TEST", LINE_INFO()); - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 11, 0, "\x18\xda\xef\xf1""TX_TEST", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x07""TX_TEST", LINE_INFO()); - } - - //Check rx passes with filter. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_SuccessRx_29b_Filter_NoPad_STD_FFCF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame - auto panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x13""ninete", 8, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x30\x00\x00", 3), LINE_INFO()); - - //Check first frame is registered with J2534 - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE, 0, 4, 0, "\x18\xda\xf1\xef", LINE_INFO()); - - //Send the rest of the message - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x21""en byte", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""s here", 7, 0, LINE_INFO()); - - //Check J2534 constructed the whole message - j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID, 0, 4 + 0x13, 4 + 0x13, "\x18\xda\xf1\xef""nineteen bytes here", LINE_INFO()); - } - - //Check multi frame tx passes with filter. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_FFCF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 14, 0, "\x18\xda\xef\xf1""\xAA\xBB\xCC\xDD\xEE\xFF\x11\x22\x33\x44", LINE_INFO()); - auto j2534_msg_recv = j2534_recv_loop(chanid, 0); // No TxDone msg until after the final tx frame is sent - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x0A""\xAA\xBB\xCC\xDD\xEE\xFF", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x0\x0", 3, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""\x11\x22\x33\x44", LINE_INFO()); - - j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - } - - //Check rx passes with filter. 11 bit. Good Filter. NoPadding. STD address. Single Frame. - TEST_METHOD(J2534_ISO15765_SuccessRx_11b_Filter_NoPad_STD_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, 0, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, 0, 4, "\xff\xff\xff\xff", "\x0\x0\x1\xab", "\x0\x0\x1\xcd", LINE_INFO()); - auto p = getPanda(500); - - checked_panda_send(p, 0x1ab, FALSE, "\x07""ABCD123", 8, 0, LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, 0, 0, 11, 11, "\x0\x0\x1\xab""ABCD123", LINE_INFO()); - } - - //Check tx passes with filter. 11 bit. Good Filter. NoPadding. STD address. Single Frame. - TEST_METHOD(J2534_ISO15765_SuccessTx_11b_Filter_NoPad_STD_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, 0, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, 0, 4, "\xff\xff\xff\xff", "\x0\x0\x1\xab", "\x0\x0\x1\xcd", LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, 0, 0, 11, 0, "\x0\x0\x1\xcd""TX_TEST", LINE_INFO()); - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, TX_INDICATION, 0, 4, 0, "\x0\x0\x1\xcd", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x1CD, FALSE, FALSE, "\x07""TX_TEST", LINE_INFO()); - } - - //Check tx passes with filter multiple times. 29 bit. Good Filter. NoPadding. STD address. Multiple Single Frames. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MultipleSF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 11, 0, "\x18\xda\xef\xf1""TX_TEST", LINE_INFO()); - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 9, 0, "\x18\xda\xef\xf1""HELLO", LINE_INFO()); - auto j2534_msg_recv = j2534_recv_loop(chanid, 4); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 11, 0, "\x18\xda\xef\xf1""TX_TEST", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[2], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[3], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 9, 0, "\x18\xda\xef\xf1""HELLO", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 2); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x07""TX_TEST", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x05""HELLO", LINE_INFO()); - } - - //Check that receiver's flow control block size requests are respected. 29 bit. Good Filter. NoPadding. STD address. Multiple Frames with multiple flow control. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MF_FLOWCONTROLBlockSize) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 52, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x34""AABBCC", LINE_INFO()); - - // [flow_status, block_size, st_min] - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x01\x00", 3, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x02\x00", 3, 2, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""GHHIIJJ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x23""KKLLMMN", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x01\x00", 3, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x24""NOOPPQQ", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x00\x00", 3, 3, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x25""RRSSTTU", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x26""UVVWWXX", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[2], 0, 0x18DAEFF1, TRUE, FALSE, "\x27""YYZZ", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - } - - //Check that receiver's flow control separation time requests are respected. 29 bit. Good Filter. NoPadding. STD address. Multiple Frames with multiple flow control. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MF_FLOWCONTROLSTMinMultiFc) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 52, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x34""AABBCC", LINE_INFO()); - - // [flow_status, block_size, st_min] - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x03\x0A", 3, 3, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""GHHIIJJ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[2], 0, 0x18DAEFF1, TRUE, FALSE, "\x23""KKLLMMN", LINE_INFO()); - auto timediff0_1_0 = panda_msg_recv[1].recv_time - panda_msg_recv[0].recv_time; - auto timediff0_2_1 = panda_msg_recv[2].recv_time - panda_msg_recv[1].recv_time; - - std::ostringstream stringStream0; - stringStream0 << "times0: " << timediff0_1_0 << ", " << timediff0_2_1 << std::endl; - Logger::WriteMessage(stringStream0.str().c_str()); - - Assert::IsTrue(timediff0_1_0 > 10000); - Assert::IsTrue(timediff0_1_0 < 32000);//Flexible, but trying to make sure things don't just all lag for a second or something - Assert::IsTrue(timediff0_2_1 > 10000); - Assert::IsTrue(timediff0_2_1 < 32000); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x04\x20", 3, 4, LINE_INFO(), 500); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x24""NOOPPQQ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x25""RRSSTTU", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[2], 0, 0x18DAEFF1, TRUE, FALSE, "\x26""UVVWWXX", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[3], 0, 0x18DAEFF1, TRUE, FALSE, "\x27""YYZZ", LINE_INFO()); - auto timediff1_1_0 = panda_msg_recv[1].recv_time - panda_msg_recv[0].recv_time; - auto timediff1_2_1 = panda_msg_recv[2].recv_time - panda_msg_recv[1].recv_time; - auto timediff1_3_2 = panda_msg_recv[3].recv_time - panda_msg_recv[2].recv_time; - - std::ostringstream stringStream1; - stringStream1 << "times1: " << timediff1_1_0 << ", " << timediff1_2_1 << ", " << timediff1_3_2 << std::endl; - Logger::WriteMessage(stringStream1.str().c_str()); - - Assert::IsTrue(timediff1_1_0 > 32000); - Assert::IsTrue(timediff1_2_1 > 32000); - Assert::IsTrue(timediff1_3_2 > 32000); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - } - - //Check that receiver's flow control separation time requests are respected 2. 29 bit. Good Filter. NoPadding. STD address. Multiple Frames with one flow control. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MF_FLOWCONTROLSTMinSingleFc) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 52, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x34""AABBCC", LINE_INFO()); - - // [flow_status, block_size, st_min] - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x07\x0A", 3, 7, LINE_INFO(), 500); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""GHHIIJJ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[2], 0, 0x18DAEFF1, TRUE, FALSE, "\x23""KKLLMMN", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[3], 0, 0x18DAEFF1, TRUE, FALSE, "\x24""NOOPPQQ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[4], 0, 0x18DAEFF1, TRUE, FALSE, "\x25""RRSSTTU", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[5], 0, 0x18DAEFF1, TRUE, FALSE, "\x26""UVVWWXX", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[6], 0, 0x18DAEFF1, TRUE, FALSE, "\x27""YYZZ", LINE_INFO()); - - auto timediff_1_0 = panda_msg_recv[1].recv_time - panda_msg_recv[0].recv_time; - auto timediff_2_1 = panda_msg_recv[2].recv_time - panda_msg_recv[1].recv_time; - auto timediff_3_2 = panda_msg_recv[3].recv_time - panda_msg_recv[2].recv_time; - auto timediff_4_3 = panda_msg_recv[4].recv_time - panda_msg_recv[3].recv_time; - auto timediff_5_4 = panda_msg_recv[5].recv_time - panda_msg_recv[4].recv_time; - auto timediff_6_5 = panda_msg_recv[6].recv_time - panda_msg_recv[5].recv_time; - - std::ostringstream stringStream1; - stringStream1 << "times1: " << timediff_1_0 << ", " << timediff_2_1 << ", " << timediff_3_2 << - ", " << timediff_4_3 << ", " << timediff_5_4 << ", " << timediff_6_5 << std::endl; - Logger::WriteMessage(stringStream1.str().c_str()); - - Assert::IsTrue(timediff_1_0 > 10000); - Assert::IsTrue(timediff_2_1 > 10000); - Assert::IsTrue(timediff_3_2 > 10000); - Assert::IsTrue(timediff_4_3 > 10000); - Assert::IsTrue(timediff_5_4 > 10000); - Assert::IsTrue(timediff_6_5 > 10000); - } - - //Check that tx works for messages with more than 16 frames. 29 bit. Good Filter. NoPadding. STD address. Large multiframe message. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MF_LotsOfFrames) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 125, 0, - "\x18\xda\xef\xf1" - "AABBCC""DDEEFFG""GHHIIJJ""KKLLMMN""NOOPPQQ""RRSSTTU""UVVWWXX""YYZZ112""2334455""6677889" - "900abcd""efghijk""lmnopqr""stuvwxy""z!@#$%^""&*()_+-""=`~ABCD""EFGHIJK", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x7D""AABBCC", LINE_INFO()); - - // [flow_status, block_size, st_min] - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x00\x00", 3, 17, LINE_INFO(), 1000); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""GHHIIJJ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[2], 0, 0x18DAEFF1, TRUE, FALSE, "\x23""KKLLMMN", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[3], 0, 0x18DAEFF1, TRUE, FALSE, "\x24""NOOPPQQ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[4], 0, 0x18DAEFF1, TRUE, FALSE, "\x25""RRSSTTU", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[5], 0, 0x18DAEFF1, TRUE, FALSE, "\x26""UVVWWXX", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[6], 0, 0x18DAEFF1, TRUE, FALSE, "\x27""YYZZ112", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[7], 0, 0x18DAEFF1, TRUE, FALSE, "\x28""2334455", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[8], 0, 0x18DAEFF1, TRUE, FALSE, "\x29""6677889", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[9], 0, 0x18DAEFF1, TRUE, FALSE, "\x2A""900abcd", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[10], 0, 0x18DAEFF1, TRUE, FALSE, "\x2B""efghijk", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[11], 0, 0x18DAEFF1, TRUE, FALSE, "\x2C""lmnopqr", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[12], 0, 0x18DAEFF1, TRUE, FALSE, "\x2D""stuvwxy", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[13], 0, 0x18DAEFF1, TRUE, FALSE, "\x2E""z!@#$%^", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[14], 0, 0x18DAEFF1, TRUE, FALSE, "\x2F""&*()_+-", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[15], 0, 0x18DAEFF1, TRUE, FALSE, "\x20""=`~ABCD", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[16], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""EFGHIJK", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - } - - //Check tx passes with filter multiple times. 29 bit. Good Filter. NoPadding. STD address. Multiple Single Frames. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MultipleMFSF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 23, 0, "\x18\xda\xef\xf1""Long data because I can", LINE_INFO()); - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 9, 0, "\x18\xda\xef\xf1""HELLO", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x17""Long d", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x00\x00", 3, 4, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""ata bec", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""ause I ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[2], 0, 0x18DAEFF1, TRUE, FALSE, "\x23""can", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[3], 0, 0x18DAEFF1, TRUE, FALSE, "\x05""HELLO", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 4); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 23, 0, "\x18\xda\xef\xf1""Long data because I can", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[2], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[3], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 5, 0, "\x18\xda\xef\xf1""HELLO", LINE_INFO()); - } - - //Check tx passes after message timeout. 29 bit. Good Filter. NoPadding. STD address. Multiple Frame timeout then Single Frame. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MFTimeoutSFSuccess) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 23, 0, "\x18\xda\xef\xf1""Long data because I can", LINE_INFO()); - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 9, 0, "\x18\xda\xef\xf1""HELLO", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 2, 1000); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x17""Long d", LINE_INFO()); //First Frame. Not replying so it needs to time out. - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x05""HELLO", LINE_INFO()); //Reply to the next message. - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 5, 0, "\x18\xda\xef\xf1""HELLO", LINE_INFO()); - } - - //Check tx passes after mid-message timeout. 29 bit. Good Filter. NoPadding. STD address. Multiple Frame mid-timeout then Single Frame. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MFMidTimeoutSFSuccess) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 23, 0, "\x18\xda\xef\xf1""Long data because I can", LINE_INFO()); - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 9, 0, "\x18\xda\xef\xf1""HELLO", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x17""Long d", LINE_INFO()); //First Frame. Not replying so it needs to time out. - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x01\x00", 3, 2, LINE_INFO(), 1000);//Start a conversation - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""ata bec", LINE_INFO());//Check passthru device sent more data, but don't reply to it - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x05""HELLO", LINE_INFO()); //Reply to the next message. - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 5, 0, "\x18\xda\xef\xf1""HELLO", LINE_INFO()); - } - - //Check slow tx passes without hitting FC timeout. 29 bit. Good Filter. NoPadding. STD address. Long STmin, catches if FC timeout applies before needed. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_SLOWMF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x30""AABBCC", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x06\x7F", 3, 6, LINE_INFO(), 3000);//Start a conversation... but slow. FC timeout is 250 ms. - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO());//Check this convo doesn't trigger that timeout. - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""GHHIIJJ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[2], 0, 0x18DAEFF1, TRUE, FALSE, "\x23""KKLLMMN", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[3], 0, 0x18DAEFF1, TRUE, FALSE, "\x24""NOOPPQQ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[4], 0, 0x18DAEFF1, TRUE, FALSE, "\x25""RRSSTTU", LINE_INFO());//Some of these should fail to recv if there is an issue. - check_panda_can_msg(panda_msg_recv[5], 0, 0x18DAEFF1, TRUE, FALSE, "\x26""UVVWWXX", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - } - - //Check MF tx can be sent along side of a periodic message. 29 bit. Good Filter. NoPadding. STD address. Long STmin, checks that MF tx and periodic TX don't break each other. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_SLOWMF_WithPeriodicMsg) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - auto p = getPanda(500); - - //Timing diagram of this test. - //* is a periodic msg transfer; F is first frame, L is Flow control, C is Consecutive Frame. - // *~~~~~~~*~~~~~~~*~~~~~~~* (The alignment here is unimportant. The exact order is not checked. - //F C----C----C----C----C----C (100 ms between Cs) - // L - - auto msgid = J2534_start_periodic_msg_checked(chanid, ISO15765, CAN_29BIT_ID, 6, 0, "\x18\xda\xef\xf1""HI", 130, LINE_INFO()); - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 2); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x02""HI", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x30""AABBCC", LINE_INFO()); - - Assert::IsTrue(p->can_send(0x18DAF1EF, TRUE, (const uint8_t*)"\x30\x06\x64", 3, panda::PANDA_CAN1), _T("Panda send says it failed."), LINE_INFO()); - - Timer t_permsg = Timer(); - Timer t_MFmsg = Timer(); - unsigned int MFframesReceived = 0; - unsigned int PeriodicMsgReceived = 1; //Because of the first panda_recv_loop above. - std::array const mfMsgExpectedParts{ "\x21""DDEEFFG", "\x22""GHHIIJJ", "\x23""KKLLMMN", "\x24""NOOPPQQ", "\x25""RRSSTTU", "\x26""UVVWWXX" }; - - while (TRUE) { - std::vectormsg_recv = p->can_recv(); - for (auto msg : msg_recv) { - if (msg.is_receipt) continue; - if ((msg.dat[0] & 0xf0) == 0x20) { - Assert::AreEqual(mfMsgExpectedParts[MFframesReceived], std::string((const char*)msg.dat, msg.len), _T("Got wrong part of MF msg."), LINE_INFO()); - MFframesReceived++; - t_MFmsg.reset(); - } else if (std::string((const char*)msg.dat, msg.len) == "\x02HI") { - PeriodicMsgReceived++; - t_permsg.reset(); - } else { - Assert::IsTrue(FALSE, _T("Got impossible message. Something is very wrong. Check other tests."), LINE_INFO()); - } - } - - if (MFframesReceived >= 6) break; - Assert::IsTrue(300 > t_permsg.getTimePassed(), _T("Timed out waiting for periodic msessage frame."), LINE_INFO()); - Assert::IsTrue(300 > t_MFmsg.getTimePassed(), _T("Timed out waiting for multiframe msessage frame."), LINE_INFO()); - - if (msg_recv.size() == 0) - Sleep(10); - } - - //Stop the periodic message and grab any data it may have sent since we last checked. - //Not sure if this is needed. - Assert::AreEqual(STATUS_NOERROR, PassThruStopPeriodicMsg(chanid, msgid), _T("Failed to delete filter."), LINE_INFO()); - auto extra_panda_msg = panda_recv_loop_loose(p, 0, 200); - for (auto msg : extra_panda_msg) { - if (std::string((const char*)msg.dat, msg.len) == "\x02HI") { - PeriodicMsgReceived++; - Logger::WriteMessage("Received extra periodic message."); - } else { - Assert::IsTrue(FALSE, _T("Got impossible message. Something is very wrong. Check other tests."), LINE_INFO()); - } - } - - Assert::IsTrue(PeriodicMsgReceived > 3, _T("Did not receive enough periodic messages. Likely canceled or delayed."), LINE_INFO()); - - std::ostringstream stringStream; - stringStream << "PeriodicMsgReceived = " << PeriodicMsgReceived << std::endl; - Logger::WriteMessage(stringStream.str().c_str()); - - unsigned int periodicTxIndicationCount = 0; - unsigned int TxIndicationCount = 0; - auto j2534_msg_recv = j2534_recv_loop(chanid, 2 + (PeriodicMsgReceived * 2)); - for (int i = 0; i < PeriodicMsgReceived + 1; i++) { - check_J2534_can_msg(j2534_msg_recv[(i * 2) + 0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - switch (j2534_msg_recv[(i * 2) + 1].DataSize) { - case 4 + 2: - check_J2534_can_msg(j2534_msg_recv[(i * 2) + 1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 2, 0, "\x18\xda\xef\xf1""HI", LINE_INFO()); - break; - case 4 + 48: - check_J2534_can_msg(j2534_msg_recv[(i * 2) + 1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - break; - default: - Assert::IsTrue(FALSE, _T("Got unexpected data!"), LINE_INFO()); - } - } - - Assert::AreNotEqual(PeriodicMsgReceived, periodicTxIndicationCount, _T("Wrong number of periodic msgs reported by passthru device."), LINE_INFO()); - Assert::AreNotEqual(1, TxIndicationCount, _T("Wrong number of TX msgs reported by passthru device."), LINE_INFO()); - } - - ///////////////////// Tests checking things break or recover during send/receive ///////////////////// - - //Check rx FAILS when frame is dropped. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_FailRx_29b_Filter_NoPad_STD_FFCF_DropFrame) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame - auto panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x13""ninete", 8, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x30\x00\x00", 3), LINE_INFO()); - - //Check first frame is registered with J2534 - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE, 0, 4, 0, "\x18\xda\xf1\xef", LINE_INFO()); - - //Send the rest of the message - //Missing the 2nd frame "\x21""en byte" - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""s here", 7, 0, LINE_INFO()); - - //Check J2534 DOES NOT construct the incomplete message - j2534_recv_loop(chanid, 0); - } - - //Check rx ignores frames that arrive out of order. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_PassRx_29b_Filter_NoPad_STD_FFCF_FrameNumSkip) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame - auto panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x13""ABCDEF", 8, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x30\x00\x00", 3), LINE_INFO()); - - //Check first frame is registered with J2534 - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE, 0, 4, 0, "\x18\xda\xf1\xef", LINE_INFO()); - - //Send the rest of the message - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""XXXXXX", 7, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x21""GHIJKLM", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x23""ZZZZZZ", 7, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""NOPQRS", 7, 0, LINE_INFO()); - - //Check J2534 constructa the complete message from the correctly numbered frames. - j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID, 0, 4 + 0x13, 4 + 0x13, "\x18\xda\xf1\xef""ABCDEFGHIJKLMNOPQRS", LINE_INFO()); - } - - //Check Single Frame rx RESETS ongoing multiframe transmission. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_PassRx_29b_Filter_NoPad_STD_SFRxResetsMFRx) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame - auto panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x13""ABCDEF", 8, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x30\x00\x00", 3), LINE_INFO()); - - //Check first frame is registered with J2534 - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE, 0, 4, 0, "\x18\xda\xf1\xef", LINE_INFO()); - - //Send the next part of the message multi message - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x21""GHIJKLM", 8, 0, LINE_INFO()); - - //ABORTING MESSAGE - //Send a NEW single frame message and check the J2534 device gets it (but not the original message it was receiving. - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x06""ABC123", 7, 0, LINE_INFO()); - j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID, 0, 10, 10, "\x18\xda\xf1\xef""ABC123", LINE_INFO()); - - //Resume sending the old message, and check th eJ2534 device didn't get a message. - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""NOPQRS", 7, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0); - } - - //The documentation says that a s ingle channel can not send and receive messages trhough a - //single conversation (flow control filter) at the same time. However, the required behavior - //when this is detected is not described. This test was my best understanding of how it was - //wanted, but I no longer see the point. For now I am disabling it. - /*//Check Single Frame tx RESETS ongoing multiframe rx transmission. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_PassRx_29b_Filter_NoPad_STD_SFTxResetsMFRx) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame - auto panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x13""ABCDEF", 8, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x30\x00\x00", 3), LINE_INFO()); - - //Check first frame is registered with J2534 - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE, 0, 4, 0, "\x18\xda\xf1\xef", LINE_INFO()); - - //Send the next part of the message multi message - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x21""GHIJKLM", 8, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0); - - //ABORTING MESSAGE - //Send a NEW single frame message and check the J2534 device gets it (but not the original message it was receiving. - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 11, 0, "\x18\xda\xef\xf1""TX_TEST", LINE_INFO()); - j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - - panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x07""TX_TEST", LINE_INFO()); - /////////////////////////// - - //Resume sending the old message, and check th eJ2534 device didn't get a message. - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""NOPQRS", 7, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0); - }*/ - - //TODO check rx is cleared by tx (multi). Or not.... read above note. - - //Check multiframe rx RESETS ongoing multiframe transmission. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_PassRx_29b_Filter_NoPad_STD_FFCF_MFRxResetsMFRx) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame - auto panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x13""ABCDEF", 8, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x30\x00\x00", 3), LINE_INFO()); - - //Check first frame is registered with J2534 - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE, 0, 4, 0, "\x18\xda\xf1\xef", LINE_INFO()); - - //Send the next part of the multi message A - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x21""GHIJKLM", 8, 0, LINE_INFO()); - - //ABORTING MESSAGE A - //Send a NEW multi frame message (B) and check the J2534 device gets it (but not the original message it was receiving. - //Send first frame, then check we get a flow control frame - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x13""ninete", 8, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x30\x00\x00", 3), LINE_INFO()); - - //Check first frame is registered with J2534 - j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE, 0, 4, 0, "\x18\xda\xf1\xef", LINE_INFO()); - - //Send the rest of the message - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x21""en byte", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""s here", 7, 0, LINE_INFO()); - - //Check J2534 constructed the whole message - j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID, 0, 4 + 0x13, 4 + 0x13, "\x18\xda\xf1\xef""nineteen bytes here", LINE_INFO()); - //////////////////////// End sending B - - //Resume sending the multi message A, and check th eJ2534 device didn't get a message. - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""NOPQRS", 7, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0); - } - - //Check rx fails gracefully if final CF of MF rx is too short. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_FailRxFinalCFTooShort_29b_Filter_NoPad_STD_FFCF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame - auto panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x13""ninete", 8, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x30\x00\x00", 3), LINE_INFO()); - - //Check first frame is registered with J2534 - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE, 0, 4, 0, "\x18\xda\xf1\xef", LINE_INFO()); - - //Send the rest of the message - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x21""en byte", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""s her", 6, 0, LINE_INFO()); //The transaction should reset here because more data could have been sent. - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x23""e", 2, 0, LINE_INFO()); - - //Check J2534 constructed the whole message - j2534_msg_recv = j2534_recv_loop(chanid, 0); - } - - //Check rx fails gracefully if first frame is too short. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_FailRxFFTooShort_29b_Filter_NoPad_STD_FFCF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame. The transaction should reset immediately because more data could have been sent in this frame. - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x10\x13""ninet", 7, 0, LINE_INFO()); - j2534_recv_loop(chanid, 0); - - //Send the rest of the message - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x21""een byt", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x22""es here", 8, 0, LINE_INFO()); - - //Check J2534 constructed the whole message - j2534_recv_loop(chanid, 0); - } - - //Check MF tx will stop upon receiving a flow control ABORT. 29 bit. Good Filter. NoPadding. STD address. Large STmin, then abort, then send SF. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD__MF_FCAbort_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x30""AABBCC", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x02\x20", 3, 2, LINE_INFO());//Start a conversation. FC timeout is 32 ms. - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""GHHIIJJ", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x32\x0\x0", 3, 0, LINE_INFO());//Abort the conversation - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 4, 0, "\x18\xda\xef\xf1""SUP!", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 4, 0, "\x18\xda\xef\xf1""SUP!", LINE_INFO()); - } - - //Check MF tx will stop upon receiving a flow control ABORT during valid blocksize. 29 bit. Good Filter. NoPadding. STD address. Large STmin, then mid tx abort, then send SF. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD__MF_FCMixTXAbort_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x30""AABBCC", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x06\x7F", 3, 1, LINE_INFO(), 200);//Start a conversation. FC timeout is 127 ms. - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x32\x0\x0", 3, 0, LINE_INFO());//Abort the conversation - panda_recv_loop(p, 0, 200); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 4, 0, "\x18\xda\xef\xf1""SUP!", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 4, 0, "\x18\xda\xef\xf1""SUP!", LINE_INFO()); - } - - //Check slow tx can be stalled past timeout with CF WAIT frames. 29 bit. Good Filter. NoPadding. STD address. MF tx that would timeout without WAIT frames. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MFWithWaitFrames) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - write_ioctl(chanid, ISO15765_WFT_MAX, 10, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x30""AABBCC", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x02\x40", 3, 2, LINE_INFO(), 3000);//Start a conversation. FC timeout is 250 ms. - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""GHHIIJJ", LINE_INFO()); - - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x0\x0", 3, 4, LINE_INFO(), 3000);//Start a conversation. FC timeout is 250 ms. - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x23""KKLLMMN", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x24""NOOPPQQ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[2], 0, 0x18DAEFF1, TRUE, FALSE, "\x25""RRSSTTU", LINE_INFO());//Some of these should fail to recv if there is an issue. - check_panda_can_msg(panda_msg_recv[3], 0, 0x18DAEFF1, TRUE, FALSE, "\x26""UVVWWXX", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - } - - //Check slow tx can be stalled past timeout with CF WAIT frames during normal TX. 29 bit. Good Filter. NoPadding. STD address. Stalling working MF tx. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MFWithMidTXWaitFrames) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - write_ioctl(chanid, ISO15765_WFT_MAX, 10, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x30""AABBCC", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x06\x64", 3, 2, LINE_INFO(), 120);//Start a conversation. STmin 100. FC timeout is 250 ms. - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""GHHIIJJ", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x0\x0", 3, 4, LINE_INFO(), 3000);//Start a conversation. FC timeout is 250 ms. - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x23""KKLLMMN", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x24""NOOPPQQ", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[2], 0, 0x18DAEFF1, TRUE, FALSE, "\x25""RRSSTTU", LINE_INFO());//Some of these should fail to recv if there is an issue. - check_panda_can_msg(panda_msg_recv[3], 0, 0x18DAEFF1, TRUE, FALSE, "\x26""UVVWWXX", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - } - - //Check that too many WAIT frames will abort the transfer. 29 bit. Good Filter. NoPadding. STD address. Too much stalling causes abort. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_STD_MFTooManyWaitFrames) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID, 4, "\xff\xff\xff\xff", "\x18\xda\xf1\xef", "\x18\xda\xef\xf1", LINE_INFO()); - write_ioctl(chanid, LOOPBACK, TRUE, LINE_INFO()); - write_ioctl(chanid, ISO15765_WFT_MAX, 2, LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 48, 0, "\x18\xda\xef\xf1""AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x10\x30""AABBCC", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x02\x64", 3, 2, LINE_INFO(), 120);//Start a conversation. STmin 100. FC timeout is 250 ms. - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x21""DDEEFFG", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x22""GHHIIJJ", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x02\x64", 3, 2, LINE_INFO(), 120);//Resume the conversation. - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x23""KKLLMMN", LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, "\x24""NOOPPQQ", LINE_INFO()); - - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x31\x0\x0", 3, 0, LINE_INFO(), 100);//Delay the conversation. - Sleep(100); - - //Should not resume because the conversation has been delayed too long. - panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x30\x0\x0", 3, 0, LINE_INFO(), 300); - - //Send a SF message to check the tubes are not clogged. - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID, 0, 4 + 4, 0, "\x18\xda\xef\xf1""SUP!", LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 2); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION, 0, 4, 0, "\x18\xda\xef\xf1", LINE_INFO()); - check_J2534_can_msg(j2534_msg_recv[1], ISO15765, CAN_29BIT_ID | TX_MSG_TYPE, 0, 4 + 4, 0, "\x18\xda\xef\xf1""SUP!", LINE_INFO()); - } - - ///////////////////// Tests checking things actually send/receive. Ext 5 byte Addressing ///////////////////// - - //Check rx passes with filter. 29 bit. Good Filter. NoPadding. EXT address. Single Frame. - TEST_METHOD(J2534_ISO15765_SuccessRx_29b_Filter_NoPad_EXT_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID | ISO15765_ADDR_TYPE, 5, "\xff\xff\xff\xff\xff", "\x18\xda\xf1\xef\x13", "\x18\xda\xef\xf1\x13", LINE_INFO()); - auto p = getPanda(500); - - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x13""\x06""ABC123", 8, 0, LINE_INFO()); - - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | ISO15765_ADDR_TYPE, 0, 11, 11, "\x18\xda\xf1\xef\x13""ABC123", LINE_INFO()); - } - - //Check tx passes with filter. 29 bit. Good Filter. NoPadding. EXT address. Single Frame. - TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_EXT_SF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID | ISO15765_ADDR_TYPE, 5, "\xff\xff\xff\xff\xff", "\x18\xda\xf1\xef\x13", "\x18\xda\xef\xf1\x13", LINE_INFO()); - auto p = getPanda(500); - - J2534_send_msg_checked(chanid, ISO15765, 0, CAN_29BIT_ID | ISO15765_ADDR_TYPE, 0, 11, 0, "\x18\xda\xef\xf1\x13""DERP!!", LINE_INFO()); - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | TX_INDICATION | ISO15765_ADDR_TYPE, 0, 5, 0, "\x18\xda\xef\xf1\x13", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, "\x13""\x06""DERP!!", LINE_INFO()); - } - - //Check rx passes with filter. 29 bit. Good Filter. NoPadding. EXT address. Multi Frame. - TEST_METHOD(J2534_ISO15765_SuccessRx_29b_Filter_NoPad_EXT_FFCF) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID | ISO15765_ADDR_TYPE, 5, "\xff\xff\xff\xff\xff", "\x18\xda\xf1\xef\x13", "\x18\xda\xef\xf1\x13", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame - Assert::IsTrue(p->can_send(0x18DAF1EF, TRUE, (const uint8_t*)"\x13""\x10\x13""ninet", 8, panda::PANDA_CAN1), _T("Panda send says it failed."), LINE_INFO()); - - //Check first frame is registered with J2534 - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE | ISO15765_ADDR_TYPE, 0, 5, 0, "\x18\xda\xf1\xef\x13", LINE_INFO()); - - auto panda_msg_recv = panda_recv_loop(p, 2); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAF1EF, TRUE, TRUE, std::string("\x13""\x10\x13""ninet", 8), LINE_INFO()); - check_panda_can_msg(panda_msg_recv[1], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x13""\x30\x00\x00", 4), LINE_INFO()); - - //Send the rest of the message - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x13""\x21""een by", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x13""\x22""tes he", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x13""\x23""re", 8, 0, LINE_INFO()); - - //Check J2534 constructed the whole message - j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | ISO15765_ADDR_TYPE, 0, 5 + 0x13, 5 + 0x13, "\x18\xda\xf1\xef\x13""nineteen bytes here", LINE_INFO()); - } - - //Check tx passes with filter. 29 bit. Good Filter. NoPadding. EXT address. Multi Frame. - /*TEST_METHOD(J2534_ISO15765_SuccessTx_29b_Filter_NoPad_EXT_FFCF) - { //TODO when TX works with flow control}*/ - - ///////////////////// Tests checking things break or recover during send/receive. Ext 5 byte Addressing ///////////////////// - - //Check rx FAILS when frame is dropped. 29 bit. Good Filter. NoPadding. STD address. Multi Frame. - TEST_METHOD(J2534_ISO15765_FailRx_29b_Filter_NoPad_EXT_FFCF_DropFrame) - { - auto chanid = J2534_open_and_connect("", ISO15765, CAN_29BIT_ID, 500000, LINE_INFO()); - J2534_set_flowctrl_filter(chanid, CAN_29BIT_ID | ISO15765_ADDR_TYPE, 5, "\xff\xff\xff\xff\xff", "\x18\xda\xf1\xef\x13", "\x18\xda\xef\xf1\x13", LINE_INFO()); - auto p = getPanda(500); - - //Send first frame, then check we get a flow control frame - auto panda_msg_recv = checked_panda_send(p, 0x18DAF1EF, TRUE, "\x13\x10\x13""ninet", 8, 1, LINE_INFO()); - check_panda_can_msg(panda_msg_recv[0], 0, 0x18DAEFF1, TRUE, FALSE, std::string("\x13\x30\x00\x00", 4), LINE_INFO()); - - //Check first frame is registered with J2534 - auto j2534_msg_recv = j2534_recv_loop(chanid, 1); - check_J2534_can_msg(j2534_msg_recv[0], ISO15765, CAN_29BIT_ID | START_OF_MESSAGE | ISO15765_ADDR_TYPE, 0, 5, 0, "\x18\xda\xf1\xef\x13", LINE_INFO()); - - //Send the rest of the message - //Missing the 2nd frame "\x13""\x21""een by" - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x13""\x22""tes he", 8, 0, LINE_INFO()); - checked_panda_send(p, 0x18DAF1EF, TRUE, "\x13""\x23""re", 8, 0, LINE_INFO()); - - //Check J2534 DOES NOT construct the incomplete message - j2534_recv_loop(chanid, 0); - } - - bool didopen = FALSE; - unsigned long devid; - - unsigned long open_dev(const char* name, long assert_err = STATUS_NOERROR, TCHAR* failmsg = _T("Failed to open device.")) { - unsigned int res = PassThruOpen((void*)name, &devid); - if (res == STATUS_NOERROR) didopen = TRUE; - return res; - } - - unsigned long J2534_open_and_connect(const char* name, unsigned long ProtocolID, unsigned long Flags, unsigned long bps, const __LineInfo* pLineInfo = NULL) { - unsigned long chanid; - Assert::AreEqual(STATUS_NOERROR, open_dev(name), _T("Failed to open device."), pLineInfo); - Assert::AreEqual(STATUS_NOERROR, PassThruConnect(devid, ProtocolID, Flags, bps, &chanid), _T("Failed to open channel."), pLineInfo); - write_ioctl(chanid, LOOPBACK, FALSE, LINE_INFO()); // DISABLE J2534 ECHO/LOOPBACK - return chanid; - } - - }; -} diff --git a/drivers/windows/pandaJ2534DLL Test/pandaJ2534DLL Test.vcxproj b/drivers/windows/pandaJ2534DLL Test/pandaJ2534DLL Test.vcxproj deleted file mode 100644 index bab867ab4..000000000 --- a/drivers/windows/pandaJ2534DLL Test/pandaJ2534DLL Test.vcxproj +++ /dev/null @@ -1,122 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {7912F978-B48C-4C5D-8BFD-5D1E22158E47} - Win32Proj - pandaJ2534DLLTest - 10.0 - Tests - - - - DynamicLibrary - true - v142 - Unicode - false - - - DynamicLibrary - false - v142 - true - Unicode - false - - - - - - - - - - - - - - - true - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - true - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - - Use - Level3 - Disabled - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories);$(SolutionDir) - WIN32;_DEBUG;%(PreprocessorDefinitions) - true - - - Windows - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib - - - - - Level3 - Use - MaxSpeed - true - true - $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories);$(SolutionDir) - WIN32;NDEBUG;%(PreprocessorDefinitions) - true - - - Windows - true - true - $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib - - - - - - - - - - - - - - - - - Create - Create - - - - - - - - {96e0e646-ee76-444d-9a77-a0cd7f781deb} - - - {a2bb18a5-f26b-48d6-bbb5-b83d64473c77} - - - - - - \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL Test/pandaJ2534DLL Test.vcxproj.filters b/drivers/windows/pandaJ2534DLL Test/pandaJ2534DLL Test.vcxproj.filters deleted file mode 100644 index 476ce458d..000000000 --- a/drivers/windows/pandaJ2534DLL Test/pandaJ2534DLL Test.vcxproj.filters +++ /dev/null @@ -1,63 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL Test/panda_tests.cpp b/drivers/windows/pandaJ2534DLL Test/panda_tests.cpp deleted file mode 100644 index 51b0bfcf2..000000000 --- a/drivers/windows/pandaJ2534DLL Test/panda_tests.cpp +++ /dev/null @@ -1,187 +0,0 @@ -#include "stdafx.h" -#include "panda_shared/panda.h" -#include "TestHelpers.h" - -#include - -using namespace Microsoft::VisualStudio::CppUnitTestFramework; -using namespace panda; - -namespace pandaTestNative -{ - TEST_CLASS(DeviceDiscovery) - { - public: - - TEST_METHOD(Panda_DevDiscover_ListDevices) - { - auto pandas_available = Panda::listAvailablePandas(); - Assert::IsTrue(pandas_available.size() > 0, _T("No pandas were found.")); - for (auto sn : pandas_available) { - Assert::IsTrue(sn.size() == 24, _T("panda Serial Number not 24 characters long.")); - } - } - - TEST_METHOD(Panda_DevDiscover_OpenFirstDevice) - { - auto pandas_available = Panda::listAvailablePandas(); - Assert::IsTrue(pandas_available.size() > 0, _T("No pandas were found.")); - - auto p1 = Panda::openPanda(pandas_available[0]); - Assert::IsFalse(p1 == nullptr, _T("Could not open panda.")); - } - - TEST_METHOD(Panda_DevDiscover_OpenDeviceNoName) - { - auto pandas_available = Panda::listAvailablePandas(); - Assert::IsTrue(pandas_available.size() > 0, _T("No pandas were found.")); - - auto p1 = Panda::openPanda(""); - Assert::IsFalse(p1 == nullptr, _T("Could not open panda.")); - Assert::IsTrue(p1->get_usb_sn() == pandas_available[0], _T("Could not open panda.")); - } - - TEST_METHOD(Panda_DevDiscover_OpenDeviceUnavailable) - { - auto p1 = Panda::openPanda("ZZZZZZZZZZZZZZZZZZZZZZZZ"); - Assert::IsTrue(p1 == nullptr, _T("Invalid sn still worked.")); - } - - TEST_METHOD(Panda_DevDiscover_WillNotOpenAlreadyOpenedDevice) - { - auto pandas_available = Panda::listAvailablePandas(); - Assert::IsTrue(pandas_available.size() > 0, _T("No pandas were found.")); - - auto p1 = Panda::openPanda(pandas_available[0]); - Assert::IsFalse(p1 == nullptr, _T("Could not open panda.")); - - auto p2 = Panda::openPanda(pandas_available[0]); - Assert::IsTrue(p2 == nullptr, _T("Opened an already open panda.")); - } - - TEST_METHOD(Panda_DevDiscover_OpenedDeviceNotListed) - { - auto pandas_available = Panda::listAvailablePandas(); - Assert::IsTrue(pandas_available.size() > 0, _T("No pandas were found.")); - - auto p1 = Panda::openPanda(pandas_available[0]); - Assert::IsFalse(p1 == nullptr, _T("Could not open panda.")); - - auto pandas_available2 = Panda::listAvailablePandas(); - for (auto sn : pandas_available2) { - Assert::IsFalse(p1->get_usb_sn() == sn, _T("Opened panda appears in list of available pandas.")); - } - - } - }; - - TEST_CLASS(CANOperations) - { - public: - - TEST_METHOD(Panda_CAN_Echo) - { - auto p0 = getPanda(500, TRUE); - - uint32_t addr = 0xAA; - bool is_29b = FALSE; - uint8_t candata[8]; - - for (auto canbus : { PANDA_CAN1, PANDA_CAN2, PANDA_CAN3 }) { - uint8_t len = (rand() % 8) + 1; - for (size_t i = 0; i < len; i++) - candata[i] = rand() % 256; - - p0->can_send(addr, is_29b, candata, len, canbus); - Sleep(10); - - auto can_msgs = p0->can_recv(); - - Assert::AreEqual(2, can_msgs.size(), _T("Received the wrong number of CAN messages."), LINE_INFO()); - - for (auto msg : can_msgs) { - Assert::IsTrue(msg.addr == addr, _T("Wrong addr.")); - Assert::IsTrue(msg.bus == canbus, _T("Wrong bus.")); - Assert::IsTrue(msg.len == len, _T("Wrong len.")); - Assert::AreEqual(memcmp(msg.dat, candata, msg.len), 0, _T("Received CAN data not equal")); - for (int i = msg.len; i < 8; i++) - Assert::IsTrue(msg.dat[i] == 0, _T("Received CAN data not trailed by 0s")); - } - - Assert::IsTrue(can_msgs[0].is_receipt, _T("Didn't get receipt.")); - Assert::IsFalse(can_msgs[1].is_receipt, _T("Didn't get echo.")); - } - } - - TEST_METHOD(Panda_CAN_ChangeBaud) - { - auto p0 = getPanda(250); - auto p1 = getPanda(500); - - p0->can_send(0xAA, FALSE, (const uint8_t*)"\x1\x2\x3\x4\x5\x6\x7\x8", 8, panda::PANDA_CAN1); - panda_recv_loop(p0, 0); - panda_recv_loop(p1, 0); - - p0->set_can_speed_kbps(panda::PANDA_CAN1, 500); - - auto panda_msg_recv = panda_recv_loop(p0, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0xAA, FALSE, TRUE, "\x1\x2\x3\x4\x5\x6\x7\x8", LINE_INFO()); - panda_msg_recv = panda_recv_loop(p1, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0xAA, FALSE, FALSE, "\x1\x2\x3\x4\x5\x6\x7\x8", LINE_INFO()); - - ////////////////// - - p0->set_can_speed_kbps(panda::PANDA_CAN1, 250); - p0->can_send(0xC4, FALSE, (const uint8_t*)"\xA\B\xC\xD\xE\xF\x10\x11", 8, panda::PANDA_CAN1); - panda_recv_loop(p0, 0); - panda_recv_loop(p1, 0); - - p1->set_can_speed_kbps(panda::PANDA_CAN1, 250); - - panda_msg_recv = panda_recv_loop(p0, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0xC4, FALSE, TRUE, "\xA\B\xC\xD\xE\xF\x10\x11", LINE_INFO()); - panda_msg_recv = panda_recv_loop(p1, 1); - check_panda_can_msg(panda_msg_recv[0], 0, 0xC4, FALSE, FALSE, "\xA\B\xC\xD\xE\xF\x10\x11", LINE_INFO()); - } - - TEST_METHOD(Panda_CAN_ClearClears) - { - auto p0 = getPanda(500, TRUE); - p0->can_send(0xAA, FALSE, (const uint8_t*)"\x0\x1\x2\x3\x4\x5\x6\x7", 8, panda::PANDA_CAN1); - Sleep(100); - p0->can_clear(PANDA_CAN_RX); - - auto can_msgs = p0->can_recv(); - Assert::IsTrue(can_msgs.size() == 0, _T("Received messages after a clear.")); - } - }; - - TEST_CLASS(SerialOperations) - { - public: - - TEST_METHOD(Panda_LIN_Echo) - { - auto p0 = getPanda(500); - - for (auto lin_port : { SERIAL_LIN1, SERIAL_LIN2 }) { - p0->serial_clear(lin_port); - - for (int i = 0; i < 10; i++) { - uint8_t len = (rand() % LIN_MSG_MAX_LEN) + 1; - std::string lindata; - lindata.reserve(len); - - for (size_t j = 0; j < len; j++) - lindata += (const char)(rand() % 256); - - p0->serial_write(lin_port, lindata.c_str(), len); - Sleep(10); - - auto retdata = p0->serial_read(lin_port); - Assert::AreEqual(retdata, lindata); - } - } - } - }; -} \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL Test/stdafx.cpp b/drivers/windows/pandaJ2534DLL Test/stdafx.cpp deleted file mode 100644 index 84a1f0aaf..000000000 --- a/drivers/windows/pandaJ2534DLL Test/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// pandaJ2534DLL Test.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/drivers/windows/pandaJ2534DLL Test/stdafx.h b/drivers/windows/pandaJ2534DLL Test/stdafx.h deleted file mode 100644 index 1ac8bd8dc..000000000 --- a/drivers/windows/pandaJ2534DLL Test/stdafx.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#include "targetver.h" - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -// Windows Header Files: -#include -#include - -// Headers for CppUnitTest -#include "CppUnitTest.h" -#include //Used for formatting in TestHelpers.cpp -#include -#include diff --git a/drivers/windows/pandaJ2534DLL Test/targetver.h b/drivers/windows/pandaJ2534DLL Test/targetver.h deleted file mode 100644 index 87c0086de..000000000 --- a/drivers/windows/pandaJ2534DLL Test/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/drivers/windows/pandaJ2534DLL/Action.h b/drivers/windows/pandaJ2534DLL/Action.h deleted file mode 100644 index e9721c2ed..000000000 --- a/drivers/windows/pandaJ2534DLL/Action.h +++ /dev/null @@ -1,57 +0,0 @@ -#pragma once -#include - -#include "J2534Frame.h" - -class J2534Connection; - -/** -An Action represents a unit of work that can be scheduled for execution at a later time. -Actions are not guaranteed to be run at their specified time, but a best effort is made. -An Action will never execute early, but can execute later depending on what is in the -queus. -Many different operations are based on this base class. Instead of making a thread, -consider if the work can be offloaded to the Task Queue. -*/ -class Action -{ -public: - Action( - std::weak_ptr connection, - std::chrono::microseconds delay - ) : connection(connection), delay(delay) { }; - - Action( - std::weak_ptr connection - ) : connection(connection), delay(std::chrono::microseconds(0)) { }; - - //The function called by the task runner when this action is to be invoked. - virtual void execute() = 0; - - //Reschedule this Action for now(). - void scheduleImmediate() { - expire = std::chrono::steady_clock::now(); - } - - //Reschedule this Action relative to its last expiration time. - void scheduleDelay() { - expire += this->delay; - } - - //Reschedule this action {delay} after now(). - void scheduleImmediateDelay() { - expire = std::chrono::steady_clock::now() + this->delay; - } - - //Reschedule this Action based on a specific base time. - void schedule(std::chrono::time_point starttine, BOOL adddelayed) { - this->expire = starttine; - if (adddelayed) - expire += this->delay; - } - - std::weak_ptr connection; - std::chrono::microseconds delay; - //The timestamp at which point this Action is ready to be executed. - std::chrono::time_point expire; -}; diff --git a/drivers/windows/pandaJ2534DLL/J2534Connection.cpp b/drivers/windows/pandaJ2534DLL/J2534Connection.cpp deleted file mode 100644 index 8b25f07b5..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534Connection.cpp +++ /dev/null @@ -1,360 +0,0 @@ -#include "stdafx.h" -#include "J2534Connection.h" -#include "Timer.h" - -J2534Connection::J2534Connection( - std::shared_ptr panda_dev, - unsigned long ProtocolID, - unsigned long Flags, - unsigned long BaudRate -) : panda_dev(panda_dev), ProtocolID(ProtocolID), Flags(Flags), BaudRate(BaudRate), Parity(0), port(0) { } - -unsigned long J2534Connection::validateTxMsg(PASSTHRU_MSG* msg) { - if (msg->DataSize < this->getMinMsgLen() || msg->DataSize > this->getMaxMsgLen()) - return ERR_INVALID_MSG; - return STATUS_NOERROR; -} - -long J2534Connection::PassThruReadMsgs(PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout) { - //Timeout of 0 means return immediately. Non zero means WAIT for that time then return. Dafuk. - long err_code = STATUS_NOERROR; - Timer t = Timer(); - - unsigned long msgnum = 0; - while (msgnum < *pNumMsgs) { - if (Timeout > 0 && t.getTimePassed() >= Timeout) { - err_code = ERR_TIMEOUT; - break; - } - - //Synchronized won't work where we have to break out of a loop - messageRxBuff_mutex.lock(); - if (this->messageRxBuff.empty()) { - messageRxBuff_mutex.unlock(); - if (Timeout == 0) - break; - Sleep(2); - continue; - } - - auto msg_in = this->messageRxBuff.front(); - this->messageRxBuff.pop(); - messageRxBuff_mutex.unlock(); - - PASSTHRU_MSG *msg_out = &pMsg[msgnum++]; - msg_out->ProtocolID = this->ProtocolID; - msg_out->DataSize = msg_in.Data.size(); - memcpy(msg_out->Data, msg_in.Data.c_str(), msg_in.Data.size()); - msg_out->Timestamp = msg_in.Timestamp; - msg_out->RxStatus = msg_in.RxStatus; - msg_out->ExtraDataIndex = msg_in.ExtraDataIndex; - msg_out->TxFlags = 0; - if (msgnum == *pNumMsgs) break; - } - - if (msgnum == 0) - err_code = ERR_BUFFER_EMPTY; - *pNumMsgs = msgnum; - return err_code; -} - -long J2534Connection::PassThruWriteMsgs(PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout) { - //There doesn't seem to be much reason to implement the timeout here. - for (unsigned int msgnum = 0; msgnum < *pNumMsgs; msgnum++) { - PASSTHRU_MSG* msg = &pMsg[msgnum]; - if (msg->ProtocolID != this->ProtocolID) { - *pNumMsgs = msgnum; - return ERR_MSG_PROTOCOL_ID; - } - - auto retcode = this->validateTxMsg(msg); - if (retcode != STATUS_NOERROR) { - *pNumMsgs = msgnum; - return retcode; - } - - auto msgtx = this->parseMessageTx(*pMsg); - if (msgtx != nullptr) //Nullptr is supported for unimplemented connection types. - this->schedultMsgTx(std::dynamic_pointer_cast(msgtx)); - } - return STATUS_NOERROR; -} - -//The docs say that a device has to support 10 periodic messages, though more is ok. -//It is easier to store them on the connection, so 10 per connection it is. -long J2534Connection::PassThruStartPeriodicMsg(PASSTHRU_MSG *pMsg, unsigned long *pMsgID, unsigned long TimeInterval) { - if (pMsg->DataSize < getMinMsgLen() || pMsg->DataSize > getMaxMsgSingleFrameLen()) return ERR_INVALID_MSG; - if (pMsg->ProtocolID != this->ProtocolID) return ERR_MSG_PROTOCOL_ID; - if (TimeInterval < 5 || TimeInterval > 65535) return ERR_INVALID_TIME_INTERVAL; - - for (unsigned int i = 0; i < this->periodicMessages.size(); i++) { - if (periodicMessages[i] != nullptr) continue; - - *pMsgID = i; - auto msgtx = this->parseMessageTx(*pMsg); - if (msgtx != nullptr) { - periodicMessages[i] = std::make_shared(std::chrono::microseconds(TimeInterval*1000), msgtx); - periodicMessages[i]->scheduleImmediate(); - if (auto panda_dev = this->getPandaDev()) { - panda_dev->insertActionIntoTaskList(periodicMessages[i]); - } - } - return STATUS_NOERROR; - } - return ERR_EXCEEDED_LIMIT; -} - -long J2534Connection::PassThruStopPeriodicMsg(unsigned long MsgID) { - if (MsgID >= this->periodicMessages.size() || this->periodicMessages[MsgID] == nullptr) - return ERR_INVALID_MSG_ID; - this->periodicMessages[MsgID]->cancel(); - this->periodicMessages[MsgID] = nullptr; - return STATUS_NOERROR; -} - -long J2534Connection::PassThruStartMsgFilter(unsigned long FilterType, PASSTHRU_MSG *pMaskMsg, PASSTHRU_MSG *pPatternMsg, - PASSTHRU_MSG *pFlowControlMsg, unsigned long *pFilterID) { - for (unsigned int i = 0; i < this->filters.size(); i++) { - if (filters[i] == nullptr) { - try { - auto newfilter = std::make_shared(this, FilterType, pMaskMsg, pPatternMsg, pFlowControlMsg); - for (unsigned int check_idx = 0; check_idx < filters.size(); check_idx++) { - if (filters[check_idx] == nullptr) continue; - if (filters[check_idx] == newfilter) { - filters[i] = nullptr; - return ERR_NOT_UNIQUE; - } - } - *pFilterID = i; - filters[i] = newfilter; - return STATUS_NOERROR; - } catch (int e) { - return e; - } - } - } - return ERR_EXCEEDED_LIMIT; -} - -long J2534Connection::PassThruStopMsgFilter(unsigned long FilterID) { - if (FilterID >= this->filters.size() || this->filters[FilterID] == nullptr) - return ERR_INVALID_FILTER_ID; - this->filters[FilterID] = nullptr; - return STATUS_NOERROR; -} - -long J2534Connection::PassThruIoctl(unsigned long IoctlID, void *pInput, void *pOutput) { - return STATUS_NOERROR; -} - -long J2534Connection::init5b(SBYTE_ARRAY* pInput, SBYTE_ARRAY* pOutput) { - if (pInput->NumOfBytes == 1) { - if (auto panda_ps = this->panda_dev.lock()) { - auto resp = panda_ps->kline_five_baud_init(pInput->BytePtr[0]); - if (resp.size() > 0) { - auto key_bytes = resp.c_str(); - if (pOutput->NumOfBytes >= 1) { - pOutput->BytePtr[0] = key_bytes[0]; - } - if (pOutput->NumOfBytes >= 2) { - pOutput->BytePtr[1] = key_bytes[1]; - } - return STATUS_NOERROR; - } - } - } - - return ERR_FAILED; -} -long J2534Connection::initFast(PASSTHRU_MSG* pInput, PASSTHRU_MSG* pOutput) { - if (auto panda_ps = this->panda_dev.lock()) { - auto start_comm = std::string((char*)pInput->Data, pInput->DataSize); - auto resp = panda_ps->kline_wakeup_start_comm(start_comm); - if (resp.size() > 0) { - pOutput->ProtocolID = pInput->ProtocolID; - pOutput->RxStatus = 0; - pOutput->TxFlags = 0; - pOutput->Timestamp = pInput->Timestamp; - pOutput->ExtraDataIndex = resp.size(); - memcpy(pOutput->Data, resp.c_str(), resp.size()); - pOutput->DataSize = resp.size(); - return STATUS_NOERROR; - } - } - - return ERR_FAILED; -} -long J2534Connection::clearTXBuff() { - if (auto panda_ps = this->panda_dev.lock()) { - synchronized(staged_writes_lock) { - this->txbuff = {}; - switch (this->ProtocolID) - { - case CAN: - case CAN_PS: - case ISO15765: - case ISO15765_PS: - panda_ps->panda->can_clear(panda::PANDA_CAN1_TX); - break; - case ISO9141: - case ISO9141_PS: - case ISO14230: - case ISO14230_PS: - panda_ps->panda->serial_clear(panda::SERIAL_LIN1); - panda_ps->panda->serial_clear(panda::SERIAL_LIN2); - break; - default: - break; - } - } - return STATUS_NOERROR; - } - return ERR_FAILED; -} -long J2534Connection::clearRXBuff() { - if (auto panda_ps = this->panda_dev.lock()) { - synchronized(messageRxBuff_mutex) { - this->messageRxBuff = {}; - switch (this->ProtocolID) - { - case CAN: - case CAN_PS: - case ISO15765: - case ISO15765_PS: - panda_ps->panda->can_clear(panda::PANDA_CAN_RX); - break; - case ISO9141: - case ISO9141_PS: - case ISO14230: - case ISO14230_PS: - panda_ps->panda->serial_clear(panda::SERIAL_LIN1); - panda_ps->panda->serial_clear(panda::SERIAL_LIN2); - break; - default: - break; - } - } - return STATUS_NOERROR; - } - return ERR_FAILED; -} -long J2534Connection::clearPeriodicMsgs() { - for (unsigned int i = 0; i < this->periodicMessages.size(); i++) { - if (periodicMessages[i] == nullptr) continue; - this->periodicMessages[i]->cancel(); - this->periodicMessages[i] = nullptr; - } - - return STATUS_NOERROR; -} -long J2534Connection::clearMsgFilters() { - for (auto& filter : this->filters) filter = nullptr; - return STATUS_NOERROR; -} - -void J2534Connection::setBaud(unsigned long baud) { - this->BaudRate = baud; -} - -void J2534Connection::setParity(unsigned long parity) { - this->Parity = parity; -} - -void J2534Connection::schedultMsgTx(std::shared_ptr msgout) { - if (auto panda_ps = this->panda_dev.lock()) { - synchronized(staged_writes_lock) { - this->txbuff.push(msgout); - panda_ps->registerConnectionTx(shared_from_this()); - } - } -} - -void J2534Connection::rescheduleExistingTxMsgs() { - if (auto panda_ps = this->panda_dev.lock()) { - synchronized(staged_writes_lock) { - panda_ps->unstallConnectionTx(shared_from_this()); - } - } -} - -//Works well as long as the protocol doesn't support flow control. -void J2534Connection::processMessage(const J2534Frame& msg) { - FILTER_RESULT filter_res = FILTER_RESULT_NEUTRAL; - - for (auto filter : this->filters) { - if (filter == nullptr) continue; - FILTER_RESULT current_check_res = filter->check(msg); - if (current_check_res == FILTER_RESULT_BLOCK) return; - if (current_check_res == FILTER_RESULT_PASS) filter_res = FILTER_RESULT_PASS; - } - - if (filter_res == FILTER_RESULT_PASS) { - addMsgToRxQueue(msg); - } -} - -void J2534Connection::processIOCTLSetConfig(unsigned long Parameter, unsigned long Value) { - switch (Parameter) { - case DATA_RATE: // 5-500000 - this->setBaud(Value); - break; - case LOOPBACK: // 0 (OFF), 1 (ON) [0] - this->loopback = (Value != 0); - break; - case PARITY: - this->setParity(Value); - break; - case ISO15765_WFT_MAX: - break; - case NODE_ADDRESS: // J1850PWM Related (Not supported by panda). HDS requires these to 'work'. - case NETWORK_LINE: - case P1_MIN: // A bunch of stuff relating to ISO9141 and ISO14230 that the panda - case P1_MAX: // currently doesn't support. Don't let HDS know we can't use these. - case P2_MIN: - case P2_MAX: - case P3_MIN: - case P3_MAX: - case P4_MIN: - case P4_MAX: - case W0: - case W1: - case W2: - case W3: - case W4: - case W5: - case TIDLE: - case TINIL: - case TWUP: - case T1_MAX: // SCI related options. The panda does not appear to support this - case T2_MAX: - case T3_MAX: - case T4_MAX: - case T5_MAX: - break; // Just smile and nod. - default: - printf("Got unknown SET code %X\n", Parameter); - } - - // reserved parameters usually mean special equiptment is required - //if (Parameter >= 0x20) { - // throw ERR_NOT_SUPPORTED; - //} -} - -unsigned long J2534Connection::processIOCTLGetConfig(unsigned long Parameter) { - switch (Parameter) { - case DATA_RATE: - return this->getBaud(); - case LOOPBACK: - return this->loopback; - break; - case BIT_SAMPLE_POINT: - return 80; - case SYNC_JUMP_WIDTH: - return 15; - default: - // HDS rarely reads off values through ioctl GET_CONFIG, but it often - // just wants the call to pass without erroring, so just don't do anything. - printf("Got unknown code %X\n", Parameter); - } -} diff --git a/drivers/windows/pandaJ2534DLL/J2534Connection.h b/drivers/windows/pandaJ2534DLL/J2534Connection.h deleted file mode 100644 index d73bdd860..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534Connection.h +++ /dev/null @@ -1,143 +0,0 @@ -#pragma once -#include "panda_shared/panda.h" -#include "J2534_v0404.h" -#include "synchronize.h" -#include "J2534Frame.h" -#include "PandaJ2534Device.h" -#include "J2534MessageFilter.h" -#include "MessagePeriodic.h" - -class J2534Frame; -class Action; -class PandaJ2534Device; -class J2534MessageFilter; - -#define check_bmask(num, mask)(((num) & mask) == mask) - -/** -Class representing a generic J2534 Connection created by PassThruConnect, -and is associated with a channelID given to the J2534 API user. -Subclasses implement specific J2534 supported protocols. -*/ -class J2534Connection : public std::enable_shared_from_this { - friend class PandaJ2534Device; - -public: - J2534Connection( - std::shared_ptr panda_dev, - unsigned long ProtocolID, - unsigned long Flags, - unsigned long BaudRate - ); - virtual ~J2534Connection() {}; - - //J2534 API functions - - virtual long PassThruReadMsgs(PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout); - long PassThruWriteMsgs(PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout); - virtual long PassThruStartPeriodicMsg(PASSTHRU_MSG *pMsg, unsigned long *pMsgID, unsigned long TimeInterval); - virtual long PassThruStopPeriodicMsg(unsigned long MsgID); - - virtual long PassThruStartMsgFilter(unsigned long FilterType, PASSTHRU_MSG *pMaskMsg, PASSTHRU_MSG *pPatternMsg, - PASSTHRU_MSG *pFlowControlMsg, unsigned long *pFilterID); - - virtual long PassThruStopMsgFilter(unsigned long FilterID); - virtual long PassThruIoctl(unsigned long IoctlID, void *pInput, void *pOutput); - - //Functions for parsing messages to be send with PassThruWriteMsgs. - - virtual unsigned long validateTxMsg(PASSTHRU_MSG* msg); - virtual std::shared_ptr parseMessageTx(PASSTHRU_MSG& msg) { return nullptr; }; - - //IOCTL functions - - virtual long init5b(SBYTE_ARRAY* pInput, SBYTE_ARRAY* pOutput); - virtual long initFast(PASSTHRU_MSG* pInput, PASSTHRU_MSG* pOutput); - long clearTXBuff(); - long clearRXBuff(); - long clearPeriodicMsgs(); - long clearMsgFilters(); - - virtual void setBaud(unsigned long baud); - virtual void setParity(unsigned long parity); - - unsigned long getBaud() { - return this->BaudRate; - } - - unsigned long getProtocol() { - return this->ProtocolID; - }; - - virtual bool isProtoCan() { - return FALSE; - } - - //Port is used in a protocol specific way to differentiate tranceivers. - unsigned long getPort() { - return this->port; - } - - virtual void processIOCTLSetConfig(unsigned long Parameter, unsigned long Value); - - virtual unsigned long processIOCTLGetConfig(unsigned long Parameter); - - //Called when the passthru device has received a message for this connection - //Loopback messages are processed separately. - virtual void processMessage(const J2534Frame& msg); - - //Limitations on message size. Override in every subclass. - - virtual unsigned long getMinMsgLen() { - return 1; - } - - virtual unsigned long getMaxMsgLen() { - return 4128; - } - - virtual unsigned long getMaxMsgSingleFrameLen() { - return 12; - } - - //Add an Action to the Task Queue for future processing. - //The task should be set its expire time before being submitted. - void schedultMsgTx(std::shared_ptr msgout); - - void rescheduleExistingTxMsgs(); - - std::shared_ptr getPandaDev() { - if (auto panda_dev_sp = this->panda_dev.lock()) - return panda_dev_sp; - return nullptr; - } - - //Add a message to the queue read by PassThruReadMsgs(). - void addMsgToRxQueue(const J2534Frame& frame) { - synchronized(messageRxBuff_mutex) { - messageRxBuff.push(frame); - } - } - - bool loopback = FALSE; - -protected: - unsigned long ProtocolID; - unsigned long Flags; - unsigned long BaudRate; - unsigned long Parity; - unsigned long port; - - std::weak_ptr panda_dev; - - Mutex messageRxBuff_mutex; - std::queue messageRxBuff; - - std::array, 10> filters; - std::queue> txbuff; - - std::array, 10> periodicMessages; - -private: - Mutex staged_writes_lock; -}; diff --git a/drivers/windows/pandaJ2534DLL/J2534Connection_CAN.cpp b/drivers/windows/pandaJ2534DLL/J2534Connection_CAN.cpp deleted file mode 100644 index 342616900..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534Connection_CAN.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "stdafx.h" -#include "J2534Connection_CAN.h" -#include "MessageTx_CAN.h" -#include "Timer.h" - -J2534Connection_CAN::J2534Connection_CAN( - std::shared_ptr panda_dev, - unsigned long ProtocolID, - unsigned long Flags, - unsigned long BaudRate - ) : J2534Connection(panda_dev, ProtocolID, Flags, BaudRate) { - this->port = 0; - - if (BaudRate % 100 || BaudRate < 10000 || BaudRate > 5000000) - throw ERR_INVALID_BAUDRATE; - - panda_dev->panda->set_can_speed_cbps(panda::PANDA_CAN1, BaudRate/100); -}; - -unsigned long J2534Connection_CAN::validateTxMsg(PASSTHRU_MSG* msg) { - if ((msg->DataSize < this->getMinMsgLen() || msg->DataSize > this->getMaxMsgLen() || - (val_is_29bit(msg->TxFlags) != this->_is_29bit() && !check_bmask(this->Flags, CAN_ID_BOTH)))) - return ERR_INVALID_MSG; - return STATUS_NOERROR; -} - -std::shared_ptr J2534Connection_CAN::parseMessageTx(PASSTHRU_MSG& msg) { - return std::dynamic_pointer_cast(std::make_shared(shared_from_this(), msg)); -} - -void J2534Connection_CAN::setBaud(unsigned long BaudRate) { - if (auto panda_dev = this->getPandaDev()) { - if (BaudRate % 100 || BaudRate < 10000 || BaudRate > 5000000) - throw ERR_NOT_SUPPORTED; - - panda_dev->panda->set_can_speed_cbps(panda::PANDA_CAN1, (uint16_t)(BaudRate / 100)); - return J2534Connection::setBaud(BaudRate); - } else { - throw ERR_DEVICE_NOT_CONNECTED; - } -} diff --git a/drivers/windows/pandaJ2534DLL/J2534Connection_CAN.h b/drivers/windows/pandaJ2534DLL/J2534Connection_CAN.h deleted file mode 100644 index 3971351ee..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534Connection_CAN.h +++ /dev/null @@ -1,43 +0,0 @@ -#pragma once - -#include "J2534Connection.h" -#include "panda_shared/panda.h" - -#define val_is_29bit(num) check_bmask(num, CAN_29BIT_ID) - -class J2534Connection_CAN : public J2534Connection { -public: - J2534Connection_CAN( - std::shared_ptr panda_dev, - unsigned long ProtocolID, - unsigned long Flags, - unsigned long BaudRate - ); - - virtual unsigned long validateTxMsg(PASSTHRU_MSG* msg); - - virtual std::shared_ptr parseMessageTx(PASSTHRU_MSG& pMsg); - - virtual void setBaud(unsigned long baud); - - virtual unsigned long getMinMsgLen() { - return 4; - } - - virtual unsigned long getMaxMsgLen() { - return 12; - } - - virtual unsigned long getMaxMsgSingleFrameLen() { - return 12; - } - - virtual bool isProtoCan() { - return TRUE; - } - - bool _is_29bit() { - return (this->Flags & CAN_29BIT_ID) == CAN_29BIT_ID; - } - -}; \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/J2534Connection_ISO14230.cpp b/drivers/windows/pandaJ2534DLL/J2534Connection_ISO14230.cpp deleted file mode 100644 index ae327b306..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534Connection_ISO14230.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include "stdafx.h" -#include "J2534Connection_ISO14230.h" -#include "MessageTx_ISO14230.h" -#include "Timer.h" - -J2534Connection_ISO14230::J2534Connection_ISO14230( - std::shared_ptr panda_dev, - unsigned long ProtocolID, - unsigned long Flags, - unsigned long BaudRate - ) : J2534Connection(panda_dev, ProtocolID, Flags, BaudRate) { - this->port = 0; - - if (BaudRate % 100 || BaudRate < 2400 || BaudRate > 115200) - throw ERR_INVALID_BAUDRATE; - - panda_dev->panda->set_uart_baud(panda::SERIAL_LIN1, BaudRate); - panda_dev->panda->set_uart_baud(panda::SERIAL_LIN2, BaudRate); -}; - -unsigned long J2534Connection_ISO14230::validateTxMsg(PASSTHRU_MSG* msg) { - if (msg->DataSize < this->getMinMsgLen() || msg->DataSize > this->getMaxMsgLen()) - return ERR_INVALID_MSG; - return STATUS_NOERROR; -} - -std::shared_ptr J2534Connection_ISO14230::parseMessageTx(PASSTHRU_MSG& msg) { - return std::dynamic_pointer_cast(std::make_shared(shared_from_this(), msg)); -} - -void J2534Connection_ISO14230::setBaud(unsigned long BaudRate) { - if (auto panda_dev = this->getPandaDev()) { - if (BaudRate % 100 || BaudRate < 2400 || BaudRate > 115200) - throw ERR_NOT_SUPPORTED; - - panda_dev->panda->set_uart_baud(panda::SERIAL_LIN1, BaudRate); - panda_dev->panda->set_uart_baud(panda::SERIAL_LIN2, BaudRate); - return J2534Connection::setBaud(BaudRate); - } else { - throw ERR_DEVICE_NOT_CONNECTED; - } -} - -void J2534Connection_ISO14230::setParity(unsigned long Parity) { - if (auto panda_dev = this->getPandaDev()) { - panda::PANDA_SERIAL_PORT_PARITY parity; - switch (Parity) { - case 0: - parity = panda::PANDA_PARITY_OFF; - break; - case 1: - parity = panda::PANDA_PARITY_ODD; - break; - case 2: - parity = panda::PANDA_PARITY_EVEN; - break; - default: - throw ERR_NOT_SUPPORTED; - } - panda_dev->panda->set_uart_parity(panda::SERIAL_LIN1, parity); - panda_dev->panda->set_uart_parity(panda::SERIAL_LIN2, parity); - return J2534Connection::setParity(Parity); - } - else { - throw ERR_DEVICE_NOT_CONNECTED; - } -} - -void J2534Connection_ISO14230::processMessage(const J2534Frame& msg) { - FILTER_RESULT filter_res = FILTER_RESULT_NEUTRAL; - - for (auto filter : this->filters) { - if (filter == nullptr) continue; - FILTER_RESULT current_check_res = filter->check(msg); - if (current_check_res == FILTER_RESULT_BLOCK) return; - if (current_check_res == FILTER_RESULT_PASS) filter_res = FILTER_RESULT_PASS; - } - - if (filter_res == FILTER_RESULT_PASS) { - addMsgToRxQueue(J2534Frame(msg.ProtocolID, START_OF_MESSAGE, 0, 0)); - addMsgToRxQueue(msg); - } -} diff --git a/drivers/windows/pandaJ2534DLL/J2534Connection_ISO14230.h b/drivers/windows/pandaJ2534DLL/J2534Connection_ISO14230.h deleted file mode 100644 index 4553f90b3..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534Connection_ISO14230.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#include "J2534Connection.h" -#include "panda_shared/panda.h" - -class J2534Connection_ISO14230 : public J2534Connection { -public: - J2534Connection_ISO14230( - std::shared_ptr panda_dev, - unsigned long ProtocolID, - unsigned long Flags, - unsigned long BaudRate - ); - - virtual unsigned long validateTxMsg(PASSTHRU_MSG* msg); - - virtual std::shared_ptr parseMessageTx(PASSTHRU_MSG& pMsg); - - virtual void setBaud(unsigned long baud); - virtual void setParity(unsigned long Parity); - - virtual unsigned long getMinMsgLen() { - return 2; - } - - virtual unsigned long getMaxMsgLen() { - return KLINE_MSG_MAX_LEN; - } - - virtual unsigned long getMaxMsgSingleFrameLen() { - return KLINE_MSG_MAX_LEN; - } - - virtual bool isProtoCan() { - return FALSE; - } - - virtual void processMessage(const J2534Frame& msg); -}; \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/J2534Connection_ISO15765.cpp b/drivers/windows/pandaJ2534DLL/J2534Connection_ISO15765.cpp deleted file mode 100644 index a83f6f433..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534Connection_ISO15765.cpp +++ /dev/null @@ -1,232 +0,0 @@ -#include "stdafx.h" -#include "J2534Connection_ISO15765.h" -#include "Timer.h" -#include "constants_ISO15765.h" -#include - -J2534Connection_ISO15765::J2534Connection_ISO15765( - std::shared_ptr panda_dev, - unsigned long ProtocolID, - unsigned long Flags, - unsigned long BaudRate -) : J2534Connection(panda_dev, ProtocolID, Flags, BaudRate), wftMax(0) { - this->port = 0; - - if (BaudRate % 100 || BaudRate < 10000 || BaudRate > 5000000) - throw ERR_INVALID_BAUDRATE; - - panda_dev->panda->set_can_speed_cbps(panda::PANDA_CAN1, (uint16_t)(BaudRate / 100)); -} - -unsigned long J2534Connection_ISO15765::validateTxMsg(PASSTHRU_MSG* msg) { - if ((msg->DataSize < this->getMinMsgLen() + (msg_is_extaddr(msg) ? 1 : 0) || - msg->DataSize > this->getMaxMsgLen() + (msg_is_extaddr(msg) ? 1 : 0) || - (val_is_29bit(msg->TxFlags) != this->_is_29bit() && !check_bmask(this->Flags, CAN_ID_BOTH)))) - return ERR_INVALID_MSG; - - int fid = get_matching_out_fc_filter_id(std::string((const char*)msg->Data, msg->DataSize), msg->TxFlags, 0xFFFFFFFF); - if (msg->DataSize > getMaxMsgSingleFrameLen() && fid == -1) return ERR_NO_FLOW_CONTROL; //11 bytes (4 for CANid, 7 payload) is max length of input frame. - - return STATUS_NOERROR; -} - -std::shared_ptr J2534Connection_ISO15765::parseMessageTx(PASSTHRU_MSG& msg) { - int fid = get_matching_out_fc_filter_id(std::string((const char*)msg.Data, msg.DataSize), msg.TxFlags, 0xFFFFFFFF); - if (msg.DataSize > getMaxMsgSingleFrameLen() && fid == -1) 1; - - return std::dynamic_pointer_cast( - std::make_shared(shared_from_this(), msg, (fid == -1) ? nullptr : this->filters[fid]) - ); -} - -//https://happilyembedded.wordpress.com/2016/02/15/can-multiple-frame-transmission/ -void J2534Connection_ISO15765::processMessage(const J2534Frame& msg) { - if (msg.ProtocolID != CAN) return; - - int fid = get_matching_in_fc_filter_id(msg, this->Flags); - if (fid == -1) return; - - auto filter = this->filters[fid]; - bool is_ext_addr = check_bmask(filter->flags, ISO15765_ADDR_TYPE); - uint8_t addrlen = is_ext_addr ? 5 : 4; - - switch (msg_get_type(msg, addrlen)) { - case FRAME_FLOWCTRL: - { - if (this->txbuff.size() == 0) - return; - if (msg.Data.size() < addrlen + 3) return; - uint8_t flow_status = msg.Data[addrlen] & 0x0F; - uint8_t block_size = msg.Data[addrlen + 1]; - uint8_t st_min = msg.Data[addrlen + 2]; - - auto txConvo = std::static_pointer_cast(this->txbuff.front()); - switch (flow_status) { - case FLOWCTRL_CONTINUE: { - if (st_min > 0xF9) break; - if (st_min >= 0xf1 && st_min <= 0xf9) { - txConvo->flowControlContinue(block_size, std::chrono::microseconds((st_min & 0x0F) * 100)); - } else if(st_min <= 0x7f) { - txConvo->flowControlContinue(block_size, std::chrono::microseconds(st_min * 1000)); - } else { - break; - } - txConvo->scheduleImmediate(); - this->rescheduleExistingTxMsgs(); - break; - } - case FLOWCTRL_WAIT: - txConvo->flowControlWait(this->wftMax); - break; - case FLOWCTRL_ABORT: - txConvo->flowControlAbort(); - break; - } - break; - } - case FRAME_SINGLE: - { - this->rxConversations[fid] = nullptr; //Reset any current transaction. - - if (is_ext_addr) { - if ((msg.Data[5] & 0x0F) > 6) return; - } else { - if ((msg.Data[4] & 0x0F) > 7) return; - } - - J2534Frame outframe(ISO15765, msg.RxStatus, 0, msg.Timestamp); - if (msg.Data.size() != 8 && check_bmask(this->Flags, ISO15765_FRAME_PAD)) - outframe.RxStatus |= ISO15765_PADDING_ERROR; - if (is_ext_addr) - outframe.RxStatus |= ISO15765_ADDR_TYPE; - outframe.Data = msg.Data.substr(0, addrlen) + msg.Data.substr(addrlen + 1, msg.Data[addrlen]); - outframe.ExtraDataIndex = outframe.Data.size(); - - addMsgToRxQueue(outframe); - break; - } - case FRAME_FIRST: - { - if (msg.Data.size() < 12) { - //A frame was received that could have held more data. - //No examples of this protocol show that happening, so - //it will be assumed that it is grounds to reset rx. - this->rxConversations[fid] = nullptr; - return; - } - - J2534Frame outframe(ISO15765, msg.RxStatus | START_OF_MESSAGE, 0, msg.Timestamp); - if (is_ext_addr) - outframe.RxStatus |= ISO15765_ADDR_TYPE; - outframe.Data = msg.Data.substr(0, addrlen); - - addMsgToRxQueue(outframe); - - this->rxConversations[fid] = std::make_shared( - ((msg.Data[addrlen] & 0x0F) << 8) | msg.Data[addrlen + 1], - msg.Data.substr(addrlen + 2, 12 - (addrlen + 2)), - msg.RxStatus, filter); - - //TODO maybe the flow control should also be scheduled in the TX list. - //Doing it this way because the filter can be 5 bytes in ext address mode. - std::string flowfilter = filter->get_flowctrl(); - uint32_t flow_addr = (((uint8_t)flowfilter[0]) << 24) | ((uint8_t)(flowfilter[1]) << 16) | ((uint8_t)(flowfilter[2]) << 8) | ((uint8_t)flowfilter[3]); - - std::string flowstrlresp; - if (flowfilter.size() > 4) - flowstrlresp += flowfilter[4]; - flowstrlresp += std::string("\x30\x00\x00", 3); - if (check_bmask(filter->flags, ISO15765_FRAME_PAD)) { - flowstrlresp += std::string(8 - flowstrlresp.size(), '\x00'); - } - - if (auto panda_dev_sp = this->panda_dev.lock()) { - panda_dev_sp->panda->can_send(flow_addr, val_is_29bit(msg.RxStatus), (const uint8_t *)flowstrlresp.c_str(), (uint8_t)flowstrlresp.size(), panda::PANDA_CAN1); - } - break; - } - case FRAME_CONSEC: - { - auto& convo = this->rxConversations[fid]; - if (convo == nullptr) return; - - if (!convo->rx_add_frame(msg.Data[addrlen], (is_ext_addr ? 6 : 7), msg.Data.substr(addrlen + 1))) { - //Delete this conversation. - convo = nullptr; - return; - } - - std::string final_msg; - if (convo->flush_result(final_msg)) { - convo = nullptr; - J2534Frame outframe(ISO15765, msg.RxStatus, 0, msg.Timestamp); - if (is_ext_addr) - outframe.RxStatus |= ISO15765_ADDR_TYPE; - outframe.Data = msg.Data.substr(0, addrlen) + final_msg; - outframe.ExtraDataIndex = outframe.Data.size(); - - addMsgToRxQueue(outframe); - } - break; - } - } -} - -void J2534Connection_ISO15765::setBaud(unsigned long BaudRate) { - if (auto panda_dev = this->getPandaDev()) { - if (BaudRate % 100 || BaudRate < 10000 || BaudRate > 5000000) - throw ERR_NOT_SUPPORTED; - - panda_dev->panda->set_can_speed_cbps(panda::PANDA_CAN1, (uint16_t)(BaudRate / 100)); - return J2534Connection::setBaud(BaudRate); - } else { - throw ERR_DEVICE_NOT_CONNECTED; - } -} - -long J2534Connection_ISO15765::PassThruStartMsgFilter(unsigned long FilterType, PASSTHRU_MSG *pMaskMsg, PASSTHRU_MSG *pPatternMsg, - PASSTHRU_MSG *pFlowControlMsg, unsigned long *pFilterID) { - - if (FilterType != FLOW_CONTROL_FILTER) return ERR_INVALID_FILTER_ID; - return J2534Connection::PassThruStartMsgFilter(FilterType, pMaskMsg, pPatternMsg, pFlowControlMsg, pFilterID); -} - -int J2534Connection_ISO15765::get_matching_out_fc_filter_id(const std::string& msgdata, unsigned long flags, unsigned long flagmask) { - for (unsigned int i = 0; i < this->filters.size(); i++) { - if (this->filters[i] == nullptr) continue; - auto filter = this->filters[i]->get_flowctrl(); - if (filter == msgdata.substr(0, filter.size()) && - (this->filters[i]->flags & flagmask) == (flags & flagmask)) - return i; - } - return -1; -} - -int J2534Connection_ISO15765::get_matching_in_fc_filter_id(const J2534Frame& msg, unsigned long flagmask) { - for (unsigned int i = 0; i < this->filters.size(); i++) { - if (this->filters[i] == nullptr) continue; - if (this->filters[i]->check(msg) == FILTER_RESULT_MATCH && - (this->filters[i]->flags & flagmask) == (msg.RxStatus & flagmask)) - return i; - } - return -1; -} - -void J2534Connection_ISO15765::processIOCTLSetConfig(unsigned long Parameter, unsigned long Value) { - switch (Parameter) { - case ISO15765_WFT_MAX: - this->wftMax = Value; - break; - default: - J2534Connection::processIOCTLSetConfig(Parameter, Value); - } -} - -unsigned long J2534Connection_ISO15765::processIOCTLGetConfig(unsigned long Parameter) { - switch (Parameter) { - case ISO15765_WFT_MAX: - return this->wftMax; - default: - return J2534Connection::processIOCTLGetConfig(Parameter); - } -} diff --git a/drivers/windows/pandaJ2534DLL/J2534Connection_ISO15765.h b/drivers/windows/pandaJ2534DLL/J2534Connection_ISO15765.h deleted file mode 100644 index beb9f012e..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534Connection_ISO15765.h +++ /dev/null @@ -1,65 +0,0 @@ -#pragma once -#include -#include "J2534Connection.h" -#include "J2534Connection_CAN.h" -#include "MessageTx_ISO15765.h" -#include "MessageRx.h" - -class MessageTx_ISO15765; - -typedef struct { - std::string dispatched_msg; - std::string remaining_payload; -} PRESTAGED_WRITE; - -class J2534Connection_ISO15765 : public J2534Connection { -public: - J2534Connection_ISO15765( - std::shared_ptr panda_dev, - unsigned long ProtocolID, - unsigned long Flags, - unsigned long BaudRate - ); - - virtual long PassThruStartMsgFilter(unsigned long FilterType, PASSTHRU_MSG * pMaskMsg, PASSTHRU_MSG * pPatternMsg, PASSTHRU_MSG * pFlowControlMsg, unsigned long * pFilterID); - - int get_matching_out_fc_filter_id(const std::string & msgdata, unsigned long flags, unsigned long flagmask); - - int get_matching_in_fc_filter_id(const J2534Frame& msg, unsigned long flagmask); - - virtual unsigned long validateTxMsg(PASSTHRU_MSG* msg); - - virtual std::shared_ptr parseMessageTx(PASSTHRU_MSG& msg); - - virtual void processMessage(const J2534Frame& msg); - - virtual void setBaud(unsigned long baud); - - virtual void processIOCTLSetConfig(unsigned long Parameter, unsigned long Value); - - virtual unsigned long processIOCTLGetConfig(unsigned long Parameter); - - virtual unsigned long getMinMsgLen() { - return 4; - } - - virtual unsigned long getMaxMsgLen() { - return 4099; - }; - - virtual unsigned long getMaxMsgSingleFrameLen() { - return 11; - } - - virtual bool _is_29bit() { - return (this->Flags & CAN_29BIT_ID) == CAN_29BIT_ID; - } - - virtual bool isProtoCan() { - return TRUE; - } - -private: - std::array, 10> rxConversations; - unsigned int wftMax; -}; diff --git a/drivers/windows/pandaJ2534DLL/J2534Frame.h b/drivers/windows/pandaJ2534DLL/J2534Frame.h deleted file mode 100644 index c2dc44da8..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534Frame.h +++ /dev/null @@ -1,58 +0,0 @@ -#pragma once -#include "J2534_v0404.h" -#include "panda_shared/panda.h" - -/*A move convenient container for J2534 Messages than the static buffer provided by default.*/ -class J2534Frame { -public: - J2534Frame(unsigned long ProtocolID, unsigned long RxStatus=0, unsigned long TxFlags=0, unsigned long Timestamp=0) : - ProtocolID(ProtocolID), RxStatus(RxStatus), TxFlags(TxFlags), Timestamp(Timestamp), ExtraDataIndex(0), Data("") { }; - - J2534Frame(const panda::PANDA_CAN_MSG& msg_in) { - ProtocolID = CAN; - ExtraDataIndex = msg_in.len + 4; - Data.reserve(msg_in.len + 4); - Data += msg_in.addr >> 24; - Data += (msg_in.addr >> 16) & 0xFF; - Data += (msg_in.addr >> 8) & 0xFF; - Data += msg_in.addr & 0xFF; - Data += std::string((char*)&msg_in.dat, msg_in.len); - Timestamp = msg_in.recv_time; - TxFlags = 0; - RxStatus = (msg_in.addr_29b ? CAN_29BIT_ID : 0) | - (msg_in.is_receipt ? TX_MSG_TYPE : 0); - } - - J2534Frame(unsigned long protocol, const panda::PANDA_KLINE_MSG& msg_in) { - ProtocolID = protocol; - ExtraDataIndex = msg_in.data.size() - (msg_in.valid ? 1 : 0); - Data = msg_in.data; - Timestamp = 0; - TxFlags = 0; - RxStatus = 0; - } - - J2534Frame(const PASSTHRU_MSG& msg) { - this->ProtocolID = msg.ProtocolID; - this->RxStatus = msg.RxStatus; - this->TxFlags = msg.TxFlags; - this->Timestamp = msg.Timestamp; - this->ExtraDataIndex = msg.ExtraDataIndex; - this->Data = std::string((const char*)msg.Data, msg.DataSize); - } - - J2534Frame() { - this->ProtocolID = 0; - this->RxStatus = 0; - this->TxFlags = 0; - this->Timestamp = 0; - this->ExtraDataIndex = 0; - } - - unsigned long ProtocolID; - unsigned long RxStatus; - unsigned long TxFlags; - unsigned long Timestamp; - unsigned long ExtraDataIndex; - std::string Data; -}; \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/J2534MessageFilter.cpp b/drivers/windows/pandaJ2534DLL/J2534MessageFilter.cpp deleted file mode 100644 index 7b9e093a2..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534MessageFilter.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include "stdafx.h" -#include "J2534MessageFilter.h" -#include "J2534Frame.h" - -J2534MessageFilter::J2534MessageFilter( - J2534Connection *const conn, - unsigned int filtertype, - PASSTHRU_MSG *pMaskMsg, - PASSTHRU_MSG *pPatternMsg, - PASSTHRU_MSG *pFlowControlMsg -) : filtertype(filtertype), flags(0), conn(conn) { - switch (filtertype) { - case PASS_FILTER: - case BLOCK_FILTER: - if (pMaskMsg == NULL || pPatternMsg == NULL) - throw ERR_NULL_PARAMETER; - if (pFlowControlMsg != NULL) - throw ERR_INVALID_FILTER_ID; - if (pMaskMsg->DataSize != pPatternMsg->DataSize) - throw ERR_INVALID_MSG; - break; - case FLOW_CONTROL_FILTER: - if (conn->getProtocol() != ISO15765) throw ERR_MSG_PROTOCOL_ID; //CHECK - if (pFlowControlMsg == NULL || pMaskMsg == NULL || pPatternMsg == NULL) - throw ERR_NULL_PARAMETER; - break; - default: - throw ERR_INVALID_MSG; - } - - if (!(conn->getMinMsgLen() < pMaskMsg->DataSize || pMaskMsg->DataSize < conn->getMaxMsgLen())) - throw ERR_INVALID_MSG; - if (conn->getProtocol() != pMaskMsg->ProtocolID) - throw ERR_MSG_PROTOCOL_ID; - this->maskMsg = std::string((char*)pMaskMsg->Data, pMaskMsg->DataSize); - - if (!(conn->getMinMsgLen() < pPatternMsg->DataSize || pPatternMsg->DataSize < conn->getMaxMsgLen())) - throw ERR_INVALID_MSG; - if (conn->getProtocol() != pPatternMsg->ProtocolID) - throw ERR_MSG_PROTOCOL_ID; - this->patternMsg = std::string((char*)pPatternMsg->Data, pPatternMsg->DataSize); - if (this->maskMsg.size() != this->patternMsg.size()) - throw ERR_INVALID_MSG; - - if (pFlowControlMsg) { - if (!(conn->getMinMsgLen() < pFlowControlMsg->DataSize || pFlowControlMsg->DataSize < conn->getMaxMsgLen())) - throw ERR_INVALID_MSG; - if (conn->getProtocol() != pFlowControlMsg->ProtocolID) - throw ERR_MSG_PROTOCOL_ID; - if (pMaskMsg->TxFlags != pPatternMsg->TxFlags || pMaskMsg->TxFlags != pFlowControlMsg->TxFlags) - throw ERR_INVALID_MSG; - if(pFlowControlMsg->TxFlags & ~(ISO15765_FRAME_PAD | CAN_29BIT_ID | ISO15765_ADDR_TYPE)) - throw ERR_INVALID_MSG; - if ((pFlowControlMsg->TxFlags & ISO15765_ADDR_TYPE) == ISO15765_ADDR_TYPE) { - if(pFlowControlMsg->DataSize != 5) - throw ERR_INVALID_MSG; - } else { - if (pFlowControlMsg->DataSize != 4) - throw ERR_INVALID_MSG; - } - this->flowCtrlMsg = std::string((char*)pFlowControlMsg->Data, pFlowControlMsg->DataSize); - if (this->flowCtrlMsg.size() != this->patternMsg.size()) - throw ERR_INVALID_MSG; - this->flags = pFlowControlMsg->TxFlags; - } -} - -bool J2534MessageFilter::operator ==(const J2534MessageFilter &b) const { - if (this->filtertype != b.filtertype) return FALSE; - if (this->maskMsg != b.maskMsg) return FALSE; - if (this->patternMsg != b.patternMsg) return FALSE; - if (this->flowCtrlMsg != b.flowCtrlMsg) return FALSE; - if (this->flags != b.flags) return FALSE; - return TRUE; -} - -FILTER_RESULT J2534MessageFilter::check(const J2534Frame& msg) { - bool matches = TRUE; - if (msg.Data.size() < this->maskMsg.size()) { - matches = FALSE; - } else { - for (unsigned int i = 0; i < this->maskMsg.size(); i++) { - if (this->patternMsg[i] != (msg.Data[i] & this->maskMsg[i])) { - matches = FALSE; - break; - } - } - } - - switch (this->filtertype) { - case PASS_FILTER: - return matches ? FILTER_RESULT_PASS : FILTER_RESULT_NEUTRAL; - case BLOCK_FILTER: - return matches ? FILTER_RESULT_BLOCK: FILTER_RESULT_NEUTRAL; - case FLOW_CONTROL_FILTER: - return matches ? FILTER_RESULT_MATCH : FILTER_RESULT_NOMATCH; - default: - throw std::out_of_range("Filtertype should not be able to be anything but PASS, BLOCK, or FLOW_CONTROL"); - } -} - -std::string J2534MessageFilter::get_flowctrl() { - return std::string(this->flowCtrlMsg); -} diff --git a/drivers/windows/pandaJ2534DLL/J2534MessageFilter.h b/drivers/windows/pandaJ2534DLL/J2534MessageFilter.h deleted file mode 100644 index c5e9a6839..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534MessageFilter.h +++ /dev/null @@ -1,47 +0,0 @@ -#pragma once -#include "J2534_v0404.h" -#include "J2534Connection.h" -#include "J2534Frame.h" - -typedef enum { - FILTER_RESULT_BLOCK, - FILTER_RESULT_NEUTRAL, - FILTER_RESULT_PASS, - FILTER_RESULT_NOMATCH = FILTER_RESULT_BLOCK, - FILTER_RESULT_MATCH = FILTER_RESULT_PASS, -} FILTER_RESULT; - -//Forward declare -class J2534Connection; - -/* Represents a J2534 Message Filter created by PassThruStartMsgFilter. - -J2534 uses filters to sort out messages in a simple and sane way. Except for -flow control filters. J2534 v04.04 uses filters to manage 'conversations' in -protocols that support flow control like ISO15765. The whole solution is a -hack, and J2534 v05.00 greatly simplifies this concept. But we are using -v04.04 so, here we are. -*/ -class J2534MessageFilter { -public: - J2534MessageFilter( - J2534Connection *const conn, - unsigned int filtertype, - PASSTHRU_MSG *pMaskMsg, - PASSTHRU_MSG *pPatternMsg, - PASSTHRU_MSG *pFlowControlMsg - ); - - bool J2534MessageFilter::operator ==(const J2534MessageFilter &b) const; - - FILTER_RESULT check(const J2534Frame& msg); - std::string get_flowctrl(); - - unsigned long flags; - J2534Connection *const conn; -private: - unsigned int filtertype; - std::string maskMsg; - std::string patternMsg; - std::string flowCtrlMsg; -}; \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/J2534_v0404.h b/drivers/windows/pandaJ2534DLL/J2534_v0404.h deleted file mode 100644 index 7cccf6b42..000000000 --- a/drivers/windows/pandaJ2534DLL/J2534_v0404.h +++ /dev/null @@ -1,428 +0,0 @@ -// -// Copyright (c) 2015-2016 DashLogic, Inc. -// All Rights Reserved. -// -// http://www.dashlogic.com -// sales@dashlogic.com -// -// Redistribution and use in source and binary forms, with or without -// modification, including use for commercial purposes, are permitted -// provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in -// the documentation and/or other materials provided with the -// distribution. -// -// 3. Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// 4. Redistributions of any form whatsoever must retain the following -// acknowledgment: 'This product includes software developed by -// "DashLogic, Inc." (http://www.dashlogic.com/).' -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// - - -// -// Formatting: -// Indents: Use tabs only (1 tab per indent) -// Tab Size: 4 spaces -// -// File Revision: -// $Rev: 5216 $ -// $Date: 2016-03-15 09:32:34 -0600 (Tue, 15 Mar 2016) $ -// - -#pragma once - -#ifdef PANDAJ2534DLL_EXPORTS -#define PANDAJ2534DLL_API extern "C" __declspec(dllexport) -#else -#define PANDAJ2534DLL_API -//__declspec(dllimport) -#endif - -// -// Platform-specific Defines: -// -// PTAPI: Define this yourself if you want a specific calling -// convention or other modifiers on the Pass-Thru API -// functions. Typically, on Windows, PTAPI will be defined -// as WINAPI, which enables the __stdcall convention. -// -#define PTAPI __stdcall //WINAPI - -// -// J2534-1 v04.04 ProtocolID Values -// -#define J1850VPW 0x01 -#define J1850PWM 0x02 -#define ISO9141 0x03 -#define ISO14230 0x04 -#define CAN 0x05 -#define ISO15765 0x06 -#define SCI_A_ENGINE 0x07 -#define SCI_A_TRANS 0x08 -#define SCI_B_ENGINE 0x09 -#define SCI_B_TRANS 0x0A - - -// -// J2534-2 ProtocolID Values -// -#define J1850VPW_PS 0x00008000 -#define J1850PWM_PS 0x00008001 -#define ISO9141_PS 0x00008002 -#define ISO14230_PS 0x00008003 -#define CAN_PS 0x00008004 -#define ISO15765_PS 0x00008005 -#define J2610_PS 0x00008006 -#define SW_ISO15765_PS 0x00008007 -#define SW_CAN_PS 0x00008008 -#define GM_UART_PS 0x00008009 -#define CAN_CH1 0x00009000 -#define CAN_CH2 (CAN_CH1 + 1) -#define CAN_CH128 (CAN_CH1 + 127) -#define J1850VPW_CH1 0x00009080 -#define J1850VPW_CH2 (J1850VPW_CH1 + 1) -#define J1850VPW_CH128 (J1850VPW_CH1 + 127) -#define J1850PWM_CH1 0x00009160 -#define J1850PWM_CH2 (J1850PWM_CH1 + 1) -#define J1850PWM_CH128 (J1850PWM_CH1 + 127) -#define ISO9141_CH1 0x00009240 -#define ISO9141_CH2 (ISO9141_CH1 + 1) -#define ISO9141_CH128 (ISO9141_CH1 + 127) -#define ISO14230_CH1 0x00009320 -#define ISO14230_CH2 (ISO14230_CH1 + 1) -#define ISO14230_CH128 (ISO14230_CH1 + 127) -#define ISO15765_CH1 0x00009400 -#define ISO15765_CH2 (ISO15765_CH1 + 1) -#define ISO15765_CH128 (ISO15765_CH1 + 127) -#define SW_CAN_CAN_CH1 0x00009480 -#define SW_CAN_CAN_CH2 (SW_CAN_CAN_CH1 + 1) -#define SW_CAN_CAN_CH128 (SW_CAN_CAN_CH1 + 127) -#define SW_CAN_ISO15765_CH1 0x00009560 -#define SW_CAN_ISO15765_CH2 (SW_CAN_ISO15765_CH1 + 1) -#define SW_CAN_ISO15765_CH128 (SW_CAN_ISO15765_CH1 + 127) -#define J2610_CH1 0x00009640 -#define J2610_CH2 (J2610_CH1 + 1) -#define J2610_CH128 (J2610_CH1 + 127) -#define ANALOG_IN_CH1 0x0000C000 -#define ANALOG_IN_CH2 0x0000C001 -#define ANALOG_IN_CH32 0x0000C01F - - -// -// J2534-1 v04.04 Error Values -// -#define STATUS_NOERROR 0x00 // Function call successful. -#define ERR_NOT_SUPPORTED 0x01 // Device cannot support requested functionality mandated in J2534. Device is not fully SAE J2534 compliant. -#define ERR_INVALID_CHANNEL_ID 0x02 // Invalid ChannelID value. -#define ERR_INVALID_PROTOCOL_ID 0x03 // Invalid or unsupported ProtocolID, or there is a resource conflict (i.e. trying to connect to multiple mutually exclusive protocols such as J1850PWM and J1850VPW, or CAN and SCI, etc.). -#define ERR_NULL_PARAMETER 0x04 // NULL pointer supplied where a valid pointer is required. -#define ERR_INVALID_IOCTL_VALUE 0x05 // Invalid value for Ioctl parameter. -#define ERR_INVALID_FLAGS 0x06 // Invalid flag values. -#define ERR_FAILED 0x07 // Undefined error, use PassThruGetLastError() for text description. -#define ERR_DEVICE_NOT_CONNECTED 0x08 // Unable to communicate with device. -#define ERR_TIMEOUT 0x09 // Read or write timeout: - // PassThruReadMsgs() - No message available to read or could not read the specified number of messages. The actual number of messages read is placed in . - // PassThruWriteMsgs() - Device could not write the specified number of messages. The actual number of messages sent on the vehicle network is placed in . -#define ERR_INVALID_MSG 0x0A // Invalid message structure pointed to by pMsg. -#define ERR_INVALID_TIME_INTERVAL 0x0B // Invalid TimeInterval value. -#define ERR_EXCEEDED_LIMIT 0x0C // Exceeded maximum number of message IDs or allocated space. -#define ERR_INVALID_MSG_ID 0x0D // Invalid MsgID value. -#define ERR_DEVICE_IN_USE 0x0E // Device is currently open. -#define ERR_INVALID_IOCTL_ID 0x0F // Invalid IoctlID value. -#define ERR_BUFFER_EMPTY 0x10 // Protocol message buffer empty, no messages available to read. -#define ERR_BUFFER_FULL 0x11 // Protocol message buffer full. All the messages specified may not have been transmitted. -#define ERR_BUFFER_OVERFLOW 0x12 // Indicates a buffer overflow occurred and messages were lost. -#define ERR_PIN_INVALID 0x13 // Invalid pin number, pin number already in use, or voltage already applied to a different pin. -#define ERR_CHANNEL_IN_USE 0x14 // Channel number is currently connected. -#define ERR_MSG_PROTOCOL_ID 0x15 // Protocol type in the message does not match the protocol associated with the Channel ID -#define ERR_INVALID_FILTER_ID 0x16 // Invalid Filter ID value. -#define ERR_NO_FLOW_CONTROL 0x17 // No flow control filter set or matched (for ProtocolID ISO15765 only). -#define ERR_NOT_UNIQUE 0x18 // A CAN ID in pPatternMsg or pFlowControlMsg matches either ID in an existing FLOW_CONTROL_FILTER -#define ERR_INVALID_BAUDRATE 0x19 // The desired baud rate cannot be achieved within the tolerance specified in SAE J2534-1 Section 6.5 -#define ERR_INVALID_DEVICE_ID 0x1A // Device ID invalid. - - -// -// J2534-1 v04.04 Connect Flags -// -#define CAN_29BIT_ID 0x0100 -#define ISO9141_NO_CHECKSUM 0x0200 -#define CAN_ID_BOTH 0x0800 -#define ISO9141_K_LINE_ONLY 0x1000 - - -// -// J2534-1 v04.04 Filter Type Values -// -#define PASS_FILTER 0x00000001 -#define BLOCK_FILTER 0x00000002 -#define FLOW_CONTROL_FILTER 0x00000003 - - -// -// J2534-1 v04.04 Programming Voltage Pin Numbers -// -#define AUXILIARY_OUTPUT_PIN 0 -#define SAE_J1962_CONNECTOR_PIN_6 6 -#define SAE_J1962_CONNECTOR_PIN_9 9 -#define SAE_J1962_CONNECTOR_PIN_11 11 -#define SAE_J1962_CONNECTOR_PIN_12 12 -#define SAE_J1962_CONNECTOR_PIN_13 13 -#define SAE_J1962_CONNECTOR_PIN_14 14 -#define SAE_J1962_CONNECTOR_PIN_15 15 // Short to ground only - - -// -// J2534-1 v04.04 Programming Voltage Values -// -#define SHORT_TO_GROUND 0xFFFFFFFE -#define VOLTAGE_OFF 0xFFFFFFFF - - -// -// J2534-1 v04.04 API Version Values -// -#define J2534_APIVER_FEBRUARY_2002 "02.02" -#define J2534_APIVER_NOVEMBER_2004 "04.04" - - -// -// J2534-1 v04.04 IOCTL ID Values -// -#define GET_CONFIG 0x01 // pInput = SCONFIG_LIST, pOutput = NULL -#define SET_CONFIG 0x02 // pInput = SCONFIG_LIST, pOutput = NULL -#define READ_VBATT 0x03 // pInput = NULL, pOutput = unsigned long -#define FIVE_BAUD_INIT 0x04 // pInput = SBYTE_ARRAY, pOutput = SBYTE_ARRAY -#define FAST_INIT 0x05 // pInput = PASSTHRU_MSG, pOutput = PASSTHRU_MSG -#define CLEAR_TX_BUFFER 0x07 // pInput = NULL, pOutput = NULL -#define CLEAR_RX_BUFFER 0x08 // pInput = NULL, pOutput = NULL -#define CLEAR_PERIODIC_MSGS 0x09 // pInput = NULL, pOutput = NULL -#define CLEAR_MSG_FILTERS 0x0A // pInput = NULL, pOutput = NULL -#define CLEAR_FUNCT_MSG_LOOKUP_TABLE 0x0B // pInput = NULL, pOutput = NULL -#define ADD_TO_FUNCT_MSG_LOOKUP_TABLE 0x0C // pInput = SBYTE_ARRAY, pOutput = NULL -#define DELETE_FROM_FUNCT_MSG_LOOKUP_TABLE 0x0D // pInput = SBYTE_ARRAY, pOutput = NULL -#define READ_PROG_VOLTAGE 0x0E // pInput = NULL, pOutput = unsigned long - - -// -// J2534-2 IOCTL ID Values -// -#define SW_CAN_HS 0x00008000 // pInput = NULL, pOutput = NULL -#define SW_CAN_NS 0x00008001 // pInput = NULL, pOutput = NULL -#define SET_POLL_RESPONSE 0x00008002 // pInput = SBYTE_ARRAY, pOutput = NULL -#define BECOME_MASTER 0x00008003 // pInput = unsigned char, pOutput = NULL - - -// -// J2534-1 v04.04 Configuration Parameter Values -// Default value is enclosed in square brackets "[" and "]" -// -#define DATA_RATE 0x01 // 5-500000 -#define LOOPBACK 0x03 // 0 (OFF), 1 (ON) [0] -#define NODE_ADDRESS 0x04 // J1850PWM: 0x00-0xFF -#define NETWORK_LINE 0x05 // J1850PWM: 0 (BUS_NORMAL), 1 (BUS_PLUS), 2 (BUS_MINUS) [0] -#define P1_MIN 0x06 // ISO9141 or ISO14230: Not used by interface -#define P1_MAX 0x07 // ISO9141 or ISO14230: 0x1-0xFFFF (.5 ms per bit) [40 (20ms)] -#define P2_MIN 0x08 // ISO9141 or ISO14230: Not used by interface -#define P2_MAX 0x09 // ISO9141 or ISO14230: Not used by interface -#define P3_MIN 0x0A // ISO9141 or ISO14230: 0x0-0xFFFF (.5 ms per bit) [110 (55ms)] -#define P3_MAX 0x0B // ISO9141 or ISO14230: Not used by interface -#define P4_MIN 0x0C // ISO9141 or ISO14230: 0x0-0xFFFF (.5 ms per bit) [10 (5ms)] -#define P4_MAX 0x0D // ISO9141 or ISO14230: Not used by interface -#define W0 0x19 // ISO9141: 0x0-0xFFFF (1 ms per bit) [300] -#define W1 0x0E // ISO9141 or ISO14230: 0x0-0xFFFF (1 ms per bit) [300] -#define W2 0x0F // ISO9141 or ISO14230: 0x0-0xFFFF (1 ms per bit) [20] -#define W3 0x10 // ISO9141 or ISO14230: 0x0-0xFFFF (1 ms per bit) [20] -#define W4 0x11 // ISO9141 or ISO14230: 0x0-0xFFFF (1 ms per bit) [50] -#define W5 0x12 // ISO9141 or ISO14230: 0x0-0xFFFF (1 ms per bit) [300] -#define TIDLE 0x13 // ISO9141 or ISO14230: 0x0-0xFFFF (1 ms per bit) [300] -#define TINIL 0x14 // ISO9141 or ISO14230: 0x0-0xFFFF (1 ms per bit) [25] -#define TWUP 0x15 // ISO9141 or ISO14230: 0x0-0xFFFF (1 ms per bit) [50] -#define PARITY 0x16 // ISO9141 or ISO14230: 0 (NO_PARITY), 1 (ODD_PARITY), 2 (EVEN_PARITY) [0] -#define BIT_SAMPLE_POINT 0x17 // CAN: 0-100 (1% per bit) [80] -#define SYNC_JUMP_WIDTH 0x18 // CAN: 0-100 (1% per bit) [15] -#define T1_MAX 0x1A // SCI: 0x0-0xFFFF (1 ms per bit) [20] -#define T2_MAX 0x1B // SCI: 0x0-0xFFFF (1 ms per bit) [100] -#define T3_MAX 0x24 // SCI: 0x0-0xFFFF (1 ms per bit) [50] -#define T4_MAX 0x1C // SCI: 0x0-0xFFFF (1 ms per bit) [20] -#define T5_MAX 0x1D // SCI: 0x0-0xFFFF (1 ms per bit) [100] -#define ISO15765_BS 0x1E // ISO15765: 0x0-0xFF [0] -#define ISO15765_STMIN 0x1F // ISO15765: 0x0-0xFF [0] -#define ISO15765_BS_TX 0x22 // ISO15765: 0x0-0xFF,0xFFFF [0xFFFF] -#define ISO15765_STMIN_TX 0x23 // ISO15765: 0x0-0xFF,0xFFFF [0xFFFF] -#define DATA_BITS 0x20 // ISO9141 or ISO14230: 0 (8 data bits), 1 (7 data bits) [0] -#define FIVE_BAUD_MOD 0x21 // ISO9141 or ISO14230: 0 (ISO 9141-2/14230-4), 1 (Inv KB2), 2 (Inv Addr), 3 (ISO 9141) [0] -#define ISO15765_WFT_MAX 0x25 // ISO15765: 0x0-0xFF [0] - - -// -// J2534-2 Configuration Parameter Values -// Default value is enclosed in square brackets "[" and "]" -// -#define CAN_MIXED_FORMAT 0x00008000 // See #defines below. [0] -#define J1962_PINS 0x00008001 // 0xPPSS PP: 0x00-0x10 SS: 0x00-0x10 PP!=SS, except 0x0000. Exclude pins 4, 5, and 16. [0] -#define SW_CAN_HS_DATA_RATE 0x00008010 // SWCAN: 5-500000 [83333] -#define SW_CAN_SPEEDCHANGE_ENABLE 0x00008011 // SWCAN: 0 (DISABLE_SPDCHANGE), 1 (ENABLE_SPDCHANGE) [0] -#define SW_CAN_RES_SWITCH 0x00008012 // SWCAN: 0 (DISCONNECT_RESISTOR), 1 (CONNECT_RESISTOR), 2 (AUTO_ RESISTOR) [0] -#define ACTIVE_CHANNELS 0x00008020 // ANALOG: 0-0xFFFFFFFF -#define SAMPLE_RATE 0x00008021 // ANALOG: 0-0xFFFFFFFF [0] (high bit changes meaning from samples/sec to seconds/sample) -#define SAMPLES_PER_READING 0x00008022 // ANALOG: 1-0xFFFFFFFF [1] -#define READINGS_PER_MSG 0x00008023 // ANALOG: 1-0x00000408 (1 - 1032) [1] -#define AVERAGING_METHOD 0x00008024 // ANALOG: 0-0xFFFFFFFF [0] -#define SAMPLE_RESOLUTION 0x00008025 // ANALOG READ-ONLY: 0x1-0x20 (1 - 32) -#define INPUT_RANGE_LOW 0x00008026 // ANALOG READ-ONLY: 0x80000000-0x7FFFFFFF (-2147483648-2147483647) -#define INPUT_RANGE_HIGH 0x00008027 // ANALOG READ-ONLY: 0x80000000-0x7FFFFFFF (-2147483648-2147483647) - - -// -// J2534-2 Mixed-Mode/Format CAN Definitions -// -#define CAN_MIXED_FORMAT_OFF 0 // Messages will be treated as ISO 15765 ONLY. -#define CAN_MIXED_FORMAT_ON 1 // Messages will be treated as either ISO 15765 or an unformatted CAN frame. -#define CAN_MIXED_FORMAT_ALL_FRAMES 2 // Messages will be treated as ISO 15765, an unformatted CAN frame, or both. - - -// -// J2534-2 Analog Channel Averaging Method Definitions -// -#define SIMPLE_AVERAGE 0x00000000 // Simple arithmetic mean -#define MAX_LIMIT_AVERAGE 0x00000001 // Choose the biggest value -#define MIN_LIMIT_AVERAGE 0x00000002 // Choose the lowest value -#define MEDIAN_AVERAGE 0x00000003 // Choose arithmetic median - - -// -// J2534-1 v04.04 RxStatus Definitions -// -#define TX_MSG_TYPE 0x0001 -#define START_OF_MESSAGE 0x0002 -#define RX_BREAK 0x0004 -#define TX_INDICATION 0x0008 -#define ISO15765_PADDING_ERROR 0x0010 -#define ISO15765_ADDR_TYPE 0x0080 -//#define CAN_29BIT_ID 0x0100 // Defined above - - -// -// J2534-2 RxStatus Definitions -// -#define SW_CAN_HV_RX 0x00010000 // SWCAN Channels Only -#define SW_CAN_HS_RX 0x00020000 // SWCAN Channels Only -#define SW_CAN_NS_RX 0x00040000 // SWCAN Channels Only -#define OVERFLOW_ 0x00010000 // Analog Input Channels Only - - -// -// J2534-1 v04.04 TxFlags Definitions -// -#define ISO15765_FRAME_PAD 0x0040 -//#define ISO15765_ADDR_TYPE 0x0080 // Defined above -//#define CAN_29BIT_ID 0x0100 // Defined above -#define WAIT_P3_MIN_ONLY 0x0200 -#define SCI_MODE 0x400000 -#define SCI_TX_VOLTAGE 0x800000 - - -// -// J2534-2 TxFlags Definitions -// -#define SW_CAN_HV_TX 0x00000400 - - -// -// J2534-1 v04.04 Structure Definitions -// -typedef struct -{ - unsigned long Parameter; // Name of parameter - unsigned long Value; // Value of the parameter -} SCONFIG; - - -typedef struct -{ - unsigned long NumOfParams; // Number of SCONFIG elements - SCONFIG* ConfigPtr; // Array of SCONFIG -} SCONFIG_LIST; - - -typedef struct -{ - unsigned long NumOfBytes; // Number of bytes in the array - unsigned char* BytePtr; // Array of bytes -} SBYTE_ARRAY; - - -typedef struct -{ - unsigned long ProtocolID; - unsigned long RxStatus; - unsigned long TxFlags; - unsigned long Timestamp; - unsigned long DataSize; - unsigned long ExtraDataIndex; - unsigned char Data[4128]; -} PASSTHRU_MSG; - -// -// J2534-1 v04.04 Function Prototypes -// -PANDAJ2534DLL_API long PTAPI PassThruOpen(void *pName, unsigned long *pDeviceID); -PANDAJ2534DLL_API long PTAPI PassThruClose(unsigned long DeviceID); -PANDAJ2534DLL_API long PTAPI PassThruConnect(unsigned long DeviceID, unsigned long ProtocolID, unsigned long Flags, unsigned long BaudRate, unsigned long *pChannelID); -PANDAJ2534DLL_API long PTAPI PassThruDisconnect(unsigned long ChannelID); -PANDAJ2534DLL_API long PTAPI PassThruReadMsgs(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout); -PANDAJ2534DLL_API long PTAPI PassThruWriteMsgs(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout); -PANDAJ2534DLL_API long PTAPI PassThruStartPeriodicMsg(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pMsgID, unsigned long TimeInterval); -PANDAJ2534DLL_API long PTAPI PassThruStopPeriodicMsg(unsigned long ChannelID, unsigned long MsgID); -PANDAJ2534DLL_API long PTAPI PassThruStartMsgFilter(unsigned long ChannelID, unsigned long FilterType, PASSTHRU_MSG *pMaskMsg, PASSTHRU_MSG *pPatternMsg, PASSTHRU_MSG *pFlowControlMsg, unsigned long *pFilterID); -PANDAJ2534DLL_API long PTAPI PassThruStopMsgFilter(unsigned long ChannelID, unsigned long FilterID); -PANDAJ2534DLL_API long PTAPI PassThruSetProgrammingVoltage(unsigned long DeviceID, unsigned long PinNumber, unsigned long Voltage); -PANDAJ2534DLL_API long PTAPI PassThruReadVersion(unsigned long DeviceID, char *pFirmwareVersion, char *pDllVersion, char *pApiVersion); -PANDAJ2534DLL_API long PTAPI PassThruGetLastError(char *pErrorDescription); -PANDAJ2534DLL_API long PTAPI PassThruIoctl(unsigned long ChannelID, unsigned long IoctlID, void *pInput, void *pOutput); - - -// -// J2534-1 v04.04 Function Typedefs -// These function typedefs allow simpler use of the J2534 API by -// allowing you to do things like this: -// PTCONNECT pPassThruConnectFunc = GetProcAddress(hModule, "PassThruConnect"); -// if (pPassThruConnectFunc == NULL) -// return FALSE; -// pPassThruConnectFunc(DeviceID, CAN, CAN_29BIT_ID, 500000, &ChannelID); -// -typedef long (PTAPI *PTOPEN)(void *pName, unsigned long *pDeviceID); -typedef long (PTAPI *PTCLOSE)(unsigned long DeviceID); -typedef long (PTAPI *PTCONNECT)(unsigned long DeviceID, unsigned long ProtocolID, unsigned long Flags, unsigned long BaudRate, unsigned long *pChannelID); -typedef long (PTAPI *PTDISCONNECT)(unsigned long ChannelID); -typedef long (PTAPI *PTREADMSGS)(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout); -typedef long (PTAPI *PTWRITEMSGS)(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout); -typedef long (PTAPI *PTSTARTPERIODICMSG)(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pMsgID, unsigned long TimeInterval); -typedef long (PTAPI *PTSTOPPERIODICMSG)(unsigned long ChannelID, unsigned long MsgID); -typedef long (PTAPI *PTSTARTMSGFILTER)(unsigned long ChannelID, unsigned long FilterType, PASSTHRU_MSG *pMaskMsg, PASSTHRU_MSG *pPatternMsg, PASSTHRU_MSG *pFlowControlMsg, unsigned long *pFilterID); -typedef long (PTAPI *PTSTOPMSGFILTER)(unsigned long ChannelID, unsigned long FilterID); -typedef long (PTAPI *PTSETPROGRAMMINGVOLTAGE)(unsigned long DeviceID, unsigned long PinNumber, unsigned long Voltage); -typedef long (PTAPI *PTREADVERSION)(unsigned long DeviceID, char *pFirmwareVersion, char *pDllVersion, char *pApiVersion); -typedef long (PTAPI *PTGETLASTERROR)(char *pErrorDescription); -typedef long (PTAPI *PTIOCTL)(unsigned long ChannelID, unsigned long IoctlID, void *pInput, void *pOutput); diff --git a/drivers/windows/pandaJ2534DLL/J2534register_x64.reg b/drivers/windows/pandaJ2534DLL/J2534register_x64.reg deleted file mode 100644 index 87913c495c8ed3c3359f7cb56d87c35d3693234a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmbu8NlyYn5QX2_#Q#9%qz4Je;6ma7i3JoHto@z8iWldF_Y@fw2L#(%D#*bK{ZbcJPZqqdZ> zHJQ3XNv?cN)$c^^khjUA$G%DA>5>r>$3YAq4i(PuZ?3FGyxzz=U@a`B!Ou`-Sm%@) z&Av_^=D*Io04Hgfap5w-*DT*M6({c=5@F^ow@JLuVKZ$}{;sT`q%QDI(BTSw*v?1T zZwI6t9rfYDr-xda msg -) : Action(msg->connection, delay), msg(msg), runyet(FALSE), active(TRUE) { }; - -void MessagePeriodic::execute() { - if (!this->active) return; - if (this->runyet) { - if (msg->isFinished()) { - msg->reset(); - msg->execute(); - } - } else { - this->runyet = TRUE; - msg->execute(); - } - - if (auto conn_sp = this->connection.lock()) { - if (auto panda_dev_sp = conn_sp->getPandaDev()) { - //Scheduling must be relative to now incase there was a long stall that - //would case it to be super far behind and try to catch up forever. - this->scheduleImmediateDelay(); - panda_dev_sp->insertActionIntoTaskList(shared_from_this()); - } - } -} diff --git a/drivers/windows/pandaJ2534DLL/MessagePeriodic.h b/drivers/windows/pandaJ2534DLL/MessagePeriodic.h deleted file mode 100644 index 40132565c..000000000 --- a/drivers/windows/pandaJ2534DLL/MessagePeriodic.h +++ /dev/null @@ -1,33 +0,0 @@ -#pragma once -#include "Action.h" -#include "MessageTx.h" - -class J2534Connection; - -/* A message that is resent on a given period. Created with calls to PassThruStartPeriodicMessage. - -Instead of making each J2534 protocol implementation have to implement periodic message -functionality, this class takes a message to be sent, and passes along the execute call -to the message, then reschedules itself. -*/ -class MessagePeriodic : public Action, public std::enable_shared_from_this -{ -public: - MessagePeriodic( - std::chrono::microseconds delay, - std::shared_ptr msg - ); - - virtual void execute(); - - void cancel() { - this->active = FALSE; - } - -protected: - std::shared_ptr msg; - -private: - BOOL runyet; - BOOL active; -}; diff --git a/drivers/windows/pandaJ2534DLL/MessageRx.h b/drivers/windows/pandaJ2534DLL/MessageRx.h deleted file mode 100644 index e22278d4d..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageRx.h +++ /dev/null @@ -1,61 +0,0 @@ -#pragma once - -class MessageRx -{ -public: - MessageRx( - unsigned long size, - std::string piece, - unsigned long rxFlags, - std::shared_ptr filter - ) : expected_size(size & 0xFFF), flags(rxFlags) { - msg.reserve(expected_size); - msg = piece; - next_part = 1; - }; - - bool rx_add_frame(uint8_t pci_byte, unsigned int max_packet_size, const std::string piece) { - if ((pci_byte & 0x0F) != this->next_part) { - //TODO: Maybe this should instantly fail the transaction. - return TRUE; - } - - this->next_part = (this->next_part + 1) % 0x10; - unsigned int payload_len = min(expected_size - msg.size(), max_packet_size); - if (piece.size() < payload_len) { - //A frame was received that could have held more data. - //No examples of this protocol show that happening, so - //it will be assumed that it is grounds to reset rx. - return FALSE; - } - msg += piece.substr(0, payload_len); - - return TRUE; - } - - unsigned int bytes_remaining() { - return this->expected_size - this->msg.size(); - } - - bool is_ready() { - return this->msg.size() == this->expected_size; - } - - bool flush_result(std::string& final_msg) { - if (this->msg.size() == this->expected_size) { - final_msg = this->msg; - return TRUE; - } - return FALSE; - } - - uint8_t getNextConsecutiveFrameId() { - return this->next_part++; - } - - std::weak_ptr filter; - unsigned long flags; - unsigned long expected_size; - std::string msg; - unsigned char next_part; -}; diff --git a/drivers/windows/pandaJ2534DLL/MessageTx.h b/drivers/windows/pandaJ2534DLL/MessageTx.h deleted file mode 100644 index 5315fa058..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageTx.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once -#include "Action.h" -#include "J2534Frame.h" - -class J2534Connection; - -class MessageTx : public Action, public std::enable_shared_from_this -{ -public: - MessageTx( - std::weak_ptr connection_in, - PASSTHRU_MSG& to_send - ) : Action(connection_in), fullmsg(to_send) { }; - - virtual BOOL checkTxReceipt(J2534Frame frame) = 0; - - virtual BOOL isFinished() = 0; - - virtual BOOL txReady() = 0; - - virtual void reset() = 0; - -protected: - J2534Frame fullmsg; -}; \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/MessageTxTimeout.cpp b/drivers/windows/pandaJ2534DLL/MessageTxTimeout.cpp deleted file mode 100644 index 2e21ba3ce..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageTxTimeout.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include "stdafx.h" -#include "J2534Connection.h" -#include "MessageTxTimeout.h" - -MessageTxTimeoutable::MessageTxTimeoutable( - std::weak_ptr connection, - PASSTHRU_MSG& to_send -) : MessageTx(connection, to_send), recvCount(0) { }; - -void MessageTxTimeoutable::scheduleTimeout(std::chrono::microseconds timeoutus) { - if (auto conn_sp = this->connection.lock()) { - if (auto panda_dev_sp = conn_sp->getPandaDev()) { - auto timeoutobj = std::make_shared(std::static_pointer_cast(shared_from_this()), timeoutus); - panda_dev_sp->scheduleAction(std::static_pointer_cast(timeoutobj), TRUE); - } - } -} - -void MessageTxTimeoutable::scheduleTimeout(unsigned long timeoutus) { - scheduleTimeout(std::chrono::microseconds(timeoutus)); -} - - - -MessageTxTimeout::MessageTxTimeout( - std::shared_ptr msg, - std::chrono::microseconds timeout -) : Action(msg->connection), msg(msg), lastRecvCount(msg->getRecvCount()) { - delay = timeout; -}; - -MessageTxTimeout::MessageTxTimeout( - std::shared_ptr msg, - unsigned long timeout -) : MessageTxTimeout(msg, std::chrono::microseconds(timeout * 1000)) { }; - -void MessageTxTimeout::execute() { - if (auto msg_sp = this->msg.lock()) { - if (msg_sp->getRecvCount() == this->lastRecvCount) { - msg_sp->onTimeout(); - } - } -} diff --git a/drivers/windows/pandaJ2534DLL/MessageTxTimeout.h b/drivers/windows/pandaJ2534DLL/MessageTxTimeout.h deleted file mode 100644 index a9c878468..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageTxTimeout.h +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once -#include "Action.h" -#include "MessageTx.h" - -class MessageTxTimeout; - -/* A special type of MessageTx for multipart messages that supports being canceled with a timeout.*/ -class MessageTxTimeoutable : public MessageTx -{ -public: - MessageTxTimeoutable( - std::weak_ptr connection, - PASSTHRU_MSG& to_send - ); - - unsigned long getRecvCount() { - return recvCount; - } - - virtual void onTimeout() = 0; - -protected: - unsigned long recvCount; - - void scheduleTimeout(std::chrono::microseconds timeoutus); - - void scheduleTimeout(unsigned long timeoutus); -}; - - -/* An Action that cancels MessageTxTimeoutableif the Timeout Actoin executes -before the MessageTxTimeoutableif renews its timeout. -*/ -class MessageTxTimeout : public Action -{ -public: - MessageTxTimeout( - std::shared_ptr msg, - std::chrono::microseconds timeout - ); - - MessageTxTimeout( - std::shared_ptr msg, - unsigned long timeout - ); - - virtual void execute(); - -private: - std::weak_ptr msg; - unsigned long lastRecvCount; -}; diff --git a/drivers/windows/pandaJ2534DLL/MessageTx_CAN.cpp b/drivers/windows/pandaJ2534DLL/MessageTx_CAN.cpp deleted file mode 100644 index 8217ce539..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageTx_CAN.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "stdafx.h" -#include "MessageTx_CAN.h" -#include "J2534Connection_CAN.h" - -MessageTx_CAN::MessageTx_CAN( - std::shared_ptr connection_in, - PASSTHRU_MSG& to_send -) : MessageTx(connection_in, to_send), sentyet(FALSE), txInFlight(FALSE) {}; - -void MessageTx_CAN::execute() { - uint32_t addr = ((uint8_t)fullmsg.Data[0]) << 24 | ((uint8_t)fullmsg.Data[1]) << 16 | - ((uint8_t)fullmsg.Data[2]) << 8 | ((uint8_t)fullmsg.Data[3]); - - if (auto conn_sp = std::static_pointer_cast(this->connection.lock())) { - if (auto panda_dev_sp = conn_sp->getPandaDev()) { - auto payload = fullmsg.Data.substr(4); - if (panda_dev_sp->panda->can_send(addr, check_bmask(this->fullmsg.TxFlags, CAN_29BIT_ID), - (const uint8_t*)payload.c_str(), (uint8_t)payload.size(), panda::PANDA_CAN1) == FALSE) { - return; - } - this->txInFlight = TRUE; - this->sentyet = TRUE; - panda_dev_sp->txMsgsAwaitingEcho.push(shared_from_this()); - } - } -} - -//Returns TRUE if receipt is consumed by the msg, FALSE otherwise. -BOOL MessageTx_CAN::checkTxReceipt(J2534Frame frame) { - if (txReady()) return FALSE; - if (frame.Data == fullmsg.Data && ((this->fullmsg.TxFlags & CAN_29BIT_ID) == (frame.RxStatus & CAN_29BIT_ID))) { - txInFlight = FALSE; - if (auto conn_sp = std::static_pointer_cast(this->connection.lock())) - if (conn_sp->loopback) - conn_sp->addMsgToRxQueue(frame); - return TRUE; - } - return FALSE; -} - -void MessageTx_CAN::reset() { - sentyet = FALSE; - txInFlight = FALSE; -} diff --git a/drivers/windows/pandaJ2534DLL/MessageTx_CAN.h b/drivers/windows/pandaJ2534DLL/MessageTx_CAN.h deleted file mode 100644 index afac75ef8..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageTx_CAN.h +++ /dev/null @@ -1,33 +0,0 @@ -#pragma once -#include -#include "MessageTx.h" - -class J2534Connection; - -class MessageTx_CAN : public MessageTx -{ -public: - MessageTx_CAN( - std::shared_ptr connection_in, - PASSTHRU_MSG& to_send - ); - - virtual void execute(); - - //Returns TRUE if receipt is consumed by the msg, FALSE otherwise. - virtual BOOL checkTxReceipt(J2534Frame frame); - - virtual BOOL isFinished() { - return !txInFlight && sentyet; - }; - - virtual BOOL txReady() { - return !sentyet; - }; - - virtual void reset(); - -private: - BOOL sentyet; - BOOL txInFlight; -}; diff --git a/drivers/windows/pandaJ2534DLL/MessageTx_ISO14230.cpp b/drivers/windows/pandaJ2534DLL/MessageTx_ISO14230.cpp deleted file mode 100644 index 47e268855..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageTx_ISO14230.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "stdafx.h" -#include "MessageTx_ISO14230.h" -#include "J2534Connection_ISO14230.h" - -MessageTx_ISO14230::MessageTx_ISO14230( - std::shared_ptr connection_in, - PASSTHRU_MSG& to_send -) : MessageTx(connection_in, to_send), sentyet(FALSE), txInFlight(FALSE) {}; - -void MessageTx_ISO14230::execute() { - if (auto conn_sp = this->connection.lock()) { - if (auto panda_dev_sp = conn_sp->getPandaDev()) { - if (panda_dev_sp->kline_send(this->fullmsg.Data)) { - if (auto conn_sp = this->connection.lock()) - { - if (conn_sp->loopback) { - auto echo = J2534Frame(conn_sp->getProtocol(), TX_MSG_TYPE, 0, this->fullmsg.Timestamp); - echo.Data = std::string(this->fullmsg.Data); - echo.ExtraDataIndex = this->fullmsg.Data.size(); - conn_sp->addMsgToRxQueue(J2534Frame(conn_sp->getProtocol(), START_OF_MESSAGE, 0, this->fullmsg.Timestamp)); - conn_sp->addMsgToRxQueue(echo); - } - } - this->txInFlight = FALSE; - this->sentyet = TRUE; - } - // remove action since echo was read back in kline_send() - panda_dev_sp->removeConnectionTopAction(conn_sp, shared_from_this()); - } - } -} - -BOOL MessageTx_ISO14230::checkTxReceipt(J2534Frame frame) { - throw "not implemented!"; -} - -void MessageTx_ISO14230::reset() { - sentyet = FALSE; - txInFlight = FALSE; -} diff --git a/drivers/windows/pandaJ2534DLL/MessageTx_ISO14230.h b/drivers/windows/pandaJ2534DLL/MessageTx_ISO14230.h deleted file mode 100644 index bd32263ef..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageTx_ISO14230.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once -#include -#include "MessageTx.h" - -class J2534Connection; - -class MessageTx_ISO14230 : public MessageTx -{ -public: - MessageTx_ISO14230( - std::shared_ptr connection_in, - PASSTHRU_MSG& to_send - ); - - virtual void execute(); - - virtual BOOL checkTxReceipt(J2534Frame frame); - - virtual BOOL isFinished() { - return !txInFlight && sentyet; - }; - - virtual BOOL txReady() { - return !sentyet; - }; - - virtual void reset(); - -private: - BOOL sentyet; - BOOL txInFlight; -}; diff --git a/drivers/windows/pandaJ2534DLL/MessageTx_ISO15765.cpp b/drivers/windows/pandaJ2534DLL/MessageTx_ISO15765.cpp deleted file mode 100644 index 023088d3c..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageTx_ISO15765.cpp +++ /dev/null @@ -1,180 +0,0 @@ -#include "stdafx.h" -#include "MessageTx_ISO15765.h" -#include "constants_ISO15765.h" - -//in microseconsa -#define TIMEOUT_FC 250000 //Flow Control -#define TIMEOUT_CF 250000 //Consecutive Frames - -MessageTx_ISO15765::MessageTx_ISO15765( - std::shared_ptr connection_in, - PASSTHRU_MSG& to_send, - std::shared_ptr filter -) : MessageTxTimeoutable(connection_in, to_send), filter(filter), frames_sent(0), -consumed_count(0), txInFlight(FALSE), sendAll(FALSE), block_size(0), numWaitFrames(0), didtimeout(FALSE), issuspended(FALSE){ - - CANid = ((uint8_t)fullmsg.Data[0]) << 24 | ((uint8_t)fullmsg.Data[1]) << 16 | - ((uint8_t)fullmsg.Data[2]) << 8 | ((uint8_t)fullmsg.Data[3]); - - payload = fullmsg.Data.substr(addressLength()); - - if (check_bmask(fullmsg.TxFlags, ISO15765_ADDR_TYPE)) - data_prefix = fullmsg.Data[4]; - - if (payload.size() <= (7 - data_prefix.size())) { - isMultipart = FALSE; - auto framepayload = data_prefix + std::string(1, (char)payload.size()) + payload; - if (check_bmask(this->fullmsg.TxFlags, ISO15765_FRAME_PAD)) - framepayload += std::string(8 - framepayload.size(), '\x00'); - framePayloads.push_back(framepayload); - } else { - isMultipart = TRUE; - unsigned long first_payload_len = 6 - data_prefix.size(); // 5 or 6 - std::string framepayload = data_prefix + - (char)(0x10 | ((payload.size() >> 8) & 0xF)) + - (char)(payload.size() & 0xFF) + - payload.substr(0, first_payload_len); - framePayloads.push_back(framepayload); - - unsigned int pktnum = 1; - uint8_t CFDatSize = 7 - data_prefix.size(); - while (TRUE) { - framepayload = data_prefix + (char)(0x20 | (pktnum % 0x10)) + - payload.substr(first_payload_len + (CFDatSize * (pktnum-1)), CFDatSize); - - if (check_bmask(this->fullmsg.TxFlags, ISO15765_FRAME_PAD)) - framepayload += std::string(8 - framepayload.size(), '\x00'); - framePayloads.push_back(framepayload); - if (first_payload_len + (CFDatSize * pktnum) >= payload.size()) break; - pktnum++; - } - - } -}; - -unsigned int MessageTx_ISO15765::addressLength() { - return check_bmask(fullmsg.TxFlags, ISO15765_ADDR_TYPE) ? 5 : 4; -} - -void MessageTx_ISO15765::execute() { - if (didtimeout || issuspended) return; - if (this->frames_sent >= this->framePayloads.size()) return; - if (block_size == 0 && !sendAll && this->frames_sent > 0) return; - if (block_size > 0 && !sendAll) block_size--; - - if (auto conn_sp = this->connection.lock()) { - if (auto panda_dev_sp = conn_sp->getPandaDev()) { - auto& outFramePayload = this->framePayloads[this->frames_sent]; - if (panda_dev_sp->panda->can_send(this->CANid, check_bmask(this->fullmsg.TxFlags, CAN_29BIT_ID), - (const uint8_t*)outFramePayload.c_str(), (uint8_t)outFramePayload.size(), panda::PANDA_CAN1) == FALSE) { - return; - } - - this->txInFlight = TRUE; - this->frames_sent++; - panda_dev_sp->txMsgsAwaitingEcho.push(shared_from_this()); - } - } -} - -//Returns TRUE if receipt is consumed by the msg, FALSE otherwise. -BOOL MessageTx_ISO15765::checkTxReceipt(J2534Frame frame) { - if (!txInFlight) return FALSE; - if (frame.Data.size() >= addressLength() + 1 && (frame.Data[addressLength()] & 0xF0) == FRAME_FLOWCTRL) return FALSE; - - if (frame.Data == fullmsg.Data.substr(0, 4) + framePayloads[frames_sent - 1] && - ((this->fullmsg.TxFlags & CAN_29BIT_ID) == (frame.RxStatus & CAN_29BIT_ID))) { //Check receipt is expected - txInFlight = FALSE; //Received the expected receipt. Allow another msg to be sent. - - if (this->recvCount == 0 && this->framePayloads.size() > 1) - scheduleTimeout(TIMEOUT_FC); - - if (frames_sent == framePayloads.size()) { //Check message done - if (auto conn_sp = std::static_pointer_cast(this->connection.lock())) { - unsigned long flags = (filter == nullptr) ? fullmsg.TxFlags : this->filter->flags; - - J2534Frame outframe(ISO15765); - outframe.Timestamp = frame.Timestamp; - outframe.RxStatus = TX_MSG_TYPE | TX_INDICATION | (flags & (ISO15765_ADDR_TYPE | CAN_29BIT_ID)); - outframe.Data = frame.Data.substr(0, addressLength()); - conn_sp->addMsgToRxQueue(outframe); - - if (conn_sp->loopback) { - J2534Frame outframe(ISO15765); - outframe.Timestamp = frame.Timestamp; - outframe.RxStatus = TX_MSG_TYPE | (flags & (ISO15765_ADDR_TYPE | CAN_29BIT_ID)); - outframe.Data = this->fullmsg.Data; - conn_sp->addMsgToRxQueue(outframe); - } - - } //TODO what if fails - } else { - //Restart timeout if we are waiting for a flow control frame. - //FC frames are required when we are not sending all, the - //current block_size batch has not been sent, a FC message has - //already been received (differentiating from first frame), the - //message is not finished, and there is more than one frame in - //the message. - if (block_size == 0 && recvCount != 0 && !sendAll && !this->isFinished() && this->framePayloads.size() > 1) - scheduleTimeout(TIMEOUT_CF); - } - return TRUE; - } - return FALSE; -} - -BOOL MessageTx_ISO15765::isFinished() { - return this->frames_sent == this->framePayloads.size() && !txInFlight; -} - -BOOL MessageTx_ISO15765::txReady() { - return block_size > 0 || sendAll || this->frames_sent == 0; -} - -void MessageTx_ISO15765::reset() { - frames_sent = 0; - consumed_count = 0; - block_size = 0; - txInFlight = FALSE; - sendAll = FALSE; - numWaitFrames = 0; - didtimeout = FALSE; -} - -void MessageTx_ISO15765::onTimeout() { - didtimeout = TRUE; - if (auto conn_sp = std::static_pointer_cast(this->connection.lock())) { - if (auto panda_dev_sp = conn_sp->getPandaDev()) { - panda_dev_sp->removeConnectionTopAction(conn_sp, shared_from_this()); - } - } -} - -void MessageTx_ISO15765::flowControlContinue(uint8_t block_size, std::chrono::microseconds separation_time) { - this->issuspended = FALSE; - this->block_size = block_size; - this->delay = separation_time; - this->sendAll = block_size == 0; - this->recvCount++; -} - -void MessageTx_ISO15765::flowControlWait(unsigned long N_WFTmax) { - this->issuspended = TRUE; - this->recvCount++; - this->numWaitFrames++; - this->sendAll = FALSE; - this->block_size = block_size; - this->delay = std::chrono::microseconds(0); - //Docs are vague on if 0 means NO WAITS ALLOWED or NO LIMIT TO WAITS. - //It is less likely to cause issue if NO LIMIT is assumed. - if (N_WFTmax > 0 && this->numWaitFrames > N_WFTmax) { - this->onTimeout(); //Trigger self destruction of message. - } else { - scheduleTimeout(TIMEOUT_FC); - } -} - -void MessageTx_ISO15765::flowControlAbort() { - this->recvCount++; //Invalidate future timeout actions. - this->onTimeout(); //Trigger self destruction of message. -} diff --git a/drivers/windows/pandaJ2534DLL/MessageTx_ISO15765.h b/drivers/windows/pandaJ2534DLL/MessageTx_ISO15765.h deleted file mode 100644 index 0113edb8f..000000000 --- a/drivers/windows/pandaJ2534DLL/MessageTx_ISO15765.h +++ /dev/null @@ -1,54 +0,0 @@ -#pragma once -#include "MessageTxTimeout.h" -#include "J2534Connection_ISO15765.h" - -class J2534Connection_ISO15765; - -/** -A specialized message type that can handle J2534 single and multi -frame (with flow control) writes. -*/ -class MessageTx_ISO15765 : public MessageTxTimeoutable -{ -public: - MessageTx_ISO15765( - std::shared_ptr connection, - PASSTHRU_MSG& to_send, - std::shared_ptr filter - ); - - unsigned int addressLength(); - - virtual void execute(); - - virtual BOOL checkTxReceipt(J2534Frame frame); - - virtual BOOL isFinished(); - - virtual BOOL txReady(); - - virtual void reset(); - - virtual void onTimeout(); - - //Functions for ISO15765 flow control - - void MessageTx_ISO15765::flowControlContinue(uint8_t block_size, std::chrono::microseconds separation_time); - void MessageTx_ISO15765::flowControlWait(unsigned long N_WFTmax); - void MessageTx_ISO15765::flowControlAbort(); - - std::shared_ptr filter; - unsigned long frames_sent; - unsigned long consumed_count; - uint8_t block_size; - unsigned long CANid; - std::string data_prefix; - std::string payload; - BOOL isMultipart; - std::vector framePayloads; - BOOL txInFlight; - BOOL sendAll; - unsigned int numWaitFrames; - BOOL didtimeout; - BOOL issuspended; -}; diff --git a/drivers/windows/pandaJ2534DLL/PandaJ2534Device.cpp b/drivers/windows/pandaJ2534DLL/PandaJ2534Device.cpp deleted file mode 100644 index b1a854a66..000000000 --- a/drivers/windows/pandaJ2534DLL/PandaJ2534Device.cpp +++ /dev/null @@ -1,328 +0,0 @@ -#include "stdafx.h" -#include "PandaJ2534Device.h" -#include "J2534Frame.h" - -PandaJ2534Device::PandaJ2534Device(std::unique_ptr new_panda) : txInProgress(FALSE) { - this->panda = std::move(new_panda); - - this->panda->set_esp_power(FALSE); - this->panda->set_safety_mode(panda::SAFETY_ALLOUTPUT); - this->panda->set_can_loopback(FALSE); - this->panda->set_alt_setting(0); - - this->thread_kill_event = CreateEvent(NULL, TRUE, FALSE, NULL); - - DWORD klineListenThreadID; - this->kline_recv_handle = CreateThread(NULL, 0, _kline_recv_threadBootstrap, (LPVOID)this, 0, &klineListenThreadID); - - DWORD canListenThreadID; - this->can_recv_handle = CreateThread(NULL, 0, _can_recv_threadBootstrap, (LPVOID)this, 0, &canListenThreadID); - - DWORD canProcessThreadID; - this->can_process_handle = CreateThread(NULL, 0, _can_process_threadBootstrap, (LPVOID)this, 0, &canProcessThreadID); - - DWORD flowControlSendThreadID; - this->flow_control_wakeup_event = CreateEvent(NULL, TRUE, FALSE, NULL); - this->flow_control_thread_handle = CreateThread(NULL, 0, _msg_tx_threadBootstrap, (LPVOID)this, 0, &flowControlSendThreadID); -}; - -PandaJ2534Device::~PandaJ2534Device() { - SetEvent(this->thread_kill_event); - - DWORD res = WaitForSingleObject(this->kline_recv_handle, INFINITE); - CloseHandle(this->kline_recv_handle); - - res = WaitForSingleObject(this->can_recv_handle, INFINITE); - CloseHandle(this->can_recv_handle); - - res = WaitForSingleObject(this->can_process_handle, INFINITE); - CloseHandle(this->can_process_handle); - - res = WaitForSingleObject(this->flow_control_thread_handle, INFINITE); - CloseHandle(this->flow_control_thread_handle); - - CloseHandle(this->flow_control_wakeup_event); - CloseHandle(this->thread_kill_event); -} - -std::shared_ptr PandaJ2534Device::openByName(std::string sn) { - auto p = panda::Panda::openPanda(""); - if (p == nullptr) - return nullptr; - return std::unique_ptr(new PandaJ2534Device(std::move(p))); -} - -DWORD PandaJ2534Device::closeChannel(unsigned long ChannelID) { - if (this->connections.size() <= ChannelID) return ERR_INVALID_CHANNEL_ID; - if (this->connections[ChannelID] == nullptr) return ERR_INVALID_CHANNEL_ID; - this->connections[ChannelID] = nullptr; - return STATUS_NOERROR; -} - -DWORD PandaJ2534Device::addChannel(std::shared_ptr& conn, unsigned long* channel_id) { - int channel_index = -1; - for (unsigned int i = 0; i < this->connections.size(); i++) - if (this->connections[i] == nullptr) { - channel_index = i; - break; - } - - if (channel_index == -1) { - if (this->connections.size() == 0xFFFF) //channelid max 16 bits - return ERR_FAILED; //Too many channels - this->connections.push_back(nullptr); - channel_index = this->connections.size() - 1; - } - - this->connections[channel_index] = conn; - - *channel_id = channel_index; - return STATUS_NOERROR; -} - -std::string PandaJ2534Device::kline_five_baud_init(uint8_t addr) { - synchronized(kline_rx_mutex) { - Sleep(300); // W1 - this->panda->kline_slow_init(true, true, addr); - // wakeup sometimes adds a leading null char - this->panda->serial_clear(panda::SERIAL_LIN1); - this->panda->serial_clear(panda::SERIAL_LIN2); - // read 0x55 KB1 KB2 - auto key_bytes = this->panda->serial_read(panda::SERIAL_LIN1, 3, 300); - auto bytes = key_bytes.c_str(); - if (key_bytes.size() == 3 && bytes[0] == 0x55) { - Sleep(25); // W4 - // send inverted KB2 - auto kb2_inv = std::string(1, ~bytes[2]); - if (this->panda->serial_write(panda::SERIAL_LIN1, kb2_inv)) { - // read addr inverted - auto addr_inv = this->panda->serial_read(panda::SERIAL_LIN1, 1, 50); - if (addr_inv.size() == 1 && addr_inv.c_str()[0] == ~addr) { - // return only KB1 KB2 - return key_bytes.substr(1, 2); - } - } - } - - } - - return std::string(); -} - -std::string PandaJ2534Device::kline_wakeup_start_comm(std::string& start_comm) { - synchronized(kline_rx_mutex) { - Sleep(25); - this->panda->kline_fast_init(true, true); - // wakeup sometimes adds a leading null char - this->panda->serial_clear(panda::SERIAL_LIN1); - this->panda->serial_clear(panda::SERIAL_LIN2); - // send start communication message - if (this->panda->kline_send(panda::SERIAL_LIN1, start_comm)) { - Sleep(25); - // read start communication response - return this->panda->serial_read(panda::SERIAL_LIN1, KLINE_MSG_MAX_LEN, 20); - } - } - - return std::string(); -} - -BOOL PandaJ2534Device::kline_send(std::string& data) { - // since send reads echo, block rx thread - synchronized(kline_rx_mutex) { - return this->panda->kline_send(panda::SERIAL_LIN1, data) ? TRUE : FALSE; - } -} - -DWORD PandaJ2534Device::kline_recv_thread() { - this->panda->serial_clear(panda::SERIAL_LIN1); - while (true) { - if (!WaitForSingleObject(this->thread_kill_event, 0)) { - break; - } - - std::vector msg_recv; - synchronized(kline_rx_mutex) { - msg_recv = this->panda->kline_recv(panda::SERIAL_LIN1); - } - if (msg_recv.empty()) { - Sleep(1); - continue; - } - - for (auto &msg : msg_recv) { - for (auto& conn : this->connections) { - if (conn != nullptr && !conn->isProtoCan()) { - J2534Frame msg_out(conn->getProtocol(), msg); - conn->processMessage(msg_out); - } - } - } - } - - return 0; -} - -DWORD PandaJ2534Device::can_recv_thread() { - this->panda->can_clear(panda::PANDA_CAN_RX); - this->panda->can_rx_q_push(this->thread_kill_event); - - return 0; -} - -DWORD PandaJ2534Device::can_process_thread() { - panda::PANDA_CAN_MSG msg_recv[CAN_RX_MSG_LEN]; - - while (true) { - if (!WaitForSingleObject(this->thread_kill_event, 0)) { - break; - } - - int count = 0; - this->panda->can_rx_q_pop(msg_recv, count); - if (count == 0) { - continue; - } - - for (int i = 0; i < count; i++) { - auto msg_in = msg_recv[i]; - J2534Frame msg_out(msg_in); - - if (msg_in.is_receipt) { - synchronized(task_queue_mutex) { - if (txMsgsAwaitingEcho.size() > 0) { - auto msgtx = txMsgsAwaitingEcho.front(); - if (auto conn = msgtx->connection.lock()) { - if (conn->isProtoCan() && conn->getPort() == msg_in.bus) { - if (msgtx->checkTxReceipt(msg_out)) { - //Things to check: - // Frame not for this msg: Drop frame and alert. Error? - // Frame is for this msg, more tx frames required after a FC frame: Wait for FC frame to come and trigger next tx. - // Frame is for this msg, more tx frames required: Schedule next tx frame. - // Frame is for this msg, and is the final frame of the msg: Let conn process full msg, If another msg from this conn is available, register it. - txMsgsAwaitingEcho.pop(); //Remove the TX object and schedule record. - - if (msgtx->isFinished()) { - this->removeConnectionTopAction(conn, msgtx); - } else { - if (msgtx->txReady()) { //Not finished, ready to send next frame. - msgtx->schedule(msg_in.recv_time_point, TRUE); - this->insertActionIntoTaskList(msgtx); - } else { - //Not finished, but next frame not ready (maybe waiting for flow control). - //Do not schedule more messages from this connection. - //this->ConnTxSet.erase(conn); - //Removing this means new messages queued can kickstart the queue and overstep the current message. - } - } - } - } - } else { - //Connection has died. Clear out the tx entry from device records. - txMsgsAwaitingEcho.pop(); - this->ConnTxSet.erase(conn); //connection is already dead, no need to schedule future tx msgs. - } - } - } - } else { - for (auto& conn : this->connections) - if (conn != nullptr && conn->isProtoCan() && conn->getPort() == msg_in.bus) - conn->processMessage(msg_out); - } - } - } - - return 0; -} - -DWORD PandaJ2534Device::msg_tx_thread() { - const HANDLE subscriptions[] = { this->flow_control_wakeup_event, this->thread_kill_event }; - DWORD sleepDuration = INFINITE; - while (TRUE) { - DWORD res = WaitForMultipleObjects(2, subscriptions, FALSE, sleepDuration); - if (res == WAIT_OBJECT_0 + 1) return 0; - if (res != WAIT_OBJECT_0 && res != WAIT_TIMEOUT) { - printf("Got an unexpected wait result in flow_control_write_thread. Res: %d; GetLastError: %d\n. Terminating thread.", res, GetLastError()); - return 0; - } - ResetEvent(this->flow_control_wakeup_event); - - while (TRUE) { - synchronized(task_queue_mutex) { //implemented with for loop. Consumes breaks. - if (this->task_queue.size() == 0) { - sleepDuration = INFINITE; - goto break_flow_ctrl_loop; - } - if (std::chrono::steady_clock::now() >= this->task_queue.front()->expire) { - auto task = this->task_queue.front(); //Get the scheduled tx record. - this->task_queue.pop_front(); - task->execute(); - } else { //Ran out of things that need to be sent now. Sleep! - auto time_diff = std::chrono::duration_cast - (this->task_queue.front()->expire - std::chrono::steady_clock::now()); - sleepDuration = max(1, time_diff.count()); - goto break_flow_ctrl_loop; - } - } - } - break_flow_ctrl_loop: - continue; - } - return 0; -} - -//Place the Action in the task queue based on the Action's expiration time, -//then signal the thread that processes actions. -void PandaJ2534Device::insertActionIntoTaskList(std::shared_ptr action) { - synchronized(task_queue_mutex) { - auto iter = this->task_queue.begin(); - for (; iter != this->task_queue.end(); iter++) { - if (action->expire < (*iter)->expire) break; - } - this->task_queue.insert(iter, action); - } - SetEvent(this->flow_control_wakeup_event); -} - -void PandaJ2534Device::scheduleAction(std::shared_ptr msg, BOOL startdelayed) { - if(startdelayed) - msg->scheduleImmediateDelay(); - else - msg->scheduleImmediate(); - this->insertActionIntoTaskList(msg); -} - -void PandaJ2534Device::registerConnectionTx(std::shared_ptr conn) { - synchronized(connTXSet_mutex) { - auto ret = this->ConnTxSet.insert(conn); - if (ret.second == FALSE) return; //Conn already exists. - this->scheduleAction(conn->txbuff.front()); - } -} - -void PandaJ2534Device::unstallConnectionTx(std::shared_ptr conn) { - synchronized(connTXSet_mutex) { - auto ret = this->ConnTxSet.insert(conn); - if (ret.second == TRUE) return; //Conn already exists. - this->insertActionIntoTaskList(conn->txbuff.front()); - } -} - -void PandaJ2534Device::removeConnectionTopAction(std::shared_ptr conn, std::shared_ptr msg) { - synchronized(task_queue_mutex) { - if (conn->txbuff.size() == 0) - return; - if (conn->txbuff.front() != msg) - return; - conn->txbuff.pop(); //Remove the top TX message from the connection tx queue. - - //Remove the connection from the active connection list if no more messages are scheduled with this connection. - if (conn->txbuff.size() == 0) { - //Update records showing the connection no longer has a tx record scheduled. - this->ConnTxSet.erase(conn); - } else { - //Add the next scheduled tx from this conn - this->scheduleAction(conn->txbuff.front()); - } - } -} diff --git a/drivers/windows/pandaJ2534DLL/PandaJ2534Device.h b/drivers/windows/pandaJ2534DLL/PandaJ2534Device.h deleted file mode 100644 index d5f91303f..000000000 --- a/drivers/windows/pandaJ2534DLL/PandaJ2534Device.h +++ /dev/null @@ -1,95 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include "J2534_v0404.h" -#include "panda_shared/panda.h" -#include "synchronize.h" -#include "Action.h" -#include "MessageTx.h" -#include "J2534Connection.h" - -class J2534Connection; -class Action; -class MessageTx; - -/** -Class representing a physical panda adapter. Instances are created by -PassThruOpen in the J2534 API. A Device can create one or more -J2534Connections. -*/ -class PandaJ2534Device { -public: - PandaJ2534Device(std::unique_ptr new_panda); - - ~PandaJ2534Device(); - - static std::shared_ptr openByName(std::string sn); - - DWORD closeChannel(unsigned long ChannelID); - DWORD addChannel(std::shared_ptr& conn, unsigned long* channel_id); - - std::unique_ptr panda; - std::vector> connections; - - //Place the Action in the task queue based on the Action's expiration time, - //then signal the thread that processes actions. - void insertActionIntoTaskList(std::shared_ptr action); - - void scheduleAction(std::shared_ptr msg, BOOL startdelayed=FALSE); - - void registerConnectionTx(std::shared_ptr conn); - - //Resume sending messages from the provided Connection's TX queue. - void unstallConnectionTx(std::shared_ptr conn); - - //Cleans up several queues after a message completes, is canceled, or otherwise goes away. - void removeConnectionTopAction(std::shared_ptr conn, std::shared_ptr msg); - - //Messages that have been sent on the wire will be echoed by the panda when - //transmission is complete. This tracks what is still waiting to hear an echo. - std::queue> txMsgsAwaitingEcho; - - std::string kline_five_baud_init(uint8_t addr); - std::string kline_wakeup_start_comm(std::string& start_comm); - BOOL kline_send(std::string& data); - -private: - HANDLE thread_kill_event; - - HANDLE kline_recv_handle; - static DWORD WINAPI _kline_recv_threadBootstrap(LPVOID This) { - return ((PandaJ2534Device*)This)->kline_recv_thread(); - } - DWORD kline_recv_thread(); - - HANDLE can_recv_handle; - static DWORD WINAPI _can_recv_threadBootstrap(LPVOID This) { - return ((PandaJ2534Device*)This)->can_recv_thread(); - } - DWORD can_recv_thread(); - - HANDLE can_process_handle; - static DWORD WINAPI _can_process_threadBootstrap(LPVOID This) { - return ((PandaJ2534Device*)This)->can_process_thread(); - } - DWORD can_process_thread(); - - HANDLE flow_control_wakeup_event; - HANDLE flow_control_thread_handle; - static DWORD WINAPI _msg_tx_threadBootstrap(LPVOID This) { - return ((PandaJ2534Device*)This)->msg_tx_thread(); - } - DWORD msg_tx_thread(); - std::list> task_queue; - Mutex task_queue_mutex; - - std::queue> ConnTxQueue; - std::set> ConnTxSet; - Mutex connTXSet_mutex; - BOOL txInProgress; - - Mutex kline_rx_mutex; -}; diff --git a/drivers/windows/pandaJ2534DLL/Timer.cpp b/drivers/windows/pandaJ2534DLL/Timer.cpp deleted file mode 100644 index 2f20f888e..000000000 --- a/drivers/windows/pandaJ2534DLL/Timer.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "stdafx.h" -#include "Timer.h" - - -Timer::Timer() -{ - start = std::chrono::time_point_cast(clock::now()); -} - -// gets the time elapsed from construction. -unsigned long long /*milliseconds*/ Timer::getTimePassed(){ - // get the new time - auto end = std::chrono::time_point_cast(clock::now()); - - // return the difference of the times - return (end - start).count(); -} \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/Timer.h b/drivers/windows/pandaJ2534DLL/Timer.h deleted file mode 100644 index d4888fc5e..000000000 --- a/drivers/windows/pandaJ2534DLL/Timer.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once -#include - -//Copied from https://stackoverflow.com/a/31488113 - -class Timer -{ - using clock = std::chrono::steady_clock; - using time_point_type = std::chrono::time_point < clock, std::chrono::milliseconds >; -public: - Timer(); - - // gets the time elapsed from construction. - unsigned long long /*milliseconds*/ getTimePassed(); - -private: - time_point_type start; -}; \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/constants_ISO15765.h b/drivers/windows/pandaJ2534DLL/constants_ISO15765.h deleted file mode 100644 index 86928f143..000000000 --- a/drivers/windows/pandaJ2534DLL/constants_ISO15765.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once - -#define msg_is_extaddr(msg) check_bmask(msg->TxFlags, ISO15765_ADDR_TYPE) -#define msg_is_padded(msg) check_bmask(msg->TxFlags, ISO15765_FRAME_PAD) - -#define FRAME_SINGLE 0x00 -#define FRAME_FIRST 0x10 -#define FRAME_CONSEC 0x20 -#define FRAME_FLOWCTRL 0x30 - -#define FLOWCTRL_CONTINUE 0 -#define FLOWCTRL_WAIT 1 -#define FLOWCTRL_ABORT 2 - -#define msg_get_type(msg, addrlen) ((msg).Data[addrlen] & 0xF0) - -#define is_single(msg, addrlen) (msg_get_type(msg, addrlen) == FRAME_SINGLE) -#define is_first(msg, addrlen) (msg_get_type(msg, addrlen) == FRAME_FIRST) -#define is_consecutive(msg, addrlen) (msg_get_type(msg, addrlen) == FRAME_CONSEC) -#define is_flowctrl(msg, addrlen) (msg_get_type(msg, addrlen) == FRAME_FLOWCTRL) \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/dllmain.cpp b/drivers/windows/pandaJ2534DLL/dllmain.cpp deleted file mode 100644 index d4122e0b1..000000000 --- a/drivers/windows/pandaJ2534DLL/dllmain.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// dllmain.cpp : Defines the entry point for the DLL application. -#include "dllmain.h" - -HMODULE thisdll; - -BOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved - ) -{ - thisdll = hModule; - - switch (ul_reason_for_call) - { - case DLL_PROCESS_ATTACH: - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - case DLL_PROCESS_DETACH: - break; - } - return TRUE; -} diff --git a/drivers/windows/pandaJ2534DLL/dllmain.h b/drivers/windows/pandaJ2534DLL/dllmain.h deleted file mode 100644 index f49819e2c..000000000 --- a/drivers/windows/pandaJ2534DLL/dllmain.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once -#include "stdafx.h" - -extern HMODULE thisdll; diff --git a/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.cpp b/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.cpp deleted file mode 100644 index ea877e18c..000000000 --- a/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.cpp +++ /dev/null @@ -1,432 +0,0 @@ -// pandaJ2534DLL.cpp : Defines the exported functions for the DLL application. -// Protocol derived from the following sites (which shall be referred to as The Protocol Reference #). -// https://web.archive.org/web/20130805013326/https://tunertools.com/prodimages/DrewTech/Manuals/PassThru_API-1.pdf -// http://web.archive.org/web/20170910063536/http://www.tiecar.net/downloads/SAE_J2534_2002.pdf - -#include "stdafx.h" -#include "J2534_v0404.h" -#include "panda_shared/panda.h" -#include "J2534Connection.h" -#include "J2534Connection_ISO14230.h" -#include "J2534Connection_CAN.h" -#include "J2534Connection_ISO15765.h" -#include "PandaJ2534Device.h" -#include "dllmain.h" - -// A quick way to avoid the name mangling that __stdcall liked to do -#define EXPORT comment(linker, "/EXPORT:" __FUNCTION__ "=" __FUNCDNAME__) - -std::vector> pandas; - -int J25334LastError = 0; - -std::string GetProductAndVersion(TCHAR* szFilename)//std::string & strProductName, std::string & strProductVersion) -{ - // allocate a block of memory for the version info - DWORD dummy; - DWORD dwSize = GetFileVersionInfoSize(szFilename, &dummy); - if (dwSize == 0) { - return "error"; - } - std::vector data(dwSize); - - // load the version info - if (!GetFileVersionInfo(szFilename, NULL, dwSize, &data[0])) { - return "error"; - } - - // get the name and version strings - LPVOID pvProductName = NULL; - unsigned int iProductNameLen = 0; - LPVOID pvProductVersion = NULL; - unsigned int iProductVersionLen = 0; - - // 040904b0 is a language id. - if (!VerQueryValueA(&data[0], "\\StringFileInfo\\040904b0\\ProductName", &pvProductName, &iProductNameLen) || - !VerQueryValueA(&data[0], "\\StringFileInfo\\040904b0\\ProductVersion", &pvProductVersion, &iProductVersionLen)) { - return "error"; - } - - std::string ver_str = std::string((char*)pvProductVersion, iProductVersionLen-1); - std::string prod_str = std::string((char*)pvProductName, iProductNameLen-1); - std::string full_ver = prod_str + std::string(": ") + ver_str; - return full_ver; -} - -long ret_code(long code) { - J25334LastError = code; - return code; -} - -#define EXTRACT_DID(CID) ((CID & 0xFFFF) - 1) -#define EXTRACT_CID(CID) ((CID >> 16) & 0xFFFF) - -long check_valid_DeviceID(unsigned long DeviceID) { - uint16_t dev_id = EXTRACT_DID(DeviceID); - if (pandas.size() <= dev_id || pandas[dev_id] == nullptr) - return ret_code(ERR_INVALID_DEVICE_ID); - return ret_code(STATUS_NOERROR); -} - -long check_valid_ChannelID(unsigned long ChannelID) { - uint16_t dev_id = EXTRACT_DID(ChannelID); - uint16_t con_id = EXTRACT_CID(ChannelID); - - if (pandas.size() <= dev_id || pandas[dev_id] == nullptr) - return ret_code(ERR_INVALID_CHANNEL_ID); - - if (pandas[dev_id]->connections.size() <= con_id) return ret_code(ERR_INVALID_CHANNEL_ID); - if (pandas[dev_id]->connections[con_id] == nullptr) return ret_code(ERR_DEVICE_NOT_CONNECTED); - - return ret_code(STATUS_NOERROR); -} - -//Do not call without checking if the device/channel id exists first. -#define get_device(DeviceID) (pandas[EXTRACT_DID(DeviceID)]) -#define get_channel(ChannelID) (get_device(ChannelID)->connections[EXTRACT_CID(ChannelID)]) - -PANDAJ2534DLL_API long PTAPI PassThruOpen(void *pName, unsigned long *pDeviceID) { - #pragma EXPORT - if (pDeviceID == NULL) return ret_code(ERR_NULL_PARAMETER); - std::string sn = (pName == NULL) ? "" : std::string((char*)pName); - if (sn == "J2534-2:") - sn = ""; - - auto new_panda = PandaJ2534Device::openByName(sn); - if (new_panda == nullptr) { - if(sn == "" && pandas.size() == 1) - return ret_code(ERR_DEVICE_IN_USE); - //for (auto& pn : pandas) { - // if (pn->panda->get_usb_sn() == sn) - // return ret_code(ERR_DEVICE_IN_USE); - //} - return ret_code(ERR_DEVICE_NOT_CONNECTED); - } - - int panda_index = -1; - for (unsigned int i = 0; i < pandas.size(); i++) - if (pandas[i] == nullptr) { - panda_index = i; - pandas[panda_index] = std::move(new_panda); - break; - } - - if (panda_index == -1) { - if(pandas.size() == 0xFFFF) //device id will be 16 bit to fit channel next to it. - return ret_code(ERR_FAILED); //Too many pandas. Off the endangered species list. - pandas.push_back(std::move(new_panda)); - panda_index = pandas.size()-1; - } - - *pDeviceID = panda_index + 1; // TIS doesn't like it when ID == 0 - return ret_code(STATUS_NOERROR); -} -PANDAJ2534DLL_API long PTAPI PassThruClose(unsigned long DeviceID) { - #pragma EXPORT - if (check_valid_DeviceID(DeviceID) != STATUS_NOERROR) return J25334LastError; - get_device(DeviceID) = nullptr; - return ret_code(STATUS_NOERROR); -} -PANDAJ2534DLL_API long PTAPI PassThruConnect(unsigned long DeviceID, unsigned long ProtocolID, - unsigned long Flags, unsigned long BaudRate, unsigned long *pChannelID) { - #pragma EXPORT - if (pChannelID == NULL) return ret_code(ERR_NULL_PARAMETER); - if (check_valid_DeviceID(DeviceID) != STATUS_NOERROR) return J25334LastError; - auto& panda = get_device(DeviceID); - - std::shared_ptr conn; - - //TODO check if channel can be made - try { - switch (ProtocolID) { - //SW seems to refer to Single Wire. https://www.nxp.com/files-static/training_pdf/20451_BUS_COMM_WBT.pdf - //SW_ protocols may be touched on here: https://www.iso.org/obp/ui/#iso:std:iso:22900:-2:ed-1:v1:en - //case J1850VPW: // These protocols are outdated and will not be supported. HDS wants them to not fail to open. - //case J1850PWM: // ^-- it appears HDS no longer needs this, and TIS needs it disabled --^ - //case J1850VPW_PS: - //case J1850PWM_PS: - case ISO9141: - //case ISO9141_PS: - case ISO14230: - //case ISO14230_PS: - conn = std::make_shared(panda, ProtocolID, Flags, BaudRate); - break; - case CAN: - //case CAN_PS: - //case SW_CAN_PS: - conn = std::make_shared(panda, ProtocolID, Flags, BaudRate); - break; - case ISO15765: - //case ISO15765_PS: - conn = std::make_shared(panda, ProtocolID, Flags, BaudRate); - break; - //case SW_ISO15765_PS: // SW = Single Wire. GMLAN is a SW CAN protocol - //case GM_UART_PS: // PS = Pin Select. Handles different ports. - //Looks like SCI based protocols may not be compatible with the panda: - //http://mdhmotors.com/can-communications-vehicle-network-protocols/3/ - //case SCI_A_ENGINE: - //case SCI_A_TRANS: - //case SCI_B_ENGINE: - //case SCI_B_TRANS: - //case J2610_PS: - default: - return ret_code(ERR_INVALID_PROTOCOL_ID); - } - } catch (int e) { - return ret_code(e); - } - - unsigned long channel_index; - unsigned long err = panda->addChannel(conn, &channel_index); - if (err == STATUS_NOERROR) - *pChannelID = (channel_index << 16) | DeviceID; - - return ret_code(err); -} -PANDAJ2534DLL_API long PTAPI PassThruDisconnect(unsigned long ChannelID) { - #pragma EXPORT - unsigned long res = check_valid_DeviceID(ChannelID); - if (res == ERR_INVALID_DEVICE_ID) return ret_code(ERR_INVALID_CHANNEL_ID); - if (res != STATUS_NOERROR) return J25334LastError; - return ret_code(get_device(ChannelID)->closeChannel(EXTRACT_CID(ChannelID))); -} -PANDAJ2534DLL_API long PTAPI PassThruReadMsgs(unsigned long ChannelID, PASSTHRU_MSG *pMsg, - unsigned long *pNumMsgs, unsigned long Timeout) { - #pragma EXPORT - if (pMsg == NULL || pNumMsgs == NULL) return ret_code(ERR_NULL_PARAMETER); - if (check_valid_ChannelID(ChannelID) != STATUS_NOERROR) return J25334LastError; - return ret_code(get_channel(ChannelID)->PassThruReadMsgs(pMsg, pNumMsgs, Timeout)); -} -PANDAJ2534DLL_API long PTAPI PassThruWriteMsgs(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pNumMsgs, unsigned long Timeout) { - #pragma EXPORT - if (pMsg == NULL || pNumMsgs == NULL) return ret_code(ERR_NULL_PARAMETER); - if (check_valid_ChannelID(ChannelID) != STATUS_NOERROR) return J25334LastError; - return ret_code(get_channel(ChannelID)->PassThruWriteMsgs(pMsg, pNumMsgs, Timeout)); -} -PANDAJ2534DLL_API long PTAPI PassThruStartPeriodicMsg(unsigned long ChannelID, PASSTHRU_MSG *pMsg, unsigned long *pMsgID, unsigned long TimeInterval) { - #pragma EXPORT - if (pMsg == NULL || pMsgID == NULL) return ret_code(ERR_NULL_PARAMETER); - if (check_valid_ChannelID(ChannelID) != STATUS_NOERROR) return J25334LastError; - return ret_code(get_channel(ChannelID)->PassThruStartPeriodicMsg(pMsg, pMsgID, TimeInterval)); -} -PANDAJ2534DLL_API long PTAPI PassThruStopPeriodicMsg(unsigned long ChannelID, unsigned long MsgID) { - #pragma EXPORT - if (check_valid_ChannelID(ChannelID) != STATUS_NOERROR) return J25334LastError; - return ret_code(get_channel(ChannelID)->PassThruStopPeriodicMsg(MsgID)); -} -PANDAJ2534DLL_API long PTAPI PassThruStartMsgFilter(unsigned long ChannelID, unsigned long FilterType, PASSTHRU_MSG *pMaskMsg, - PASSTHRU_MSG *pPatternMsg, PASSTHRU_MSG *pFlowControlMsg, unsigned long *pFilterID) { - #pragma EXPORT - if (FilterType != PASS_FILTER && FilterType != BLOCK_FILTER && FilterType != FLOW_CONTROL_FILTER) return ret_code(ERR_NULL_PARAMETER); - if (!pFilterID || (!pMaskMsg && !pPatternMsg && !pFlowControlMsg)) return ret_code(ERR_NULL_PARAMETER); - if (check_valid_ChannelID(ChannelID) != STATUS_NOERROR) return J25334LastError; - return ret_code(get_channel(ChannelID)->PassThruStartMsgFilter(FilterType, pMaskMsg, pPatternMsg, pFlowControlMsg, pFilterID)); -} -PANDAJ2534DLL_API long PTAPI PassThruStopMsgFilter(unsigned long ChannelID, unsigned long FilterID) { - #pragma EXPORT - if (check_valid_ChannelID(ChannelID) != STATUS_NOERROR) return J25334LastError; - return ret_code(get_channel(ChannelID)->PassThruStopMsgFilter(FilterID)); -} -PANDAJ2534DLL_API long PTAPI PassThruSetProgrammingVoltage(unsigned long DeviceID, unsigned long PinNumber, unsigned long Voltage) { - #pragma EXPORT - //Unused - if (check_valid_DeviceID(DeviceID) != STATUS_NOERROR) return J25334LastError; - auto& panda = get_device(DeviceID); - - switch (Voltage) { - case SHORT_TO_GROUND: - break; - case VOLTAGE_OFF: - break; - default: - if (!(5000 <= Voltage && Voltage <= 20000)) - return ret_code(ERR_NOT_SUPPORTED); - break; - } - - return ret_code(STATUS_NOERROR); -} -PANDAJ2534DLL_API long PTAPI PassThruReadVersion(unsigned long DeviceID, char *pFirmwareVersion, char *pDllVersion, char *pApiVersion) { - #pragma EXPORT - if (!pFirmwareVersion || !pDllVersion || !pApiVersion) return ret_code(ERR_NULL_PARAMETER); - if (check_valid_DeviceID(DeviceID) != STATUS_NOERROR) return J25334LastError; - - auto& panda = get_device(DeviceID); - auto fw_version = panda->panda->get_version(); - strcpy_s(pFirmwareVersion, 80, fw_version.c_str()); - - std::string j2534dll_ver; - TCHAR pandalib_filename[MAX_PATH + 1] = { 0 }; - if (GetModuleFileName(thisdll, pandalib_filename, MAX_PATH) == 0) { - j2534dll_ver = "error"; - } else { - j2534dll_ver = GetProductAndVersion(pandalib_filename); - } - std::string fullver = "(" + j2534dll_ver + ")"; - strcpy_s(pDllVersion, 80, fullver.c_str()); - - strcpy_s(pApiVersion, 80, J2534_APIVER_NOVEMBER_2004); - return ret_code(STATUS_NOERROR); -} -PANDAJ2534DLL_API long PTAPI PassThruGetLastError(char *pErrorDescription) { - #pragma EXPORT - if (pErrorDescription == NULL) return ret_code(ERR_NULL_PARAMETER); - switch (J25334LastError) { - case STATUS_NOERROR: - strcpy_s(pErrorDescription, 80, "Function call successful."); - break; - case ERR_NOT_SUPPORTED: - strcpy_s(pErrorDescription, 80, "Device cannot support requested functionality mandated in J2534."); - break; - case ERR_INVALID_CHANNEL_ID: - strcpy_s(pErrorDescription, 80, "Invalid ChannelID value."); - break; - case ERR_INVALID_PROTOCOL_ID: - strcpy_s(pErrorDescription, 80, "Invalid or unsupported ProtocolID, or resource conflict."); - break; - case ERR_NULL_PARAMETER: - strcpy_s(pErrorDescription, 80, "NULL pointer supplied where a valid pointer is required."); - break; - case ERR_INVALID_IOCTL_VALUE: - strcpy_s(pErrorDescription, 80, "Invalid value for Ioctl parameter."); - break; - case ERR_INVALID_FLAGS: - strcpy_s(pErrorDescription, 80, "Invalid flag values."); - break; - case ERR_FAILED: - strcpy_s(pErrorDescription, 80, "Undefined error."); - break; - case ERR_DEVICE_NOT_CONNECTED: - strcpy_s(pErrorDescription, 80, "Unable to communicate with device."); - break; - case ERR_TIMEOUT: - strcpy_s(pErrorDescription, 80, "Read or write timeout:"); - // PassThruReadMsgs() - No message available to read or could not read the specified number of messages. The actual number of messages read is placed in . - // PassThruWriteMsgs() - Device could not write the specified number of messages. The actual number of messages sent on the vehicle network is placed in . - break; - case ERR_INVALID_MSG: - strcpy_s(pErrorDescription, 80, "Invalid message structure pointed to by pMsg."); - break; - case ERR_INVALID_TIME_INTERVAL: - strcpy_s(pErrorDescription, 80, "Invalid TimeInterval value."); - break; - case ERR_EXCEEDED_LIMIT: - strcpy_s(pErrorDescription, 80, "Exceeded maximum number of message IDs or allocated space."); - break; - case ERR_INVALID_MSG_ID: - strcpy_s(pErrorDescription, 80, "Invalid MsgID value."); - break; - case ERR_DEVICE_IN_USE: - strcpy_s(pErrorDescription, 80, "Device is currently open."); - break; - case ERR_INVALID_IOCTL_ID: - strcpy_s(pErrorDescription, 80, "Invalid IoctlID value."); - break; - case ERR_BUFFER_EMPTY: - strcpy_s(pErrorDescription, 80, "Protocol message buffer empty."); - break; - case ERR_BUFFER_FULL: - strcpy_s(pErrorDescription, 80, "Protocol message buffer full. Messages may have been lost."); - break; - case ERR_BUFFER_OVERFLOW: - strcpy_s(pErrorDescription, 80, "A buffer overflow occurred and messages were lost."); - break; - case ERR_PIN_INVALID: - strcpy_s(pErrorDescription, 80, "Invalid pin number, or pin number already in use."); - break; - case ERR_CHANNEL_IN_USE: - strcpy_s(pErrorDescription, 80, "Channel number is currently connected."); - break; - case ERR_MSG_PROTOCOL_ID: - strcpy_s(pErrorDescription, 80, "The Message's Protocol does not match the Channel's protocol."); - break; - case ERR_INVALID_FILTER_ID: - strcpy_s(pErrorDescription, 80, "Invalid Filter ID value."); - break; - case ERR_NO_FLOW_CONTROL: - strcpy_s(pErrorDescription, 80, "No flow control filter set or matched."); - break; - case ERR_NOT_UNIQUE: - strcpy_s(pErrorDescription, 80, "This filter already exists."); - break; - case ERR_INVALID_BAUDRATE: - strcpy_s(pErrorDescription, 80, "The desired baud rate cannot be achieved within SAE tolerance."); - break; - case ERR_INVALID_DEVICE_ID: - strcpy_s(pErrorDescription, 80, "Device ID invalid."); - break; - } - return ret_code(STATUS_NOERROR); -} -PANDAJ2534DLL_API long PTAPI PassThruIoctl(unsigned long ChannelID, unsigned long IoctlID, - void *pInput, void *pOutput) { - #pragma EXPORT - if (check_valid_ChannelID(ChannelID) != STATUS_NOERROR) return J25334LastError; - auto& dev_entry = get_device(ChannelID); - //get_channel(ChannelID) - - switch (IoctlID) { - case GET_CONFIG: - { - SCONFIG_LIST *inconfig = (SCONFIG_LIST*)pInput; - if (inconfig == NULL) - return ret_code(ERR_NULL_PARAMETER); - for (unsigned int i = 0; i < inconfig->NumOfParams; i++) { - try { - inconfig->ConfigPtr[i].Value = get_channel(ChannelID)->processIOCTLGetConfig(inconfig->ConfigPtr[i].Parameter); - } catch (int e) { - return ret_code(e); - } - } - break; - } - case SET_CONFIG: - { - SCONFIG_LIST *inconfig = (SCONFIG_LIST*)pInput; - if (inconfig == NULL) - return ret_code(ERR_NULL_PARAMETER); - for (unsigned int i = 0; i < inconfig->NumOfParams; i++) { - try { - get_channel(ChannelID)->processIOCTLSetConfig(inconfig->ConfigPtr[i].Parameter, inconfig->ConfigPtr[i].Value); - } catch (int e) { - return ret_code(e); - } - } - break; - } - case READ_VBATT: - panda::PANDA_HEALTH health = dev_entry->panda->get_health(); - *(unsigned long*)pOutput = health.voltage; - break; - case FIVE_BAUD_INIT: - if (!pInput || !pOutput) return ret_code(ERR_NULL_PARAMETER); - return ret_code(get_channel(ChannelID)->init5b((SBYTE_ARRAY*)pInput, (SBYTE_ARRAY*)pOutput)); - case FAST_INIT: - if (!pInput || !pOutput) return ret_code(ERR_NULL_PARAMETER); - return ret_code(get_channel(ChannelID)->initFast((PASSTHRU_MSG*)pInput, (PASSTHRU_MSG*)pOutput)); - case CLEAR_TX_BUFFER: - return ret_code(get_channel(ChannelID)->clearTXBuff()); - case CLEAR_RX_BUFFER: - return ret_code(get_channel(ChannelID)->clearRXBuff()); - case CLEAR_PERIODIC_MSGS: - return ret_code(get_channel(ChannelID)->clearPeriodicMsgs()); - case CLEAR_MSG_FILTERS: - return ret_code(get_channel(ChannelID)->clearMsgFilters()); - case CLEAR_FUNCT_MSG_LOOKUP_TABLE: // LOOKUP TABLE IS RELATED TO J1850 PWM. Unsupported. - if (!pInput) return ret_code(ERR_NULL_PARAMETER); - return ret_code(STATUS_NOERROR); - case ADD_TO_FUNCT_MSG_LOOKUP_TABLE: // LOOKUP TABLE IS RELATED TO J1850 PWM. Unsupported. - if (!pInput) return ret_code(ERR_NULL_PARAMETER); - return ret_code(STATUS_NOERROR); - case DELETE_FROM_FUNCT_MSG_LOOKUP_TABLE: // LOOKUP TABLE IS RELATED TO J1850 PWM. Unsupported. - return ret_code(STATUS_NOERROR); - case READ_PROG_VOLTAGE: - *(unsigned long*)pOutput = 0; - break; - default: - printf("Got unknown IIOCTL %X\n", IoctlID); - return ret_code(ERR_INVALID_IOCTL_ID); - } - - return ret_code(STATUS_NOERROR); -} diff --git a/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.rc b/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.rc deleted file mode 100644 index e359044825257ca8767ea76b363260b861f89007..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4630 zcmdUzTW=CU6vxlAiQi$QFE%!`v^B;@3lyvLl0u0lO-Pltk{~ody(E5i_4l7)y1VRB zQ}h9|S!U+Ux!-1%Uq3f()0`bz-#*&dMmFKSvMI0*u!-H;g$-C$?HP}=YrC`|?-=-$ zu?K9-D7sr_ADKH=;?}ntaLV@B9wBAZk841O><+;0dE8QtzHFbY@)UH z@s9k^#_D(c9$q(}zdT@MY`(#z9sTTEf zMs-z@+$Fo3JmUL<$1S96!{d}3?m~40{koUh1bPJYjIrVKG(rMi1KtPJ>TBD8cMH5d zAc1Bcqswln>W~4lWpM_mJ~~+P7OA!Wt``(ndCUoodMo&>7}NRvJ#26IP9bbJdx|^n zxoyq5ui_UxCMxxnWn>g}{F3GSP07ybTjykS=>3V7i!|Cw*IVGuCievN(ym!%2&+d#S@m8Dr z%n2F>yzSh6=$BcnD7m=y)m@MAt2|RegDLUW&Fq>8^|9=dI1SNtG*^wq++tN^xyq6) zd+9Cuz;Cv$6Plvl6nEp;A&$D^$Ok3#)?Mg^({5k!W+8bbFyg{c|GsBFW`?^$zvLWZaw5X{JckgIp$jHPAuH=QhH@8 zGwM@;+t%!@JczHN9P}BY+aTx5#E!(~GIk7jisM=A*CsY!dkKo&4N+6RU2~6_!Y9Nn zzoR=&)!#X`v9Dq;9whU4CPR5G+hT0BO6SYJvhf6YBYbm922Stsq_f1Aj?9oJLjF9& zqgiRo=S6bL$H?U&*}CrFzwwmQx>JV?9W>~h zXq(KmzxdStH}~lD3A$QyS)YExS$E%8QvTMmS{9|Xk!4!P@o&GEb&I_JdpY_tt;K51 VrQzayAJUcdk52yUI3IU$`V9lgBV+&o diff --git a/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.vcxproj b/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.vcxproj deleted file mode 100644 index 36b30997e..000000000 --- a/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.vcxproj +++ /dev/null @@ -1,152 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {A2BB18A5-F26B-48D6-BBB5-B83D64473C77} - Win32Proj - pandaJ2534DLL - 10.0 - - - - DynamicLibrary - true - v142 - Unicode - - - DynamicLibrary - false - v142 - true - Unicode - - - - - - - - - - - - - - - - true - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - pandaJ2534_0404_32 - - - false - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - pandaJ2534_0404_32 - - - - Use - Level3 - Disabled - WIN32;_DEBUG;_WINDOWS;_USRDLL;PANDAJ2534DLL_EXPORTS;%(PreprocessorDefinitions) - true - $(SolutionDir); - - - Windows - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);version.lib;winusb.lib;setupapi.lib - - - - - Level3 - Use - MaxSpeed - true - true - WIN32;NDEBUG;_WINDOWS;_USRDLL;PANDAJ2534DLL_EXPORTS;%(PreprocessorDefinitions) - true - $(SolutionDir); - - - Windows - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);version.lib;winusb.lib;setupapi.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - - - - - - - - - - - - - - - Create - Create - - - - - - - - - - - - - \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.vcxproj.filters b/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.vcxproj.filters deleted file mode 100644 index de80e89f6..000000000 --- a/drivers/windows/pandaJ2534DLL/pandaJ2534DLL.vcxproj.filters +++ /dev/null @@ -1,173 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - {a4cd0bce-0a2a-43d9-9c9f-b21a3b607e90} - - - {a85ee263-380d-4d37-b167-6629cfd5177f} - - - {010a0176-a146-4d3a-824a-fd683904774d} - - - {71c9502a-ee59-4d5e-873f-c9cc792e7c76} - - - {4fd3183a-c457-430c-b762-f767a5788bca} - - - {53cd179e-22d8-43e2-bc61-516d3861fae6} - - - {08d548b5-4d0b-4ce4-85e6-5ff3fc987758} - - - {b5c1874e-d3f8-4465-89c5-2e2b7e9f4fa4} - - - {b5a39015-f3ca-4888-bd5f-785aeec91345} - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files\J2534_CAN - - - Header Files\J2534_ISO15765 - - - Header Files\depends - - - Header Files\depends - - - Header Files\boilerplate - - - Header Files\boilerplate - - - Header Files\boilerplate - - - Header Files\boilerplate - - - Header Files - - - Header Files\J2534_ISO15765 - - - Header Files - - - Header Files\J2534_ISO15765 - - - Header Files\J2534_CAN - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files\J2534_ISO14230 - - - Header Files\J2534_ISO14230 - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files\J2534_CAN - - - Source Files\J2534_ISO15765 - - - Source Files\boilerplate - - - Source Files\boilerplate - - - Source Files\J2534_ISO15765 - - - Source Files - - - Source Files\J2534_CAN - - - Source Files - - - Source Files\J2534_ISO14230 - - - Source Files\J2534_ISO14230 - - - - - Resource Files - - - - - - \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/resource.h b/drivers/windows/pandaJ2534DLL/resource.h deleted file mode 100644 index af0e13cc0..000000000 --- a/drivers/windows/pandaJ2534DLL/resource.h +++ /dev/null @@ -1,14 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by pandaJ2534DLL.rc - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/drivers/windows/pandaJ2534DLL/stdafx.cpp b/drivers/windows/pandaJ2534DLL/stdafx.cpp deleted file mode 100644 index c27db9ee2..000000000 --- a/drivers/windows/pandaJ2534DLL/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// pandaJ2534DLL.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/drivers/windows/pandaJ2534DLL/stdafx.h b/drivers/windows/pandaJ2534DLL/stdafx.h deleted file mode 100644 index bd4a4b6f7..000000000 --- a/drivers/windows/pandaJ2534DLL/stdafx.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#include "targetver.h" - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -// Windows Header Files: -#include - -#include -#include -#include -#include -#include -#include \ No newline at end of file diff --git a/drivers/windows/pandaJ2534DLL/synchronize.h b/drivers/windows/pandaJ2534DLL/synchronize.h deleted file mode 100644 index 446dfc19e..000000000 --- a/drivers/windows/pandaJ2534DLL/synchronize.h +++ /dev/null @@ -1,56 +0,0 @@ -#pragma once -#define WIN32_LEAN_AND_MEAN -#include - -//Inspired/directly copied from https://www.codeproject.com/Articles/12362/A-quot-synchronized-quot-statement-for-C-like-in-J -//Enables easier synchronization -class Mutex { -public: - Mutex() { - InitializeCriticalSectionAndSpinCount(&critSection, 0x00000400); - //InitializeCriticalSection(&critSection); - } - - ~Mutex() { - DeleteCriticalSection(&critSection); - } - - void lock() { - EnterCriticalSection(&critSection); - } - - void unlock() { - LeaveCriticalSection(&critSection); - } - -private: - CRITICAL_SECTION critSection; -}; - -//Synchronization Controller Object -class Lock { -public: - Lock(Mutex &m) : mutex(m), locked(TRUE) { - m.lock(); - } - - ~Lock() { - mutex.unlock(); - } - - operator bool() const { - return locked; - } - - void setUnlock() { - locked = FALSE; - } - -private: - Mutex& mutex; - bool locked; -}; - -//A useful shorthand for locking and unlocking a mutex over a scope. -//CAUTION, implemented with a for loop, so break/continue are consumed. -#define synchronized(M) for(Lock M##_lock = M; M##_lock; M##_lock.setUnlock()) diff --git a/drivers/windows/pandaJ2534DLL/targetver.h b/drivers/windows/pandaJ2534DLL/targetver.h deleted file mode 100644 index 1bf4ee6fe..000000000 --- a/drivers/windows/pandaJ2534DLL/targetver.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include - -#define WINVER _WIN32_WINNT_WIN7 -#define _WIN32_WINNT _WIN32_WINNT_WIN7 - -#include diff --git a/drivers/windows/panda_install.nsi b/drivers/windows/panda_install.nsi deleted file mode 100644 index 4e3929e6d..000000000 --- a/drivers/windows/panda_install.nsi +++ /dev/null @@ -1,214 +0,0 @@ -!define J2534_Reg_Path "Software\PassThruSupport.04.04\comma.ai - panda" -!define Install_Name "panda J2534 driver" - -;NOTE! The panda software requires a VC runtime to be installed in order to work. -;This installer must be bundled with the appropriate runtime installer, and have -;the installation registry key set so the installer can tell if the runtime is -;already installed. Copy vscruntimeinfo.nsh.sample to vscruntimeinfo.nsh and edit -;it for your version of Visual Studio. -!include "redist\vscruntimeinfo.nsh" - -;-------------------------------- -;Include Modern UI -!include "MUI2.nsh" -!include "x64.nsh" - -!define MUI_ICON "panda.ico" -;NSIS is ignoring the unicon unless it is the same as the normal icon -;!define MUI_UNICON "panda_remove.ico" - -;Properly display all languages (Installer will not work on Windows 95, 98 or ME!) -Unicode true - -# Set the installer display name -Name "${Install_Name}" - -# set the name of the installer -Outfile "${Install_Name} install.exe" - -; The default installation directory -InstallDir $PROGRAMFILES\comma.ai\panda - -; Request application privileges for UAC -RequestExecutionLevel admin - -; Registry key to check for directory (so if you install again, it will -; overwrite the old one automatically) -InstallDirRegKey HKLM "SOFTWARE\${Install_Name}" "Install_Dir" - -;-------------------------------- -; Pages -!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "..\..\LICENSE" -!insertmacro MUI_PAGE_COMPONENTS -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_INSTFILES - -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES - -!insertmacro MUI_LANGUAGE "English" ;first language is the default language - -; ------------------------------------------------------------------------------------------------- -; Additional info (will appear in the "details" tab of the properties window for the installer) - -VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "panda OBD-II adapter" -VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "" -VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "comma.ai" -VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Application released under the MIT license" -;VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© ${PRODUCT_NAME} Team" -;VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Jessy Exum" -;VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${PRODUCT_VERSION}" -VIProductVersion "1.0.0.0" - -;-------------------------------- -; Install Sections -Section "prerequisites" - - SectionIn RO - - SetOutPath "$INSTDIR" - - File "panda.ico" - - ;If the visual studio version this project is compiled with changes, this section - ;must be revisited. The registry key must be changed, and the VS redistributable - ;binary must be updated to the VS version used. - ClearErrors - ReadRegStr $0 HKCR ${VCRuntimeRegKey} "Version" - ${If} ${Errors} - DetailPrint "Installing Visual Studio C Runtime..." - File "${VCRuntimeSetupPath}\${VCRuntimeSetupFile}" - ExecWait '"$INSTDIR\${VCRuntimeSetupFile}" /passive /norestart' - ${Else} - DetailPrint "Visual Studio C Runtime already installed." - ${EndIf} - - ;Remove the now unnecessary runtime installer. - Delete "$INSTDIR\${VCRuntimeSetupFile}" - - ;Do the rest of the install - ; SetOutPath "$INSTDIR\driver" - - ; The inf file works for both 32 and 64 bit. - ; File "Debug_x86\panda Driver Package\panda.inf" - ; File "Debug_x86\panda Driver Package\panda.cat" - ; ${DisableX64FSRedirection} - ; nsExec::ExecToLog '"$SYSDIR\PnPutil.exe" /a "$INSTDIR\driver\panda.inf"' - ; ${EnableX64FSRedirection} - - ; Write the installation path into the registry - WriteRegStr HKLM "SOFTWARE\${Install_Name}" "Install_Dir" "$INSTDIR" - - ; Write the uninstall keys for Windows - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "DisplayVersion" "" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "DisplayIcon" '"$INSTDIR\panda.ico",0' - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "DisplayName" "${Install_Name}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "Publisher" "comma.ai" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "UninstallString" '"$INSTDIR\uninstall.exe"' - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "URLInfoAbout" "https://github.com/commaai/panda/" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "NoModify" 1 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" "NoRepair" 1 - - SetOutPath $INSTDIR - WriteUninstaller "uninstall.exe" - -SectionEnd - -Section "J2534 Driver" - - SetOutPath $INSTDIR - - File Release_x86\pandaJ2534_0404_32.dll - - SetRegView 32 - WriteRegDWORD HKLM "${J2534_Reg_Path}" "CAN" 00000001 - WriteRegStr HKLM "${J2534_Reg_Path}" "FunctionLibrary" "$INSTDIR\pandaJ2534_0404_32.dll" - WriteRegDWORD HKLM "${J2534_Reg_Path}" "ISO15765" 00000001 - WriteRegDWORD HKLM "${J2534_Reg_Path}" "J1850VPW" 00000000 - WriteRegDWORD HKLM "${J2534_Reg_Path}" "SCI_A_ENGINE" 00000000 - WriteRegDWORD HKLM "${J2534_Reg_Path}" "SCI_A_TRANS" 00000000 - WriteRegDWORD HKLM "${J2534_Reg_Path}" "SCI_B_ENGINE" 00000000 - WriteRegDWORD HKLM "${J2534_Reg_Path}" "SCI_B_TRANS" 00000000 - WriteRegDWORD HKLM "${J2534_Reg_Path}" "J1850PWM" 00000000 - WriteRegDWORD HKLM "${J2534_Reg_Path}" "ISO9141" 00000001 - WriteRegDWORD HKLM "${J2534_Reg_Path}" "ISO14230" 00000001 - WriteRegStr HKLM "${J2534_Reg_Path}" "Name" "panda" - WriteRegStr HKLM "${J2534_Reg_Path}" "Vendor" "comma.ai" - WriteRegStr HKLM "${J2534_Reg_Path}" "ConfigApplication" "" - DetailPrint "Registered J2534 Driver" - -SectionEnd - -Section /o "Development lib/header" - - SetOutPath $SYSDIR - - File Release_x86\panda.dll - - ${If} ${RunningX64} - ${DisableX64FSRedirection} - ;Note that the x64 VS redistributable is not installed to prevent bloat. - ;If you are the rare person who uses the 64 bit raw panda driver, please - ;install the correct x64 VS runtime manually. - File Release_x64\panda.dll - ${EnableX64FSRedirection} - ${EndIf} - - SetOutPath "$INSTDIR\devel" - File panda_shared\panda.h - - SetOutPath "$INSTDIR\devel\x86" - File Release_x86\panda.lib - - SetOutPath "$INSTDIR\devel\x64" - File Release_x64\panda.lib - -SectionEnd - -;-------------------------------- -; Uninstaller -Section "Uninstall" - - ; Removing the inf file for winusb is not easy to do. - ; The best solution I can find is parsing the output - ; of the pnputil.exe /e command to find the oem#.inf - ; file that lists comma.ai as the provider. Not sure - ; if Microsoft wants these inf files to be removed. - ; Consider https://blog.sverrirs.com/2015/12/creating-windows-installer-and.html - ; These lines just remove the inf backups. - ; Delete "$INSTDIR\driver\panda.inf" - ; Delete "$INSTDIR\driver\panda.cat" - ; RMDir "$INSTDIR\driver" - - ; Remove WinUSB driver library - Delete $SYSDIR\panda.dll - ${If} ${RunningX64} - ${DisableX64FSRedirection} - Delete $SYSDIR\panda.dll - ${EnableX64FSRedirection} - ${EndIf} - - ; Remove devel files - Delete "$INSTDIR\devel\x86\panda.lib" - RMDir "$INSTDIR\devel\x86" - Delete "$INSTDIR\devel\x64\panda.lib" - RMDir "$INSTDIR\devel\x64" - Delete "$INSTDIR\devel\panda.h" - RMDir "$INSTDIR\devel" - - ; Remove registry keys - DeleteRegKey HKLM "${J2534_Reg_Path}" - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${Install_Name}" - DeleteRegKey HKLM "SOFTWARE\${Install_Name}" - - ; Remove files and uninstaller - Delete "$INSTDIR\uninstall.exe" - Delete "$INSTDIR\pandaJ2534_0404_32.dll" - Delete "$INSTDIR\panda.ico" - - ; Remove directories used - RMDir "$INSTDIR" - RMDir "$PROGRAMFILES\comma.ai" - -SectionEnd diff --git a/drivers/windows/panda_playground/ReadMe.txt b/drivers/windows/panda_playground/ReadMe.txt deleted file mode 100644 index 61ce2c157..000000000 --- a/drivers/windows/panda_playground/ReadMe.txt +++ /dev/null @@ -1,40 +0,0 @@ -======================================================================== - CONSOLE APPLICATION : panda_playground Project Overview -======================================================================== - -AppWizard has created this panda_playground application for you. - -This file contains a summary of what you will find in each of the files that -make up your panda_playground application. - - -panda_playground.vcxproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -panda_playground.vcxproj.filters - This is the filters file for VC++ projects generated using an Application Wizard. - It contains information about the association between the files in your project - and the filters. This association is used in the IDE to show grouping of files with - similar extensions under a specific node (for e.g. ".cpp" files are associated with the - "Source Files" filter). - -panda_playground.cpp - This is the main application source file. - -///////////////////////////////////////////////////////////////////////////// -Other standard files: - -StdAfx.h, StdAfx.cpp - These files are used to build a precompiled header (PCH) file - named panda_playground.pch and a precompiled types file named StdAfx.obj. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" comments to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// diff --git a/drivers/windows/panda_playground/panda_playground.cpp b/drivers/windows/panda_playground/panda_playground.cpp deleted file mode 100644 index 0f51924db..000000000 --- a/drivers/windows/panda_playground/panda_playground.cpp +++ /dev/null @@ -1,86 +0,0 @@ -// panda_playground.cpp : Defines the entry point for the console application. -// - -#include "stdafx.h" -#include "pandaJ2534DLL Test\Loader4.h" -#include "ECUsim DLL\ECUsim.h" -#include - - -int _tmain(int Argc, _TCHAR *Argv) { - UNREFERENCED_PARAMETER(Argc); - UNREFERENCED_PARAMETER(Argv); - - ECUsim sim("", 500000); - - //if (LoadJ2534Dll("C:\\WINDOWS\\SysWOW64\\op20pt32.dll") != 0) { - if (LoadJ2534Dll("pandaJ2534.dll") != 0) { - auto err = GetLastError(); - return 1; - } - unsigned long did, cid, fid; - PassThruOpen("", &did); - PassThruConnect(did, ISO15765, CAN_29BIT_ID, 500000, &cid); - - PASSTHRU_MSG mask, pattern, flow; - - memcpy(mask.Data, "\xff\xff\xff\xff", 4); - mask.DataSize = 4; - mask.ProtocolID = ISO15765; - mask.TxFlags = CAN_29BIT_ID; - mask.ExtraDataIndex = 0; - mask.RxStatus = 0; - - ////////////////////////18//DA//F1//EF - memcpy(pattern.Data, "\x18\xda\xf1\xef", 4); - pattern.DataSize = 4; - pattern.ProtocolID = ISO15765; - pattern.TxFlags = CAN_29BIT_ID; - pattern.ExtraDataIndex = 0; - pattern.RxStatus = 0; - - memcpy(flow.Data, "\x18\xda\xef\xf1", 4); - flow.DataSize = 4; - flow.ProtocolID = ISO15765; - flow.TxFlags = CAN_29BIT_ID; - flow.ExtraDataIndex = 0; - flow.RxStatus = 0; - - auto res = PassThruStartMsgFilter(cid, FLOW_CONTROL_FILTER, &mask, &pattern, &flow, &fid); - if (res != STATUS_NOERROR) - return 1; - - SCONFIG_LIST list; - SCONFIG config; - config.Parameter = LOOPBACK; - config.Value = 0; - list.ConfigPtr = &config; - list.NumOfParams = 1; - - res = PassThruIoctl(cid, SET_CONFIG, &list, NULL); - if (res != STATUS_NOERROR) - return 1; - - PASSTHRU_MSG outmsg; - memcpy(outmsg.Data, "\x18\xda\xef\xf1""\xAA\xBB\xCC\xDD\xEE\xFF\x11\x22\x33\x44", 4 + 10); - outmsg.DataSize = 4 + 10; - outmsg.ProtocolID = ISO15765; - outmsg.TxFlags = CAN_29BIT_ID; - outmsg.ExtraDataIndex = 0; - outmsg.RxStatus = 0; - - unsigned long msgoutcount = 1; - - res = PassThruWriteMsgs(cid, &outmsg, &msgoutcount, 0); - if (res != STATUS_NOERROR) - return 1; - - PASSTHRU_MSG inmsg[8]; - unsigned long msgincount = 8; - - res = PassThruReadMsgs(cid, inmsg, &msgincount, 1000); - if (res != STATUS_NOERROR) - return 1; - - return 0; -} diff --git a/drivers/windows/panda_playground/panda_playground.vcxproj b/drivers/windows/panda_playground/panda_playground.vcxproj deleted file mode 100644 index 9174d7e36..000000000 --- a/drivers/windows/panda_playground/panda_playground.vcxproj +++ /dev/null @@ -1,191 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {691DB635-C272-4B98-897E-0505B970DCA9} - Win32Proj - panda_playground - 10.0 - - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - $(ProjectName)2 - - - true - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - $(ProjectName) - - - false - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - false - $(SolutionDir)$(Configuration)_$(PlatformShortName)\ - - - - Use - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib;$(OutDir)ecusim.lib - - - - - Use - Level3 - Disabled - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib;$(OutDir)ecusim.lib - - - - - Level3 - Use - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Console - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib;$(OutDir)ecusim.lib - - - - - Level3 - Use - MaxSpeed - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - %(AdditionalIncludeDirectories);$(SolutionDir) - - - Console - true - true - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);$(OutDir)panda.lib;$(OutDir)ecusim.lib - - - - - - - - - - - - - - - - Create - Create - Create - Create - - - - - {96e0e646-ee76-444d-9a77-a0cd7f781deb} - - - {a2bb18a5-f26b-48d6-bbb5-b83d64473c77} - - - {5528aefb-638d-49af-b9d4-965154e7d531} - - - - - - \ No newline at end of file diff --git a/drivers/windows/panda_playground/panda_playground.vcxproj.filters b/drivers/windows/panda_playground/panda_playground.vcxproj.filters deleted file mode 100644 index b84fc2318..000000000 --- a/drivers/windows/panda_playground/panda_playground.vcxproj.filters +++ /dev/null @@ -1,45 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/drivers/windows/panda_playground/stdafx.cpp b/drivers/windows/panda_playground/stdafx.cpp deleted file mode 100644 index fefa8d7ec..000000000 --- a/drivers/windows/panda_playground/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// panda_playground.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/drivers/windows/panda_playground/stdafx.h b/drivers/windows/panda_playground/stdafx.h deleted file mode 100644 index f22759b08..000000000 --- a/drivers/windows/panda_playground/stdafx.h +++ /dev/null @@ -1,17 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -// Windows Header Files: -#include - -#include -#include -#include -#include diff --git a/drivers/windows/panda_playground/targetver.h b/drivers/windows/panda_playground/targetver.h deleted file mode 100644 index 87c0086de..000000000 --- a/drivers/windows/panda_playground/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/drivers/windows/panda_remove.ico b/drivers/windows/panda_remove.ico deleted file mode 100644 index 74602e03e913d3fa2040b6d76766e992a680c1e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95950 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 -#include - -#include -#include - -#include - -#include "device.h" - -using namespace panda; - -//Returns the last Win32 error, in string format. Returns an empty string if there is no error. -tstring GetLastErrorAsString(){ - //Get the error message, if any. - DWORD errorMessageID = ::GetLastError(); - if (errorMessageID == 0) - return tstring(); //No error message has been recorded - - _TCHAR *messageBuffer = nullptr; - size_t size = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (_TCHAR*)&messageBuffer, 0, NULL); - - tstring message(messageBuffer, size); - - //Free the buffer. - LocalFree(messageBuffer); - - return message; -} - -std::unordered_map panda::detect_pandas() { - HDEVINFO deviceInfo; - HRESULT hr; - SP_DEVINFO_DATA deviceInfoData; - SP_DEVICE_INTERFACE_DATA interfaceData; - unsigned int deviceIndex; - - std::unordered_map map_sn_to_devpath; - - deviceInfo = SetupDiGetClassDevs(&GUID_DEVINTERFACE_panda, - NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); //DIGCF_ALLCLASSES - - if (deviceInfo == INVALID_HANDLE_VALUE) { - hr = HRESULT_FROM_WIN32(GetLastError()); - _tprintf(_T("Failed to get dev handle. HR: %d\n"), hr); - return map_sn_to_devpath; - } - - ZeroMemory(&deviceInfoData, sizeof(SP_DEVINFO_DATA)); - deviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA); - deviceIndex = 0; - - while (SetupDiEnumDeviceInfo(deviceInfo, deviceIndex, &deviceInfoData)) { - deviceIndex++; - _tprintf(_T("Device info index %d\n"), deviceIndex); - - interfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); - if (SetupDiEnumDeviceInterfaces(deviceInfo, &deviceInfoData, - &GUID_DEVINTERFACE_panda, 0, &interfaceData) == FALSE) { - _tprintf(_T(" Got unexpected error while accessing interface %d\n"), GetLastError()); - continue; - } - - DWORD requiredLength; - if (SetupDiGetDeviceInterfaceDetail(deviceInfo, &interfaceData, NULL, 0, &requiredLength, NULL) == FALSE - && ERROR_INSUFFICIENT_BUFFER != GetLastError()) { - _tprintf(_T(" Got unexpected error while reading interface details %d\n"), GetLastError()); - continue; - } - - PSP_DEVICE_INTERFACE_DETAIL_DATA detailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)LocalAlloc(LMEM_FIXED, requiredLength); - if (NULL == detailData) { - _tprintf(_T(" Failed to allocate %d bytes for interface data\n"), requiredLength); - continue; - } - detailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); - - DWORD length = requiredLength; - if (SetupDiGetDeviceInterfaceDetail(deviceInfo, &interfaceData, detailData, length, &requiredLength, NULL) == FALSE) { - _tprintf(_T(" Got unexpected error while reading interface details (2nd time) %d. Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - LocalFree(detailData); - continue; - } - - //_tprintf(_T(" Path: '%s'\n"), detailData->DevicePath); - HANDLE deviceHandle = CreateFile(detailData->DevicePath, - GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); - - if (INVALID_HANDLE_VALUE == deviceHandle) { - _tprintf(_T(" Error opening Device Handle %d. Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - LocalFree(detailData); - continue; - } - - WINUSB_INTERFACE_HANDLE winusbHandle; - if (WinUsb_Initialize(deviceHandle, &winusbHandle) == FALSE) { - _tprintf(_T(" Error initializing WinUSB %d. Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - CloseHandle(deviceHandle); - LocalFree(detailData); - continue; - } - - USB_DEVICE_DESCRIPTOR deviceDesc; - unsigned long lengthReceived; - if (WinUsb_GetDescriptor(winusbHandle, USB_DEVICE_DESCRIPTOR_TYPE, 0, 0, - (PBYTE)&deviceDesc, sizeof(deviceDesc), &lengthReceived) == FALSE - || lengthReceived != sizeof(deviceDesc)) { - _tprintf(_T(" Error getting device descriptor %d. Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - WinUsb_Free(winusbHandle); - CloseHandle(deviceHandle); - LocalFree(detailData); - continue; - } - - #define SNDESCLEN 64 - PUSB_STRING_DESCRIPTOR psnDesc = (PUSB_STRING_DESCRIPTOR)LocalAlloc(LMEM_FIXED, SNDESCLEN); - if (NULL == psnDesc) { - _tprintf(_T(" Failed to allocate %d bytes for sn data\n"), SNDESCLEN); - continue; - } - - if (WinUsb_GetDescriptor(winusbHandle, USB_STRING_DESCRIPTOR_TYPE, deviceDesc.iSerialNumber, - 0x0409 /*Eng*/, (PBYTE)psnDesc, SNDESCLEN, &lengthReceived) == FALSE || lengthReceived == 0) { - _tprintf(_T(" Error getting serial number %d. Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - LocalFree(psnDesc); - WinUsb_Free(winusbHandle); - CloseHandle(deviceHandle); - LocalFree(detailData); - continue; - } - //The minus 2 is for the two numbers, not the null term. - psnDesc->bString[(psnDesc->bLength - 2) / sizeof(_TCHAR)] = 0; - - char w_to_m_buff[256]; - size_t mbuff_len; - if (wcstombs_s(&mbuff_len, w_to_m_buff, sizeof(w_to_m_buff), psnDesc->bString, 24) != 0) { - _tprintf(_T(" Error generating mb SN string %d. Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - LocalFree(psnDesc); - WinUsb_Free(winusbHandle); - CloseHandle(deviceHandle); - LocalFree(detailData); - continue; - } - std::string serialnum(w_to_m_buff, mbuff_len-1); - printf(" Device found: seriallen: %d; serial: %s\n", lengthReceived, serialnum.c_str()); - - map_sn_to_devpath[serialnum] = tstring(detailData->DevicePath); - - LocalFree(psnDesc); - WinUsb_Free(winusbHandle); - CloseHandle(deviceHandle); - LocalFree(detailData); - } - - if(deviceInfo) - SetupDiDestroyDeviceInfoList(deviceInfo); - - return map_sn_to_devpath; -} diff --git a/drivers/windows/panda_shared/device.h b/drivers/windows/panda_shared/device.h deleted file mode 100644 index f11baa1c6..000000000 --- a/drivers/windows/panda_shared/device.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __PANDA_DEVICE -#define __PANDA_DEVICE - -// -// Define below GUIDs -// -#include -#include - -#if defined(UNICODE) -#define _tcout std::wcout -#define tstring std::wstring -#else -#define _tcout std::cout -#define tstring std::string -#endif - -// -// Device Interface GUID. -// Used by all WinUsb devices that this application talks to. -// Must match "DeviceInterfaceGUIDs" registry value specified in the INF file. -// cce5291c-a69f-4995-a4c2-2ae57a51ade9 -// -DEFINE_GUID(GUID_DEVINTERFACE_panda, - 0xcce5291c,0xa69f,0x4995,0xa4,0xc2,0x2a,0xe5,0x7a,0x51,0xad,0xe9); - -tstring GetLastErrorAsString(); - -namespace panda { - std::unordered_map __declspec(dllexport) detect_pandas(); -} -#endif diff --git a/drivers/windows/panda_shared/panda.cpp b/drivers/windows/panda_shared/panda.cpp deleted file mode 100644 index de79403d6..000000000 --- a/drivers/windows/panda_shared/panda.cpp +++ /dev/null @@ -1,637 +0,0 @@ -// panda.cpp : Defines the exported functions for the DLL application. -// -#include "stdafx.h" - -#include "device.h" -#include "panda.h" - -#define REQUEST_IN 0xC0 -#define REQUEST_OUT 0x40 - -#define CAN_TRANSMIT 1 -#define CAN_EXTENDED 4 - -#define KLINE_HEADER_FMT_ADDR_MASK 0xC0 -#define KLINE_HEADER_FMT_LEN_MASK 0x3F - -using namespace panda; - -Panda::Panda( - WINUSB_INTERFACE_HANDLE WinusbHandle, - HANDLE DeviceHandle, - tstring devPath_, - std::string sn_ -) : usbh(WinusbHandle), devh(DeviceHandle), devPath(devPath_), sn(sn_) { - printf("CREATED A PANDA %s\n", this->sn.c_str()); - this->set_can_loopback(FALSE); - this->set_raw_io(TRUE); - this->set_alt_setting(0); -} - -Panda::~Panda() { - WinUsb_Free(this->usbh); - CloseHandle(this->devh); - printf("Cleanup Panda %s\n", this->sn.c_str()); -} - -std::vector Panda::listAvailablePandas() { - std::vector ret; - auto map_sn_to_devpath = detect_pandas(); - - for (auto kv : map_sn_to_devpath) { - ret.push_back(std::string(kv.first)); - } - - return ret; -} - -std::unique_ptr Panda::openPanda(std::string sn) -{ - auto map_sn_to_devpath = detect_pandas(); - - if (map_sn_to_devpath.empty()) return nullptr; - if (map_sn_to_devpath.find(sn) == map_sn_to_devpath.end() && sn != "") return nullptr; - - tstring devpath; - if (sn.empty()) { - sn = map_sn_to_devpath.begin()->first; - devpath = map_sn_to_devpath.begin()->second; - } else { - devpath = map_sn_to_devpath[sn]; - } - - HANDLE deviceHandle = CreateFile(devpath.c_str(), - GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); - - if (INVALID_HANDLE_VALUE == deviceHandle) { - _tprintf(_T(" Error opening Device Handle %d.\n"),// Msg: '%s'\n"), - GetLastError());// , GetLastErrorAsString().c_str()); - return nullptr; - } - - WINUSB_INTERFACE_HANDLE winusbHandle; - if (WinUsb_Initialize(deviceHandle, &winusbHandle) == FALSE) { - _tprintf(_T(" Error initializing WinUSB %d.\n"),// Msg: '%s'\n"), - GetLastError());// , GetLastErrorAsString().c_str()); - CloseHandle(deviceHandle); - return nullptr; - } - - return std::unique_ptr(new Panda(winusbHandle, deviceHandle, map_sn_to_devpath[sn], sn)); -} - -std::string Panda::get_usb_sn() { - return std::string(this->sn); -} - -int Panda::control_transfer( - uint8_t bmRequestType, - uint8_t bRequest, - uint16_t wValue, - uint16_t wIndex, - void * data, - uint16_t wLength, - unsigned int timeout -) { - UNREFERENCED_PARAMETER(timeout); - - WINUSB_SETUP_PACKET SetupPacket; - ZeroMemory(&SetupPacket, sizeof(WINUSB_SETUP_PACKET)); - ULONG cbSent = 0; - - //Create the setup packet - SetupPacket.RequestType = bmRequestType; - SetupPacket.Request = bRequest; - SetupPacket.Value = wValue; - SetupPacket.Index = wIndex; - SetupPacket.Length = wLength; - - //ULONG timeout = 10; // ms - //WinUsb_SetPipePolicy(interfaceHandle, pipeID, PIPE_TRANSFER_TIMEOUT, sizeof(ULONG), &timeout); - - if (WinUsb_ControlTransfer(this->usbh, SetupPacket, (PUCHAR)data, wLength, &cbSent, 0) == FALSE) { - return -1; - } - - return cbSent; -} - -int Panda::bulk_write(UCHAR endpoint, const void * buff, ULONG length, PULONG transferred, ULONG timeout) { - if (this->usbh == INVALID_HANDLE_VALUE || !buff || !length || !transferred) return FALSE; - - if (WinUsb_WritePipe(this->usbh, endpoint, (PUCHAR)buff, length, transferred, NULL) == FALSE) { - _tprintf(_T(" Got error during bulk xfer: %d. Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - return FALSE; - } - return TRUE; -} - -int Panda::bulk_read(UCHAR endpoint, void * buff, ULONG buff_size, PULONG transferred, ULONG timeout) { - if (this->usbh == INVALID_HANDLE_VALUE || !buff || !buff_size || !transferred) return FALSE; - - if (WinUsb_ReadPipe(this->usbh, endpoint, (PUCHAR)buff, buff_size, transferred, NULL) == FALSE) { - _tprintf(_T(" Got error during bulk xfer: %d. Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - return FALSE; - } - return TRUE; -} - -bool Panda::set_alt_setting(UCHAR alt_setting) { - if (WinUsb_AbortPipe(this->usbh, 0x81) == FALSE) { - _tprintf(_T(" Error abobrting pipe before setting altsetting. continue. %d, Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - } - if (WinUsb_SetCurrentAlternateSetting(this->usbh, alt_setting) == FALSE) { - _tprintf(_T(" Error setting usb altsetting %d, Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - return FALSE; - } - - // Either the panda or the windows usb stack can drop messages - // if an odd number of messages are sent before an interrupt IN - // message is canceled. There are some other odd behaviors, but - // the best solution so far has been to send a few messages - // before using the device to clear out the pipe. No, the windows - // functions for clearing/resetting/etc the pipe did not work. - // This took way too to figure out a workaround. - // New info. The most repeatable behavior is losing the first - // message sent after setting alt setting to 1 (even without - // receiving). Something like this happened on linux sometimes. - bool loopback_backup = this->loopback; - this->set_can_loopback(TRUE); - Sleep(20); // Give time for any sent messages to appear in the RX buffer. - this->can_clear(PANDA_CAN_RX); - // send 4 messages becaus can_recv reads 4 messages at a time - for (int i = 0; i < 4; i++) { - printf("Sending PAD %d\n", i); - if (this->can_send(0x7FF, FALSE, {}, 0, PANDA_CAN1) == FALSE) { - auto err = GetLastError(); - printf("Got err on first send: %d\n", err); - } - } - Sleep(10); - //this->can_clear(PANDA_CAN_RX); - - //Read the messages so they do not contaimnate the real message stream. - this->can_recv(); - - //this->set_can_loopback(FALSE); - this->set_can_loopback(loopback_backup); - - return TRUE; -} - -UCHAR Panda::get_current_alt_setting() { - UCHAR alt_setting; - if (WinUsb_GetCurrentAlternateSetting(this->usbh, &alt_setting) == FALSE) { - _tprintf(_T(" Error getting usb altsetting %d, Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - return FALSE; - } - - return alt_setting; -} - -bool Panda::set_raw_io(bool val) { - UCHAR raw_io = val; - if (!WinUsb_SetPipePolicy(this->usbh, 0x81, RAW_IO, sizeof(raw_io), &raw_io)) { - _tprintf(_T(" Error setting usb raw I/O pipe policy %d, Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - return FALSE; - } - - return TRUE; -} - -PANDA_HEALTH Panda::get_health() -{ - WINUSB_SETUP_PACKET SetupPacket; - ZeroMemory(&SetupPacket, sizeof(WINUSB_SETUP_PACKET)); - ULONG cbSent = 0; - - //Create the setup packet - SetupPacket.RequestType = REQUEST_IN; - SetupPacket.Request = 0xD2; - SetupPacket.Value = 0; - SetupPacket.Index = 0; - SetupPacket.Length = sizeof(UCHAR); - - //uint8_t health[13]; - PANDA_HEALTH health; - - if (WinUsb_ControlTransfer(this->usbh, SetupPacket, (PUCHAR)&health, sizeof(health), &cbSent, 0) == FALSE) { - _tprintf(_T(" Got unexpected error while reading panda health (2nd time) %d. Msg: '%s'\n"), - GetLastError(), GetLastErrorAsString().c_str()); - } - - return health; -} - -bool Panda::enter_bootloader() { - return this->control_transfer(REQUEST_OUT, 0xd1, 0, 0, NULL, 0, 0) != -1; -} - -std::string Panda::get_version() { - char buff[0x40]; - ZeroMemory(&buff, sizeof(buff)); - - int xferCount = this->control_transfer(REQUEST_IN, 0xd6, 0, 0, buff, 0x40, 0); - if (xferCount == -1) return std::string(); - return std::string(buff); -} - -//TODO: Do hash stuff for calculating the serial. -std::string Panda::get_serial() { - char buff[0x20]; - ZeroMemory(&buff, sizeof(buff)); - - int xferCount = this->control_transfer(REQUEST_IN, 0xD0, 0, 0, buff, 0x20, 0); - if (xferCount == -1) return std::string(); - return std::string(buff); - - //dat = self._handle.controlRead(REQUEST_IN, 0xd0, 0, 0, 0x20); - //hashsig, calc_hash = dat[0x1c:], hashlib.sha1(dat[0:0x1c]).digest()[0:4] - // assert(hashsig == calc_hash) - // return[dat[0:0x10], dat[0x10:0x10 + 10]] -} - -//Secret appears to by raw bytes, not a string. TODO: Change returned type. -std::string Panda::get_secret() { - char buff[0x10]; - ZeroMemory(&buff, sizeof(buff)); - - int xferCount = this->control_transfer(REQUEST_IN, 0xd0, 1, 0, buff, 0x10, 0); - if (xferCount == -1) return std::string(); - return std::string(buff); -} - -bool Panda::set_usb_power(bool on) { - return this->control_transfer(REQUEST_OUT, 0xe6, (int)on, 0, NULL, 0, 0) != -1; -} - -bool Panda::set_esp_power(bool on) { - return this->control_transfer(REQUEST_OUT, 0xd9, (int)on, 0, NULL, 0, 0) != -1; -} - -bool Panda::esp_reset(uint16_t bootmode = 0) { - return this->control_transfer(REQUEST_OUT, 0xda, bootmode, 0, NULL, 0, 0) != -1; -} - -bool Panda::set_safety_mode(PANDA_SAFETY_MODE mode = SAFETY_SILENT) { - return this->control_transfer(REQUEST_OUT, 0xdc, mode, 0, NULL, 0, 0) != -1; -} - -bool Panda::set_can_forwarding(PANDA_CAN_PORT from_bus, PANDA_CAN_PORT to_bus) { - if (from_bus == PANDA_CAN_UNK) return FALSE; - return this->control_transfer(REQUEST_OUT, 0xdd, from_bus, to_bus, NULL, 0, 0) != -1; -} - -bool Panda::set_gmlan(PANDA_GMLAN_HOST_PORT bus = PANDA_GMLAN_CAN3) { - return this->control_transfer(REQUEST_OUT, 0xdb, 1, (bus == PANDA_GMLAN_CLEAR) ? 0 : bus, NULL, 0, 0) != -1; -} - -bool Panda::set_can_loopback(bool enable) { - this->loopback = enable; - return this->control_transfer(REQUEST_OUT, 0xe5, enable, 0, NULL, 0, 0) != -1; -} - -//Can not use the full range of 16 bit speed. -//cbps means centa bits per second (tento of kbps) -bool Panda::set_can_speed_cbps(PANDA_CAN_PORT bus, uint16_t speed) { - if (bus == PANDA_CAN_UNK) return FALSE; - return this->control_transfer(REQUEST_OUT, 0xde, bus, speed, NULL, 0, 0) != -1; -} - -//Can not use the full range of 16 bit speed. -bool Panda::set_can_speed_kbps(PANDA_CAN_PORT bus, uint16_t speed) { - return set_can_speed_cbps(bus, speed * 10); -} - -//Can not use full 32 bit range of rate -bool Panda::set_uart_baud(PANDA_SERIAL_PORT uart, uint32_t rate) { - return this->control_transfer(REQUEST_OUT, 0xe4, uart, rate / 300, NULL, 0, 0) != -1; -} - -bool Panda::set_uart_parity(PANDA_SERIAL_PORT uart, PANDA_SERIAL_PORT_PARITY parity) { - return this->control_transfer(REQUEST_OUT, 0xe2, uart, parity, NULL, 0, 0) != -1; -} - -bool Panda::can_send_many(const std::vector& can_msgs) { - std::vector formatted_msgs; - formatted_msgs.reserve(can_msgs.size()); - - for (auto &msg : can_msgs) { - if (msg.bus == PANDA_CAN_UNK) continue; - if (msg.len > 8) continue; - PANDA_CAN_MSG_INTERNAL tmpmsg = {}; - tmpmsg.rir = (msg.addr_29b) ? - ((msg.addr << 3) | CAN_TRANSMIT | CAN_EXTENDED) : - (((msg.addr & 0x7FF) << 21) | CAN_TRANSMIT); - tmpmsg.f2 = msg.len | (msg.bus << 4); - memcpy(tmpmsg.dat, msg.dat, msg.len); - formatted_msgs.push_back(tmpmsg); - } - - if (formatted_msgs.size() == 0) return FALSE; - - unsigned int retcount; - return this->bulk_write(3, formatted_msgs.data(), - sizeof(PANDA_CAN_MSG_INTERNAL)*formatted_msgs.size(), (PULONG)&retcount, 0); -} - -bool Panda::can_send(uint32_t addr, bool addr_29b, const uint8_t *dat, uint8_t len, PANDA_CAN_PORT bus) { - if (bus == PANDA_CAN_UNK) return FALSE; - if (len > 8) return FALSE; - PANDA_CAN_MSG msg; - msg.addr_29b = addr_29b; - msg.addr = addr; - msg.len = len; - memcpy(msg.dat, dat, msg.len); - msg.bus = bus; - return this->can_send_many(std::vector{msg}); -} - -PANDA_CAN_MSG Panda::parse_can_recv(PANDA_CAN_MSG_INTERNAL *in_msg_raw) { - PANDA_CAN_MSG in_msg; - - in_msg.addr_29b = (bool)(in_msg_raw->rir & CAN_EXTENDED); - in_msg.addr = (in_msg.addr_29b) ? (in_msg_raw->rir >> 3) : (in_msg_raw->rir >> 21); - in_msg.recv_time = this->runningTime.getTimePassedUS(); - in_msg.recv_time_point = std::chrono::steady_clock::now(); - //The timestamp from the device is (in_msg_raw->f2 >> 16), - //but this 16 bit value is a little hard to use. Using a - //timer since the initialization of this device. - in_msg.len = in_msg_raw->f2 & 0xF; - memcpy(in_msg.dat, in_msg_raw->dat, 8); - - in_msg.is_receipt = ((in_msg_raw->f2 >> 4) & 0x80) == 0x80; - switch ((in_msg_raw->f2 >> 4) & 0x7F) { - case PANDA_CAN1: - in_msg.bus = PANDA_CAN1; - break; - case PANDA_CAN2: - in_msg.bus = PANDA_CAN2; - break; - case PANDA_CAN3: - in_msg.bus = PANDA_CAN3; - break; - default: - in_msg.bus = PANDA_CAN_UNK; - } - return in_msg; -} - -bool Panda::can_rx_q_push(HANDLE kill_event, DWORD timeoutms) { - while (1) { - auto w_ptr = this->w_ptr; - auto n_ptr = w_ptr + 1; - if (n_ptr == CAN_RX_QUEUE_LEN) { - n_ptr = 0; - } - - // Pause if there is not a slot available in the queue - if (n_ptr == this->r_ptr) { - printf("RX queue full!\n"); - Sleep(1); - continue; - } - - if (this->can_rx_q[n_ptr].complete) { - // TODO: is ResetEvent() faster? - CloseHandle(this->can_rx_q[n_ptr].complete); - } - - // Overlapped structure required for async read. - this->can_rx_q[n_ptr].complete = CreateEvent(NULL, TRUE, TRUE, NULL); - memset(&this->can_rx_q[n_ptr].overlapped, sizeof(OVERLAPPED), 0); - this->can_rx_q[n_ptr].overlapped.hEvent = this->can_rx_q[n_ptr].complete; - this->can_rx_q[n_ptr].error = 0; - - if (!WinUsb_ReadPipe(this->usbh, 0x81, this->can_rx_q[n_ptr].data, sizeof(this->can_rx_q[n_ptr].data), &this->can_rx_q[n_ptr].count, &this->can_rx_q[n_ptr].overlapped)) { - // An overlapped read will return true if done, or false with an - // error of ERROR_IO_PENDING if the transfer is still in process. - this->can_rx_q[n_ptr].error = GetLastError(); - } - - // Process the pipe read call from the previous invocation of this function - if (this->can_rx_q[w_ptr].error == ERROR_IO_PENDING) { - HANDLE phSignals[2] = { this->can_rx_q[w_ptr].complete, kill_event }; - auto dwError = WaitForMultipleObjects(kill_event ? 2 : 1, phSignals, FALSE, timeoutms); - - // Check if packet, timeout (nope), or break - if (dwError == WAIT_OBJECT_0) { - // Signal came from our usb object. Read the returned data. - if (!GetOverlappedResult(this->usbh, &this->can_rx_q[w_ptr].overlapped, &this->can_rx_q[w_ptr].count, TRUE)) { - // TODO: handle other error cases better. - dwError = GetLastError(); - printf("Got overlap error %d\n", dwError); - - continue; - } - } - else { - WinUsb_AbortPipe(this->usbh, 0x81); - - // Return FALSE to show that the optional signal - // was set instead of the wait breaking from a - // message or recoverable error. - if (dwError == (WAIT_OBJECT_0 + 1)) { - return FALSE; - } - continue; - } - } - else if (this->can_rx_q[w_ptr].error != 0) { // ERROR_BAD_COMMAND happens when device is unplugged. - return FALSE; - } - - this->w_ptr = n_ptr; - } - - return TRUE; -} - -void Panda::can_rx_q_pop(PANDA_CAN_MSG msg_out[], int& count) { - count = 0; - - // No data left in queue - if (this->r_ptr == this->w_ptr) { - Sleep(1); - return; - } - - auto r_ptr = this->r_ptr; - for (unsigned long i = 0; i < this->can_rx_q[r_ptr].count; i += sizeof(PANDA_CAN_MSG_INTERNAL)) { - auto in_msg_raw = (PANDA_CAN_MSG_INTERNAL*)(this->can_rx_q[r_ptr].data + i); - msg_out[count] = parse_can_recv(in_msg_raw); - ++count; - } - - // Advance read pointer (wrap around if needed) - ++r_ptr; - this->r_ptr = (r_ptr == CAN_RX_QUEUE_LEN ? 0 : r_ptr); -} - -std::vector Panda::can_recv() { - std::vector msg_recv; - int retcount; - char buff[sizeof(PANDA_CAN_MSG_INTERNAL) * 4]; - - if (this->bulk_read(0x81, buff, sizeof(buff), (PULONG)&retcount, 0) == FALSE) - return msg_recv; - - for (int i = 0; i < retcount; i += sizeof(PANDA_CAN_MSG_INTERNAL)) { - PANDA_CAN_MSG_INTERNAL* in_msg_raw = (PANDA_CAN_MSG_INTERNAL*)(buff + i); - auto in_msg = parse_can_recv(in_msg_raw); - msg_recv.push_back(in_msg); - } - - return msg_recv; -} - -bool Panda::can_clear(PANDA_CAN_PORT_CLEAR bus) { - /*Clears all messages from the specified internal CAN ringbuffer as though it were drained. - bus(int) : can bus number to clear a tx queue, or 0xFFFF to clear the global can rx queue.*/ - return this->control_transfer(REQUEST_OUT, 0xf1, bus, 0, NULL, 0, 0) != -1; -} - -std::string Panda::serial_read(PANDA_SERIAL_PORT port_number) { - std::string result; - char buff[0x40]; - while (TRUE) { - int retlen = this->control_transfer(REQUEST_IN, 0xe0, port_number, 0, &buff, 0x40, 0); - if (retlen <= 0) - break; - result += std::string(buff, retlen); - if (retlen < 0x40) break; - } - return result; -} - -std::string Panda::serial_read(PANDA_SERIAL_PORT port_number, unsigned int len, unsigned int timeout_ms) { - std::string result = std::string(); - auto ms_remaining = timeout_ms; - char buff[0x40]; - while (len > 0 && ms_remaining > 0) { - int retlen = this->control_transfer(REQUEST_IN, 0xe0, port_number, 0, &buff, min(len, 0x40), 0); - if (retlen <= 0) { - ms_remaining -= 1; - Sleep(1); - continue; - } - result += std::string(buff, retlen); - len -= retlen; - ms_remaining = timeout_ms; - } - return result; -} - -int Panda::serial_write(PANDA_SERIAL_PORT port_number, const std::string& data) { - int retcount = 0; - for (int i = 0; i < data.size(); i += 0x3F) { - std::string slice = std::string(1, (char)port_number) + data.substr(i, min(data.size() - i, 0x3F)); - int retlen; - if (this->bulk_write(2, slice.c_str(), slice.size(), (PULONG)&retlen, 0) == FALSE) return -1; - if (retlen != slice.size()) return -1; - retcount += retlen - 1; - } - return retcount; -} - -bool Panda::serial_clear(PANDA_SERIAL_PORT port_number) { - return this->control_transfer(REQUEST_OUT, 0xf2, port_number, 0, NULL, 0, 0) != -1; -} - -uint8_t Panda::kline_checksum(const char* data, size_t size) { - unsigned int checksum = 0; - for (int i = 0; i < size; i++) { - checksum += (uint8_t)data[i]; - } - return (uint8_t)(checksum % 0x100); -} - -PANDA_KLINE_MSG Panda::kline_parse(const std::string& data, bool add_checksum) { - auto bytes = data.c_str(); - auto size = data.size(); - PANDA_KLINE_MSG msg_in; - ZeroMemory(&msg_in, sizeof(PANDA_KLINE_MSG)); - msg_in.data = std::string(data); - - unsigned int i = 0; - unsigned int len = 0; - unsigned int expected_len = 2; - if (size > i) { - // data layout: Fmt [Tgt] [Src] [Len] Data CS <- [ ] indicates optional - msg_in.addr_type = (PANDA_KLINE_ADDR_TYPE)(bytes[i] & KLINE_HEADER_FMT_ADDR_MASK); - len = bytes[i++] & KLINE_HEADER_FMT_LEN_MASK; - if (msg_in.addr_type != 0 && size > i + 2) { - expected_len += 2; - msg_in.target = bytes[i++]; - msg_in.source = bytes[i++]; - } - if (len == 0 && size > i + 1) { - expected_len += 1; - len = bytes[i++]; - } - expected_len += len; - if (expected_len == size) { - auto checksum = this->kline_checksum(bytes, size - 1); - if (msg_in.checksum == checksum) { - msg_in.valid = true; - } - } - else if (add_checksum && expected_len == size + 1) { - msg_in.checksum = this->kline_checksum(bytes, size); - msg_in.data += std::string(1, (char)msg_in.checksum); - msg_in.valid = true; - } - } - - return msg_in; -} - -bool Panda::kline_slow_init(bool k, bool l, uint8_t addr) { - return this->control_transfer(REQUEST_OUT, 0xf4, k && l ? 2 : (uint16_t)l, (uint16_t)addr, NULL, 0, 0) != -1; -} - -bool Panda::kline_fast_init(bool k, bool l) { - return this->control_transfer(REQUEST_OUT, 0xf0, k && l ? 2 : (uint16_t)l, 0, NULL, 0, 0) != -1; -} - -std::vector Panda::kline_recv(PANDA_SERIAL_PORT port_number) { - if (port_number != SERIAL_LIN1 && port_number != SERIAL_LIN2) { - throw "invalid serial port number"; - } - - std::vector msg_recv; - - while (1) { - // P1/P4 max time between bytes is 20ms - auto result = this->serial_read(port_number, KLINE_MSG_MAX_LEN, 20); - if (result.size() == 0) { - break; - } - - auto msg_in = this->kline_parse(result, false); - // TODO: only add if msg_in.valid ??? - msg_recv.push_back(msg_in); - } - - return msg_recv; -} - -bool Panda::kline_send(PANDA_SERIAL_PORT port_number, const std::string& data) { - if (port_number != SERIAL_LIN1 && port_number != SERIAL_LIN2) { - throw "invalid serial port number"; - } - auto msg_out = this->kline_parse(data, true); - auto result = this->serial_write(port_number, msg_out.data); - auto echo = this->serial_read(port_number, msg_out.data.size(), 5); - if (echo != msg_out.data) { - return false; - } - return true; -} diff --git a/drivers/windows/panda_shared/panda.h b/drivers/windows/panda_shared/panda.h deleted file mode 100644 index a9c9b0e2f..000000000 --- a/drivers/windows/panda_shared/panda.h +++ /dev/null @@ -1,271 +0,0 @@ -#pragma once - -// The following ifdef block is the standard way of creating macros which make exporting -// from a DLL simpler. All files within this DLL are compiled with the PANDA_EXPORTS -// symbol defined on the command line. This symbol should not be defined on any project -// that uses this DLL. This way any other project whose source files include this file see -// PANDA_API functions as being imported from a DLL, whereas this DLL sees symbols -// defined with this macro as being exported. -#ifdef PANDA_EXPORTS -#define PANDA_API __declspec(dllexport) -#else -#define PANDA_API -#endif - -#include -#include -#include -#include -#include -#include - -#include -#include - -#if defined(UNICODE) -#define _tcout std::wcout -#define tstring std::wstring -#else -#define _tcout std::cout -#define tstring std::string -#endif - -#define LIN_MSG_MAX_LEN 10 -#define CAN_RX_QUEUE_LEN 10000 -#define CAN_RX_MSG_LEN 1000 -#define KLINE_MSG_MAX_LEN 260 - -//template class __declspec(dllexport) std::basic_string; - -namespace panda { - typedef enum _PANDA_SAFETY_MODE : uint16_t { - SAFETY_SILENT = 0, - SAFETY_HONDA_NIDEC = 1, - SAFETY_ALLOUTPUT = 17, - } PANDA_SAFETY_MODE; - - typedef enum _PANDA_SERIAL_PORT : uint8_t { - SERIAL_DEBUG = 0, - SERIAL_ESP = 1, - SERIAL_LIN1 = 2, - SERIAL_LIN2 = 3, - } PANDA_SERIAL_PORT; - - typedef enum _PANDA_SERIAL_PORT_PARITY : uint8_t { - PANDA_PARITY_OFF = 0, - PANDA_PARITY_EVEN = 1, - PANDA_PARITY_ODD = 2, - } PANDA_SERIAL_PORT_PARITY; - - typedef enum _PANDA_CAN_PORT : uint8_t { - PANDA_CAN1 = 0, - PANDA_CAN2 = 1, - PANDA_CAN3 = 2, - PANDA_CAN_UNK = 0xFF, - } PANDA_CAN_PORT; - - typedef enum _PANDA_CAN_PORT_CLEAR : uint16_t { - PANDA_CAN1_TX = 0, - PANDA_CAN2_TX = 1, - PANDA_CAN3_TX = 2, - PANDA_CAN_RX = 0xFFFF, - } PANDA_CAN_PORT_CLEAR; - - typedef enum _PANDA_GMLAN_HOST_PORT : uint8_t { - PANDA_GMLAN_CLEAR = 0, - PANDA_GMLAN_CAN2 = 1, - PANDA_GMLAN_CAN3 = 2, - } PANDA_GMLAN_HOST_PORT; - - #pragma pack(1) - typedef struct _PANDA_HEALTH { - uint32_t uptime; - uint32_t voltage; - uint32_t current; - uint32_t can_rx_errs; - uint32_t can_send_errs; - uint32_t can_fwd_errs; - uint32_t gmlan_send_errs; - uint32_t faults; - uint8_t ignition_line; - uint8_t ignition_can; - uint8_t controls_allowed; - uint8_t car_harness_status; - uint8_t usb_power_mode; - uint8_t safety_mode; - uint8_t fault_status; - uint8_t power_save_enabled; - } PANDA_HEALTH, *PPANDA_HEALTH; - - typedef struct _PANDA_CAN_MSG { - uint32_t addr; - unsigned long long recv_time; //In microseconds since device initialization - std::chrono::time_point recv_time_point; - uint8_t dat[8]; - uint8_t len; - PANDA_CAN_PORT bus; - bool is_receipt; - bool addr_29b; - } PANDA_CAN_MSG; - - typedef enum _PANDA_KLINE_ADDR_TYPE : uint8_t { - PANDA_KLINE_ADDR_NONE = 0, - PANDA_KLINE_ADDR_PHYS = 0x80, - PANDA_KLINE_ADDR_FUNC = 0xC0, - } PANDA_KLINE_ADDR_TYPE; - - typedef struct _PANDA_KLINE_MSG { - PANDA_KLINE_ADDR_TYPE addr_type; - uint8_t target; - uint8_t source; - std::string data; - uint8_t checksum; - bool valid; - } PANDA_KLINE_MSG; - - //Copied from https://stackoverflow.com/a/31488113 - class Timer - { - using clock = std::chrono::steady_clock; - using time_point_type = std::chrono::time_point < clock, std::chrono::microseconds >; - public: - Timer() { - start = std::chrono::time_point_cast(clock::now()); - } - - // gets the time elapsed from construction. - unsigned long long /*microseconds*/ Timer::getTimePassedUS() { - // get the new time - auto end = std::chrono::time_point_cast(clock::now()); - - // return the difference of the times - return (end - start).count(); - } - - // gets the time elapsed from construction. - unsigned long long /*milliseconds*/ Timer::getTimePassedMS() { - // get the new time - auto end = std::chrono::time_point_cast(clock::now()); - - // return the difference of the times - auto startms = std::chrono::time_point_cast(start); - return (end - startms).count(); - } - private: - time_point_type start; - }; - - // This class is exported from the panda.dll - class PANDA_API Panda { - public: - static std::vector listAvailablePandas(); - static std::unique_ptr openPanda(std::string sn); - - ~Panda(); - - std::string get_usb_sn(); - bool set_alt_setting(UCHAR alt_setting); - UCHAR get_current_alt_setting(); - bool Panda::set_raw_io(bool val); - - PANDA_HEALTH get_health(); - bool enter_bootloader(); - std::string get_version(); - std::string get_serial(); - std::string get_secret(); - - bool set_usb_power(bool on); - bool set_esp_power(bool on); - bool esp_reset(uint16_t bootmode); - bool set_safety_mode(PANDA_SAFETY_MODE mode); - bool set_can_forwarding(PANDA_CAN_PORT from_bus, PANDA_CAN_PORT to_bus); - bool set_gmlan(PANDA_GMLAN_HOST_PORT bus); - bool set_can_loopback(bool enable); - bool set_can_speed_cbps(PANDA_CAN_PORT bus, uint16_t speed); - bool set_can_speed_kbps(PANDA_CAN_PORT bus, uint16_t speed); - bool set_uart_baud(PANDA_SERIAL_PORT uart, uint32_t rate); - bool set_uart_parity(PANDA_SERIAL_PORT uart, PANDA_SERIAL_PORT_PARITY parity); - - bool can_send_many(const std::vector& can_msgs); - bool can_send(uint32_t addr, bool addr_29b, const uint8_t *dat, uint8_t len, PANDA_CAN_PORT bus); - std::vector can_recv(); - bool can_rx_q_push(HANDLE kill_event, DWORD timeoutms = INFINITE); - void can_rx_q_pop(PANDA_CAN_MSG msg_out[], int &count); - bool can_clear(PANDA_CAN_PORT_CLEAR bus); - - std::string serial_read(PANDA_SERIAL_PORT port_number); - std::string serial_read(PANDA_SERIAL_PORT port_number, unsigned int len, unsigned int timeout_ms); - int serial_write(PANDA_SERIAL_PORT port_number, const std::string& data); - bool serial_clear(PANDA_SERIAL_PORT port_number); - - uint8_t kline_checksum(const char* data, size_t size); - PANDA_KLINE_MSG kline_parse(const std::string& data, bool add_checksum); - bool kline_slow_init(bool k, bool l, uint8_t addr); - bool kline_fast_init(bool k, bool l); - std::vector kline_recv(PANDA_SERIAL_PORT port_number); - bool kline_send(PANDA_SERIAL_PORT port_number, const std::string& data); - - private: - Panda( - WINUSB_INTERFACE_HANDLE WinusbHandle, - HANDLE DeviceHandle, - tstring devPath_, - std::string sn_ - ); - - int control_transfer( - uint8_t bmRequestType, - uint8_t bRequest, - uint16_t wValue, - uint16_t wIndex, - void * data, - uint16_t wLength, - unsigned int timeout - ); - - int bulk_write( - UCHAR endpoint, - const void * buff, - ULONG length, - PULONG transferred, - ULONG timeout - ); - - int Panda::bulk_read( - UCHAR endpoint, - void * buff, - ULONG buff_size, - PULONG transferred, - ULONG timeout - ); - - #pragma pack(1) - typedef struct _PANDA_CAN_MSG_INTERNAL { - uint32_t rir; - uint32_t f2; - uint8_t dat[8]; - } PANDA_CAN_MSG_INTERNAL; - - typedef struct _CAN_RX_PIPE_READ { - unsigned char data[sizeof(PANDA_CAN_MSG_INTERNAL) * CAN_RX_MSG_LEN]; - unsigned long count; - OVERLAPPED overlapped; - HANDLE complete; - DWORD error; - } CAN_RX_PIPE_READ; - - PANDA_CAN_MSG parse_can_recv(PANDA_CAN_MSG_INTERNAL *in_msg_raw); - - WINUSB_INTERFACE_HANDLE usbh; - HANDLE devh; - tstring devPath; - std::string sn; - bool loopback; - - Timer runningTime; - CAN_RX_PIPE_READ can_rx_q[CAN_RX_QUEUE_LEN]; - unsigned long w_ptr = 0; - unsigned long r_ptr = 0; - }; - -} diff --git a/drivers/windows/panda_shared/panda_shared.vcxitems b/drivers/windows/panda_shared/panda_shared.vcxitems deleted file mode 100644 index 3f3b4765c..000000000 --- a/drivers/windows/panda_shared/panda_shared.vcxitems +++ /dev/null @@ -1,25 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - true - {0c843279-68c7-4679-ae51-9bc463d50d1c} - - - - %(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory) - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/drivers/windows/panda_shared/targetver.h b/drivers/windows/panda_shared/targetver.h deleted file mode 100644 index 1bf4ee6fe..000000000 --- a/drivers/windows/panda_shared/targetver.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include - -#define WINVER _WIN32_WINNT_WIN7 -#define _WIN32_WINNT _WIN32_WINNT_WIN7 - -#include diff --git a/drivers/windows/redist/.gitignore b/drivers/windows/redist/.gitignore deleted file mode 100644 index 90d431bfb..000000000 --- a/drivers/windows/redist/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.exe -vscruntimeinfo.nsh diff --git a/drivers/windows/redist/README.md b/drivers/windows/redist/README.md deleted file mode 100644 index 69565f11c..000000000 --- a/drivers/windows/redist/README.md +++ /dev/null @@ -1,7 +0,0 @@ -When building the installer, please put the relevant vc_redist.x86.exe file into this folder. -Make sure that the uninstall registry key is correct in the panda_install.nsi file. - -Here is a list of the VC runtime downloads: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads -An list of the registry keys has been maintained here: https://stackoverflow.com/a/34209692/627525 - -Copy vscruntimeinfo.nsh.sample to vscruntimeinfo.nsh and edit it for your version of Visual Studio. \ No newline at end of file diff --git a/drivers/windows/redist/vscruntimeinfo.nsh.sample b/drivers/windows/redist/vscruntimeinfo.nsh.sample deleted file mode 100644 index f23968d74..000000000 --- a/drivers/windows/redist/vscruntimeinfo.nsh.sample +++ /dev/null @@ -1,13 +0,0 @@ -;NOTE! The panda software requires a VC runtime to be installed in order to work. -;This installer must be bundled with the appropriate runtime installer, and have -;the installation registry key set so the installer can tell if the runtime is -;already installed. - -;Here is a list of the VC runtime downloads: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads -;An list of the registry keys has been maintained here: https://stackoverflow.com/a/34209692/627525 - - -;Microsoft Visual C++ 2015-2019 Redistributable (x86) - 14.24.28127 -!define VCRuntimeRegKey "Installer\Dependencies\VC,redist.x86,x86,14.24,bundle" -!define VCRuntimeSetupPath "redist\" -!define VCRuntimeSetupFile "vc_redist.x86.exe" \ No newline at end of file diff --git a/drivers/windows/test certs/commaaiCertStore.pvk b/drivers/windows/test certs/commaaiCertStore.pvk deleted file mode 100644 index 6db0a7885d2ff41c437cde63b6bff65816aada56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1196 zcmV;d1XKGS@wKo30000200000000000001#1ONaB0ssI2Bme+XQ$aES2mk;90098) z$Q=n8AQr+fvGImbc+M7XHqNM73KfP=-FedER-*RvGQZ2q6Q%w*G8k_TIT;i!f8 z#0n*v4dOltcMY7ZxHf|sq_PWyDr>*R0gAki9C8_OwNi?Q_`&)y1a6i%T@zm_e4|8? zU}b;F4+HJc!Auu>VG-<=+8wGjLUpqAk^Sg-u}YWxqc_;)H?Q?wL@ZGH6;6P6WH2C@ zi1o_9b*KXPkQQulz&f|&LMNB}%Ndlpx5#8V?YD^XjCFGUy2)I&?XI?0l&`J2>-`*fv2@flfg_@9#zs&ZvD~`*F-2rs3dJ8-#s|G;Dhxpa z2%o0r!3lQw{1>jP>eRT;9UvC_8;IfT7Yi**U23 zZl`tyoH0;x|6!>KJZ)~(W%`Ce$+fJ5ergR9jWEdw^lpv4TvO$+j_k+ZqBTUND5l;; zx}1JEGpT0szPQ$*jJ_HHWXJw)a2y;5>7Gi4zg-@Fa!D%uE;gCHJJm5OKw>b$Ryi$t zT$RZW25B(?9rWA}Its8vxImG}6+b&APEEvC5<~nAS*ONty3Fa#z5^cQcDP$^;7Qsh z?>ikE28jzZ;DdVtRrVPI9-JtA>98H*`5-!P_oIRmLqHavIgm0rA}IJ~NJkZ`yj(Lm z`m06;;@rU)e;`NR$Urn^O7UE3)?*y%xm-lqu!ps5BW{F_cwRDl5+4(M$9o}88y5H^ zIwn$)q`Ahh?KJRTUG~n|& z`XIs%&+4BMbj>6Liqx>>JTjq#_<{5Z(jIOgWohX)Qj-nLm3sc>M)l!eV`D KVY3EA$`2;xzBya~ diff --git a/drivers/windows/test certs/commaaicert.cer b/drivers/windows/test certs/commaaicert.cer deleted file mode 100644 index 8d0a38a7c00f37d385d9b9aa60ee13e6b76ca068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 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 diff --git a/drivers/windows/docs/connection_flags.png b/drivers/windows/docs/connection_flags.png deleted file mode 100644 index dd578a2cb9d7b3e82880bf91016668caa362dcc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57588 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 diff --git a/drivers/windows/docs/message_send.png b/drivers/windows/docs/message_send.png deleted file mode 100644 index 112aab14cb060f2d502fbb80587ccfe8ed355341..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95451 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�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 diff --git a/drivers/windows/docs/msg_filter_passfail.png b/drivers/windows/docs/msg_filter_passfail.png deleted file mode 100644 index 4a91facb4538fbbbdd35572b045b2a00666400cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111538 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