From ac0f65060b293bef39b96297e491109d12e8c978 Mon Sep 17 00:00:00 2001 From: TechPertz Date: Tue, 29 Oct 2024 00:48:45 -0400 Subject: [PATCH 1/6] in process --- .DS_Store | Bin 8196 -> 6148 bytes CMakeLists.txt | 120 --- build/.DS_Store | Bin 6148 -> 0 bytes build/CMakeCache.txt | 369 ------- build/CMakeFiles/3.30.5/CMakeCCompiler.cmake | 81 -- .../CMakeFiles/3.30.5/CMakeCXXCompiler.cmake | 101 -- .../3.30.5/CMakeDetermineCompilerABI_C.bin | Bin 4424 -> 0 bytes .../3.30.5/CMakeDetermineCompilerABI_CXX.bin | Bin 4408 -> 0 bytes build/CMakeFiles/3.30.5/CMakeSystem.cmake | 15 - .../3.30.5/CompilerIdC/CMakeCCompilerId.c | 904 ----------------- .../3.30.5/CompilerIdC/CMakeCCompilerId.o | Bin 1528 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 919 ------------------ .../3.30.5/CompilerIdCXX/CMakeCXXCompilerId.o | Bin 1536 -> 0 bytes build/CMakeFiles/CMakeConfigureLog.yaml | 473 --------- .../CMakeDirectoryInformation.cmake | 16 - build/CMakeFiles/CMakeRuleHashes.txt | 2 - build/CMakeFiles/Makefile.cmake | 134 --- build/CMakeFiles/Makefile2 | 140 --- build/CMakeFiles/TargetDirectories.txt | 5 - .../clean_mix2.dir/DependInfo.cmake | 22 - build/CMakeFiles/clean_mix2.dir/build.make | 88 -- .../clean_mix2.dir/cmake_clean.cmake | 8 - .../clean_mix2.dir/compiler_depend.make | 2 - .../clean_mix2.dir/compiler_depend.ts | 2 - build/CMakeFiles/clean_mix2.dir/progress.make | 2 - build/CMakeFiles/cmake.check_cache | 1 - build/CMakeFiles/mix2.dir/DependInfo.cmake | 23 - build/CMakeFiles/mix2.dir/build.make | 110 --- build/CMakeFiles/mix2.dir/cmake_clean.cmake | 11 - .../CMakeFiles/mix2.dir/compiler_depend.make | 2 - build/CMakeFiles/mix2.dir/compiler_depend.ts | 2 - build/CMakeFiles/mix2.dir/depend.make | 2 - build/CMakeFiles/mix2.dir/flags.make | 10 - build/CMakeFiles/mix2.dir/link.txt | 1 - build/CMakeFiles/mix2.dir/progress.make | 3 - build/CMakeFiles/progress.marks | 1 - build/CTestTestfile.cmake | 150 --- build/Makefile | 206 ---- build/Testing/Temporary/CTestCostData.txt | 13 - build/Testing/Temporary/LastTest.log | 470 --------- build/cmake_install.cmake | 57 -- build/flow | Bin 205256 -> 0 bytes build/flow2 | Bin 203472 -> 0 bytes build/flow3 | Bin 170168 -> 0 bytes build/flow4 | Bin 212736 -> 0 bytes build/flow5 | Bin 182928 -> 0 bytes build/flow6 | Bin 178896 -> 0 bytes build/flow7 | Bin 178800 -> 0 bytes build/flow7_1 | Bin 272656 -> 0 bytes build/flow8 | Bin 198800 -> 0 bytes build/mix | Bin 269872 -> 0 bytes build/mix2 | Bin 379344 -> 0 bytes build/mix3 | Bin 379360 -> 0 bytes build/parse | Bin 166400 -> 0 bytes flow.c | 305 ------ src/mix3.cpp => flow.cpp | 0 foo.txt | 2 +- old Makefile | 35 - old output 2.txt | 12 - old output.txt | 10 - output.txt | 14 - result.txt | 16 - src/.DS_Store | Bin 6148 -> 0 bytes src/flow.cpp | 241 ----- src/flow2.cpp | 302 ------ src/flow3.cpp | 225 ----- src/flow4.cpp | 370 ------- src/flow5.cpp | 301 ------ src/flow6.cpp | 277 ------ src/flow7.cpp | 275 ------ src/flow7_1.cpp | 341 ------- src/flow8.cpp | 213 ---- src/mix.cpp | 382 -------- src/mix2.cpp | 584 ----------- src/parse.cpp | 172 ---- 75 files changed, 1 insertion(+), 8541 deletions(-) delete mode 100644 CMakeLists.txt delete mode 100644 build/.DS_Store delete mode 100644 build/CMakeCache.txt delete mode 100644 build/CMakeFiles/3.30.5/CMakeCCompiler.cmake delete mode 100644 build/CMakeFiles/3.30.5/CMakeCXXCompiler.cmake delete mode 100755 build/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_C.bin delete mode 100755 build/CMakeFiles/3.30.5/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 build/CMakeFiles/3.30.5/CMakeSystem.cmake delete mode 100644 build/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.c delete mode 100644 build/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.o delete mode 100644 build/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100644 build/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.o delete mode 100644 build/CMakeFiles/CMakeConfigureLog.yaml delete mode 100644 build/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 build/CMakeFiles/CMakeRuleHashes.txt delete mode 100644 build/CMakeFiles/Makefile.cmake delete mode 100644 build/CMakeFiles/Makefile2 delete mode 100644 build/CMakeFiles/TargetDirectories.txt delete mode 100644 build/CMakeFiles/clean_mix2.dir/DependInfo.cmake delete mode 100644 build/CMakeFiles/clean_mix2.dir/build.make delete mode 100644 build/CMakeFiles/clean_mix2.dir/cmake_clean.cmake delete mode 100644 build/CMakeFiles/clean_mix2.dir/compiler_depend.make delete mode 100644 build/CMakeFiles/clean_mix2.dir/compiler_depend.ts delete mode 100644 build/CMakeFiles/clean_mix2.dir/progress.make delete mode 100644 build/CMakeFiles/cmake.check_cache delete mode 100644 build/CMakeFiles/mix2.dir/DependInfo.cmake delete mode 100644 build/CMakeFiles/mix2.dir/build.make delete mode 100644 build/CMakeFiles/mix2.dir/cmake_clean.cmake delete mode 100644 build/CMakeFiles/mix2.dir/compiler_depend.make delete mode 100644 build/CMakeFiles/mix2.dir/compiler_depend.ts delete mode 100644 build/CMakeFiles/mix2.dir/depend.make delete mode 100644 build/CMakeFiles/mix2.dir/flags.make delete mode 100644 build/CMakeFiles/mix2.dir/link.txt delete mode 100644 build/CMakeFiles/mix2.dir/progress.make delete mode 100644 build/CMakeFiles/progress.marks delete mode 100644 build/CTestTestfile.cmake delete mode 100644 build/Makefile delete mode 100644 build/Testing/Temporary/CTestCostData.txt delete mode 100644 build/Testing/Temporary/LastTest.log delete mode 100644 build/cmake_install.cmake delete mode 100755 build/flow delete mode 100755 build/flow2 delete mode 100755 build/flow3 delete mode 100755 build/flow4 delete mode 100755 build/flow5 delete mode 100755 build/flow6 delete mode 100755 build/flow7 delete mode 100755 build/flow7_1 delete mode 100755 build/flow8 delete mode 100755 build/mix delete mode 100755 build/mix2 delete mode 100755 build/mix3 delete mode 100755 build/parse delete mode 100644 flow.c rename src/mix3.cpp => flow.cpp (100%) delete mode 100644 old Makefile delete mode 100644 old output 2.txt delete mode 100644 old output.txt delete mode 100644 output.txt delete mode 100644 result.txt delete mode 100644 src/.DS_Store delete mode 100644 src/flow.cpp delete mode 100644 src/flow2.cpp delete mode 100644 src/flow3.cpp delete mode 100644 src/flow4.cpp delete mode 100644 src/flow5.cpp delete mode 100644 src/flow6.cpp delete mode 100644 src/flow7.cpp delete mode 100644 src/flow7_1.cpp delete mode 100644 src/flow8.cpp delete mode 100644 src/mix.cpp delete mode 100644 src/mix2.cpp delete mode 100644 src/parse.cpp diff --git a/.DS_Store b/.DS_Store index bb66350d79471d69c0c89c4f3a32d67d5cb5a503..1ec489912a56160bd2578c9acc8a48fe0e30a996 100644 GIT binary patch delta 248 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50$jH4hU^g=(_hcS{$jR*jT9cav zbtc~w6qvkUP;xShkRUfJLmERSLk>eKL-FK20>}B;f&6?R)MF@Ns9-3Wd_zcHmxCb} zsHTF!7$};|P{2^&nUkNKl#`zXv5Zj`NbCIv0|ti4dxW$muM-rU{9QY5Piq(txIx}1SG~r6DtwP`GLKPf&n#xs3=ItZLn8myv|G=4l7tVW~Rc`4l@>ttXsk|w)vfgHO8&}kFfSPLJv-(a-80c z6z$2}Fy^BVe|HaiK#coGa|Jx3Pp?K=YM)UGwPcpgWTs<0g+=pGk7eQvFGWiZQ|d#f S#6W?Hrc&DP{t=eUYyAgEZd-K# diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 666c675..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,120 +0,0 @@ -cmake_minimum_required(VERSION 3.10) -project(MixProject) - -# Set the C++ standard -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED True) - -# Add the executable for 'mix.cpp' -add_executable(mix2 src/mix2.cpp) - -# Remove this line so the executable is generated in the same directory as CMakeLists.txt -# set_target_properties(mix PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build") - -# Add a custom target to remove the old 'mix' executable if it exists -add_custom_target(clean_mix2 ALL - COMMAND rm -rf ${CMAKE_SOURCE_DIR}/mix2 - COMMENT "Removing old mix2 executable if it exists" -) - -# Ensure that 'clean_mix' runs before building the 'mix' executable -add_dependencies(mix2 clean_mix2) - -# Enable testing -enable_testing() - -# List of flow files in the 'files' folder and their corresponding actions -set(FLOW_FILES - files/flow1.flow - files/flow2.flow - files/flow3.flow - files/flow4.flow - files/flow5.flow - files/flow8.flow - files/flow9.flow - files/flow10.flow - files/flow11.flow - files/flow12.flow - files/flow14.flow - files/flow13.flow -) - -set(ACTION_NAMES - doit - shenanigan - doit - doit - pipe3 - concat1 - concat_echoes - concat_ultimate - unique_numbers - catch_errors - process_pipe - process_pipe -) - -set(EXPECTED_COMMANDS - "ls | wc" # flow1.flow - "(cat ${CMAKE_SOURCE_DIR}/files/foo.txt \; cat ${CMAKE_SOURCE_DIR}/files/foo.txt | sed 's/o/u/g') | wc" # flow2.flow - "ls -l | ls" # flow3.flow - "ls \; ls -l" # flow4.flow - "ls | grep '.cpp' | wc" # flow5.flow - "ls \; ls" # flow8.flow - "echo 'f o o' \; echo 'f o o' \; echo 'f o o' \; echo 'f o o' \; echo 'f o o'" # flow9.flow - "echo 'Command One Executed.' \; echo 'Command One Executed.' \; echo 'Command Two Executed.' \; echo 'Command Three Executed.' \; echo 'Command Four Executed.' \; echo 'Command Four Executed.' \; echo 'Command One Executed.' \; echo 'Command Two Executed.'" # flow10.flow - "(seq 1 5 | awk '{print \$1*\$1}' \; seq 1 5 | awk '{print \$1*2}' \; seq 1 5 | awk '{print \$1+5}') | sort -n | uniq" # flow11.flow - "mkdir a 2>&1 | wc" # flow12.flow - "ls > output.txt" # flow14.flow - "cat output.txt | wc" # flow13.flow -) - -# Ensure the lengths of the lists match -list(LENGTH FLOW_FILES num_flow_files) -list(LENGTH ACTION_NAMES num_actions) -list(LENGTH EXPECTED_COMMANDS num_expected_commands) - -message(STATUS "Number of flow files: ${num_flow_files}") -message(STATUS "Number of actions: ${num_actions}") -message(STATUS "Number of expected commands: ${num_expected_commands}") - -if(NOT num_flow_files EQUAL num_actions OR NOT num_flow_files EQUAL num_expected_commands) - message(FATAL_ERROR "FLOW_FILES, ACTION_NAMES, and EXPECTED_COMMANDS must have the same number of elements.") -endif() - -# Loop over the flow files and define a test for each -math(EXPR num_tests "${num_flow_files} - 1") - -foreach(i RANGE 0 ${num_tests}) - list(GET FLOW_FILES ${i} flow_file) - list(GET ACTION_NAMES ${i} action_name) - list(GET EXPECTED_COMMANDS ${i} expected_command) - - # Define the test name - string(REPLACE "." "_" flow_file_safe ${flow_file}) - set(test_name "Test_${flow_file_safe}") - - # Define output files - set(actual_output "${test_name}_actual_output.txt") - set(expected_output "${test_name}_expected_output.txt") - - # Add the test - add_test(NAME ${test_name} - COMMAND bash -c " - echo '=== Running ${test_name} ==='; - echo 'Running mix with ${flow_file}:'; - ${CMAKE_SOURCE_DIR}/mix ${flow_file} ${action_name} > ${actual_output}; - echo 'Expected output from command:'; - ${expected_command} > ${expected_output}; - echo '--- Actual Output ---'; - cat ${actual_output}; - echo '--- Expected Output ---'; - cat ${expected_output}; - " - ) - - # Set test properties to display output - set_tests_properties(${test_name} PROPERTIES - PASS_REGULAR_EXPRESSION ".*" - ) -endforeach() \ No newline at end of file diff --git a/build/.DS_Store b/build/.DS_Store deleted file mode 100644 index bbeee3b19e02f7b745a213e340a2f8e5462340b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO-}+b5S_vj2_^)?#f!=Q0uubf;|gfv!IRz<5R|xz5sV!7?tkzv`1?HRn|6S0 zm%SQ8I;4HO?VAqsw%cxrNVVVYnnX1sDx)w46;x}C`?+MSAT2vUrNSbG7@kwxr*MxbpQ(6t_*^p&5f(TS-`sz#_MFH8jSy`@ z?{+lKjvA?Gr3H`n9VT+gVIJ5_j-A6ibeJEx%p-^Soy$D7nOeW~8MSPt&ONR4)-v}N z*7v5v=KRy_l~N}*Q|F&%mY4HIo}0sm3f2rOVwR3+o@H6_1H*Ek6X$P@R-zZo(pSu% zp)(?Dn*N`--AKcp%~swv=xeWlSHLT4k00T5@!!>^#uumu$ z2_^>715?HoXk3*XF_dvfdnmj}FfnM{Ny*_uNn|A_6s4nM{7}2B>px+%#98$swr zFpB?!|A64lLqP-&J$luP^q`(1cq}5~_svebSz9ljJnVySXTJB|ynXY{>AnB)?N_%D ziKGzX2#^K_K^}_?c0!y1OhC%n@w{=zn46(DYKbU4l(9}0iBcAg`C>Fho$rtOgyvmv z6YP&BrSEL`!9L*8dOLl%3<3)}g*+9elWcZUDVM8WJuLWVe>n)kdW-rHd8A%vG3=#m zcn@69maex_RXp0?3tewspChO4f3r~kX{&IR4Mpm z;klxD7M$*Kz^V5Ktm{~h0kZ&&IRxK=IsamK4v_(Rf#F8IHe7Mb!*;V`gVW9e z?Bm|n*5|J;M?b#m9r$#2<7x3Sd>J6P6GRhfwP!EM?o#R!R5|DnKbv-M@$_{nBkk9N&ghlj=zt?UvEj&ODv3Q)a|D z7jZr_+6(XCu?kZ&V|DkTQ(ckvx?d}eWcNl-M1?3=GgIX;zbTzs)v-%8YeMD=hBa9j z4@OjVzTEU3S*_Vltu$>Fi_?ZQ3X|4&0hKuKoKuyeD`ywZHaV=sHI78Eoce|z&PTnd z(yuBhe=tIYDQd170Vimk2|RzOC8RjT02@h)x99QM8NgPqtx9LZS#ID;tIiVcB#v?x zmK`FA<7-Q9Hxp+@>qc-l7w)`w?z{KCd(WHA{qXJ6kA5K% zNg>1;=rD8@;JL_PC&U$K9xCP1Y))I#mKSM_N+JqRMa+|hqm)H$wHS3#@w_-JKJJ5! z%K9i$y4J4i?L8dLcRYkpkwkPlPw0FLF%b;%^ncC&Ynr!6ysL zT_0zG$AMYHW#|qt`F@9W7wb9b5|qL>==~@3`4_=+hzxWPI@W47#%gwX%xu?8V9He} z>)3Z+wl?;rFTMVvAKv)7(wc-V1NC|WX(Fxms;2%@>JBU@`Ip>6f6T-84-4-dhw@DE zZVmAF4{AX@m64IriBS|~msOqFu)oNm^{D?!yXjinqjP=;yoI<4Wj$4V2C&}tG5L)p zW*}xDW*}xDW*}xDW*}xDW*}zZ|1j_*-}!i?eP{B{{z<;m`h28yiSm`lC;1nB53xGQ^{H=?Tea@)0JyRtTHLPH$nw2YOdl;M5Tls7=NlHq`1HX7LpXl*Rhk^RcY;7 zl@_|GTAOG`oZa5E9dRDD!hynGh7iL!n)hH1Rd~b49B+Ak;A5swC%mDF{udSYdMD0c z;{NkmsjiiBtuS$)gSZU65CYZ;lb$&sUY6~r(sE3D)A1Z0sJM_r&34_I)${oYvbD$t diff --git a/build/CMakeFiles/3.30.5/CMakeSystem.cmake b/build/CMakeFiles/3.30.5/CMakeSystem.cmake deleted file mode 100644 index 5e9d114..0000000 --- a/build/CMakeFiles/3.30.5/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Darwin-24.0.0") -set(CMAKE_HOST_SYSTEM_NAME "Darwin") -set(CMAKE_HOST_SYSTEM_VERSION "24.0.0") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - - - -set(CMAKE_SYSTEM "Darwin-24.0.0") -set(CMAKE_SYSTEM_NAME "Darwin") -set(CMAKE_SYSTEM_VERSION "24.0.0") -set(CMAKE_SYSTEM_PROCESSOR "x86_64") - -set(CMAKE_CROSSCOMPILING "FALSE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/build/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.c b/build/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index 8d8bb03..0000000 --- a/build/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,904 +0,0 @@ -#ifdef __cplusplus -# error "A C++ compiler has been selected for C." -#endif - -#if defined(__18CXX) -# define ID_VOID_MAIN -#endif -#if defined(__CLASSIC_C__) -/* cv-qualifiers did not exist in K&R C */ -# define const -# define volatile -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__open_xl__) && defined(__clang__) -# define COMPILER_ID "IBMClang" -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) - - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(__clang__) && defined(__cray__) -# define COMPILER_ID "CrayClang" -# define COMPILER_VERSION_MAJOR DEC(__cray_major__) -# define COMPILER_VERSION_MINOR DEC(__cray_minor__) -# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TASKING__) -# define COMPILER_ID "Tasking" - # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) - # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) -# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) - -#elif defined(__ORANGEC__) -# define COMPILER_ID "OrangeC" -# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) && defined(__ti__) -# define COMPILER_ID "TIClang" - # define COMPILER_VERSION_MAJOR DEC(__ti_major__) - # define COMPILER_VERSION_MINOR DEC(__ti_minor__) - # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) -# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) -# define COMPILER_ID "LCC" -# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) -# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -# if defined(__GNUC__) && defined(__GNUC_MINOR__) -# define SIMULATE_ID "GNU" -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(_ADI_COMPILER) -# define COMPILER_ID "ADSP" -#if defined(__VERSIONNUM__) - /* __VERSIONNUM__ = 0xVVRRPPTT */ -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -# elif defined(_ADI_COMPILER) -# define PLATFORM_ID "ADSP" - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__clang__) && defined(__ti__) -# if defined(__ARM_ARCH) -# define ARCHITECTURE_ID "Arm" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -# elif defined(__ADSPSHARC__) -# define ARCHITECTURE_ID "SHARC" - -# elif defined(__ADSPBLACKFIN__) -# define ARCHITECTURE_ID "Blackfin" - -#elif defined(__TASKING__) - -# if defined(__CTC__) || defined(__CPTC__) -# define ARCHITECTURE_ID "TriCore" - -# elif defined(__CMCS__) -# define ARCHITECTURE_ID "MCS" - -# elif defined(__CARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__CARC__) -# define ARCHITECTURE_ID "ARC" - -# elif defined(__C51__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__CPCP__) -# define ARCHITECTURE_ID "PCP" - -# else -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#define C_STD_99 199901L -#define C_STD_11 201112L -#define C_STD_17 201710L -#define C_STD_23 202311L - -#ifdef __STDC_VERSION__ -# define C_STD __STDC_VERSION__ -#endif - -#if !defined(__STDC__) && !defined(__clang__) -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) -# define C_VERSION "90" -# else -# define C_VERSION -# endif -#elif C_STD > C_STD_17 -# define C_VERSION "23" -#elif C_STD > C_STD_11 -# define C_VERSION "17" -#elif C_STD > C_STD_99 -# define C_VERSION "11" -#elif C_STD >= C_STD_99 -# define C_VERSION "99" -#else -# define C_VERSION "90" -#endif -const char* info_language_standard_default = - "INFO" ":" "standard_default[" C_VERSION "]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/build/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.o b/build/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.o deleted file mode 100644 index 8510c401d04335d7e27ed2c4ad1f486c37838504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1528 zcmbVM&x=w~6u!=wBlJTTEhgxJPzzU~voL5jioU_1W@0c1L~a+~Qy=J4p3jmXa8n>d z&>zsEWq(1-HZ7(_(AH&}b_UUEh?x4$d*}Mp7^n{3`<^)cFn*?lr!{qE=pTy z=&$b%qYJP1S7g3ju1JChzcYpSdIQz;<;Z>PxR#W6D$B_e=F70N3bNqJXpTcGSC-Q5 z$d;#ic3809-)k-^GG9mYv3*{M4yys|VBf|H%TkLF9ZLQr`k;9j11CV#i+fnhqGx8= z_qY1}>h#O8`IFM8Pfx1T(YIrBPFD2@Cjy#xPg3vV$xU-UHRu1}L|yeoK=D82N9Mfo z{`UUf!7X||r)zul(qPcF%U$KR8zP7dy2@|$y_7D zX2}=;G1rC!;#G`2AjHUH!-yKh1zIBmM1F#1k1)-cWCR3$LgXh#z!Zox+`=si|uW;56MPDMYbQ3%{o;4fjMrgFKG-$s%^_ZA96ioeF!+N=ZZ~!IU#$> NaoMK_j7^#>@f%UP=nDV< diff --git a/build/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.cpp deleted file mode 100644 index da6c824..0000000 --- a/build/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.cpp +++ /dev/null @@ -1,919 +0,0 @@ -/* This source file must have a .cpp extension so that all C++ compilers - recognize the extension without flags. Borland does not know .cxx for - example. */ -#ifndef __cplusplus -# error "A C compiler has been selected for C++." -#endif - -#if !defined(__has_include) -/* If the compiler does not have __has_include, pretend the answer is - always no. */ -# define __has_include(x) 0 -#endif - - -/* Version number components: V=Version, R=Revision, P=Patch - Version date components: YYYY=Year, MM=Month, DD=Day */ - -#if defined(__INTEL_COMPILER) || defined(__ICC) -# define COMPILER_ID "Intel" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# endif - /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, - except that a few beta releases use the old format with V=2021. */ -# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) - /* The third version component from --version is an update index, - but no macro is provided for it. */ -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) - /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) -# define COMPILER_ID "IntelLLVM" -#if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -#endif -#if defined(__GNUC__) -# define SIMULATE_ID "GNU" -#endif -/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and - * later. Look for 6 digit vs. 8 digit version number to decide encoding. - * VVVV is no smaller than the current year when a version is released. - */ -#if __INTEL_LLVM_COMPILER < 1000000L -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -#else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -#endif -#if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -#endif -#if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -#elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -#endif -#if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -#endif -#if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -#endif - -#elif defined(__PATHCC__) -# define COMPILER_ID "PathScale" -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif - -#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) -# define COMPILER_ID "Embarcadero" -# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__open_xl__) && defined(__clang__) -# define COMPILER_ID "IBMClang" -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) - - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(__clang__) && defined(__cray__) -# define COMPILER_ID "CrayClang" -# define COMPILER_VERSION_MAJOR DEC(__cray_major__) -# define COMPILER_VERSION_MINOR DEC(__cray_minor__) -# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TASKING__) -# define COMPILER_ID "Tasking" - # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) - # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) -# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) - -#elif defined(__ORANGEC__) -# define COMPILER_ID "OrangeC" -# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) && defined(__ti__) -# define COMPILER_ID "TIClang" - # define COMPILER_VERSION_MAJOR DEC(__ti_major__) - # define COMPILER_VERSION_MINOR DEC(__ti_minor__) - # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) -# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) -# define COMPILER_ID "LCC" -# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) -# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -# if defined(__GNUC__) && defined(__GNUC_MINOR__) -# define SIMULATE_ID "GNU" -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(_ADI_COMPILER) -# define COMPILER_ID "ADSP" -#if defined(__VERSIONNUM__) - /* __VERSIONNUM__ = 0xVVRRPPTT */ -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -# elif defined(_ADI_COMPILER) -# define PLATFORM_ID "ADSP" - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__clang__) && defined(__ti__) -# if defined(__ARM_ARCH) -# define ARCHITECTURE_ID "Arm" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -# elif defined(__ADSPSHARC__) -# define ARCHITECTURE_ID "SHARC" - -# elif defined(__ADSPBLACKFIN__) -# define ARCHITECTURE_ID "Blackfin" - -#elif defined(__TASKING__) - -# if defined(__CTC__) || defined(__CPTC__) -# define ARCHITECTURE_ID "TriCore" - -# elif defined(__CMCS__) -# define ARCHITECTURE_ID "MCS" - -# elif defined(__CARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__CARC__) -# define ARCHITECTURE_ID "ARC" - -# elif defined(__C51__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__CPCP__) -# define ARCHITECTURE_ID "PCP" - -# else -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#define CXX_STD_98 199711L -#define CXX_STD_11 201103L -#define CXX_STD_14 201402L -#define CXX_STD_17 201703L -#define CXX_STD_20 202002L -#define CXX_STD_23 202302L - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) -# if _MSVC_LANG > CXX_STD_17 -# define CXX_STD _MSVC_LANG -# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init) -# define CXX_STD CXX_STD_20 -# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17 -# define CXX_STD CXX_STD_20 -# elif _MSVC_LANG > CXX_STD_14 -# define CXX_STD CXX_STD_17 -# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi) -# define CXX_STD CXX_STD_14 -# elif defined(__INTEL_CXX11_MODE__) -# define CXX_STD CXX_STD_11 -# else -# define CXX_STD CXX_STD_98 -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# if _MSVC_LANG > __cplusplus -# define CXX_STD _MSVC_LANG -# else -# define CXX_STD __cplusplus -# endif -#elif defined(__NVCOMPILER) -# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) -# define CXX_STD CXX_STD_20 -# else -# define CXX_STD __cplusplus -# endif -#elif defined(__INTEL_COMPILER) || defined(__PGI) -# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes) -# define CXX_STD CXX_STD_17 -# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) -# define CXX_STD CXX_STD_14 -# else -# define CXX_STD __cplusplus -# endif -#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__) -# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) -# define CXX_STD CXX_STD_14 -# else -# define CXX_STD __cplusplus -# endif -#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__) -# define CXX_STD CXX_STD_11 -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_standard_default = "INFO" ":" "standard_default[" -#if CXX_STD > CXX_STD_23 - "26" -#elif CXX_STD > CXX_STD_20 - "23" -#elif CXX_STD > CXX_STD_17 - "20" -#elif CXX_STD > CXX_STD_14 - "17" -#elif CXX_STD > CXX_STD_11 - "14" -#elif CXX_STD >= CXX_STD_11 - "11" -#else - "98" -#endif -"]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} diff --git a/build/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.o b/build/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.o deleted file mode 100644 index 814694843cd7496191f4bac2ca01a8ee8b9b353e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1536 zcmbVM&ubGw6rQv(4X8~H9xAvH&_hm= z6v02hgGc`Yk6t{~gWxqsFWw@Ery^4Q-tL=h66wJ{GV{Hk-@IX7_RFvDr)xq)Rs}Y! zDAv0bY$+_rRjf4GXUJD7f_&l}ZG%(Lict_ErDu=4Ko9Jy`LG(=T6@C^@%g=A^Esm8 zQ0EXz*%)|k+u3KQl#6_t$K|+17o3yjD@kc7PlX9mmW$P5XeareX?9J(N0bxvcOguh zY3Q%#48jX9_g7%PJ6sV54}NC~@pb#E;mM)%wCz|@ZkOki51B8;&I-ue@lUa({2RsK9(J&ByjdAzG~Zki))#6_h1rAv%=&ar8m+Fao{=qF&s`BB2^u z^v;xX9(hn1e>*mRQ|b8GNo73zacoY>svO}&K;zy?;zKmPYEH-I^go=atGx0l&QpG5 zPU|1q1`dCi{Nt(BFFr)95l8?74a15Y`YaxH1u zO*QOzwcEEig8!854B8mAS!{Qwj{EBQe@~Z(d=5ZN7=JQqSm;qcv0WmqWqirzZw5*x z6Drv}`Eq$WY)<%Go}Msph1JNxo`{T+k>sVd_-ka{fd3j+;q;F$x^GcjPrg_wUDn@^ z=g7f48+{-~(U3rhv4ssZMiz)yGKdQ^XQTp*(d@yFB^l$40N+oD`q&>5~8e diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml deleted file mode 100644 index e4516e2..0000000 --- a/build/CMakeFiles/CMakeConfigureLog.yaml +++ /dev/null @@ -1,473 +0,0 @@ - ---- -events: - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineSystem.cmake:205 (message)" - - "CMakeLists.txt:2 (project)" - message: | - The system is: Darwin - 24.0.0 - x86_64 - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:2 (project)" - message: | - Compiling the C compiler identification source file "CMakeCCompilerId.c" failed. - Compiler: /Library/Developer/CommandLineTools/usr/bin/cc - Build flags: - Id flags: - - The output was: - 1 - ld: library 'System' not found - cc: error: linker command failed with exit code 1 (use -v to see invocation) - - - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:2 (project)" - message: | - Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. - Compiler: /Library/Developer/CommandLineTools/usr/bin/cc - Build flags: - Id flags: -c - - The output was: - 0 - - - Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o" - - The C compiler identification is AppleClang, found in: - /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/3.30.5/CompilerIdC/CMakeCCompilerId.o - - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:2 (project)" - message: | - Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. - Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - Build flags: - Id flags: - - The output was: - 1 - ld: library 'c++' not found - c++: error: linker command failed with exit code 1 (use -v to see invocation) - - - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:2 (project)" - message: | - Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. - Compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - Build flags: - Id flags: -c - - The output was: - 0 - - - Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.o" - - The CXX compiler identification is AppleClang, found in: - /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/3.30.5/CompilerIdCXX/CMakeCXXCompilerId.o - - - - kind: "try_compile-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - checks: - - "Detecting C compiler ABI info" - directories: - source: "/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-xz5Za8" - binary: "/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-xz5Za8" - cmakeVariables: - CMAKE_C_FLAGS: "" - CMAKE_C_FLAGS_DEBUG: "-g" - CMAKE_EXE_LINKER_FLAGS: "" - CMAKE_OSX_ARCHITECTURES: "" - CMAKE_OSX_DEPLOYMENT_TARGET: "" - CMAKE_OSX_SYSROOT: "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk" - buildResult: - variable: "CMAKE_C_ABI_COMPILED" - cached: true - stdout: | - Change Dir: '/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-xz5Za8' - - Run Build Command(s): /usr/local/Cellar/cmake/3.30.5/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_82178/fast - /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_82178.dir/build.make CMakeFiles/cmTC_82178.dir/build - Building C object CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o - /Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -v -Wl,-v -MD -MT CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -c /usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCCompilerABI.c - Apple clang version 16.0.0 (clang-1600.0.26.3) - Target: x86_64-apple-darwin24.0.0 - Thread model: posix - InstalledDir: /Library/Developer/CommandLineTools/usr/bin - cc: warning: -Wl,-v: 'linker' input unused [-Wunused-command-line-argument] - "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx15.0.0 -Wundef-prefix=TARGET_OS_ -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -mframe-pointer=all -fno-strict-return -ffp-contract=on -fno-rounding-math -funwind-tables=2 -target-sdk-version=15.0 -fvisibility-inlines-hidden-static-local-var -fno-modulemap-allow-subdirectory-search -target-cpu penryn -tune-cpu generic -debugger-tuning=lldb -target-linker-version 1115.7.3 -v -fcoverage-compilation-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-xz5Za8 -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/16 -dependency-file CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o.d -skip-unused-modulemap-deps -MT CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -sys-header-deps -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/16/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -Wno-elaborated-enum-base -Wno-reserved-identifier -Wno-gnu-folding-constant -fdebug-compilation-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-xz5Za8 -ferror-limit 19 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fmax-type-align=16 -fcommon -clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation -fno-odr-hash-protocols -clang-vendor-feature=+enableAggressiveVLAFolding -clang-vendor-feature=+revert09abecef7bbf -clang-vendor-feature=+thisNoAlignAttr -clang-vendor-feature=+thisNoNullAttr -clang-vendor-feature=+disableAtImportPrivateFrameworkInImplementationError -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -x c /usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCCompilerABI.c - clang -cc1 version 16.0.0 (clang-1600.0.26.3) default target x86_64-apple-darwin24.0.0 - ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/local/include" - ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/Library/Frameworks" - #include "..." search starts here: - #include <...> search starts here: - /Library/Developer/CommandLineTools/usr/lib/clang/16/include - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include - /Library/Developer/CommandLineTools/usr/include - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks (framework directory) - End of search list. - Linking C executable cmTC_82178 - /usr/local/Cellar/cmake/3.30.5/bin/cmake -E cmake_link_script CMakeFiles/cmTC_82178.dir/link.txt --verbose=1 - /Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -v -Wl,-v CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -o cmTC_82178 - Apple clang version 16.0.0 (clang-1600.0.26.3) - Target: x86_64-apple-darwin24.0.0 - Thread model: posix - InstalledDir: /Library/Developer/CommandLineTools/usr/bin - "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 15.0.0 15.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -mllvm -enable-linkonceodr-outlining -o cmTC_82178 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a - @(#)PROGRAM:ld PROJECT:ld-1115.7.3 - BUILD 13:27:52 Aug 9 2024 - configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em - will use ld-classic for: armv6 armv7 armv7s i386 armv6m armv7k armv7m armv7em - LTO support using: LLVM version 16.0.0 (static support for 29, runtime is 29) - TAPI support using: Apple TAPI version 16.0.0 (tapi-1600.0.11.8) - Library search paths: - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift - Framework search paths: - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks - - exitCode: 0 - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:113 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Effective list of requested architectures (possibly empty) : "" - Effective list of architectures found in the ABI info binary: "x86_64" - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Parsed C implicit include dir info: rv=done - found start of include info - found start of implicit include info - add: [/Library/Developer/CommandLineTools/usr/lib/clang/16/include] - add: [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include] - add: [/Library/Developer/CommandLineTools/usr/include] - end of search list found - collapse include dir [/Library/Developer/CommandLineTools/usr/lib/clang/16/include] ==> [/Library/Developer/CommandLineTools/usr/lib/clang/16/include] - collapse include dir [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include] - collapse include dir [/Library/Developer/CommandLineTools/usr/include] ==> [/Library/Developer/CommandLineTools/usr/include] - implicit include dirs: [/Library/Developer/CommandLineTools/usr/lib/clang/16/include;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Parsed C implicit link information: - link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] - ignore line: [Change Dir: '/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-xz5Za8'] - ignore line: [] - ignore line: [Run Build Command(s): /usr/local/Cellar/cmake/3.30.5/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_82178/fast] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_82178.dir/build.make CMakeFiles/cmTC_82178.dir/build] - ignore line: [Building C object CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -v -Wl -v -MD -MT CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -c /usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCCompilerABI.c] - ignore line: [Apple clang version 16.0.0 (clang-1600.0.26.3)] - ignore line: [Target: x86_64-apple-darwin24.0.0] - ignore line: [Thread model: posix] - ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] - ignore line: [cc: warning: -Wl -v: 'linker' input unused [-Wunused-command-line-argument]] - ignore line: [ "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx15.0.0 -Wundef-prefix=TARGET_OS_ -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -mframe-pointer=all -fno-strict-return -ffp-contract=on -fno-rounding-math -funwind-tables=2 -target-sdk-version=15.0 -fvisibility-inlines-hidden-static-local-var -fno-modulemap-allow-subdirectory-search -target-cpu penryn -tune-cpu generic -debugger-tuning=lldb -target-linker-version 1115.7.3 -v -fcoverage-compilation-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-xz5Za8 -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/16 -dependency-file CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o.d -skip-unused-modulemap-deps -MT CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -sys-header-deps -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/16/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -Wno-elaborated-enum-base -Wno-reserved-identifier -Wno-gnu-folding-constant -fdebug-compilation-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-xz5Za8 -ferror-limit 19 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fmax-type-align=16 -fcommon -clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation -fno-odr-hash-protocols -clang-vendor-feature=+enableAggressiveVLAFolding -clang-vendor-feature=+revert09abecef7bbf -clang-vendor-feature=+thisNoAlignAttr -clang-vendor-feature=+thisNoNullAttr -clang-vendor-feature=+disableAtImportPrivateFrameworkInImplementationError -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -x c /usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCCompilerABI.c] - ignore line: [clang -cc1 version 16.0.0 (clang-1600.0.26.3) default target x86_64-apple-darwin24.0.0] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/local/include"] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/Library/Frameworks"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /Library/Developer/CommandLineTools/usr/lib/clang/16/include] - ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include] - ignore line: [ /Library/Developer/CommandLineTools/usr/include] - ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks (framework directory)] - ignore line: [End of search list.] - ignore line: [Linking C executable cmTC_82178] - ignore line: [/usr/local/Cellar/cmake/3.30.5/bin/cmake -E cmake_link_script CMakeFiles/cmTC_82178.dir/link.txt --verbose=1] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -Wl -search_paths_first -Wl -headerpad_max_install_names -v -Wl -v CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -o cmTC_82178] - ignore line: [Apple clang version 16.0.0 (clang-1600.0.26.3)] - ignore line: [Target: x86_64-apple-darwin24.0.0] - ignore line: [Thread model: posix] - ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] - link line: [ "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 15.0.0 15.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -mllvm -enable-linkonceodr-outlining -o cmTC_82178 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a] - arg [/Library/Developer/CommandLineTools/usr/bin/ld] ==> ignore - arg [-demangle] ==> ignore - arg [-lto_library] ==> ignore, skip following value - arg [/Library/Developer/CommandLineTools/usr/lib/libLTO.dylib] ==> skip value of -lto_library - arg [-dynamic] ==> ignore - arg [-arch] ==> ignore - arg [x86_64] ==> ignore - arg [-platform_version] ==> ignore - arg [macos] ==> ignore - arg [15.0.0] ==> ignore - arg [15.0] ==> ignore - arg [-syslibroot] ==> ignore - arg [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk] ==> ignore - arg [-mllvm] ==> ignore - arg [-enable-linkonceodr-outlining] ==> ignore - arg [-o] ==> ignore - arg [cmTC_82178] ==> ignore - arg [-search_paths_first] ==> ignore - arg [-headerpad_max_install_names] ==> ignore - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_82178.dir/CMakeCCompilerABI.c.o] ==> ignore - arg [-lSystem] ==> lib [System] - arg [/Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a] ==> lib [/Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a] - linker tool for 'C': /Library/Developer/CommandLineTools/usr/bin/ld - Library search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift] - Framework search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks] - remove lib [System] - remove lib [/Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a] - collapse library dir [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib] - collapse library dir [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift] - collapse framework dir [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks] - implicit libs: [] - implicit objs: [] - implicit dirs: [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift] - implicit fwks: [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Running the C compiler's linker: "/Library/Developer/CommandLineTools/usr/bin/ld" "-v" - @(#)PROGRAM:ld PROJECT:ld-1115.7.3 - BUILD 13:27:52 Aug 9 2024 - configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em - will use ld-classic for: armv6 armv7 armv7s i386 armv6m armv7k armv7m armv7em - LTO support using: LLVM version 16.0.0 (static support for 29, runtime is 29) - TAPI support using: Apple TAPI version 16.0.0 (tapi-1600.0.11.8) - - - kind: "try_compile-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - checks: - - "Detecting CXX compiler ABI info" - directories: - source: "/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-j5OmA3" - binary: "/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-j5OmA3" - cmakeVariables: - CMAKE_CXX_FLAGS: "" - CMAKE_CXX_FLAGS_DEBUG: "-g" - CMAKE_CXX_SCAN_FOR_MODULES: "OFF" - CMAKE_EXE_LINKER_FLAGS: "" - CMAKE_OSX_ARCHITECTURES: "" - CMAKE_OSX_DEPLOYMENT_TARGET: "" - CMAKE_OSX_SYSROOT: "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk" - buildResult: - variable: "CMAKE_CXX_ABI_COMPILED" - cached: true - stdout: | - Change Dir: '/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-j5OmA3' - - Run Build Command(s): /usr/local/Cellar/cmake/3.30.5/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_e6fdf/fast - /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_e6fdf.dir/build.make CMakeFiles/cmTC_e6fdf.dir/build - Building CXX object CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o - /Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -v -Wl,-v -MD -MT CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCXXCompilerABI.cpp - Apple clang version 16.0.0 (clang-1600.0.26.3) - Target: x86_64-apple-darwin24.0.0 - Thread model: posix - InstalledDir: /Library/Developer/CommandLineTools/usr/bin - c++: warning: -Wl,-v: 'linker' input unused [-Wunused-command-line-argument] - ignoring nonexistent directory "/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1" - "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx15.0.0 -Wundef-prefix=TARGET_OS_ -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -mframe-pointer=all -fno-strict-return -ffp-contract=on -fno-rounding-math -funwind-tables=2 -target-sdk-version=15.0 -fvisibility-inlines-hidden-static-local-var -fno-modulemap-allow-subdirectory-search -target-cpu penryn -tune-cpu generic -debugger-tuning=lldb -target-linker-version 1115.7.3 -v -fcoverage-compilation-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-j5OmA3 -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/16 -dependency-file CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o.d -skip-unused-modulemap-deps -MT CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -sys-header-deps -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/16/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -Wno-elaborated-enum-base -Wno-reserved-identifier -Wno-gnu-folding-constant -fdeprecated-macro -fdebug-compilation-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-j5OmA3 -ferror-limit 19 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fno-cxx-modules -fcxx-exceptions -fexceptions -fmax-type-align=16 -fcommon -clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation -fno-odr-hash-protocols -clang-vendor-feature=+enableAggressiveVLAFolding -clang-vendor-feature=+revert09abecef7bbf -clang-vendor-feature=+thisNoAlignAttr -clang-vendor-feature=+thisNoNullAttr -clang-vendor-feature=+disableAtImportPrivateFrameworkInImplementationError -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -x c++ /usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCXXCompilerABI.cpp - clang -cc1 version 16.0.0 (clang-1600.0.26.3) default target x86_64-apple-darwin24.0.0 - ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/local/include" - ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/Library/Frameworks" - #include "..." search starts here: - #include <...> search starts here: - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include/c++/v1 - /Library/Developer/CommandLineTools/usr/lib/clang/16/include - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include - /Library/Developer/CommandLineTools/usr/include - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks (framework directory) - End of search list. - Linking CXX executable cmTC_e6fdf - /usr/local/Cellar/cmake/3.30.5/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e6fdf.dir/link.txt --verbose=1 - /Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names -v -Wl,-v CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_e6fdf - Apple clang version 16.0.0 (clang-1600.0.26.3) - Target: x86_64-apple-darwin24.0.0 - Thread model: posix - InstalledDir: /Library/Developer/CommandLineTools/usr/bin - "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 15.0.0 15.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -mllvm -enable-linkonceodr-outlining -o cmTC_e6fdf -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a - @(#)PROGRAM:ld PROJECT:ld-1115.7.3 - BUILD 13:27:52 Aug 9 2024 - configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em - will use ld-classic for: armv6 armv7 armv7s i386 armv6m armv7k armv7m armv7em - LTO support using: LLVM version 16.0.0 (static support for 29, runtime is 29) - TAPI support using: Apple TAPI version 16.0.0 (tapi-1600.0.11.8) - Library search paths: - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift - Framework search paths: - /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks - - exitCode: 0 - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:113 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Effective list of requested architectures (possibly empty) : "" - Effective list of architectures found in the ABI info binary: "x86_64" - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Parsed CXX implicit include dir info: rv=done - found start of include info - found start of implicit include info - add: [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include/c++/v1] - add: [/Library/Developer/CommandLineTools/usr/lib/clang/16/include] - add: [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include] - add: [/Library/Developer/CommandLineTools/usr/include] - end of search list found - collapse include dir [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include/c++/v1] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include/c++/v1] - collapse include dir [/Library/Developer/CommandLineTools/usr/lib/clang/16/include] ==> [/Library/Developer/CommandLineTools/usr/lib/clang/16/include] - collapse include dir [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include] - collapse include dir [/Library/Developer/CommandLineTools/usr/include] ==> [/Library/Developer/CommandLineTools/usr/include] - implicit include dirs: [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include/c++/v1;/Library/Developer/CommandLineTools/usr/lib/clang/16/include;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include;/Library/Developer/CommandLineTools/usr/include] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Parsed CXX implicit link information: - link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] - ignore line: [Change Dir: '/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-j5OmA3'] - ignore line: [] - ignore line: [Run Build Command(s): /usr/local/Cellar/cmake/3.30.5/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_e6fdf/fast] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_e6fdf.dir/build.make CMakeFiles/cmTC_e6fdf.dir/build] - ignore line: [Building CXX object CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -v -Wl -v -MD -MT CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCXXCompilerABI.cpp] - ignore line: [Apple clang version 16.0.0 (clang-1600.0.26.3)] - ignore line: [Target: x86_64-apple-darwin24.0.0] - ignore line: [Thread model: posix] - ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] - ignore line: [c++: warning: -Wl -v: 'linker' input unused [-Wunused-command-line-argument]] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1"] - ignore line: [ "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx15.0.0 -Wundef-prefix=TARGET_OS_ -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -Werror=implicit-function-declaration -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -mframe-pointer=all -fno-strict-return -ffp-contract=on -fno-rounding-math -funwind-tables=2 -target-sdk-version=15.0 -fvisibility-inlines-hidden-static-local-var -fno-modulemap-allow-subdirectory-search -target-cpu penryn -tune-cpu generic -debugger-tuning=lldb -target-linker-version 1115.7.3 -v -fcoverage-compilation-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-j5OmA3 -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/16 -dependency-file CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o.d -skip-unused-modulemap-deps -MT CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -sys-header-deps -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include/c++/v1 -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/local/include -internal-isystem /Library/Developer/CommandLineTools/usr/lib/clang/16/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include -internal-externc-isystem /Library/Developer/CommandLineTools/usr/include -Wno-reorder-init-list -Wno-implicit-int-float-conversion -Wno-c99-designator -Wno-final-dtor-non-final-class -Wno-extra-semi-stmt -Wno-misleading-indentation -Wno-quoted-include-in-framework-header -Wno-implicit-fallthrough -Wno-enum-enum-conversion -Wno-enum-float-conversion -Wno-elaborated-enum-base -Wno-reserved-identifier -Wno-gnu-folding-constant -fdeprecated-macro -fdebug-compilation-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/CMakeScratch/TryCompile-j5OmA3 -ferror-limit 19 -stack-protector 1 -fstack-check -mdarwin-stkchk-strong-link -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fno-cxx-modules -fcxx-exceptions -fexceptions -fmax-type-align=16 -fcommon -clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation -fno-odr-hash-protocols -clang-vendor-feature=+enableAggressiveVLAFolding -clang-vendor-feature=+revert09abecef7bbf -clang-vendor-feature=+thisNoAlignAttr -clang-vendor-feature=+thisNoNullAttr -clang-vendor-feature=+disableAtImportPrivateFrameworkInImplementationError -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -x c++ /usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCXXCompilerABI.cpp] - ignore line: [clang -cc1 version 16.0.0 (clang-1600.0.26.3) default target x86_64-apple-darwin24.0.0] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/local/include"] - ignore line: [ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/Library/Frameworks"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include/c++/v1] - ignore line: [ /Library/Developer/CommandLineTools/usr/lib/clang/16/include] - ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include] - ignore line: [ /Library/Developer/CommandLineTools/usr/include] - ignore line: [ /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks (framework directory)] - ignore line: [End of search list.] - ignore line: [Linking CXX executable cmTC_e6fdf] - ignore line: [/usr/local/Cellar/cmake/3.30.5/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e6fdf.dir/link.txt --verbose=1] - ignore line: [/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -Wl -search_paths_first -Wl -headerpad_max_install_names -v -Wl -v CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_e6fdf] - ignore line: [Apple clang version 16.0.0 (clang-1600.0.26.3)] - ignore line: [Target: x86_64-apple-darwin24.0.0] - ignore line: [Thread model: posix] - ignore line: [InstalledDir: /Library/Developer/CommandLineTools/usr/bin] - link line: [ "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -dynamic -arch x86_64 -platform_version macos 15.0.0 15.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -mllvm -enable-linkonceodr-outlining -o cmTC_e6fdf -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a] - arg [/Library/Developer/CommandLineTools/usr/bin/ld] ==> ignore - arg [-demangle] ==> ignore - arg [-lto_library] ==> ignore, skip following value - arg [/Library/Developer/CommandLineTools/usr/lib/libLTO.dylib] ==> skip value of -lto_library - arg [-dynamic] ==> ignore - arg [-arch] ==> ignore - arg [x86_64] ==> ignore - arg [-platform_version] ==> ignore - arg [macos] ==> ignore - arg [15.0.0] ==> ignore - arg [15.0] ==> ignore - arg [-syslibroot] ==> ignore - arg [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk] ==> ignore - arg [-mllvm] ==> ignore - arg [-enable-linkonceodr-outlining] ==> ignore - arg [-o] ==> ignore - arg [cmTC_e6fdf] ==> ignore - arg [-search_paths_first] ==> ignore - arg [-headerpad_max_install_names] ==> ignore - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_e6fdf.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore - arg [-lc++] ==> lib [c++] - arg [-lSystem] ==> lib [System] - arg [/Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a] ==> lib [/Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a] - linker tool for 'CXX': /Library/Developer/CommandLineTools/usr/bin/ld - Library search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift] - Framework search paths: [;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks] - remove lib [System] - remove lib [/Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.osx.a] - collapse library dir [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib] - collapse library dir [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift] - collapse framework dir [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks] ==> [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks] - implicit libs: [c++] - implicit objs: [] - implicit dirs: [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib;/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/lib/swift] - implicit fwks: [/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/System/Library/Frameworks] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" - - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:2 (project)" - message: | - Running the CXX compiler's linker: "/Library/Developer/CommandLineTools/usr/bin/ld" "-v" - @(#)PROGRAM:ld PROJECT:ld-1115.7.3 - BUILD 13:27:52 Aug 9 2024 - configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em - will use ld-classic for: armv6 armv7 armv7s i386 armv6m armv7k armv7m armv7em - LTO support using: LLVM version 16.0.0 (static support for 29, runtime is 29) - TAPI support using: Apple TAPI version 16.0.0 (tapi-1600.0.11.8) -... diff --git a/build/CMakeFiles/CMakeDirectoryInformation.cmake b/build/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 299f419..0000000 --- a/build/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.30 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/Users/reetnandy/vscode/OS_HW_2") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/Users/reetnandy/vscode/OS_HW_2/build") - -# Force unix paths in dependencies. -set(CMAKE_FORCE_UNIX_PATHS 1) - - -# The C and CXX include file regular expressions for this directory. -set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") -set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") -set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) -set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/CMakeFiles/CMakeRuleHashes.txt b/build/CMakeFiles/CMakeRuleHashes.txt deleted file mode 100644 index 99c83f6..0000000 --- a/build/CMakeFiles/CMakeRuleHashes.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Hashes of file build rules. -3e2af143f83168c20f179eb5702b824f CMakeFiles/clean_mix2 diff --git a/build/CMakeFiles/Makefile.cmake b/build/CMakeFiles/Makefile.cmake deleted file mode 100644 index c3a7281..0000000 --- a/build/CMakeFiles/Makefile.cmake +++ /dev/null @@ -1,134 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.30 - -# The generator used is: -set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") - -# The top level Makefile was generated from the following files: -set(CMAKE_MAKEFILE_DEPENDS - "CMakeCache.txt" - "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt" - "CMakeFiles/3.30.5/CMakeCCompiler.cmake" - "CMakeFiles/3.30.5/CMakeCXXCompiler.cmake" - "CMakeFiles/3.30.5/CMakeSystem.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCCompiler.cmake.in" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCCompilerABI.c" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCInformation.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCXXCompiler.cmake.in" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCXXCompilerABI.cpp" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCXXInformation.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCommonLanguageInclude.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeCompilerIdDetection.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerABI.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerId.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineCompilerSupport.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeDetermineSystem.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeFindBinUtils.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeGenericSystem.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeInitializeConfigs.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeLanguageInformation.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeSystem.cmake.in" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeSystemSpecificInformation.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCXXCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCompilerCommon.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeUnixFindMake.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/AppleClang-C.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/AppleClang-CXX.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Clang.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/GNU-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/GNU.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/HP-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/LCC-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/TIClang-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/XL-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/zOS-C-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Internal/FeatureTesting.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Platform/Apple-AppleClang-C.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Platform/Apple-AppleClang-CXX.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Platform/Apple-Clang-C.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Platform/Apple-Clang-CXX.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Platform/Apple-Clang.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Platform/Darwin-Determine-CXX.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Platform/Darwin-Initialize.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Platform/Darwin.cmake" - "/usr/local/Cellar/cmake/3.30.5/share/cmake/Modules/Platform/UnixPaths.cmake" - ) - -# The corresponding makefile is: -set(CMAKE_MAKEFILE_OUTPUTS - "Makefile" - "CMakeFiles/cmake.check_cache" - ) - -# Byproducts of CMake generate step: -set(CMAKE_MAKEFILE_PRODUCTS - "CMakeFiles/3.30.5/CMakeSystem.cmake" - "CMakeFiles/3.30.5/CMakeCCompiler.cmake" - "CMakeFiles/3.30.5/CMakeCXXCompiler.cmake" - "CMakeFiles/3.30.5/CMakeCCompiler.cmake" - "CMakeFiles/3.30.5/CMakeCXXCompiler.cmake" - "CMakeFiles/CMakeDirectoryInformation.cmake" - ) - -# Dependency information for all targets: -set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/mix2.dir/DependInfo.cmake" - "CMakeFiles/clean_mix2.dir/DependInfo.cmake" - ) diff --git a/build/CMakeFiles/Makefile2 b/build/CMakeFiles/Makefile2 deleted file mode 100644 index e3166fd..0000000 --- a/build/CMakeFiles/Makefile2 +++ /dev/null @@ -1,140 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.30 - -# Default target executed when no arguments are given to make. -default_target: all -.PHONY : default_target - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/local/Cellar/cmake/3.30.5/bin/cmake - -# The command to remove a file. -RM = /usr/local/Cellar/cmake/3.30.5/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /Users/reetnandy/vscode/OS_HW_2 - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /Users/reetnandy/vscode/OS_HW_2/build - -#============================================================================= -# Directory level rules for the build root directory - -# The main recursive "all" target. -all: CMakeFiles/mix2.dir/all -all: CMakeFiles/clean_mix2.dir/all -.PHONY : all - -# The main recursive "preinstall" target. -preinstall: -.PHONY : preinstall - -# The main recursive "clean" target. -clean: CMakeFiles/mix2.dir/clean -clean: CMakeFiles/clean_mix2.dir/clean -.PHONY : clean - -#============================================================================= -# Target rules for target CMakeFiles/mix2.dir - -# All Build rule for target. -CMakeFiles/mix2.dir/all: CMakeFiles/clean_mix2.dir/all - $(MAKE) $(MAKESILENT) -f CMakeFiles/mix2.dir/build.make CMakeFiles/mix2.dir/depend - $(MAKE) $(MAKESILENT) -f CMakeFiles/mix2.dir/build.make CMakeFiles/mix2.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles --progress-num=2,3 "Built target mix2" -.PHONY : CMakeFiles/mix2.dir/all - -# Build rule for subdir invocation for target. -CMakeFiles/mix2.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles 3 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/mix2.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles 0 -.PHONY : CMakeFiles/mix2.dir/rule - -# Convenience name for target. -mix2: CMakeFiles/mix2.dir/rule -.PHONY : mix2 - -# clean rule for target. -CMakeFiles/mix2.dir/clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/mix2.dir/build.make CMakeFiles/mix2.dir/clean -.PHONY : CMakeFiles/mix2.dir/clean - -#============================================================================= -# Target rules for target CMakeFiles/clean_mix2.dir - -# All Build rule for target. -CMakeFiles/clean_mix2.dir/all: - $(MAKE) $(MAKESILENT) -f CMakeFiles/clean_mix2.dir/build.make CMakeFiles/clean_mix2.dir/depend - $(MAKE) $(MAKESILENT) -f CMakeFiles/clean_mix2.dir/build.make CMakeFiles/clean_mix2.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles --progress-num=1 "Built target clean_mix2" -.PHONY : CMakeFiles/clean_mix2.dir/all - -# Build rule for subdir invocation for target. -CMakeFiles/clean_mix2.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles 1 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/clean_mix2.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles 0 -.PHONY : CMakeFiles/clean_mix2.dir/rule - -# Convenience name for target. -clean_mix2: CMakeFiles/clean_mix2.dir/rule -.PHONY : clean_mix2 - -# clean rule for target. -CMakeFiles/clean_mix2.dir/clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/clean_mix2.dir/build.make CMakeFiles/clean_mix2.dir/clean -.PHONY : CMakeFiles/clean_mix2.dir/clean - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index 7067de9..0000000 --- a/build/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,5 +0,0 @@ -/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/mix2.dir -/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/clean_mix2.dir -/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/test.dir -/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/edit_cache.dir -/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/rebuild_cache.dir diff --git a/build/CMakeFiles/clean_mix2.dir/DependInfo.cmake b/build/CMakeFiles/clean_mix2.dir/DependInfo.cmake deleted file mode 100644 index 29b95a5..0000000 --- a/build/CMakeFiles/clean_mix2.dir/DependInfo.cmake +++ /dev/null @@ -1,22 +0,0 @@ - -# Consider dependencies only in project. -set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) - -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - ) - -# The set of dependency files which are needed: -set(CMAKE_DEPENDS_DEPENDENCY_FILES - ) - -# Targets to which this target links which contain Fortran sources. -set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES - ) - -# Targets to which this target links which contain Fortran sources. -set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/CMakeFiles/clean_mix2.dir/build.make b/build/CMakeFiles/clean_mix2.dir/build.make deleted file mode 100644 index 5b4ebd0..0000000 --- a/build/CMakeFiles/clean_mix2.dir/build.make +++ /dev/null @@ -1,88 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.30 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/local/Cellar/cmake/3.30.5/bin/cmake - -# The command to remove a file. -RM = /usr/local/Cellar/cmake/3.30.5/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /Users/reetnandy/vscode/OS_HW_2 - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /Users/reetnandy/vscode/OS_HW_2/build - -# Utility rule file for clean_mix2. - -# Include any custom commands dependencies for this target. -include CMakeFiles/clean_mix2.dir/compiler_depend.make - -# Include the progress variables for this target. -include CMakeFiles/clean_mix2.dir/progress.make - -CMakeFiles/clean_mix2: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Removing old mix2 executable if it exists" - rm -rf /Users/reetnandy/vscode/OS_HW_2/mix2 - -clean_mix2: CMakeFiles/clean_mix2 -clean_mix2: CMakeFiles/clean_mix2.dir/build.make -.PHONY : clean_mix2 - -# Rule to build all files generated by this target. -CMakeFiles/clean_mix2.dir/build: clean_mix2 -.PHONY : CMakeFiles/clean_mix2.dir/build - -CMakeFiles/clean_mix2.dir/clean: - $(CMAKE_COMMAND) -P CMakeFiles/clean_mix2.dir/cmake_clean.cmake -.PHONY : CMakeFiles/clean_mix2.dir/clean - -CMakeFiles/clean_mix2.dir/depend: - cd /Users/reetnandy/vscode/OS_HW_2/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /Users/reetnandy/vscode/OS_HW_2 /Users/reetnandy/vscode/OS_HW_2 /Users/reetnandy/vscode/OS_HW_2/build /Users/reetnandy/vscode/OS_HW_2/build /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/clean_mix2.dir/DependInfo.cmake "--color=$(COLOR)" -.PHONY : CMakeFiles/clean_mix2.dir/depend - diff --git a/build/CMakeFiles/clean_mix2.dir/cmake_clean.cmake b/build/CMakeFiles/clean_mix2.dir/cmake_clean.cmake deleted file mode 100644 index 78c3c60..0000000 --- a/build/CMakeFiles/clean_mix2.dir/cmake_clean.cmake +++ /dev/null @@ -1,8 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/clean_mix2" -) - -# Per-language clean rules from dependency scanning. -foreach(lang ) - include(CMakeFiles/clean_mix2.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/build/CMakeFiles/clean_mix2.dir/compiler_depend.make b/build/CMakeFiles/clean_mix2.dir/compiler_depend.make deleted file mode 100644 index 78d69ba..0000000 --- a/build/CMakeFiles/clean_mix2.dir/compiler_depend.make +++ /dev/null @@ -1,2 +0,0 @@ -# Empty custom commands generated dependencies file for clean_mix2. -# This may be replaced when dependencies are built. diff --git a/build/CMakeFiles/clean_mix2.dir/compiler_depend.ts b/build/CMakeFiles/clean_mix2.dir/compiler_depend.ts deleted file mode 100644 index 03c24d1..0000000 --- a/build/CMakeFiles/clean_mix2.dir/compiler_depend.ts +++ /dev/null @@ -1,2 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Timestamp file for custom commands dependencies management for clean_mix2. diff --git a/build/CMakeFiles/clean_mix2.dir/progress.make b/build/CMakeFiles/clean_mix2.dir/progress.make deleted file mode 100644 index 781c7de..0000000 --- a/build/CMakeFiles/clean_mix2.dir/progress.make +++ /dev/null @@ -1,2 +0,0 @@ -CMAKE_PROGRESS_1 = 1 - diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd73..0000000 --- a/build/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build/CMakeFiles/mix2.dir/DependInfo.cmake b/build/CMakeFiles/mix2.dir/DependInfo.cmake deleted file mode 100644 index f669e41..0000000 --- a/build/CMakeFiles/mix2.dir/DependInfo.cmake +++ /dev/null @@ -1,23 +0,0 @@ - -# Consider dependencies only in project. -set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) - -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - ) - -# The set of dependency files which are needed: -set(CMAKE_DEPENDS_DEPENDENCY_FILES - "/Users/reetnandy/vscode/OS_HW_2/src/mix2.cpp" "CMakeFiles/mix2.dir/src/mix2.cpp.o" "gcc" "CMakeFiles/mix2.dir/src/mix2.cpp.o.d" - ) - -# Targets to which this target links which contain Fortran sources. -set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES - ) - -# Targets to which this target links which contain Fortran sources. -set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/CMakeFiles/mix2.dir/build.make b/build/CMakeFiles/mix2.dir/build.make deleted file mode 100644 index 3258e2a..0000000 --- a/build/CMakeFiles/mix2.dir/build.make +++ /dev/null @@ -1,110 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.30 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/local/Cellar/cmake/3.30.5/bin/cmake - -# The command to remove a file. -RM = /usr/local/Cellar/cmake/3.30.5/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /Users/reetnandy/vscode/OS_HW_2 - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /Users/reetnandy/vscode/OS_HW_2/build - -# Include any dependencies generated for this target. -include CMakeFiles/mix2.dir/depend.make -# Include any dependencies generated by the compiler for this target. -include CMakeFiles/mix2.dir/compiler_depend.make - -# Include the progress variables for this target. -include CMakeFiles/mix2.dir/progress.make - -# Include the compile flags for this target's objects. -include CMakeFiles/mix2.dir/flags.make - -CMakeFiles/mix2.dir/src/mix2.cpp.o: CMakeFiles/mix2.dir/flags.make -CMakeFiles/mix2.dir/src/mix2.cpp.o: /Users/reetnandy/vscode/OS_HW_2/src/mix2.cpp -CMakeFiles/mix2.dir/src/mix2.cpp.o: CMakeFiles/mix2.dir/compiler_depend.ts - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/mix2.dir/src/mix2.cpp.o" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/mix2.dir/src/mix2.cpp.o -MF CMakeFiles/mix2.dir/src/mix2.cpp.o.d -o CMakeFiles/mix2.dir/src/mix2.cpp.o -c /Users/reetnandy/vscode/OS_HW_2/src/mix2.cpp - -CMakeFiles/mix2.dir/src/mix2.cpp.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/mix2.dir/src/mix2.cpp.i" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /Users/reetnandy/vscode/OS_HW_2/src/mix2.cpp > CMakeFiles/mix2.dir/src/mix2.cpp.i - -CMakeFiles/mix2.dir/src/mix2.cpp.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/mix2.dir/src/mix2.cpp.s" - /Library/Developer/CommandLineTools/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /Users/reetnandy/vscode/OS_HW_2/src/mix2.cpp -o CMakeFiles/mix2.dir/src/mix2.cpp.s - -# Object files for target mix2 -mix2_OBJECTS = \ -"CMakeFiles/mix2.dir/src/mix2.cpp.o" - -# External object files for target mix2 -mix2_EXTERNAL_OBJECTS = - -mix2: CMakeFiles/mix2.dir/src/mix2.cpp.o -mix2: CMakeFiles/mix2.dir/build.make -mix2: CMakeFiles/mix2.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable mix2" - $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mix2.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -CMakeFiles/mix2.dir/build: mix2 -.PHONY : CMakeFiles/mix2.dir/build - -CMakeFiles/mix2.dir/clean: - $(CMAKE_COMMAND) -P CMakeFiles/mix2.dir/cmake_clean.cmake -.PHONY : CMakeFiles/mix2.dir/clean - -CMakeFiles/mix2.dir/depend: - cd /Users/reetnandy/vscode/OS_HW_2/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /Users/reetnandy/vscode/OS_HW_2 /Users/reetnandy/vscode/OS_HW_2 /Users/reetnandy/vscode/OS_HW_2/build /Users/reetnandy/vscode/OS_HW_2/build /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles/mix2.dir/DependInfo.cmake "--color=$(COLOR)" -.PHONY : CMakeFiles/mix2.dir/depend - diff --git a/build/CMakeFiles/mix2.dir/cmake_clean.cmake b/build/CMakeFiles/mix2.dir/cmake_clean.cmake deleted file mode 100644 index 1970aed..0000000 --- a/build/CMakeFiles/mix2.dir/cmake_clean.cmake +++ /dev/null @@ -1,11 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/mix2.dir/src/mix2.cpp.o" - "CMakeFiles/mix2.dir/src/mix2.cpp.o.d" - "mix2" - "mix2.pdb" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/mix2.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/build/CMakeFiles/mix2.dir/compiler_depend.make b/build/CMakeFiles/mix2.dir/compiler_depend.make deleted file mode 100644 index 9cc2b93..0000000 --- a/build/CMakeFiles/mix2.dir/compiler_depend.make +++ /dev/null @@ -1,2 +0,0 @@ -# Empty compiler generated dependencies file for mix2. -# This may be replaced when dependencies are built. diff --git a/build/CMakeFiles/mix2.dir/compiler_depend.ts b/build/CMakeFiles/mix2.dir/compiler_depend.ts deleted file mode 100644 index 737005b..0000000 --- a/build/CMakeFiles/mix2.dir/compiler_depend.ts +++ /dev/null @@ -1,2 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Timestamp file for compiler generated dependencies management for mix2. diff --git a/build/CMakeFiles/mix2.dir/depend.make b/build/CMakeFiles/mix2.dir/depend.make deleted file mode 100644 index 7106a5e..0000000 --- a/build/CMakeFiles/mix2.dir/depend.make +++ /dev/null @@ -1,2 +0,0 @@ -# Empty dependencies file for mix2. -# This may be replaced when dependencies are built. diff --git a/build/CMakeFiles/mix2.dir/flags.make b/build/CMakeFiles/mix2.dir/flags.make deleted file mode 100644 index 924af7b..0000000 --- a/build/CMakeFiles/mix2.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.30 - -# compile CXX with /Library/Developer/CommandLineTools/usr/bin/c++ -CXX_DEFINES = - -CXX_INCLUDES = - -CXX_FLAGS = -std=gnu++11 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk - diff --git a/build/CMakeFiles/mix2.dir/link.txt b/build/CMakeFiles/mix2.dir/link.txt deleted file mode 100644 index ce51ab5..0000000 --- a/build/CMakeFiles/mix2.dir/link.txt +++ /dev/null @@ -1 +0,0 @@ -/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/mix2.dir/src/mix2.cpp.o -o mix2 diff --git a/build/CMakeFiles/mix2.dir/progress.make b/build/CMakeFiles/mix2.dir/progress.make deleted file mode 100644 index 2513171..0000000 --- a/build/CMakeFiles/mix2.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 2 -CMAKE_PROGRESS_2 = 3 - diff --git a/build/CMakeFiles/progress.marks b/build/CMakeFiles/progress.marks deleted file mode 100644 index 00750ed..0000000 --- a/build/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/build/CTestTestfile.cmake b/build/CTestTestfile.cmake deleted file mode 100644 index 8edcb4e..0000000 --- a/build/CTestTestfile.cmake +++ /dev/null @@ -1,150 +0,0 @@ -# CMake generated Testfile for -# Source directory: /Users/reetnandy/vscode/OS_HW_2 -# Build directory: /Users/reetnandy/vscode/OS_HW_2/build -# -# This file includes the relevant testing commands required for -# testing this directory and lists subdirectories to be tested as well. -add_test(Test_files/flow1_flow "bash" "-c" " - echo '=== Running Test_files/flow1_flow ==='; - echo 'Running mix with files/flow1.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow1.flow doit > Test_files/flow1_flow_actual_output.txt; - echo 'Expected output from command:'; - ls | wc > Test_files/flow1_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow1_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow1_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow1_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow2_flow "bash" "-c" " - echo '=== Running Test_files/flow2_flow ==='; - echo 'Running mix with files/flow2.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow2.flow shenanigan > Test_files/flow2_flow_actual_output.txt; - echo 'Expected output from command:'; - (cat /Users/reetnandy/vscode/OS_HW_2/files/foo.txt ; cat /Users/reetnandy/vscode/OS_HW_2/files/foo.txt | sed 's/o/u/g') | wc > Test_files/flow2_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow2_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow2_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow2_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow3_flow "bash" "-c" " - echo '=== Running Test_files/flow3_flow ==='; - echo 'Running mix with files/flow3.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow3.flow doit > Test_files/flow3_flow_actual_output.txt; - echo 'Expected output from command:'; - ls -l | ls > Test_files/flow3_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow3_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow3_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow3_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow4_flow "bash" "-c" " - echo '=== Running Test_files/flow4_flow ==='; - echo 'Running mix with files/flow4.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow4.flow doit > Test_files/flow4_flow_actual_output.txt; - echo 'Expected output from command:'; - ls ; ls -l > Test_files/flow4_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow4_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow4_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow4_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow5_flow "bash" "-c" " - echo '=== Running Test_files/flow5_flow ==='; - echo 'Running mix with files/flow5.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow5.flow pipe3 > Test_files/flow5_flow_actual_output.txt; - echo 'Expected output from command:'; - ls | grep '.cpp' | wc > Test_files/flow5_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow5_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow5_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow5_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow8_flow "bash" "-c" " - echo '=== Running Test_files/flow8_flow ==='; - echo 'Running mix with files/flow8.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow8.flow concat1 > Test_files/flow8_flow_actual_output.txt; - echo 'Expected output from command:'; - ls ; ls > Test_files/flow8_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow8_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow8_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow8_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow9_flow "bash" "-c" " - echo '=== Running Test_files/flow9_flow ==='; - echo 'Running mix with files/flow9.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow9.flow concat_echoes > Test_files/flow9_flow_actual_output.txt; - echo 'Expected output from command:'; - echo 'f o o' ; echo 'f o o' ; echo 'f o o' ; echo 'f o o' ; echo 'f o o' > Test_files/flow9_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow9_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow9_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow9_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow10_flow "bash" "-c" " - echo '=== Running Test_files/flow10_flow ==='; - echo 'Running mix with files/flow10.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow10.flow concat_ultimate > Test_files/flow10_flow_actual_output.txt; - echo 'Expected output from command:'; - echo 'Command One Executed.' ; echo 'Command One Executed.' ; echo 'Command Two Executed.' ; echo 'Command Three Executed.' ; echo 'Command Four Executed.' ; echo 'Command Four Executed.' ; echo 'Command One Executed.' ; echo 'Command Two Executed.' > Test_files/flow10_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow10_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow10_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow10_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow11_flow "bash" "-c" " - echo '=== Running Test_files/flow11_flow ==='; - echo 'Running mix with files/flow11.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow11.flow unique_numbers > Test_files/flow11_flow_actual_output.txt; - echo 'Expected output from command:'; - (seq 1 5 | awk '{print \$1*\$1}' ; seq 1 5 | awk '{print \$1*2}' ; seq 1 5 | awk '{print \$1+5}') | sort -n | uniq > Test_files/flow11_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow11_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow11_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow11_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow12_flow "bash" "-c" " - echo '=== Running Test_files/flow12_flow ==='; - echo 'Running mix with files/flow12.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow12.flow catch_errors > Test_files/flow12_flow_actual_output.txt; - echo 'Expected output from command:'; - mkdir a 2>&1 | wc > Test_files/flow12_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow12_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow12_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow12_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow14_flow "bash" "-c" " - echo '=== Running Test_files/flow14_flow ==='; - echo 'Running mix with files/flow14.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow14.flow process_pipe > Test_files/flow14_flow_actual_output.txt; - echo 'Expected output from command:'; - ls > output.txt > Test_files/flow14_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow14_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow14_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow14_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") -add_test(Test_files/flow13_flow "bash" "-c" " - echo '=== Running Test_files/flow13_flow ==='; - echo 'Running mix with files/flow13.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow13.flow process_pipe > Test_files/flow13_flow_actual_output.txt; - echo 'Expected output from command:'; - cat output.txt | wc > Test_files/flow13_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow13_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow13_flow_expected_output.txt; - ") -set_tests_properties(Test_files/flow13_flow PROPERTIES PASS_REGULAR_EXPRESSION ".*" _BACKTRACE_TRIPLES "/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;102;add_test;/Users/reetnandy/vscode/OS_HW_2/CMakeLists.txt;0;") diff --git a/build/Makefile b/build/Makefile deleted file mode 100644 index 92741e5..0000000 --- a/build/Makefile +++ /dev/null @@ -1,206 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.30 - -# Default target executed when no arguments are given to make. -default_target: all -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/local/Cellar/cmake/3.30.5/bin/cmake - -# The command to remove a file. -RM = /usr/local/Cellar/cmake/3.30.5/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /Users/reetnandy/vscode/OS_HW_2 - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /Users/reetnandy/vscode/OS_HW_2/build - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target test -test: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running tests..." - /usr/local/Cellar/cmake/3.30.5/bin/ctest --force-new-ctest-process $(ARGS) -.PHONY : test - -# Special rule for the target test -test/fast: test -.PHONY : test/fast - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..." - /usr/local/Cellar/cmake/3.30.5/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache -.PHONY : edit_cache/fast - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..." - /usr/local/Cellar/cmake/3.30.5/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache -.PHONY : rebuild_cache/fast - -# The main all target -all: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles /Users/reetnandy/vscode/OS_HW_2/build//CMakeFiles/progress.marks - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all - $(CMAKE_COMMAND) -E cmake_progress_start /Users/reetnandy/vscode/OS_HW_2/build/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean -.PHONY : clean - -# The main clean target -clean/fast: clean -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -#============================================================================= -# Target rules for targets named mix2 - -# Build rule for target. -mix2: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 mix2 -.PHONY : mix2 - -# fast build rule for target. -mix2/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/mix2.dir/build.make CMakeFiles/mix2.dir/build -.PHONY : mix2/fast - -#============================================================================= -# Target rules for targets named clean_mix2 - -# Build rule for target. -clean_mix2: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean_mix2 -.PHONY : clean_mix2 - -# fast build rule for target. -clean_mix2/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/clean_mix2.dir/build.make CMakeFiles/clean_mix2.dir/build -.PHONY : clean_mix2/fast - -src/mix2.o: src/mix2.cpp.o -.PHONY : src/mix2.o - -# target to build an object file -src/mix2.cpp.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/mix2.dir/build.make CMakeFiles/mix2.dir/src/mix2.cpp.o -.PHONY : src/mix2.cpp.o - -src/mix2.i: src/mix2.cpp.i -.PHONY : src/mix2.i - -# target to preprocess a source file -src/mix2.cpp.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/mix2.dir/build.make CMakeFiles/mix2.dir/src/mix2.cpp.i -.PHONY : src/mix2.cpp.i - -src/mix2.s: src/mix2.cpp.s -.PHONY : src/mix2.s - -# target to generate assembly for a file -src/mix2.cpp.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/mix2.dir/build.make CMakeFiles/mix2.dir/src/mix2.cpp.s -.PHONY : src/mix2.cpp.s - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... edit_cache" - @echo "... rebuild_cache" - @echo "... test" - @echo "... clean_mix2" - @echo "... mix2" - @echo "... src/mix2.o" - @echo "... src/mix2.i" - @echo "... src/mix2.s" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/build/Testing/Temporary/CTestCostData.txt b/build/Testing/Temporary/CTestCostData.txt deleted file mode 100644 index 1bbd302..0000000 --- a/build/Testing/Temporary/CTestCostData.txt +++ /dev/null @@ -1,13 +0,0 @@ -Test_files/flow1_flow 1 0.0309353 -Test_files/flow2_flow 1 0.0369551 -Test_files/flow3_flow 1 0.030214 -Test_files/flow4_flow 1 0.0275901 -Test_files/flow5_flow 1 0.0274874 -Test_files/flow8_flow 1 0.0297966 -Test_files/flow9_flow 1 0.0202478 -Test_files/flow10_flow 1 0.0207895 -Test_files/flow11_flow 1 0.0463894 -Test_files/flow12_flow 1 0.0264338 -Test_files/flow14_flow 1 0.0211962 -Test_files/flow13_flow 1 0.0265988 ---- diff --git a/build/Testing/Temporary/LastTest.log b/build/Testing/Temporary/LastTest.log deleted file mode 100644 index d2d2bed..0000000 --- a/build/Testing/Temporary/LastTest.log +++ /dev/null @@ -1,470 +0,0 @@ -Start testing: Oct 28 19:45 EDT ----------------------------------------------------------- -1/12 Testing: Test_files/flow1_flow -1/12 Test: Test_files/flow1_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow1_flow ==='; - echo 'Running mix with files/flow1.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow1.flow doit > Test_files/flow1_flow_actual_output.txt; - echo 'Expected output from command:'; - ls | wc > Test_files/flow1_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow1_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow1_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow1_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow1_flow === -Running mix with files/flow1.flow: -/bin/bash: line 3: Test_files/flow1_flow_actual_output.txt: No such file or directory -Expected output from command: -/bin/bash: line 5: Test_files/flow1_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow1_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow1_flow_expected_output.txt: No such file or directory - -Test time = 0.03 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow1_flow" end time: Oct 28 19:45 EDT -"Test_files/flow1_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -2/12 Testing: Test_files/flow2_flow -2/12 Test: Test_files/flow2_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow2_flow ==='; - echo 'Running mix with files/flow2.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow2.flow shenanigan > Test_files/flow2_flow_actual_output.txt; - echo 'Expected output from command:'; - (cat /Users/reetnandy/vscode/OS_HW_2/files/foo.txt ; cat /Users/reetnandy/vscode/OS_HW_2/files/foo.txt | sed 's/o/u/g') | wc > Test_files/flow2_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow2_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow2_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow2_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow2_flow === -Running mix with files/flow2.flow: -/bin/bash: line 3: Test_files/flow2_flow_actual_output.txt: No such file or directory -Expected output from command: -/bin/bash: line 5: Test_files/flow2_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow2_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow2_flow_expected_output.txt: No such file or directory - -Test time = 0.04 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow2_flow" end time: Oct 28 19:45 EDT -"Test_files/flow2_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -3/12 Testing: Test_files/flow3_flow -3/12 Test: Test_files/flow3_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow3_flow ==='; - echo 'Running mix with files/flow3.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow3.flow doit > Test_files/flow3_flow_actual_output.txt; - echo 'Expected output from command:'; - ls -l | ls > Test_files/flow3_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow3_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow3_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow3_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow3_flow === -Running mix with files/flow3.flow: -/bin/bash: line 3: Test_files/flow3_flow_actual_output.txt: No such file or directory -Expected output from command: -/bin/bash: line 5: Test_files/flow3_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow3_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow3_flow_expected_output.txt: No such file or directory - -Test time = 0.03 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow3_flow" end time: Oct 28 19:45 EDT -"Test_files/flow3_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -4/12 Testing: Test_files/flow4_flow -4/12 Test: Test_files/flow4_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow4_flow ==='; - echo 'Running mix with files/flow4.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow4.flow doit > Test_files/flow4_flow_actual_output.txt; - echo 'Expected output from command:'; - ls ; ls -l > Test_files/flow4_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow4_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow4_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow4_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow4_flow === -Running mix with files/flow4.flow: -/bin/bash: line 3: Test_files/flow4_flow_actual_output.txt: No such file or directory -Expected output from command: -CMakeCache.txt -CMakeFiles -CTestTestfile.cmake -Makefile -Testing -cmake_install.cmake -flow -flow2 -flow3 -flow4 -flow5 -flow6 -flow7 -flow7_1 -flow8 -mix -mix2 -parse -/bin/bash: line 5: Test_files/flow4_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow4_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow4_flow_expected_output.txt: No such file or directory - -Test time = 0.03 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow4_flow" end time: Oct 28 19:45 EDT -"Test_files/flow4_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -5/12 Testing: Test_files/flow5_flow -5/12 Test: Test_files/flow5_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow5_flow ==='; - echo 'Running mix with files/flow5.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow5.flow pipe3 > Test_files/flow5_flow_actual_output.txt; - echo 'Expected output from command:'; - ls | grep '.cpp' | wc > Test_files/flow5_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow5_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow5_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow5_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow5_flow === -Running mix with files/flow5.flow: -/bin/bash: line 3: Test_files/flow5_flow_actual_output.txt: No such file or directory -Expected output from command: -/bin/bash: line 5: Test_files/flow5_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow5_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow5_flow_expected_output.txt: No such file or directory - -Test time = 0.03 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow5_flow" end time: Oct 28 19:45 EDT -"Test_files/flow5_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -6/12 Testing: Test_files/flow8_flow -6/12 Test: Test_files/flow8_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow8_flow ==='; - echo 'Running mix with files/flow8.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow8.flow concat1 > Test_files/flow8_flow_actual_output.txt; - echo 'Expected output from command:'; - ls ; ls > Test_files/flow8_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow8_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow8_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow8_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow8_flow === -Running mix with files/flow8.flow: -/bin/bash: line 3: Test_files/flow8_flow_actual_output.txt: No such file or directory -Expected output from command: -CMakeCache.txt -CMakeFiles -CTestTestfile.cmake -Makefile -Testing -cmake_install.cmake -flow -flow2 -flow3 -flow4 -flow5 -flow6 -flow7 -flow7_1 -flow8 -mix -mix2 -parse -/bin/bash: line 5: Test_files/flow8_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow8_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow8_flow_expected_output.txt: No such file or directory - -Test time = 0.03 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow8_flow" end time: Oct 28 19:45 EDT -"Test_files/flow8_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -7/12 Testing: Test_files/flow9_flow -7/12 Test: Test_files/flow9_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow9_flow ==='; - echo 'Running mix with files/flow9.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow9.flow concat_echoes > Test_files/flow9_flow_actual_output.txt; - echo 'Expected output from command:'; - echo 'f o o' ; echo 'f o o' ; echo 'f o o' ; echo 'f o o' ; echo 'f o o' > Test_files/flow9_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow9_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow9_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow9_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow9_flow === -Running mix with files/flow9.flow: -/bin/bash: line 3: Test_files/flow9_flow_actual_output.txt: No such file or directory -Expected output from command: -f o o -f o o -f o o -f o o -/bin/bash: line 5: Test_files/flow9_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow9_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow9_flow_expected_output.txt: No such file or directory - -Test time = 0.02 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow9_flow" end time: Oct 28 19:45 EDT -"Test_files/flow9_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -8/12 Testing: Test_files/flow10_flow -8/12 Test: Test_files/flow10_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow10_flow ==='; - echo 'Running mix with files/flow10.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow10.flow concat_ultimate > Test_files/flow10_flow_actual_output.txt; - echo 'Expected output from command:'; - echo 'Command One Executed.' ; echo 'Command One Executed.' ; echo 'Command Two Executed.' ; echo 'Command Three Executed.' ; echo 'Command Four Executed.' ; echo 'Command Four Executed.' ; echo 'Command One Executed.' ; echo 'Command Two Executed.' > Test_files/flow10_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow10_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow10_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow10_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow10_flow === -Running mix with files/flow10.flow: -/bin/bash: line 3: Test_files/flow10_flow_actual_output.txt: No such file or directory -Expected output from command: -Command One Executed. -Command One Executed. -Command Two Executed. -Command Three Executed. -Command Four Executed. -Command Four Executed. -Command One Executed. -/bin/bash: line 5: Test_files/flow10_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow10_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow10_flow_expected_output.txt: No such file or directory - -Test time = 0.02 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow10_flow" end time: Oct 28 19:45 EDT -"Test_files/flow10_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -9/12 Testing: Test_files/flow11_flow -9/12 Test: Test_files/flow11_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow11_flow ==='; - echo 'Running mix with files/flow11.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow11.flow unique_numbers > Test_files/flow11_flow_actual_output.txt; - echo 'Expected output from command:'; - (seq 1 5 | awk '{print $1*$1}' ; seq 1 5 | awk '{print $1*2}' ; seq 1 5 | awk '{print $1+5}') | sort -n | uniq > Test_files/flow11_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow11_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow11_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow11_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow11_flow === -Running mix with files/flow11.flow: -/bin/bash: line 3: Test_files/flow11_flow_actual_output.txt: No such file or directory -Expected output from command: -/bin/bash: line 5: Test_files/flow11_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow11_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow11_flow_expected_output.txt: No such file or directory - -Test time = 0.05 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow11_flow" end time: Oct 28 19:45 EDT -"Test_files/flow11_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -10/12 Testing: Test_files/flow12_flow -10/12 Test: Test_files/flow12_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow12_flow ==='; - echo 'Running mix with files/flow12.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow12.flow catch_errors > Test_files/flow12_flow_actual_output.txt; - echo 'Expected output from command:'; - mkdir a 2>&1 | wc > Test_files/flow12_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow12_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow12_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow12_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow12_flow === -Running mix with files/flow12.flow: -/bin/bash: line 3: Test_files/flow12_flow_actual_output.txt: No such file or directory -Expected output from command: -/bin/bash: line 5: Test_files/flow12_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow12_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow12_flow_expected_output.txt: No such file or directory - -Test time = 0.03 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow12_flow" end time: Oct 28 19:45 EDT -"Test_files/flow12_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -11/12 Testing: Test_files/flow14_flow -11/12 Test: Test_files/flow14_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow14_flow ==='; - echo 'Running mix with files/flow14.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow14.flow process_pipe > Test_files/flow14_flow_actual_output.txt; - echo 'Expected output from command:'; - ls > output.txt > Test_files/flow14_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow14_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow14_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow14_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow14_flow === -Running mix with files/flow14.flow: -/bin/bash: line 3: Test_files/flow14_flow_actual_output.txt: No such file or directory -Expected output from command: -/bin/bash: line 5: Test_files/flow14_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow14_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow14_flow_expected_output.txt: No such file or directory - -Test time = 0.02 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow14_flow" end time: Oct 28 19:45 EDT -"Test_files/flow14_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -12/12 Testing: Test_files/flow13_flow -12/12 Test: Test_files/flow13_flow -Command: "/bin/bash" "-c" " - echo '=== Running Test_files/flow13_flow ==='; - echo 'Running mix with files/flow13.flow:'; - /Users/reetnandy/vscode/OS_HW_2/mix files/flow13.flow process_pipe > Test_files/flow13_flow_actual_output.txt; - echo 'Expected output from command:'; - cat output.txt | wc > Test_files/flow13_flow_expected_output.txt; - echo '--- Actual Output ---'; - cat Test_files/flow13_flow_actual_output.txt; - echo '--- Expected Output ---'; - cat Test_files/flow13_flow_expected_output.txt; - " -Directory: /Users/reetnandy/vscode/OS_HW_2/build -"Test_files/flow13_flow" start time: Oct 28 19:45 EDT -Output: ----------------------------------------------------------- -=== Running Test_files/flow13_flow === -Running mix with files/flow13.flow: -/bin/bash: line 3: Test_files/flow13_flow_actual_output.txt: No such file or directory -Expected output from command: -/bin/bash: line 5: Test_files/flow13_flow_expected_output.txt: No such file or directory ---- Actual Output --- -cat: Test_files/flow13_flow_actual_output.txt: No such file or directory ---- Expected Output --- -cat: Test_files/flow13_flow_expected_output.txt: No such file or directory - -Test time = 0.03 sec ----------------------------------------------------------- -Test Pass Reason: -Required regular expression found. Regex=[.*] -"Test_files/flow13_flow" end time: Oct 28 19:45 EDT -"Test_files/flow13_flow" time elapsed: 00:00:00 ----------------------------------------------------------- - -End testing: Oct 28 19:45 EDT diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake deleted file mode 100644 index ffec26e..0000000 --- a/build/cmake_install.cmake +++ /dev/null @@ -1,57 +0,0 @@ -# Install script for directory: /Users/reetnandy/vscode/OS_HW_2 - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -# Set path to fallback-tool for dependency-resolution. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/Library/Developer/CommandLineTools/usr/bin/objdump") -endif() - -if(CMAKE_INSTALL_COMPONENT) - if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$") - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") - else() - string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}") - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt") - unset(CMAKE_INST_COMP_HASH) - endif() -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -if(NOT CMAKE_INSTALL_LOCAL_ONLY) - string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") - file(WRITE "/Users/reetnandy/vscode/OS_HW_2/build/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") -endif() diff --git a/build/flow b/build/flow deleted file mode 100755 index 20abd85efbc849105790b2e3e17b6a9f92e6b655..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205256 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 WG*HN-Q|Y}Knk27GEk^@^!2btje*X0U diff --git a/build/flow2 b/build/flow2 deleted file mode 100755 index c959a596a86bbe4e794135c78e33602354af76d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203472 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 diff --git a/build/flow8 b/build/flow8 deleted file mode 100755 index 8541faa0fd4c7277fd6242b126878363d10808c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198800 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 NHXCl)jE2;|{}17kVaosj diff --git a/build/mix b/build/mix deleted file mode 100755 index 52ccbc538fa947eecae823e1176d5dd395ba9843..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269872 zcmeEv3w%`7wf-4GB!D{Oo2u18Ku~-H6~!VNA0wj@jSrNn2#O$x0tKR2Z?3^Gn#mZY zDvFO=V{2`y_L{aL0SyjHNvy37YHM1pj#ld)MV(fQsZ#U*zP0yx%$b=GtnI!2FZum) z_Bs2p_S);U*Is*{GcSDh!5953D^OxtRv-NDjQ@^O%Zk+w#+_w-1OHL{PnlA6{P@WE zk+aTVZthL5~nRHHW6=`4YgJPb6ip786D1TF?ES$b*p?N^!hgT88 zV37aLjv5}H`?}TnQ0sl1GG)QS>Pr?lS$=r??;8+!>qs2@+0XjPvdRp+?M%j$DYNFx zS~z9yj2R22F9cXWyp4l3JR2uI8_)t_cN?$+@3Lvrrc7TnZTh^0Qx;x)i636pz3g{vc#Aw)Uc7R-;nnvEr<{ITd+1q`>TC5V0~Voa7W~Y@xML(53OD>|IjODU2^E9*IaQap82;I{)xxt6Ry7J z>|;kwxvBh+AvdgD`srcF3*%ppDTuqE+zb8tUC{SHJT6`>k`3pjJLiu9;%pI|LkiPES!GjAt#t7s13V>f8vw8 zHDHB6s{_n4>AUT38wIveU>gOtQD7Sdwozak1-4OO8wI{93QUZ~--*_33`OHLUC~5M zmwI&q9QC?&p~=q#_dUt7^2+x*tLO6f&)Y)zg*}%)e90Edu~PNpw|HYM=z$?DkH)*A z@ko=5CSILgANj~qtKdOL8*5T3g`4$}7x4eQ6>X0sNyBI&l0=K87<*Q|z?$*3$Xgmc zx+7S(C!bLeO;jhLX7D*F>JG>lz-6aSgaB@_Zl|0_Lj(1Z7cv|0 zsB7(K*LuOJ^}Me2eCA=)%HSVWYo1cmcL-SV$W4-wh}=}yWd)a9iNZ}0Hk~GS?CRUN zlhOPD_%tKqL}nx~^v3FxYD1=gkSd2_#gZAq^7z_#DjKhBiANrhl2_3i8>!b=SW13_Ft zamLa-{W(qg2X}8z4h;k!PnwE8c;&VP0}n`aO=mPQz6@v(KcbUXLrws0BCF}>*g&vu zA0UIus92p60wguu#1c@S#GNCD%mJxi)%y|P$wt?{SrQF&OnxTU9;$M!l#$;8P@3m%ffpLhKCo z5lOA>DjU|#j_EiYi5m?5xIr@bH0E7(n^3PkQJq@*McLv%v#QzyT!YaDeSV8l)q+cA zrUoa_uL~|=_}J}iNyK@KM}A#b^XnagOAbaB`g&;(>FbB=Yq;IluhnCvb{F&6MJ2mH z10!*D>ngOy`sdRyWH_tmW7>^srC#VuK%AJX$?+~V|2Fn(Ps#=L#cMyN{m8OB*27m{ z_eURa%x&%rGJ`!QfuurRF0#yn=c&yyvtST+lEm3MGHlx>-aoJ zKa;^)r4L4iU!`a5CX#kJye!p5KNJ#7mA=^AH;(QHv!vc~)aO=;4psU%f;TD+#&v>M zDU3Cx_WwJ<$mE<-r|5?ynsmtIJQEoX5@%4hQKGKb)mqVaE3CnS{eaG~G`jIf3!bO( z`TP3084Zw!3Hk%Hc0d`YtTj>niR$}#cXuWYW*Bf2*nD42jwXORhR6P8GltYQF=TD zK^zKLz#0{=ep}OQ+|qp^8q??+&_`|@SIg(y^m7WlLmrl@^ZR;)?F6Q%Qf@J?~yRiT196PI{oU0uyO%;Bc_WXz!IRNZ`(ulWF{`A(>S zW|*uyF-}hMAAmcc_NYxNgF7!m`x0UonU^SigX92(?E$tzVf6r?((Toc*t+IzxEiMk z9uAEe=3MN5$=J;T>@gwu2nG!e~K zBXNgSOkSatOR zGJ)9RpB>5crc%`*>%2VlbmMbQC-GEm8dW<#z>lk^ganUY=%6o zGf$K71c(RwAa2Kw>ef|Fenx%x56g1=+kE}5gPIlhPb%ndxRd902)n2an?%DDG;Gse zcpmksJkvTN5B_j1)WmPjyExh0`H4H(bfNhhZ2og9l~&jn`23cBb`|#GV&D`C?8%1U zTG{+?QCUo>jpLg6e4Bm-^~|jLS6Kdn*gcDJ*pp2S+)22nD=~$b@#?w0TE-uzy_M&}jX|ZlZJ_ zxcH8VY-^!6kXRu}V_PepR+m9O)XZHB&QYDKR_%yzqq-hgV%#N+ z;xvwazYj?B_}|F8SiRjMnrP#_=}e8+#kHPd-lO#kY`qA@25RXQB)G@qtj2*dP1y;b zo4%cOU}H0e5RW~8Yi2C!0ezYJXKo~H8DO+=g=Fo95dpzP9t?ONP4tTjq$*)V4Zl|Q~*>} z?{mZ}c)vb290deIF;JUGy?AUUN(>{~c<&+4IYOQ(c7=vU-nIlbtqs)2F2ZdvcCsxS zX2>Hnc0^#6h}r$NnCZ?DlWo&=MsMKswzKp=SPcTPJ~kQmn*>oi+_ybPshg?gh=Mgp z9fvMhIzf2Gbub>%IC=@8?)@>xAFBc=dt|%^FGxN0)4xh_)KkoRv>wgYucO$O%oioJ z2l!^T597Fumdu}nLsF}tWUl1g)!0_%l0&r4W>x~E*IhKWb&3nyRsjsu;h+}Oi1#+K zk8E4wq{Rm3bjktJernci4G>ug)5XL>_PA$~;!s?kE$a6bzuzpQNbs6hZ+K32I zkM@8$*aK!T!K?)sBj(MT;PvQEYxZi$g^ipp9DO1tXSFl(>tjI~MjH#%?>?afGsltO z)1k+}W~mD_N3$>Tz+S{U@wP6kV$@ZT05qFQsF(9Tv4Z)?67}9A$Wg~E4>@`7QSWL& z?o+OaphLilx5SDri9H&^0*9oRbvp`3Ww(H+^4M;E6&#k@!B2F$tYa1?7q6Q#r9RC_0pYS;~}s{P14 zjsGB&hjpA)Be2{wiWagj6l=8>GHN z?EBFr>|%?=Ax3|MiB$FdP>7ubSVOfo-rK}p_JI_)dWv}uVtQka(=g(~S2v)WdY~a!)bu(RvwMPt(OqJ;l7Y$M6XaIXo^;G4Ij(BDNl; zTi1Gud5_jI(#Lh{MV?~bqxA$dRKszx2_!?jgA{0NleS?D*YHa1s_(@jl<9jiPi_84 z>MZ4b7WbLc;Q{2^-3(8`=4S)C^cwc``jCbw{QJJXmtJqx_tNVP`d)hdF77jXqF1AV zEt=0_rs+kfT_C3R7e=Tcj;a?wk>yot`^tC zIAALQ!-ma85FIcyS1-JYdpKaYUmv>+1q31%y1G9J5u1q;-7wL{dyhGNN${FtSAYYC zTiXG{ZN39GQ)5R2R&gDu!ZupEa~d68XY?`fVAS`dhl>CU4j8U*z;N9pi295Uo2flM zBwbj?p^LHVZ8bPjIgj(Z_#sV)FsDiSr!{+4d`zgLsHg*B&@d@q_EWH4-iU-o#ddV z%hbNePDpk|x3K&q$Tzn?aU>V6d4yjv#07a(Vx=RYAX zrg>KlY8K_4VTXF;eN`n;jWq<4r+J6tx->6RJ!BF(NBXW$WPPVXJbU@!Mp> zp1Lt&dNw!OcyBZD;dcaf+EdJXv_2fuw|Wi5dMJs~6jAcb^!tDznu#ss52e1KTeT0x zGLLaKc~fX;lXo5NGfx$)p1GIVn1e|A2VW!7Tv#u6$!>cBM?>E=%5bWva4hm2k^JRj3dd6Gu|c=v6QD7?`>A5|0Km7o?_mk^&V`! zlWv{#6!RYQ5&KL4Rlsibl=2>p--JV{Ue>T%JjJ|6@ty#y{)S?VTShKJ*p(w}Y~$pk zKE!ayD&D`vp^YubVN{W(zo!*6O@HBO`eQa7kEYU*zU)Rf)`Wd-)OBS(UC|FP5dR|a zJQ8~aJ6^nw(J>rBG40Oqw5ySJv1YDx;<09q7C9sg@1qHwz^Rj`(lzk4yzs>dNVKt3 zmHioHy9QJ(biSn`YW8pA6E{W?*27~ey12a=qN1+3hd}Y1D199s38YS+$_Qd30qt&N zrD*)KXx-DHXkzp)Sfy@#nYtd$Gz)aw9~5m{*UoTahnfit-4@KnMo(hm#=2jXsU<{$ zC+#qLV1r{qve|!;JP|iLaJB}P+){r_*lan5HOz6pbUgA}CgRTsGeZu4=rcvErQUi6 z0AyO0kf|R3=-kbQkP*cp4fJQ`eBD|A4 z2I2c+=drx>zW_qzkB`@F3_F9;%9p0-t6R{wj3$qt6>fbw!+>!K5qO*~tB(2++JR5% zBHkowP+ARg>~;%h=EllS5a1P6|CUrr*Mo{YyL8D-d~R2lk3h;p0V4SM=R3qWa62@s z9wvwcc2}@5#tf*&AoWlwGr0l?&V=kUfI?|qOn zXS|QUDV5yu-ofW~)c|?z<#?YU2>*B=l+2>zefXOMU;O;|69vo5!CxH5fE}hRo1-<9 zcd!?fR%&~V3hJy^U6n)&74@0bV)|SJ9$-$)Qb*OAvQ~1-jJEl$m{Aiq>{tGw{GThyZY5wq`i~ZAU$?RG`;wFtV)KMN#J?XPnzbP_ng`u*$lI28CKTSbd>~`9Dc^ z;}4wZxsP}DtC+J7!38Y?sF(r6i9C9rR|bXcRA^>rgpiR`X;#BOprQDB_(A$9G46ET z#Rfd9yQParvni`-j`G0m5jwZY&TRq;Ddee#anYIRLhlwYddp;)K}qL#y>9wlikr+4 z#KO$FJfoZ0&6go9(K-G^Xz+Mb6vXDp5Aaq7svX%@)mZKnl^E`5Qk@MV7&K~2hOXC^QwC+ z9vztda!L_Tt`tAt>&P?ZRlWNHeMJZ=?6g|V2P5DW_IWrDJ~E%E=-5a$xMUb{p~2(e zM>!7^!g4K(Rb?s;dJ48;@M(SW`Q?F6+yQL?p*b!5_J#Hj#t&197(Kx$B|VD!0n&&& zVvOOPP!OPr3e}ykW@$*CdR5B;&pbSZuXQGkAEe*%!@gj|c7#O}oN zX(5Mh{Ea3IE5de0n$*=!g(gAIk(mu{+H~I21WTF68>vn zD66;+f?m)YlK#;HI#vxLmUl%z{ku{5T=^0GKx8Lze3`$#7Kc3htosvt0-57+x;i~q z@EsQ%_w@UR<+<{yWtzlL4-+#AX&iFsPRc(2a%xU{5jGs`j#q;| z!zqFOm8Nz|UByD2t2EXc2Q2jq7ad9hd)k5;^P7xEo)n00YKTeo#VZJmU2T6vV#Ee8iaUh2NHz%=D~d(`&|M2 zFnkP^%Fe~~iGmmD0s4=Pq=PnQ9jcy1Sn#S_B!~oArQu3oCAA?#dv!f}MFpZ1>B{V@ zA3CEO_{`%^_y-H0-iehg)Vhc6M88=GX{oNvvPuh;cyv;$O_ zMmgaPiZ)iJ)gV%?v8FZJ7-@WW;~t z(-*o=qFpP+dcMWO;&n}cEq?8CRr4YZa4j-y{|h)%lritT%H^|h&rWj6!;ZX>=QO7; zu^x25#@Vd5xgr_^L+`WiY;X8Q8zFN{R>6|!;cA->2h)}xw?Dr=7=1|-d0Y^0Wwi{M=&4H&WtayX^Y@6@KJh=1+sr_c>!2XqJ# zHpWS3j3eJa^x7N$_+J6 zWR~FG$V+3TAu3JtPSJQMnm7|6s>-5?Q&18O0W-*=Gk^{^rhEV>d*~XCvT67b3VD; z7$z8~%Jc+IJ&e!b06nI{w7MFQo&B6dklF zNFVV>jlRqKYC?;i<&`pZCwtWMV^%fDgR`Do=DcQ2(YNWT`Qh!)tj`R`bNy>?Jaaa| z`{dW=4Yj#$tq2hM%F`Dzr$_zJ_+-_%=j}dn@#R>B+z=vT2SM6d^lBWb83{i$-@i2S zhxP+|!XLszE5uo(E{SnOvIX(A^@sB4=uMV-W2)!ri`)Mb*oE@b&uf3Qj4Q!GuX(%F zjcg-6XF7K=Bza2w8+ee8b^DUz2lATUUVbJZS=yS{f^zo!Rqo6$dFuz#mqaWu`@8eO zyh82OE&2q12iihwq0M>?oI<)BrlM1=k!>%t?#196YgVdLpOX$-(I|;Zpd4Pt`lZIA znXQnKR1dIaJko?F41hJMmvn|7&v}}Ie)%uY!B>{;n5o7_I)h6NWLJDCi;I9bk?}YY zxK9~}B9-Z&`t$u{zW#G|;r`1D_a8$4+F5e^0n)0deIUN3zSvA)C$g>ON<1V9+0lW! zOHRj&HwUMp9bylIx+@O}ka#d+2Vqd!K(FBlI6RShYCFH0Kx6&bXE*|6uTM)ut_^cpJ4S(DDX&faTf~8=mbv8k%sfSEmu2Xo9!CrXTCk ze|}fj3Az4{TaNenTe+0gq_yo&*rBKP4`?G)bZxpM+IU2Tev4s00JUc@;7_952O`pX z=j)>%9_&c9@z1mt_cTAKp4L~V{Yu7pq_AKr64^;o>n?_L|)V@c+RCi$CJf)Xr1ss5tOUJ z$v)I`{0OrMr&6Rdj8Di2WeNaEjYK>8;4GYk45$ky8lOSARnPY9+~XgT9<2}QzX2dt zF@8WldL?>N!GJD`oY-M|qExpQe5Xgzejs;Ji8FOc;z>j9<)7%e$=G`^1=GH{8H_x{oQIVVs2kf zehn;!3bF3+26zki55ABx_$MCR))=x%=8&ukk#1&y6}EqpQ(wLExUMS=f5nF$>r1s& z&j>rRs)aX2>#GYq;9UR4>0ez7WwD#P<+=2yt)m``vX@2UL9B}hF*e9|!{Xcb6C+b0 z2pNmW12h)oEeG(QqKJB_2&mtT=V3^#lLX5#$WRztu7-B>M$o) z&gZVOgH`R3PmqOW5I$$pIPqh3jjuwuJ+cvBA3hEhHlo7&s@|y}n#fsXB3^{@%CC!G zf}nfAKf!q;uiT}-f4x7pMCywLD8w&+{c8)>cksiYKEiz_SR4Dt)Pe4_`T2}2GZFxJzQUz_GlVoS)O=_)|W3&59lL^ z?3G`y{wN*aW?=OYB5S6fCAfFiTco${f26Kbz`xVwrxh(1`&p1*VlUuQ^(+rPw)c&% zpnM8H5_+GgQ|+t~EhL{?qIW($i}&{>`2TS*6!f_s}oRkpDjJ*K+WG~p1arH zAu4mI`2G=|ke1F<>L0pV(&SVpQLjV2`=qVZR5W~X%9#K#uT^)hMuw&E#T5(yt}LAR z%zSu{5cCRd0j|dTKE>kWrxmo{E`7)LTrN`*{c$}9c=@UM^S)E&)lUsy`&U`<=Zm!; z$zl2C7h9j|l2B8+Q$56kJ}=mR*x{ew{+ar|`M{+|5%~n=^WxP$`Ti>9b&&e_7437W zd8=Il8UM`Cr`P@G>zAKCkY$MX?Cd1H7QX{iiaptaQk-RWd5<#YuAjX0@aUs#x%P8- zV#|x$pY8LU$U5|SM2VC-oX^^TLd_J^OpZXIh8n{n*$`H0f(8wwa^?eno8hOmor!B$Xa=9L# zEnC9hf2luRig%+5(?78V{>(0DZ~gp%teXAwy-FZ*#--_vKYc;L`i_3|F4n69B~f*3IA#o8OTha&UpD#Y()sO#U{x3fu@=ww`pPuDTyd=;6{R;S--=Aw=25w<}y@m3xh5!4@ z2meX`_jlX;-~96Gkswd z?`-pbzn1=QXI?ybmls`r_hSAn8sGh#^FyBh>(0;Z+&sWez<3_;LF5x(HEECF({#9R zL`bx8;zx4++!w8`-jM5$7GLk0`N0=oFFv2`#hy8T_IMt^-T&5G7_>gMMB4b1oWBrr z|B~kciq41fqEA-dht>q)QTbEQtxX=RlDTcn#qdnFkppyN)W^T2ed4C*7z%`q9KUoftRI2Wm>-aDZ5%O62GcNS5R9 zYPW1J=It*QmmiS_gQ87OgP&*rqr8xRWZoZwEFG!Qz`l`RK1OX?&DSebd6SnNdH9ik zU!^>``Ukk`C}7~6OOv=MC0DqOUGR)PX^EUE90vErxp^owvG>!6pWY9hjXDkZde1TZ zMu7e9zXWe;QR3APU4JYx<*>EbhHAL54PKu}_@!@nd z#KZb%_jLz|~j;DP2<&Qs;a1`2jq**$g{;U9Kw$YE>D6yP@{1l)%-`EVf350a9QyW-FYJuZ@1K4T zm;jn@zVg?HEx<|gqd_)Z*Dt@h_2r#4>Zjgg1X!T2!ZSDz+1tB=L$_2i{|BnUE-( zAn!4fyeADUQ}=V{lu|?z@e538-5P!JZLKWdvymb3aOd0H2IW^CaFowvhSUotQ|(X8 zAsncI_n$OVn)s^5Pwi$hlMx=_mZ{&aapXh&9+Ro_=?0Je20gL={_p_dfmk?ue(>rO zk+Z^h>;K> z3D_MV5U9zN_@^*XP@EsN^1LiRKIFbXpEd8#x2lVzx5`$w6cx4YZ@8#@o+h~Zo?Y}JV{I{{s zIGTbfUH)>ly9brck zZG@_-Z`W@#_|Jpo@EdfO84(~T{*VMDbT>tl4MY9>toSP4uTBbu!CL)ptSb-p{7#wl z>c7|ie$2*2?61E)4X_=*s99#WbNe&$+pG7fi=9XL|KWXV@sBi3bNn4!f4%FUp8Peh z{T7LW&T4(-dq^KCv0wQ9i0uGs%S72X%2=eTZ21A#{_q(7=a?Fc{Ggt6!O!^58*Vl`5sv5sRn2J zQ`$oG#p^gC{K{9^tzzQ*^bTVh7$b&F^pd7bY=9E^xf*R9J3ms8E001iKfO#6L$_?89yMX^;REBnB|_=@=bVUjD)A1xPrj6Ui4-uBek+f_ut{>Y2{ z2Jd&0-QG`_=J@+YKHyJXz^1$-tYQK$U;aq%5k5Z|!o7dXN~ne6uCulZ-_sm_z3la~CD z6r%wmGhyv|Wr24mok?(5pU35*6qQg5&aHlxyHnlzj0~n+N1$E?5gq@`%fAGE&wD)E z3Xk*sL&hUs5!e_MRJ}LfGxN@uX0Ei?;~YHx3XLD*LKI5e1RnY2*Hu8vvB!skOT>TS zGWVPEt~Zw(X>bu#SQLUIs-p2lAvO33njQVh_tA~UU&{P~#>jci`!`Q&i|p^;kstAw z`xU2$8d%_cIm(CVUL@N9u1C7+`5^^YK0NeRWAUQ7n8X}aE&017#cP%hatb zDXV?+i`r+cdegn<`wGC-(ck>}MURKP|8nu)Yo8Wxo8n$CI~P4KenPSIe&>KUk;9`qXwG^7PH{N6-IM>%4gK0?~OIYs8a1_fPQN zUhq>#A@F$Jj23l_S|b%@r3j%#JekjCvRZ=sUdNMNeZ=<+mTM?jp1Shq)34(4Vcu`? z$%hM{uY8WzbE;?k>z330ohL4e$Nojvc9m#@Y2pv%j=Y&!-}o<}3P_myy$ZcpqY1~f zUe^xOfhp)xj?oyeNALov*z*jc9xxVS4YS4w7<=BgwSYbM@_&d+v^;z3*H>e|9Qu0g zh1MU40c^ALzQQKVCVIvZ=5p>_u#yPn$CC@q$Nv63_7MaL<;4R$<+i?qSFZf$!=pTa zVw_L#&+lW(`hv_6jQ#de^V>^5sb55Y483US_1rEmTh@Z&dE=My$oExq?0uChFaG$h zd|#C@$}|5#%Wl5DcM`+MdXWLMmsPjlU}QwZqb>>m8e+ou?%i6LtK9IX6W_f~@zgmj7d5?|M?p)>{J z>vmaAeBETKt3DS-Gy!{j&rP$ZN#g5vGfqof&WO8Rrj}{*g09x9XIW?Qx>^Wk&i*Lq z5B*8-`?_MwTzR$U3n`~OV?Ov`v5Y3G9$F>1&*?%5>j{b{19`4l9{xsza^Qrvpi&-##ed4t5rTwTXD38VV z8}1Z*_-=FY{f0kjx#cqlf(lYW~_cVIEM)-E!di)Xt5xs%C;tRJJnw zC9$jg@rQH9MLvbEzo+vnNEY=l zy7t`?{YjlJ=ICK-`SZvx(aQ6G#Qu?FP)G=8kMcQ^wkl8l=OKOtn%P?*mChCjf@EpL zWLhLxc0i;_?*l9a!Y!aqD>wurQrV16!KD)tmCF_0l*bS`Ua(G#h_G;;&mY(P@%mFk zaGprxm5;wOz9QdOWVyf+8j#ewYnm^VAmIc@r0fqE=C1Eed&j?ZzTcY`7m?d_2qs`x zC^-S@WJt2qkfauAGI)RqP@2GHqOukwsSl3O*>MCJxm(nv_6B{>pv4>Kaz3W(`p5J1 zen+!m3or*6F>T4GIwgEmnZl@;*NGH(RwiYXRCg@7;+0?zf~B&1)r+}B2dgnt$-a2L ze*f>nXYs}=dYJLH4o*w)wiFW);8;>}?0B0^Fws9ygwnwMJTWm4T-yV!M%hHZMxnHU1ymtZ)BM|Rj`ARGPGv5UxPw`c_fQVuJ(NTLdX)ND8>$pE3mW7X2<}x>H!FOn6@(>Z z{v-h;1lzdS{cTZylL9P0is(xfaDmKV3t8_6u$wHjvI`0fC5AbQS9cnZC#`;rfjRpF zM-ep732uX?S#lxIB+vpk^vwv_5Zf&Q9z0+xyc#7RtbmPWAyC}OSW^M}fT zTbjnr7&A7*Kh8G1%3ksfc)52yE&d!;iNipOq45|J*PTxak|@ZXzeo@150ycS%1+a7 z5^0L_i_I4R!F^?`8bb8*@xV~>=ZCtDQ@0v^os1K+7mgU&o+g-H*$nK!Db6HNDD8ku z)iLsx2MfG^M4$FN@&7sNfGwxWgEPsyhw8%4{9@*FeLjx>w&P%BQqEm}QOAe{{_Bz? zc($PYJM$wP_PVvGm%IOfHo5we%Xv;6tLp+VJ;a^5TasKMXIv zqWzMe(%Th}G)=8E`z4?f_DlZ40owZ|3r)nuw_oyKKm2F+OD^Cqspt8lRpb-xljaA{ zQ;ELvXJeGuOB5u*sI>Z(HdviFkkyIZusy{9Nr<^qy{;cvF@=^XRVg;p!ZYk*O$X|~ zqh+B(TiK3LNy)E|JQZA0Aw`H=jMr0QOCUP7GF=~86I^1xMAsp|m%!~6n$CIbZ7l5B z?MYN>h^zsWhR9QnWv{m3eX1*_gE2YpjFG6m(uLT;4s{gwkg(Rhg(*F4iHa%Jjdl(+ zeePFIBz37_Xr4I;@NH9Ok0&z{v#Mm867)4f_XXX7{^$i=u6~JqqG1OQs1N+c>7RD8 zO;jQM3OV}4^_YyWfV_MC{SqP}b$W!Sp4$=iK#M;yEmGgMKVq?=Ms=A$bTAl<-#v@* zw6+YC7Qz%@;xY&IKmh(QSe-sHO&@z=I%CfCb&Yy9{;TMxVgu6vk%rVj9wRExp4#g( zGd{JFxKfwVrCCQC3D@x`$6gm%&)D#&>vip6b*D3Sdp#HydOP+R!;sJ$Y>Ci|-_|iQ zlR#VhST|-Mvmc@P<>kkpa2Tf;eKkIa&eU|tSr>%zwUb$dA0GUB84oFU#=|LeJlSxq_|yiptYnsg|5=UnF|ONzGkm5ZpaEpqk^rsozW7Exvsra4dPN+EE)jn%&aPr%-Bp}jg#M@ z-tWiCbmygrfgadCqM}=-)U&KnLh&|hSf@;>pRz2`Hjhvd`dcHwWXr*BpX89>86?#x zjTWpGmr@Rpbac&vzb;=h_widFi8eer+8k|lii3~xG;C~<8G}01!CkTh zci3^DTBichx^xm_LEmUpf-#lQM~{uM3BW+fhj6TbzT^ek*9-%1)Sm2nm8Z|OnwA2g z6%e>a6a4Gi%he+qg5&|hfrQXWwEPe-ut;A&pR%5Rx!LvN0GUt(lPo zGn&>6Ch%(u0SA#mPnV9tMXNswS-{!Ggx)WFvc`VFahIA zfMh&2RX?J8Ib>=^8&Yc|U~QJ9ZMxA4sT_D(ovHh&ML+e>nI`m8tM+C;STA#Bq>ght zt-#12?ZPVFgJm^onB&uBX(+*?CN)>&JT^j;sYACH5=qu-50iey5M>GDnK8W(#m^;i zg?5l&+$MRjcqPE%8v>QCA^z=yTfX&AmCSAQFY0PkS@4E)wbo+&qIDBeg?X<;Z@{V_ z>r6c!2_T4c%VYqpXcid(Lb$(|RS(C|slHu=iVpe)uRp==;9*q8FGhRdZ&r6o9;Bv5 z;YXzL)%|!f8fb@H1K?@4v3S@3vw}C^3>ul6ZLsPiFYreE>kXNPzGd~1=ba49c9Qd( z;Ny`Of{#}|zxK_tK!->ienRT;%HOPgvrqh45H=oJheQ4FVp`9rSbFH#%ip{^8ho@X z5m^^qb>8&vSGB)#%CpE=8y(fI?j>0Snu?DBzEi{+P44roi%N zJnf)gp+H@k{>sz{7VG(~3p~Lz-j4lRY2!l#96}pi1;3|97h~1%QP16ZVaJc2kr8OC zsiGrm(rdUAptjfKZAHV*HTy8bbkO z+A~g37EQ1;g?P;oM02nvBWaY@rZA{;D0p-<$`pSO7h0A!)K1ghTS~FF65Fy#)sXhb zovLV3A_O9#DEv#M7rM#nCo&Qebg4_wr0FxHPGz6^2T*L*rPXN3WSiw|<7fWv8c%YB zV&WO(F`8_iK^~}c^dPlpDD_()mOoJX*Es{VCF#MO>ds&xH8R*Hcd!!wkOftfJJ=SK z!+OE$PU@qbMz?>SFt-@0`GlKmgQ>T;&rt^kSl7Re@Vh-(G9`| z-uGQ?-D{n7@R;|@-h1P}G##O^hokx`Czm=eq{oQYszXs~Bm=d0@2?4}gC4pjg`hL) z_JFxvXQ2ud!e@^wU=P4e*?%DK@V!w^3i@;dj5K6(Kb-*q6RR9jJLwEEmNf<`OV1+^ zE$wDtwnaEMjeUtub&i&@EGDlm62wGyDu7D<`UCWdSASAh^9d#_y)po4=w%M09Kf(8 zDnE(71j(D&wWCjr-0bU^s<}`pMGb{>RDsDZfn1q0#3M`WuR*rYN%@~_tGnNuc z#~QA7Ri(6}oxqIAG7W)e_2sceO1O6^j|}Z&8G~?tti1c#PJ#((^rr z{9dl#wzhuQng2C?!2`r~I9+(ws?PZhBY&Rp&|YNi_>g)9?@@sFX)rr&m%Kni%~(Z(!|GIqJuj4?W{H6TxBY_rhiWVhdI^7Jx-Q^(PmDuX~(AzVWsOMD}|U1k(CY$CL$<|h7=l;2jrLNSygxwH1Yk`7Rx3bh zuf$f=Yqhsw1N)`wbvR7*k^2NcZh2$qs5TKTtD74l_n}4WNx?N8>SW@p7qVI~5_(Zf z`^3$~?SQ8m?P)S;6zReouU1c8D%g|x)OH2YFrc2hGFbkKMqyT|W;HR|ZEpWj}4 z!}Sh`Yrn4nwn@;4&8MQdcfW(5A;4z?C_sLHnW&yr4+C$so*@{$C7Rl8QLV0J5Ff63s@68hm5FLR`3s}_&;NGrMpDQQ`3C@tu$ z#R}d$T1tQp3>QS8Mg4$)$6{w+e;D2VD2f);uFS!}M^mt_rWNg1N&D*7;F^gqfPKrc zjm;>FN)U{RxJX-(9CgG~3`*!%n38yJcqb%hk-yj1OeKF&@IEa0!%@@CePU`bY)^L!yOM?QJ7 z{TV0x>MOV5iMJKO{tPJ17=I+2XrUykJCNb%uf!lRYpe;g=wTGqbJocQ*E}1qXLV^< z%e&y3q!#~N`)%-%L-wu}b?vpmM|`%Lu0-`GY8Y2;PW08UFE+eH1-97=(kq;6jNSPH zMyR`Lsy$)2=O^n^c8mJRN7}elV}$tH&$l>2iJa!l*UtP99Ry8i5T4oxYJZ_3GQe5s^p#0=r!u^Jcs921_tCdIKHHxObH+Q#@yE*Z>ht%8 zcO6xuKLKQpfTrJV27QrcMurE zP&(8(g|4KJ6pxq7TWK8M2cVwvENzC-g>j&DepIo z#X&-MzjKMe!PG(FIuAcZPl7$l)U)5o_YoX3o3r2fBb4-dzq48Q1>S%^z1{Epn6s-R zfJNm)0uM4ishcYg-uY-3e4@G+@YDr@EZ&!4x`qA?e6^Bwu}1vL_8XnP?eVzwP3$S? zD9bG@mF|(gVVcc;<6eJt-x`LIExO;h<8@4K*w0P zf@UTrTYJ*?Hg#iYHkmzsZG{hIcd?(QR;B{JPU zmwx*D5E$n_YhQ1ELkv`sGvUA9zJ}S`S7Bd2{k|sf8TSeLEw--y|72f(L1JyeUUEMF zy4%+$a9+w2Bim+Q@%>iEo`An2d1_7Mz^nh-UXcG^2m5M|$7|pCzG*T0mSfMg8_;7s zt`PhopB1;CTd?2Djh~zCy}#@5gMP1C$vKb9{=^O!GKl5;PBqPVZ`ZGEUZ#IrxXfO8 z@wbKB&6jGi7%N!>{~B@T%k&%z_ax81iBH@pZldkp?0tfmOu9FTi5t}|r;1l5tH)YE z@$I+munZwIgFY7w?)q8$4V$0b>tc-JsMBQJD%xHvkr%*I7r=j#{X=Df2l`M_PQ2If zBU-m;k@M9~@A?G$F*)n$_J|^`=#wkEcUQw@!|#}%f*d@l3?3aXdzE(Qvg)OA7`XZH zoxSLT2koqA&&GUb46XvX8zO4^K)vkqdip0Dxxa3A?uQ7+273GoXq zIOKz%PL4mo`eXC!=ggM{%H{h)UVB1$X-{_Jub4e{?0K)|R~wcc|1t8Is2JKi__qIp z>A}R~gdg~1Q(d~0x^7;&aP7N`-?ey&!$&{Rqnz`QXMNDAPP_v3c)s4R`)~L-8a#0A$H7TS-gMySz4c3ou_SI|$B;zzA@qgc{+1)M zb}pY;%IAZme{6zn0dP6%X~0M10A>LJG1t(I@cGDW9_myhfj=_ktwI*E(~pDSE(;#A zHh80U&M7{zxs*ukr}9PE0LChBHmY%GT^}2cHbObm2@W?8LRLc~3pQ;CKK?9eBD=V? z>Tb}!cLWQewHep0xOEA}0uF$=o^kP!*?p0!v(XL5!v~~g9|td5tDZ+@a6|`Kau7~Z z;k5Z@$DwS8moQg-9K3KX^E;x0^`W8IOhVT$d-7I|x)#s+-A&(M%UBb?lirP8Aa9Xc z^E{h?gSOuNQD-z|!r;AeD{{X8Tdy({PW|4V`K&CIbLb1~0!{Q;;kve|=o4%aH_a$M zKgDxU9eZq7eMx2eV6i!0%nW(?lQLYw3W-K}hDl^rNZPcU^OL%7PT0CR?WVcYZ-~-n zG;%zNM*YU9hVqbXg^hvvIGtl8;FZh*QgbDZ$$O~GzmCrc&|fW7(I(;vejnJjWb4&I zx&vtvFU!d0mO(?PA+NR)*5Lw6UT39=XI6!D=N$lZPnC*hbdhE?fPrPKRO;5kQ!0bO z3`pZ?Qmwi<+NjT6$J_YAtePPBtl&MWAtX9+rJ5vFar}28H%Mu^>G0`K@c#9fg5Rg) z{0Dyt=WY3|qm{4(#(^;_tep7+Q%cTr)OjDiUS3N#@3fmBA_Kzu&2+pWUkL{ZPT9GO zDHV~9^^taTgu`0E(NZan+&^=5Y$pZD$!JZm!`CPLvu+ z$J@B=k>!8~URN&%LGXP>)UZqIF|ZCJiTeFv2*SyN56*{3Dw<~MuMn+EhrkaQz)>o7TFd#UK?fAUw2q2KzlUM**+hK2xM;=gjVX&ERm=gUxPV@QF#p{}o zE#7%EzFY`S+3Qd82R;n`<^3t1nGheZP}RDIYUo{DvJI3^Z4xeT0C(=H>q$u=mOTw z!%xE}J^lN~r{R=|2AB`eOaBug1qSIt{+YWzABx4Tv!mV+`G~YmsoQmPba*^9iYF56$LRx$wiLmoWz-&$K!6*-?Cp z0ZVQ*5hfL#z|-~O=g7Z$j@sS>Kg9nPpH``fN29I|mhgz5{+`Nr7eL@<*JLN@kEuM& z$K3U2j{IqtgWtY)@u4oZu2w%t9I{&V5eGYm9(lYI)q$v#HB^3t&tul-e=jSa{-g;vo+HVMC;#C~K$g&xj zta#W#v2wiG9kN$L`Sb$43yfdOg}q+fO8m`a9}jKr4j ziX!q2*(NHGLY_*l?ohBMq-KTB-atQSOQ>`Bw|^*0;tP7!mxI5i7wTibiYMJLrIJ;g zpNh~6@Xh*F>WhA)&`z22!}z!Z!f&f^XbqVuPBLiFi4UEZ179@_?=K?1Q|)t>D2piP z5|o(uW-sXlItcR%*t?L>PtR{fzhC5`w^LuuuIYLH=pFy6q<>qcdFB^K1~H4vkwF}m zgHf|GBXI#gL2JalJoDfZeXtOI%{h3HhBJ)q7<8%$`q(gdgLeFm=M5%C#=t>Vy?Z#| z-b<5gm)FJR37q*(muH#yed!x4c>hz3mjcz};tqb6EWjc!2kRO6<7}Mbyv!HNI{EZ6 zpVp}-0gjLBaM5d$Z=qYWCi#0b{`ctGzss8BIQR?pnk31$r~Bjgx3uTgk-5vpuCjO7 zJ!!B@y4XEQe3CYHNj|lzeGGQ34tDnju5 zlOmK$I9a^K9o4G^6`Iw^lDXg3#S|(F!GU3VR z46^EeMEnGX*fungm$YEx%2){>`y!^A_Ta08MF|>a#|!!$jc!Wy@qj*=pf%VI9cnRW zcT>bKbFVwZ4s|!{^7F$nP|na%kXZ_PcBpFw%gUu18EJ1Ll{v$0z=Bp3;GaliFi6n+ z7<-UFT1r}7K=o2%Pu&3?Fsw3<)VNg4FhJlbS-h?mJ#)g;`$M+<#BZ4OvA;Edsg;Jr zoNR>O{ZT-1KR&*;wE~R~=!hqAiwrCJQkqqPHLMaHm7eUYdiW}mE7zZ~zkee3k8?Zh z%rw@M_$Ilf1UloEr%Aq!Th`Sm2!|Xt=j>3$A`uRJk63qunS#rUJpVN0+FSHT#W3+o zjecJJaBh834W(8diqZT1ySrxz;-2s2budS}0rq^Y`^S7^&zI=e^^e5A1IzeV=zESV z=UK5}TQXXgJq}~c@&9_|Kj!)m4nE>+_aj$@M>f9YIpZgPZUb(G_=BJjl@B68Gm*oe zrLgQaf80P^DTKNPTTJbo9M zl-t#8rn&L><*1q)j~{@bgOTGe6OSK_HIt#XnvIAwsrGe^$3F*B!28-_JpNqmB4B!y zZwIPhVCNZ;*g;~BB)WM7U*3r}_Km_y)Jiq{j)-M8(&unC`&r4&;a3oe=&_0!x2_(qM9zbmtua z@%y1vG#w!9{*1^k=FHr%`;$`58+MluRQ^ctSz)66I_&;4scMJaX`vjJ_ z{=))*ciih9{Jn=sl05%f`y=!>zlwPFomf1=mKZlItGF-fuJX7Fpc~@Ko4vkZ{|VO3 z!!PXkm;QM6wL1O{fcfye^w}2AraKJZ)ECcA3=w)`A(T%);fL5s|9Z^jhrl%Jojdmf zEdP4vp$j2!vz>VMt9&%!+LN{-KKDNu&t7yUrep8-Ex!7A@V0oitXX?l@8+&YD{}0C zyI;d7Ls~BaIw0!*3**_dGmwAAuo2JZ=|j2q#j|eaTCAEk3YxI zpjiC*FK>F5MNa(ro-P2S2l~~-pRWKo_~oAX^J;WkAj10;=3m=6x8u)GZIr=z;?Mv1 zYU9t(=f$7*E{xsa0@#h;TbKbo@x`APoo7gBf_7v}Zv6Q}?D~nbq&+76PNF-16p25V z)5Aj?cljK{^8)ebd!Uy!jm+KDj0E+!{@n`xY_sr&S{QgL}YoAPf z_-xiI5FZ{Z`32*T6)ZCG;d691u)P1m`0#(>lue$$^xd-saZh}>nK@r&eAsL6;cn;o z+a`WoX#V(D#(%@|<#`@!Q}*|4i_zc1?=8iD_qSX&y){9>GR6dd2fds5Fd?6S@HAAKl+ikeiKOAq!tSdnysyjk1mqV zip59Imr{Kg@ep>qweit!5I|mhbcld;G8lsfHYQHK=c zqtEt-zT}?w9fXNjE#MvzPwyN%LNrB`^DByvK7n9=Pxk);;+Ho+RJrkoe-RQPJeDprdzqWI3$4BpbMF#ipjE`=9 zt{`@S0@w}5F*lID1KQhx)IFa&=>(unC%$NW^j2)>inF9Wrmc*RF1pn4{L92gOSzX^ zC_Z`up>Az_wDRX@w59lH*A(L0tN7@_glFQTfn`LfKzy|GXDry-^SLjwl>zZ~)cMB>;-2_uJ#)US zzf|b_?Ek6w=x5xJhxWcGssDWJ-Pn(@mwj3FA?x%IAJye{e6-@QFBu;#aNZm59DRg$ zWj|D}Hk17#An>VhX7|(wm?1Alq_OL#uHt@>IP7p0^!fG1an*z2HnjZZ3!Ic2_pBtN zFF{tcakmTJ{GwaFxWfYw=6r7BxGPydsq6n<*FRs^AIbX5L6w~P(^)^I>t}TRvvmE> zaRy7x%&D&sW$sqD^3sOO!0PSp^loM6Ts>Jxs1g$n{9Mj*;uP!os?A=jC5yv!e)A9B4}uFK_mw_NX)>-Xi_B-bCv^#Qp)DA#7WJ|x#i#lO$U9Mrd?kCrwa@}99 zBjkFZTo01#A#yF3>tS*|Las;RYFVLu12|zB*uEpMA@E=y>#mXt;L#lzczvMihXL!w z0N#d>a_e}@I)2!d)(jlEL-~z?;XD0qe{0mw=>ydr-Tt3+P>psg$+6P-V?YGNo`&oAmc{}iv zVb~K#k$P0 zF6;k!z^a~xqn(|BSvr4vD`HuZ(#x$=kCl2MiyyGB50pL{uo?qbXjpv*m6jV&0=w@% z{g29d4wW99^L%#c!kp)!1CGvlK5&Oh=NWvku<1XvG-4fqm(PfM-@)S-IOTi}?Jy$e zd5;|q^*)zQ82dA4tgIg%Fxp$5_xyE-KXQi?bH*3iz`1|F@%g^47hce)mF+PteotcBfmT)|_^jx?8sKEYv^?$Zc;D9^& z{Gm_asXid+4JD;3N~}Z)K5e$Pr1bYCf%PTW*2$$)sMM9)?!ZnKos_%#l)l)6+vq3b(a|6OX~|F%9G`&n!I-3I3raJmB_>v~kWK5#95LE|5Ri;b@B-9JaS zOOM{G-q9uEyb0^HP1_yzQa`KNfchVYh2c!GE{L3U)){9_4o_b+ecDy?!ZR+Ob;a~c zo!rysUOGKIXYRuAjJefwF8x;6DVQ;L{%n8cORMJ{=FdBE=Bz6&4bPiDciQv?3((1| zh0`w$Up;H#%<%O2^XJYFPeTVDu({Q*zIZ`+;q>`e&YE*En_Y5Ec)_g8=3IP*x53;w z(@=;Cv*ykzi0Q;Rv**mcdQN!W#q$?>8rsiG= zjFXg_J8$}&@Qf?wULBqRQiiPo)*Os+oHcFkl~-Oo=hATw2`gtUSTJkOWgvkRfW-3w zK$GL7$O#k2PYzdIJbwWOZgMrf$SAT^i1BbLGY4`TVeHdOjiE%_DF|IzQ)O| zpG*Fnx>Kyel?i8x<#ynVLl;ORdjxqMpAtO|JX zJP$Vk8N=XP@sH0rfAILSgHe}nx$cKL2#|)5E`@IuMp}NfWj%tlVytETn)wx$^%~Nq zlP&8Lq%EgeR^K53D}_!5A#FOtvPK|H1B)?8Lldz|LOS(a%bJ9=3corr6KUN>*4Z|Z_gw*;E^p7-KgZ`1${wMlJ+HxKGN1Cif z|42hi&_B{9qzY+O+_E+!4L5>b!!VAU(JxZ#d+3+xt>~BOZRi(i>UQ+Y=R43Z(&U}! z7wJ-b$!R&#>|N*=Y3<$Um*w9Fy^)500(v8@c-XQwA}xOe{US}bSl0IYqh8Xo_D0(B zv}IKxwVtu8sYsjJ(GSw89q0#X`R~vVpI^gxkk-CsS!txncfm)bReuE^hXap~Eo)b# zEq}MHgOD!$!m=umR+Zr&X{bM7AWiKUuofY0*(G4zgmm6F1J=Drv72RWZ{1==wVVZj zp4HR`B8sUmw4D`5_5+?}R-g*$3lNGkys zK6&lwNFkd`&p^Agke+P?S|FR*iGT;0OrK{3Y9|5NZ{r!VnPPfA^3S&dX~<~PMOGj= z73CMB-6d#u3F<>etxHkwQq*S(SxrwzeaL9jEYzQk@+(mPO4Pp+ctJ*&&cV3m077~6};e+g}0v8?1P7zgC5 z=`HmCC&0>JobOqIsth^?T#i5nlxlmm`VJF zYIip2E+)lEFZ_jSA@BoFzKEq-OHqVoAjF|-N&T+nlxn-nUBzfkP~CdHe(@(h)e^dOTSY|=wadZDeYd$D}YN_zTsZ zYtr*fI?1FkDfkQ3!lX!gfk`hkDNGFhLbVr}bc#v;UwdZ)*jQEW@!OeU6(NFx$QD4> zhnRG)YlfKsof&8H+A4_4ZJMStVX~2=v*3GJ7Zd@tD*8YXEAo_wigiJ8ui^p-Sb6G0 zaj75(;!+iNtMB{n_rJ-xTbd?mdpiSqDZiY1&wjph&Ue0Z&LIBA@plM+6Zkufze)TZ z!QZX;yA6L+_UvK=?#^lcv|9&C| zp2&eGa^Q&^cp?X$$blzv;E5b~A_tzxft8*EK}rD6!`KSqQu^CMkNM9&=6}#%nQO}r z#($H-N#o<;@elvkD)M6$O@ilWA~;8rr#YH%%w0>*z4Saz&#^7q932MTLdVv({ED9E ztkGI_&~p<#KceT@eYCkjdN%B*%>@t8=Kgu0Hh034wYmQYXmht7rp=vsIJrGto4eo{ z+T6r3+T86yZSM3FwYk=l==W2!xvNj7-=0Mr(pt`H)mnDZb7-4J3R_a5v}-Ltq^H!O zwd_j@un*D`>e5=iN>6vU)^a^P2lZ$zSJLw*dWN5)wS1qRf#+&1cRg2|>wF%iYI9HDrp^6r8~I5JvY*g%(1rBf zg<8u6^t_86ZM)WTAw5^q^QY~Uw`s~NQldrD+Nu)$9jE8h^xQ|!8d9pAK+p3s+Ny2z zjL~xgJ$KS`A3YD#^Lu($WwliY)AI~^PN(NN^lYH#CG?EQj91h3^~sU=Xu8xlnoVxX zCF1EM{r2MQ&Qx|-?@Ja(Gt3usrHb)lB9%%3iurgVX+XEGr;4TB`D7}?Zkxkx>&i9{WA{wRNdgAFcC6<;I_=jk;f2~gcH=Nq@@l>IAKpzMb_pj3jLVEvtNq`cyOm0VV z0a4>159+#cPDhv=r^z+#k|gQ^QfC%3^4hxjUQm26>PKiao4RN; zspm_D-nF_>_MN)EEneKF^Fp5yTd5LMlgdA%Cdm)9YDXS$7R~5vY0HXHJMyCr9$MiV?fFujlwU9 zHk$I@k<_w~THNHeqLP;4LusjwUHD~jYAM%G3Uf4@D-0(K$zeSc&l{~GS?Fbv)T7fI z?c8n{jr!c3yl6C@)=N40Wz$fYDk%Fy4b19~@gltGkLn~v&6hi<*7tC&XZb#y(+f!> z2yxyaq6u|HZSwkLN}uePG?t`L#lMkB(a`F2hvujvZ)fQ%$w&~##FzHR;I3a#q+fHW>`_> zH{e$)TTB*8QC@dwIKz7Kqomv)iYK;58~2RX8%ST)VV&#OlU=4qnGE^Y-nf7Eb&k4L zC1gR(nz}Yg9dEuF8Xa+88jH5`zAG;J3)SMP=~HC|$EYwhePmB9KBDCk+98(lh-7Cm znJpD|bI$j-=|e6tt^WP`*79PM8q-|WK-==8C2PGyT&sW9F_NZQTSs`-M7pH0dbs%9 zBY&%Zn=VF;wcX9o#CMk0t;|(a8YwGFs1A)J|Ioa zjM^3A{pZRW#*46qp_HO?*s_Js(VB)8Q46h6-b?GAGGboQ_0O4(6;TJB z(e{5mtZ5Kw_PVre?9##ZcXE$J9couS9qK|O;93*9%s#QpGR&@}6If{Yu0={&z>Dmi zdQ{1Y`Z}fN#m8UKX*f1ZX2@mMcCRsJH0oLh&o%4dxeKa;OP(xiPr1Sq;}p3~P7oV` zy2-p&$h@|N$~?C0bgw{dW(8_nSOsDa-KA2izM;R>lu1TR7cP@Lqif^<&qG?(=(Z=w z;8QF_Wn$8v$kFsznWeTDOSu%OSa>Q}ldw}KlpLFAETc|BI}(PSW+GZPO_hLQz-pW4 zcFLI{4VZOqCS6W1OEWT6BfTIS9&gR+eB_ROsurWS4C7(4)g-H^w2}!;k4Aa2rN>J; zDd~D`fvbwdrUuT-F=h3eUL?D1Js&S^>y_>>%F!UZu*FI`TZ2@Rp35eYd}Ydsj+sU% zT=^F*CY@3djC?O!==PuG7G8{v&lN36KO2-sy)x2pjnTi|Bk$o^4f!I$I&!6K(cMNW zFtR=-z3T8#s-)A|N=8Wf^ZCIxBgi^$rwn~G)uDvGm3MX|ALX1RlOOb(&D6e(7_`8_$E z_7Q+j(ppo`X4X!R?z_X7RCI8as-+q=D@a=VSlSS43y=m*u4PMNYy(7@Yg?1W4ceyS zv1VY?`S+A^*drvW?*39w`G`D2q7C%Y<`&Bq7Vg~mSNHuZhUgn7Myf6;7~`dZ zmo)NGS>js#>X|P)@VZ+Xhtn}52eLbPG@&PU#dYZalX`MjBAMrt{>m;TK8(<$q2$(7 zR;PVciEZXjG)S@jFj7dm_=BFt{L1Kd7`E=(rRQna6zwESr%Jo^9U=ZT6EAKr(1tbs z?_!A-1ogzW?X-U>#e*;9m#w4m!Z7_LaZIFhMf!x#SJdbyKB$rZa`gEeMorHoGl>lS zMt`YC)Hq-|T#^3L7B!8l3vE@>^qsViET57SXtWkxdzcRiTCI(R=wGuD+Gol3^L-l) z$*di~-|{F}Hnr8%c-29JF%nK`2d~zqX#3_Wj`e6MscVPj3rXJ6Wmue>fu&Y!Gv`n& z#y4_&PN08HQ{47x)w1p8hjOT1;}LpmO9utdo5px3$ZLv?`l(&j(pk!FPiAQ$ghn97 zVU7*^c}+`?nQ}fPGMzN`RW#~tO1rLQwKmbCtywd6DINZ{W{l3AT7?ag|5}aBk(aJn zvu6DDE&LLlXrtf#|OZDj!oL|%L<$sUAo$_lHjiW0w zBV*@|&o>P{zQ6xX#{RZHRmXQ2mGYyM$!k0|tNmvGR&DHnMoq1L@FW+zqn|!$&6?RC zaty}kcx8&st*cjJVgKwP{}=Wz4x+67!79q+sqa%JdlmNm2eoRyKB&>c{>C9Lg?-l{ z6oWT%o1Xjw7xwHgR%Bt{6Yzgwe>XtId>v=<)a$CW?Arsa+7APb7WO9(b1Cf49_G@? zard^IJD#+Mo`g-2a5imG{SX?}YI4JU5r^iAKxtzzPC52acLIegAXRGNkWgN4ZE7ScPbRJi;>4jcVUJQfXV}TeloV z{m%796`16Ik6mH(h1b%#L909#yYD^5eVzBdVEbx+D|;*dE2qB^@}`I7S*+H z9OIhbss+GZ$GGM=CF9?pp~7_&541ce z#V0GJ4;=5B2zBlAk>lNq&vP~NH^*zMxEPn>lozx3w9f`v1EW2DJhhQevFP9!XzxBQ zrv2uGn$}Ezd7`#jJ%C|3kE+q8_oYFG(I^(_oCfWdr_N`Mqs^X3d3l*3lHbfSW+6+f zpFX)V+4Wih{ldv4gxre4qAsjoEWa}*)uh~yliI<_|HWvbKKDCBeSyuQyb*i+InxvFN)2OU^Yi~H!W6@Fj z9HnHIPKKlO{I4O<_&juZ-Luz8 z-)&#vdCRjLYcN+mi>mN7(qq5d>3rL>n%s|?Yhl{ur`J?N&G$VPg=p@%0nu#~9DHp%_)5q2* zC&p=0Yh)2X`x^VHeW0Z^Z0e>-s8z0CYFs=0x7BoBpLY2g5=!N>`L0{DS$pu=luMLP z7igaeW$0iwEGBGA#%Zx%n+&hfrpNZt)@b9eA?d7*8UKAF{af2d*FF`tM6#&e6VAj_ zS?#-FRyr27ABK6Qqo~dBYKS%!lz(Pc)89xiG}bcF5(TN4R| zVv%4hG|B%(|3pGl`-Y}hg+ddj%&ZE>MM}k3qVzE#@6pYXddG>WMG#H@Q z=+nq}OC&Z3?gu^dq6ce8h+?Cn$`WCxxhnlV=hBh2qIoSW<8N z7cqT7sTw3_{&;fD^qN7+m>4nrkRRuWQdFm&WOzeAR`rCuU?1RteBZ#QF$!AaeFZn`Li-6y~ix-f-#3j8bZ4ESogNQK>J4i*3Y z3D)Ss8V>J8bioR{2f^2aBjDeIC%|XZMJ)XOH279+cnW+tT|~p~+R^g;E5SkV&EPzE zm@cd_^7~kM|L|Vnz;VJq21meG&^g9N_~4Cnu?_PCcz?R!#_$h(2UrV=f1`Bq4ZBCc z$It~h%#$aI`_I9llZ5}9F2-T^L9iYZ=6m8eKc~RsRF9eGz*FE?|GT^&c&@mA9?bX4 z@%zX1iTgBo6wLLW-6z3=;HUP>`+P?jyPp7_1YZH30iQg8_o-d*`|aRK@Y&#L@I&A+ zY8U+epTQI0L+Iik&W|Z@2^@H#y#E6*-(AMvKlddFA3OsNMa2Ct;28MK^W^=Rwc>s$ zc!KIZ`}Zf)9sJ7k<$aCnIlHI9A@KLXN&svJuuzVX7H9*z<=W5F2kd^J zF76ZH*Mg_ObKq(4(4f4pQM=*q$H4*c^Wx$j0)G)a2;MRz?la)egEeY*>|b|6+=JlH zf(OAJ!{W~OCi44tnN01Hc`PaJe4iro!6U)}YNyN}2S>oiZx#1E_-)_`@Bm!^#pTQQ zQuFse2Is-+QsT}RU$Ofvcmn*63&nj3+`S$CksL7m1BbvPX>sR!AldzZjPMNjP2dR0 z1$KWwI0o*{B0TW*;92mAIdLB(xxwH68axJmaUS7=zXF~D2QNZ=z#jz%Nv^PehZn>> z0)90(4}KIp0Uj*M`%~Z_f`cS?*uTCK`~%+$j)Av~ihCY>^bX-k@ZZ2QBzM@qZ9B!C z@6}}f1$Z2+?-KV3@Ezb8@Y>ztPWK)f-+u)hB)P->J^NyDkAU9;9t8gjJPAJYRq{T| zG5$US)<`Zf-v|zZkNXe!555M>_k!~KbKptvuK$$xr@^OQA{-z&#_zuu90Y$2oCk+r zE$@$mbub-gZ+w3>couvoI7o7k{XcaK@ddvhJP1DFHR4Xk;v4V30z3x35$aT;5qO# z`2M$vyEZ8PefI6b5%Ax^gW&t$A?{<~ORf^006+ho!js@t?-HH?-v`#>65h4{CGJ6R z*VV!i@V($c@XM|d_c5^cZsBq8uffycAH7H1XTfi|R#+R7@GpL^a0L7X@F4i6>%@Hw z{Id56kAvsHli)v0i2F47(f14U{lG1nrXBwQxPu=A&w{^n1KuB&_wW2~;Sf0eLE$`j z)rW+~!EXgmf=|Cu+^4}m25U+2f8u|{JqYf4^4755l8|2g42 zcoIAYe#z&>eF7Z&g76f0!xx1kG!EkQg}x*_2>vU04E)P4i~A(_hf~5c;Hj?&2WT9{ z{(a-C!V&OYw+WAdZ~U6@1o*>W7oGwazacyWe(pDggWJXbV{R9Yf&T>_2S0d+xKDyF zzf*V`{Gx9O&wvlVOE{1g|7XD=@U3@?dklQuJ;HhLpTOhb*L_>uC&6b-3r~TM`Hrxb zk?;cd3J1a80EfVz{$Fv=gKzw<@HqGt-xHnyul~O96nG9i1OD^>i96pX&gIqi1K}C) zU%^^V-0%A#-UmN&zil}O07t-?hY&t^)5F4f zaOfAp)8Hc?5uOFFepEP65dZH14}!1xCHwqi zp`wJB|E+KgymnTY$N8MzeSarB2L1$i!sOqJ`;^Il5RR1O`|BQuf8fj?;U9STPr{Sn z3;rz3_t$gyXa7YwFe=>lS7Ew4+;D&8--O4&k-rO1fP4QTJOw^tPIw0V5IDF){JZ;~ z;!ZnZ4F7NWm+(0Fee^5K=SlFU7U5~|(^d)3fPW4S>=ggLwp!dn;J2?4j)A-O5zd2u z1Re+H_7(R@@Ui;|Pl2Ddzp%DT!aJDmuQ&P=@SWfgc8avA0e;fc zgr~rh;2Ch{aB&a3O1^*25yBzxpTQCE)YHX123~iha31^t@Hlw&GsJxgd?|Pu{FI}_ zeHQ#)u=XDkpBEf0?h){lj}eZ6e-F-se?<4SasE$(zjYk^2Y)^&9QaT1|H|Wq2f?p6 zK{yY7@rlBGAvNdk8P61+1ZyV=PlLY$o&{fdvbcvXk?+qxMK}h2_Nl^y;J<;#z=Nm3 zfAAl{+N;IC%TE{g2zbALgMZ+6gU7(L;0f^18S?%l_;&Ctc-^zaJvb)eeI7gk?mSc6 zr@)tj1Fu1TJzLx(;LE`=aG37notNeh@qj-u4`Ep9TL6 z9C(xXKlEI24}pIOj)BLYC+<_1%lliNFRWc5eEJK72f^P0PlLx_DDJc1jS=C%mGb@m zYlUOruYu8x!872Sz}i*f z-~KUqKLoxIJP5u6JPAJi-{C)a2s{nG1{{2+`2R0(44mwf@5jM6fhWNS_lx^9xC1;3 z-UZg)CH{X590C6woCmKT5dUVuemBj7X6m+xcX>%n8-{a-5Xli)0P z8vIf4;Cm#zKZ3`=T^Gpr<<#r-C52>b_d3>+Pl_s7BS0Z)SO0BhHae}~19K5!Bo0pAQB1a}U}`_tfUVC@6q z-?iW%_{4;~KL}2N^WcwxXTiZ?d4KE%@$YVM;J<~hNFu%;68;4^cBAmCM#Oy_{7>){ zc+*yV|3C8n=fLCO)!W2<8hj0S7JMf-c$0kpH*f@;Ny+yy@Yle3@KY}o_X+SYcn16> zaNxt@|13BHK4rUnKM78Qr@^;?wU5a62d3ry5cogAli+WHr@>Fj$ou)5<@?*g6X5S< z#eE8VWlne&d`(_B_%ZqZHt+=aeHV%QG&oYg_uyzzI4~*SYbD_r_!jUO_@krZJ_){L zhwwD`f}O%M;IDxr9~b}s3?2iw?Lv6Bi2E3L`qRSqnEV;xqj$^uq0b4Q4UU1Y1kZpU z0_Q(3@1JzBd_M)=0Gx8Gk zC%;~J8hj;K`?7?;&!yrX0LQ_>DRF-nI0oMM26;aZUiC)daqtb`DexheiTmVN#lIJV zXTWa+YqudjZ<6dE=4161S41CxXh%dMY zJOh3cIP^{N|ClS~{Xy`@!QcJXh&x5)b;@bkbi@K*33_=DgX z@WbH19pc}U-zxq^z@6YcH~}69{{lP#e(kt?KMg+YZNh`!692yo9tS`6c5$Bsf8-s) zGvM2<5)RxY-~Z1$g(KjBcL@)I6aOVV20ry_;VJMhz^td|_VnmA;vT$P_-pSLj(~4^ zk8lk9o@<5k;LLl4$HA|>PIwZ0-ur~7z$Z=!&wvkmzp!?Xg#QpY0RHmz;vNFu@B!fn z_>>!jW8jCudGLq+TinON{T~#b0{;v=4SvIi#9jNg#OL@Mg#+N*z*E!We#!rc`z-ja zH{t#7i2H^Q3rD~&`-pHJ{M?TUPk?8@Q{YE$7WWzOjUN*Z-YfpcCxv6+SA1M}4BYw& z;R*1epA?=1&w;1GcYI3RXThJkML6)k65fYCEgS@AJ|i3fpLeV9Ao#@33g^Lp29JZk z|2c7=0QY}hcoKZj7lfz5-vrNsGhY<<;CCf{hkZ#n2L3X541CU)#eE$7Fn9|5swspA zz6Bikp7?*rSHyh~TmVmiuL4hje+3SFU%o%}tMYva{84c1K5_peI1hgAZHNyz51s+P z4IKD^eE$e|5`6U6k6R;3K~--;aUM0Z)Lx1fBvP@(sinya7A| z-U-(3m-yTQ4ubCoN5C!L6#oXnSAex2$@lx+F76@l`@xY1#QnHC#61s=gJ&KT_u)Im zUHiFk@ms<{@N4f9j)6Z69tYn8o&;y^miMQ@r{5zy3w{(Fcu2zg@VDVVc#VW8lAoXTV?mp15njknj7xFPsNI2p$K&<^RNe z3jC4#@ckq5{i}Z<90K?K5dMMJ+%G&1{sDLjyz58eJ_|nL$MEk_@&6WZ41CE?;6M0` zp9)Wbr@^z}n`gv5_)GEc%AX03frAeSPk`SFo&ul$pt#R~Py4y>EcmbBz+>Y7?GK52 z2)zHp!c)H$_b@m(D}2N+#C;O{WAF_4jgN?X?052h>!ZSX@Oj{I@NvI{f8e{oQ{c-U z6ZaYL#$Unz-;4i$1kZp!@@sJq{6XB0{*7=1d?h#!F8x;AC%`YC6`lrv2ORjj_;=s$ z#61Ll?DxVk@IU_`JO+OMwflvCA@C^7daPS`z-iQAz?h)|FUxf4E!~ZHg z0scC82K+Ycn16ja3~<|+SBkp_{hVB^WfGa zgeSoFgQvjPKOO#qw;w62Jw^QQdWLWWJO>^Gf9WW39|xC?7M=p1b`1PGRQ&t*V}(QD zeUB5)gYO1UgRcvU`z*Noc;Ugr#J~RqkAW{cLEI<7lPBVP@SC409DJ&Lf8j~+4}9{; z!eiilP7$62-wd7spLZ(!dz$$7FK`5W?`iNKeEI3{58VB4!ZYCD8Nz|X#lQWZC7cJ} z4;}}9`b=@30FTqoQo|kqoC*mK9wq+0G%P#|KCM+ac(l0x7(5Psdz-jVf`{9Mr@=>c z2+x3j2G))d|8DLS_dIy0OPC@_EmqS`>=q7zFD5>i9LB(J15bi)0?&YN0|$;1|L$jA zL;DDh7ydO^J3(0M5%&Q2FmMojGWa9l9`Ie@P2eAab@1ch0(i}d65boYPY1snd@A^6 za5wm?;B&#>2cHlAC3qY7pWt2KL!Tq*y9|6X_-gQTz&C<7gKq^7fo})z0N)3`9Q+9Q zI`Ch>p8)UwOiBMYz)uJN5PT~5H{fpYs^?1l&jlY2J|BEKcpLZy;9cN8@MYi;@YUdp z!8d~60=^Y|J@|I;r@{Au?*u;r{t5UW;NOD-CrSGEeV(M}RPZyv-QY99=Yr1ypAUWs zcpLaa@GkHr;LE^o2VV{TAoxb`=fJmu?*ZQhegOO<@SniH0w4H%NzXsP$AS+!S<>4I zJ{o*BI0n7|JP6K$cY$9Ez6|^>@YUd(z_)|H1fBuk3w|8@FnG-=62HHJp9((s1(KdK zz$bts;7)K1ya7B2ekFJpxB$Kq{08u~;CD0cL;DE9t4IbO!h-PWJR;Jxqrmx~a26bS zn(!OJGbalF2t0n0aF{$X{Cf)C2T#NQpMfWi7I(@HdY|lJ&Jx~W@?pZ~fdgfe?-Ts8u5u>KJs45D~{jbzEXZy?kgNP zQuw<4gr}*~;QZTo0Nf7{e)K@$nL8xBXC4Gb|JeFu;ry?~{W%8SYzWz|*2rsc5(eW?M&fG z6?ZTw~%-)-Yn9oFxAY+SJM$8G#;8=uf=^{>sw z>ur3MjXz@JuiE(UHa?=u7M_h0Hon-#SJ?RdHvY1WAGh&o-PZ6UHqP1jQX9Y7##h<+ zX5n)C_=3&-+cuuD@tESu$A@l_3c?vy;(sLL+Po?K+^c+sl5%fHro+Igb20cg7b2L52&~q$3$I){?`S~My zeoW6#==muZ$LRSLJ-?>sH}w3Lo)gI5 zXVNoE|NT39eoxOI=y{x;KhpCjdQKwulj%8yo<9@+g`U6C!>6$RogO-qRhy&dRB}I! zp3~`RrKgRac6vJK>7=KNo^E=2=y?u3&!gx0^t_Os2t8}*Ig6fk^sJ{RO3&H!oI}sK z^z_oRfu7a$)Kj(x(05$EPoigUD&ruf_jr1^tWTt8G0OYj$lo*Qc@{lq((`P3LiEsa zWHr@==hAy-eRu)=_d@Fg4 z*wf};*TTLo&V?=H^P(NMM}E_Jd$|5Z09U{esAupIZuU4#kew{Y3Gxq)0|og<GW&HG?UpWxEL+U_o1pb%bY1YB!^dNJ}MhwoaXeCx8@jw;sxcj>VKeSLn* zKuBlP8gqTVmI1~>^TRtn6sf3xqSJ6}Vmz2!%G-~<#+Wr+9KC=tU-D#Gd&(7_7^lc> za)MZi>L&B77k)3KyxB)rA*NmrzEBU{rGV#U;tTNJGrC3&WJv0@sxr>JNR}IGO`@#Y zCCq%U^g`~(t|Y7J(WqDXv~; zD*?8LsU$s@P3n^Tv%0g%aCayi3iYDni<;MhFH$~uUM%hm&*S25kBqe3I9{`7HROxs zV)BZ|%Boq@)g$J8(e7QBtB{~LwCCfgLhr`@=3Yj=v?*45wLLkV_72Y{X{|}ro3+#X zHgghc_FLOMt5LIpT=EcW3vfZ#xa+#}LUWeem21_Dnr>WJuFHMpx?EST>+6#v@zHdt zZ#0|SluN|ZNt&;`IJ+~I9oGAj#nB9N#p=4IJh%7gU5Q*KA1@@MnM`bBBBOfPnKr`g z87(IDk$56miuP^p59zI`;i&prcPdw;{;!zq+?p)WC(#{-Ykw&mPUp6!5_+;w$Q9PL zM#+EEr8S+*ZY|L@@9eZbT>hjrG!!4!(5918o8*5sxvQk- z3#kmH455k>#gyVyEEQ7Ot-T3D$S1bN3wo&#_guiDiA^e-Dsc*$=UK+gjRxWs&*zib zVI^l9@GF%qCJUt~SA&K#tfxFEiZ<>U6~7^R8jh9eQHBS`?dq_szR|Fw+SOCH;{DFl zwTVX~sdRE^bi}=uM%!~#_FVKAsu@$$r%Hn|Dojlu*;9*;Qq+`^@r*|#JB!I|sj!=K zzQ0W$a*1j6@7K4MWrG^iT-89^@}nhdy+d59f7UUQrlEWt;aL;ulE&)c;&YGut^RGg z7)>bwwkJrUigcD;C+&$G<%Rl2v6M?ujbp)ASBDXeWz-Nm5~bbwB$+dny9Egtorf(^ z<-VegO0$?OQNJ-flq%_Q>d|;6lNwGI^g^<uYs2|@=-ZYtbWa#9eCX>jl*fWag5TM-N}8Rp4b)F<7plul#+UKS0b4& zrE=M_ODVZ4RWfNPxiyv5>CMD8^C#-ItUrttk}m$BE|^~#6@y{xu3dUQSt#bR@pP)R zTi+4lUo-LI_5ux-_`i!Ko{}fFZKttIDsBB`>u9_%Og~8+6X{%$J{ca(w`%lLGO;7i ze>wUixx#iDnw$W^^Kvg<9 zOi|1C*5Brg2^4+a&WrWEtgYouOx?+gM&oI{lrw*6*EtMx#@MOTq>=Pl(dfExMI~Tq zR$;%yaQ))Pusk{Qbv`yBmP?SAHWh}ibF^u3^~~3%>NCCDYF*v6i+AQO-Makilqs1* zo;2iXYM0`lWe!^37^Neb$(MF3eyYQTrj}M^qN9XnXn)mypst*j(Tw7)nuz-HCBI4W zPMw%FHBaVkC+;d>@0!}w*mW3#5hWiaTTy?T8dMt%avTB4NHCkMIP}IE7>!4xLo%2r z1^UiHJg=u{yxKcJ{eJ&?nc$Tj60? zB}*-_Vk5^&)-;szeBL9B>M5_YMYxDXOs;k$6TFGUJ)hf$I<7Mjm0Z=r(Lvx#k-`8msnH=*_ciwQEhyojWk(iuU(f zv`Ky$RaX%}>0%{=-KWNswaRLkv0sVwzk1lFOBv9~j)tU7kM5>aps5N?LI%S0hSDKg z0%t$NHWh4?Rn3l|5{6jo)NL9{TZCM7x=}UAXzXm(Mv)3ojZ`~H>-2n?;vO+G54x

zd<@nY}fijffiq>exn# zXXA6{&f@5hb@H6CsNm*Jb=GSvSyy4zoM@wqw5?>D({N{zy3Pt*>g#5j707Z*G~TZi z=9d0$UrzB-yJ%${njRxZ$}6trmT$`=Uv+3|^ve-0C&AWd*bEYo%Hld_7i!VlJS|rMDT5k2Ci_=bxmlwC zP_@v#n^GYfd|TBG7D?WaGI1F+x7`0amA4{Et(G>6CrN2_#3D+Y8d8{MamLZJ*qLBh zC@5ll`2**!sVkK&CASu6?cOlok7rB0Lz{-Ut|>yHdzi*5@oYjVuU>3gTnxJpQp-|os3fheP1=W&W}`yt z>(bm}5^K|2W4UxHu{+v8Rih9&wOrxE7KNkI%1Yw3tO~aFOiis>;VxYtPSR+0G(kpX zCEdCJ$J=p~3~z48WQn$8IB8l$S!!8x1EPhE9cD0}l)syLD zrjgdllEaYxw2(!UT%}Ac^WXUJj^_0S>9n!=*ckgNO#+8l?I1&NGAkpacj=~-D6u7- zY2QZ0)YM4PF15aag-A~lFs+>hG9Jxk^mrmcb)md6sF&hf)!wwJ^^>w`9a*ayVrGEC zFUAvW{HTr{X;#*)OAC=fY+FdzN3(3bnj(|Mi>cD05$6iVh^3OpY{RFhQCL3L)a6$W z0$@RB3Sknwl&LI%N%C4|9Zk&=YLE7@mRft88kR@)&%4TAb55$+Z!CN&^1&nUb*+^G zbd-I#oy*>^L7>{QRT+&mA~%d)p3+qAW2tzfQR?$8Gru;HD%I+pp2}F}xJy*|!qi_P zOL$0H$-G8#gbSElOE{x*Q@)3JT69nc%fj zm9|Bu!bPzQTc-|!7b$YqzQ|IBBpthS?j3E7i}I3&9P!~{9@ANKu(tlsA+;%IjQN-{ zWSJ*_maw$KG#=m)Y&uy|`UA_n!9S7p>{|U3MO94jMAMgrZW$%mBDpwH!rl-S;pWj0 z{Zpjt)yP^DL`x&J63POD(J=Kyngln^OVhOL#@rUBR5aE;Rz~%PA|j`%bV$53Hn8Vj zxw9bsMtQ2!%fo#`xgrxN8SAUja`}XPs%ciC#@HAOTZK8vawR0oLPmrAzNsE}MxM<8 z+1RjK1|aG*kGFn%_99N78i*q0bu>C^=$m+4Bx6dh0F~hNZOJt46*GEW+Ct9N#yQX= zjr3Zh_m1{kI%cleh-jsxkR1Pxh2Tvr4bU3RdQf z)?jTRFPb`&HkZ>Hlh-yBPjx1>j(QqvWwfy=6(*%7&AF>8HJ3y!kJgu?O zfnAAhh6+w6RUBUqSt%)F%Wju*afF2jX~ip-TpGto@vo%mF@B}vv`W6 z%*jcWH$XP)yt8M3%-5r;>|@O>^d7vK-b|M*DKzJx^cB*%_^^>QOBy)(E@_p8LwmYt zZpH7{H-w-B(Enu?Prj5DSh7fTwxOy#M@=1PD>N_7R-hR(M5|_{xwVo;B)sZg%eoW< zdQ-#aC9!xmn=A1?{o*z{_GWvfQdrK$X=<<@yB8Ndg~PNO<2j)YFUA?K;ZSASPsv%< za`3=hT?1%p4p&(u6ZzKE(71!*(>0V7s`~wUI*ani&LanTbf@MX5AV{cp+r7UZ3)vX zMOM>2wlG|Tc;~TsPI;B~gV7EjY6KR0fZh$HIomRV}?(k4CmVpJ9G+gP<;3D}}Q4Yz0Mkh}t&_m)m& z_;j~)v@H`?4;xTrm^}qFGNEZ+nzYfqJ7}(t1a;^nmdx>jnWoBXs?Ml4L%Bfq%mcJF z()L9|^0M4O9LYv}7Eb_qO(ziWa?dAtNDrZHFL`4!Ql<3gl?W9xQ0w_m7R9sYOX?(~ z@)AWi+*nm`=?9HgN#{|~gjYnI+nI`$s-rdmt~kg)H;>i!&JzxM|7ej8y&I_ZQ>Sd} z9IZv*A}6FXv%gkDW0VhhU1hl~Cn>V?+og!LzG-z^Hh!mrGNnYyzm$(Cvsp=(-?aT+ zejgc9+ol`ytAQOMJxhb1g`GZTx4mxKE@C5>c#c@-$yaK-v($7NEE(qml;T5aV-1$; zzVQn!|Bs3xtkL_{H^nvLZS?Cb6Gzo^z>H8xEld*xQW;j##*4T_%Bf!bix@6&jWTBV z%6VeCar_s&A#DKZkIk1mXb%e;gOIM?+9B>GsW#h?DH6y4<{~Q7e5ug8RyPzE)U%h5 zhcM>nVs}D$T>jZ8{l%yha%uz@DJjQ>MiblVAjC8odspTvbhgK4svf=l=Wrof4{+<{ zLZF|fTYX-UIiQyGf^xuf?&FtiDBGD^R^Hsx zsI2LGri;F;-hru0NK4ijOtUx$a`S{Hw*BN4DcWSUz~oo$qn9O#rsBw+M9WN69Ul0w zm^{;Z_1+{;AN*AV z%B$WE8RIrCRD|qu)M9h}#VSTDF;|5Mj|H-%n8wPso*FSmLjEcMt8lkOe??4@)F$RK z&#Tr9mgM?HRooiZfR@VR+M11h$Ifx2Qu(W;N@*BW(-!Bxa$6c;xMFDt9Cp<-EPw8M z_WnMIno_MTo%&*yuA6wXl&M8J)FRxLrUEWZg!x@TqLh4-#tc*nEHFmhRH|G;_33N* z%O+@q>K*_rVUjwXN-p;cB@D%ncaw4HP<^h!QY+(vG+3TJ)QD@B*E_PH0jzIze)ZSp zCDUT6m08hZqCzXHM)Oo=zbsg}?0LZ=#@?}XV_!(zOHyrHu-ZFP%^hyVlFzvOQml$; zFjiiL^IEo|^-a<3DH92|MHTMYYw^!x08syk!ZNFn)jVSv%;SKOJ!PrVbE_zC%`!@L z&t7piE+5Selc8WW!?b0uk-QrwpRm|5T4rWE;xS5Vdy;NfD_cYq7j02IO6HGr`VFtq zSC)y%w9#^8Npt7_Rg@VV5XZ(yxe_1CoRP8!dpzl^sme=67A=_}0S`dgfZ1ZaT$7=D zQ={mv68Es|<`YX}WUivxldTBZ?PdNb!rOC}K%K~9YC2r=zC3oXx&bTP4l`o&JisMe zLs4_YsY#56L*?&&DY9(~wt_`e7p4&#d&GOYYnsm`?G&-!Q zNj^4Jz*MO(-b0Qhi-Dq9uymt~+3ejEoE`!S7IXP8T70i`xtd^4xJrg z*^ z9{q7&|G6{)I>*{4ubhTNf~}f%qq_K9mWt+8KGhBfUygd@Hm38eMKPKTsiQi#Ue#|# zWbvP5d);m@Kc(EJ67kFYO39)xDN>|p- zFeL#MDYOUg4zs3Lk+Vqi9=StINpv0UQPBdffL&sZrB&VPK<$CGhAVQXSYx@MmiU5l z!Edm|HSEZO46BT;^2X zH62QOw5-GUacbIus5b3)(axY}o7eV`-=ois_bRqghTTtnyAK>OSL_AVLU0>ZR_kq-XD!!} znnf5#C=H%Vqp1u1o(e$D$SPV*7xA{_d&QJ&r94p-21GW6f_cb{QVW_lI$#mGWc$SyoM>;UGS6UP36s^S zyC!R;?i;fv##R-rRn@IxHfQe`g|n19zZRV4`s*e2#@6O0C)H7co4h;IUM-c9T)rJ( z<&3UWB=>e=+$za0ITowD4a4@H#VVU^>|$>pDVN&vFVmSvahgYP?mcDBv#LFJN0?H@ z%*BQB5?IxR`0yUFTlrb=qJ>-zm8gec z_W#Z@Ysnf*`XM<8wz_=VGsfIrRcOzcQmm+5W{!$TU3zu(A8_W+7B<;u8!IazN)5p-UBw4EHR#o)zv0bD{A+dqf%1J zXdt>mcc8hY#;?23oN@IW1^Ry{nlmxc=scYbscrnY8_gvp<+Zx%Qp>|AK$%bYLT*)8 zhBs|jneE=R`j_jx%|#Yjvu#Vk@-JO2@qJ_dOTSHF;+ILJBcsd(sM=>Bs{NRo9ip3w zH7hO2VruCPDm~L%UT~`?IZJLp)lvd!~@S^s$=4qgK!?cn{p2 z=ABrz!?vu3_^{|qrA(F7DDBje8n|^tYzhVoc7Kq#Ev|1nStEuE7j6swJ#ABJJ zni|a0BY8J^AMR{(uVtR&13y(8wfbAS{lzT%>O#^pO3S;~&ApHpCsH-r&p$iuJj%fj z`|TW2Tbx~Y_F!yd@P_x^IsCVcab0vTTx;t)cFrDHO_H~%YH8K}-`Iy|kJ57P#&eB} zqW$oR0@u?f+wXV2x#h26)UcxV=Xs=pT4i;^1Z8uV_i;aa&?II>?bT~Sp;n)rx+sAC zXJ@sLIy}z+j7B&^qlxWwrE)q|EL9Hq$r+0g%IepWZ$R)UY7#^%ZTFr>O3EwMRY#fC z7T&81GPMt1veGm6@Oh+}O0QxZS2f-K+sWshB#)kch219SojwwZD|A<%cbfdVx6doa z9(8Ob+%@Nwq?NkQ&oe#cmB{Ln&1H4%W zxH}XMg`)G_wA++SP(?C(SZ^js9(aoBM&s%#tE27_R>Wkr_$VTjYDRg4W2uK6fLp(* z1Yz;U^0B27*CJWDg1Y$7Q2lbB4K(CskFKYRdODZgs#I1366Zd?qLKmB--p#94tHV2d^%Mk zh3m*jL&n~HmMKg$lUc;UR4d7Y;?8(p&yAM!M5>S&O~(sJLX;w+JJLn7xjy4|Z$BXm0E>{al>dL?XSKrf-ol zm>OU*JFF+-d8PSS#sw~2O|!CF9ol(jw`Z@zEkGID)LgAAvpyM8*={oJr55d&U@u~& zn`f1Xth!te+-hR#tM|H#SN-eFVbvyj}8EEFjW>d!gE-k2fu`q%38|7dieRqq?nNhviD*89&= zdzyBZ*GhC6XeovBWWtKmVfA(8$Xc$qE;Z{OFHb zlD0UJt_YKA6~{7_r+n|CZkp=SdP@YWr^pBS9uA2tN+(OsnGdGdzE6aw;rKi?$_M$c z4o{-ChU@!$x2O$lkzd}Xsf3h6hccQmv)$}&upy^L<&_~LXQ|A(GPM@dqtv33~? za4>Zx26O-U)eiM}&m*?7+HyEqO=fuwu^LTUZE6kw%N>_h3sWPstS#4bX@S)W#$3u6 zEn+FeI)+i2LCwWHUthnOW)2uBMx!(?qzg{U!$h?eIfs{<`)TQ`p|PTMgke=mWR>1p z))AcJ+nO`MERgOw5^liy>o-{%{fF^ZIf~pO_)K)AFN4w~=G!3eI`!*V-$w{>g z*<2&ta7pHs2?Xq^O%0w~CN&&hJM|k%4Y8PTyJyy7mKO@4(psaG`)j2aTGVV%r;$sM z?ZcjV?kwd-T0thG@0osj%#KgD#GGt|O67#=VvMixX%!>E+^y zRB5+Y5iU-!Ja#gAO;RuD@e*qYl?bpdM3w5x6$h3=UA*M7wGdB}l8p2r@ocGgXwwki zEoQ{f6c~#W#VWc}Ghmkia|3Nz)m2wjp4kWfouUa+3b8NIw=toXVqIf+UV5H){mWde zs%Lt_E3QRzfz7reYOy}3FZxu1H7`Ha7XmNgcrEERV*yf~0I1uzK0*m6m)?`cdlxAk5H6;X@Q}5u0X_MiSisz z&4~s~^kOtAZ-%7@`J=|jI;f*cnI+XODGGLwa-EgSd^VG{d^sZCUR19YE)zx(0@Xj8 z*KVy{?ROUHm*;G8p&nWCwU1Ur6){@fFK!dnMiJG&u3e)s{{{{&To1GMJ~A7K^|$J( z@TeX!mO;E8phzBz|KBut8=x`*|y6<#$)vlBbe&BU*`zOT|#?|Xb_Q_gm7(X;elga zy*Y`Z3^$g_c#Tl44;yX6V|s6Afs8o#z1|opN$L%}nu>>G)2vXGjxuVUz|~zD zFa)f9OyE%$#Ggj0LM{DJYgk`ruC5Lg;@M)HR#|gdi$0&_zS@MVXN`xCo@-Hc`R3@C z8jqh^6&4`Uxi%J(WVVp8&KxB|HAxnCt5DP<`*bdruvtT3a2jUgp#}8Mbr@WQX(hMK zrsk|MdSwf$nlhw26W?Xngj#h|^VAetu`O*YC__641 z@M4VGc_gnafv^<^8HkRiOQQU*tc+k`kaXW&Fr%blVITEhs^oBJ?L1nWXZ=`MrdAnJ zz$5ow#661@0p^{>p8bi+Jt+8A>mDuf7z=ro7?5R-)wxoDOfyel4YnaaE^1VjmokN`BipJEaQ;x8 z9B8u{57H=+OdgG4e4K1@&3N0QN?kfdsgTaahmBIO#F3-tk``$(_IP`?BO{v)TSr!J zsj)Y+dYzHg*2Pfr9rM)+-=ZdI#?oEM~@R=(3y znS8pJ>ZdFbNaAEwm?}~EUFQNY^^o+BHBLRo>@OcrDdVYX(J`7uIi=Rf6_O)Zqo$C= zICC>)L@&h(NJ9gXVOz|V&`O_LNE#Jpp;=Bj+`$&CwoHa^wP!M=%9<4Z)Rxaic~axF zgk~{Hpq|c<-G&i?n`q|(V5@>Q$rIJ8fNU-($SwJzk@;?wpQj^6v~046J4Cl`gsZ<= zHwB{F2Nj z)V5hI6Ucx?#_XtWrtjC%;B-bvH1;t#hRwQuGYO#hc6a_-Nl z%|CTySlvHYAyOr}hH#-|OIxxgn?h1j?os(H6M1tSQfcv)olG7>#QE05Jw99DBDaSx z^J#Qzol)>)s@gKNRjo_iPc1n!zo%TZb*?LWWJr}c4aR5-nKxD)V)MMuxLY^_m7}qJ zfs;hiz;IwmD0>?CR}ziotB4^$Y3XIokV zDdmlLlz6+tqD6#K%#%Iq%@Z6hsb;BrB@s?<)Nn%!`(q5&a)n`%sKcZQ&g*i6g?K}I z56H&ZxbcLBhaI$Oj`xy9!)-<)M@F-TMp2Os7Tt(v9J$2mD+&IRnv)T{QnWP4Kp9mM z?tc4(krvAu8rfyR5X7v+dr2X-;@G}KZZxZ?VjOF%vPCCO8;?2LmBP+g6ro|ioM>rj ztz5-PWO$!Ys2tXr+NCDWIto(ci?L8A7M)8cc4*3J%YDm`X78x7o!gVUNj@p1WR*7_ zvTSk1jdHURL=Ge`ldHJt(JL|sH&S-w4>T>qs)e=?X%0KH|WG|5+ zK#dJWicXv6$kx+fd3s*c=){=mTV_Et%+IM|Rpb;cm{UL*(pFf{vf$BIX0$;6Z)J@h zo5*sD>dkD*bhg_f7TdT(UC)^3Q=aV^jgwZ)^bqe92zOTE6Q%ep#4~d=&Yscui+pQS zCZ3J>*4D_6Vd7_lSd|5&@p`0a_+`vFaWbr({(5_*9 zXEMIM;#FI#zB5IOlEq|lSUJAL$dv_TGEcRQ)2S+njAl|w@`q1w3dZMnFU|RFe zqY_=X;7U|`@n?*G)S_V}YcG|b+Sw9UR{-(*N?UV%-<-It_z`$G%y!JO%~8=uTWtlZ zkLOk6UXOu{@pDs$?&g*{%hZE<7I*Uxv$$Nw5zBZ|ye013^Vd3U@)}$qnLL7UJ^Ewb zFqWk#&Ep#^*+E5FSu&@5p<1elV9O-LO$D~xXY<W`32Gu^> zA?2ri$T7P&_wmjtHuHDetIz*?`L{+iFs&m^cEs9mu8WhL8lxZdkwcK`uL>Ko+ z@q)5~$isD-ov8!%WnXJh2YykH!Hh#IW6st5xN@QlWNj-aYT+A8TZVQ$u7uY7x&5@s&cPgMBa-n9ZPjP92tJx5wvpCTEfvpJ zTRX+~kyJWe$rtO~WFcwj9EqpWNkyk&(K5~(k8awKNn3?2XINe6 zp5UFS;gY&=V=40vNwCyPDnXBAcND2QWR-MN6-+C$+xogAOF3rL4V#tXvd6v&p{jDo z5~|zio!f2=oesTb>#=B*?0E({X?uo~BXP23rW1YXMAuS$D;v|fnohfn(3%n_B^QjP z>IKB9+N7?b%qkCBEqxy+*DZEx{ac9iP*Pr_^q99fb`*xG@hI)XB2_B2+5I*5QA#+R zyojm?)ef>>P`pm5YC-!Z`L<-vGaB=!f*M;=ZRKi{>=~sEiX-uaI{D>_(~&UjD_E6I zUH1U3ZqbjOe6nIXX*s~4{9;G7V9I&rE#Z(|R3(hX>Ey0F^~R+Fb(2ainSCT)c5ED{ zNQz3eR*gS>U~Az~%v`(=aJC)!LL$LXK`)o}ip%LRRkFv;)Pgdhz6L&jUcvGZ5%SeI z*6YG1OaHaBwm^<3QOU4a9?h!OJY3uMVyhsxOj4HTDa$HzYMKdqEZ8rteUMw6m$zW6 zTMC(T5WlQGIPy>I_PBYF_+62fK<-IeUYj6CoR(Yu_{ciQEpKdshH^_0M1HmtawNuR zPnMpqR^1eJPsZ?Pkt~KBF?38IrU0r!rM0F;wMjgCw%v>GGTzEIP z(wEykvVf+cD{0}~BNZ&WY8|ianM?2<8N+IZ^8R(op%u0m@13gZ>&_DIG; zYHjuOda4-xm*}$6(xWy)qv4{*UFwx~N2xhGd-_Eg46LX%_c~KoYtP@*b#Z%KYgr** zmIY~hL}eSCMLl2Z@PB2f^wh-xt4hx&i`4EV616T@hZjZP?Fib}nr}yJjUn=K>cAZ_ z^3FetHe5Ysz@O$3{@StIeRevxGnS&;!F;f5SBVS{kDk!cTX*hSvqw>iS;rnO}Zli3#p^kQ|d<@x+A$OM|-YB-Pvu^FG{z*qV(nqPFJmc zcvCgzm00>#S6+$Yo}wkUr^t4hl2t$M6D_49&Q{I1Pqg^+#L_2u=}=h97}%Pli?i0C zWRSO(+z0mcN<59sS& zg=I~t>q-@MBY|p`cag12I;DyR_uYCfiC4Fvnk8m#(WC?EIPTU=gu$;0OCt|?c-og=xz&Uk^&1}N&K(R^Cjj@rAS<}(wW5|for^lOLV zXYYpfc{&K6exg&Sm3*llx`z+eBkC7<=RxHJn`K=Qb~k&5;N3g2Al$(>%<+Mdyj8j6 za!uS`mL1%S8JliKvne{SL=oneBS&Zfn?{_*i}~EnWI-Lat1r@fnRsbidm?G+7)C73 z72ABWbZq{zoR&?!Yra%al4==KShjGm2yE(EfR1SgWCPC)DKM4~MlKtfW8MpqE6_%I zx+#a`9!tci%N)`i;;8Fl{)~K^n?*iao&RIsRY>yXgla=kM=C3z@_63ITDek&8i-K| zm+KsY=#cdkRMI2%4e>&N>j5a8j=LVI;wuBorZ)rk^E|sF2luFi(=zizBIQ zoKCPmo22XcJiu(FL#4Ooa>IIoY!Ru095J*7>O6pN_mP_~MiV7EVYt$n7-!`yS(mY4 zeYP)SBwDU@KS$>=GVUN-Ieming<<}$h1HEX9MjyUOQVq9Yn-j43?!m%vPk5RIkhj# z%;wiu*9e&xJ69TtsoP6iRAt)^b(y7?<4rv|sd|**h-Zwe7x$u$syq$@FYi9Kq>4rt zjzlfl)KabLUPr~o`p=^3uZ~uiE_zC}T|o3;Rj*t^w6xXNa`gfY!lF`P&0*Kd5gYZI zi8XyJqc&Ijpr$M=sxFQ+>C8U0!H@=7gBYOi`Zw;NsHkhOQoYEmv`XvW&h(@<+6 z@oCU>atWWMNlRANOUbD>m(NKxHDbi6ku?|NRsd@{En{_816i&xOE&AJz-k-fd9BRK ztZXHYDXI!Tx03Ps-E$sY5A?wYBnI%2UFrAl}{#qW}(+g%|{*TTE1gwM68gcU{g zlEv3eL*pJ>FQw6PM|B=`QkZ%~n8+m37b`j^%k;)Yx)|y5Uq4o#SXtV{)F{JL(d5rT z!+KS$uCT?ujzW?Q2bBuX>mfEZipTo0I`?XN!MICE%T4RHnEGoqQmGQWPUO8BX-=ye z8GzF+3gxOwR?xTWYw4O{Zee8nWHAbBQg~|ms)oms6|=%jK5Z->IOmDR9F%6EP0R$$ z{P+@#4g5djHVhh4P{lH)p_rA@JvwImc&0>iR&)McdDWc3MrC$xOkjD{443a>=(&XH zR5O41(%HPZqgC(O?V|Uj%r&IYBAxWB>~o;X%){={9XlMreyCD4D6JQGPW&|koS+xoGo%_{B38MwafSih-KjO6JnfdTLLWS^=sg%X0;A>C;wL*ITqT9CwGAnrE!5 z=g*=F6w~(3RuS1o!Z-GJ*0`xve*s2ri@O+Qi=tAE7ZAl|Sz5Nn+}4ly#1_vM$Lh^R z+27}}+y}!#&*r#{LZqr$O2Zamm3&kiQQ0cYH+FgR#B=$r*P2-pimWJ?#PX+bg$*25 zu7O&muA6r#R65?O(!i~RmfT29i9JbW#g2=}X6J>o8a-sPe+<>ENwOuvn#h`xr0SEG z(}qk*mz*xg-6++tJ=l)Skz^Xx`rVey8E3Z`dnrhaq03T?BfYdal)>|;PTb_y(vP^f z@|&yYRnLg1Dz8@D5ORsnRj^g&nls%mrepQS-|yyQwsetL^sfn-Bd&C)g*s-gYDUIp zR*PvN<2bk#ReZ0slkr_<_{CbrhZ*B%n;A!T`Ok93HHtNNZ@xKqsmApa*4+PitiSlchQ~EsWkFMQ?Y?3A5qsEb z6DwPh_{N^6rr0jO%}eu3MUf}vQd$0VuE?Rs%C+#Z*Z!4g=i^8N$?rYF+Q%(ndydVI zBXxU=<&Q_gSAhMGSIm8F1>_m&dDJ&6vM2HwkseUYNZQ9SlOZX3}N5sqEHTuYI-ZNR88_VjKCAPd%|~m%cTf z8=~t^cF<+1e3z}q&u50c99qfYoK0KKTDysEGaVh$d-Y6e*O_!}rFPD`b-G+isv9Q& z^*DZM4LN>lbN3FN7%kfiZ*zr?$tK+90XC%U5r)S}?%X@8Y4)4P4?atp^A{Xv- zd9TZv)Nr@+z1EO3+}2RHBiz=o%eQSV@43XUwbPm2)-Gqhw{|;oxwYGwe{CVBe{HSK zxU{u9^PsKW8E#vLGu$?pbhLH3gxli`w>|6(x7{WG+FPCBwzqaT^1j_A&h72ad};4= zR>}4*XSubzq@&#>pWAy}{OfV%Uq{I0x3IHbb+kJD>u7cPw$1G~XL>ta%B`c@CEOlo z9(1^rTW8pr_njTivg~vTx3j|;ZfB=6&YfM(Jm_*M%PyDp+tuX^qsyf{y4#%fs@tWl vcDFg}b9bjRz1=--zd6&<-Q$d3k4wGpA-SgO7i^YMAwJ5XV?*ak%U{r~6O``(*3Gigc-ij*JCymyy# z&pq2c_uS<@^3LDh+cXj>8xn~`Hp0KH@vmoSB$BA#1y7O4r|>V1f0HMVJ^Yy1X|a<} zWNQ9@W%;i~-w0-zylP6z%_RNdz3x2}za-TqF zn0}$ct;gvpc7zwrEv zCtq~VIWx|_7+}NjTED0898P>E-Q9oNy9fI_dGfhar%pb5=G3#NUp)EZGtLadyUW5G zYYD{nAiNMb;4}523upKQ48z;_3dN5!=YM=(1H2g*f9w1U&(-1u{oTyM>#+3Wd+@(7 z?8%dBFTC{p3(o=>&$$Q%!}vXvRQ#$e!TBDB5rj{ zg)Qym&%P5~{$m*?fe#n?RO5Sbcsa*dz_VRO?MQ^^&XFhmlaE&*qdA0EAd8Pdy!cLj zUU0!h7xJ0^DPH<4e=WS8KvEE|d~O8w{rF=~7!y0{Sfy4Z(rWRlvK<6m{@1&gzVj^z z>%d5)UPy^@xsxK11MGY5?`4seUDehML!DteZ4~K*uw^dWD3Yrg64?T2WATswZH;vP zI|t7*@q4VK7XP#7r5i=|2_j&NeGaPWVSW z4*y%nTUTXAl>guU$DT3!&>IfeA8D2Nry!$vipsOlf76K@?~N4cAAb4Yp6DOpWNPHq z`@?pt@Q-;Sr)QVb-1@ixpQ*!#@3Y@NKbN{#~YSc#FKUX@l;*E zd3_QlI1S4xCM}Kbd{iV-kUxCt!1@0=Zw>hu44i*ACJ6(zfA`FR^Dq0}8uA+k&L5Rr zL;lr;`LmYSLykbgdGTa_JQ-^iY9?!QU9mSKW+8m0c)G6F^x~l__6Ytx9Eo?wIw*Vb zRICFv=79D&^9V~OJCQagen?NWVMo3rBc7`5FpuG-Dbg5Q5?vfy($K$0G(n$vW$fXy zXoCJ&Q|yrgSMOHV7<(l9C|l5oX-A@fkRtoS*UIk7{A6dcH=e9% zO~!7QoV_k6lS<|}7P%5dvOC~UbaCwx$)C$)Bn18lr5ZZQK&_7KeebPaEd@Vqv0!Zv zi-R2&0s>4Zld^ZAi!1RGO>AaMn@MN~fScp9menI|(o(=^HOEXVi$r&3LZSTcbPZ|@ zpdX{I8#sUB++z8akeFONS!;j{eq$NnkueutkFrBz1_@A3{A*ZNIce!R_-~)+&a;W0 zhhMVp-BjJXizC&Mh`H(OAg-Wz&YS}MeOB-TcdzT%tt|S74qGq;ugXa<@PI_u^~F=i zlmiXoM|3h~1tu{ntC{$yvS`C+feZ?xU~SHP4V0FW4IRT+E4x)N_fY04EEKN+ym&d# zs6y8qzN81bENy4Z9>f_0L8YAeI$kJuaOxx3;R-inUit;m>88R#5Z^R+@f}t6>qvH) zSMieNjDRU-vtQbxZ?NbaCK)XHX=bu1c4IPMl;$D&R8}{FO?CZ^u~jHd3K_`mDsvb~ zPZCM3=*}L0Tz||KKNOfD`#K%@^NJad<$^V2LMaKn(1TS>OvXSwyoixV#(E**eWHVh zSd|!xQdz66eP$d|QKtuWddw?)q0T~=P^ZI;&(j!!GJj>#t*fDDQcxAREg8GZ80L&p za?XPxYr!K)*|UUJV%A40~DeRnoIP(Cl2L&57=i_f<|9Cy)0t3LT4pm2_zyz_-2@v@#tOY`j^^GBMIs^*j% zXMdzW$=bKTdUR>@D~PI@7bw6qTj|k%;``woJ7}uYbx5nt7zQ*v%fz5XJT>~B?}9h! z5z8(@g*j58n=s9R_BlP`89bT!_@mwZCv<`k&DKKzK()Tlyo^+Ix}olg)zJiFqCg@^ zm@gqiE8c@Advtc?82jKyoUxHvUI$zF)t`+Ka zr)qmU-z%T>3X7Vv!8I6d6nPT41|hXb7Ve`5{qpGSQv$C59P?h2v4oGJb2=W=ZqypHdMa_{z+9UF zfBMZvi`cFkl#A+1(0;6VFcJw^k5GASk3QhtcLS^pj&KIp&P@x0?O6F`d5k)=PryL^ zg`7EzzNyp&pnqJ&dNPt>guU1N3<%i4tkB*TfhT?l#(RJ|^^f_WPW3=JeaW+ztH)!w z(iuc({1aTQP2Ds;WTsiXIe1}ieN5ozqKk9p5Ym~3>L7U#`pRHg!XDlBIO-<5&7BzO z_?zN;!FVy2^z!xj97NsC3ltpH=dbYnaFLpzJ|iKl&&y|uNY8}}V>;-BLVT&uXW8fU zh|OV>%*&qc?0yz2P@f6j>NB|3ho*bc(O$FH+XN#cbFVpGUpi2wM@HspNbr!@gD4}% zB(zu?0JNoQ-!d<|j4!;idUbXQ&0@o{v6GfM{*b@<^1Nb7NS;6U1Yi$do_Bp}aPmCy zNlRrYk;wBRGRSKu-yVbQTL3QkxPtRU{J#Dt{1)(YN7))e$DEMEd*Q(z}>|6`TE`ra7e3dHU}c1DDCb>M%E5?kJO5C+=Kz#{QO_O zavWoy(3;@Rob5B*(1;`XC8lgpz@Uk z`Z4BfA^kX$g6PR@N&Eev$S)^KR^Io{t0(e4Yk8~Cf9NKcppg_A2_s%-lC>{swbB1K z3nZLEHC72s^L>uK`=0*lAX7LF$5W%nTr51;7haRu8FH-#%9y2MF*w$qk5qFMvrQskXAd-beC(*J66WJ;l*$cvodxEo@^h_ogsZZ z3yz2xW&6c3`uTqCZ+ZmnqnX02)X<-jB7r`BW)s)PBzUY%+@;#e&fQcGsI|ZVq@M$n z=9qpAQkDXZW+Lh&W3wCTX2X*b-y=PGHJl7{8U-db^ng%ncVHT(6x|60Pz^5AaA~cs zG2YNU%$)X?Aidwp)`+PP;Pnl4^*-=L=K%P>CkgOBvEzZRoa_N#i~^~;`u$d#pW#W| zyb%zY7(B3mO5S z>0HG!~wDT{3h_OtMeqbuH zcSm+gpqrN_3cMBH%qPV~9=vB!K!HGnQsjzMR6^d)OftqouP5|wBwFZKDD=4@=v#Tv z>-@5(N!hv{h1^7?N)4SDs`->RW7!?Wvp~l+wUa;+fY-R`K`w#-HSD;@F0p*-UIeoa+H@mQQq0&@@fWCAFfDTun z8;5|x_*kIJze=QDG7sSwZeBoX`d11^?#Hw$NU4}t^;%RBj+o!zDVaD$$i=@txyBHQ zUkdD@mxmzz3v|(*or?ku?W_rMeP76xGlwG4n^hjb5&?>BO1LK|+&w~Yf9}DJDhTuD z1nr!P+Roas9OiJrj(x+cwg|;l)F4H7;)UG1jlY5;48&NV3VC~8(#U2%?Lk)=0+J3j z0m~3U44A|6q@|_?C5y#>gZ{^hj}GKd6#5_6!VM_xuN3+p-y9Dj1m~Nd%k!H{`X4E} z@yUSy@tRDoWFA%N#XqX^{pas}8%+Bqsl}S<(HHXlr~00O$|4Q^b0rL}=L1@o?>U6Z z;Zq!q*@S8RI|1l?=oI^$9`O#I%#-+|61Cl_tbqB@Mu6t#LuM#a!|{z@eGM=-Mut{= z?kiL-#y65q9u`BbBj$I^pagDDCZ1KGMBDcy*gF*kQpw8TwG)ti`s}nIG#{M9@f$y{l9U5o+l4^er0KS2>YY2 zaYE+#v3C9yl85Ur1u?$q%fl6XFOY}nAb(gM9)j-=dH5=++5Dz24@cSO^oZB+WbVTs zWzSH`IpyIRm@iKr{&`BFJlx3f^etp)#fR{u^6(t_Zh2(3cwHJ5cdApM^fuJ>`qD8C zu7mll2jvPpVG<70|8>Hn7|BXTdi0msTtc(WF0J<`JlaAItY77d{P$v3Iqa)&$I#X z3BsQ-fPI~{JVSpzHS~JSia4^!e5<`xLe%r+C*9tLw?!xxF?$ZPb5S^sOf{E&DiUc- z?2PGz3_eZrNXfqm#U%+7ugBo0gQYi+;lEr?Axu=b8u3&+pW`WM%p9!Q<$-KIqxNO2 zeIBwc)S-;;2FJq7c5p-ULnqm>(2I+wTYzjbaSQ%t--R&*`i(??!i$70UBPH5Nl&7S zKrj-(fY0&Nrtws@iI;VoA=2m7{a&B>=xO^`1K@82crWAAq{t7%a>$BN5U0~oNu(YA zIPkK#EX3R+VopJG+Gm$J;+yc0%~xh%o#QpfbplLyl!cJD&sO*;dH&sw>cx z=3{Hw%FeRJ#4C7=CXRNpVY|GiVn+lPikO|@(9*`SM%}JuM%2MOGLK2m39CsUHYQ%i z^GZR~Eq{K3z0_*vPl#$qa4kr(lGD!T zfGXWD$o<3>XiD&rSWR#mWMP2?(#kLeImgw2SnxRj@)80016QCa!AGy7b5$*N!Au2$ zeFWS#^UqgMKbfd^H2{*&Xp!VFS7`RkKsKLI`vJHwW&yHo=Y}4D8Dmf_9zdX39hRLa z1ZX-^)L=ge8`hQB7p*z&#!2M#e9~IETZMi*4ru0xJJ@^+(i=Oi@wpUuMH7dk87m}J z3Wk(hh}nL`WFbHTMw_GE(J~{>CA8BBEkQ6%^0zT@37%I9Y9YJBYUXRlihvR!b26Tr zq`XJ$pQ1_Fpt~juu{UE2jV}wa&jVOXwRS!`Vt-1rrv$S33}R1$`(utnwyid_i;Eb6 zc-SOt`Bq~8_P7CvjUEfSKaZmj+&qeXg_4QX&J+8)xAuwN&p5UU;UbdK*{mA^Wf?q`M!^xP`K+Hlx_KIDrIPn0f=DLD28h9DWV0dj$D@64 zl5h{pr`rYQvSWlZ(r%kRi~iiM&+Mvc*5^5Vz7EgXTAUClv{G5_?=MV7OVaAmfmTmY zh|=m2`Yf#;q|ego-uf)9eiqN!!_lgh*H)#97&VS><`8I*BbjE7SaC80;fG*$W8y@i zMmsai9qTMr+?6;N83ZEs z>}Kq>14F8jW2La2&jI7}w%~QJE6|kYqt(uX@L1>?oTu0kfrY>~VvcrbY2#E;Ei+;h z_I!b~Kv+!){%uT*z~7aEXh=m_&D@R9P?MDL=wfZ)XCVDhtOf8T&EH>O{}X!xl|0IFq!zYhnnV@rAJ}%B+1Fd6am^^#jY%XM0F>=fJdT|lBZEp zBAR{|iVfHmES_vH2S_ul56`Lje0EYWcT16i3a>>t_{{eG=M|9X#>A$sK$ARrD?*!N`A2y-5kxM@JIf9;_DB>uh%_wlbh6z4qTNC1 z9e4MIb#_vM+aP5KnJ6L$muOdp=8<3O`$_na7V15K^~WpIP2q z`X_e3(-{~AK@OWgLozJ_?X8+FHO7mEJuftp409>qH6@thF>x42j@0O<;TeOHPhehR zenST+ndl7=n$MPrwZtiz=n3TV8I^y_%G0%SMh`5=wDF@$8S7j4_C$fA_>JaG5fhX*9=X8(<$@jM&%cXkxPFja8T| zvIwf;+41v2FhNWfH5Ez#c`j$CF%v67uk1BC-5*Kt$@Y2ZpQ(Ke&#C!*?n-dkn@o`L z`gNgsq8T~bk5oIK1D5(&pwpPR!4+sq^U;pi*WG?!JJ@e}^p%>`dILB)( zGvbr*L(Qhr0%0{J__r}J7k^g@qM`Ac)yx)OCYxBsW0M`PFJJ&LJ>uttdiXQ!f1(k^ zT+jFn#Dr0gJuTVwfowjb_V)17%@EYK)rMXUuRLfjw)d8U&vo)$)Li^q`5XbxmK=Gm zb3I6}O{Cj<8C^=Y&jbc$0*o%)Vm>=$cOLEQkzvvFd_pyw`st&ep2EIs=SC0&R(AuP z<1@0^khx`)4^9&1vwXT;VE*PyVobsmT7Y4wb6998s0L%#l z^G$%U>e{B=@h9o$LunmZG;_o%c>jjSej5`PNjKV=VTJ%ylcacZ(5;ugs`IZ6L zjVyzi2mqS#kKj2qpU+*1i;&^z$Ak2_;2t5zNfDm|`mq;aHYQGW1)9=)wEFQCJQnK5 zbc-E+R6j03*95vYPW{j_Bd{wsVqTS=6IN4#e;X6y@pq*l8qyC|Gp`>?y0DB#7posN zaAYCjcf!pyyFA7IC*mmPdd6qS2&rd&FHS+CI*`q0)Lsck$GnJaTW#oMINd@0SP5&k zgci*lLuTWl_;70VW2{e(JZ4P+>9q-%3zos;0~nY+x!)uu&kotuhxh_LQo#|bdDTxJ z{Q|vi+qt0xkxWztI>%>ZvmrBQqz_IK5-gu?7no_l#52Xm%+hBeSS{N+hALk$sPMvnX>6P5Bdv^E4E`c76b*X(yN#A1JlUXk+( z)p5HYH#vTJ9LpGZ?TydsZh?@Pw-*xz-m(5bCl&|1WS4yut6ivfB@4xq@5CGKt%#>a zOkXjt~>u=zOlA)B|q zCjBFBF7Uq?LW%ubWMNvNf#KQhVKbJ_ zmCn^5Thc6z(qtJ=vph7SD1E*4C#=I(m{&p3z}i+3epEVs$V#Uyn|k}1vFAUq_jvd( z1^WzWg(Ez@<~DN6p58giKVK#AxIQ&;Y4{unPke;ed#g}BXZMdAvqLjrDiRs|_MxXa zb27Xn$^y3nW9!{)2r5nnu8w5)S9<1nH0pR92cdfv@4i=-GTuB;)o=M-I!B)x_MK!8_y`+bA!cT3+}y}H!- zn&A1=iBR>z^~p-FQ>uLE6!v^Z1$p$QfS=WVdD)ZBPJ>^v2|H&N^a#KD%wPDBszWaK zJ#P0ZypedirVj*o%9sQ20;V>Ciad+*xnHnSx7m9*5yZJS*$QC$8^({@Lvv;?a1-DS zHy1F0n9Bf7$nxk#dXB0j_|oTd#}v&UxWC=qL_OAL-r$4Z-&Nw)*!~_E>hBQ? zS*hC`H-ZQas=tR2M7Y1ZNg_l~m{ic;+jb`S(*3==Xnqy=iyii`!<1!vRD$vj%>$*4 zY1&^}QJM zQ|-emrvJ-OhxGglAAEY!+w$o7z`l41(DSiBuu``FSD z3DCc2{=oh1#+WAkeS;5ve^-ekW%YmiP=BwPul+sl7i~6(dPW5yb+19@`yz7sG7CN>xK$|B&eHeUK1Ojou9IKV|_x zgz}g_KR~~cyXFsg5H8>+@dq{O`e(WKL!>!1y&MBTpZTeuP=SOFGl#|S573bPtv|a7 z1@aaXgxU9xHpyZmwLZBIn@5GAc*q{e>ejL1;oIzXp#-V(%olB)NAZxQCy|Q1i>_m2 z20_})C0~G7Rj40MpJ;zp?ClY&i2bX?`Esfs&X}8h0gR5v?9UUGsWtD$Q$z1Vyef56 zQe=oHxea%wnSib}*q38hHa<%FAtvz3H3-(O^06!L#hKcN;SG&b`5z zTX8Xbf2`8iU)Y>IgeDLn`c*s13;ilXzsf)6jt1=cPI8^*ru2E;Joz#^ba1Kw!Qxi& z*OuVL8aVHKN&p|RCni2BmW$5bow!io+4=pv7tknGrLr@&+#F2ic>_MJU*Y%@fN#f( z8H6T7X0h^B9(`oc6P$XbMR7kt8V-zZFuZ{?5SeAv_F**3K;TRgTn2nQAm)!>)|Pwp z^zOe<6YcqxG}$;mr2Zrz%b~YcGl9*C=i5pSU5TA)Y@P)%#>Se>rCxz%7P#UPzd#NJ z>J66cS)-n#_jkO)E%0X1Ng3hsTVZ~n#R#|;_2%H09iL|#YLxTp@Ms&g^;#4dKQF#l zr@3Z0)JXXiLv4X*2ysh>Ux+G?UM1-c%k>>SU~rGALT2`0i>vvTE1Igs`DDa{v|g9V z`WZPi2)H$UrV=fBmrx9b|3l#2m*#)I{N5_9;}kTP$~TMe)w2+rO(O9d1!BYbqnjci<%csgTiD7OdW)#vSMT0_3h_N9|s72{V(iR<+KlSSwz7fp(9P<-dkyQ#ggv zNpD9oc8_Gepb$IEo_lb6_-r8R%@5fhh!&0pC&xq3MdN|~_&&1}Lx#Aw0vRAEH6OpC zS3!GR>Gj9XU-Y~nX2hrq34!_e7MC2EK=<`!zIfVSN?vH=*mT24SnIP%SctM&sDN@N z=N?{Fi3E-`3Y)S?b0;GvwmBXje%uv)hYzB?xp+4e3~$}ln3VCCe=T15`{%1e{p%G{ z(8YR|L4SW5d<6$DwA*Vw$Axx2982t!f#!=gQ7~20mWd}3yP%to8%luuv>G!ENBvQv z$DANY*Ypq$t~C%ZeQ$!0xmnV&nSX`rd$hq_EfnEt z_YaE?DVKX93g)-Mlz=`z=z;d}Ygj(k!^a;ipc){{vn)?Ki6V&rx1v$J!{X`y(E+?O zW+N3^WZK9C2CX-=GWnfBdXM=xM*#7I^5rp~zI#A?m4tqxvOrspFglS6GWDL(IBcUyxjy1=2xEy;lmam1wi9{$PS;qX!u+JRiYF`Lsgpp&vE@){qw3s>#zXjLM>XZk!lrfp$*0Q45T~x zg#3^$Qolzeq^4JdCRGK=HU@KhN;a~pfjiUO{FZA4q5?n>kpU>H5oc0mNZ^}nC8o|@ z_~YHDQ)TTXbfPA6JY5>b=b%Hda2azcTJu)&hHKM(kl$X>vil{019+FYmK34tJ%PmR z-Lxn=N6F)#ix&syx7Vt?S`L(!SIX24Y>`NkoK5oL%_rw}1SYIr|5RRr?b-QRiT1QS z+nPr3A^CN@p*A;kiU8&5r| zaKz;c{Y$_876aiA;n7imBLeyn%N51f=?~@6)0-Uirj)+;?cdFPLm~PF^+{zMtb{ex zId8wYl6A!A%;ZmoB+ZC_0}s-(Ztt`IKwjzX@r#B4lBL$X9+WHe2MXp7q%VnBWc2sP zgXz#G&^LenVSd0xO)hFA$3tuRD|6sp{LX`H_nF1AXVK1k(fM@U0#m;ugvFcQ%1oxs z+^1Nyuom>c!`#A}$yhV0v_OZO&EuL7#&f!IFsyG?dHBk-9V6AKSYLGZ-fW7OEYbJh zbSEGaa3b*BYn_YUY!B6+_l?m@8dtpis^aZei2V!d>*J)A$kD*@6qP4nC$g<_B_5JQ z>gd4T_)j4X=mg?5bb~E0sM~VUp2UL@dl(c}1HG6%VE07osqGB7&{*Gv-6`Ju#OjA9 zPfosJKLq$OIRTEAVmb32p`Y+AXWG?5%4l1U43#&)11#VFaPT~z)*tK57=jZ`2$om+ zv3*&O)iM=D>YE(xbon2N+CXZaXtW;^_mc^%UOc0Mw0Oz@J3<35Y1> zZjIw7>`1Nk&s2*C8XpFnUk#-?6xbK9|7$h>qP^dO;}H7t$S_ee#49BMz1Pvum>Wq= zm?~?LDIJyrtamfyyp%n{O(gKbO&cJF`b&C4JVdJ?vlw${(0^CsoWU;$Mt5Ce6QFj! zzfns5g8DPnlapfl>&~4?K<`X^Ajx2 z>8}l6<&v@G<}6LjnG3d+?G*+3qxc5-Deh!Rdnot`&8!U)eVYpCqR6Q&mr3}z6L4wN zLiQ(UZ&+W)W@GN&j$QR!tt&7^!@VG6-L$&gu*GCzDSNa;GSAxH(h7?9+%`f8Kpzn$ zGO6ua_XK^;Mv+qbWBWg#J@^-KEU*Xp^q}pr^rJ4}zp#9;ypvz59kqY8xd<`0_b0y= z7F|}%JAwh;;_WNHm3Q#Xu&goeS2Bj=%+;iu?Vz{5kyqYqifdsZV_NZ@UpnjVjaSb9 z4#GcJ*^x8*3<%$(0^ofA#%tf)*5Wr;B%gFO=Msj)@3a8G;{B2S->|ia3;NH8HS|9S z|D9j>2n_)LUpqzJk|KYjU0aoj7&_vs&w zSBzrR-&!zV-b$ChtY~?!eROISI<->lgL7}-II&Y5aO2h(PqpKTSX3XMDvlTa7{+I~ z_ZoVJ)7j8nZe&}TThPn5N3=zhw{FmmBW%X}H!wYvmTo>em9e-$yhr={{^h(yYEna&e4H zRXKUV{)zyz^W>#k+IRlVt1QO&RzqD5D}xOJitayCGot1%X^}p0=X76WpTSNYmgsfn zyx06&i*?wP+749iF$*xsab^02TZDv&K^zzzKy#RcWWNRP7lK}`hHwGy z@F}rgW5yJ<-#&du4V*7S66X^-1_b%3{CVBW3+t1$39x|!)yF!1!T93zsi6aEDihdZ z@~!Rvt7!X`9{`3v4Qz11e0N}Z@#ztk&oN#H3-t-O6^(xf?P2l$huZ_c(Sy!c zhA6*Z`C9?Mr@rd*I|zR;`mw&tuL+*>cbseqe?L%vI`+!@^{1y5wYOpZKvs48joE1k zL~bqo>4`3Mr&G|2VkpA?8Z>_ukwkCZjW$#r#K3@LvMBF_Ill`Ij z%df8o{uc7j)8C@=k2T3dApaxb4?h@LH-Gq6-0rc#9}fBtrN@_#ia)#!juMDJ{Mq+p zKokeh#t#SZM~mu9p?-zw6Y__ui^1~$;`mSyPhD60uJZdK`oGWqFZ#dFZ18^(RzLsg57htV zg$3*Aj|KIq#C$Xq9|-El$ISmV>rU^&@v_Q`mpFSZ-#o3&nb+3?e+%1NSNrJI|48`1 z4gd5b!0#s>d@Evy8~oq@E&q2Z?&enicg2U}|4Mvt6O9jcVMqx1Lr3CXvkmd!|Iv8x zpPnk<_qa!Weh*^&E$#nueE8`5zrFv9{x2>)+YtXX=Rf>``oD-9Z18`vzVRXLmzaoa zB-WMQh5qOO{_lF=Z()0$|5`NOuqJyP$p1+AzjI$(NBh*RpQjRpSG^pIW*vF3ONuAuu3soFoqzsK z<4M8u%h#fo@}<=ITaDSt5qOm36?yzB0T_*rjWh>f%yG}%i~Z-j@5Hm5QO@a&OXYGw z6YpFaX}+gM4IAvS+JsBRr^>mOO z1^AJF>rEe3Qf4t z{!6^$)?Ec8oA>HbJE$L!FPv`}MVP!SL~KMMJkq}@(ra+XtuL-c>7(#U><`JaPvjr2 zG~U6#z94*_((ljBJbA_I!b;#bocKew?0I(dv{0YeUhsT~lQ-SJh5Pj13!H2B=iu-)31n-L1>e)7GT|L ze(`&$(c;iQ7x!g3%P|kU@-ESVZRs$tqPorH#Xxei%^U&zH$9{`2OXSF8>3gE@*--< zeps?WyY0}y!Nq4&zy#1j<5i_c58ZzQTfqCz09DK8^Vi9j+h1Aie!6jb4iD`V%4_Jp zVinUClhKfDi+PIl78?%&)_@{%!*{Rwi3kNrTqWKAfxZJ-DbQ-Zr&5C&wY|92p$`n| zz!hmdxQDOx_*D7vat|NLd(>{_=BGS4!_!#oGQS{Ed6#1vufWLho+vps!^8bA@fZv* z9>!5_n^<8Uv5Dp!VxEjOqXh2nQl>yay3B7}H5t_ik8sP)cDzMF?lJB%pMtO9T|FGI z-~A}iZ*JRMcpw(eA8&nqBJz&@N$3kdWzik$gG2$}@w}U<&s@nDIcu8Wl_o%G6JwX2iRWbEVx|CnlLCfW8PwUCWP2PL_CE52;vz}W zib!;?Sk9a-%1D95)k?FLk&dvV`1l>GJ^v7f1^F-kJa8VrBOs{}y~RbITxF&f(A^YG zwhYa$FW(D6L2$*p2D4nX6eb|a%7eKdv_mKiAn)gX&=ssKcD~U5hV3`?%IV*w54(E) zcw*&uQ1^kBI*;fPf^C5aMaA!v9@2T|U;kU~0~P;BX_|+ho4*F(5%A5ln}!e1R0C#sg4YGjzNewro0W z4`o(tk?1bpYUWs1Z61^d&-io!m|->-i(@On*N~zxx#HC|q9~rnH=<~ZL0A^ei7gTi zCo^DGJX#TJiB{CKMYoENjBZuEC$e%#uS9w;(lbb}z-<`zdlo~FusFL9MhnsLNj|`y zwA5_$pqRL@eX4|E8i{Vg@!xP($iw%&#;7xOSO_`>n{` zg+zBBEPcL^epJf%$tyJFZY8}Pkv3WEx!Nh8zYWW)1RtwUI^H`^jRJlNQE-=(yW#40 zzgivq1Y1B}oPN@un#ii5@imZ-b|IzkF&>v*dLo43vFSHlg}Px^gag2r6m`fTfJhd&pdX!bf!u}E!*M>G|xW^&^w;Gv|R4z zQyz!xgT?15!2q3tst@LS9KrF@j+Jgc&d%e%V*N+I5QP#qfmc58c5u*g)ZrD;+2X(O zDvHm@U8S6EWWYsGVP*xS&%~26E6f?U(Cp}yr90unVnUKEW;o=jCBv4GrDE+@IQbD- z-jw|nnJ=J+8S@i?7q++7-_13F>#_buUIgsRM}XdD6fQ~?lb8oz<$qmAX} z8s?POzwloD{gFo7eBgdy;EFyfeXM?X@2)-a{{6+1&jv4p^z-SX^KIy{o&Q*Uhg=2A zR|!8=FCkMR$B>rVoRRVJqaIH_`sWbiV1HG9J^4XDWq#`1hXQ?5da5raYF!Xdo*_C< zV?9#G6DlU2?`C?bc=BSY#7kwM$(XjteAWg}0{1&nUIbU#W73}{hbTri{@}}-(i9XB|3&Rt z{(Z|jS)&QZu-?#3lW)vf?4vbaH+4GWg>XEKg;+ySNsNFsWJmq9h&>PTe^;Mq1@<x zPwU0kO!KqZmfk zNe0}&ocaC|D>jnpIZN4vcCTxnEORAn$yLhGOH+*UD`);(q z9PsV^6VBgo_R7U~t&c!d%v2(&x?f-qOT^db(6xflnr=Q6iLcx5%eJ`q`s$6TCLAYi zeEkhcfD#QRzJ3x5yIC8O6X;tjWC7u+6+ue-dw__|Frm&gYrV$HxlXYN<_G)sKl zRTC@;kFI99nXBdnO?8?3S!UL`IKjj2hT3zFCvPs z{Y->{Rv5D_tdg9s2^pv15Gl(U)|+-y>G@rH^ds==O(VRYy!mBd{LuMh0e+tT%lNVf zag;KiKM`-kP|N>z#wb`gKk@1h(teEf?E7HW8*UJMc(-Ng^@bOft`q?Ky%)}cIxq|B z8DPDEn&0^X%mWJfOAhq8TxzV%v=DSEuZgA>GqsC_hI0hJx*$!h1GXD(lE5L8bU!^!;PNw{H^62aV;kfmSoitjPK}BlQ z`&_^9=^?bB5@DEpbpd5QbRYcY6nE%hyz|u|dL{fwrf9bvzMgy$t#w)t8BSYOApg@f zZUug*JbFtY2$E$GlWCP;*FQkdf;^&4%|w zqe5#i&gFd!&i9X}>*o<#EL(s%Lw)vBQ!*v0=|!)Y)`wrY z>7S^U$97Gb&o?tuT%`n8+TzK%W2L}cU27A_$EReu@A#BLloiMMm$O(}DjlDyI6k>8 zzH!I~xbpt<-+>w;--%%Yjr~ki>SH|~%k{Alj}`LRuI1)ynYo&uW}Z1tu!E7Zv`p{G z8p*j;QV}htjW`3+yPQ12-%cj_^l=^@GxFH3<>qUdxtgD5o;g}v4$HnoKZ_^lM%X}l zzBHGf%S3avGC}w|YZ;j?qi<39tOF99juhoRltXwA<={d)zNEQA4Ha0(Z4F_8;95m( zi^19*2usMZRusf88|YGce5=6)AjrVvqlCVU1ul>oEFtT90Gr7{EBj$Y@Vz*O>}s)? zDIQP8+=`BQ>jMW9H1`QUDxK%|=^*MDhF_3(9fp}-rhZ$m=|_fsjWPvG#SUU8ra4(r z>;a0H>xKNGDjDx!+^jKUHT=WghG*GIp#iVTkDpblePTBtYUmoLshoG-BS=E8^2aaI zBNH^Hw%rc=_Hul2d;t(V*R+{kiGCp-=t|-E(6D^UTElOUeq!{(6x4Z|V0ujpxCBl? zTKv&#ipI!uKPYnk2;;jsRs4UBI$+Cj-ef?&*Y0nsgA0_uzNY*02w)R-RtDw#`4@Ez zwu_iFbb!zUd~Z(1J~-?RohX;T{(yGFvK=n}gHYT%jv+!l&z zow3w=pD=VDYh6;nqo^l%UDu5_Cp z@Ry#pY}zztHR^fLwialzBdOo)j_TPjAjO$7*PrZgjH;4obI{hF+7>Mwr&lzo`T8aE zCmMFpp7iH8x?bexy+wwL=~so=3(6+vW75AO@*ec}hY*Q1!!r+J4-0AWB7aMiclJjt zHq@vgTNd914DQE-nY*>6qqGn9U16=y3ST5S2Tc+t_kI!W7p1%J5?oU1tUnMp$ z0}vTV4dgLqiqp&5OVGe9AgD2g1PhWiLcnM67!k-`D>-Q!Rx!54^|4jJ^L)a z4RC}l5qeSnt<0oQ*KO;D(YEUm%C8_lUc_dcQuI}P5S^*(m%T37QU|#d;ep-`C=YJD z$kT7z|G;=t<@JYsIEH5;C6QJ?(^jqHj*+Wpk>1|(p2>RU6-Diezs?1n8 z0cv8-43WgddBPemy~n(c#S*dbn#Dj5jh$Db*WAw%Lnz*M4(sI^^Bd-++NTpLLVt?| zm@GNCmOI!{cm^G2KSc}Hic={MNG85`#y{pQzUU9v+!Y@Ja|IvOY@$V*QM4uA=4D6k z;BMH&Oxp*uuZO!N3GV1MP;D?}@rFzX`hvDmX$bl>gg$y=q$2{MC`gf>8^_90Z6+ZBSO0RlhfYWj#)7y>#LYl$Dg4v;f~OWcRFr#X|5 zIMnLI51k>>%8U-Mv3c<>1b$gD;2<*S>C-WKhlF0x@A1uMp#bI_Om?Kv>0Ru&gcvb9{nK4JCNgY%UTxPsogq-`SD+LLy086kyT= z3{ehYJTsva(K^T&W@uj!jN2s*7H@4U8;XB!<5pt!NP$0YZ5G5sMyxu2aAJ2^9@&9R2Mn=hXbM^M#F)_k*y>*fQ)mh8NRz zV)dMTM}7T;o8r+s`ctuG@r9?J{o}FSPaS(d5<27ib(oSXn184IIC2t!l_AUM_Q{Iu*7^H1enWIKiyA6Ij;!8Y= z8~_*`HcSs|r1V=+7?k3}F+L5!41A8dIEDUIk@Y0HP1P(fJ_cxVfW9;eHsKG|H$cjA{x6kB(cpSxm=Nh637E6oW!X zjA3g-oMn@u73zaw#^E29NW|ncstf*%m_(j zoq4PiWLlrxdBwfXLTaS5 z&3b)NVs_9U&Pl>ox}|&MomJ0j}b(%n*3*J2Ed{17|I( z2ZEeI>HZ4Oza(LEXeP%zmhtncdu```apddeuRZ^NN=GQ|0VuxEOQp^W>Cxj(voCTp z_B|)h;gX;_=%FPk1bu-PFt%$Fioo#;+2d;118`H;AILj=Z;C^d?rxwFE;pak1PGW| z>~6=)Q*hJpA~IolrOdWO`+0zqeX-}rt#1^h?<*4Pox zKezIf!oc-bD)tuA!}G-{dHhS(aQ&zUaZd0;mR@>Pi+jK;B*C1PVag1P0+)(Q4<;cY zV5kD~WQ3LNoqjdOCRmNRgwnH^vt3go^=KzBVlq!5aIe0+wn`4yF6EV>eN1Bz?oW?z zF?OEkWMPWe-(u^7YaRcxJO=CV#K=@|J-kB3KbYM$tw-DQws0eOJjl+uIlaIDC`gI1$0^CL*}V_-F#6D6y?L1 zdnJ*g(Gx$UCpvpG0Pl*ej%0sNYSGur;MNR?jM|&W^`%#G{)D<-pk)^=k7BZrmXYuG zGPZCX&PzAOR%g#Z0iC6Zk2_m~IXAhdohr_&bmotqcSLeq-W3`h4)uVP@g=Z(cvPaNN+vx&L2Ol zeWFRjx8+F=ocacGVS74j`5aWuXF0-4+>Q2mY~EDb@$C&*>BiUsNoa~K@K`X3)|)f; zH1@r1MwgAK>E!{PvoW&&20ci%X zW&o?V{RJdil14~E05-6nWBvk%sWJ8wfzKsxPzS}vqh@VOQ|u?G(RNgHagRBg`07Mf z%3{(tQ%5UIlrV;G0zAFWT_&gm+u}4VV#-iRYG=R75`n|mS=!8Cf{^ls>ygOA(uabk z`N*63H&|F^SINXMGHV%`GHIzINa{BOKsFbYoc3^f06Rc%kuz^d!me7AZ25{>?b z`5lN~8P0b=O?O@cY!gey>dmMgT<_pD1Xh6Z#}}2KqZ+{$tMv@Q=#qRdr$7y|H^vUt z6pa3CyNC>x8v_s`>gr1LnrGFuY6G*|5UlNpUM-;?F7Yx&O17zZbjR92A&?SQ#e>p{ z##$rMt4BzV8ZL-HtN9rLkHX5nei+kTilTzrpZy~6Q3^KHwW0n(sbAX`T|E8~ux}n# zvl(SEDT1*P7pW_fV-8#bTV;{~WwjHI~_m(yKDx7}NOZ`W}qw z>akM*S_TY%|72sYtI-&HQ;kb4dWhS84n@C0<@3gu_%LWH#&`@8SoQ;9;20OsyRr~I z7X{O`Z@^RgoB2H3;5-jlN~3ds=o*#o6~c4a!rw>Re*c_5lQ$l^^+C#yE6?xE%lT9U z2F&LdLHlH_&)O?Ys4xT{Wyizd_)DqP=_qFdp z!O1iIL%ZGzIriK0`MYN^{wC|*#R#5?y*nz_9~hOr`fac?tAp@xzPh>*U9anJjI9EV zInDw*MC2y^KnUMsP9X;nJ+U3AgI80#%3O%l##px|@}%5nz?Y_2x5|07zr{S0j6Fx7 z=3S@(Ice^^8tPDZ9w43?aXx0-<~d}8I97cN_*)Ugx30gb254^@UHtdeV@G;A=Jhvj z>FM<6(#kEMLcb*@u7&*ZCP@FuDrv>&58Au+g$j{3@rOp5nX~CvcAH-NE53%dRLVae zi~3-I`m=a`pX;4(yu?u=u-^GcF{tER55}#*u6K5`RFuSTZ;{_>z%(q&Y;&jTeL0MIOyhJ*E?5m zbamoUD1XXt*cApIq<>O2Umk+v(Kh&a?;zlriGpmmnZe&Rv~S^?1uUDw|FE&^WxdgB z+w~_jUidc7+$?RwG~4yYo&MpU8itWAx!$s`|Iu-$B?*I1zgGRKV|eaEgJ`+D{BVxT%W62b)bnh(^zR1SO1sn>zyRl z8tf(Y>!WU8@5X+qK#XjIeZ}`{J$piXuG{kR{Iy{I0RFURAJ?{g*uJf+eRb^z?HkXh zma=bo?Wr3uU_7oE{9SQ2uN3_Cwjb|=XT$(~NcJ=HG+J99_H%*tPop?{_P^?%&LC?( z2KMu^S2x(tu)T8jfaBxq-aIAfKdHa6h1Z93U4&OPM}OA{&y6n_4;fc53nVnjV9A!(NmRKL<0WJJE_@xL zS8%<+tv5)lr97UD##1~mr7H)?Pi*RaX#q(?W@0S^`y|d~d$L4R5T8qqUoK%zy98k# zsz9H(a+2&yjbCokGhNN_elUq$Z}~^Y`x^v(E)e+ZKN9bB<0$B232Ql#L` zWbx`ni5F@(GG`h-fsWgYo86)XqD|h4%(btO*|9d4*Je6V6&Ha^LMnC_HtAwBE_M@` z9u&nWhxN%H94JHP^+Z|K>G3p;NTLA$itgAKJHdXH%Zxtn6<6WAtVSD{?{WFz;7 zy5@tZ^&mYNyWJvkdqbv-yG>^EXuX*Zh}ssHVC{yHRNWJ1DzI;iEp3V|jV|uT;>?@o zj38aOqaZtmIAWy|*-On?m-wyc%ylxP$C{aKP9+iTCPr*sNpN?s^mJqPR6zZT8?WTV zRbsQe+@07)fDY#O;8T`sq^5-&qt2)(lLVi65vP*`pj;EJ0s1LeHzM`sTue~iX69G0 zG`2+`o@ebt$^8PVUyNPmbnWr*VYnv{+dy;;fzpdr&auhZyIF4em9@AO$|UcNH{6RY zI42E@E*>fLLlLZ_sjhkUAM0yK#5$9`PXcRE)s1gA)~s%fy%${^TOD0o^B&0NujGc; zXLY?1_<`1P{}?*?R4qHJI|uRGXZH7)&}Z+-xzg@p!EQ$bOMy)eT}LV4-# zSdITIdZGRX@f%Eh$iZ^!msTEA)w>N2zKh>sc(Ciq!jDvSWkY5tb=@8s_U|k4=U;bo z(95SE=us7lZ}*v{$DtfgjZn>?>X34~8OH5Cg%%tOG2&>0h1nH2?V;r3CWAKb;TB- zAKaibTNG2atJb!exq0QALDXhb)GEnvW8wtK{hZ5vMsm5r+Gak>=TWg{*b*(*B&8K%lfdJ+NY&cXeCQz;4&O>}OC##whs{Pt7Nl zvG1n?_OuVX<9f028uuU6HJU3gqM#@q4+0?Rv$})k_R-gpoeeLP#W#C&MLfE9=Zffr z4nFj(h;F5qXe2uDnD`P&)L4P;tcX^~5igg@cjof_3(`I|ajgMx70W5$1M>hggMgT7 z@g;n|GMR^x%y8h3M7b4%nQU}L^sD93eLAC8s_~%sBrc*vVm}}+N+?5L#pC=$<`b$ro@E0H-D2IShGQ-iCpEMfCJeruW2m(M|7(^9Wrp zE8(O0-B7)c2EuiS0(@o}VZ@rVl@w)lEAqc!&}gz0 zPQ7=+QWMH~7AsN>^{iV%`xLYZwuqZ%6`v>GzHufS=r$XZ%I;vCJs-yexx9ojJcI>O zX?cf9WKxCH>9*&8v~4-P#ogdjY)@8n-4M>$_c~&-Or2_qtt62!^0D&dfu@F@z zRZDZ&yJpeW)Z?U}?Om+JY|f1lIEv8F2~VjU2D3~mPnBY|E%CIT8%(zI!WVOu;4`1k zD265d@e9lZDT?E3$fwOW2>qyE+%Z5?BYu&am>v4-CS2 z?{V)wr$)K9#NNro$(!Bqr8g_#hNl`hNN~!o2L~Z`JzcSGG=#$jz%gQa*>iV1RW_ou z0!ag=bmjp$g9 zl|;S&27+*f;L~lsCcmO-w)}k2x|E1FY;VTdUK5=bfN92~g|6!IGIR*eVmCfduqP16 zat9`nbq;$=GIoo(5uMF`%I4^O@+l?RtYyte7Vo^p{Np@u%FRDL|3vn~tm2+u@llH9 zSDI4!Zhk3q%kv$KqW-Cjt^FHezgqMPnR3Yd6?@eKXaDDR90-?uRa0!04P01%4K^?K zF6>zB-E*RcZr-tZfxHC$!P_Q76bk$;ufJxR*ah3&LVD==O&B5p;pJC~Kcw*k%;$M$ zB0UxH8!-RkyXR|h$8;rd^!(*K|92wG7T~Awop{TfOZRu0G1w)o01M#->3<}oz#?5R zKY)Mc&(C=V!rKwr6nm4j?lsqGb>dyfzoPLEi(ksC7{srzKXP9mr%M&GbNCd|Ky1`j zTIK71ke_!;LDw}WpH-fJ%6N=52Ve>Oa>WaJg@a_6mL(zfXat^a5IY`H4v3i?{+os%GN)9P{)^fJKVCyV@nkj2|8HD764WPX;~XOY=RIFLt= z0^Tu9C)NI;(SbG*>+53JS3ovXBFh*W}*r=8!Dt1^sNvdD;I9R z)>`6kPZV(S<&=9i$z9}pO_BXsL3u94f7nCx#L0Jc3HipDN>m_)JXMEl(O^wT&1%#Q z${X|p{1Tl5>D`B3CBC4uz9RfadF*H9Nev9CWEID!67&Lml<~@oesCx@_WTYkq#Vr1zO0?<2}0${C>NAn64<2=j~By9%Knb(cp`H&r6R z_fY!U`G0`kUU_rd=>v}+gX7;=Y2V2-&#d9d3r2A{@`A%2Flv$PaH6Gq_Aq8-y*qGb z>%kcKH7B2m68>Qv>}L0NfwZBoi+48)sG zn4eqh+C1!jgp?xKeH(7An=v`;?wg|6slx{~)U&A>GxK;$LXg}eyXB#>r3zKW=sL?g zHcwxR+%J%~IH)wJ;p@8qAq;$tJfJFJpKz?x5((dvm&@!g|52)mMIxy;T0y2~R zqj=IN#5r2eDJTTIr>x{Jqgeb$G+_zqdNFf~sZ92o|06t!@#M@4^YJXJ)3j}H6(m(|J?jn1~58is`t&@eke&@U^xz2=Aj=qm_XOeU)H5ScqBE<_-dyOFyq3qvani9MMEyZC0A;eOI&XInKY z@70s+z#|eO@y9bP3anw3?2=fXKa%IqzCNDhVzJQpyz(O5ioHKO6M#o}Yx?>tYy>Agh13 zV_Xmq-1i)3in;-Ayw>&s%Z-3F{J9p`730rkl3tuYuGF}zF?>a9Y0s!YrU2a`_JL?1GAP_(jar0cz}5PR&uc$qgWZUJD*(? z3-S1vL3kN+k>u z$5NFcbnT}7;Uenn#hrwjOjzs{CNE42s&6fen0W}119)*Ov9v; z>he*I$3F;C!24QbJpL={B4BuwyRXfie*=M2>0x4yB)WMZ51+@=8^<9*^%4&s99=32 zLYEVE!=oQ|X9oPl1XC^BfvLPQ85>#-{^eY6*}tCVe^!v7IZLoU?p~zRwys&$P1&X9rB|q1Om39sf*oMTe=Y_6u=`SxU%1x!VfTBaSTO7^7p%W5_{_J_ehs_- zPKvs)J1w+?-N{z7`#7G)J<7%();eB(iFoMYc=>ecn7z(1FJ69yppqXi|GlK4=bsWb z3=}V4fTC7_5xWk=%lDCCr`w!kXAEDK-$BL8hv0;>2h;o$EetkZeh3=%m#0h1Ds0O66=QL4A({d zSsrHrm3i~kV0`#_5h|n~=N~Dtli~T8&kunqp#WnRjs>jnd}nWX$$@zGM81ju6mPH8eB?hE&+gwB z!|{fAHs*DV0aJElj+db;NX`B z;?IlFY>^1>4e%er5#A-sflFTe`QPg|{`_!3{Q1+xv3nc-T^PIAal(uqb)W+A=l&6v zgkXtdi@hOV_7mpJ@?)*Dq#l#rso~r667lCMdU$a9`)Y(NMdQyuk}?CtpI5|1H(CX= zWUSddV|~7#5$f8;pSR@hnKi|qCmc(ByG`p#!5iZ!LrWCog81{_I;E&s#xs6`=VI~a zc`UTn@#kv-pf@4tLB^l=X1&t!=PeYOIeyrf{p$hrj={vAAL_831U-t!pMNbSY8r)N z>lS~eKk_X1wHDZ?D&Ic2_@lS~m5fsR!uarIl3q0aSkEjQAHGhT`C#M24<18>;ALUK z_5b~ZqJjAEp8HFe=`*jN_;6tSC>dYQUqAN7hYvFTTluz6|MeIDJ&gk%w0D2`4aa{Y zNBh&hoH;=TM_wjaJpQZsUi^3W_Zj~kTzvG03miEz<`;Z+;ReJ*47Kqd zRg+Zd_~@y3u}UC5dc_Tru=erM(S$_TVGZ%om&dSy4=q0W%R7nIy2eN65Q>bSZRV`& z3DFv$E)&xR?C$CRe0=n5!DsOC(V<^nr}*es#IyMCiH{zwo{ssf{0=HUdNU|s^#w87 z4m>-V02V;-clU*KQ*`5WS+AFutsX_cGx5+6MYhZPI_{mnm5 zONnSv=c}98?|(Dp{q6@DA{$il;{PA?e&4{0hd0u^#`|DL(pp9O#Cl z=`PDheDt|rp*a`7D2$K3j%(;k#YZ1~C@?Mh@ZzI4q1htw(Mu2WopZMX_9stC=K}k4 zKk)eIyAKw{?rC^8ZtCE$+a0t8=?mkdeU(6)PJGGu=qU%TOMJBLNXzpg`*YVAAHDkk z(T&3R==TYAZR4ZqTTy9E@zIfo5#K?@M=u~eyFd5vCL)AAzDnah{LVw5qQ?wlp|y^W zZXE#qN|Mc3)~#WG?yrA|vZdprDQ2hM_x{}Dr8;*z!;+OF(uWO5{DFPr7e>(Ay|n?n zK%&+?K6-aGyAxiot@7=YjgQV?xgz^#CrWzJ_~;a7+4$(i+RO(VAH8;eYG5cn`pl;V z@j!gE94FD=x4%?u|Ln&qK6)sQ&r^H1mfvuEbRG`axM^R`?87nx?2pxa7a#4Yc%Si6 zciu|Znejbf?1}UOeD-`w&UAjAh~q*U?|92qaiCqioa1v&)??{uC-DuN6=$I~ zd<*m1gaB|DPw_bPdvUT%i)ibqgsU$-<}|K1=|(xMlH6?ob= z?uz||2Z;Y-ZaN=#2E?An?&nIu1g3?4g1xVWn{cqd_H0ygbW(UPatEID|5WY&uCDeW ztZg^V_nMt-N9d2;!8&fSFVEkq^z4iCf9*aKlOosw_Iuo>`6d0W2Z0_L7Mt(;zq75ooI$XrYOLCl6P$WL%s&so^{6ehojm*t z&x5f&D}S;VK!xN@o{Gm=M)L|Eq&a(^$)NU6{~DFV9Ap19pIx|(`==$Z^!mVk-w&2= zM(?qIT3|#Vlxw*@Fj5*TwLY+;jQl#>X{F0caCJ&asTvmY2$|Fp9Q8ePz!@y; zpZ*13-R&y>`SpR91)ssM54^nlI;{^JG+N{(bl=E-ZvXV>1)py7p7?}=S|3Q`B%pH? zKall-@9*}3t`9r~@Sb}yz{# zr;mgWUNGN%4bEp^|MX6u#Onb5bSZ!IKe&IoZ6mtRgPbo|{6qWs=|2y&|9HcFAkO}j z;(z{ruIfB``uE*n9>fVOq>#ZgM5q4i?gJTq4?P9lKYc4c7%k7C`#`SUMbfc8@Wy*o z7E#VT`Sa}cTJN8Jc9`g2-h3~p@1uxcLHup3NAGo7AGqeTG!Vh{fzyA4<`4t{--_*@ z=Eb|E)(3ufS72K7;jIsR2hA2)A2@Xn-#K>?_{*0_=RVB!f#qzHBk;oZ2YgTrnp zXsdc6+hzUxJKAu+q3RIT$zGe1cYnvppSI4DdQ2{)a+G)euAWf^XYw=*)@t1T>3IiP zp1+^-B+a0-(FT$z}$(KCn0Im0lm%LXnx{hxPkF+QILio@YA=n_GN+;MY=Oz3rdA z`2cn&?7vopgssnvW4R*h1EVCp==wl4v+Vl7DcTGyFT-yo{ORENyluQVTCwt#dH7MO zVDrqkaerZfzqE*J!n&Vgi0-E_Oc9r9!~SV|zjlD%a-L^^`!jaL={IWcKlb5oczvJ= z3-WH-mouMa*#XuEG~cZcG~<-FcmK6_wk&vO8?@XMxj$oY`=`rjn{0e^J3hN`1LC72 zB(HRQ^cNQd%Qs7WbU%SXlfRbn(LJTHQt{EvC0C;&`>@%yjgQ_>3sevveO%0)A0J(D zFiL@qV@68PuzZKtF1eDe2SwLwd~`lm4?gbk(Q$G?z<+0abQMDKMdG7Rz@c$YPU-mQ zGppfKuigIX?&~RRf&J4*e_ayRK0f*zLgMsf4e`-m9LNSfwD{=ug4VjmMbN1qgY1|J{24>vaZ@sYK@Ut)XlEdG1;Pj8~0j`@ptwu6d~{%|XQ zp!`7Mqi5na&O-kN^V?yj)cp~hSTuB3mdp?OXDa|+{l;ScS%vs#jDM!|uv*Fa@rL;5 z$16TMS>;ATFm8SujF+rUeDoN6h^WBde*j)&AU^spzJ9dgqx1gu-iG+73wF5uBXZa9 zhWjPl{*q8Uobxx#fs5QPv4w1&)cEL?xLOxeVVqLWzb|4}AahJwGmr-Hq^W!q~mMsW1cU2%-4sycLi-I`IhO6pxQy zh^i7*(9ptK#z$vp|C^aw&-+xY0elc=<&_-Owg#CK5f(LWQO#58iI zY!VSF5+7}3p|y^Wem?;Em#4Ft!No^+WWCby(SJ1xGIQQ%eDofvKG6Q@o3w#Ok*Iaw zKYiI=?9Q6wqX)2Dk@)CNl3p}ETFERMA3ac;`C#LtXY+2)@c!wWukcp=^q z(ZxI7$GRHtTchi`xVoBEKkv%-%sl_3Z_=ccwm>RWXNF&%dFQ@o-g&pKkJ18k@_eT; ztv_mGee}1%Dp%LOq0IF4(JScsG;YKw$=7}>?XApwo{lsK3SUbTje^3|u#N>JAVtE6P+A~e2$K|6Qr1MQ{LswHdxqQ^a$|$*+ zej0!IF3T?bbKTmfDVFj8go)3`UOws`X+O;NUt;@9+5RkP|LS!6w@LdEw*NlcznbkI zF6~#P+rM7gkFx!**#0GKe_Lt4Fx~zlX+OsHe`WjUv;7Y*Ap3bK_Sg2N#nH7ik6pKx zn%H$~sexIy_5spPc}A?;e-&L#vTpy?N`FY{Yn1+o(jQa$6H1RL{b{8?tMuoU{-V-f zR{ASSe^u%4DgAS$f1&g*mA+Q#|55rkO8-{raixE+^dFV}lhS`t`fp1AL+O7iUC^@Z zy8ZK%p0D&?O7EleZIr&9(sxk0UgBqAE5NTls-`D2Bq(-^ubCWqV!=( zAFlL+lzxcPjY=<6da=?=m0qs&!<0T!=|?Etr1YbdK33`Dls;bR6O=wl>64XiQTkM+ zPgD8~r5~^K6P13l(oa>oP3cuiuU2}E(rcA|n$q1$uUEQP={}|VmENTEIZ8i6>1QeZ z9HlQ%`qfImM(K-{zC`IumA+i*Hz+-%^qZA_tI}5}eWlXxRQlaYzgOvDrLR)@YNbD< z^fgL$4-p8pq+mjB!^w5h1^vnWX&---Za-ExgBe(K*?`ecn%me$DrLex|!6{tX)1ShF zw;7Sb!?!;s$uds{3o*E-SsZW}{M+Z~hNN8juit)H3h%c4p<3=a>G1oLah3KB+mvYK zt$3^Zn>T$9+vdiOc8?qDhFR{T|ne>vVMCk}9`5 ziUuJXYJbyF9k@uA`gO~8(QRYs`>;-Tz!GAv2NA|2v3D1n4vr>3{;ZHCB z+Va?*_{cJ>ts|1ld)B6eVSQmdqUVej`vtlod-i=PPj|rLybtnpPv%jAUeu%KgFVEh zJxYamsz=ZFd+46;K_`4t(@Ed6rQWU6^%F~}`B|FR^Nl=lW8M#JRkaU8dYY4d$@mQw zV(6Y$aTHx!v2NMHy1|0JeOJ5N<2v2B)S`T?8}VEZ@l{?=;@5lh4Cd?J=|Ky;@R{16 zoy5I81*wI3-}Dww^7RWIFMDy~W zdKJFeTdagr+|F%Iw`6|qwM~I0&2loFll6mUXDN|1|IOjMWO8o?q+vQ_ba}5oyne}$J_5n}5gM?(k<*CmY(&_cH>OHgT z4R(jLqIuNf@@9_PQ6383&>EkoZm7XtUu_ub_Y5^S?DaAos+@)zN+I&8+Sy=m)f>Fz zipEio*IA#Q2GWYb;d62r(^9z7Uri}N&U^ihzRcknm+&wpeiZFwZph4Yx5~URo<>T0 z8EOud+cTR3FSZdf{G)`!Q&&eZ9F=tF7*|7st9~YBixN<_`&3jZhB6kdEh3r7no1>U zA1NZ!ZZ?d~xl%AZlnrG_lvVj}5#`SuI%$n; zPj9f#B=e9%Yh3hzm#Pmiya z<{Tk@Av1O+`G1~HM9v}q$qWa`e=-B-k^f|d&L{t+Igk7&GjB$GDDY>|I)mI{3kPZ75PtQ6w@~4G3i_F+7 zLR?0sc#ZOz%s82MlNox8@|(=S7nI**dcUMna{;+erk+gO*W?eGhHuCpGQ;^gF`mrW zHaanfOwo_RM5bw1ow$|Es6i)Ilj+@8C!QtKI7}x#B2#}b`6=b4^vs3yOd0(~re%~) z3?tKclunE!Gd@u#CXuP1q7x^R879+BrgyqdTtKFUUdLY|<<&Z|lFTTXYsd_qM*k+$ z>(PlX$TZH?i66<7)nGgEH?cNP)dro3yf^d^x&RGTg1v;!)JKSDAEAp46v9N;4~5Ew z&N4!X*a)GEn}mpu7P{~_k{vB{k%^Q?lgREQa^o2KeG18^kUgr2#;HPQm`=}67dr0@ zvNwb3=5b^mCv-uoGvY+@i|R_`RQjDhsTj19X(RhKa?e3#HMw6y_GXg1H0+Ak(sMM~ z)1O96ACrtplj=}>7Wr2%MA##A(bGxpqvxpZ2tV2P6E~7QszWhpQXPsnk^Q-3{|vH! z7Rk>h`&4(txn%!b;sDtTkbP;MNA}Mn`xlV?3(5X`k}n|pRCmNBWd9Q4OUWM9p_nwO z4#h7c`&W|vAlbi~NN0$33KUR^9>Q4MYa{EakY!RW;Q(d6?pcBuK`3!~s1$y>HviC0W`$B}@CwIw= ze@J=w35Dkqp)-C;zkf>Z{!C&2mE39;BHBZz)8|uJ>#5UO`cm2JtJB4HCho7(1$Lpj zuqV~4y>vQ*f$EQeWCxIJxK0-uPHd#QMI%U43Dr3{n>&)8Ka%WH`L`XV(?!S(jHmil zq0`xpA$MrTZ8(nV!ExjcnW0m3G`b^ys>q!xa>q^O-c9bL{OJSygFe8;ULWY8^B|Z9!#o7$p)idw3t$$)EP`1Kvjk=-%rcneFh{_or4{>0L=4X zo)2>#%nM*%2=gMC^I}-Ks3L4plI%YsAwKp zD4K657R@V4>GyKcyxmCp?MUL$qWPgQWX~*`_o@)hlO_>Q7P{vxLiY!$#m5TWL9|f! zEU8l~h3*$pmrN77;nRg~HK}p5X!jVYA#%}T_3JA>3(QYW4ubnlU}oG6+fAvNP< z(HuQRG=FOq&6n6kbG}0~@9U)a)re+&t!N%_8vT2gXx_b!(#S*4ct!ItpJ+bJPho8& z)g+ovo-LZsm_u=$E1JiiDVo1OOEh10j%Yq4KyIHWn*HaC=3VEB=C|evo&N#~KdDk$ zn5(%^G+#|BbdhLYI-j0jKz?0J;kZOJ52l5=cSwz=g*jT}ZeBxb`4yr$5ERXpt0@fE zh-R@^G=E9zJm~9k$Q{Nx64J|fa^tGA*mUp&LVXQsU@UtCAFH=v!tS=J|guEsXs{d zxk2RZPHHfzVk)&(>sV)vz0vKT+F0+LWk=0sIP++w>Jl?rhx5wkHm|STsD6@`n+i5?}G1@)T;&Hni zbIoRl`>67IXF<8Kz-X+nNLz(fcCun^@cU@vuEHUIDsa@=eOABE?(#QOILv1HZG_$J zro^EgBl&~bTshiG|0_|k*Y5IFOtVfaAg&x^oo2LFj^zkzf>!5ga&AD-WH3s7&L*d? z!D*#UU!U^YVj<5f%dGT&2CqjbuSchP-J$4}(f%cE-#N{7b(V<^&R4{xR3?MlIiium zRYPUKZ=O22(r7JoRhv~F!&i-Z|UK*2b*Qg2n|^K8%g^uG1TxR6EI!Wkgyv zYFkEBlg;&(5?ype8#lUzXo&pwDmOPdW%y;|v_!HEB0n4JJw7^B@Hi~82C{eXp<<8R^?QW~z!@o?bDxgM4xE}@ofglySl zA71UT`kcxO7B_MCgZ6AoOA(ojbZUl1Cyfq2_fslurcP98>~%RE&e<;Ni(4%D%@asg z;&1d)nVCR?FPT%6B~z>w6X+l6-_`FjW=jQxMnRJ+ zWv(5^{gJtD$~5a(?-UyPpfguJZsOT3rTEJJ+gayz)3Aujz8Y-Ia?YiZ%ghE@?kO+Y z$h7t684omNW|2QCvswm*^4CmRXf{`wX#l=8cg*JE8k*81+pP^sLz#eEa>1rK-sWtR z(}s?+5^dqVRF0*{)?O<6N z#Ori|jqoU8vEoLeeQp5#oNE2fdM=1?(F>iG@%LuU?q6 zjYGF6g{eW_Ld%|JO|e^-zt-{S7G$&CQ5s@S-9Dpu?&t+l)>>ER0cOgv@*{dx_Pux2cq3PGOb56-9AF; zU1JwVNWS2osc$Mo-&C}reUp4^KXXMdN>ucs4XfzV!OXo!p>;xKVWRI)A>Hu4BWrL~ z3dj|;LTzx19rQ9kzx~fkY{dBL z>Ya$bW~~(CB^o%&vcAzmQpyEErF-(Sh03Ec`Dc;$h-jAgE9KoF=4=V6q!!XM2R@5q z?MN5)wpFSmFXt$ty&Jknf;I%Jt6Y97eab*3wToW&fgT=h2RbJAOj7{rf`#hvkaK^l)PHF-=s*EiupShs>q_P}kNIQx!!tcRlUc3We=^v5& z29oNprd7}_R4I2&$)St4p`3= z$7;7lr9k~`Iaahf=Gd(`mf*BH=Qx~R`Gu#X#4o=#m7pr;Ojo^?E5_f^wR97c!R(?E~N4`>PcNq)?U%_e2aXwb)mW(jMZv(8aRzmZAf9$}S7 zb%YECeM^f>x>-)h!b3NV3F~aS{>|&+i|pxgN2~ZqUgF^`9+%jmhlmd*r)4A>{Z6ac+3R!4tJu^nA_>o2Jw&LCLJ>Vq zhG#F*=-VhgM1a1U(5q0?7bl+PZyj|$R9EUsC=Bw(H#zv1$Dcaurnp8|>i5iY*3+2{ z8gr_zWp&!k>vUy_n9DG#>vB5ls7u_S8T6q6XVs_DI`8xc`T6;Q8|m9W`Qd#i2Dl$`aWC8rxx80?e((mJ zAWMs-9+e-O%p0SPUg8?ZM|-7=WD`F>MJ`0?qSXBS$Wo<+iDV)2_UwanZJ-M?sNzrmuEZ)0G}vylwe7v20tag;&b7 zivA|kE%=>GF`9w5tf{E0y>k3kv8T4r{kJ4u*q$odhdpGmyo9P-zFg_#olO|nWv9-u_d+WzfE?cZ*ltr9B+WT+B%51?-DE7|e|-&S4TOWm{m+cWnwd-a}j zL?JUf^slzszdfn_+q1Koy>MWL%)V|Q)$A{1oeoE(9)Gr5*6d}2azC?g8br1frEj0dE&ulB4Nl5ttNwZj{* z$+zAYXr35C@mnF|7kfaBv{!X3epe4$Z~T@F+YIr$VOXodC5{1$XNRPX@e+bthf%-# zg<9&lOE$=%JE^VcK%TD{zTPysd-!HZlU2hhPLIhv4}79V7aw&j&o4S?z45#3pv@4! zs}G|1{U-A-^uFp)-|blbeR=SDG(mi1REq>H_rFuy*{L%biDR$g+e6#65t6V^+m_-t zN|pE`)n`0U^(*tDC0WcEW9`A&ZwfQFQ|);4`$Ed(C)Ln0u4?+%R1*>l&xvKm_JrZ5 zqV&?$4&VQvO#xaM{G~9p{I%oBc#-USi>ZP7MKx0wsr89NNQH+ zt7dggwq`YB<<^X&yY{f$Gov!K&zm+3FO8zMGOQZ<&s9VJaqEVD(}w8NBU5{fP3!x= zj#ORGYooMX&!!E+`$tkA_VtleTGhxZzJ^Cu>1Ue$cT}rWM?W7$nfV!yr1Y|x>puf|gDiSNo1r@zIgBQ@tx z#dl*xPa0Re&`V`*V!Qn3UXP(0k5PqB#G&Gdv=sVfwp=F=A-#ZA4a%}jpn z@xfk`#q(xLZwl^-;umureYy|FR%)GgIzud$j>{L(NH38uLQhFOwv4(E5m3LZRQfNZ zi{4go!?=`l4-I0?IC+F)GM%t#5KoM&v%BiWv*YAWWrKKmoIGpOAfn?M)QJXsPO?F~ zGfu?!FeLwCJ?Nh%gE62B>5PV8p227|8Ui}{F-Te<-()meOa_ZFkVpSA#(NlzCS!O< zsmJq3i_j19FJ_G887;=3&TB9lj9!z$AeF^p^coE&qXPQD6v#7rrEfN)O-~Pylcu1~ zWC@bz(mTCTFGE5BvIO$zIit~LqMztr^q)=dC4&Mc9WWYf2ED-))&+F*fZn7hfkg`S zHiH7aB)xouf^VRp(I1)gXCqtE5BYBrNykZ-4oJf!|0kynrU=>LKO;Fr_VpyvlfMRw zUfL#`(q1d4Qe0}ULw{9wES$I|nX49~Ugm+!8A?%^p!7>n7t>Kbgz^j#9SKb`#p8J< z%6FABMq^Y*39UE9bzY-|o-@h+s0^uMA~TUPL+gpmNRk=p5$T8WQTn0&MXpmZlb+e6 zKL&kNC&NeOo4`ws>jP8{>A!qgB27k{*QA0f3#ym=l6f8IK^{mSWcVl^HdC~BphqAt zmQQX6buuhQ1G!6b3V`~LVwp!MYmXt6Pql$;P~o!}DFvi0a!k5p)U(?Omz4w31wB1W zQezup3Xuv|#%J4?KX`*OniSEsD;`a8D>i7 zPPo#EM=dJ$g8pVs6=I++AmZEc_ptj`GV8Zzz6)#wA3KfZ7VyttFZh<}EDwUG%wP_K ze+Ngww;#vyIQW?3ne{uc|34&H&wRoOEH{Ezf-T@?uoryHiEKX#z6mV)v3on8#PR^R z25i`ga12Zws#`aC%9(HCg_;zpzJh+PGaq#J2;~wnZ!(a=zuY>J} zz)yms1K9rQ)hyTV$z1MaHi5qcd%-JeSRUM)?K@^NN5F$?nd9In*f@~w&vCI_KZN(L%P@X^XdQC^{3bX8KC_YsUUIUJTcW7k$rlZ+@1=t3@ z2OI=H3J!w@H}Uf^@RQ)+cy{j};4t`8a1?ybY<@ma!S;jT5O^gx0^WWO;x~cq`@lBv zTi_sg?p(HSoXGaC0$ac_a1dO02HTH-CxBz%@4&%H>|XCP*?t(j2RI5|0}dR+_Fo2v zz~U@^J~o-<$ALprm|slD!N#-MzOb9Lx42;NVo|N$0XW0)7N6 zDp@`_z;Yuv47P!HJrD9}Z2xw!7rf8;a36dL*fO2%{|=6W>*lfjzzmju1P+0xT>$sM zuYsfB;tN?WsGrdZA*#T7@D3NT+z7rBYy;>;~1@be8|3wWD_@DJ<<$HD&xwo$() z{eSWrwjTfwT?GHZ3&9ca_uv@#+{J9)K>eb0Z!OpaKK5Fcd%=%_L*T+CERTTi1{-Yb z-r(z4ZUWy5wt)9p3irX^g2Uifma#l$XZH?U&a9_?R)+Usa1dN@J0TN z*u7<|nT=rUgUlB2eh)DR!MeXON5G$gMLoN>&l;8+z`BQ-P2gL>Hn8InmV3d&9%T-J z{{%F4i13deh2P@AAOfO0zUseW_=^O zSMfgF1DAckYy{_j$ZP|@3J!o5eZ=w*c-+U#F>s$xm_-x&_cmA$Ui>M`jo^2{Ch%D? zmfOHhpD_o(-p}FwY<7RfKbZ~SL0>SN!1{kNd%@yM<`DQxa1{K_zgaHku>0Syg?r#v zzhbt5U;htt0DRro%ptJ-8|D~z%zv5nbJ_j ze$N~Se*)H@!Tz271Ivxzy?$i2fbRf%!BhW_%l*Ojo@Q?v)lr{9UK7f z*N5dn@EzbV_|U#Am-9@W5aMO9IG1_hHt-+p+m_h~p0OR=2OqgTa~OQU4$M*Tk6=T9 z-G6dNxCg#p&ujvp-;db~w(P_l1n;>sa~K>2$H9yHvs`~3`!{nJW&`-3U71bb_rSIU z@5b^#f_G;Y=d*jy?g96}3kSeG@FjaPd%=Odm_uOq-po<(oPo?@9=m_RAZ8P|#=vX? zd-h=tfJg1i90G5C0M@YsV`9snPHFmnW4dZ%rWr%63FMX`<1245pa1K?1LwlGm8am|2MD+ymSQ1ZQz2# zm;>Nuxy2CtgP@;LaMNzD4o*uUw=FdM*z$;>A3D_~oKr?5PbU<&nMYym%f3bPknb1HKXe5jQ<1pX5o1%F~=c^rJVomn4b|BkIkT@GRy~ zg5At9@R@axU(N0xUC$f=ALN03@KIi7v5@V53pRnTIGyD-@cusL0QhBa2t2=m_a! z_JWVNj5!1zd^vLzJp2k~aUHvFypq`j-Y&>&1Mheha{&A^q=PhK`FJ<=~ z*DzbaM=xUbg1-d^!S^p_c?f*QwaiiQv?a`O@Ltz3>zA>AkAjWh6PL2w0{%DH3l1)0 zc>sLga^?uwe?4;yJp2acIC#K~%*N&H|8^l}3-~Fp4LtKEmIuK0o0&u4lWt*-fv>$4 z^6T0CQ*L99fJd%?eek5)nZ*rk|9h|reA!Bt+rWF@!5jcT1`dH6?qqoseAr#gaq$1Z z;zssw_1!GjgA49qHi9n&TfqMU2f+4w*?tiGZ*Uk~cOT0m;67ny5n}&e2kXJ%`{6(M znpJQgeD(v(Verh=%u#URgUp7T*!^a(5&YdlEH{B8e`EH7uUNwz1fTFQa~QnCBg}E| zTVVao?B8vVvfKbZ?J;H(I0_DeosY9T0{#swZejOkKLPi^+dK*Pz&5ZA{07(yE|0MN zF!%v*41C~IEVtdt{;dE9!2bu1f|ozd_Qh>%|2ME6eA6=sAGqLIW-s^}a1i_mI1K&+ z905;xj-S`BVE=9ho4~!EXSoer0}g^e0*ApTzrgk*;5FbFc)*J+7q_#2bzmcS8Q28= z1snvQ^b*_$F9wJ1VE4q!ERTT~g2i1d{}pTiJN^#);4i@XyV?GUudv(*egkX)SN?FX>v+{g06-(U`c#hc7w@T1@; zc+Oia*N6G}lDC;n;CH}b@UVAS9s{2N4&Tque*%t!E8m6tt607oYycO%$8sb1Td)^= z(fcg7J;2Wo{(w0OUIZ4aS-$s&EVqEa1$)7#e8ln)I0}w{t3PJBc#z$D3v2+7{eo*3H?f`0%7X(x#@5G{0^VPfAD;80Q@jG1Rn5D zgaK@0eiupfP>(@ z|I79bPqKSXunBxS*aH3)90ni#Ek7RxUk5fu*u8&)E#TqbAwFOySUkn{Ltqm)KhE}T zPqX}RZ~*KD$H0$)4bQOs-@qpD0sn)0;0AC2{2Vw47T?4Ev+Ukfa1i_^I0_!{1KW>- z9bo-){QQGp3wYZf*}fM%0vrL)1INH`gT?dg-oXFk=MCT$;2`)ta0I;FPi#L1UI;e4 z!0x>dHi8HJ%=W|JAlURG+aL7{%cJ1m!LgTFe%!At*T2I2HP`~K|BdAV@MGW@c=+!u zm;0DHAw&Z>2=4m_%fsNqz%lS?VDTzH|1nq(E^g-Mjo=HwHt<{E5crTk*?tsk1B=(# z{cFKq@JHYvc>i_$d<1+3I1c_V*c)Z{%0!;pp9zA`0~_C9dAW||Hn2I5IRO3x90vEz zXL$@<1h&1&?(NtU{(-~bF!;eulVK#yH?#t{2e+v$RU*3l0A#m}w z%;If!Zzk9Tz6Gp*pXG6I@B`)}w&Ul6A2MGCj(^Pj5Lo{S^B>?4c>4DIyzx_(F9HX^ zkATDABX?l?aq#(IeT<)f9c%*s4z_`(?+E`sWBV6^ZQuvNLGW@t+Yf`Q`!Pqs6L&&* zz=!S3EIvnk!3OZC{wz0w_uGZp0{$9o13$Ve%LCxWyD3I0XI~9051(#m~pqvi&!~`mdOO0~^8R zd$auzcpf+ceij@De+}0Ehute0$j_U=^T1y49pDi7S8yDB`5=DY@HM-)kAc|&egJF( z_uGf%VXy@p1Ou>L1@ z{~u#nZUWzIX10OPAIIzk*B#9q1dkZc90m`rV2*-!o4_0ce+(8sv;QwlWVr#na1yf- zJo6Z43wYdQW*hh!uoryR6qX0UWftZz_+xMkJnvYR>wn?!96FUb@+)&390&KF2K&FU z{6(+{{ONR-d%@4mU=D%3$H9H@xyLidz++EfHvG=+_c)Q+0`7Sda{wFzhrrLD%KOv!55#(90#9aW!C?}{x#T`4d5f~%qH-mRm?W9&cW;je+UkOBh@SqfyX$R!{EFc z<|z0Xa2)KJ$#O$8hi}hX*#DFH9k5u({BIZRgKs{K*#drG7IOf+(9IkMm)9{z!K3S$ z<6z-oHqvNZN8|B_!8Y)NUX};Jmz>TV2A}3*j)12(Fvr0A_?d-{-QTW}*#KS#HiDmP zVz~u;-)v?t_{=%X0q~T$%pve0XE2AscY!0|>N8m$0}ncjS>$o}o&y`fv(9F@4g3Sx z3%>dsmWRMY&t(pS?*m7`lLIV|gZ~K@J=p)#&tthByzBYQCh+}W3;1hr5Nw{u_G93c zU_(B;|1#JF-uD8w9|WHY4uk&*j`rf`54@1=$HAwAExlR30&D}n01ko&Uc}EE`>_3~ z-~jkqa0vW&a1^}HeE1KZ0v3JQy|cjv@Q+{<*t~$Bw}1m+8~7e@0Q@yL1nze+KOX^? zfn(sOz=3TzJfkjQ`(g0A;E0~((=SDQz}JFpJF$G}Wh@VX@3@>f1YUCma}@j;Sidtr zpMNFGjo@3r7O*YIaxZw$Rm?%~XW%IK`m0$U2TxnbZ0OJaiEEfG;Jd&<@JowW9s&Co zGmBmL`GRYiZQx(P0q}w)ERTctxQ&hGcRnb`~e0vrNAeGALQ9&CTct;`1S zb6^wrirZLj16xm7 z7t7<|%fWgBKR^9$xChR=huH*v0&D}HcQ4DM-~;btw(Z02eGU$Sr-oS`0Y43ngYUeb z<%WIv`KwnkTfn^^U=AL@@*P$)hr#_1%A#e!o4~(x%6Gw z2TysAIS#IUpV@FE+wb=QvkCkj*ap7oLzV}?bssTDz(pT3$G|^=^(J=z&QIVz*!n5l z1J92!hruI1V~&G+e9mkc&F;Mg_JZsG$?_Pu?-$JCD7OCu*a-geUo7{6pZStG1P=Wh z?txEU3-`vbdxw9;Yy^J+wt+AI58MNne9asI_xXl729AJ@W7+-s|FYZ$p7AYn5PZaU z%yDqPIJ4f&&wm3pfS>;#%T3@Lzh{nBu>C84VD?U6w*JT*0`L5P%=(Eee-Ug1Fa3$- z7Vxn@Guyzs{lXjoe*unzm;4I(BzFIV--0Fo(d$LFuILT-z^C_Nj)I5uW!9g-?)?|+ z1wXM3%Y)$Kw`CS5vi%>x2Jp)5SZ)DFx5x9~d+39BGCd;TOLl~NC$W3u^vnkE{{5IO z;8(!`@a&!79(d5s%rWryU~w|Le`kNV2R?om<^b5VD{~k;Y&T~8Dg6BJU?cdQ-C1q| zhxcH%fiE7wEUNhVxqC7P!4-QkN5IWsql4|Q+MDGT@C5^zz2L(KF$cgp19J%cDp+65 z?w!96f`{2TIxCj0K z90ET!g5^>04TmuseeB+>!sUF?9t1ZY#T){cjA4#|{{S23vU_)qg&gcOGsnS?5$`|?VWuOUE|KN-9q*bOcRUjRM^yaZeY zUJ0HJUIV@i90lJ5{sR0E_($;HCHEAf&qW-+JlbQ~k@^?oF1)|9C)hTSxgPA@iFrOa zL>A@#%tzqpfy@Q;qjGNt*aydlF@FjcyE2cU07(1MJ(w4PV?&r}x<~SW2uxw7>5Ag8 zo_V_-%zDUac&g-LBFky`q1ZBs`Pc-HXRZR9j$xji;0or;z&1PcQ0gmXc)WjSrf>MM zf0%DxOKB_RhAK|q%X%?K1~Sj?&1}N>qNWdX4C^z~`!WZQX8SX@VYZB7?!O)6Wz4I# zXAa?f!+$B=rT;cF%YWaIIc#O#z8|x9I`boxuhM>a3iI*(nN8TQT}b6Z$^)1W+(h{% zIld>`zhgIM(T{l&<)f6xwqcG9U=Bw)z54CN9NB~AyX?&z^)v57(1`4^z39?&-l#9t8Uf+5Y7RGsjL~`x6dfHiAz$6wmwMzmYk*3)_!^4dAy6 zSZ=t1?O$KWEIe#~S`o7a^Mg~0VgGElzkdmH=peTL5jcJz^S?@2ZakIk*Ob9MC-awJ z(;duB82Mjy@`9>l!ENM<9(%b$XySdR>kV!3#X z-OoD${0ws?IPfI%DsUM4b9qO?{bN~vF*sDo+{?sr+e+pOz|q^8cNop`h=utau;~fr zzk|b%GY>wB?Z?M({B|9~tjGMk&sb)$JImu>Bj!6FnOPn^gyk=eWA-Bb4?h}wGW&NA zI1pwYNbQ^|pAlx8Vm-Cm%znw#=2$}P{srI=_)2A8sBgmS=$S>33&@v)hkZ#ei}cP#y_O-L6cMCJ1dQEPvei$ z_`hj9iu>VY_@<}vtTetgjU#FNQ5tW@^)BiDera5s#uL)GHjS@O<2Tayt2Ex7+l{3E zhoo_78jnijtXlg1aP@r`MGZyGM&A=lNw2C6saRf9ZAYWYBZ^%NR1(N9;x$5%_DUIsS8P6M2fzkBNmXln3Vj; z`=z8VBXv2cD@a{QDoE-oQdg5&Na`9=V@a7wjU#n5sqv&LNKGI$k<=to$B>##Y6>X} zsbfh^B~?jk8mZ}|W{^6L)bXTFAax?ClSrLR>J(C^lCqMrky=b@2`M|NDpC$o)uf!H zYDmo_bsedtq?VDYCFLS@8mU>N+@$JA)sym&@{(Fk>UvT)kXk|Nc2X-z-9hS3Qg@NM zo76p|?j;o_bw8;GNUbLIAgPB){f(6T4$;G;9wGH8smDk?PU;C#Pm+p|nnP+Xsl7<; zO==*iL8RJShRz|o=aLGL8bWF)sbQoJAT^xSfus&1bug(zNNp`knak25N*h_8oY*DKH%kIC%rzW*Y0y#?Y@}}TEB`Dfv`LLE>C^e_*Oz*H8`y` z^sys@C!tqxCJoxQ%gOI$5W#9xNf$~n;$2|gm>ZiB0SW>>mg zSdefz<(o#GO$=2`3X?^WzkOtN*uDNnU#Ig=IZmH=vNt$ft^_oA?GC2`?Ps5;VoWY5 z8sn*V*!|9WyDXE5Z%MHz<+E;DQOb9xq}}py_{NjgR{1!50Zsd(=JQkzk9V%s?eTak zR83B9Brll)%V8v8`aaS z(+Y?y$5^Kst(9Y~veZx31g*}~k3LN3thUzKy;k|bYp1V5wzVUyWTROAAW=2><<8R^?QW~z!@o?bDxgM4 zxr`De)9y9mG~RI zltL5e!@e@7C`+bTD<;rC)W59-+TM_?%am{VvN`33{LH)bB2fgD*YsUUzpv53{gKSI z%49n4^r88olfO(mUFI}s>pIrdC^9utv}CrbR{#3 z{85?JG8&S^1+R#x}qAk3a z%CQvL+Dp0o4HYyYrJ||%mNfl9W16B|%dD-vl$ufJX6|&SUMj~5_Gay+FxTJW`=%U8 zhpjzQ_8uu$vS@2R)Y1>-NS<_`-X}*AY_s+`nnl+wzTe5AwAkABWbb=&DVw(TKP~-F z4&_Vt>4S18(Kd5GgtG|AErZ4_b_YqbGq}0?G-tGljYBeyB8gp2_O>*=6laT`(s~-NlqYlwq^8BOCk$RxVbp_VwlVHvN^U9c|BC z%~2}yk~dl>R+h^X4|Jr8>^4oMgKU=6UBH}+O?jPtj~ zoD2Mj%rhFNf_q zc$}D*WS)XlmdY_ZO*zUsGUeFN0Awr)Wr*bZFE&U!|IJ-_|O7gOgtcOF2utv1j45?2~EcIzCYb$8S&>+zipmJa6dc z(MlbNcJs)z9?^9B2&H$8T^u2~99!0Ud91P!eN)kf_D%AI&CC_OC{fXiHmssc2Q&8` zh1LlaQ1l%tq#NFMWDTxL0lA`9s10sulM^q-bo52q$(6LYD_4xh!Y3`>jrTgCfmy?dw@x>bcy$@-{ZqQm^Eg zWo@A1ZuQ#zwe;$fN+THzdh2LoMP0sO&=Pe|J>58iPmq-PF%7RTC=F6?cqRM7-Xjwrfxh+%AVp+93I zp;=p|R~ySIr8Zz~c^t1TPfWg3*F>8Gt=gDP6XQ&ykH2z^wF8sCay-+=EPw5|rVeLv zB(Ck6J0{wmEMt)pHIpro4Muw!iLUapa#Q=*J`ZUWm@#ju&zOLIL)((p)mjtR#MCiQ)Dh)zi%rlu@jHZ9q*5#_$C&#MZIS8hfMLKee&m zIf*XUa69R@>GiYe1H2!OOd&*&N9)#BP3jaQYtU> za63md%6of}nJwa`^<*7{rS@-(RFc2g>pP9EQw zLNmFakQBO|^)qR(s6=B6l8+P`tL)YE7P8Mi*IMtKZDng?)@MQELXnlaYwGyxopbzF zug_ISF@vuxqJ;wr6TKWxmjqSFK}bP?qt@qyz+OOaAzSHup<`?0DTYciKobFqi=US|Di+U#oAqnZk(3QW5mN{=lbqT7Fb zPJ3OJK$bQ*>;1mDGUY3atW_C8+V=Bf3zKbwHl&_5JuUJ!`cumt!rJy@B{goE!*#&F z)JSHCW841X@hs`v_OtE=v%1e~GM|+xc2JATtuuaT@OxZTePlb=q5i>asndE;;!xL? zILygjfc-&Vkrsz!*HA>6N7q16H&I>X@>}U9IW=Q-QGZ9T>-%ecp4lnso_w&F+ucN$ zBFjKhR^o6w?LM=%_>bUF@jUmW^q;dHEl*`9!jQ3s$1(#4p`3=$7;7lr9k~`+2vUsbL>_e ziF498$KmwKd*YH3zjKbupP(w|OjkW!WaoF(CVrw`D)omNpEH9yC<}?FRKbuibIu&A zmu^*~o9Wyx|6FU6QT|$IZ~^Uj@3XliKGgQ+l=I@8rQ-`j@dk> zpk*N_rIHooN(jep{17G&>*jPic0njNL0YDrP|fKS?Xs|Ll5|a39?S7`?V_-5f^(1H^p=5X8Ilh-Bg;vD~D>o4H+KekLBHs0`b!N=p^oFaYLQRq13QJZhZWO!R6Xk*QNmH6OMny?|tFG%ZJuOeV zChOB2O%?!jOsOqkJF9Zmy{Gh!i=xnK`M!0@Nox&o9y@K6kXAywGS$22IE}W#r3F5j z>dBG9MvG3;hps6;N#~ML*q{+j`coY$ZraWN3VydWb(be)2+*lL+|96IE(dO{_sqEq zPCbFY@w#9-l#7$R7s`t6=_5O;g zNmcS&$(r7zyqX5N_IigVzdG|xY;~Bppd_(jop=w5b}|b}s$DfT^l?@4OMR_W?x7}n zHjJ6OG?U8d+vj!%o$uCU%*H$XQk;7IXv%oLSiU~i5{k~GFSixb> zN^A1FSeDza35z-sPPZ^nXecLBYa7=OjX$bDw*DA>r+mNB?!uB`9>>!b-sZ<3av_6CrYel zx>!=<@-=AM1mqZY#i4cu;ZiJ6)- zX{rS7=Wn7HMCtq4^fD}WQ<@-YFLt49>e4{T3+AS6Nb5-rOkt^y-ZJylS?vx7m4)Pi zEczVxOl@!4rR9^7X^f|yR$J)9)6>ZR2D?MPC8ZrZ(saJu$~A-su|-Dt^>O){n~UCU zI)e&r%gy6yEk8v|v;HRA=XMQcTW;`E_u-%sriPaiRkpy?@}^8zyEI9tKBkYgw57L8 z{mPR3>pk4q?v&IfzkDy8da~p_NLf4|Q>dvV>3LsJEc0F+{iM<|vx`P_s+XrYCHq*) zUbC6{{FIA$il|j-tK3;#^m*`>uxGgbexnq=0_rc3Byvcq2|%Zsae8eu#a$IU`GxIC zRRxrfJV+Zm&EanFQI$yAm0U#EGRW)29B%4f)xl*Nu%slV471OfJi*&FVWzOja+wT@ zYQfTit#XydPAT8AA5mwY+$x~)fE>ZPoqkP!kTP#rPiAhyz-H}Qb0>(}WJ9+|+Q>1qW`oHFzhhD z*wVM;AvsV`>f?SRIn`0uFsj8Botw&5 zSRQX3c=`5)e8;1l2O!#Mp1cw&YcJB;rA`Eq(%NipRO?N0T*PBaSpZtRx7Iq{bd7}S zb?Is;S!`MlG-*Y8wCcUhl_?!_rhM*1re%0xEU}c*waJosi-E_39U0~%ud-`>^Dhm2 zQtwmBnEF}jOefNkavs^)GEAWYnV4N~oOI1_U}@ucl=Y>`E-sO&ePK#7l5sZFiMpyL zf5{n^Cevsns%^FS1V45gA9I#xT*lOiWkkTr2UQ!At(a$KhNUHmE-~zZxW4D zOO;1!V<)}G%1c)-ps5*R>M}ytmP#6t$X)mL>`S3R?^6HemYBW1-s7jM&a4f!bRFib zmO_zoXJ(gro8{7ojUK~l+KtINp)S}MAB!n4wru-pQdWH`hc+CwdjMUU!Zg^)wn@hA zTbKGKJ1BV#pC*Rd_5F@?7RixamK2nuJ8kO8!L{2}Iv1YgSdK_Zz#@ExHZ#y_00vU2ihIt zjxOM~43@ZyrQ(fJO?!#d-8Ima(5jbi-D=ScxXkO3+p|6@y;Erhx$!pRW#60ZK3}|FR(>yn=Mpwx1Eh9oDR%(_K-=AKW;Aw3%H^qg0dkv4LFy)8n^G0@bDVpEpGvRcwkLRu_Q za0@zD6f*RKs#em)wKSXMCN9%m>n%k`+l|YDgY?Vfu(rO-2}gSWn9@2_OrX+FopM^| zn3@F{+6nH=(yg_lGV+6RUuAQjoTR|6|6B^c=8-scn|y16F3{&3N&b?&%Q)?LebQ#y z?;86lr_D9?Q+`j{PoBR{+D!hEw1Y%$-y2|wr=~R-t@SjZN?e)S&Zk>G2O#T7*PX)e z6G&L&#F9Rt-Epx}Td4B*_b{oToR^=?8X(Rv2haI$^nl zz62%@n9yc!YA3se#5z$g6U_`AsyUtV)a&V% zA(k>4W4SE0bY$&~M4e2fY!yhxuw%7TKAEAqQ&#x|YkE^lU*FVjWu)Rgs(%st`nZ?wA zaCayV!>YnuIhpEm>*HLR%5%3&0c}oiPzq$7PvuH7$TfU*c0FZKlsS%?owls;q9@z# zz_k6}CaVmIqjo8Mt?Wa2mx~S~ZeaA=?4vhJ6cdY4=}}CX-D-yiIhajZmB0A z(Sc@4zRAj1*1&5%n$h{;K+eTZlQkO_yR1z}UB))4!bQW|)UV2Bbs@J(KyoL&RU4CO zT&QVeH%BQ>?CGR7BPk)*HX?E?P*029*e$oZYSc(5w=y8LaZd?;x0oVnt5}A4UR%{5 z2PS(NYqNZ{G{ZPjQ~2A8m8N1ycW8E$oVKggnGCZyX|G+=!i>#$_A1I`xg2yP2A|&NXhErT}hO6PD`>B$}M>qA>&If^0AvGcBpMyXtF)jd*LY zOIC!kw;t;m0Bpi2m9}2w%KZI0weXX@%4FzJb9@C$TNpQJ1uJV0Rg?f0mQX{VzxIYztBawwj98~_SZx`3 zE!T`&P6yKDvf9ZfmD{szMf;n)kER`jXXujTkf1&8Nqe1{OtczNq)e-MH&1PYWx2HE zud-E{_4U&&qydxBRGZ3e9(LR8C6b1tjb2B}*~pacMviz?cQeaLpLR~3h-m2aq&r(Z zG1HMsx=}~&(YI_9({ag^Yf!p&{+}%<)UHU6WN1{(HQ`BFQKBTmd!uxJRf{E+L|wX2 z(MCXVO-2*FJ+EyDOK~KO4nq5V^c`%KZyR&AopCM2oaMB*ygt`L$5pgv)G}=#=3LvI z?MNjz-dSe}6pu}w_Q|n(n=f@06ys=eqL^&5Jrr$ zz?r4Nwb09n+Qzo6mMRBE%gIHRw%e|5f2=6Or5S&fX+R0R6O(d3;@Eoa_$0$bEmw}o zP-ortc?r$A%(mxpf00P8XVBAq&c|rq_o4eJQr=q5+9Kvkv20(Pm^B*fE!Eob*d`kU zuK%!B+daVgra7A|BAKT@=Ij%o@iYNCI<-&kJ{5@?wzgI`+HO8KOF_$)KW$w&t{J;+ zvT~GZOqaD3S!gn(9o1!;Lg(5cvh{Q(G@r}(T6F3RdXr^GmSWS+xpjvAKi9IO%>hi- z&ZOnoUfa!cmu;#g->;)`pxM(SYPIJ_m;Xvj>Xvc&VIlQe6;0r??_(!cIychBS~Bcg z+}mKe6!WwtkzAQNYLe(L{#ICqn0Bu>!!!|SX@%N)XEXJUDHlD|{x_yFbRC=eY)xu> zHSH|o{Fi(~OcUu2)JM%KU^jS6taEYIzUm;0cI(rz-Q!KM&ZUAj$2TYyvW~4b<9b7@ zq)4tgqzs-i$5XSqmo;wmWDd>^6N?b7qEDm7zu;SAnWCBX?D+q;_pQy1<4Csii#AM2 zmhF!{RqVOy>RaWo>qboM7X~fUE^X`8l3b7d^*0lIC4dA7K171@)OO5vt0Xcrkw_#? zo&-D`u6$3%>OtnCL}&1EYs@M@!)oi4Vd&i^t05Vp?ik@iU^Ny;EC2#6a8}U3htMO( zob=I>q?f2Ku-g0A3#Kbz+x9alcDAw=9Y(z!45CR+_=0p0xUAB)+7468)wDT79ziAw zj#{UMe&fV8PisB}e?zZ5_rKV*h@L3h~!hRELf#cC^Ujw%(&LXT?ABUY`k_KnHPD6S~GD(9Hp z^p3%M`t1Cwt#fm~gw1uZ5KQV=jqLLrBML=A!2|IRXbWJO6oI|tVu-!3EPHo4GcY$-<7Wu`eI zEa`TB#Yj8NS}9tQEcx3cqiGGHW^5g2nhr(f)*35qC1|^c(-p9{t`0ZCmsR7++bMff z##pSjZKg)meWp1jXaB@v*#bN_sosZpUj3z~`&K|W4 zqyVy?@FH&6!SK$y%9OjJ8>8fqY!&>3~f~ zU1&_3CbE!|BGe(<#-UVns4fdJj9> zcrP>N2R^wCb$@BuKj+xngQQWUVSC;9L9Q7H#{<}$CBML6DmUUF5|eWq#HddH@7Lr_x4m=H^mfU`aa)@8!so6jk@Y6JK-8?-rQ4r?1!t+ zZMd#DMX)kB@bkyR-Z({r;frkw@Aupta{lSB6x-fgvGuaM&|9lR-aGC2N{-85FX*++I`Gt&IYr)1VQI?$ z7bm@_A`RJ%$I3#`4^IGGBPZMUJKs3_3R1(U`tuB0z^t?r6G(HH`M948+Qf{iSFeLX zweL z%`$C;cY7eCYj|&?m-p})bcWF@$#GV_{p;j2t7KT|A09{5&u7*Tg5pTK`pi1{+S_N6 z*x+MhxNFX&(pdZajQSLnNPA>satwc&r1o^F!=As#({pk-e2Dj_w?hIM&e-mg3#O6= z!mhe+8oPXV0b>Dlee9Z%iqtj$>1@s2Pd#{QhNRjx)y+f7E>xn_(K5qWjhP6jikdEdj5DdYPPy$E8!4Ft+4VFZVnv~ zE;}`5A-?H!h8%=UAk?-~az(|8WS;b1_WW^PX3P(KLLjL7OUwQ_$KD0h7{ss(>iIJ&$M-Caq32Im$q8knu38Iav#srY-hRh$F{y-eA0F?bGO*h!l=vJ&Cw%&t$1r;Q5TzIHetx`; z7Vv05yfMak+w-T`O8Bc!J%5UPe)Rk)LV?koI!}h|`O`)Aujh}E5vR{pd86t-Z?{Qs zdlg(=h2Gz&r)9O;T2Mhb2X}Eey&s~|FsPfIyXRBSpUJQGyVdrT9HP@s@~ht?Qh&wZ zZEDo*pjl24?OZ*7@@teFymK|w`=2}R`ID7#ioBh|(zIV7>-m#K8n)+;k%gcio&dOp zpzi-|e1@oAR95U!@sjd;lT%$1FKuK!fBMvi{0X-$R_+XGq~Dl({!BXg z+w;duZ1Ayh^!)KEjko8|pifbWv}ednj^Qtp)SfPN*7JA!`)Zwh-aU`8+pmy)_|jv~ zeSSV^t`r@8*@hAm<>09MUWIb!I94V{N=LACklsE<)1oBUM3LS}VnhKjq60@Nl+IT2G195{uN;xQ@d4dE-)HH#A*h`L_aca_)N~(`|I9yge$b6La z;8LNXcU4sbQLkfdG#Zj2s;8kXtdK^G-l1q_9E+{K7BwnJ$3y6mH=5{rNYeY?ho>u0 zv+*Qb+4}Fm(+j;2OeOIHRl{@Q|L1a zGi-OAI;1tj+ZZ5|vt$RDIrMgm9vLKvOb$4aIjU473q7hek65+%E+GHA=wxM_ur2DC zwXiK)+G=9cmYiDLg)QF^ctm@J%J)Q zR0J*MT?x!yNWX}3s!a0A{`W53`92Xd)+im2!dBZvIgfEvdc}AyvY0QJT-s%+cXV)xXq3Th45z> ze!u@p+v-~PoRu$7GUYCxtYo5R$~&E6Xr~ZwMVvIJD!ocUFbAocIRqqX2+aQXtCjNv zyAt6~QH`+2x68=6O)hj9jH^*~r)iD|8&NyIVx)a(trV?Dmd3@a8Cx%!HgayU(h70= zH)3vtFZ=2+7uTG{ryU%gaEMo@BjR#oU3NyT5RGb+RvC-cw$0S2ZkyAb5;Oygjr5*5 zP8(ml&2(9fS>W%{rUG{Lk#1M9*tqS?eVFQwdv=&M3e>RhaagQi`22gags>~>AWdte zGdP(HYjUBP=)ssu40QWfQs(@}EyjPY&L4(fzD8fZUQx_|t7dd06xk;%>Ir3B{98y? zq#bm8KrYz7fmKMLF}_@0jnT+X1DCI+c^`V9xQJ=Ah)5&}aDHvhL$dfIRIIkUEhHPO z@2hwntzJZjNozIDZ|roQ8Sh8$^etG{%a5u`ql83ydw9I1zH{bROSwNK&z||cbjrXP zagxezlYr*2SVWMXNHyW&k+aXMZ-IRKknBS^HBxRQ!w2g0O8m4sY<_w?O(S53I?a7m zpkM|`=61U~#iu0NCO^m#X;rySCq|$lxs4H08`vUcGy7x%#>Q$qbB7r<5+-f(kPr&~ zSL8O5ADSG1yh3`6^kd11T_USt8np5+KI?Dw$h#<79i#Pb`%0WORkqc0gLE@2o*W%l z|C@CDco>4$4v-xT_bH@%gGz(u4`Cb5+h*sO^c%%nB zrqQdNLqP1s5kpstvQs3x^@-VYe2TS4=J7m&BP*l$`T39>kL8yZpJ1LsneB0!uJi3w z1pA?iXVETznOb_h=@pr_TBQ}#46Y1kcLp@Y!6odtU$0Kl)7#5S(q_~2AlQo8t|j&+~Xw1(tUv1H%MNw$ITr-k0%1Dzcu_+%&Z_ zn%lVQ;0z$Sjk8;;n_FNd(5z?yGg{kVpV0~p!M6^zx39WPs?pJOGh`cSxSs*)__keb zS0~u#Ln`!~BHg0Yu-Sc2VCxS^K=N~$>`$fZD&>a;K7l`(ACm9M;Rx@5Q=##Vi+d6A zAAgJBpD_G7i5|X207`ugqQ`&Im1c(VnuycFQi6JZmu!*kj5x=?s_){t8lEi-RYQhu}8Ggx|y2>DNAiUGW{>Q$W@VoNJr- zuOv$Cx&ox-^({U;6OF(=le_4*^?J8N%X~~girue=c>9_>q*iM>26;V7D9(-nu59=R zWq`~}5wiU6qp%0u!a!9!kI-c>u{n;kl?S`uz%mWK^idMfu8{|J53W+&e4U*1olmyC z_Ff4ir>VlDJg`4aPeNtldT)2S#Hzv%J2gobVwjrEHn-AneE~p^M5BgJq@w0e{O`~C zZty8Su9gwR3EWg2yA*;;8rVu_O8IwSBNEs%?M~0t2{lE1C{!6r6hY+c# z)J!gbuW7U~&u}w*lOYjkw{OLKI)^Qv6I;x()HhqHRzQN*1k3-p!&EJDL}<{NYb-4w ztWXkDvQmhg!;opxQ{b$%YWSL?ZLS6`D=ORs{vq(=bKR-h0t5vQjXBaXlu_ddu zs2A%3w0gJLCqF%W`uqqM!b~*(*DLsUsyIwE7O%n)&}9;jYb6*AKp4J3Ab3ue@vp_l zugf*0$KV{L6w$Y2y$3`H#Rj-#32uX5njTNj;SKz34N3Ll;gc9m$UNngjTO4}Nbbo7 zBHN1Rk&rV|>-WuI-5?$!@BUe1opZdhK`3V{coXEx!i~;q2D**x!|cySo9m<8W)^HV z#Flc!N89Fh5r=4wBFCXKL0IZ7L+63#u9xd1K4_-QUGh9Hy#-t@Uan5RwD;zi_*sB$ zM7zYQ3GhM`pAaD=0w5MbqxyMNua*I$&<$SP^?Cp%h`>YQ?P>A!=M(lBNded4Wx-h)V2( zX5zyLI+vfCy#Y%&rjl+K1xUKfIevqk-(O^qB@1cgGjsKfI!0d6y2lMA$(kY8gIOl+ z>ZQen^L)cI$QHCF>5hfv4R0aqQq8v*D-ieh%VLj5EzyFacMqHLE|?zh94e8V)PYl0 zlITzn^CRqD!E6}QAYlJlC2ws;*PXi0GVT`ZK1j0b15`vw7_~nO=Y%bbu>TsJ-3`$Q zD%&z}a1A8(2cQkyKTaefyInAp3+n+S@(5V9Q&_vZsPvMny<)Y0MjlMJ)W>8 zQjaAO5B?r@greL*G`)vFNE|@^zQM%!8!0xs2g`=lLOFJ$rbUo3fKyopW4C_842X}= zhKwc?#3=~7>4J%4qtzVn(}Mqi&Dx?=hBZR!51*9u7{2%803;6l-r^oWlBO@WK|Cl; zS8pK;Whigp8aqRl0=m1o!57l!v~dNObqJ25`;b>xzaHZ4F@`GZZY$yW829NEwwuQA zL}M+g(bKebsl9yE6>5ZZ^u|L1EjAl@=a>rQ6j^vyXy!-icJ6+uupzSKRPeKEtj`Sy zR{>OVrwYvJC|<#!ax%#6CjKcnp)xjA;VDqDJ$*auenjhJ`+E8oC5OX~MyncwTD8i{ zD_QtXxAY(|kzn(?}ab;#A+_)`hzh zP8W^>Iyi%p!>$ENH1i1lKNNm|oRyZ}kZL2>v6{tP!AG z{p~6U#0;TkH5x;3Li+1c*0kSfxi)aJgL)b0_^qY)o~x6mfrv(-v5f=qyl#l zFvmx(;d-~*FGNy-o(C2apJq*nR$*@=NTI2)ljtkj2YmADR3Q(h#~_O|J_b&1F1KQJ zSkghH!+IA#i&2ndMDZANrZYyB+c=MenFZGo;VmkCZt4%h)DnLU&GNPt(nHStTE|&H z>S8FtXTW>VYGhX(z%XXdmbY6rKSWyqK23fXtv37h0{k;A5v0ncRbg=NPe=_QhJDE^q2-!-NE(?O zEPRa&R>jEK)7*^=TFI*5PZc|h@r21Ky-gw|0FWwTw;&O4p&bVRSq0P7CX`hGoC|p6 zm%TW8gmr%0jtH@oiI2-Ww~V0sQ{NC|01*I@5TKC*Qs?*rEC`1MqgK@y1YyVk>DX7R zjfW}$dtn6~L@ARQvOs8lNw!NmH*H1${zRIyXYN+akkp)FHrZ^5g}CB3Wf;R1g7{rJ z^)1iAnM2oRoWbxMPir@ljr*lbG8{R}TH#ncPkh%Y zOon8Htdl@ zWqvwpCU*MLE(p^69er0Br=VaCFWLZFA)jS|+1KXn0RK!7(L;(X&Zx!a&&_G_k@U$t}c(!@kbc#=#&&;x6yC$N9 zKXy_B?*`!*un8G~DwBXG6ef|ZktH%|EUtJ8bPY#8lK8LkQPWBEV+BRYW0E|R<4c59 zY8V-}+TwI7Vv5a*sFwl)n@t!$lCOM`i90G<4`u>??hdO*gj&PuCkj4ZVM5%k9lxz! zPSJ)*x!gtp!cuCj=;>EcPmBl!Gn8y+aH9XI?L_XwzY%}9@uQ3FVzaRWKrr4ENMXO9 zZ(Mvi}kHiACZ4dOBOcTf>~vrB$_gJcf0PnvH46byC&FC`&Z z+JtZr*wCl)s=64Ux2gdXkxIbA^-VBF$8KmQUsT0)#Wq^m){}`scq1;Z;cr{WxuDeY z3>48lY`hT|gum(-yQ6u(vVDP<5g4=mX2w^Y9QQJ%b()WYy4wNpQ!V*10BiI2rLhN7 zK3v)b9Iu7W)DtPNgKnnm(!#8&>Hr*LDKl3p^Kzw=>;_k)_&_R%n6AU_j3(@Z*BWTz zXSz96LuK;4nvazex@nXvCv@;diQI!q&*Q&nZD#`IzCE5`2xpN1lN#s&M~H|@8Jaz= z1Zw^`f2QfdCObeQl6V8H`bdkwqe<>RK|NJ+JjGk*DeaZa8*o;!v&d6P<=MO#kf?1> zhhNL@Pvl8-1C5Nx3(7nNDylWqH4_GJg4;tcj zwL1z7T`8ak>|=OU=oX5#Zc4xL4(@YM{tKNc^A0g zn(S_yB?ZzrZfL`1Ib5pr9lVvsA?dAL_KtJcVbOuFDJvFa$;LC#0quECUSeP~!->9d zqU$MsMKT>ron|t$PGllh5NTZvnQWW7R>mrlR%z`+bvfy%|J8{eM03aJQ8^v256>`p z$o!C^O6kq~*Z3?Y2$H|SJ-|DFzd#Y-NscnYq9vL~%O#xrf#Gbbw`& zSSep4voC9n;~-=TskUfl%XZf01Dus3Umzq12zn^?3UfM)#XKC<0;gi5XqW>`W?N;< z!%QHr^4MSst#oiwD4b)8J#;>Bfi#g|WH2ntn|AazXxMzOtRT)vzVm}PnTH)%J5wm% zgZNT?(CjyUCJ?XEu$&-GrlI4HN9-WZHYIomkXzb}g26exx{jqKdcqUZlo9hu+PN93 zGa5Dp%acfd&P0#ZBpuo%{p1dDW+E^<7>)Sq_*g^@)pNw)y`i~kYSv%o#$IkWm;j5} z${}mgW}E|g1}xecw7}Q}+eIhl@@1Cb4Tc$cG2X0|z21CzUTfFa2r>FMRSVG4z>CNb z4F<>UyV9;XpT5|`CnOmdRn5JjcCIUbr*&~vR+kF-AO&ev(6kLsg6Cb+|8YQiv^d~p zk(wWoP%c*oXTiI*SDVpX50Gz7T9G0TiGgbpne8W`;q;gRKj{&Eb?n~$zTW+~U%~BQ z9(3&zVKAxx4@OU#vH=T|&Eq>dFH1Y@V2%ryCzh)ZRWOYrdEG(pR22D0rv!hM+7YVC z42#7RX@-t49-;8ERS2dzF8rOS;Vtq`WE|Q7{lwg51Cb3jn2UJk_|W#+in;E#eJLjs z1?w+cV@KFE6|`xWZ5$$T~nZrkJ>f$5kuG19S?d=MAw&X z_=GI$qr%N=>*czJcZ!&oQhJM(mm*#YO0H_8T&5)B{SUq?ohZM|IA@J`Xz zQc7=e)>6bvL0DCd#(=GAGJA=tR!DiCb2?Zme;7v>O^g1U+f&4N2z*payq&osiq1@mU!WG<4Z=3y+Selwd z{eCckTaodmDedYHdgY1ol1cJ+xRmdOl8wQts9X7V6aS3Z15_2S!#i2>TZrJI_|vz; z?gvp&x{avP5reDb=Q7#j^$PmsOxX#Fio!tvR$}f)>A(iCqlwpWg$Yqd8n4;*ZIc{U z%V@pYtWL+pCY*xRv~Op=Ce2~9d2`Q%mn%1>HotZeK(PE0q86vbN(y9Gp$5jQP}9+x zzoF21+*MyPd5P%wKkgAMpWhxI0FtxBZ%2s{ z$H)B_yn-@({6Otuf4kucGwBIuK0iOZ%?LCZl<&YF-kmK0@52PaHLk(y9bCo;7j8jJ zF~p_dy_f@6F>!Uo+ja%FZW41y7iR)J12RtW#r^I_a-eBD{UUsC6Q91#mWdSdUq~3k z%P_@*w!7y<+*i5i;as_F3W|*wEZzH)KJs~%KntfB0?&Kk9T6;x52bOQ6WBbxWlP^2 z7O)Q({lbtzbH*e5l)L0T3qt;z{^pRZllVv{3e8lcTP*x^o{s^UER)pF)}oF5onbhbJs^vDbLc#fBn=U>=V?_2a;HJJ`6#$5O*??sSA?bW@1p+ zcz~OFXn4fs-!Q!gkeJ#S(%_HL6Ajb;&qXT#0#o(xa4IpxNE~ojWS$d1fZ*26^qNm} ziV180({&CP0QkZ>5%*2MthRB2UKWP`#sqV61-Gj2cF)lPn6|J$z6i7+y>c^)RB&mv zxFQq7a}*PxM{H7hTQdImxP90Nr9t(t5fo}LN4}B)8UIJ}nNAuSlSU9v?Gz<#o7;Ib zx?-Xc7mLz3lyB{enAyF*vI12=U!DaSF;YGbeo_N!!>{8$|mvI98DFttFbKSLZt z%o@^h_$i5H=alh}KQ|D0DrCiaZi%T2Vc{bxEsiYMS>Wza34C5HljGu#e;@av;){m( zzn~lb_XL$Yhjt_;6eBRab~1XkKx?-xaHO^O)YP~L!;W=<+faFsgcF6c(=WJt2Ukeq zPY710KL=>)Maa~q=JMwgc#y1TDDBC{6WC0Z*>qPn#+zfYUpZ zX8`E;0)$H16;z>Ont@rg9r-58P%(Hdp>xB3@m*Smr6)sK7*Ff_X2((;MFCmCjIVB0 z$LMb_ZfhHYTHEC3DTNTB4nsnuoVZcM=eNj|@PP)srFhxm3GVB3@vaM~5>x@dz3I&Z z!X`-g|45K90jhhGmqTcHX-%Nf(4tnrNw^|r6q)7ve@VSV+TJkHMd;NVdJ7W}V}hX~ zK%k0dVWnSX9Ag*_O}z#nXJdb)VO2_e{FnXukN|OzI6T%vNUCUYH@eg9d|>zpxumo( zMN+@2k;EnJ)yRBX)g}Q4YO`O9;(@+T z6njwEg?4C!Z0Gm*8*aqm|L|XM8w!pkwxMDdif#++zH~2yJ0;k&=KJsRtH@c#pN8q~ zTx?*mYBr@4rB6Mn@rTp1yS*cY#TMYMI_{Y-dZ+klod_pl_7XUnjd<4d5=nT7arXnL z&f^_ciyby9_#DU!ll2f>4`o13o`q16k(|{cK3i9cjE8+6=z%?z}RI zJNK^45P_1N^iicDhVqXyrwErhcWET=d2>w_u%UAOCZ|m`@QXj!R0~fzbc#CRNO*Lb z*rVXm=~C0IeP}+NBAs)Hq&oCX9T}2Sr`XFwUY#PL^N9Mwt!pa33lvO1RIp38pmq+H zD)O^2$^@78CsYM6IyC;H8c`<6j5cV}9emG35?V7l?wz6)B75HO?_}Ai>(?N;owpdJh)CSHhKPgk@MOuAb;J`c zo+6`jlr)t4GVZ>QLBvW+Y0Y;l?MNq4!3y(+mscU@@a(lNM}owPVkCywaAb+YcnNBy zuct>f(uLO=4Y(2Nouo#jhp6mO{|OB-*&m{stWs;Tn$&qWB!`UXB`Oifi*-JN+66rD zk4L7d43mp%>3ewehfAi*%t>qlNP6d!G2&K0CtTd}cuQ)HSEEZIrDy~Jpj(KKQlCVV zkK!H9iMubg-nwb4z-{;v;9zuGc#m@>4)8R8K07Ej0XdzJ1BUk z%x}SpI&=wKI#0$sWB9_B@z5|nb7nMi`Ny1LMRZ=?yg7HOof`hIXxi!F7ni1;E}k-K zSf$3ot1$>~*h>0!Qk6+|3IGpXE@owP4yII-_r$bet>z)$hLzKKbbVpnw9~=`KI?;f z!)n3CF%!T91J^BPkkf(;qE&!NL-TNWsg)`!k^u%h5|EYAc>+p%?RUY+X=yLoa%Q2h z3?C{vH| zGJI6;A0y94(*ff5MX-H1#V&{QqiOeEm_G)^N5KCvN$xcZ$S8CLd^5_G$dHj%oQ2o} z#fcpSw}iB3UJxs(^OnFDc2GMleCG(U+Ih_sGDuvHFO=TZ2=_&;wy&<&zT#m?aFlYi z-{IYd2XbtfbnIE9LwJ;H7Rj?8;B*|AGj10yR+4j(uNPcBC+zJzljwda9r@Qt6=<;( zPbWI0_Q@~ZYV_0q+TGFk>)rM>TE=_r=^3@W*~2TZmb|8?U6C5j(qv7=l1$$z4r(K5 z0duIjOSNK^f>%pAWWZw8RjSRz4IGT??%-!<`aPcD+~328cz=33B=4Q+=b175VfuMz z7{8f*in)Ab`Y|FxRI*f_$$_&TG5y-8;S9n$$9|;^xdD&@cXn3X{BcpRLrJB4irXOQ9FPVOfoX(@`57V!W7XC2( z7%kX1HUQI)6|Dj)_BOnd8t=%%E77Fy@XDYdy#VHnCprf#X*sfx;RY*mv{H^bgGISv znSP9hMZH5JuA&Co@##j{?JjWEY%aeG)0EBm#PrjxPp3o;0$r#1FdZJzgwC0gI!6sb z2V(l^hW3@|$4F|QOav=2)K$G;`Z0PHf#%#yKl$BsiWQtPkC=WA(hkpn>wxK}=t-B$ z{GQX{^&DmDF=nQp>=ol=`YAd<{Js#TpRU*?G5r+n-Vf7{ReTgoKVEXrnSKVLE8v?^ zu0)26w1Pu16ma2|koL~>WBkQ=OW+UFuZRp`E)!0&gpU~AL^+Pa^??9N0yCdRyAlZ=jG=pA`&;QA>ts+99eQ@9r5J!Ek#D>^~6y7@PLh@ zXjBA|^YU=Yx6(=E9|NaC&fz&Jt+_WuLlP^Bkr-aXfoh$lT?FsMd8Ut-Z=+}|Exguf zz>UxVcjpz`eHg2Y;MkA>0hKO?T|@MGFT5H}Wtd$YGsUmF^NJaj4ihV}2_O-?jXv_o z{K#|N#J3gD2^Y6|pqnUyI9k=)Q1fn#%7xTSn0f!lKW2 z=P3cP9z&+dSy&R3gA*$Z?>{a75k=AR=g;VMy?ct+(f9Zet+uO^;p6`bOn)&k{l(Pu z7c=;afBpI8pTGSXMaQ?NXc28zKPUgS-0%PKuMZ!hBgJfFyFh?Z8g2pb(>!4@=b%OCi664o;PEjH`isEGWMI^Fz>x(-plAQ3-tHS zruutlGu_U!nf~6{wf^4OwXW~%R)6pHmHysqW_+&${k_){{k_){{k_-M%zK$JzrNM= zy}s4`<@%0!@0~su=8Vj9#t-IGefG{7KbEm(3jN8q%K7ViKy6tb6al5(IZGSt_$MTkW@9ji?@9k8V`F5t;;Es!@S6BLr zgR3k3Ey2}9ACll|uKQMS#V8FQ>RugOaUnEdY!L(#T_O08kuzXiF$iw-u?d1(?wPlY zngJ7*f(g48F+m(;XN)|VF{Ya^b0L_3Lr2kne@?dne+GB^RkBQetd2>v+->3H&9~(# I{0IE`|5N@`YXATM diff --git a/build/mix3 b/build/mix3 deleted file mode 100755 index 21731edf7c2b260cb9f4d05cfd4863647c87deec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379360 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

qSNnB{DHYk;vL)vBFKqB+%~k3+*8 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 Ci*y74 diff --git a/build/parse b/build/parse deleted file mode 100755 index fa8535cf3d38f4db194745264d36b2d59dd36f79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166400 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 H0si~{3V7B^ diff --git a/flow.c b/flow.c deleted file mode 100644 index e384de1..0000000 --- a/flow.c +++ /dev/null @@ -1,305 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#define MAX_COMMANDS 100 -#define MAX_NODES 100 -#define MAX_LEN 1024 - -// Structure for a node (command) -typedef struct { - char *name; - char *command[MAX_COMMANDS]; -} Node; - -// Structure for a pipe -typedef struct { - char *from; - char *to; -} FlowPipe; - -// Structure for a concatenation -typedef struct { - char *name; // Name of the concatenation - char *parts[MAX_NODES]; - int part_count; -} Concatenate; - -// Global arrays to store nodes, pipes, and concatenations -Node nodes[MAX_NODES]; -FlowPipe pipes[MAX_NODES]; -Concatenate concatenations[MAX_NODES]; -int node_count = 0, pipe_count = 0, concat_count = 0; - -// Function to find a node by its name -int find_node_by_name(char *name) { - printf("Debug: Entered find_node_by_name with name=%s\n", name); - for (int i = 0; i < node_count; i++) { - if (strcmp(nodes[i].name, name) == 0) { - printf("Debug: Found node %s\n", name); - return i; - } - } - printf("Debug: Node %s not found\n", name); - return -1; -} - -void parse_node(char *line, FILE *flow_file) { - printf("Debug: Entered parse_node with line=%s\n", line); - char name[MAX_LEN], command[MAX_LEN]; - - // Extract the node name - sscanf(line, "node=%s", name); - - // Read the command line from the flow file (not stdin) - if (fgets(line, MAX_LEN, flow_file) == NULL) { - printf("Debug: Error reading command line\n"); - return; - } - sscanf(line, "command=%[^\n]", command); - - // Store the node information - nodes[node_count].name = strdup(name); - char *token = strtok(command, " "); - int i = 0; - while (token != NULL) { - nodes[node_count].command[i++] = strdup(token); - token = strtok(NULL, " "); - } - nodes[node_count].command[i] = NULL; - printf("Debug: Parsed node %s with command %s\n", name, command); - node_count++; -} - -// Function to parse a pipe -void parse_pipe(char *line, FILE *flow_file) { - printf("Debug: Entered parse_pipe with line=%s\n", line); - char pipe_name[MAX_LEN], from[MAX_LEN], to[MAX_LEN]; - - // Parse the pipe name (if necessary) - if (sscanf(line, "pipe=%s", pipe_name) != 1) { - printf("Debug: Error parsing pipe name: %s\n", line); - return; - } - - // Read the 'from' line - if (fgets(line, MAX_LEN, flow_file) == NULL) { - printf("Debug: Error reading 'from' line\n"); - return; - } - sscanf(line, "from=%s", from); - - // Read the 'to' line - if (fgets(line, MAX_LEN, flow_file) == NULL) { - printf("Debug: Error reading 'to' line\n"); - return; - } - sscanf(line, "to=%s", to); - - pipes[pipe_count].from = strdup(from); - pipes[pipe_count].to = strdup(to); - printf("Debug: Parsed pipe from %s to %s\n", from, to); - pipe_count++; -} - -// Function to parse a concatenation -void parse_concatenate(char *line, FILE *flow_file) { - printf("Debug: Entered parse_concatenate with line=%s\n", line); - - int parts; - char name[MAX_LEN]; - - // Parse the concatenation name and the number of parts - if (sscanf(line, "concatenate=%s parts=%d", name, &parts) != 2) { - printf("Debug: Error parsing concatenate line: %s\n", line); - return; - } - - concatenations[concat_count].name = strdup(name); - concatenations[concat_count].part_count = parts; - - // Loop to parse each part of the concatenation - for (int i = 0; i < parts; i++) { - if (fgets(line, MAX_LEN, flow_file) == NULL) { - printf("Debug: Error reading part_%d line\n", i); - return; - } - - // Expect the format part_x= - char part[MAX_LEN]; - if (sscanf(line, "part_%d=%s", &i, part) != 2) { - printf("Debug: Error parsing part_%d line: %s\n", i, line); - return; - } - - concatenations[concat_count].parts[i] = strdup(part); - printf("Debug: Added part_%d: %s to concatenation %s\n", i, part, name); - } - - printf("Debug: Parsed concatenation %s with %d parts\n", name, parts); - concat_count++; -} - - -// Function to execute a single command -void execute_node(Node node) { - printf("Debug: Entered execute_node for node %s with command %s\n", node.name, node.command[0]); - pid_t pid = fork(); - if (pid == 0) { // Child process - printf("Debug: Forked child process to exec %s\n", node.command[0]); - execvp(node.command[0], node.command); - perror("execvp failed"); - exit(1); - } else if (pid > 0) { // Parent process - printf("Debug: Waiting for child process %d to finish\n", pid); - wait(NULL); // Wait for the child to finish - printf("Debug: Child process finished\n"); - } else { - perror("fork failed"); - } -} - -// Function to execute pipes -void execute_pipe(FlowPipe flow_pipe) { - printf("Debug: Entered execute_pipe from %s to %s\n", flow_pipe.from, flow_pipe.to); - int pipe_fds[2]; - if (pipe(pipe_fds) == -1) { - perror("pipe failed"); - exit(1); - } - printf("Debug: Pipe created successfully\n"); - - pid_t pid1 = fork(); - if (pid1 == 0) { - // First command: Redirect stdout to pipe - printf("Debug: Forked first child process for pipe, from %s\n", flow_pipe.from); - dup2(pipe_fds[1], STDOUT_FILENO); - close(pipe_fds[0]); - close(pipe_fds[1]); - - int node_index = find_node_by_name(flow_pipe.from); - if (node_index != -1) { - printf("Debug: Executing first command %s\n", nodes[node_index].command[0]); - execvp(nodes[node_index].command[0], nodes[node_index].command); - perror("execvp failed"); - exit(1); - } else { - printf("Debug: Node %s not found for first command in pipe\n", flow_pipe.from); - exit(1); - } - } else if (pid1 > 0) { - printf("Debug: First process for pipe created with pid=%d\n", pid1); - } else { - perror("fork failed"); - } - - pid_t pid2 = fork(); - if (pid2 == 0) { - // Second command: Redirect stdin from pipe - printf("Debug: Forked second child process for pipe, to %s\n", flow_pipe.to); - dup2(pipe_fds[0], STDIN_FILENO); - close(pipe_fds[0]); - close(pipe_fds[1]); - - int node_index = find_node_by_name(flow_pipe.to); - if (node_index != -1) { - printf("Debug: Executing second command %s\n", nodes[node_index].command[0]); - execvp(nodes[node_index].command[0], nodes[node_index].command); - perror("execvp failed"); - exit(1); - } else { - printf("Debug: Node %s not found for second command in pipe\n", flow_pipe.to); - exit(1); - } - } else if (pid2 > 0) { - printf("Debug: Second process for pipe created with pid=%d\n", pid2); - } else { - perror("fork failed"); - } - - close(pipe_fds[0]); - close(pipe_fds[1]); - wait(NULL); - wait(NULL); - printf("Debug: Pipe execution completed\n"); -} - -// Function to execute concatenations -void execute_concatenate(Concatenate concat) { - printf("Debug: Entered execute_concatenate for concatenation %s with %d parts\n", concat.name, concat.part_count); - for (int i = 0; i < concat.part_count; i++) { - printf("Debug: Executing part %d: %s\n", i, concat.parts[i]); - int node_index = find_node_by_name(concat.parts[i]); - if (node_index != -1) { - execute_node(nodes[node_index]); - } - } -} - -// Function to parse the flow file and execute a specific action (pipe or concatenation) -void parse_and_execute_flow_file(FILE *flow_file, const char *target) { - printf("Debug: Entered parse_and_execute_flow_file with target %s\n", target); - char line[MAX_LEN]; - int found = 0; - - // Parse the flow file line by line - while (fgets(line, MAX_LEN, flow_file) != NULL) { - printf("Debug: Read line %s\n", line); - if (strncmp(line, "node", 4) == 0) { - parse_node(line, flow_file); // Pass the file pointer - } else if (strncmp(line, "pipe", 4) == 0) { - parse_pipe(line, flow_file); // Pass the file pointer - } else if (strncmp(line, "concatenate", 11) == 0) { - parse_concatenate(line, flow_file); // Pass the file pointer - } - } - - // Execute the specific pipe or concatenation based on the target - printf("Debug: Looking for target %s in pipes and concatenations\n", target); - for (int i = 0; i < pipe_count; i++) { - if (strcmp(target, pipes[i].to) == 0 || strcmp(target, pipes[i].from) == 0) { - printf("Debug: Found pipe to execute, from %s to %s\n", pipes[i].from, pipes[i].to); - execute_pipe(pipes[i]); // Call the pipe execution logic - found = 1; - break; - } - } - - for (int i = 0; i < concat_count; i++) { - if (strcmp(target, concatenations[i].name) == 0) { - printf("Debug: Found concatenation to execute: %s\n", concatenations[i].name); - execute_concatenate(concatenations[i]); - found = 1; - break; - } - } - - if (!found) { - fprintf(stderr, "Error: Could not find target %s in the flow file.\n", target); - exit(1); - } -} - -int main(int argc, char *argv[]) { - printf("Debug: Entered main\n"); - if (argc != 3) { - fprintf(stderr, "Usage: %s \n", argv[0]); - exit(1); - } - - printf("Debug: Opening flow file %s\n", argv[1]); - FILE *flow_file = fopen(argv[1], "r"); - if (flow_file == NULL) { - perror("fopen failed"); - exit(1); - } - - parse_and_execute_flow_file(flow_file, argv[2]); - fclose(flow_file); - printf("Debug: Flow file execution completed\n"); - - return 0; -} diff --git a/src/mix3.cpp b/flow.cpp similarity index 100% rename from src/mix3.cpp rename to flow.cpp diff --git a/foo.txt b/foo.txt index 21cf5b3..4ee6ff6 100644 --- a/foo.txt +++ b/foo.txt @@ -1 +1 @@ -f o o +f o o \ No newline at end of file diff --git a/old Makefile b/old Makefile deleted file mode 100644 index 0882e9d..0000000 --- a/old Makefile +++ /dev/null @@ -1,35 +0,0 @@ -# Variable to control the flow file and source file name (change this to flow1, flow2, etc.) -FLOWX = flow4 - -# Source and flow files are based on the FLOWX variable -SRC = $(FLOWX).cpp -EXEC = $(FLOWX) -FLOW1 = flow1.flow -FLOW2 = flow2.flow - -.PHONY: all clean compile run - -# Default target: clean, compile, and run -all: clean compile run - -# Clean target: delete the executable if it exists -clean: - @echo "Cleaning up $(EXEC)..." - @if [ -f $(EXEC) ]; then rm -f $(EXEC); fi - -# Compile target: compile the source file into an executable with the name $(EXEC) -compile: - @echo "Compiling $(SRC) into $(EXEC)..." - @g++ -std=c++11 $(SRC) -o $(EXEC) - -# Run target: run the flow1.flow and flow2.flow, and compare results with real commands -run: - @echo "\nRunning $(EXEC) with $(FLOW1)..." - ./$(EXEC) $(FLOW1) doit - @echo "\nComparing with real command: ls | wc" - @ls | wc - - @echo "\nRunning $(EXEC) with $(FLOW2)..." - ./$(EXEC) $(FLOW2) shenanigan - @echo "\nComparing with real command: ( cat foo.txt ; cat foo.txt | sed 's/o/u/g' ) | wc" - @( cat foo.txt ; cat foo.txt | sed 's/o/u/g' ) | wc diff --git a/old output 2.txt b/old output 2.txt deleted file mode 100644 index 6a3a091..0000000 --- a/old output 2.txt +++ /dev/null @@ -1,12 +0,0 @@ -total 64 --rw-r--r--@ 1 reetnandy staff 4029 Oct 24 17:30 CMakeLists.txt --rw-r--r--@ 1 reetnandy staff 166 Oct 16 15:44 README.md -drwxr-xr-x@ 2 reetnandy staff 64 Oct 24 16:35 a -drwxr-xr-x@ 22 reetnandy staff 704 Oct 28 19:49 build -drwxr-xr-x@ 18 reetnandy staff 576 Oct 28 19:54 files --rw-r--r--@ 1 reetnandy staff 9857 Oct 14 20:21 flow.c --rw-r--r--@ 1 reetnandy staff 1081 Oct 16 13:32 old Makefile --rw-r--r--@ 1 reetnandy staff 85 Oct 28 19:53 oldoutput.txt --rw-r--r--@ 1 reetnandy staff 0 Oct 28 19:55 output.txt --rw-r--r--@ 1 reetnandy staff 180 Oct 24 16:53 result.txt -drwxr-xr-x@ 15 reetnandy staff 480 Oct 24 16:29 src diff --git a/old output.txt b/old output.txt deleted file mode 100644 index ee3ec51..0000000 --- a/old output.txt +++ /dev/null @@ -1,10 +0,0 @@ -CMakeLists.txt -README.md -a -build -files -flow.c -old Makefile -output.txt -result.txt -src diff --git a/output.txt b/output.txt deleted file mode 100644 index b98b694..0000000 --- a/output.txt +++ /dev/null @@ -1,14 +0,0 @@ -total 80 --rw-r--r--@ 1 reetnandy staff 4029 Oct 24 17:30 CMakeLists.txt --rw-r--r--@ 1 reetnandy staff 1228 Oct 28 20:54 README.md -drwxr-xr-x@ 2 reetnandy staff 64 Oct 24 16:35 a -drwxr-xr-x@ 23 reetnandy staff 736 Oct 28 21:02 build -drwxr-xr-x@ 18 reetnandy staff 576 Oct 28 19:54 files --rw-r--r--@ 1 reetnandy staff 9857 Oct 14 20:21 flow.c --rw-r--r--@ 1 reetnandy staff 6 Oct 28 20:31 foo.txt --rw-r--r--@ 1 reetnandy staff 1081 Oct 16 13:32 old Makefile --rw-r--r--@ 1 reetnandy staff 669 Oct 28 19:55 old output 2.txt --rw-r--r--@ 1 reetnandy staff 85 Oct 28 19:53 old output.txt --rw-r--r--@ 1 reetnandy staff 0 Oct 28 21:22 output.txt --rw-r--r--@ 1 reetnandy staff 180 Oct 24 16:53 result.txt -drwxr-xr-x@ 16 reetnandy staff 512 Oct 28 21:00 src diff --git a/result.txt b/result.txt deleted file mode 100644 index c699433..0000000 --- a/result.txt +++ /dev/null @@ -1,16 +0,0 @@ -node=read_file -command=cat - -file=input_file -name=result.txt - -node=word_count -command=wc - -pipe=read_pipe -from=input_file -to=read_file - -pipe=process_pipe -from=read_pipe -to=word_count \ No newline at end of file diff --git a/src/.DS_Store b/src/.DS_Store deleted file mode 100644 index 2adf6af8053caa26c538fa8bae033d98f9823d13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~%}T>S6ot>!fT`Vd=|;#C6zX4H#!?rqeE_xf2O*N8h%U4D9ef3!&y}7#bE#93 z*@~2V;m(=N+>?+GGLr$|rY|>RU*ie@`(Izr|pThY^z0oD0?jIh8G%k!#Uw5n~u z2pEC?MnJyZ9CxTt;}y~OJFn_F=VW0xWsbgmum|*4_4^6OXVP)d?QnZZ$6>rEiXGc{!~@` zh0CGr|7Yp*|GLSpjDQi?C;~2@uTiED!>^rg*?=pRG Yu8 -#include -#include -#include -#include -#include -#include -#include -#include - -// Structure to represent a node (a command) -struct Node { - std::string command; - std::vector args; -}; - -// Structure to represent a concatenation sequence -struct Concatenation { - int parts; - std::vector part_nodes; -}; - -// Maps to store nodes, pipes, and concatenations -std::map nodes; -std::map> pipes; -std::map concatenations; - -std::string current_node; // Temporary variable to store the current node - -// Function to parse the .flow file -void parseFlowFile(const std::string &filename) { - std::ifstream file(filename); - if (!file) { - std::cerr << "Error: Could not open file " << filename << std::endl; - exit(1); - } - - std::string line; - while (std::getline(file, line)) { - if (line.empty() || line.find_first_not_of(' ') == std::string::npos) { - continue; - } - - std::istringstream iss(line); - std::string key, value; - if (std::getline(iss, key, '=') && std::getline(iss, value)) { - if (key.rfind("node", 0) == 0) { - current_node = value; - } else if (key == "command" && !current_node.empty()) { - std::istringstream cmd_stream(value); - std::string cmd; - cmd_stream >> cmd; - Node node; - node.command = cmd; - - std::string arg; - while (cmd_stream >> arg) { - node.args.push_back(arg); - } - nodes[current_node] = node; - current_node.clear(); - } else if (key == "pipe") { - std::string pipe_name = value; - std::string from, to; - - if (std::getline(file, line)) { - std::istringstream from_line(line); - std::getline(from_line, key, '='); - std::getline(from_line, from); - } - - if (std::getline(file, line)) { - std::istringstream to_line(line); - std::getline(to_line, key, '='); - std::getline(to_line, to); - } - - pipes[pipe_name] = {from, to}; - } else if (key == "concatenate") { - Concatenation concat; - std::getline(file, line); - std::istringstream part_line(line); - part_line >> key >> concat.parts; - for (int i = 0; i < concat.parts; ++i) { - std::getline(file, line); - std::istringstream part_line(line); - std::string part_node; - part_line >> key >> part_node; - concat.part_nodes.push_back(part_node); - } - concatenations[value] = concat; - } - } - } -} - -// Function to prepare args and handle special cases like sed -std::vector prepareArgs(const Node &node) { - std::vector args; - args.push_back(const_cast(node.command.c_str())); - - for (const auto &arg : node.args) { - args.push_back(const_cast(arg.c_str())); - } - - args.push_back(nullptr); - return args; -} - -// Function to execute a node (command) -void executeNode(const Node &node) { - std::vector args = prepareArgs(node); - - // Debugging prints - std::cout << "Executing command: " << node.command << std::endl; - std::cout << "Arguments: "; - for (auto arg : args) { - if (arg != nullptr) { - std::cout << arg << " "; - } - } - std::cout << std::endl; - - if (execvp(args[0], args.data()) == -1) { - perror("execvp"); - exit(1); - } -} - -// Function to execute a concatenation of nodes -void executeConcatenation(const Concatenation &concat) { - int prev_fd[2]; // Previous pipe for chaining commands - int current_fd[2]; - - for (int i = 0; i < concat.parts; ++i) { - const std::string &node_name = concat.part_nodes[i]; - const Node &node = nodes[node_name]; - - if (i > 0) { - pipe(current_fd); - } - - pid_t pid = fork(); - if (pid == -1) { - perror("fork"); - exit(1); - } - - if (pid == 0) { // Child process - if (i > 0) { - close(prev_fd[1]); - dup2(prev_fd[0], STDIN_FILENO); - close(prev_fd[0]); - } - - if (i < concat.parts - 1) { - close(current_fd[0]); - dup2(current_fd[1], STDOUT_FILENO); - close(current_fd[1]); - } - - executeNode(node); - } - - if (i > 0) { - close(prev_fd[0]); - close(prev_fd[1]); - } - - if (i < concat.parts - 1) { - prev_fd[0] = current_fd[0]; - prev_fd[1] = current_fd[1]; - } - - wait(nullptr); - } -} - -// Function to execute a pipe -void executePipe(const std::string &pipe_name) { - auto pipe_info = pipes[pipe_name]; - int fd[2]; - if (pipe(fd) == -1) { - perror("pipe"); - exit(1); - } - - pid_t pid1 = fork(); - if (pid1 == -1) { - perror("fork"); - exit(1); - } - - if (pid1 == 0) { - close(fd[0]); - dup2(fd[1], STDOUT_FILENO); - close(fd[1]); - executeNode(nodes[pipe_info.first]); - } - - pid_t pid2 = fork(); - if (pid2 == -1) { - perror("fork"); - exit(1); - } - - if (pid2 == 0) { - close(fd[1]); - dup2(fd[0], STDIN_FILENO); - close(fd[0]); - executeNode(nodes[pipe_info.second]); - } - - close(fd[0]); - close(fd[1]); - waitpid(pid1, nullptr, 0); - waitpid(pid2, nullptr, 0); -} - -int main(int argc, char *argv[]) { - if (argc != 3) { - std::cerr << "Usage: " << argv[0] << " " << std::endl; - return 1; - } - - std::string flow_file = argv[1]; - std::string action = argv[2]; - - parseFlowFile(flow_file); - - if (pipes.find(action) != pipes.end()) { - executePipe(action); - } else if (concatenations.find(action) != concatenations.end()) { - executeConcatenation(concatenations[action]); - } else { - std::cerr << "Error: Unknown action '" << action << "'." << std::endl; - return 1; - } - - return 0; -} \ No newline at end of file diff --git a/src/flow2.cpp b/src/flow2.cpp deleted file mode 100644 index 49fb521..0000000 --- a/src/flow2.cpp +++ /dev/null @@ -1,302 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define MAX_LEN 1024 - -// Structs for nodes, pipes, and concatenations -struct Node { - std::string name; - std::vector command; -}; - -struct FlowPipe { - std::string from; - std::string to; -}; - -struct Concatenation { - std::string name; - std::vector parts; -}; - -// Maps for storing nodes, pipes, and concatenations -std::map nodes; -std::map pipes; -std::map concatenations; - -// Helper function to tokenize command strings -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::istringstream iss(command_line); - std::string token; - while (iss >> token) { - tokens.push_back(token); - } - return tokens; -} - -// Function to parse and store a node -void parse_node(const std::string &line, std::ifstream &flow_file) { - std::string name, command_line; - - // Extract node name - std::string prefix = "node="; - if (line.substr(0, prefix.length()) == prefix) { - name = line.substr(prefix.length()); - } else { - std::cerr << "Error: Invalid node format: " << line << "\n"; - return; - } - - // Read command line - std::getline(flow_file, command_line); - - // Strip out 'command=' from the command line - std::string command_prefix = "command="; - if (command_line.substr(0, command_prefix.length()) == command_prefix) { - command_line = command_line.substr(command_prefix.length()); - } - - // Tokenize and store node command - Node node; - node.name = name; - node.command = tokenize_command(command_line); - - nodes[name] = node; - std::cout << "Parsed node: " << name << " with command: "; - for (const auto &cmd : node.command) { - std::cout << cmd << " "; - } - std::cout << "\n"; -} - -// Function to parse and store a pipe -void parse_pipe(const std::string &line, std::ifstream &flow_file) { - std::string pipe_name, from, to; - - // Extract pipe name - std::string prefix = "pipe="; - if (line.substr(0, prefix.length()) == prefix) { - pipe_name = line.substr(prefix.length()); - } else { - std::cerr << "Error: Invalid pipe format: " << line << "\n"; - return; - } - - // Read 'from' and 'to' lines - std::getline(flow_file, from); - from = from.substr(from.find('=') + 1); // Extract 'from' - - std::getline(flow_file, to); - to = to.substr(to.find('=') + 1); // Extract 'to' - - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - - pipes[pipe_name] = pipe; - std::cout << "Parsed pipe: " << pipe_name << " from " << from << " to " << to << "\n"; -} - -// Function to parse and store a concatenation -void parse_concatenation(const std::string &line, std::ifstream &flow_file) { - std::string concat_name, parts_line; - int part_count; - - // Extract concatenation name - std::string prefix = "concatenate="; - if (line.substr(0, prefix.length()) == prefix) { - concat_name = line.substr(prefix.length()); - } else { - std::cerr << "Error: Invalid concatenation format: " << line << "\n"; - return; - } - - std::getline(flow_file, parts_line); - sscanf(parts_line.c_str(), "parts=%d", &part_count); - - Concatenation concat; - concat.name = concat_name; - - // Parse individual parts - for (int i = 0; i < part_count; ++i) { - std::string part; - std::getline(flow_file, part); - part = part.substr(part.find('=') + 1); // Extract part name - concat.parts.push_back(part); - std::cout << "Added part " << concat.parts[i] << " to concatenation " << concat_name << "\n"; - } - - concatenations[concat_name] = concat; - std::cout << "Parsed concatenation: " << concat_name << " with " << part_count << " parts\n"; -} - -// Function to execute a command and capture its output -void execute_command(const Node &node, int input_fd = STDIN_FILENO, int output_fd = STDOUT_FILENO) { - std::cout << "Executing command: " << node.name << "\n"; - for (const auto &cmd : node.command) { - std::cout << cmd << " "; - } - std::cout << std::endl; - - std::vector args; - for (auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(NULL); // Null-terminate the argument list - - if (input_fd != STDIN_FILENO) { - dup2(input_fd, STDIN_FILENO); // Redirect stdin to the input_fd - close(input_fd); // Close the file descriptor - } - - if (output_fd != STDOUT_FILENO) { - dup2(output_fd, STDOUT_FILENO); // Redirect stdout to output_fd - close(output_fd); // Close the file descriptor - } - - if (execvp(args[0], args.data()) == -1) { - std::cerr << "Error: Failed to execute command: " << args[0] << "\n"; - exit(EXIT_FAILURE); - } -} - -// Function to capture and print data flow between commands -void capture_and_print(int input_fd, int output_fd) { - char buffer[256]; - ssize_t bytes_read; - while ((bytes_read = read(input_fd, buffer, sizeof(buffer) - 1)) > 0) { - buffer[bytes_read] = '\0'; // Null-terminate the buffer - write(output_fd, buffer, bytes_read); // Forward the output to the next command - std::cout << "Debug: Data passed: " << buffer << "\n"; // Print data flow - } -} - -// Function to set up and execute a pipe between two nodes -void execute_pipe(const FlowPipe &pipe) { - int pipe_fds[2]; - if (::pipe(pipe_fds) == -1) { - std::cerr << "Error: Failed to create pipe\n"; - exit(EXIT_FAILURE); - } - - pid_t pid1 = fork(); - if (pid1 == 0) { // First process - close(pipe_fds[0]); // Close read end - dup2(pipe_fds[1], STDOUT_FILENO); // Redirect stdout to write end - close(pipe_fds[1]); // Close write end - - std::cout << "Executing command: " << nodes[pipe.from].name << " (output redirected to pipe)\n"; - execute_command(nodes[pipe.from]); - } - - pid_t pid2 = fork(); - if (pid2 == 0) { // Second process - close(pipe_fds[1]); // Close write end - dup2(pipe_fds[0], STDIN_FILENO); // Redirect stdin to read end - close(pipe_fds[0]); // Close read end - - std::cout << "Executing command: " << nodes[pipe.to].name << " (input from pipe)\n"; - execute_command(nodes[pipe.to]); - } - - // Close pipes in parent process - close(pipe_fds[0]); - close(pipe_fds[1]); - - // Wait for both child processes to finish - waitpid(pid1, NULL, 0); - waitpid(pid2, NULL, 0); -} - -// Function to execute a concatenation of nodes or pipes -void execute_concatenation(const Concatenation &concat) { - for (size_t i = 0; i < concat.parts.size(); ++i) { - const std::string &part = concat.parts[i]; - - if (pipes.find(part) != pipes.end()) { - std::cout << "Executing pipe in concatenation: " << part << "\n"; - execute_pipe(pipes[part]); // Handle pipes in concatenation - } else if (nodes.find(part) != nodes.end()) { - int pipe_fds[2]; - if (i < concat.parts.size() - 1) { - // Create pipe for intermediate commands - if (::pipe(pipe_fds) == -1) { - std::cerr << "Error: Failed to create pipe\n"; - exit(EXIT_FAILURE); - } - } - - pid_t pid = fork(); - if (pid == 0) { - if (i < concat.parts.size() - 1) { - close(pipe_fds[0]); // Close read end of pipe - dup2(pipe_fds[1], STDOUT_FILENO); // Redirect output to pipe - close(pipe_fds[1]); - } - std::cout << "Executing command: " << nodes[part].name << " (part of concatenation)\n"; - execute_command(nodes[part]); - } - - if (i < concat.parts.size() - 1) { - close(pipe_fds[1]); // Close write end of pipe - dup2(pipe_fds[0], STDIN_FILENO); // Redirect input to next part - close(pipe_fds[0]); - } - - waitpid(pid, NULL, 0); - } - } -} - -// Function to parse the flow file and execute the given target (pipe or concatenation) -void parse_and_execute_flow_file(const std::string &flow_file_path, const std::string &target) { - std::ifstream flow_file(flow_file_path); - if (!flow_file.is_open()) { - std::cerr << "Error: Could not open flow file " << flow_file_path << "\n"; - exit(1); - } - - std::string line; - - // Parse the flow file line by line - while (std::getline(flow_file, line)) { - std::cout << "Read line: " << line << "\n"; - if (line.find("node=") == 0) { - parse_node(line, flow_file); - } else if (line.find("pipe=") == 0) { - parse_pipe(line, flow_file); - } else if (line.find("concatenate=") == 0) { - parse_concatenation(line, flow_file); - } - } - - // Execute based on the target (pipe or concatenation) - if (pipes.find(target) != pipes.end()) { - std::cout << "Executing pipe: " << target << "\n"; - execute_pipe(pipes[target]); - } else if (concatenations.find(target) != concatenations.end()) { - std::cout << "Executing concatenation: " << target << "\n"; - execute_concatenation(concatenations[target]); - } else { - std::cerr << "Error: Target " << target << " not found in pipes or concatenations!\n"; - exit(1); - } -} - -int main(int argc, char *argv[]) { - if (argc < 3) { - std::cerr << "Usage: " << argv[0] << " \n"; - exit(1); - } - - parse_and_execute_flow_file(argv[1], argv[2]); - return 0; -} \ No newline at end of file diff --git a/src/flow3.cpp b/src/flow3.cpp deleted file mode 100644 index aa9f038..0000000 --- a/src/flow3.cpp +++ /dev/null @@ -1,225 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Struct for nodes, pipes, and concatenations -struct Node { - std::string name; - std::vector command; -}; - -struct FlowPipe { - std::string from; - std::string to; -}; - -// Maps for storing nodes and pipes -std::map nodes; -std::map pipes; - -// Helper function to tokenize command strings, treating quoted strings as a single token -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::istringstream iss(command_line); - std::string token; - - while (iss >> token) { - // Check if the token starts with a quote - if (token[0] == '"' || token[0] == '\'') { - char quote_char = token[0]; // Store the type of quote (either ' or ") - std::string quoted_token = token; // Start building the quoted token - - // Keep reading until we find the closing quote - while (quoted_token.back() != quote_char || quoted_token.length() == 1) { - std::string next_token; - if (!(iss >> next_token)) { - std::cerr << "Error: Mismatched quotes in command: " << command_line << "\n"; - return tokens; - } - quoted_token += " " + next_token; - } - - // Remove the surrounding quotes and add the token - quoted_token = quoted_token.substr(1, quoted_token.length() - 2); - tokens.push_back(quoted_token); - } else { - // Regular token, add it directly - tokens.push_back(token); - } - } - return tokens; -} - -// Function to prepare args for execvp -std::vector prepare_args(const Node &node) { - std::vector args; - for (const auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(nullptr); // Null-terminated list of arguments - return args; -} - -// Function to execute a node command using execvp -void execute_node(const Node &node) { - std::vector args = prepare_args(node); - - // Execute the command with execvp - if (execvp(args[0], args.data()) == -1) { - perror("execvp"); - exit(EXIT_FAILURE); - } -} - -// Function to handle piping between two nodes (e.g., ls | wc) -void execute_pipe(const FlowPipe &pipe) { - int pipefd[2]; - if (::pipe(pipefd) == -1) { - perror("pipe"); - exit(EXIT_FAILURE); - } - - pid_t pid1 = fork(); - if (pid1 == -1) { - perror("fork"); - exit(EXIT_FAILURE); - } - - if (pid1 == 0) { // Child process 1 (producer - ls) - close(pipefd[0]); // Close unused read end - dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe write end - close(pipefd[1]); // Close the pipe write end after redirecting - - // Execute the first command (ls) - execute_node(nodes[pipe.from]); - } - - pid_t pid2 = fork(); - if (pid2 == -1) { - perror("fork"); - exit(EXIT_FAILURE); - } - - if (pid2 == 0) { // Child process 2 (consumer - wc) - close(pipefd[1]); // Close unused write end - dup2(pipefd[0], STDIN_FILENO); // Redirect stdin to pipe read end - close(pipefd[0]); // Close the pipe read end after redirecting - - // Execute the second command (wc) - execute_node(nodes[pipe.to]); - } - - // Parent process - close(pipefd[0]); - close(pipefd[1]); - - // Wait for both processes to finish - waitpid(pid1, nullptr, 0); - waitpid(pid2, nullptr, 0); -} - -// Function to parse and store a node -void parse_node(const std::string &line, std::ifstream &flow_file) { - std::string name, command_line; - - // Extract node name - std::string prefix = "node="; - if (line.substr(0, prefix.length()) == prefix) { - name = line.substr(prefix.length()); - } else { - std::cerr << "Error: Invalid node format: " << line << "\n"; - return; - } - - // Read the next line for the command - std::getline(flow_file, command_line); - - // Strip out 'command=' from the command line - std::string command_prefix = "command="; - if (command_line.substr(0, command_prefix.length()) == command_prefix) { - command_line = command_line.substr(command_prefix.length()); - } - - // Tokenize and store node command - Node node; - node.name = name; - node.command = tokenize_command(command_line); - - nodes[name] = node; -} - -// Function to parse and store a pipe -void parse_pipe(const std::string &line, std::ifstream &flow_file) { - std::string pipe_name, from, to; - - // Extract pipe name - std::string prefix = "pipe="; - if (line.substr(0, prefix.length()) == prefix) { - pipe_name = line.substr(prefix.length()); - } else { - std::cerr << "Error: Invalid pipe format: " << line << "\n"; - return; - } - - // Read 'from' and 'to' lines - std::getline(flow_file, from); - from = from.substr(from.find('=') + 1); // Extract 'from' - - std::getline(flow_file, to); - to = to.substr(to.find('=') + 1); // Extract 'to' - - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - - pipes[pipe_name] = pipe; -} - -// Function to parse the flow file -void parse_flow_file(std::ifstream &flow_file) { - std::string line; - - // Parse the flow file line by line - while (std::getline(flow_file, line)) { - if (line.find("node=") == 0) { - parse_node(line, flow_file); - } else if (line.find("pipe=") == 0) { - parse_pipe(line, flow_file); - } - } -} - -int main(int argc, char *argv[]) { - if (argc < 3) { - std::cerr << "Usage: " << argv[0] << " \n"; - exit(1); - } - - std::string flow_file_name = argv[1]; - std::string action = argv[2]; - - std::ifstream flow_file(flow_file_name); - if (!flow_file.is_open()) { - std::cerr << "Error: Could not open flow file " << flow_file_name << "\n"; - exit(1); - } - - // Parse the flow file - parse_flow_file(flow_file); - - // Execute the action (pipe) - if (pipes.find(action) != pipes.end()) { - execute_pipe(pipes[action]); - } else { - std::cerr << "Error: Unknown action '" << action << "'\n"; - return 1; - } - - return 0; -} \ No newline at end of file diff --git a/src/flow4.cpp b/src/flow4.cpp deleted file mode 100644 index 950e640..0000000 --- a/src/flow4.cpp +++ /dev/null @@ -1,370 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Struct for nodes, pipes, and concatenations -struct Node { - std::string name; - std::vector command; -}; - -struct FlowPipe { - std::string from; - std::string to; -}; - -struct Concatenation { - std::string name; - std::vector parts; -}; - -// Maps for storing nodes, pipes, and concatenations -std::map nodes; -std::map pipes; -std::map concatenations; - -// Helper function to tokenize command strings, treating quoted strings as a single token -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::istringstream iss(command_line); - std::string token; - - while (iss >> token) { - if (token[0] == '"' || token[0] == '\'') { - char quote_char = token[0]; - std::string quoted_token = token; - - while (quoted_token.back() != quote_char || quoted_token.length() == 1) { - std::string next_token; - if (!(iss >> next_token)) { - std::cerr << "Error: Mismatched quotes in command: " << command_line << "\n"; - return tokens; - } - quoted_token += " " + next_token; - } - - quoted_token = quoted_token.substr(1, quoted_token.length() - 2); - tokens.push_back(quoted_token); - } else { - tokens.push_back(token); - } - } - return tokens; -} - -// Function to prepare args for execvp -std::vector prepare_args(const Node &node) { - std::vector args; - for (const auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(nullptr); // Null-terminated list of arguments - return args; -} - -// Function to execute a node command using execvp and print the command being executed -void execute_node(const Node &node, int input_fd = -1, bool is_pipe = false) { - std::cout << "[DEBUG] Inside execute_node for command: "; - for (const auto &arg : node.command) { - std::cout << arg << " "; - } - std::cout << std::endl; - - if (input_fd != -1) { - std::cout << "[DEBUG] Reading input from previous command\n"; - dup2(input_fd, STDIN_FILENO); // Redirect input from previous command - close(input_fd); - } - - std::vector args = prepare_args(node); - - // Debug: Check the arguments before calling execvp - std::cout << "[DEBUG] About to execute execvp with: " << args[0] << std::endl; - for (int i = 0; args[i] != nullptr; i++) { - std::cout << "[DEBUG] Arg[" << i << "]: " << args[i] << std::endl; - } - - if (execvp(args[0], args.data()) == -1) { // Execute the command - perror("[ERROR] execvp failed"); - std::cout << "[DEBUG] execvp failed for command: " << node.command[0] << std::endl; - exit(EXIT_FAILURE); // Exit if execvp fails - } -} - - -// Function to handle piping between two nodes (e.g., ls | wc) with output capture -void execute_pipe(const FlowPipe &pipe) { - std::cout << "[DEBUG] Executing pipe from " << pipe.from << " to " << pipe.to << std::endl; - - int pipefd[2]; // Create a pipe - if (::pipe(pipefd) == -1) { - perror("pipe"); - exit(EXIT_FAILURE); - } - - std::cout << "[DEBUG] Pipe created successfully" << std::endl; - - // Fork for the producer (first command) - pid_t pid1 = fork(); - if (pid1 == -1) { - perror("fork"); - exit(EXIT_FAILURE); - } - - if (pid1 == 0) { // Child process 1 (producer) - std::cout << "[DEBUG] Entering producer child process: " << pipe.from << std::endl; - - // Debug before closing the pipe's read end - std::cout << "[DEBUG] Closing read end of the pipe in producer" << std::endl; - if (close(pipefd[0]) == -1) { - perror("[ERROR] close(pipefd[0]) failed in producer"); - _exit(EXIT_FAILURE); // Exit if closing fails - } - - // Debug before redirecting stdout to the pipe's write end - std::cout << "[DEBUG] Redirecting stdout to the pipe's write end" << std::endl; - if (dup2(pipefd[1], STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed in producer"); - _exit(EXIT_FAILURE); // Exit if redirection fails - } - - // Debug after dup2 - std::cout << "[DEBUG] Closing write end of the pipe in producer" << std::endl; - if (close(pipefd[1]) == -1) { - perror("[ERROR] close(pipefd[1]) failed in producer"); - _exit(EXIT_FAILURE); // Exit if closing fails - } - - // Debug: Check if we're about to call execute_node for the producer - std::cout << "[DEBUG] Calling execute_node for producer: " << pipe.from << std::endl; - - // Execute the first command (producer) - execute_node(nodes[pipe.from]); // This should execute the 'ls -l' command - - std::cerr << "[ERROR] execvp failed for producer: " << pipe.from << std::endl; - _exit(EXIT_FAILURE); // Ensure child process exits if execvp fails - } - - - - // Parent closes the write end after forking producer (no need for parent to keep it open) - close(pipefd[1]); - - // Wait for the producer to finish before starting the consumer - std::cout << "[DEBUG] Waiting for producer (pid1) to finish...\n"; - waitpid(pid1, nullptr, 0); - std::cout << "[DEBUG] Producer (pid1) finished\n"; - - // Fork for the consumer (second command) - pid_t pid2 = fork(); - if (pid2 == -1) { - perror("fork"); - exit(EXIT_FAILURE); - } - - if (pid2 == 0) { // Child process 2 (consumer) - std::cout << "[DEBUG] Entering consumer child process: " << pipe.to << std::endl; - close(pipefd[0]); // Close write end in the consumer - dup2(pipefd[0], STDIN_FILENO); // Redirect stdin to pipe's read end - close(pipefd[0]); // Close the read end after redirection - - // Execute the second command (consumer) - execute_node(nodes[pipe.to]); // This should execute the 'ls' command - _exit(EXIT_SUCCESS); // Ensure child process exits after execvp - } - - close(pipefd[0]); // Parent closes the read end after forking consumer - - // Wait for the consumer to finish - std::cout << "[DEBUG] Waiting for consumer (pid2) to finish...\n"; - waitpid(pid2, nullptr, 0); - std::cout << "[DEBUG] Both producer and consumer finished\n"; -} - - - -// Function to handle concatenation of multiple parts (cat foo.txt ; cat foo.txt | sed 's/o/u/g' | wc) -void execute_concatenation(const Concatenation &concat, const std::string &pipe_to) { - std::cout << "[DEBUG] Executing concatenation: " << concat.name << std::endl; - - int temp_fd[2]; - if (pipe(temp_fd) == -1) { - perror("pipe"); - exit(EXIT_FAILURE); - } - - // Debug: Track each part of the concatenation - std::cout << "[DEBUG] Number of parts in concatenation: " << concat.parts.size() << std::endl; - - for (size_t i = 0; i < concat.parts.size(); ++i) { - const std::string &part_name = concat.parts[i]; - std::cout << "[DEBUG] Executing part: " << part_name << std::endl; - - if (nodes.find(part_name) != nodes.end()) { - std::cout << "[DEBUG] Part " << part_name << " is a node" << std::endl; - execute_node(nodes[part_name], temp_fd[0], i < concat.parts.size() - 1); - } else if (pipes.find(part_name) != pipes.end()) { - std::cout << "[DEBUG] Part " << part_name << " is a pipe" << std::endl; - execute_pipe(pipes[part_name]); - } - } - - // Debug: Output after concatenation before passing to wc - std::cout << "[DEBUG] Concatenation output before final command" << std::endl; - - // Now pipe the concatenated output into wc (or any other final command) - pid_t pid_wc = fork(); - if (pid_wc == 0) { - // Redirect the concatenated output (temp_fd[0]) to wc's stdin - dup2(temp_fd[0], STDIN_FILENO); // wc reads from temp_fd[0] - close(temp_fd[0]); - - // Execute the final command (e.g., wc) - std::cout << "[DEBUG] Executing final command: " << pipe_to << std::endl; - execute_node(nodes[pipe_to]); - } - - close(temp_fd[0]); - close(temp_fd[1]); - - // Debug: Wait for the final command to finish - std::cout << "[DEBUG] Waiting for final command to finish" << std::endl; - waitpid(pid_wc, nullptr, 0); - std::cout << "[DEBUG] Final command finished" << std::endl; -} - - -// Function to parse and store a node -void parse_node(const std::string &line, std::ifstream &flow_file) { - std::string name, command_line; - - std::string prefix = "node="; - if (line.substr(0, prefix.length()) == prefix) { - name = line.substr(prefix.length()); - } else { - std::cerr << "[DEBUG] Error: Invalid node format: " << line << "\n"; - return; - } - - std::getline(flow_file, command_line); - - std::string command_prefix = "command="; - if (command_line.substr(0, command_prefix.length()) == command_prefix) { - command_line = command_line.substr(command_prefix.length()); - } - - Node node; - node.name = name; - node.command = tokenize_command(command_line); - - nodes[name] = node; - std::cout << "[DEBUG] Parsed node: " << name << " with command: " << command_line << std::endl; -} - -// Function to parse and store a pipe -void parse_pipe(const std::string &line, std::ifstream &flow_file) { - std::string pipe_name, from, to; - - std::string prefix = "pipe="; - if (line.substr(0, prefix.length()) == prefix) { - pipe_name = line.substr(prefix.length()); - } else { - std::cerr << "[DEBUG] Error: Invalid pipe format: " << line << "\n"; - return; - } - - std::getline(flow_file, from); - from = from.substr(from.find('=') + 1); - - std::getline(flow_file, to); - to = to.substr(to.find('=') + 1); - - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - - pipes[pipe_name] = pipe; - std::cout << "[DEBUG] Parsed pipe: " << pipe_name << " from " << from << " to " << to << std::endl; -} - -// Function to parse and store a concatenation -void parse_concatenation(const std::string &line, std::ifstream &flow_file) { - std::string concat_name, parts_line; - int part_count; - - std::string prefix = "concatenate="; - if (line.substr(0, prefix.length()) == prefix) { - concat_name = line.substr(prefix.length()); - } else { - std::cerr << "[DEBUG] Error: Invalid concatenation format: " << line << "\n"; - return; - } - - std::getline(flow_file, parts_line); - sscanf(parts_line.c_str(), "parts=%d", &part_count); - - Concatenation concat; - concat.name = concat_name; - - for (int i = 0; i < part_count; ++i) { - std::string part; - std::getline(flow_file, part); - part = part.substr(part.find('=') + 1); - concat.parts.push_back(part); - } - - concatenations[concat_name] = concat; - std::cout << "[DEBUG] Parsed concatenation: " << concat_name << " with " << part_count << " parts" << std::endl; -} - -// Function to parse the flow file -void parse_flow_file(std::ifstream &flow_file) { - std::string line; - - while (std::getline(flow_file, line)) { - if (line.find("node=") == 0) { - parse_node(line, flow_file); - } else if (line.find("pipe=") == 0) { - parse_pipe(line, flow_file); - } else if (line.find("concatenate=") == 0) { - parse_concatenation(line, flow_file); - } - } -} - -int main(int argc, char *argv[]) { - if (argc < 3) { - std::cerr << "Usage: " << argv[0] << " \n"; - exit(1); - } - - std::string flow_file_name = argv[1]; - std::string action = argv[2]; - - std::ifstream flow_file(flow_file_name); - if (!flow_file.is_open()) { - std::cerr << "[DEBUG] Error: Could not open flow file " << flow_file_name << "\n"; - exit(1); - } - - parse_flow_file(flow_file); - - if (pipes.find(action) != pipes.end()) { - std::cout << "[DEBUG] Executing pipe: " << action << std::endl; - execute_pipe(pipes[action]); - } else if (concatenations.find(action) != concatenations.end()) { - std::cout << "[DEBUG] Executing concatenation: " << action << std::endl; - execute_concatenation(concatenations[action], action); - } else { - std::cerr << "[DEBUG] Error: Unknown action '" << action << "'\n"; - return 1; - } - - return 0; -} diff --git a/src/flow5.cpp b/src/flow5.cpp deleted file mode 100644 index 1c8b78c..0000000 --- a/src/flow5.cpp +++ /dev/null @@ -1,301 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Struct for nodes (commands) -struct Node { - std::string name; - std::vector command; -}; - -// Struct to represent pipes between nodes -struct FlowPipe { - std::string from; - std::string to; -}; - -// Maps to store nodes and pipes -std::map nodes; -std::map pipes; - -// Global variable to store intermediate pipe input/output -std::string global_pipe_input = ""; - -// Helper function to tokenize command strings, handling quoted strings -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::istringstream iss(command_line); - std::string token; - - while (iss >> token) { - if (token[0] == '"' || token[0] == '\'') { - char quote_char = token[0]; - std::string quoted_token = token; - - while (quoted_token.back() != quote_char || quoted_token.length() == 1) { - std::string next_token; - if (!(iss >> next_token)) { - std::cerr << "Error: Mismatched quotes in command: " << command_line << "\n"; - return tokens; - } - quoted_token += " " + next_token; - } - - quoted_token = quoted_token.substr(1, quoted_token.length() - 2); - tokens.push_back(quoted_token); - } else { - tokens.push_back(token); - } - } - return tokens; -} - -// Function to prepare args for execvp -std::vector prepare_args(const Node &node) { - std::vector args; - for (const auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(nullptr); // Null-terminated list of arguments - return args; -} - -// Function to execute a node command using execvp -void execute_node(const Node &node) { - std::vector args = prepare_args(node); - if (execvp(args[0], args.data()) == -1) { - perror("[ERROR] execvp failed"); - exit(EXIT_FAILURE); - } -} - -// Function to capture the output from a file descriptor (pipe) -std::string capture_output(int fd) { - std::string output; - char buffer[1024]; - ssize_t bytes_read; - while ((bytes_read = read(fd, buffer, sizeof(buffer) - 1)) > 0) { - buffer[bytes_read] = '\0'; - output += buffer; - } - return output; -} - -// Function to execute a pipe -std::string execute_pipe(const FlowPipe &flow_pipe) { - std::cout << "[DEBUG] Executing pipe from " << flow_pipe.from << " to " << flow_pipe.to << std::endl; - - int pipefd[2]; - if (pipe(pipefd) == -1) { - perror("[ERROR] pipe creation failed"); - exit(EXIT_FAILURE); - } - - // Fork for the producer (first command) - pid_t pid1 = fork(); - if (pid1 == -1) { - perror("[ERROR] fork failed for producer"); - exit(EXIT_FAILURE); - } - - if (pid1 == 0) { // Child process 1 (producer) - std::cout << "[DEBUG] Entering producer child process: " << flow_pipe.from << std::endl; - close(pipefd[0]); // Close unused read end - dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe write end - close(pipefd[1]); // Close the write end after redirection - - // Check if the producer (flow_pipe.from) is a pipe or node - if (pipes.find(flow_pipe.from) != pipes.end()) { - // It's a pipe, execute the pipe recursively - std::string producer_output = execute_pipe(pipes[flow_pipe.from]); - // Write producer output to the current pipe (so that consumer gets this output) - write(STDOUT_FILENO, producer_output.c_str(), producer_output.size()); - } else if (nodes.find(flow_pipe.from) != nodes.end()) { - // It's a node, execute the node - execute_node(nodes[flow_pipe.from]); - } else { - std::cerr << "[ERROR] Unknown producer (from): " << flow_pipe.from << std::endl; - _exit(EXIT_FAILURE); - } - - std::cerr << "[ERROR] execvp failed for producer\n"; - _exit(EXIT_FAILURE); // Exit if execvp fails - } - - close(pipefd[1]); // Parent closes the write end of the pipe (no need to write anymore) - - // Wait for the producer to finish - std::cout << "[DEBUG] Waiting for producer (pid1) to finish...\n"; - waitpid(pid1, nullptr, 0); - std::cout << "[DEBUG] Producer (pid1) finished\n"; - - // Capture the output from the producer - std::string producer_output = capture_output(pipefd[0]); // Read from the pipe connected to producer's stdout - close(pipefd[0]); // Parent closes the read end of the pipe - - std::cout << "[DEBUG] Producer finished. Captured output: \n" << producer_output << std::endl; - - // Create a new pipe for the consumer process - int consumer_pipefd[2]; - if (pipe(consumer_pipefd) == -1) { - perror("[ERROR] pipe creation failed for consumer_pipefd"); - exit(EXIT_FAILURE); - } - - // Fork for the consumer (second command) - pid_t pid2 = fork(); - if (pid2 == -1) { - perror("[ERROR] fork failed for consumer"); - exit(EXIT_FAILURE); - } - - if (pid2 == 0) { // Child process 2 (consumer) - std::cout << "[DEBUG] Entering consumer child process: " << flow_pipe.to << std::endl; - close(consumer_pipefd[0]); // Close unused read end of the consumer pipe - dup2(consumer_pipefd[1], STDOUT_FILENO); // Redirect stdout to the consumer pipe (to capture output) - close(consumer_pipefd[1]); // Close the write end after redirection - - // Redirect the producer's output to the consumer's stdin - int temp_pipefd[2]; - if (pipe(temp_pipefd) == -1) { - perror("[ERROR] temp pipe creation failed"); - exit(EXIT_FAILURE); - } - write(temp_pipefd[1], producer_output.c_str(), producer_output.size()); // Write producer output to a temp pipe - close(temp_pipefd[1]); // Close write end of temp pipe after writing - - dup2(temp_pipefd[0], STDIN_FILENO); // Redirect the temp pipe to the consumer's stdin - close(temp_pipefd[0]); // Close read end after redirection - - // Check if the consumer (flow_pipe.to) is a pipe or node - if (pipes.find(flow_pipe.to) != pipes.end()) { - // It's a pipe, execute the pipe recursively - execute_pipe(pipes[flow_pipe.to]); - } else if (nodes.find(flow_pipe.to) != nodes.end()) { - // It's a node, execute the node - execute_node(nodes[flow_pipe.to]); - } else { - std::cerr << "[ERROR] Unknown consumer (to): " << flow_pipe.to << std::endl; - _exit(EXIT_FAILURE); - } - - std::cerr << "[ERROR] execvp failed for consumer\n"; - _exit(EXIT_FAILURE); // Exit if execvp fails - } - - close(consumer_pipefd[1]); // Parent closes the write end of the consumer pipe - - // Wait for the consumer to finish - std::cout << "[DEBUG] Waiting for consumer (pid2) to finish...\n"; - waitpid(pid2, nullptr, 0); - std::cout << "[DEBUG] Consumer (pid2) finished\n"; - - // Capture the consumer's output - std::string consumer_output = capture_output(consumer_pipefd[0]); // Read from the consumer pipe - close(consumer_pipefd[0]); // Close read end after capturing output - - std::cout << "[DEBUG] Consumer finished. Captured output: \n" << consumer_output << std::endl; - - return consumer_output; // Return the consumer's output -} - -// Function to parse and store a node -void parse_node(const std::string &line, std::ifstream &flow_file) { - std::string name, command_line; - - std::string prefix = "node="; - if (line.substr(0, prefix.length()) == prefix) { - name = line.substr(prefix.length()); - } else { - std::cerr << "[ERROR] Invalid node format: " << line << "\n"; - return; - } - - std::getline(flow_file, command_line); - - std::string command_prefix = "command="; - if (command_line.substr(0, command_prefix.length()) == command_prefix) { - command_line = command_line.substr(command_prefix.length()); - } - - Node node; - node.name = name; - node.command = tokenize_command(command_line); - - nodes[name] = node; - std::cout << "[DEBUG] Parsed node: " << name << " with command: " << command_line << std::endl; -} - -// Function to parse and store a pipe -void parse_pipe(const std::string &line, std::ifstream &flow_file) { - std::string pipe_name, from, to; - - std::string prefix = "pipe="; - if (line.substr(0, prefix.length()) == prefix) { - pipe_name = line.substr(prefix.length()); - } else { - std::cerr << "[ERROR] Invalid pipe format: " << line << "\n"; - return; - } - - std::getline(flow_file, from); - from = from.substr(from.find('=') + 1); - - std::getline(flow_file, to); - to = to.substr(to.find('=') + 1); - - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - - pipes[pipe_name] = pipe; - std::cout << "[DEBUG] Parsed pipe: " << pipe_name << " from " << from << " to " << to << std::endl; -} - -// Function to parse the flow file -void parse_flow_file(std::ifstream &flow_file) { - std::string line; - - while (std::getline(flow_file, line)) { - if (line.find("node=") == 0) { - parse_node(line, flow_file); - } else if (line.find("pipe=") == 0) { - parse_pipe(line, flow_file); - } - } -} - -int main(int argc, char *argv[]) { - if (argc < 3) { - std::cerr << "Usage: " << argv[0] << " \n"; - exit(1); - } - - std::string flow_file_name = argv[1]; - std::string action = argv[2]; - - std::ifstream flow_file(flow_file_name); - if (!flow_file.is_open()) { - std::cerr << "[ERROR] Could not open flow file " << flow_file_name << "\n"; - exit(1); - } - - parse_flow_file(flow_file); - - if (pipes.find(action) != pipes.end()) { - std::cout << "[DEBUG] Executing pipe: " << action << std::endl; - std::string result = execute_pipe(pipes[action]); - std::cout << "Final Output:\n" << result << std::endl; - } else { - std::cerr << "[ERROR] Unknown action '" << action << "'\n"; - return 1; - } - - return 0; -} diff --git a/src/flow6.cpp b/src/flow6.cpp deleted file mode 100644 index 8cc6d03..0000000 --- a/src/flow6.cpp +++ /dev/null @@ -1,277 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Struct for nodes, pipes, and concatenations -struct Node { - std::string name; - std::vector command; -}; - -struct FlowPipe { - std::string from; - std::string to; -}; - -// Maps for storing nodes and pipes -std::map nodes; -std::map pipes; - -// Global variable to maintain intermediate output -std::string global_pipe_input; - -// Helper function to tokenize command strings, treating quoted strings as a single token -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::istringstream iss(command_line); - std::string token; - - while (iss >> token) { - if (token[0] == '"' || token[0] == '\'') { - char quote_char = token[0]; - std::string quoted_token = token; - - while (quoted_token.back() != quote_char || quoted_token.length() == 1) { - std::string next_token; - if (!(iss >> next_token)) { - std::cerr << "Error: Mismatched quotes in command: " << command_line << "\n"; - return tokens; - } - quoted_token += " " + next_token; - } - - quoted_token = quoted_token.substr(1, quoted_token.length() - 2); - tokens.push_back(quoted_token); - } else { - tokens.push_back(token); - } - } - return tokens; -} - -// Function to prepare args for execvp -std::vector prepare_args(const Node &node) { - std::vector args; - for (const auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(nullptr); // Null-terminated list of arguments - return args; -} - -// Function to execute a node command using execvp -void execute_node(const Node &node) { - std::vector args = prepare_args(node); - execvp(args[0], args.data()); // Execute the command - perror("[ERROR] execvp failed"); // Only reached if execvp fails - _exit(EXIT_FAILURE); // Exit if execvp fails -} - -// Function to capture output from a file descriptor -std::string capture_output(int fd) { - char buffer[4096]; - std::string output; - ssize_t bytes_read; - - while ((bytes_read = read(fd, buffer, sizeof(buffer) - 1)) > 0) { - buffer[bytes_read] = '\0'; - output += buffer; - } - return output; -} - -// Function to execute a pipe (from-to pair, where from and to can be either nodes or pipes) -std::string execute_pipe(const FlowPipe &flow_pipe) { - std::cout << "[DEBUG] Executing pipe from " << flow_pipe.from << " to " << flow_pipe.to << std::endl; - - // Recursively execute 'from' part (which can be a pipe or node) - std::string producer_output; - if (pipes.find(flow_pipe.from) != pipes.end()) { - // 'from' is another pipe, recursively call execute_pipe - producer_output = execute_pipe(pipes[flow_pipe.from]); - } else if (nodes.find(flow_pipe.from) != nodes.end()) { - // 'from' is a node, execute it and capture output - int pipefd[2]; - if (pipe(pipefd) == -1) { - perror("[ERROR] pipe creation failed"); - exit(EXIT_FAILURE); - } - - pid_t pid1 = fork(); - if (pid1 == -1) { - perror("[ERROR] fork failed for producer"); - exit(EXIT_FAILURE); - } - - if (pid1 == 0) { // Child process 1 (producer) - close(pipefd[0]); // Close unused read end - dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe write end - close(pipefd[1]); // Close the write end after redirection - - execute_node(nodes[flow_pipe.from]); // Execute the node (producer) - _exit(EXIT_SUCCESS); // Exit the child process - } - - close(pipefd[1]); // Parent closes the write end of the pipe - - // Wait for the producer to finish - waitpid(pid1, nullptr, 0); - - // Capture the output from the producer - producer_output = capture_output(pipefd[0]); // Read from the pipe connected to producer's stdout - close(pipefd[0]); // Parent closes the read end of the pipe - } - - // Recursively execute 'to' part (which can be a pipe or node) - if (pipes.find(flow_pipe.to) != pipes.end()) { - // 'to' is another pipe, recursively call execute_pipe - global_pipe_input = producer_output; // Store the output in the global variable - return execute_pipe(pipes[flow_pipe.to]); // Recursive call for the 'to' part if it's a pipe - } else if (nodes.find(flow_pipe.to) != nodes.end()) { - // 'to' is a node, execute the node with the producer output as input - int pipefd[2]; - if (pipe(pipefd) == -1) { - perror("[ERROR] pipe creation failed"); - exit(EXIT_FAILURE); - } - - pid_t pid2 = fork(); - if (pid2 == -1) { - perror("[ERROR] fork failed for consumer"); - exit(EXIT_FAILURE); - } - - if (pid2 == 0) { // Child process 2 (consumer) - close(pipefd[0]); // Close unused read end - dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe write end - close(pipefd[1]); // Close the write end after redirection - - // Pass the producer's output to the consumer's stdin - int temp_pipefd[2]; - if (pipe(temp_pipefd) == -1) { - perror("[ERROR] temp pipe creation failed"); - exit(EXIT_FAILURE); - } - write(temp_pipefd[1], producer_output.c_str(), producer_output.size()); // Write producer output to a temp pipe - close(temp_pipefd[1]); // Close write end after writing - dup2(temp_pipefd[0], STDIN_FILENO); // Redirect temp pipe to consumer's stdin - close(temp_pipefd[0]); // Close read end after redirection - - execute_node(nodes[flow_pipe.to]); // Execute the node (consumer) - _exit(EXIT_SUCCESS); // Exit the child process - } - - close(pipefd[1]); // Parent closes the write end of the pipe - - // Wait for the consumer to finish - waitpid(pid2, nullptr, 0); - - // Capture the consumer's output - std::string consumer_output = capture_output(pipefd[0]); // Read from the consumer pipe - close(pipefd[0]); // Parent closes the read end of the pipe - return consumer_output; - } - - return ""; // Return empty string if no valid pipe or node is found -} - -// Function to parse and store a node -void parse_node(const std::string &line, std::ifstream &flow_file) { - std::string name, command_line; - - std::string prefix = "node="; - if (line.substr(0, prefix.length()) == prefix) { - name = line.substr(prefix.length()); - } else { - std::cerr << "[DEBUG] Error: Invalid node format: " << line << "\n"; - return; - } - - std::getline(flow_file, command_line); - - std::string command_prefix = "command="; - if (command_line.substr(0, command_prefix.length()) == command_prefix) { - command_line = command_line.substr(command_prefix.length()); - } - - Node node; - node.name = name; - node.command = tokenize_command(command_line); - - nodes[name] = node; - std::cout << "[DEBUG] Parsed node: " << name << " with command: " << command_line << std::endl; -} - -// Function to parse and store a pipe -void parse_pipe(const std::string &line, std::ifstream &flow_file) { - std::string pipe_name, from, to; - - std::string prefix = "pipe="; - if (line.substr(0, prefix.length()) == prefix) { - pipe_name = line.substr(prefix.length()); - } else { - std::cerr << "[DEBUG] Error: Invalid pipe format: " << line << "\n"; - return; - } - - std::getline(flow_file, from); - from = from.substr(from.find('=') + 1); - - std::getline(flow_file, to); - to = to.substr(to.find('=') + 1); - - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - - pipes[pipe_name] = pipe; - std::cout << "[DEBUG] Parsed pipe: " << pipe_name << " from " << from << " to " << to << std::endl; -} - -// Function to parse the flow file -void parse_flow_file(std::ifstream &flow_file) { - std::string line; - - while (std::getline(flow_file, line)) { - if (line.find("node=") == 0) { - parse_node(line, flow_file); - } else if (line.find("pipe=") == 0) { - parse_pipe(line, flow_file); - } - } -} - -int main(int argc, char *argv[]) { - if (argc < 3) { - std::cerr << "Usage: " << argv[0] << " \n"; - exit(1); - } - - std::string flow_file_name = argv[1]; - std::string action = argv[2]; - - std::ifstream flow_file(flow_file_name); - if (!flow_file.is_open()) { - std::cerr << "[DEBUG] Error: Could not open flow file " << flow_file_name << "\n"; - exit(1); - } - - parse_flow_file(flow_file); - - if (pipes.find(action) != pipes.end()) { - std::cout << "[DEBUG] Executing pipe: " << action << std::endl; - std::string final_output = execute_pipe(pipes[action]); - std::cout << "Final Output:\n" << final_output; - } else { - std::cerr << "[DEBUG] Error: Unknown action '" << action << "'\n"; - return 1; - } - - return 0; -} \ No newline at end of file diff --git a/src/flow7.cpp b/src/flow7.cpp deleted file mode 100644 index 84c4ada..0000000 --- a/src/flow7.cpp +++ /dev/null @@ -1,275 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Struct for nodes and pipes -struct Node { - std::string name; - std::vector command; -}; - -struct FlowPipe { - std::string from; - std::string to; -}; - -// Maps for storing nodes and pipes -std::map nodes; -std::map pipes; - -// Helper function to tokenize command strings, treating quoted strings as a single token -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::istringstream iss(command_line); - std::string token; - - while (iss >> token) { - if (token[0] == '"' || token[0] == '\'') { - char quote_char = token[0]; - std::string quoted_token = token; - - while (quoted_token.back() != quote_char || quoted_token.length() == 1) { - std::string next_token; - if (!(iss >> next_token)) { - std::cerr << "Error: Mismatched quotes in command: " << command_line << "\n"; - return tokens; - } - quoted_token += " " + next_token; - } - - quoted_token = quoted_token.substr(1, quoted_token.length() - 2); - tokens.push_back(quoted_token); - } else { - tokens.push_back(token); - } - } - return tokens; -} - -// Function to prepare args for execvp -std::vector prepare_args(const Node &node) { - std::vector args; - for (const auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(nullptr); // Null-terminated list of arguments - return args; -} - -// Function to execute a node command using execvp -void execute_node(const Node &node) { - std::vector args = prepare_args(node); - execvp(args[0], args.data()); // Execute the command - perror("[ERROR] execvp failed"); // Only reached if execvp fails - _exit(EXIT_FAILURE); // Exit if execvp fails -} - -// Function to capture output from a file descriptor -std::string capture_output(int fd) { - char buffer[4096]; - std::string output; - ssize_t bytes_read; - - while ((bytes_read = read(fd, buffer, sizeof(buffer) - 1)) > 0) { - buffer[bytes_read] = '\0'; - output += buffer; - } - return output; -} - -// Function to handle recursive pipe execution -std::string execute_pipe(const FlowPipe &flow_pipe) { - std::cout << "[DEBUG] Executing pipe from " << flow_pipe.from << " to " << flow_pipe.to << std::endl; - - // Recursively execute 'from' part (which can be a pipe or node) - std::string producer_output; - if (pipes.find(flow_pipe.from) != pipes.end()) { - // 'from' is another pipe, recursively call execute_pipe - producer_output = execute_pipe(pipes[flow_pipe.from]); - } else if (nodes.find(flow_pipe.from) != nodes.end()) { - // 'from' is a node, execute it and capture output - int pipefd[2]; - if (pipe(pipefd) == -1) { - perror("[ERROR] pipe creation failed"); - exit(EXIT_FAILURE); - } - - pid_t pid1 = fork(); - if (pid1 == -1) { - perror("[ERROR] fork failed for producer"); - exit(EXIT_FAILURE); - } - - if (pid1 == 0) { // Child process 1 (producer) - close(pipefd[0]); // Close unused read end - dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe write end - close(pipefd[1]); // Close the write end after redirection - - execute_node(nodes[flow_pipe.from]); // Execute the node (producer) - _exit(EXIT_SUCCESS); // Exit the child process - } - - close(pipefd[1]); // Parent closes the write end of the pipe - - // Wait for the producer to finish - waitpid(pid1, nullptr, 0); - - // Capture the output from the producer - producer_output = capture_output(pipefd[0]); // Read from the pipe connected to producer's stdout - close(pipefd[0]); // Parent closes the read end of the pipe - - std::cout << "[DEBUG] Producer finished. Captured output: \n" << producer_output << std::endl; - } - - // Recursively execute 'to' part (which can be a pipe or node) - if (pipes.find(flow_pipe.to) != pipes.end()) { - // 'to' is another pipe, recursively call execute_pipe - return execute_pipe(pipes[flow_pipe.to]); - } else if (nodes.find(flow_pipe.to) != nodes.end()) { - // 'to' is a node, execute the node with the producer output as input - int pipefd[2]; - if (pipe(pipefd) == -1) { - perror("[ERROR] pipe creation failed"); - exit(EXIT_FAILURE); - } - - pid_t pid2 = fork(); - if (pid2 == -1) { - perror("[ERROR] fork failed for consumer"); - exit(EXIT_FAILURE); - } - - if (pid2 == 0) { // Child process 2 (consumer) - close(pipefd[0]); // Close unused read end - dup2(pipefd[1], STDOUT_FILENO); // Redirect stdout to pipe write end - close(pipefd[1]); // Close the write end after redirection - - // Pass the producer's output to the consumer's stdin - int temp_pipefd[2]; - if (pipe(temp_pipefd) == -1) { - perror("[ERROR] temp pipe creation failed"); - exit(EXIT_FAILURE); - } - write(temp_pipefd[1], producer_output.c_str(), producer_output.size()); // Write producer output to a temp pipe - close(temp_pipefd[1]); // Close write end after writing - dup2(temp_pipefd[0], STDIN_FILENO); // Redirect temp pipe to consumer's stdin - close(temp_pipefd[0]); // Close read end after redirection - - execute_node(nodes[flow_pipe.to]); // Execute the node (consumer) - _exit(EXIT_SUCCESS); // Exit the child process - } - - close(pipefd[1]); // Parent closes the write end of the pipe - - // Wait for the consumer to finish - waitpid(pid2, nullptr, 0); - - // Capture the consumer's output - std::string consumer_output = capture_output(pipefd[0]); // Read from the consumer pipe - close(pipefd[0]); // Parent closes the read end of the pipe - return consumer_output; - } - - return ""; // Return empty string if no valid pipe or node is found -} - -// Function to parse and store a node -void parse_node(const std::string &line, std::ifstream &flow_file) { - std::string name, command_line; - - std::string prefix = "node="; - if (line.substr(0, prefix.length()) == prefix) { - name = line.substr(prefix.length()); - } else { - std::cerr << "[DEBUG] Error: Invalid node format: " << line << "\n"; - return; - } - - std::getline(flow_file, command_line); - - std::string command_prefix = "command="; - if (command_line.substr(0, command_prefix.length()) == command_prefix) { - command_line = command_line.substr(command_prefix.length()); - } - - Node node; - node.name = name; - node.command = tokenize_command(command_line); - - nodes[name] = node; - std::cout << "[DEBUG] Parsed node: " << name << " with command: " << command_line << std::endl; -} - -// Function to parse and store a pipe -void parse_pipe(const std::string &line, std::ifstream &flow_file) { - std::string pipe_name, from, to; - - std::string prefix = "pipe="; - if (line.substr(0, prefix.length()) == prefix) { - pipe_name = line.substr(prefix.length()); - } else { - std::cerr << "[DEBUG] Error: Invalid pipe format: " << line << "\n"; - return; - } - - std::getline(flow_file, from); - from = from.substr(from.find('=') + 1); - - std::getline(flow_file, to); - to = to.substr(to.find('=') + 1); - - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - - pipes[pipe_name] = pipe; - std::cout << "[DEBUG] Parsed pipe: " << pipe_name << " from " << from << " to " << to << std::endl; -} - -// Function to parse the flow file -void parse_flow_file(std::ifstream &flow_file) { - std::string line; - - while (std::getline(flow_file, line)) { - if (line.find("node=") == 0) { - parse_node(line, flow_file); - } else if (line.find("pipe=") == 0) { - parse_pipe(line, flow_file); - } - } -} - -int main(int argc, char *argv[]) { - if (argc < 3) { - std::cerr << "Usage: " << argv[0] << " \n"; - exit(1); - } - - std::string flow_file_name = argv[1]; - std::string action = argv[2]; - - std::ifstream flow_file(flow_file_name); - if (!flow_file.is_open()) { - std::cerr << "[DEBUG] Error: Could not open flow file " << flow_file_name << "\n"; - exit(1); - } - - parse_flow_file(flow_file); - - if (pipes.find(action) != pipes.end()) { - std::cout << "[DEBUG] Executing pipe: " << action << std::endl; - std::string final_output = execute_pipe(pipes[action]); - std::cout << "Final Output:\n" << final_output; - } else { - std::cerr << "[DEBUG] Error: Unknown action '" << action << "'\n"; - return 1; - } - - return 0; -} diff --git a/src/flow7_1.cpp b/src/flow7_1.cpp deleted file mode 100644 index 3d86d6f..0000000 --- a/src/flow7_1.cpp +++ /dev/null @@ -1,341 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Structs for nodes and pipes -struct Node { - std::string name; - std::vector command; -}; - -struct FlowPipe { - std::string from; - std::string to; -}; - -// Maps for storing nodes and pipes -std::map nodes; -std::map pipes; - -// Helper function to tokenize command strings, treating quoted strings as single tokens -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::istringstream iss(command_line); - std::string token; - char quote_char = '\0'; - bool in_quotes = false; - - while (iss) { - char c = iss.get(); - - if (c == EOF) { - if (!token.empty()) { - tokens.push_back(token); - token.clear(); - } - break; - } - - if (in_quotes) { - if (c == quote_char) { - in_quotes = false; - } else { - token += c; - } - } else { - if (c == '\'' || c == '"') { - in_quotes = true; - quote_char = c; - } else if (isspace(c)) { - if (!token.empty()) { - tokens.push_back(token); - token.clear(); - } - } else { - token += c; - } - } - } - - if (in_quotes) { - std::cerr << "[ERROR] Mismatched quotes in command: " << command_line << "\n"; - exit(EXIT_FAILURE); - } - - return tokens; -} - -// Function to prepare args for execvp -std::vector prepare_args(const Node &node) { - std::vector args; - for (const auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(nullptr); // Null-terminated list of arguments - return args; -} - -// Function to execute a node command using execvp -void execute_node(const Node &node) { - std::vector args = prepare_args(node); - execvp(args[0], args.data()); // Execute the command - perror("[ERROR] execvp failed"); // Only reached if execvp fails - _exit(EXIT_FAILURE); // Exit if execvp fails -} - -// Function to handle recursive pipe execution with concurrent processes -void execute_pipe(const FlowPipe &flow_pipe) { - std::cout << "[DEBUG] Executing pipe from " << flow_pipe.from << " to " << flow_pipe.to << std::endl; - - // Vector to store commands - std::vector command_nodes; - - // Set to keep track of visited nodes/pipes to prevent circular dependencies - std::set visited; - - // Recursive function to build command chain - std::function build_command_chain = [&](const std::string& name) { - if (visited.count(name)) { - std::cerr << "[ERROR] Detected circular dependency involving: " << name << std::endl; - exit(EXIT_FAILURE); - } - visited.insert(name); - - if (nodes.find(name) != nodes.end()) { - command_nodes.push_back(nodes[name]); - } else if (pipes.find(name) != pipes.end()) { - build_command_chain(pipes[name].from); - build_command_chain(pipes[name].to); - } else { - std::cerr << "[ERROR] Unknown node or pipe: " << name << std::endl; - exit(EXIT_FAILURE); - } - }; - - // Build the command chain - build_command_chain(flow_pipe.from); - build_command_chain(flow_pipe.to); - - int num_commands = command_nodes.size(); - std::vector pipefds; - - // Create the necessary pipes - for (int i = 0; i < num_commands - 1; ++i) { - int fd[2]; - if (pipe(fd) == -1) { - perror("[ERROR] pipe creation failed"); - exit(EXIT_FAILURE); - } - pipefds.push_back(fd[0]); // read end - pipefds.push_back(fd[1]); // write end - } - - // Fork and execute commands - for (int i = 0; i < num_commands; ++i) { - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } else if (pid == 0) { - // Child process - - // If not the first command, set stdin to the previous pipe's read end - if (i > 0) { - if (dup2(pipefds[(i - 1) * 2], STDIN_FILENO) == -1) { - perror("[ERROR] dup2 stdin failed"); - exit(EXIT_FAILURE); - } - } - - // If not the last command, set stdout to the current pipe's write end - if (i < num_commands - 1) { - if (dup2(pipefds[i * 2 + 1], STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 stdout failed"); - exit(EXIT_FAILURE); - } - } - - // Close all pipe fds in child - for (size_t j = 0; j < pipefds.size(); ++j) { - close(pipefds[j]); - } - - // Execute the command - execute_node(command_nodes[i]); - _exit(EXIT_FAILURE); // Should not reach here - } - } - - // Parent process closes all pipe fds - for (size_t i = 0; i < pipefds.size(); ++i) { - close(pipefds[i]); - } - - // Wait for all child processes - int status; - for (int i = 0; i < num_commands; ++i) { - wait(&status); - if (WIFEXITED(status)) { - if (WEXITSTATUS(status) != 0) { - std::cerr << "[ERROR] Child process exited with error code: " << WEXITSTATUS(status) << std::endl; - } - } else if (WIFSIGNALED(status)) { - int sig = WTERMSIG(status); - if (sig != SIGPIPE) { - std::cerr << "[ERROR] Child process was terminated by signal: " << sig << std::endl; - } - // Else, silently ignore SIGPIPE - } - } -} - -// Function to parse and store a node -void parse_node(const std::string &line, std::ifstream &flow_file) { - std::string name, command_line; - - std::string prefix = "node="; - if (line.substr(0, prefix.length()) == prefix) { - name = line.substr(prefix.length()); - } else { - std::cerr << "[ERROR] Invalid node format: " << line << "\n"; - exit(EXIT_FAILURE); - } - - if (!std::getline(flow_file, command_line)) { - std::cerr << "[ERROR] Missing command for node: " << name << "\n"; - exit(EXIT_FAILURE); - } - - std::string command_prefix = "command="; - if (command_line.substr(0, command_prefix.length()) == command_prefix) { - command_line = command_line.substr(command_prefix.length()); - } else { - std::cerr << "[ERROR] Invalid command format for node: " << name << "\n"; - exit(EXIT_FAILURE); - } - - Node node; - node.name = name; - node.command = tokenize_command(command_line); - - nodes[name] = node; - std::cout << "[DEBUG] Parsed node: " << name << " with command: " << command_line << std::endl; -} - -// Function to parse and store a pipe -void parse_pipe(const std::string &line, std::ifstream &flow_file) { - std::string pipe_name, from_line, to_line; - - std::string prefix = "pipe="; - if (line.substr(0, prefix.length()) == prefix) { - pipe_name = line.substr(prefix.length()); - } else { - std::cerr << "[ERROR] Invalid pipe format: " << line << "\n"; - exit(EXIT_FAILURE); - } - - if (!std::getline(flow_file, from_line) || !std::getline(flow_file, to_line)) { - std::cerr << "[ERROR] Missing 'from' or 'to' for pipe: " << pipe_name << "\n"; - exit(EXIT_FAILURE); - } - - std::string from_prefix = "from="; - std::string to_prefix = "to="; - - if (from_line.substr(0, from_prefix.length()) != from_prefix || - to_line.substr(0, to_prefix.length()) != to_prefix) { - std::cerr << "[ERROR] Invalid 'from' or 'to' format for pipe: " << pipe_name << "\n"; - exit(EXIT_FAILURE); - } - - std::string from = from_line.substr(from_prefix.length()); - std::string to = to_line.substr(to_prefix.length()); - - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - - pipes[pipe_name] = pipe; - std::cout << "[DEBUG] Parsed pipe: " << pipe_name << " from " << from << " to " << to << std::endl; -} - -// Function to parse the flow file -void parse_flow_file(std::ifstream &flow_file) { - std::string line; - - while (std::getline(flow_file, line)) { - if (line.empty()) continue; - - if (line.find("node=") == 0) { - parse_node(line, flow_file); - } else if (line.find("pipe=") == 0) { - parse_pipe(line, flow_file); - } - } -} - -int main(int argc, char *argv[]) { - if (argc < 3) { - std::cerr << "Usage: " << argv[0] << " \n"; - exit(1); - } - - std::string flow_file_name = argv[1]; - std::string action = argv[2]; - - std::ifstream flow_file(flow_file_name); - if (!flow_file.is_open()) { - std::cerr << "[ERROR] Could not open flow file " << flow_file_name << "\n"; - exit(1); - } - - parse_flow_file(flow_file); - - if (pipes.find(action) != pipes.end()) { - std::cout << "[DEBUG] Executing pipe: " << action << std::endl; - execute_pipe(pipes[action]); - } else if (nodes.find(action) != nodes.end()) { - std::cout << "[DEBUG] Executing node: " << action << std::endl; - - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } - - if (pid == 0) { // Child process - execute_node(nodes[action]); // Execute the node - _exit(EXIT_FAILURE); // Should not reach here - } - - // Wait for the child process to finish - int status; - waitpid(pid, &status, 0); - if (WIFEXITED(status)) { - if (WEXITSTATUS(status) != 0) { - std::cerr << "[ERROR] Child process exited with error code: " << WEXITSTATUS(status) << std::endl; - } - } else if (WIFSIGNALED(status)) { - int sig = WTERMSIG(status); - if (sig != SIGPIPE) { - std::cerr << "[ERROR] Child process was terminated by signal: " << sig << std::endl; - } - // Else, silently ignore SIGPIPE - } - } else { - std::cerr << "[ERROR] Unknown action '" << action << "'\n"; - return 1; - } - - return 0; -} \ No newline at end of file diff --git a/src/flow8.cpp b/src/flow8.cpp deleted file mode 100644 index 4269f1d..0000000 --- a/src/flow8.cpp +++ /dev/null @@ -1,213 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -struct Concatenation { - std::vector parts; -}; - -std::unordered_map nodes; // Maps node names to commands -std::unordered_map concatenations; // Maps concatenation names to their parts - -/** - * Split a string into tokens based on whitespace, respecting quotes. - */ -std::vector split(const std::string& s) { - std::vector tokens; - std::string token; - bool in_single_quote = false; - bool in_double_quote = false; - - for (size_t i = 0; i < s.length(); ++i) { - char c = s[i]; - - if (c == '\'' && !in_double_quote) { - in_single_quote = !in_single_quote; - continue; // Skip the quote character - } else if (c == '"' && !in_single_quote) { - in_double_quote = !in_double_quote; - continue; // Skip the quote character - } - - if (std::isspace(c) && !in_single_quote && !in_double_quote) { - if (!token.empty()) { - tokens.push_back(token); - token.clear(); - } - } else { - token += c; - } - } - - if (!token.empty()) { - tokens.push_back(token); - } - - return tokens; -} - -/** - * Parse the .flow file and populate nodes and concatenations. - */ -bool parseFlowFile(const std::string& filename) { - std::ifstream infile(filename); - if (!infile) { - std::cerr << "Error opening flow file: " << filename << std::endl; - return false; - } - - std::string line; - std::string currentNode; - std::string currentConcat; - while (std::getline(infile, line)) { - if (line.empty()) - continue; - - if (line.substr(0, 5) == "node=") { - currentNode = line.substr(5); - } else if (line.substr(0, 8) == "command=") { - if (currentNode.empty()) { - std::cerr << "Command defined without a node." << std::endl; - return false; - } - nodes[currentNode] = line.substr(8); - currentNode.clear(); - } else if (line.substr(0, 12) == "concatenate=") { - currentConcat = line.substr(12); - concatenations[currentConcat] = Concatenation(); - } else if (line.substr(0, 6) == "parts=") { - // Number of parts, can be ignored as we use dynamic vectors - } else if (line.substr(0, 5) == "part_") { - if (currentConcat.empty()) { - std::cerr << "Part defined without a concatenation." << std::endl; - return false; - } - size_t pos = line.find('='); - if (pos == std::string::npos) { - std::cerr << "Invalid part definition." << std::endl; - return false; - } - std::string partName = line.substr(pos + 1); - concatenations[currentConcat].parts.push_back(partName); - } - // Ignore other lines or add more parsing as needed - } - return true; -} - -/** - * Execute a command represented by a node. - */ -int executeNode(const std::string& nodeName) { - auto it = nodes.find(nodeName); - if (it == nodes.end()) { - std::cerr << "Node not found: " << nodeName << std::endl; - return -1; - } - - std::string command = it->second; - std::vector args = split(command); - - // Convert args to char* array for execvp - std::vector argv; - for (const auto& arg : args) { - argv.push_back(const_cast(arg.c_str())); - } - argv.push_back(nullptr); // Null-terminate the array - - pid_t pid = fork(); - if (pid == -1) { - perror("fork"); - return -1; - } else if (pid == 0) { - // Child process - execvp(argv[0], argv.data()); - // If execvp returns, an error occurred - perror("execvp"); - exit(EXIT_FAILURE); - } else { - // Parent process - int status; - waitpid(pid, &status, 0); - return status; - } -} - -/** - * Execute a concatenation action. - */ -int executeConcatenation(const std::string& concatName) { - auto it = concatenations.find(concatName); - if (it == concatenations.end()) { - std::cerr << "Concatenation not found: " << concatName << std::endl; - return -1; - } - - for (const auto& partName : it->second.parts) { - // Check if the part is a node - if (nodes.find(partName) != nodes.end()) { - int status = executeNode(partName); - if (status != 0) { - std::cerr << "Command failed: " << partName << std::endl; - return status; - } - } else if (concatenations.find(partName) != concatenations.end()) { - // If the part is another concatenation, execute it recursively - int status = executeConcatenation(partName); - if (status != 0) { - std::cerr << "Concatenation failed: " << partName << std::endl; - return status; - } - } else { - std::cerr << "Unknown part: " << partName << std::endl; - return -1; - } - } - return 0; -} - -/** - * Main function. - */ -int main(int argc, char* argv[]) { - if (argc != 3) { - std::cerr << "Usage: ./flow " << std::endl; - return EXIT_FAILURE; - } - - std::string flowFile = argv[1]; - std::string action = argv[2]; - - // Parse the flow file - if (!parseFlowFile(flowFile)) { - return EXIT_FAILURE; - } - - // Check if the action is a concatenation - if (concatenations.find(action) != concatenations.end()) { - int status = executeConcatenation(action); - if (status != 0) { - std::cerr << "Execution failed for action: " << action << std::endl; - return EXIT_FAILURE; - } - } else if (nodes.find(action) != nodes.end()) { - // If the action is a node, execute it directly - int status = executeNode(action); - if (status != 0) { - std::cerr << "Execution failed for node: " << action << std::endl; - return EXIT_FAILURE; - } - } else { - std::cerr << "Action not found: " << action << std::endl; - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; -} \ No newline at end of file diff --git a/src/mix.cpp b/src/mix.cpp deleted file mode 100644 index a744573..0000000 --- a/src/mix.cpp +++ /dev/null @@ -1,382 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Structs for nodes, pipes, and concatenations -struct Node { - std::string name; - std::vector command; -}; - -struct FlowPipe { - std::string from; - std::string to; -}; - -struct Concatenation { - std::vector parts; -}; - -// Maps for storing nodes, pipes, and concatenations -std::unordered_map nodes; // Maps node names to Node structs -std::unordered_map pipes; // Maps pipe names to FlowPipe structs -std::unordered_map concatenations; // Maps concatenation names to Concatenation structs - -// Function Declarations (Prototypes) - -// Helper function to tokenize command strings, treating quoted strings as single tokens. -std::vector tokenize_command(const std::string &command_line); - -// Function to prepare args for execvp. -std::vector prepare_args(const Node &node); - -// Function to execute a node command using execvp. -void execute_node(const Node &node); - -// Function to execute a single node, with optional output redirection. -void execute_single_node(const std::string &node_name, int output_fd = STDOUT_FILENO); - -// Function to execute a concatenation. -void execute_concatenation(const std::string &concat_name, int output_fd = STDOUT_FILENO); - -// Helper function to execute any action (node, pipe, or concatenation). -void execute_action(const std::string &action_name, int output_fd = STDOUT_FILENO); - -// Function to execute a pipe. -void execute_pipe(const std::string &pipe_name, int output_fd = STDOUT_FILENO); - -// Parse the .flow file and populate nodes, pipes, and concatenations. -void parse_flow_file(const std::string& filename); - -// Main function. -int main(int argc, char* argv[]); - -// Function Definitions - -/** - * Helper function to tokenize command strings, treating quoted strings as single tokens. - */ -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::string token; - bool in_single_quote = false; - bool in_double_quote = false; - - for (size_t i = 0; i < command_line.length(); ++i) { - char c = command_line[i]; - - if (c == '\'' && !in_double_quote) { - in_single_quote = !in_single_quote; - continue; // Skip the quote character - } else if (c == '"' && !in_single_quote) { - in_double_quote = !in_double_quote; - continue; // Skip the quote character - } - - if (std::isspace(c) && !in_single_quote && !in_double_quote) { - if (!token.empty()) { - tokens.push_back(token); - token.clear(); - } - } else { - token += c; - } - } - - if (!token.empty()) { - tokens.push_back(token); - } - - return tokens; -} - -/** - * Function to prepare args for execvp. - */ -std::vector prepare_args(const Node &node) { - std::vector args; - for (const auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(nullptr); // Null-terminated list of arguments - return args; -} - -/** - * Function to execute a node command using execvp. - */ -void execute_node(const Node &node) { - std::vector args = prepare_args(node); - execvp(args[0], args.data()); // Execute the command - perror("[ERROR] execvp failed"); // Only reached if execvp fails - _exit(EXIT_FAILURE); // Exit if execvp fails -} - -/** - * Function to execute a single node, with optional output redirection. - */ -void execute_single_node(const std::string &node_name, int output_fd) { - auto it = nodes.find(node_name); - if (it == nodes.end()) { - std::cerr << "[ERROR] Node not found: " << node_name << std::endl; - exit(EXIT_FAILURE); - } - - const Node &node = it->second; - - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } - - if (pid == 0) { // Child process - if (output_fd != STDOUT_FILENO) { - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); // Close after duplication - } - execute_node(node); // Execute the node - _exit(EXIT_FAILURE); // Should not reach here - } - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); - if (WIFEXITED(status)) { - if (WEXITSTATUS(status) != 0) { - std::cerr << "[ERROR] Child process exited with error code: " << WEXITSTATUS(status) << std::endl; - } - } else if (WIFSIGNALED(status)) { - int sig = WTERMSIG(status); - if (sig != SIGPIPE) { - std::cerr << "[ERROR] Child process was terminated by signal: " << sig << std::endl; - } - // Else, silently ignore SIGPIPE - } -} - -/** - * Function to execute a concatenation. - */ -void execute_concatenation(const std::string &concat_name, int output_fd) { - auto it = concatenations.find(concat_name); - if (it == concatenations.end()) { - std::cerr << "[ERROR] Concatenation not found: " << concat_name << std::endl; - exit(EXIT_FAILURE); - } - - const Concatenation &concat = it->second; - - for (const auto &part_name : concat.parts) { - // Execute each part - if (nodes.find(part_name) != nodes.end()) { - execute_single_node(part_name, output_fd); - } else if (pipes.find(part_name) != pipes.end()) { - execute_pipe(part_name, output_fd); - } else if (concatenations.find(part_name) != concatenations.end()) { - execute_concatenation(part_name, output_fd); - } else { - std::cerr << "[ERROR] Unknown part: " << part_name << std::endl; - exit(EXIT_FAILURE); - } - } -} - -/** - * Helper function to execute any action (node, pipe, or concatenation). - */ -void execute_action(const std::string &action_name, int output_fd) { - if (nodes.find(action_name) != nodes.end()) { - execute_single_node(action_name, output_fd); - } else if (pipes.find(action_name) != pipes.end()) { - execute_pipe(action_name, output_fd); - } else if (concatenations.find(action_name) != concatenations.end()) { - execute_concatenation(action_name, output_fd); - } else { - std::cerr << "[ERROR] Unknown action: " << action_name << std::endl; - exit(EXIT_FAILURE); - } -} - -/** - * Function to execute a pipe. - */ -void execute_pipe(const std::string &pipe_name, int output_fd) { - auto it = pipes.find(pipe_name); - if (it == pipes.end()) { - std::cerr << "[ERROR] Pipe not found: " << pipe_name << std::endl; - exit(EXIT_FAILURE); - } - - const FlowPipe &flow_pipe = it->second; - - int fd[2]; - if (pipe(fd) == -1) { - perror("[ERROR] pipe creation failed"); - exit(EXIT_FAILURE); - } - - pid_t pid_to = fork(); - if (pid_to == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } else if (pid_to == 0) { // Child process for 'to' - close(fd[1]); // Close write end - if (dup2(fd[0], STDIN_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(fd[0]); - - if (output_fd != STDOUT_FILENO) { - // Redirect output if necessary - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); - } - - // Corrected line: pass output_fd instead of STDOUT_FILENO - execute_action(flow_pipe.to, STDOUT_FILENO); - - _exit(EXIT_FAILURE); - } - - pid_t pid_from = fork(); - if (pid_from == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } else if (pid_from == 0) { // Child process for 'from' - close(fd[0]); // Close read end - if (dup2(fd[1], STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(fd[1]); - - execute_action(flow_pipe.from, STDOUT_FILENO); - - _exit(EXIT_FAILURE); - } - - // Parent process closes unused pipe ends and waits for child processes - close(fd[0]); - close(fd[1]); - - int status; - waitpid(pid_from, &status, 0); - waitpid(pid_to, &status, 0); -} - -/** - * Parse the .flow file and populate nodes, pipes, and concatenations. - */ -void parse_flow_file(const std::string& filename) { - std::ifstream flow_file(filename); - if (!flow_file.is_open()) { - std::cerr << "[ERROR] Could not open flow file " << filename << "\n"; - exit(1); - } - - std::string line; - while (std::getline(flow_file, line)) { - if (line.empty()) - continue; - - if (line.substr(0, 5) == "node=") { - std::string node_name = line.substr(5); - std::string command_line; - if (!std::getline(flow_file, command_line) || command_line.substr(0, 8) != "command=") { - std::cerr << "[ERROR] Missing command for node: " << node_name << "\n"; - exit(EXIT_FAILURE); - } - std::string command = command_line.substr(8); - Node node; - node.name = node_name; - node.command = tokenize_command(command); - nodes[node_name] = node; - std::cout << "[DEBUG] Parsed node: " << node_name << " with command: " << command << std::endl; - } else if (line.substr(0, 5) == "pipe=") { - std::string pipe_name = line.substr(5); - std::string from_line, to_line; - if (!std::getline(flow_file, from_line) || !std::getline(flow_file, to_line)) { - std::cerr << "[ERROR] Missing 'from' or 'to' for pipe: " << pipe_name << "\n"; - exit(EXIT_FAILURE); - } - if (from_line.substr(0, 5) != "from=" || to_line.substr(0, 3) != "to=") { - std::cerr << "[ERROR] Invalid 'from' or 'to' format for pipe: " << pipe_name << "\n"; - exit(EXIT_FAILURE); - } - std::string from = from_line.substr(5); - std::string to = to_line.substr(3); - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - pipes[pipe_name] = pipe; - std::cout << "[DEBUG] Parsed pipe: " << pipe_name << " from " << from << " to " << to << std::endl; - } else if (line.substr(0, 12) == "concatenate=") { - std::string concat_name = line.substr(12); - std::string parts_line; - if (!std::getline(flow_file, parts_line) || parts_line.substr(0, 6) != "parts=") { - std::cerr << "[ERROR] Missing 'parts' for concatenation: " << concat_name << "\n"; - exit(EXIT_FAILURE); - } - int num_parts = std::stoi(parts_line.substr(6)); - Concatenation concat; - for (int i = 0; i < num_parts; ++i) { - std::string part_line; - if (!std::getline(flow_file, part_line)) { - std::cerr << "[ERROR] Missing 'part_" << i << "' for concatenation: " << concat_name << "\n"; - exit(EXIT_FAILURE); - } - std::string part_prefix = "part_" + std::to_string(i) + "="; - if (part_line.substr(0, part_prefix.length()) != part_prefix) { - std::cerr << "[ERROR] Invalid 'part_" << i << "' format for concatenation: " << concat_name << "\n"; - exit(EXIT_FAILURE); - } - std::string part_name = part_line.substr(part_prefix.length()); - concat.parts.push_back(part_name); - } - concatenations[concat_name] = concat; - std::cout << "[DEBUG] Parsed concatenation: " << concat_name << " with " << num_parts << " parts" << std::endl; - } - // Ignore other lines or add more parsing as needed - } -} - -/** - * Main function. - */ -int main(int argc, char* argv[]) { - if (argc != 3) { - std::cerr << "Usage: ./flow " << std::endl; - return EXIT_FAILURE; - } - - std::string flowFile = argv[1]; - std::string action = argv[2]; - - // Parse the flow file - parse_flow_file(flowFile); - - // Execute the action - std::cout << "[DEBUG] Executing action: " << action << std::endl; - execute_action(action, STDOUT_FILENO); - - return EXIT_SUCCESS; -} \ No newline at end of file diff --git a/src/mix2.cpp b/src/mix2.cpp deleted file mode 100644 index a3c4da6..0000000 --- a/src/mix2.cpp +++ /dev/null @@ -1,584 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Structs for nodes, pipes, concatenations, stderr captures, and file nodes -struct Node { - std::string name; - std::vector command; -}; - -struct FlowPipe { - std::string from; - std::string to; -}; - -struct Concatenation { - std::vector parts; -}; - -struct StderrCapture { - std::string name; - std::string from; -}; - -struct FileNode { - std::string name; - std::string filename; -}; - -// Maps for storing nodes, pipes, concatenations, stderr captures, and file nodes -std::unordered_map nodes; -std::unordered_map pipes; -std::unordered_map concatenations; -std::unordered_map stderrCaptures; -std::unordered_map fileNodes; - -// Function Declarations -std::vector tokenize_command(const std::string &command_line); -std::vector prepare_args(const Node &node); -void execute_node(const Node &node); -void execute_single_node(const std::string &node_name, int output_fd = STDOUT_FILENO); -void execute_concatenation(const std::string &concat_name, int output_fd = STDOUT_FILENO); -void execute_action(const std::string &action_name, int output_fd = STDOUT_FILENO); -void execute_pipe(const std::string &pipe_name, int output_fd = STDOUT_FILENO); -void execute_stderr_capture(const std::string &stderr_name, int output_fd = STDOUT_FILENO); -void execute_file_node(const std::string &file_node_name, int output_fd = STDOUT_FILENO); -void parse_flow_file(const std::string& filename); -int main(int argc, char* argv[]); - -// Function Definitions - -/** - * Helper function to tokenize command strings, treating quoted strings as single tokens. - */ -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::string token; - bool in_single_quote = false; - bool in_double_quote = false; - - for (size_t i = 0; i < command_line.length(); ++i) { - char c = command_line[i]; - - if (c == '\'' && !in_double_quote) { - in_single_quote = !in_single_quote; - continue; // Skip the quote character - } else if (c == '"' && !in_single_quote) { - in_double_quote = !in_double_quote; - continue; // Skip the quote character - } - - if (std::isspace(c) && !in_single_quote && !in_double_quote) { - if (!token.empty()) { - tokens.push_back(token); - token.clear(); - } - } else { - token += c; - } - } - - if (!token.empty()) { - tokens.push_back(token); - } - - return tokens; -} - -/** - * Function to prepare args for execvp. - */ -std::vector prepare_args(const Node &node) { - std::vector args; - for (const auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(nullptr); // Null-terminated list of arguments - return args; -} - -/** - * Function to execute a node command using execvp. - */ -void execute_node(const Node &node) { - std::vector args = prepare_args(node); - execvp(args[0], args.data()); // Execute the command - perror("[ERROR] execvp failed"); // Only reached if execvp fails - _exit(EXIT_FAILURE); // Exit if execvp fails -} - -/** - * Function to execute a single node, with optional output redirection. - */ -void execute_single_node(const std::string &node_name, int output_fd) { - auto it = nodes.find(node_name); - if (it == nodes.end()) { - std::cerr << "[ERROR] Node not found: " << node_name << std::endl; - exit(EXIT_FAILURE); - } - - const Node &node = it->second; - - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } - - if (pid == 0) { // Child process - if (output_fd != STDOUT_FILENO) { - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); // Close after duplication - } - execute_node(node); // Execute the node - _exit(EXIT_FAILURE); // Should not reach here - } - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); - if (WIFEXITED(status)) { - if (WEXITSTATUS(status) != 0) { - std::cerr << "[ERROR] Child process exited with error code: " << WEXITSTATUS(status) << std::endl; - } - } else if (WIFSIGNALED(status)) { - int sig = WTERMSIG(status); - if (sig != SIGPIPE) { - std::cerr << "[ERROR] Child process was terminated by signal: " << sig << std::endl; - } - } -} - -/** - * Function to execute a concatenation. - */ -void execute_concatenation(const std::string &concat_name, int output_fd) { - auto it = concatenations.find(concat_name); - if (it == concatenations.end()) { - std::cerr << "[ERROR] Concatenation not found: " << concat_name << std::endl; - exit(EXIT_FAILURE); - } - - const Concatenation &concat = it->second; - - for (const auto &part_name : concat.parts) { - // Execute each part - execute_action(part_name, output_fd); - } -} - -/** - * Helper function to execute any action (node, pipe, concatenation, stderr capture, or file node). - */ -void execute_action(const std::string &action_name, int output_fd) { - if (nodes.find(action_name) != nodes.end()) { - execute_single_node(action_name, output_fd); - } else if (pipes.find(action_name) != pipes.end()) { - execute_pipe(action_name, output_fd); - } else if (concatenations.find(action_name) != concatenations.end()) { - execute_concatenation(action_name, output_fd); - } else if (stderrCaptures.find(action_name) != stderrCaptures.end()) { - execute_stderr_capture(action_name, output_fd); - } else if (fileNodes.find(action_name) != fileNodes.end()) { - // Do nothing here; file nodes are handled in execute_pipe - execute_file_node(action_name, output_fd); - } else { - std::cerr << "[ERROR] Unknown action: " << action_name << std::endl; - exit(EXIT_FAILURE); - } -} - -/** - * Function to execute a pipe. - */ -void execute_pipe(const std::string &pipe_name, int output_fd) { - auto it = pipes.find(pipe_name); - if (it == pipes.end()) { - std::cerr << "[ERROR] Pipe not found: " << pipe_name << std::endl; - exit(EXIT_FAILURE); - } - - const FlowPipe &flow_pipe = it->second; - - // Handle if 'from' or 'to' is a file node - bool from_is_file = fileNodes.find(flow_pipe.from) != fileNodes.end(); - bool to_is_file = fileNodes.find(flow_pipe.to) != fileNodes.end(); - - if (from_is_file && to_is_file) { - std::cerr << "[ERROR] Both 'from' and 'to' cannot be file nodes in pipe: " << pipe_name << std::endl; - exit(EXIT_FAILURE); - } - - if (from_is_file) { - // 'from' is a file node; redirect file contents to 'to' action - auto file_it = fileNodes.find(flow_pipe.from); - const FileNode &fileNode = file_it->second; - - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } else if (pid == 0) { // Child process - // Open the file for reading - int fd = open(fileNode.filename.c_str(), O_RDONLY); - if (fd == -1) { - perror("[ERROR] open failed"); - exit(EXIT_FAILURE); - } - // Redirect file to stdin - if (dup2(fd, STDIN_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - close(fd); - exit(EXIT_FAILURE); - } - close(fd); - - // Redirect output if necessary - if (output_fd != STDOUT_FILENO) { - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); - } - - // Execute the 'to' action - execute_action(flow_pipe.to, STDOUT_FILENO); - _exit(EXIT_FAILURE); - } - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); - } else if (to_is_file) { - // 'to' is a file node; redirect output of 'from' action to file - auto file_it = fileNodes.find(flow_pipe.to); - const FileNode &fileNode = file_it->second; - - // Open the file for writing - int fd = open(fileNode.filename.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0644); - if (fd == -1) { - perror("[ERROR] open failed"); - exit(EXIT_FAILURE); - } - - // Execute 'from' action, redirecting its output to the file - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - close(fd); - exit(EXIT_FAILURE); - } else if (pid == 0) { // Child process - // Redirect stdout to file - if (dup2(fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - close(fd); - exit(EXIT_FAILURE); - } - close(fd); - - // Execute the 'from' action - execute_action(flow_pipe.from, STDOUT_FILENO); - _exit(EXIT_FAILURE); - } - - close(fd); - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); - } else { - // Regular pipe between two actions - int fd[2]; - if (pipe(fd) == -1) { - perror("[ERROR] pipe creation failed"); - exit(EXIT_FAILURE); - } - - pid_t pid_to = fork(); - if (pid_to == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } else if (pid_to == 0) { // Child process for 'to' - close(fd[1]); // Close write end - if (dup2(fd[0], STDIN_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(fd[0]); - - if (output_fd != STDOUT_FILENO) { - // Redirect output if necessary - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); - } - - execute_action(flow_pipe.to, STDOUT_FILENO); - _exit(EXIT_FAILURE); - } - - pid_t pid_from = fork(); - if (pid_from == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } else if (pid_from == 0) { // Child process for 'from' - close(fd[0]); // Close read end - if (dup2(fd[1], STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(fd[1]); - - execute_action(flow_pipe.from, STDOUT_FILENO); - _exit(EXIT_FAILURE); - } - - // Parent process closes unused pipe ends and waits for child processes - close(fd[0]); - close(fd[1]); - - int status; - waitpid(pid_from, &status, 0); - waitpid(pid_to, &status, 0); - } -} - -/** - * Function to execute a stderr capture. - */ -void execute_stderr_capture(const std::string &stderr_name, int output_fd) { - auto it = stderrCaptures.find(stderr_name); - if (it == stderrCaptures.end()) { - std::cerr << "[ERROR] Stderr capture not found: " << stderr_name << std::endl; - exit(EXIT_FAILURE); - } - - const StderrCapture &stderrCapture = it->second; - - // Execute the 'from' action, redirecting its stderr to stdout - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } - - if (pid == 0) { // Child process - // Redirect stderr to stdout - if (dup2(STDOUT_FILENO, STDERR_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - - if (output_fd != STDOUT_FILENO) { - // Redirect output if necessary - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); - } - - // Execute the 'from' action - execute_action(stderrCapture.from, STDOUT_FILENO); - _exit(EXIT_FAILURE); - } - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); -} - -/** - * Function to execute a file node. - */ -void execute_file_node(const std::string &file_node_name, int output_fd) { - auto it = fileNodes.find(file_node_name); - if (it == fileNodes.end()) { - std::cerr << "[ERROR] File node not found: " << file_node_name << std::endl; - exit(EXIT_FAILURE); - } - - const FileNode &fileNode = it->second; - - // For file nodes, we can output the file content if used directly - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } - - if (pid == 0) { // Child process - // Open the file for reading - int fd = open(fileNode.filename.c_str(), O_RDONLY); - if (fd == -1) { - perror("[ERROR] open failed"); - exit(EXIT_FAILURE); - } - // Redirect file to stdin - if (dup2(fd, STDIN_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - close(fd); - exit(EXIT_FAILURE); - } - close(fd); - - if (output_fd != STDOUT_FILENO) { - // Redirect output if necessary - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); - } - - // Execute 'cat' to output file contents - execlp("cat", "cat", (char *)NULL); - perror("[ERROR] execlp failed"); - exit(EXIT_FAILURE); - } - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); -} - -/** - * Parse the .flow file and populate nodes, pipes, concatenations, stderr captures, and file nodes. - */ -void parse_flow_file(const std::string& filename) { - std::ifstream flow_file(filename); - if (!flow_file.is_open()) { - std::cerr << "[ERROR] Could not open flow file " << filename << "\n"; - exit(1); - } - - std::string line; - while (std::getline(flow_file, line)) { - if (line.empty()) - continue; - - if (line.substr(0, 5) == "node=") { - // Parse a node - std::string node_name = line.substr(5); - std::string command_line; - if (!std::getline(flow_file, command_line) || command_line.substr(0, 8) != "command=") { - std::cerr << "[ERROR] Missing command for node: " << node_name << "\n"; - exit(EXIT_FAILURE); - } - std::string command = command_line.substr(8); - Node node; - node.name = node_name; - node.command = tokenize_command(command); - nodes[node_name] = node; - } else if (line.substr(0, 5) == "pipe=") { - // Parse a pipe - std::string pipe_name = line.substr(5); - std::string from_line, to_line; - if (!std::getline(flow_file, from_line) || !std::getline(flow_file, to_line)) { - std::cerr << "[ERROR] Missing 'from' or 'to' for pipe: " << pipe_name << "\n"; - exit(EXIT_FAILURE); - } - if (from_line.substr(0, 5) != "from=" || to_line.substr(0, 3) != "to=") { - std::cerr << "[ERROR] Invalid 'from' or 'to' format for pipe: " << pipe_name << "\n"; - exit(EXIT_FAILURE); - } - std::string from = from_line.substr(5); - std::string to = to_line.substr(3); - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - pipes[pipe_name] = pipe; - } else if (line.substr(0, 12) == "concatenate=") { - // Parse a concatenation - std::string concat_name = line.substr(12); - std::string parts_line; - if (!std::getline(flow_file, parts_line) || parts_line.substr(0, 6) != "parts=") { - std::cerr << "[ERROR] Missing 'parts' for concatenation: " << concat_name << "\n"; - exit(EXIT_FAILURE); - } - int num_parts = std::stoi(parts_line.substr(6)); - Concatenation concat; - for (int i = 0; i < num_parts; ++i) { - std::string part_line; - if (!std::getline(flow_file, part_line)) { - std::cerr << "[ERROR] Missing 'part_" << i << "' for concatenation: " << concat_name << "\n"; - exit(EXIT_FAILURE); - } - std::string part_prefix = "part_" + std::to_string(i) + "="; - if (part_line.substr(0, part_prefix.length()) != part_prefix) { - std::cerr << "[ERROR] Invalid 'part_" << i << "' format for concatenation: " << concat_name << "\n"; - exit(EXIT_FAILURE); - } - std::string part_name = part_line.substr(part_prefix.length()); - concat.parts.push_back(part_name); - } - concatenations[concat_name] = concat; - } else if (line.substr(0, 6) == "stderr") { - // Parse a stderr capture - std::string stderr_name = line.substr(6); - if (!stderr_name.empty() && stderr_name[0] == '=') { - stderr_name = stderr_name.substr(1); - } - std::string from_line; - if (!std::getline(flow_file, from_line) || from_line.substr(0, 5) != "from=") { - std::cerr << "[ERROR] Missing 'from' for stderr: " << stderr_name << "\n"; - exit(EXIT_FAILURE); - } - std::string from = from_line.substr(5); - StderrCapture stderrCapture; - stderrCapture.name = stderr_name; - stderrCapture.from = from; - stderrCaptures[stderr_name] = stderrCapture; - } else if (line.substr(0, 5) == "file=") { - // Parse a file node - std::string file_name = line.substr(5); - std::string name_line; - if (!std::getline(flow_file, name_line) || name_line.substr(0, 5) != "name=") { - std::cerr << "[ERROR] Missing 'name' for file: " << file_name << "\n"; - exit(EXIT_FAILURE); - } - std::string filename = name_line.substr(5); - FileNode fileNode; - fileNode.name = file_name; - fileNode.filename = filename; - fileNodes[file_name] = fileNode; - } - // Ignore other lines or add more parsing as needed - } -} - -/** - * Main function. - */ -int main(int argc, char* argv[]) { - if (argc != 3) { - std::cerr << "Usage: ./flow " << std::endl; - return EXIT_FAILURE; - } - - std::string flowFile = argv[1]; - std::string action = argv[2]; - - // Parse the flow file - parse_flow_file(flowFile); - - // Execute the action - execute_action(action, STDOUT_FILENO); - - return EXIT_SUCCESS; -} diff --git a/src/parse.cpp b/src/parse.cpp deleted file mode 100644 index 6012e62..0000000 --- a/src/parse.cpp +++ /dev/null @@ -1,172 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#define MAX_LEN 1024 - -// Struct for nodes, pipes, and concatenations -struct Node { - std::string name; - std::vector command; -}; - -struct FlowPipe { - std::string from; - std::string to; -}; - -struct Concatenation { - std::string name; - std::vector parts; -}; - -// Maps for storing nodes, pipes, and concatenations -std::map nodes; -std::map pipes; -std::map concatenations; - -// Helper function to tokenize command strings -std::vector tokenize_command(const std::string &command_line) { - std::vector tokens; - std::istringstream iss(command_line); - std::string token; - while (iss >> token) { - tokens.push_back(token); - } - return tokens; -} - -// Function to parse and store a node -// Function to parse and store a node -void parse_node(const std::string &line, std::ifstream &flow_file) { - std::string name, command_line; - - // Extract node name - std::string prefix = "node="; - if (line.substr(0, prefix.length()) == prefix) { - name = line.substr(prefix.length()); - } else { - std::cerr << "Error: Invalid node format: " << line << "\n"; - return; - } - - // Read the next line for the command - std::getline(flow_file, command_line); - - // Strip out 'command=' from the command line - std::string command_prefix = "command="; - if (command_line.substr(0, command_prefix.length()) == command_prefix) { - command_line = command_line.substr(command_prefix.length()); - } - - // Tokenize and store node command - Node node; - node.name = name; - node.command = tokenize_command(command_line); - - nodes[name] = node; - std::cout << "Parsed node: " << name << " with command: "; - for (const auto &cmd : node.command) { - std::cout << cmd << " "; - } - std::cout << "\n"; -} - -// Function to parse and store a pipe -void parse_pipe(const std::string &line, std::ifstream &flow_file) { - std::string pipe_name, from, to; - - // Extract pipe name - std::string prefix = "pipe="; - if (line.substr(0, prefix.length()) == prefix) { - pipe_name = line.substr(prefix.length()); - } else { - std::cerr << "Error: Invalid pipe format: " << line << "\n"; - return; - } - - // Read 'from' and 'to' lines - std::getline(flow_file, from); - from = from.substr(from.find('=') + 1); // Extract 'from' - - std::getline(flow_file, to); - to = to.substr(to.find('=') + 1); // Extract 'to' - - FlowPipe pipe; - pipe.from = from; - pipe.to = to; - - pipes[pipe_name] = pipe; - std::cout << "Parsed pipe: " << pipe_name << " from " << from << " to " << to << "\n"; -} - -// Function to parse and store a concatenation -void parse_concatenation(const std::string &line, std::ifstream &flow_file) { - std::string concat_name, parts_line; - int part_count; - - // Extract concatenation name - std::string prefix = "concatenate="; - if (line.substr(0, prefix.length()) == prefix) { - concat_name = line.substr(prefix.length()); - } else { - std::cerr << "Error: Invalid concatenation format: " << line << "\n"; - return; - } - - std::getline(flow_file, parts_line); - sscanf(parts_line.c_str(), "parts=%d", &part_count); - - Concatenation concat; - concat.name = concat_name; - - // Parse individual parts - for (int i = 0; i < part_count; ++i) { - std::string part; - std::getline(flow_file, part); - part = part.substr(part.find('=') + 1); // Extract part name - concat.parts.push_back(part); - std::cout << "Added part " << concat.parts[i] << " to concatenation " << concat_name << "\n"; - } - - concatenations[concat_name] = concat; - std::cout << "Parsed concatenation: " << concat_name << " with " << part_count << " parts\n"; -} - -// Function to parse the flow file -void parse_flow_file(std::ifstream &flow_file) { - std::string line; - - // Parse the flow file line by line - while (std::getline(flow_file, line)) { - std::cout << "Read line: " << line << "\n"; - if (line.find("node=") == 0) { - parse_node(line, flow_file); - } else if (line.find("pipe=") == 0) { - parse_pipe(line, flow_file); - } else if (line.find("concatenate=") == 0) { - parse_concatenation(line, flow_file); - } - } -} - -int main(int argc, char *argv[]) { - if (argc < 2) { - std::cerr << "Usage: " << argv[0] << " \n"; - exit(1); - } - - std::ifstream flow_file(argv[1]); - if (!flow_file.is_open()) { - std::cerr << "Error: Could not open flow file " << argv[1] << "\n"; - exit(1); - } - - std::cout << "Debug: Opening flow file " << argv[1] << "\n"; - parse_flow_file(flow_file); - - return 0; -} From 286aa33dfb4b20dbcdd4126a0c318a101fa2bde2 Mon Sep 17 00:00:00 2001 From: TechPertz Date: Tue, 29 Oct 2024 03:21:15 -0400 Subject: [PATCH 2/6] self python script ready --- .DS_Store | Bin 6148 -> 8196 bytes README.md | 28 +- files/.DS_Store | Bin 0 -> 8196 bytes files/0.flow | 17 ++ files/{flow1.flow => 1.flow} | 0 files/10.flow | 18 ++ files/11.flow | 17 ++ files/{flow2.flow => 12.flow} | 2 +- files/{flow11.flow => 13.flow} | 2 +- files/14.flow | 8 + files/{flow12.flow => 15.flow} | 2 +- files/{flow15.flow => 16.flow} | 2 +- files/{flow13.flow => 17.flow} | 2 +- files/2.flow | 9 + files/3.flow | 9 + files/4.flow | 9 + files/5.flow | 9 + files/6.flow | 9 + files/7.flow | 9 + files/8.flow | 10 + files/9.flow | 11 + files/flow10.flow | 37 --- files/flow14.flow | 13 - files/flow3.flow | 9 - files/flow4.flow | 10 - files/flow5.flow | 16 -- files/flow6.flow | 20 -- files/flow8.flow | 10 - files/flow9.flow | 22 -- files/foo.txt | 1 - files/my_flow_file.flow | 40 --- flow.cpp | 470 +++++++++------------------------ output.txt | 14 + run.py | 67 +++++ 34 files changed, 364 insertions(+), 538 deletions(-) create mode 100644 files/.DS_Store create mode 100644 files/0.flow rename files/{flow1.flow => 1.flow} (100%) create mode 100644 files/10.flow create mode 100644 files/11.flow rename files/{flow2.flow => 12.flow} (93%) rename files/{flow11.flow => 13.flow} (96%) create mode 100644 files/14.flow rename files/{flow12.flow => 15.flow} (90%) rename files/{flow15.flow => 16.flow} (87%) rename files/{flow13.flow => 17.flow} (90%) create mode 100644 files/2.flow create mode 100644 files/3.flow create mode 100644 files/4.flow create mode 100644 files/5.flow create mode 100644 files/6.flow create mode 100644 files/7.flow create mode 100644 files/8.flow create mode 100644 files/9.flow delete mode 100644 files/flow10.flow delete mode 100644 files/flow14.flow delete mode 100644 files/flow3.flow delete mode 100644 files/flow4.flow delete mode 100644 files/flow5.flow delete mode 100644 files/flow6.flow delete mode 100644 files/flow8.flow delete mode 100644 files/flow9.flow delete mode 100644 files/foo.txt delete mode 100644 files/my_flow_file.flow create mode 100644 output.txt create mode 100644 run.py diff --git a/.DS_Store b/.DS_Store index 1ec489912a56160bd2578c9acc8a48fe0e30a996..144adfb2d7ddd6cd173302ca784266b070eaa6b2 100644 GIT binary patch delta 974 zcmcIjO=uHA6n>NJCYzron zQiUD_4-!X@dhsN9DFH8Dy$RmEc=77Nn+l@7-6S+EULBbI-p>2p_ukB#+0X9hMgf52 zTh&nQ?CL1$`3XBCHzB9C!K zIyZ#V#6LHGHa(wR;E%+`JrQc4fesX!n!06n1IV+AscTI;oBd2YUP1Kvr9dzg9*RWe zSadiVk0+9HYIJNvj#m_Qvu?4LQN6@;X65x3-H@ZryKK9lGNWYCEsbuMZF=8c(RR@_ zd@Nw^I<4M0TwC2Sk(4-Ga8<8Zlo~hdmR2p+YE5dF2kiA*ZZexT3Pz1#0w-b7v^8cl z*QnJ*ysax0suztsvu)N`S1e00>NLMo)>O7POa}(r+!Q9}eEmO|0rhCdVF}qU|G2{ykosKy zTO1FPNZ-ZZi?e*vw=gE7tPWL3BeuW>)BUF59RDbeOgT5`h+gDhbccG9{5(bt4k|hn zkEhPB`Id%)U^!P06X{^1BXt6+J}eDoe8^~lf%`LIhrbaf_!Hlh--|I8s87X*gSYv> uE|Hkm-7JiT5HCAVr4y6BdwDcb;Ki^c;n_N`2>3?$Ii?@j>Hn;2nfwLGBKF7t delta 158 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50$jH4hU^g=(_hcS{$j$8nGK}oT zW;zPS=0=lO3EEGV7SR*rV8~_2WT;>;X3%3uW+-4Nn7lw(ezK>C#biTKqsfOw)i#y| tF)n83;1Fa6nhOL1+(5z=WW~n9@640=WjsL^GB80b2f2q~b3D%+W&mCq9U}k$ diff --git a/README.md b/README.md index bcd8c92..2bde306 100644 --- a/README.md +++ b/README.md @@ -15,23 +15,23 @@ Test Cases 1: ls | wc // normal pipe 2: ls -l | wc // if - arguments can be handled properly 3: ls -l | ls // if pipe can be used for a "to" argument that doesnt take inputs -4: echo foo | wc // no quotes for argument -4: echo 'foo2' | cat // single quotes -5: echo "foo1" | wc // double quotes -6: echo 'f o o' | wc // quotes with space +4: echo foo | cat // no quotes for argument +5: echo 'foo' | cat // single quotes +6: echo "foo" | cat // double quotes +7: echo 'f o o' | cat // quotes with space -7: ls ; pwd // normal concat -8: ls; ls ; ls -a // concat with more than 2 parts and also arguments -9: echo foo1 ; echo 'foo2' ; echo "foo3" ; echo 'f o o 4' // no quotes ; double ; single ; spaces +8: ls ; pwd // normal concat +9: ls; ls ; ls -a // concat with more than 2 parts and also arguments +10: echo foo1 ; echo 'foo2' ; echo "foo3" ; echo 'f o o 4' // no quotes ; double ; single ; spaces -10: ls | wc ; pwd // mix -11: ( cat foo.txt ; cat foo.txt | sed s/o/u/g ) | wc // complicated mix +11: ls | wc ; pwd // mix +12: ( cat foo.txt ; cat foo.txt | sed s/o/u/g ) | wc // complicated mix -12: ( seq 1 5 | awk '{print $1*$1}'; seq 1 5 | awk '{print $1*2}'; seq 1 5 | awk '{print $1+5}' ) | sort -n | uniq +13: ( seq 1 5 | awk '{print $1*$1}'; seq 1 5 | awk '{print $1*2}'; seq 1 5 | awk '{print $1+5}' ) | sort -n | uniq // extra credit - chatgpt - complicated with quotes, arguments, everything -13: cd b 2>&1 // b would not exist in the directory -14: mkdir a 2>&1 | wc +14: cd b 2>&1 // b would not exist in the directory +15: cd b 2>&1 | wc -15: ls > output.txt -16: cat output.txt | wc \ No newline at end of file +16: ls > output.txt +17: cat output.txt | wc \ No newline at end of file diff --git a/files/.DS_Store b/files/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2d01439afa1abfa36f98693ae70094fb8a980108 GIT binary patch literal 8196 zcmeI1zfQw25XR3?r4^MBV;PY01Qq2!Td2yw%nP7`V5yX)2qu)Bci_Ud(k-B*kHNb7s+sYQLP zsd?P)Eg8v)s{U+IpK5BEW!m?ds(x?j`&?Bsleq7UR3d~?*VZPZl|1Mp;*rrx8i`hC zf!QTmodo8VXjKlp+KKi;WrnCrI9zI4W>$;P{%_nPuJuSwXBm5`>%;L~n?vlSu2f^@ zv6s3Ijd|@X=B19W5kE^Gm9^{#aU3muRx+<~=wfUoenXnmE6t-XhS+hEJ;dJs2qG&+ zU=0MeeV+r)|F8A$|7*Cjb!h~Qz@`vzoyqNFjM0SLx-l-!wR6-vR4%NmycHKTl8(bl fIu5(|!w| concatenations; std::unordered_map stderrCaptures; std::unordered_map fileNodes; -// Function Declarations -std::vector tokenize_command(const std::string &command_line); -std::vector prepare_args(const Node &node); -void execute_node(const Node &node); -void execute_single_node(const std::string &node_name, int output_fd = STDOUT_FILENO, bool suppress_error_messages = false); -void execute_concatenation(const std::string &concat_name, int output_fd = STDOUT_FILENO, bool suppress_error_messages = false); -void execute_action(const std::string &action_name, int output_fd = STDOUT_FILENO, bool suppress_error_messages = false); -void execute_pipe(const std::string &pipe_name, int output_fd = STDOUT_FILENO, bool suppress_error_messages = false); -void execute_stderr_capture(const std::string &stderr_name, int output_fd = STDOUT_FILENO, bool suppress_error_messages = false); -void execute_file_node(const std::string &file_node_name, int output_fd = STDOUT_FILENO, bool suppress_error_messages = false); -void parse_flow_file(const std::string& filename); -int main(int argc, char* argv[]); +// Helper function to execute commands or actions +void execute_command(const std::vector &command_args, int input_fd, int output_fd, bool redirect_stderr, bool suppress_error_messages) { + pid_t pid = fork(); + if (pid == -1) { + perror("[ERROR] fork failed"); + exit(EXIT_FAILURE); + } + if (pid == 0) { // Child process + if (input_fd != STDIN_FILENO) { + if (dup2(input_fd, STDIN_FILENO) == -1) { + perror("[ERROR] dup2 input_fd failed"); + exit(EXIT_FAILURE); + } + close(input_fd); + } + if (output_fd != STDOUT_FILENO) { + if (dup2(output_fd, STDOUT_FILENO) == -1) { + perror("[ERROR] dup2 output_fd failed"); + exit(EXIT_FAILURE); + } + close(output_fd); + } + if (redirect_stderr) { + if (dup2(STDOUT_FILENO, STDERR_FILENO) == -1) { + perror("[ERROR] dup2 STDERR failed"); + exit(EXIT_FAILURE); + } + } + std::vector args; + for (const auto &arg : command_args) { + args.push_back(const_cast(arg.c_str())); + } + args.push_back(nullptr); + execvp(args[0], args.data()); + perror("[ERROR] execvp failed"); + exit(EXIT_FAILURE); + } + // Parent process waits for the child + int status; + waitpid(pid, &status, 0); + if (WIFEXITED(status)) { + if (WEXITSTATUS(status) != 0 && !suppress_error_messages) { + std::cerr << "[ERROR] Child process exited with error code: " << WEXITSTATUS(status) << std::endl; + } + } else if (WIFSIGNALED(status)) { + int sig = WTERMSIG(status); + if (sig != SIGPIPE && !suppress_error_messages) { + std::cerr << "[ERROR] Child process was terminated by signal: " << sig << std::endl; + } + } +} // Function Definitions @@ -66,9 +105,7 @@ std::vector tokenize_command(const std::string &command_line) { bool in_single_quote = false; bool in_double_quote = false; - for (size_t i = 0; i < command_line.length(); ++i) { - char c = command_line[i]; - + for (char c : command_line) { if (c == '\'' && !in_double_quote) { in_single_quote = !in_single_quote; continue; // Skip the quote character @@ -94,366 +131,118 @@ std::vector tokenize_command(const std::string &command_line) { return tokens; } -/** - * Function to prepare args for execvp. - */ -std::vector prepare_args(const Node &node) { - std::vector args; - for (const auto &arg : node.command) { - args.push_back(const_cast(arg.c_str())); - } - args.push_back(nullptr); // Null-terminated list of arguments - return args; -} - -/** - * Function to execute a node command using execvp. - */ -void execute_node(const Node &node) { - std::vector args = prepare_args(node); - execvp(args[0], args.data()); // Execute the command - perror("[ERROR] execvp failed"); // Only reached if execvp fails - _exit(EXIT_FAILURE); // Exit if execvp fails -} - -/** - * Function to execute a single node, with optional output redirection and error suppression. - */ -void execute_single_node(const std::string &node_name, int output_fd, bool suppress_error_messages) { - auto it = nodes.find(node_name); - if (it == nodes.end()) { - std::cerr << "[ERROR] Node not found: " << node_name << std::endl; - exit(EXIT_FAILURE); - } - - const Node &node = it->second; - - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } - - if (pid == 0) { // Child process - if (output_fd != STDOUT_FILENO) { - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); // Close after duplication - } - execute_node(node); // Execute the node - _exit(EXIT_FAILURE); // Should not reach here - } - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); - if (WIFEXITED(status)) { - if (WEXITSTATUS(status) != 0 && !suppress_error_messages) { - std::cerr << "[ERROR] Child process exited with error code: " << WEXITSTATUS(status) << std::endl; - } - } else if (WIFSIGNALED(status)) { - int sig = WTERMSIG(status); - if (sig != SIGPIPE && !suppress_error_messages) { - std::cerr << "[ERROR] Child process was terminated by signal: " << sig << std::endl; - } - } -} - -/** - * Function to execute a concatenation. - */ -void execute_concatenation(const std::string &concat_name, int output_fd, bool suppress_error_messages) { - auto it = concatenations.find(concat_name); - if (it == concatenations.end()) { - std::cerr << "[ERROR] Concatenation not found: " << concat_name << std::endl; - exit(EXIT_FAILURE); - } - - const Concatenation &concat = it->second; - - for (const auto &part_name : concat.parts) { - // Execute each part - execute_action(part_name, output_fd, suppress_error_messages); - } -} - /** * Helper function to execute any action (node, pipe, concatenation, stderr capture, or file node). */ -void execute_action(const std::string &action_name, int output_fd, bool suppress_error_messages) { +void execute_action(const std::string &action_name, int input_fd = STDIN_FILENO, int output_fd = STDOUT_FILENO, bool suppress_error_messages = false) { if (nodes.find(action_name) != nodes.end()) { - execute_single_node(action_name, output_fd, suppress_error_messages); + const Node &node = nodes[action_name]; + execute_command(node.command, input_fd, output_fd, false, suppress_error_messages); } else if (pipes.find(action_name) != pipes.end()) { - execute_pipe(action_name, output_fd, suppress_error_messages); - } else if (concatenations.find(action_name) != concatenations.end()) { - execute_concatenation(action_name, output_fd, suppress_error_messages); - } else if (stderrCaptures.find(action_name) != stderrCaptures.end()) { - execute_stderr_capture(action_name, output_fd, suppress_error_messages); - } else if (fileNodes.find(action_name) != fileNodes.end()) { - execute_file_node(action_name, output_fd, suppress_error_messages); - } else { - std::cerr << "[ERROR] Unknown action: " << action_name << std::endl; - exit(EXIT_FAILURE); - } -} + const FlowPipe &flow_pipe = pipes[action_name]; -/** - * Function to execute a pipe. - */ -void execute_pipe(const std::string &pipe_name, int output_fd, bool suppress_error_messages) { - auto it = pipes.find(pipe_name); - if (it == pipes.end()) { - std::cerr << "[ERROR] Pipe not found: " << pipe_name << std::endl; - exit(EXIT_FAILURE); - } + // Handle if 'from' or 'to' is a file node + bool from_is_file = fileNodes.find(flow_pipe.from) != fileNodes.end(); + bool to_is_file = fileNodes.find(flow_pipe.to) != fileNodes.end(); - const FlowPipe &flow_pipe = it->second; - - // Handle if 'from' or 'to' is a file node - bool from_is_file = fileNodes.find(flow_pipe.from) != fileNodes.end(); - bool to_is_file = fileNodes.find(flow_pipe.to) != fileNodes.end(); - - if (from_is_file && to_is_file) { - std::cerr << "[ERROR] Both 'from' and 'to' cannot be file nodes in pipe: " << pipe_name << std::endl; - exit(EXIT_FAILURE); - } - - if (from_is_file) { - // 'from' is a file node; redirect file contents to 'to' action - auto file_it = fileNodes.find(flow_pipe.from); - const FileNode &fileNode = file_it->second; - - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); + if (from_is_file && to_is_file) { + std::cerr << "[ERROR] Both 'from' and 'to' cannot be file nodes in pipe: " << action_name << std::endl; exit(EXIT_FAILURE); - } else if (pid == 0) { // Child process - // Open the file for reading - int fd = open(fileNode.filename.c_str(), O_RDONLY); - if (fd == -1) { + } + + if (from_is_file) { + // 'from' is a file node; open the file and set as input_fd + const FileNode &fileNode = fileNodes[flow_pipe.from]; + int file_fd = open(fileNode.filename.c_str(), O_RDONLY); + if (file_fd == -1) { perror("[ERROR] open failed"); exit(EXIT_FAILURE); } - // Redirect file to stdin - if (dup2(fd, STDIN_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - close(fd); + execute_action(flow_pipe.to, file_fd, output_fd, suppress_error_messages); + close(file_fd); + } else if (to_is_file) { + // 'to' is a file node; open the file and set as output_fd + const FileNode &fileNode = fileNodes[flow_pipe.to]; + int file_fd = open(fileNode.filename.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (file_fd == -1) { + perror("[ERROR] open failed"); exit(EXIT_FAILURE); } - close(fd); - - // Redirect output if necessary - if (output_fd != STDOUT_FILENO) { - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); + execute_action(flow_pipe.from, input_fd, file_fd, suppress_error_messages); + close(file_fd); + } else { + // Regular pipe between two actions + int fd[2]; + if (pipe(fd) == -1) { + perror("[ERROR] pipe creation failed"); + exit(EXIT_FAILURE); } - // Execute the 'to' action - execute_action(flow_pipe.to, STDOUT_FILENO, suppress_error_messages); - _exit(EXIT_FAILURE); - } - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); - } else if (to_is_file) { - // 'to' is a file node; redirect output of 'from' action to file - auto file_it = fileNodes.find(flow_pipe.to); - const FileNode &fileNode = file_it->second; - - // Open the file for writing - int fd = open(fileNode.filename.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0644); - if (fd == -1) { - perror("[ERROR] open failed"); - exit(EXIT_FAILURE); - } - - // Execute 'from' action, redirecting its output to the file - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - close(fd); - exit(EXIT_FAILURE); - } else if (pid == 0) { // Child process - // Redirect stdout to file - if (dup2(fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - close(fd); + pid_t pid = fork(); + if (pid == -1) { + perror("[ERROR] fork failed"); exit(EXIT_FAILURE); } - close(fd); - // Execute the 'from' action - execute_action(flow_pipe.from, STDOUT_FILENO, suppress_error_messages); - _exit(EXIT_FAILURE); + if (pid == 0) { // Child process + close(fd[0]); // Close read end + execute_action(flow_pipe.from, input_fd, fd[1], suppress_error_messages); + close(fd[1]); + exit(EXIT_SUCCESS); + } else { + close(fd[1]); // Close write end + execute_action(flow_pipe.to, fd[0], output_fd, suppress_error_messages); + close(fd[0]); + waitpid(pid, nullptr, 0); + } } - - close(fd); - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); - } else { - // Regular pipe between two actions + } else if (concatenations.find(action_name) != concatenations.end()) { + const Concatenation &concat = concatenations[action_name]; + for (const auto &part_name : concat.parts) { + execute_action(part_name, input_fd, output_fd, suppress_error_messages); + } + } else if (stderrCaptures.find(action_name) != stderrCaptures.end()) { + const StderrCapture &stderrCapture = stderrCaptures[action_name]; + // Redirect stderr to stdout int fd[2]; if (pipe(fd) == -1) { - perror("[ERROR] pipe creation failed"); + perror("[ERROR] pipe failed"); exit(EXIT_FAILURE); } - pid_t pid_to = fork(); - if (pid_to == -1) { + pid_t pid = fork(); + if (pid == -1) { perror("[ERROR] fork failed"); exit(EXIT_FAILURE); - } else if (pid_to == 0) { // Child process for 'to' - close(fd[1]); // Close write end - if (dup2(fd[0], STDIN_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(fd[0]); - - if (output_fd != STDOUT_FILENO) { - // Redirect output if necessary - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); - } - - execute_action(flow_pipe.to, STDOUT_FILENO, suppress_error_messages); - _exit(EXIT_FAILURE); } - pid_t pid_from = fork(); - if (pid_from == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } else if (pid_from == 0) { // Child process for 'from' - close(fd[0]); // Close read end - if (dup2(fd[1], STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } + if (pid == 0) { // Child process + dup2(fd[1], STDOUT_FILENO); + dup2(fd[1], STDERR_FILENO); + close(fd[0]); close(fd[1]); - - execute_action(flow_pipe.from, STDOUT_FILENO, suppress_error_messages); - _exit(EXIT_FAILURE); - } - - // Parent process closes unused pipe ends and waits for child processes - close(fd[0]); - close(fd[1]); - - int status; - waitpid(pid_from, &status, 0); - waitpid(pid_to, &status, 0); - } -} - -/** - * Function to execute a stderr capture. - */ -void execute_stderr_capture(const std::string &stderr_name, int output_fd, bool suppress_error_messages) { - auto it = stderrCaptures.find(stderr_name); - if (it == stderrCaptures.end()) { - std::cerr << "[ERROR] Stderr capture not found: " << stderr_name << std::endl; - exit(EXIT_FAILURE); - } - - const StderrCapture &stderrCapture = it->second; - - // Execute the 'from' action, redirecting its stderr to stdout - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } - - if (pid == 0) { // Child process - // Redirect stderr to stdout - if (dup2(STDOUT_FILENO, STDERR_FILENO) == -1) { - perror("[ERROR] dup2 failed"); + execute_action(stderrCapture.from, input_fd, STDOUT_FILENO, true); exit(EXIT_FAILURE); + } else { + close(fd[1]); + execute_command({"cat"}, fd[0], output_fd, false, suppress_error_messages); + close(fd[0]); + waitpid(pid, nullptr, 0); } - - if (output_fd != STDOUT_FILENO) { - // Redirect output if necessary - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); - } - - // Execute the 'from' action with suppress_error_messages = true - execute_action(stderrCapture.from, STDOUT_FILENO, true); - _exit(EXIT_FAILURE); - } - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); -} - -/** - * Function to execute a file node. - */ -void execute_file_node(const std::string &file_node_name, int output_fd, bool suppress_error_messages) { - auto it = fileNodes.find(file_node_name); - if (it == fileNodes.end()) { - std::cerr << "[ERROR] File node not found: " << file_node_name << std::endl; - exit(EXIT_FAILURE); - } - - const FileNode &fileNode = it->second; - - // For file nodes, we can output the file content if used directly - pid_t pid = fork(); - if (pid == -1) { - perror("[ERROR] fork failed"); - exit(EXIT_FAILURE); - } - - if (pid == 0) { // Child process - // Open the file for reading - int fd = open(fileNode.filename.c_str(), O_RDONLY); - if (fd == -1) { + } else if (fileNodes.find(action_name) != fileNodes.end()) { + // For file nodes, output the file content + const FileNode &fileNode = fileNodes[action_name]; + int file_fd = open(fileNode.filename.c_str(), O_RDONLY); + if (file_fd == -1) { perror("[ERROR] open failed"); exit(EXIT_FAILURE); } - // Redirect file to stdin - if (dup2(fd, STDIN_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - close(fd); - exit(EXIT_FAILURE); - } - close(fd); - - if (output_fd != STDOUT_FILENO) { - // Redirect output if necessary - if (dup2(output_fd, STDOUT_FILENO) == -1) { - perror("[ERROR] dup2 failed"); - exit(EXIT_FAILURE); - } - close(output_fd); - } - - // Execute 'cat' to output file contents - execlp("cat", "cat", (char *)NULL); - perror("[ERROR] execlp failed"); + execute_command({"cat"}, file_fd, output_fd, false, suppress_error_messages); + close(file_fd); + } else { + std::cerr << "[ERROR] Unknown action: " << action_name << std::endl; exit(EXIT_FAILURE); } - - // Parent process waits for the child - int status; - waitpid(pid, &status, 0); } /** @@ -557,7 +346,6 @@ void parse_flow_file(const std::string& filename) { fileNode.filename = filename; fileNodes[file_name] = fileNode; } - // Ignore other lines or add more parsing as needed } } @@ -577,7 +365,7 @@ int main(int argc, char* argv[]) { parse_flow_file(flowFile); // Execute the action - execute_action(action, STDOUT_FILENO); + execute_action(action); return EXIT_SUCCESS; } \ No newline at end of file diff --git a/output.txt b/output.txt new file mode 100644 index 0000000..0bc2cb4 --- /dev/null +++ b/output.txt @@ -0,0 +1,14 @@ +README.md +TestResult_20241029_030710.txt +TestResult_20241029_030756.txt +TestResult_20241029_031650.txt +TestResult_20241029_031721.txt +TestResult_20241029_031854.txt +TestResult_20241029_031947.txt +a +files +flow +flow.cpp +foo.txt +output.txt +run.py diff --git a/run.py b/run.py new file mode 100644 index 0000000..bdb3a50 --- /dev/null +++ b/run.py @@ -0,0 +1,67 @@ +import os +import subprocess +import datetime + +flow_tests = { + "0.flow": ("path", "pwd"), + "1.flow": ("doit", "ls | wc"), + "2.flow": ("doit", "ls -l | wc"), + "3.flow": ("doit", "ls -l | ls"), + "4.flow": ("doit", "echo foo | cat"), + "5.flow": ("doit", "echo 'foo' | cat"), + "6.flow": ("doit", "echo \"foo\" | cat"), + "7.flow": ("doit", "echo 'f o o' | cat"), + "8.flow": ("doit", "ls ; pwd"), + "9.flow": ("doit", "ls; ls ; ls -a"), + "10.flow": ("doit", "echo foo1 ; echo 'foo2' ; echo \"foo3\" ; echo 'f o o 4'"), + "11.flow": ("doit", "ls | wc ; pwd"), + "12.flow": ("doit", "( cat foo.txt ; cat foo.txt | sed s/o/u/g ) | wc"), + "13.flow": ("doit", "( seq 1 5 | awk '{print $1*$1}'; seq 1 5 | awk '{print $1*2}'; seq 1 5 | awk '{print $1+5}' ) | sort -n | uniq"), + "14.flow": ("doit", "mkdir a 2>&1"), + "15.flow": ("doit", "mkdir a 2>&1 | wc"), + "16.flow": ("doit", "ls > output.txt"), + "17.flow": ("doit", "cat output.txt | wc") +} + +def compile_flow_cpp(): + if os.path.exists('flow.cpp'): + print("flow.cpp file found.") + if os.path.exists('flow'): + os.remove('flow') + print("Removed existing 'flow' executable.") + print("Compiling flow.cpp...") + subprocess.run("g++ -std=c++11 flow.cpp -o flow", shell=True) + print("Compiled.") + return True + else: + print("flow.cpp file not found.") + return False + +def run_tests(): + current_time = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") + results_filename = f"TestResult_{current_time}.txt" + with open(results_filename, 'w') as result_file: + for i, (flow_file, (action, command)) in enumerate(flow_tests.items()): + flow_path = flow_file + result = subprocess.run(f"./flow files/{flow_path} {action}", shell=True, capture_output=True, text=True) + expected_output = subprocess.run(command, shell=True, capture_output=True, text=True) + + # Write detailed results to file + result_file.write(f"\nTest {i} : {command}\n") + result_file.write("------PROGRAM OUTPUT--------\n") + result_file.write(result.stdout + '\n') + result_file.write("-------ACTUAL OUTPUT-------\n") + result_file.write(expected_output.stdout + '\n') + result_file.write("*************************************************************************\n") + + # Print simple results to terminal + if result.stdout.strip() == expected_output.stdout.strip(): + print(f"Test {i} passed.") + else: + print(f"Test {i} failed.") + + print(f"\nAll tests completed. Results saved to {results_filename}.\n") + +if __name__ == "__main__": + if compile_flow_cpp(): + run_tests() \ No newline at end of file From f439af35153a20c9bda577bddc1abe3ce614c5da Mon Sep 17 00:00:00 2001 From: TechPertz Date: Tue, 29 Oct 2024 03:22:50 -0400 Subject: [PATCH 3/6] readme edit --- README.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 2bde306..0076c66 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,11 @@ # OS_HW_2 -Operating System Homework 2 -flow5 can parse pipes normally. -flow6 can 2 nodes and 1node,1pipe -flow7 improved but same. -flow8 hadles concatenation. -mix mix. +## To test: +1. Download and extract this repository. +2. Run "python3 run.py" - -Test Cases +### Test Cases 0: just one node in any .flow file 1: ls | wc // normal pipe From 1cf2cc68d733ad3cffb6dcd0270867b3c364ab3d Mon Sep 17 00:00:00 2001 From: TechPertz Date: Tue, 29 Oct 2024 03:29:48 -0400 Subject: [PATCH 4/6] simple readme update --- README.md | 44 +++++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 0076c66..47bc928 100644 --- a/README.md +++ b/README.md @@ -3,31 +3,25 @@ ## To test: 1. Download and extract this repository. -2. Run "python3 run.py" +2. Run `python3 run.py` ### Test Cases -0: just one node in any .flow file -1: ls | wc // normal pipe -2: ls -l | wc // if - arguments can be handled properly -3: ls -l | ls // if pipe can be used for a "to" argument that doesnt take inputs -4: echo foo | cat // no quotes for argument -5: echo 'foo' | cat // single quotes -6: echo "foo" | cat // double quotes -7: echo 'f o o' | cat // quotes with space - -8: ls ; pwd // normal concat -9: ls; ls ; ls -a // concat with more than 2 parts and also arguments -10: echo foo1 ; echo 'foo2' ; echo "foo3" ; echo 'f o o 4' // no quotes ; double ; single ; spaces - -11: ls | wc ; pwd // mix -12: ( cat foo.txt ; cat foo.txt | sed s/o/u/g ) | wc // complicated mix - -13: ( seq 1 5 | awk '{print $1*$1}'; seq 1 5 | awk '{print $1*2}'; seq 1 5 | awk '{print $1+5}' ) | sort -n | uniq -// extra credit - chatgpt - complicated with quotes, arguments, everything - -14: cd b 2>&1 // b would not exist in the directory -15: cd b 2>&1 | wc - -16: ls > output.txt -17: cat output.txt | wc \ No newline at end of file +- **0**: just one node in any `.flow` file +- **1**: `ls | wc` // normal pipe +- **2**: `ls -l | wc` // if `-` arguments can be handled properly +- **3**: `ls -l | ls` // if pipe can be used for a "to" argument that doesn't take inputs +- **4**: `echo foo | cat` // no quotes for argument +- **5**: `echo 'foo' | cat` // single quotes +- **6**: `echo "foo" | cat` // double quotes +- **7**: `echo 'f o o' | cat` // quotes with space +- **8**: `ls ; pwd` // normal concat +- **9**: `ls; ls ; ls -a` // concat with more than 2 parts and also arguments +- **10**: `echo foo1 ; echo 'foo2' ; echo "foo3" ; echo 'f o o 4'` // no quotes; double; single; spaces +- **11**: `ls | wc ; pwd` // mix +- **12**: `( cat foo.txt ; cat foo.txt | sed s/o/u/g ) | wc` // complicated mix +- **13**: `( seq 1 5 | awk '{print $1*$1}'; seq 1 5 | awk '{print $1*2}'; seq 1 5 | awk '{print $1+5}' ) | sort -n | uniq` // extra credit - chatgpt - complicated with quotes, arguments, everything +- **14**: `mkdir a 2>&1` // b would not exist in the directory (calling stderr as action directly) +- **15**: `mldir a 2>&1 | wc` // calling non-stderr as action +- **16**: `ls > output.txt` +- **17**: `cat output.txt | wc` \ No newline at end of file From 31477e954d318770a902757de97b510f70a75bb9 Mon Sep 17 00:00:00 2001 From: TechPertz Date: Tue, 29 Oct 2024 03:41:20 -0400 Subject: [PATCH 5/6] simple readme update --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 47bc928..5355f42 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ 1. Download and extract this repository. 2. Run `python3 run.py` +3. Open TestResult_{current_time}.txt for more information. ### Test Cases From f6355ac6232a87e97ccde69e71a8a00525e38d70 Mon Sep 17 00:00:00 2001 From: TechPertz Date: Wed, 15 Jan 2025 16:25:55 -0500 Subject: [PATCH 6/6] Updating Readme and minor changes --- .DS_Store | Bin 8196 -> 8196 bytes README.md | 119 +++++++++++++++++++++++++++++++++++++++++++++++- files/.DS_Store | Bin 8196 -> 6148 bytes files/0.flow | 2 +- flow | Bin 0 -> 383872 bytes myrun.py | 67 +++++++++++++++++++++++++++ output.txt | 8 +--- 7 files changed, 187 insertions(+), 9 deletions(-) create mode 100755 flow create mode 100644 myrun.py diff --git a/.DS_Store b/.DS_Store index 144adfb2d7ddd6cd173302ca784266b070eaa6b2..0c4d79bfecec34de4361943b7af2883a8c35115d 100644 GIT binary patch delta 305 zcmZp1XmOa}&&a=<`V))Oq$l&Y>aG`BR;Q7|?ztJP7cHZ(CY z&{423F|DoTGc~W=) delta 669 zcmZp1XmOa}&nUVvU^hRb=wu#&TFxYfQie>19EOz1VZ!pFd<@PEz6^;B*$k-+K0xte zh7yM2$pRu`Y>eFu3=DdcYXrO*cT7GZQ0OjEU2S4&rlVkHU{R~1P;F^sprc@7Y*t&# z$sww&Zygk$os*lF-v!hK1dNOjnt>Ne!>I1fO@bR4C;JL(@Uk(a0o{?$P|l#okUV*r zi2USI;kZB^pa{@)3<_{}rGed>>Y0M zCKVWrK)#Uz`vzG#A58gV77-;j#-AY5CjSsFL`ZwXlkLVlFEw`, `2>&1`). +- **Concatenations**: Execute commands in sequence using concatenation (`;`). +- **File Output Handling**: Direct command outputs to files for logging and further processing. +- **Error Handling**: Advanced error redirection and handling for robust script testing. +- **Automated Testing**: Includes a Python script for automated testing against expected outputs. + +## Installation + +Ensure you have GCC (supporting C++11 or later) and Python 3.x installed. Clone the repository and compile the source: + +```bash +git clone https://yourrepositorylink.com/FlowControl.git +cd FlowControl +g++ -std=c++11 flow.cpp -o flow +``` + +## Usage Guide + +`.flow` files dictate the operations within the framework. Here’s how to structure these files: + +### Basic Command Node + +Defines a single command operation. + +```plaintext +node=ls_node +command=ls -l +``` + +### Piping Output + +Directs the output of one command to another. + +```plaintext +node=echo_node +command=echo "Hello World" + +node=wc_node +command=wc -w + +pipe=echo_to_wc +from=echo_node +to=wc_node +``` + +### Concatenating Commands + +Executes multiple commands in sequence. + +```plaintext +node=date_node +command=date + +node=whoami_node +command=whoami + +concatenate=system_info +parts=2 +part_0=date_node +part_1=whoami_node +``` + +### Error Handling Example + +Redirects error output to another command. + +```plaintext +node=mkdir_attempt +command=mkdir existing_dir + +stderr=stdout_to_stderr_for_mkdir +from=mkdir_attempt + +pipe=catch_errors +from=stdout_to_stderr_for_mkdir +to=word_count_node +``` + +### File Output Handling + +Captures the output of a command and writes it to a file. + +```plaintext +node=list_files +command=ls + +file=output_file +name=output.txt + +pipe=process_pipe +from=list_files +to=output_file +``` + +## Testing Framework + +Run `python3 run.py` to test all `.flow` files in the `files` directory. This script compiles the program, runs tests, and saves results to `TestResult_{DateTime}.txt`. + +## Different Cases + +- **Case 0**: A single command node. +- **Case 1**: Command output redirection to a file. +- **Case 2**: Piping commands. +- **Case 3**: Concatenating commands. +- **Case 4**: Error handling. +- **Case 5**: File input/output handling. +- **Case 6**: Complex command sequences. ## To test: 1. Download and extract this repository. 2. Run `python3 run.py` -3. Open TestResult_{current_time}.txt for more information. +3. Open `TestResult_{current_time}.txt` for more information. ### Test Cases diff --git a/files/.DS_Store b/files/.DS_Store index 2d01439afa1abfa36f98693ae70094fb8a980108..00c9c6154b5b10cd36fcf7a6ac47a6fbc9148936 100644 GIT binary patch delta 103 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{Mvv5r;6q~50$SAlmU^g?P;AS3y|4b9h{w!wa p;1Fa6DgXijZXn?bQoFJ6JM(0I8BdT-1}2CpAcGk;$Mei#1^}Ov5fA_X delta 318 zcmZoMXmOBWU|?W$DortDU;r^WfEYvza8E20o2aMAD7i6UH}hr%jz7$c**Q2SHn1>C zZsuY6&&18mkj9Y1kk3%gU^rQTMQXAan;inB~U#mb8$ZUGXPVsJz=5Uz3Z12#Ds z6ua1gX66H-9zzL31w+YXFBaL&TSNkwCpPd1GJ{>iAi)i!T|uF+S&-v9^JIPz&&mEg Q92|_00Ako2&ohS^0Oe~*#{d8T diff --git a/files/0.flow b/files/0.flow index 2f21da9..a465942 100644 --- a/files/0.flow +++ b/files/0.flow @@ -1,7 +1,7 @@ node=list_files command=ls -node-word_count +node=word_count command=wc node=path diff --git a/flow b/flow new file mode 100755 index 0000000000000000000000000000000000000000..1f2f904995076db074488874422ed8948cb1ca10 GIT binary patch literal 383872 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 literal 0 HcmV?d00001 diff --git a/myrun.py b/myrun.py new file mode 100644 index 0000000..bdb3a50 --- /dev/null +++ b/myrun.py @@ -0,0 +1,67 @@ +import os +import subprocess +import datetime + +flow_tests = { + "0.flow": ("path", "pwd"), + "1.flow": ("doit", "ls | wc"), + "2.flow": ("doit", "ls -l | wc"), + "3.flow": ("doit", "ls -l | ls"), + "4.flow": ("doit", "echo foo | cat"), + "5.flow": ("doit", "echo 'foo' | cat"), + "6.flow": ("doit", "echo \"foo\" | cat"), + "7.flow": ("doit", "echo 'f o o' | cat"), + "8.flow": ("doit", "ls ; pwd"), + "9.flow": ("doit", "ls; ls ; ls -a"), + "10.flow": ("doit", "echo foo1 ; echo 'foo2' ; echo \"foo3\" ; echo 'f o o 4'"), + "11.flow": ("doit", "ls | wc ; pwd"), + "12.flow": ("doit", "( cat foo.txt ; cat foo.txt | sed s/o/u/g ) | wc"), + "13.flow": ("doit", "( seq 1 5 | awk '{print $1*$1}'; seq 1 5 | awk '{print $1*2}'; seq 1 5 | awk '{print $1+5}' ) | sort -n | uniq"), + "14.flow": ("doit", "mkdir a 2>&1"), + "15.flow": ("doit", "mkdir a 2>&1 | wc"), + "16.flow": ("doit", "ls > output.txt"), + "17.flow": ("doit", "cat output.txt | wc") +} + +def compile_flow_cpp(): + if os.path.exists('flow.cpp'): + print("flow.cpp file found.") + if os.path.exists('flow'): + os.remove('flow') + print("Removed existing 'flow' executable.") + print("Compiling flow.cpp...") + subprocess.run("g++ -std=c++11 flow.cpp -o flow", shell=True) + print("Compiled.") + return True + else: + print("flow.cpp file not found.") + return False + +def run_tests(): + current_time = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") + results_filename = f"TestResult_{current_time}.txt" + with open(results_filename, 'w') as result_file: + for i, (flow_file, (action, command)) in enumerate(flow_tests.items()): + flow_path = flow_file + result = subprocess.run(f"./flow files/{flow_path} {action}", shell=True, capture_output=True, text=True) + expected_output = subprocess.run(command, shell=True, capture_output=True, text=True) + + # Write detailed results to file + result_file.write(f"\nTest {i} : {command}\n") + result_file.write("------PROGRAM OUTPUT--------\n") + result_file.write(result.stdout + '\n') + result_file.write("-------ACTUAL OUTPUT-------\n") + result_file.write(expected_output.stdout + '\n') + result_file.write("*************************************************************************\n") + + # Print simple results to terminal + if result.stdout.strip() == expected_output.stdout.strip(): + print(f"Test {i} passed.") + else: + print(f"Test {i} failed.") + + print(f"\nAll tests completed. Results saved to {results_filename}.\n") + +if __name__ == "__main__": + if compile_flow_cpp(): + run_tests() \ No newline at end of file diff --git a/output.txt b/output.txt index 0bc2cb4..1e5434b 100644 --- a/output.txt +++ b/output.txt @@ -1,10 +1,6 @@ README.md -TestResult_20241029_030710.txt -TestResult_20241029_030756.txt -TestResult_20241029_031650.txt -TestResult_20241029_031721.txt -TestResult_20241029_031854.txt -TestResult_20241029_031947.txt +TestResult_20241104_161345.txt +TestResult_20241111_150936.txt a files flow

KlP=2i>#RW*=+izI3}9@Zqi+TN`FY7~pS@ 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 diff --git a/build/flow7 b/build/flow7 deleted file mode 100755 index 9a88c9878ed973ddd77ad32d007645aa25f80b12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178800 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%0AU$Nd}MHYsk{Y}Qy_s)tX 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 diff --git a/build/flow7_1 b/build/flow7_1 deleted file mode 100755 index 24ddc54ec7d983b29931e93afdad3b960108ffd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272656 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