rapid-router 7.3.6__tar.gz → 7.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rapid_router-7.4.0/PKG-INFO +116 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/example_project/rapid_router_test_settings.py +2 -2
- {rapid_router-7.3.6 → rapid_router-7.4.0}/example_project/settings.py +2 -2
- rapid_router-7.4.0/game/__init__.py +1 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_level_selection.py +3 -9
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_python_levels.py +1 -1
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/level_selection.html +9 -1
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/python_den_level_selection.html +9 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/level.py +31 -36
- rapid_router-7.4.0/rapid_router.egg-info/PKG-INFO +116 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/rapid_router.egg-info/SOURCES.txt +0 -1
- rapid_router-7.4.0/rapid_router.egg-info/requires.txt +149 -0
- rapid_router-7.4.0/setup.py +67 -0
- rapid_router-7.3.6/PKG-INFO +0 -9
- rapid_router-7.3.6/example_project/manage.py +0 -10
- rapid_router-7.3.6/game/__init__.py +0 -1
- rapid_router-7.3.6/rapid_router.egg-info/PKG-INFO +0 -9
- rapid_router-7.3.6/rapid_router.egg-info/requires.txt +0 -2
- rapid_router-7.3.6/setup.py +0 -34
- {rapid_router-7.3.6 → rapid_router-7.4.0}/LICENSE.md +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/MANIFEST.in +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/README.md +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/example_project/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/example_project/urls.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/example_project/wsgi.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/admin.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/app_settings.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/cache.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/character.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/decor.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/base_game_test.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/custom_handler.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/editor_page.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/game_page.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/selenium_test_case.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_cow_crashes.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_language_dropdown.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_level_editor.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_level_failures.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_level_win.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_play_through.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_regressions.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_saving_workspace.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/end_to_end_tests/test_turning_around.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/forms.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/level_management.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/messages.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0001_squashed_0025_levels_ordering_pt1.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0026_levels_pt2.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0027_change_level_order.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0028_level_disable_route_score.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0029_disable_route_scores.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0029_level_pythonviewenabled.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0030_merge.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0031_python_view.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0032_cannot_turn_left_level.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0033_recursion_level.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0034_joes_level.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0035_disable_route_score_level_70.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0036_level_score_73.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0037_level_score_79.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0038_level_score_40.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0039_second_episodes_release.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0040_auto_20150128_2019.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0041_level_episode_refs.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0042_level_score_73.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0043_auto_20150615_1155.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0044_auto_20150615_1156.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0045_decor_z_index.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0046_set_img_order.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0047_level_70_is_unsolveable.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0048_add_cow_field_and_blocks.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0049_level_score_34.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0050_level_score_40.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0051_level_score_49.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0052_attempt_night_mode.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0053_level_70_is_unsolveable_again.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0054_disable_route_score_for_levels_69_and_74.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0055_support_multiple_attempts.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0056_mark_all_attempts_as_best.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0057_workspace_language_enabled.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0058_level_theme_name.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0059_theme_name_data.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0060_auto_20160208_2144.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0061_auto_20160208_2144.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0062_rm_old_theme_decor_models.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0063_level_character_name.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0064_character_name_data.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0065_rename_old_character_field.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0066_rm_character_model.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0067_level_score_27.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0068_fix_episodes_order.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0069_remove_user_levels_from_episodes.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0070_update_strings_unicode.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0071_use_common_models.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0072_level_50_solution.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0073_level_75_solution.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0074_level_74_solution.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0075_level_48_houses.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0076_level_locked_for_class.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0077_alter_level_next_level.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0078_add_block_types.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0079_populate_block_type_add_cow_blocks.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0080_level_disable_algorithm_score.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0081_first_12_levels_no_algo_score.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0082_level_43_solution.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0083_add_cows_to_existing_levels.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0084_alter_block_block_type.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0085_add_new_blocks.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0086_loop_levels.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0087_workspace_python_view_enabled.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0088_rename_episodes.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0089_episodes_in_development.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0090_add_missing_model_solutions.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0091_disable_algo_score_if_no_model_solution.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0092_disable_algo_score_in_custom_levels.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0093_alter_level_character_name.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0094_add_hint_lesson_subtitle_to_levels.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0095_level_commands.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0096_alter_level_commands.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0097_add_python_den_levels.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0098_add_episode_link_fields.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0099_python_episodes_links.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0100_reorder_python_levels.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0101_rename_episodes.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0102_reoder_episodes_13_14.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0103_level_1015_solution.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0104_remove_level_direct_drive.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0105_delete_invalid_attempts.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0106_fields_to_snake_case.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0107_rename_worksheet_link_episode_student_worksheet_link.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0108_episode_indy_worksheet_link.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0109_create_episodes_23_and_24.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0110_remove_episode_indy_worksheet_link_and_more.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0111_create_worksheets.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0112_worksheet_locked_classes.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0113_level_needs_approval.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0114_default_and_non_student_levels_no_approval.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0115_level_level__default_does_not_need_approval.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/0116_update_worksheet_video_links.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/migrations/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/models.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/permissions.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/pipeline_compilers/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/pipeline_compilers/libsass_compiler.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/python_den_urls.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/random_road.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/serializers.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/django_reverse_js/js/reverse.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/LilitaOne-Regular.ttf +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/backgrounds.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/dataTables.custom.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/dataTables.fixedColumns.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/dataTables.jqueryui.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/dropdown.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/game.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/game_screen.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/input.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/jquery.dataTables.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/level_editor.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/level_moderation.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/level_selection.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/level_share.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/logged_students.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/pqselect.min.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/pqselect.multiselect.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/scoreboard.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/settings.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/skulpt/codemirror.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/skulpt/eclipse.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/css/skulpt/solarized.css +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/Clarice.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/Clarice_Jersey.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/Clarice_Jersey_uncropped.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/Clarice_uncropped.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/Clarice_v1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/Clarice_v2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/OcadoCFC.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/OcadoCFC_no_road.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/Python_Den_hero_student.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/Python_levels_page.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/RR-title.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/RapidRouter_logo_type_only.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/RapidRouter_logo_w_BG.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/RapidRouter_logo_wo_BG.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/actions/btn_zoom_in.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/actions/btn_zoom_out.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/actions/deliver.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/actions/forward.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/actions/left.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/actions/right.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/actions/turn_around.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/actions/wait.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/asc.gif +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/avatars/default-avatar.jpeg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/bg.gif +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/btnMute.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/btnReset.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/front_view/Dee.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/front_view/Electric_van.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/front_view/Kirsty.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/front_view/Nigel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/front_view/Phil.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/front_view/Van.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/front_view/Wes.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/top_view/Dee.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/top_view/Electric_van.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/top_view/Kirsty.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/top_view/Nigel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/top_view/Phil.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/top_view/Sleigh.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/top_view/Van.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/top_view/Van_wreckage.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/characters/top_view/Wes.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/coins/coin_5050_dots.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/coins/coin_5050_transparent.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/coins/coin_copper.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/coins/coin_empty_dots.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/coins/coin_empty_transparent.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/coins/coin_gold.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/coins/coin_silver.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/dataTables/Sorting icons.psd +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/dataTables/sort_asc.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/dataTables/sort_asc_disabled.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/dataTables/sort_both.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/dataTables/sort_desc.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/dataTables/sort_desc_disabled.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/city/bush.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/city/hospital.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/city/house.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/city/pavementTile.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/city/school.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/city/shop.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/city/solar_panel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/bush.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/cfc.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/cfc_black.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/crops.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/house1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/house2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/solar_panel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/tile1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/tree1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/farm/tree2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/grass/bush.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/grass/cfc.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/grass/house.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/grass/pond.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/grass/solar_panel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/grass/tile1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/grass/tree1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/grass/tree2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/barn.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/bush.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/cfc.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/crops.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/hospital.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/house.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/house1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/house2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/pond.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/school.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/shop.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/solar_panel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/tile1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/tile2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/tree1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/decor/snow/tree2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/desc.gif +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/electric_van.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/empty.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/fruit/apple.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/fruit/apple1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/fruit/apple2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/fruit/banana.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/fruit/banana1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/fruit/banana2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/fruit/orange.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/fuelGauge.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/fuelGaugePointer.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/add.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/add_house.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/add_road.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/big_code_mode.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/blockly.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/character.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/clear.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/day.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/decor.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/delete_decor.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/delete_house.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/delete_road.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/description.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/fast.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/help.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/hide.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/hide_button.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/hint.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/if_else.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/load.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/map.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/muted.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/night.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/origin.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/pause.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/play.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/print.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/python.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/quit.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/random.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/save.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/share.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/show.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/slow.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/solve.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/step.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/stop.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/icons/unmuted.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/if_else_example.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/key.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/ocadoVan_big.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/package.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/pigeon.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/python_den_header.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/sp_cow.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/speedoFuel1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/speedoFuel1_fuel_pointer.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/speedoFuel1_meter.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/speedoFuel1_speed_pointer.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/speedoFuel2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/speedoFuel2_fuel_pointer.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/speedoFuel2_meter.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/speedoFuel2_speed_pointer.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/speedoFuel_v2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/trafficLight_green.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/trafficLight_red.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/trashcan.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/trashcan_lid_closed.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/trashcan_lid_open.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/van.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/van_small.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/van_small2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/image/zebraCrossing.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/animation.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/blockly_compressed.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/blockly_uncompressed.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/blocks_compressed.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/javascript_compressed.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/1x1.gif +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/click.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/click.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/click.wav +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/delete.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/delete.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/delete.wav +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/disconnect.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/disconnect.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/disconnect.wav +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/handclosed.cur +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/handdelete.cur +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/handopen.cur +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/quote0.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/quote1.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/sprites.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/media/sprites.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ab.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ar.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/az.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ba.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/bcc.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/be-tarask.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/be.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/bg.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/bn.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/br.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ca.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/cs.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/da.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/de.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/diq.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/dty.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/el.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/en-gb.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/en.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/eo.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/es.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/et.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/eu.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/fa.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/fi.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/fr.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/gl.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/gor.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ha.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/he.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/hi.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/hrx.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/hu.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/hy.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ia.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/id.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ig.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/is.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/it.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ja.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/kab.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ko.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/lb.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/lki.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/lo.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/lrc.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/lt.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/lv.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/mk.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/mnw.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ms.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/nb.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/nl.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/oc.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/pl.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/pms.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/pt-br.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/pt.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ro.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ru.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/sc.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/sd.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/shn.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/sk.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/skr-arab.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/sl.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/sq.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/sr-latn.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/sr.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/sv.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ta.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/tcy.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/te.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/th.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/tl.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/tlh.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/tr.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ug-arab.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/uk.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/ur.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/vi.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/xmf.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/yo.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/zh-hans.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/js/zh-hant.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ab.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ar.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/az.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ba.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/bcc.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/be-tarask.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/be.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/bg.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/bn.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/br.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ca.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/constants.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/cs.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/da.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/de.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/diq.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/dty.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/el.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/en-gb.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/en.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/eo.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/es.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/et.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/eu.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/fa.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/fi.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/fr.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/gl.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/gor.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ha.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/he.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/hi.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/hrx.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/hu.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/hy.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ia.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/id.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ig.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/is.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/it.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ja.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/kab.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ko.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/lb.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/lki.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/lo.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/lrc.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/lt.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/lv.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/mk.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/mnw.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ms.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/nb.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/nl.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/oc.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/pl.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/pms.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/pt-br.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/pt.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/qqq.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ro.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ru.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/sc.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/sd.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/shn.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/sk.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/skr-arab.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/sl.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/sq.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/sr-latn.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/sr.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/sv.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/synonyms.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ta.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/tcy.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/te.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/th.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/tl.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/tlh.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/tr.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ug-arab.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/uk.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/ur.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/vi.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/xmf.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/yo.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/zh-hans.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/json/zh-hant.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/msg/messages.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/python_compressed.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blockly/version.txt +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blocklyCompiler.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blocklyControl.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blocklyCustomBlocks.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blocklyCustomisations.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/blocklyMessages.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/button.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/character.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/coordinate.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/cow.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/dataTables.fixedColumns.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/destination.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/drawing.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/drawingConstants.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/event.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.abide.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.accordion.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.alert.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.clearing.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.dropdown.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.equalizer.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.interchange.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.joyride.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.magellan.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.offcanvas.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.orbit.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.reveal.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.slider.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.tab.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.tooltip.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation/foundation.topbar.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/foundation.min.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/vendor/fastclick.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/vendor/jquery.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/vendor/js.cookie.min.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/vendor/modernizr.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/foundation/vendor/placeholder.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/fpsmeter.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/game.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/handlebars.runtime-v4.7.7.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/howler.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/jquery.dataTables.min.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/jquery.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/jquery.outerhtml.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/jquery.touchy.min.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/level_editor/level_save_state.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/level_editor/owned_levels.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/level_editor.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/level_moderation.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/level_selection.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/loadLanguages.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/map.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/messages.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/mobile-detect.min.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/model.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/node.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/pathFinder.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/pqselect.min.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/program.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/pythonControl.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/raphael.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/saving.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/scoreboard.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/scoreboardSharedLevels.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/sharing.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/skulpt/codemirror.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/skulpt/python.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/skulpt/skulpt-stdlib.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/skulpt/skulpt.min.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/sound.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/svginnerhtml.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/tab.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/templates.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/trafficLight.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/utils.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/van.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/js/widget-scroller.js +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/Clarice.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/Clarice_Jersey.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/Clarice_v1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/Clarice_v2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Dee.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Electric_van.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Kirsty.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Nigel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Phil.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Sleigh.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Van.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Van2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Van_wreckage.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/VeilOfNight.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/characters/top_view/Wes.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/city/bush.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/city/hospital.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/city/house.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/city/pavementTile.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/city/school.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/city/shop.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/city/solar_panel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/bush.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/cfc.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/cfc_black.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/crops.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/house1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/house2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/solar_panel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/tile1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/tree1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/farm/tree2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/grass/bush.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/grass/cfc.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/grass/house.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/grass/pond.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/grass/solar_panel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/grass/tile1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/grass/tree1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/grass/tree2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/barn.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/bush.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/cfc.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/crops.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/hospital.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/house.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/house1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/house2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/pond.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/school.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/shop.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/solar_panel.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/tile1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/tile2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/tree1.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/decor/snow/tree2.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/fire.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/pigeon.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/path/crossroads.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/path/dead_end.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/path/straight.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/path/t_junction.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/path/turn.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/road/crossroads.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/road/dead_end.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/road/straight.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/road/t_junction.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/road_tiles/road/turn.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/sleigh_wreckage.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/smoke.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/sp_cow.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/trafficLight_green.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/trafficLight_red.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/raphael_image/van_wreckage.svg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/_foundation_overrides.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/_mixins.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/_styles.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/_variables.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/_functions.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/_settings.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_accordion.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_alert-boxes.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_block-grid.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_breadcrumbs.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_button-groups.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_buttons.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_clearing.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_dropdown-buttons.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_dropdown.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_flex-video.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_forms.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_global.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_grid.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_icon-bar.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_inline-lists.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_joyride.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_keystrokes.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_labels.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_magellan.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_offcanvas.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_orbit.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_pagination.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_panels.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_pricing-tables.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_progress-bars.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_range-slider.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_reveal.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_side-nav.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_split-buttons.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_sub-nav.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_switch.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_switches.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_tables.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_tabs.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_thumbs.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_toolbar.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_tooltips.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_top-bar.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_type.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation/components/_visibility.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/foundation.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sass/game.scss +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/clown_horn.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/clown_horn.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/cow.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/cow.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/cow_original.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/cow_original.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/crash.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/crash.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/delivery.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/delivery.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/electric_van_starting.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/electric_van_starting.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/failure.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/failure.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/horn.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/horn.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/moving.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/moving.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/pigeon.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/pigeon.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/sleigh_bells.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/sleigh_bells.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/sleigh_crash.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/sleigh_crash.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/starting.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/starting.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/tension.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/tension.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/win.mp3 +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/game/sound/win.ogg +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/icons/dee-192x192.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/icons/dee-384x384.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/icons/dee-512x512.png +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/static/manifest.json +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/base.html +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/basenonav.html +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/crowdin.html +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/error.html +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/game.html +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/level_editor.html +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/level_moderation.html +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/logged_students.html +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/scoreboard.html +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templatetags/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templatetags/game/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/templatetags/game/utils.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/migrations/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/migrations/test_migration_fix_episodes_order.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/test_api.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/test_level_editor.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/test_level_moderation.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/test_level_selection.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/test_models.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/test_random_road.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/test_scoreboard.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/utils/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/utils/attempt.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/utils/episode.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/utils/level.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/utils/locale.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/utils/teacher.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/tests/utils/user.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/theme.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/urls.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/__init__.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/api.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/helper.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/language_code_conversions.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/level_editor.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/level_moderation.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/level_selection.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/level_solutions.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/scoreboard.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/game/views/scoreboard_csv.py +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/pyproject.toml +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/rapid_router.egg-info/dependency_links.txt +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/rapid_router.egg-info/not-zip-safe +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/rapid_router.egg-info/top_level.txt +0 -0
- {rapid_router-7.3.6 → rapid_router-7.4.0}/setup.cfg +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: rapid-router
|
|
3
|
+
Version: 7.4.0
|
|
4
|
+
Classifier: Programming Language :: Python
|
|
5
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
6
|
+
Classifier: Framework :: Django
|
|
7
|
+
License-File: LICENSE.md
|
|
8
|
+
Requires-Dist: asgiref==3.8.1; python_version >= "3.8"
|
|
9
|
+
Requires-Dist: asttokens==3.0.0; python_version >= "3.8"
|
|
10
|
+
Requires-Dist: certifi==2025.1.31; python_version >= "3.6"
|
|
11
|
+
Requires-Dist: cfl-common==8.4.4
|
|
12
|
+
Requires-Dist: charset-normalizer==3.4.1; python_version >= "3.7"
|
|
13
|
+
Requires-Dist: decorator==5.2.1; python_version >= "3.8"
|
|
14
|
+
Requires-Dist: diff-match-patch==20241021; python_version >= "3.7"
|
|
15
|
+
Requires-Dist: django==4.2.20; python_version >= "3.8"
|
|
16
|
+
Requires-Dist: django-countries==7.6.1
|
|
17
|
+
Requires-Dist: django-csp==3.8
|
|
18
|
+
Requires-Dist: django-formtools==2.5.1; python_version >= "3.8"
|
|
19
|
+
Requires-Dist: django-import-export==4.2.0; python_version >= "3.9"
|
|
20
|
+
Requires-Dist: django-otp==1.5.4; python_version >= "3.7"
|
|
21
|
+
Requires-Dist: django-phonenumber-field==8.0.0; python_version >= "3.8"
|
|
22
|
+
Requires-Dist: django-pipeline==3.1.0
|
|
23
|
+
Requires-Dist: django-reverse-js==0.1.7; python_version >= "3.10"
|
|
24
|
+
Requires-Dist: django-two-factor-auth==1.17.0; python_version >= "3.8"
|
|
25
|
+
Requires-Dist: djangorestframework==3.15.2; python_version >= "3.8"
|
|
26
|
+
Requires-Dist: executing==2.2.0; python_version >= "3.8"
|
|
27
|
+
Requires-Dist: idna==3.10; python_version >= "3.6"
|
|
28
|
+
Requires-Dist: ipython==9.0.2; python_version >= "3.11"
|
|
29
|
+
Requires-Dist: ipython-pygments-lexers==1.1.1; python_version >= "3.8"
|
|
30
|
+
Requires-Dist: jedi==0.19.2; python_version >= "3.6"
|
|
31
|
+
Requires-Dist: libsass==0.23.0; python_version >= "3.8"
|
|
32
|
+
Requires-Dist: matplotlib-inline==0.1.7; python_version >= "3.8"
|
|
33
|
+
Requires-Dist: more-itertools==8.7.0; python_version >= "3.5"
|
|
34
|
+
Requires-Dist: numpy==2.2.4; python_version >= "3.10"
|
|
35
|
+
Requires-Dist: pandas==2.2.3; python_version >= "3.9"
|
|
36
|
+
Requires-Dist: parso==0.8.4; python_version >= "3.6"
|
|
37
|
+
Requires-Dist: pexpect==4.9.0; sys_platform != "win32" and sys_platform != "emscripten"
|
|
38
|
+
Requires-Dist: pgeocode==0.4.0; python_version >= "3.8"
|
|
39
|
+
Requires-Dist: prompt-toolkit==3.0.50; python_full_version >= "3.8.0"
|
|
40
|
+
Requires-Dist: ptyprocess==0.7.0
|
|
41
|
+
Requires-Dist: pure-eval==0.2.3
|
|
42
|
+
Requires-Dist: pygments==2.19.1; python_version >= "3.8"
|
|
43
|
+
Requires-Dist: pyhamcrest==2.0.2; python_version >= "3.5"
|
|
44
|
+
Requires-Dist: pyjwt==2.6.0; python_version >= "3.7"
|
|
45
|
+
Requires-Dist: pypng==0.20220715.0
|
|
46
|
+
Requires-Dist: python-dateutil==2.9.0.post0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
47
|
+
Requires-Dist: pytz==2025.1
|
|
48
|
+
Requires-Dist: qrcode==7.4.2; python_version >= "3.7"
|
|
49
|
+
Requires-Dist: rapid-router
|
|
50
|
+
Requires-Dist: requests==2.32.3; python_version >= "3.8"
|
|
51
|
+
Requires-Dist: six==1.17.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
52
|
+
Requires-Dist: sqlparse==0.5.3; python_version >= "3.8"
|
|
53
|
+
Requires-Dist: stack-data==0.6.3
|
|
54
|
+
Requires-Dist: tablib==3.7.0; python_version >= "3.9"
|
|
55
|
+
Requires-Dist: traitlets==5.14.3; python_version >= "3.8"
|
|
56
|
+
Requires-Dist: typing-extensions==4.12.2; python_version >= "3.8"
|
|
57
|
+
Requires-Dist: tzdata==2025.1; python_version >= "2"
|
|
58
|
+
Requires-Dist: urllib3==2.3.0; python_version >= "3.9"
|
|
59
|
+
Requires-Dist: wcwidth==0.2.13
|
|
60
|
+
Provides-Extra: dev
|
|
61
|
+
Requires-Dist: asgiref==3.8.1; python_version >= "3.8" and extra == "dev"
|
|
62
|
+
Requires-Dist: attrs==25.3.0; python_version >= "3.8" and extra == "dev"
|
|
63
|
+
Requires-Dist: black==25.1.0; python_version >= "3.9" and extra == "dev"
|
|
64
|
+
Requires-Dist: certifi==2025.1.31; python_version >= "3.6" and extra == "dev"
|
|
65
|
+
Requires-Dist: chardet==5.2.0; python_version >= "3.7" and extra == "dev"
|
|
66
|
+
Requires-Dist: charset-normalizer==3.4.1; python_version >= "3.7" and extra == "dev"
|
|
67
|
+
Requires-Dist: click==8.1.8; python_version >= "3.7" and extra == "dev"
|
|
68
|
+
Requires-Dist: codeforlife-portal==8.4.4; extra == "dev"
|
|
69
|
+
Requires-Dist: django==4.2.20; python_version >= "3.8" and extra == "dev"
|
|
70
|
+
Requires-Dist: django-classy-tags==4.1.0; python_version >= "3.8" and extra == "dev"
|
|
71
|
+
Requires-Dist: django-formtools==2.5.1; python_version >= "3.8" and extra == "dev"
|
|
72
|
+
Requires-Dist: django-otp==1.5.4; python_version >= "3.7" and extra == "dev"
|
|
73
|
+
Requires-Dist: django-preventconcurrentlogins==0.8.2; extra == "dev"
|
|
74
|
+
Requires-Dist: django-ratelimit==3.0.1; python_version >= "3.4" and extra == "dev"
|
|
75
|
+
Requires-Dist: django-recaptcha==4.0.0; extra == "dev"
|
|
76
|
+
Requires-Dist: django-sekizai==4.1.0; python_version >= "3.8" and extra == "dev"
|
|
77
|
+
Requires-Dist: django-selenium-clean==1.0.1; extra == "dev"
|
|
78
|
+
Requires-Dist: django-test-migrations==1.4.0; (python_version >= "3.9" and python_version < "4.0") and extra == "dev"
|
|
79
|
+
Requires-Dist: django-treebeard==4.7.1; python_version >= "3.8" and extra == "dev"
|
|
80
|
+
Requires-Dist: execnet==2.1.1; python_version >= "3.8" and extra == "dev"
|
|
81
|
+
Requires-Dist: h11==0.14.0; python_version >= "3.7" and extra == "dev"
|
|
82
|
+
Requires-Dist: idna==3.10; python_version >= "3.6" and extra == "dev"
|
|
83
|
+
Requires-Dist: importlib-metadata==4.13.0; python_version >= "3.7" and extra == "dev"
|
|
84
|
+
Requires-Dist: iniconfig==2.0.0; python_version >= "3.7" and extra == "dev"
|
|
85
|
+
Requires-Dist: isort==6.0.1; python_full_version >= "3.9.0" and extra == "dev"
|
|
86
|
+
Requires-Dist: mypy-extensions==1.0.0; python_version >= "3.5" and extra == "dev"
|
|
87
|
+
Requires-Dist: outcome==1.3.0.post0; python_version >= "3.7" and extra == "dev"
|
|
88
|
+
Requires-Dist: packaging==24.2; python_version >= "3.8" and extra == "dev"
|
|
89
|
+
Requires-Dist: pathspec==0.12.1; python_version >= "3.8" and extra == "dev"
|
|
90
|
+
Requires-Dist: phonenumbers==8.12.12; extra == "dev"
|
|
91
|
+
Requires-Dist: pillow==11.1.0; python_version >= "3.9" and extra == "dev"
|
|
92
|
+
Requires-Dist: platformdirs==4.3.6; python_version >= "3.8" and extra == "dev"
|
|
93
|
+
Requires-Dist: pluggy==1.5.0; python_version >= "3.8" and extra == "dev"
|
|
94
|
+
Requires-Dist: pysocks==1.7.1; extra == "dev"
|
|
95
|
+
Requires-Dist: pytest==8.3.5; python_version >= "3.8" and extra == "dev"
|
|
96
|
+
Requires-Dist: pytest-django==4.8.0; python_version >= "3.8" and extra == "dev"
|
|
97
|
+
Requires-Dist: pytest-order==1.3.0; python_version >= "3.7" and extra == "dev"
|
|
98
|
+
Requires-Dist: pytest-xdist==3.6.1; python_version >= "3.8" and extra == "dev"
|
|
99
|
+
Requires-Dist: pyyaml==6.0.2; python_version >= "3.8" and extra == "dev"
|
|
100
|
+
Requires-Dist: reportlab==4.2.5; (python_version >= "3.7" and python_version < "4") and extra == "dev"
|
|
101
|
+
Requires-Dist: requests==2.32.3; python_version >= "3.8" and extra == "dev"
|
|
102
|
+
Requires-Dist: selenium==4.29.0; python_version >= "3.9" and extra == "dev"
|
|
103
|
+
Requires-Dist: setuptools==74.0.0; python_version >= "3.8" and extra == "dev"
|
|
104
|
+
Requires-Dist: sniffio==1.3.1; python_version >= "3.7" and extra == "dev"
|
|
105
|
+
Requires-Dist: sortedcontainers==2.4.0; extra == "dev"
|
|
106
|
+
Requires-Dist: sqlparse==0.5.3; python_version >= "3.8" and extra == "dev"
|
|
107
|
+
Requires-Dist: trio==0.29.0; python_version >= "3.9" and extra == "dev"
|
|
108
|
+
Requires-Dist: trio-websocket==0.12.2; python_version >= "3.8" and extra == "dev"
|
|
109
|
+
Requires-Dist: typing-extensions==4.12.2; python_version >= "3.8" and extra == "dev"
|
|
110
|
+
Requires-Dist: urllib3==2.3.0; python_version >= "3.9" and extra == "dev"
|
|
111
|
+
Requires-Dist: websocket-client==1.8.0; python_version >= "3.8" and extra == "dev"
|
|
112
|
+
Requires-Dist: wsproto==1.2.0; python_full_version >= "3.7.0" and extra == "dev"
|
|
113
|
+
Requires-Dist: zipp==3.21.0; python_version >= "3.9" and extra == "dev"
|
|
114
|
+
Dynamic: classifier
|
|
115
|
+
Dynamic: provides-extra
|
|
116
|
+
Dynamic: requires-dist
|
|
@@ -67,9 +67,9 @@ STATIC_URL = "/static/"
|
|
|
67
67
|
STATICFILES_DIRS = [os.path.join(BASE_DIR, "game/static")]
|
|
68
68
|
|
|
69
69
|
SECRET_KEY = "bad_test_secret"
|
|
70
|
-
ROOT_URLCONF = "urls"
|
|
70
|
+
ROOT_URLCONF = "example_project.urls"
|
|
71
71
|
|
|
72
|
-
WSGI_APPLICATION = "wsgi.application"
|
|
72
|
+
WSGI_APPLICATION = "example_project.wsgi.application"
|
|
73
73
|
|
|
74
74
|
INSTALLED_APPS = (
|
|
75
75
|
"game",
|
|
@@ -54,9 +54,9 @@ STATIC_URL = "/static/"
|
|
|
54
54
|
STATICFILES_DIRS = [os.path.join(BASE_DIR, "game/static")]
|
|
55
55
|
|
|
56
56
|
SECRET_KEY = "not-a-secret"
|
|
57
|
-
ROOT_URLCONF = "urls"
|
|
57
|
+
ROOT_URLCONF = "example_project.urls"
|
|
58
58
|
|
|
59
|
-
WSGI_APPLICATION = "wsgi.application"
|
|
59
|
+
WSGI_APPLICATION = "example_project.wsgi.application"
|
|
60
60
|
|
|
61
61
|
INSTALLED_APPS = (
|
|
62
62
|
"game",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "7.4.0"
|
|
@@ -5,8 +5,6 @@ from common.tests.utils.teacher import signup_teacher_directly
|
|
|
5
5
|
from hamcrest import assert_that, ends_with, equal_to
|
|
6
6
|
from selenium.common.exceptions import NoSuchElementException
|
|
7
7
|
from selenium.webdriver.common.by import By
|
|
8
|
-
from selenium.webdriver.support import expected_conditions as EC
|
|
9
|
-
from selenium.webdriver.support.ui import Select, WebDriverWait
|
|
10
8
|
|
|
11
9
|
from game.end_to_end_tests.base_game_test import BaseGameTest
|
|
12
10
|
from game.models import Attempt, Episode
|
|
@@ -68,16 +66,12 @@ class TestLevelSelection(BaseGameTest):
|
|
|
68
66
|
levels_page = self.go_to_reverse("python_levels")
|
|
69
67
|
expected_url = levels_page.browser.current_url
|
|
70
68
|
|
|
71
|
-
page = self.go_to_level_without_dismissing_dialog(
|
|
72
|
-
|
|
73
|
-
assert WebDriverWait(self.selenium, 10).until(
|
|
74
|
-
EC.element_to_be_clickable(next_button)
|
|
75
|
-
)
|
|
76
|
-
next_button.click()
|
|
69
|
+
page = self.go_to_level_without_dismissing_dialog(26, True)
|
|
70
|
+
self.selenium.find_element(By.ID, "next_button").click()
|
|
77
71
|
|
|
78
72
|
current_url = page.browser.current_url
|
|
79
73
|
assert current_url == expected_url
|
|
80
74
|
|
|
81
75
|
episode_20_header = self.selenium.find_element(By.ID, "collapse-20")
|
|
82
76
|
episode_20_expanded = episode_20_header.get_attribute("class")
|
|
83
|
-
assert episode_20_expanded == "collapse
|
|
77
|
+
assert episode_20_expanded == "collapse"
|
|
@@ -27,7 +27,7 @@ class TestPythonLevels(BaseGameTest):
|
|
|
27
27
|
self.go_to_level(4, from_python_den=True).run_print_program()
|
|
28
28
|
|
|
29
29
|
def test_invalid_import(self):
|
|
30
|
-
self.go_to_level(
|
|
30
|
+
self.go_to_level(5, from_python_den=True).run_invalid_import_program()
|
|
31
31
|
|
|
32
32
|
def test_run_code(self):
|
|
33
33
|
self.go_to_level(4, from_python_den=True)
|
|
@@ -89,6 +89,9 @@
|
|
|
89
89
|
|
|
90
90
|
<div id="collapse-{{episode.id}}" aria-labelledby="episode-{{episode.id}}" class="collapse">
|
|
91
91
|
<div class="panel-body">
|
|
92
|
+
{% if not user.is_authenticated and episode.id > 2 %}
|
|
93
|
+
<p class="text--warning">In order to access the full content for this course, please log in.</p>
|
|
94
|
+
{% endif %}
|
|
92
95
|
{% for level in episode.levels %}
|
|
93
96
|
{% if user|is_logged_in_as_student and user.new_student.class_field in level.locked_for_class.all %}
|
|
94
97
|
<!-- Mark level as locked -->
|
|
@@ -99,6 +102,11 @@
|
|
|
99
102
|
<img class="level_image coin_image" value="{{level.name}}">
|
|
100
103
|
{% endif %}
|
|
101
104
|
</p>
|
|
105
|
+
{% elif not user.is_authenticated and level.name > 19 and level.name != 29 and level.name != 33 and level.name != 44 and level.name != 51 and level.name != 61 and level.name != 68 %}
|
|
106
|
+
<!-- Mark level as locked -->
|
|
107
|
+
<p>
|
|
108
|
+
<a class="disabled">{{level.name}}: {{level.title.strip | safe}}</a>
|
|
109
|
+
</p>
|
|
102
110
|
{% else %}
|
|
103
111
|
<!-- Marking titles as safe to enable bold, not to be used for user-created levels -->
|
|
104
112
|
<p>
|
|
@@ -111,7 +119,7 @@
|
|
|
111
119
|
{% endif %}
|
|
112
120
|
{% endfor %}
|
|
113
121
|
|
|
114
|
-
{% if episode.random_levels_enabled %}
|
|
122
|
+
{% if not user.is_authenticated and episode.id <= 2 or user.is_authenticated and episode.random_levels_enabled %}
|
|
115
123
|
<p>
|
|
116
124
|
<a href="{% url 'random_level_for_episode' episode.id %}">
|
|
117
125
|
Random: Try your hand at a random level
|
{rapid_router-7.3.6 → rapid_router-7.4.0}/game/templates/game/python_den_level_selection.html
RENAMED
|
@@ -212,6 +212,15 @@
|
|
|
212
212
|
<img class="level_image coin_image" value="{{level.name}}">
|
|
213
213
|
{% endif %}
|
|
214
214
|
</p>
|
|
215
|
+
{% elif not user.is_authenticated and level.name > 1026 and level.name != 1041 %}
|
|
216
|
+
<!-- Mark level as locked -->
|
|
217
|
+
<p>
|
|
218
|
+
{% if level.name > 1009 %}
|
|
219
|
+
<a class="disabled">{{level.name|stringformat:"i"|slice:"2:4"}}: {{level.title.strip | safe}}</a>
|
|
220
|
+
{% else %}
|
|
221
|
+
<a class="disabled">{{level.name|stringformat:"i"|slice:"3:4"}}: {{level.title.strip | safe}}</a>
|
|
222
|
+
{% endif %}
|
|
223
|
+
</p>
|
|
215
224
|
{% else %}
|
|
216
225
|
<!-- Marking titles as safe to enable bold, not to be used for user-created levels -->
|
|
217
226
|
<p>
|
|
@@ -5,7 +5,7 @@ from builtins import object, str
|
|
|
5
5
|
from datetime import datetime
|
|
6
6
|
|
|
7
7
|
from django.http import Http404, HttpResponse
|
|
8
|
-
from django.shortcuts import
|
|
8
|
+
from django.shortcuts import get_object_or_404, redirect, render
|
|
9
9
|
from django.urls import reverse
|
|
10
10
|
from django.utils import timezone
|
|
11
11
|
from django.views.decorators.http import require_POST
|
|
@@ -16,18 +16,19 @@ import game.messages as messages
|
|
|
16
16
|
import game.permissions as permissions
|
|
17
17
|
from game import app_settings
|
|
18
18
|
from game.cache import (
|
|
19
|
+
cached_custom_level,
|
|
19
20
|
cached_default_level,
|
|
20
21
|
cached_episode,
|
|
21
|
-
cached_custom_level,
|
|
22
|
-
cached_level_decor,
|
|
23
22
|
cached_level_blocks,
|
|
23
|
+
cached_level_decor,
|
|
24
24
|
)
|
|
25
25
|
from game.character import get_character
|
|
26
26
|
from game.decor import get_decor_element
|
|
27
|
-
from game.models import
|
|
27
|
+
from game.models import Attempt, Level, Workspace
|
|
28
28
|
from game.theme import get_theme
|
|
29
29
|
from game.views.language_code_conversions import language_code_dict
|
|
30
30
|
from game.views.level_solutions import solutions
|
|
31
|
+
|
|
31
32
|
from .helper import renderError
|
|
32
33
|
|
|
33
34
|
|
|
@@ -44,16 +45,30 @@ def play_custom_level(request, levelId, from_editor=False):
|
|
|
44
45
|
|
|
45
46
|
|
|
46
47
|
def play_default_level(request, level_name):
|
|
47
|
-
|
|
48
|
+
level_index = int(level_name)
|
|
49
|
+
if level_index > 79:
|
|
48
50
|
raise Http404
|
|
51
|
+
if (
|
|
52
|
+
level_index > 19
|
|
53
|
+
and not level_index in [29, 33, 44, 51, 61, 68]
|
|
54
|
+
and not request.user.is_authenticated
|
|
55
|
+
):
|
|
56
|
+
return redirect(reverse("levels"))
|
|
49
57
|
|
|
50
58
|
level = cached_default_level(level_name)
|
|
51
59
|
return play_level(request, level)
|
|
52
60
|
|
|
53
61
|
|
|
54
62
|
def play_default_python_level(request, level_name):
|
|
55
|
-
|
|
63
|
+
level_index = int(level_name)
|
|
64
|
+
if level_index > 49:
|
|
56
65
|
raise Http404
|
|
66
|
+
if (
|
|
67
|
+
level_index > 26
|
|
68
|
+
and not level_index in [41]
|
|
69
|
+
and not request.user.is_authenticated
|
|
70
|
+
):
|
|
71
|
+
return redirect(reverse("python_levels"))
|
|
57
72
|
|
|
58
73
|
levelId = int(level_name) + 1000
|
|
59
74
|
|
|
@@ -79,9 +94,7 @@ def _prev_level_url(level, user, night_mode, from_python_den):
|
|
|
79
94
|
if is_prev_level_locked:
|
|
80
95
|
while is_prev_level_locked and int(prev_level.name) > 1:
|
|
81
96
|
prev_level = prev_level.prev_level.all()[0]
|
|
82
|
-
is_prev_level_locked = (
|
|
83
|
-
klass in prev_level.locked_for_class.all()
|
|
84
|
-
)
|
|
97
|
+
is_prev_level_locked = klass in prev_level.locked_for_class.all()
|
|
85
98
|
|
|
86
99
|
return _level_url(prev_level, night_mode, from_python_den)
|
|
87
100
|
|
|
@@ -116,9 +129,7 @@ def _next_level_url(level, user, night_mode, from_python_den):
|
|
|
116
129
|
int(next_level.name) < 1050 if from_python_den else 80
|
|
117
130
|
):
|
|
118
131
|
next_level = next_level.next_level
|
|
119
|
-
is_next_level_locked = (
|
|
120
|
-
klass in next_level.locked_for_class.all()
|
|
121
|
-
)
|
|
132
|
+
is_next_level_locked = klass in next_level.locked_for_class.all()
|
|
122
133
|
|
|
123
134
|
return _level_url(next_level, night_mode, from_python_den)
|
|
124
135
|
|
|
@@ -139,9 +150,7 @@ def _level_url(level, night_mode, from_python_den):
|
|
|
139
150
|
|
|
140
151
|
|
|
141
152
|
def _default_level_url(level, from_python_den):
|
|
142
|
-
viewname =
|
|
143
|
-
"play_python_default_level" if from_python_den else "play_default_level"
|
|
144
|
-
)
|
|
153
|
+
viewname = "play_python_default_level" if from_python_den else "play_default_level"
|
|
145
154
|
|
|
146
155
|
level_name = int(level.name) - 1000 if from_python_den else level.name
|
|
147
156
|
|
|
@@ -173,9 +182,7 @@ def play_level(request, level, from_editor=False, from_python_den=False):
|
|
|
173
182
|
"""
|
|
174
183
|
|
|
175
184
|
night_mode = (
|
|
176
|
-
False
|
|
177
|
-
if not app_settings.NIGHT_MODE_FEATURE_ENABLED
|
|
178
|
-
else "night" in request.GET
|
|
185
|
+
False if not app_settings.NIGHT_MODE_FEATURE_ENABLED else "night" in request.GET
|
|
179
186
|
)
|
|
180
187
|
|
|
181
188
|
if not permissions.can_play_level(
|
|
@@ -198,9 +205,7 @@ def play_level(request, level, from_editor=False, from_python_den=False):
|
|
|
198
205
|
)
|
|
199
206
|
commands_attr = "commands_level" + str(level.name)
|
|
200
207
|
commands = (
|
|
201
|
-
getattr(messages, commands_attr, None)
|
|
202
|
-
if level.default
|
|
203
|
-
else level.commands
|
|
208
|
+
getattr(messages, commands_attr, None) if level.default else level.commands
|
|
204
209
|
)
|
|
205
210
|
character = level.character
|
|
206
211
|
character_url = character.top_down
|
|
@@ -224,9 +229,7 @@ def play_level(request, level, from_editor=False, from_python_den=False):
|
|
|
224
229
|
|
|
225
230
|
workspace = None
|
|
226
231
|
python_workspace = None
|
|
227
|
-
if not request.user.is_anonymous and hasattr(
|
|
228
|
-
request.user.userprofile, "student"
|
|
229
|
-
):
|
|
232
|
+
if not request.user.is_anonymous and hasattr(request.user.userprofile, "student"):
|
|
230
233
|
student = request.user.userprofile.student
|
|
231
234
|
attempt = (
|
|
232
235
|
Attempt.objects.filter(
|
|
@@ -265,9 +268,7 @@ def play_level(request, level, from_editor=False, from_python_den=False):
|
|
|
265
268
|
return_view = (
|
|
266
269
|
"level_editor"
|
|
267
270
|
if from_editor
|
|
268
|
-
else "python_levels"
|
|
269
|
-
if from_python_den
|
|
270
|
-
else "levels"
|
|
271
|
+
else "python_levels" if from_python_den else "levels"
|
|
271
272
|
)
|
|
272
273
|
|
|
273
274
|
temp_block_data = []
|
|
@@ -312,9 +313,7 @@ def play_level(request, level, from_editor=False, from_python_den=False):
|
|
|
312
313
|
"next_level_url": _next_level_url(
|
|
313
314
|
level, request.user, night_mode, from_python_den
|
|
314
315
|
),
|
|
315
|
-
"flip_night_mode_url": _level_url(
|
|
316
|
-
level, not night_mode, from_python_den
|
|
317
|
-
),
|
|
316
|
+
"flip_night_mode_url": _level_url(level, not night_mode, from_python_den),
|
|
318
317
|
"available_language_dict": language_code_dict,
|
|
319
318
|
},
|
|
320
319
|
)
|
|
@@ -403,9 +402,7 @@ def close_and_reset(attempt):
|
|
|
403
402
|
def load_list_of_workspaces(request):
|
|
404
403
|
workspaces_owned = []
|
|
405
404
|
if permissions.can_create_workspace(request.user):
|
|
406
|
-
workspaces_owned = Workspace.objects.filter(
|
|
407
|
-
owner=request.user.userprofile
|
|
408
|
-
)
|
|
405
|
+
workspaces_owned = Workspace.objects.filter(owner=request.user.userprofile)
|
|
409
406
|
|
|
410
407
|
workspaces = [
|
|
411
408
|
{
|
|
@@ -445,9 +442,7 @@ def save_workspace(request, workspaceID=None):
|
|
|
445
442
|
"python_enabled",
|
|
446
443
|
"python_view_enabled",
|
|
447
444
|
]
|
|
448
|
-
missing_params = [
|
|
449
|
-
param for param in request_params if param not in request.POST
|
|
450
|
-
]
|
|
445
|
+
missing_params = [param for param in request_params if param not in request.POST]
|
|
451
446
|
if missing_params != []:
|
|
452
447
|
raise Exception(
|
|
453
448
|
"Request missing the following required parameters", missing_params
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: rapid-router
|
|
3
|
+
Version: 7.4.0
|
|
4
|
+
Classifier: Programming Language :: Python
|
|
5
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
6
|
+
Classifier: Framework :: Django
|
|
7
|
+
License-File: LICENSE.md
|
|
8
|
+
Requires-Dist: asgiref==3.8.1; python_version >= "3.8"
|
|
9
|
+
Requires-Dist: asttokens==3.0.0; python_version >= "3.8"
|
|
10
|
+
Requires-Dist: certifi==2025.1.31; python_version >= "3.6"
|
|
11
|
+
Requires-Dist: cfl-common==8.4.4
|
|
12
|
+
Requires-Dist: charset-normalizer==3.4.1; python_version >= "3.7"
|
|
13
|
+
Requires-Dist: decorator==5.2.1; python_version >= "3.8"
|
|
14
|
+
Requires-Dist: diff-match-patch==20241021; python_version >= "3.7"
|
|
15
|
+
Requires-Dist: django==4.2.20; python_version >= "3.8"
|
|
16
|
+
Requires-Dist: django-countries==7.6.1
|
|
17
|
+
Requires-Dist: django-csp==3.8
|
|
18
|
+
Requires-Dist: django-formtools==2.5.1; python_version >= "3.8"
|
|
19
|
+
Requires-Dist: django-import-export==4.2.0; python_version >= "3.9"
|
|
20
|
+
Requires-Dist: django-otp==1.5.4; python_version >= "3.7"
|
|
21
|
+
Requires-Dist: django-phonenumber-field==8.0.0; python_version >= "3.8"
|
|
22
|
+
Requires-Dist: django-pipeline==3.1.0
|
|
23
|
+
Requires-Dist: django-reverse-js==0.1.7; python_version >= "3.10"
|
|
24
|
+
Requires-Dist: django-two-factor-auth==1.17.0; python_version >= "3.8"
|
|
25
|
+
Requires-Dist: djangorestframework==3.15.2; python_version >= "3.8"
|
|
26
|
+
Requires-Dist: executing==2.2.0; python_version >= "3.8"
|
|
27
|
+
Requires-Dist: idna==3.10; python_version >= "3.6"
|
|
28
|
+
Requires-Dist: ipython==9.0.2; python_version >= "3.11"
|
|
29
|
+
Requires-Dist: ipython-pygments-lexers==1.1.1; python_version >= "3.8"
|
|
30
|
+
Requires-Dist: jedi==0.19.2; python_version >= "3.6"
|
|
31
|
+
Requires-Dist: libsass==0.23.0; python_version >= "3.8"
|
|
32
|
+
Requires-Dist: matplotlib-inline==0.1.7; python_version >= "3.8"
|
|
33
|
+
Requires-Dist: more-itertools==8.7.0; python_version >= "3.5"
|
|
34
|
+
Requires-Dist: numpy==2.2.4; python_version >= "3.10"
|
|
35
|
+
Requires-Dist: pandas==2.2.3; python_version >= "3.9"
|
|
36
|
+
Requires-Dist: parso==0.8.4; python_version >= "3.6"
|
|
37
|
+
Requires-Dist: pexpect==4.9.0; sys_platform != "win32" and sys_platform != "emscripten"
|
|
38
|
+
Requires-Dist: pgeocode==0.4.0; python_version >= "3.8"
|
|
39
|
+
Requires-Dist: prompt-toolkit==3.0.50; python_full_version >= "3.8.0"
|
|
40
|
+
Requires-Dist: ptyprocess==0.7.0
|
|
41
|
+
Requires-Dist: pure-eval==0.2.3
|
|
42
|
+
Requires-Dist: pygments==2.19.1; python_version >= "3.8"
|
|
43
|
+
Requires-Dist: pyhamcrest==2.0.2; python_version >= "3.5"
|
|
44
|
+
Requires-Dist: pyjwt==2.6.0; python_version >= "3.7"
|
|
45
|
+
Requires-Dist: pypng==0.20220715.0
|
|
46
|
+
Requires-Dist: python-dateutil==2.9.0.post0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
47
|
+
Requires-Dist: pytz==2025.1
|
|
48
|
+
Requires-Dist: qrcode==7.4.2; python_version >= "3.7"
|
|
49
|
+
Requires-Dist: rapid-router
|
|
50
|
+
Requires-Dist: requests==2.32.3; python_version >= "3.8"
|
|
51
|
+
Requires-Dist: six==1.17.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
|
|
52
|
+
Requires-Dist: sqlparse==0.5.3; python_version >= "3.8"
|
|
53
|
+
Requires-Dist: stack-data==0.6.3
|
|
54
|
+
Requires-Dist: tablib==3.7.0; python_version >= "3.9"
|
|
55
|
+
Requires-Dist: traitlets==5.14.3; python_version >= "3.8"
|
|
56
|
+
Requires-Dist: typing-extensions==4.12.2; python_version >= "3.8"
|
|
57
|
+
Requires-Dist: tzdata==2025.1; python_version >= "2"
|
|
58
|
+
Requires-Dist: urllib3==2.3.0; python_version >= "3.9"
|
|
59
|
+
Requires-Dist: wcwidth==0.2.13
|
|
60
|
+
Provides-Extra: dev
|
|
61
|
+
Requires-Dist: asgiref==3.8.1; python_version >= "3.8" and extra == "dev"
|
|
62
|
+
Requires-Dist: attrs==25.3.0; python_version >= "3.8" and extra == "dev"
|
|
63
|
+
Requires-Dist: black==25.1.0; python_version >= "3.9" and extra == "dev"
|
|
64
|
+
Requires-Dist: certifi==2025.1.31; python_version >= "3.6" and extra == "dev"
|
|
65
|
+
Requires-Dist: chardet==5.2.0; python_version >= "3.7" and extra == "dev"
|
|
66
|
+
Requires-Dist: charset-normalizer==3.4.1; python_version >= "3.7" and extra == "dev"
|
|
67
|
+
Requires-Dist: click==8.1.8; python_version >= "3.7" and extra == "dev"
|
|
68
|
+
Requires-Dist: codeforlife-portal==8.4.4; extra == "dev"
|
|
69
|
+
Requires-Dist: django==4.2.20; python_version >= "3.8" and extra == "dev"
|
|
70
|
+
Requires-Dist: django-classy-tags==4.1.0; python_version >= "3.8" and extra == "dev"
|
|
71
|
+
Requires-Dist: django-formtools==2.5.1; python_version >= "3.8" and extra == "dev"
|
|
72
|
+
Requires-Dist: django-otp==1.5.4; python_version >= "3.7" and extra == "dev"
|
|
73
|
+
Requires-Dist: django-preventconcurrentlogins==0.8.2; extra == "dev"
|
|
74
|
+
Requires-Dist: django-ratelimit==3.0.1; python_version >= "3.4" and extra == "dev"
|
|
75
|
+
Requires-Dist: django-recaptcha==4.0.0; extra == "dev"
|
|
76
|
+
Requires-Dist: django-sekizai==4.1.0; python_version >= "3.8" and extra == "dev"
|
|
77
|
+
Requires-Dist: django-selenium-clean==1.0.1; extra == "dev"
|
|
78
|
+
Requires-Dist: django-test-migrations==1.4.0; (python_version >= "3.9" and python_version < "4.0") and extra == "dev"
|
|
79
|
+
Requires-Dist: django-treebeard==4.7.1; python_version >= "3.8" and extra == "dev"
|
|
80
|
+
Requires-Dist: execnet==2.1.1; python_version >= "3.8" and extra == "dev"
|
|
81
|
+
Requires-Dist: h11==0.14.0; python_version >= "3.7" and extra == "dev"
|
|
82
|
+
Requires-Dist: idna==3.10; python_version >= "3.6" and extra == "dev"
|
|
83
|
+
Requires-Dist: importlib-metadata==4.13.0; python_version >= "3.7" and extra == "dev"
|
|
84
|
+
Requires-Dist: iniconfig==2.0.0; python_version >= "3.7" and extra == "dev"
|
|
85
|
+
Requires-Dist: isort==6.0.1; python_full_version >= "3.9.0" and extra == "dev"
|
|
86
|
+
Requires-Dist: mypy-extensions==1.0.0; python_version >= "3.5" and extra == "dev"
|
|
87
|
+
Requires-Dist: outcome==1.3.0.post0; python_version >= "3.7" and extra == "dev"
|
|
88
|
+
Requires-Dist: packaging==24.2; python_version >= "3.8" and extra == "dev"
|
|
89
|
+
Requires-Dist: pathspec==0.12.1; python_version >= "3.8" and extra == "dev"
|
|
90
|
+
Requires-Dist: phonenumbers==8.12.12; extra == "dev"
|
|
91
|
+
Requires-Dist: pillow==11.1.0; python_version >= "3.9" and extra == "dev"
|
|
92
|
+
Requires-Dist: platformdirs==4.3.6; python_version >= "3.8" and extra == "dev"
|
|
93
|
+
Requires-Dist: pluggy==1.5.0; python_version >= "3.8" and extra == "dev"
|
|
94
|
+
Requires-Dist: pysocks==1.7.1; extra == "dev"
|
|
95
|
+
Requires-Dist: pytest==8.3.5; python_version >= "3.8" and extra == "dev"
|
|
96
|
+
Requires-Dist: pytest-django==4.8.0; python_version >= "3.8" and extra == "dev"
|
|
97
|
+
Requires-Dist: pytest-order==1.3.0; python_version >= "3.7" and extra == "dev"
|
|
98
|
+
Requires-Dist: pytest-xdist==3.6.1; python_version >= "3.8" and extra == "dev"
|
|
99
|
+
Requires-Dist: pyyaml==6.0.2; python_version >= "3.8" and extra == "dev"
|
|
100
|
+
Requires-Dist: reportlab==4.2.5; (python_version >= "3.7" and python_version < "4") and extra == "dev"
|
|
101
|
+
Requires-Dist: requests==2.32.3; python_version >= "3.8" and extra == "dev"
|
|
102
|
+
Requires-Dist: selenium==4.29.0; python_version >= "3.9" and extra == "dev"
|
|
103
|
+
Requires-Dist: setuptools==74.0.0; python_version >= "3.8" and extra == "dev"
|
|
104
|
+
Requires-Dist: sniffio==1.3.1; python_version >= "3.7" and extra == "dev"
|
|
105
|
+
Requires-Dist: sortedcontainers==2.4.0; extra == "dev"
|
|
106
|
+
Requires-Dist: sqlparse==0.5.3; python_version >= "3.8" and extra == "dev"
|
|
107
|
+
Requires-Dist: trio==0.29.0; python_version >= "3.9" and extra == "dev"
|
|
108
|
+
Requires-Dist: trio-websocket==0.12.2; python_version >= "3.8" and extra == "dev"
|
|
109
|
+
Requires-Dist: typing-extensions==4.12.2; python_version >= "3.8" and extra == "dev"
|
|
110
|
+
Requires-Dist: urllib3==2.3.0; python_version >= "3.9" and extra == "dev"
|
|
111
|
+
Requires-Dist: websocket-client==1.8.0; python_version >= "3.8" and extra == "dev"
|
|
112
|
+
Requires-Dist: wsproto==1.2.0; python_full_version >= "3.7.0" and extra == "dev"
|
|
113
|
+
Requires-Dist: zipp==3.21.0; python_version >= "3.9" and extra == "dev"
|
|
114
|
+
Dynamic: classifier
|
|
115
|
+
Dynamic: provides-extra
|
|
116
|
+
Dynamic: requires-dist
|