diff --git a/.clangd b/.clangd new file mode 100644 index 0000000..359a391 --- /dev/null +++ b/.clangd @@ -0,0 +1,2 @@ +CompileFlags: + Add: [-std=c++20] diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1a139ac --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# cmkr +/**/CMakeLists.txt linguist-generated +/**/cmkr.cmake linguist-vendored diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ee0f66e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# cmkr +build*/ +cmake-build*/ +CMakerLists.txt +CMakeLists.txt.user diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..528f79a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,70 @@ +# This file is automatically generated from cmake.toml - DO NOT EDIT +# See https://github.com/build-cpp/cmkr for more information + +cmake_minimum_required(VERSION 3.15) + +if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) + message(FATAL_ERROR "In-tree builds are not supported. Run CMake from a separate directory: cmake -B build") +endif() + +set(CMKR_ROOT_PROJECT OFF) +if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) + set(CMKR_ROOT_PROJECT ON) + + # Bootstrap cmkr and automatically regenerate CMakeLists.txt + include(cmkr.cmake OPTIONAL RESULT_VARIABLE CMKR_INCLUDE_RESULT) + if(CMKR_INCLUDE_RESULT) + cmkr() + endif() + + # Enable folder support + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + + # Create a configure-time dependency on cmake.toml to improve IDE support + set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS cmake.toml) +endif() + +project(01 + LANGUAGES + C + CXX + VERSION + 0.0.1 + DESCRIPTION + "Advent of Code Puzzle 1." +) + +# Target: 01 +set(01_SOURCES + cmake.toml + "src/main.cpp" +) + +add_executable(01) + +target_sources(01 PRIVATE ${01_SOURCES}) +source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${01_SOURCES}) + +target_compile_features(01 PRIVATE + cxx_std_20 +) + +target_include_directories(01 PRIVATE + "src/include" +) + +target_link_libraries(01 PRIVATE + fmt +) + +set_target_properties(01 PROPERTIES + CXX_STANDARD + 20 + CXX_STANDARD_REQUIRED + ON +) + +get_directory_property(CMKR_VS_STARTUP_PROJECT DIRECTORY ${PROJECT_SOURCE_DIR} DEFINITION VS_STARTUP_PROJECT) +if(NOT CMKR_VS_STARTUP_PROJECT) + set_property(DIRECTORY ${PROJECT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT 01) +endif() diff --git a/cmake.toml b/cmake.toml new file mode 100644 index 0000000..900acbd --- /dev/null +++ b/cmake.toml @@ -0,0 +1,17 @@ +# Reference: https://build-cpp.github.io/cmkr/cmake-toml +[project] +name = "01" +version = "0.0.1" +"description" = "Advent of Code Puzzle 1." +languages = ["C", "CXX"] + +[target.01] +type = "executable" +sources = ["src/main.cpp"] +include-directories = ["src/include"] +compile-features = ["cxx_std_20"] +link-libraries = ["fmt"] + +[target.01.properties] +CXX_STANDARD = 20 +CXX_STANDARD_REQUIRED = true diff --git a/cmkr.cmake b/cmkr.cmake new file mode 100644 index 0000000..936bdf0 --- /dev/null +++ b/cmkr.cmake @@ -0,0 +1,253 @@ +include_guard() + +# Change these defaults to point to your infrastructure if desired +set(CMKR_REPO "https://github.com/build-cpp/cmkr" CACHE STRING "cmkr git repository" FORCE) +set(CMKR_TAG "v0.2.45" CACHE STRING "cmkr git tag (this needs to be available forever)" FORCE) +set(CMKR_COMMIT_HASH "" CACHE STRING "cmkr git commit hash (optional)" FORCE) + +# To bootstrap/generate a cmkr project: cmake -P cmkr.cmake +if(CMAKE_SCRIPT_MODE_FILE) + set(CMAKE_BINARY_DIR "${CMAKE_BINARY_DIR}/build") + set(CMAKE_CURRENT_BINARY_DIR "${CMAKE_BINARY_DIR}") + file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}") +endif() + +# Set these from the command line to customize for development/debugging purposes +set(CMKR_EXECUTABLE "" CACHE FILEPATH "cmkr executable") +set(CMKR_SKIP_GENERATION OFF CACHE BOOL "skip automatic cmkr generation") +set(CMKR_BUILD_TYPE "Debug" CACHE STRING "cmkr build configuration") +mark_as_advanced(CMKR_REPO CMKR_TAG CMKR_COMMIT_HASH CMKR_EXECUTABLE CMKR_SKIP_GENERATION CMKR_BUILD_TYPE) + +# Disable cmkr if generation is disabled +if(DEFINED ENV{CI} OR CMKR_SKIP_GENERATION OR CMKR_BUILD_SKIP_GENERATION) + message(STATUS "[cmkr] Skipping automatic cmkr generation") + unset(CMKR_BUILD_SKIP_GENERATION CACHE) + macro(cmkr) + endmacro() + return() +endif() + +# Disable cmkr if no cmake.toml file is found +if(NOT CMAKE_SCRIPT_MODE_FILE AND NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake.toml") + message(AUTHOR_WARNING "[cmkr] Not found: ${CMAKE_CURRENT_SOURCE_DIR}/cmake.toml") + macro(cmkr) + endmacro() + return() +endif() + +# Convert a Windows native path to CMake path +if(CMKR_EXECUTABLE MATCHES "\\\\") + string(REPLACE "\\" "/" CMKR_EXECUTABLE_CMAKE "${CMKR_EXECUTABLE}") + set(CMKR_EXECUTABLE "${CMKR_EXECUTABLE_CMAKE}" CACHE FILEPATH "" FORCE) + unset(CMKR_EXECUTABLE_CMAKE) +endif() + +# Helper macro to execute a process (COMMAND_ERROR_IS_FATAL ANY is 3.19 and higher) +function(cmkr_exec) + execute_process(COMMAND ${ARGV} RESULT_VARIABLE CMKR_EXEC_RESULT) + if(NOT CMKR_EXEC_RESULT EQUAL 0) + message(FATAL_ERROR "cmkr_exec(${ARGV}) failed (exit code ${CMKR_EXEC_RESULT})") + endif() +endfunction() + +# Windows-specific hack (CMAKE_EXECUTABLE_PREFIX is not set at the moment) +if(WIN32) + set(CMKR_EXECUTABLE_NAME "cmkr.exe") +else() + set(CMKR_EXECUTABLE_NAME "cmkr") +endif() + +# Use cached cmkr if found +if(DEFINED ENV{CMKR_CACHE}) + set(CMKR_DIRECTORY_PREFIX "$ENV{CMKR_CACHE}") + string(REPLACE "\\" "/" CMKR_DIRECTORY_PREFIX "${CMKR_DIRECTORY_PREFIX}") + if(NOT CMKR_DIRECTORY_PREFIX MATCHES "\\/$") + set(CMKR_DIRECTORY_PREFIX "${CMKR_DIRECTORY_PREFIX}/") + endif() + # Build in release mode for the cache + set(CMKR_BUILD_TYPE "Release") +else() + set(CMKR_DIRECTORY_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/_cmkr_") +endif() +set(CMKR_DIRECTORY "${CMKR_DIRECTORY_PREFIX}${CMKR_TAG}") +set(CMKR_CACHED_EXECUTABLE "${CMKR_DIRECTORY}/bin/${CMKR_EXECUTABLE_NAME}") + +# Helper function to check if a string starts with a prefix +# Cannot use MATCHES, see: https://github.com/build-cpp/cmkr/issues/61 +function(cmkr_startswith str prefix result) + string(LENGTH "${prefix}" prefix_length) + string(LENGTH "${str}" str_length) + if(prefix_length LESS_EQUAL str_length) + string(SUBSTRING "${str}" 0 ${prefix_length} str_prefix) + if(prefix STREQUAL str_prefix) + set("${result}" ON PARENT_SCOPE) + return() + endif() + endif() + set("${result}" OFF PARENT_SCOPE) +endfunction() + +# Handle upgrading logic +if(CMKR_EXECUTABLE AND NOT CMKR_CACHED_EXECUTABLE STREQUAL CMKR_EXECUTABLE) + cmkr_startswith("${CMKR_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}/_cmkr" CMKR_STARTSWITH_BUILD) + cmkr_startswith("${CMKR_EXECUTABLE}" "${CMKR_DIRECTORY_PREFIX}" CMKR_STARTSWITH_CACHE) + if(CMKR_STARTSWITH_BUILD) + if(DEFINED ENV{CMKR_CACHE}) + message(AUTHOR_WARNING "[cmkr] Switching to cached cmkr: '${CMKR_CACHED_EXECUTABLE}'") + if(EXISTS "${CMKR_CACHED_EXECUTABLE}") + set(CMKR_EXECUTABLE "${CMKR_CACHED_EXECUTABLE}" CACHE FILEPATH "Full path to cmkr executable" FORCE) + else() + unset(CMKR_EXECUTABLE CACHE) + endif() + else() + message(AUTHOR_WARNING "[cmkr] Upgrading '${CMKR_EXECUTABLE}' to '${CMKR_CACHED_EXECUTABLE}'") + unset(CMKR_EXECUTABLE CACHE) + endif() + elseif(DEFINED ENV{CMKR_CACHE} AND CMKR_STARTSWITH_CACHE) + message(AUTHOR_WARNING "[cmkr] Upgrading cached '${CMKR_EXECUTABLE}' to '${CMKR_CACHED_EXECUTABLE}'") + unset(CMKR_EXECUTABLE CACHE) + endif() +endif() + +if(CMKR_EXECUTABLE AND EXISTS "${CMKR_EXECUTABLE}") + message(VERBOSE "[cmkr] Found cmkr: '${CMKR_EXECUTABLE}'") +elseif(CMKR_EXECUTABLE AND NOT CMKR_EXECUTABLE STREQUAL CMKR_CACHED_EXECUTABLE) + message(FATAL_ERROR "[cmkr] '${CMKR_EXECUTABLE}' not found") +elseif(NOT CMKR_EXECUTABLE AND EXISTS "${CMKR_CACHED_EXECUTABLE}") + set(CMKR_EXECUTABLE "${CMKR_CACHED_EXECUTABLE}" CACHE FILEPATH "Full path to cmkr executable" FORCE) + message(STATUS "[cmkr] Found cached cmkr: '${CMKR_EXECUTABLE}'") +else() + set(CMKR_EXECUTABLE "${CMKR_CACHED_EXECUTABLE}" CACHE FILEPATH "Full path to cmkr executable" FORCE) + message(VERBOSE "[cmkr] Bootstrapping '${CMKR_EXECUTABLE}'") + + message(STATUS "[cmkr] Fetching cmkr...") + if(EXISTS "${CMKR_DIRECTORY}") + cmkr_exec("${CMAKE_COMMAND}" -E rm -rf "${CMKR_DIRECTORY}") + endif() + find_package(Git QUIET REQUIRED) + cmkr_exec("${GIT_EXECUTABLE}" + clone + --config advice.detachedHead=false + --branch ${CMKR_TAG} + --depth 1 + ${CMKR_REPO} + "${CMKR_DIRECTORY}" + ) + if(CMKR_COMMIT_HASH) + execute_process( + COMMAND "${GIT_EXECUTABLE}" checkout -q "${CMKR_COMMIT_HASH}" + RESULT_VARIABLE CMKR_EXEC_RESULT + WORKING_DIRECTORY "${CMKR_DIRECTORY}" + ) + if(NOT CMKR_EXEC_RESULT EQUAL 0) + message(FATAL_ERROR "Tag '${CMKR_TAG}' hash is not '${CMKR_COMMIT_HASH}'") + endif() + endif() + message(STATUS "[cmkr] Building cmkr (using system compiler)...") + cmkr_exec("${CMAKE_COMMAND}" + --no-warn-unused-cli + "${CMKR_DIRECTORY}" + "-B${CMKR_DIRECTORY}/build" + "-DCMAKE_BUILD_TYPE=${CMKR_BUILD_TYPE}" + "-DCMAKE_UNITY_BUILD=ON" + "-DCMAKE_INSTALL_PREFIX=${CMKR_DIRECTORY}" + "-DCMKR_GENERATE_DOCUMENTATION=OFF" + ) + cmkr_exec("${CMAKE_COMMAND}" + --build "${CMKR_DIRECTORY}/build" + --config "${CMKR_BUILD_TYPE}" + --parallel + ) + cmkr_exec("${CMAKE_COMMAND}" + --install "${CMKR_DIRECTORY}/build" + --config "${CMKR_BUILD_TYPE}" + --prefix "${CMKR_DIRECTORY}" + --component cmkr + ) + if(NOT EXISTS ${CMKR_EXECUTABLE}) + message(FATAL_ERROR "[cmkr] Failed to bootstrap '${CMKR_EXECUTABLE}'") + endif() + cmkr_exec("${CMKR_EXECUTABLE}" version) + message(STATUS "[cmkr] Bootstrapped ${CMKR_EXECUTABLE}") +endif() +execute_process(COMMAND "${CMKR_EXECUTABLE}" version + RESULT_VARIABLE CMKR_EXEC_RESULT +) +if(NOT CMKR_EXEC_RESULT EQUAL 0) + message(FATAL_ERROR "[cmkr] Failed to get version, try clearing the cache and rebuilding") +endif() + +# Use cmkr.cmake as a script +if(CMAKE_SCRIPT_MODE_FILE) + if(NOT EXISTS "${CMAKE_SOURCE_DIR}/cmake.toml") + execute_process(COMMAND "${CMKR_EXECUTABLE}" init + RESULT_VARIABLE CMKR_EXEC_RESULT + ) + if(NOT CMKR_EXEC_RESULT EQUAL 0) + message(FATAL_ERROR "[cmkr] Failed to bootstrap cmkr project. Please report an issue: https://github.com/build-cpp/cmkr/issues/new") + else() + message(STATUS "[cmkr] Modify cmake.toml and then configure using: cmake -B build") + endif() + else() + execute_process(COMMAND "${CMKR_EXECUTABLE}" gen + RESULT_VARIABLE CMKR_EXEC_RESULT + ) + if(NOT CMKR_EXEC_RESULT EQUAL 0) + message(FATAL_ERROR "[cmkr] Failed to generate project.") + else() + message(STATUS "[cmkr] Configure using: cmake -B build") + endif() + endif() +endif() + +# This is the macro that contains black magic +macro(cmkr) + # When this macro is called from the generated file, fake some internal CMake variables + get_source_file_property(CMKR_CURRENT_LIST_FILE "${CMAKE_CURRENT_LIST_FILE}" CMKR_CURRENT_LIST_FILE) + if(CMKR_CURRENT_LIST_FILE) + set(CMAKE_CURRENT_LIST_FILE "${CMKR_CURRENT_LIST_FILE}") + get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY) + endif() + + # File-based include guard (include_guard is not documented to work) + get_source_file_property(CMKR_INCLUDE_GUARD "${CMAKE_CURRENT_LIST_FILE}" CMKR_INCLUDE_GUARD) + if(NOT CMKR_INCLUDE_GUARD) + set_source_files_properties("${CMAKE_CURRENT_LIST_FILE}" PROPERTIES CMKR_INCLUDE_GUARD TRUE) + + file(SHA256 "${CMAKE_CURRENT_LIST_FILE}" CMKR_LIST_FILE_SHA256_PRE) + + # Generate CMakeLists.txt + cmkr_exec("${CMKR_EXECUTABLE}" gen + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + ) + + file(SHA256 "${CMAKE_CURRENT_LIST_FILE}" CMKR_LIST_FILE_SHA256_POST) + + # Delete the temporary file if it was left for some reason + set(CMKR_TEMP_FILE "${CMAKE_CURRENT_SOURCE_DIR}/CMakerLists.txt") + if(EXISTS "${CMKR_TEMP_FILE}") + file(REMOVE "${CMKR_TEMP_FILE}") + endif() + + if(NOT CMKR_LIST_FILE_SHA256_PRE STREQUAL CMKR_LIST_FILE_SHA256_POST) + # Copy the now-generated CMakeLists.txt to CMakerLists.txt + # This is done because you cannot include() a file you are currently in + configure_file(CMakeLists.txt "${CMKR_TEMP_FILE}" COPYONLY) + + # Add the macro required for the hack at the start of the cmkr macro + set_source_files_properties("${CMKR_TEMP_FILE}" PROPERTIES + CMKR_CURRENT_LIST_FILE "${CMAKE_CURRENT_LIST_FILE}" + ) + + # 'Execute' the newly-generated CMakeLists.txt + include("${CMKR_TEMP_FILE}") + + # Delete the generated file + file(REMOVE "${CMKR_TEMP_FILE}") + + # Do not execute the rest of the original CMakeLists.txt + return() + endif() + # Resume executing the unmodified CMakeLists.txt + endif() +endmacro() diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..355e54d --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,43 @@ +#include + +#include "fmt/base.h" +#include +#include +#include +#include + +int main() { + std::vector rotations; + int currentPos { 50 }; + int zeroCount { 0 }; + + // Step 1: Read file + std::ifstream file("src/rotations.txt"); + std::string line; + + if (!file) { + fmt::print("Sex"); + return 1; + } + + while (std::getline(file, line)) { + rotations.push_back(line); + } + + for (const auto& rotation : rotations) { + char direction = rotation[0]; + int distance = std::stoi(rotation.substr(1)); + + if (direction == 'L') { + currentPos = (currentPos - distance + 100) % 100; + } else { + currentPos = (currentPos + distance) % 100; + } + + if (currentPos == 0) { + zeroCount++; + } + } + + fmt::print("{}\n", zeroCount); +} diff --git a/src/rotations.txt b/src/rotations.txt new file mode 100644 index 0000000..3820ff5 --- /dev/null +++ b/src/rotations.txt @@ -0,0 +1,4510 @@ +R46 +L12 +R1 +R12 +R41 +R10 +L45 +R32 +R6 +R31 +R46 +L18 +L33 +R19 +R38 +L32 +R39 +L14 +L33 +L35 +R14 +R20 +L49 +R37 +L25 +R26 +L37 +L30 +R25 +L2 +R43 +R16 +L26 +R30 +R9 +L36 +R38 +L37 +R41 +R5 +L39 +R41 +R9 +L43 +L27 +R22 +R28 +R49 +L33 +R83 +L1 +R50 +R50 +L19 +R74 +R28 +L60 +L34 +R84 +R65 +L96 +L95 +L36 +R7 +R43 +L46 +R7 +L22 +L13 +R80 +L72 +L12 +L23 +L60 +L24 +R69 +R55 +R74 +L14 +L69 +L49 +L1 +L41 +R58 +L40 +R51 +L56 +R87 +L70 +R80 +R55 +R35 +R4 +L99 +L5 +L53 +R27 +L97 +L51 +L88 +R69 +R17 +R66 +L81 +R91 +R89 +L89 +L513 +R94 +R19 +R99 +L99 +L82 +L26 +R440 +L32 +R580 +R959 +L930 +L9 +R76 +L6 +L34 +L612 +L24 +L593 +L7 +R38 +R62 +L66 +R45 +L24 +R14 +R731 +R79 +R19 +R190 +R720 +L43 +L26 +R861 +L863 +L15 +L22 +R67 +L67 +L37 +L485 +R252 +R70 +R10 +L93 +L17 +R36 +R4 +L79 +L955 +R156 +L40 +L22 +L311 +R9 +L82 +L97 +R94 +L58 +L55 +R895 +R53 +L73 +L25 +R734 +L62 +L489 +L33 +L55 +L61 +R356 +R81 +R54 +R847 +L866 +R46 +L42 +L66 +L94 +R180 +R89 +R58 +R425 +L62 +L90 +R23 +R76 +L99 +R61 +R39 +R80 +L21 +R41 +R62 +R85 +L471 +L40 +L80 +L40 +R27 +R57 +L36 +L31 +L95 +L285 +L85 +R32 +L37 +R56 +L392 +R594 +L74 +L59 +R911 +R1 +R43 +L18 +R912 +R863 +L20 +L80 +R87 +L596 +R9 +L69 +L64 +R70 +R98 +L38 +R85 +L26 +L6 +R53 +R97 +L81 +L43 +L70 +L86 +L11 +L25 +R41 +L8 +R383 +R35 +L67 +L90 +L78 +L35 +L65 +R94 +R6 +R60 +R40 +R51 +L84 +R38 +L543 +L72 +R88 +L87 +R9 +L37 +R237 +L67 +R301 +L15 +R81 +L58 +R31 +R2 +L1 +L61 +R38 +R349 +L72 +R72 +R578 +R362 +L40 +R81 +R19 +R54 +L48 +L77 +R71 +R73 +L473 +R110 +R90 +R51 +L51 +R53 +L796 +R43 +R99 +L555 +R204 +R52 +R93 +R7 +R55 +R45 +L218 +L82 +L449 +L70 +R50 +R969 +L665 +L28 +R99 +R51 +R43 +R70 +L19 +R45 +L30 +R434 +R62 +L712 +L50 +R190 +R47 +L341 +L196 +R852 +L54 +L65 +R36 +L69 +R83 +L93 +L190 +L807 +R7 +L2 +R2 +R5 +R82 +L26 +R39 +R95 +R85 +L80 +R11 +R89 +L89 +L25 +R14 +L53 +L218 +R70 +R44 +L32 +L786 +R87 +L33 +R21 +L483 +L17 +L81 +L70 +L40 +L611 +L93 +L5 +R49 +R51 +L61 +L57 +R18 +R62 +R53 +R85 +R40 +L17 +R506 +L49 +L243 +R63 +L49 +R96 +L31 +R52 +L80 +L71 +L44 +R27 +R1 +L1 +R89 +L589 +R40 +L85 +R45 +L25 +L91 +L84 +R43 +L55 +L49 +R993 +L38 +R6 +L47 +L1 +L82 +R32 +L2 +L723 +R48 +R94 +R18 +L863 +L826 +L44 +L4 +R7 +R93 +R78 +R30 +L71 +L37 +L651 +L79 +L58 +R576 +L610 +R22 +R77 +L77 +R430 +R99 +L530 +R5 +L4 +L305 +L95 +L863 +L81 +R44 +L836 +L91 +R12 +R15 +R38 +R689 +L86 +R59 +L27 +R63 +R64 +R67 +R33 +R27 +R264 +R130 +R579 +L95 +L459 +L46 +R411 +L21 +R15 +R1 +L806 +L77 +R85 +L3 +L5 +L654 +R54 +L64 +L285 +R73 +L65 +R41 +R29 +L146 +R417 +L62 +L82 +R32 +R374 +R26 +L457 +L23 +L10 +R34 +R68 +L37 +R33 +L15 +L97 +L40 +L58 +L28 +L9 +L27 +R37 +R8 +R711 +R22 +L373 +L27 +L94 +R21 +L35 +L92 +R33 +L85 +R552 +R17 +L65 +R309 +R39 +L903 +R63 +R83 +R41 +L56 +R10 +R62 +L270 +L22 +R157 +L35 +L30 +L11 +R49 +L5 +R967 +R94 +R46 +L740 +R77 +R23 +L12 +L15 +R27 +R4 +L630 +L16 +L26 +R68 +L50 +L556 +R6 +R639 +R630 +L98 +L71 +R21 +L21 +R75 +R53 +L84 +R56 +R86 +R14 +R55 +L57 +R4 +R98 +L30 +R20 +R10 +R98 +R5 +R56 +R207 +R34 +L7 +R7 +L19 +R92 +L242 +R43 +L19 +R3 +L27 +L31 +L16 +R17 +L48 +R92 +L11 +R32 +L12 +L64 +R10 +L86 +L414 +R676 +L76 +L27 +R16 +R12 +R99 +L83 +L7 +R90 +L82 +L5 +R83 +R30 +L26 +L51 +L594 +R719 +L74 +L7 +L493 +L99 +L44 +L68 +L772 +R83 +L36 +L76 +L28 +R89 +L35 +L44 +L350 +L78 +L45 +R77 +R78 +L52 +L73 +L27 +L73 +R34 +L32 +R57 +L86 +L43 +L4 +L28 +R75 +L4 +R98 +R57 +L51 +R55 +L38 +R83 +R65 +R95 +R40 +L89 +L16 +L44 +L41 +L23 +L987 +R65 +L208 +R198 +L55 +R52 +R36 +R40 +L72 +R44 +R48 +R20 +L68 +R2 +L78 +R96 +R62 +L77 +L305 +R146 +R17 +L63 +L3 +R10 +R693 +L78 +L59 +R5 +R32 +L91 +L34 +R25 +L185 +R15 +L78 +L79 +R69 +R58 +R88 +R12 +R94 +R45 +L91 +R47 +L663 +R868 +L759 +L97 +R60 +R64 +L68 +R87 +R13 +R67 +R92 +R1 +R42 +L402 +R3 +R4 +R90 +L13 +R16 +R89 +R6 +L795 +L26 +L91 +R17 +R88 +R12 +R96 +L96 +R81 +R76 +R43 +L84 +R84 +R96 +L50 +R6 +L15 +L911 +L60 +L66 +L832 +R68 +L36 +R60 +R40 +L753 +R73 +L15 +L71 +R484 +R517 +R66 +R476 +L77 +R22 +R78 +R20 +R2 +L722 +L32 +R41 +L328 +L23 +R42 +L97 +R735 +L807 +R81 +R88 +R58 +R179 +R42 +L79 +L68 +R68 +R1 +L42 +R71 +R72 +R95 +L53 +R56 +L48 +L52 +R449 +R51 +L30 +L70 +R25 +L77 +R52 +R65 +R228 +L93 +R64 +R476 +R46 +R59 +R69 +R45 +R21 +R51 +L16 +L224 +L80 +R301 +R88 +R385 +L30 +R22 +L39 +L38 +L75 +R175 +L74 +L486 +L40 +L1 +R1 +L61 +L72 +L367 +R54 +R46 +R89 +L4 +R15 +L63 +R67 +R62 +R34 +R12 +R95 +R93 +R36 +L95 +L3 +R77 +R29 +R71 +L15 +L581 +R53 +R528 +L20 +L80 +L98 +R98 +R55 +L555 +L866 +R51 +R15 +R899 +L399 +R5 +L758 +L28 +R82 +L401 +R51 +L45 +L6 +L14 +R40 +L253 +L473 +R50 +R150 +R11 +R80 +R612 +R833 +L712 +L89 +R30 +R60 +R75 +L4 +L66 +R22 +R68 +L56 +L93 +L11 +R340 +L926 +R212 +L36 +R51 +L959 +R65 +R93 +L37 +L63 +R12 +L62 +R92 +R20 +R38 +R887 +R13 +R92 +R34 +R818 +L196 +R52 +R6 +L6 +L72 +R19 +R94 +L41 +R413 +L67 +R54 +R719 +L41 +R22 +R96 +L796 +R64 +L84 +L22 +L58 +R56 +L314 +R284 +L194 +L85 +R49 +L896 +R42 +R95 +R63 +L305 +R98 +L42 +R49 +L936 +L10 +L47 +R27 +R66 +L48 +R48 +R34 +R45 +R67 +R54 +L98 +L57 +L66 +R21 +L12 +L577 +L74 +R863 +R66 +R98 +L29 +R420 +L255 +R81 +R53 +L34 +L24 +R226 +R21 +L30 +L43 +L429 +R921 +L23 +L19 +L59 +R57 +L3 +L595 +R111 +R68 +L79 +R1 +L703 +R2 +L5 +L40 +L10 +L79 +L66 +L310 +L90 +L66 +L8 +L44 +R6 +L31 +R43 +R14 +R86 +R79 +L438 +R59 +R81 +R83 +L894 +L3 +L99 +L841 +R92 +R623 +L151 +R77 +R32 +L64 +L99 +L8 +L29 +L85 +R97 +R49 +L61 +L56 +R32 +L76 +L36 +R36 +R474 +R26 +L825 +R67 +L49 +R7 +R51 +L12 +L83 +L9 +L77 +L62 +R92 +L73 +L706 +R19 +L55 +R70 +L72 +L83 +L38 +L58 +L804 +L692 +R92 +R54 +R27 +L876 +R607 +R49 +L9 +R38 +R819 +R48 +L57 +L188 +R88 +R26 +L26 +L76 +R72 +R22 +R97 +L22 +R596 +L70 +R81 +L37 +L33 +R26 +L43 +R87 +R67 +L55 +R107 +L73 +R54 +R17 +R81 +L41 +L57 +R49 +L42 +R293 +R85 +L85 +R25 +R832 +R65 +L48 +L99 +L96 +L79 +R93 +R79 +R30 +L183 +L36 +L22 +L29 +R845 +L25 +R637 +R11 +R15 +L43 +R28 +R99 +R28 +R19 +R28 +R326 +L76 +L924 +R61 +R50 +L27 +R16 +R757 +R373 +L30 +R57 +R68 +R72 +L811 +R47 +L12 +L21 +L56 +L541 +R7 +L10 +L211 +L89 +R67 +R25 +R80 +R38 +L17 +R85 +R61 +R95 +R66 +L319 +R61 +L2 +R960 +L89 +R71 +R19 +R20 +L21 +L186 +R47 +R39 +R71 +R14 +R15 +L26 +R84 +L58 +L51 +L49 +L99 +L1 +L65 +L135 +R27 +L827 +L47 +L321 +L32 +L79 +L29 +L34 +R96 +L54 +R63 +R2 +L44 +R181 +R982 +L78 +L6 +L72 +R69 +R603 +L19 +R19 +R41 +L73 +R465 +R20 +L69 +R590 +R93 +R6 +R12 +L9 +L84 +L389 +R97 +R494 +L88 +L106 +L21 +L79 +R11 +R33 +L439 +R612 +L90 +R73 +L675 +L87 +R65 +L36 +L67 +R66 +L96 +L388 +L89 +R6 +L99 +R71 +R982 +L9 +L533 +L111 +L37 +R923 +L72 +R86 +R16 +R33 +L72 +L67 +R90 +L42 +R4 +R735 +R9 +R94 +L4 +L96 +L36 +R31 +R20 +R37 +L452 +L63 +L40 +L88 +R88 +L82 +R92 +L7 +R35 +R27 +R51 +R87 +R45 +R29 +L74 +R311 +R89 +L62 +R94 +L37 +L95 +R545 +R14 +R41 +R82 +L82 +L55 +L345 +R1 +L59 +R238 +L30 +R50 +R275 +L66 +R90 +L56 +R99 +L188 +R829 +R17 +L421 +R21 +R46 +R68 +R13 +R49 +R424 +R93 +R7 +R74 +L974 +L93 +R81 +L94 +L66 +L26 +R40 +R58 +R23 +R18 +R59 +R43 +L46 +R63 +L81 +R21 +L62 +R62 +R697 +L97 +R80 +L766 +R45 +L59 +R291 +R9 +L68 +R58 +L94 +R50 +R718 +L35 +L29 +L73 +R581 +L708 +R88 +R12 +R73 +L77 +R81 +R97 +L542 +R17 +R1 +L94 +L56 +L48 +L57 +R5 +L9 +R20 +L763 +L56 +L24 +L368 +L22 +L40 +R62 +R30 +R70 +L51 +R33 +L82 +R75 +L60 +L70 +R3 +L61 +R613 +R792 +R108 +L37 +R37 +L69 +R34 +R835 +R67 +R33 +L157 +L43 +R816 +L44 +L72 +R58 +L58 +R28 +L3 +L72 +L73 +L80 +L26 +L39 +L81 +L754 +L96 +L85 +R50 +L258 +L27 +R16 +L84 +R12 +R672 +L99 +R230 +R70 +R99 +L83 +R583 +L82 +L14 +R96 +R343 +L577 +R93 +R41 +L894 +R28 +R66 +R76 +L76 +L677 +L23 +L35 +L41 +R98 +L103 +L688 +R18 +R34 +R82 +R46 +L11 +L14 +L5 +L81 +R35 +L53 +L82 +L5 +L44 +L37 +L64 +L17 +L87 +L46 +R876 +R224 +L799 +L63 +R62 +L65 +L65 +L70 +R46 +R24 +R30 +L63 +L24 +R387 +L71 +R71 +L94 +L36 +L70 +L32 +L77 +L762 +L29 +L17 +R225 +L32 +R96 +L72 +R77 +R16 +R7 +L51 +R445 +R6 +L32 +L77 +R9 +L5 +L95 +R20 +L59 +L18 +L32 +L329 +L723 +R41 +L69 +L12 +R922 +L67 +L950 +R476 +R27 +R173 +R83 +L962 +L56 +R59 +R60 +R513 +L97 +R70 +R54 +L24 +R416 +R484 +R57 +R21 +R22 +L57 +R71 +R686 +R93 +L616 +R747 +R81 +L323 +R418 +R32 +R97 +R28 +R460 +L58 +R73 +L26 +L6 +R6 +L21 +R76 +L286 +R629 +L4 +L52 +R10 +R87 +R55 +R55 +L76 +L26 +L35 +R82 +R715 +R85 +R78 +L34 +L27 +L8 +R26 +L35 +R93 +R7 +R48 +R62 +R84 +L94 +R96 +L89 +L29 +R2 +L80 +R933 +L33 +L59 +L77 +R111 +R25 +R76 +L76 +R56 +L37 +R84 +R97 +L25 +L79 +R4 +R92 +R96 +L67 +R42 +R46 +R28 +L37 +R29 +L29 +R34 +R93 +R19 +R84 +R770 +L56 +R689 +L74 +L1 +R42 +L72 +R72 +L609 +R945 +R15 +R49 +R8 +R492 +R58 +R42 +R470 +R34 +R17 +R94 +R5 +R4 +R82 +L85 +L62 +R41 +R37 +R63 +L50 +R17 +R41 +R92 +R995 +R5 +L63 +R63 +R23 +L41 +R55 +L601 +L40 +L14 +L87 +L221 +R24 +R49 +R712 +L359 +L28 +R28 +L844 +R79 +R90 +R75 +L46 +L64 +L14 +R97 +L655 +R90 +L20 +R12 +R79 +L1 +L78 +R72 +L99 +L1 +R602 +L19 +R72 +R8 +L78 +L36 +R87 +L23 +R23 +L408 +R57 +R590 +R66 +R339 +R53 +L5 +L90 +L6 +L76 +R31 +R854 +L13 +R43 +L65 +R122 +L592 +L75 +L61 +L82 +L90 +R86 +L86 +R64 +R97 +L57 +R44 +L88 +L94 +R279 +L10 +R13 +R56 +R12 +R84 +R59 +L75 +L84 +R80 +R20 +L18 +L1 +L267 +R786 +L197 +R597 +R10 +L99 +R89 +L19 +L81 +L877 +L23 +L35 +R82 +L47 +R37 +R63 +R43 +R57 +R38 +R62 +R36 +R52 +L9 +R321 +R92 +R73 +R53 +L37 +R19 +R36 +L36 +R121 +R665 +L621 +R92 +L57 +L52 +R86 +R72 +R12 +R358 +L809 +L6 +R39 +R11 +L52 +R95 +R95 +L12 +R33 +R30 +R53 +R41 +R10 +R96 +L87 +L13 +L33 +L90 +L77 +L89 +L11 +R51 +R43 +L45 +L92 +L857 +L86 +L82 +L29 +L26 +R1 +R507 +R94 +L90 +L89 +L55 +L3 +L62 +R20 +R36 +R164 +L14 +R62 +L42 +L27 +L56 +L50 +R27 +L47 +R32 +L11 +R64 +L738 +L41 +R518 +R67 +L16 +L28 +L451 +L264 +R15 +R57 +L398 +L705 +R481 +L35 +L23 +R58 +R6 +R88 +R79 +R92 +L99 +L94 +L24 +L58 +L20 +L63 +L42 +R95 +L42 +R92 +L999 +L85 +R362 +L23 +L23 +R82 +R41 +R79 +R21 +R720 +L43 +L530 +R8 +R45 +L3 +R3 +L66 +L34 +R727 +R509 +R93 +L29 +R97 +R61 +L58 +R82 +R32 +R29 +R57 +L13 +L87 +R385 +L23 +L408 +R46 +R59 +L59 +L23 +R521 +R46 +R54 +R902 +L634 +L75 +R9 +R655 +L29 +L30 +R93 +R84 +R66 +L540 +R10 +R91 +L910 +R97 +R46 +L33 +L2 +L60 +L93 +L45 +R73 +R27 +R20 +L720 +L90 +R90 +L76 +L655 +R31 +L2 +L498 +R41 +R71 +L12 +R378 +R222 +R37 +R98 +R26 +L61 +L490 +L10 +L66 +R66 +L48 +R82 +L41 +L393 +L52 +R652 +R483 +L83 +R75 +L788 +R38 +L62 +R37 +R56 +R71 +L21 +R19 +R75 +R92 +L17 +L75 +R44 +R356 +L95 +L5 +L140 +L52 +R41 +R43 +R78 +L13 +R64 +R73 +L994 +R861 +L7 +R46 +L842 +L406 +L15 +R863 +L812 +R3 +L26 +R35 +L15 +R15 +R87 +L29 +L54 +L95 +L9 +L5 +R423 +R38 +L18 +R701 +R61 +L20 +R20 +R11 +R61 +L225 +R78 +R17 +L43 +L32 +L64 +R372 +L75 +L41 +R94 +R47 +L11 +L89 +L87 +L59 +R46 +R127 +L676 +R48 +R1 +L268 +R68 +L54 +R76 +L22 +L52 +L53 +R906 +R99 +L82 +R382 +R87 +R13 +R806 +R36 +R78 +L20 +L762 +R62 +L66 +L34 +R49 +R51 +L65 +R65 +L21 +L62 +R32 +L770 +R98 +L723 +L543 +R89 +L47 +L53 +L59 +R12 +L53 +R85 +L945 +L82 +R27 +L58 +L97 +L883 +R53 +R21 +L62 +R526 +R15 +L89 +L30 +R365 +R70 +L16 +R142 +L89 +L88 +R35 +R24 +R776 +R21 +L38 +L83 +L21 +R22 +L60 +R53 +L613 +L81 +R569 +L33 +R64 +R89 +L64 +R64 +R11 +R64 +L64 +R15 +R96 +L35 +L85 +R9 +L29 +L61 +L83 +R36 +L14 +L64 +R15 +R16 +L204 +L408 +L4 +R21 +L11 +R690 +L23 +R423 +R376 +L446 +L45 +R15 +L65 +R7 +L2 +L48 +L92 +L54 +R33 +L53 +R41 +R33 +R2 +L69 +R933 +L66 +L20 +R90 +R20 +R310 +L893 +L56 +L63 +L57 +R57 +R41 +R10 +R61 +L65 +R98 +R25 +R41 +L57 +R82 +L124 +R57 +L5 +R24 +R85 +L24 +L80 +R212 +R28 +L97 +L4 +R12 +R41 +L49 +R795 +R5 +L31 +L8 +R88 +R92 +R16 +L157 +L92 +R71 +L79 +L352 +R45 +R45 +L38 +R83 +L61 +R78 +R64 +L64 +L41 +L59 +R247 +R53 +L80 +L20 +L23 +R89 +R34 +L323 +R723 +L799 +R75 +R50 +R40 +R9 +L807 +R36 +R56 +R40 +R590 +R88 +R9 +R13 +L38 +R38 +R20 +R76 +R2 +R2 +R32 +L38 +L194 +R77 +R14 +R94 +L85 +L8 +R58 +R2 +R25 +R23 +R86 +L32 +R85 +L3 +L91 +L45 +R75 +R27 +L50 +R9 +L61 +L32 +R94 +L762 +R42 +L33 +R47 +L56 +L91 +L9 +L13 +L87 +L88 +R688 +L94 +L36 +R71 +R82 +R77 +R24 +L205 +R15 +L34 +R69 +L90 +R18 +L14 +L92 +L43 +R52 +R66 +R175 +L26 +L15 +L18 +R46 +R66 +R24 +L18 +R91 +L54 +L84 +L2 +R534 +R82 +L185 +L6 +L48 +L28 +R8 +R292 +R88 +R516 +R76 +R132 +L87 +R75 +L22 +L66 +R55 +L67 +L36 +L56 +R92 +L83 +R98 +L24 +R62 +R71 +R44 +L68 +R52 +L48 +R3 +R93 +R68 +L68 +R95 +R69 +L951 +L69 +R56 +L482 +R82 +R34 +R59 +R507 +L47 +R94 +R63 +L49 +R39 +R55 +L444 +R89 +R5 +R95 +R44 +L33 +L11 +L311 +L89 +L63 +R75 +L49 +L88 +L98 +L549 +L533 +R5 +L54 +R94 +R60 +R63 +L563 +R77 +R23 +L44 +L42 +R886 +L51 +R51 +R967 +L67 +R71 +R73 +L548 +L23 +L19 +L61 +R7 +R52 +R31 +R18 +L39 +R77 +R4 +R6 +L81 +R29 +L476 +L979 +L42 +L90 +R90 +R843 +R74 +L83 +L34 +L668 +R50 +R462 +R53 +R3 +R679 +R821 +L238 +R67 +R11 +L30 +R56 +L73 +L410 +R91 +L95 +R21 +L87 +L35 +R90 +L52 +L17 +L27 +R28 +R53 +L33 +R702 +R78 +R614 +L52 +R59 +L6 +R85 +R56 +R58 +R32 +L94 +L82 +R629 +L603 +L96 +L54 +R43 +R11 +R15 +R85 +L35 +L65 +L13 +R74 +R88 +L349 +R83 +L74 +L83 +R74 +L93 +R61 +R83 +L52 +L99 +L83 +R15 +R38 +L759 +L711 +R54 +R46 +L301 +L99 +L32 +L548 +R22 +L39 +R24 +L7 +L58 +R32 +L94 +R309 +R80 +L89 +R47 +R53 +L49 +L51 +L91 +L429 +L80 +R72 +L45 +R935 +R30 +R638 +R372 +R98 +L94 +R74 +L93 +L663 +L73 +L51 +R444 +L799 +L61 +R43 +L35 +L18 +R68 +R25 +L524 +L41 +L2 +R61 +R51 +R55 +L67 +L755 +L945 +R52 +L60 +L42 +R80 +R167 +L119 +L278 +R94 +L92 +L77 +R51 +R84 +L19 +R10 +L51 +L95 +L59 +L46 +L79 +L54 +L34 +L33 +R69 +L175 +L410 +R61 +R11 +L56 +L34 +R878 +L56 +R65 +L43 +R90 +R89 +L89 +L5 +L56 +L7 +L756 +R71 +R53 +R441 +R59 +L114 +L47 +R33 +R72 +R856 +R6 +L320 +L86 +L202 +L62 +L36 +R78 +L78 +R23 +L915 +L91 +L17 +L70 +R11 +R59 +L42 +L51 +R17 +L26 +L798 +R49 +R997 +R87 +R28 +L84 +L10 +L12 +L55 +L753 +R553 +R75 +L69 +R649 +L55 +R79 +R21 +L57 +R41 +L84 +R38 +R18 +R434 +L190 +R41 +L41 +L140 +R75 +R65 +R50 +L50 +R71 +R59 +L619 +R43 +R94 +L43 +L95 +R3 +R248 +R39 +R38 +L33 +R95 +L90 +R20 +L30 +R404 +R96 +L59 +L12 +L629 +L48 +L854 +R97 +R54 +L46 +R97 +L39 +L90 +R6 +L77 +R2 +R11 +R39 +L287 +R735 +R99 +R76 +R925 +R665 +R35 +R150 +R3 +R47 +R17 +R83 +R469 +R34 +R97 +R2 +R98 +L39 +L69 +R8 +L399 +L69 +L44 +L2 +L586 +R21 +L57 +L64 +L28 +R28 +L69 +L89 +L74 +R32 +L283 +R73 +L12 +R22 +R617 +R25 +R558 +L78 +R78 +R34 +R69 +L612 +L91 +L14 +R14 +R91 +L75 +R84 +L35 +L13 +R676 +R182 +R48 +L62 +L85 +R2 +R71 +R79 +L74 +L938 +L32 +R81 +R6 +L19 +R13 +L609 +L26 +L85 +L654 +R74 +R597 +L97 +L721 +R21 +L70 +L87 +L75 +R34 +L32 +R80 +R59 +R91 +L51 +L81 +R10 +R39 +R35 +L74 +R822 +R932 +R875 +L151 +R58 +L914 +R11 +L17 +R69 +R791 +L69 +L94 +L40 +R23 +R93 +R90 +L2 +R59 +L814 +L79 +L13 +L44 +L64 +R57 +R5 +R26 +R1 +R1 +R21 +R89 +R2 +L89 +R32 +L45 +L28 +R64 +L36 +L97 +L30 +L73 +L17 +L883 +L62 +R69 +R119 +R74 +L17 +L83 +L381 +R25 +L44 +L80 +L92 +R64 +R949 +L871 +L827 +R57 +L197 +L4 +L2 +R88 +R59 +R788 +L37 +L95 +R38 +R27 +R35 +R23 +L17 +R194 +L69 +L71 +R26 +R83 +R31 +R18 +R39 +L57 +L65 +R89 +R133 +L57 +R98 +L644 +L50 +R980 +R85 +R962 +L34 +L61 +R77 +R339 +R48 +L81 +L58 +L780 +R19 +R48 +R52 +L240 +R82 +R658 +R28 +R39 +R88 +R45 +R8 +L79 +R21 +L50 +R82 +L82 +R710 +R87 +L397 +R430 +L30 +R44 +L31 +R96 +L27 +R18 +L94 +L676 +L116 +R61 +R50 +L68 +R43 +L1 +L99 +R783 +R209 +L39 +L46 +R36 +L54 +R211 +L46 +L395 +R17 +R393 +L36 +L633 +L29 +R43 +L75 +L939 +L59 +L74 +R148 +L26 +R11 +L45 +L98 +L87 +R18 +R12 +R13 +R87 +L83 +R83 +R49 +L49 +L46 +L24 +L21 +L32 +R90 +R33 +R85 +L85 +R23 +R77 +L34 +L66 +L85 +L15 +R3 +L3 +L454 +R579 +L78 +L47 +R50 +L32 +L18 +R39 +R91 +L40 +R10 +R84 +L35 +R751 +R67 +R64 +L31 +R8 +R8 +L83 +L33 +L50 +L50 +R64 +R36 +R71 +L70 +R56 +R43 +L23 +R523 +L295 +L457 +R52 +R4 +R47 +L51 +R35 +R98 +R87 +R80 +R24 +R50 +L39 +L9 +L71 +R45 +R10 +L24 +L986 +R373 +R99 +L472 +L26 +R26 +L1 +R85 +R22 +L6 +L35 +L65 +L37 +L99 +L664 +R56 +R64 +L20 +L1 +L65 +R68 +L2 +L558 +L42 +L87 +R887 +L18 +R92 +R26 +L24 +L43 +L50 +L29 +R446 +R539 +R61 +L947 +R829 +L806 +L76 +R830 +L91 +R34 +L77 +R86 +L94 +R12 +L446 +L77 +L533 +L39 +R92 +L7 +L74 +R68 +R116 +R88 +L88 +L31 +L20 +R83 +L32 +L71 +R784 +L13 +L9 +L304 +L87 +R665 +L53 +L12 +L76 +L87 +R125 +R33 +L772 +R77 +L89 +L11 +L70 +L30 +R26 +L965 +R39 +R153 +R47 +R648 +R52 +R108 +L71 +R63 +L17 +R17 +L63 +L74 +L16 +R21 +L68 +L93 +L46 +R539 +R60 +R269 +L84 +R37 +L287 +L83 +L31 +R4 +L85 +L82 +R84 +L28 +R136 +R90 +L86 +L945 +R28 +R49 +R79 +R142 +R831 +R24 +L491 +L42 +R1 +L52 +R68 +L2 +R96 +R69 +R28 +L544 +R323 +L76 +L74 +R74 +L76 +R154 +L78 +R2 +L981 +L21 +R46 +R91 +L37 +L92 +R92 +R76 +R88 +L64 +R56 +L82 +L674 +R63 +R87 +R50 +L65 +L8 +L47 +L587 +R11 +L4 +R80 +L80 +R391 +R888 +R23 +R19 +L370 +L760 +L491 +L873 +L72 +L89 +R34 +R23 +R70 +R943 +L36 +R42 +L27 +L62 +L78 +L26 +L11 +L538 +R534 +L34 +L282 +R30 +R33 +L77 +R96 +L853 +L80 +R8 +R37 +L40 +L30 +L142 +L701 +L58 +R53 +L94 +R73 +R127 +R42 +L42 +R329 +L516 +L76 +L154 +R930 +L97 +L16 +L63 +R28 +L365 +R796 +L96 +L81 +R92 +R8 +L1 +L86 +R254 +R51 +R63 +L71 +R54 +L54 +L16 +L107 +L406 +R80 +L71 +R579 +R24 +R188 +R69 +L69 +L92 +R92 +R328 +R72 +L70 +R35 +L43 +L282 +R425 +L7 +L69 +R99 +L36 +R82 +R65 +L488 +L80 +L1 +R63 +R7 +L51 +R651 +L25 +R402 +R23 +L18 +R77 +R41 +R15 +L7 +L632 +R94 +R12 +R18 +R89 +R58 +L595 +L70 +L15 +R86 +L2 +L61 +L190 +R358 +L45 +R75 +L88 +L24 +L76 +L89 +L85 +R72 +L98 +L82 +L89 +L29 +R62 +L42 +R84 +L184 +R1 +R87 +R92 +R261 +R87 +R52 +L44 +R28 +L97 +R80 +L967 +R98 +R18 +R88 +L69 +L87 +R918 +R1 +R33 +R50 +L13 +R21 +L55 +L3 +L390 +R90 +L70 +L95 +L35 +L64 +R64 +L86 +R16 +L73 +L57 +L12 +R12 +R693 +L16 +L82 +L99 +L18 +R779 +R22 +L453 +L14 +L12 +L43 +L257 +R30 +R52 +L82 +R2 +R74 +L92 +R592 +L76 +L80 +R80 +R40 +R60 +L56 +R24 +L86 +L607 +R25 +L56 +R56 +L84 +L52 +L40 +L24 +R51 +R49 +R58 +R94 +R84 +L474 +R57 +L19 +L55 +R921 +L366 +R88 +R5 +R7 +L419 +R23 +R78 +L82 +R81 +R15 +R78 +L74 +L29 +R29 +R35 +L72 +L63 +L378 +L95 +L27 +R69 +R78 +R29 +L58 +L41 +R23 +L265 +L276 +L59 +L41 +L859 +R16 +L97 +L84 +L64 +L78 +R71 +L41 +R55 +R52 +L41 +R90 +R15 +R12 +R22 +L28 +R17 +R75 +R8 +R61 +R47 +R28 +L36 +R89 +R5 +R6 +R79 +L879 +L91 +R62 +L68 +R49 +R45 +L92 +R15 +R58 +L31 +R53 +L45 +R3 +L789 +L9 +L70 +L978 +R5 +L9 +R75 +L77 +R9 +L76 +R87 +L55 +L29 +R358 +L287 +L47 +L27 +R61 +R36 +R478 +L53 +R62 +L54 +L69 +R61 +R53 +R79 +R42 +R46 +L81 +R73 +R27 +L2 +R2 +R69 +L77 +R7 +L73 +R81 +L807 +L8 +R61 +L64 +R11 +L43 +R99 +L56 +L97 +L95 +R92 +R45 +R55 +R84 +R47 +L597 +R66 +L86 +R786 +R12 +R35 +L47 +R59 +L559 +L66 +R19 +L87 +L91 +L275 +L86 +R99 +R902 +L515 +L44 +R314 +L71 +R80 +L231 +L46 +R675 +R23 +L67 +R167 +R123 +L49 +L268 +L410 +R605 +L75 +R43 +R43 +R68 +R20 +L596 +R96 +L53 +R92 +R65 +L4 +R12 +L97 +R85 +L49 +L4 +L947 +L83 +R386 +L83 +R53 +L94 +L151 +R40 +L71 +R47 +R56 +R89 +R11 +L54 +R88 +R66 +R816 +L816 +R7 +L903 +L44 +L60 +R16 +R84 +L23 +R23 +R78 +L574 +L4 +R31 +L62 +L69 +L64 +L97 +L32 +R93 +R22 +L22 +L9 +R870 +R56 +L102 +R85 +L23 +R75 +R221 +R2 +R75 +R146 +R6 +R3 +L5 +R13 +L94 +L51 +L68 +R34 +R46 +L80 +L43 +R43 +R88 +R96 +R74 +L9 +R2 +L218 +R467 +R44 +R36 +R620 +L16 +L50 +L34 +L209 +R9 +R40 +L40 +R817 +L64 +L53 +R659 +L429 +R22 +L33 +R98 +R4 +R36 +R66 +L723 +R83 +R781 +R494 +R91 +R51 +R61 +R86 +R11 +L968 +R3 +R707 +R39 +L39 +L69 +R11 +R85 +R41 +R75 +L89 +R55 +R36 +R83 +L28 +L45 +L55 +L66 +R66 +R12 +L72 +L66 +R13 +L787 +L586 +R1 +R85 +R53 +L996 +R237 +L194 +L90 +L53 +R37 +L438 +R33 +R911 +L94 +R173 +L39 +R84 +L24 +L16 +L84 +L534 +R4 +L70 +L81 +L37 +L30 +R355 +R93 +L21 +R75 +L97 +L27 +L30 +L58 +L96 +R54 +R41 +L734 +R42 +L49 +L53 +L72 +L43 +L32 +R97 +L497 +R21 +R6 +L857 +R569 +L684 +L64 +L896 +L95 +R33 +L77 +R44 +R84 +R38 +R78 +R67 +R33 +R81 +R19 +L364 +R81 +R39 +L56 +L88 +L936 +R734 +L43 +L67 +L675 +L25 +L68 +R53 +L4 +R41 +L22 +L15 +L46 +L15 +R19 +L43 +R56 +R19 +L28 +R553 +L68 +L819 +L50 +L663 +L82 +L58 +R40 +R53 +L24 +L29 +R53 +L53 +L542 +R42 +L76 +R76 +L833 +L82 +L85 +L49 +L851 +L64 +L69 +L67 +R21 +R68 +R21 +R713 +L23 +L56 +L44 +R233 +L54 +L79 +L55 +R83 +R65 +L84 +L37 +L396 +R324 +R77 +L77 +L855 +R9 +L44 +R90 +R73 +L254 +R81 +R80 +L63 +L264 +R71 +R63 +R13 +L86 +R34 +R52 +R20 +R90 +L462 +R561 +L609 +R12 +L57 +L55 +R92 +L61 +R69 +R6 +L6 +L18 +L82 +R23 +R73 +R78 +L74 +R99 +L30 +R88 +L38 +L19 +R1 +R82 +R54 +L737 +R26 +R74 +R92 +R21 +R87 +R5 +L11 +R31 +R875 +L72 +L28 +L11 +L50 +R61 +L166 +R306 +L165 +L69 +L59 +L257 +L182 +L81 +R73 +L54 +R8 +L1 +R21 +L23 +L22 +R71 +R14 +L14 +R9 +L95 +R86 +R65 +R92 +R49 +L48 +L158 +L37 +L63 +L78 +R18 +L940 +L36 +R8 +L72 +L742 +L5 +R990 +R251 +R42 +L30 +L31 +R25 +L32 +L468 +R97 +L23 +L265 +L778 +L52 +L29 +R50 +R8 +R92 +L793 +L4 +L3 +L63 +L30 +L34 +L73 +L58 +L642 +R83 +L62 +R59 +R15 +R5 +R67 +L67 +R55 +R45 +L99 +R46 +L747 +R620 +L20 +L94 +L9 +L797 +R105 +R64 +L69 +R354 +R63 +R84 +R11 +R85 +R99 +L42 +L54 +L47 +L578 +L475 +R21 +L35 +R96 +R85 +L69 +L48 +L40 +R90 +R40 +R254 +R531 +L446 +R960 +R90 +R67 +R839 +R65 +R25 +L68 +L557 +R34 +R936 +L68 +R81 +R96 +L79 +L20 +L80 +R511 +R89 +L84 +R83 +L95 +L10 +R93 +R713 +L9 +R74 +L81 +R716 +L35 +L965 +L66 +R66 +R786 +R14 +R76 +L51 +L25 +R85 +R79 +L64 +R88 +L788 +L78 +R1 +L74 +L549 +L643 +R43 +R42 +L42 +L34 +R34 +L147 +L53 +R3 +R934 +L97 +L740 +L33 +R33 +R30 +L430 +R189 +R3 +R29 +R79 +L609 +L11 +R730 +R290 +L4 +L72 +L28 +R53 +R51 +L64 +L88 +R80 +R72 +L50 +L65 +R81 +L8 +R344 +L2 +R92 +R8 +L562 +R62 +R724 +L65 +R31 +R66 +R58 +L23 +R69 +L147 +L513 +L30 +R39 +R51 +R40 +L997 +R64 +R65 +R68 +R42 +R89 +R32 +R85 +R52 +R90 +L86 +L26 +R356 +L7 +L266 +R17 +L47 +L54 +L26 +R83 +L34 +L95 +R2 +L42 +R75 +R462 +L302 +R67 +R33 +R33 +R8 +R603 +L44 +R51 +R1 +R14 +L966 +L50 +L39 +L11 +R361 +R99 +L288 +L35 +R63 +L30 +L20 +L846 +R747 +L14 +R153 +L64 +R59 +R115 +R46 +R38 +L30 +L88 +R102 +L520 +L48 +R3 +R497 +R93 +L510 +R70 +L52 +R86 +R13 +R43 +R39 +R73 +L623 +R40 +R19 +R11 +L96 +R794 +R188 +L46 +L64 +L87 +R253 +R26 +L70 +R66 +L98 +R24 +L92 +R45 +L73 +L15 +L75 +R44 +L726 +L78 +R1 +R215 +R162 +R71 +L10 +R39 +L65 +L2 +L77 +R90 +L46 +L88 +L9 +R481 +R41 +L25 +R41 +L40 +R99 +L98 +L12 +L66 +R22 +L58 +L88 +R13 +L28 +L103 +R245 +R96 +R65 +R1 +R18 +R85 +L19 +R27 +L34 +L940 +L877 +R51 +L67 +L597 +R58 +L99 +L92 +L601 +R569 +L71 +R767 +L12 +R554 +R27 +R81 +R83 +R59 +L26 +L93 +L52 +R33 +L21 +L662 +L93 +L45 +L77 +R970 +L30 +L63 +R843 +R68 +L11 +R246 +L25 +L90 +L31 +L8 +L718 +R26 +L860 +L22 +R93 +R50 +R39 +L392 +R14 +L87 +R1 +R50 +L86 +L48 +L52 +R77 +R23 +R58 +R42 +R745 +L20 +L25 +R55 +R19 +L12 +R8 +L18 +R28 +L80 +L78 +L81 +R59 +R65 +L82 +L83 +L32 +L31 +L29 +R86 +L94 +R6 +L4 +L80 +R78 +R38 +L96 +R658 +R92 +R308 +R97 +R203 +R30 +R170 +R194 +R60 +L134 +L86 +L21 +R87 +R17 +L57 +L40 +R21 +L24 +R83 +R718 +L52 +R275 +L694 +L86 +R51 +R88 +L9 +R9 +L80 +L20 +R682 +R18 +R236 +L94 +L42 +R82 +R18 +L41 +R41 +L51 +L24 +L25 +R67 +L190 +L31 +R79 +L32 +L93 +R16 +R19 +L135 +L60 +L240 +L102 +R828 +R566 +L36 +L656 +R11 +L62 +R94 +R64 +L21 +R44 +R67 +L97 +L658 +L11 +L162 +L69 +L557 +L30 +L57 +R483 +R605 +L44 +R22 +L622 +L686 +L14 +R97 +L60 +L53 +L52 +R974 +L78 +L680 +L48 +L31 +R731 +L12 +L50 +R62 +R55 +L31 +L99 +L732 +L37 +R616 +R17 +R28 +R53 +L56 +R7 +L13 +R53 +L61 +L29 +L47 +R76 +R55 +L39 +R90 +R81 +L4 +L452 +R18 +L49 +L996 +R94 +R216 +L924 +L90 +L65 +L191 +L7 +L90 +L47 +R23 +R77 +L204 +R69 +L65 +L89 +L54 +R1 +R42 +L66 +R79 +R87 +R705 +R765 +L70 +R62 +L32 +L80 +R91 +R44 +L18 +L176 +R72 +L7 +L48 +R47 +L74 +L34 +R92 +R61 +R96 +L79 +R43 +L73 +R31 +L59 +L28 +R88 +L55 +R51 +R15 +R31 +L5 +L19 +R34 +R29 +L92 +R82 +L90 +L19 +L71 +R12 +L45 +L77 +L65 +R65 +R37 +R33 +L81 +R46 +R38 +L92 +R34 +L26 +L89 +L24 +R22 +R62 +R3 +R94 +R88 +L14 +L14 +R40 +R27 +L35 +L47 +L24 +R3 +L32 +R33 +R4 +L33 +R49 +L47 +R31 +R43 +R11 +L12 +L18 +R15 +L18 +L22 +L43 +L7 +L8 +R6 +L14 +L46 +R49 +R5 +R32 +R38 +L45 +R22 +L1 +R11 +L22 +R49 +R28 +R41 +R12 +R25 +R3 +R22 +R25 +L26 +R45 +R22 +L43 +R9 +R48 +R1