Commit 4f294b95 by Rémi Verschelde

doc: Sync classref with current source

Fix a few missing bindings or unspecified argument names and default values.
parent ef2a7834
......@@ -63,6 +63,8 @@ void MainLoop::_bind_methods() {
BIND_CONSTANT(NOTIFICATION_WM_ABOUT);
BIND_CONSTANT(NOTIFICATION_CRASH);
BIND_CONSTANT(NOTIFICATION_OS_IME_UPDATE);
BIND_CONSTANT(NOTIFICATION_APP_RESUMED);
BIND_CONSTANT(NOTIFICATION_APP_PAUSED);
};
void MainLoop::set_init_script(const Ref<Script> &p_init_script) {
......
......@@ -114,7 +114,7 @@ void Script::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_script_method_list"), &Script::_get_script_method_list);
ClassDB::bind_method(D_METHOD("get_script_signal_list"), &Script::_get_script_signal_list);
ClassDB::bind_method(D_METHOD("get_script_constant_map"), &Script::_get_script_constant_map);
ClassDB::bind_method(D_METHOD("get_property_default_value"), &Script::_get_property_default_value);
ClassDB::bind_method(D_METHOD("get_property_default_value", "property"), &Script::_get_property_default_value);
ClassDB::bind_method(D_METHOD("is_tool"), &Script::is_tool);
......
......@@ -124,21 +124,6 @@
[b]Note:[/b] Calling [method bsearch] on an unsorted array results in unexpected behavior.
</description>
</method>
<method name="slice">
<return type="Array">
</return>
<argument index="0" name="begin" type="int">
</argument>
<argument index="1" name="end" type="int">
</argument>
<argument index="2" name="step" type="int" default="1">
</argument>
<argument index="3" name="deep" type="bool" default="False">
</argument>
<description>
Duplicates the subset described in the function and returns it in an array, deeply copying the array if [code]deep[/code] is true. Lower and upper index are inclusive, with the [code]step[/code] describing the change between indices while slicing.
</description>
</method>
<method name="clear">
<description>
Clears the array. This is equivalent to using [method resize] with a size of [code]0[/code].
......@@ -319,6 +304,21 @@
Returns the number of elements in the array.
</description>
</method>
<method name="slice">
<return type="Array">
</return>
<argument index="0" name="begin" type="int">
</argument>
<argument index="1" name="end" type="int">
</argument>
<argument index="2" name="step" type="int" default="1">
</argument>
<argument index="3" name="deep" type="bool" default="False">
</argument>
<description>
Duplicates the subset described in the function and returns it in an array, deeply copying the array if [code]deep[/code] is true. Lower and upper index are inclusive, with the [code]step[/code] describing the change between indices while slicing.
</description>
</method>
<method name="sort">
<description>
Sorts the array.
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CharFXTransform" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<methods>
<method name="get_value_or">
<return type="Variant">
</return>
<argument index="0" name="key" type="String">
</argument>
<argument index="1" name="default_value" type="Variant">
</argument>
<description>
</description>
</method>
</methods>
<members>
<member name="absolute_index" type="int" setter="set_absolute_index" getter="get_absolute_index" default="0">
</member>
<member name="character" type="int" setter="set_character" getter="get_character" default="0">
</member>
<member name="color" type="Color" setter="set_color" getter="get_color" default="Color( 0, 0, 0, 1 )">
</member>
<member name="elapsed_time" type="float" setter="set_elapsed_time" getter="get_elapsed_time" default="0.0">
</member>
<member name="env" type="Dictionary" setter="set_environment" getter="get_environment" default="{}">
</member>
<member name="offset" type="Vector2" setter="set_offset" getter="get_offset" default="Vector2( 0, 0 )">
</member>
<member name="relative_index" type="int" setter="set_relative_index" getter="get_relative_index" default="0">
</member>
<member name="visible" type="bool" setter="set_visibility" getter="is_visible" default="true">
</member>
</members>
<constants>
</constants>
</class>
......@@ -40,6 +40,10 @@
Emitted when the color changes.
</description>
</signal>
<signal name="picker_created">
<description>
</description>
</signal>
<signal name="popup_closed">
<description>
</description>
......
......@@ -36,7 +36,7 @@
</return>
<argument index="0" name="class_name" type="String">
</argument>
<argument index="1" name="arg1" type="String">
<argument index="1" name="property" type="String">
</argument>
<description>
</description>
......@@ -92,7 +92,7 @@
</argument>
<argument index="1" name="property" type="String">
</argument>
<argument index="2" name="arg2" type="bool">
<argument index="2" name="disable" type="bool">
</argument>
<description>
</description>
......
......@@ -25,6 +25,12 @@
Returns the main container of Godot editor's window. You can use it, for example, to retrieve the size of the container and place your controls accordingly.
</description>
</method>
<method name="get_current_path" qualifiers="const">
<return type="String">
</return>
<description>
</description>
</method>
<method name="get_edited_scene_root">
<return type="Node">
</return>
......
......@@ -62,7 +62,7 @@
</argument>
<argument index="1" name="billboard" type="bool" default="false">
</argument>
<argument index="2" name="skeleton" type="RID">
<argument index="2" name="skeleton" type="SkinReference">
</argument>
<argument index="3" name="material" type="Material" default="null">
</argument>
......
......@@ -81,15 +81,15 @@
</method>
</methods>
<constants>
<constant name="ParseError" value="-32700" enum="ErrorCode">
<constant name="PARSE_ERROR" value="-32700" enum="ErrorCode">
</constant>
<constant name="InvalidRequest" value="-32600" enum="ErrorCode">
<constant name="INVALID_REQUEST" value="-32600" enum="ErrorCode">
</constant>
<constant name="MethodNotFound" value="-32601" enum="ErrorCode">
<constant name="METHOD_NOT_FOUND" value="-32601" enum="ErrorCode">
</constant>
<constant name="InvalidParams" value="-32602" enum="ErrorCode">
<constant name="INVALID_PARAMS" value="-32602" enum="ErrorCode">
</constant>
<constant name="InternalError" value="-32603" enum="ErrorCode">
<constant name="INTERNAL_ERROR" value="-32603" enum="ErrorCode">
</constant>
</constants>
</class>
......@@ -128,6 +128,10 @@
<member name="secret_character" type="String" setter="set_secret_character" getter="get_secret_character" default="&quot;*&quot;">
The character to use to mask secret input (defaults to "*"). Only a single character can be used as the secret character.
</member>
<member name="selecting_enabled" type="bool" setter="set_selecting_enabled" getter="is_selecting_enabled" default="true">
</member>
<member name="shortcut_keys_enabled" type="bool" setter="set_shortcut_keys_enabled" getter="is_shortcut_keys_enabled" default="true">
</member>
<member name="text" type="String" setter="set_text" getter="get_text" default="&quot;&quot;">
String value of the [LineEdit].
</member>
......
......@@ -65,6 +65,8 @@
<member name="skeleton" type="NodePath" setter="set_skeleton_path" getter="get_skeleton_path" default="NodePath(&quot;..&quot;)">
[NodePath] to the [Skeleton] associated with the instance.
</member>
<member name="skin" type="Skin" setter="set_skin" getter="get_skin">
</member>
</members>
<constants>
</constants>
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="RichTextEffect" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<methods>
<method name="_process_custom_fx" qualifiers="virtual">
<return type="bool">
</return>
<argument index="0" name="char_fx" type="CharFXTransform">
</argument>
<description>
</description>
</method>
</methods>
<constants>
</constants>
</class>
......@@ -80,6 +80,14 @@
Returns the number of visible lines.
</description>
</method>
<method name="install_effect">
<return type="void">
</return>
<argument index="0" name="effect" type="Variant">
</argument>
<description>
</description>
</method>
<method name="newline">
<return type="void">
</return>
......@@ -96,6 +104,14 @@
The assignment version of [method append_bbcode]. Clears the tag stack and inserts the new content. Returns [constant OK] if parses [code]bbcode[/code] successfully.
</description>
</method>
<method name="parse_expressions_for_values">
<return type="Dictionary">
</return>
<argument index="0" name="expressions" type="PoolStringArray">
</argument>
<description>
</description>
</method>
<method name="pop">
<return type="void">
</return>
......@@ -228,6 +244,8 @@
<member name="bbcode_text" type="String" setter="set_bbcode" getter="get_bbcode" default="&quot;&quot;">
The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.
</member>
<member name="custom_effects" type="Array" setter="set_effects" getter="get_effects" default="[ ]">
</member>
<member name="meta_underlined" type="bool" setter="set_meta_underline" getter="is_meta_underlined" default="true">
If [code]true[/code], the label underlines meta tags such as [code][url]{text}[/url][/code].
</member>
......@@ -319,7 +337,19 @@
</constant>
<constant name="ITEM_TABLE" value="11" enum="ItemType">
</constant>
<constant name="ITEM_META" value="12" enum="ItemType">
<constant name="ITEM_FADE" value="12" enum="ItemType">
</constant>
<constant name="ITEM_SHAKE" value="13" enum="ItemType">
</constant>
<constant name="ITEM_WAVE" value="14" enum="ItemType">
</constant>
<constant name="ITEM_TORNADO" value="15" enum="ItemType">
</constant>
<constant name="ITEM_RAINBOW" value="16" enum="ItemType">
</constant>
<constant name="ITEM_CUSTOMFX" value="18" enum="ItemType">
</constant>
<constant name="ITEM_META" value="17" enum="ItemType">
</constant>
</constants>
<theme_items>
......
......@@ -32,6 +32,38 @@
Returns the script's base type.
</description>
</method>
<method name="get_property_default_value">
<return type="Variant">
</return>
<argument index="0" name="property" type="String">
</argument>
<description>
</description>
</method>
<method name="get_script_constant_map">
<return type="Dictionary">
</return>
<description>
</description>
</method>
<method name="get_script_method_list">
<return type="Array">
</return>
<description>
</description>
</method>
<method name="get_script_property_list">
<return type="Array">
</return>
<description>
</description>
</method>
<method name="get_script_signal_list">
<return type="Array">
</return>
<description>
</description>
</method>
<method name="has_script_signal" qualifiers="const">
<return type="bool">
</return>
......
......@@ -54,15 +54,6 @@
Returns the amount of bones in the skeleton.
</description>
</method>
<method name="get_bone_custom_pose" qualifiers="const">
<return type="Transform">
</return>
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
Returns the custom pose of the specified bone. Custom pose is applied on top of the rest pose.
</description>
</method>
<method name="get_bone_global_pose" qualifiers="const">
<return type="Transform">
</return>
......@@ -109,15 +100,6 @@
Returns the rest transform for a bone [code]bone_idx[/code].
</description>
</method>
<method name="get_bone_transform" qualifiers="const">
<return type="Transform">
</return>
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
Returns the combination of custom pose and pose. The returned transform is in skeleton's reference frame.
</description>
</method>
<method name="get_bound_child_nodes_to_bone" qualifiers="const">
<return type="Array">
</return>
......@@ -171,12 +153,10 @@
<description>
</description>
</method>
<method name="set_bone_custom_pose">
<return type="void">
<method name="register_skin">
<return type="SkinReference">
</return>
<argument index="0" name="bone_idx" type="int">
</argument>
<argument index="1" name="custom_pose" type="Transform">
<argument index="0" name="skin" type="Skin">
</argument>
<description>
</description>
......@@ -191,22 +171,16 @@
<description>
</description>
</method>
<method name="set_bone_global_pose">
<method name="set_bone_global_pose_override">
<return type="void">
</return>
<argument index="0" name="bone_idx" type="int">
</argument>
<argument index="1" name="pose" type="Transform">
</argument>
<description>
</description>
</method>
<method name="set_bone_ignore_animation">
<return type="void">
</return>
<argument index="0" name="bone" type="int">
<argument index="2" name="amount" type="float">
</argument>
<argument index="1" name="ignore" type="bool">
<argument index="3" name="persistent" type="bool" default="false">
</argument>
<description>
</description>
......@@ -265,10 +239,6 @@
</description>
</method>
</methods>
<members>
<member name="bones_in_world_transform" type="bool" setter="set_use_bones_in_world_transform" getter="is_using_bones_in_world_transform" default="false">
</member>
</members>
<constants>
<constant name="NOTIFICATION_UPDATE_SKELETON" value="50">
</constant>
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Skin" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<methods>
<method name="add_bind">
<return type="void">
</return>
<argument index="0" name="bone" type="int">
</argument>
<argument index="1" name="pose" type="Transform">
</argument>
<description>
</description>
</method>
<method name="clear_binds">
<return type="void">
</return>
<description>
</description>
</method>
<method name="get_bind_bone" qualifiers="const">
<return type="int">
</return>
<argument index="0" name="bind_index" type="int">
</argument>
<description>
</description>
</method>
<method name="get_bind_count" qualifiers="const">
<return type="int">
</return>
<description>
</description>
</method>
<method name="get_bind_pose" qualifiers="const">
<return type="Transform">
</return>
<argument index="0" name="bind_index" type="int">
</argument>
<description>
</description>
</method>
<method name="set_bind_bone">
<return type="void">
</return>
<argument index="0" name="bind_index" type="int">
</argument>
<argument index="1" name="bone" type="int">
</argument>
<description>
</description>
</method>
<method name="set_bind_count">
<return type="void">
</return>
<argument index="0" name="bind_count" type="int">
</argument>
<description>
</description>
</method>
<method name="set_bind_pose">
<return type="void">
</return>
<argument index="0" name="bind_index" type="int">
</argument>
<argument index="1" name="pose" type="Transform">
</argument>
<description>
</description>
</method>
</methods>
<constants>
</constants>
</class>
<?xml version="1.0" encoding="UTF-8" ?>
<class name="SkinReference" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<methods>
<method name="get_skeleton" qualifiers="const">
<return type="RID">
</return>
<description>
</description>
</method>
<method name="get_skin" qualifiers="const">
<return type="Skin">
</return>
<description>
</description>
</method>
</methods>
<constants>
</constants>
</class>
......@@ -149,6 +149,8 @@
<member name="tabs_visible" type="bool" setter="set_tabs_visible" getter="are_tabs_visible" default="true">
If [code]true[/code], tabs are visible. If [code]false[/code], tabs' content and titles are hidden.
</member>
<member name="use_hidden_tabs_for_min_size" type="bool" setter="set_use_hidden_tabs_for_min_size" getter="get_use_hidden_tabs_for_min_size" default="false">
</member>
</members>
<signals>
<signal name="pre_popup_pressed">
......
......@@ -427,6 +427,10 @@
<member name="readonly" type="bool" setter="set_readonly" getter="is_readonly" default="false">
If [code]true[/code], read-only mode is enabled. Existing text cannot be modified and new text cannot be added.
</member>
<member name="selecting_enabled" type="bool" setter="set_selecting_enabled" getter="is_selecting_enabled" default="true">
</member>
<member name="shortcut_keys_enabled" type="bool" setter="set_shortcut_keys_enabled" getter="is_shortcut_keys_enabled" default="true">
</member>
<member name="show_line_numbers" type="bool" setter="set_show_line_numbers" getter="is_show_line_numbers_enabled" default="false">
If [code]true[/code], line numbers are displayed to the left of the text.
</member>
......
......@@ -256,7 +256,7 @@
<members>
<member name="cell_clip_uv" type="bool" setter="set_clip_uv" getter="get_clip_uv" default="false">
</member>
<member name="cell_custom_transform" type="Transform2D" setter="set_custom_transform" getter="get_custom_transform" default="Transform2D( 1, 0, 0, 1, 0, 0 )">
<member name="cell_custom_transform" type="Transform2D" setter="set_custom_transform" getter="get_custom_transform" default="Transform2D( 64, 0, 0, 64, 0, 0 )">
The custom [Transform2D] to be applied to the TileMap's cells.
</member>
<member name="cell_half_offset" type="int" setter="set_half_offset" getter="get_half_offset" enum="TileMap.HalfOffset" default="2">
......
......@@ -189,13 +189,13 @@
</argument>
<argument index="1" name="mesh" type="RID">
</argument>
<argument index="2" name="texture" type="Transform2D">
<argument index="2" name="transform" type="Transform2D" default="Transform2D( 1, 0, 0, 1, 0, 0 )">
</argument>
<argument index="3" name="normal_map" type="Color">
<argument index="3" name="modulate" type="Color" default="Color( 1, 1, 1, 1 )">
</argument>
<argument index="4" name="arg4" type="RID">
<argument index="4" name="texture" type="RID">
</argument>
<argument index="5" name="arg5" type="RID">
<argument index="5" name="normal_map" type="RID">
</argument>
<description>
</description>
......
......@@ -146,9 +146,9 @@
<method name="set_input_port_name">
<return type="void">
</return>
<argument index="0" name="arg0" type="int">
<argument index="0" name="id" type="int">
</argument>
<argument index="1" name="arg1" type="String">
<argument index="1" name="name" type="String">
</argument>
<description>
</description>
......@@ -156,9 +156,9 @@
<method name="set_input_port_type">
<return type="void">
</return>
<argument index="0" name="arg0" type="int">
<argument index="0" name="id" type="int">
</argument>
<argument index="1" name="arg1" type="int">
<argument index="1" name="type" type="int">
</argument>
<description>
</description>
......@@ -174,9 +174,9 @@
<method name="set_output_port_name">
<return type="void">
</return>
<argument index="0" name="arg0" type="int">
<argument index="0" name="id" type="int">
</argument>
<argument index="1" name="arg1" type="String">
<argument index="1" name="name" type="String">
</argument>
<description>
</description>
......@@ -184,9 +184,9 @@
<method name="set_output_port_type">
<return type="void">
</return>
<argument index="0" name="arg0" type="int">
<argument index="0" name="id" type="int">
</argument>
<argument index="1" name="arg1" type="int">
<argument index="1" name="type" type="int">
</argument>
<description>
</description>
......
<?xml version="1.0" encoding="UTF-8" ?>
<class name="VisualShaderNodeScalarSwitch" inherits="VisualShaderNodeSwitch" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<methods>
</methods>
<constants>
</constants>
</class>
......@@ -254,8 +254,8 @@ void EditorFeatureProfile::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_disable_class_editor", "class_name", "disable"), &EditorFeatureProfile::set_disable_class_editor);
ClassDB::bind_method(D_METHOD("is_class_editor_disabled", "class_name"), &EditorFeatureProfile::is_class_editor_disabled);
ClassDB::bind_method(D_METHOD("set_disable_class_property", "class_name", "property"), &EditorFeatureProfile::set_disable_class_property);
ClassDB::bind_method(D_METHOD("is_class_property_disabled", "class_name"), &EditorFeatureProfile::is_class_property_disabled);
ClassDB::bind_method(D_METHOD("set_disable_class_property", "class_name", "property", "disable"), &EditorFeatureProfile::set_disable_class_property);
ClassDB::bind_method(D_METHOD("is_class_property_disabled", "class_name", "property"), &EditorFeatureProfile::is_class_property_disabled);
ClassDB::bind_method(D_METHOD("set_disable_feature", "feature", "disable"), &EditorFeatureProfile::set_disable_feature);
ClassDB::bind_method(D_METHOD("is_feature_disabled", "feature"), &EditorFeatureProfile::is_feature_disabled);
......
......@@ -694,6 +694,14 @@
[/codeblock]
</description>
</method>
<method name="ord">
<return type="int">
</return>
<argument index="0" name="char" type="String">
</argument>
<description>
</description>
</method>
<method name="parse_json">
<return type="Variant">
</return>
......
......@@ -217,7 +217,9 @@
</constant>
<constant name="MATH_LERP_ANGLE" value="66" enum="BuiltinFunc">
</constant>
<constant name="FUNC_MAX" value="67" enum="BuiltinFunc">
<constant name="TEXT_ORD" value="67" enum="BuiltinFunc">
</constant>
<constant name="FUNC_MAX" value="68" enum="BuiltinFunc">
Represents the size of the [enum BuiltinFunc] enum.
</constant>
</constants>
......
......@@ -2410,10 +2410,10 @@ void VisualShaderNodeGroupBase::_bind_methods() {
ClassDB::bind_method(D_METHOD("has_output_port", "id"), &VisualShaderNodeGroupBase::has_output_port);
ClassDB::bind_method(D_METHOD("clear_output_ports"), &VisualShaderNodeGroupBase::clear_output_ports);
ClassDB::bind_method(D_METHOD("set_input_port_name"), &VisualShaderNodeGroupBase::set_input_port_name);
ClassDB::bind_method(D_METHOD("set_input_port_type"), &VisualShaderNodeGroupBase::set_input_port_type);
ClassDB::bind_method(D_METHOD("set_output_port_name"), &VisualShaderNodeGroupBase::set_output_port_name);
ClassDB::bind_method(D_METHOD("set_output_port_type"), &VisualShaderNodeGroupBase::set_output_port_type);
ClassDB::bind_method(D_METHOD("set_input_port_name", "id", "name"), &VisualShaderNodeGroupBase::set_input_port_name);
ClassDB::bind_method(D_METHOD("set_input_port_type", "id", "type"), &VisualShaderNodeGroupBase::set_input_port_type);
ClassDB::bind_method(D_METHOD("set_output_port_name", "id", "name"), &VisualShaderNodeGroupBase::set_output_port_name);
ClassDB::bind_method(D_METHOD("set_output_port_type", "id", "type"), &VisualShaderNodeGroupBase::set_output_port_type);
ClassDB::bind_method(D_METHOD("get_free_input_port_id"), &VisualShaderNodeGroupBase::get_free_input_port_id);
ClassDB::bind_method(D_METHOD("get_free_output_port_id"), &VisualShaderNodeGroupBase::get_free_output_port_id);
......
......@@ -1973,7 +1973,7 @@ void VisualServer::_bind_methods() {
ClassDB::bind_method(D_METHOD("canvas_item_add_primitive", "item", "points", "colors", "uvs", "texture", "width", "normal_map"), &VisualServer::canvas_item_add_primitive, DEFVAL(1.0), DEFVAL(RID()));
ClassDB::bind_method(D_METHOD("canvas_item_add_polygon", "item", "points", "colors", "uvs", "texture", "normal_map", "antialiased"), &VisualServer::canvas_item_add_polygon, DEFVAL(Vector<Point2>()), DEFVAL(RID()), DEFVAL(RID()), DEFVAL(false));
ClassDB::bind_method(D_METHOD("canvas_item_add_triangle_array", "item", "indices", "points", "colors", "uvs", "bones", "weights", "texture", "count", "normal_map"), &VisualServer::canvas_item_add_triangle_array, DEFVAL(Vector<Point2>()), DEFVAL(Vector<int>()), DEFVAL(Vector<float>()), DEFVAL(RID()), DEFVAL(-1), DEFVAL(RID()));
ClassDB::bind_method(D_METHOD("canvas_item_add_mesh", "item", "mesh", "texture", "normal_map"), &VisualServer::canvas_item_add_mesh, DEFVAL(RID()));
ClassDB::bind_method(D_METHOD("canvas_item_add_mesh", "item", "mesh", "transform", "modulate", "texture", "normal_map"), &VisualServer::canvas_item_add_mesh, DEFVAL(Transform2D()), DEFVAL(Color(1, 1, 1)), DEFVAL(RID()), DEFVAL(RID()));
ClassDB::bind_method(D_METHOD("canvas_item_add_multimesh", "item", "mesh", "texture", "normal_map"), &VisualServer::canvas_item_add_multimesh, DEFVAL(RID()));
ClassDB::bind_method(D_METHOD("canvas_item_add_particles", "item", "particles", "texture", "normal_map"), &VisualServer::canvas_item_add_particles);
ClassDB::bind_method(D_METHOD("canvas_item_add_set_transform", "item", "transform"), &VisualServer::canvas_item_add_set_transform);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment