about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.editorconfig1667
-rw-r--r--.gitignore7
-rw-r--r--.gitmodules3
-rw-r--r--.idea/.idea.MatrixRoomUtils/.idea/codeStyles/codeStyleConfig.xml5
-rw-r--r--.idea/.idea.MatrixRoomUtils/.idea/vcs.xml1
m---------ArcaneLibs0
m---------LibMatrix0
-rw-r--r--MatrixRoomUtils.Desktop/App.axaml.cs1
-rw-r--r--MatrixRoomUtils.Desktop/Components/RoomListEntry.axaml.cs4
-rw-r--r--MatrixRoomUtils.Desktop/FileStorageProvider.cs1
-rw-r--r--MatrixRoomUtils.Desktop/MRUStorageWrapper.cs7
-rw-r--r--MatrixRoomUtils.Desktop/MainWindow.axaml.cs1
-rw-r--r--MatrixRoomUtils.Desktop/MatrixRoomUtils.Desktop.csproj13
-rw-r--r--MatrixRoomUtils.Desktop/RoomInfo.cs3
-rw-r--r--MatrixRoomUtils.Web.Server/MatrixRoomUtils.Web.Server.csproj1
-rw-r--r--MatrixRoomUtils.Web/Classes/MRUStorageWrapper.cs27
-rw-r--r--MatrixRoomUtils.Web/Classes/RoomCreationTemplates/DefaultRoomCreationTemplate.cs27
-rw-r--r--MatrixRoomUtils.Web/Classes/RoomInfo.cs3
-rw-r--r--MatrixRoomUtils.Web/Classes/UserAuth.cs15
-rw-r--r--MatrixRoomUtils.Web/MatrixRoomUtils.Web.csproj10
-rw-r--r--MatrixRoomUtils.Web/Pages/About.razor1
-rw-r--r--MatrixRoomUtils.Web/Pages/DebugTools.razor6
-rw-r--r--MatrixRoomUtils.Web/Pages/DevOptions.razor1
-rw-r--r--MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor22
-rw-r--r--MatrixRoomUtils.Web/Pages/Index.razor55
-rw-r--r--MatrixRoomUtils.Web/Pages/Index.razor.css25
-rw-r--r--MatrixRoomUtils.Web/Pages/InvalidSession.razor7
-rw-r--r--MatrixRoomUtils.Web/Pages/KnownHomeserverList.razor8
-rw-r--r--MatrixRoomUtils.Web/Pages/LoginPage.razor56
-rw-r--r--MatrixRoomUtils.Web/Pages/MediaLocator.razor1
-rw-r--r--MatrixRoomUtils.Web/Pages/ModalTest.razor4
-rw-r--r--MatrixRoomUtils.Web/Pages/Rooms/Create.razor22
-rw-r--r--MatrixRoomUtils.Web/Pages/Rooms/Index.razor10
-rw-r--r--MatrixRoomUtils.Web/Pages/Rooms/PolicyList.razor28
-rw-r--r--MatrixRoomUtils.Web/Pages/Rooms/Space.razor2
-rw-r--r--MatrixRoomUtils.Web/Pages/Rooms/StateEditor.razor3
-rw-r--r--MatrixRoomUtils.Web/Pages/Rooms/StateViewer.razor3
-rw-r--r--MatrixRoomUtils.Web/Pages/Rooms/Timeline.razor8
-rw-r--r--MatrixRoomUtils.Web/Pages/SpaceDebug.razor114
-rw-r--r--MatrixRoomUtils.Web/Shared/InlineUserItem.razor9
-rw-r--r--MatrixRoomUtils.Web/Shared/ModalWindow.razor86
-rw-r--r--MatrixRoomUtils.Web/Shared/ModalWindow.razor.css70
-rw-r--r--MatrixRoomUtils.Web/Shared/RoomList.razor5
-rw-r--r--MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListCategory.razor15
-rw-r--r--MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListSpace.razor2
-rw-r--r--MatrixRoomUtils.Web/Shared/RoomListItem.razor15
-rw-r--r--MatrixRoomUtils.Web/Shared/SimpleComponents/DictionaryEditor.razor38
-rw-r--r--MatrixRoomUtils.Web/Shared/SimpleComponents/FancyTextBox.razor29
-rw-r--r--MatrixRoomUtils.Web/Shared/SimpleComponents/FancyTextBox.razor.css5
-rw-r--r--MatrixRoomUtils.Web/Shared/SimpleComponents/LinkButton.razor20
-rw-r--r--MatrixRoomUtils.Web/Shared/SimpleComponents/StringListEditor.razor29
-rw-r--r--MatrixRoomUtils.Web/Shared/SimpleComponents/ToggleSlider.razor72
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor3
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor10
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor1
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor5
-rw-r--r--MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor1
-rw-r--r--MatrixRoomUtils.Web/Shared/UserListItem.razor2
-rw-r--r--MatrixRoomUtils.Web/_Imports.razor2
-rwxr-xr-xMatrixRoomUtils.sln101
-rw-r--r--MatrixRoomUtils.sln.DotSettings.user7
m---------MxApiExtensions0
-rwxr-xr-xdeploy.sh2
-rw-r--r--flake.lock16
-rw-r--r--flake.nix111
65 files changed, 500 insertions, 2328 deletions
diff --git a/.editorconfig b/.editorconfig
index 35fa20d..501ee68 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -6,6 +6,7 @@ trim_trailing_whitespace = true
 insert_final_newline = true
 indent_style = space
 indent_size = 4
+tab_width = 4
 
 # Microsoft .NET properties
 csharp_indent_braces = false
@@ -468,30 +469,7 @@ resharper_can_use_global_alias = true
 resharper_configure_await_analysis_mode = disabled
 resharper_continuous_indent_multiplier = 1
 resharper_continuous_line_indent = single
-resharper_cpp_align_multiline_argument = true
-resharper_cpp_align_multiline_binary_expressions_chain = false
-resharper_cpp_align_multiline_calls_chain = true
-resharper_cpp_align_multiline_extends_list = true
-resharper_cpp_align_multiline_for_stmt = true
-resharper_cpp_align_multiline_parameter = true
-resharper_cpp_align_multiple_declaration = true
-resharper_cpp_allow_far_alignment = false
-resharper_cpp_anonymous_method_declaration_braces = next_line
-resharper_cpp_case_block_braces = next_line_shifted_2
-resharper_cpp_empty_block_style = multiline
-resharper_cpp_indent_switch_labels = false
-resharper_cpp_insert_final_newline = true
-resharper_cpp_invocable_declaration_braces = next_line
-resharper_cpp_keep_blank_lines_in_code = 2
-resharper_cpp_keep_blank_lines_in_declarations = 2
-resharper_cpp_max_line_length = 180
-resharper_cpp_new_line_before_while = true
-resharper_cpp_other_braces = next_line
-resharper_cpp_space_after_unary_operator = false
-resharper_cpp_space_around_binary_operator = true
-resharper_cpp_type_declaration_braces = next_line
-resharper_cpp_wrap_lines = true
-resharper_csharp_align_multiline_argument = false
+public virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualresharper_csharp_align_multiline_argument = false
 resharper_csharp_align_multiline_binary_expressions_chain = true
 resharper_csharp_align_multiline_calls_chain = false
 resharper_csharp_align_multiline_expression = false
@@ -867,24 +845,7 @@ resharper_use_indents_from_main_language_in_file = true
 resharper_use_indent_from_previous_element = true
 resharper_use_indent_from_vs = false
 resharper_use_roslyn_logic_for_evident_types = false
-resharper_vb_align_multiline_argument = true
-resharper_vb_align_multiline_expression = true
-resharper_vb_align_multiline_parameter = true
-resharper_vb_align_multiple_declaration = true
-resharper_vb_allow_far_alignment = false
-resharper_vb_insert_final_newline = false
-resharper_vb_keep_blank_lines_in_code = 2
-resharper_vb_keep_blank_lines_in_declarations = 2
-resharper_vb_max_line_length = 180
-resharper_vb_place_field_attribute_on_same_line = true
-resharper_vb_place_method_attribute_on_same_line = false
-resharper_vb_place_type_attribute_on_same_line = false
-resharper_vb_prefer_qualified_reference = false
-resharper_vb_space_after_unary_operator = true
-resharper_vb_space_around_multiplicative_op = false
-resharper_vb_stick_comment = true
-resharper_vb_wrap_lines = true
-resharper_wrap_after_binary_opsign = true
+public virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualresharper_wrap_after_binary_opsign = true
 resharper_wrap_after_declaration_lpar = false
 resharper_wrap_after_dot = false
 resharper_wrap_after_dot_in_method_calls = false
@@ -1113,1536 +1074,7 @@ resharper_convert_to_vb_auto_property_with_private_setter_highlighting = hint
 resharper_convert_type_check_pattern_to_null_check_highlighting = warning
 resharper_convert_type_check_to_null_check_highlighting = warning
 resharper_co_variant_array_conversion_highlighting = warning
-resharper_cpp_abstract_class_without_specifier_highlighting = warning
-resharper_cpp_abstract_final_class_highlighting = warning
-resharper_cpp_abstract_virtual_function_call_in_ctor_highlighting = error
-resharper_cpp_access_specifier_with_no_declarations_highlighting = suggestion
-resharper_cpp_assigned_value_is_never_used_highlighting = warning
-resharper_cpp_awaiter_type_is_not_class_highlighting = warning
-resharper_cpp_bad_angle_brackets_spaces_highlighting = none
-resharper_cpp_bad_braces_spaces_highlighting = none
-resharper_cpp_bad_child_statement_indent_highlighting = none
-resharper_cpp_bad_colon_spaces_highlighting = none
-resharper_cpp_bad_comma_spaces_highlighting = none
-resharper_cpp_bad_control_braces_indent_highlighting = none
-resharper_cpp_bad_control_braces_line_breaks_highlighting = none
-resharper_cpp_bad_declaration_braces_indent_highlighting = none
-resharper_cpp_bad_declaration_braces_line_breaks_highlighting = none
-resharper_cpp_bad_empty_braces_line_breaks_highlighting = none
-resharper_cpp_bad_expression_braces_indent_highlighting = none
-resharper_cpp_bad_expression_braces_line_breaks_highlighting = none
-resharper_cpp_bad_indent_highlighting = none
-resharper_cpp_bad_list_line_breaks_highlighting = none
-resharper_cpp_bad_member_access_spaces_highlighting = none
-resharper_cpp_bad_namespace_braces_indent_highlighting = none
-resharper_cpp_bad_parens_line_breaks_highlighting = none
-resharper_cpp_bad_parens_spaces_highlighting = none
-resharper_cpp_bad_semicolon_spaces_highlighting = none
-resharper_cpp_bad_spaces_after_keyword_highlighting = none
-resharper_cpp_bad_square_brackets_spaces_highlighting = none
-resharper_cpp_bad_switch_braces_indent_highlighting = none
-resharper_cpp_bad_symbol_spaces_highlighting = none
-resharper_cpp_boolean_increment_expression_highlighting = warning
-resharper_cpp_boost_format_bad_code_highlighting = warning
-resharper_cpp_boost_format_legacy_code_highlighting = suggestion
-resharper_cpp_boost_format_mixed_args_highlighting = error
-resharper_cpp_boost_format_too_few_args_highlighting = error
-resharper_cpp_boost_format_too_many_args_highlighting = warning
-resharper_cpp_clang_tidy_abseil_cleanup_ctad_highlighting = none
-resharper_cpp_clang_tidy_abseil_duration_addition_highlighting = none
-resharper_cpp_clang_tidy_abseil_duration_comparison_highlighting = none
-resharper_cpp_clang_tidy_abseil_duration_conversion_cast_highlighting = none
-resharper_cpp_clang_tidy_abseil_duration_division_highlighting = none
-resharper_cpp_clang_tidy_abseil_duration_factory_float_highlighting = none
-resharper_cpp_clang_tidy_abseil_duration_factory_scale_highlighting = none
-resharper_cpp_clang_tidy_abseil_duration_subtraction_highlighting = none
-resharper_cpp_clang_tidy_abseil_duration_unnecessary_conversion_highlighting = none
-resharper_cpp_clang_tidy_abseil_faster_strsplit_delimiter_highlighting = none
-resharper_cpp_clang_tidy_abseil_no_internal_dependencies_highlighting = none
-resharper_cpp_clang_tidy_abseil_no_namespace_highlighting = none
-resharper_cpp_clang_tidy_abseil_redundant_strcat_calls_highlighting = none
-resharper_cpp_clang_tidy_abseil_string_find_startswith_highlighting = none
-resharper_cpp_clang_tidy_abseil_string_find_str_contains_highlighting = none
-resharper_cpp_clang_tidy_abseil_str_cat_append_highlighting = none
-resharper_cpp_clang_tidy_abseil_time_comparison_highlighting = none
-resharper_cpp_clang_tidy_abseil_time_subtraction_highlighting = none
-resharper_cpp_clang_tidy_abseil_upgrade_duration_conversions_highlighting = none
-resharper_cpp_clang_tidy_altera_id_dependent_backward_branch_highlighting = none
-resharper_cpp_clang_tidy_altera_kernel_name_restriction_highlighting = none
-resharper_cpp_clang_tidy_altera_single_work_item_barrier_highlighting = none
-resharper_cpp_clang_tidy_altera_struct_pack_align_highlighting = none
-resharper_cpp_clang_tidy_altera_unroll_loops_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_accept4_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_accept_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_creat_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_dup_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_epoll_create1_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_epoll_create_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_fopen_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_inotify_init1_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_inotify_init_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_memfd_create_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_open_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_pipe2_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_pipe_highlighting = none
-resharper_cpp_clang_tidy_android_cloexec_socket_highlighting = none
-resharper_cpp_clang_tidy_android_comparison_in_temp_failure_retry_highlighting = none
-resharper_cpp_clang_tidy_boost_use_to_string_highlighting = suggestion
-resharper_cpp_clang_tidy_bugprone_argument_comment_highlighting = suggestion
-resharper_cpp_clang_tidy_bugprone_assert_side_effect_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_assignment_in_if_condition_highlighting = none
-resharper_cpp_clang_tidy_bugprone_bad_signal_to_kill_thread_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_bool_pointer_implicit_conversion_highlighting = none
-resharper_cpp_clang_tidy_bugprone_branch_clone_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_copy_constructor_init_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_dangling_handle_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_dynamic_static_initializers_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_easily_swappable_parameters_highlighting = none
-resharper_cpp_clang_tidy_bugprone_exception_escape_highlighting = none
-resharper_cpp_clang_tidy_bugprone_fold_init_type_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_forwarding_reference_overload_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_forward_declaration_namespace_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_implicit_widening_of_multiplication_result_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_inaccurate_erase_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_incorrect_roundings_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_infinite_loop_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_integer_division_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_lambda_function_name_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_macro_parentheses_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_macro_repeated_side_effects_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_misplaced_operator_in_strlen_in_alloc_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_misplaced_pointer_arithmetic_in_alloc_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_misplaced_widening_cast_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_move_forwarding_reference_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_multiple_statement_macro_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_narrowing_conversions_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_not_null_terminated_result_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_no_escape_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_parent_virtual_call_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_posix_return_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_redundant_branch_condition_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_reserved_identifier_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_shared_ptr_array_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_signal_handler_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_signed_char_misuse_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_sizeof_container_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_sizeof_expression_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_spuriously_wake_up_functions_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_stringview_nullptr_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_string_constructor_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_string_integer_assignment_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_string_literal_with_embedded_nul_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_suspicious_enum_usage_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_suspicious_include_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_suspicious_memory_comparison_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_suspicious_memset_usage_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_suspicious_missing_comma_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_suspicious_semicolon_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_suspicious_string_compare_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_swapped_arguments_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_terminating_continue_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_throw_keyword_missing_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_too_small_loop_variable_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_unchecked_optional_access_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_undefined_memory_manipulation_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_undelegated_constructor_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_unhandled_exception_at_new_highlighting = none
-resharper_cpp_clang_tidy_bugprone_unhandled_self_assignment_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_unused_raii_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_unused_return_value_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_use_after_move_highlighting = warning
-resharper_cpp_clang_tidy_bugprone_virtual_near_miss_highlighting = suggestion
-resharper_cpp_clang_tidy_cert_con36_c_highlighting = none
-resharper_cpp_clang_tidy_cert_con54_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_dcl03_c_highlighting = none
-resharper_cpp_clang_tidy_cert_dcl16_c_highlighting = none
-resharper_cpp_clang_tidy_cert_dcl21_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_dcl37_c_highlighting = none
-resharper_cpp_clang_tidy_cert_dcl50_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_dcl51_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_dcl54_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_dcl58_cpp_highlighting = warning
-resharper_cpp_clang_tidy_cert_dcl59_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_env33_c_highlighting = none
-resharper_cpp_clang_tidy_cert_err09_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_err33_c_highlighting = warning
-resharper_cpp_clang_tidy_cert_err34_c_highlighting = suggestion
-resharper_cpp_clang_tidy_cert_err52_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_err58_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_err60_cpp_highlighting = warning
-resharper_cpp_clang_tidy_cert_err61_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_exp42_c_highlighting = none
-resharper_cpp_clang_tidy_cert_fio38_c_highlighting = none
-resharper_cpp_clang_tidy_cert_flp30_c_highlighting = warning
-resharper_cpp_clang_tidy_cert_flp37_c_highlighting = none
-resharper_cpp_clang_tidy_cert_mem57_cpp_highlighting = warning
-resharper_cpp_clang_tidy_cert_msc30_c_highlighting = none
-resharper_cpp_clang_tidy_cert_msc32_c_highlighting = none
-resharper_cpp_clang_tidy_cert_msc50_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_msc51_cpp_highlighting = warning
-resharper_cpp_clang_tidy_cert_oop11_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_oop54_cpp_highlighting = none
-resharper_cpp_clang_tidy_cert_oop57_cpp_highlighting = warning
-resharper_cpp_clang_tidy_cert_oop58_cpp_highlighting = warning
-resharper_cpp_clang_tidy_cert_pos44_c_highlighting = none
-resharper_cpp_clang_tidy_cert_pos47_c_highlighting = none
-resharper_cpp_clang_tidy_cert_sig30_c_highlighting = none
-resharper_cpp_clang_tidy_cert_str34_c_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_api_modeling_errno_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_api_modeling_google_g_test_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_api_modeling_llvm_cast_value_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_api_modeling_llvm_return_value_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_api_modeling_std_c_library_functions_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_api_modeling_trust_nonnull_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_api_modeling_trust_returns_nonnull_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_builtin_builtin_functions_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_builtin_no_return_functions_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_call_and_message_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_call_and_message_modeling_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_divide_zero_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_dynamic_type_propagation_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_nonnil_string_constants_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_non_null_param_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_null_dereference_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_stack_address_escape_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_stack_addr_escape_base_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_undefined_binary_operator_result_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_array_subscript_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_assign_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_branch_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_captured_block_variable_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_uninitialized_undef_return_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_core_vla_size_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_inner_pointer_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_move_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_new_delete_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_new_delete_leaks_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_placement_new_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_pure_virtual_call_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_self_assignment_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_smart_ptr_modeling_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_string_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_cplusplus_virtual_call_modeling_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_deadcode_dead_stores_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_fuchsia_handle_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_nullability_nullability_base_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_nullability_nullable_dereferenced_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_nullability_nullable_passed_to_nonnull_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_nullability_nullable_returned_from_nonnull_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_nullability_null_passed_to_nonnull_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_nullability_null_returned_from_nonnull_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_optin_cplusplus_uninitialized_object_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_optin_cplusplus_virtual_call_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_optin_mpi_mpi_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_optin_osx_cocoa_localizability_empty_localization_context_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_optin_osx_cocoa_localizability_non_localized_string_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_optin_osx_os_object_c_style_cast_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_optin_performance_gcd_antipattern_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_optin_performance_padding_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_optin_portability_unix_api_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_api_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_at_sync_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_autorelease_write_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_class_release_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_dealloc_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_incompatible_method_types_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_loops_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_missing_super_call_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_nil_arg_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_non_nil_return_value_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_ns_autorelease_pool_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_ns_error_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_obj_c_generics_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_retain_count_base_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_retain_count_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_run_loop_autorelease_leak_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_self_init_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_super_dealloc_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_unused_ivars_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_cocoa_variadic_method_types_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_cf_error_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_cf_number_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_cf_retain_release_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_containers_out_of_bounds_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_core_foundation_containers_pointer_sized_values_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_mig_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_ns_or_cf_error_deref_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_number_object_conversion_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_obj_c_property_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_os_object_retain_count_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_osx_sec_keychain_api_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_float_loop_counter_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_bcmp_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_bcopy_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_bzero_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_decode_value_of_obj_c_type_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_deprecated_or_unsafe_buffer_handling_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_getpw_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_gets_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_mkstemp_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_mktemp_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_rand_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_security_syntax_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_strcpy_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_unchecked_return_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_security_insecure_api_vfork_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_unix_api_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_unix_cstring_bad_size_arg_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_unix_cstring_c_string_modeling_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_unix_cstring_null_arg_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_unix_dynamic_memory_modeling_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_unix_malloc_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_unix_malloc_sizeof_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_unix_mismatched_deallocator_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_unix_vfork_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_valist_copy_to_self_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_valist_uninitialized_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_valist_unterminated_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_valist_valist_base_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_webkit_no_uncounted_member_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_webkit_ref_cntbl_base_virtual_dtor_highlighting = none
-resharper_cpp_clang_tidy_clang_analyzer_webkit_uncounted_lambda_captures_checker_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_absolute_value_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_abstract_final_class_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_abstract_vbase_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_address_of_packed_member_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_address_of_temporary_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_aix_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_align_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_alloca_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_alloca_with_align_alignof_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_always_inline_coroutine_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_delete_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_ellipsis_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_macro_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_member_template_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ambiguous_reversed_operator_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_analyzer_incompatible_plugin_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_anonymous_pack_parens_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_anon_enum_enum_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_arc_bridge_casts_disallowed_in_nonarc_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_arc_maybe_repeated_use_of_weak_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_arc_non_pod_memaccess_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_arc_perform_selector_leaks_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_arc_repeated_use_of_weak_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_arc_retain_cycles_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_arc_unsafe_retained_assign_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_argument_outside_range_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_argument_undefined_behaviour_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_array_bounds_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_array_bounds_pointer_arithmetic_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_array_parameter_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_asm_operand_widths_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_assign_enum_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_assume_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_atimport_in_framework_header_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_atomic_access_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_atomic_alignment_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_atomic_implicit_seq_cst_highlighting = suggestion
-resharper_cpp_clang_tidy_clang_diagnostic_atomic_memory_ordering_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_atomic_property_with_user_defined_accessor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_attribute_packed_for_bitfield_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_attribute_warning_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_at_protocol_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_auto_disable_vptr_sanitizer_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_auto_import_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_auto_storage_class_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_auto_var_id_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_availability_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_avr_rtlib_linking_quirks_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_backslash_newline_escape_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bad_function_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_binding_in_condition_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bind_to_temporary_copy_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bitfield_constant_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bitfield_enum_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bitfield_width_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bitwise_conditional_parentheses_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bitwise_instead_of_logical_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bitwise_op_parentheses_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bit_int_extension_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_block_capture_autoreleasing_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bool_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bool_operation_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_braced_scalar_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_branch_protection_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_bridge_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_builtin_assume_aligned_alignment_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_builtin_macro_redefined_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_builtin_memcpy_chk_size_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_builtin_requires_header_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_c11_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_c2x_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_c99_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_c99_designator_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_c99_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_called_once_parameter_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_call_to_pure_virtual_from_ctor_dtor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cast_align_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cast_calling_convention_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cast_function_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cast_of_sel_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cast_qual_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cast_qual_unrelated_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cf_string_literal_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_char_subscripts_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_clang_cl_pch_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_class_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_class_varargs_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cmse_union_leak_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_comma_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_comment_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_compare_distinct_pointer_types_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_completion_handler_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_complex_component_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_compound_token_split_by_macro_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_compound_token_split_by_space_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_compound_token_split_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_concepts_ts_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_conditional_type_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_conditional_uninitialized_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_config_macros_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_constant_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_constant_evaluated_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_constant_logical_operand_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_constexpr_not_const_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_consumed_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_coroutine_missing_unhandled_exception_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_covered_switch_default_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp11_compat_deprecated_writable_strings_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp11_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp11_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp11_compat_reserved_user_defined_literal_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp11_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp11_extra_semi_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp11_inline_namespace_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp11_long_long_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp11_narrowing_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp14_attribute_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp14_binary_literal_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp14_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp14_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp14_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp17_attribute_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp17_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp17_compat_mangling_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp17_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp17_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp20_attribute_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp20_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp20_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp20_designator_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp20_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp2a_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp2a_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp2b_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_bind_to_temporary_copy_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_extra_semi_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_local_type_template_args_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_compat_unnamed_type_template_args_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_compat_binary_literal_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_cpp14_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_cpp14_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_cpp14_cpp17_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp98_cpp11_cpp14_cpp17_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cpp_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cstring_format_directive_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ctad_maybe_unsupported_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_ctu_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_cuda_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_custom_atomic_properties_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_cxx_attribute_extension_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dangling_else_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dangling_field_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dangling_gsl_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dangling_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dangling_initializer_list_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_darwin_sdk_settings_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_date_time_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dealloc_in_category_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_debug_compression_unavailable_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_declaration_after_statement_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_defaulted_function_deleted_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_delegating_ctor_cycles_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_delete_abstract_non_virtual_dtor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_delete_incomplete_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_delete_non_abstract_non_virtual_dtor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_delete_non_virtual_dtor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_delimited_escape_sequence_extension_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_altivec_src_compat_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_anon_enum_enum_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_array_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_attributes_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_builtins_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_comma_subscript_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_copy_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_copy_with_dtor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_copy_with_user_provided_copy_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_copy_with_user_provided_dtor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_coroutine_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_declarations_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_dynamic_exception_spec_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_enum_compare_conditional_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_enum_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_enum_enum_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_enum_float_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_experimental_coroutine_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_implementations_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_increment_bool_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_non_prototype_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_objc_isa_usage_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_objc_pointer_introspection_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_objc_pointer_introspection_perform_selector_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_pragma_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_register_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_static_analyzer_flag_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_this_capture_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecated_volatile_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_deprecate_lax_vec_conv_all_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_direct_ivar_access_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_disabled_macro_expansion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_distributed_object_modifiers_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_division_by_zero_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dllexport_explicit_instantiation_decl_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dllimport_static_field_def_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dll_attribute_on_redeclaration_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_documentation_deprecated_sync_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_documentation_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_documentation_html_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_documentation_pedantic_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_documentation_unknown_command_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_dollar_in_identifier_extension_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_double_promotion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dtor_name_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dtor_typedef_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_duplicate_decl_specifier_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_duplicate_enum_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_duplicate_method_arg_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_duplicate_method_match_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_duplicate_protocol_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dynamic_class_memaccess_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_dynamic_exception_spec_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_embedded_directive_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_empty_body_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_empty_decomposition_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_empty_init_stmt_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_empty_translation_unit_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_encode_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_enum_compare_conditional_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_enum_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_enum_compare_switch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_enum_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_enum_enum_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_enum_float_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_enum_too_large_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_error_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_exceptions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_excess_initializers_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_exit_time_destructors_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_expansion_to_defined_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_explicit_initialize_call_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_explicit_ownership_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_export_unnamed_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_export_using_directive_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_extern_c_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_extern_initializer_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_extra_qualification_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_extra_semi_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_extra_semi_stmt_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_extra_tokens_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_final_dtor_non_final_class_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_final_macro_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_fixed_enum_extension_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_fixed_point_overflow_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_flag_enum_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_flexible_array_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_float_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_float_equal_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_float_overflow_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_float_zero_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_extra_args_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_insufficient_args_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_invalid_specifier_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_nonliteral_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_non_iso_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_pedantic_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_security_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_type_confusion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_format_zero_length_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_fortify_source_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_for_loop_analysis_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_four_char_constants_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_framework_include_private_from_public_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_frame_address_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_frame_larger_than_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_free_nonheap_object_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_function_def_in_objc_container_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_function_multiversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_future_attribute_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gcc_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_global_constructors_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_global_isel_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_alignof_expression_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_anonymous_struct_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_array_member_paren_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_auto_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_binary_literal_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_case_range_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_complex_integer_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_compound_literal_initializer_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_conditional_omitted_operand_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_designator_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_empty_initializer_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_empty_struct_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_flexible_array_initializer_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_flexible_array_union_member_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_folding_constant_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_imaginary_constant_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_include_next_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_inline_cpp_without_extern_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_label_as_value_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_line_marker_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_null_pointer_arithmetic_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_pointer_arith_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_redeclared_enum_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_statement_expression_from_macro_expansion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_statement_expression_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_static_float_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_string_literal_operator_template_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_union_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_variable_sized_type_not_at_end_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gnu_zero_variadic_macro_arguments_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_gpu_maybe_wrong_side_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_header_guard_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_header_hygiene_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_hip_only_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_hlsl_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_idiomatic_parentheses_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ignored_attributes_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_ignored_availability_without_sdk_settings_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_ignored_optimization_argument_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ignored_pragmas_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ignored_pragma_intrinsic_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ignored_pragma_optimize_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_ignored_qualifiers_highlighting = suggestion
-resharper_cpp_clang_tidy_clang_diagnostic_ignored_reference_qualifiers_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicitly_unsigned_literal_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_atomic_properties_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_const_int_float_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_conversion_floating_point_to_bool_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_exception_spec_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_fallthrough_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_fallthrough_per_function_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_fixed_point_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_float_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_function_declaration_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_int_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_int_float_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_int_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_implicit_retain_self_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_import_preprocessor_directive_pedantic_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_inaccessible_base_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_include_next_absolute_path_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_include_next_outside_header_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incompatible_exception_spec_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incompatible_function_pointer_types_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incompatible_library_redeclaration_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incompatible_ms_struct_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incompatible_pointer_types_discards_qualifiers_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incompatible_pointer_types_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incompatible_property_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incompatible_sysroot_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incomplete_framework_module_declaration_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incomplete_implementation_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incomplete_module_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incomplete_setjmp_declaration_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_incomplete_umbrella_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_inconsistent_dllimport_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_inconsistent_missing_destructor_override_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_inconsistent_missing_override_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_increment_bool_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_independent_class_attribute_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_infinite_recursion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_initializer_overrides_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_injected_class_name_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_inline_asm_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_inline_namespace_reopened_noninline_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_inline_new_delete_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_instantiation_after_specialization_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_integer_overflow_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_interrupt_service_routine_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_int_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_int_in_bool_context_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_int_to_pointer_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_int_to_void_pointer_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_constexpr_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_iboutlet_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_initializer_from_system_header_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_ios_deployment_target_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_noreturn_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_no_builtin_names_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_offsetof_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_or_nonexistent_directory_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_partial_specialization_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_pp_token_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_source_encoding_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_token_paste_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_invalid_utf8_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_jump_seh_finally_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_keyword_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_keyword_macro_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_knr_promoted_parameter_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_language_extension_token_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_large_by_value_copy_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_linker_warnings_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_literal_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_literal_range_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_local_type_template_args_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_logical_not_parentheses_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_logical_op_parentheses_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_long_long_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_macro_redefined_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_main_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_main_return_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_malformed_warning_check_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_many_braces_around_scalar_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_max_tokens_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_max_unsigned_zero_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_memset_transposed_args_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_memsize_comparison_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_method_signatures_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_abstract_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_anon_tag_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_charize_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_comment_paste_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_const_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_cpp_macro_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_default_arg_redefinition_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_drectve_section_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_end_of_file_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_enum_forward_reference_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_enum_value_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_exception_spec_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_exists_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_explicit_constructor_call_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_extra_qualification_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_fixed_enum_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_flexible_array_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_goto_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_inaccessible_base_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_include_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_mutable_reference_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_pure_definition_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_redeclare_static_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_sealed_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_static_assert_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_template_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_template_shadow_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_union_member_reference_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_unqualified_friend_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_using_decl_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_microsoft_void_pseudo_dtor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_misexpect_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_misleading_indentation_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_mismatched_new_delete_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_mismatched_parameter_types_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_mismatched_return_types_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_mismatched_tags_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_braces_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_constinit_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_declarations_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_exception_spec_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_field_initializers_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_method_return_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_noescape_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_noreturn_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_prototypes_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_missing_prototype_for_cc_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_selector_name_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_sysroot_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_missing_variable_declarations_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_misspelled_assumption_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_modules_ambiguous_internal_linkage_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_modules_import_nested_redundant_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_module_conflict_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_module_file_config_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_module_file_extension_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_module_import_in_extern_c_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_msvc_not_found_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_multichar_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_multiple_move_vbase_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nested_anon_types_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_newline_eof_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_new_returns_null_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_noderef_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nonnull_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nonportable_include_path_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_nonportable_system_include_path_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_nonportable_vector_initialization_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nontrivial_memaccess_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_non_c_typedef_for_linkage_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_non_literal_null_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_non_modular_include_in_framework_module_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_non_modular_include_in_module_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_non_pod_varargs_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_non_power_of_two_alignment_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_non_virtual_dtor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nsconsumed_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nsreturns_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ns_object_attribute_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nullability_completeness_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nullability_completeness_on_arrays_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nullability_declspec_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nullability_extension_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nullability_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nullability_inferred_on_nested_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_nullable_to_nonnull_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_null_arithmetic_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_null_character_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_null_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_null_dereference_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_null_pointer_arithmetic_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_null_pointer_subtraction_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_odr_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_old_style_cast_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_opencl_unsupported_rgba_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_openmp51_extensions_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_openmp_clauses_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_openmp_loop_form_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_openmp_mapping_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_openmp_target_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_option_ignored_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_ordered_compare_function_pointers_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_out_of_line_declaration_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_out_of_scope_function_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_overlength_strings_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_overloaded_shift_op_parentheses_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_overloaded_virtual_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_override_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_override_module_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_overriding_method_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_overriding_t_option_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_over_aligned_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_packed_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_padded_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_parentheses_equality_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_parentheses_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pass_failed_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pch_date_time_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pedantic_core_features_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pedantic_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pedantic_macros_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pessimizing_move_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pointer_arith_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pointer_bool_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pointer_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pointer_integer_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pointer_sign_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pointer_to_enum_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pointer_to_int_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pointer_type_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_poison_system_directories_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_potentially_evaluated_expression_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pragmas_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pragma_clang_attribute_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pragma_messages_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pragma_once_outside_header_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pragma_pack_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pragma_pack_suspicious_include_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pragma_system_header_outside_header_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_predefined_identifier_outside_function_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_pre_c2x_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_c2x_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp14_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp14_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp17_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp17_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp20_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp20_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp2b_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_cpp2b_compat_pedantic_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_pre_openmp51_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_private_extern_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_private_header_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_private_module_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_profile_instr_missing_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_profile_instr_out_of_date_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_profile_instr_unprofiled_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_property_access_dot_syntax_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_property_attribute_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_protocol_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_protocol_property_synthesis_ambiguity_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_psabi_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_qualified_void_return_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_quoted_include_in_framework_header_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_range_loop_analysis_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_range_loop_bind_reference_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_range_loop_construct_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_readonly_iboutlet_property_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_receiver_expr_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_receiver_forward_class_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_redeclared_class_member_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_redundant_consteval_if_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_redundant_move_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_redundant_parens_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_register_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_reinterpret_base_class_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_reorder_ctor_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_reorder_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_reorder_init_list_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_requires_super_attribute_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_reserved_identifier_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_reserved_id_macro_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_reserved_macro_identifier_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_reserved_user_defined_literal_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_restrict_expansion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_retained_language_linkage_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_return_stack_address_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_return_std_move_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_return_type_c_linkage_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_return_type_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_rewrite_not_bool_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_sarif_format_unstable_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_section_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_selector_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_selector_type_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_self_assign_field_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_self_assign_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_self_assign_overloaded_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_self_move_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_semicolon_before_method_body_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_sentinel_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_serialized_diagnostics_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shadow_field_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shadow_field_in_constructor_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_shadow_field_in_constructor_modified_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_shadow_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shadow_ivar_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shadow_uncaptured_local_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_shift_count_negative_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shift_count_overflow_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shift_negative_value_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shift_op_parentheses_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shift_overflow_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shift_sign_overflow_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_shorten64_to32_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_signed_enum_bitfield_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_signed_unsigned_wchar_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_sign_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_sign_conversion_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_sizeof_array_argument_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_sizeof_array_decay_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_sizeof_array_div_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_sizeof_pointer_div_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_sizeof_pointer_memaccess_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_slash_u_filename_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_slh_asm_goto_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_sometimes_uninitialized_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_source_uses_openmp_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_spirv_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_spir_compat_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_static_float_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_static_inline_explicit_instantiation_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_static_in_inline_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_static_local_in_inline_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_static_self_init_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_stdlibcxx_not_found_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_strict_prototypes_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_strict_selector_match_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_string_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_string_concatenation_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_string_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_string_plus_char_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_string_plus_int_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_strlcpy_strlcat_size_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_strncat_size_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_suggest_destructor_override_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_suggest_override_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_super_class_method_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_suspicious_bzero_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_switch_bool_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_switch_enum_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_switch_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_sync_fetch_and_nand_semantics_changed_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_target_clones_mixed_specifiers_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_bitwise_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_constant_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_constant_in_range_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_constant_out_of_range_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_objc_bool_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_overlap_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_pointer_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_type_limit_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_undefined_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_unsigned_char_zero_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_unsigned_enum_zero_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_unsigned_zero_compare_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_tautological_value_range_compare_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_tentative_definition_incomplete_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_analysis_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_attributes_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_beta_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_negative_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_precise_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_reference_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_thread_safety_verbose_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_trigraphs_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_typedef_redefinition_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_typename_missing_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_type_safety_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unable_to_open_stats_file_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unaligned_access_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unaligned_qualifier_implicit_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unavailable_declarations_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undeclared_selector_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undefined_bool_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undefined_func_template_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undefined_inline_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undefined_internal_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undefined_internal_type_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undefined_reinterpret_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undefined_var_template_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undef_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_undef_prefix_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_underaligned_exception_object_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unevaluated_expression_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unguarded_availability_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unguarded_availability_new_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unicode_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unicode_homoglyph_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unicode_whitespace_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unicode_zero_width_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_uninitialized_const_reference_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_uninitialized_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unknown_argument_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unknown_attributes_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unknown_cuda_version_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unknown_directives_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unknown_escape_sequence_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unknown_pragmas_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unknown_sanitizers_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unknown_warning_option_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unnamed_type_template_args_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unneeded_internal_declaration_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unneeded_member_function_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unqualified_std_cast_call_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_break_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_fallthrough_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_generic_assoc_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_loop_increment_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unreachable_code_return_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsequenced_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_abi_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_abs_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_availability_guard_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_cb_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_dll_base_class_template_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_friend_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_gpopt_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_nan_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_target_opt_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unsupported_visibility_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unusable_partial_specialization_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_but_set_parameter_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unused_but_set_variable_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unused_comparison_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_const_variable_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_exception_parameter_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_function_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_getter_return_value_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_label_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_lambda_capture_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unused_local_typedef_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unused_macros_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_member_function_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_parameter_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unused_private_field_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_property_ivar_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_result_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unused_template_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_value_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_unused_variable_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_unused_volatile_lvalue_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_used_but_marked_unused_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_user_defined_literals_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_user_defined_warnings_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_varargs_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_variadic_macros_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_vector_conversion_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_vec_elem_size_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_vexing_parse_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_visibility_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_vla_extension_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_vla_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_void_pointer_to_enum_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_void_pointer_to_int_cast_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_void_ptr_dereference_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_warnings_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_wasm_exception_spec_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_weak_template_vtables_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_weak_vtables_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_writable_strings_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_xor_used_as_pow_highlighting = warning
-resharper_cpp_clang_tidy_clang_diagnostic_zero_as_null_pointer_constant_highlighting = none
-resharper_cpp_clang_tidy_clang_diagnostic_zero_length_array_highlighting = warning
-resharper_cpp_clang_tidy_concurrency_mt_unsafe_highlighting = warning
-resharper_cpp_clang_tidy_concurrency_thread_canceltype_asynchronous_highlighting = warning
-resharper_cpp_clang_tidy_cppcoreguidelines_avoid_c_arrays_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_avoid_goto_highlighting = warning
-resharper_cpp_clang_tidy_cppcoreguidelines_avoid_magic_numbers_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_avoid_non_const_global_variables_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_c_copy_assignment_signature_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_explicit_virtual_functions_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_init_variables_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_interfaces_global_init_highlighting = warning
-resharper_cpp_clang_tidy_cppcoreguidelines_macro_usage_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_narrowing_conversions_highlighting = warning
-resharper_cpp_clang_tidy_cppcoreguidelines_non_private_member_variables_in_classes_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_no_malloc_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_owning_memory_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_prefer_member_initializer_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_bounds_array_to_pointer_decay_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_bounds_constant_array_index_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_bounds_pointer_arithmetic_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_const_cast_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_cstyle_cast_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_member_init_highlighting = warning
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_reinterpret_cast_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_static_cast_downcast_highlighting = suggestion
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_union_access_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_pro_type_vararg_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_slicing_highlighting = none
-resharper_cpp_clang_tidy_cppcoreguidelines_special_member_functions_highlighting = suggestion
-resharper_cpp_clang_tidy_cppcoreguidelines_virtual_class_destructor_highlighting = none
-resharper_cpp_clang_tidy_darwin_avoid_spinlock_highlighting = none
-resharper_cpp_clang_tidy_darwin_dispatch_once_nonstatic_highlighting = none
-resharper_cpp_clang_tidy_fuchsia_default_arguments_calls_highlighting = none
-resharper_cpp_clang_tidy_fuchsia_default_arguments_declarations_highlighting = none
-resharper_cpp_clang_tidy_fuchsia_header_anon_namespaces_highlighting = none
-resharper_cpp_clang_tidy_fuchsia_multiple_inheritance_highlighting = none
-resharper_cpp_clang_tidy_fuchsia_overloaded_operator_highlighting = none
-resharper_cpp_clang_tidy_fuchsia_statically_constructed_objects_highlighting = none
-resharper_cpp_clang_tidy_fuchsia_trailing_return_highlighting = none
-resharper_cpp_clang_tidy_fuchsia_virtual_inheritance_highlighting = none
-resharper_cpp_clang_tidy_google_build_explicit_make_pair_highlighting = none
-resharper_cpp_clang_tidy_google_build_namespaces_highlighting = none
-resharper_cpp_clang_tidy_google_build_using_namespace_highlighting = none
-resharper_cpp_clang_tidy_google_default_arguments_highlighting = none
-resharper_cpp_clang_tidy_google_explicit_constructor_highlighting = none
-resharper_cpp_clang_tidy_google_global_names_in_headers_highlighting = none
-resharper_cpp_clang_tidy_google_objc_avoid_nsobject_new_highlighting = none
-resharper_cpp_clang_tidy_google_objc_avoid_throwing_exception_highlighting = none
-resharper_cpp_clang_tidy_google_objc_function_naming_highlighting = none
-resharper_cpp_clang_tidy_google_objc_global_variable_declaration_highlighting = none
-resharper_cpp_clang_tidy_google_readability_avoid_underscore_in_googletest_name_highlighting = none
-resharper_cpp_clang_tidy_google_readability_braces_around_statements_highlighting = none
-resharper_cpp_clang_tidy_google_readability_casting_highlighting = none
-resharper_cpp_clang_tidy_google_readability_function_size_highlighting = none
-resharper_cpp_clang_tidy_google_readability_namespace_comments_highlighting = none
-resharper_cpp_clang_tidy_google_readability_todo_highlighting = none
-resharper_cpp_clang_tidy_google_runtime_int_highlighting = none
-resharper_cpp_clang_tidy_google_runtime_operator_highlighting = warning
-resharper_cpp_clang_tidy_google_upgrade_googletest_case_highlighting = suggestion
-resharper_cpp_clang_tidy_hicpp_avoid_c_arrays_highlighting = none
-resharper_cpp_clang_tidy_hicpp_avoid_goto_highlighting = warning
-resharper_cpp_clang_tidy_hicpp_braces_around_statements_highlighting = none
-resharper_cpp_clang_tidy_hicpp_deprecated_headers_highlighting = none
-resharper_cpp_clang_tidy_hicpp_exception_baseclass_highlighting = suggestion
-resharper_cpp_clang_tidy_hicpp_explicit_conversions_highlighting = none
-resharper_cpp_clang_tidy_hicpp_function_size_highlighting = none
-resharper_cpp_clang_tidy_hicpp_invalid_access_moved_highlighting = none
-resharper_cpp_clang_tidy_hicpp_member_init_highlighting = none
-resharper_cpp_clang_tidy_hicpp_move_const_arg_highlighting = none
-resharper_cpp_clang_tidy_hicpp_multiway_paths_covered_highlighting = warning
-resharper_cpp_clang_tidy_hicpp_named_parameter_highlighting = none
-resharper_cpp_clang_tidy_hicpp_new_delete_operators_highlighting = none
-resharper_cpp_clang_tidy_hicpp_noexcept_move_highlighting = none
-resharper_cpp_clang_tidy_hicpp_no_array_decay_highlighting = none
-resharper_cpp_clang_tidy_hicpp_no_assembler_highlighting = none
-resharper_cpp_clang_tidy_hicpp_no_malloc_highlighting = none
-resharper_cpp_clang_tidy_hicpp_signed_bitwise_highlighting = none
-resharper_cpp_clang_tidy_hicpp_special_member_functions_highlighting = none
-resharper_cpp_clang_tidy_hicpp_static_assert_highlighting = none
-resharper_cpp_clang_tidy_hicpp_undelegated_constructor_highlighting = none
-resharper_cpp_clang_tidy_hicpp_uppercase_literal_suffix_highlighting = none
-resharper_cpp_clang_tidy_hicpp_use_auto_highlighting = none
-resharper_cpp_clang_tidy_hicpp_use_emplace_highlighting = none
-resharper_cpp_clang_tidy_hicpp_use_equals_default_highlighting = none
-resharper_cpp_clang_tidy_hicpp_use_equals_delete_highlighting = none
-resharper_cpp_clang_tidy_hicpp_use_noexcept_highlighting = none
-resharper_cpp_clang_tidy_hicpp_use_nullptr_highlighting = none
-resharper_cpp_clang_tidy_hicpp_use_override_highlighting = none
-resharper_cpp_clang_tidy_hicpp_vararg_highlighting = none
-resharper_cpp_clang_tidy_highlighting_highlighting = suggestion
-resharper_cpp_clang_tidy_linuxkernel_must_check_errs_highlighting = warning
-resharper_cpp_clang_tidy_llvmlibc_callee_namespace_highlighting = none
-resharper_cpp_clang_tidy_llvmlibc_implementation_in_namespace_highlighting = none
-resharper_cpp_clang_tidy_llvmlibc_restrict_system_libc_headers_highlighting = none
-resharper_cpp_clang_tidy_llvm_else_after_return_highlighting = none
-resharper_cpp_clang_tidy_llvm_header_guard_highlighting = none
-resharper_cpp_clang_tidy_llvm_include_order_highlighting = none
-resharper_cpp_clang_tidy_llvm_namespace_comment_highlighting = none
-resharper_cpp_clang_tidy_llvm_prefer_isa_or_dyn_cast_in_conditionals_highlighting = none
-resharper_cpp_clang_tidy_llvm_prefer_register_over_unsigned_highlighting = suggestion
-resharper_cpp_clang_tidy_llvm_qualified_auto_highlighting = none
-resharper_cpp_clang_tidy_llvm_twine_local_highlighting = none
-resharper_cpp_clang_tidy_misc_confusable_identifiers_highlighting = warning
-resharper_cpp_clang_tidy_misc_const_correctness_highlighting = none
-resharper_cpp_clang_tidy_misc_definitions_in_headers_highlighting = none
-resharper_cpp_clang_tidy_misc_misleading_bidirectional_highlighting = warning
-resharper_cpp_clang_tidy_misc_misleading_identifier_highlighting = warning
-resharper_cpp_clang_tidy_misc_misplaced_const_highlighting = none
-resharper_cpp_clang_tidy_misc_new_delete_overloads_highlighting = warning
-resharper_cpp_clang_tidy_misc_non_copyable_objects_highlighting = warning
-resharper_cpp_clang_tidy_misc_non_private_member_variables_in_classes_highlighting = none
-resharper_cpp_clang_tidy_misc_no_recursion_highlighting = none
-resharper_cpp_clang_tidy_misc_redundant_expression_highlighting = warning
-resharper_cpp_clang_tidy_misc_static_assert_highlighting = suggestion
-resharper_cpp_clang_tidy_misc_throw_by_value_catch_by_reference_highlighting = warning
-resharper_cpp_clang_tidy_misc_unconventional_assign_operator_highlighting = warning
-resharper_cpp_clang_tidy_misc_uniqueptr_reset_release_highlighting = suggestion
-resharper_cpp_clang_tidy_misc_unused_alias_decls_highlighting = suggestion
-resharper_cpp_clang_tidy_misc_unused_parameters_highlighting = none
-resharper_cpp_clang_tidy_misc_unused_using_decls_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_avoid_bind_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_avoid_c_arrays_highlighting = none
-resharper_cpp_clang_tidy_modernize_concat_nested_namespaces_highlighting = none
-resharper_cpp_clang_tidy_modernize_deprecated_headers_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_deprecated_ios_base_aliases_highlighting = warning
-resharper_cpp_clang_tidy_modernize_loop_convert_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_macro_to_enum_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_make_shared_highlighting = none
-resharper_cpp_clang_tidy_modernize_make_unique_highlighting = none
-resharper_cpp_clang_tidy_modernize_pass_by_value_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_raw_string_literal_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_redundant_void_arg_highlighting = none
-resharper_cpp_clang_tidy_modernize_replace_auto_ptr_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_replace_disallow_copy_and_assign_macro_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_replace_random_shuffle_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_return_braced_init_list_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_shrink_to_fit_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_unary_static_assert_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_use_auto_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_use_bool_literals_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_use_default_member_init_highlighting = none
-resharper_cpp_clang_tidy_modernize_use_emplace_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_use_equals_default_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_use_equals_delete_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_use_nodiscard_highlighting = hint
-resharper_cpp_clang_tidy_modernize_use_noexcept_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_use_nullptr_highlighting = none
-resharper_cpp_clang_tidy_modernize_use_override_highlighting = none
-resharper_cpp_clang_tidy_modernize_use_trailing_return_type_highlighting = none
-resharper_cpp_clang_tidy_modernize_use_transparent_functors_highlighting = suggestion
-resharper_cpp_clang_tidy_modernize_use_uncaught_exceptions_highlighting = warning
-resharper_cpp_clang_tidy_modernize_use_using_highlighting = none
-resharper_cpp_clang_tidy_mpi_buffer_deref_highlighting = warning
-resharper_cpp_clang_tidy_mpi_type_mismatch_highlighting = warning
-resharper_cpp_clang_tidy_objc_assert_equals_highlighting = warning
-resharper_cpp_clang_tidy_objc_avoid_nserror_init_highlighting = warning
-resharper_cpp_clang_tidy_objc_dealloc_in_category_highlighting = warning
-resharper_cpp_clang_tidy_objc_forbidden_subclassing_highlighting = warning
-resharper_cpp_clang_tidy_objc_missing_hash_highlighting = warning
-resharper_cpp_clang_tidy_objc_nsinvocation_argument_lifetime_highlighting = warning
-resharper_cpp_clang_tidy_objc_property_declaration_highlighting = warning
-resharper_cpp_clang_tidy_objc_super_self_highlighting = warning
-resharper_cpp_clang_tidy_openmp_exception_escape_highlighting = warning
-resharper_cpp_clang_tidy_openmp_use_default_none_highlighting = warning
-resharper_cpp_clang_tidy_performance_faster_string_find_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_for_range_copy_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_implicit_conversion_in_loop_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_inefficient_algorithm_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_inefficient_string_concatenation_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_inefficient_vector_operation_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_move_constructor_init_highlighting = warning
-resharper_cpp_clang_tidy_performance_move_const_arg_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_noexcept_move_constructor_highlighting = none
-resharper_cpp_clang_tidy_performance_no_automatic_move_highlighting = warning
-resharper_cpp_clang_tidy_performance_no_int_to_ptr_highlighting = warning
-resharper_cpp_clang_tidy_performance_trivially_destructible_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_type_promotion_in_math_fn_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_unnecessary_copy_initialization_highlighting = suggestion
-resharper_cpp_clang_tidy_performance_unnecessary_value_param_highlighting = suggestion
-resharper_cpp_clang_tidy_portability_restrict_system_includes_highlighting = none
-resharper_cpp_clang_tidy_portability_simd_intrinsics_highlighting = none
-resharper_cpp_clang_tidy_portability_std_allocator_const_highlighting = warning
-resharper_cpp_clang_tidy_readability_avoid_const_params_in_decls_highlighting = none
-resharper_cpp_clang_tidy_readability_braces_around_statements_highlighting = none
-resharper_cpp_clang_tidy_readability_const_return_type_highlighting = none
-resharper_cpp_clang_tidy_readability_container_contains_highlighting = none
-resharper_cpp_clang_tidy_readability_container_data_pointer_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_container_size_empty_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_convert_member_functions_to_static_highlighting = none
-resharper_cpp_clang_tidy_readability_delete_null_pointer_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_duplicate_include_highlighting = none
-resharper_cpp_clang_tidy_readability_else_after_return_highlighting = none
-resharper_cpp_clang_tidy_readability_function_cognitive_complexity_highlighting = none
-resharper_cpp_clang_tidy_readability_function_size_highlighting = none
-resharper_cpp_clang_tidy_readability_identifier_length_highlighting = none
-resharper_cpp_clang_tidy_readability_identifier_naming_highlighting = none
-resharper_cpp_clang_tidy_readability_implicit_bool_conversion_highlighting = none
-resharper_cpp_clang_tidy_readability_inconsistent_declaration_parameter_name_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_isolate_declaration_highlighting = none
-resharper_cpp_clang_tidy_readability_magic_numbers_highlighting = none
-resharper_cpp_clang_tidy_readability_make_member_function_const_highlighting = none
-resharper_cpp_clang_tidy_readability_misleading_indentation_highlighting = none
-resharper_cpp_clang_tidy_readability_misplaced_array_index_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_named_parameter_highlighting = none
-resharper_cpp_clang_tidy_readability_non_const_parameter_highlighting = none
-resharper_cpp_clang_tidy_readability_qualified_auto_highlighting = none
-resharper_cpp_clang_tidy_readability_redundant_access_specifiers_highlighting = none
-resharper_cpp_clang_tidy_readability_redundant_control_flow_highlighting = none
-resharper_cpp_clang_tidy_readability_redundant_declaration_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_redundant_function_ptr_dereference_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_redundant_member_init_highlighting = none
-resharper_cpp_clang_tidy_readability_redundant_preprocessor_highlighting = warning
-resharper_cpp_clang_tidy_readability_redundant_smartptr_get_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_redundant_string_cstr_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_redundant_string_init_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_simplify_boolean_expr_highlighting = none
-resharper_cpp_clang_tidy_readability_simplify_subscript_expr_highlighting = warning
-resharper_cpp_clang_tidy_readability_static_accessed_through_instance_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_static_definition_in_anonymous_namespace_highlighting = none
-resharper_cpp_clang_tidy_readability_string_compare_highlighting = warning
-resharper_cpp_clang_tidy_readability_suspicious_call_argument_highlighting = warning
-resharper_cpp_clang_tidy_readability_uniqueptr_delete_release_highlighting = suggestion
-resharper_cpp_clang_tidy_readability_uppercase_literal_suffix_highlighting = none
-resharper_cpp_clang_tidy_readability_use_anyofallof_highlighting = suggestion
-resharper_cpp_clang_tidy_zircon_temporary_objects_highlighting = none
-resharper_cpp_class_can_be_final_highlighting = hint
-resharper_cpp_class_disallow_lazy_merging_highlighting = warning
-resharper_cpp_class_is_incomplete_highlighting = warning
-resharper_cpp_class_needs_constructor_because_of_uninitialized_member_highlighting = warning
-resharper_cpp_class_never_used_highlighting = warning
-resharper_cpp_compile_time_constant_can_be_replaced_with_boolean_constant_highlighting = suggestion
-resharper_cpp_const_parameter_in_declaration_highlighting = suggestion
-resharper_cpp_const_value_function_return_type_highlighting = suggestion
-resharper_cpp_coroutine_call_resolve_error_highlighting = warning
-resharper_cpp_cv_qualifier_can_not_be_applied_to_reference_highlighting = warning
-resharper_cpp_c_style_cast_highlighting = suggestion
-resharper_cpp_declaration_hides_local_highlighting = warning
-resharper_cpp_declaration_hides_uncaptured_local_highlighting = hint
-resharper_cpp_declaration_specifier_without_declarators_highlighting = warning
-resharper_cpp_declarator_disambiguated_as_function_highlighting = warning
-resharper_cpp_declarator_never_used_highlighting = warning
-resharper_cpp_declarator_used_before_initialization_highlighting = error
-resharper_cpp_defaulted_special_member_function_is_implicitly_deleted_highlighting = warning
-resharper_cpp_default_case_not_handled_in_switch_statement_highlighting = warning
-resharper_cpp_default_initialization_with_no_user_constructor_highlighting = warning
-resharper_cpp_default_is_used_as_identifier_highlighting = warning
-resharper_cpp_deleting_void_pointer_highlighting = warning
-resharper_cpp_dependent_template_without_template_keyword_highlighting = warning
-resharper_cpp_dependent_type_without_typename_keyword_highlighting = warning
-resharper_cpp_deprecated_entity_highlighting = warning
-resharper_cpp_deprecated_register_storage_class_specifier_highlighting = warning
-resharper_cpp_dereference_operator_limit_exceeded_highlighting = warning
-resharper_cpp_discarded_postfix_operator_result_highlighting = suggestion
-resharper_cpp_doxygen_syntax_error_highlighting = warning
-resharper_cpp_doxygen_undocumented_parameter_highlighting = suggestion
-resharper_cpp_doxygen_unresolved_reference_highlighting = warning
-resharper_cpp_empty_declaration_highlighting = warning
-resharper_cpp_enforce_cv_qualifiers_order_highlighting = none
-resharper_cpp_enforce_cv_qualifiers_placement_highlighting = none
-resharper_cpp_enforce_do_statement_braces_highlighting = none
-resharper_cpp_enforce_for_statement_braces_highlighting = none
-resharper_cpp_enforce_function_declaration_style_highlighting = none
-resharper_cpp_enforce_if_statement_braces_highlighting = none
-resharper_cpp_enforce_nested_namespaces_style_highlighting = hint
-resharper_cpp_enforce_overriding_destructor_style_highlighting = suggestion
-resharper_cpp_enforce_overriding_function_style_highlighting = suggestion
-resharper_cpp_enforce_type_alias_code_style_highlighting = none
-resharper_cpp_enforce_while_statement_braces_highlighting = none
-resharper_cpp_entity_assigned_but_no_read_highlighting = warning
-resharper_cpp_entity_used_only_in_unevaluated_context_highlighting = warning
-resharper_cpp_enumerator_never_used_highlighting = warning
-resharper_cpp_equal_operands_in_binary_expression_highlighting = warning
-resharper_cpp_explicit_specialization_in_non_namespace_scope_highlighting = warning
-resharper_cpp_expression_without_side_effects_highlighting = warning
-resharper_cpp_final_function_in_final_class_highlighting = suggestion
-resharper_cpp_final_non_overriding_virtual_function_highlighting = suggestion
-resharper_cpp_for_loop_can_be_replaced_with_while_highlighting = suggestion
-resharper_cpp_functional_style_cast_highlighting = suggestion
-resharper_cpp_function_doesnt_return_value_highlighting = warning
-resharper_cpp_function_is_not_implemented_highlighting = warning
-resharper_cpp_function_result_should_be_used_highlighting = hint
-resharper_cpp_header_has_been_already_included_highlighting = hint
-resharper_cpp_hidden_function_highlighting = warning
-resharper_cpp_hiding_function_highlighting = warning
-resharper_cpp_identical_operands_in_binary_expression_highlighting = warning
-resharper_cpp_if_can_be_replaced_by_constexpr_if_highlighting = suggestion
-resharper_cpp_implicit_default_constructor_not_available_highlighting = warning
-resharper_cpp_incompatible_pointer_conversion_highlighting = warning
-resharper_cpp_incomplete_switch_statement_highlighting = warning
-resharper_cpp_inconsistent_naming_highlighting = hint
-resharper_cpp_incorrect_blank_lines_near_braces_highlighting = none
-resharper_cpp_initialized_value_is_always_rewritten_highlighting = warning
-resharper_cpp_integral_to_pointer_conversion_highlighting = warning
-resharper_cpp_invalid_line_continuation_highlighting = warning
-resharper_cpp_join_declaration_and_assignment_highlighting = suggestion
-resharper_cpp_lambda_capture_never_used_highlighting = warning
-resharper_cpp_local_variable_may_be_const_highlighting = suggestion
-resharper_cpp_local_variable_might_not_be_initialized_highlighting = warning
-resharper_cpp_local_variable_with_non_trivial_dtor_is_never_used_highlighting = none
-resharper_cpp_long_float_highlighting = warning
-resharper_cpp_member_function_may_be_const_highlighting = suggestion
-resharper_cpp_member_function_may_be_static_highlighting = suggestion
-resharper_cpp_member_initializers_order_highlighting = suggestion
-resharper_cpp_mismatched_class_tags_highlighting = warning
-resharper_cpp_missing_blank_lines_highlighting = none
-resharper_cpp_missing_include_guard_highlighting = warning
-resharper_cpp_missing_indent_highlighting = none
-resharper_cpp_missing_keyword_throw_highlighting = warning
-resharper_cpp_missing_linebreak_highlighting = none
-resharper_cpp_missing_space_highlighting = none
-resharper_cpp_ms_ext_address_of_class_r_value_highlighting = warning
-resharper_cpp_ms_ext_binding_r_value_to_lvalue_reference_highlighting = warning
-resharper_cpp_ms_ext_copy_elision_in_copy_init_declarator_highlighting = warning
-resharper_cpp_ms_ext_double_user_conversion_in_copy_init_highlighting = warning
-resharper_cpp_ms_ext_not_initialized_static_const_local_var_highlighting = warning
-resharper_cpp_ms_ext_reinterpret_cast_from_nullptr_highlighting = warning
-resharper_cpp_multiple_spaces_highlighting = none
-resharper_cpp_must_be_public_virtual_to_implement_interface_highlighting = warning
-resharper_cpp_mutable_specifier_on_reference_member_highlighting = warning
-resharper_cpp_nodiscard_function_without_return_value_highlighting = warning
-resharper_cpp_non_exception_safe_resource_acquisition_highlighting = hint
-resharper_cpp_non_explicit_conversion_operator_highlighting = hint
-resharper_cpp_non_explicit_converting_constructor_highlighting = hint
-resharper_cpp_non_inline_function_definition_in_header_file_highlighting = warning
-resharper_cpp_non_inline_variable_definition_in_header_file_highlighting = warning
-resharper_cpp_not_all_paths_return_value_highlighting = warning
-resharper_cpp_no_discard_expression_highlighting = warning
-resharper_cpp_object_member_might_not_be_initialized_highlighting = warning
-resharper_cpp_outdent_is_off_prev_level_highlighting = none
-resharper_cpp_out_parameter_must_be_written_highlighting = warning
-resharper_cpp_parameter_may_be_const_highlighting = hint
-resharper_cpp_parameter_may_be_const_ptr_or_ref_highlighting = suggestion
-resharper_cpp_parameter_names_mismatch_highlighting = hint
-resharper_cpp_parameter_never_used_highlighting = hint
-resharper_cpp_parameter_value_is_reassigned_highlighting = warning
-resharper_cpp_pass_value_parameter_by_const_reference_highlighting = suggestion
-resharper_cpp_pointer_conversion_drops_qualifiers_highlighting = warning
-resharper_cpp_pointer_to_integral_conversion_highlighting = warning
-resharper_cpp_polymorphic_class_with_non_virtual_public_destructor_highlighting = warning
-resharper_cpp_possibly_erroneous_empty_statements_highlighting = warning
-resharper_cpp_possibly_uninitialized_member_highlighting = warning
-resharper_cpp_possibly_unintended_object_slicing_highlighting = warning
-resharper_cpp_precompiled_header_is_not_included_highlighting = error
-resharper_cpp_precompiled_header_not_found_highlighting = error
-resharper_cpp_printf_bad_format_highlighting = warning
-resharper_cpp_printf_extra_arg_highlighting = warning
-resharper_cpp_printf_missed_arg_highlighting = error
-resharper_cpp_printf_risky_format_highlighting = warning
-resharper_cpp_private_special_member_function_is_not_implemented_highlighting = warning
-resharper_cpp_range_based_for_incompatible_reference_highlighting = warning
-resharper_cpp_redefinition_of_default_argument_in_override_function_highlighting = warning
-resharper_cpp_redundant_access_specifier_highlighting = hint
-resharper_cpp_redundant_base_class_access_specifier_highlighting = hint
-resharper_cpp_redundant_base_class_initializer_highlighting = suggestion
-resharper_cpp_redundant_blank_lines_highlighting = none
-resharper_cpp_redundant_boolean_expression_argument_highlighting = warning
-resharper_cpp_redundant_cast_expression_highlighting = hint
-resharper_cpp_redundant_complexity_in_comparison_highlighting = suggestion
-resharper_cpp_redundant_const_specifier_highlighting = hint
-resharper_cpp_redundant_control_flow_jump_highlighting = hint
-resharper_cpp_redundant_elaborated_type_specifier_highlighting = hint
-resharper_cpp_redundant_else_keyword_highlighting = hint
-resharper_cpp_redundant_else_keyword_inside_compound_statement_highlighting = hint
-resharper_cpp_redundant_empty_declaration_highlighting = hint
-resharper_cpp_redundant_empty_statement_highlighting = hint
-resharper_cpp_redundant_inline_specifier_highlighting = hint
-resharper_cpp_redundant_lambda_parameter_list_highlighting = hint
-resharper_cpp_redundant_linebreak_highlighting = none
-resharper_cpp_redundant_member_initializer_highlighting = suggestion
-resharper_cpp_redundant_namespace_definition_highlighting = suggestion
-resharper_cpp_redundant_parentheses_highlighting = hint
-resharper_cpp_redundant_qualifier_highlighting = hint
-resharper_cpp_redundant_space_highlighting = none
-resharper_cpp_redundant_static_specifier_on_member_allocation_function_highlighting = hint
-resharper_cpp_redundant_template_arguments_highlighting = hint
-resharper_cpp_redundant_template_keyword_highlighting = warning
-resharper_cpp_redundant_typename_keyword_highlighting = warning
-resharper_cpp_redundant_void_argument_list_highlighting = suggestion
-resharper_cpp_reinterpret_cast_from_void_ptr_highlighting = suggestion
-resharper_cpp_remove_redundant_braces_highlighting = none
-resharper_cpp_replace_memset_with_zero_initialization_highlighting = suggestion
-resharper_cpp_replace_tie_with_structured_binding_highlighting = suggestion
-resharper_cpp_return_no_value_in_non_void_function_highlighting = warning
-resharper_cpp_smart_pointer_vs_make_function_highlighting = suggestion
-resharper_cpp_some_object_members_might_not_be_initialized_highlighting = warning
-resharper_cpp_special_function_without_noexcept_specification_highlighting = warning
-resharper_cpp_static_data_member_in_unnamed_struct_highlighting = warning
-resharper_cpp_static_specifier_on_anonymous_namespace_member_highlighting = suggestion
-resharper_cpp_string_literal_to_char_pointer_conversion_highlighting = warning
-resharper_cpp_tabs_and_spaces_mismatch_highlighting = none
-resharper_cpp_tabs_are_disallowed_highlighting = none
-resharper_cpp_tabs_outside_indent_highlighting = none
-resharper_cpp_template_arguments_can_be_deduced_highlighting = hint
-resharper_cpp_template_parameter_never_used_highlighting = hint
-resharper_cpp_template_parameter_shadowing_highlighting = warning
-resharper_cpp_this_arg_member_func_delegate_ctor_is_unsuported_by_dot_net_core_highlighting = none
-resharper_cpp_throw_expression_can_be_replaced_with_rethrow_highlighting = warning
-resharper_cpp_too_wide_scope_highlighting = suggestion
-resharper_cpp_too_wide_scope_init_statement_highlighting = hint
-resharper_cpp_type_alias_never_used_highlighting = warning
-resharper_cpp_ue4_blueprint_callable_function_may_be_const_highlighting = hint
-resharper_cpp_ue4_blueprint_callable_function_may_be_static_highlighting = hint
-resharper_cpp_ue4_coding_standard_naming_violation_warning_highlighting = hint
-resharper_cpp_ue4_coding_standard_u_class_naming_violation_error_highlighting = error
-resharper_cpp_ue4_probable_memory_issues_with_u_objects_in_container_highlighting = warning
-resharper_cpp_ue4_probable_memory_issues_with_u_object_highlighting = warning
-resharper_cpp_ue_blueprint_callable_function_unused_highlighting = warning
-resharper_cpp_ue_blueprint_implementable_event_not_implemented_highlighting = warning
-resharper_cpp_ue_incorrect_engine_directory_highlighting = error
-resharper_cpp_ue_non_existent_input_action_highlighting = warning
-resharper_cpp_ue_non_existent_input_axis_highlighting = warning
-resharper_cpp_ue_source_file_without_predefined_macros_highlighting = warning
-resharper_cpp_ue_source_file_without_standard_library_highlighting = error
-resharper_cpp_ue_version_file_doesnt_exist_highlighting = error
-resharper_cpp_uninitialized_dependent_base_class_highlighting = warning
-resharper_cpp_uninitialized_non_static_data_member_highlighting = warning
-resharper_cpp_union_member_of_reference_type_highlighting = warning
-resharper_cpp_unnamed_namespace_in_header_file_highlighting = warning
-resharper_cpp_unnecessary_whitespace_highlighting = none
-resharper_cpp_unreachable_code_highlighting = warning
-resharper_cpp_unsigned_zero_comparison_highlighting = warning
-resharper_cpp_unused_include_directive_highlighting = warning
-resharper_cpp_user_defined_literal_suffix_does_not_start_with_underscore_highlighting = warning
-resharper_cpp_use_algorithm_with_count_highlighting = suggestion
-resharper_cpp_use_associative_contains_highlighting = suggestion
-resharper_cpp_use_auto_for_numeric_highlighting = hint
-resharper_cpp_use_auto_highlighting = hint
-resharper_cpp_use_elements_view_highlighting = suggestion
-resharper_cpp_use_erase_algorithm_highlighting = suggestion
-resharper_cpp_use_familiar_template_syntax_for_generic_lambdas_highlighting = suggestion
-resharper_cpp_use_of_undeclared_class_highlighting = hint
-resharper_cpp_use_range_algorithm_highlighting = suggestion
-resharper_cpp_use_std_size_highlighting = suggestion
-resharper_cpp_use_structured_binding_highlighting = hint
-resharper_cpp_use_type_trait_alias_highlighting = suggestion
-resharper_cpp_using_result_of_assignment_as_condition_highlighting = warning
-resharper_cpp_u_function_macro_call_has_no_effect_highlighting = warning
-resharper_cpp_u_property_macro_call_has_no_effect_highlighting = warning
-resharper_cpp_variable_can_be_made_constexpr_highlighting = suggestion
-resharper_cpp_virtual_function_call_inside_ctor_highlighting = warning
-resharper_cpp_virtual_function_in_final_class_highlighting = warning
-resharper_cpp_volatile_parameter_in_declaration_highlighting = suggestion
-resharper_cpp_wrong_includes_order_highlighting = hint
-resharper_cpp_wrong_indent_size_highlighting = none
-resharper_cpp_wrong_slashes_in_include_directive_highlighting = hint
-resharper_cpp_zero_constant_can_be_replaced_with_nullptr_highlighting = suggestion
-resharper_cpp_zero_valued_expression_used_as_null_pointer_highlighting = warning
-resharper_c_declaration_with_implicit_int_type_highlighting = warning
+public virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualresharper_c_declaration_with_implicit_int_type_highlighting = warning
 resharper_c_sharp_build_cs_invalid_module_name_highlighting = warning
 resharper_c_sharp_missing_plugin_dependency_highlighting = warning
 resharper_default_value_attribute_for_optional_parameter_highlighting = warning
@@ -3285,83 +1717,7 @@ resharper_value_parameter_not_used_highlighting = warning
 resharper_value_range_attribute_violation_highlighting = warning
 resharper_variable_can_be_not_nullable_highlighting = warning
 resharper_variable_hides_outer_variable_highlighting = warning
-resharper_vb_check_for_reference_equality_instead_1_highlighting = suggestion
-resharper_vb_check_for_reference_equality_instead_2_highlighting = suggestion
-resharper_vb_possible_mistaken_argument_highlighting = warning
-resharper_vb_possible_mistaken_call_to_get_type_1_highlighting = warning
-resharper_vb_possible_mistaken_call_to_get_type_2_highlighting = warning
-resharper_vb_remove_to_list_1_highlighting = suggestion
-resharper_vb_remove_to_list_2_highlighting = suggestion
-resharper_vb_replace_with_first_or_default_highlighting = suggestion
-resharper_vb_replace_with_last_or_default_highlighting = suggestion
-resharper_vb_replace_with_of_type_1_highlighting = suggestion
-resharper_vb_replace_with_of_type_2_highlighting = suggestion
-resharper_vb_replace_with_of_type_any_1_highlighting = suggestion
-resharper_vb_replace_with_of_type_any_2_highlighting = suggestion
-resharper_vb_replace_with_of_type_count_1_highlighting = suggestion
-resharper_vb_replace_with_of_type_count_2_highlighting = suggestion
-resharper_vb_replace_with_of_type_first_1_highlighting = suggestion
-resharper_vb_replace_with_of_type_first_2_highlighting = suggestion
-resharper_vb_replace_with_of_type_first_or_default_1_highlighting = suggestion
-resharper_vb_replace_with_of_type_first_or_default_2_highlighting = suggestion
-resharper_vb_replace_with_of_type_last_1_highlighting = suggestion
-resharper_vb_replace_with_of_type_last_2_highlighting = suggestion
-resharper_vb_replace_with_of_type_last_or_default_1_highlighting = suggestion
-resharper_vb_replace_with_of_type_last_or_default_2_highlighting = suggestion
-resharper_vb_replace_with_of_type_single_1_highlighting = suggestion
-resharper_vb_replace_with_of_type_single_2_highlighting = suggestion
-resharper_vb_replace_with_of_type_single_or_default_1_highlighting = suggestion
-resharper_vb_replace_with_of_type_single_or_default_2_highlighting = suggestion
-resharper_vb_replace_with_of_type_where_highlighting = suggestion
-resharper_vb_replace_with_single_assignment_1_highlighting = suggestion
-resharper_vb_replace_with_single_assignment_2_highlighting = suggestion
-resharper_vb_replace_with_single_call_to_any_highlighting = suggestion
-resharper_vb_replace_with_single_call_to_count_highlighting = suggestion
-resharper_vb_replace_with_single_call_to_first_highlighting = suggestion
-resharper_vb_replace_with_single_call_to_first_or_default_highlighting = suggestion
-resharper_vb_replace_with_single_call_to_last_highlighting = suggestion
-resharper_vb_replace_with_single_call_to_last_or_default_highlighting = suggestion
-resharper_vb_replace_with_single_call_to_single_highlighting = suggestion
-resharper_vb_replace_with_single_call_to_single_or_default_highlighting = suggestion
-resharper_vb_replace_with_single_or_default_highlighting = suggestion
-resharper_vb_simplify_linq_expression_10_highlighting = hint
-resharper_vb_simplify_linq_expression_1_highlighting = suggestion
-resharper_vb_simplify_linq_expression_2_highlighting = suggestion
-resharper_vb_simplify_linq_expression_3_highlighting = suggestion
-resharper_vb_simplify_linq_expression_4_highlighting = suggestion
-resharper_vb_simplify_linq_expression_5_highlighting = suggestion
-resharper_vb_simplify_linq_expression_6_highlighting = suggestion
-resharper_vb_simplify_linq_expression_7_highlighting = hint
-resharper_vb_simplify_linq_expression_8_highlighting = hint
-resharper_vb_simplify_linq_expression_9_highlighting = hint
-resharper_vb_string_compare_is_culture_specific_1_highlighting = warning
-resharper_vb_string_compare_is_culture_specific_2_highlighting = warning
-resharper_vb_string_compare_is_culture_specific_3_highlighting = warning
-resharper_vb_string_compare_is_culture_specific_4_highlighting = warning
-resharper_vb_string_compare_is_culture_specific_5_highlighting = warning
-resharper_vb_string_compare_is_culture_specific_6_highlighting = warning
-resharper_vb_string_compare_to_is_culture_specific_highlighting = warning
-resharper_vb_string_ends_with_is_culture_specific_highlighting = none
-resharper_vb_string_index_of_is_culture_specific_1_highlighting = warning
-resharper_vb_string_index_of_is_culture_specific_2_highlighting = warning
-resharper_vb_string_index_of_is_culture_specific_3_highlighting = warning
-resharper_vb_string_last_index_of_is_culture_specific_1_highlighting = warning
-resharper_vb_string_last_index_of_is_culture_specific_2_highlighting = warning
-resharper_vb_string_last_index_of_is_culture_specific_3_highlighting = warning
-resharper_vb_string_starts_with_is_culture_specific_highlighting = none
-resharper_vb_unreachable_code_highlighting = warning
-resharper_vb_use_array_creation_expression_1_highlighting = suggestion
-resharper_vb_use_array_creation_expression_2_highlighting = suggestion
-resharper_vb_use_first_instead_highlighting = warning
-resharper_vb_use_method_any_1_highlighting = suggestion
-resharper_vb_use_method_any_2_highlighting = suggestion
-resharper_vb_use_method_any_3_highlighting = suggestion
-resharper_vb_use_method_any_4_highlighting = suggestion
-resharper_vb_use_method_any_5_highlighting = suggestion
-resharper_vb_use_method_is_instance_of_type_highlighting = suggestion
-resharper_vb_use_type_of_is_operator_1_highlighting = suggestion
-resharper_vb_use_type_of_is_operator_2_highlighting = suggestion
-resharper_virtual_member_call_in_constructor_highlighting = warning
+public virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualresharper_virtual_member_call_in_constructor_highlighting = warning
 resharper_virtual_member_never_overridden_global_highlighting = suggestion
 resharper_virtual_member_never_overridden_local_highlighting = suggestion
 resharper_void_method_with_must_use_return_value_attribute_highlighting = warning
@@ -3438,16 +1794,3 @@ resharper_xaml_xaml_xamarin_forms_data_type_and_binding_context_type_mismatched_
 resharper_xaml_x_key_attribute_disallowed_highlighting = error
 resharper_xunit_xunit_test_with_console_output_highlighting = warning
 resharper_zero_index_from_end_highlighting = warning
-
-[{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.stylelintrc,bowerrc,jest.config}]
-indent_style = space
-indent_size = 2
-
-[*.js.map]
-indent_style = space
-indent_size = 2
-
-[*.{appxmanifest,asax,ascx,aspx,axaml,build,cg,cginc,compute,cs,cshtml,dtd,fx,fxh,hlsl,hlsli,hlslinc,master,nuspec,paml,razor,resw,resx,skin,usf,ush,vb,xaml,xamlx,xoml,xsd}]
-indent_style = space
-indent_size = 4
-tab_width = 4
diff --git a/.gitignore b/.gitignore
index 5350fd3..ea15c2f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,10 @@ matrix-sync.json
 /patches/
 MatrixRoomUtils.Bot/bot_data/
 appsettings.Local*.json
+nixpkgs/
+
+test.tsv
+test-proxy.tsv
+homeservers.txt
+LoginPayload.txt
+LoginPayload.txt.old
diff --git a/.gitmodules b/.gitmodules
index 01f5add..1abc4e3 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,3 +4,6 @@
 [submodule "MxApiExtensions"]
 	path = MxApiExtensions
 	url = https://git.rory.gay/matrix/MxApiExtensions.git
+[submodule "ArcaneLibs"]
+	path = ArcaneLibs
+	url = https://github.com/TheArcaneBrony/ArcaneLibs.git
diff --git a/.idea/.idea.MatrixRoomUtils/.idea/codeStyles/codeStyleConfig.xml b/.idea/.idea.MatrixRoomUtils/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..a55e7a1
--- /dev/null
+++ b/.idea/.idea.MatrixRoomUtils/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+<component name="ProjectCodeStyleConfiguration">
+  <state>
+    <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
+  </state>
+</component>
\ No newline at end of file
diff --git a/.idea/.idea.MatrixRoomUtils/.idea/vcs.xml b/.idea/.idea.MatrixRoomUtils/.idea/vcs.xml
index 4720c89..94a25f7 100644
--- a/.idea/.idea.MatrixRoomUtils/.idea/vcs.xml
+++ b/.idea/.idea.MatrixRoomUtils/.idea/vcs.xml
@@ -2,6 +2,5 @@
 <project version="4">
   <component name="VcsDirectoryMappings">
     <mapping directory="$PROJECT_DIR$" vcs="Git" />
-    <mapping directory="$PROJECT_DIR$/MatrixRoomUtils.Core" vcs="Git" />
   </component>
 </project>
\ No newline at end of file
diff --git a/ArcaneLibs b/ArcaneLibs
new file mode 160000
+Subproject 78587a5303754af87cdd999b7514e42b081aace
diff --git a/LibMatrix b/LibMatrix
-Subproject cb8846a7a3310f8513989da5aadb5202f048a1b
+Subproject 6bd02248ccfbcb46960a6f39eaad23888d190eb
diff --git a/MatrixRoomUtils.Desktop/App.axaml.cs b/MatrixRoomUtils.Desktop/App.axaml.cs
index e0b50a5..33f2c13 100644
--- a/MatrixRoomUtils.Desktop/App.axaml.cs
+++ b/MatrixRoomUtils.Desktop/App.axaml.cs
@@ -4,7 +4,6 @@ using Avalonia.Markup.Xaml;
 using LibMatrix.Services;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Hosting;
-using Sentry;
 
 namespace MatrixRoomUtils.Desktop;
 
diff --git a/MatrixRoomUtils.Desktop/Components/RoomListEntry.axaml.cs b/MatrixRoomUtils.Desktop/Components/RoomListEntry.axaml.cs
index 359deb3..6cdb767 100644
--- a/MatrixRoomUtils.Desktop/Components/RoomListEntry.axaml.cs
+++ b/MatrixRoomUtils.Desktop/Components/RoomListEntry.axaml.cs
@@ -28,7 +28,7 @@ public partial class RoomListEntry : UserControl {
     private async Task GetRoomName() {
         try {
             var nameEvent = await _roomInfo.GetStateEvent("m.room.name");
-            if (nameEvent?.TypedContent is RoomNameEventData nameData)
+            if (nameEvent?.TypedContent is RoomNameEventContent nameData)
                 RoomName.Content = nameData.Name;
         }
         catch (MatrixException e) {
@@ -40,7 +40,7 @@ public partial class RoomListEntry : UserControl {
     private async Task GetRoomIcon() {
         try {
             var avatarEvent = await _roomInfo.GetStateEvent("m.room.avatar");
-            if (avatarEvent?.TypedContent is RoomAvatarEventData avatarData) {
+            if (avatarEvent?.TypedContent is RoomAvatarEventContent avatarData) {
                 var mxcUrl = avatarData.Url;
                 await using var svc = _serviceScopeFactory.CreateAsyncScope();
                 var hs = await svc.ServiceProvider.GetService<MRUStorageWrapper>().GetCurrentSessionOrPrompt();
diff --git a/MatrixRoomUtils.Desktop/FileStorageProvider.cs b/MatrixRoomUtils.Desktop/FileStorageProvider.cs
index b3850b0..7f73cf3 100644
--- a/MatrixRoomUtils.Desktop/FileStorageProvider.cs
+++ b/MatrixRoomUtils.Desktop/FileStorageProvider.cs
@@ -1,4 +1,5 @@
 using System.Text.Json;
+using ArcaneLibs.Extensions;
 using LibMatrix.Extensions;
 using LibMatrix.Interfaces.Services;
 using Microsoft.Extensions.Logging;
diff --git a/MatrixRoomUtils.Desktop/MRUStorageWrapper.cs b/MatrixRoomUtils.Desktop/MRUStorageWrapper.cs
index 2243092..bc01774 100644
--- a/MatrixRoomUtils.Desktop/MRUStorageWrapper.cs
+++ b/MatrixRoomUtils.Desktop/MRUStorageWrapper.cs
@@ -1,4 +1,5 @@
 using LibMatrix;
+using LibMatrix.Homeservers;
 using LibMatrix.Responses;
 using LibMatrix.Services;
 
@@ -44,7 +45,7 @@ public class MRUStorageWrapper(TieredStorageService storageService, HomeserverPr
             await SetCurrentToken(loginResponse);
     }
 
-    private async Task<AuthenticatedHomeServer?> GetCurrentSession() {
+    private async Task<AuthenticatedHomeserverGeneric?> GetCurrentSession() {
         var token = await GetCurrentToken();
         if (token == null) {
             return null;
@@ -53,8 +54,8 @@ public class MRUStorageWrapper(TieredStorageService storageService, HomeserverPr
         return await homeserverProviderService.GetAuthenticatedWithToken(token.Homeserver, token.AccessToken);
     }
 
-    public async Task<AuthenticatedHomeServer?> GetCurrentSessionOrPrompt() {
-        AuthenticatedHomeServer? session = null;
+    public async Task<AuthenticatedHomeserverGeneric?> GetCurrentSessionOrPrompt() {
+        AuthenticatedHomeserverGeneric? session = null;
 
         try {
             //catch if the token is invalid
diff --git a/MatrixRoomUtils.Desktop/MainWindow.axaml.cs b/MatrixRoomUtils.Desktop/MainWindow.axaml.cs
index 135542b..0bed93d 100644
--- a/MatrixRoomUtils.Desktop/MainWindow.axaml.cs
+++ b/MatrixRoomUtils.Desktop/MainWindow.axaml.cs
@@ -1,5 +1,4 @@
 using Avalonia.Controls;
-using Avalonia.Data;
 using Avalonia.Interactivity;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Logging;
diff --git a/MatrixRoomUtils.Desktop/MatrixRoomUtils.Desktop.csproj b/MatrixRoomUtils.Desktop/MatrixRoomUtils.Desktop.csproj
index 4dc9558..d21b5fe 100644
--- a/MatrixRoomUtils.Desktop/MatrixRoomUtils.Desktop.csproj
+++ b/MatrixRoomUtils.Desktop/MatrixRoomUtils.Desktop.csproj
@@ -20,13 +20,13 @@
 
 
     <ItemGroup>
-        <PackageReference Include="Avalonia" Version="11.0.3" />
-        <PackageReference Include="Avalonia.Desktop" Version="11.0.3" />
-        <PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.3" />
-        <PackageReference Include="Avalonia.Fonts.Inter" Version="11.0.3" />
+        <PackageReference Include="Avalonia" Version="11.0.4" />
+        <PackageReference Include="Avalonia.Desktop" Version="11.0.4" />
+        <PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.4" />
+        <PackageReference Include="Avalonia.Fonts.Inter" Version="11.0.4" />
         <!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
-        <PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.3" />
-        <PackageReference Include="Sentry" Version="3.35.0" />
+        <PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.4" />
+        <PackageReference Include="Sentry" Version="3.36.0" />
     </ItemGroup>
 
 
@@ -35,7 +35,6 @@
     </ItemGroup>
 
     <ItemGroup>
-        <PackageReference Include="ArcaneLibs" Version="1.0.0-preview3020494760.012ed3f" />
         <PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.0.2" />
         <PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
     </ItemGroup>
diff --git a/MatrixRoomUtils.Desktop/RoomInfo.cs b/MatrixRoomUtils.Desktop/RoomInfo.cs
index 4e76247..ebd80ab 100644
--- a/MatrixRoomUtils.Desktop/RoomInfo.cs
+++ b/MatrixRoomUtils.Desktop/RoomInfo.cs
@@ -1,4 +1,5 @@
 using LibMatrix;
+using LibMatrix.Interfaces;
 using LibMatrix.Responses;
 using LibMatrix.RoomTypes;
 
@@ -23,7 +24,7 @@ public class RoomInfo {
             StateKey = stateKey
         };
         try {
-            @event.TypedContent = await Room.GetStateAsync<object>(type, stateKey);
+            @event.TypedContent = await Room.GetStateAsync<EventContent>(type, stateKey);
         }
         catch (MatrixException e) {
             if (e is { ErrorCode: "M_NOT_FOUND" }) @event.TypedContent = default!;
diff --git a/MatrixRoomUtils.Web.Server/MatrixRoomUtils.Web.Server.csproj b/MatrixRoomUtils.Web.Server/MatrixRoomUtils.Web.Server.csproj
index f89a603..e7ea9aa 100644
--- a/MatrixRoomUtils.Web.Server/MatrixRoomUtils.Web.Server.csproj
+++ b/MatrixRoomUtils.Web.Server/MatrixRoomUtils.Web.Server.csproj
@@ -4,6 +4,7 @@
         <TargetFramework>net7.0</TargetFramework>
         <Nullable>enable</Nullable>
         <ImplicitUsings>enable</ImplicitUsings>
+        <LangVersion>preview</LangVersion>
     </PropertyGroup>
 
     <ItemGroup>
diff --git a/MatrixRoomUtils.Web/Classes/MRUStorageWrapper.cs b/MatrixRoomUtils.Web/Classes/MRUStorageWrapper.cs
index 14625fd..8ea85e9 100644
--- a/MatrixRoomUtils.Web/Classes/MRUStorageWrapper.cs
+++ b/MatrixRoomUtils.Web/Classes/MRUStorageWrapper.cs
@@ -1,4 +1,5 @@
 using LibMatrix;
+using LibMatrix.Homeservers;
 using LibMatrix.Responses;
 using LibMatrix.Services;
 using Microsoft.AspNetCore.Components;
@@ -20,13 +21,13 @@ public class MRUStorageWrapper {
         _navigationManager = navigationManager;
     }
 
-    public async Task<List<LoginResponse>?> GetAllTokens() {
-        return await _storageService.DataStorageProvider.LoadObjectAsync<List<LoginResponse>>("mru.tokens") ??
-               new List<LoginResponse>();
+    public async Task<List<UserAuth>?> GetAllTokens() {
+        return await _storageService.DataStorageProvider.LoadObjectAsync<List<UserAuth>>("mru.tokens") ??
+               new List<UserAuth>();
     }
 
-    public async Task<LoginResponse?> GetCurrentToken() {
-        var currentToken = await _storageService.DataStorageProvider.LoadObjectAsync<LoginResponse>("token");
+    public async Task<UserAuth?> GetCurrentToken() {
+        var currentToken = await _storageService.DataStorageProvider.LoadObjectAsync<UserAuth>("token");
         var allTokens = await GetAllTokens();
         if (allTokens is null or { Count: 0 }) {
             await SetCurrentToken(null);
@@ -44,14 +45,14 @@ public class MRUStorageWrapper {
         return currentToken;
     }
 
-    public async Task AddToken(LoginResponse loginResponse) {
-        var tokens = await GetAllTokens() ?? new List<LoginResponse>();
+    public async Task AddToken(UserAuth UserAuth) {
+        var tokens = await GetAllTokens() ?? new List<UserAuth>();
 
-        tokens.Add(loginResponse);
+        tokens.Add(UserAuth);
         await _storageService.DataStorageProvider.SaveObjectAsync("mru.tokens", tokens);
     }
 
-    private async Task<AuthenticatedHomeServer?> GetCurrentSession() {
+    private async Task<AuthenticatedHomeserverGeneric?> GetCurrentSession() {
         var token = await GetCurrentToken();
         if (token == null) {
             return null;
@@ -60,8 +61,8 @@ public class MRUStorageWrapper {
         return await _homeserverProviderService.GetAuthenticatedWithToken(token.Homeserver, token.AccessToken);
     }
 
-    public async Task<AuthenticatedHomeServer?> GetCurrentSessionOrNavigate() {
-        AuthenticatedHomeServer? session = null;
+    public async Task<AuthenticatedHomeserverGeneric?> GetCurrentSessionOrNavigate() {
+        AuthenticatedHomeserverGeneric? session = null;
 
         try {
             //catch if the token is invalid
@@ -94,7 +95,7 @@ public class MRUStorageWrapper {
         public bool EnablePortableDevtools { get; set; }
     }
 
-    public async Task RemoveToken(LoginResponse auth) {
+    public async Task RemoveToken(UserAuth auth) {
         var tokens = await GetAllTokens();
         if (tokens == null) {
             return;
@@ -104,5 +105,5 @@ public class MRUStorageWrapper {
         await _storageService.DataStorageProvider.SaveObjectAsync("mru.tokens", tokens);
     }
 
-    public async Task SetCurrentToken(LoginResponse? auth) => await _storageService.DataStorageProvider.SaveObjectAsync("token", auth);
+    public async Task SetCurrentToken(UserAuth? auth) => await _storageService.DataStorageProvider.SaveObjectAsync("token", auth);
 }
diff --git a/MatrixRoomUtils.Web/Classes/RoomCreationTemplates/DefaultRoomCreationTemplate.cs b/MatrixRoomUtils.Web/Classes/RoomCreationTemplates/DefaultRoomCreationTemplate.cs
index bb2eab9..3f67f33 100644
--- a/MatrixRoomUtils.Web/Classes/RoomCreationTemplates/DefaultRoomCreationTemplate.cs
+++ b/MatrixRoomUtils.Web/Classes/RoomCreationTemplates/DefaultRoomCreationTemplate.cs
@@ -2,7 +2,6 @@ using System.Text.Json.Nodes;
 using LibMatrix;
 using LibMatrix.Responses;
 using LibMatrix.StateEventTypes.Spec;
-using LibMatrix.StateEventTypes;
 
 namespace MatrixRoomUtils.Web.Classes.RoomCreationTemplates;
 
@@ -16,39 +15,39 @@ public class DefaultRoomCreationTemplate : IRoomCreationTemplate {
             InitialState = new List<StateEvent> {
                 new() {
                     Type = "m.room.history_visibility",
-                    TypedContent = new {
-                        history_visibility = "world_readable"
+                    TypedContent = new HistoryVisibilityEventContent() {
+                        HistoryVisibility = "world_readable"
                     }
                 },
                 new() {
                     Type = "m.room.guest_access",
-                    TypedContent = new GuestAccessEventData {
+                    TypedContent = new GuestAccessEventContent {
                         GuestAccess = "can_join"
                     }
                 },
                 new() {
                     Type = "m.room.join_rules",
-                    TypedContent = new JoinRulesEventData {
+                    TypedContent = new JoinRulesEventContent {
                         JoinRule = "public"
                     }
                 },
                 new() {
                     Type = "m.room.server_acl",
-                    TypedContent = new {
-                        allow = new[] { "*" },
-                        deny = Array.Empty<string>(),
-                        allow_ip_literals = false
+                    TypedContent = new ServerACLEventContent() {
+                        Allow = new List<string>() { "*" },
+                        Deny = new List<string>(),
+                        AllowIpLiterals = false
                     }
                 },
                 new() {
                     Type = "m.room.avatar",
-                    TypedContent = new RoomAvatarEventData {
+                    TypedContent = new RoomAvatarEventContent {
                         Url = "mxc://feline.support/UKNhEyrVsrAbYteVvZloZcFj"
                     }
                 }
             },
             Visibility = "public",
-            PowerLevelContentOverride = new RoomPowerLevelEventData {
+            PowerLevelContentOverride = new RoomPowerLevelEventContent {
                 UsersDefault = 0,
                 EventsDefault = 100,
                 StateDefault = 50,
@@ -56,10 +55,10 @@ public class DefaultRoomCreationTemplate : IRoomCreationTemplate {
                 Redact = 50,
                 Kick = 50,
                 Ban = 50,
-                NotificationsPl = new RoomPowerLevelEventData.NotificationsPL {
+                NotificationsPl = new RoomPowerLevelEventContent.NotificationsPL {
                     Room = 50
                 },
-                Events = new Dictionary<string, int> {
+                Events = new() {
                     { "im.vector.modular.widgets", 50 },
                     { "io.element.voice_broadcast_info", 50 },
                     { "m.reaction", 100 },
@@ -78,7 +77,7 @@ public class DefaultRoomCreationTemplate : IRoomCreationTemplate {
                     { "org.matrix.msc3401.call", 50 },
                     { "org.matrix.msc3401.call.member", 50 }
                 },
-                Users = new Dictionary<string, int> {
+                Users = new() {
                     // { RuntimeCache.CurrentHomeServer.UserId, 100 }
                     //TODO: re-implement this
                 }
diff --git a/MatrixRoomUtils.Web/Classes/RoomInfo.cs b/MatrixRoomUtils.Web/Classes/RoomInfo.cs
index 111bfe0..0e21871 100644
--- a/MatrixRoomUtils.Web/Classes/RoomInfo.cs
+++ b/MatrixRoomUtils.Web/Classes/RoomInfo.cs
@@ -1,4 +1,5 @@
 using LibMatrix;
+using LibMatrix.Interfaces;
 using LibMatrix.Responses;
 using LibMatrix.RoomTypes;
 
@@ -17,7 +18,7 @@ public class RoomInfo {
             StateKey = stateKey
         };
         try {
-            @event.TypedContent = await Room.GetStateAsync<object>(type, stateKey);
+            @event.TypedContent = await Room.GetStateAsync<EventContent>(type, stateKey);
         }
         catch (MatrixException e) {
             if (e is { ErrorCode: "M_NOT_FOUND" }) @event.TypedContent = default!;
diff --git a/MatrixRoomUtils.Web/Classes/UserAuth.cs b/MatrixRoomUtils.Web/Classes/UserAuth.cs
new file mode 100644
index 0000000..e6f0954
--- /dev/null
+++ b/MatrixRoomUtils.Web/Classes/UserAuth.cs
@@ -0,0 +1,15 @@
+using LibMatrix.Responses;
+
+namespace MatrixRoomUtils.Web.Classes;
+
+public class UserAuth : LoginResponse {
+    public UserAuth() { }
+    public UserAuth(LoginResponse login) {
+        Homeserver = login.Homeserver;
+        UserId = login.UserId;
+        AccessToken = login.AccessToken;
+        DeviceId = login.DeviceId;
+    }
+
+    public string? Proxy { get; set; }
+}
diff --git a/MatrixRoomUtils.Web/MatrixRoomUtils.Web.csproj b/MatrixRoomUtils.Web/MatrixRoomUtils.Web.csproj
index fce3cfd..3c8d362 100644
--- a/MatrixRoomUtils.Web/MatrixRoomUtils.Web.csproj
+++ b/MatrixRoomUtils.Web/MatrixRoomUtils.Web.csproj
@@ -5,17 +5,23 @@
         <Nullable>enable</Nullable>
         <ImplicitUsings>enable</ImplicitUsings>
         <UseBlazorWebAssembly>true</UseBlazorWebAssembly>
+        <LinkIncremental>true</LinkIncremental>
+        <LangVersion>preview</LangVersion>
     </PropertyGroup>
 
     <ItemGroup>
-        <PackageReference Include="Blazored.LocalStorage" Version="4.3.0" />
-        <PackageReference Include="Blazored.SessionStorage" Version="2.3.0" />
+        <PackageReference Include="Blazored.LocalStorage" Version="4.4.0" />
+        <PackageReference Include="Blazored.SessionStorage" Version="2.4.0" />
         <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="7.0.10" />
         <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="7.0.10" PrivateAssets="all" />
     </ItemGroup>
 
     <ItemGroup>
+
+        <ProjectReference Condition="Exists('..\ArcaneLibs\ArcaneLibs.Blazor.Components\ArcaneLibs.Blazor.Components.csproj')" Include="..\ArcaneLibs\ArcaneLibs.Blazor.Components\ArcaneLibs.Blazor.Components.csproj" />
+        <PackageReference Condition="!Exists('..\ArcaneLibs\ArcaneLibs.Blazor.Components\ArcaneLibs.Blazor.Components.csproj')" Include="ArcaneLibs" Version="*-preview*" />
         <ProjectReference Include="..\LibMatrix\LibMatrix\LibMatrix.csproj" />
     </ItemGroup>
 
+
 </Project>
diff --git a/MatrixRoomUtils.Web/Pages/About.razor b/MatrixRoomUtils.Web/Pages/About.razor
index 48c7686..17ed04a 100644
--- a/MatrixRoomUtils.Web/Pages/About.razor
+++ b/MatrixRoomUtils.Web/Pages/About.razor
@@ -1,6 +1,5 @@
 @page "/About"
 @using System.Net
-@using System.Net.Sockets
 @inject NavigationManager NavigationManager
 @inject ILocalStorageService LocalStorage
 
diff --git a/MatrixRoomUtils.Web/Pages/DebugTools.razor b/MatrixRoomUtils.Web/Pages/DebugTools.razor
index afb1da2..5d47277 100644
--- a/MatrixRoomUtils.Web/Pages/DebugTools.razor
+++ b/MatrixRoomUtils.Web/Pages/DebugTools.razor
@@ -1,7 +1,9 @@
 @page "/Debug"
 @using System.Reflection
+@using ArcaneLibs.Extensions
+@using LibMatrix
 @using LibMatrix.Extensions
-@using LibMatrix.Interfaces
+@using LibMatrix.Homeservers
 @inject ILocalStorageService LocalStorage
 @inject NavigationManager NavigationManager
 <h3>Debug Tools</h3>
@@ -50,7 +52,7 @@ else {
     string get_request_result { get; set; } = "";
 
     private async Task SendGetRequest() {
-        var field = typeof(IHomeServer).GetRuntimeFields().First(x => x.ToString().Contains("<_httpClient>k__BackingField"));
+        var field = typeof(RemoteHomeServer).GetRuntimeFields().First(x => x.ToString().Contains("<_httpClient>k__BackingField"));
         var hs = await MRUStorage.GetCurrentSessionOrNavigate();
         if (hs == null) return;
         var httpClient = field.GetValue(hs) as MatrixHttpClient;
diff --git a/MatrixRoomUtils.Web/Pages/DevOptions.razor b/MatrixRoomUtils.Web/Pages/DevOptions.razor
index bf499a3..8511a26 100644
--- a/MatrixRoomUtils.Web/Pages/DevOptions.razor
+++ b/MatrixRoomUtils.Web/Pages/DevOptions.razor
@@ -1,5 +1,6 @@
 @page "/DevOptions"
 @using LibMatrix.Extensions
+@using ArcaneLibs.Extensions
 @inject NavigationManager NavigationManager
 @inject ILocalStorageService LocalStorage
 
diff --git a/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor b/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor
index 679f324..a4f9d97 100644
--- a/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor
+++ b/MatrixRoomUtils.Web/Pages/HSAdmin/RoomQuery.razor
@@ -1,8 +1,10 @@
 @page "/HSAdmin/RoomQuery"
-@using MatrixRoomUtils.Web.Shared.SimpleComponents
 @using LibMatrix.Responses.Admin
 @using LibMatrix.Filters
 @using LibMatrix.Extensions
+@using LibMatrix
+@using LibMatrix.Homeservers
+@using ArcaneLibs.Extensions
 
 <h3>Homeserver Administration - Room Query</h3>
 
@@ -168,15 +170,17 @@
     private async Task Search() {
         Results.Clear();
         var hs = await MRUStorage.GetCurrentSessionOrNavigate();
-        if (hs is null) return;
-        var searchRooms = hs.Admin.SearchRoomsAsync(orderBy: OrderBy!, dir: Ascending ? "f" : "b", searchTerm: SearchTerm, localFilter: Filter).GetAsyncEnumerator();
-        while (await searchRooms.MoveNextAsync()) {
-            var room = searchRooms.Current;
-            Console.WriteLine("Hit: " + room.ToJson(false));
-            Results.Add(room);
-            if (Results.Count % 10 == 0)
-                StateHasChanged();
+        if (hs is AuthenticatedHomeserverSynapse synapse) {
+            var searchRooms = synapse.Admin.SearchRoomsAsync(orderBy: OrderBy!, dir: Ascending ? "f" : "b", searchTerm: SearchTerm, localFilter: Filter).GetAsyncEnumerator();
+            while (await searchRooms.MoveNextAsync()) {
+                var room = searchRooms.Current;
+                Console.WriteLine("Hit: " + room.ToJson(false));
+                Results.Add(room);
+                if (Results.Count % 10 == 0)
+                    StateHasChanged();
+            }
         }
+
     }
 
     private readonly Dictionary<string, string> validOrderBy = new() {
diff --git a/MatrixRoomUtils.Web/Pages/Index.razor b/MatrixRoomUtils.Web/Pages/Index.razor
index 1004ee3..e02c733 100644
--- a/MatrixRoomUtils.Web/Pages/Index.razor
+++ b/MatrixRoomUtils.Web/Pages/Index.razor
@@ -1,8 +1,9 @@
 @page "/"
-@using MatrixRoomUtils.Web.Shared.SimpleComponents
 @using LibMatrix.Responses
 @using LibMatrix
 @using LibMatrix.Helpers
+@using LibMatrix.Homeservers
+@using ArcaneLibs.Extensions
 
 <PageTitle>Index</PageTitle>
 
@@ -13,25 +14,38 @@ Small collection of tools to do not-so-everyday things.
 <h5>Signed in accounts - <a href="/Login">Add new account</a></h5>
 <hr/>
 <form>
-    @foreach (var (auth, user) in _users.OrderByDescending(x=>x.Value.RoomCount)) {
-        var _auth = auth;
-        <div style="margin-bottom: 1em;">
-            <img style="border-radius: 50%; height: 3em; width: 3em;" src="@user.AvatarUrl"/>
-            <p style="margin-left: 1em; margin-top: -0.5em; display: inline-block;">
-                <input type="radio" name="csa" checked="@(_currentSession.AccessToken == _auth.AccessToken)" @onclick="@(()=>SwitchSession(_auth))" style="text-decoration-line: unset;"/>
-                <b>@user.DisplayName</b> on <b>@_auth.Homeserver</b>
-                <a role="button" @onclick="@(() => RemoveUser(_auth))">Remove</a>
+    <table>
+        @foreach (var (auth, user) in _users.OrderByDescending(x => x.Value.RoomCount)) {
+            var _auth = auth;
+            <tr class="user-entry">
+                <td>
+                    <img class="avatar" src="@user.AvatarUrl"/>
+                </td>
+                <td class="user-info">
+                    @* <div class="user-info"> *@
+                    <p>
+                        <input type="radio" name="csa" checked="@(_currentSession.AccessToken == _auth.AccessToken)" @onclick="@(() => SwitchSession(_auth))" style="text-decoration-line: unset;"/>
+                        <b>@user.DisplayName</b> on <b>@_auth.Homeserver</b>
+                    </p>
+                    <p>Member of @user.RoomCount rooms</p>
 
-            </p>
-            <p style="margin-top: -1.5em; margin-left: 4em;">Member of @user.RoomCount rooms</p>
-
-        </div>
-    }
+                    <p>Not proxied</p>
+                </td>
+                <td>
+                    <p>
+                        <LinkButton href="">Manage</LinkButton>
+                        <LinkButton OnClick="@(() => RemoveUser(_auth))">Remove</LinkButton>
+                    </p>
+                </td>
+                @* </div> *@
+            </tr>
+        }
+    </table>
 </form>
 
 @code
 {
-    private Dictionary<LoginResponse, UserInfo> _users = new();
+    private Dictionary<UserAuth, UserInfo> _users = new();
 
     protected override async Task OnInitializedAsync() {
         _currentSession = await MRUStorage.GetCurrentToken();
@@ -39,13 +53,13 @@ Small collection of tools to do not-so-everyday things.
         var tokens = await MRUStorage.GetAllTokens();
         var profileTasks = tokens.Select(async token => {
             UserInfo userInfo = new();
-            AuthenticatedHomeServer hs;
+            AuthenticatedHomeserverGeneric hs;
             try {
                 hs = await HomeserverProvider.GetAuthenticatedWithToken(token.Homeserver, token.AccessToken);
             }
             catch (MatrixException e) {
                 if (e.ErrorCode == "M_UNKNOWN_TOKEN") {
-                    NavigationManager.NavigateTo("/InvalidSession?ctx="+token.AccessToken);
+                    NavigationManager.NavigateTo("/InvalidSession?ctx=" + token.AccessToken);
                     return;
                 }
                 throw;
@@ -53,6 +67,7 @@ Small collection of tools to do not-so-everyday things.
             var roomCountTask = hs.GetJoinedRooms();
             var profile = await hs.GetProfile(hs.WhoAmI.UserId);
             userInfo.DisplayName = profile.DisplayName ?? hs.WhoAmI.UserId;
+            Console.WriteLine(profile.ToJson());
             userInfo.AvatarUrl = MediaResolver.ResolveMediaUri(hs.FullHomeServerDomain,
                 profile.AvatarUrl
                 ?? "https://api.dicebear.com/6.x/identicon/svg?seed=" + hs.WhoAmI.UserId
@@ -71,7 +86,7 @@ Small collection of tools to do not-so-everyday things.
         internal int RoomCount { get; set; }
     }
 
-    private async Task RemoveUser(LoginResponse auth) {
+    private async Task RemoveUser(UserAuth auth) {
         await MRUStorage.RemoveToken(auth);
         if ((await MRUStorage.GetCurrentToken()).AccessToken == auth.AccessToken)
             MRUStorage.SetCurrentToken((await MRUStorage.GetAllTokens()).FirstOrDefault());
@@ -80,8 +95,8 @@ Small collection of tools to do not-so-everyday things.
 
     private LoginResponse _currentSession;
 
-    private async Task SwitchSession(LoginResponse auth) {
-        Console.WriteLine($"Switching to {auth.Homeserver} {auth.AccessToken} {auth.UserId}");
+    private async Task SwitchSession(UserAuth auth) {
+        Console.WriteLine($"Switching to {auth.Homeserver} {auth.UserId} via {auth.Proxy}");
         await MRUStorage.SetCurrentToken(auth);
         await OnInitializedAsync();
     }
diff --git a/MatrixRoomUtils.Web/Pages/Index.razor.css b/MatrixRoomUtils.Web/Pages/Index.razor.css
new file mode 100644
index 0000000..c6b7bd7
--- /dev/null
+++ b/MatrixRoomUtils.Web/Pages/Index.razor.css
@@ -0,0 +1,25 @@
+.user-entry {
+    margin-bottom: 1em;
+}
+
+.avatar {
+    width: 4em;
+    height: 4em;
+    border-radius: 50%;
+    margin-right: 0.5em;
+    vertical-align: middle;
+}
+
+.user-entry > td {
+    margin-right: 0.5em;
+    vertical-align: middle;
+}
+
+.user-info {
+    margin-bottom: 0.5em;
+    display: inline-block;
+    vertical-align: middle;
+}
+.user-info > p {
+    margin: 0;
+}
diff --git a/MatrixRoomUtils.Web/Pages/InvalidSession.razor b/MatrixRoomUtils.Web/Pages/InvalidSession.razor
index f555be5..310abb1 100644
--- a/MatrixRoomUtils.Web/Pages/InvalidSession.razor
+++ b/MatrixRoomUtils.Web/Pages/InvalidSession.razor
@@ -1,5 +1,4 @@
 @page "/InvalidSession"
-@using MatrixRoomUtils.Web.Shared.SimpleComponents
 @using LibMatrix.Responses
 @using LibMatrix
 
@@ -33,7 +32,7 @@ else {
     [SupplyParameterFromQuery(Name = "ctx")]
     public string Context { get; set; }
 
-    private LoginResponse? _login { get; set; }
+    private UserAuth? _login { get; set; }
 
     private bool _showRefreshDialog { get; set; }
 
@@ -70,7 +69,7 @@ else {
         await Task.CompletedTask;
     }
 
-    private async Task SwitchSession(LoginResponse auth) {
+    private async Task SwitchSession(UserAuth auth) {
         Console.WriteLine($"Switching to {auth.Homeserver} {auth.AccessToken} {auth.UserId}");
         await MRUStorage.SetCurrentToken(auth);
         await OnInitializedAsync();
@@ -79,7 +78,7 @@ else {
     private async Task TryLogin() {
         if(_login is null) throw new NullReferenceException("Login is null!");
         try {
-            var result = await HomeserverProvider.Login(_login.Homeserver, _login.UserId, _password);
+            var result = new UserAuth(await HomeserverProvider.Login(_login.Homeserver, _login.UserId, _password));
             if (result is null) {
                 Console.WriteLine($"Failed to login to {_login.Homeserver} as {_login.UserId}!");
                 return;
diff --git a/MatrixRoomUtils.Web/Pages/KnownHomeserverList.razor b/MatrixRoomUtils.Web/Pages/KnownHomeserverList.razor
index 22a004d..4cd2032 100644
--- a/MatrixRoomUtils.Web/Pages/KnownHomeserverList.razor
+++ b/MatrixRoomUtils.Web/Pages/KnownHomeserverList.razor
@@ -1,10 +1,10 @@
 @page "/KnownHomeserverList"
-@using System.Text.Json
 @using System.Diagnostics
+@using ArcaneLibs.Extensions
 @using LibMatrix
 @using LibMatrix.Extensions
+@using LibMatrix.Homeservers
 @using LibMatrix.RoomTypes
-@using LibMatrix.StateEventTypes
 <h3>Known Homeserver List</h3>
 <hr/>
 
@@ -36,7 +36,7 @@ else {
     List<HomeServerInfo> HomeServers = new();
     bool IsFinished { get; set; }
     HomeServerInfoQueryProgress QueryProgress { get; set; } = new();
-    AuthenticatedHomeServer hs { get; set; }
+    AuthenticatedHomeserverGeneric hs { get; set; }
     protected override async Task OnInitializedAsync() {
         hs = await MRUStorage.GetCurrentSessionOrNavigate();
         if (hs is null) return;
@@ -91,7 +91,7 @@ else {
 
 
 
-    //         states.RemoveAll(x => x.Type != "m.room.member" || (x.TypedContent as RoomMemberEventData).Membership != "join");
+    //         states.RemoveAll(x => x.Type != "m.room.member" || (x.TypedContent as RoomMemberEventContent).Membership != "join");
     //         Console.WriteLine($"Room {room.RoomId} has {states.Count} members");
     //         if (states.Count > memberLimit) {
     //             Console.WriteLine("Skipping!");
diff --git a/MatrixRoomUtils.Web/Pages/LoginPage.razor b/MatrixRoomUtils.Web/Pages/LoginPage.razor
index 9730cbe..a6ce469 100644
--- a/MatrixRoomUtils.Web/Pages/LoginPage.razor
+++ b/MatrixRoomUtils.Web/Pages/LoginPage.razor
@@ -1,7 +1,6 @@
 @page "/Login"
 @using System.Text.Json
 @using LibMatrix.Responses
-@using MatrixRoomUtils.Web.Shared.SimpleComponents
 @inject ILocalStorageService LocalStorage
 @inject IJSRuntime JsRuntime
 <h3>Login</h3>
@@ -12,6 +11,8 @@
     --><FancyTextBox @bind-Value="@newRecordInput.username"></FancyTextBox><!--
     --><span>:</span><!--
     --><FancyTextBox @bind-Value="@newRecordInput.homeserver"></FancyTextBox>
+    via
+    <FancyTextBox @bind-Value="@newRecordInput.password" IsPassword="true"></FancyTextBox>
 </span>
 <span style="display: block;">
     <label>Password:</label>
@@ -29,13 +30,27 @@
     <thead>
         <td>Username</td>
         <td>Homeserver</td>
+        <td>Password</td>
+        <td>Proxy</td>
     </thead>
-    @foreach (var (homeserver, username, password) in records) {
-        var record = (homeserver, username, password);
-        <tr style="background-color: @(LoggedInSessions.Any(x => x.UserId == $"@{username}:{homeserver}") ? "green" : "unset")">
-            <td style="border-width: 1px;">@username</td>
-            <td style="border-width: 1px;">@homeserver</td>
-            <td><a role="button" @onclick="() => records.Remove(record)">Remove</a></td>
+    @foreach (var record in records) {
+        var r = record;
+        <tr style="background-color: @(LoggedInSessions.Any(x => x.UserId == $"@{r.username}:{r.homeserver}" && x.Proxy == r.proxy) ? "green" : "unset")">
+            <td style="border-width: 1px;">
+                <FancyTextBox @bind-Value="@r.homeserver"></FancyTextBox>
+            </td>
+            <td style="border-width: 1px;">
+                <FancyTextBox @bind-Value="@r.username"></FancyTextBox>
+            </td>
+            <td style="border-width: 1px;">
+                <FancyTextBox @bind-Value="@r.password" IsPassword="true"></FancyTextBox>
+            </td>
+            <td style="border-width: 1px;">
+                <FancyTextBox @bind-Value="@r.proxy"></FancyTextBox>
+            </td>
+            <td>
+                <a role="button" @onclick="() => records.Remove(r)">Remove</a>
+            </td>
         </tr>
     }
 </table>
@@ -45,17 +60,19 @@
 <LogView></LogView>
 
 @code {
-    readonly List<(string homeserver, string username, string password)> records = new();
-    (string homeserver, string username, string password) newRecordInput = ("", "", "");
+    readonly List<(string homeserver, string username, string password, string? proxy)> records = new();
+    (string homeserver, string username, string password, string? proxy) newRecordInput = ("", "", "", null);
 
-    List<LoginResponse> LoggedInSessions { get; set; } = new();
+    List<UserAuth>? LoggedInSessions { get; set; } = new();
 
     async Task Login() {
         var loginTasks = records.Select(async record => {
-            var (homeserver, username, password) = record;
-            if (LoggedInSessions.Any(x => x.UserId == $"@{username}:{homeserver}")) return;
+            var (homeserver, username, password, proxy) = record;
+            if (LoggedInSessions.Any(x => x.UserId == $"@{username}:{homeserver}" && x.Proxy == proxy)) return;
             try {
-                var result = await HomeserverProvider.Login(homeserver, username, password);
+                var result = new UserAuth(await HomeserverProvider.Login(homeserver, username, password, proxy)) {
+                    Proxy = proxy
+                };
                 if (result == null) {
                     Console.WriteLine($"Failed to login to {homeserver} as {username}!");
                     return;
@@ -81,20 +98,21 @@
         }));
         await using var rs = obj.File.OpenReadStream();
         using var sr = new StreamReader(rs);
-        var TsvData = await sr.ReadToEndAsync();
+        var tsvData = await sr.ReadToEndAsync();
         records.Clear();
-        foreach (var line in TsvData.Split('\n')) {
-            var parts = line.Split('\t');
-            if (parts.Length != 3)
+        foreach (var line in tsvData.Split('\n')) {
+            string?[] parts = line.Split('\t');
+            if (parts.Length < 3)
                 continue;
-            records.Add((parts[0], parts[1], parts[2]));
+            string? via = parts.Length > 3 ? parts[3] : null;
+            records.Add((parts[0], parts[1], parts[2], via));
         }
     }
 
     private async Task AddRecord() {
         LoggedInSessions = await MRUStorage.GetAllTokens();
         records.Add(newRecordInput);
-        newRecordInput = ("", "", "");
+        newRecordInput = ("", "", "", null);
     }
 
 }
diff --git a/MatrixRoomUtils.Web/Pages/MediaLocator.razor b/MatrixRoomUtils.Web/Pages/MediaLocator.razor
index af6e67a..42c7b8e 100644
--- a/MatrixRoomUtils.Web/Pages/MediaLocator.razor
+++ b/MatrixRoomUtils.Web/Pages/MediaLocator.razor
@@ -1,5 +1,6 @@
 @page "/MediaLocator"
 @using LibMatrix
+@using LibMatrix.Homeservers
 @inject HttpClient Http
 <h3>Media locator</h3>
 <hr/>
diff --git a/MatrixRoomUtils.Web/Pages/ModalTest.razor b/MatrixRoomUtils.Web/Pages/ModalTest.razor
index 2b1c9bc..1d14005 100644
--- a/MatrixRoomUtils.Web/Pages/ModalTest.razor
+++ b/MatrixRoomUtils.Web/Pages/ModalTest.razor
@@ -10,7 +10,7 @@
      <ModalWindow X="@Random.Shared.Next(1400)" Y="@Random.Shared.Next(1000)" Title="@("Window " + i1)" OnCloseClicked="() => OnCloseClicked(i1)">
           @for (var j = 0; j < i1; j++) {
               <h1>@j</h1>
-          } 
+          }
      </ModalWindow>
 }
 
@@ -70,7 +70,7 @@
             }
             if(_windowInfos.Count > 750) multiplier = 2;
             if(_windowInfos.Count > 1500) multiplier = 3;
-            
+
         }
 
         await base.OnInitializedAsync();
diff --git a/MatrixRoomUtils.Web/Pages/Rooms/Create.razor b/MatrixRoomUtils.Web/Pages/Rooms/Create.razor
index 3b7d000..c6fd5b6 100644
--- a/MatrixRoomUtils.Web/Pages/Rooms/Create.razor
+++ b/MatrixRoomUtils.Web/Pages/Rooms/Create.razor
@@ -1,15 +1,15 @@
 @page "/Rooms/Create"
 @using System.Text.Json
 @using System.Reflection
+@using ArcaneLibs.Extensions
 @using LibMatrix
 @using LibMatrix.Extensions
 @using LibMatrix.Helpers
+@using LibMatrix.Homeservers
 @using LibMatrix.Responses
 @using LibMatrix.StateEventTypes.Spec
-@using LibMatrix.StateEventTypes
 @using MatrixRoomUtils.Web.Classes.RoomCreationTemplates
 @* @* ReSharper disable once RedundantUsingDirective - Must not remove this, Rider marks this as "unused" when it's not */ *@
-@using MatrixRoomUtils.Web.Shared.SimpleComponents
 
 <h3>Room Manager - Create Room</h3>
 
@@ -135,7 +135,7 @@
                 }
                 else {
                     <details>
-                        <summary>@((creationEvent["m.room.server_acls"].TypedContent as ServerACLEventData).Allow.Count) allow rules</summary>
+                        <summary>@((creationEvent["m.room.server_acls"].TypedContent as ServerACLEventContent).Allow.Count) allow rules</summary>
                         @* <StringListEditor @bind-Items="@serverAcl.Allow"></StringListEditor> *@
                     </details>
                 }
@@ -145,7 +145,7 @@
                 }
                 else {
                     <details>
-                        <summary>@((creationEvent["m.room.server_acls"].TypedContent as ServerACLEventData).Deny.Count) deny rules</summary>
+                        <summary>@((creationEvent["m.room.server_acls"].TypedContent as ServerACLEventContent).Deny.Count) deny rules</summary>
                         @* <StringListEditor @bind-Items="@serverAcl.Allow"></StringListEditor> *@
                     </details>
                 }
@@ -251,14 +251,14 @@
     private CreateRoomRequest? creationEvent { get; set; }
 
     private Dictionary<string, CreateRoomRequest>? Presets { get; set; } = new();
-    private AuthenticatedHomeServer? HomeServer { get; set; }
+    private AuthenticatedHomeserverGeneric? HomeServer { get; set; }
 
     private MatrixException? _matrixException { get; set; }
 
-    private HistoryVisibilityEventData? historyVisibility => creationEvent?["m.room.history_visibility"].TypedContent as HistoryVisibilityEventData;
-    private GuestAccessEventData? guestAccessEvent => creationEvent?["m.room.guest_access"].TypedContent as GuestAccessEventData;
-    private ServerACLEventData? serverAcl => creationEvent?["m.room.server_acls"].TypedContent as ServerACLEventData;
-    private RoomAvatarEventData? roomAvatarEvent => creationEvent?["m.room.avatar"].TypedContent as RoomAvatarEventData;
+    private HistoryVisibilityEventContent? historyVisibility => creationEvent?["m.room.history_visibility"].TypedContent as HistoryVisibilityEventContent;
+    private GuestAccessEventContent? guestAccessEvent => creationEvent?["m.room.guest_access"].TypedContent as GuestAccessEventContent;
+    private ServerACLEventContent? serverAcl => creationEvent?["m.room.server_acls"].TypedContent as ServerACLEventContent;
+    private RoomAvatarEventContent? roomAvatarEvent => creationEvent?["m.room.avatar"].TypedContent as RoomAvatarEventContent;
 
     protected override async Task OnInitializedAsync() {
         HomeServer = await MRUStorage.GetCurrentSessionOrNavigate();
@@ -284,7 +284,7 @@
     private async Task RoomIconFilePicked(InputFileChangeEventArgs obj) {
         var res = await HomeServer.UploadFile(obj.File.Name, obj.File.OpenReadStream(), obj.File.ContentType);
         Console.WriteLine(res);
-        (creationEvent["m.room.avatar"].TypedContent as RoomAvatarEventData).Url = res;
+        (creationEvent["m.room.avatar"].TypedContent as RoomAvatarEventContent).Url = res;
         StateHasChanged();
     }
 
@@ -305,7 +305,7 @@
             creationEvent.InitialState.Add(new StateEvent {
                 Type = "m.room.member",
                 StateKey = mxid,
-                TypedContent = new RoomMemberEventData {
+                TypedContent = new RoomMemberEventContent {
                     Membership = "invite",
                     Reason = "Automatically invited at room creation time."
                 }
diff --git a/MatrixRoomUtils.Web/Pages/Rooms/Index.razor b/MatrixRoomUtils.Web/Pages/Rooms/Index.razor
index ad3a714..c2daba7 100644
--- a/MatrixRoomUtils.Web/Pages/Rooms/Index.razor
+++ b/MatrixRoomUtils.Web/Pages/Rooms/Index.razor
@@ -1,10 +1,10 @@
 @page "/Rooms"
-@using LibMatrix.StateEventTypes
 @using LibMatrix.StateEventTypes.Spec
 @using LibMatrix.Filters
 @using LibMatrix.Helpers
 @using LibMatrix.Responses
 <h3>Room list</h3>
+
 <p>@Status</p>
 @if (RenderContents) {
     <RoomList Rooms="Rooms" GlobalProfile="@GlobalProfile"></RoomList>
@@ -16,7 +16,7 @@
     public List<RoomInfo> KnownRooms { get; set; } = new();
 
     private List<RoomInfo> Rooms { get; set; } = new();
-    private ProfileResponseEventData GlobalProfile { get; set; }
+    private ProfileResponseEventContent GlobalProfile { get; set; }
 
     private SyncFilter filter = new() {
         AccountData = new SyncFilter.EventFilter {
@@ -93,7 +93,7 @@
             if (!roomInfo.StateEvents.Any(x => x.Type == "m.room.name")) {
                 roomInfo.StateEvents.Add(new StateEventResponse {
                     Type = "m.room.name",
-                    TypedContent = new RoomNameEventData {
+                    TypedContent = new RoomNameEventContent {
                         Name = roomInfo.Room.RoomId
                     }
                 });
@@ -101,7 +101,7 @@
             if (!roomInfo.StateEvents.Any(x => x.Type == "m.room.avatar")) {
                 roomInfo.StateEvents.Add(new StateEventResponse {
                     Type = "m.room.avatar",
-                    TypedContent = new RoomAvatarEventData {
+                    TypedContent = new RoomAvatarEventContent {
 
                     }
                 });
@@ -121,7 +121,7 @@
                 roomInfo.StateEvents.Add(new StateEventResponse {
                     Type = "m.room.member",
                     StateKey = hs.WhoAmI.UserId,
-                    TypedContent = await roomInfo.Room.GetStateAsync<RoomMemberEventData>("m.room.member", hs.WhoAmI.UserId) ?? new RoomMemberEventData {
+                    TypedContent = await roomInfo.Room.GetStateAsync<RoomMemberEventContent>("m.room.member", hs.WhoAmI.UserId) ?? new RoomMemberEventContent {
                         Membership = "unknown"
                     }
                 });
diff --git a/MatrixRoomUtils.Web/Pages/Rooms/PolicyList.razor b/MatrixRoomUtils.Web/Pages/Rooms/PolicyList.razor
index 2b31389..d2b8360 100644
--- a/MatrixRoomUtils.Web/Pages/Rooms/PolicyList.razor
+++ b/MatrixRoomUtils.Web/Pages/Rooms/PolicyList.razor
@@ -1,11 +1,11 @@
 @page "/Rooms/{RoomId}/Policies"
-@using LibMatrix.StateEventTypes
-@using System.Text.Json
 @using LibMatrix
 @using LibMatrix.Extensions
 @using LibMatrix.Helpers
+@using LibMatrix.Homeservers
 @using LibMatrix.Responses
 @using LibMatrix.StateEventTypes.Spec
+@using ArcaneLibs.Extensions
 <h3>Policy list editor - Editing @RoomId</h3>
 <hr/>
 
@@ -33,8 +33,8 @@ else {
         </tr>
         </thead>
         <tbody>
-        @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.server" && (x.TypedContent as PolicyRuleStateEventData).Entity is not null)) {
-            var policyData = policyEvent.TypedContent as PolicyRuleStateEventData;
+        @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.server" && (x.TypedContent as PolicyRuleEventContent).Entity is not null)) {
+            var policyData = policyEvent.TypedContent as PolicyRuleEventContent;
             <tr>
                 <td>Entity: @policyData.Entity<br/>State: @policyEvent.StateKey</td>
                 <td>@policyData.Reason</td>
@@ -59,8 +59,8 @@ else {
             </tr>
             </thead>
             <tbody>
-            @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.server" && (x.TypedContent as PolicyRuleStateEventData).Entity == null)) {
-                var policyData = policyEvent.TypedContent as PolicyRuleStateEventData;
+            @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.server" && (x.TypedContent as PolicyRuleEventContent).Entity == null)) {
+                var policyData = policyEvent.TypedContent as PolicyRuleEventContent;
                 <tr>
                     <td>@policyEvent.StateKey</td>
                     <td>@policyEvent.RawContent.ToJson(false, true)</td>
@@ -86,8 +86,8 @@ else {
         </tr>
         </thead>
         <tbody>
-        @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.room" && (x.TypedContent as PolicyRuleStateEventData).Entity is not null)) {
-            var policyData = policyEvent.TypedContent as PolicyRuleStateEventData;
+        @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.room" && (x.TypedContent as PolicyRuleEventContent).Entity is not null)) {
+            var policyData = policyEvent.TypedContent as PolicyRuleEventContent;
             <tr>
                 <td>Entity: @policyData.Entity<br/>State: @policyEvent.StateKey</td>
                 <td>@policyData.Reason</td>
@@ -111,7 +111,7 @@ else {
             </tr>
             </thead>
             <tbody>
-            @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.room" && (x.TypedContent as PolicyRuleStateEventData).Entity == null)) {
+            @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.room" && (x.TypedContent as PolicyRuleEventContent).Entity == null)) {
                 <tr>
                     <td>@policyEvent.StateKey</td>
                     <td>@policyEvent.RawContent!.ToJson(false, true)</td>
@@ -140,8 +140,8 @@ else {
         </tr>
         </thead>
         <tbody>
-        @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.user" && (x.TypedContent as PolicyRuleStateEventData).Entity is not null)) {
-            var policyData = policyEvent.TypedContent as PolicyRuleStateEventData;
+        @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.user" && (x.TypedContent as PolicyRuleEventContent).Entity is not null)) {
+            var policyData = policyEvent.TypedContent as PolicyRuleEventContent;
             <tr>
                 @if (_enableAvatars) {
                     <td scope="col">
@@ -170,7 +170,7 @@ else {
             </tr>
             </thead>
             <tbody>
-            @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.user" && (x.TypedContent as PolicyRuleStateEventData).Entity == null)) {
+            @foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.user" && (x.TypedContent as PolicyRuleEventContent).Entity == null)) {
                 <tr>
                     <td>@policyEvent.StateKey</td>
                     <td>@policyEvent.RawContent.ToJson(false, true)</td>
@@ -245,8 +245,8 @@ else {
     }
 
     private async Task GetAllAvatars() {
-        foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.user" && (x.TypedContent as PolicyRuleStateEventData).Entity is not null)) {
-            await GetAvatar((policyEvent.TypedContent as PolicyRuleStateEventData).Entity);
+        foreach (var policyEvent in PolicyEvents.Where(x => x.Type == "m.policy.rule.user" && (x.TypedContent as PolicyRuleEventContent).Entity is not null)) {
+            await GetAvatar((policyEvent.TypedContent as PolicyRuleEventContent).Entity);
         }
         StateHasChanged();
     }
diff --git a/MatrixRoomUtils.Web/Pages/Rooms/Space.razor b/MatrixRoomUtils.Web/Pages/Rooms/Space.razor
index c37b8ab..ef0ea5a 100644
--- a/MatrixRoomUtils.Web/Pages/Rooms/Space.razor
+++ b/MatrixRoomUtils.Web/Pages/Rooms/Space.razor
@@ -1,8 +1,8 @@
 @page "/Rooms/{RoomId}/Space"
-@using System.Text.Json
 @using LibMatrix.Extensions
 @using LibMatrix.Responses
 @using LibMatrix.RoomTypes
+@using ArcaneLibs.Extensions
 <h3>Room manager - Viewing Space</h3>
 
 <button onclick="@JoinAllRooms">Join all rooms</button>
diff --git a/MatrixRoomUtils.Web/Pages/Rooms/StateEditor.razor b/MatrixRoomUtils.Web/Pages/Rooms/StateEditor.razor
index ef7cd51..fefcabc 100644
--- a/MatrixRoomUtils.Web/Pages/Rooms/StateEditor.razor
+++ b/MatrixRoomUtils.Web/Pages/Rooms/StateEditor.razor
@@ -1,8 +1,7 @@
 @page "/Rooms/{RoomId}/State/Edit"
-@using System.Net.Http.Headers
-@using System.Text.Json
 @using LibMatrix.Extensions
 @using LibMatrix.Responses
+@using ArcaneLibs.Extensions
 @inject ILocalStorageService LocalStorage
 @inject NavigationManager NavigationManager
 <h3>Room state editor - Editing @RoomId</h3>
diff --git a/MatrixRoomUtils.Web/Pages/Rooms/StateViewer.razor b/MatrixRoomUtils.Web/Pages/Rooms/StateViewer.razor
index 5a48b32..1c3f28b 100644
--- a/MatrixRoomUtils.Web/Pages/Rooms/StateViewer.razor
+++ b/MatrixRoomUtils.Web/Pages/Rooms/StateViewer.razor
@@ -1,8 +1,7 @@
 @page "/Rooms/{RoomId}/State/View"
-@using System.Net.Http.Headers
-@using System.Text.Json
 @using LibMatrix.Extensions
 @using LibMatrix.Responses
+@using ArcaneLibs.Extensions
 @inject ILocalStorageService LocalStorage
 @inject NavigationManager NavigationManager
 <h3>Room state viewer - Viewing @RoomId</h3>
diff --git a/MatrixRoomUtils.Web/Pages/Rooms/Timeline.razor b/MatrixRoomUtils.Web/Pages/Rooms/Timeline.razor
index 4a5298b..2c95c99 100644
--- a/MatrixRoomUtils.Web/Pages/Rooms/Timeline.razor
+++ b/MatrixRoomUtils.Web/Pages/Rooms/Timeline.razor
@@ -1,6 +1,7 @@
 @page "/Rooms/{RoomId}/Timeline"
 @using MatrixRoomUtils.Web.Shared.TimelineComponents
 @using LibMatrix
+@using LibMatrix.Homeservers
 @using LibMatrix.Responses
 @using LibMatrix.StateEventTypes.Spec
 <h3>RoomManagerTimeline</h3>
@@ -23,7 +24,7 @@
     private List<MessagesResponse> Messages { get; } = new();
     private List<StateEventResponse> Events { get; } = new();
 
-    private AuthenticatedHomeServer? HomeServer { get; set; }
+    private AuthenticatedHomeserverGeneric? HomeServer { get; set; }
 
     protected override async Task OnInitializedAsync() {
         Console.WriteLine("RoomId: " + RoomId);
@@ -46,8 +47,9 @@
     private StateEventResponse GetProfileEventBefore(StateEventResponse Event) => Events.TakeWhile(x => x != Event).Last(e => e.Type == "m.room.member" && e.StateKey == Event.Sender);
 
     private Type ComponentType(StateEvent Event) => Event.TypedContent switch {
-        RoomMessageEventData => typeof(TimelineMessageItem),
-        RoomMemberEventData => typeof(TimelineMemberItem),
+        RoomMessageEventContent => typeof(TimelineMessageItem),
+        RoomMemberEventContent => typeof(TimelineMemberItem),
+        RoomCreateEventContent => typeof(TimelineRoomCreateItem),
         _ => typeof(TimelineUnknownItem)
         };
 
diff --git a/MatrixRoomUtils.Web/Pages/SpaceDebug.razor b/MatrixRoomUtils.Web/Pages/SpaceDebug.razor
new file mode 100644
index 0000000..c4c4ce8
--- /dev/null
+++ b/MatrixRoomUtils.Web/Pages/SpaceDebug.razor
@@ -0,0 +1,114 @@
+@page "/SpaceDebug"
+@using LibMatrix.StateEventTypes.Spec
+@using LibMatrix.RoomTypes
+@using LibMatrix.Filters
+<h3>SpaceDebug</h3>
+<hr/>
+
+<p>@Status</p>
+
+<b>Has parent:</b>
+<br/>
+
+@foreach (var (roomId, parents) in SpaceParents) {
+    <p>@roomId's parents</p>
+    <ul>
+        @foreach (var parent in parents) {
+            <li>@parent</li>
+        }
+    </ul>
+}
+
+<b>Space children:</b>
+
+@foreach (var (roomId, children) in SpaceChildren) {
+    <p>@roomId's children</p>
+    <ul>
+        @foreach (var child in children) {
+            <li>@child</li>
+        }
+    </ul>
+}
+
+@code {
+    private string _status = "Loading...";
+
+    public string Status {
+        get => _status;
+        set {
+            _status = value;
+            StateHasChanged();
+        }
+    }
+
+    public Dictionary<string, List<string>> SpaceChildren { get; set; } = new();
+    public Dictionary<string, List<string>> SpaceParents { get; set; } = new();
+
+    protected override async Task OnInitializedAsync() {
+        Status = "Getting homeserver...";
+        var hs = await MRUStorage.GetCurrentSessionOrNavigate();
+        if (hs is null) return;
+
+        Status = "Syncing...";
+        string nextBatch = null;
+        while (nextBatch != "end") {
+            var sync = await hs.SyncHelper.Sync(since: nextBatch, filter: new SyncFilter() {
+                Presence = new(0),
+                Room = new() {
+                    AccountData = new(limit: 0),
+                    Ephemeral = new(limit: 0),
+                    State = new(limit: 1000, types: new() { "m.space.child", "m.space.parent" }),
+                    Timeline = new(limit: 0)
+                },
+                AccountData = new(limit: 0)
+            });
+
+            if (sync is null) {
+                Status = "Sync failed";
+                continue;
+            }
+
+            if (sync.Rooms is null) {
+                Status = "No rooms in sync...";
+                nextBatch = "end";
+                continue;
+            }
+
+            if (sync.Rooms.Join is null) {
+                Status = "No joined rooms in sync...";
+                nextBatch = "end";
+                continue;
+            }
+
+            if (sync.Rooms.Join.Count == 0) {
+                Status = "Joined rooms list was empty...";
+                nextBatch = "end";
+                continue;
+            }
+
+            nextBatch = sync.NextBatch;
+            foreach (var (roomId, data) in sync.Rooms!.Join!) {
+                data.State?.Events?.ForEach(e => {
+                    if (e.Type == "m.space.child") {
+                        if (!SpaceChildren.ContainsKey(roomId)) SpaceChildren[roomId] = new();
+                        if (e.RawContent is null) e.StateKey += " (null)";
+                        else if (e.RawContent.Count == 0) e.StateKey += " (empty)";
+                        SpaceChildren[roomId].Add(e.StateKey);
+                    }
+                    if (e.Type == "m.space.parent") {
+                        if (!SpaceParents.ContainsKey(roomId)) SpaceParents[roomId] = new();
+                        if (e.RawContent is null) e.StateKey += " (null)";
+                        else if (e.RawContent.Count == 0) e.StateKey += " (empty)";
+                        SpaceParents[roomId].Add(e.StateKey);
+                    }
+                });
+            }
+            Status = $"Synced {sync.Rooms.Join.Count} rooms, found {SpaceChildren.Count} spaces, {SpaceParents.Count} parents";
+        }
+        Status = $"Synced: found {SpaceChildren.Count}->{SpaceChildren.Sum(x => x.Value.Count)} spaces, {SpaceParents.Count}->{SpaceParents.Sum(x => x.Value.Count)} parents!";
+
+        await base.OnInitializedAsync();
+    }
+
+
+}
diff --git a/MatrixRoomUtils.Web/Shared/InlineUserItem.razor b/MatrixRoomUtils.Web/Shared/InlineUserItem.razor
index db66309..af2fa29 100644
--- a/MatrixRoomUtils.Web/Shared/InlineUserItem.razor
+++ b/MatrixRoomUtils.Web/Shared/InlineUserItem.razor
@@ -2,6 +2,7 @@
 @using LibMatrix.StateEventTypes.Spec
 @using LibMatrix
 @using LibMatrix.Helpers
+@using LibMatrix.Homeservers
 <div style="background-color: #ffffff11; border-radius: 0.5em; height: 1em; display: inline-block; vertical-align: middle;" alt="@UserId">
     <img style="@(ChildContent is not null ? "vertical-align: baseline;" : "vertical-align: top;") width: 1em; height: 1em; border-radius: 50%;" src="@ProfileAvatar"/>
     <span style="position: relative; top: -5px;">@ProfileName</span>
@@ -20,10 +21,10 @@
     public RenderFragment? ChildContent { get; set; }
 
     [Parameter]
-    public ProfileResponseEventData User { get; set; }
+    public ProfileResponseEventContent User { get; set; }
 
     [Parameter]
-    public ProfileResponseEventData MemberEvent { get; set; }
+    public ProfileResponseEventContent MemberEvent { get; set; }
 
     [Parameter]
     public string? UserId { get; set; }
@@ -35,7 +36,7 @@
     public string? ProfileName { get; set; } = null;
 
     [Parameter]
-    public AuthenticatedHomeServer? HomeServer { get; set; }
+    public AuthenticatedHomeserverGeneric? HomeServer { get; set; }
 
     private static SemaphoreSlim _semaphoreSlim = new(128);
 
@@ -50,7 +51,7 @@
             throw new ArgumentNullException(nameof(UserId));
 
         if (MemberEvent != null) {
-            User = new ProfileResponseEventData {
+            User = new ProfileResponseEventContent {
                 AvatarUrl = MemberEvent.AvatarUrl,
                 DisplayName = MemberEvent.DisplayName
             };
diff --git a/MatrixRoomUtils.Web/Shared/ModalWindow.razor b/MatrixRoomUtils.Web/Shared/ModalWindow.razor
deleted file mode 100644
index beb7198..0000000
--- a/MatrixRoomUtils.Web/Shared/ModalWindow.razor
+++ /dev/null
@@ -1,86 +0,0 @@
-@using LibMatrix.Extensions
-<div class="r-modal" style="top: @(_y)px; left: @(_x)px;">
-    <div class="titlebar" @onmousedown="MouseDown" @onmouseup="MouseUp" @onmousemove="MouseMove" @onmouseleave="MouseMove">
-        <b class="title" @ref="_titleRef">@Title</b>
-        <button class="btnclose" @onclick="OnCloseClicked">X</button>
-        <button class="btncollapse" @onclick="@(() => Collapsed = !Collapsed)">_</button>
-    </div>
-    <div class="r-modal-content" style="@((Collapsed ? "height: 0px;" : "") + $"min-width: {MinWidth}px;")">
-        @ChildContent
-    </div>
-</div>
-
-@code {
-
-    [Parameter]
-    public RenderFragment? ChildContent { get; set; }
-
-    [Parameter]
-    public string Title { get; set; } = "Untitled window";
-
-    [Parameter]
-    public double X { get; set; } = 60;
-
-    [Parameter]
-    public double Y { get; set; } = 60;
-
-    [Parameter]
-    public double MinWidth { get; set; } = 100;
-
-    [Parameter]
-    public Action OnCloseClicked { get; set; }
-
-    [Parameter]
-    public bool Collapsed { get; set; } = false;
-
-    private ElementReference _titleRef;
-
-    private double _x = 60;
-    private double _y = 60;
-
-    protected override async Task OnInitializedAsync() {
-        _x = X;
-        _y = Y;
-        await base.OnInitializedAsync();
-    }
-
-    protected override async Task OnAfterRenderAsync(bool firstRender) {
-    //set minwidth to title width
-        MinWidth = await JSRuntime.InvokeAsync<int>("getWidth", _titleRef) + 75;
-        await base.OnAfterRenderAsync(firstRender);
-    }
-
-    private void WindowDrag(DragEventArgs obj) {
-        Console.WriteLine("Drag: " + obj.ToJson());
-
-        _x += obj.MovementX;
-        _y += obj.MovementY;
-
-        StateHasChanged();
-    }
-
-    private bool isDragging = false;
-    private double dragX = 0;
-    private double dragY = 0;
-
-    private void MouseDown(MouseEventArgs obj) {
-        isDragging = true;
-        dragX = obj.ClientX;
-        dragY = obj.ClientY;
-    }
-
-    private void MouseUp(MouseEventArgs obj) {
-        isDragging = false;
-    }
-
-    private void MouseMove(MouseEventArgs obj) {
-        if (!isDragging) return;
-
-        _x += obj.ClientX - dragX;
-        _y += obj.ClientY - dragY;
-        dragX = obj.ClientX;
-        dragY = obj.ClientY;
-        StateHasChanged();
-    }
-
-}
diff --git a/MatrixRoomUtils.Web/Shared/ModalWindow.razor.css b/MatrixRoomUtils.Web/Shared/ModalWindow.razor.css
deleted file mode 100644
index 6d08114..0000000
--- a/MatrixRoomUtils.Web/Shared/ModalWindow.razor.css
+++ /dev/null
@@ -1,70 +0,0 @@
-.r-modal {
-    position: absolute;
-    width: fit-content;
-    height: fit-content;
-    z-index: 1000;
-}
-.r-modal:hover {
-    z-index: 1001;
-}
-
-.r-modal > .titlebar {
-    position: absolute;
-    display: block;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 25px;
-    background-color: #000;
-    user-select: none;
-}
-
-.r-modal > .titlebar > .title {
-    position: relative;
-    top: 0;
-    left: 0;
-    width: fit-content;
-    text-wrap: nowrap;
-    height: 100%;
-    line-height: 25px;
-    padding-left: 10px;
-    color: #fff;
-}
-
-.r-modal > .titlebar > .btnclose {
-    position: absolute;
-    top: 0;
-    right: 0;
-    width: 25px;
-    height: 100%;
-    line-height: 25px;
-    text-align: center;
-    color: #fff;
-    background-color: #111;
-    cursor: pointer;
-}
-.r-modal > .titlebar > .btncollapse {
-    position: absolute;
-    top: 0;
-    right: 25px;
-    width: 25px;
-    height: 100%;
-    line-height: 25px;
-    text-align: center;
-    color: #fff;
-    background-color: #111;
-    cursor: pointer;
-}
-
-.r-modal > .r-modal-content {
-    position: relative;
-    top: 25px;
-    left: 0;
-    width: fit-content;
-    height: fit-content;
-    min-width: 150px;
-    max-width: 75vw;
-    max-height: 75vh;
-    overflow: auto;
-    background-color: #111;
-}
diff --git a/MatrixRoomUtils.Web/Shared/RoomList.razor b/MatrixRoomUtils.Web/Shared/RoomList.razor
index 3b057a4..b0548cb 100644
--- a/MatrixRoomUtils.Web/Shared/RoomList.razor
+++ b/MatrixRoomUtils.Web/Shared/RoomList.razor
@@ -3,6 +3,7 @@
 @using LibMatrix.StateEventTypes.Spec
 @using LibMatrix
 @using LibMatrix.Extensions
+@using ArcaneLibs.Extensions
 @if(Rooms.Count != RoomsWithTypes.Sum(x=>x.Value.Count)) {
     <p>Fetching room details... @RoomsWithTypes.Sum(x=>x.Value.Count) out of @Rooms.Count done!</p>
     @foreach (var category in RoomsWithTypes.OrderBy(x => x.Value.Count)) {
@@ -20,7 +21,7 @@ else {
     [Parameter]
     public List<RoomInfo> Rooms { get; set; }
     [Parameter]
-    public ProfileResponseEventData? GlobalProfile { get; set; }
+    public ProfileResponseEventContent? GlobalProfile { get; set; }
 
     Dictionary<string, List<RoomInfo>> RoomsWithTypes = new();
 
@@ -51,7 +52,7 @@ else {
         await _semaphoreSlim.WaitAsync();
         string roomType;
         try {
-            var createEvent = (await room.GetStateEvent("m.room.create")).TypedContent as RoomCreateEventData;
+            var createEvent = (await room.GetStateEvent("m.room.create")).TypedContent as RoomCreateEventContent;
             roomType = GetRoomTypeName(createEvent.Type);
 
             if (roomType == "Room") {
diff --git a/MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListCategory.razor b/MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListCategory.razor
index 381ecd1..d717186 100644
--- a/MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListCategory.razor
+++ b/MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListCategory.razor
@@ -2,18 +2,19 @@
 @using MatrixRoomUtils.Web.Classes.Constants
 @using LibMatrix.StateEventTypes.Spec
 @using LibMatrix
+@using LibMatrix.Homeservers
 <details>
     <summary>@roomType (@rooms.Count)</summary>
     @foreach (var room in rooms) {
         <div class="room-list-item">
             <RoomListItem RoomInfo="@room" ShowOwnProfile="@(roomType == "Room")"></RoomListItem>
             @* @if (RoomVersionDangerLevel(room) != 0 && *@
-            @*      (room.StateEvents.FirstOrDefault(x=>x.Type == "m.room.power_levels")?.TypedContent is RoomPowerLevelEventData powerLevels && powerLevels.UserHasPermission(HomeServer.UserId, "m.room.tombstone"))) { *@
+            @*      (room.StateEvents.FirstOrDefault(x=>x.Type == "m.room.power_levels")?.TypedContent is RoomPowerLevelEventContent powerLevels && powerLevels.UserHasPermission(HomeServer.UserId, "m.room.tombstone"))) { *@
             @*     <MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton Color="@(RoomVersionDangerLevel(room) == 2 ? "#ff0000" : "#ff8800")" href="@($"/Rooms/Create?Import={room.Room.RoomId}")">Upgrade room</MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton> *@
             @* } *@
-            <MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton href="@($"/Rooms/{room.Room.RoomId}/Timeline")">View timeline</MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton>
-            <MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton href="@($"/Rooms/{room.Room.RoomId}/State/View")">View state</MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton>
-            <MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton href="@($"/Rooms/{room.Room.RoomId}/State/Edit")">Edit state</MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton>
+            <LinkButton href="@($"/Rooms/{room.Room.RoomId}/Timeline")">View timeline</LinkButton>
+            <LinkButton href="@($"/Rooms/{room.Room.RoomId}/State/View")">View state</LinkButton>
+            <LinkButton href="@($"/Rooms/{room.Room.RoomId}/State/Edit")">Edit state</LinkButton>
 
             @if (roomType == "Space") {
                 <RoomListSpace Space="@room"></RoomListSpace>
@@ -29,10 +30,10 @@
     public KeyValuePair<string, List<RoomInfo>> Category { get; set; }
 
     [Parameter]
-    public ProfileResponseEventData? GlobalProfile { get; set; }
+    public ProfileResponseEventContent? GlobalProfile { get; set; }
 
     [CascadingParameter]
-    public AuthenticatedHomeServer HomeServer { get; set; } = null!;
+    public AuthenticatedHomeserverGeneric Homeserver { get; set; } = null!;
 
     private string roomType => Category.Key;
     private List<RoomInfo> rooms => Category.Value;
@@ -40,7 +41,7 @@
     private int RoomVersionDangerLevel(RoomInfo room) {
         var roomVersion = room.StateEvents.FirstOrDefault(x => x.Type == "m.room.create");
         if (roomVersion is null) return 0;
-        return roomVersion.TypedContent is not RoomCreateEventData roomVersionContent ? 0
+        return roomVersion.TypedContent is not RoomCreateEventContent roomVersionContent ? 0
             : RoomConstants.DangerousRoomVersions.Contains(roomVersionContent.RoomVersion) ? 2
                 : roomVersionContent.RoomVersion != RoomConstants.RecommendedRoomVersion ? 1 : 0;
     }
diff --git a/MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListSpace.razor b/MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListSpace.razor
index 0867b48..1b54577 100644
--- a/MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListSpace.razor
+++ b/MatrixRoomUtils.Web/Shared/RoomListComponents/RoomListSpace.razor
@@ -30,7 +30,7 @@
     protected override async Task OnInitializedAsync() {
         if (Breadcrumbs == null) throw new ArgumentNullException(nameof(Breadcrumbs));
         await Task.Delay(Random.Shared.Next(1000, 10000));
-        var rooms = Space.Room.AsSpace.GetRoomsAsync();
+        var rooms = Space.Room.AsSpace.GetChildrenAsync();
         await foreach (var room in rooms) {
             if (Breadcrumbs.Contains(room.RoomId)) continue;
             var roomInfo = KnownRooms.FirstOrDefault(x => x.Room.RoomId == room.RoomId);
diff --git a/MatrixRoomUtils.Web/Shared/RoomListItem.razor b/MatrixRoomUtils.Web/Shared/RoomListItem.razor
index 79844ef..b74643b 100644
--- a/MatrixRoomUtils.Web/Shared/RoomListItem.razor
+++ b/MatrixRoomUtils.Web/Shared/RoomListItem.razor
@@ -1,6 +1,7 @@
 @using System.Text.Json
 @using LibMatrix
 @using LibMatrix.Helpers
+@using LibMatrix.Homeservers
 @using LibMatrix.RoomTypes
 @using LibMatrix.StateEventTypes.Spec
 @using LibMatrix.StateEventTypes
@@ -44,10 +45,10 @@
     public bool ShowOwnProfile { get; set; } = false;
 
     [Parameter]
-    public RoomMemberEventData? OwnMemberState { get; set; }
+    public RoomMemberEventContent? OwnMemberState { get; set; }
 
     [CascadingParameter]
-    public ProfileResponseEventData? GlobalProfile { get; set; }
+    public ProfileResponseEventContent? GlobalProfile { get; set; }
 
     private string? roomName { get; set; }
 
@@ -57,7 +58,7 @@
     private bool hasDangerousRoomVersion { get; set; } = false;
 
     private static SemaphoreSlim _semaphoreSlim = new(8);
-    private static AuthenticatedHomeServer? hs { get; set; }
+    private static AuthenticatedHomeserverGeneric? hs { get; set; }
 
     protected override async Task OnInitializedAsync() {
         await base.OnInitializedAsync();
@@ -102,7 +103,7 @@
     private async Task LoadOwnProfile() {
         if (!ShowOwnProfile) return;
         try {
-            OwnMemberState ??= (await RoomInfo.GetStateEvent("m.room.member", hs.UserId)).TypedContent as RoomMemberEventData;
+            OwnMemberState ??= (await RoomInfo.GetStateEvent("m.room.member", hs.UserId)).TypedContent as RoomMemberEventContent;
             GlobalProfile ??= await hs.GetProfile(hs.UserId);
         }
         catch (MatrixException e) {
@@ -117,7 +118,7 @@
     }
 
     private async Task CheckRoomVersion() {
-        var ce = (await RoomInfo.GetStateEvent("m.room.create")).TypedContent as RoomCreateEventData;
+        var ce = (await RoomInfo.GetStateEvent("m.room.create")).TypedContent as RoomCreateEventContent;
         if (int.TryParse(ce.RoomVersion, out var rv)) {
             if (rv < 10)
                 hasOldRoomVersion = true;
@@ -133,9 +134,9 @@
 
     private async Task GetRoomInfo() {
         try {
-            roomName ??= ((await RoomInfo.GetStateEvent("m.room.name"))?.TypedContent as RoomNameEventData)?.Name ?? RoomId;
+            roomName ??= ((await RoomInfo.GetStateEvent("m.room.name"))?.TypedContent as RoomNameEventContent)?.Name ?? RoomId;
 
-            var state = (await RoomInfo.GetStateEvent("m.room.avatar")).TypedContent as RoomAvatarEventData;
+            var state = (await RoomInfo.GetStateEvent("m.room.avatar")).TypedContent as RoomAvatarEventContent;
             if (state?.Url is { } url) {
                 roomIcon = MediaResolver.ResolveMediaUri(hs.FullHomeServerDomain, url);
                 // Console.WriteLine($"Got avatar for room {RoomId}: {roomIcon} ({url})");
diff --git a/MatrixRoomUtils.Web/Shared/SimpleComponents/DictionaryEditor.razor b/MatrixRoomUtils.Web/Shared/SimpleComponents/DictionaryEditor.razor
deleted file mode 100644
index afd1fdc..0000000
--- a/MatrixRoomUtils.Web/Shared/SimpleComponents/DictionaryEditor.razor
+++ /dev/null
@@ -1,38 +0,0 @@
-@using LibMatrix.Extensions
-<table>
-    @foreach (var i in Items.Keys) {
-        var key = i;
-        <input value="@Items[key]" @oninput="obj => inputChanged(obj, key)">
-        <button @onclick="() => { Items.Remove(key); ItemsChanged.InvokeAsync(); }">Remove</button>
-        <br/>
-    }
-</table>
-<button @onclick="() => { Items.Add(string.Empty, default); ItemsChanged.InvokeAsync(); }">Add</button>
-
-@code {
-
-    [Parameter]
-    public Dictionary<string, object> Items { get; set; } = new();
-
-    [Parameter]
-    [EditorRequired]
-    public EventCallback ItemsChanged { get; set; }
-
-    [Parameter]
-    public Func<string, string>? KeyFormatter { get; set; }
-
-    [Parameter]
-    public Action? OnFocusLost { get; set; }
-
-    protected override Task OnInitializedAsync() {
-        Console.WriteLine($"DictionaryEditor initialized with {Items.Count} items: {Items.ToJson()}");
-        return base.OnInitializedAsync();
-    }
-
-    private void inputChanged(ChangeEventArgs obj, string key) {
-        Console.WriteLine($"StringListEditor inputChanged {key} {obj.Value}");
-        Items[key] = obj.Value.ToString();
-        ItemsChanged.InvokeAsync();
-    }
-
-}
diff --git a/MatrixRoomUtils.Web/Shared/SimpleComponents/FancyTextBox.razor b/MatrixRoomUtils.Web/Shared/SimpleComponents/FancyTextBox.razor
deleted file mode 100644
index 966c44d..0000000
--- a/MatrixRoomUtils.Web/Shared/SimpleComponents/FancyTextBox.razor
+++ /dev/null
@@ -1,29 +0,0 @@
-@inject IJSRuntime JsRuntime
-@if (isVisible) {
-    <input autofocus type="@(IsPassword ? "password" : "text")" @bind="Value" @onfocusout="() => { isVisible = false; ValueChanged.InvokeAsync(Value); }" @ref="elementToFocus"/>
-}
-else {
-    <span class="fancy-textbox-inline" tabindex="0" style="@(string.IsNullOrEmpty(Value) ? "min-width: 50px;" : "")" @onfocusin="() => isVisible = true">@(Formatter?.Invoke(Value) ?? (IsPassword ? string.Join("", Value.Select(x => '*')) : Value))</span>
-}
-
-@code {
-
-    [Parameter]
-    public string Value { get; set; }
-
-    [Parameter]
-    public bool IsPassword { get; set; } = false;
-
-    [Parameter]
-    public EventCallback<string> ValueChanged { get; set; }
-
-    [Parameter]
-    public Func<string?, string>? Formatter { get; set; }
-
-    private bool isVisible { get; set; } = false;
-
-    private ElementReference elementToFocus;
-
-    protected override async Task OnAfterRenderAsync(bool firstRender) => await JsRuntime.InvokeVoidAsync("BlazorFocusElement", elementToFocus);
-
-}
\ No newline at end of file
diff --git a/MatrixRoomUtils.Web/Shared/SimpleComponents/FancyTextBox.razor.css b/MatrixRoomUtils.Web/Shared/SimpleComponents/FancyTextBox.razor.css
deleted file mode 100644
index 01b2c6f..0000000
--- a/MatrixRoomUtils.Web/Shared/SimpleComponents/FancyTextBox.razor.css
+++ /dev/null
@@ -1,5 +0,0 @@
-.fancy-textbox-inline {
-    border-bottom: #ccc solid 1px;
-    height: 1.4em;
-    display: inline-block;
-}
\ No newline at end of file
diff --git a/MatrixRoomUtils.Web/Shared/SimpleComponents/LinkButton.razor b/MatrixRoomUtils.Web/Shared/SimpleComponents/LinkButton.razor
deleted file mode 100644
index b800989..0000000
--- a/MatrixRoomUtils.Web/Shared/SimpleComponents/LinkButton.razor
+++ /dev/null
@@ -1,20 +0,0 @@
-<a href="@href" class="btn btn-primary" @onclick="@(() => OnClick?.Invoke())"
-   style="background-color: @(Color ?? "#1b6ec2");">
-    @ChildContent
-</a>
-
-@code {
-
-    [Parameter]
-    public string? href { get; set; }
-
-    [Parameter]
-    public RenderFragment ChildContent { get; set; }
-
-    [Parameter]
-    public string? Color { get; set; }
-
-    [Parameter]
-    public Func<Task>? OnClick { get; set; }
-
-}
diff --git a/MatrixRoomUtils.Web/Shared/SimpleComponents/StringListEditor.razor b/MatrixRoomUtils.Web/Shared/SimpleComponents/StringListEditor.razor
deleted file mode 100644
index 2bd6ed5..0000000
--- a/MatrixRoomUtils.Web/Shared/SimpleComponents/StringListEditor.razor
+++ /dev/null
@@ -1,29 +0,0 @@
-@for (var i = 0; i < Items.Count; i++) {
-    var self = i;
-    <button @onclick="() => { Items.RemoveAt(self); ItemsChanged.InvokeAsync(); }">Remove</button>
-    <FancyTextBox Value="@Items[self]" ValueChanged="@(obj => inputChanged(obj, self))"/>
-    <br/>
-}
-<button @onclick="() => { Items.Add(string.Empty); ItemsChanged.InvokeAsync(); }">Add</button>
-
-@code {
-
-    [Parameter]
-    public List<string> Items { get; set; } = new();
-
-    [Parameter]
-    [EditorRequired]
-    public EventCallback ItemsChanged { get; set; }
-
-    protected override Task OnInitializedAsync() {
-        Console.WriteLine($"StringListEditor initialized with {Items.Count} items: {string.Join(",", Items)}");
-        return base.OnInitializedAsync();
-    }
-
-    private void inputChanged(string obj, int i) {
-        Console.WriteLine($"StringListEditor inputChanged {i} {obj}");
-        Items[i] = obj;
-        ItemsChanged.InvokeAsync();
-    }
-
-}
\ No newline at end of file
diff --git a/MatrixRoomUtils.Web/Shared/SimpleComponents/ToggleSlider.razor b/MatrixRoomUtils.Web/Shared/SimpleComponents/ToggleSlider.razor
deleted file mode 100644
index 1a38e26..0000000
--- a/MatrixRoomUtils.Web/Shared/SimpleComponents/ToggleSlider.razor
+++ /dev/null
@@ -1,72 +0,0 @@
-<input type="checkbox"/><span>@ChildContent</span>
-
-<div class="container">
-    <label class="switch" for="checkbox">
-        <input type="checkbox" id="checkbox" @bind="Value"/>
-        <div class="slider round"></div>
-    </label>
-</div>
-
-<style>
-    .switch {
-      display: inline-block;
-      height: 16px;
-      position: relative;
-      width: 32px;
-    }
-    
-    .switch input {
-      display:none;
-    }
-    
-    .slider {
-      background-color: #ccc;
-      bottom: 0;
-      cursor: pointer;
-      left: 0;
-      position: absolute;
-      right: 0;
-      top: 0;
-      transition: .4s;
-    }
-    
-    .slider:before {
-      background-color: #fff;
-      bottom: -5px;
-      content: "";
-      height: 26px;
-      left: -8px;
-      position: absolute;
-      transition: .4s;
-      width: 26px;
-    }
-    
-    input:checked + .slider {
-      background-color: #66bb6a;
-    }
-    
-    input:checked + .slider:before {
-      transform: translateX(24px);
-    }
-    
-    .slider.round {
-      border-radius: 24px;
-    }
-    
-    .slider.round:before {
-      border-radius: 50%;
-    }
-</style>
-
-@code {
-
-    [Parameter]
-    public RenderFragment? ChildContent { get; set; }
-
-    [Parameter]
-    public bool Value { get; set; }
-
-    [Parameter]
-    public EventCallback<bool> ValueChanged { get; set; }
-
-}
\ No newline at end of file
diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor
index 5172fa4..e4ee873 100644
--- a/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor
+++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/BaseTimelineItem.razor
@@ -1,5 +1,6 @@
 @using LibMatrix.Responses
 @using LibMatrix
+@using LibMatrix.Homeservers
 <h3>BaseTimelineItem</h3>
 
 @code {
@@ -11,6 +12,6 @@
     public List<StateEventResponse> Events { get; set; }
 
     [Parameter]
-    public AuthenticatedHomeServer HomeServer { get; set; }
+    public AuthenticatedHomeserverGeneric Homeserver { get; set; }
 
 }
diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor
index d67fdab..c450211 100644
--- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor
+++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMemberItem.razor
@@ -1,6 +1,6 @@
-@using LibMatrix.StateEventTypes
 @using LibMatrix.StateEventTypes.Spec
 @using LibMatrix.Extensions
+@using ArcaneLibs.Extensions
 @inherits BaseTimelineItem
 
 @if (roomMemberData is not null) {
@@ -15,7 +15,7 @@
             <i>@Event.StateKey changed their display name to @(roomMemberData.Displayname ?? Event.Sender)</i>
             break;
         case "join":
-            <i><InlineUserItem User="@(new ProfileResponseEventData())" HomeServer="@HomeServer" UserId="@Event.StateKey"></InlineUserItem> joined</i>
+            <i><InlineUserItem User="@(new ProfileResponseEventContent())" HomeServer="@Homeserver" UserId="@Event.StateKey"></InlineUserItem> joined</i>
             break;
         case "leave":
             <i>@Event.StateKey left</i>
@@ -26,8 +26,8 @@
         default:
             <i>@Event.StateKey has an unknown state:</i>
             <pre>
-        @Event.ToJson()
-    </pre>
+                @Event.ToJson()
+            </pre>
             break;
     }
 }
@@ -42,6 +42,6 @@ else {
 
 @code {
 
-    private RoomMemberEventData? roomMemberData => Event.TypedContent as RoomMemberEventData;
+    private RoomMemberEventContent? roomMemberData => Event.TypedContent as RoomMemberEventContent;
 
 }
diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor
index 13cce88..5dd87e0 100644
--- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor
+++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineMessageItem.razor
@@ -1,4 +1,5 @@
 @using LibMatrix.Extensions
+@using ArcaneLibs.Extensions
 @inherits BaseTimelineItem
 
 <pre>
diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor
index 8053a47..9c48455 100644
--- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor
+++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineRoomCreateItem.razor
@@ -1,10 +1,11 @@
 @using LibMatrix.StateEventTypes.Spec
 @using LibMatrix.Extensions
+@using ArcaneLibs.Extensions
 @inherits BaseTimelineItem
 
 <p>
     @Event.Sender created the room with room version @CreationEventContent.RoomVersion
-    @CreationEventContent.Federate ? "and" : "without" federating with other servers.<br/>
+    @(CreationEventContent.Federate ?? false ? "and" : "without") federating with other servers.<br/>
     This room is of type @(CreationEventContent.Type ?? "Untyped room (usually a chat room)")
 </p>
 <pre>
@@ -13,6 +14,6 @@
 
 @code {
 
-    private RoomCreateEventData CreationEventContent => Event.TypedContent as RoomCreateEventData;
+    private RoomCreateEventContent CreationEventContent => Event.TypedContent as RoomCreateEventContent;
 
 }
diff --git a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor
index 8166f8a..69845d9 100644
--- a/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor
+++ b/MatrixRoomUtils.Web/Shared/TimelineComponents/TimelineUnknownItem.razor
@@ -1,4 +1,5 @@
 @using LibMatrix.Extensions
+@using ArcaneLibs.Extensions
 @inherits BaseTimelineItem
 
 <div>
diff --git a/MatrixRoomUtils.Web/Shared/UserListItem.razor b/MatrixRoomUtils.Web/Shared/UserListItem.razor
index a85a68d..7a55380 100644
--- a/MatrixRoomUtils.Web/Shared/UserListItem.razor
+++ b/MatrixRoomUtils.Web/Shared/UserListItem.razor
@@ -19,7 +19,7 @@
     public RenderFragment? ChildContent { get; set; }
 
     [Parameter]
-    public ProfileResponseEventData User { get; set; }
+    public ProfileResponseEventContent User { get; set; }
 
     [Parameter]
     public string UserId { get; set; }
diff --git a/MatrixRoomUtils.Web/_Imports.razor b/MatrixRoomUtils.Web/_Imports.razor
index cb08515..a92153d 100644
--- a/MatrixRoomUtils.Web/_Imports.razor
+++ b/MatrixRoomUtils.Web/_Imports.razor
@@ -12,7 +12,7 @@
 @using MatrixRoomUtils.Web.Classes
 @using MatrixRoomUtils.Web.Shared
 
-@using LinkButton = MatrixRoomUtils.Web.Shared.SimpleComponents.LinkButton
+@using ArcaneLibs.Blazor.Components
 
 @inject NavigationManager NavigationManager
 @inject MRUStorageWrapper MRUStorage
diff --git a/MatrixRoomUtils.sln b/MatrixRoomUtils.sln
index e852d18..e29944e 100755
--- a/MatrixRoomUtils.sln
+++ b/MatrixRoomUtils.sln
@@ -1,7 +1,5 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixRoomUtils", "MatrixRoomUtils\MatrixRoomUtils.csproj", "{244E90FE-EE26-4F78-86EB-27529AE48905}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixRoomUtils.Web", "MatrixRoomUtils.Web\MatrixRoomUtils.Web.csproj", "{D38DA95D-DD83-4340-96A4-6F59FC6AE3D9}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixRoomUtils.Web.Server", "MatrixRoomUtils.Web.Server\MatrixRoomUtils.Web.Server.csproj", "{F997F26F-2EC1-4D18-B3DD-C46FB2AD65C0}"
@@ -12,24 +10,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LibMatrix", "LibMatrix", "{
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix", "LibMatrix\LibMatrix\LibMatrix.csproj", "{F4E241C3-0300-4B87-8707-BCBDEF1F0185}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.ExampleBot", "LibMatrix\LibMatrix.ExampleBot\LibMatrix.ExampleBot.csproj", "{4E72793A-AFAD-4E46-B406-2DF1E49994C6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.DebugDataValidationApi", "LibMatrix\LibMatrix.DebugDataValidationApi\LibMatrix.DebugDataValidationApi.csproj", "{7762FD80-E7AA-409D-A465-CF208EA4BC53}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MxApiExtensions", "MxApiExtensions", "{F1376F9A-FB65-4E60-BB9A-62A64F741FF4}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MxApiExtensions", "MxApiExtensions\MxApiExtensions\MxApiExtensions.csproj", "{41200A7B-D2DB-4656-B66B-5206A63B367A}"
 EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ArcaneLibs", "ArcaneLibs", "{B00C5CB6-6200-4B41-96BE-C6EAF1085A14}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs", "ArcaneLibs\ArcaneLibs\ArcaneLibs.csproj", "{B00E29F5-1ED8-40A0-A70D-DE9F23FC572F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Blazor.Components", "ArcaneLibs\ArcaneLibs.Blazor.Components\ArcaneLibs.Blazor.Components.csproj", "{2D6F31D7-3139-44EC-9D11-486282DD4ED1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MxApiExtensions.Classes", "MxApiExtensions\MxApiExtensions.Classes\MxApiExtensions.Classes.csproj", "{99C016AA-AFBA-4D32-A687-D1FABC0F5212}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MxApiExtensions.Classes.LibMatrix", "MxApiExtensions\MxApiExtensions.Classes.LibMatrix\MxApiExtensions.Classes.LibMatrix.csproj", "{C298E274-5D6C-47C8-9B71-A6B34D0195A3}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ExampleBots", "ExampleBots", "{3E0FDE30-8DA8-4E65-A3C6-AA53B5BC70A2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.ExampleBot", "LibMatrix\ExampleBots\LibMatrix.ExampleBot\LibMatrix.ExampleBot.csproj", "{2CB12623-4918-4176-9B4A-88D846CCD3ED}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaModeratorPoC", "LibMatrix\ExampleBots\MediaModeratorPoC\MediaModeratorPoC.csproj", "{48DBB05F-B007-4B24-89B3-3CC177C79007}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utilities", "Utilities", "{A4BCBF5F-4936-44B9-BAB3-FAF240BDF40D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.DebugDataValidationApi", "LibMatrix\Utilities\LibMatrix.DebugDataValidationApi\LibMatrix.DebugDataValidationApi.csproj", "{5DEF66C8-B931-435F-B4B5-E1858590D52E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.Utilities.Bot", "LibMatrix\Utilities\LibMatrix.Utilities.Bot\LibMatrix.Utilities.Bot.csproj", "{D8E5C678-3BE5-470C-A3A5-B5D525FC2012}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluralContactBotPoC", "LibMatrix\ExampleBots\PluralContactBotPoC\PluralContactBotPoC.csproj", "{95052EE6-7513-46FB-91BD-EE82026B42F1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{7D2C9959-8309-4110-A67F-DEE64E97C1D8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.Tests", "LibMatrix\Tests\LibMatrix.Tests\LibMatrix.Tests.csproj", "{E37B78F1-D7A5-4F79-ADBA-E12DF7D0F881}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{244E90FE-EE26-4F78-86EB-27529AE48905}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{244E90FE-EE26-4F78-86EB-27529AE48905}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{244E90FE-EE26-4F78-86EB-27529AE48905}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{244E90FE-EE26-4F78-86EB-27529AE48905}.Release|Any CPU.Build.0 = Release|Any CPU
 		{D38DA95D-DD83-4340-96A4-6F59FC6AE3D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{D38DA95D-DD83-4340-96A4-6F59FC6AE3D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{D38DA95D-DD83-4340-96A4-6F59FC6AE3D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -46,23 +64,66 @@ Global
 		{F4E241C3-0300-4B87-8707-BCBDEF1F0185}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{F4E241C3-0300-4B87-8707-BCBDEF1F0185}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{F4E241C3-0300-4B87-8707-BCBDEF1F0185}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4E72793A-AFAD-4E46-B406-2DF1E49994C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4E72793A-AFAD-4E46-B406-2DF1E49994C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4E72793A-AFAD-4E46-B406-2DF1E49994C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4E72793A-AFAD-4E46-B406-2DF1E49994C6}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7762FD80-E7AA-409D-A465-CF208EA4BC53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7762FD80-E7AA-409D-A465-CF208EA4BC53}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7762FD80-E7AA-409D-A465-CF208EA4BC53}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7762FD80-E7AA-409D-A465-CF208EA4BC53}.Release|Any CPU.Build.0 = Release|Any CPU
 		{41200A7B-D2DB-4656-B66B-5206A63B367A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{41200A7B-D2DB-4656-B66B-5206A63B367A}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{41200A7B-D2DB-4656-B66B-5206A63B367A}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{41200A7B-D2DB-4656-B66B-5206A63B367A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B00E29F5-1ED8-40A0-A70D-DE9F23FC572F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B00E29F5-1ED8-40A0-A70D-DE9F23FC572F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B00E29F5-1ED8-40A0-A70D-DE9F23FC572F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B00E29F5-1ED8-40A0-A70D-DE9F23FC572F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2D6F31D7-3139-44EC-9D11-486282DD4ED1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2D6F31D7-3139-44EC-9D11-486282DD4ED1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2D6F31D7-3139-44EC-9D11-486282DD4ED1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2D6F31D7-3139-44EC-9D11-486282DD4ED1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{99C016AA-AFBA-4D32-A687-D1FABC0F5212}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{99C016AA-AFBA-4D32-A687-D1FABC0F5212}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{99C016AA-AFBA-4D32-A687-D1FABC0F5212}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{99C016AA-AFBA-4D32-A687-D1FABC0F5212}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C298E274-5D6C-47C8-9B71-A6B34D0195A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C298E274-5D6C-47C8-9B71-A6B34D0195A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C298E274-5D6C-47C8-9B71-A6B34D0195A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C298E274-5D6C-47C8-9B71-A6B34D0195A3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2CB12623-4918-4176-9B4A-88D846CCD3ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2CB12623-4918-4176-9B4A-88D846CCD3ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2CB12623-4918-4176-9B4A-88D846CCD3ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2CB12623-4918-4176-9B4A-88D846CCD3ED}.Release|Any CPU.Build.0 = Release|Any CPU
+		{48DBB05F-B007-4B24-89B3-3CC177C79007}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{48DBB05F-B007-4B24-89B3-3CC177C79007}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{48DBB05F-B007-4B24-89B3-3CC177C79007}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{48DBB05F-B007-4B24-89B3-3CC177C79007}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5DEF66C8-B931-435F-B4B5-E1858590D52E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5DEF66C8-B931-435F-B4B5-E1858590D52E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5DEF66C8-B931-435F-B4B5-E1858590D52E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5DEF66C8-B931-435F-B4B5-E1858590D52E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D8E5C678-3BE5-470C-A3A5-B5D525FC2012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D8E5C678-3BE5-470C-A3A5-B5D525FC2012}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D8E5C678-3BE5-470C-A3A5-B5D525FC2012}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D8E5C678-3BE5-470C-A3A5-B5D525FC2012}.Release|Any CPU.Build.0 = Release|Any CPU
+		{95052EE6-7513-46FB-91BD-EE82026B42F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{95052EE6-7513-46FB-91BD-EE82026B42F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{95052EE6-7513-46FB-91BD-EE82026B42F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{95052EE6-7513-46FB-91BD-EE82026B42F1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E37B78F1-D7A5-4F79-ADBA-E12DF7D0F881}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E37B78F1-D7A5-4F79-ADBA-E12DF7D0F881}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E37B78F1-D7A5-4F79-ADBA-E12DF7D0F881}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E37B78F1-D7A5-4F79-ADBA-E12DF7D0F881}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
 		{F4E241C3-0300-4B87-8707-BCBDEF1F0185} = {8F4F6BEC-0C66-486B-A21A-1C35B2EDAD33}
-		{4E72793A-AFAD-4E46-B406-2DF1E49994C6} = {8F4F6BEC-0C66-486B-A21A-1C35B2EDAD33}
-		{7762FD80-E7AA-409D-A465-CF208EA4BC53} = {8F4F6BEC-0C66-486B-A21A-1C35B2EDAD33}
 		{41200A7B-D2DB-4656-B66B-5206A63B367A} = {F1376F9A-FB65-4E60-BB9A-62A64F741FF4}
+		{B00E29F5-1ED8-40A0-A70D-DE9F23FC572F} = {B00C5CB6-6200-4B41-96BE-C6EAF1085A14}
+		{2D6F31D7-3139-44EC-9D11-486282DD4ED1} = {B00C5CB6-6200-4B41-96BE-C6EAF1085A14}
+		{99C016AA-AFBA-4D32-A687-D1FABC0F5212} = {F1376F9A-FB65-4E60-BB9A-62A64F741FF4}
+		{C298E274-5D6C-47C8-9B71-A6B34D0195A3} = {F1376F9A-FB65-4E60-BB9A-62A64F741FF4}
+		{3E0FDE30-8DA8-4E65-A3C6-AA53B5BC70A2} = {8F4F6BEC-0C66-486B-A21A-1C35B2EDAD33}
+		{2CB12623-4918-4176-9B4A-88D846CCD3ED} = {3E0FDE30-8DA8-4E65-A3C6-AA53B5BC70A2}
+		{48DBB05F-B007-4B24-89B3-3CC177C79007} = {3E0FDE30-8DA8-4E65-A3C6-AA53B5BC70A2}
+		{A4BCBF5F-4936-44B9-BAB3-FAF240BDF40D} = {8F4F6BEC-0C66-486B-A21A-1C35B2EDAD33}
+		{5DEF66C8-B931-435F-B4B5-E1858590D52E} = {A4BCBF5F-4936-44B9-BAB3-FAF240BDF40D}
+		{D8E5C678-3BE5-470C-A3A5-B5D525FC2012} = {A4BCBF5F-4936-44B9-BAB3-FAF240BDF40D}
+		{95052EE6-7513-46FB-91BD-EE82026B42F1} = {3E0FDE30-8DA8-4E65-A3C6-AA53B5BC70A2}
+		{7D2C9959-8309-4110-A67F-DEE64E97C1D8} = {8F4F6BEC-0C66-486B-A21A-1C35B2EDAD33}
+		{E37B78F1-D7A5-4F79-ADBA-E12DF7D0F881} = {7D2C9959-8309-4110-A67F-DEE64E97C1D8}
 	EndGlobalSection
 EndGlobal
diff --git a/MatrixRoomUtils.sln.DotSettings.user b/MatrixRoomUtils.sln.DotSettings.user
index 8f91cef..67b8278 100644
--- a/MatrixRoomUtils.sln.DotSettings.user
+++ b/MatrixRoomUtils.sln.DotSettings.user
@@ -1,5 +1,9 @@
 <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
-	<s:String x:Key="/Default/CodeInspection/Highlighting/SweaWarningsMode/@EntryValue">ShowAndRun</s:String>
+	
+	<s:String x:Key="/Default/CodeInspection/Highlighting/SweaWarningsMode/@EntryValue">DoNotShowAndRun</s:String>
+	<s:Int64 x:Key="/Default/Dpa/Thresholds/=AllocationClosure/@EntryIndexedValue">0</s:Int64>
+	<s:Int64 x:Key="/Default/Dpa/Thresholds/=AllocationLoh/@EntryIndexedValue">0</s:Int64>
+	<s:Int64 x:Key="/Default/Dpa/Thresholds/=AllocationTopSoh/@EntryIndexedValue">0</s:Int64>
 	<s:Int64 x:Key="/Default/Environment/Hierarchy/Build/BuildTool/MsBuildSolutionLoadingNodeCount/@EntryValue">12</s:Int64>
 	<s:Boolean x:Key="/Default/Environment/Hierarchy/Build/BuildTool/MsBuildSolutionLoadingOrderingEnabled/@EntryValue">True</s:Boolean>
 	<s:String x:Key="/Default/Environment/Hierarchy/Build/SolBuilderDuo/UseMsbuildSolutionBuilder/@EntryValue">No</s:String>
@@ -28,4 +32,5 @@
 	
 	
 	
+	
 	</wpf:ResourceDictionary>
\ No newline at end of file
diff --git a/MxApiExtensions b/MxApiExtensions
-Subproject 8253ca8cb96154f95854b1c1e5dd3ba53f41e5e
+Subproject 143b7fb859d97e815ed5340a1889db93e17a762
diff --git a/deploy.sh b/deploy.sh
index 66182a4..ea42481 100755
--- a/deploy.sh
+++ b/deploy.sh
@@ -17,7 +17,7 @@ tar cf - ./ | xz -z -9 - > $BASE_DIR/MRU-BIN.tar.xz
 #rsync -raP $BASE_DIR/MRU-BIN.tar.xz rory.gay:/data/nginx/html_mru/MRU-BIN.tar.xz
 rm -rf $BASE_DIR/MRU-BIN.tar.xz
 cd $BASE_DIR
-git clone .git -b `git branch --show-current` src
+git clone .git -b `git branch --show-current` src --recursive
 rm -rf src/.git
 tar cf - src/ | xz -z -9 - > MRU-SRC.tar.xz
 rsync -raP $BASE_DIR/MRU-SRC.tar.xz rory.gay:/data/nginx/html_mru/MRU-SRC.tar.xz
diff --git a/flake.lock b/flake.lock
index c6625fe..ea17330 100644
--- a/flake.lock
+++ b/flake.lock
@@ -20,18 +20,14 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1691899779,
-        "narHash": "sha256-IBf4KVr/UQJlzrqB2/IHtlvmwsvyIVLPerSzCPU/6Xk=",
-        "owner": "nixos",
-        "repo": "nixpkgs",
-        "rev": "100a1550b0e7a64b960c625b656f9229bdef5f87",
-        "type": "github"
+        "lastModified": 1692446604,
+        "narHash": "sha256-3VBMD9VXzB1KP1lx4KGq5E+g0ugo6vpR0VSNT47nPMM=",
+        "path": "/home/root@Rory/git/Matrix/MatrixRoomUtils/nixpkgs",
+        "type": "path"
       },
       "original": {
-        "owner": "nixos",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
-        "type": "github"
+        "path": "/home/root@Rory/git/Matrix/MatrixRoomUtils/nixpkgs",
+        "type": "path"
       }
     },
     "root": {
diff --git a/flake.nix b/flake.nix
index 47ab31d..2e7409b 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,5 +1,6 @@
 {
-  inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+  #inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+  inputs.nixpkgs.url = "path:/home/root@Rory/git/Matrix/MatrixRoomUtils/nixpkgs";
   inputs.flake-utils.url = "github:numtide/flake-utils";
 
   outputs = { self, nixpkgs, flake-utils }:
@@ -8,22 +9,6 @@
       in
       {
          packages.x86_64-linux = {
-            bots = pkgs.buildDotnetModule rec {
-              pname = "botcore-v${version}";
-              version = "4";
-              dotnet-sdk = pkgs.dotnet-sdk_7;
-              dotnet-runtime = pkgs.dotnet-runtime_7;
-              src = ./.;
-              projectFile = [
-                "BotCore.Runner/BotCore.Runner.csproj"
-                "BotCore.SystemdServiceInvoker/BotCore.SystemdServiceInvoker.csproj"
-               ];
-              runtimeDeps = with pkgs; [ yt-dlp ];
-              nugetDeps = ./deps.nix;
-              #nativeBuildInputs = with pkgs; [
-              #  pkg-config
-              #];
-            };
             web = pkgs.buildDotnetModule rec {
               pname = "MatrixRoomUtils.Web-v${version}";
               version = "1";
@@ -38,98 +23,6 @@
               #  pkg-config
               #];
             };
-            dataupdater = pkgs.buildDotnetModule rec {
-              pname = "botcore-v${version}";
-              version = "4";
-              dotnet-sdk = pkgs.dotnet-sdk_7;
-              dotnet-runtime = pkgs.dotnet-runtime_7;
-              src = ./.;
-              projectFile = [
-                "BotCore.DataUpdater/BotCore.DataUpdater.csproj"
-               ];
-              nugetDeps = ./deps.nix;
-              #nativeBuildInputs = with pkgs; [
-              #  pkg-config
-              #];
-            };
-            all = pkgs.buildDotnetModule rec {
-              pname = "botcore-v${version}";
-              version = "4";
-              dotnet-sdk = pkgs.dotnet-sdk_7;
-              dotnet-runtime = pkgs.dotnet-runtime_7;
-              src = ./.;
-              projectFile = "DiscordBots.sln";
-              nugetDeps = ./deps.nix;
-              #nativeBuildInputs = with pkgs; [
-              #  pkg-config
-              #];
-            };
-        };
-        modules = {
-          users = {
-            users.users.botcore = {
-              isSystemUser = true;
-              home = "/var/lib/botcore";
-              createHome = true;
-              group = "botcore";
-              extraGroups = [ "video" ];
-            };
-            users.groups.botcore = {};
-            security.polkit.extraConfig = ''
-              polkit.addRule(function(action, subject) {
-                if (action.id == "org.freedesktop.systemd1.manage-units" &&
-                    action.lookup("unit").startsWith("botcore.") &&
-                    subject.user == "botcore") {
-                  return polkit.Result.YES;
-                }
-              });
-              '';
-          };
-          bots = {
-              systemd.services = {
-                  "botcore.bot@" = {
-                    serviceConfig = {
-                      ExecStart = "${self.packages.x86_64-linux.bots}/bin/BotCore.Runner %i";
-                      Restart = "always";
-                      RestartSec = "5";
-                      User = "botcore";
-                    };
-                  };
-                  "botcore.systemdserviceinvoker" = {
-                    wantedBy = [ "multi-user.target" ];
-                    serviceConfig = {
-                      ExecStart = "${self.packages.x86_64-linux.bots}/bin/BotCore.SystemdServiceInvoker";
-                      User = "botcore";
-                    };
-                  };
-              };
-          };
-            frontend = {
-                systemd.services = {
-                    "botcore.web" = {
-                        wantedBy = [ "multi-user.target" ];
-                        serviceConfig = {
-                            ExecStart = "${self.packages.x86_64-linux.frontend}/bin/BotCore.Web.Legacy";
-                            Restart = "always";
-                            RestartSec = "5";
-                            User = "botcore";
-                        };
-                    };
-                };
-            };
-            dataupdater = {
-                systemd.services = {
-                    "botcore.dataupdater" = {
-                        wantedBy = [ "multi-user.target" ];
-                        serviceConfig = {
-                            ExecStart = "${self.packages.x86_64-linux.dataupdater}/bin/BotCore.DataUpdater";
-                            Restart = "always";
-                            RestartSec = "15min";
-                            User = "botcore";
-                        };
-                    };
-                };
-            };
         };
     };
 }