This is an automated email from the ASF dual-hosted git repository.

morningman pushed a change to branch auto-pick-59721-branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git


 discard dfc557dc642 [test](mtmv) Inject stats to external table to make 
external table case stable (#59721)
     add 43e309e9fc5 branch-4.0: [feature](posexplode) support multi args 
#58990 (#59875)
     add 555e561574c branch-4.0: [fix](hudi) Disable nested column pruning for 
HUDI tables to avoid potential issues (#59860) (#59869)
     add 443e00ad155 [fix](fe) add compatible code for CloudTablet (#59815)
     add 5a76dbf2332 [fix](profile) Fix the issues of too many writer profile 
results (#59863)
     add 19414edeff7 branch-4.0: [fix](inverted index) fix incorrect supported 
types output in tokenizer error message #59666 (#59865)
     add 53749edd244 branch-4.0: [Fix](Streamingjob) fix streaming job auto 
resume clear error #59868 (#59894)
     add 076c08b67f4 [refine](expr) Use the new execute interface of expr in 
some places. … (#59879)
     add 16e4ec61991 branch-4.0: [fix](local shuffle) fix set operation compute 
wrong data because not set AggregationNode.isColocate #59840 (#59882)
     add 12e0e1ec046 branch-4.0: [Fix](StreamingJob) fix the first split task 
scheduled and fe restart remainsplit relay problem #59883 (#59902)
     add e5786112c48 branch-4.0: [fix](project push down) union and its 
children's output are mis order #58765 (#59886)
     add b084f3b6716 branch-4.0: [chore](tools) split TPC-DS' multi sql in one 
file #58691 (#59913)
     add 13b157ce286 branch-4.0: [Fix](partition) fix concurrent visit of 
partition items #59848 (#59891)
     add 2d22e58aa29 branch-4.0: [fix](Test)Anonymous access must be explicitly 
specified to prevent the default ProviderChain from taking effect. #59862 
(#59900)
     add a6ae895ab7a [branch-4.0]Pick types-related PRs (#59911)
     add a7d727b15c4 branch-4.0: [Fix](function) avoid false alarm of some 
datelike functions #59897 (#59931)
     add 5bc9e6f472a branch-4.0: [fix](mac) download one package on Mac failed 
#59909 (#59941)
     add e3c1aff1320 branch-4.0: [fix](transaction) ensure executing 
before/after abort when abort transaction in cloud mode #59425 (#59907)
     add 91ac58e6a2a [test](mtmv) Inject stats to external table to make 
external table case stable (#59721)

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (dfc557dc642)
            \
             N -- N -- N   refs/heads/auto-pick-59721-branch-4.0 (91ac58e6a2a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 be/src/exec/es/es_scroll_parser.cpp                |  27 +-
 be/src/exec/olap_common.h                          |  10 +-
 be/src/exprs/create_predicate_function.h           |   5 +-
 be/src/olap/comparison_predicate.h                 |  19 +-
 be/src/olap/delete_handler.cpp                     |   2 +-
 be/src/olap/delta_writer_v2.cpp                    |   8 +-
 be/src/olap/in_list_predicate.h                    |  19 +-
 be/src/olap/push_handler.cpp                       |   4 +-
 .../segment_v2/bloom_filter_index_writer.cpp       |   2 +
 be/src/olap/rowset/segment_v2/column_reader.cpp    |   2 +-
 .../olap/rowset/segment_v2/inverted_index_reader.h |   3 +-
 be/src/olap/rowset/segment_v2/zone_map_index.cpp   |   3 +-
 be/src/pipeline/exec/analytic_sink_operator.cpp    |   7 +-
 be/src/pipeline/exec/dict_sink_operator.cpp        |  18 +-
 be/src/pipeline/exec/operator.cpp                  |  12 +-
 .../pipeline/exec/partition_sort_sink_operator.cpp |  13 +-
 .../pipeline/exec/partition_sort_sink_operator.h   |   1 -
 be/src/pipeline/exec/repeat_operator.cpp           |  12 +-
 be/src/pipeline/exec/scan_operator.cpp             |  10 +-
 be/src/pipeline/exec/union_sink_operator.h         |   7 +-
 be/src/runtime/decimalv2_value.h                   |   3 +
 be/src/runtime/primitive_type.h                    | 148 +---
 be/src/runtime/runtime_predicate.cpp               |  45 +-
 .../aggregate_functions/aggregate_function_avg.cpp |  18 +-
 .../aggregate_functions/aggregate_function_avg.h   |  27 +-
 .../aggregate_functions/aggregate_function_map.h   |  18 +-
 .../aggregate_function_map_v2.h                    |  14 +-
 .../aggregate_functions/aggregate_function_sum.h   |  15 +-
 be/src/vec/columns/column_array.cpp                |   4 +-
 be/src/vec/columns/column_complex.h                |   2 +-
 be/src/vec/columns/column_const.h                  |   6 +-
 be/src/vec/columns/column_decimal.cpp              |  34 +-
 be/src/vec/columns/column_decimal.h                |   6 +-
 be/src/vec/columns/column_fixed_length_object.h    |   4 +-
 be/src/vec/columns/column_map.cpp                  |   6 +-
 be/src/vec/columns/column_string.cpp               |   6 +-
 be/src/vec/columns/column_struct.cpp               |   4 +-
 be/src/vec/columns/column_varbinary.h              |   2 +-
 be/src/vec/columns/column_variant.cpp              |   8 +-
 be/src/vec/columns/column_vector.cpp               |  74 +-
 be/src/vec/columns/column_vector.h                 |   5 +-
 be/src/vec/columns/predicate_column.h              |   3 +-
 be/src/vec/common/field_visitors.h                 |  67 +-
 be/src/vec/common/schema_util.cpp                  |   6 +-
 be/src/vec/common/sort/sorter.cpp                  |  12 +-
 be/src/vec/core/decimal_comparison.h               |  75 +-
 be/src/vec/core/field.cpp                          | 967 ++++++++++-----------
 be/src/vec/core/field.h                            | 426 +--------
 be/src/vec/core/types.h                            |   6 +
 be/src/vec/data_types/convert_field_to_type.cpp    | 394 ++++++++-
 be/src/vec/data_types/data_type_date.h             |   2 +-
 .../vec/data_types/data_type_date_or_datetime_v2.h |   4 +-
 be/src/vec/data_types/data_type_date_time.h        |   2 +-
 be/src/vec/data_types/data_type_decimal.cpp        |  12 +-
 be/src/vec/data_types/data_type_decimal.h          |  20 +-
 be/src/vec/data_types/data_type_number_base.cpp    |   6 +-
 be/src/vec/data_types/data_type_timestamptz.cpp    |   2 +-
 .../vec/data_types/serde/data_type_array_serde.cpp |   2 +-
 .../data_types/serde/data_type_decimal_serde.cpp   |  27 +-
 .../data_types/serde/data_type_number_serde.cpp    |   2 +-
 be/src/vec/exec/format/json/new_json_reader.cpp    |  15 +-
 be/src/vec/exec/format/orc/vorc_reader.cpp         |  12 +-
 .../exec/format/parquet/parquet_column_convert.h   |   4 +-
 be/src/vec/exec/format/parquet/parquet_predicate.h |  14 +-
 .../exec/format/parquet/vparquet_group_reader.cpp  |  12 +-
 be/src/vec/exec/jni_connector.h                    |  14 +
 be/src/vec/exec/scan/file_scanner.cpp              |  14 +-
 .../vec/exprs/table_function/vexplode_bitmap.cpp   |   6 +-
 .../exprs/table_function/vexplode_json_object.cpp  |   6 +-
 be/src/vec/exprs/varray_literal.cpp                |   2 +-
 be/src/vec/exprs/vcondition_expr.cpp               |   6 +-
 be/src/vec/exprs/vexpr.cpp                         |  85 +-
 be/src/vec/exprs/vexpr_context.cpp                 |  12 +
 be/src/vec/exprs/vexpr_context.h                   |   1 +
 be/src/vec/exprs/vmap_literal.cpp                  |   8 +-
 be/src/vec/exprs/vstruct_literal.cpp               |   2 +-
 be/src/vec/functions/ai/ai_functions.cpp           |   6 +-
 .../vec/functions/array/function_arrays_overlap.h  |  39 +-
 be/src/vec/functions/binary_arithmetic.h           | 163 ++--
 .../functions/cast/cast_to_basic_number_common.h   |  43 +-
 be/src/vec/functions/cast/cast_to_boolean.h        |   4 +-
 be/src/vec/functions/cast/cast_to_decimal.h        | 256 +++++-
 be/src/vec/functions/cast/cast_to_int.h            |   2 +-
 be/src/vec/functions/cast/cast_to_string.h         |   7 +
 be/src/vec/functions/divide.cpp                    | 213 ++++-
 be/src/vec/functions/function_bit.cpp              |  12 +-
 be/src/vec/functions/function_bit_shift.cpp        |   8 +-
 .../function_date_or_datetime_computation.h        |  32 +-
 .../vec/functions/function_datetime_floor_ceil.cpp |  20 +-
 be/src/vec/functions/function_dict_get_many.cpp    |   5 +-
 be/src/vec/functions/function_hash.cpp             |   4 +-
 be/src/vec/functions/function_helpers.h            |   4 +-
 .../vec/functions/function_other_types_to_date.cpp | 165 ++--
 be/src/vec/functions/function_quantile_state.cpp   |   4 +-
 be/src/vec/functions/function_string.h             |   6 +-
 be/src/vec/functions/function_variant_type.cpp     |   4 +-
 .../functions/functions_multi_string_position.cpp  |   5 +-
 .../functions/functions_multi_string_search.cpp    |   8 +-
 be/src/vec/functions/if.cpp                        |   6 +-
 be/src/vec/functions/int_div.cpp                   |   8 +-
 be/src/vec/functions/math.cpp                      |  89 +-
 be/src/vec/functions/modulo.cpp                    | 275 ++++--
 be/src/vec/functions/multiply.cpp                  | 374 +++++---
 be/src/vec/functions/random.cpp                    |   3 +-
 be/src/vec/functions/round.h                       | 112 ++-
 be/src/vec/functions/uniform.cpp                   |   4 +-
 be/src/vec/io/io_helper.h                          |   7 +-
 be/src/vec/json/json_parser.cpp                    |   4 +-
 be/src/vec/json/parse2column.cpp                   |   2 +-
 be/src/vec/sink/vtablet_block_convertor.cpp        |   2 +-
 .../sink/writer/iceberg/viceberg_table_writer.cpp  |   2 +-
 be/src/vec/sink/writer/vhive_table_writer.cpp      |   2 +-
 ...ma_cluster_snapshot_properties_scanner_test.cpp |   2 +-
 .../schema_cluster_snapshots_scanner_test.cpp      |   2 +-
 .../vec/columns/column_variant_byte_size.out       |   4 +-
 .../column_variant_update_crc_with_value.out       |   2 +-
 ..._variant_update_crc_with_value.out_with_nullmap |   2 +-
 .../column_variant_update_crcs_with_value.out      |   2 +-
 ...variant_update_crcs_with_value.out_with_nullmap |   2 +-
 .../column_variant_update_hashes_with_value.out    |   2 +-
 ...riant_update_hashes_with_value.out_with_nullmap |   2 +-
 .../column_variant_update_xxHash_with_value.out    |   2 +-
 ...riant_update_xxHash_with_value.out_with_nullmap |   2 +-
 .../operator/hashjoin_probe_operator_test.cpp      |  45 +-
 .../runtime_filter/runtime_filter_wrapper_test.cpp |  12 +-
 be/test/testutil/variant_util.h                    |  10 +-
 .../agg_group_array_intersect_test.cpp             |  28 +-
 .../aggregate_functions/agg_min_max_by_test.cpp    |   8 +-
 .../vec/aggregate_functions/agg_min_max_test.cpp   |   9 +-
 .../vec/aggregate_functions/agg_replace_test.cpp   |  13 +-
 be/test/vec/aggregate_functions/agg_test.cpp       |   2 +-
 be/test/vec/columns/column_array_test.cpp          |  24 +-
 be/test/vec/columns/column_dictionary_test.cpp     |   2 +-
 be/test/vec/columns/column_nullable_test.h         |   2 +-
 be/test/vec/columns/column_string_test.cpp         |   5 +-
 be/test/vec/columns/column_varbinary_test.cpp      |   4 +-
 be/test/vec/columns/column_variant_test.cpp        | 195 +++--
 be/test/vec/columns/common_column_test.h           |  24 +-
 be/test/vec/core/block_test.cpp                    |   6 +-
 be/test/vec/core/column_array_test.cpp             |   8 +-
 be/test/vec/core/column_complex_test.cpp           |   4 +-
 be/test/vec/core/column_map_test.cpp               |  56 +-
 be/test/vec/core/column_struct_test.cpp            |  12 +-
 be/test/vec/core/column_test.cpp                   |  72 +-
 be/test/vec/core/field_test.cpp                    |  28 +-
 be/test/vec/data_types/data_type_array_test.cpp    |  13 +-
 .../vec/data_types/data_type_datetime_v1_test.cpp  |  48 +-
 .../vec/data_types/data_type_datetime_v2_test.cpp  | 124 ++-
 be/test/vec/data_types/data_type_decimal_test.cpp  |  19 +-
 .../vec/data_types/data_type_varbinary_test.cpp    |  10 +-
 .../serde/data_type_serde_arrow_test.cpp           |   3 +-
 .../vec/data_types/serde/data_type_serde_test.cpp  |  72 +-
 .../data_types/serde/data_type_to_string_test.cpp  |  15 +-
 .../vec/exec/format/parquet/parquet_expr_test.cpp  |  19 +-
 be/test/vec/exec/vgeneric_iterators_test.cpp       |  26 +-
 be/test/vec/exprs/vexpr_test.cpp                   |  36 +-
 be/test/vec/function/cast/cast_test.h              |   3 +
 be/test/vec/function/cast/cast_to_boolean_test.cpp |  22 +-
 be/test/vec/function/cast/cast_to_decimal.cpp      |  10 +-
 be/test/vec/function/cast/cast_to_decimal.h        |   5 +-
 .../cast/cast_to_decimal128_from_decimal128.cpp    |   2 +-
 ...cast_to_decimal128_from_decimal128_overflow.cpp |   2 +-
 .../cast/cast_to_decimal256_from_decimal128.cpp    |   2 +-
 ...cast_to_decimal256_from_decimal128_overflow.cpp |   2 +-
 .../cast/cast_to_decimal32_from_decimal128.cpp     |   2 +-
 .../cast_to_decimal32_from_decimal128_overflow.cpp |   2 +-
 .../cast/cast_to_decimal64_from_decimal128.cpp     |   2 +-
 .../cast_to_decimal64_from_decimal128_overflow.cpp |   2 +-
 be/test/vec/function/cast/cast_to_float_double.cpp |  61 +-
 be/test/vec/function/cast/cast_to_integer.cpp      |  26 +-
 .../function/cast/function_variant_cast_test.cpp   |   2 +-
 .../vec/function/function_array_element_test.cpp   |  11 +-
 be/test/vec/function/function_array_index_test.cpp |  26 +-
 .../vec/function/function_arrays_overlap_test.cpp  |  31 +-
 be/test/vec/function/function_math_test.cpp        |  11 +-
 .../vec/function/function_money_format_test.cpp    |   2 +-
 be/test/vec/function/function_test_util.cpp        |   2 +-
 be/test/vec/function/function_test_util.h          |   8 +
 be/test/vec/function/function_time_test.cpp        |   4 +-
 be/test/vec/function/table_function_test.cpp       |  14 +-
 be/test/vec/jsonb/convert_field_to_type_test.cpp   |  68 +-
 be/test/vec/jsonb/serialize_test.cpp               |   3 +-
 .../utils/arrow_column_to_doris_column_test.cpp    |   6 +-
 cloud/src/common/bvars.cpp                         |   5 +
 cloud/src/common/bvars.h                           |   3 +
 cloud/src/meta-service/meta_service.h              |  13 +
 cloud/src/meta-service/meta_service_txn.cpp        |  85 ++
 cloud/test/meta_service_test.cpp                   | 109 +++
 .../catalog/BuiltinTableGeneratingFunctions.java   |   3 +-
 .../java/org/apache/doris/catalog/OlapTable.java   |   2 +-
 .../org/apache/doris/catalog/PartitionInfo.java    |   4 +-
 .../doris/clone/DynamicPartitionScheduler.java     |  19 +-
 .../apache/doris/cloud/catalog/CloudTablet.java    |  26 +-
 .../apache/doris/cloud/rpc/MetaServiceClient.java  |  13 +
 .../apache/doris/cloud/rpc/MetaServiceProxy.java   |   5 +
 .../transaction/CloudGlobalTransactionMgr.java     |  81 +-
 .../common/AwsCredentialsProviderFactory.java      |  34 +-
 .../apache/doris/indexpolicy/IndexPolicyMgr.java   |   2 +-
 .../org/apache/doris/job/common/FailureReason.java |   7 +-
 .../insert/streaming/StreamingInsertJob.java       |   2 +-
 .../streaming/StreamingJobSchedulerTask.java       |   1 -
 .../job/offset/jdbc/JdbcSourceOffsetProvider.java  |  42 +-
 .../apache/doris/job/util/StreamingJobUtils.java   |  19 +-
 .../load/routineload/RoutineLoadTaskInfo.java      |  15 +-
 .../glue/translator/PhysicalPlanTranslator.java    |  12 +-
 .../nereids/rules/rewrite/PushDownProject.java     | 168 ++--
 .../functions/generator/PosExplode.java            |  56 +-
 .../functions/generator/PosExplodeOuter.java       |  55 +-
 .../trees/plans/logical/LogicalFileScan.java       |   6 +
 .../java/org/apache/doris/system/HeartbeatMgr.java |   9 +
 .../property/storage/S3PropertiesTest.java         |   2 +-
 .../nereids/rules/rewrite/PushDownProjectTest.java | 192 ++++
 ...iantArrayTest.java => PosExplodeOuterTest.java} |  29 +-
 ...deVariantArrayTest.java => PosExplodeTest.java} |  29 +-
 .../source/reader/mysql/MySqlSourceReader.java     |   2 +-
 gensrc/proto/cloud.proto                           |  14 +
 .../data/correctness_p0/test_date_trunc_error.out  |   6 +
 .../sql_functions/table_function/posexplode.out    | 159 +++-
 .../regression/util/RoutineLoadTestUtils.groovy    |   4 +-
 .../test_catalog_instance_profile.groovy           |  36 +-
 .../aws_iam_role_p0/test_tvf_anonymous.groovy      |   4 +-
 .../correctness_p0/test_date_trunc_error.groovy    |  85 ++
 ...est_index_policy_unsupported_type_error.groovy} |  31 +-
 ....groovy => test_routine_load_be_restart.groovy} |  35 +-
 .../sql_functions/table_function/posexplode.groovy |  49 ++
 .../query_profile/test_writer_profile.groovy       | 194 +++++
 thirdparty/download-thirdparty.sh                  |   4 +-
 tools/tpcds-tools/bin/run-tpcds-queries.sh         |  51 +-
 tools/tpcds-tools/queries/sf1/query14.sql          | 106 ---
 .../{sf1000/query14.sql => sf1/query14_1.sql}      | 101 ---
 tools/tpcds-tools/queries/sf1/query23.sql          |  55 --
 .../{sf1000/query23.sql => sf1/query23_1.sql}      |  49 --
 tools/tpcds-tools/queries/sf1/query24.sql          |  52 --
 tools/tpcds-tools/queries/sf1/query24_1.sql        |  52 ++
 tools/tpcds-tools/queries/sf1/query39.sql          |  26 -
 .../queries/sf1/{query39.sql => query39_1.sql}     |  25 -
 tools/tpcds-tools/queries/sf100/query14.sql        | 106 ---
 .../queries/sf100/{query14.sql => query14_1.sql}   | 101 ---
 tools/tpcds-tools/queries/sf100/query23.sql        |  55 --
 .../queries/sf100/{query23.sql => query23_1.sql}   |  49 --
 tools/tpcds-tools/queries/sf100/query24.sql        |  52 --
 tools/tpcds-tools/queries/sf100/query24_1.sql      |  52 ++
 tools/tpcds-tools/queries/sf100/query39.sql        |  26 -
 .../queries/sf100/{query39.sql => query39_1.sql}   |  24 -
 tools/tpcds-tools/queries/sf1000/query14.sql       | 106 ---
 .../queries/sf1000/{query14.sql => query14_1.sql}  | 101 ---
 tools/tpcds-tools/queries/sf1000/query23.sql       |  55 --
 .../queries/sf1000/{query23.sql => query23_1.sql}  |  49 --
 tools/tpcds-tools/queries/sf1000/query24.sql       |  52 --
 tools/tpcds-tools/queries/sf1000/query24_1.sql     |  52 ++
 tools/tpcds-tools/queries/sf1000/query39.sql       |  25 -
 .../queries/sf1000/{query39.sql => query39_1.sql}  |  24 -
 tools/tpcds-tools/queries/sf10000/query14.sql      | 106 ---
 .../queries/sf10000/{query14.sql => query14_1.sql} | 101 ---
 tools/tpcds-tools/queries/sf10000/query23.sql      |  55 --
 .../queries/sf10000/{query23.sql => query23_1.sql} |  49 --
 tools/tpcds-tools/queries/sf10000/query24.sql      |  52 --
 .../queries/sf10000/{query24.sql => query24_1.sql} |  52 --
 tools/tpcds-tools/queries/sf10000/query39.sql      |  26 -
 .../queries/sf10000/{query39.sql => query39_1.sql} |  25 -
 260 files changed, 4989 insertions(+), 4684 deletions(-)
 create mode 100644 
fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PushDownProjectTest.java
 copy 
fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/functions/generator/{ExplodeVariantArrayTest.java
 => PosExplodeOuterTest.java} (68%)
 copy 
fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/functions/generator/{ExplodeVariantArrayTest.java
 => PosExplodeTest.java} (69%)
 create mode 100644 
regression-test/data/correctness_p0/test_date_trunc_error.out
 create mode 100644 
regression-test/suites/correctness_p0/test_date_trunc_error.groovy
 copy regression-test/suites/{correctness/test_set_session_var_exception.groovy 
=> inverted_index_p0/test_index_policy_unsupported_type_error.groovy} (56%)
 copy 
regression-test/suites/load_p0/routine_load/{test_routine_load_delay_schedule.groovy
 => test_routine_load_be_restart.groovy} (66%)
 create mode 100644 
regression-test/suites/query_profile/test_writer_profile.groovy
 copy tools/tpcds-tools/queries/{sf1000/query14.sql => sf1/query14_1.sql} (52%)
 copy tools/tpcds-tools/queries/{sf1000/query23.sql => sf1/query23_1.sql} (54%)
 create mode 100644 tools/tpcds-tools/queries/sf1/query24_1.sql
 copy tools/tpcds-tools/queries/sf1/{query39.sql => query39_1.sql} (50%)
 copy tools/tpcds-tools/queries/sf100/{query14.sql => query14_1.sql} (52%)
 copy tools/tpcds-tools/queries/sf100/{query23.sql => query23_1.sql} (54%)
 create mode 100644 tools/tpcds-tools/queries/sf100/query24_1.sql
 copy tools/tpcds-tools/queries/sf100/{query39.sql => query39_1.sql} (50%)
 copy tools/tpcds-tools/queries/sf1000/{query14.sql => query14_1.sql} (52%)
 copy tools/tpcds-tools/queries/sf1000/{query23.sql => query23_1.sql} (54%)
 create mode 100644 tools/tpcds-tools/queries/sf1000/query24_1.sql
 copy tools/tpcds-tools/queries/sf1000/{query39.sql => query39_1.sql} (50%)
 copy tools/tpcds-tools/queries/sf10000/{query14.sql => query14_1.sql} (52%)
 copy tools/tpcds-tools/queries/sf10000/{query23.sql => query23_1.sql} (54%)
 copy tools/tpcds-tools/queries/sf10000/{query24.sql => query24_1.sql} (50%)
 copy tools/tpcds-tools/queries/sf10000/{query39.sql => query39_1.sql} (50%)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to