Skip to content

Commit b9fc181

Browse files
authored
chore: update googleapis SHA circa 20260825 (#16390)
PiperOrigin-RevId: 970877884
1 parent 17ad4f5 commit b9fc181

82 files changed

Lines changed: 2110 additions & 822 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎MODULE.bazel‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@ python.toolchain(
5353
)
5454

5555
bazel_dep(name = "grpc", version = "1.83.0")
56-
bazel_dep(name = "googleapis", version = "0.0.0-20260812-f76fc6dc")
56+
bazel_dep(name = "googleapis", version = "0.0.0-20260825-d10ac924")
5757
bazel_dep(name = "googleapis-cc", version = "1.1.5")
5858
bazel_dep(name = "googleapis-grpc-cc", version = "1.1.5")

‎bazel/workspace0.bzl‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,10 @@ def gl_cpp_workspace0(name = None):
136136
http_archive,
137137
name = "googleapis",
138138
urls = [
139-
"https://github.com/googleapis/googleapis/archive/f76fc6dcdd744681c9d3e2fc30b0fc813118c295.tar.gz",
139+
"https://github.com/googleapis/googleapis/archive/d10ac9249540add035ce07b6a54028ab643e1532.tar.gz",
140140
],
141-
sha256 = "f89a9e70418646337d71fb79d3679e8a3183682bb5fd1e3457e325886c8dad9d",
142-
strip_prefix = "googleapis-f76fc6dcdd744681c9d3e2fc30b0fc813118c295",
141+
sha256 = "5edf8777a0def8f0d845b3620cc3489b41f9c034d64fd86cc24f4e7b9388048f",
142+
strip_prefix = "googleapis-d10ac9249540add035ce07b6a54028ab643e1532",
143143
build_file = Label("//bazel:googleapis.BUILD"),
144144
# Scaffolding for patching googleapis after download. For example:
145145
patches = [

‎cmake/GoogleapisConfig.cmake‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ set(GOOGLE_CLOUD_CPP_GOOGLEAPIS_SHA256
2727
mark_as_advanced(GOOGLE_CLOUD_CPP_GOOGLEAPIS_SHA256)
2828

2929
set(_GOOGLE_CLOUD_CPP_GOOGLEAPIS_COMMIT_SHA
30-
"f76fc6dcdd744681c9d3e2fc30b0fc813118c295")
30+
"d10ac9249540add035ce07b6a54028ab643e1532")
3131
set(_GOOGLE_CLOUD_CPP_GOOGLEAPIS_SHA256
32-
"f89a9e70418646337d71fb79d3679e8a3183682bb5fd1e3457e325886c8dad9d")
32+
"5edf8777a0def8f0d845b3620cc3489b41f9c034d64fd86cc24f4e7b9388048f")
3333

3434
set(DOXYGEN_ALIASES
3535
"googleapis_link{2}=\"[\\1](https://github.com/googleapis/googleapis/blob/${_GOOGLE_CLOUD_CPP_GOOGLEAPIS_COMMIT_SHA}/\\2)\""

‎external/googleapis/protolists/bigquerycontrol.list‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
@googleapis//google/cloud/bigquery/v2:arrow.proto
12
@googleapis//google/cloud/bigquery/v2:biglake_config.proto
23
@googleapis//google/cloud/bigquery/v2:clustering.proto
34
@googleapis//google/cloud/bigquery/v2:data_format_options.proto

‎google/cloud/auditmanager/v1/audit_manager_client.h‎

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ class AuditManagerClient {
124124
/// [`StatusOr`]: @ref google::cloud::StatusOr
125125
/// [`Status`]: @ref google::cloud::Status
126126
/// [google.cloud.auditmanager.v1.EnrollResourceRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L260}
127-
/// [google.cloud.auditmanager.v1.Enrollment]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L562}
127+
/// [google.cloud.auditmanager.v1.Enrollment]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L573}
128128
///
129129
// clang-format on
130130
StatusOr<google::cloud::auditmanager::v1::Enrollment> EnrollResource(
@@ -161,7 +161,7 @@ class AuditManagerClient {
161161
/// [`StatusOr`]: @ref google::cloud::StatusOr
162162
/// [`Status`]: @ref google::cloud::Status
163163
/// [google.cloud.auditmanager.v1.EnrollResourceRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L260}
164-
/// [google.cloud.auditmanager.v1.Enrollment]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L562}
164+
/// [google.cloud.auditmanager.v1.Enrollment]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L573}
165165
///
166166
// clang-format on
167167
StatusOr<google::cloud::auditmanager::v1::Enrollment> EnrollResource(
@@ -203,7 +203,7 @@ class AuditManagerClient {
203203
/// [`future`]: @ref google::cloud::future
204204
/// [`StatusOr`]: @ref google::cloud::StatusOr
205205
/// [`Status`]: @ref google::cloud::Status
206-
/// [google.cloud.auditmanager.v1.AuditScopeReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L586}
206+
/// [google.cloud.auditmanager.v1.AuditScopeReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L597}
207207
/// [google.cloud.auditmanager.v1.GenerateAuditScopeReportRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L295}
208208
///
209209
// clang-format on
@@ -244,7 +244,7 @@ class AuditManagerClient {
244244
/// [`future`]: @ref google::cloud::future
245245
/// [`StatusOr`]: @ref google::cloud::StatusOr
246246
/// [`Status`]: @ref google::cloud::Status
247-
/// [google.cloud.auditmanager.v1.AuditScopeReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L586}
247+
/// [google.cloud.auditmanager.v1.AuditScopeReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L597}
248248
/// [google.cloud.auditmanager.v1.GenerateAuditScopeReportRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L295}
249249
///
250250
// clang-format on
@@ -293,7 +293,7 @@ class AuditManagerClient {
293293
/// [`future`]: @ref google::cloud::future
294294
/// [`StatusOr`]: @ref google::cloud::StatusOr
295295
/// [`Status`]: @ref google::cloud::Status
296-
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L695}
296+
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L706}
297297
/// [google.cloud.auditmanager.v1.GenerateAuditReportRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L331}
298298
///
299299
// clang-format on
@@ -355,7 +355,7 @@ class AuditManagerClient {
355355
/// [`future`]: @ref google::cloud::future
356356
/// [`StatusOr`]: @ref google::cloud::StatusOr
357357
/// [`Status`]: @ref google::cloud::Status
358-
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L695}
358+
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L706}
359359
/// [google.cloud.auditmanager.v1.GenerateAuditReportRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L331}
360360
///
361361
// clang-format on
@@ -428,8 +428,8 @@ class AuditManagerClient {
428428
/// [`future`]: @ref google::cloud::future
429429
/// [`StatusOr`]: @ref google::cloud::StatusOr
430430
/// [`Status`]: @ref google::cloud::Status
431-
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L695}
432-
/// [google.cloud.auditmanager.v1.ListAuditReportsRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L432}
431+
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L706}
432+
/// [google.cloud.auditmanager.v1.ListAuditReportsRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L443}
433433
///
434434
// clang-format on
435435
StreamRange<google::cloud::auditmanager::v1::AuditReport> ListAuditReports(
@@ -468,8 +468,8 @@ class AuditManagerClient {
468468
/// [`future`]: @ref google::cloud::future
469469
/// [`StatusOr`]: @ref google::cloud::StatusOr
470470
/// [`Status`]: @ref google::cloud::Status
471-
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L695}
472-
/// [google.cloud.auditmanager.v1.ListAuditReportsRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L432}
471+
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L706}
472+
/// [google.cloud.auditmanager.v1.ListAuditReportsRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L443}
473473
///
474474
// clang-format on
475475
StreamRange<google::cloud::auditmanager::v1::AuditReport> ListAuditReports(
@@ -498,8 +498,8 @@ class AuditManagerClient {
498498
/// [`future`]: @ref google::cloud::future
499499
/// [`StatusOr`]: @ref google::cloud::StatusOr
500500
/// [`Status`]: @ref google::cloud::Status
501-
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L695}
502-
/// [google.cloud.auditmanager.v1.GetAuditReportRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L472}
501+
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L706}
502+
/// [google.cloud.auditmanager.v1.GetAuditReportRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L483}
503503
///
504504
// clang-format on
505505
StatusOr<google::cloud::auditmanager::v1::AuditReport> GetAuditReport(
@@ -528,8 +528,8 @@ class AuditManagerClient {
528528
/// [`future`]: @ref google::cloud::future
529529
/// [`StatusOr`]: @ref google::cloud::StatusOr
530530
/// [`Status`]: @ref google::cloud::Status
531-
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L695}
532-
/// [google.cloud.auditmanager.v1.GetAuditReportRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L472}
531+
/// [google.cloud.auditmanager.v1.AuditReport]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L706}
532+
/// [google.cloud.auditmanager.v1.GetAuditReportRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L483}
533533
///
534534
// clang-format on
535535
StatusOr<google::cloud::auditmanager::v1::AuditReport> GetAuditReport(
@@ -559,8 +559,8 @@ class AuditManagerClient {
559559
/// [`future`]: @ref google::cloud::future
560560
/// [`StatusOr`]: @ref google::cloud::StatusOr
561561
/// [`Status`]: @ref google::cloud::Status
562-
/// [google.cloud.auditmanager.v1.GetResourceEnrollmentStatusRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L377}
563-
/// [google.cloud.auditmanager.v1.ResourceEnrollmentStatus]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L644}
562+
/// [google.cloud.auditmanager.v1.GetResourceEnrollmentStatusRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L388}
563+
/// [google.cloud.auditmanager.v1.ResourceEnrollmentStatus]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L655}
564564
///
565565
// clang-format on
566566
StatusOr<google::cloud::auditmanager::v1::ResourceEnrollmentStatus>
@@ -589,8 +589,8 @@ class AuditManagerClient {
589589
/// [`future`]: @ref google::cloud::future
590590
/// [`StatusOr`]: @ref google::cloud::StatusOr
591591
/// [`Status`]: @ref google::cloud::Status
592-
/// [google.cloud.auditmanager.v1.GetResourceEnrollmentStatusRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L377}
593-
/// [google.cloud.auditmanager.v1.ResourceEnrollmentStatus]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L644}
592+
/// [google.cloud.auditmanager.v1.GetResourceEnrollmentStatusRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L388}
593+
/// [google.cloud.auditmanager.v1.ResourceEnrollmentStatus]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L655}
594594
///
595595
// clang-format on
596596
StatusOr<google::cloud::auditmanager::v1::ResourceEnrollmentStatus>
@@ -631,8 +631,8 @@ class AuditManagerClient {
631631
/// [`future`]: @ref google::cloud::future
632632
/// [`StatusOr`]: @ref google::cloud::StatusOr
633633
/// [`Status`]: @ref google::cloud::Status
634-
/// [google.cloud.auditmanager.v1.ListResourceEnrollmentStatusesRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L394}
635-
/// [google.cloud.auditmanager.v1.ResourceEnrollmentStatus]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L644}
634+
/// [google.cloud.auditmanager.v1.ListResourceEnrollmentStatusesRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L405}
635+
/// [google.cloud.auditmanager.v1.ResourceEnrollmentStatus]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L655}
636636
///
637637
// clang-format on
638638
StreamRange<google::cloud::auditmanager::v1::ResourceEnrollmentStatus>
@@ -671,8 +671,8 @@ class AuditManagerClient {
671671
/// [`future`]: @ref google::cloud::future
672672
/// [`StatusOr`]: @ref google::cloud::StatusOr
673673
/// [`Status`]: @ref google::cloud::Status
674-
/// [google.cloud.auditmanager.v1.ListResourceEnrollmentStatusesRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L394}
675-
/// [google.cloud.auditmanager.v1.ResourceEnrollmentStatus]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L644}
674+
/// [google.cloud.auditmanager.v1.ListResourceEnrollmentStatusesRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L405}
675+
/// [google.cloud.auditmanager.v1.ResourceEnrollmentStatus]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L655}
676676
///
677677
// clang-format on
678678
StreamRange<google::cloud::auditmanager::v1::ResourceEnrollmentStatus>
@@ -713,8 +713,8 @@ class AuditManagerClient {
713713
/// [`future`]: @ref google::cloud::future
714714
/// [`StatusOr`]: @ref google::cloud::StatusOr
715715
/// [`Status`]: @ref google::cloud::Status
716-
/// [google.cloud.auditmanager.v1.Control]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L793}
717-
/// [google.cloud.auditmanager.v1.ListControlsRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L488}
716+
/// [google.cloud.auditmanager.v1.Control]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L804}
717+
/// [google.cloud.auditmanager.v1.ListControlsRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L499}
718718
///
719719
// clang-format on
720720
StreamRange<google::cloud::auditmanager::v1::Control> ListControls(
@@ -753,8 +753,8 @@ class AuditManagerClient {
753753
/// [`future`]: @ref google::cloud::future
754754
/// [`StatusOr`]: @ref google::cloud::StatusOr
755755
/// [`Status`]: @ref google::cloud::Status
756-
/// [google.cloud.auditmanager.v1.Control]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L793}
757-
/// [google.cloud.auditmanager.v1.ListControlsRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L488}
756+
/// [google.cloud.auditmanager.v1.Control]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L804}
757+
/// [google.cloud.auditmanager.v1.ListControlsRequest]: @googleapis_reference_link{google/cloud/auditmanager/v1/auditmanager.proto#L499}
758758
///
759759
// clang-format on
760760
StreamRange<google::cloud::auditmanager::v1::Control> ListControls(

‎google/cloud/bigquery/reservation/v1/internal/reservation_auth_decorator.cc‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,16 @@ ReservationServiceAuth::ListReservationGroups(
318318
return child_->ListReservationGroups(context, options, request);
319319
}
320320

321+
StatusOr<google::cloud::bigquery::reservation::v1::ReservationGroup>
322+
ReservationServiceAuth::UpdateReservationGroup(
323+
grpc::ClientContext& context, Options const& options,
324+
google::cloud::bigquery::reservation::v1::
325+
UpdateReservationGroupRequest const& request) {
326+
auto status = auth_->ConfigureContext(context);
327+
if (!status.ok()) return status;
328+
return child_->UpdateReservationGroup(context, options, request);
329+
}
330+
321331
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
322332
} // namespace bigquery_reservation_v1_internal
323333
} // namespace cloud

‎google/cloud/bigquery/reservation/v1/internal/reservation_auth_decorator.h‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,12 @@ class ReservationServiceAuth : public ReservationServiceStub {
204204
google::cloud::bigquery::reservation::v1::
205205
ListReservationGroupsRequest const& request) override;
206206

207+
StatusOr<google::cloud::bigquery::reservation::v1::ReservationGroup>
208+
UpdateReservationGroup(
209+
grpc::ClientContext& context, Options const& options,
210+
google::cloud::bigquery::reservation::v1::
211+
UpdateReservationGroupRequest const& request) override;
212+
207213
private:
208214
std::shared_ptr<google::cloud::internal::GrpcAuthenticationStrategy> auth_;
209215
std::shared_ptr<ReservationServiceStub> child_;

‎google/cloud/bigquery/reservation/v1/internal/reservation_connection_impl.cc‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,22 @@ ReservationServiceConnectionImpl::ListReservationGroups(
649649
});
650650
}
651651

652+
StatusOr<google::cloud::bigquery::reservation::v1::ReservationGroup>
653+
ReservationServiceConnectionImpl::UpdateReservationGroup(
654+
google::cloud::bigquery::reservation::v1::
655+
UpdateReservationGroupRequest const& request) {
656+
auto current = google::cloud::internal::SaveCurrentOptions();
657+
return google::cloud::internal::RetryLoop(
658+
retry_policy(*current), backoff_policy(*current),
659+
idempotency_policy(*current)->UpdateReservationGroup(request),
660+
[this](grpc::ClientContext& context, Options const& options,
661+
google::cloud::bigquery::reservation::v1::
662+
UpdateReservationGroupRequest const& request) {
663+
return stub_->UpdateReservationGroup(context, options, request);
664+
},
665+
*current, request, __func__);
666+
}
667+
652668
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
653669
} // namespace bigquery_reservation_v1_internal
654670
} // namespace cloud

‎google/cloud/bigquery/reservation/v1/internal/reservation_connection_impl.h‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,11 @@ class ReservationServiceConnectionImpl
182182
google::cloud::bigquery::reservation::v1::ListReservationGroupsRequest
183183
request) override;
184184

185+
StatusOr<google::cloud::bigquery::reservation::v1::ReservationGroup>
186+
UpdateReservationGroup(
187+
google::cloud::bigquery::reservation::v1::
188+
UpdateReservationGroupRequest const& request) override;
189+
185190
private:
186191
std::unique_ptr<google::cloud::BackgroundThreads> background_;
187192
std::shared_ptr<bigquery_reservation_v1_internal::ReservationServiceStub>

‎google/cloud/bigquery/reservation/v1/internal/reservation_logging_decorator.cc‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,20 @@ ReservationServiceLogging::ListReservationGroups(
437437
context, options, request, __func__, tracing_options_);
438438
}
439439

440+
StatusOr<google::cloud::bigquery::reservation::v1::ReservationGroup>
441+
ReservationServiceLogging::UpdateReservationGroup(
442+
grpc::ClientContext& context, Options const& options,
443+
google::cloud::bigquery::reservation::v1::
444+
UpdateReservationGroupRequest const& request) {
445+
return google::cloud::internal::LogWrapper(
446+
[this](grpc::ClientContext& context, Options const& options,
447+
google::cloud::bigquery::reservation::v1::
448+
UpdateReservationGroupRequest const& request) {
449+
return child_->UpdateReservationGroup(context, options, request);
450+
},
451+
context, options, request, __func__, tracing_options_);
452+
}
453+
440454
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
441455
} // namespace bigquery_reservation_v1_internal
442456
} // namespace cloud

0 commit comments

Comments
 (0)