OR-Tools  9.2
cp_model.pb.cc
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/cp_model.proto
3 
5 
6 #include <algorithm>
7 
8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
15 // @@protoc_insertion_point(includes)
16 #include <google/protobuf/port_def.inc>
17 
18 PROTOBUF_PRAGMA_INIT_SEG
19 namespace operations_research {
20 namespace sat {
22  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
23  : domain_()
24  , _domain_cached_byte_size_(0)
25  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
28  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
30  union {
32  };
33 };
36  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
37  : literals_()
38  , _literals_cached_byte_size_(0){}
41  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
43  union {
45  };
46 };
47 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BoolArgumentProtoDefaultTypeInternal _BoolArgumentProto_default_instance_;
49  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
50  : vars_()
51  , _vars_cached_byte_size_(0)
52  , coeffs_()
53  , _coeffs_cached_byte_size_(0)
54  , offset_(int64_t{0}){}
57  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
59  union {
61  };
62 };
65  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
66  : exprs_()
67  , target_(nullptr){}
70  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
72  union {
74  };
75 };
76 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearArgumentProtoDefaultTypeInternal _LinearArgumentProto_default_instance_;
78  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
79  : exprs_(){}
82  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
84  union {
86  };
87 };
90  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
91  : vars_()
92  , _vars_cached_byte_size_(0)
93  , coeffs_()
94  , _coeffs_cached_byte_size_(0)
95  , domain_()
96  , _domain_cached_byte_size_(0){}
99  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
101  union {
103  };
104 };
107  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
108  : vars_()
109  , _vars_cached_byte_size_(0)
110  , index_(0)
111  , target_(0){}
114  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
116  union {
118  };
119 };
122  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
123  : start_(nullptr)
124  , end_(nullptr)
125  , size_(nullptr){}
128  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
130  union {
132  };
133 };
136  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
137  : intervals_()
138  , _intervals_cached_byte_size_(0){}
141  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
143  union {
145  };
146 };
149  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
150  : x_intervals_()
151  , _x_intervals_cached_byte_size_(0)
152  , y_intervals_()
153  , _y_intervals_cached_byte_size_(0)
154  , boxes_with_null_area_can_overlap_(false){}
157  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
159  union {
161  };
162 };
165  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
166  : intervals_()
167  , _intervals_cached_byte_size_(0)
168  , demands_()
169  , capacity_(nullptr){}
172  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
174  union {
176  };
177 };
180  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
181  : time_exprs_()
182  , level_changes_()
183  , _level_changes_cached_byte_size_(0)
184  , active_literals_()
185  , _active_literals_cached_byte_size_(0)
186  , min_level_(int64_t{0})
187  , max_level_(int64_t{0}){}
190  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
192  union {
194  };
195 };
198  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
199  : tails_()
200  , _tails_cached_byte_size_(0)
201  , heads_()
202  , _heads_cached_byte_size_(0)
203  , literals_()
204  , _literals_cached_byte_size_(0){}
207  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
209  union {
211  };
212 };
215  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
216  : tails_()
217  , _tails_cached_byte_size_(0)
218  , heads_()
219  , _heads_cached_byte_size_(0)
220  , literals_()
221  , _literals_cached_byte_size_(0)
222  , demands_()
223  , _demands_cached_byte_size_(0)
224  , capacity_(int64_t{0}){}
227  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
229  union {
231  };
232 };
235  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
236  : vars_()
237  , _vars_cached_byte_size_(0)
238  , values_()
239  , _values_cached_byte_size_(0)
240  , negated_(false){}
243  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
245  union {
247  };
248 };
251  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
252  : f_direct_()
253  , _f_direct_cached_byte_size_(0)
254  , f_inverse_()
255  , _f_inverse_cached_byte_size_(0){}
258  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
260  union {
262  };
263 };
266  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
267  : final_states_()
268  , _final_states_cached_byte_size_(0)
269  , transition_tail_()
270  , _transition_tail_cached_byte_size_(0)
271  , transition_head_()
272  , _transition_head_cached_byte_size_(0)
273  , transition_label_()
274  , _transition_label_cached_byte_size_(0)
275  , vars_()
276  , _vars_cached_byte_size_(0)
277  , starting_state_(int64_t{0}){}
280  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
282  union {
284  };
285 };
288  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
289  : vars_()
290  , _vars_cached_byte_size_(0){}
293  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
295  union {
297  };
298 };
301  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
302  : enforcement_literal_()
303  , _enforcement_literal_cached_byte_size_(0)
304  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
305  , _oneof_case_{}{}
308  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
310  union {
312  };
313 };
314 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ConstraintProtoDefaultTypeInternal _ConstraintProto_default_instance_;
316  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
317  : vars_()
318  , _vars_cached_byte_size_(0)
319  , coeffs_()
320  , _coeffs_cached_byte_size_(0)
321  , domain_()
322  , _domain_cached_byte_size_(0)
323  , offset_(0)
324  , scaling_factor_(0)
325  , integer_offset_(int64_t{0})
326  , integer_scaling_factor_(int64_t{0})
327  , scaling_was_exact_(false){}
330  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
332  union {
334  };
335 };
336 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpObjectiveProtoDefaultTypeInternal _CpObjectiveProto_default_instance_;
338  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
339  : vars_()
340  , _vars_cached_byte_size_(0)
341  , coeffs_()
342  , offset_(0)
343  , maximize_(false){}
346  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
348  union {
350  };
351 };
354  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
355  : offset_(int64_t{0})
356  , positive_coeff_(int64_t{0})
357  , index_(0){}
360  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
362  union {
364  };
365 };
368  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
369  : variables_()
370  , _variables_cached_byte_size_(0)
371  , transformations_()
372  , variable_selection_strategy_(0)
373 
374  , domain_reduction_strategy_(0)
375 {}
378  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
380  union {
382  };
383 };
386  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
387  : vars_()
388  , _vars_cached_byte_size_(0)
389  , values_()
390  , _values_cached_byte_size_(0){}
393  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
395  union {
397  };
398 };
401  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
402  : support_()
403  , _support_cached_byte_size_(0)
404  , cycle_sizes_()
405  , _cycle_sizes_cached_byte_size_(0){}
408  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
410  union {
412  };
413 };
416  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
417  : entries_()
418  , _entries_cached_byte_size_(0)
419  , num_rows_(0)
420  , num_cols_(0){}
423  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
425  union {
427  };
428 };
429 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DenseMatrixProtoDefaultTypeInternal _DenseMatrixProto_default_instance_;
431  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
432  : permutations_()
433  , orbitopes_(){}
436  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
438  union {
440  };
441 };
442 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SymmetryProtoDefaultTypeInternal _SymmetryProto_default_instance_;
444  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
445  : variables_()
446  , constraints_()
447  , search_strategy_()
448  , assumptions_()
449  , _assumptions_cached_byte_size_(0)
450  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
451  , objective_(nullptr)
452  , solution_hint_(nullptr)
453  , symmetry_(nullptr)
454  , floating_point_objective_(nullptr){}
457  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
459  union {
461  };
462 };
463 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpModelProtoDefaultTypeInternal _CpModelProto_default_instance_;
465  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
466  : values_()
467  , _values_cached_byte_size_(0){}
470  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
472  union {
474  };
475 };
476 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpSolverSolutionDefaultTypeInternal _CpSolverSolution_default_instance_;
478  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
479  : solution_()
480  , _solution_cached_byte_size_(0)
481  , tightened_variables_()
482  , sufficient_assumptions_for_infeasibility_()
483  , _sufficient_assumptions_for_infeasibility_cached_byte_size_(0)
484  , additional_solutions_()
485  , solution_info_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
486  , solve_log_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
487  , integer_objective_(nullptr)
488  , objective_value_(0)
489  , best_objective_bound_(0)
490  , num_booleans_(int64_t{0})
491  , num_conflicts_(int64_t{0})
492  , num_branches_(int64_t{0})
493  , num_binary_propagations_(int64_t{0})
494  , num_integer_propagations_(int64_t{0})
495  , wall_time_(0)
496  , user_time_(0)
497  , deterministic_time_(0)
498  , gap_integral_(0)
499  , status_(0)
500 
501  , num_restarts_(int64_t{0})
502  , num_lp_iterations_(int64_t{0})
503  , inner_objective_lower_bound_(int64_t{0}){}
506  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
508  union {
510  };
511 };
512 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpSolverResponseDefaultTypeInternal _CpSolverResponse_default_instance_;
513 } // namespace sat
514 } // namespace operations_research
515 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[30];
516 static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3];
517 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto = nullptr;
518 
520  ~0u, // no _has_bits_
521  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, _internal_metadata_),
522  ~0u, // no _extensions_
523  ~0u, // no _oneof_case_
524  ~0u, // no _weak_field_map_
525  ~0u, // no _inlined_string_donated_
526  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, name_),
527  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, domain_),
528  ~0u, // no _has_bits_
529  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, _internal_metadata_),
530  ~0u, // no _extensions_
531  ~0u, // no _oneof_case_
532  ~0u, // no _weak_field_map_
533  ~0u, // no _inlined_string_donated_
534  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, literals_),
535  ~0u, // no _has_bits_
536  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, _internal_metadata_),
537  ~0u, // no _extensions_
538  ~0u, // no _oneof_case_
539  ~0u, // no _weak_field_map_
540  ~0u, // no _inlined_string_donated_
541  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, vars_),
542  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, coeffs_),
544  ~0u, // no _has_bits_
545  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, _internal_metadata_),
546  ~0u, // no _extensions_
547  ~0u, // no _oneof_case_
548  ~0u, // no _weak_field_map_
549  ~0u, // no _inlined_string_donated_
550  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, target_),
551  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, exprs_),
552  ~0u, // no _has_bits_
553  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, _internal_metadata_),
554  ~0u, // no _extensions_
555  ~0u, // no _oneof_case_
556  ~0u, // no _weak_field_map_
557  ~0u, // no _inlined_string_donated_
558  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, exprs_),
559  ~0u, // no _has_bits_
560  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, _internal_metadata_),
561  ~0u, // no _extensions_
562  ~0u, // no _oneof_case_
563  ~0u, // no _weak_field_map_
564  ~0u, // no _inlined_string_donated_
565  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, vars_),
566  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, coeffs_),
567  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, domain_),
568  ~0u, // no _has_bits_
569  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, _internal_metadata_),
570  ~0u, // no _extensions_
571  ~0u, // no _oneof_case_
572  ~0u, // no _weak_field_map_
573  ~0u, // no _inlined_string_donated_
574  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, index_),
575  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, target_),
577  ~0u, // no _has_bits_
578  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, _internal_metadata_),
579  ~0u, // no _extensions_
580  ~0u, // no _oneof_case_
581  ~0u, // no _weak_field_map_
582  ~0u, // no _inlined_string_donated_
583  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_),
584  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_),
585  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_),
586  ~0u, // no _has_bits_
587  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, _internal_metadata_),
588  ~0u, // no _extensions_
589  ~0u, // no _oneof_case_
590  ~0u, // no _weak_field_map_
591  ~0u, // no _inlined_string_donated_
592  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, intervals_),
593  ~0u, // no _has_bits_
594  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, _internal_metadata_),
595  ~0u, // no _extensions_
596  ~0u, // no _oneof_case_
597  ~0u, // no _weak_field_map_
598  ~0u, // no _inlined_string_donated_
599  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, x_intervals_),
600  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, y_intervals_),
601  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, boxes_with_null_area_can_overlap_),
602  ~0u, // no _has_bits_
603  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, _internal_metadata_),
604  ~0u, // no _extensions_
605  ~0u, // no _oneof_case_
606  ~0u, // no _weak_field_map_
607  ~0u, // no _inlined_string_donated_
608  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, capacity_),
609  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, intervals_),
610  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, demands_),
611  ~0u, // no _has_bits_
612  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, _internal_metadata_),
613  ~0u, // no _extensions_
614  ~0u, // no _oneof_case_
615  ~0u, // no _weak_field_map_
616  ~0u, // no _inlined_string_donated_
617  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, min_level_),
618  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, max_level_),
619  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, time_exprs_),
620  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, level_changes_),
621  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, active_literals_),
622  ~0u, // no _has_bits_
623  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, _internal_metadata_),
624  ~0u, // no _extensions_
625  ~0u, // no _oneof_case_
626  ~0u, // no _weak_field_map_
627  ~0u, // no _inlined_string_donated_
628  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, tails_),
629  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, heads_),
630  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, literals_),
631  ~0u, // no _has_bits_
632  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, _internal_metadata_),
633  ~0u, // no _extensions_
634  ~0u, // no _oneof_case_
635  ~0u, // no _weak_field_map_
636  ~0u, // no _inlined_string_donated_
637  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, tails_),
638  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, heads_),
639  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, literals_),
640  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, demands_),
641  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, capacity_),
642  ~0u, // no _has_bits_
643  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, _internal_metadata_),
644  ~0u, // no _extensions_
645  ~0u, // no _oneof_case_
646  ~0u, // no _weak_field_map_
647  ~0u, // no _inlined_string_donated_
648  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, vars_),
649  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, values_),
650  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, negated_),
651  ~0u, // no _has_bits_
652  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, _internal_metadata_),
653  ~0u, // no _extensions_
654  ~0u, // no _oneof_case_
655  ~0u, // no _weak_field_map_
656  ~0u, // no _inlined_string_donated_
657  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_direct_),
658  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_inverse_),
659  ~0u, // no _has_bits_
660  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, _internal_metadata_),
661  ~0u, // no _extensions_
662  ~0u, // no _oneof_case_
663  ~0u, // no _weak_field_map_
664  ~0u, // no _inlined_string_donated_
665  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, starting_state_),
666  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, final_states_),
667  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_tail_),
668  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_head_),
669  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_label_),
671  ~0u, // no _has_bits_
672  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ListOfVariablesProto, _internal_metadata_),
673  ~0u, // no _extensions_
674  ~0u, // no _oneof_case_
675  ~0u, // no _weak_field_map_
676  ~0u, // no _inlined_string_donated_
677  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ListOfVariablesProto, vars_),
678  ~0u, // no _has_bits_
679  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _internal_metadata_),
680  ~0u, // no _extensions_
681  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _oneof_case_[0]),
682  ~0u, // no _weak_field_map_
683  ~0u, // no _inlined_string_donated_
684  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, name_),
685  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, enforcement_literal_),
686  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
687  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
688  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
689  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
690  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
691  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
692  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
693  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
694  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
695  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
696  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
697  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
698  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
699  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
700  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
701  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
702  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
703  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
704  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
705  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
706  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
707  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
708  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
709  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, constraint_),
710  ~0u, // no _has_bits_
711  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, _internal_metadata_),
712  ~0u, // no _extensions_
713  ~0u, // no _oneof_case_
714  ~0u, // no _weak_field_map_
715  ~0u, // no _inlined_string_donated_
716  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, vars_),
717  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, coeffs_),
718  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, offset_),
719  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, scaling_factor_),
720  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, domain_),
721  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, scaling_was_exact_),
722  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, integer_offset_),
723  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, integer_scaling_factor_),
724  ~0u, // no _has_bits_
725  PROTOBUF_FIELD_OFFSET(::operations_research::sat::FloatObjectiveProto, _internal_metadata_),
726  ~0u, // no _extensions_
727  ~0u, // no _oneof_case_
728  ~0u, // no _weak_field_map_
729  ~0u, // no _inlined_string_donated_
730  PROTOBUF_FIELD_OFFSET(::operations_research::sat::FloatObjectiveProto, vars_),
731  PROTOBUF_FIELD_OFFSET(::operations_research::sat::FloatObjectiveProto, coeffs_),
732  PROTOBUF_FIELD_OFFSET(::operations_research::sat::FloatObjectiveProto, offset_),
734  ~0u, // no _has_bits_
735  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, _internal_metadata_),
736  ~0u, // no _extensions_
737  ~0u, // no _oneof_case_
738  ~0u, // no _weak_field_map_
739  ~0u, // no _inlined_string_donated_
742  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, positive_coeff_),
743  ~0u, // no _has_bits_
744  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, _internal_metadata_),
745  ~0u, // no _extensions_
746  ~0u, // no _oneof_case_
747  ~0u, // no _weak_field_map_
748  ~0u, // no _inlined_string_donated_
749  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variables_),
750  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variable_selection_strategy_),
751  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, domain_reduction_strategy_),
752  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, transformations_),
753  ~0u, // no _has_bits_
754  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, _internal_metadata_),
755  ~0u, // no _extensions_
756  ~0u, // no _oneof_case_
757  ~0u, // no _weak_field_map_
758  ~0u, // no _inlined_string_donated_
760  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, values_),
761  ~0u, // no _has_bits_
762  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, _internal_metadata_),
763  ~0u, // no _extensions_
764  ~0u, // no _oneof_case_
765  ~0u, // no _weak_field_map_
766  ~0u, // no _inlined_string_donated_
767  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, support_),
768  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, cycle_sizes_),
769  ~0u, // no _has_bits_
770  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, _internal_metadata_),
771  ~0u, // no _extensions_
772  ~0u, // no _oneof_case_
773  ~0u, // no _weak_field_map_
774  ~0u, // no _inlined_string_donated_
775  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_rows_),
776  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_cols_),
777  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, entries_),
778  ~0u, // no _has_bits_
779  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, _internal_metadata_),
780  ~0u, // no _extensions_
781  ~0u, // no _oneof_case_
782  ~0u, // no _weak_field_map_
783  ~0u, // no _inlined_string_donated_
784  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, permutations_),
785  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, orbitopes_),
786  ~0u, // no _has_bits_
787  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, _internal_metadata_),
788  ~0u, // no _extensions_
789  ~0u, // no _oneof_case_
790  ~0u, // no _weak_field_map_
791  ~0u, // no _inlined_string_donated_
792  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, name_),
793  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, variables_),
794  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, constraints_),
795  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, objective_),
796  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, floating_point_objective_),
797  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, search_strategy_),
798  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, solution_hint_),
799  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, assumptions_),
800  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, symmetry_),
801  ~0u, // no _has_bits_
802  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverSolution, _internal_metadata_),
803  ~0u, // no _extensions_
804  ~0u, // no _oneof_case_
805  ~0u, // no _weak_field_map_
806  ~0u, // no _inlined_string_donated_
807  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverSolution, values_),
808  ~0u, // no _has_bits_
809  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, _internal_metadata_),
810  ~0u, // no _extensions_
811  ~0u, // no _oneof_case_
812  ~0u, // no _weak_field_map_
813  ~0u, // no _inlined_string_donated_
814  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, status_),
815  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_),
816  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, objective_value_),
817  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, best_objective_bound_),
818  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, additional_solutions_),
819  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, tightened_variables_),
820  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, sufficient_assumptions_for_infeasibility_),
821  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, integer_objective_),
822  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, inner_objective_lower_bound_),
823  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_booleans_),
824  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_conflicts_),
825  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_branches_),
826  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_binary_propagations_),
827  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_integer_propagations_),
828  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_restarts_),
829  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_lp_iterations_),
830  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, wall_time_),
831  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, user_time_),
832  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, deterministic_time_),
833  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, gap_integral_),
834  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_info_),
835  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solve_log_),
836 };
837 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
839  { 8, -1, -1, sizeof(::operations_research::sat::BoolArgumentProto)},
852  { 122, -1, -1, sizeof(::operations_research::sat::TableConstraintProto)},
855  { 151, -1, -1, sizeof(::operations_research::sat::ListOfVariablesProto)},
856  { 158, -1, -1, sizeof(::operations_research::sat::ConstraintProto)},
857  { 190, -1, -1, sizeof(::operations_research::sat::CpObjectiveProto)},
858  { 204, -1, -1, sizeof(::operations_research::sat::FloatObjectiveProto)},
863  { 249, -1, -1, sizeof(::operations_research::sat::DenseMatrixProto)},
864  { 258, -1, -1, sizeof(::operations_research::sat::SymmetryProto)},
865  { 266, -1, -1, sizeof(::operations_research::sat::CpModelProto)},
866  { 281, -1, -1, sizeof(::operations_research::sat::CpSolverSolution)},
867  { 288, -1, -1, sizeof(::operations_research::sat::CpSolverResponse)},
868 };
869 
870 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
871  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerVariableProto_default_instance_),
872  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_BoolArgumentProto_default_instance_),
873  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearExpressionProto_default_instance_),
874  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearArgumentProto_default_instance_),
875  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AllDifferentConstraintProto_default_instance_),
876  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearConstraintProto_default_instance_),
877  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ElementConstraintProto_default_instance_),
878  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntervalConstraintProto_default_instance_),
879  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlapConstraintProto_default_instance_),
880  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlap2DConstraintProto_default_instance_),
881  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CumulativeConstraintProto_default_instance_),
882  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ReservoirConstraintProto_default_instance_),
883  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CircuitConstraintProto_default_instance_),
884  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_RoutesConstraintProto_default_instance_),
885  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_TableConstraintProto_default_instance_),
886  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_InverseConstraintProto_default_instance_),
887  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AutomatonConstraintProto_default_instance_),
888  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ListOfVariablesProto_default_instance_),
889  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ConstraintProto_default_instance_),
890  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpObjectiveProto_default_instance_),
891  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_FloatObjectiveProto_default_instance_),
892  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_AffineTransformation_default_instance_),
893  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_default_instance_),
894  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_PartialVariableAssignment_default_instance_),
895  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SparsePermutationProto_default_instance_),
896  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DenseMatrixProto_default_instance_),
897  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SymmetryProto_default_instance_),
898  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpModelProto_default_instance_),
899  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpSolverSolution_default_instance_),
900  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpSolverResponse_default_instance_),
901 };
902 
903 const char descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
904  "\n\032ortools/sat/cp_model.proto\022\027operations"
905  "_research.sat\"4\n\024IntegerVariableProto\022\014\n"
906  "\004name\030\001 \001(\t\022\016\n\006domain\030\002 \003(\003\"%\n\021BoolArgum"
907  "entProto\022\020\n\010literals\030\001 \003(\005\"E\n\025LinearExpr"
908  "essionProto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs\030\002 \003("
909  "\003\022\016\n\006offset\030\003 \001(\003\"\224\001\n\023LinearArgumentProt"
910  "o\022>\n\006target\030\001 \001(\0132..operations_research."
911  "sat.LinearExpressionProto\022=\n\005exprs\030\002 \003(\013"
912  "2..operations_research.sat.LinearExpress"
913  "ionProto\"\\\n\033AllDifferentConstraintProto\022"
914  "=\n\005exprs\030\001 \003(\0132..operations_research.sat"
915  ".LinearExpressionProto\"E\n\025LinearConstrai"
916  "ntProto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs\030\002 \003(\003\022\016\n"
917  "\006domain\030\003 \003(\003\"E\n\026ElementConstraintProto\022"
918  "\r\n\005index\030\001 \001(\005\022\016\n\006target\030\002 \001(\005\022\014\n\004vars\030\003"
919  " \003(\005\"\323\001\n\027IntervalConstraintProto\022=\n\005star"
920  "t\030\004 \001(\0132..operations_research.sat.Linear"
921  "ExpressionProto\022;\n\003end\030\005 \001(\0132..operation"
922  "s_research.sat.LinearExpressionProto\022<\n\004"
923  "size\030\006 \001(\0132..operations_research.sat.Lin"
924  "earExpressionProto\"-\n\030NoOverlapConstrain"
925  "tProto\022\021\n\tintervals\030\001 \003(\005\"p\n\032NoOverlap2D"
926  "ConstraintProto\022\023\n\013x_intervals\030\001 \003(\005\022\023\n\013"
927  "y_intervals\030\002 \003(\005\022(\n boxes_with_null_are"
928  "a_can_overlap\030\003 \001(\010\"\261\001\n\031CumulativeConstr"
929  "aintProto\022@\n\010capacity\030\001 \001(\0132..operations"
930  "_research.sat.LinearExpressionProto\022\021\n\ti"
931  "ntervals\030\002 \003(\005\022\?\n\007demands\030\003 \003(\0132..operat"
932  "ions_research.sat.LinearExpressionProto\""
933  "\264\001\n\030ReservoirConstraintProto\022\021\n\tmin_leve"
934  "l\030\001 \001(\003\022\021\n\tmax_level\030\002 \001(\003\022B\n\ntime_exprs"
935  "\030\003 \003(\0132..operations_research.sat.LinearE"
936  "xpressionProto\022\025\n\rlevel_changes\030\004 \003(\003\022\027\n"
937  "\017active_literals\030\005 \003(\005\"H\n\026CircuitConstra"
938  "intProto\022\r\n\005tails\030\003 \003(\005\022\r\n\005heads\030\004 \003(\005\022\020"
939  "\n\010literals\030\005 \003(\005\"j\n\025RoutesConstraintProt"
940  "o\022\r\n\005tails\030\001 \003(\005\022\r\n\005heads\030\002 \003(\005\022\020\n\010liter"
941  "als\030\003 \003(\005\022\017\n\007demands\030\004 \003(\005\022\020\n\010capacity\030\005"
942  " \001(\003\"E\n\024TableConstraintProto\022\014\n\004vars\030\001 \003"
943  "(\005\022\016\n\006values\030\002 \003(\003\022\017\n\007negated\030\003 \001(\010\"=\n\026I"
944  "nverseConstraintProto\022\020\n\010f_direct\030\001 \003(\005\022"
945  "\021\n\tf_inverse\030\002 \003(\005\"\242\001\n\030AutomatonConstrai"
946  "ntProto\022\026\n\016starting_state\030\002 \001(\003\022\024\n\014final"
947  "_states\030\003 \003(\003\022\027\n\017transition_tail\030\004 \003(\003\022\027"
948  "\n\017transition_head\030\005 \003(\003\022\030\n\020transition_la"
949  "bel\030\006 \003(\003\022\014\n\004vars\030\007 \003(\005\"$\n\024ListOfVariabl"
950  "esProto\022\014\n\004vars\030\001 \003(\005\"\360\014\n\017ConstraintProt"
951  "o\022\014\n\004name\030\001 \001(\t\022\033\n\023enforcement_literal\030\002"
952  " \003(\005\022=\n\007bool_or\030\003 \001(\0132*.operations_resea"
953  "rch.sat.BoolArgumentProtoH\000\022>\n\010bool_and\030"
954  "\004 \001(\0132*.operations_research.sat.BoolArgu"
955  "mentProtoH\000\022A\n\013at_most_one\030\032 \001(\0132*.opera"
956  "tions_research.sat.BoolArgumentProtoH\000\022A"
957  "\n\013exactly_one\030\035 \001(\0132*.operations_researc"
958  "h.sat.BoolArgumentProtoH\000\022>\n\010bool_xor\030\005 "
959  "\001(\0132*.operations_research.sat.BoolArgume"
960  "ntProtoH\000\022\?\n\007int_div\030\007 \001(\0132,.operations_"
961  "research.sat.LinearArgumentProtoH\000\022\?\n\007in"
962  "t_mod\030\010 \001(\0132,.operations_research.sat.Li"
963  "nearArgumentProtoH\000\022@\n\010int_prod\030\013 \001(\0132,."
964  "operations_research.sat.LinearArgumentPr"
965  "otoH\000\022\?\n\007lin_max\030\033 \001(\0132,.operations_rese"
966  "arch.sat.LinearArgumentProtoH\000\022@\n\006linear"
967  "\030\014 \001(\0132..operations_research.sat.LinearC"
968  "onstraintProtoH\000\022H\n\010all_diff\030\r \001(\01324.ope"
969  "rations_research.sat.AllDifferentConstra"
970  "intProtoH\000\022B\n\007element\030\016 \001(\0132/.operations"
971  "_research.sat.ElementConstraintProtoH\000\022B"
972  "\n\007circuit\030\017 \001(\0132/.operations_research.sa"
973  "t.CircuitConstraintProtoH\000\022@\n\006routes\030\027 \001"
974  "(\0132..operations_research.sat.RoutesConst"
975  "raintProtoH\000\022>\n\005table\030\020 \001(\0132-.operations"
976  "_research.sat.TableConstraintProtoH\000\022F\n\t"
977  "automaton\030\021 \001(\01321.operations_research.sa"
978  "t.AutomatonConstraintProtoH\000\022B\n\007inverse\030"
979  "\022 \001(\0132/.operations_research.sat.InverseC"
980  "onstraintProtoH\000\022F\n\treservoir\030\030 \001(\01321.op"
981  "erations_research.sat.ReservoirConstrain"
982  "tProtoH\000\022D\n\010interval\030\023 \001(\01320.operations_"
983  "research.sat.IntervalConstraintProtoH\000\022G"
984  "\n\nno_overlap\030\024 \001(\01321.operations_research"
985  ".sat.NoOverlapConstraintProtoH\000\022L\n\rno_ov"
986  "erlap_2d\030\025 \001(\01323.operations_research.sat"
987  ".NoOverlap2DConstraintProtoH\000\022H\n\ncumulat"
988  "ive\030\026 \001(\01322.operations_research.sat.Cumu"
989  "lativeConstraintProtoH\000\022I\n\020dummy_constra"
990  "int\030\036 \001(\0132-.operations_research.sat.List"
991  "OfVariablesProtoH\000B\014\n\nconstraint\"\273\001\n\020CpO"
992  "bjectiveProto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs\030\004 "
993  "\003(\003\022\016\n\006offset\030\002 \001(\001\022\026\n\016scaling_factor\030\003 "
994  "\001(\001\022\016\n\006domain\030\005 \003(\003\022\031\n\021scaling_was_exact"
995  "\030\006 \001(\010\022\026\n\016integer_offset\030\007 \001(\003\022\036\n\026intege"
996  "r_scaling_factor\030\010 \001(\003\"U\n\023FloatObjective"
997  "Proto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs\030\002 \003(\001\022\016\n\006o"
998  "ffset\030\003 \001(\001\022\020\n\010maximize\030\004 \001(\010\"\327\005\n\025Decisi"
999  "onStrategyProto\022\021\n\tvariables\030\001 \003(\005\022m\n\033va"
1000  "riable_selection_strategy\030\002 \001(\0162H.operat"
1001  "ions_research.sat.DecisionStrategyProto."
1002  "VariableSelectionStrategy\022i\n\031domain_redu"
1003  "ction_strategy\030\003 \001(\0162F.operations_resear"
1004  "ch.sat.DecisionStrategyProto.DomainReduc"
1005  "tionStrategy\022\\\n\017transformations\030\004 \003(\0132C."
1006  "operations_research.sat.DecisionStrategy"
1007  "Proto.AffineTransformation\032M\n\024AffineTran"
1008  "sformation\022\r\n\005index\030\001 \001(\005\022\016\n\006offset\030\002 \001("
1009  "\003\022\026\n\016positive_coeff\030\003 \001(\003\"\224\001\n\031VariableSe"
1010  "lectionStrategy\022\020\n\014CHOOSE_FIRST\020\000\022\025\n\021CHO"
1011  "OSE_LOWEST_MIN\020\001\022\026\n\022CHOOSE_HIGHEST_MAX\020\002"
1012  "\022\032\n\026CHOOSE_MIN_DOMAIN_SIZE\020\003\022\032\n\026CHOOSE_M"
1013  "AX_DOMAIN_SIZE\020\004\"\214\001\n\027DomainReductionStra"
1014  "tegy\022\024\n\020SELECT_MIN_VALUE\020\000\022\024\n\020SELECT_MAX"
1015  "_VALUE\020\001\022\025\n\021SELECT_LOWER_HALF\020\002\022\025\n\021SELEC"
1016  "T_UPPER_HALF\020\003\022\027\n\023SELECT_MEDIAN_VALUE\020\004\""
1017  "9\n\031PartialVariableAssignment\022\014\n\004vars\030\001 \003"
1018  "(\005\022\016\n\006values\030\002 \003(\003\">\n\026SparsePermutationP"
1019  "roto\022\017\n\007support\030\001 \003(\005\022\023\n\013cycle_sizes\030\002 \003"
1020  "(\005\"G\n\020DenseMatrixProto\022\020\n\010num_rows\030\001 \001(\005"
1021  "\022\020\n\010num_cols\030\002 \001(\005\022\017\n\007entries\030\003 \003(\005\"\224\001\n\r"
1022  "SymmetryProto\022E\n\014permutations\030\001 \003(\0132/.op"
1023  "erations_research.sat.SparsePermutationP"
1024  "roto\022<\n\torbitopes\030\002 \003(\0132).operations_res"
1025  "earch.sat.DenseMatrixProto\"\216\004\n\014CpModelPr"
1026  "oto\022\014\n\004name\030\001 \001(\t\022@\n\tvariables\030\002 \003(\0132-.o"
1027  "perations_research.sat.IntegerVariablePr"
1028  "oto\022=\n\013constraints\030\003 \003(\0132(.operations_re"
1029  "search.sat.ConstraintProto\022<\n\tobjective\030"
1030  "\004 \001(\0132).operations_research.sat.CpObject"
1031  "iveProto\022N\n\030floating_point_objective\030\t \001"
1032  "(\0132,.operations_research.sat.FloatObject"
1033  "iveProto\022G\n\017search_strategy\030\005 \003(\0132..oper"
1034  "ations_research.sat.DecisionStrategyProt"
1035  "o\022I\n\rsolution_hint\030\006 \001(\01322.operations_re"
1036  "search.sat.PartialVariableAssignment\022\023\n\013"
1037  "assumptions\030\007 \003(\005\0228\n\010symmetry\030\010 \001(\0132&.op"
1038  "erations_research.sat.SymmetryProto\"\"\n\020C"
1039  "pSolverSolution\022\016\n\006values\030\001 \003(\003\"\377\005\n\020CpSo"
1040  "lverResponse\0227\n\006status\030\001 \001(\0162\'.operation"
1041  "s_research.sat.CpSolverStatus\022\020\n\010solutio"
1042  "n\030\002 \003(\003\022\027\n\017objective_value\030\003 \001(\001\022\034\n\024best"
1043  "_objective_bound\030\004 \001(\001\022G\n\024additional_sol"
1044  "utions\030\033 \003(\0132).operations_research.sat.C"
1045  "pSolverSolution\022J\n\023tightened_variables\030\025"
1046  " \003(\0132-.operations_research.sat.IntegerVa"
1047  "riableProto\0220\n(sufficient_assumptions_fo"
1048  "r_infeasibility\030\027 \003(\005\022D\n\021integer_objecti"
1049  "ve\030\034 \001(\0132).operations_research.sat.CpObj"
1050  "ectiveProto\022#\n\033inner_objective_lower_bou"
1051  "nd\030\035 \001(\003\022\024\n\014num_booleans\030\n \001(\003\022\025\n\rnum_co"
1052  "nflicts\030\013 \001(\003\022\024\n\014num_branches\030\014 \001(\003\022\037\n\027n"
1053  "um_binary_propagations\030\r \001(\003\022 \n\030num_inte"
1054  "ger_propagations\030\016 \001(\003\022\024\n\014num_restarts\030\030"
1055  " \001(\003\022\031\n\021num_lp_iterations\030\031 \001(\003\022\021\n\twall_"
1056  "time\030\017 \001(\001\022\021\n\tuser_time\030\020 \001(\001\022\032\n\022determi"
1057  "nistic_time\030\021 \001(\001\022\024\n\014gap_integral\030\026 \001(\001\022"
1058  "\025\n\rsolution_info\030\024 \001(\t\022\021\n\tsolve_log\030\032 \001("
1059  "\t*[\n\016CpSolverStatus\022\013\n\007UNKNOWN\020\000\022\021\n\rMODE"
1060  "L_INVALID\020\001\022\014\n\010FEASIBLE\020\002\022\016\n\nINFEASIBLE\020"
1061  "\003\022\013\n\007OPTIMAL\020\004B@\n\026com.google.ortools.sat"
1062  "B\017CpModelProtobufP\001\252\002\022Google.OrTools.Sat"
1063  "b\006proto3"
1064  ;
1065 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once;
1066 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto = {
1067  false, false, 6368, descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto, "ortools/sat/cp_model.proto",
1071 };
1072 PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_getter() {
1074 }
1075 
1076 // Force running AddDescriptors() at dynamic initialization time.
1077 PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_ortools_2fsat_2fcp_5fmodel_2eproto(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1078 namespace operations_research {
1079 namespace sat {
1080 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_VariableSelectionStrategy_descriptor() {
1081  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1083 }
1085  switch (value) {
1086  case 0:
1087  case 1:
1088  case 2:
1089  case 3:
1090  case 4:
1091  return true;
1092  default:
1093  return false;
1094  }
1095 }
1096 
1097 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
1106 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
1107 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_DomainReductionStrategy_descriptor() {
1108  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1110 }
1112  switch (value) {
1113  case 0:
1114  case 1:
1115  case 2:
1116  case 3:
1117  case 4:
1118  return true;
1119  default:
1120  return false;
1121  }
1122 }
1123 
1124 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
1133 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
1134 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CpSolverStatus_descriptor() {
1135  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1137 }
1139  switch (value) {
1140  case 0:
1141  case 1:
1142  case 2:
1143  case 3:
1144  case 4:
1145  return true;
1146  default:
1147  return false;
1148  }
1149 }
1150 
1151 
1152 // ===================================================================
1153 
1155  public:
1156 };
1157 
1158 IntegerVariableProto::IntegerVariableProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1159  bool is_message_owned)
1160  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1161  domain_(arena) {
1162  SharedCtor();
1163  if (!is_message_owned) {
1164  RegisterArenaDtor(arena);
1165  }
1166  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerVariableProto)
1167 }
1169  : ::PROTOBUF_NAMESPACE_ID::Message(),
1170  domain_(from.domain_) {
1171  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1172  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1173  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
1174  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
1175  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
1176  if (!from._internal_name().empty()) {
1177  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
1178  GetArenaForAllocation());
1179  }
1180  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerVariableProto)
1181 }
1182 
1183 inline void IntegerVariableProto::SharedCtor() {
1184 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1185 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
1186  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
1187 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
1188 }
1189 
1191  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerVariableProto)
1192  if (GetArenaForAllocation() != nullptr) return;
1193  SharedDtor();
1194  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1195 }
1196 
1197 inline void IntegerVariableProto::SharedDtor() {
1198  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1199  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1200 }
1201 
1202 void IntegerVariableProto::ArenaDtor(void* object) {
1203  IntegerVariableProto* _this = reinterpret_cast< IntegerVariableProto* >(object);
1204  (void)_this;
1205 }
1206 void IntegerVariableProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1207 }
1208 void IntegerVariableProto::SetCachedSize(int size) const {
1209  _cached_size_.Set(size);
1210 }
1211 
1213 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerVariableProto)
1214  uint32_t cached_has_bits = 0;
1215  // Prevent compiler warnings about cached_has_bits being unused
1216  (void) cached_has_bits;
1217 
1218  domain_.Clear();
1219  name_.ClearToEmpty();
1220  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1221 }
1222 
1223 const char* IntegerVariableProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1224 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1225  while (!ctx->Done(&ptr)) {
1226  uint32_t tag;
1227  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1228  switch (tag >> 3) {
1229  // string name = 1;
1230  case 1:
1231  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
1232  auto str = _internal_mutable_name();
1233  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1234  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.IntegerVariableProto.name"));
1235  CHK_(ptr);
1236  } else
1237  goto handle_unusual;
1238  continue;
1239  // repeated int64 domain = 2;
1240  case 2:
1241  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
1242  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
1243  CHK_(ptr);
1244  } else if (static_cast<uint8_t>(tag) == 16) {
1245  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1246  CHK_(ptr);
1247  } else
1248  goto handle_unusual;
1249  continue;
1250  default:
1251  goto handle_unusual;
1252  } // switch
1253  handle_unusual:
1254  if ((tag == 0) || ((tag & 7) == 4)) {
1255  CHK_(ptr);
1256  ctx->SetLastTag(tag);
1257  goto message_done;
1258  }
1259  ptr = UnknownFieldParse(
1260  tag,
1261  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1262  ptr, ctx);
1263  CHK_(ptr != nullptr);
1264  } // while
1265 message_done:
1266  return ptr;
1267 failure:
1268  ptr = nullptr;
1269  goto message_done;
1270 #undef CHK_
1271 }
1272 
1274  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1275  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerVariableProto)
1276  uint32_t cached_has_bits = 0;
1277  (void) cached_has_bits;
1278 
1279  // string name = 1;
1280  if (!this->_internal_name().empty()) {
1281  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
1282  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
1283  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
1284  "operations_research.sat.IntegerVariableProto.name");
1285  target = stream->WriteStringMaybeAliased(
1286  1, this->_internal_name(), target);
1287  }
1288 
1289  // repeated int64 domain = 2;
1290  {
1291  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
1292  if (byte_size > 0) {
1293  target = stream->WriteInt64Packed(
1294  2, _internal_domain(), byte_size, target);
1295  }
1296  }
1297 
1298  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1299  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1300  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1301  }
1302  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerVariableProto)
1303  return target;
1304 }
1305 
1307 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerVariableProto)
1308  size_t total_size = 0;
1309 
1310  uint32_t cached_has_bits = 0;
1311  // Prevent compiler warnings about cached_has_bits being unused
1312  (void) cached_has_bits;
1313 
1314  // repeated int64 domain = 2;
1315  {
1316  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1317  Int64Size(this->domain_);
1318  if (data_size > 0) {
1319  total_size += 1 +
1320  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1321  static_cast<int32_t>(data_size));
1322  }
1323  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1324  _domain_cached_byte_size_.store(cached_size,
1325  std::memory_order_relaxed);
1326  total_size += data_size;
1327  }
1328 
1329  // string name = 1;
1330  if (!this->_internal_name().empty()) {
1331  total_size += 1 +
1332  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1333  this->_internal_name());
1334  }
1335 
1336  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1337 }
1338 
1339 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IntegerVariableProto::_class_data_ = {
1340  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1341  IntegerVariableProto::MergeImpl
1342 };
1343 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IntegerVariableProto::GetClassData() const { return &_class_data_; }
1344 
1345 void IntegerVariableProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1346  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1347  static_cast<IntegerVariableProto *>(to)->MergeFrom(
1348  static_cast<const IntegerVariableProto &>(from));
1349 }
1350 
1351 
1353 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerVariableProto)
1354  GOOGLE_DCHECK_NE(&from, this);
1355  uint32_t cached_has_bits = 0;
1356  (void) cached_has_bits;
1357 
1358  domain_.MergeFrom(from.domain_);
1359  if (!from._internal_name().empty()) {
1360  _internal_set_name(from._internal_name());
1361  }
1362  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1363 }
1364 
1366 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerVariableProto)
1367  if (&from == this) return;
1368  Clear();
1369  MergeFrom(from);
1370 }
1371 
1373  return true;
1374 }
1375 
1376 void IntegerVariableProto::InternalSwap(IntegerVariableProto* other) {
1377  using std::swap;
1378  auto* lhs_arena = GetArenaForAllocation();
1379  auto* rhs_arena = other->GetArenaForAllocation();
1380  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1381  domain_.InternalSwap(&other->domain_);
1382  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
1383  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
1384  &name_, lhs_arena,
1385  &other->name_, rhs_arena
1386  );
1387 }
1388 
1389 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerVariableProto::GetMetadata() const {
1390  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1393 }
1394 
1395 // ===================================================================
1396 
1398  public:
1399 };
1400 
1401 BoolArgumentProto::BoolArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1402  bool is_message_owned)
1403  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1404  literals_(arena) {
1405  SharedCtor();
1406  if (!is_message_owned) {
1407  RegisterArenaDtor(arena);
1408  }
1409  // @@protoc_insertion_point(arena_constructor:operations_research.sat.BoolArgumentProto)
1410 }
1412  : ::PROTOBUF_NAMESPACE_ID::Message(),
1413  literals_(from.literals_) {
1414  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1415  // @@protoc_insertion_point(copy_constructor:operations_research.sat.BoolArgumentProto)
1416 }
1417 
1418 inline void BoolArgumentProto::SharedCtor() {
1419 }
1420 
1422  // @@protoc_insertion_point(destructor:operations_research.sat.BoolArgumentProto)
1423  if (GetArenaForAllocation() != nullptr) return;
1424  SharedDtor();
1425  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1426 }
1427 
1428 inline void BoolArgumentProto::SharedDtor() {
1429  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1430 }
1431 
1432 void BoolArgumentProto::ArenaDtor(void* object) {
1433  BoolArgumentProto* _this = reinterpret_cast< BoolArgumentProto* >(object);
1434  (void)_this;
1435 }
1436 void BoolArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1437 }
1438 void BoolArgumentProto::SetCachedSize(int size) const {
1439  _cached_size_.Set(size);
1440 }
1441 
1443 // @@protoc_insertion_point(message_clear_start:operations_research.sat.BoolArgumentProto)
1444  uint32_t cached_has_bits = 0;
1445  // Prevent compiler warnings about cached_has_bits being unused
1446  (void) cached_has_bits;
1447 
1448  literals_.Clear();
1449  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1450 }
1451 
1452 const char* BoolArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1453 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1454  while (!ctx->Done(&ptr)) {
1455  uint32_t tag;
1456  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1457  switch (tag >> 3) {
1458  // repeated int32 literals = 1;
1459  case 1:
1460  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
1461  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
1462  CHK_(ptr);
1463  } else if (static_cast<uint8_t>(tag) == 8) {
1464  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
1465  CHK_(ptr);
1466  } else
1467  goto handle_unusual;
1468  continue;
1469  default:
1470  goto handle_unusual;
1471  } // switch
1472  handle_unusual:
1473  if ((tag == 0) || ((tag & 7) == 4)) {
1474  CHK_(ptr);
1475  ctx->SetLastTag(tag);
1476  goto message_done;
1477  }
1478  ptr = UnknownFieldParse(
1479  tag,
1480  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1481  ptr, ctx);
1482  CHK_(ptr != nullptr);
1483  } // while
1484 message_done:
1485  return ptr;
1486 failure:
1487  ptr = nullptr;
1488  goto message_done;
1489 #undef CHK_
1490 }
1491 
1493  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1494  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.BoolArgumentProto)
1495  uint32_t cached_has_bits = 0;
1496  (void) cached_has_bits;
1497 
1498  // repeated int32 literals = 1;
1499  {
1500  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
1501  if (byte_size > 0) {
1502  target = stream->WriteInt32Packed(
1503  1, _internal_literals(), byte_size, target);
1504  }
1505  }
1506 
1507  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1508  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1509  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1510  }
1511  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.BoolArgumentProto)
1512  return target;
1513 }
1514 
1516 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.BoolArgumentProto)
1517  size_t total_size = 0;
1518 
1519  uint32_t cached_has_bits = 0;
1520  // Prevent compiler warnings about cached_has_bits being unused
1521  (void) cached_has_bits;
1522 
1523  // repeated int32 literals = 1;
1524  {
1525  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1526  Int32Size(this->literals_);
1527  if (data_size > 0) {
1528  total_size += 1 +
1529  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1530  static_cast<int32_t>(data_size));
1531  }
1532  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1533  _literals_cached_byte_size_.store(cached_size,
1534  std::memory_order_relaxed);
1535  total_size += data_size;
1536  }
1537 
1538  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1539 }
1540 
1541 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData BoolArgumentProto::_class_data_ = {
1542  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1543  BoolArgumentProto::MergeImpl
1544 };
1545 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*BoolArgumentProto::GetClassData() const { return &_class_data_; }
1546 
1547 void BoolArgumentProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1548  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1549  static_cast<BoolArgumentProto *>(to)->MergeFrom(
1550  static_cast<const BoolArgumentProto &>(from));
1551 }
1552 
1553 
1555 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.BoolArgumentProto)
1556  GOOGLE_DCHECK_NE(&from, this);
1557  uint32_t cached_has_bits = 0;
1558  (void) cached_has_bits;
1559 
1560  literals_.MergeFrom(from.literals_);
1561  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1562 }
1563 
1565 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.BoolArgumentProto)
1566  if (&from == this) return;
1567  Clear();
1568  MergeFrom(from);
1569 }
1570 
1572  return true;
1573 }
1574 
1575 void BoolArgumentProto::InternalSwap(BoolArgumentProto* other) {
1576  using std::swap;
1577  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1578  literals_.InternalSwap(&other->literals_);
1579 }
1580 
1581 ::PROTOBUF_NAMESPACE_ID::Metadata BoolArgumentProto::GetMetadata() const {
1582  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1585 }
1586 
1587 // ===================================================================
1588 
1590  public:
1591 };
1592 
1593 LinearExpressionProto::LinearExpressionProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1594  bool is_message_owned)
1595  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1596  vars_(arena),
1597  coeffs_(arena) {
1598  SharedCtor();
1599  if (!is_message_owned) {
1600  RegisterArenaDtor(arena);
1601  }
1602  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearExpressionProto)
1603 }
1605  : ::PROTOBUF_NAMESPACE_ID::Message(),
1606  vars_(from.vars_),
1607  coeffs_(from.coeffs_) {
1608  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1609  offset_ = from.offset_;
1610  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearExpressionProto)
1611 }
1612 
1613 inline void LinearExpressionProto::SharedCtor() {
1614 offset_ = int64_t{0};
1615 }
1616 
1618  // @@protoc_insertion_point(destructor:operations_research.sat.LinearExpressionProto)
1619  if (GetArenaForAllocation() != nullptr) return;
1620  SharedDtor();
1621  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1622 }
1623 
1624 inline void LinearExpressionProto::SharedDtor() {
1625  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1626 }
1627 
1628 void LinearExpressionProto::ArenaDtor(void* object) {
1629  LinearExpressionProto* _this = reinterpret_cast< LinearExpressionProto* >(object);
1630  (void)_this;
1631 }
1632 void LinearExpressionProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1633 }
1634 void LinearExpressionProto::SetCachedSize(int size) const {
1635  _cached_size_.Set(size);
1636 }
1637 
1639 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearExpressionProto)
1640  uint32_t cached_has_bits = 0;
1641  // Prevent compiler warnings about cached_has_bits being unused
1642  (void) cached_has_bits;
1643 
1644  vars_.Clear();
1645  coeffs_.Clear();
1646  offset_ = int64_t{0};
1647  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1648 }
1649 
1650 const char* LinearExpressionProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1651 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1652  while (!ctx->Done(&ptr)) {
1653  uint32_t tag;
1654  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1655  switch (tag >> 3) {
1656  // repeated int32 vars = 1;
1657  case 1:
1658  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
1659  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1660  CHK_(ptr);
1661  } else if (static_cast<uint8_t>(tag) == 8) {
1662  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
1663  CHK_(ptr);
1664  } else
1665  goto handle_unusual;
1666  continue;
1667  // repeated int64 coeffs = 2;
1668  case 2:
1669  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
1670  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
1671  CHK_(ptr);
1672  } else if (static_cast<uint8_t>(tag) == 16) {
1673  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1674  CHK_(ptr);
1675  } else
1676  goto handle_unusual;
1677  continue;
1678  // int64 offset = 3;
1679  case 3:
1680  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
1681  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1682  CHK_(ptr);
1683  } else
1684  goto handle_unusual;
1685  continue;
1686  default:
1687  goto handle_unusual;
1688  } // switch
1689  handle_unusual:
1690  if ((tag == 0) || ((tag & 7) == 4)) {
1691  CHK_(ptr);
1692  ctx->SetLastTag(tag);
1693  goto message_done;
1694  }
1695  ptr = UnknownFieldParse(
1696  tag,
1697  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1698  ptr, ctx);
1699  CHK_(ptr != nullptr);
1700  } // while
1701 message_done:
1702  return ptr;
1703 failure:
1704  ptr = nullptr;
1705  goto message_done;
1706 #undef CHK_
1707 }
1708 
1710  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1711  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearExpressionProto)
1712  uint32_t cached_has_bits = 0;
1713  (void) cached_has_bits;
1714 
1715  // repeated int32 vars = 1;
1716  {
1717  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1718  if (byte_size > 0) {
1719  target = stream->WriteInt32Packed(
1720  1, _internal_vars(), byte_size, target);
1721  }
1722  }
1723 
1724  // repeated int64 coeffs = 2;
1725  {
1726  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
1727  if (byte_size > 0) {
1728  target = stream->WriteInt64Packed(
1729  2, _internal_coeffs(), byte_size, target);
1730  }
1731  }
1732 
1733  // int64 offset = 3;
1734  if (this->_internal_offset() != 0) {
1735  target = stream->EnsureSpace(target);
1736  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_offset(), target);
1737  }
1738 
1739  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1740  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1741  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1742  }
1743  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearExpressionProto)
1744  return target;
1745 }
1746 
1748 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearExpressionProto)
1749  size_t total_size = 0;
1750 
1751  uint32_t cached_has_bits = 0;
1752  // Prevent compiler warnings about cached_has_bits being unused
1753  (void) cached_has_bits;
1754 
1755  // repeated int32 vars = 1;
1756  {
1757  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1758  Int32Size(this->vars_);
1759  if (data_size > 0) {
1760  total_size += 1 +
1761  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1762  static_cast<int32_t>(data_size));
1763  }
1764  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1765  _vars_cached_byte_size_.store(cached_size,
1766  std::memory_order_relaxed);
1767  total_size += data_size;
1768  }
1769 
1770  // repeated int64 coeffs = 2;
1771  {
1772  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1773  Int64Size(this->coeffs_);
1774  if (data_size > 0) {
1775  total_size += 1 +
1776  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1777  static_cast<int32_t>(data_size));
1778  }
1779  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1780  _coeffs_cached_byte_size_.store(cached_size,
1781  std::memory_order_relaxed);
1782  total_size += data_size;
1783  }
1784 
1785  // int64 offset = 3;
1786  if (this->_internal_offset() != 0) {
1787  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_offset());
1788  }
1789 
1790  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1791 }
1792 
1793 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LinearExpressionProto::_class_data_ = {
1794  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1795  LinearExpressionProto::MergeImpl
1796 };
1797 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LinearExpressionProto::GetClassData() const { return &_class_data_; }
1798 
1799 void LinearExpressionProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1800  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1801  static_cast<LinearExpressionProto *>(to)->MergeFrom(
1802  static_cast<const LinearExpressionProto &>(from));
1803 }
1804 
1805 
1807 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearExpressionProto)
1808  GOOGLE_DCHECK_NE(&from, this);
1809  uint32_t cached_has_bits = 0;
1810  (void) cached_has_bits;
1811 
1812  vars_.MergeFrom(from.vars_);
1813  coeffs_.MergeFrom(from.coeffs_);
1814  if (from._internal_offset() != 0) {
1815  _internal_set_offset(from._internal_offset());
1816  }
1817  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1818 }
1819 
1821 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearExpressionProto)
1822  if (&from == this) return;
1823  Clear();
1824  MergeFrom(from);
1825 }
1826 
1828  return true;
1829 }
1830 
1831 void LinearExpressionProto::InternalSwap(LinearExpressionProto* other) {
1832  using std::swap;
1833  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1834  vars_.InternalSwap(&other->vars_);
1835  coeffs_.InternalSwap(&other->coeffs_);
1836  swap(offset_, other->offset_);
1837 }
1838 
1839 ::PROTOBUF_NAMESPACE_ID::Metadata LinearExpressionProto::GetMetadata() const {
1840  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1843 }
1844 
1845 // ===================================================================
1846 
1848  public:
1849  static const ::operations_research::sat::LinearExpressionProto& target(const LinearArgumentProto* msg);
1850 };
1851 
1852 const ::operations_research::sat::LinearExpressionProto&
1854  return *msg->target_;
1855 }
1856 LinearArgumentProto::LinearArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1857  bool is_message_owned)
1858  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1859  exprs_(arena) {
1860  SharedCtor();
1861  if (!is_message_owned) {
1862  RegisterArenaDtor(arena);
1863  }
1864  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearArgumentProto)
1865 }
1867  : ::PROTOBUF_NAMESPACE_ID::Message(),
1868  exprs_(from.exprs_) {
1869  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1870  if (from._internal_has_target()) {
1871  target_ = new ::operations_research::sat::LinearExpressionProto(*from.target_);
1872  } else {
1873  target_ = nullptr;
1874  }
1875  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearArgumentProto)
1876 }
1877 
1878 inline void LinearArgumentProto::SharedCtor() {
1879 target_ = nullptr;
1880 }
1881 
1883  // @@protoc_insertion_point(destructor:operations_research.sat.LinearArgumentProto)
1884  if (GetArenaForAllocation() != nullptr) return;
1885  SharedDtor();
1886  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1887 }
1888 
1889 inline void LinearArgumentProto::SharedDtor() {
1890  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1891  if (this != internal_default_instance()) delete target_;
1892 }
1893 
1894 void LinearArgumentProto::ArenaDtor(void* object) {
1895  LinearArgumentProto* _this = reinterpret_cast< LinearArgumentProto* >(object);
1896  (void)_this;
1897 }
1898 void LinearArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1899 }
1900 void LinearArgumentProto::SetCachedSize(int size) const {
1901  _cached_size_.Set(size);
1902 }
1903 
1905 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearArgumentProto)
1906  uint32_t cached_has_bits = 0;
1907  // Prevent compiler warnings about cached_has_bits being unused
1908  (void) cached_has_bits;
1909 
1910  exprs_.Clear();
1911  if (GetArenaForAllocation() == nullptr && target_ != nullptr) {
1912  delete target_;
1913  }
1914  target_ = nullptr;
1915  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1916 }
1917 
1918 const char* LinearArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1919 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1920  while (!ctx->Done(&ptr)) {
1921  uint32_t tag;
1922  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1923  switch (tag >> 3) {
1924  // .operations_research.sat.LinearExpressionProto target = 1;
1925  case 1:
1926  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
1927  ptr = ctx->ParseMessage(_internal_mutable_target(), ptr);
1928  CHK_(ptr);
1929  } else
1930  goto handle_unusual;
1931  continue;
1932  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
1933  case 2:
1934  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
1935  ptr -= 1;
1936  do {
1937  ptr += 1;
1938  ptr = ctx->ParseMessage(_internal_add_exprs(), ptr);
1939  CHK_(ptr);
1940  if (!ctx->DataAvailable(ptr)) break;
1941  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
1942  } else
1943  goto handle_unusual;
1944  continue;
1945  default:
1946  goto handle_unusual;
1947  } // switch
1948  handle_unusual:
1949  if ((tag == 0) || ((tag & 7) == 4)) {
1950  CHK_(ptr);
1951  ctx->SetLastTag(tag);
1952  goto message_done;
1953  }
1954  ptr = UnknownFieldParse(
1955  tag,
1956  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1957  ptr, ctx);
1958  CHK_(ptr != nullptr);
1959  } // while
1960 message_done:
1961  return ptr;
1962 failure:
1963  ptr = nullptr;
1964  goto message_done;
1965 #undef CHK_
1966 }
1967 
1969  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1970  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearArgumentProto)
1971  uint32_t cached_has_bits = 0;
1972  (void) cached_has_bits;
1973 
1974  // .operations_research.sat.LinearExpressionProto target = 1;
1975  if (this->_internal_has_target()) {
1976  target = stream->EnsureSpace(target);
1977  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1978  InternalWriteMessage(
1979  1, _Internal::target(this), target, stream);
1980  }
1981 
1982  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
1983  for (unsigned int i = 0,
1984  n = static_cast<unsigned int>(this->_internal_exprs_size()); i < n; i++) {
1985  target = stream->EnsureSpace(target);
1986  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1987  InternalWriteMessage(2, this->_internal_exprs(i), target, stream);
1988  }
1989 
1990  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1991  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1992  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1993  }
1994  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearArgumentProto)
1995  return target;
1996 }
1997 
1999 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearArgumentProto)
2000  size_t total_size = 0;
2001 
2002  uint32_t cached_has_bits = 0;
2003  // Prevent compiler warnings about cached_has_bits being unused
2004  (void) cached_has_bits;
2005 
2006  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2007  total_size += 1UL * this->_internal_exprs_size();
2008  for (const auto& msg : this->exprs_) {
2009  total_size +=
2010  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
2011  }
2012 
2013  // .operations_research.sat.LinearExpressionProto target = 1;
2014  if (this->_internal_has_target()) {
2015  total_size += 1 +
2016  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2017  *target_);
2018  }
2019 
2020  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
2021 }
2022 
2023 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LinearArgumentProto::_class_data_ = {
2024  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2025  LinearArgumentProto::MergeImpl
2026 };
2027 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LinearArgumentProto::GetClassData() const { return &_class_data_; }
2028 
2029 void LinearArgumentProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
2030  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2031  static_cast<LinearArgumentProto *>(to)->MergeFrom(
2032  static_cast<const LinearArgumentProto &>(from));
2033 }
2034 
2035 
2037 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearArgumentProto)
2038  GOOGLE_DCHECK_NE(&from, this);
2039  uint32_t cached_has_bits = 0;
2040  (void) cached_has_bits;
2041 
2042  exprs_.MergeFrom(from.exprs_);
2043  if (from._internal_has_target()) {
2044  _internal_mutable_target()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_target());
2045  }
2046  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2047 }
2048 
2050 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearArgumentProto)
2051  if (&from == this) return;
2052  Clear();
2053  MergeFrom(from);
2054 }
2055 
2057  return true;
2058 }
2059 
2060 void LinearArgumentProto::InternalSwap(LinearArgumentProto* other) {
2061  using std::swap;
2062  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2063  exprs_.InternalSwap(&other->exprs_);
2064  swap(target_, other->target_);
2065 }
2066 
2067 ::PROTOBUF_NAMESPACE_ID::Metadata LinearArgumentProto::GetMetadata() const {
2068  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2071 }
2072 
2073 // ===================================================================
2074 
2076  public:
2077 };
2078 
2079 AllDifferentConstraintProto::AllDifferentConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
2080  bool is_message_owned)
2081  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
2082  exprs_(arena) {
2083  SharedCtor();
2084  if (!is_message_owned) {
2085  RegisterArenaDtor(arena);
2086  }
2087  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AllDifferentConstraintProto)
2088 }
2090  : ::PROTOBUF_NAMESPACE_ID::Message(),
2091  exprs_(from.exprs_) {
2092  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2093  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AllDifferentConstraintProto)
2094 }
2095 
2096 inline void AllDifferentConstraintProto::SharedCtor() {
2097 }
2098 
2100  // @@protoc_insertion_point(destructor:operations_research.sat.AllDifferentConstraintProto)
2101  if (GetArenaForAllocation() != nullptr) return;
2102  SharedDtor();
2103  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2104 }
2105 
2106 inline void AllDifferentConstraintProto::SharedDtor() {
2107  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
2108 }
2109 
2110 void AllDifferentConstraintProto::ArenaDtor(void* object) {
2111  AllDifferentConstraintProto* _this = reinterpret_cast< AllDifferentConstraintProto* >(object);
2112  (void)_this;
2113 }
2114 void AllDifferentConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2115 }
2116 void AllDifferentConstraintProto::SetCachedSize(int size) const {
2117  _cached_size_.Set(size);
2118 }
2119 
2121 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AllDifferentConstraintProto)
2122  uint32_t cached_has_bits = 0;
2123  // Prevent compiler warnings about cached_has_bits being unused
2124  (void) cached_has_bits;
2125 
2126  exprs_.Clear();
2127  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2128 }
2129 
2130 const char* AllDifferentConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2131 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2132  while (!ctx->Done(&ptr)) {
2133  uint32_t tag;
2134  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2135  switch (tag >> 3) {
2136  // repeated .operations_research.sat.LinearExpressionProto exprs = 1;
2137  case 1:
2138  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
2139  ptr -= 1;
2140  do {
2141  ptr += 1;
2142  ptr = ctx->ParseMessage(_internal_add_exprs(), ptr);
2143  CHK_(ptr);
2144  if (!ctx->DataAvailable(ptr)) break;
2145  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
2146  } else
2147  goto handle_unusual;
2148  continue;
2149  default:
2150  goto handle_unusual;
2151  } // switch
2152  handle_unusual:
2153  if ((tag == 0) || ((tag & 7) == 4)) {
2154  CHK_(ptr);
2155  ctx->SetLastTag(tag);
2156  goto message_done;
2157  }
2158  ptr = UnknownFieldParse(
2159  tag,
2160  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2161  ptr, ctx);
2162  CHK_(ptr != nullptr);
2163  } // while
2164 message_done:
2165  return ptr;
2166 failure:
2167  ptr = nullptr;
2168  goto message_done;
2169 #undef CHK_
2170 }
2171 
2173  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2174  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AllDifferentConstraintProto)
2175  uint32_t cached_has_bits = 0;
2176  (void) cached_has_bits;
2177 
2178  // repeated .operations_research.sat.LinearExpressionProto exprs = 1;
2179  for (unsigned int i = 0,
2180  n = static_cast<unsigned int>(this->_internal_exprs_size()); i < n; i++) {
2181  target = stream->EnsureSpace(target);
2182  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2183  InternalWriteMessage(1, this->_internal_exprs(i), target, stream);
2184  }
2185 
2186  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2187  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2188  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2189  }
2190  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AllDifferentConstraintProto)
2191  return target;
2192 }
2193 
2195 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AllDifferentConstraintProto)
2196  size_t total_size = 0;
2197 
2198  uint32_t cached_has_bits = 0;
2199  // Prevent compiler warnings about cached_has_bits being unused
2200  (void) cached_has_bits;
2201 
2202  // repeated .operations_research.sat.LinearExpressionProto exprs = 1;
2203  total_size += 1UL * this->_internal_exprs_size();
2204  for (const auto& msg : this->exprs_) {
2205  total_size +=
2206  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
2207  }
2208 
2209  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
2210 }
2211 
2212 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AllDifferentConstraintProto::_class_data_ = {
2213  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2214  AllDifferentConstraintProto::MergeImpl
2215 };
2216 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AllDifferentConstraintProto::GetClassData() const { return &_class_data_; }
2217 
2218 void AllDifferentConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
2219  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2220  static_cast<AllDifferentConstraintProto *>(to)->MergeFrom(
2221  static_cast<const AllDifferentConstraintProto &>(from));
2222 }
2223 
2224 
2226 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2227  GOOGLE_DCHECK_NE(&from, this);
2228  uint32_t cached_has_bits = 0;
2229  (void) cached_has_bits;
2230 
2231  exprs_.MergeFrom(from.exprs_);
2232  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2233 }
2234 
2236 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2237  if (&from == this) return;
2238  Clear();
2239  MergeFrom(from);
2240 }
2241 
2243  return true;
2244 }
2245 
2246 void AllDifferentConstraintProto::InternalSwap(AllDifferentConstraintProto* other) {
2247  using std::swap;
2248  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2249  exprs_.InternalSwap(&other->exprs_);
2250 }
2251 
2252 ::PROTOBUF_NAMESPACE_ID::Metadata AllDifferentConstraintProto::GetMetadata() const {
2253  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2256 }
2257 
2258 // ===================================================================
2259 
2261  public:
2262 };
2263 
2264 LinearConstraintProto::LinearConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
2265  bool is_message_owned)
2266  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
2267  vars_(arena),
2268  coeffs_(arena),
2269  domain_(arena) {
2270  SharedCtor();
2271  if (!is_message_owned) {
2272  RegisterArenaDtor(arena);
2273  }
2274  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearConstraintProto)
2275 }
2277  : ::PROTOBUF_NAMESPACE_ID::Message(),
2278  vars_(from.vars_),
2279  coeffs_(from.coeffs_),
2280  domain_(from.domain_) {
2281  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2282  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearConstraintProto)
2283 }
2284 
2285 inline void LinearConstraintProto::SharedCtor() {
2286 }
2287 
2289  // @@protoc_insertion_point(destructor:operations_research.sat.LinearConstraintProto)
2290  if (GetArenaForAllocation() != nullptr) return;
2291  SharedDtor();
2292  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2293 }
2294 
2295 inline void LinearConstraintProto::SharedDtor() {
2296  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
2297 }
2298 
2299 void LinearConstraintProto::ArenaDtor(void* object) {
2300  LinearConstraintProto* _this = reinterpret_cast< LinearConstraintProto* >(object);
2301  (void)_this;
2302 }
2303 void LinearConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2304 }
2305 void LinearConstraintProto::SetCachedSize(int size) const {
2306  _cached_size_.Set(size);
2307 }
2308 
2310 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearConstraintProto)
2311  uint32_t cached_has_bits = 0;
2312  // Prevent compiler warnings about cached_has_bits being unused
2313  (void) cached_has_bits;
2314 
2315  vars_.Clear();
2316  coeffs_.Clear();
2317  domain_.Clear();
2318  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2319 }
2320 
2321 const char* LinearConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2322 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2323  while (!ctx->Done(&ptr)) {
2324  uint32_t tag;
2325  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2326  switch (tag >> 3) {
2327  // repeated int32 vars = 1;
2328  case 1:
2329  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
2330  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2331  CHK_(ptr);
2332  } else if (static_cast<uint8_t>(tag) == 8) {
2333  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
2334  CHK_(ptr);
2335  } else
2336  goto handle_unusual;
2337  continue;
2338  // repeated int64 coeffs = 2;
2339  case 2:
2340  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
2341  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
2342  CHK_(ptr);
2343  } else if (static_cast<uint8_t>(tag) == 16) {
2344  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2345  CHK_(ptr);
2346  } else
2347  goto handle_unusual;
2348  continue;
2349  // repeated int64 domain = 3;
2350  case 3:
2351  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
2352  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
2353  CHK_(ptr);
2354  } else if (static_cast<uint8_t>(tag) == 24) {
2355  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2356  CHK_(ptr);
2357  } else
2358  goto handle_unusual;
2359  continue;
2360  default:
2361  goto handle_unusual;
2362  } // switch
2363  handle_unusual:
2364  if ((tag == 0) || ((tag & 7) == 4)) {
2365  CHK_(ptr);
2366  ctx->SetLastTag(tag);
2367  goto message_done;
2368  }
2369  ptr = UnknownFieldParse(
2370  tag,
2371  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2372  ptr, ctx);
2373  CHK_(ptr != nullptr);
2374  } // while
2375 message_done:
2376  return ptr;
2377 failure:
2378  ptr = nullptr;
2379  goto message_done;
2380 #undef CHK_
2381 }
2382 
2384  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2385  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearConstraintProto)
2386  uint32_t cached_has_bits = 0;
2387  (void) cached_has_bits;
2388 
2389  // repeated int32 vars = 1;
2390  {
2391  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2392  if (byte_size > 0) {
2393  target = stream->WriteInt32Packed(
2394  1, _internal_vars(), byte_size, target);
2395  }
2396  }
2397 
2398  // repeated int64 coeffs = 2;
2399  {
2400  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
2401  if (byte_size > 0) {
2402  target = stream->WriteInt64Packed(
2403  2, _internal_coeffs(), byte_size, target);
2404  }
2405  }
2406 
2407  // repeated int64 domain = 3;
2408  {
2409  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
2410  if (byte_size > 0) {
2411  target = stream->WriteInt64Packed(
2412  3, _internal_domain(), byte_size, target);
2413  }
2414  }
2415 
2416  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2417  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2418  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2419  }
2420  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearConstraintProto)
2421  return target;
2422 }
2423 
2425 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearConstraintProto)
2426  size_t total_size = 0;
2427 
2428  uint32_t cached_has_bits = 0;
2429  // Prevent compiler warnings about cached_has_bits being unused
2430  (void) cached_has_bits;
2431 
2432  // repeated int32 vars = 1;
2433  {
2434  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2435  Int32Size(this->vars_);
2436  if (data_size > 0) {
2437  total_size += 1 +
2438  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2439  static_cast<int32_t>(data_size));
2440  }
2441  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2442  _vars_cached_byte_size_.store(cached_size,
2443  std::memory_order_relaxed);
2444  total_size += data_size;
2445  }
2446 
2447  // repeated int64 coeffs = 2;
2448  {
2449  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2450  Int64Size(this->coeffs_);
2451  if (data_size > 0) {
2452  total_size += 1 +
2453  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2454  static_cast<int32_t>(data_size));
2455  }
2456  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2457  _coeffs_cached_byte_size_.store(cached_size,
2458  std::memory_order_relaxed);
2459  total_size += data_size;
2460  }
2461 
2462  // repeated int64 domain = 3;
2463  {
2464  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2465  Int64Size(this->domain_);
2466  if (data_size > 0) {
2467  total_size += 1 +
2468  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2469  static_cast<int32_t>(data_size));
2470  }
2471  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2472  _domain_cached_byte_size_.store(cached_size,
2473  std::memory_order_relaxed);
2474  total_size += data_size;
2475  }
2476 
2477  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
2478 }
2479 
2480 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LinearConstraintProto::_class_data_ = {
2481  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2482  LinearConstraintProto::MergeImpl
2483 };
2484 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LinearConstraintProto::GetClassData() const { return &_class_data_; }
2485 
2486 void LinearConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
2487  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2488  static_cast<LinearConstraintProto *>(to)->MergeFrom(
2489  static_cast<const LinearConstraintProto &>(from));
2490 }
2491 
2492 
2494 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearConstraintProto)
2495  GOOGLE_DCHECK_NE(&from, this);
2496  uint32_t cached_has_bits = 0;
2497  (void) cached_has_bits;
2498 
2499  vars_.MergeFrom(from.vars_);
2500  coeffs_.MergeFrom(from.coeffs_);
2501  domain_.MergeFrom(from.domain_);
2502  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2503 }
2504 
2506 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearConstraintProto)
2507  if (&from == this) return;
2508  Clear();
2509  MergeFrom(from);
2510 }
2511 
2513  return true;
2514 }
2515 
2516 void LinearConstraintProto::InternalSwap(LinearConstraintProto* other) {
2517  using std::swap;
2518  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2519  vars_.InternalSwap(&other->vars_);
2520  coeffs_.InternalSwap(&other->coeffs_);
2521  domain_.InternalSwap(&other->domain_);
2522 }
2523 
2524 ::PROTOBUF_NAMESPACE_ID::Metadata LinearConstraintProto::GetMetadata() const {
2525  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2528 }
2529 
2530 // ===================================================================
2531 
2533  public:
2534 };
2535 
2536 ElementConstraintProto::ElementConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
2537  bool is_message_owned)
2538  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
2539  vars_(arena) {
2540  SharedCtor();
2541  if (!is_message_owned) {
2542  RegisterArenaDtor(arena);
2543  }
2544  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ElementConstraintProto)
2545 }
2547  : ::PROTOBUF_NAMESPACE_ID::Message(),
2548  vars_(from.vars_) {
2549  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2550  ::memcpy(&index_, &from.index_,
2551  static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2552  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2553  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ElementConstraintProto)
2554 }
2555 
2556 inline void ElementConstraintProto::SharedCtor() {
2557 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
2558  reinterpret_cast<char*>(&index_) - reinterpret_cast<char*>(this)),
2559  0, static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2560  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2561 }
2562 
2564  // @@protoc_insertion_point(destructor:operations_research.sat.ElementConstraintProto)
2565  if (GetArenaForAllocation() != nullptr) return;
2566  SharedDtor();
2567  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2568 }
2569 
2570 inline void ElementConstraintProto::SharedDtor() {
2571  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
2572 }
2573 
2574 void ElementConstraintProto::ArenaDtor(void* object) {
2575  ElementConstraintProto* _this = reinterpret_cast< ElementConstraintProto* >(object);
2576  (void)_this;
2577 }
2578 void ElementConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2579 }
2580 void ElementConstraintProto::SetCachedSize(int size) const {
2581  _cached_size_.Set(size);
2582 }
2583 
2585 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ElementConstraintProto)
2586  uint32_t cached_has_bits = 0;
2587  // Prevent compiler warnings about cached_has_bits being unused
2588  (void) cached_has_bits;
2589 
2590  vars_.Clear();
2591  ::memset(&index_, 0, static_cast<size_t>(
2592  reinterpret_cast<char*>(&target_) -
2593  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2594  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2595 }
2596 
2597 const char* ElementConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2598 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2599  while (!ctx->Done(&ptr)) {
2600  uint32_t tag;
2601  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2602  switch (tag >> 3) {
2603  // int32 index = 1;
2604  case 1:
2605  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
2606  index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2607  CHK_(ptr);
2608  } else
2609  goto handle_unusual;
2610  continue;
2611  // int32 target = 2;
2612  case 2:
2613  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
2614  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
2615  CHK_(ptr);
2616  } else
2617  goto handle_unusual;
2618  continue;
2619  // repeated int32 vars = 3;
2620  case 3:
2621  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
2622  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2623  CHK_(ptr);
2624  } else if (static_cast<uint8_t>(tag) == 24) {
2625  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
2626  CHK_(ptr);
2627  } else
2628  goto handle_unusual;
2629  continue;
2630  default:
2631  goto handle_unusual;
2632  } // switch
2633  handle_unusual:
2634  if ((tag == 0) || ((tag & 7) == 4)) {
2635  CHK_(ptr);
2636  ctx->SetLastTag(tag);
2637  goto message_done;
2638  }
2639  ptr = UnknownFieldParse(
2640  tag,
2641  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2642  ptr, ctx);
2643  CHK_(ptr != nullptr);
2644  } // while
2645 message_done:
2646  return ptr;
2647 failure:
2648  ptr = nullptr;
2649  goto message_done;
2650 #undef CHK_
2651 }
2652 
2654  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2655  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ElementConstraintProto)
2656  uint32_t cached_has_bits = 0;
2657  (void) cached_has_bits;
2658 
2659  // int32 index = 1;
2660  if (this->_internal_index() != 0) {
2661  target = stream->EnsureSpace(target);
2662  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
2663  }
2664 
2665  // int32 target = 2;
2666  if (this->_internal_target() != 0) {
2667  target = stream->EnsureSpace(target);
2668  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_target(), target);
2669  }
2670 
2671  // repeated int32 vars = 3;
2672  {
2673  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2674  if (byte_size > 0) {
2675  target = stream->WriteInt32Packed(
2676  3, _internal_vars(), byte_size, target);
2677  }
2678  }
2679 
2680  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2681  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2682  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2683  }
2684  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ElementConstraintProto)
2685  return target;
2686 }
2687 
2689 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ElementConstraintProto)
2690  size_t total_size = 0;
2691 
2692  uint32_t cached_has_bits = 0;
2693  // Prevent compiler warnings about cached_has_bits being unused
2694  (void) cached_has_bits;
2695 
2696  // repeated int32 vars = 3;
2697  {
2698  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2699  Int32Size(this->vars_);
2700  if (data_size > 0) {
2701  total_size += 1 +
2702  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2703  static_cast<int32_t>(data_size));
2704  }
2705  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2706  _vars_cached_byte_size_.store(cached_size,
2707  std::memory_order_relaxed);
2708  total_size += data_size;
2709  }
2710 
2711  // int32 index = 1;
2712  if (this->_internal_index() != 0) {
2713  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_index());
2714  }
2715 
2716  // int32 target = 2;
2717  if (this->_internal_target() != 0) {
2718  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_target());
2719  }
2720 
2721  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
2722 }
2723 
2724 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ElementConstraintProto::_class_data_ = {
2725  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2726  ElementConstraintProto::MergeImpl
2727 };
2728 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ElementConstraintProto::GetClassData() const { return &_class_data_; }
2729 
2730 void ElementConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
2731  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2732  static_cast<ElementConstraintProto *>(to)->MergeFrom(
2733  static_cast<const ElementConstraintProto &>(from));
2734 }
2735 
2736 
2738 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ElementConstraintProto)
2739  GOOGLE_DCHECK_NE(&from, this);
2740  uint32_t cached_has_bits = 0;
2741  (void) cached_has_bits;
2742 
2743  vars_.MergeFrom(from.vars_);
2744  if (from._internal_index() != 0) {
2745  _internal_set_index(from._internal_index());
2746  }
2747  if (from._internal_target() != 0) {
2748  _internal_set_target(from._internal_target());
2749  }
2750  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2751 }
2752 
2754 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ElementConstraintProto)
2755  if (&from == this) return;
2756  Clear();
2757  MergeFrom(from);
2758 }
2759 
2761  return true;
2762 }
2763 
2764 void ElementConstraintProto::InternalSwap(ElementConstraintProto* other) {
2765  using std::swap;
2766  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2767  vars_.InternalSwap(&other->vars_);
2768  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2769  PROTOBUF_FIELD_OFFSET(ElementConstraintProto, target_)
2770  + sizeof(ElementConstraintProto::target_)
2771  - PROTOBUF_FIELD_OFFSET(ElementConstraintProto, index_)>(
2772  reinterpret_cast<char*>(&index_),
2773  reinterpret_cast<char*>(&other->index_));
2774 }
2775 
2776 ::PROTOBUF_NAMESPACE_ID::Metadata ElementConstraintProto::GetMetadata() const {
2777  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2780 }
2781 
2782 // ===================================================================
2783 
2785  public:
2786  static const ::operations_research::sat::LinearExpressionProto& start(const IntervalConstraintProto* msg);
2787  static const ::operations_research::sat::LinearExpressionProto& end(const IntervalConstraintProto* msg);
2788  static const ::operations_research::sat::LinearExpressionProto& size(const IntervalConstraintProto* msg);
2789 };
2790 
2791 const ::operations_research::sat::LinearExpressionProto&
2793  return *msg->start_;
2794 }
2795 const ::operations_research::sat::LinearExpressionProto&
2797  return *msg->end_;
2798 }
2799 const ::operations_research::sat::LinearExpressionProto&
2801  return *msg->size_;
2802 }
2803 IntervalConstraintProto::IntervalConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
2804  bool is_message_owned)
2805  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
2806  SharedCtor();
2807  if (!is_message_owned) {
2808  RegisterArenaDtor(arena);
2809  }
2810  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntervalConstraintProto)
2811 }
2813  : ::PROTOBUF_NAMESPACE_ID::Message() {
2814  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2815  if (from._internal_has_start()) {
2816  start_ = new ::operations_research::sat::LinearExpressionProto(*from.start_);
2817  } else {
2818  start_ = nullptr;
2819  }
2820  if (from._internal_has_end()) {
2821  end_ = new ::operations_research::sat::LinearExpressionProto(*from.end_);
2822  } else {
2823  end_ = nullptr;
2824  }
2825  if (from._internal_has_size()) {
2826  size_ = new ::operations_research::sat::LinearExpressionProto(*from.size_);
2827  } else {
2828  size_ = nullptr;
2829  }
2830  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntervalConstraintProto)
2831 }
2832 
2833 inline void IntervalConstraintProto::SharedCtor() {
2834 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
2835  reinterpret_cast<char*>(&start_) - reinterpret_cast<char*>(this)),
2836  0, static_cast<size_t>(reinterpret_cast<char*>(&size_) -
2837  reinterpret_cast<char*>(&start_)) + sizeof(size_));
2838 }
2839 
2841  // @@protoc_insertion_point(destructor:operations_research.sat.IntervalConstraintProto)
2842  if (GetArenaForAllocation() != nullptr) return;
2843  SharedDtor();
2844  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2845 }
2846 
2847 inline void IntervalConstraintProto::SharedDtor() {
2848  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
2849  if (this != internal_default_instance()) delete start_;
2850  if (this != internal_default_instance()) delete end_;
2851  if (this != internal_default_instance()) delete size_;
2852 }
2853 
2854 void IntervalConstraintProto::ArenaDtor(void* object) {
2855  IntervalConstraintProto* _this = reinterpret_cast< IntervalConstraintProto* >(object);
2856  (void)_this;
2857 }
2858 void IntervalConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2859 }
2860 void IntervalConstraintProto::SetCachedSize(int size) const {
2861  _cached_size_.Set(size);
2862 }
2863 
2865 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntervalConstraintProto)
2866  uint32_t cached_has_bits = 0;
2867  // Prevent compiler warnings about cached_has_bits being unused
2868  (void) cached_has_bits;
2869 
2870  if (GetArenaForAllocation() == nullptr && start_ != nullptr) {
2871  delete start_;
2872  }
2873  start_ = nullptr;
2874  if (GetArenaForAllocation() == nullptr && end_ != nullptr) {
2875  delete end_;
2876  }
2877  end_ = nullptr;
2878  if (GetArenaForAllocation() == nullptr && size_ != nullptr) {
2879  delete size_;
2880  }
2881  size_ = nullptr;
2882  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2883 }
2884 
2885 const char* IntervalConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2886 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2887  while (!ctx->Done(&ptr)) {
2888  uint32_t tag;
2889  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2890  switch (tag >> 3) {
2891  // .operations_research.sat.LinearExpressionProto start = 4;
2892  case 4:
2893  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
2894  ptr = ctx->ParseMessage(_internal_mutable_start(), ptr);
2895  CHK_(ptr);
2896  } else
2897  goto handle_unusual;
2898  continue;
2899  // .operations_research.sat.LinearExpressionProto end = 5;
2900  case 5:
2901  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
2902  ptr = ctx->ParseMessage(_internal_mutable_end(), ptr);
2903  CHK_(ptr);
2904  } else
2905  goto handle_unusual;
2906  continue;
2907  // .operations_research.sat.LinearExpressionProto size = 6;
2908  case 6:
2909  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
2910  ptr = ctx->ParseMessage(_internal_mutable_size(), ptr);
2911  CHK_(ptr);
2912  } else
2913  goto handle_unusual;
2914  continue;
2915  default:
2916  goto handle_unusual;
2917  } // switch
2918  handle_unusual:
2919  if ((tag == 0) || ((tag & 7) == 4)) {
2920  CHK_(ptr);
2921  ctx->SetLastTag(tag);
2922  goto message_done;
2923  }
2924  ptr = UnknownFieldParse(
2925  tag,
2926  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2927  ptr, ctx);
2928  CHK_(ptr != nullptr);
2929  } // while
2930 message_done:
2931  return ptr;
2932 failure:
2933  ptr = nullptr;
2934  goto message_done;
2935 #undef CHK_
2936 }
2937 
2939  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2940  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntervalConstraintProto)
2941  uint32_t cached_has_bits = 0;
2942  (void) cached_has_bits;
2943 
2944  // .operations_research.sat.LinearExpressionProto start = 4;
2945  if (this->_internal_has_start()) {
2946  target = stream->EnsureSpace(target);
2947  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2948  InternalWriteMessage(
2949  4, _Internal::start(this), target, stream);
2950  }
2951 
2952  // .operations_research.sat.LinearExpressionProto end = 5;
2953  if (this->_internal_has_end()) {
2954  target = stream->EnsureSpace(target);
2955  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2956  InternalWriteMessage(
2957  5, _Internal::end(this), target, stream);
2958  }
2959 
2960  // .operations_research.sat.LinearExpressionProto size = 6;
2961  if (this->_internal_has_size()) {
2962  target = stream->EnsureSpace(target);
2963  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2964  InternalWriteMessage(
2965  6, _Internal::size(this), target, stream);
2966  }
2967 
2968  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2969  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2970  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2971  }
2972  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntervalConstraintProto)
2973  return target;
2974 }
2975 
2977 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntervalConstraintProto)
2978  size_t total_size = 0;
2979 
2980  uint32_t cached_has_bits = 0;
2981  // Prevent compiler warnings about cached_has_bits being unused
2982  (void) cached_has_bits;
2983 
2984  // .operations_research.sat.LinearExpressionProto start = 4;
2985  if (this->_internal_has_start()) {
2986  total_size += 1 +
2987  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2988  *start_);
2989  }
2990 
2991  // .operations_research.sat.LinearExpressionProto end = 5;
2992  if (this->_internal_has_end()) {
2993  total_size += 1 +
2994  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2995  *end_);
2996  }
2997 
2998  // .operations_research.sat.LinearExpressionProto size = 6;
2999  if (this->_internal_has_size()) {
3000  total_size += 1 +
3001  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3002  *size_);
3003  }
3004 
3005  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
3006 }
3007 
3008 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IntervalConstraintProto::_class_data_ = {
3009  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3010  IntervalConstraintProto::MergeImpl
3011 };
3012 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IntervalConstraintProto::GetClassData() const { return &_class_data_; }
3013 
3014 void IntervalConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
3015  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3016  static_cast<IntervalConstraintProto *>(to)->MergeFrom(
3017  static_cast<const IntervalConstraintProto &>(from));
3018 }
3019 
3020 
3022 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntervalConstraintProto)
3023  GOOGLE_DCHECK_NE(&from, this);
3024  uint32_t cached_has_bits = 0;
3025  (void) cached_has_bits;
3026 
3027  if (from._internal_has_start()) {
3028  _internal_mutable_start()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_start());
3029  }
3030  if (from._internal_has_end()) {
3031  _internal_mutable_end()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_end());
3032  }
3033  if (from._internal_has_size()) {
3034  _internal_mutable_size()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_size());
3035  }
3036  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3037 }
3038 
3040 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntervalConstraintProto)
3041  if (&from == this) return;
3042  Clear();
3043  MergeFrom(from);
3044 }
3045 
3047  return true;
3048 }
3049 
3050 void IntervalConstraintProto::InternalSwap(IntervalConstraintProto* other) {
3051  using std::swap;
3052  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3053  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3054  PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, size_)
3055  + sizeof(IntervalConstraintProto::size_)
3056  - PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, start_)>(
3057  reinterpret_cast<char*>(&start_),
3058  reinterpret_cast<char*>(&other->start_));
3059 }
3060 
3061 ::PROTOBUF_NAMESPACE_ID::Metadata IntervalConstraintProto::GetMetadata() const {
3062  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3065 }
3066 
3067 // ===================================================================
3068 
3070  public:
3071 };
3072 
3073 NoOverlapConstraintProto::NoOverlapConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
3074  bool is_message_owned)
3075  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
3076  intervals_(arena) {
3077  SharedCtor();
3078  if (!is_message_owned) {
3079  RegisterArenaDtor(arena);
3080  }
3081  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlapConstraintProto)
3082 }
3084  : ::PROTOBUF_NAMESPACE_ID::Message(),
3085  intervals_(from.intervals_) {
3086  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3087  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlapConstraintProto)
3088 }
3089 
3090 inline void NoOverlapConstraintProto::SharedCtor() {
3091 }
3092 
3094  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlapConstraintProto)
3095  if (GetArenaForAllocation() != nullptr) return;
3096  SharedDtor();
3097  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3098 }
3099 
3100 inline void NoOverlapConstraintProto::SharedDtor() {
3101  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
3102 }
3103 
3104 void NoOverlapConstraintProto::ArenaDtor(void* object) {
3105  NoOverlapConstraintProto* _this = reinterpret_cast< NoOverlapConstraintProto* >(object);
3106  (void)_this;
3107 }
3108 void NoOverlapConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3109 }
3110 void NoOverlapConstraintProto::SetCachedSize(int size) const {
3111  _cached_size_.Set(size);
3112 }
3113 
3115 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlapConstraintProto)
3116  uint32_t cached_has_bits = 0;
3117  // Prevent compiler warnings about cached_has_bits being unused
3118  (void) cached_has_bits;
3119 
3120  intervals_.Clear();
3121  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3122 }
3123 
3124 const char* NoOverlapConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3125 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3126  while (!ctx->Done(&ptr)) {
3127  uint32_t tag;
3128  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3129  switch (tag >> 3) {
3130  // repeated int32 intervals = 1;
3131  case 1:
3132  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
3133  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3134  CHK_(ptr);
3135  } else if (static_cast<uint8_t>(tag) == 8) {
3136  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
3137  CHK_(ptr);
3138  } else
3139  goto handle_unusual;
3140  continue;
3141  default:
3142  goto handle_unusual;
3143  } // switch
3144  handle_unusual:
3145  if ((tag == 0) || ((tag & 7) == 4)) {
3146  CHK_(ptr);
3147  ctx->SetLastTag(tag);
3148  goto message_done;
3149  }
3150  ptr = UnknownFieldParse(
3151  tag,
3152  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3153  ptr, ctx);
3154  CHK_(ptr != nullptr);
3155  } // while
3156 message_done:
3157  return ptr;
3158 failure:
3159  ptr = nullptr;
3160  goto message_done;
3161 #undef CHK_
3162 }
3163 
3165  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3166  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlapConstraintProto)
3167  uint32_t cached_has_bits = 0;
3168  (void) cached_has_bits;
3169 
3170  // repeated int32 intervals = 1;
3171  {
3172  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
3173  if (byte_size > 0) {
3174  target = stream->WriteInt32Packed(
3175  1, _internal_intervals(), byte_size, target);
3176  }
3177  }
3178 
3179  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3180  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3181  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3182  }
3183  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlapConstraintProto)
3184  return target;
3185 }
3186 
3188 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlapConstraintProto)
3189  size_t total_size = 0;
3190 
3191  uint32_t cached_has_bits = 0;
3192  // Prevent compiler warnings about cached_has_bits being unused
3193  (void) cached_has_bits;
3194 
3195  // repeated int32 intervals = 1;
3196  {
3197  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3198  Int32Size(this->intervals_);
3199  if (data_size > 0) {
3200  total_size += 1 +
3201  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3202  static_cast<int32_t>(data_size));
3203  }
3204  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3205  _intervals_cached_byte_size_.store(cached_size,
3206  std::memory_order_relaxed);
3207  total_size += data_size;
3208  }
3209 
3210  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
3211 }
3212 
3213 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData NoOverlapConstraintProto::_class_data_ = {
3214  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3215  NoOverlapConstraintProto::MergeImpl
3216 };
3217 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*NoOverlapConstraintProto::GetClassData() const { return &_class_data_; }
3218 
3219 void NoOverlapConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
3220  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3221  static_cast<NoOverlapConstraintProto *>(to)->MergeFrom(
3222  static_cast<const NoOverlapConstraintProto &>(from));
3223 }
3224 
3225 
3227 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3228  GOOGLE_DCHECK_NE(&from, this);
3229  uint32_t cached_has_bits = 0;
3230  (void) cached_has_bits;
3231 
3232  intervals_.MergeFrom(from.intervals_);
3233  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3234 }
3235 
3237 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3238  if (&from == this) return;
3239  Clear();
3240  MergeFrom(from);
3241 }
3242 
3244  return true;
3245 }
3246 
3247 void NoOverlapConstraintProto::InternalSwap(NoOverlapConstraintProto* other) {
3248  using std::swap;
3249  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3250  intervals_.InternalSwap(&other->intervals_);
3251 }
3252 
3253 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlapConstraintProto::GetMetadata() const {
3254  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3257 }
3258 
3259 // ===================================================================
3260 
3262  public:
3263 };
3264 
3265 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
3266  bool is_message_owned)
3267  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
3268  x_intervals_(arena),
3269  y_intervals_(arena) {
3270  SharedCtor();
3271  if (!is_message_owned) {
3272  RegisterArenaDtor(arena);
3273  }
3274  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3275 }
3277  : ::PROTOBUF_NAMESPACE_ID::Message(),
3278  x_intervals_(from.x_intervals_),
3279  y_intervals_(from.y_intervals_) {
3280  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3281  boxes_with_null_area_can_overlap_ = from.boxes_with_null_area_can_overlap_;
3282  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3283 }
3284 
3285 inline void NoOverlap2DConstraintProto::SharedCtor() {
3286 boxes_with_null_area_can_overlap_ = false;
3287 }
3288 
3290  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlap2DConstraintProto)
3291  if (GetArenaForAllocation() != nullptr) return;
3292  SharedDtor();
3293  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3294 }
3295 
3296 inline void NoOverlap2DConstraintProto::SharedDtor() {
3297  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
3298 }
3299 
3300 void NoOverlap2DConstraintProto::ArenaDtor(void* object) {
3301  NoOverlap2DConstraintProto* _this = reinterpret_cast< NoOverlap2DConstraintProto* >(object);
3302  (void)_this;
3303 }
3304 void NoOverlap2DConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3305 }
3306 void NoOverlap2DConstraintProto::SetCachedSize(int size) const {
3307  _cached_size_.Set(size);
3308 }
3309 
3311 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlap2DConstraintProto)
3312  uint32_t cached_has_bits = 0;
3313  // Prevent compiler warnings about cached_has_bits being unused
3314  (void) cached_has_bits;
3315 
3316  x_intervals_.Clear();
3317  y_intervals_.Clear();
3318  boxes_with_null_area_can_overlap_ = false;
3319  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3320 }
3321 
3322 const char* NoOverlap2DConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3323 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3324  while (!ctx->Done(&ptr)) {
3325  uint32_t tag;
3326  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3327  switch (tag >> 3) {
3328  // repeated int32 x_intervals = 1;
3329  case 1:
3330  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
3331  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_x_intervals(), ptr, ctx);
3332  CHK_(ptr);
3333  } else if (static_cast<uint8_t>(tag) == 8) {
3334  _internal_add_x_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
3335  CHK_(ptr);
3336  } else
3337  goto handle_unusual;
3338  continue;
3339  // repeated int32 y_intervals = 2;
3340  case 2:
3341  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
3342  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_y_intervals(), ptr, ctx);
3343  CHK_(ptr);
3344  } else if (static_cast<uint8_t>(tag) == 16) {
3345  _internal_add_y_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
3346  CHK_(ptr);
3347  } else
3348  goto handle_unusual;
3349  continue;
3350  // bool boxes_with_null_area_can_overlap = 3;
3351  case 3:
3352  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
3353  boxes_with_null_area_can_overlap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3354  CHK_(ptr);
3355  } else
3356  goto handle_unusual;
3357  continue;
3358  default:
3359  goto handle_unusual;
3360  } // switch
3361  handle_unusual:
3362  if ((tag == 0) || ((tag & 7) == 4)) {
3363  CHK_(ptr);
3364  ctx->SetLastTag(tag);
3365  goto message_done;
3366  }
3367  ptr = UnknownFieldParse(
3368  tag,
3369  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3370  ptr, ctx);
3371  CHK_(ptr != nullptr);
3372  } // while
3373 message_done:
3374  return ptr;
3375 failure:
3376  ptr = nullptr;
3377  goto message_done;
3378 #undef CHK_
3379 }
3380 
3382  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3383  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlap2DConstraintProto)
3384  uint32_t cached_has_bits = 0;
3385  (void) cached_has_bits;
3386 
3387  // repeated int32 x_intervals = 1;
3388  {
3389  int byte_size = _x_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3390  if (byte_size > 0) {
3391  target = stream->WriteInt32Packed(
3392  1, _internal_x_intervals(), byte_size, target);
3393  }
3394  }
3395 
3396  // repeated int32 y_intervals = 2;
3397  {
3398  int byte_size = _y_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3399  if (byte_size > 0) {
3400  target = stream->WriteInt32Packed(
3401  2, _internal_y_intervals(), byte_size, target);
3402  }
3403  }
3404 
3405  // bool boxes_with_null_area_can_overlap = 3;
3406  if (this->_internal_boxes_with_null_area_can_overlap() != 0) {
3407  target = stream->EnsureSpace(target);
3408  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_boxes_with_null_area_can_overlap(), target);
3409  }
3410 
3411  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3412  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3413  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3414  }
3415  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlap2DConstraintProto)
3416  return target;
3417 }
3418 
3420 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlap2DConstraintProto)
3421  size_t total_size = 0;
3422 
3423  uint32_t cached_has_bits = 0;
3424  // Prevent compiler warnings about cached_has_bits being unused
3425  (void) cached_has_bits;
3426 
3427  // repeated int32 x_intervals = 1;
3428  {
3429  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3430  Int32Size(this->x_intervals_);
3431  if (data_size > 0) {
3432  total_size += 1 +
3433  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3434  static_cast<int32_t>(data_size));
3435  }
3436  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3437  _x_intervals_cached_byte_size_.store(cached_size,
3438  std::memory_order_relaxed);
3439  total_size += data_size;
3440  }
3441 
3442  // repeated int32 y_intervals = 2;
3443  {
3444  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3445  Int32Size(this->y_intervals_);
3446  if (data_size > 0) {
3447  total_size += 1 +
3448  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3449  static_cast<int32_t>(data_size));
3450  }
3451  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3452  _y_intervals_cached_byte_size_.store(cached_size,
3453  std::memory_order_relaxed);
3454  total_size += data_size;
3455  }
3456 
3457  // bool boxes_with_null_area_can_overlap = 3;
3458  if (this->_internal_boxes_with_null_area_can_overlap() != 0) {
3459  total_size += 1 + 1;
3460  }
3461 
3462  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
3463 }
3464 
3465 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData NoOverlap2DConstraintProto::_class_data_ = {
3466  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3467  NoOverlap2DConstraintProto::MergeImpl
3468 };
3469 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*NoOverlap2DConstraintProto::GetClassData() const { return &_class_data_; }
3470 
3471 void NoOverlap2DConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
3472  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3473  static_cast<NoOverlap2DConstraintProto *>(to)->MergeFrom(
3474  static_cast<const NoOverlap2DConstraintProto &>(from));
3475 }
3476 
3477 
3479 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3480  GOOGLE_DCHECK_NE(&from, this);
3481  uint32_t cached_has_bits = 0;
3482  (void) cached_has_bits;
3483 
3484  x_intervals_.MergeFrom(from.x_intervals_);
3485  y_intervals_.MergeFrom(from.y_intervals_);
3486  if (from._internal_boxes_with_null_area_can_overlap() != 0) {
3487  _internal_set_boxes_with_null_area_can_overlap(from._internal_boxes_with_null_area_can_overlap());
3488  }
3489  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3490 }
3491 
3493 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3494  if (&from == this) return;
3495  Clear();
3496  MergeFrom(from);
3497 }
3498 
3500  return true;
3501 }
3502 
3503 void NoOverlap2DConstraintProto::InternalSwap(NoOverlap2DConstraintProto* other) {
3504  using std::swap;
3505  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3506  x_intervals_.InternalSwap(&other->x_intervals_);
3507  y_intervals_.InternalSwap(&other->y_intervals_);
3508  swap(boxes_with_null_area_can_overlap_, other->boxes_with_null_area_can_overlap_);
3509 }
3510 
3511 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlap2DConstraintProto::GetMetadata() const {
3512  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3515 }
3516 
3517 // ===================================================================
3518 
3520  public:
3521  static const ::operations_research::sat::LinearExpressionProto& capacity(const CumulativeConstraintProto* msg);
3522 };
3523 
3524 const ::operations_research::sat::LinearExpressionProto&
3526  return *msg->capacity_;
3527 }
3528 CumulativeConstraintProto::CumulativeConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
3529  bool is_message_owned)
3530  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
3531  intervals_(arena),
3532  demands_(arena) {
3533  SharedCtor();
3534  if (!is_message_owned) {
3535  RegisterArenaDtor(arena);
3536  }
3537  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CumulativeConstraintProto)
3538 }
3540  : ::PROTOBUF_NAMESPACE_ID::Message(),
3541  intervals_(from.intervals_),
3542  demands_(from.demands_) {
3543  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3544  if (from._internal_has_capacity()) {
3545  capacity_ = new ::operations_research::sat::LinearExpressionProto(*from.capacity_);
3546  } else {
3547  capacity_ = nullptr;
3548  }
3549  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CumulativeConstraintProto)
3550 }
3551 
3552 inline void CumulativeConstraintProto::SharedCtor() {
3553 capacity_ = nullptr;
3554 }
3555 
3557  // @@protoc_insertion_point(destructor:operations_research.sat.CumulativeConstraintProto)
3558  if (GetArenaForAllocation() != nullptr) return;
3559  SharedDtor();
3560  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3561 }
3562 
3563 inline void CumulativeConstraintProto::SharedDtor() {
3564  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
3565  if (this != internal_default_instance()) delete capacity_;
3566 }
3567 
3568 void CumulativeConstraintProto::ArenaDtor(void* object) {
3569  CumulativeConstraintProto* _this = reinterpret_cast< CumulativeConstraintProto* >(object);
3570  (void)_this;
3571 }
3572 void CumulativeConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3573 }
3574 void CumulativeConstraintProto::SetCachedSize(int size) const {
3575  _cached_size_.Set(size);
3576 }
3577 
3579 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CumulativeConstraintProto)
3580  uint32_t cached_has_bits = 0;
3581  // Prevent compiler warnings about cached_has_bits being unused
3582  (void) cached_has_bits;
3583 
3584  intervals_.Clear();
3585  demands_.Clear();
3586  if (GetArenaForAllocation() == nullptr && capacity_ != nullptr) {
3587  delete capacity_;
3588  }
3589  capacity_ = nullptr;
3590  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3591 }
3592 
3593 const char* CumulativeConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3594 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3595  while (!ctx->Done(&ptr)) {
3596  uint32_t tag;
3597  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3598  switch (tag >> 3) {
3599  // .operations_research.sat.LinearExpressionProto capacity = 1;
3600  case 1:
3601  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
3602  ptr = ctx->ParseMessage(_internal_mutable_capacity(), ptr);
3603  CHK_(ptr);
3604  } else
3605  goto handle_unusual;
3606  continue;
3607  // repeated int32 intervals = 2;
3608  case 2:
3609  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
3610  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3611  CHK_(ptr);
3612  } else if (static_cast<uint8_t>(tag) == 16) {
3613  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
3614  CHK_(ptr);
3615  } else
3616  goto handle_unusual;
3617  continue;
3618  // repeated .operations_research.sat.LinearExpressionProto demands = 3;
3619  case 3:
3620  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
3621  ptr -= 1;
3622  do {
3623  ptr += 1;
3624  ptr = ctx->ParseMessage(_internal_add_demands(), ptr);
3625  CHK_(ptr);
3626  if (!ctx->DataAvailable(ptr)) break;
3627  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
3628  } else
3629  goto handle_unusual;
3630  continue;
3631  default:
3632  goto handle_unusual;
3633  } // switch
3634  handle_unusual:
3635  if ((tag == 0) || ((tag & 7) == 4)) {
3636  CHK_(ptr);
3637  ctx->SetLastTag(tag);
3638  goto message_done;
3639  }
3640  ptr = UnknownFieldParse(
3641  tag,
3642  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3643  ptr, ctx);
3644  CHK_(ptr != nullptr);
3645  } // while
3646 message_done:
3647  return ptr;
3648 failure:
3649  ptr = nullptr;
3650  goto message_done;
3651 #undef CHK_
3652 }
3653 
3655  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3656  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CumulativeConstraintProto)
3657  uint32_t cached_has_bits = 0;
3658  (void) cached_has_bits;
3659 
3660  // .operations_research.sat.LinearExpressionProto capacity = 1;
3661  if (this->_internal_has_capacity()) {
3662  target = stream->EnsureSpace(target);
3663  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3664  InternalWriteMessage(
3665  1, _Internal::capacity(this), target, stream);
3666  }
3667 
3668  // repeated int32 intervals = 2;
3669  {
3670  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
3671  if (byte_size > 0) {
3672  target = stream->WriteInt32Packed(
3673  2, _internal_intervals(), byte_size, target);
3674  }
3675  }
3676 
3677  // repeated .operations_research.sat.LinearExpressionProto demands = 3;
3678  for (unsigned int i = 0,
3679  n = static_cast<unsigned int>(this->_internal_demands_size()); i < n; i++) {
3680  target = stream->EnsureSpace(target);
3681  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3682  InternalWriteMessage(3, this->_internal_demands(i), target, stream);
3683  }
3684 
3685  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3686  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3687  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3688  }
3689  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CumulativeConstraintProto)
3690  return target;
3691 }
3692 
3694 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CumulativeConstraintProto)
3695  size_t total_size = 0;
3696 
3697  uint32_t cached_has_bits = 0;
3698  // Prevent compiler warnings about cached_has_bits being unused
3699  (void) cached_has_bits;
3700 
3701  // repeated int32 intervals = 2;
3702  {
3703  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3704  Int32Size(this->intervals_);
3705  if (data_size > 0) {
3706  total_size += 1 +
3707  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3708  static_cast<int32_t>(data_size));
3709  }
3710  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3711  _intervals_cached_byte_size_.store(cached_size,
3712  std::memory_order_relaxed);
3713  total_size += data_size;
3714  }
3715 
3716  // repeated .operations_research.sat.LinearExpressionProto demands = 3;
3717  total_size += 1UL * this->_internal_demands_size();
3718  for (const auto& msg : this->demands_) {
3719  total_size +=
3720  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
3721  }
3722 
3723  // .operations_research.sat.LinearExpressionProto capacity = 1;
3724  if (this->_internal_has_capacity()) {
3725  total_size += 1 +
3726  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3727  *capacity_);
3728  }
3729 
3730  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
3731 }
3732 
3733 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CumulativeConstraintProto::_class_data_ = {
3734  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3735  CumulativeConstraintProto::MergeImpl
3736 };
3737 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CumulativeConstraintProto::GetClassData() const { return &_class_data_; }
3738 
3739 void CumulativeConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
3740  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3741  static_cast<CumulativeConstraintProto *>(to)->MergeFrom(
3742  static_cast<const CumulativeConstraintProto &>(from));
3743 }
3744 
3745 
3747 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CumulativeConstraintProto)
3748  GOOGLE_DCHECK_NE(&from, this);
3749  uint32_t cached_has_bits = 0;
3750  (void) cached_has_bits;
3751 
3752  intervals_.MergeFrom(from.intervals_);
3753  demands_.MergeFrom(from.demands_);
3754  if (from._internal_has_capacity()) {
3755  _internal_mutable_capacity()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_capacity());
3756  }
3757  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3758 }
3759 
3761 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CumulativeConstraintProto)
3762  if (&from == this) return;
3763  Clear();
3764  MergeFrom(from);
3765 }
3766 
3768  return true;
3769 }
3770 
3771 void CumulativeConstraintProto::InternalSwap(CumulativeConstraintProto* other) {
3772  using std::swap;
3773  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3774  intervals_.InternalSwap(&other->intervals_);
3775  demands_.InternalSwap(&other->demands_);
3776  swap(capacity_, other->capacity_);
3777 }
3778 
3779 ::PROTOBUF_NAMESPACE_ID::Metadata CumulativeConstraintProto::GetMetadata() const {
3780  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3783 }
3784 
3785 // ===================================================================
3786 
3788  public:
3789 };
3790 
3791 ReservoirConstraintProto::ReservoirConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
3792  bool is_message_owned)
3793  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
3794  time_exprs_(arena),
3795  level_changes_(arena),
3796  active_literals_(arena) {
3797  SharedCtor();
3798  if (!is_message_owned) {
3799  RegisterArenaDtor(arena);
3800  }
3801  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ReservoirConstraintProto)
3802 }
3804  : ::PROTOBUF_NAMESPACE_ID::Message(),
3805  time_exprs_(from.time_exprs_),
3806  level_changes_(from.level_changes_),
3807  active_literals_(from.active_literals_) {
3808  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3809  ::memcpy(&min_level_, &from.min_level_,
3810  static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
3811  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
3812  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ReservoirConstraintProto)
3813 }
3814 
3815 inline void ReservoirConstraintProto::SharedCtor() {
3816 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
3817  reinterpret_cast<char*>(&min_level_) - reinterpret_cast<char*>(this)),
3818  0, static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
3819  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
3820 }
3821 
3823  // @@protoc_insertion_point(destructor:operations_research.sat.ReservoirConstraintProto)
3824  if (GetArenaForAllocation() != nullptr) return;
3825  SharedDtor();
3826  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3827 }
3828 
3829 inline void ReservoirConstraintProto::SharedDtor() {
3830  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
3831 }
3832 
3833 void ReservoirConstraintProto::ArenaDtor(void* object) {
3834  ReservoirConstraintProto* _this = reinterpret_cast< ReservoirConstraintProto* >(object);
3835  (void)_this;
3836 }
3837 void ReservoirConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3838 }
3839 void ReservoirConstraintProto::SetCachedSize(int size) const {
3840  _cached_size_.Set(size);
3841 }
3842 
3844 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ReservoirConstraintProto)
3845  uint32_t cached_has_bits = 0;
3846  // Prevent compiler warnings about cached_has_bits being unused
3847  (void) cached_has_bits;
3848 
3849  time_exprs_.Clear();
3850  level_changes_.Clear();
3851  active_literals_.Clear();
3852  ::memset(&min_level_, 0, static_cast<size_t>(
3853  reinterpret_cast<char*>(&max_level_) -
3854  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
3855  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3856 }
3857 
3858 const char* ReservoirConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3859 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3860  while (!ctx->Done(&ptr)) {
3861  uint32_t tag;
3862  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3863  switch (tag >> 3) {
3864  // int64 min_level = 1;
3865  case 1:
3866  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
3867  min_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3868  CHK_(ptr);
3869  } else
3870  goto handle_unusual;
3871  continue;
3872  // int64 max_level = 2;
3873  case 2:
3874  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
3875  max_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3876  CHK_(ptr);
3877  } else
3878  goto handle_unusual;
3879  continue;
3880  // repeated .operations_research.sat.LinearExpressionProto time_exprs = 3;
3881  case 3:
3882  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
3883  ptr -= 1;
3884  do {
3885  ptr += 1;
3886  ptr = ctx->ParseMessage(_internal_add_time_exprs(), ptr);
3887  CHK_(ptr);
3888  if (!ctx->DataAvailable(ptr)) break;
3889  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
3890  } else
3891  goto handle_unusual;
3892  continue;
3893  // repeated int64 level_changes = 4;
3894  case 4:
3895  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
3896  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_level_changes(), ptr, ctx);
3897  CHK_(ptr);
3898  } else if (static_cast<uint8_t>(tag) == 32) {
3899  _internal_add_level_changes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3900  CHK_(ptr);
3901  } else
3902  goto handle_unusual;
3903  continue;
3904  // repeated int32 active_literals = 5;
3905  case 5:
3906  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
3907  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_active_literals(), ptr, ctx);
3908  CHK_(ptr);
3909  } else if (static_cast<uint8_t>(tag) == 40) {
3910  _internal_add_active_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
3911  CHK_(ptr);
3912  } else
3913  goto handle_unusual;
3914  continue;
3915  default:
3916  goto handle_unusual;
3917  } // switch
3918  handle_unusual:
3919  if ((tag == 0) || ((tag & 7) == 4)) {
3920  CHK_(ptr);
3921  ctx->SetLastTag(tag);
3922  goto message_done;
3923  }
3924  ptr = UnknownFieldParse(
3925  tag,
3926  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3927  ptr, ctx);
3928  CHK_(ptr != nullptr);
3929  } // while
3930 message_done:
3931  return ptr;
3932 failure:
3933  ptr = nullptr;
3934  goto message_done;
3935 #undef CHK_
3936 }
3937 
3939  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3940  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ReservoirConstraintProto)
3941  uint32_t cached_has_bits = 0;
3942  (void) cached_has_bits;
3943 
3944  // int64 min_level = 1;
3945  if (this->_internal_min_level() != 0) {
3946  target = stream->EnsureSpace(target);
3947  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_min_level(), target);
3948  }
3949 
3950  // int64 max_level = 2;
3951  if (this->_internal_max_level() != 0) {
3952  target = stream->EnsureSpace(target);
3953  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_max_level(), target);
3954  }
3955 
3956  // repeated .operations_research.sat.LinearExpressionProto time_exprs = 3;
3957  for (unsigned int i = 0,
3958  n = static_cast<unsigned int>(this->_internal_time_exprs_size()); i < n; i++) {
3959  target = stream->EnsureSpace(target);
3960  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3961  InternalWriteMessage(3, this->_internal_time_exprs(i), target, stream);
3962  }
3963 
3964  // repeated int64 level_changes = 4;
3965  {
3966  int byte_size = _level_changes_cached_byte_size_.load(std::memory_order_relaxed);
3967  if (byte_size > 0) {
3968  target = stream->WriteInt64Packed(
3969  4, _internal_level_changes(), byte_size, target);
3970  }
3971  }
3972 
3973  // repeated int32 active_literals = 5;
3974  {
3975  int byte_size = _active_literals_cached_byte_size_.load(std::memory_order_relaxed);
3976  if (byte_size > 0) {
3977  target = stream->WriteInt32Packed(
3978  5, _internal_active_literals(), byte_size, target);
3979  }
3980  }
3981 
3982  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3983  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3984  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3985  }
3986  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ReservoirConstraintProto)
3987  return target;
3988 }
3989 
3991 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ReservoirConstraintProto)
3992  size_t total_size = 0;
3993 
3994  uint32_t cached_has_bits = 0;
3995  // Prevent compiler warnings about cached_has_bits being unused
3996  (void) cached_has_bits;
3997 
3998  // repeated .operations_research.sat.LinearExpressionProto time_exprs = 3;
3999  total_size += 1UL * this->_internal_time_exprs_size();
4000  for (const auto& msg : this->time_exprs_) {
4001  total_size +=
4002  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
4003  }
4004 
4005  // repeated int64 level_changes = 4;
4006  {
4007  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4008  Int64Size(this->level_changes_);
4009  if (data_size > 0) {
4010  total_size += 1 +
4011  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4012  static_cast<int32_t>(data_size));
4013  }
4014  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4015  _level_changes_cached_byte_size_.store(cached_size,
4016  std::memory_order_relaxed);
4017  total_size += data_size;
4018  }
4019 
4020  // repeated int32 active_literals = 5;
4021  {
4022  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4023  Int32Size(this->active_literals_);
4024  if (data_size > 0) {
4025  total_size += 1 +
4026  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4027  static_cast<int32_t>(data_size));
4028  }
4029  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4030  _active_literals_cached_byte_size_.store(cached_size,
4031  std::memory_order_relaxed);
4032  total_size += data_size;
4033  }
4034 
4035  // int64 min_level = 1;
4036  if (this->_internal_min_level() != 0) {
4037  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_min_level());
4038  }
4039 
4040  // int64 max_level = 2;
4041  if (this->_internal_max_level() != 0) {
4042  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_max_level());
4043  }
4044 
4045  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
4046 }
4047 
4048 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ReservoirConstraintProto::_class_data_ = {
4049  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
4050  ReservoirConstraintProto::MergeImpl
4051 };
4052 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ReservoirConstraintProto::GetClassData() const { return &_class_data_; }
4053 
4054 void ReservoirConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
4055  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4056  static_cast<ReservoirConstraintProto *>(to)->MergeFrom(
4057  static_cast<const ReservoirConstraintProto &>(from));
4058 }
4059 
4060 
4062 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4063  GOOGLE_DCHECK_NE(&from, this);
4064  uint32_t cached_has_bits = 0;
4065  (void) cached_has_bits;
4066 
4067  time_exprs_.MergeFrom(from.time_exprs_);
4068  level_changes_.MergeFrom(from.level_changes_);
4069  active_literals_.MergeFrom(from.active_literals_);
4070  if (from._internal_min_level() != 0) {
4071  _internal_set_min_level(from._internal_min_level());
4072  }
4073  if (from._internal_max_level() != 0) {
4074  _internal_set_max_level(from._internal_max_level());
4075  }
4076  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4077 }
4078 
4080 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4081  if (&from == this) return;
4082  Clear();
4083  MergeFrom(from);
4084 }
4085 
4087  return true;
4088 }
4089 
4090 void ReservoirConstraintProto::InternalSwap(ReservoirConstraintProto* other) {
4091  using std::swap;
4092  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4093  time_exprs_.InternalSwap(&other->time_exprs_);
4094  level_changes_.InternalSwap(&other->level_changes_);
4095  active_literals_.InternalSwap(&other->active_literals_);
4096  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
4097  PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, max_level_)
4098  + sizeof(ReservoirConstraintProto::max_level_)
4099  - PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, min_level_)>(
4100  reinterpret_cast<char*>(&min_level_),
4101  reinterpret_cast<char*>(&other->min_level_));
4102 }
4103 
4104 ::PROTOBUF_NAMESPACE_ID::Metadata ReservoirConstraintProto::GetMetadata() const {
4105  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
4108 }
4109 
4110 // ===================================================================
4111 
4113  public:
4114 };
4115 
4116 CircuitConstraintProto::CircuitConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
4117  bool is_message_owned)
4118  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
4119  tails_(arena),
4120  heads_(arena),
4121  literals_(arena) {
4122  SharedCtor();
4123  if (!is_message_owned) {
4124  RegisterArenaDtor(arena);
4125  }
4126  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CircuitConstraintProto)
4127 }
4129  : ::PROTOBUF_NAMESPACE_ID::Message(),
4130  tails_(from.tails_),
4131  heads_(from.heads_),
4132  literals_(from.literals_) {
4133  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4134  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CircuitConstraintProto)
4135 }
4136 
4137 inline void CircuitConstraintProto::SharedCtor() {
4138 }
4139 
4141  // @@protoc_insertion_point(destructor:operations_research.sat.CircuitConstraintProto)
4142  if (GetArenaForAllocation() != nullptr) return;
4143  SharedDtor();
4144  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4145 }
4146 
4147 inline void CircuitConstraintProto::SharedDtor() {
4148  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
4149 }
4150 
4151 void CircuitConstraintProto::ArenaDtor(void* object) {
4152  CircuitConstraintProto* _this = reinterpret_cast< CircuitConstraintProto* >(object);
4153  (void)_this;
4154 }
4155 void CircuitConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4156 }
4157 void CircuitConstraintProto::SetCachedSize(int size) const {
4158  _cached_size_.Set(size);
4159 }
4160 
4162 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CircuitConstraintProto)
4163  uint32_t cached_has_bits = 0;
4164  // Prevent compiler warnings about cached_has_bits being unused
4165  (void) cached_has_bits;
4166 
4167  tails_.Clear();
4168  heads_.Clear();
4169  literals_.Clear();
4170  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4171 }
4172 
4173 const char* CircuitConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4174 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4175  while (!ctx->Done(&ptr)) {
4176  uint32_t tag;
4177  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4178  switch (tag >> 3) {
4179  // repeated int32 tails = 3;
4180  case 3:
4181  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
4182  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4183  CHK_(ptr);
4184  } else if (static_cast<uint8_t>(tag) == 24) {
4185  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
4186  CHK_(ptr);
4187  } else
4188  goto handle_unusual;
4189  continue;
4190  // repeated int32 heads = 4;
4191  case 4:
4192  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
4193  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4194  CHK_(ptr);
4195  } else if (static_cast<uint8_t>(tag) == 32) {
4196  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
4197  CHK_(ptr);
4198  } else
4199  goto handle_unusual;
4200  continue;
4201  // repeated int32 literals = 5;
4202  case 5:
4203  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
4204  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4205  CHK_(ptr);
4206  } else if (static_cast<uint8_t>(tag) == 40) {
4207  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
4208  CHK_(ptr);
4209  } else
4210  goto handle_unusual;
4211  continue;
4212  default:
4213  goto handle_unusual;
4214  } // switch
4215  handle_unusual:
4216  if ((tag == 0) || ((tag & 7) == 4)) {
4217  CHK_(ptr);
4218  ctx->SetLastTag(tag);
4219  goto message_done;
4220  }
4221  ptr = UnknownFieldParse(
4222  tag,
4223  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4224  ptr, ctx);
4225  CHK_(ptr != nullptr);
4226  } // while
4227 message_done:
4228  return ptr;
4229 failure:
4230  ptr = nullptr;
4231  goto message_done;
4232 #undef CHK_
4233 }
4234 
4236  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4237  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CircuitConstraintProto)
4238  uint32_t cached_has_bits = 0;
4239  (void) cached_has_bits;
4240 
4241  // repeated int32 tails = 3;
4242  {
4243  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4244  if (byte_size > 0) {
4245  target = stream->WriteInt32Packed(
4246  3, _internal_tails(), byte_size, target);
4247  }
4248  }
4249 
4250  // repeated int32 heads = 4;
4251  {
4252  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4253  if (byte_size > 0) {
4254  target = stream->WriteInt32Packed(
4255  4, _internal_heads(), byte_size, target);
4256  }
4257  }
4258 
4259  // repeated int32 literals = 5;
4260  {
4261  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4262  if (byte_size > 0) {
4263  target = stream->WriteInt32Packed(
4264  5, _internal_literals(), byte_size, target);
4265  }
4266  }
4267 
4268  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4269  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4270  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4271  }
4272  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CircuitConstraintProto)
4273  return target;
4274 }
4275 
4277 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CircuitConstraintProto)
4278  size_t total_size = 0;
4279 
4280  uint32_t cached_has_bits = 0;
4281  // Prevent compiler warnings about cached_has_bits being unused
4282  (void) cached_has_bits;
4283 
4284  // repeated int32 tails = 3;
4285  {
4286  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4287  Int32Size(this->tails_);
4288  if (data_size > 0) {
4289  total_size += 1 +
4290  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4291  static_cast<int32_t>(data_size));
4292  }
4293  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4294  _tails_cached_byte_size_.store(cached_size,
4295  std::memory_order_relaxed);
4296  total_size += data_size;
4297  }
4298 
4299  // repeated int32 heads = 4;
4300  {
4301  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4302  Int32Size(this->heads_);
4303  if (data_size > 0) {
4304  total_size += 1 +
4305  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4306  static_cast<int32_t>(data_size));
4307  }
4308  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4309  _heads_cached_byte_size_.store(cached_size,
4310  std::memory_order_relaxed);
4311  total_size += data_size;
4312  }
4313 
4314  // repeated int32 literals = 5;
4315  {
4316  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4317  Int32Size(this->literals_);
4318  if (data_size > 0) {
4319  total_size += 1 +
4320  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4321  static_cast<int32_t>(data_size));
4322  }
4323  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4324  _literals_cached_byte_size_.store(cached_size,
4325  std::memory_order_relaxed);
4326  total_size += data_size;
4327  }
4328 
4329  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
4330 }
4331 
4332 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CircuitConstraintProto::_class_data_ = {
4333  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
4334  CircuitConstraintProto::MergeImpl
4335 };
4336 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CircuitConstraintProto::GetClassData() const { return &_class_data_; }
4337 
4338 void CircuitConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
4339  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4340  static_cast<CircuitConstraintProto *>(to)->MergeFrom(
4341  static_cast<const CircuitConstraintProto &>(from));
4342 }
4343 
4344 
4346 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CircuitConstraintProto)
4347  GOOGLE_DCHECK_NE(&from, this);
4348  uint32_t cached_has_bits = 0;
4349  (void) cached_has_bits;
4350 
4351  tails_.MergeFrom(from.tails_);
4352  heads_.MergeFrom(from.heads_);
4353  literals_.MergeFrom(from.literals_);
4354  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4355 }
4356 
4358 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CircuitConstraintProto)
4359  if (&from == this) return;
4360  Clear();
4361  MergeFrom(from);
4362 }
4363 
4365  return true;
4366 }
4367 
4368 void CircuitConstraintProto::InternalSwap(CircuitConstraintProto* other) {
4369  using std::swap;
4370  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4371  tails_.InternalSwap(&other->tails_);
4372  heads_.InternalSwap(&other->heads_);
4373  literals_.InternalSwap(&other->literals_);
4374 }
4375 
4376 ::PROTOBUF_NAMESPACE_ID::Metadata CircuitConstraintProto::GetMetadata() const {
4377  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
4380 }
4381 
4382 // ===================================================================
4383 
4385  public:
4386 };
4387 
4388 RoutesConstraintProto::RoutesConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
4389  bool is_message_owned)
4390  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
4391  tails_(arena),
4392  heads_(arena),
4393  literals_(arena),
4394  demands_(arena) {
4395  SharedCtor();
4396  if (!is_message_owned) {
4397  RegisterArenaDtor(arena);
4398  }
4399  // @@protoc_insertion_point(arena_constructor:operations_research.sat.RoutesConstraintProto)
4400 }
4402  : ::PROTOBUF_NAMESPACE_ID::Message(),
4403  tails_(from.tails_),
4404  heads_(from.heads_),
4405  literals_(from.literals_),
4406  demands_(from.demands_) {
4407  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4408  capacity_ = from.capacity_;
4409  // @@protoc_insertion_point(copy_constructor:operations_research.sat.RoutesConstraintProto)
4410 }
4411 
4412 inline void RoutesConstraintProto::SharedCtor() {
4413 capacity_ = int64_t{0};
4414 }
4415 
4417  // @@protoc_insertion_point(destructor:operations_research.sat.RoutesConstraintProto)
4418  if (GetArenaForAllocation() != nullptr) return;
4419  SharedDtor();
4420  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4421 }
4422 
4423 inline void RoutesConstraintProto::SharedDtor() {
4424  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
4425 }
4426 
4427 void RoutesConstraintProto::ArenaDtor(void* object) {
4428  RoutesConstraintProto* _this = reinterpret_cast< RoutesConstraintProto* >(object);
4429  (void)_this;
4430 }
4431 void RoutesConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4432 }
4433 void RoutesConstraintProto::SetCachedSize(int size) const {
4434  _cached_size_.Set(size);
4435 }
4436 
4438 // @@protoc_insertion_point(message_clear_start:operations_research.sat.RoutesConstraintProto)
4439  uint32_t cached_has_bits = 0;
4440  // Prevent compiler warnings about cached_has_bits being unused
4441  (void) cached_has_bits;
4442 
4443  tails_.Clear();
4444  heads_.Clear();
4445  literals_.Clear();
4446  demands_.Clear();
4447  capacity_ = int64_t{0};
4448  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4449 }
4450 
4451 const char* RoutesConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4452 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4453  while (!ctx->Done(&ptr)) {
4454  uint32_t tag;
4455  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4456  switch (tag >> 3) {
4457  // repeated int32 tails = 1;
4458  case 1:
4459  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
4460  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4461  CHK_(ptr);
4462  } else if (static_cast<uint8_t>(tag) == 8) {
4463  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
4464  CHK_(ptr);
4465  } else
4466  goto handle_unusual;
4467  continue;
4468  // repeated int32 heads = 2;
4469  case 2:
4470  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
4471  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4472  CHK_(ptr);
4473  } else if (static_cast<uint8_t>(tag) == 16) {
4474  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
4475  CHK_(ptr);
4476  } else
4477  goto handle_unusual;
4478  continue;
4479  // repeated int32 literals = 3;
4480  case 3:
4481  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
4482  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4483  CHK_(ptr);
4484  } else if (static_cast<uint8_t>(tag) == 24) {
4485  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
4486  CHK_(ptr);
4487  } else
4488  goto handle_unusual;
4489  continue;
4490  // repeated int32 demands = 4;
4491  case 4:
4492  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
4493  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
4494  CHK_(ptr);
4495  } else if (static_cast<uint8_t>(tag) == 32) {
4496  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
4497  CHK_(ptr);
4498  } else
4499  goto handle_unusual;
4500  continue;
4501  // int64 capacity = 5;
4502  case 5:
4503  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
4504  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4505  CHK_(ptr);
4506  } else
4507  goto handle_unusual;
4508  continue;
4509  default:
4510  goto handle_unusual;
4511  } // switch
4512  handle_unusual:
4513  if ((tag == 0) || ((tag & 7) == 4)) {
4514  CHK_(ptr);
4515  ctx->SetLastTag(tag);
4516  goto message_done;
4517  }
4518  ptr = UnknownFieldParse(
4519  tag,
4520  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4521  ptr, ctx);
4522  CHK_(ptr != nullptr);
4523  } // while
4524 message_done:
4525  return ptr;
4526 failure:
4527  ptr = nullptr;
4528  goto message_done;
4529 #undef CHK_
4530 }
4531 
4533  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4534  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.RoutesConstraintProto)
4535  uint32_t cached_has_bits = 0;
4536  (void) cached_has_bits;
4537 
4538  // repeated int32 tails = 1;
4539  {
4540  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4541  if (byte_size > 0) {
4542  target = stream->WriteInt32Packed(
4543  1, _internal_tails(), byte_size, target);
4544  }
4545  }
4546 
4547  // repeated int32 heads = 2;
4548  {
4549  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4550  if (byte_size > 0) {
4551  target = stream->WriteInt32Packed(
4552  2, _internal_heads(), byte_size, target);
4553  }
4554  }
4555 
4556  // repeated int32 literals = 3;
4557  {
4558  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4559  if (byte_size > 0) {
4560  target = stream->WriteInt32Packed(
4561  3, _internal_literals(), byte_size, target);
4562  }
4563  }
4564 
4565  // repeated int32 demands = 4;
4566  {
4567  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4568  if (byte_size > 0) {
4569  target = stream->WriteInt32Packed(
4570  4, _internal_demands(), byte_size, target);
4571  }
4572  }
4573 
4574  // int64 capacity = 5;
4575  if (this->_internal_capacity() != 0) {
4576  target = stream->EnsureSpace(target);
4577  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_capacity(), target);
4578  }
4579 
4580  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4581  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4582  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4583  }
4584  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.RoutesConstraintProto)
4585  return target;
4586 }
4587 
4589 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.RoutesConstraintProto)
4590  size_t total_size = 0;
4591 
4592  uint32_t cached_has_bits = 0;
4593  // Prevent compiler warnings about cached_has_bits being unused
4594  (void) cached_has_bits;
4595 
4596  // repeated int32 tails = 1;
4597  {
4598  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4599  Int32Size(this->tails_);
4600  if (data_size > 0) {
4601  total_size += 1 +
4602  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4603  static_cast<int32_t>(data_size));
4604  }
4605  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4606  _tails_cached_byte_size_.store(cached_size,
4607  std::memory_order_relaxed);
4608  total_size += data_size;
4609  }
4610 
4611  // repeated int32 heads = 2;
4612  {
4613  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4614  Int32Size(this->heads_);
4615  if (data_size > 0) {
4616  total_size += 1 +
4617  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4618  static_cast<int32_t>(data_size));
4619  }
4620  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4621  _heads_cached_byte_size_.store(cached_size,
4622  std::memory_order_relaxed);
4623  total_size += data_size;
4624  }
4625 
4626  // repeated int32 literals = 3;
4627  {
4628  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4629  Int32Size(this->literals_);
4630  if (data_size > 0) {
4631  total_size += 1 +
4632  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4633  static_cast<int32_t>(data_size));
4634  }
4635  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4636  _literals_cached_byte_size_.store(cached_size,
4637  std::memory_order_relaxed);
4638  total_size += data_size;
4639  }
4640 
4641  // repeated int32 demands = 4;
4642  {
4643  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4644  Int32Size(this->demands_);
4645  if (data_size > 0) {
4646  total_size += 1 +
4647  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4648  static_cast<int32_t>(data_size));
4649  }
4650  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4651  _demands_cached_byte_size_.store(cached_size,
4652  std::memory_order_relaxed);
4653  total_size += data_size;
4654  }
4655 
4656  // int64 capacity = 5;
4657  if (this->_internal_capacity() != 0) {
4658  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_capacity());
4659  }
4660 
4661  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
4662 }
4663 
4664 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RoutesConstraintProto::_class_data_ = {
4665  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
4666  RoutesConstraintProto::MergeImpl
4667 };
4668 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RoutesConstraintProto::GetClassData() const { return &_class_data_; }
4669 
4670 void RoutesConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
4671  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4672  static_cast<RoutesConstraintProto *>(to)->MergeFrom(
4673  static_cast<const RoutesConstraintProto &>(from));
4674 }
4675 
4676 
4678 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.RoutesConstraintProto)
4679  GOOGLE_DCHECK_NE(&from, this);
4680  uint32_t cached_has_bits = 0;
4681  (void) cached_has_bits;
4682 
4683  tails_.MergeFrom(from.tails_);
4684  heads_.MergeFrom(from.heads_);
4685  literals_.MergeFrom(from.literals_);
4686  demands_.MergeFrom(from.demands_);
4687  if (from._internal_capacity() != 0) {
4688  _internal_set_capacity(from._internal_capacity());
4689  }
4690  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4691 }
4692 
4694 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.RoutesConstraintProto)
4695  if (&from == this) return;
4696  Clear();
4697  MergeFrom(from);
4698 }
4699 
4701  return true;
4702 }
4703 
4704 void RoutesConstraintProto::InternalSwap(RoutesConstraintProto* other) {
4705  using std::swap;
4706  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4707  tails_.InternalSwap(&other->tails_);
4708  heads_.InternalSwap(&other->heads_);
4709  literals_.InternalSwap(&other->literals_);
4710  demands_.InternalSwap(&other->demands_);
4711  swap(capacity_, other->capacity_);
4712 }
4713 
4714 ::PROTOBUF_NAMESPACE_ID::Metadata RoutesConstraintProto::GetMetadata() const {
4715  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
4718 }
4719 
4720 // ===================================================================
4721 
4723  public:
4724 };
4725 
4726 TableConstraintProto::TableConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
4727  bool is_message_owned)
4728  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
4729  vars_(arena),
4730  values_(arena) {
4731  SharedCtor();
4732  if (!is_message_owned) {
4733  RegisterArenaDtor(arena);
4734  }
4735  // @@protoc_insertion_point(arena_constructor:operations_research.sat.TableConstraintProto)
4736 }
4738  : ::PROTOBUF_NAMESPACE_ID::Message(),
4739  vars_(from.vars_),
4740  values_(from.values_) {
4741  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4742  negated_ = from.negated_;
4743  // @@protoc_insertion_point(copy_constructor:operations_research.sat.TableConstraintProto)
4744 }
4745 
4746 inline void TableConstraintProto::SharedCtor() {
4747 negated_ = false;
4748 }
4749 
4751  // @@protoc_insertion_point(destructor:operations_research.sat.TableConstraintProto)
4752  if (GetArenaForAllocation() != nullptr) return;
4753  SharedDtor();
4754  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4755 }
4756 
4757 inline void TableConstraintProto::SharedDtor() {
4758  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
4759 }
4760 
4761 void TableConstraintProto::ArenaDtor(void* object) {
4762  TableConstraintProto* _this = reinterpret_cast< TableConstraintProto* >(object);
4763  (void)_this;
4764 }
4765 void TableConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4766 }
4767 void TableConstraintProto::SetCachedSize(int size) const {
4768  _cached_size_.Set(size);
4769 }
4770 
4772 // @@protoc_insertion_point(message_clear_start:operations_research.sat.TableConstraintProto)
4773  uint32_t cached_has_bits = 0;
4774  // Prevent compiler warnings about cached_has_bits being unused
4775  (void) cached_has_bits;
4776 
4777  vars_.Clear();
4778  values_.Clear();
4779  negated_ = false;
4780  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4781 }
4782 
4783 const char* TableConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4784 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4785  while (!ctx->Done(&ptr)) {
4786  uint32_t tag;
4787  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4788  switch (tag >> 3) {
4789  // repeated int32 vars = 1;
4790  case 1:
4791  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
4792  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
4793  CHK_(ptr);
4794  } else if (static_cast<uint8_t>(tag) == 8) {
4795  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
4796  CHK_(ptr);
4797  } else
4798  goto handle_unusual;
4799  continue;
4800  // repeated int64 values = 2;
4801  case 2:
4802  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
4803  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
4804  CHK_(ptr);
4805  } else if (static_cast<uint8_t>(tag) == 16) {
4806  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4807  CHK_(ptr);
4808  } else
4809  goto handle_unusual;
4810  continue;
4811  // bool negated = 3;
4812  case 3:
4813  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
4814  negated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4815  CHK_(ptr);
4816  } else
4817  goto handle_unusual;
4818  continue;
4819  default:
4820  goto handle_unusual;
4821  } // switch
4822  handle_unusual:
4823  if ((tag == 0) || ((tag & 7) == 4)) {
4824  CHK_(ptr);
4825  ctx->SetLastTag(tag);
4826  goto message_done;
4827  }
4828  ptr = UnknownFieldParse(
4829  tag,
4830  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4831  ptr, ctx);
4832  CHK_(ptr != nullptr);
4833  } // while
4834 message_done:
4835  return ptr;
4836 failure:
4837  ptr = nullptr;
4838  goto message_done;
4839 #undef CHK_
4840 }
4841 
4843  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4844  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.TableConstraintProto)
4845  uint32_t cached_has_bits = 0;
4846  (void) cached_has_bits;
4847 
4848  // repeated int32 vars = 1;
4849  {
4850  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
4851  if (byte_size > 0) {
4852  target = stream->WriteInt32Packed(
4853  1, _internal_vars(), byte_size, target);
4854  }
4855  }
4856 
4857  // repeated int64 values = 2;
4858  {
4859  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
4860  if (byte_size > 0) {
4861  target = stream->WriteInt64Packed(
4862  2, _internal_values(), byte_size, target);
4863  }
4864  }
4865 
4866  // bool negated = 3;
4867  if (this->_internal_negated() != 0) {
4868  target = stream->EnsureSpace(target);
4869  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_negated(), target);
4870  }
4871 
4872  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4873  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4874  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4875  }
4876  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.TableConstraintProto)
4877  return target;
4878 }
4879 
4881 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.TableConstraintProto)
4882  size_t total_size = 0;
4883 
4884  uint32_t cached_has_bits = 0;
4885  // Prevent compiler warnings about cached_has_bits being unused
4886  (void) cached_has_bits;
4887 
4888  // repeated int32 vars = 1;
4889  {
4890  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4891  Int32Size(this->vars_);
4892  if (data_size > 0) {
4893  total_size += 1 +
4894  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4895  static_cast<int32_t>(data_size));
4896  }
4897  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4898  _vars_cached_byte_size_.store(cached_size,
4899  std::memory_order_relaxed);
4900  total_size += data_size;
4901  }
4902 
4903  // repeated int64 values = 2;
4904  {
4905  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4906  Int64Size(this->values_);
4907  if (data_size > 0) {
4908  total_size += 1 +
4909  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4910  static_cast<int32_t>(data_size));
4911  }
4912  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4913  _values_cached_byte_size_.store(cached_size,
4914  std::memory_order_relaxed);
4915  total_size += data_size;
4916  }
4917 
4918  // bool negated = 3;
4919  if (this->_internal_negated() != 0) {
4920  total_size += 1 + 1;
4921  }
4922 
4923  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
4924 }
4925 
4926 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData TableConstraintProto::_class_data_ = {
4927  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
4928  TableConstraintProto::MergeImpl
4929 };
4930 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*TableConstraintProto::GetClassData() const { return &_class_data_; }
4931 
4932 void TableConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
4933  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4934  static_cast<TableConstraintProto *>(to)->MergeFrom(
4935  static_cast<const TableConstraintProto &>(from));
4936 }
4937 
4938 
4940 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.TableConstraintProto)
4941  GOOGLE_DCHECK_NE(&from, this);
4942  uint32_t cached_has_bits = 0;
4943  (void) cached_has_bits;
4944 
4945  vars_.MergeFrom(from.vars_);
4946  values_.MergeFrom(from.values_);
4947  if (from._internal_negated() != 0) {
4948  _internal_set_negated(from._internal_negated());
4949  }
4950  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4951 }
4952 
4954 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.TableConstraintProto)
4955  if (&from == this) return;
4956  Clear();
4957  MergeFrom(from);
4958 }
4959 
4961  return true;
4962 }
4963 
4964 void TableConstraintProto::InternalSwap(TableConstraintProto* other) {
4965  using std::swap;
4966  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4967  vars_.InternalSwap(&other->vars_);
4968  values_.InternalSwap(&other->values_);
4969  swap(negated_, other->negated_);
4970 }
4971 
4972 ::PROTOBUF_NAMESPACE_ID::Metadata TableConstraintProto::GetMetadata() const {
4973  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
4976 }
4977 
4978 // ===================================================================
4979 
4981  public:
4982 };
4983 
4984 InverseConstraintProto::InverseConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
4985  bool is_message_owned)
4986  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
4987  f_direct_(arena),
4988  f_inverse_(arena) {
4989  SharedCtor();
4990  if (!is_message_owned) {
4991  RegisterArenaDtor(arena);
4992  }
4993  // @@protoc_insertion_point(arena_constructor:operations_research.sat.InverseConstraintProto)
4994 }
4996  : ::PROTOBUF_NAMESPACE_ID::Message(),
4997  f_direct_(from.f_direct_),
4998  f_inverse_(from.f_inverse_) {
4999  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5000  // @@protoc_insertion_point(copy_constructor:operations_research.sat.InverseConstraintProto)
5001 }
5002 
5003 inline void InverseConstraintProto::SharedCtor() {
5004 }
5005 
5007  // @@protoc_insertion_point(destructor:operations_research.sat.InverseConstraintProto)
5008  if (GetArenaForAllocation() != nullptr) return;
5009  SharedDtor();
5010  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5011 }
5012 
5013 inline void InverseConstraintProto::SharedDtor() {
5014  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
5015 }
5016 
5017 void InverseConstraintProto::ArenaDtor(void* object) {
5018  InverseConstraintProto* _this = reinterpret_cast< InverseConstraintProto* >(object);
5019  (void)_this;
5020 }
5021 void InverseConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5022 }
5023 void InverseConstraintProto::SetCachedSize(int size) const {
5024  _cached_size_.Set(size);
5025 }
5026 
5028 // @@protoc_insertion_point(message_clear_start:operations_research.sat.InverseConstraintProto)
5029  uint32_t cached_has_bits = 0;
5030  // Prevent compiler warnings about cached_has_bits being unused
5031  (void) cached_has_bits;
5032 
5033  f_direct_.Clear();
5034  f_inverse_.Clear();
5035  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5036 }
5037 
5038 const char* InverseConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5039 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5040  while (!ctx->Done(&ptr)) {
5041  uint32_t tag;
5042  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5043  switch (tag >> 3) {
5044  // repeated int32 f_direct = 1;
5045  case 1:
5046  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
5047  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_direct(), ptr, ctx);
5048  CHK_(ptr);
5049  } else if (static_cast<uint8_t>(tag) == 8) {
5050  _internal_add_f_direct(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
5051  CHK_(ptr);
5052  } else
5053  goto handle_unusual;
5054  continue;
5055  // repeated int32 f_inverse = 2;
5056  case 2:
5057  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
5058  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_inverse(), ptr, ctx);
5059  CHK_(ptr);
5060  } else if (static_cast<uint8_t>(tag) == 16) {
5061  _internal_add_f_inverse(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
5062  CHK_(ptr);
5063  } else
5064  goto handle_unusual;
5065  continue;
5066  default:
5067  goto handle_unusual;
5068  } // switch
5069  handle_unusual:
5070  if ((tag == 0) || ((tag & 7) == 4)) {
5071  CHK_(ptr);
5072  ctx->SetLastTag(tag);
5073  goto message_done;
5074  }
5075  ptr = UnknownFieldParse(
5076  tag,
5077  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5078  ptr, ctx);
5079  CHK_(ptr != nullptr);
5080  } // while
5081 message_done:
5082  return ptr;
5083 failure:
5084  ptr = nullptr;
5085  goto message_done;
5086 #undef CHK_
5087 }
5088 
5090  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5091  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.InverseConstraintProto)
5092  uint32_t cached_has_bits = 0;
5093  (void) cached_has_bits;
5094 
5095  // repeated int32 f_direct = 1;
5096  {
5097  int byte_size = _f_direct_cached_byte_size_.load(std::memory_order_relaxed);
5098  if (byte_size > 0) {
5099  target = stream->WriteInt32Packed(
5100  1, _internal_f_direct(), byte_size, target);
5101  }
5102  }
5103 
5104  // repeated int32 f_inverse = 2;
5105  {
5106  int byte_size = _f_inverse_cached_byte_size_.load(std::memory_order_relaxed);
5107  if (byte_size > 0) {
5108  target = stream->WriteInt32Packed(
5109  2, _internal_f_inverse(), byte_size, target);
5110  }
5111  }
5112 
5113  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5114  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5115  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5116  }
5117  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.InverseConstraintProto)
5118  return target;
5119 }
5120 
5122 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.InverseConstraintProto)
5123  size_t total_size = 0;
5124 
5125  uint32_t cached_has_bits = 0;
5126  // Prevent compiler warnings about cached_has_bits being unused
5127  (void) cached_has_bits;
5128 
5129  // repeated int32 f_direct = 1;
5130  {
5131  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5132  Int32Size(this->f_direct_);
5133  if (data_size > 0) {
5134  total_size += 1 +
5135  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5136  static_cast<int32_t>(data_size));
5137  }
5138  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5139  _f_direct_cached_byte_size_.store(cached_size,
5140  std::memory_order_relaxed);
5141  total_size += data_size;
5142  }
5143 
5144  // repeated int32 f_inverse = 2;
5145  {
5146  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5147  Int32Size(this->f_inverse_);
5148  if (data_size > 0) {
5149  total_size += 1 +
5150  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5151  static_cast<int32_t>(data_size));
5152  }
5153  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5154  _f_inverse_cached_byte_size_.store(cached_size,
5155  std::memory_order_relaxed);
5156  total_size += data_size;
5157  }
5158 
5159  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
5160 }
5161 
5162 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData InverseConstraintProto::_class_data_ = {
5163  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
5164  InverseConstraintProto::MergeImpl
5165 };
5166 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*InverseConstraintProto::GetClassData() const { return &_class_data_; }
5167 
5168 void InverseConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
5169  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5170  static_cast<InverseConstraintProto *>(to)->MergeFrom(
5171  static_cast<const InverseConstraintProto &>(from));
5172 }
5173 
5174 
5176 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.InverseConstraintProto)
5177  GOOGLE_DCHECK_NE(&from, this);
5178  uint32_t cached_has_bits = 0;
5179  (void) cached_has_bits;
5180 
5181  f_direct_.MergeFrom(from.f_direct_);
5182  f_inverse_.MergeFrom(from.f_inverse_);
5183  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5184 }
5185 
5187 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.InverseConstraintProto)
5188  if (&from == this) return;
5189  Clear();
5190  MergeFrom(from);
5191 }
5192 
5194  return true;
5195 }
5196 
5197 void InverseConstraintProto::InternalSwap(InverseConstraintProto* other) {
5198  using std::swap;
5199  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
5200  f_direct_.InternalSwap(&other->f_direct_);
5201  f_inverse_.InternalSwap(&other->f_inverse_);
5202 }
5203 
5204 ::PROTOBUF_NAMESPACE_ID::Metadata InverseConstraintProto::GetMetadata() const {
5205  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
5208 }
5209 
5210 // ===================================================================
5211 
5213  public:
5214 };
5215 
5216 AutomatonConstraintProto::AutomatonConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
5217  bool is_message_owned)
5218  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
5219  final_states_(arena),
5220  transition_tail_(arena),
5221  transition_head_(arena),
5222  transition_label_(arena),
5223  vars_(arena) {
5224  SharedCtor();
5225  if (!is_message_owned) {
5226  RegisterArenaDtor(arena);
5227  }
5228  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AutomatonConstraintProto)
5229 }
5231  : ::PROTOBUF_NAMESPACE_ID::Message(),
5232  final_states_(from.final_states_),
5233  transition_tail_(from.transition_tail_),
5234  transition_head_(from.transition_head_),
5235  transition_label_(from.transition_label_),
5236  vars_(from.vars_) {
5237  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5238  starting_state_ = from.starting_state_;
5239  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AutomatonConstraintProto)
5240 }
5241 
5242 inline void AutomatonConstraintProto::SharedCtor() {
5243 starting_state_ = int64_t{0};
5244 }
5245 
5247  // @@protoc_insertion_point(destructor:operations_research.sat.AutomatonConstraintProto)
5248  if (GetArenaForAllocation() != nullptr) return;
5249  SharedDtor();
5250  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5251 }
5252 
5253 inline void AutomatonConstraintProto::SharedDtor() {
5254  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
5255 }
5256 
5257 void AutomatonConstraintProto::ArenaDtor(void* object) {
5258  AutomatonConstraintProto* _this = reinterpret_cast< AutomatonConstraintProto* >(object);
5259  (void)_this;
5260 }
5261 void AutomatonConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5262 }
5263 void AutomatonConstraintProto::SetCachedSize(int size) const {
5264  _cached_size_.Set(size);
5265 }
5266 
5268 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AutomatonConstraintProto)
5269  uint32_t cached_has_bits = 0;
5270  // Prevent compiler warnings about cached_has_bits being unused
5271  (void) cached_has_bits;
5272 
5273  final_states_.Clear();
5274  transition_tail_.Clear();
5275  transition_head_.Clear();
5276  transition_label_.Clear();
5277  vars_.Clear();
5278  starting_state_ = int64_t{0};
5279  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5280 }
5281 
5282 const char* AutomatonConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5283 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5284  while (!ctx->Done(&ptr)) {
5285  uint32_t tag;
5286  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5287  switch (tag >> 3) {
5288  // int64 starting_state = 2;
5289  case 2:
5290  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
5291  starting_state_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5292  CHK_(ptr);
5293  } else
5294  goto handle_unusual;
5295  continue;
5296  // repeated int64 final_states = 3;
5297  case 3:
5298  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
5299  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_final_states(), ptr, ctx);
5300  CHK_(ptr);
5301  } else if (static_cast<uint8_t>(tag) == 24) {
5302  _internal_add_final_states(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5303  CHK_(ptr);
5304  } else
5305  goto handle_unusual;
5306  continue;
5307  // repeated int64 transition_tail = 4;
5308  case 4:
5309  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
5310  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_tail(), ptr, ctx);
5311  CHK_(ptr);
5312  } else if (static_cast<uint8_t>(tag) == 32) {
5313  _internal_add_transition_tail(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5314  CHK_(ptr);
5315  } else
5316  goto handle_unusual;
5317  continue;
5318  // repeated int64 transition_head = 5;
5319  case 5:
5320  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
5321  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_head(), ptr, ctx);
5322  CHK_(ptr);
5323  } else if (static_cast<uint8_t>(tag) == 40) {
5324  _internal_add_transition_head(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5325  CHK_(ptr);
5326  } else
5327  goto handle_unusual;
5328  continue;
5329  // repeated int64 transition_label = 6;
5330  case 6:
5331  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
5332  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_label(), ptr, ctx);
5333  CHK_(ptr);
5334  } else if (static_cast<uint8_t>(tag) == 48) {
5335  _internal_add_transition_label(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5336  CHK_(ptr);
5337  } else
5338  goto handle_unusual;
5339  continue;
5340  // repeated int32 vars = 7;
5341  case 7:
5342  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
5343  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5344  CHK_(ptr);
5345  } else if (static_cast<uint8_t>(tag) == 56) {
5346  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
5347  CHK_(ptr);
5348  } else
5349  goto handle_unusual;
5350  continue;
5351  default:
5352  goto handle_unusual;
5353  } // switch
5354  handle_unusual:
5355  if ((tag == 0) || ((tag & 7) == 4)) {
5356  CHK_(ptr);
5357  ctx->SetLastTag(tag);
5358  goto message_done;
5359  }
5360  ptr = UnknownFieldParse(
5361  tag,
5362  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5363  ptr, ctx);
5364  CHK_(ptr != nullptr);
5365  } // while
5366 message_done:
5367  return ptr;
5368 failure:
5369  ptr = nullptr;
5370  goto message_done;
5371 #undef CHK_
5372 }
5373 
5375  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5376  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AutomatonConstraintProto)
5377  uint32_t cached_has_bits = 0;
5378  (void) cached_has_bits;
5379 
5380  // int64 starting_state = 2;
5381  if (this->_internal_starting_state() != 0) {
5382  target = stream->EnsureSpace(target);
5383  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_starting_state(), target);
5384  }
5385 
5386  // repeated int64 final_states = 3;
5387  {
5388  int byte_size = _final_states_cached_byte_size_.load(std::memory_order_relaxed);
5389  if (byte_size > 0) {
5390  target = stream->WriteInt64Packed(
5391  3, _internal_final_states(), byte_size, target);
5392  }
5393  }
5394 
5395  // repeated int64 transition_tail = 4;
5396  {
5397  int byte_size = _transition_tail_cached_byte_size_.load(std::memory_order_relaxed);
5398  if (byte_size > 0) {
5399  target = stream->WriteInt64Packed(
5400  4, _internal_transition_tail(), byte_size, target);
5401  }
5402  }
5403 
5404  // repeated int64 transition_head = 5;
5405  {
5406  int byte_size = _transition_head_cached_byte_size_.load(std::memory_order_relaxed);
5407  if (byte_size > 0) {
5408  target = stream->WriteInt64Packed(
5409  5, _internal_transition_head(), byte_size, target);
5410  }
5411  }
5412 
5413  // repeated int64 transition_label = 6;
5414  {
5415  int byte_size = _transition_label_cached_byte_size_.load(std::memory_order_relaxed);
5416  if (byte_size > 0) {
5417  target = stream->WriteInt64Packed(
5418  6, _internal_transition_label(), byte_size, target);
5419  }
5420  }
5421 
5422  // repeated int32 vars = 7;
5423  {
5424  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5425  if (byte_size > 0) {
5426  target = stream->WriteInt32Packed(
5427  7, _internal_vars(), byte_size, target);
5428  }
5429  }
5430 
5431  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5432  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5433  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5434  }
5435  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AutomatonConstraintProto)
5436  return target;
5437 }
5438 
5440 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AutomatonConstraintProto)
5441  size_t total_size = 0;
5442 
5443  uint32_t cached_has_bits = 0;
5444  // Prevent compiler warnings about cached_has_bits being unused
5445  (void) cached_has_bits;
5446 
5447  // repeated int64 final_states = 3;
5448  {
5449  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5450  Int64Size(this->final_states_);
5451  if (data_size > 0) {
5452  total_size += 1 +
5453  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5454  static_cast<int32_t>(data_size));
5455  }
5456  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5457  _final_states_cached_byte_size_.store(cached_size,
5458  std::memory_order_relaxed);
5459  total_size += data_size;
5460  }
5461 
5462  // repeated int64 transition_tail = 4;
5463  {
5464  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5465  Int64Size(this->transition_tail_);
5466  if (data_size > 0) {
5467  total_size += 1 +
5468  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5469  static_cast<int32_t>(data_size));
5470  }
5471  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5472  _transition_tail_cached_byte_size_.store(cached_size,
5473  std::memory_order_relaxed);
5474  total_size += data_size;
5475  }
5476 
5477  // repeated int64 transition_head = 5;
5478  {
5479  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5480  Int64Size(this->transition_head_);
5481  if (data_size > 0) {
5482  total_size += 1 +
5483  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5484  static_cast<int32_t>(data_size));
5485  }
5486  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5487  _transition_head_cached_byte_size_.store(cached_size,
5488  std::memory_order_relaxed);
5489  total_size += data_size;
5490  }
5491 
5492  // repeated int64 transition_label = 6;
5493  {
5494  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5495  Int64Size(this->transition_label_);
5496  if (data_size > 0) {
5497  total_size += 1 +
5498  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5499  static_cast<int32_t>(data_size));
5500  }
5501  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5502  _transition_label_cached_byte_size_.store(cached_size,
5503  std::memory_order_relaxed);
5504  total_size += data_size;
5505  }
5506 
5507  // repeated int32 vars = 7;
5508  {
5509  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5510  Int32Size(this->vars_);
5511  if (data_size > 0) {
5512  total_size += 1 +
5513  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5514  static_cast<int32_t>(data_size));
5515  }
5516  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5517  _vars_cached_byte_size_.store(cached_size,
5518  std::memory_order_relaxed);
5519  total_size += data_size;
5520  }
5521 
5522  // int64 starting_state = 2;
5523  if (this->_internal_starting_state() != 0) {
5524  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_starting_state());
5525  }
5526 
5527  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
5528 }
5529 
5530 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AutomatonConstraintProto::_class_data_ = {
5531  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
5532  AutomatonConstraintProto::MergeImpl
5533 };
5534 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AutomatonConstraintProto::GetClassData() const { return &_class_data_; }
5535 
5536 void AutomatonConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
5537  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5538  static_cast<AutomatonConstraintProto *>(to)->MergeFrom(
5539  static_cast<const AutomatonConstraintProto &>(from));
5540 }
5541 
5542 
5544 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AutomatonConstraintProto)
5545  GOOGLE_DCHECK_NE(&from, this);
5546  uint32_t cached_has_bits = 0;
5547  (void) cached_has_bits;
5548 
5549  final_states_.MergeFrom(from.final_states_);
5550  transition_tail_.MergeFrom(from.transition_tail_);
5551  transition_head_.MergeFrom(from.transition_head_);
5552  transition_label_.MergeFrom(from.transition_label_);
5553  vars_.MergeFrom(from.vars_);
5554  if (from._internal_starting_state() != 0) {
5555  _internal_set_starting_state(from._internal_starting_state());
5556  }
5557  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5558 }
5559 
5561 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AutomatonConstraintProto)
5562  if (&from == this) return;
5563  Clear();
5564  MergeFrom(from);
5565 }
5566 
5568  return true;
5569 }
5570 
5571 void AutomatonConstraintProto::InternalSwap(AutomatonConstraintProto* other) {
5572  using std::swap;
5573  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
5574  final_states_.InternalSwap(&other->final_states_);
5575  transition_tail_.InternalSwap(&other->transition_tail_);
5576  transition_head_.InternalSwap(&other->transition_head_);
5577  transition_label_.InternalSwap(&other->transition_label_);
5578  vars_.InternalSwap(&other->vars_);
5579  swap(starting_state_, other->starting_state_);
5580 }
5581 
5582 ::PROTOBUF_NAMESPACE_ID::Metadata AutomatonConstraintProto::GetMetadata() const {
5583  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
5586 }
5587 
5588 // ===================================================================
5589 
5591  public:
5592 };
5593 
5594 ListOfVariablesProto::ListOfVariablesProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
5595  bool is_message_owned)
5596  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
5597  vars_(arena) {
5598  SharedCtor();
5599  if (!is_message_owned) {
5600  RegisterArenaDtor(arena);
5601  }
5602  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ListOfVariablesProto)
5603 }
5605  : ::PROTOBUF_NAMESPACE_ID::Message(),
5606  vars_(from.vars_) {
5607  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5608  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ListOfVariablesProto)
5609 }
5610 
5611 inline void ListOfVariablesProto::SharedCtor() {
5612 }
5613 
5615  // @@protoc_insertion_point(destructor:operations_research.sat.ListOfVariablesProto)
5616  if (GetArenaForAllocation() != nullptr) return;
5617  SharedDtor();
5618  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5619 }
5620 
5621 inline void ListOfVariablesProto::SharedDtor() {
5622  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
5623 }
5624 
5625 void ListOfVariablesProto::ArenaDtor(void* object) {
5626  ListOfVariablesProto* _this = reinterpret_cast< ListOfVariablesProto* >(object);
5627  (void)_this;
5628 }
5629 void ListOfVariablesProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5630 }
5631 void ListOfVariablesProto::SetCachedSize(int size) const {
5632  _cached_size_.Set(size);
5633 }
5634 
5636 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ListOfVariablesProto)
5637  uint32_t cached_has_bits = 0;
5638  // Prevent compiler warnings about cached_has_bits being unused
5639  (void) cached_has_bits;
5640 
5641  vars_.Clear();
5642  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5643 }
5644 
5645 const char* ListOfVariablesProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5646 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5647  while (!ctx->Done(&ptr)) {
5648  uint32_t tag;
5649  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5650  switch (tag >> 3) {
5651  // repeated int32 vars = 1;
5652  case 1:
5653  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
5654  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5655  CHK_(ptr);
5656  } else if (static_cast<uint8_t>(tag) == 8) {
5657  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
5658  CHK_(ptr);
5659  } else
5660  goto handle_unusual;
5661  continue;
5662  default:
5663  goto handle_unusual;
5664  } // switch
5665  handle_unusual:
5666  if ((tag == 0) || ((tag & 7) == 4)) {
5667  CHK_(ptr);
5668  ctx->SetLastTag(tag);
5669  goto message_done;
5670  }
5671  ptr = UnknownFieldParse(
5672  tag,
5673  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5674  ptr, ctx);
5675  CHK_(ptr != nullptr);
5676  } // while
5677 message_done:
5678  return ptr;
5679 failure:
5680  ptr = nullptr;
5681  goto message_done;
5682 #undef CHK_
5683 }
5684 
5686  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5687  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ListOfVariablesProto)
5688  uint32_t cached_has_bits = 0;
5689  (void) cached_has_bits;
5690 
5691  // repeated int32 vars = 1;
5692  {
5693  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5694  if (byte_size > 0) {
5695  target = stream->WriteInt32Packed(
5696  1, _internal_vars(), byte_size, target);
5697  }
5698  }
5699 
5700  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5701  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5702  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5703  }
5704  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ListOfVariablesProto)
5705  return target;
5706 }
5707 
5709 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ListOfVariablesProto)
5710  size_t total_size = 0;
5711 
5712  uint32_t cached_has_bits = 0;
5713  // Prevent compiler warnings about cached_has_bits being unused
5714  (void) cached_has_bits;
5715 
5716  // repeated int32 vars = 1;
5717  {
5718  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5719  Int32Size(this->vars_);
5720  if (data_size > 0) {
5721  total_size += 1 +
5722  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5723  static_cast<int32_t>(data_size));
5724  }
5725  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5726  _vars_cached_byte_size_.store(cached_size,
5727  std::memory_order_relaxed);
5728  total_size += data_size;
5729  }
5730 
5731  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
5732 }
5733 
5734 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ListOfVariablesProto::_class_data_ = {
5735  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
5736  ListOfVariablesProto::MergeImpl
5737 };
5738 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ListOfVariablesProto::GetClassData() const { return &_class_data_; }
5739 
5740 void ListOfVariablesProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
5741  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5742  static_cast<ListOfVariablesProto *>(to)->MergeFrom(
5743  static_cast<const ListOfVariablesProto &>(from));
5744 }
5745 
5746 
5748 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ListOfVariablesProto)
5749  GOOGLE_DCHECK_NE(&from, this);
5750  uint32_t cached_has_bits = 0;
5751  (void) cached_has_bits;
5752 
5753  vars_.MergeFrom(from.vars_);
5754  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5755 }
5756 
5758 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ListOfVariablesProto)
5759  if (&from == this) return;
5760  Clear();
5761  MergeFrom(from);
5762 }
5763 
5765  return true;
5766 }
5767 
5768 void ListOfVariablesProto::InternalSwap(ListOfVariablesProto* other) {
5769  using std::swap;
5770  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
5771  vars_.InternalSwap(&other->vars_);
5772 }
5773 
5774 ::PROTOBUF_NAMESPACE_ID::Metadata ListOfVariablesProto::GetMetadata() const {
5775  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
5778 }
5779 
5780 // ===================================================================
5781 
5783  public:
5784  static const ::operations_research::sat::BoolArgumentProto& bool_or(const ConstraintProto* msg);
5785  static const ::operations_research::sat::BoolArgumentProto& bool_and(const ConstraintProto* msg);
5786  static const ::operations_research::sat::BoolArgumentProto& at_most_one(const ConstraintProto* msg);
5787  static const ::operations_research::sat::BoolArgumentProto& exactly_one(const ConstraintProto* msg);
5788  static const ::operations_research::sat::BoolArgumentProto& bool_xor(const ConstraintProto* msg);
5789  static const ::operations_research::sat::LinearArgumentProto& int_div(const ConstraintProto* msg);
5790  static const ::operations_research::sat::LinearArgumentProto& int_mod(const ConstraintProto* msg);
5791  static const ::operations_research::sat::LinearArgumentProto& int_prod(const ConstraintProto* msg);
5792  static const ::operations_research::sat::LinearArgumentProto& lin_max(const ConstraintProto* msg);
5793  static const ::operations_research::sat::LinearConstraintProto& linear(const ConstraintProto* msg);
5794  static const ::operations_research::sat::AllDifferentConstraintProto& all_diff(const ConstraintProto* msg);
5795  static const ::operations_research::sat::ElementConstraintProto& element(const ConstraintProto* msg);
5796  static const ::operations_research::sat::CircuitConstraintProto& circuit(const ConstraintProto* msg);
5797  static const ::operations_research::sat::RoutesConstraintProto& routes(const ConstraintProto* msg);
5798  static const ::operations_research::sat::TableConstraintProto& table(const ConstraintProto* msg);
5799  static const ::operations_research::sat::AutomatonConstraintProto& automaton(const ConstraintProto* msg);
5800  static const ::operations_research::sat::InverseConstraintProto& inverse(const ConstraintProto* msg);
5801  static const ::operations_research::sat::ReservoirConstraintProto& reservoir(const ConstraintProto* msg);
5802  static const ::operations_research::sat::IntervalConstraintProto& interval(const ConstraintProto* msg);
5803  static const ::operations_research::sat::NoOverlapConstraintProto& no_overlap(const ConstraintProto* msg);
5804  static const ::operations_research::sat::NoOverlap2DConstraintProto& no_overlap_2d(const ConstraintProto* msg);
5805  static const ::operations_research::sat::CumulativeConstraintProto& cumulative(const ConstraintProto* msg);
5806  static const ::operations_research::sat::ListOfVariablesProto& dummy_constraint(const ConstraintProto* msg);
5807 };
5808 
5809 const ::operations_research::sat::BoolArgumentProto&
5811  return *msg->constraint_.bool_or_;
5812 }
5813 const ::operations_research::sat::BoolArgumentProto&
5815  return *msg->constraint_.bool_and_;
5816 }
5817 const ::operations_research::sat::BoolArgumentProto&
5819  return *msg->constraint_.at_most_one_;
5820 }
5821 const ::operations_research::sat::BoolArgumentProto&
5823  return *msg->constraint_.exactly_one_;
5824 }
5825 const ::operations_research::sat::BoolArgumentProto&
5827  return *msg->constraint_.bool_xor_;
5828 }
5829 const ::operations_research::sat::LinearArgumentProto&
5831  return *msg->constraint_.int_div_;
5832 }
5833 const ::operations_research::sat::LinearArgumentProto&
5835  return *msg->constraint_.int_mod_;
5836 }
5837 const ::operations_research::sat::LinearArgumentProto&
5839  return *msg->constraint_.int_prod_;
5840 }
5841 const ::operations_research::sat::LinearArgumentProto&
5843  return *msg->constraint_.lin_max_;
5844 }
5845 const ::operations_research::sat::LinearConstraintProto&
5847  return *msg->constraint_.linear_;
5848 }
5849 const ::operations_research::sat::AllDifferentConstraintProto&
5851  return *msg->constraint_.all_diff_;
5852 }
5853 const ::operations_research::sat::ElementConstraintProto&
5855  return *msg->constraint_.element_;
5856 }
5857 const ::operations_research::sat::CircuitConstraintProto&
5859  return *msg->constraint_.circuit_;
5860 }
5861 const ::operations_research::sat::RoutesConstraintProto&
5863  return *msg->constraint_.routes_;
5864 }
5865 const ::operations_research::sat::TableConstraintProto&
5867  return *msg->constraint_.table_;
5868 }
5869 const ::operations_research::sat::AutomatonConstraintProto&
5871  return *msg->constraint_.automaton_;
5872 }
5873 const ::operations_research::sat::InverseConstraintProto&
5875  return *msg->constraint_.inverse_;
5876 }
5877 const ::operations_research::sat::ReservoirConstraintProto&
5879  return *msg->constraint_.reservoir_;
5880 }
5881 const ::operations_research::sat::IntervalConstraintProto&
5883  return *msg->constraint_.interval_;
5884 }
5885 const ::operations_research::sat::NoOverlapConstraintProto&
5887  return *msg->constraint_.no_overlap_;
5888 }
5889 const ::operations_research::sat::NoOverlap2DConstraintProto&
5891  return *msg->constraint_.no_overlap_2d_;
5892 }
5893 const ::operations_research::sat::CumulativeConstraintProto&
5895  return *msg->constraint_.cumulative_;
5896 }
5897 const ::operations_research::sat::ListOfVariablesProto&
5899  return *msg->constraint_.dummy_constraint_;
5900 }
5902  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
5903  clear_constraint();
5904  if (bool_or) {
5905  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
5906  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(bool_or);
5907  if (message_arena != submessage_arena) {
5908  bool_or = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
5909  message_arena, bool_or, submessage_arena);
5910  }
5911  set_has_bool_or();
5912  constraint_.bool_or_ = bool_or;
5913  }
5914  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_or)
5915 }
5917  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
5918  clear_constraint();
5919  if (bool_and) {
5920  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
5921  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(bool_and);
5922  if (message_arena != submessage_arena) {
5923  bool_and = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
5924  message_arena, bool_and, submessage_arena);
5925  }
5926  set_has_bool_and();
5927  constraint_.bool_and_ = bool_and;
5928  }
5929  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_and)
5930 }
5932  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
5933  clear_constraint();
5934  if (at_most_one) {
5935  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
5936  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(at_most_one);
5937  if (message_arena != submessage_arena) {
5938  at_most_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
5939  message_arena, at_most_one, submessage_arena);
5940  }
5941  set_has_at_most_one();
5942  constraint_.at_most_one_ = at_most_one;
5943  }
5944  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.at_most_one)
5945 }
5947  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
5948  clear_constraint();
5949  if (exactly_one) {
5950  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
5951  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(exactly_one);
5952  if (message_arena != submessage_arena) {
5953  exactly_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
5954  message_arena, exactly_one, submessage_arena);
5955  }
5956  set_has_exactly_one();
5957  constraint_.exactly_one_ = exactly_one;
5958  }
5959  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.exactly_one)
5960 }
5962  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
5963  clear_constraint();
5964  if (bool_xor) {
5965  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
5966  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(bool_xor);
5967  if (message_arena != submessage_arena) {
5968  bool_xor = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
5969  message_arena, bool_xor, submessage_arena);
5970  }
5971  set_has_bool_xor();
5972  constraint_.bool_xor_ = bool_xor;
5973  }
5974  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_xor)
5975 }
5977  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
5978  clear_constraint();
5979  if (int_div) {
5980  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
5981  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::LinearArgumentProto>::GetOwningArena(int_div);
5982  if (message_arena != submessage_arena) {
5983  int_div = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
5984  message_arena, int_div, submessage_arena);
5985  }
5986  set_has_int_div();
5987  constraint_.int_div_ = int_div;
5988  }
5989  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_div)
5990 }
5992  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
5993  clear_constraint();
5994  if (int_mod) {
5995  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
5996  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::LinearArgumentProto>::GetOwningArena(int_mod);
5997  if (message_arena != submessage_arena) {
5998  int_mod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
5999  message_arena, int_mod, submessage_arena);
6000  }
6001  set_has_int_mod();
6002  constraint_.int_mod_ = int_mod;
6003  }
6004  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_mod)
6005 }
6007  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6008  clear_constraint();
6009  if (int_prod) {
6010  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6011  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::LinearArgumentProto>::GetOwningArena(int_prod);
6012  if (message_arena != submessage_arena) {
6013  int_prod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6014  message_arena, int_prod, submessage_arena);
6015  }
6016  set_has_int_prod();
6017  constraint_.int_prod_ = int_prod;
6018  }
6019  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_prod)
6020 }
6022  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6023  clear_constraint();
6024  if (lin_max) {
6025  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6026  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::LinearArgumentProto>::GetOwningArena(lin_max);
6027  if (message_arena != submessage_arena) {
6028  lin_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6029  message_arena, lin_max, submessage_arena);
6030  }
6031  set_has_lin_max();
6032  constraint_.lin_max_ = lin_max;
6033  }
6034  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_max)
6035 }
6037  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6038  clear_constraint();
6039  if (linear) {
6040  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6041  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::LinearConstraintProto>::GetOwningArena(linear);
6042  if (message_arena != submessage_arena) {
6043  linear = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6044  message_arena, linear, submessage_arena);
6045  }
6046  set_has_linear();
6047  constraint_.linear_ = linear;
6048  }
6049  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.linear)
6050 }
6052  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6053  clear_constraint();
6054  if (all_diff) {
6055  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6056  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::AllDifferentConstraintProto>::GetOwningArena(all_diff);
6057  if (message_arena != submessage_arena) {
6058  all_diff = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6059  message_arena, all_diff, submessage_arena);
6060  }
6061  set_has_all_diff();
6062  constraint_.all_diff_ = all_diff;
6063  }
6064  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.all_diff)
6065 }
6067  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6068  clear_constraint();
6069  if (element) {
6070  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6071  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::ElementConstraintProto>::GetOwningArena(element);
6072  if (message_arena != submessage_arena) {
6073  element = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6074  message_arena, element, submessage_arena);
6075  }
6076  set_has_element();
6077  constraint_.element_ = element;
6078  }
6079  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.element)
6080 }
6082  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6083  clear_constraint();
6084  if (circuit) {
6085  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6086  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::CircuitConstraintProto>::GetOwningArena(circuit);
6087  if (message_arena != submessage_arena) {
6088  circuit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6089  message_arena, circuit, submessage_arena);
6090  }
6091  set_has_circuit();
6092  constraint_.circuit_ = circuit;
6093  }
6094  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.circuit)
6095 }
6097  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6098  clear_constraint();
6099  if (routes) {
6100  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6101  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::RoutesConstraintProto>::GetOwningArena(routes);
6102  if (message_arena != submessage_arena) {
6103  routes = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6104  message_arena, routes, submessage_arena);
6105  }
6106  set_has_routes();
6107  constraint_.routes_ = routes;
6108  }
6109  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.routes)
6110 }
6112  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6113  clear_constraint();
6114  if (table) {
6115  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6116  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::TableConstraintProto>::GetOwningArena(table);
6117  if (message_arena != submessage_arena) {
6118  table = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6119  message_arena, table, submessage_arena);
6120  }
6121  set_has_table();
6122  constraint_.table_ = table;
6123  }
6124  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.table)
6125 }
6127  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6128  clear_constraint();
6129  if (automaton) {
6130  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6131  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::AutomatonConstraintProto>::GetOwningArena(automaton);
6132  if (message_arena != submessage_arena) {
6133  automaton = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6134  message_arena, automaton, submessage_arena);
6135  }
6136  set_has_automaton();
6137  constraint_.automaton_ = automaton;
6138  }
6139  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.automaton)
6140 }
6142  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6143  clear_constraint();
6144  if (inverse) {
6145  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6146  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::InverseConstraintProto>::GetOwningArena(inverse);
6147  if (message_arena != submessage_arena) {
6148  inverse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6149  message_arena, inverse, submessage_arena);
6150  }
6151  set_has_inverse();
6152  constraint_.inverse_ = inverse;
6153  }
6154  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.inverse)
6155 }
6157  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6158  clear_constraint();
6159  if (reservoir) {
6160  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6161  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::ReservoirConstraintProto>::GetOwningArena(reservoir);
6162  if (message_arena != submessage_arena) {
6163  reservoir = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6164  message_arena, reservoir, submessage_arena);
6165  }
6166  set_has_reservoir();
6167  constraint_.reservoir_ = reservoir;
6168  }
6169  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.reservoir)
6170 }
6172  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6173  clear_constraint();
6174  if (interval) {
6175  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6176  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::IntervalConstraintProto>::GetOwningArena(interval);
6177  if (message_arena != submessage_arena) {
6178  interval = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6179  message_arena, interval, submessage_arena);
6180  }
6181  set_has_interval();
6182  constraint_.interval_ = interval;
6183  }
6184  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.interval)
6185 }
6187  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6188  clear_constraint();
6189  if (no_overlap) {
6190  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6191  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::NoOverlapConstraintProto>::GetOwningArena(no_overlap);
6192  if (message_arena != submessage_arena) {
6193  no_overlap = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6194  message_arena, no_overlap, submessage_arena);
6195  }
6196  set_has_no_overlap();
6197  constraint_.no_overlap_ = no_overlap;
6198  }
6199  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap)
6200 }
6202  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6203  clear_constraint();
6204  if (no_overlap_2d) {
6205  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6206  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::NoOverlap2DConstraintProto>::GetOwningArena(no_overlap_2d);
6207  if (message_arena != submessage_arena) {
6208  no_overlap_2d = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6209  message_arena, no_overlap_2d, submessage_arena);
6210  }
6211  set_has_no_overlap_2d();
6212  constraint_.no_overlap_2d_ = no_overlap_2d;
6213  }
6214  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap_2d)
6215 }
6217  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6218  clear_constraint();
6219  if (cumulative) {
6220  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6221  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::CumulativeConstraintProto>::GetOwningArena(cumulative);
6222  if (message_arena != submessage_arena) {
6223  cumulative = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6224  message_arena, cumulative, submessage_arena);
6225  }
6226  set_has_cumulative();
6227  constraint_.cumulative_ = cumulative;
6228  }
6229  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.cumulative)
6230 }
6232  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6233  clear_constraint();
6234  if (dummy_constraint) {
6235  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6236  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::ListOfVariablesProto>::GetOwningArena(dummy_constraint);
6237  if (message_arena != submessage_arena) {
6238  dummy_constraint = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6239  message_arena, dummy_constraint, submessage_arena);
6240  }
6241  set_has_dummy_constraint();
6242  constraint_.dummy_constraint_ = dummy_constraint;
6243  }
6244  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.dummy_constraint)
6245 }
6246 ConstraintProto::ConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
6247  bool is_message_owned)
6248  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
6249  enforcement_literal_(arena) {
6250  SharedCtor();
6251  if (!is_message_owned) {
6252  RegisterArenaDtor(arena);
6253  }
6254  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ConstraintProto)
6255 }
6257  : ::PROTOBUF_NAMESPACE_ID::Message(),
6258  enforcement_literal_(from.enforcement_literal_) {
6259  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
6260  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6261  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
6262  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
6263  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
6264  if (!from._internal_name().empty()) {
6265  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
6266  GetArenaForAllocation());
6267  }
6268  clear_has_constraint();
6269  switch (from.constraint_case()) {
6270  case kBoolOr: {
6271  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
6272  break;
6273  }
6274  case kBoolAnd: {
6275  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
6276  break;
6277  }
6278  case kAtMostOne: {
6279  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
6280  break;
6281  }
6282  case kExactlyOne: {
6283  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
6284  break;
6285  }
6286  case kBoolXor: {
6287  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
6288  break;
6289  }
6290  case kIntDiv: {
6291  _internal_mutable_int_div()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_int_div());
6292  break;
6293  }
6294  case kIntMod: {
6295  _internal_mutable_int_mod()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_int_mod());
6296  break;
6297  }
6298  case kIntProd: {
6299  _internal_mutable_int_prod()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_int_prod());
6300  break;
6301  }
6302  case kLinMax: {
6303  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
6304  break;
6305  }
6306  case kLinear: {
6307  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
6308  break;
6309  }
6310  case kAllDiff: {
6311  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
6312  break;
6313  }
6314  case kElement: {
6315  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
6316  break;
6317  }
6318  case kCircuit: {
6319  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
6320  break;
6321  }
6322  case kRoutes: {
6323  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
6324  break;
6325  }
6326  case kTable: {
6327  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
6328  break;
6329  }
6330  case kAutomaton: {
6331  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
6332  break;
6333  }
6334  case kInverse: {
6335  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
6336  break;
6337  }
6338  case kReservoir: {
6339  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
6340  break;
6341  }
6342  case kInterval: {
6343  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
6344  break;
6345  }
6346  case kNoOverlap: {
6347  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
6348  break;
6349  }
6350  case kNoOverlap2D: {
6351  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
6352  break;
6353  }
6354  case kCumulative: {
6355  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
6356  break;
6357  }
6358  case kDummyConstraint: {
6359  _internal_mutable_dummy_constraint()->::operations_research::sat::ListOfVariablesProto::MergeFrom(from._internal_dummy_constraint());
6360  break;
6361  }
6362  case CONSTRAINT_NOT_SET: {
6363  break;
6364  }
6365  }
6366  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ConstraintProto)
6367 }
6368 
6369 inline void ConstraintProto::SharedCtor() {
6370 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6371 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
6372  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
6373 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
6374 clear_has_constraint();
6375 }
6376 
6378  // @@protoc_insertion_point(destructor:operations_research.sat.ConstraintProto)
6379  if (GetArenaForAllocation() != nullptr) return;
6380  SharedDtor();
6381  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6382 }
6383 
6384 inline void ConstraintProto::SharedDtor() {
6385  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
6386  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6387  if (has_constraint()) {
6388  clear_constraint();
6389  }
6390 }
6391 
6392 void ConstraintProto::ArenaDtor(void* object) {
6393  ConstraintProto* _this = reinterpret_cast< ConstraintProto* >(object);
6394  (void)_this;
6395 }
6396 void ConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
6397 }
6398 void ConstraintProto::SetCachedSize(int size) const {
6399  _cached_size_.Set(size);
6400 }
6401 
6403 // @@protoc_insertion_point(one_of_clear_start:operations_research.sat.ConstraintProto)
6404  switch (constraint_case()) {
6405  case kBoolOr: {
6406  if (GetArenaForAllocation() == nullptr) {
6407  delete constraint_.bool_or_;
6408  }
6409  break;
6410  }
6411  case kBoolAnd: {
6412  if (GetArenaForAllocation() == nullptr) {
6413  delete constraint_.bool_and_;
6414  }
6415  break;
6416  }
6417  case kAtMostOne: {
6418  if (GetArenaForAllocation() == nullptr) {
6419  delete constraint_.at_most_one_;
6420  }
6421  break;
6422  }
6423  case kExactlyOne: {
6424  if (GetArenaForAllocation() == nullptr) {
6425  delete constraint_.exactly_one_;
6426  }
6427  break;
6428  }
6429  case kBoolXor: {
6430  if (GetArenaForAllocation() == nullptr) {
6431  delete constraint_.bool_xor_;
6432  }
6433  break;
6434  }
6435  case kIntDiv: {
6436  if (GetArenaForAllocation() == nullptr) {
6437  delete constraint_.int_div_;
6438  }
6439  break;
6440  }
6441  case kIntMod: {
6442  if (GetArenaForAllocation() == nullptr) {
6443  delete constraint_.int_mod_;
6444  }
6445  break;
6446  }
6447  case kIntProd: {
6448  if (GetArenaForAllocation() == nullptr) {
6449  delete constraint_.int_prod_;
6450  }
6451  break;
6452  }
6453  case kLinMax: {
6454  if (GetArenaForAllocation() == nullptr) {
6455  delete constraint_.lin_max_;
6456  }
6457  break;
6458  }
6459  case kLinear: {
6460  if (GetArenaForAllocation() == nullptr) {
6461  delete constraint_.linear_;
6462  }
6463  break;
6464  }
6465  case kAllDiff: {
6466  if (GetArenaForAllocation() == nullptr) {
6467  delete constraint_.all_diff_;
6468  }
6469  break;
6470  }
6471  case kElement: {
6472  if (GetArenaForAllocation() == nullptr) {
6473  delete constraint_.element_;
6474  }
6475  break;
6476  }
6477  case kCircuit: {
6478  if (GetArenaForAllocation() == nullptr) {
6479  delete constraint_.circuit_;
6480  }
6481  break;
6482  }
6483  case kRoutes: {
6484  if (GetArenaForAllocation() == nullptr) {
6485  delete constraint_.routes_;
6486  }
6487  break;
6488  }
6489  case kTable: {
6490  if (GetArenaForAllocation() == nullptr) {
6491  delete constraint_.table_;
6492  }
6493  break;
6494  }
6495  case kAutomaton: {
6496  if (GetArenaForAllocation() == nullptr) {
6497  delete constraint_.automaton_;
6498  }
6499  break;
6500  }
6501  case kInverse: {
6502  if (GetArenaForAllocation() == nullptr) {
6503  delete constraint_.inverse_;
6504  }
6505  break;
6506  }
6507  case kReservoir: {
6508  if (GetArenaForAllocation() == nullptr) {
6509  delete constraint_.reservoir_;
6510  }
6511  break;
6512  }
6513  case kInterval: {
6514  if (GetArenaForAllocation() == nullptr) {
6515  delete constraint_.interval_;
6516  }
6517  break;
6518  }
6519  case kNoOverlap: {
6520  if (GetArenaForAllocation() == nullptr) {
6521  delete constraint_.no_overlap_;
6522  }
6523  break;
6524  }
6525  case kNoOverlap2D: {
6526  if (GetArenaForAllocation() == nullptr) {
6527  delete constraint_.no_overlap_2d_;
6528  }
6529  break;
6530  }
6531  case kCumulative: {
6532  if (GetArenaForAllocation() == nullptr) {
6533  delete constraint_.cumulative_;
6534  }
6535  break;
6536  }
6537  case kDummyConstraint: {
6538  if (GetArenaForAllocation() == nullptr) {
6539  delete constraint_.dummy_constraint_;
6540  }
6541  break;
6542  }
6543  case CONSTRAINT_NOT_SET: {
6544  break;
6545  }
6546  }
6547  _oneof_case_[0] = CONSTRAINT_NOT_SET;
6548 }
6549 
6550 
6552 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ConstraintProto)
6553  uint32_t cached_has_bits = 0;
6554  // Prevent compiler warnings about cached_has_bits being unused
6555  (void) cached_has_bits;
6556 
6557  enforcement_literal_.Clear();
6558  name_.ClearToEmpty();
6559  clear_constraint();
6560  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6561 }
6562 
6563 const char* ConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
6564 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
6565  while (!ctx->Done(&ptr)) {
6566  uint32_t tag;
6567  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
6568  switch (tag >> 3) {
6569  // string name = 1;
6570  case 1:
6571  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
6572  auto str = _internal_mutable_name();
6573  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
6574  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.ConstraintProto.name"));
6575  CHK_(ptr);
6576  } else
6577  goto handle_unusual;
6578  continue;
6579  // repeated int32 enforcement_literal = 2;
6580  case 2:
6581  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
6582  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_enforcement_literal(), ptr, ctx);
6583  CHK_(ptr);
6584  } else if (static_cast<uint8_t>(tag) == 16) {
6585  _internal_add_enforcement_literal(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
6586  CHK_(ptr);
6587  } else
6588  goto handle_unusual;
6589  continue;
6590  // .operations_research.sat.BoolArgumentProto bool_or = 3;
6591  case 3:
6592  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
6593  ptr = ctx->ParseMessage(_internal_mutable_bool_or(), ptr);
6594  CHK_(ptr);
6595  } else
6596  goto handle_unusual;
6597  continue;
6598  // .operations_research.sat.BoolArgumentProto bool_and = 4;
6599  case 4:
6600  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
6601  ptr = ctx->ParseMessage(_internal_mutable_bool_and(), ptr);
6602  CHK_(ptr);
6603  } else
6604  goto handle_unusual;
6605  continue;
6606  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
6607  case 5:
6608  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
6609  ptr = ctx->ParseMessage(_internal_mutable_bool_xor(), ptr);
6610  CHK_(ptr);
6611  } else
6612  goto handle_unusual;
6613  continue;
6614  // .operations_research.sat.LinearArgumentProto int_div = 7;
6615  case 7:
6616  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
6617  ptr = ctx->ParseMessage(_internal_mutable_int_div(), ptr);
6618  CHK_(ptr);
6619  } else
6620  goto handle_unusual;
6621  continue;
6622  // .operations_research.sat.LinearArgumentProto int_mod = 8;
6623  case 8:
6624  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
6625  ptr = ctx->ParseMessage(_internal_mutable_int_mod(), ptr);
6626  CHK_(ptr);
6627  } else
6628  goto handle_unusual;
6629  continue;
6630  // .operations_research.sat.LinearArgumentProto int_prod = 11;
6631  case 11:
6632  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
6633  ptr = ctx->ParseMessage(_internal_mutable_int_prod(), ptr);
6634  CHK_(ptr);
6635  } else
6636  goto handle_unusual;
6637  continue;
6638  // .operations_research.sat.LinearConstraintProto linear = 12;
6639  case 12:
6640  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
6641  ptr = ctx->ParseMessage(_internal_mutable_linear(), ptr);
6642  CHK_(ptr);
6643  } else
6644  goto handle_unusual;
6645  continue;
6646  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
6647  case 13:
6648  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
6649  ptr = ctx->ParseMessage(_internal_mutable_all_diff(), ptr);
6650  CHK_(ptr);
6651  } else
6652  goto handle_unusual;
6653  continue;
6654  // .operations_research.sat.ElementConstraintProto element = 14;
6655  case 14:
6656  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
6657  ptr = ctx->ParseMessage(_internal_mutable_element(), ptr);
6658  CHK_(ptr);
6659  } else
6660  goto handle_unusual;
6661  continue;
6662  // .operations_research.sat.CircuitConstraintProto circuit = 15;
6663  case 15:
6664  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
6665  ptr = ctx->ParseMessage(_internal_mutable_circuit(), ptr);
6666  CHK_(ptr);
6667  } else
6668  goto handle_unusual;
6669  continue;
6670  // .operations_research.sat.TableConstraintProto table = 16;
6671  case 16:
6672  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
6673  ptr = ctx->ParseMessage(_internal_mutable_table(), ptr);
6674  CHK_(ptr);
6675  } else
6676  goto handle_unusual;
6677  continue;
6678  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
6679  case 17:
6680  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
6681  ptr = ctx->ParseMessage(_internal_mutable_automaton(), ptr);
6682  CHK_(ptr);
6683  } else
6684  goto handle_unusual;
6685  continue;
6686  // .operations_research.sat.InverseConstraintProto inverse = 18;
6687  case 18:
6688  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
6689  ptr = ctx->ParseMessage(_internal_mutable_inverse(), ptr);
6690  CHK_(ptr);
6691  } else
6692  goto handle_unusual;
6693  continue;
6694  // .operations_research.sat.IntervalConstraintProto interval = 19;
6695  case 19:
6696  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 154)) {
6697  ptr = ctx->ParseMessage(_internal_mutable_interval(), ptr);
6698  CHK_(ptr);
6699  } else
6700  goto handle_unusual;
6701  continue;
6702  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
6703  case 20:
6704  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
6705  ptr = ctx->ParseMessage(_internal_mutable_no_overlap(), ptr);
6706  CHK_(ptr);
6707  } else
6708  goto handle_unusual;
6709  continue;
6710  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
6711  case 21:
6712  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
6713  ptr = ctx->ParseMessage(_internal_mutable_no_overlap_2d(), ptr);
6714  CHK_(ptr);
6715  } else
6716  goto handle_unusual;
6717  continue;
6718  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
6719  case 22:
6720  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
6721  ptr = ctx->ParseMessage(_internal_mutable_cumulative(), ptr);
6722  CHK_(ptr);
6723  } else
6724  goto handle_unusual;
6725  continue;
6726  // .operations_research.sat.RoutesConstraintProto routes = 23;
6727  case 23:
6728  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
6729  ptr = ctx->ParseMessage(_internal_mutable_routes(), ptr);
6730  CHK_(ptr);
6731  } else
6732  goto handle_unusual;
6733  continue;
6734  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
6735  case 24:
6736  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 194)) {
6737  ptr = ctx->ParseMessage(_internal_mutable_reservoir(), ptr);
6738  CHK_(ptr);
6739  } else
6740  goto handle_unusual;
6741  continue;
6742  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
6743  case 26:
6744  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 210)) {
6745  ptr = ctx->ParseMessage(_internal_mutable_at_most_one(), ptr);
6746  CHK_(ptr);
6747  } else
6748  goto handle_unusual;
6749  continue;
6750  // .operations_research.sat.LinearArgumentProto lin_max = 27;
6751  case 27:
6752  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 218)) {
6753  ptr = ctx->ParseMessage(_internal_mutable_lin_max(), ptr);
6754  CHK_(ptr);
6755  } else
6756  goto handle_unusual;
6757  continue;
6758  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
6759  case 29:
6760  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 234)) {
6761  ptr = ctx->ParseMessage(_internal_mutable_exactly_one(), ptr);
6762  CHK_(ptr);
6763  } else
6764  goto handle_unusual;
6765  continue;
6766  // .operations_research.sat.ListOfVariablesProto dummy_constraint = 30;
6767  case 30:
6768  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 242)) {
6769  ptr = ctx->ParseMessage(_internal_mutable_dummy_constraint(), ptr);
6770  CHK_(ptr);
6771  } else
6772  goto handle_unusual;
6773  continue;
6774  default:
6775  goto handle_unusual;
6776  } // switch
6777  handle_unusual:
6778  if ((tag == 0) || ((tag & 7) == 4)) {
6779  CHK_(ptr);
6780  ctx->SetLastTag(tag);
6781  goto message_done;
6782  }
6783  ptr = UnknownFieldParse(
6784  tag,
6785  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
6786  ptr, ctx);
6787  CHK_(ptr != nullptr);
6788  } // while
6789 message_done:
6790  return ptr;
6791 failure:
6792  ptr = nullptr;
6793  goto message_done;
6794 #undef CHK_
6795 }
6796 
6798  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
6799  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ConstraintProto)
6800  uint32_t cached_has_bits = 0;
6801  (void) cached_has_bits;
6802 
6803  // string name = 1;
6804  if (!this->_internal_name().empty()) {
6805  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
6806  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
6807  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
6808  "operations_research.sat.ConstraintProto.name");
6809  target = stream->WriteStringMaybeAliased(
6810  1, this->_internal_name(), target);
6811  }
6812 
6813  // repeated int32 enforcement_literal = 2;
6814  {
6815  int byte_size = _enforcement_literal_cached_byte_size_.load(std::memory_order_relaxed);
6816  if (byte_size > 0) {
6817  target = stream->WriteInt32Packed(
6818  2, _internal_enforcement_literal(), byte_size, target);
6819  }
6820  }
6821 
6822  // .operations_research.sat.BoolArgumentProto bool_or = 3;
6823  if (_internal_has_bool_or()) {
6824  target = stream->EnsureSpace(target);
6825  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6826  InternalWriteMessage(
6827  3, _Internal::bool_or(this), target, stream);
6828  }
6829 
6830  // .operations_research.sat.BoolArgumentProto bool_and = 4;
6831  if (_internal_has_bool_and()) {
6832  target = stream->EnsureSpace(target);
6833  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6834  InternalWriteMessage(
6835  4, _Internal::bool_and(this), target, stream);
6836  }
6837 
6838  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
6839  if (_internal_has_bool_xor()) {
6840  target = stream->EnsureSpace(target);
6841  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6842  InternalWriteMessage(
6843  5, _Internal::bool_xor(this), target, stream);
6844  }
6845 
6846  // .operations_research.sat.LinearArgumentProto int_div = 7;
6847  if (_internal_has_int_div()) {
6848  target = stream->EnsureSpace(target);
6849  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6850  InternalWriteMessage(
6851  7, _Internal::int_div(this), target, stream);
6852  }
6853 
6854  // .operations_research.sat.LinearArgumentProto int_mod = 8;
6855  if (_internal_has_int_mod()) {
6856  target = stream->EnsureSpace(target);
6857  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6858  InternalWriteMessage(
6859  8, _Internal::int_mod(this), target, stream);
6860  }
6861 
6862  // .operations_research.sat.LinearArgumentProto int_prod = 11;
6863  if (_internal_has_int_prod()) {
6864  target = stream->EnsureSpace(target);
6865  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6866  InternalWriteMessage(
6867  11, _Internal::int_prod(this), target, stream);
6868  }
6869 
6870  // .operations_research.sat.LinearConstraintProto linear = 12;
6871  if (_internal_has_linear()) {
6872  target = stream->EnsureSpace(target);
6873  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6874  InternalWriteMessage(
6875  12, _Internal::linear(this), target, stream);
6876  }
6877 
6878  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
6879  if (_internal_has_all_diff()) {
6880  target = stream->EnsureSpace(target);
6881  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6882  InternalWriteMessage(
6883  13, _Internal::all_diff(this), target, stream);
6884  }
6885 
6886  // .operations_research.sat.ElementConstraintProto element = 14;
6887  if (_internal_has_element()) {
6888  target = stream->EnsureSpace(target);
6889  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6890  InternalWriteMessage(
6891  14, _Internal::element(this), target, stream);
6892  }
6893 
6894  // .operations_research.sat.CircuitConstraintProto circuit = 15;
6895  if (_internal_has_circuit()) {
6896  target = stream->EnsureSpace(target);
6897  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6898  InternalWriteMessage(
6899  15, _Internal::circuit(this), target, stream);
6900  }
6901 
6902  // .operations_research.sat.TableConstraintProto table = 16;
6903  if (_internal_has_table()) {
6904  target = stream->EnsureSpace(target);
6905  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6906  InternalWriteMessage(
6907  16, _Internal::table(this), target, stream);
6908  }
6909 
6910  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
6911  if (_internal_has_automaton()) {
6912  target = stream->EnsureSpace(target);
6913  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6914  InternalWriteMessage(
6915  17, _Internal::automaton(this), target, stream);
6916  }
6917 
6918  // .operations_research.sat.InverseConstraintProto inverse = 18;
6919  if (_internal_has_inverse()) {
6920  target = stream->EnsureSpace(target);
6921  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6922  InternalWriteMessage(
6923  18, _Internal::inverse(this), target, stream);
6924  }
6925 
6926  // .operations_research.sat.IntervalConstraintProto interval = 19;
6927  if (_internal_has_interval()) {
6928  target = stream->EnsureSpace(target);
6929  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6930  InternalWriteMessage(
6931  19, _Internal::interval(this), target, stream);
6932  }
6933 
6934  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
6935  if (_internal_has_no_overlap()) {
6936  target = stream->EnsureSpace(target);
6937  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6938  InternalWriteMessage(
6939  20, _Internal::no_overlap(this), target, stream);
6940  }
6941 
6942  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
6943  if (_internal_has_no_overlap_2d()) {
6944  target = stream->EnsureSpace(target);
6945  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6946  InternalWriteMessage(
6947  21, _Internal::no_overlap_2d(this), target, stream);
6948  }
6949 
6950  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
6951  if (_internal_has_cumulative()) {
6952  target = stream->EnsureSpace(target);
6953  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6954  InternalWriteMessage(
6955  22, _Internal::cumulative(this), target, stream);
6956  }
6957 
6958  // .operations_research.sat.RoutesConstraintProto routes = 23;
6959  if (_internal_has_routes()) {
6960  target = stream->EnsureSpace(target);
6961  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6962  InternalWriteMessage(
6963  23, _Internal::routes(this), target, stream);
6964  }
6965 
6966  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
6967  if (_internal_has_reservoir()) {
6968  target = stream->EnsureSpace(target);
6969  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6970  InternalWriteMessage(
6971  24, _Internal::reservoir(this), target, stream);
6972  }
6973 
6974  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
6975  if (_internal_has_at_most_one()) {
6976  target = stream->EnsureSpace(target);
6977  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6978  InternalWriteMessage(
6979  26, _Internal::at_most_one(this), target, stream);
6980  }
6981 
6982  // .operations_research.sat.LinearArgumentProto lin_max = 27;
6983  if (_internal_has_lin_max()) {
6984  target = stream->EnsureSpace(target);
6985  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6986  InternalWriteMessage(
6987  27, _Internal::lin_max(this), target, stream);
6988  }
6989 
6990  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
6991  if (_internal_has_exactly_one()) {
6992  target = stream->EnsureSpace(target);
6993  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6994  InternalWriteMessage(
6995  29, _Internal::exactly_one(this), target, stream);
6996  }
6997 
6998  // .operations_research.sat.ListOfVariablesProto dummy_constraint = 30;
6999  if (_internal_has_dummy_constraint()) {
7000  target = stream->EnsureSpace(target);
7001  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7002  InternalWriteMessage(
7003  30, _Internal::dummy_constraint(this), target, stream);
7004  }
7005 
7006  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7007  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7008  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7009  }
7010  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ConstraintProto)
7011  return target;
7012 }
7013 
7015 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ConstraintProto)
7016  size_t total_size = 0;
7017 
7018  uint32_t cached_has_bits = 0;
7019  // Prevent compiler warnings about cached_has_bits being unused
7020  (void) cached_has_bits;
7021 
7022  // repeated int32 enforcement_literal = 2;
7023  {
7024  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7025  Int32Size(this->enforcement_literal_);
7026  if (data_size > 0) {
7027  total_size += 1 +
7028  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7029  static_cast<int32_t>(data_size));
7030  }
7031  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7032  _enforcement_literal_cached_byte_size_.store(cached_size,
7033  std::memory_order_relaxed);
7034  total_size += data_size;
7035  }
7036 
7037  // string name = 1;
7038  if (!this->_internal_name().empty()) {
7039  total_size += 1 +
7040  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
7041  this->_internal_name());
7042  }
7043 
7044  switch (constraint_case()) {
7045  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7046  case kBoolOr: {
7047  total_size += 1 +
7048  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7049  *constraint_.bool_or_);
7050  break;
7051  }
7052  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7053  case kBoolAnd: {
7054  total_size += 1 +
7055  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7056  *constraint_.bool_and_);
7057  break;
7058  }
7059  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7060  case kAtMostOne: {
7061  total_size += 2 +
7062  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7063  *constraint_.at_most_one_);
7064  break;
7065  }
7066  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7067  case kExactlyOne: {
7068  total_size += 2 +
7069  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7070  *constraint_.exactly_one_);
7071  break;
7072  }
7073  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7074  case kBoolXor: {
7075  total_size += 1 +
7076  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7077  *constraint_.bool_xor_);
7078  break;
7079  }
7080  // .operations_research.sat.LinearArgumentProto int_div = 7;
7081  case kIntDiv: {
7082  total_size += 1 +
7083  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7084  *constraint_.int_div_);
7085  break;
7086  }
7087  // .operations_research.sat.LinearArgumentProto int_mod = 8;
7088  case kIntMod: {
7089  total_size += 1 +
7090  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7091  *constraint_.int_mod_);
7092  break;
7093  }
7094  // .operations_research.sat.LinearArgumentProto int_prod = 11;
7095  case kIntProd: {
7096  total_size += 1 +
7097  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7098  *constraint_.int_prod_);
7099  break;
7100  }
7101  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7102  case kLinMax: {
7103  total_size += 2 +
7104  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7105  *constraint_.lin_max_);
7106  break;
7107  }
7108  // .operations_research.sat.LinearConstraintProto linear = 12;
7109  case kLinear: {
7110  total_size += 1 +
7111  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7112  *constraint_.linear_);
7113  break;
7114  }
7115  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7116  case kAllDiff: {
7117  total_size += 1 +
7118  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7119  *constraint_.all_diff_);
7120  break;
7121  }
7122  // .operations_research.sat.ElementConstraintProto element = 14;
7123  case kElement: {
7124  total_size += 1 +
7125  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7126  *constraint_.element_);
7127  break;
7128  }
7129  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7130  case kCircuit: {
7131  total_size += 1 +
7132  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7133  *constraint_.circuit_);
7134  break;
7135  }
7136  // .operations_research.sat.RoutesConstraintProto routes = 23;
7137  case kRoutes: {
7138  total_size += 2 +
7139  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7140  *constraint_.routes_);
7141  break;
7142  }
7143  // .operations_research.sat.TableConstraintProto table = 16;
7144  case kTable: {
7145  total_size += 2 +
7146  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7147  *constraint_.table_);
7148  break;
7149  }
7150  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7151  case kAutomaton: {
7152  total_size += 2 +
7153  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7154  *constraint_.automaton_);
7155  break;
7156  }
7157  // .operations_research.sat.InverseConstraintProto inverse = 18;
7158  case kInverse: {
7159  total_size += 2 +
7160  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7161  *constraint_.inverse_);
7162  break;
7163  }
7164  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7165  case kReservoir: {
7166  total_size += 2 +
7167  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7168  *constraint_.reservoir_);
7169  break;
7170  }
7171  // .operations_research.sat.IntervalConstraintProto interval = 19;
7172  case kInterval: {
7173  total_size += 2 +
7174  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7175  *constraint_.interval_);
7176  break;
7177  }
7178  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7179  case kNoOverlap: {
7180  total_size += 2 +
7181  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7182  *constraint_.no_overlap_);
7183  break;
7184  }
7185  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7186  case kNoOverlap2D: {
7187  total_size += 2 +
7188  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7189  *constraint_.no_overlap_2d_);
7190  break;
7191  }
7192  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7193  case kCumulative: {
7194  total_size += 2 +
7195  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7196  *constraint_.cumulative_);
7197  break;
7198  }
7199  // .operations_research.sat.ListOfVariablesProto dummy_constraint = 30;
7200  case kDummyConstraint: {
7201  total_size += 2 +
7202  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7203  *constraint_.dummy_constraint_);
7204  break;
7205  }
7206  case CONSTRAINT_NOT_SET: {
7207  break;
7208  }
7209  }
7210  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
7211 }
7212 
7213 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ConstraintProto::_class_data_ = {
7214  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
7215  ConstraintProto::MergeImpl
7216 };
7217 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ConstraintProto::GetClassData() const { return &_class_data_; }
7218 
7219 void ConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
7220  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7221  static_cast<ConstraintProto *>(to)->MergeFrom(
7222  static_cast<const ConstraintProto &>(from));
7223 }
7224 
7225 
7227 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ConstraintProto)
7228  GOOGLE_DCHECK_NE(&from, this);
7229  uint32_t cached_has_bits = 0;
7230  (void) cached_has_bits;
7231 
7232  enforcement_literal_.MergeFrom(from.enforcement_literal_);
7233  if (!from._internal_name().empty()) {
7234  _internal_set_name(from._internal_name());
7235  }
7236  switch (from.constraint_case()) {
7237  case kBoolOr: {
7238  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
7239  break;
7240  }
7241  case kBoolAnd: {
7242  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
7243  break;
7244  }
7245  case kAtMostOne: {
7246  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
7247  break;
7248  }
7249  case kExactlyOne: {
7250  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
7251  break;
7252  }
7253  case kBoolXor: {
7254  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
7255  break;
7256  }
7257  case kIntDiv: {
7258  _internal_mutable_int_div()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_int_div());
7259  break;
7260  }
7261  case kIntMod: {
7262  _internal_mutable_int_mod()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_int_mod());
7263  break;
7264  }
7265  case kIntProd: {
7266  _internal_mutable_int_prod()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_int_prod());
7267  break;
7268  }
7269  case kLinMax: {
7270  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
7271  break;
7272  }
7273  case kLinear: {
7274  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
7275  break;
7276  }
7277  case kAllDiff: {
7278  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
7279  break;
7280  }
7281  case kElement: {
7282  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
7283  break;
7284  }
7285  case kCircuit: {
7286  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
7287  break;
7288  }
7289  case kRoutes: {
7290  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
7291  break;
7292  }
7293  case kTable: {
7294  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
7295  break;
7296  }
7297  case kAutomaton: {
7298  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
7299  break;
7300  }
7301  case kInverse: {
7302  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
7303  break;
7304  }
7305  case kReservoir: {
7306  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
7307  break;
7308  }
7309  case kInterval: {
7310  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
7311  break;
7312  }
7313  case kNoOverlap: {
7314  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
7315  break;
7316  }
7317  case kNoOverlap2D: {
7318  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
7319  break;
7320  }
7321  case kCumulative: {
7322  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
7323  break;
7324  }
7325  case kDummyConstraint: {
7326  _internal_mutable_dummy_constraint()->::operations_research::sat::ListOfVariablesProto::MergeFrom(from._internal_dummy_constraint());
7327  break;
7328  }
7329  case CONSTRAINT_NOT_SET: {
7330  break;
7331  }
7332  }
7333  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7334 }
7335 
7337 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ConstraintProto)
7338  if (&from == this) return;
7339  Clear();
7340  MergeFrom(from);
7341 }
7342 
7344  return true;
7345 }
7346 
7347 void ConstraintProto::InternalSwap(ConstraintProto* other) {
7348  using std::swap;
7349  auto* lhs_arena = GetArenaForAllocation();
7350  auto* rhs_arena = other->GetArenaForAllocation();
7351  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
7352  enforcement_literal_.InternalSwap(&other->enforcement_literal_);
7353  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
7354  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
7355  &name_, lhs_arena,
7356  &other->name_, rhs_arena
7357  );
7358  swap(constraint_, other->constraint_);
7359  swap(_oneof_case_[0], other->_oneof_case_[0]);
7360 }
7361 
7362 ::PROTOBUF_NAMESPACE_ID::Metadata ConstraintProto::GetMetadata() const {
7363  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
7366 }
7367 
7368 // ===================================================================
7369 
7371  public:
7372 };
7373 
7374 CpObjectiveProto::CpObjectiveProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
7375  bool is_message_owned)
7376  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
7377  vars_(arena),
7378  coeffs_(arena),
7379  domain_(arena) {
7380  SharedCtor();
7381  if (!is_message_owned) {
7382  RegisterArenaDtor(arena);
7383  }
7384  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpObjectiveProto)
7385 }
7387  : ::PROTOBUF_NAMESPACE_ID::Message(),
7388  vars_(from.vars_),
7389  coeffs_(from.coeffs_),
7390  domain_(from.domain_) {
7391  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7392  ::memcpy(&offset_, &from.offset_,
7393  static_cast<size_t>(reinterpret_cast<char*>(&scaling_was_exact_) -
7394  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_was_exact_));
7395  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpObjectiveProto)
7396 }
7397 
7398 inline void CpObjectiveProto::SharedCtor() {
7399 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
7400  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
7401  0, static_cast<size_t>(reinterpret_cast<char*>(&scaling_was_exact_) -
7402  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_was_exact_));
7403 }
7404 
7406  // @@protoc_insertion_point(destructor:operations_research.sat.CpObjectiveProto)
7407  if (GetArenaForAllocation() != nullptr) return;
7408  SharedDtor();
7409  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7410 }
7411 
7412 inline void CpObjectiveProto::SharedDtor() {
7413  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
7414 }
7415 
7416 void CpObjectiveProto::ArenaDtor(void* object) {
7417  CpObjectiveProto* _this = reinterpret_cast< CpObjectiveProto* >(object);
7418  (void)_this;
7419 }
7420 void CpObjectiveProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
7421 }
7422 void CpObjectiveProto::SetCachedSize(int size) const {
7423  _cached_size_.Set(size);
7424 }
7425 
7427 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpObjectiveProto)
7428  uint32_t cached_has_bits = 0;
7429  // Prevent compiler warnings about cached_has_bits being unused
7430  (void) cached_has_bits;
7431 
7432  vars_.Clear();
7433  coeffs_.Clear();
7434  domain_.Clear();
7435  ::memset(&offset_, 0, static_cast<size_t>(
7436  reinterpret_cast<char*>(&scaling_was_exact_) -
7437  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_was_exact_));
7438  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7439 }
7440 
7441 const char* CpObjectiveProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
7442 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
7443  while (!ctx->Done(&ptr)) {
7444  uint32_t tag;
7445  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
7446  switch (tag >> 3) {
7447  // repeated int32 vars = 1;
7448  case 1:
7449  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
7450  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
7451  CHK_(ptr);
7452  } else if (static_cast<uint8_t>(tag) == 8) {
7453  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
7454  CHK_(ptr);
7455  } else
7456  goto handle_unusual;
7457  continue;
7458  // double offset = 2;
7459  case 2:
7460  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 17)) {
7461  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7462  ptr += sizeof(double);
7463  } else
7464  goto handle_unusual;
7465  continue;
7466  // double scaling_factor = 3;
7467  case 3:
7468  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 25)) {
7469  scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7470  ptr += sizeof(double);
7471  } else
7472  goto handle_unusual;
7473  continue;
7474  // repeated int64 coeffs = 4;
7475  case 4:
7476  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
7477  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
7478  CHK_(ptr);
7479  } else if (static_cast<uint8_t>(tag) == 32) {
7480  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7481  CHK_(ptr);
7482  } else
7483  goto handle_unusual;
7484  continue;
7485  // repeated int64 domain = 5;
7486  case 5:
7487  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
7488  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
7489  CHK_(ptr);
7490  } else if (static_cast<uint8_t>(tag) == 40) {
7491  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7492  CHK_(ptr);
7493  } else
7494  goto handle_unusual;
7495  continue;
7496  // bool scaling_was_exact = 6;
7497  case 6:
7498  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
7499  scaling_was_exact_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
7500  CHK_(ptr);
7501  } else
7502  goto handle_unusual;
7503  continue;
7504  // int64 integer_offset = 7;
7505  case 7:
7506  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
7507  integer_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
7508  CHK_(ptr);
7509  } else
7510  goto handle_unusual;
7511  continue;
7512  // int64 integer_scaling_factor = 8;
7513  case 8:
7514  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
7515  integer_scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
7516  CHK_(ptr);
7517  } else
7518  goto handle_unusual;
7519  continue;
7520  default:
7521  goto handle_unusual;
7522  } // switch
7523  handle_unusual:
7524  if ((tag == 0) || ((tag & 7) == 4)) {
7525  CHK_(ptr);
7526  ctx->SetLastTag(tag);
7527  goto message_done;
7528  }
7529  ptr = UnknownFieldParse(
7530  tag,
7531  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7532  ptr, ctx);
7533  CHK_(ptr != nullptr);
7534  } // while
7535 message_done:
7536  return ptr;
7537 failure:
7538  ptr = nullptr;
7539  goto message_done;
7540 #undef CHK_
7541 }
7542 
7544  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7545  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpObjectiveProto)
7546  uint32_t cached_has_bits = 0;
7547  (void) cached_has_bits;
7548 
7549  // repeated int32 vars = 1;
7550  {
7551  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
7552  if (byte_size > 0) {
7553  target = stream->WriteInt32Packed(
7554  1, _internal_vars(), byte_size, target);
7555  }
7556  }
7557 
7558  // double offset = 2;
7559  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
7560  double tmp_offset = this->_internal_offset();
7561  uint64_t raw_offset;
7562  memcpy(&raw_offset, &tmp_offset, sizeof(tmp_offset));
7563  if (raw_offset != 0) {
7564  target = stream->EnsureSpace(target);
7565  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(2, this->_internal_offset(), target);
7566  }
7567 
7568  // double scaling_factor = 3;
7569  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
7570  double tmp_scaling_factor = this->_internal_scaling_factor();
7571  uint64_t raw_scaling_factor;
7572  memcpy(&raw_scaling_factor, &tmp_scaling_factor, sizeof(tmp_scaling_factor));
7573  if (raw_scaling_factor != 0) {
7574  target = stream->EnsureSpace(target);
7575  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_scaling_factor(), target);
7576  }
7577 
7578  // repeated int64 coeffs = 4;
7579  {
7580  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
7581  if (byte_size > 0) {
7582  target = stream->WriteInt64Packed(
7583  4, _internal_coeffs(), byte_size, target);
7584  }
7585  }
7586 
7587  // repeated int64 domain = 5;
7588  {
7589  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
7590  if (byte_size > 0) {
7591  target = stream->WriteInt64Packed(
7592  5, _internal_domain(), byte_size, target);
7593  }
7594  }
7595 
7596  // bool scaling_was_exact = 6;
7597  if (this->_internal_scaling_was_exact() != 0) {
7598  target = stream->EnsureSpace(target);
7599  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_scaling_was_exact(), target);
7600  }
7601 
7602  // int64 integer_offset = 7;
7603  if (this->_internal_integer_offset() != 0) {
7604  target = stream->EnsureSpace(target);
7605  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(7, this->_internal_integer_offset(), target);
7606  }
7607 
7608  // int64 integer_scaling_factor = 8;
7609  if (this->_internal_integer_scaling_factor() != 0) {
7610  target = stream->EnsureSpace(target);
7611  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(8, this->_internal_integer_scaling_factor(), target);
7612  }
7613 
7614  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7615  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7616  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7617  }
7618  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpObjectiveProto)
7619  return target;
7620 }
7621 
7623 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpObjectiveProto)
7624  size_t total_size = 0;
7625 
7626  uint32_t cached_has_bits = 0;
7627  // Prevent compiler warnings about cached_has_bits being unused
7628  (void) cached_has_bits;
7629 
7630  // repeated int32 vars = 1;
7631  {
7632  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7633  Int32Size(this->vars_);
7634  if (data_size > 0) {
7635  total_size += 1 +
7636  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7637  static_cast<int32_t>(data_size));
7638  }
7639  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7640  _vars_cached_byte_size_.store(cached_size,
7641  std::memory_order_relaxed);
7642  total_size += data_size;
7643  }
7644 
7645  // repeated int64 coeffs = 4;
7646  {
7647  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7648  Int64Size(this->coeffs_);
7649  if (data_size > 0) {
7650  total_size += 1 +
7651  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7652  static_cast<int32_t>(data_size));
7653  }
7654  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7655  _coeffs_cached_byte_size_.store(cached_size,
7656  std::memory_order_relaxed);
7657  total_size += data_size;
7658  }
7659 
7660  // repeated int64 domain = 5;
7661  {
7662  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7663  Int64Size(this->domain_);
7664  if (data_size > 0) {
7665  total_size += 1 +
7666  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7667  static_cast<int32_t>(data_size));
7668  }
7669  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7670  _domain_cached_byte_size_.store(cached_size,
7671  std::memory_order_relaxed);
7672  total_size += data_size;
7673  }
7674 
7675  // double offset = 2;
7676  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
7677  double tmp_offset = this->_internal_offset();
7678  uint64_t raw_offset;
7679  memcpy(&raw_offset, &tmp_offset, sizeof(tmp_offset));
7680  if (raw_offset != 0) {
7681  total_size += 1 + 8;
7682  }
7683 
7684  // double scaling_factor = 3;
7685  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
7686  double tmp_scaling_factor = this->_internal_scaling_factor();
7687  uint64_t raw_scaling_factor;
7688  memcpy(&raw_scaling_factor, &tmp_scaling_factor, sizeof(tmp_scaling_factor));
7689  if (raw_scaling_factor != 0) {
7690  total_size += 1 + 8;
7691  }
7692 
7693  // int64 integer_offset = 7;
7694  if (this->_internal_integer_offset() != 0) {
7695  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_integer_offset());
7696  }
7697 
7698  // int64 integer_scaling_factor = 8;
7699  if (this->_internal_integer_scaling_factor() != 0) {
7700  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_integer_scaling_factor());
7701  }
7702 
7703  // bool scaling_was_exact = 6;
7704  if (this->_internal_scaling_was_exact() != 0) {
7705  total_size += 1 + 1;
7706  }
7707 
7708  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
7709 }
7710 
7711 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CpObjectiveProto::_class_data_ = {
7712  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
7713  CpObjectiveProto::MergeImpl
7714 };
7715 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CpObjectiveProto::GetClassData() const { return &_class_data_; }
7716 
7717 void CpObjectiveProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
7718  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7719  static_cast<CpObjectiveProto *>(to)->MergeFrom(
7720  static_cast<const CpObjectiveProto &>(from));
7721 }
7722 
7723 
7725 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpObjectiveProto)
7726  GOOGLE_DCHECK_NE(&from, this);
7727  uint32_t cached_has_bits = 0;
7728  (void) cached_has_bits;
7729 
7730  vars_.MergeFrom(from.vars_);
7731  coeffs_.MergeFrom(from.coeffs_);
7732  domain_.MergeFrom(from.domain_);
7733  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
7734  double tmp_offset = from._internal_offset();
7735  uint64_t raw_offset;
7736  memcpy(&raw_offset, &tmp_offset, sizeof(tmp_offset));
7737  if (raw_offset != 0) {
7738  _internal_set_offset(from._internal_offset());
7739  }
7740  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
7741  double tmp_scaling_factor = from._internal_scaling_factor();
7742  uint64_t raw_scaling_factor;
7743  memcpy(&raw_scaling_factor, &tmp_scaling_factor, sizeof(tmp_scaling_factor));
7744  if (raw_scaling_factor != 0) {
7745  _internal_set_scaling_factor(from._internal_scaling_factor());
7746  }
7747  if (from._internal_integer_offset() != 0) {
7748  _internal_set_integer_offset(from._internal_integer_offset());
7749  }
7750  if (from._internal_integer_scaling_factor() != 0) {
7751  _internal_set_integer_scaling_factor(from._internal_integer_scaling_factor());
7752  }
7753  if (from._internal_scaling_was_exact() != 0) {
7754  _internal_set_scaling_was_exact(from._internal_scaling_was_exact());
7755  }
7756  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7757 }
7758 
7760 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpObjectiveProto)
7761  if (&from == this) return;
7762  Clear();
7763  MergeFrom(from);
7764 }
7765 
7767  return true;
7768 }
7769 
7770 void CpObjectiveProto::InternalSwap(CpObjectiveProto* other) {
7771  using std::swap;
7772  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
7773  vars_.InternalSwap(&other->vars_);
7774  coeffs_.InternalSwap(&other->coeffs_);
7775  domain_.InternalSwap(&other->domain_);
7776  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
7777  PROTOBUF_FIELD_OFFSET(CpObjectiveProto, scaling_was_exact_)
7778  + sizeof(CpObjectiveProto::scaling_was_exact_)
7779  - PROTOBUF_FIELD_OFFSET(CpObjectiveProto, offset_)>(
7780  reinterpret_cast<char*>(&offset_),
7781  reinterpret_cast<char*>(&other->offset_));
7782 }
7783 
7784 ::PROTOBUF_NAMESPACE_ID::Metadata CpObjectiveProto::GetMetadata() const {
7785  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
7788 }
7789 
7790 // ===================================================================
7791 
7793  public:
7794 };
7795 
7796 FloatObjectiveProto::FloatObjectiveProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
7797  bool is_message_owned)
7798  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
7799  vars_(arena),
7800  coeffs_(arena) {
7801  SharedCtor();
7802  if (!is_message_owned) {
7803  RegisterArenaDtor(arena);
7804  }
7805  // @@protoc_insertion_point(arena_constructor:operations_research.sat.FloatObjectiveProto)
7806 }
7808  : ::PROTOBUF_NAMESPACE_ID::Message(),
7809  vars_(from.vars_),
7810  coeffs_(from.coeffs_) {
7811  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7812  ::memcpy(&offset_, &from.offset_,
7813  static_cast<size_t>(reinterpret_cast<char*>(&maximize_) -
7814  reinterpret_cast<char*>(&offset_)) + sizeof(maximize_));
7815  // @@protoc_insertion_point(copy_constructor:operations_research.sat.FloatObjectiveProto)
7816 }
7817 
7818 inline void FloatObjectiveProto::SharedCtor() {
7819 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
7820  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
7821  0, static_cast<size_t>(reinterpret_cast<char*>(&maximize_) -
7822  reinterpret_cast<char*>(&offset_)) + sizeof(maximize_));
7823 }
7824 
7826  // @@protoc_insertion_point(destructor:operations_research.sat.FloatObjectiveProto)
7827  if (GetArenaForAllocation() != nullptr) return;
7828  SharedDtor();
7829  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7830 }
7831 
7832 inline void FloatObjectiveProto::SharedDtor() {
7833  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
7834 }
7835 
7836 void FloatObjectiveProto::ArenaDtor(void* object) {
7837  FloatObjectiveProto* _this = reinterpret_cast< FloatObjectiveProto* >(object);
7838  (void)_this;
7839 }
7840 void FloatObjectiveProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
7841 }
7842 void FloatObjectiveProto::SetCachedSize(int size) const {
7843  _cached_size_.Set(size);
7844 }
7845 
7847 // @@protoc_insertion_point(message_clear_start:operations_research.sat.FloatObjectiveProto)
7848  uint32_t cached_has_bits = 0;
7849  // Prevent compiler warnings about cached_has_bits being unused
7850  (void) cached_has_bits;
7851 
7852  vars_.Clear();
7853  coeffs_.Clear();
7854  ::memset(&offset_, 0, static_cast<size_t>(
7855  reinterpret_cast<char*>(&maximize_) -
7856  reinterpret_cast<char*>(&offset_)) + sizeof(maximize_));
7857  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7858 }
7859 
7860 const char* FloatObjectiveProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
7861 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
7862  while (!ctx->Done(&ptr)) {
7863  uint32_t tag;
7864  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
7865  switch (tag >> 3) {
7866  // repeated int32 vars = 1;
7867  case 1:
7868  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
7869  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
7870  CHK_(ptr);
7871  } else if (static_cast<uint8_t>(tag) == 8) {
7872  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
7873  CHK_(ptr);
7874  } else
7875  goto handle_unusual;
7876  continue;
7877  // repeated double coeffs = 2;
7878  case 2:
7879  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
7880  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedDoubleParser(_internal_mutable_coeffs(), ptr, ctx);
7881  CHK_(ptr);
7882  } else if (static_cast<uint8_t>(tag) == 17) {
7883  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
7884  ptr += sizeof(double);
7885  } else
7886  goto handle_unusual;
7887  continue;
7888  // double offset = 3;
7889  case 3:
7890  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 25)) {
7891  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7892  ptr += sizeof(double);
7893  } else
7894  goto handle_unusual;
7895  continue;
7896  // bool maximize = 4;
7897  case 4:
7898  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
7899  maximize_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
7900  CHK_(ptr);
7901  } else
7902  goto handle_unusual;
7903  continue;
7904  default:
7905  goto handle_unusual;
7906  } // switch
7907  handle_unusual:
7908  if ((tag == 0) || ((tag & 7) == 4)) {
7909  CHK_(ptr);
7910  ctx->SetLastTag(tag);
7911  goto message_done;
7912  }
7913  ptr = UnknownFieldParse(
7914  tag,
7915  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7916  ptr, ctx);
7917  CHK_(ptr != nullptr);
7918  } // while
7919 message_done:
7920  return ptr;
7921 failure:
7922  ptr = nullptr;
7923  goto message_done;
7924 #undef CHK_
7925 }
7926 
7928  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7929  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.FloatObjectiveProto)
7930  uint32_t cached_has_bits = 0;
7931  (void) cached_has_bits;
7932 
7933  // repeated int32 vars = 1;
7934  {
7935  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
7936  if (byte_size > 0) {
7937  target = stream->WriteInt32Packed(
7938  1, _internal_vars(), byte_size, target);
7939  }
7940  }
7941 
7942  // repeated double coeffs = 2;
7943  if (this->_internal_coeffs_size() > 0) {
7944  target = stream->WriteFixedPacked(2, _internal_coeffs(), target);
7945  }
7946 
7947  // double offset = 3;
7948  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
7949  double tmp_offset = this->_internal_offset();
7950  uint64_t raw_offset;
7951  memcpy(&raw_offset, &tmp_offset, sizeof(tmp_offset));
7952  if (raw_offset != 0) {
7953  target = stream->EnsureSpace(target);
7954  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_offset(), target);
7955  }
7956 
7957  // bool maximize = 4;
7958  if (this->_internal_maximize() != 0) {
7959  target = stream->EnsureSpace(target);
7960  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_maximize(), target);
7961  }
7962 
7963  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7964  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7965  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7966  }
7967  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.FloatObjectiveProto)
7968  return target;
7969 }
7970 
7972 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.FloatObjectiveProto)
7973  size_t total_size = 0;
7974 
7975  uint32_t cached_has_bits = 0;
7976  // Prevent compiler warnings about cached_has_bits being unused
7977  (void) cached_has_bits;
7978 
7979  // repeated int32 vars = 1;
7980  {
7981  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7982  Int32Size(this->vars_);
7983  if (data_size > 0) {
7984  total_size += 1 +
7985  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7986  static_cast<int32_t>(data_size));
7987  }
7988  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7989  _vars_cached_byte_size_.store(cached_size,
7990  std::memory_order_relaxed);
7991  total_size += data_size;
7992  }
7993 
7994  // repeated double coeffs = 2;
7995  {
7996  unsigned int count = static_cast<unsigned int>(this->_internal_coeffs_size());
7997  size_t data_size = 8UL * count;
7998  if (data_size > 0) {
7999  total_size += 1 +
8000  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8001  static_cast<int32_t>(data_size));
8002  }
8003  total_size += data_size;
8004  }
8005 
8006  // double offset = 3;
8007  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
8008  double tmp_offset = this->_internal_offset();
8009  uint64_t raw_offset;
8010  memcpy(&raw_offset, &tmp_offset, sizeof(tmp_offset));
8011  if (raw_offset != 0) {
8012  total_size += 1 + 8;
8013  }
8014 
8015  // bool maximize = 4;
8016  if (this->_internal_maximize() != 0) {
8017  total_size += 1 + 1;
8018  }
8019 
8020  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
8021 }
8022 
8023 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FloatObjectiveProto::_class_data_ = {
8024  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
8025  FloatObjectiveProto::MergeImpl
8026 };
8027 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FloatObjectiveProto::GetClassData() const { return &_class_data_; }
8028 
8029 void FloatObjectiveProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
8030  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8031  static_cast<FloatObjectiveProto *>(to)->MergeFrom(
8032  static_cast<const FloatObjectiveProto &>(from));
8033 }
8034 
8035 
8037 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.FloatObjectiveProto)
8038  GOOGLE_DCHECK_NE(&from, this);
8039  uint32_t cached_has_bits = 0;
8040  (void) cached_has_bits;
8041 
8042  vars_.MergeFrom(from.vars_);
8043  coeffs_.MergeFrom(from.coeffs_);
8044  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
8045  double tmp_offset = from._internal_offset();
8046  uint64_t raw_offset;
8047  memcpy(&raw_offset, &tmp_offset, sizeof(tmp_offset));
8048  if (raw_offset != 0) {
8049  _internal_set_offset(from._internal_offset());
8050  }
8051  if (from._internal_maximize() != 0) {
8052  _internal_set_maximize(from._internal_maximize());
8053  }
8054  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8055 }
8056 
8058 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.FloatObjectiveProto)
8059  if (&from == this) return;
8060  Clear();
8061  MergeFrom(from);
8062 }
8063 
8065  return true;
8066 }
8067 
8068 void FloatObjectiveProto::InternalSwap(FloatObjectiveProto* other) {
8069  using std::swap;
8070  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
8071  vars_.InternalSwap(&other->vars_);
8072  coeffs_.InternalSwap(&other->coeffs_);
8073  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8074  PROTOBUF_FIELD_OFFSET(FloatObjectiveProto, maximize_)
8075  + sizeof(FloatObjectiveProto::maximize_)
8076  - PROTOBUF_FIELD_OFFSET(FloatObjectiveProto, offset_)>(
8077  reinterpret_cast<char*>(&offset_),
8078  reinterpret_cast<char*>(&other->offset_));
8079 }
8080 
8081 ::PROTOBUF_NAMESPACE_ID::Metadata FloatObjectiveProto::GetMetadata() const {
8082  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
8085 }
8086 
8087 // ===================================================================
8088 
8090  public:
8091 };
8092 
8094  bool is_message_owned)
8095  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
8096  SharedCtor();
8097  if (!is_message_owned) {
8098  RegisterArenaDtor(arena);
8099  }
8100  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8101 }
8103  : ::PROTOBUF_NAMESPACE_ID::Message() {
8104  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8105  ::memcpy(&offset_, &from.offset_,
8106  static_cast<size_t>(reinterpret_cast<char*>(&index_) -
8107  reinterpret_cast<char*>(&offset_)) + sizeof(index_));
8108  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8109 }
8110 
8111 inline void DecisionStrategyProto_AffineTransformation::SharedCtor() {
8112 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8113  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
8114  0, static_cast<size_t>(reinterpret_cast<char*>(&index_) -
8115  reinterpret_cast<char*>(&offset_)) + sizeof(index_));
8116 }
8117 
8119  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8120  if (GetArenaForAllocation() != nullptr) return;
8121  SharedDtor();
8122  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8123 }
8124 
8125 inline void DecisionStrategyProto_AffineTransformation::SharedDtor() {
8126  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
8127 }
8128 
8129 void DecisionStrategyProto_AffineTransformation::ArenaDtor(void* object) {
8130  DecisionStrategyProto_AffineTransformation* _this = reinterpret_cast< DecisionStrategyProto_AffineTransformation* >(object);
8131  (void)_this;
8132 }
8133 void DecisionStrategyProto_AffineTransformation::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8134 }
8135 void DecisionStrategyProto_AffineTransformation::SetCachedSize(int size) const {
8136  _cached_size_.Set(size);
8137 }
8138 
8140 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8141  uint32_t cached_has_bits = 0;
8142  // Prevent compiler warnings about cached_has_bits being unused
8143  (void) cached_has_bits;
8144 
8145  ::memset(&offset_, 0, static_cast<size_t>(
8146  reinterpret_cast<char*>(&index_) -
8147  reinterpret_cast<char*>(&offset_)) + sizeof(index_));
8148  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8149 }
8150 
8151 const char* DecisionStrategyProto_AffineTransformation::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8152 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8153  while (!ctx->Done(&ptr)) {
8154  uint32_t tag;
8155  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8156  switch (tag >> 3) {
8157  // int32 index = 1;
8158  case 1:
8159  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
8160  index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
8161  CHK_(ptr);
8162  } else
8163  goto handle_unusual;
8164  continue;
8165  // int64 offset = 2;
8166  case 2:
8167  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
8168  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8169  CHK_(ptr);
8170  } else
8171  goto handle_unusual;
8172  continue;
8173  // int64 positive_coeff = 3;
8174  case 3:
8175  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
8176  positive_coeff_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8177  CHK_(ptr);
8178  } else
8179  goto handle_unusual;
8180  continue;
8181  default:
8182  goto handle_unusual;
8183  } // switch
8184  handle_unusual:
8185  if ((tag == 0) || ((tag & 7) == 4)) {
8186  CHK_(ptr);
8187  ctx->SetLastTag(tag);
8188  goto message_done;
8189  }
8190  ptr = UnknownFieldParse(
8191  tag,
8192  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8193  ptr, ctx);
8194  CHK_(ptr != nullptr);
8195  } // while
8196 message_done:
8197  return ptr;
8198 failure:
8199  ptr = nullptr;
8200  goto message_done;
8201 #undef CHK_
8202 }
8203 
8205  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8206  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8207  uint32_t cached_has_bits = 0;
8208  (void) cached_has_bits;
8209 
8210  // int32 index = 1;
8211  if (this->_internal_index() != 0) {
8212  target = stream->EnsureSpace(target);
8213  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
8214  }
8215 
8216  // int64 offset = 2;
8217  if (this->_internal_offset() != 0) {
8218  target = stream->EnsureSpace(target);
8219  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_offset(), target);
8220  }
8221 
8222  // int64 positive_coeff = 3;
8223  if (this->_internal_positive_coeff() != 0) {
8224  target = stream->EnsureSpace(target);
8225  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_positive_coeff(), target);
8226  }
8227 
8228  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8229  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8230  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8231  }
8232  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8233  return target;
8234 }
8235 
8237 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8238  size_t total_size = 0;
8239 
8240  uint32_t cached_has_bits = 0;
8241  // Prevent compiler warnings about cached_has_bits being unused
8242  (void) cached_has_bits;
8243 
8244  // int64 offset = 2;
8245  if (this->_internal_offset() != 0) {
8246  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_offset());
8247  }
8248 
8249  // int64 positive_coeff = 3;
8250  if (this->_internal_positive_coeff() != 0) {
8251  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_positive_coeff());
8252  }
8253 
8254  // int32 index = 1;
8255  if (this->_internal_index() != 0) {
8256  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_index());
8257  }
8258 
8259  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
8260 }
8261 
8262 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DecisionStrategyProto_AffineTransformation::_class_data_ = {
8263  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
8264  DecisionStrategyProto_AffineTransformation::MergeImpl
8265 };
8266 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DecisionStrategyProto_AffineTransformation::GetClassData() const { return &_class_data_; }
8267 
8268 void DecisionStrategyProto_AffineTransformation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
8269  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8270  static_cast<DecisionStrategyProto_AffineTransformation *>(to)->MergeFrom(
8271  static_cast<const DecisionStrategyProto_AffineTransformation &>(from));
8272 }
8273 
8274 
8276 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8277  GOOGLE_DCHECK_NE(&from, this);
8278  uint32_t cached_has_bits = 0;
8279  (void) cached_has_bits;
8280 
8281  if (from._internal_offset() != 0) {
8282  _internal_set_offset(from._internal_offset());
8283  }
8284  if (from._internal_positive_coeff() != 0) {
8285  _internal_set_positive_coeff(from._internal_positive_coeff());
8286  }
8287  if (from._internal_index() != 0) {
8288  _internal_set_index(from._internal_index());
8289  }
8290  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8291 }
8292 
8294 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8295  if (&from == this) return;
8296  Clear();
8297  MergeFrom(from);
8298 }
8299 
8301  return true;
8302 }
8303 
8304 void DecisionStrategyProto_AffineTransformation::InternalSwap(DecisionStrategyProto_AffineTransformation* other) {
8305  using std::swap;
8306  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
8307  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8308  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, index_)
8309  + sizeof(DecisionStrategyProto_AffineTransformation::index_)
8310  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, offset_)>(
8311  reinterpret_cast<char*>(&offset_),
8312  reinterpret_cast<char*>(&other->offset_));
8313 }
8314 
8315 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto_AffineTransformation::GetMetadata() const {
8316  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
8319 }
8320 
8321 // ===================================================================
8322 
8324  public:
8325 };
8326 
8327 DecisionStrategyProto::DecisionStrategyProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
8328  bool is_message_owned)
8329  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
8330  variables_(arena),
8331  transformations_(arena) {
8332  SharedCtor();
8333  if (!is_message_owned) {
8334  RegisterArenaDtor(arena);
8335  }
8336  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto)
8337 }
8339  : ::PROTOBUF_NAMESPACE_ID::Message(),
8340  variables_(from.variables_),
8341  transformations_(from.transformations_) {
8342  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8343  ::memcpy(&variable_selection_strategy_, &from.variable_selection_strategy_,
8344  static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8345  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8346  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto)
8347 }
8348 
8349 inline void DecisionStrategyProto::SharedCtor() {
8350 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8351  reinterpret_cast<char*>(&variable_selection_strategy_) - reinterpret_cast<char*>(this)),
8352  0, static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8353  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8354 }
8355 
8357  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto)
8358  if (GetArenaForAllocation() != nullptr) return;
8359  SharedDtor();
8360  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8361 }
8362 
8363 inline void DecisionStrategyProto::SharedDtor() {
8364  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
8365 }
8366 
8367 void DecisionStrategyProto::ArenaDtor(void* object) {
8368  DecisionStrategyProto* _this = reinterpret_cast< DecisionStrategyProto* >(object);
8369  (void)_this;
8370 }
8371 void DecisionStrategyProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8372 }
8373 void DecisionStrategyProto::SetCachedSize(int size) const {
8374  _cached_size_.Set(size);
8375 }
8376 
8378 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto)
8379  uint32_t cached_has_bits = 0;
8380  // Prevent compiler warnings about cached_has_bits being unused
8381  (void) cached_has_bits;
8382 
8383  variables_.Clear();
8384  transformations_.Clear();
8385  ::memset(&variable_selection_strategy_, 0, static_cast<size_t>(
8386  reinterpret_cast<char*>(&domain_reduction_strategy_) -
8387  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8388  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8389 }
8390 
8391 const char* DecisionStrategyProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8392 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8393  while (!ctx->Done(&ptr)) {
8394  uint32_t tag;
8395  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8396  switch (tag >> 3) {
8397  // repeated int32 variables = 1;
8398  case 1:
8399  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
8400  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_variables(), ptr, ctx);
8401  CHK_(ptr);
8402  } else if (static_cast<uint8_t>(tag) == 8) {
8403  _internal_add_variables(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
8404  CHK_(ptr);
8405  } else
8406  goto handle_unusual;
8407  continue;
8408  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8409  case 2:
8410  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
8411  uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8412  CHK_(ptr);
8413  _internal_set_variable_selection_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_VariableSelectionStrategy>(val));
8414  } else
8415  goto handle_unusual;
8416  continue;
8417  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8418  case 3:
8419  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
8420  uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8421  CHK_(ptr);
8422  _internal_set_domain_reduction_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_DomainReductionStrategy>(val));
8423  } else
8424  goto handle_unusual;
8425  continue;
8426  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8427  case 4:
8428  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
8429  ptr -= 1;
8430  do {
8431  ptr += 1;
8432  ptr = ctx->ParseMessage(_internal_add_transformations(), ptr);
8433  CHK_(ptr);
8434  if (!ctx->DataAvailable(ptr)) break;
8435  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
8436  } else
8437  goto handle_unusual;
8438  continue;
8439  default:
8440  goto handle_unusual;
8441  } // switch
8442  handle_unusual:
8443  if ((tag == 0) || ((tag & 7) == 4)) {
8444  CHK_(ptr);
8445  ctx->SetLastTag(tag);
8446  goto message_done;
8447  }
8448  ptr = UnknownFieldParse(
8449  tag,
8450  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8451  ptr, ctx);
8452  CHK_(ptr != nullptr);
8453  } // while
8454 message_done:
8455  return ptr;
8456 failure:
8457  ptr = nullptr;
8458  goto message_done;
8459 #undef CHK_
8460 }
8461 
8463  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8464  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto)
8465  uint32_t cached_has_bits = 0;
8466  (void) cached_has_bits;
8467 
8468  // repeated int32 variables = 1;
8469  {
8470  int byte_size = _variables_cached_byte_size_.load(std::memory_order_relaxed);
8471  if (byte_size > 0) {
8472  target = stream->WriteInt32Packed(
8473  1, _internal_variables(), byte_size, target);
8474  }
8475  }
8476 
8477  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8478  if (this->_internal_variable_selection_strategy() != 0) {
8479  target = stream->EnsureSpace(target);
8480  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8481  2, this->_internal_variable_selection_strategy(), target);
8482  }
8483 
8484  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8485  if (this->_internal_domain_reduction_strategy() != 0) {
8486  target = stream->EnsureSpace(target);
8487  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8488  3, this->_internal_domain_reduction_strategy(), target);
8489  }
8490 
8491  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8492  for (unsigned int i = 0,
8493  n = static_cast<unsigned int>(this->_internal_transformations_size()); i < n; i++) {
8494  target = stream->EnsureSpace(target);
8495  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8496  InternalWriteMessage(4, this->_internal_transformations(i), target, stream);
8497  }
8498 
8499  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8500  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8501  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8502  }
8503  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto)
8504  return target;
8505 }
8506 
8508 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto)
8509  size_t total_size = 0;
8510 
8511  uint32_t cached_has_bits = 0;
8512  // Prevent compiler warnings about cached_has_bits being unused
8513  (void) cached_has_bits;
8514 
8515  // repeated int32 variables = 1;
8516  {
8517  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8518  Int32Size(this->variables_);
8519  if (data_size > 0) {
8520  total_size += 1 +
8521  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8522  static_cast<int32_t>(data_size));
8523  }
8524  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8525  _variables_cached_byte_size_.store(cached_size,
8526  std::memory_order_relaxed);
8527  total_size += data_size;
8528  }
8529 
8530  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8531  total_size += 1UL * this->_internal_transformations_size();
8532  for (const auto& msg : this->transformations_) {
8533  total_size +=
8534  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
8535  }
8536 
8537  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8538  if (this->_internal_variable_selection_strategy() != 0) {
8539  total_size += 1 +
8540  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_variable_selection_strategy());
8541  }
8542 
8543  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8544  if (this->_internal_domain_reduction_strategy() != 0) {
8545  total_size += 1 +
8546  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_domain_reduction_strategy());
8547  }
8548 
8549  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
8550 }
8551 
8552 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DecisionStrategyProto::_class_data_ = {
8553  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
8554  DecisionStrategyProto::MergeImpl
8555 };
8556 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DecisionStrategyProto::GetClassData() const { return &_class_data_; }
8557 
8558 void DecisionStrategyProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
8559  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8560  static_cast<DecisionStrategyProto *>(to)->MergeFrom(
8561  static_cast<const DecisionStrategyProto &>(from));
8562 }
8563 
8564 
8566 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto)
8567  GOOGLE_DCHECK_NE(&from, this);
8568  uint32_t cached_has_bits = 0;
8569  (void) cached_has_bits;
8570 
8571  variables_.MergeFrom(from.variables_);
8572  transformations_.MergeFrom(from.transformations_);
8573  if (from._internal_variable_selection_strategy() != 0) {
8574  _internal_set_variable_selection_strategy(from._internal_variable_selection_strategy());
8575  }
8576  if (from._internal_domain_reduction_strategy() != 0) {
8577  _internal_set_domain_reduction_strategy(from._internal_domain_reduction_strategy());
8578  }
8579  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8580 }
8581 
8583 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto)
8584  if (&from == this) return;
8585  Clear();
8586  MergeFrom(from);
8587 }
8588 
8590  return true;
8591 }
8592 
8593 void DecisionStrategyProto::InternalSwap(DecisionStrategyProto* other) {
8594  using std::swap;
8595  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
8596  variables_.InternalSwap(&other->variables_);
8597  transformations_.InternalSwap(&other->transformations_);
8598  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8599  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, domain_reduction_strategy_)
8600  + sizeof(DecisionStrategyProto::domain_reduction_strategy_)
8601  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, variable_selection_strategy_)>(
8602  reinterpret_cast<char*>(&variable_selection_strategy_),
8603  reinterpret_cast<char*>(&other->variable_selection_strategy_));
8604 }
8605 
8606 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto::GetMetadata() const {
8607  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
8610 }
8611 
8612 // ===================================================================
8613 
8615  public:
8616 };
8617 
8618 PartialVariableAssignment::PartialVariableAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena,
8619  bool is_message_owned)
8620  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
8621  vars_(arena),
8622  values_(arena) {
8623  SharedCtor();
8624  if (!is_message_owned) {
8625  RegisterArenaDtor(arena);
8626  }
8627  // @@protoc_insertion_point(arena_constructor:operations_research.sat.PartialVariableAssignment)
8628 }
8630  : ::PROTOBUF_NAMESPACE_ID::Message(),
8631  vars_(from.vars_),
8632  values_(from.values_) {
8633  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8634  // @@protoc_insertion_point(copy_constructor:operations_research.sat.PartialVariableAssignment)
8635 }
8636 
8637 inline void PartialVariableAssignment::SharedCtor() {
8638 }
8639 
8641  // @@protoc_insertion_point(destructor:operations_research.sat.PartialVariableAssignment)
8642  if (GetArenaForAllocation() != nullptr) return;
8643  SharedDtor();
8644  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8645 }
8646 
8647 inline void PartialVariableAssignment::SharedDtor() {
8648  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
8649 }
8650 
8651 void PartialVariableAssignment::ArenaDtor(void* object) {
8652  PartialVariableAssignment* _this = reinterpret_cast< PartialVariableAssignment* >(object);
8653  (void)_this;
8654 }
8655 void PartialVariableAssignment::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8656 }
8657 void PartialVariableAssignment::SetCachedSize(int size) const {
8658  _cached_size_.Set(size);
8659 }
8660 
8662 // @@protoc_insertion_point(message_clear_start:operations_research.sat.PartialVariableAssignment)
8663  uint32_t cached_has_bits = 0;
8664  // Prevent compiler warnings about cached_has_bits being unused
8665  (void) cached_has_bits;
8666 
8667  vars_.Clear();
8668  values_.Clear();
8669  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8670 }
8671 
8672 const char* PartialVariableAssignment::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8673 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8674  while (!ctx->Done(&ptr)) {
8675  uint32_t tag;
8676  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8677  switch (tag >> 3) {
8678  // repeated int32 vars = 1;
8679  case 1:
8680  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
8681  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
8682  CHK_(ptr);
8683  } else if (static_cast<uint8_t>(tag) == 8) {
8684  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
8685  CHK_(ptr);
8686  } else
8687  goto handle_unusual;
8688  continue;
8689  // repeated int64 values = 2;
8690  case 2:
8691  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
8692  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
8693  CHK_(ptr);
8694  } else if (static_cast<uint8_t>(tag) == 16) {
8695  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8696  CHK_(ptr);
8697  } else
8698  goto handle_unusual;
8699  continue;
8700  default:
8701  goto handle_unusual;
8702  } // switch
8703  handle_unusual:
8704  if ((tag == 0) || ((tag & 7) == 4)) {
8705  CHK_(ptr);
8706  ctx->SetLastTag(tag);
8707  goto message_done;
8708  }
8709  ptr = UnknownFieldParse(
8710  tag,
8711  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8712  ptr, ctx);
8713  CHK_(ptr != nullptr);
8714  } // while
8715 message_done:
8716  return ptr;
8717 failure:
8718  ptr = nullptr;
8719  goto message_done;
8720 #undef CHK_
8721 }
8722 
8724  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8725  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.PartialVariableAssignment)
8726  uint32_t cached_has_bits = 0;
8727  (void) cached_has_bits;
8728 
8729  // repeated int32 vars = 1;
8730  {
8731  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
8732  if (byte_size > 0) {
8733  target = stream->WriteInt32Packed(
8734  1, _internal_vars(), byte_size, target);
8735  }
8736  }
8737 
8738  // repeated int64 values = 2;
8739  {
8740  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
8741  if (byte_size > 0) {
8742  target = stream->WriteInt64Packed(
8743  2, _internal_values(), byte_size, target);
8744  }
8745  }
8746 
8747  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8748  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8749  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8750  }
8751  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.PartialVariableAssignment)
8752  return target;
8753 }
8754 
8756 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.PartialVariableAssignment)
8757  size_t total_size = 0;
8758 
8759  uint32_t cached_has_bits = 0;
8760  // Prevent compiler warnings about cached_has_bits being unused
8761  (void) cached_has_bits;
8762 
8763  // repeated int32 vars = 1;
8764  {
8765  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8766  Int32Size(this->vars_);
8767  if (data_size > 0) {
8768  total_size += 1 +
8769  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8770  static_cast<int32_t>(data_size));
8771  }
8772  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8773  _vars_cached_byte_size_.store(cached_size,
8774  std::memory_order_relaxed);
8775  total_size += data_size;
8776  }
8777 
8778  // repeated int64 values = 2;
8779  {
8780  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8781  Int64Size(this->values_);
8782  if (data_size > 0) {
8783  total_size += 1 +
8784  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8785  static_cast<int32_t>(data_size));
8786  }
8787  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8788  _values_cached_byte_size_.store(cached_size,
8789  std::memory_order_relaxed);
8790  total_size += data_size;
8791  }
8792 
8793  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
8794 }
8795 
8796 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PartialVariableAssignment::_class_data_ = {
8797  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
8798  PartialVariableAssignment::MergeImpl
8799 };
8800 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PartialVariableAssignment::GetClassData() const { return &_class_data_; }
8801 
8802 void PartialVariableAssignment::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
8803  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8804  static_cast<PartialVariableAssignment *>(to)->MergeFrom(
8805  static_cast<const PartialVariableAssignment &>(from));
8806 }
8807 
8808 
8810 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.PartialVariableAssignment)
8811  GOOGLE_DCHECK_NE(&from, this);
8812  uint32_t cached_has_bits = 0;
8813  (void) cached_has_bits;
8814 
8815  vars_.MergeFrom(from.vars_);
8816  values_.MergeFrom(from.values_);
8817  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8818 }
8819 
8821 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.PartialVariableAssignment)
8822  if (&from == this) return;
8823  Clear();
8824  MergeFrom(from);
8825 }
8826 
8828  return true;
8829 }
8830 
8831 void PartialVariableAssignment::InternalSwap(PartialVariableAssignment* other) {
8832  using std::swap;
8833  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
8834  vars_.InternalSwap(&other->vars_);
8835  values_.InternalSwap(&other->values_);
8836 }
8837 
8838 ::PROTOBUF_NAMESPACE_ID::Metadata PartialVariableAssignment::GetMetadata() const {
8839  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
8842 }
8843 
8844 // ===================================================================
8845 
8847  public:
8848 };
8849 
8850 SparsePermutationProto::SparsePermutationProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
8851  bool is_message_owned)
8852  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
8853  support_(arena),
8854  cycle_sizes_(arena) {
8855  SharedCtor();
8856  if (!is_message_owned) {
8857  RegisterArenaDtor(arena);
8858  }
8859  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SparsePermutationProto)
8860 }
8862  : ::PROTOBUF_NAMESPACE_ID::Message(),
8863  support_(from.support_),
8864  cycle_sizes_(from.cycle_sizes_) {
8865  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8866  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SparsePermutationProto)
8867 }
8868 
8869 inline void SparsePermutationProto::SharedCtor() {
8870 }
8871 
8873  // @@protoc_insertion_point(destructor:operations_research.sat.SparsePermutationProto)
8874  if (GetArenaForAllocation() != nullptr) return;
8875  SharedDtor();
8876  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8877 }
8878 
8879 inline void SparsePermutationProto::SharedDtor() {
8880  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
8881 }
8882 
8883 void SparsePermutationProto::ArenaDtor(void* object) {
8884  SparsePermutationProto* _this = reinterpret_cast< SparsePermutationProto* >(object);
8885  (void)_this;
8886 }
8887 void SparsePermutationProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8888 }
8889 void SparsePermutationProto::SetCachedSize(int size) const {
8890  _cached_size_.Set(size);
8891 }
8892 
8894 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SparsePermutationProto)
8895  uint32_t cached_has_bits = 0;
8896  // Prevent compiler warnings about cached_has_bits being unused
8897  (void) cached_has_bits;
8898 
8899  support_.Clear();
8900  cycle_sizes_.Clear();
8901  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8902 }
8903 
8904 const char* SparsePermutationProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8905 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8906  while (!ctx->Done(&ptr)) {
8907  uint32_t tag;
8908  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8909  switch (tag >> 3) {
8910  // repeated int32 support = 1;
8911  case 1:
8912  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
8913  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_support(), ptr, ctx);
8914  CHK_(ptr);
8915  } else if (static_cast<uint8_t>(tag) == 8) {
8916  _internal_add_support(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
8917  CHK_(ptr);
8918  } else
8919  goto handle_unusual;
8920  continue;
8921  // repeated int32 cycle_sizes = 2;
8922  case 2:
8923  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
8924  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_cycle_sizes(), ptr, ctx);
8925  CHK_(ptr);
8926  } else if (static_cast<uint8_t>(tag) == 16) {
8927  _internal_add_cycle_sizes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
8928  CHK_(ptr);
8929  } else
8930  goto handle_unusual;
8931  continue;
8932  default:
8933  goto handle_unusual;
8934  } // switch
8935  handle_unusual:
8936  if ((tag == 0) || ((tag & 7) == 4)) {
8937  CHK_(ptr);
8938  ctx->SetLastTag(tag);
8939  goto message_done;
8940  }
8941  ptr = UnknownFieldParse(
8942  tag,
8943  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8944  ptr, ctx);
8945  CHK_(ptr != nullptr);
8946  } // while
8947 message_done:
8948  return ptr;
8949 failure:
8950  ptr = nullptr;
8951  goto message_done;
8952 #undef CHK_
8953 }
8954 
8956  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8957  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SparsePermutationProto)
8958  uint32_t cached_has_bits = 0;
8959  (void) cached_has_bits;
8960 
8961  // repeated int32 support = 1;
8962  {
8963  int byte_size = _support_cached_byte_size_.load(std::memory_order_relaxed);
8964  if (byte_size > 0) {
8965  target = stream->WriteInt32Packed(
8966  1, _internal_support(), byte_size, target);
8967  }
8968  }
8969 
8970  // repeated int32 cycle_sizes = 2;
8971  {
8972  int byte_size = _cycle_sizes_cached_byte_size_.load(std::memory_order_relaxed);
8973  if (byte_size > 0) {
8974  target = stream->WriteInt32Packed(
8975  2, _internal_cycle_sizes(), byte_size, target);
8976  }
8977  }
8978 
8979  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8980  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8981  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8982  }
8983  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SparsePermutationProto)
8984  return target;
8985 }
8986 
8988 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SparsePermutationProto)
8989  size_t total_size = 0;
8990 
8991  uint32_t cached_has_bits = 0;
8992  // Prevent compiler warnings about cached_has_bits being unused
8993  (void) cached_has_bits;
8994 
8995  // repeated int32 support = 1;
8996  {
8997  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8998  Int32Size(this->support_);
8999  if (data_size > 0) {
9000  total_size += 1 +
9001  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9002  static_cast<int32_t>(data_size));
9003  }
9004  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9005  _support_cached_byte_size_.store(cached_size,
9006  std::memory_order_relaxed);
9007  total_size += data_size;
9008  }
9009 
9010  // repeated int32 cycle_sizes = 2;
9011  {
9012  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9013  Int32Size(this->cycle_sizes_);
9014  if (data_size > 0) {
9015  total_size += 1 +
9016  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9017  static_cast<int32_t>(data_size));
9018  }
9019  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9020  _cycle_sizes_cached_byte_size_.store(cached_size,
9021  std::memory_order_relaxed);
9022  total_size += data_size;
9023  }
9024 
9025  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
9026 }
9027 
9028 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SparsePermutationProto::_class_data_ = {
9029  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
9030  SparsePermutationProto::MergeImpl
9031 };
9032 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SparsePermutationProto::GetClassData() const { return &_class_data_; }
9033 
9034 void SparsePermutationProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
9035  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9036  static_cast<SparsePermutationProto *>(to)->MergeFrom(
9037  static_cast<const SparsePermutationProto &>(from));
9038 }
9039 
9040 
9042 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SparsePermutationProto)
9043  GOOGLE_DCHECK_NE(&from, this);
9044  uint32_t cached_has_bits = 0;
9045  (void) cached_has_bits;
9046 
9047  support_.MergeFrom(from.support_);
9048  cycle_sizes_.MergeFrom(from.cycle_sizes_);
9049  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9050 }
9051 
9053 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SparsePermutationProto)
9054  if (&from == this) return;
9055  Clear();
9056  MergeFrom(from);
9057 }
9058 
9060  return true;
9061 }
9062 
9063 void SparsePermutationProto::InternalSwap(SparsePermutationProto* other) {
9064  using std::swap;
9065  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
9066  support_.InternalSwap(&other->support_);
9067  cycle_sizes_.InternalSwap(&other->cycle_sizes_);
9068 }
9069 
9070 ::PROTOBUF_NAMESPACE_ID::Metadata SparsePermutationProto::GetMetadata() const {
9071  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
9074 }
9075 
9076 // ===================================================================
9077 
9079  public:
9080 };
9081 
9082 DenseMatrixProto::DenseMatrixProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
9083  bool is_message_owned)
9084  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
9085  entries_(arena) {
9086  SharedCtor();
9087  if (!is_message_owned) {
9088  RegisterArenaDtor(arena);
9089  }
9090  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DenseMatrixProto)
9091 }
9093  : ::PROTOBUF_NAMESPACE_ID::Message(),
9094  entries_(from.entries_) {
9095  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9096  ::memcpy(&num_rows_, &from.num_rows_,
9097  static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
9098  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9099  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DenseMatrixProto)
9100 }
9101 
9102 inline void DenseMatrixProto::SharedCtor() {
9103 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9104  reinterpret_cast<char*>(&num_rows_) - reinterpret_cast<char*>(this)),
9105  0, static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
9106  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9107 }
9108 
9110  // @@protoc_insertion_point(destructor:operations_research.sat.DenseMatrixProto)
9111  if (GetArenaForAllocation() != nullptr) return;
9112  SharedDtor();
9113  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9114 }
9115 
9116 inline void DenseMatrixProto::SharedDtor() {
9117  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
9118 }
9119 
9120 void DenseMatrixProto::ArenaDtor(void* object) {
9121  DenseMatrixProto* _this = reinterpret_cast< DenseMatrixProto* >(object);
9122  (void)_this;
9123 }
9124 void DenseMatrixProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9125 }
9126 void DenseMatrixProto::SetCachedSize(int size) const {
9127  _cached_size_.Set(size);
9128 }
9129 
9131 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DenseMatrixProto)
9132  uint32_t cached_has_bits = 0;
9133  // Prevent compiler warnings about cached_has_bits being unused
9134  (void) cached_has_bits;
9135 
9136  entries_.Clear();
9137  ::memset(&num_rows_, 0, static_cast<size_t>(
9138  reinterpret_cast<char*>(&num_cols_) -
9139  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9140  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9141 }
9142 
9143 const char* DenseMatrixProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9144 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9145  while (!ctx->Done(&ptr)) {
9146  uint32_t tag;
9147  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9148  switch (tag >> 3) {
9149  // int32 num_rows = 1;
9150  case 1:
9151  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
9152  num_rows_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
9153  CHK_(ptr);
9154  } else
9155  goto handle_unusual;
9156  continue;
9157  // int32 num_cols = 2;
9158  case 2:
9159  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
9160  num_cols_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
9161  CHK_(ptr);
9162  } else
9163  goto handle_unusual;
9164  continue;
9165  // repeated int32 entries = 3;
9166  case 3:
9167  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
9168  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_entries(), ptr, ctx);
9169  CHK_(ptr);
9170  } else if (static_cast<uint8_t>(tag) == 24) {
9171  _internal_add_entries(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
9172  CHK_(ptr);
9173  } else
9174  goto handle_unusual;
9175  continue;
9176  default:
9177  goto handle_unusual;
9178  } // switch
9179  handle_unusual:
9180  if ((tag == 0) || ((tag & 7) == 4)) {
9181  CHK_(ptr);
9182  ctx->SetLastTag(tag);
9183  goto message_done;
9184  }
9185  ptr = UnknownFieldParse(
9186  tag,
9187  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9188  ptr, ctx);
9189  CHK_(ptr != nullptr);
9190  } // while
9191 message_done:
9192  return ptr;
9193 failure:
9194  ptr = nullptr;
9195  goto message_done;
9196 #undef CHK_
9197 }
9198 
9200  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9201  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DenseMatrixProto)
9202  uint32_t cached_has_bits = 0;
9203  (void) cached_has_bits;
9204 
9205  // int32 num_rows = 1;
9206  if (this->_internal_num_rows() != 0) {
9207  target = stream->EnsureSpace(target);
9208  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_num_rows(), target);
9209  }
9210 
9211  // int32 num_cols = 2;
9212  if (this->_internal_num_cols() != 0) {
9213  target = stream->EnsureSpace(target);
9214  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_num_cols(), target);
9215  }
9216 
9217  // repeated int32 entries = 3;
9218  {
9219  int byte_size = _entries_cached_byte_size_.load(std::memory_order_relaxed);
9220  if (byte_size > 0) {
9221  target = stream->WriteInt32Packed(
9222  3, _internal_entries(), byte_size, target);
9223  }
9224  }
9225 
9226  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9227  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9228  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9229  }
9230  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DenseMatrixProto)
9231  return target;
9232 }
9233 
9235 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DenseMatrixProto)
9236  size_t total_size = 0;
9237 
9238  uint32_t cached_has_bits = 0;
9239  // Prevent compiler warnings about cached_has_bits being unused
9240  (void) cached_has_bits;
9241 
9242  // repeated int32 entries = 3;
9243  {
9244  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9245  Int32Size(this->entries_);
9246  if (data_size > 0) {
9247  total_size += 1 +
9248  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9249  static_cast<int32_t>(data_size));
9250  }
9251  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9252  _entries_cached_byte_size_.store(cached_size,
9253  std::memory_order_relaxed);
9254  total_size += data_size;
9255  }
9256 
9257  // int32 num_rows = 1;
9258  if (this->_internal_num_rows() != 0) {
9259  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_num_rows());
9260  }
9261 
9262  // int32 num_cols = 2;
9263  if (this->_internal_num_cols() != 0) {
9264  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_num_cols());
9265  }
9266 
9267  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
9268 }
9269 
9270 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DenseMatrixProto::_class_data_ = {
9271  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
9272  DenseMatrixProto::MergeImpl
9273 };
9274 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DenseMatrixProto::GetClassData() const { return &_class_data_; }
9275 
9276 void DenseMatrixProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
9277  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9278  static_cast<DenseMatrixProto *>(to)->MergeFrom(
9279  static_cast<const DenseMatrixProto &>(from));
9280 }
9281 
9282 
9284 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DenseMatrixProto)
9285  GOOGLE_DCHECK_NE(&from, this);
9286  uint32_t cached_has_bits = 0;
9287  (void) cached_has_bits;
9288 
9289  entries_.MergeFrom(from.entries_);
9290  if (from._internal_num_rows() != 0) {
9291  _internal_set_num_rows(from._internal_num_rows());
9292  }
9293  if (from._internal_num_cols() != 0) {
9294  _internal_set_num_cols(from._internal_num_cols());
9295  }
9296  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9297 }
9298 
9300 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DenseMatrixProto)
9301  if (&from == this) return;
9302  Clear();
9303  MergeFrom(from);
9304 }
9305 
9307  return true;
9308 }
9309 
9310 void DenseMatrixProto::InternalSwap(DenseMatrixProto* other) {
9311  using std::swap;
9312  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
9313  entries_.InternalSwap(&other->entries_);
9314  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
9315  PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_cols_)
9316  + sizeof(DenseMatrixProto::num_cols_)
9317  - PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_rows_)>(
9318  reinterpret_cast<char*>(&num_rows_),
9319  reinterpret_cast<char*>(&other->num_rows_));
9320 }
9321 
9322 ::PROTOBUF_NAMESPACE_ID::Metadata DenseMatrixProto::GetMetadata() const {
9323  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
9326 }
9327 
9328 // ===================================================================
9329 
9331  public:
9332 };
9333 
9334 SymmetryProto::SymmetryProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
9335  bool is_message_owned)
9336  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
9337  permutations_(arena),
9338  orbitopes_(arena) {
9339  SharedCtor();
9340  if (!is_message_owned) {
9341  RegisterArenaDtor(arena);
9342  }
9343  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SymmetryProto)
9344 }
9346  : ::PROTOBUF_NAMESPACE_ID::Message(),
9347  permutations_(from.permutations_),
9348  orbitopes_(from.orbitopes_) {
9349  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9350  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SymmetryProto)
9351 }
9352 
9353 inline void SymmetryProto::SharedCtor() {
9354 }
9355 
9357  // @@protoc_insertion_point(destructor:operations_research.sat.SymmetryProto)
9358  if (GetArenaForAllocation() != nullptr) return;
9359  SharedDtor();
9360  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9361 }
9362 
9363 inline void SymmetryProto::SharedDtor() {
9364  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
9365 }
9366 
9367 void SymmetryProto::ArenaDtor(void* object) {
9368  SymmetryProto* _this = reinterpret_cast< SymmetryProto* >(object);
9369  (void)_this;
9370 }
9371 void SymmetryProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9372 }
9373 void SymmetryProto::SetCachedSize(int size) const {
9374  _cached_size_.Set(size);
9375 }
9376 
9378 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SymmetryProto)
9379  uint32_t cached_has_bits = 0;
9380  // Prevent compiler warnings about cached_has_bits being unused
9381  (void) cached_has_bits;
9382 
9383  permutations_.Clear();
9384  orbitopes_.Clear();
9385  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9386 }
9387 
9388 const char* SymmetryProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9389 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9390  while (!ctx->Done(&ptr)) {
9391  uint32_t tag;
9392  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9393  switch (tag >> 3) {
9394  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9395  case 1:
9396  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
9397  ptr -= 1;
9398  do {
9399  ptr += 1;
9400  ptr = ctx->ParseMessage(_internal_add_permutations(), ptr);
9401  CHK_(ptr);
9402  if (!ctx->DataAvailable(ptr)) break;
9403  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
9404  } else
9405  goto handle_unusual;
9406  continue;
9407  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9408  case 2:
9409  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
9410  ptr -= 1;
9411  do {
9412  ptr += 1;
9413  ptr = ctx->ParseMessage(_internal_add_orbitopes(), ptr);
9414  CHK_(ptr);
9415  if (!ctx->DataAvailable(ptr)) break;
9416  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9417  } else
9418  goto handle_unusual;
9419  continue;
9420  default:
9421  goto handle_unusual;
9422  } // switch
9423  handle_unusual:
9424  if ((tag == 0) || ((tag & 7) == 4)) {
9425  CHK_(ptr);
9426  ctx->SetLastTag(tag);
9427  goto message_done;
9428  }
9429  ptr = UnknownFieldParse(
9430  tag,
9431  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9432  ptr, ctx);
9433  CHK_(ptr != nullptr);
9434  } // while
9435 message_done:
9436  return ptr;
9437 failure:
9438  ptr = nullptr;
9439  goto message_done;
9440 #undef CHK_
9441 }
9442 
9444  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9445  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SymmetryProto)
9446  uint32_t cached_has_bits = 0;
9447  (void) cached_has_bits;
9448 
9449  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9450  for (unsigned int i = 0,
9451  n = static_cast<unsigned int>(this->_internal_permutations_size()); i < n; i++) {
9452  target = stream->EnsureSpace(target);
9453  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9454  InternalWriteMessage(1, this->_internal_permutations(i), target, stream);
9455  }
9456 
9457  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9458  for (unsigned int i = 0,
9459  n = static_cast<unsigned int>(this->_internal_orbitopes_size()); i < n; i++) {
9460  target = stream->EnsureSpace(target);
9461  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9462  InternalWriteMessage(2, this->_internal_orbitopes(i), target, stream);
9463  }
9464 
9465  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9466  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9467  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9468  }
9469  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SymmetryProto)
9470  return target;
9471 }
9472 
9474 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SymmetryProto)
9475  size_t total_size = 0;
9476 
9477  uint32_t cached_has_bits = 0;
9478  // Prevent compiler warnings about cached_has_bits being unused
9479  (void) cached_has_bits;
9480 
9481  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9482  total_size += 1UL * this->_internal_permutations_size();
9483  for (const auto& msg : this->permutations_) {
9484  total_size +=
9485  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9486  }
9487 
9488  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9489  total_size += 1UL * this->_internal_orbitopes_size();
9490  for (const auto& msg : this->orbitopes_) {
9491  total_size +=
9492  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9493  }
9494 
9495  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
9496 }
9497 
9498 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SymmetryProto::_class_data_ = {
9499  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
9500  SymmetryProto::MergeImpl
9501 };
9502 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SymmetryProto::GetClassData() const { return &_class_data_; }
9503 
9504 void SymmetryProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
9505  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9506  static_cast<SymmetryProto *>(to)->MergeFrom(
9507  static_cast<const SymmetryProto &>(from));
9508 }
9509 
9510 
9512 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SymmetryProto)
9513  GOOGLE_DCHECK_NE(&from, this);
9514  uint32_t cached_has_bits = 0;
9515  (void) cached_has_bits;
9516 
9517  permutations_.MergeFrom(from.permutations_);
9518  orbitopes_.MergeFrom(from.orbitopes_);
9519  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9520 }
9521 
9523 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SymmetryProto)
9524  if (&from == this) return;
9525  Clear();
9526  MergeFrom(from);
9527 }
9528 
9530  return true;
9531 }
9532 
9533 void SymmetryProto::InternalSwap(SymmetryProto* other) {
9534  using std::swap;
9535  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
9536  permutations_.InternalSwap(&other->permutations_);
9537  orbitopes_.InternalSwap(&other->orbitopes_);
9538 }
9539 
9540 ::PROTOBUF_NAMESPACE_ID::Metadata SymmetryProto::GetMetadata() const {
9541  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
9544 }
9545 
9546 // ===================================================================
9547 
9549  public:
9550  static const ::operations_research::sat::CpObjectiveProto& objective(const CpModelProto* msg);
9551  static const ::operations_research::sat::FloatObjectiveProto& floating_point_objective(const CpModelProto* msg);
9552  static const ::operations_research::sat::PartialVariableAssignment& solution_hint(const CpModelProto* msg);
9553  static const ::operations_research::sat::SymmetryProto& symmetry(const CpModelProto* msg);
9554 };
9555 
9556 const ::operations_research::sat::CpObjectiveProto&
9558  return *msg->objective_;
9559 }
9560 const ::operations_research::sat::FloatObjectiveProto&
9562  return *msg->floating_point_objective_;
9563 }
9564 const ::operations_research::sat::PartialVariableAssignment&
9566  return *msg->solution_hint_;
9567 }
9568 const ::operations_research::sat::SymmetryProto&
9570  return *msg->symmetry_;
9571 }
9572 CpModelProto::CpModelProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
9573  bool is_message_owned)
9574  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
9575  variables_(arena),
9576  constraints_(arena),
9577  search_strategy_(arena),
9578  assumptions_(arena) {
9579  SharedCtor();
9580  if (!is_message_owned) {
9581  RegisterArenaDtor(arena);
9582  }
9583  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpModelProto)
9584 }
9586  : ::PROTOBUF_NAMESPACE_ID::Message(),
9587  variables_(from.variables_),
9588  constraints_(from.constraints_),
9589  search_strategy_(from.search_strategy_),
9590  assumptions_(from.assumptions_) {
9591  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9592  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9593  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
9594  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
9595  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
9596  if (!from._internal_name().empty()) {
9597  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
9598  GetArenaForAllocation());
9599  }
9600  if (from._internal_has_objective()) {
9601  objective_ = new ::operations_research::sat::CpObjectiveProto(*from.objective_);
9602  } else {
9603  objective_ = nullptr;
9604  }
9605  if (from._internal_has_solution_hint()) {
9606  solution_hint_ = new ::operations_research::sat::PartialVariableAssignment(*from.solution_hint_);
9607  } else {
9608  solution_hint_ = nullptr;
9609  }
9610  if (from._internal_has_symmetry()) {
9611  symmetry_ = new ::operations_research::sat::SymmetryProto(*from.symmetry_);
9612  } else {
9613  symmetry_ = nullptr;
9614  }
9615  if (from._internal_has_floating_point_objective()) {
9616  floating_point_objective_ = new ::operations_research::sat::FloatObjectiveProto(*from.floating_point_objective_);
9617  } else {
9618  floating_point_objective_ = nullptr;
9619  }
9620  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpModelProto)
9621 }
9622 
9623 inline void CpModelProto::SharedCtor() {
9624 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9625 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
9626  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
9627 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
9628 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9629  reinterpret_cast<char*>(&objective_) - reinterpret_cast<char*>(this)),
9630  0, static_cast<size_t>(reinterpret_cast<char*>(&floating_point_objective_) -
9631  reinterpret_cast<char*>(&objective_)) + sizeof(floating_point_objective_));
9632 }
9633 
9635  // @@protoc_insertion_point(destructor:operations_research.sat.CpModelProto)
9636  if (GetArenaForAllocation() != nullptr) return;
9637  SharedDtor();
9638  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9639 }
9640 
9641 inline void CpModelProto::SharedDtor() {
9642  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
9643  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9644  if (this != internal_default_instance()) delete objective_;
9645  if (this != internal_default_instance()) delete solution_hint_;
9646  if (this != internal_default_instance()) delete symmetry_;
9647  if (this != internal_default_instance()) delete floating_point_objective_;
9648 }
9649 
9650 void CpModelProto::ArenaDtor(void* object) {
9651  CpModelProto* _this = reinterpret_cast< CpModelProto* >(object);
9652  (void)_this;
9653 }
9654 void CpModelProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9655 }
9656 void CpModelProto::SetCachedSize(int size) const {
9657  _cached_size_.Set(size);
9658 }
9659 
9661 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpModelProto)
9662  uint32_t cached_has_bits = 0;
9663  // Prevent compiler warnings about cached_has_bits being unused
9664  (void) cached_has_bits;
9665 
9666  variables_.Clear();
9667  constraints_.Clear();
9668  search_strategy_.Clear();
9669  assumptions_.Clear();
9670  name_.ClearToEmpty();
9671  if (GetArenaForAllocation() == nullptr && objective_ != nullptr) {
9672  delete objective_;
9673  }
9674  objective_ = nullptr;
9675  if (GetArenaForAllocation() == nullptr && solution_hint_ != nullptr) {
9676  delete solution_hint_;
9677  }
9678  solution_hint_ = nullptr;
9679  if (GetArenaForAllocation() == nullptr && symmetry_ != nullptr) {
9680  delete symmetry_;
9681  }
9682  symmetry_ = nullptr;
9683  if (GetArenaForAllocation() == nullptr && floating_point_objective_ != nullptr) {
9684  delete floating_point_objective_;
9685  }
9686  floating_point_objective_ = nullptr;
9687  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9688 }
9689 
9690 const char* CpModelProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9691 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9692  while (!ctx->Done(&ptr)) {
9693  uint32_t tag;
9694  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9695  switch (tag >> 3) {
9696  // string name = 1;
9697  case 1:
9698  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
9699  auto str = _internal_mutable_name();
9700  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
9701  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpModelProto.name"));
9702  CHK_(ptr);
9703  } else
9704  goto handle_unusual;
9705  continue;
9706  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9707  case 2:
9708  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
9709  ptr -= 1;
9710  do {
9711  ptr += 1;
9712  ptr = ctx->ParseMessage(_internal_add_variables(), ptr);
9713  CHK_(ptr);
9714  if (!ctx->DataAvailable(ptr)) break;
9715  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9716  } else
9717  goto handle_unusual;
9718  continue;
9719  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9720  case 3:
9721  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
9722  ptr -= 1;
9723  do {
9724  ptr += 1;
9725  ptr = ctx->ParseMessage(_internal_add_constraints(), ptr);
9726  CHK_(ptr);
9727  if (!ctx->DataAvailable(ptr)) break;
9728  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
9729  } else
9730  goto handle_unusual;
9731  continue;
9732  // .operations_research.sat.CpObjectiveProto objective = 4;
9733  case 4:
9734  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
9735  ptr = ctx->ParseMessage(_internal_mutable_objective(), ptr);
9736  CHK_(ptr);
9737  } else
9738  goto handle_unusual;
9739  continue;
9740  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9741  case 5:
9742  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
9743  ptr -= 1;
9744  do {
9745  ptr += 1;
9746  ptr = ctx->ParseMessage(_internal_add_search_strategy(), ptr);
9747  CHK_(ptr);
9748  if (!ctx->DataAvailable(ptr)) break;
9749  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
9750  } else
9751  goto handle_unusual;
9752  continue;
9753  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9754  case 6:
9755  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
9756  ptr = ctx->ParseMessage(_internal_mutable_solution_hint(), ptr);
9757  CHK_(ptr);
9758  } else
9759  goto handle_unusual;
9760  continue;
9761  // repeated int32 assumptions = 7;
9762  case 7:
9763  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
9764  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_assumptions(), ptr, ctx);
9765  CHK_(ptr);
9766  } else if (static_cast<uint8_t>(tag) == 56) {
9767  _internal_add_assumptions(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
9768  CHK_(ptr);
9769  } else
9770  goto handle_unusual;
9771  continue;
9772  // .operations_research.sat.SymmetryProto symmetry = 8;
9773  case 8:
9774  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
9775  ptr = ctx->ParseMessage(_internal_mutable_symmetry(), ptr);
9776  CHK_(ptr);
9777  } else
9778  goto handle_unusual;
9779  continue;
9780  // .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
9781  case 9:
9782  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
9783  ptr = ctx->ParseMessage(_internal_mutable_floating_point_objective(), ptr);
9784  CHK_(ptr);
9785  } else
9786  goto handle_unusual;
9787  continue;
9788  default:
9789  goto handle_unusual;
9790  } // switch
9791  handle_unusual:
9792  if ((tag == 0) || ((tag & 7) == 4)) {
9793  CHK_(ptr);
9794  ctx->SetLastTag(tag);
9795  goto message_done;
9796  }
9797  ptr = UnknownFieldParse(
9798  tag,
9799  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9800  ptr, ctx);
9801  CHK_(ptr != nullptr);
9802  } // while
9803 message_done:
9804  return ptr;
9805 failure:
9806  ptr = nullptr;
9807  goto message_done;
9808 #undef CHK_
9809 }
9810 
9812  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9813  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpModelProto)
9814  uint32_t cached_has_bits = 0;
9815  (void) cached_has_bits;
9816 
9817  // string name = 1;
9818  if (!this->_internal_name().empty()) {
9819  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
9820  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
9821  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
9822  "operations_research.sat.CpModelProto.name");
9823  target = stream->WriteStringMaybeAliased(
9824  1, this->_internal_name(), target);
9825  }
9826 
9827  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9828  for (unsigned int i = 0,
9829  n = static_cast<unsigned int>(this->_internal_variables_size()); i < n; i++) {
9830  target = stream->EnsureSpace(target);
9831  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9832  InternalWriteMessage(2, this->_internal_variables(i), target, stream);
9833  }
9834 
9835  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9836  for (unsigned int i = 0,
9837  n = static_cast<unsigned int>(this->_internal_constraints_size()); i < n; i++) {
9838  target = stream->EnsureSpace(target);
9839  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9840  InternalWriteMessage(3, this->_internal_constraints(i), target, stream);
9841  }
9842 
9843  // .operations_research.sat.CpObjectiveProto objective = 4;
9844  if (this->_internal_has_objective()) {
9845  target = stream->EnsureSpace(target);
9846  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9847  InternalWriteMessage(
9848  4, _Internal::objective(this), target, stream);
9849  }
9850 
9851  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9852  for (unsigned int i = 0,
9853  n = static_cast<unsigned int>(this->_internal_search_strategy_size()); i < n; i++) {
9854  target = stream->EnsureSpace(target);
9855  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9856  InternalWriteMessage(5, this->_internal_search_strategy(i), target, stream);
9857  }
9858 
9859  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9860  if (this->_internal_has_solution_hint()) {
9861  target = stream->EnsureSpace(target);
9862  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9863  InternalWriteMessage(
9864  6, _Internal::solution_hint(this), target, stream);
9865  }
9866 
9867  // repeated int32 assumptions = 7;
9868  {
9869  int byte_size = _assumptions_cached_byte_size_.load(std::memory_order_relaxed);
9870  if (byte_size > 0) {
9871  target = stream->WriteInt32Packed(
9872  7, _internal_assumptions(), byte_size, target);
9873  }
9874  }
9875 
9876  // .operations_research.sat.SymmetryProto symmetry = 8;
9877  if (this->_internal_has_symmetry()) {
9878  target = stream->EnsureSpace(target);
9879  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9880  InternalWriteMessage(
9881  8, _Internal::symmetry(this), target, stream);
9882  }
9883 
9884  // .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
9885  if (this->_internal_has_floating_point_objective()) {
9886  target = stream->EnsureSpace(target);
9887  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9888  InternalWriteMessage(
9889  9, _Internal::floating_point_objective(this), target, stream);
9890  }
9891 
9892  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9893  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9894  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9895  }
9896  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpModelProto)
9897  return target;
9898 }
9899 
9901 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpModelProto)
9902  size_t total_size = 0;
9903 
9904  uint32_t cached_has_bits = 0;
9905  // Prevent compiler warnings about cached_has_bits being unused
9906  (void) cached_has_bits;
9907 
9908  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9909  total_size += 1UL * this->_internal_variables_size();
9910  for (const auto& msg : this->variables_) {
9911  total_size +=
9912  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9913  }
9914 
9915  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9916  total_size += 1UL * this->_internal_constraints_size();
9917  for (const auto& msg : this->constraints_) {
9918  total_size +=
9919  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9920  }
9921 
9922  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9923  total_size += 1UL * this->_internal_search_strategy_size();
9924  for (const auto& msg : this->search_strategy_) {
9925  total_size +=
9926  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9927  }
9928 
9929  // repeated int32 assumptions = 7;
9930  {
9931  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9932  Int32Size(this->assumptions_);
9933  if (data_size > 0) {
9934  total_size += 1 +
9935  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9936  static_cast<int32_t>(data_size));
9937  }
9938  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9939  _assumptions_cached_byte_size_.store(cached_size,
9940  std::memory_order_relaxed);
9941  total_size += data_size;
9942  }
9943 
9944  // string name = 1;
9945  if (!this->_internal_name().empty()) {
9946  total_size += 1 +
9947  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
9948  this->_internal_name());
9949  }
9950 
9951  // .operations_research.sat.CpObjectiveProto objective = 4;
9952  if (this->_internal_has_objective()) {
9953  total_size += 1 +
9954  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
9955  *objective_);
9956  }
9957 
9958  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9959  if (this->_internal_has_solution_hint()) {
9960  total_size += 1 +
9961  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
9962  *solution_hint_);
9963  }
9964 
9965  // .operations_research.sat.SymmetryProto symmetry = 8;
9966  if (this->_internal_has_symmetry()) {
9967  total_size += 1 +
9968  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
9969  *symmetry_);
9970  }
9971 
9972  // .operations_research.sat.FloatObjectiveProto floating_point_objective = 9;
9973  if (this->_internal_has_floating_point_objective()) {
9974  total_size += 1 +
9975  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
9976  *floating_point_objective_);
9977  }
9978 
9979  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
9980 }
9981 
9982 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CpModelProto::_class_data_ = {
9983  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
9984  CpModelProto::MergeImpl
9985 };
9986 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CpModelProto::GetClassData() const { return &_class_data_; }
9987 
9988 void CpModelProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
9989  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9990  static_cast<CpModelProto *>(to)->MergeFrom(
9991  static_cast<const CpModelProto &>(from));
9992 }
9993 
9994 
9996 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpModelProto)
9997  GOOGLE_DCHECK_NE(&from, this);
9998  uint32_t cached_has_bits = 0;
9999  (void) cached_has_bits;
10000 
10001  variables_.MergeFrom(from.variables_);
10002  constraints_.MergeFrom(from.constraints_);
10003  search_strategy_.MergeFrom(from.search_strategy_);
10004  assumptions_.MergeFrom(from.assumptions_);
10005  if (!from._internal_name().empty()) {
10006  _internal_set_name(from._internal_name());
10007  }
10008  if (from._internal_has_objective()) {
10009  _internal_mutable_objective()->::operations_research::sat::CpObjectiveProto::MergeFrom(from._internal_objective());
10010  }
10011  if (from._internal_has_solution_hint()) {
10012  _internal_mutable_solution_hint()->::operations_research::sat::PartialVariableAssignment::MergeFrom(from._internal_solution_hint());
10013  }
10014  if (from._internal_has_symmetry()) {
10015  _internal_mutable_symmetry()->::operations_research::sat::SymmetryProto::MergeFrom(from._internal_symmetry());
10016  }
10017  if (from._internal_has_floating_point_objective()) {
10018  _internal_mutable_floating_point_objective()->::operations_research::sat::FloatObjectiveProto::MergeFrom(from._internal_floating_point_objective());
10019  }
10020  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10021 }
10022 
10024 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpModelProto)
10025  if (&from == this) return;
10026  Clear();
10027  MergeFrom(from);
10028 }
10029 
10031  return true;
10032 }
10033 
10034 void CpModelProto::InternalSwap(CpModelProto* other) {
10035  using std::swap;
10036  auto* lhs_arena = GetArenaForAllocation();
10037  auto* rhs_arena = other->GetArenaForAllocation();
10038  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
10039  variables_.InternalSwap(&other->variables_);
10040  constraints_.InternalSwap(&other->constraints_);
10041  search_strategy_.InternalSwap(&other->search_strategy_);
10042  assumptions_.InternalSwap(&other->assumptions_);
10043  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
10044  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
10045  &name_, lhs_arena,
10046  &other->name_, rhs_arena
10047  );
10048  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
10049  PROTOBUF_FIELD_OFFSET(CpModelProto, floating_point_objective_)
10050  + sizeof(CpModelProto::floating_point_objective_)
10051  - PROTOBUF_FIELD_OFFSET(CpModelProto, objective_)>(
10052  reinterpret_cast<char*>(&objective_),
10053  reinterpret_cast<char*>(&other->objective_));
10054 }
10055 
10056 ::PROTOBUF_NAMESPACE_ID::Metadata CpModelProto::GetMetadata() const {
10057  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
10060 }
10061 
10062 // ===================================================================
10063 
10065  public:
10066 };
10067 
10068 CpSolverSolution::CpSolverSolution(::PROTOBUF_NAMESPACE_ID::Arena* arena,
10069  bool is_message_owned)
10070  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
10071  values_(arena) {
10072  SharedCtor();
10073  if (!is_message_owned) {
10074  RegisterArenaDtor(arena);
10075  }
10076  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpSolverSolution)
10077 }
10079  : ::PROTOBUF_NAMESPACE_ID::Message(),
10080  values_(from.values_) {
10081  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10082  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpSolverSolution)
10083 }
10084 
10085 inline void CpSolverSolution::SharedCtor() {
10086 }
10087 
10089  // @@protoc_insertion_point(destructor:operations_research.sat.CpSolverSolution)
10090  if (GetArenaForAllocation() != nullptr) return;
10091  SharedDtor();
10092  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10093 }
10094 
10095 inline void CpSolverSolution::SharedDtor() {
10096  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
10097 }
10098 
10099 void CpSolverSolution::ArenaDtor(void* object) {
10100  CpSolverSolution* _this = reinterpret_cast< CpSolverSolution* >(object);
10101  (void)_this;
10102 }
10103 void CpSolverSolution::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
10104 }
10105 void CpSolverSolution::SetCachedSize(int size) const {
10106  _cached_size_.Set(size);
10107 }
10108 
10110 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpSolverSolution)
10111  uint32_t cached_has_bits = 0;
10112  // Prevent compiler warnings about cached_has_bits being unused
10113  (void) cached_has_bits;
10114 
10115  values_.Clear();
10116  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10117 }
10118 
10119 const char* CpSolverSolution::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
10120 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
10121  while (!ctx->Done(&ptr)) {
10122  uint32_t tag;
10123  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
10124  switch (tag >> 3) {
10125  // repeated int64 values = 1;
10126  case 1:
10127  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
10128  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
10129  CHK_(ptr);
10130  } else if (static_cast<uint8_t>(tag) == 8) {
10131  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10132  CHK_(ptr);
10133  } else
10134  goto handle_unusual;
10135  continue;
10136  default:
10137  goto handle_unusual;
10138  } // switch
10139  handle_unusual:
10140  if ((tag == 0) || ((tag & 7) == 4)) {
10141  CHK_(ptr);
10142  ctx->SetLastTag(tag);
10143  goto message_done;
10144  }
10145  ptr = UnknownFieldParse(
10146  tag,
10147  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
10148  ptr, ctx);
10149  CHK_(ptr != nullptr);
10150  } // while
10151 message_done:
10152  return ptr;
10153 failure:
10154  ptr = nullptr;
10155  goto message_done;
10156 #undef CHK_
10157 }
10158 
10160  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
10161  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpSolverSolution)
10162  uint32_t cached_has_bits = 0;
10163  (void) cached_has_bits;
10164 
10165  // repeated int64 values = 1;
10166  {
10167  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
10168  if (byte_size > 0) {
10169  target = stream->WriteInt64Packed(
10170  1, _internal_values(), byte_size, target);
10171  }
10172  }
10173 
10174  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10175  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
10176  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
10177  }
10178  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpSolverSolution)
10179  return target;
10180 }
10181 
10183 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpSolverSolution)
10184  size_t total_size = 0;
10185 
10186  uint32_t cached_has_bits = 0;
10187  // Prevent compiler warnings about cached_has_bits being unused
10188  (void) cached_has_bits;
10189 
10190  // repeated int64 values = 1;
10191  {
10192  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10193  Int64Size(this->values_);
10194  if (data_size > 0) {
10195  total_size += 1 +
10196  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10197  static_cast<int32_t>(data_size));
10198  }
10199  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10200  _values_cached_byte_size_.store(cached_size,
10201  std::memory_order_relaxed);
10202  total_size += data_size;
10203  }
10204 
10205  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
10206 }
10207 
10208 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CpSolverSolution::_class_data_ = {
10209  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
10210  CpSolverSolution::MergeImpl
10211 };
10212 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CpSolverSolution::GetClassData() const { return &_class_data_; }
10213 
10214 void CpSolverSolution::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
10215  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10216  static_cast<CpSolverSolution *>(to)->MergeFrom(
10217  static_cast<const CpSolverSolution &>(from));
10218 }
10219 
10220 
10222 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpSolverSolution)
10223  GOOGLE_DCHECK_NE(&from, this);
10224  uint32_t cached_has_bits = 0;
10225  (void) cached_has_bits;
10226 
10227  values_.MergeFrom(from.values_);
10228  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10229 }
10230 
10232 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpSolverSolution)
10233  if (&from == this) return;
10234  Clear();
10235  MergeFrom(from);
10236 }
10237 
10239  return true;
10240 }
10241 
10242 void CpSolverSolution::InternalSwap(CpSolverSolution* other) {
10243  using std::swap;
10244  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
10245  values_.InternalSwap(&other->values_);
10246 }
10247 
10248 ::PROTOBUF_NAMESPACE_ID::Metadata CpSolverSolution::GetMetadata() const {
10249  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
10252 }
10253 
10254 // ===================================================================
10255 
10257  public:
10258  static const ::operations_research::sat::CpObjectiveProto& integer_objective(const CpSolverResponse* msg);
10259 };
10260 
10261 const ::operations_research::sat::CpObjectiveProto&
10263  return *msg->integer_objective_;
10264 }
10265 CpSolverResponse::CpSolverResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
10266  bool is_message_owned)
10267  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
10268  solution_(arena),
10269  tightened_variables_(arena),
10270  sufficient_assumptions_for_infeasibility_(arena),
10271  additional_solutions_(arena) {
10272  SharedCtor();
10273  if (!is_message_owned) {
10274  RegisterArenaDtor(arena);
10275  }
10276  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpSolverResponse)
10277 }
10279  : ::PROTOBUF_NAMESPACE_ID::Message(),
10280  solution_(from.solution_),
10281  tightened_variables_(from.tightened_variables_),
10282  sufficient_assumptions_for_infeasibility_(from.sufficient_assumptions_for_infeasibility_),
10283  additional_solutions_(from.additional_solutions_) {
10284  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10285  solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10286  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
10287  solution_info_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
10288  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
10289  if (!from._internal_solution_info().empty()) {
10290  solution_info_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_solution_info(),
10291  GetArenaForAllocation());
10292  }
10293  solve_log_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10294  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
10295  solve_log_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
10296  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
10297  if (!from._internal_solve_log().empty()) {
10298  solve_log_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_solve_log(),
10299  GetArenaForAllocation());
10300  }
10301  if (from._internal_has_integer_objective()) {
10302  integer_objective_ = new ::operations_research::sat::CpObjectiveProto(*from.integer_objective_);
10303  } else {
10304  integer_objective_ = nullptr;
10305  }
10306  ::memcpy(&objective_value_, &from.objective_value_,
10307  static_cast<size_t>(reinterpret_cast<char*>(&inner_objective_lower_bound_) -
10308  reinterpret_cast<char*>(&objective_value_)) + sizeof(inner_objective_lower_bound_));
10309  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpSolverResponse)
10310 }
10311 
10312 inline void CpSolverResponse::SharedCtor() {
10313 solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10314 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
10315  solution_info_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
10316 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
10317 solve_log_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10318 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
10319  solve_log_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
10320 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
10321 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
10322  reinterpret_cast<char*>(&integer_objective_) - reinterpret_cast<char*>(this)),
10323  0, static_cast<size_t>(reinterpret_cast<char*>(&inner_objective_lower_bound_) -
10324  reinterpret_cast<char*>(&integer_objective_)) + sizeof(inner_objective_lower_bound_));
10325 }
10326 
10328  // @@protoc_insertion_point(destructor:operations_research.sat.CpSolverResponse)
10329  if (GetArenaForAllocation() != nullptr) return;
10330  SharedDtor();
10331  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10332 }
10333 
10334 inline void CpSolverResponse::SharedDtor() {
10335  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
10336  solution_info_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10337  solve_log_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10338  if (this != internal_default_instance()) delete integer_objective_;
10339 }
10340 
10341 void CpSolverResponse::ArenaDtor(void* object) {
10342  CpSolverResponse* _this = reinterpret_cast< CpSolverResponse* >(object);
10343  (void)_this;
10344 }
10345 void CpSolverResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
10346 }
10347 void CpSolverResponse::SetCachedSize(int size) const {
10348  _cached_size_.Set(size);
10349 }
10350 
10352 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpSolverResponse)
10353  uint32_t cached_has_bits = 0;
10354  // Prevent compiler warnings about cached_has_bits being unused
10355  (void) cached_has_bits;
10356 
10357  solution_.Clear();
10358  tightened_variables_.Clear();
10359  sufficient_assumptions_for_infeasibility_.Clear();
10360  additional_solutions_.Clear();
10361  solution_info_.ClearToEmpty();
10362  solve_log_.ClearToEmpty();
10363  if (GetArenaForAllocation() == nullptr && integer_objective_ != nullptr) {
10364  delete integer_objective_;
10365  }
10366  integer_objective_ = nullptr;
10367  ::memset(&objective_value_, 0, static_cast<size_t>(
10368  reinterpret_cast<char*>(&inner_objective_lower_bound_) -
10369  reinterpret_cast<char*>(&objective_value_)) + sizeof(inner_objective_lower_bound_));
10370  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10371 }
10372 
10373 const char* CpSolverResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
10374 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
10375  while (!ctx->Done(&ptr)) {
10376  uint32_t tag;
10377  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
10378  switch (tag >> 3) {
10379  // .operations_research.sat.CpSolverStatus status = 1;
10380  case 1:
10381  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
10382  uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10383  CHK_(ptr);
10384  _internal_set_status(static_cast<::operations_research::sat::CpSolverStatus>(val));
10385  } else
10386  goto handle_unusual;
10387  continue;
10388  // repeated int64 solution = 2;
10389  case 2:
10390  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
10391  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution(), ptr, ctx);
10392  CHK_(ptr);
10393  } else if (static_cast<uint8_t>(tag) == 16) {
10394  _internal_add_solution(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10395  CHK_(ptr);
10396  } else
10397  goto handle_unusual;
10398  continue;
10399  // double objective_value = 3;
10400  case 3:
10401  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 25)) {
10402  objective_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10403  ptr += sizeof(double);
10404  } else
10405  goto handle_unusual;
10406  continue;
10407  // double best_objective_bound = 4;
10408  case 4:
10409  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 33)) {
10410  best_objective_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10411  ptr += sizeof(double);
10412  } else
10413  goto handle_unusual;
10414  continue;
10415  // int64 num_booleans = 10;
10416  case 10:
10417  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
10418  num_booleans_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10419  CHK_(ptr);
10420  } else
10421  goto handle_unusual;
10422  continue;
10423  // int64 num_conflicts = 11;
10424  case 11:
10425  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
10426  num_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10427  CHK_(ptr);
10428  } else
10429  goto handle_unusual;
10430  continue;
10431  // int64 num_branches = 12;
10432  case 12:
10433  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
10434  num_branches_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10435  CHK_(ptr);
10436  } else
10437  goto handle_unusual;
10438  continue;
10439  // int64 num_binary_propagations = 13;
10440  case 13:
10441  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
10442  num_binary_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10443  CHK_(ptr);
10444  } else
10445  goto handle_unusual;
10446  continue;
10447  // int64 num_integer_propagations = 14;
10448  case 14:
10449  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
10450  num_integer_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10451  CHK_(ptr);
10452  } else
10453  goto handle_unusual;
10454  continue;
10455  // double wall_time = 15;
10456  case 15:
10457  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 121)) {
10458  wall_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10459  ptr += sizeof(double);
10460  } else
10461  goto handle_unusual;
10462  continue;
10463  // double user_time = 16;
10464  case 16:
10465  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 129)) {
10466  user_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10467  ptr += sizeof(double);
10468  } else
10469  goto handle_unusual;
10470  continue;
10471  // double deterministic_time = 17;
10472  case 17:
10473  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 137)) {
10474  deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10475  ptr += sizeof(double);
10476  } else
10477  goto handle_unusual;
10478  continue;
10479  // string solution_info = 20;
10480  case 20:
10481  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
10482  auto str = _internal_mutable_solution_info();
10483  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
10484  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.solution_info"));
10485  CHK_(ptr);
10486  } else
10487  goto handle_unusual;
10488  continue;
10489  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10490  case 21:
10491  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
10492  ptr -= 2;
10493  do {
10494  ptr += 2;
10495  ptr = ctx->ParseMessage(_internal_add_tightened_variables(), ptr);
10496  CHK_(ptr);
10497  if (!ctx->DataAvailable(ptr)) break;
10498  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<170>(ptr));
10499  } else
10500  goto handle_unusual;
10501  continue;
10502  // double gap_integral = 22;
10503  case 22:
10504  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 177)) {
10505  gap_integral_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10506  ptr += sizeof(double);
10507  } else
10508  goto handle_unusual;
10509  continue;
10510  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10511  case 23:
10512  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
10513  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_sufficient_assumptions_for_infeasibility(), ptr, ctx);
10514  CHK_(ptr);
10515  } else if (static_cast<uint8_t>(tag) == 184) {
10516  _internal_add_sufficient_assumptions_for_infeasibility(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
10517  CHK_(ptr);
10518  } else
10519  goto handle_unusual;
10520  continue;
10521  // int64 num_restarts = 24;
10522  case 24:
10523  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 192)) {
10524  num_restarts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10525  CHK_(ptr);
10526  } else
10527  goto handle_unusual;
10528  continue;
10529  // int64 num_lp_iterations = 25;
10530  case 25:
10531  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 200)) {
10532  num_lp_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10533  CHK_(ptr);
10534  } else
10535  goto handle_unusual;
10536  continue;
10537  // string solve_log = 26;
10538  case 26:
10539  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 210)) {
10540  auto str = _internal_mutable_solve_log();
10541  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
10542  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.solve_log"));
10543  CHK_(ptr);
10544  } else
10545  goto handle_unusual;
10546  continue;
10547  // repeated .operations_research.sat.CpSolverSolution additional_solutions = 27;
10548  case 27:
10549  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 218)) {
10550  ptr -= 2;
10551  do {
10552  ptr += 2;
10553  ptr = ctx->ParseMessage(_internal_add_additional_solutions(), ptr);
10554  CHK_(ptr);
10555  if (!ctx->DataAvailable(ptr)) break;
10556  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<218>(ptr));
10557  } else
10558  goto handle_unusual;
10559  continue;
10560  // .operations_research.sat.CpObjectiveProto integer_objective = 28;
10561  case 28:
10562  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 226)) {
10563  ptr = ctx->ParseMessage(_internal_mutable_integer_objective(), ptr);
10564  CHK_(ptr);
10565  } else
10566  goto handle_unusual;
10567  continue;
10568  // int64 inner_objective_lower_bound = 29;
10569  case 29:
10570  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 232)) {
10571  inner_objective_lower_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10572  CHK_(ptr);
10573  } else
10574  goto handle_unusual;
10575  continue;
10576  default:
10577  goto handle_unusual;
10578  } // switch
10579  handle_unusual:
10580  if ((tag == 0) || ((tag & 7) == 4)) {
10581  CHK_(ptr);
10582  ctx->SetLastTag(tag);
10583  goto message_done;
10584  }
10585  ptr = UnknownFieldParse(
10586  tag,
10587  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
10588  ptr, ctx);
10589  CHK_(ptr != nullptr);
10590  } // while
10591 message_done:
10592  return ptr;
10593 failure:
10594  ptr = nullptr;
10595  goto message_done;
10596 #undef CHK_
10597 }
10598 
10600  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
10601  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpSolverResponse)
10602  uint32_t cached_has_bits = 0;
10603  (void) cached_has_bits;
10604 
10605  // .operations_research.sat.CpSolverStatus status = 1;
10606  if (this->_internal_status() != 0) {
10607  target = stream->EnsureSpace(target);
10608  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
10609  1, this->_internal_status(), target);
10610  }
10611 
10612  // repeated int64 solution = 2;
10613  {
10614  int byte_size = _solution_cached_byte_size_.load(std::memory_order_relaxed);
10615  if (byte_size > 0) {
10616  target = stream->WriteInt64Packed(
10617  2, _internal_solution(), byte_size, target);
10618  }
10619  }
10620 
10621  // double objective_value = 3;
10622  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10623  double tmp_objective_value = this->_internal_objective_value();
10624  uint64_t raw_objective_value;
10625  memcpy(&raw_objective_value, &tmp_objective_value, sizeof(tmp_objective_value));
10626  if (raw_objective_value != 0) {
10627  target = stream->EnsureSpace(target);
10628  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_objective_value(), target);
10629  }
10630 
10631  // double best_objective_bound = 4;
10632  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10633  double tmp_best_objective_bound = this->_internal_best_objective_bound();
10634  uint64_t raw_best_objective_bound;
10635  memcpy(&raw_best_objective_bound, &tmp_best_objective_bound, sizeof(tmp_best_objective_bound));
10636  if (raw_best_objective_bound != 0) {
10637  target = stream->EnsureSpace(target);
10638  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(4, this->_internal_best_objective_bound(), target);
10639  }
10640 
10641  // int64 num_booleans = 10;
10642  if (this->_internal_num_booleans() != 0) {
10643  target = stream->EnsureSpace(target);
10644  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(10, this->_internal_num_booleans(), target);
10645  }
10646 
10647  // int64 num_conflicts = 11;
10648  if (this->_internal_num_conflicts() != 0) {
10649  target = stream->EnsureSpace(target);
10650  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_num_conflicts(), target);
10651  }
10652 
10653  // int64 num_branches = 12;
10654  if (this->_internal_num_branches() != 0) {
10655  target = stream->EnsureSpace(target);
10656  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(12, this->_internal_num_branches(), target);
10657  }
10658 
10659  // int64 num_binary_propagations = 13;
10660  if (this->_internal_num_binary_propagations() != 0) {
10661  target = stream->EnsureSpace(target);
10662  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(13, this->_internal_num_binary_propagations(), target);
10663  }
10664 
10665  // int64 num_integer_propagations = 14;
10666  if (this->_internal_num_integer_propagations() != 0) {
10667  target = stream->EnsureSpace(target);
10668  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(14, this->_internal_num_integer_propagations(), target);
10669  }
10670 
10671  // double wall_time = 15;
10672  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10673  double tmp_wall_time = this->_internal_wall_time();
10674  uint64_t raw_wall_time;
10675  memcpy(&raw_wall_time, &tmp_wall_time, sizeof(tmp_wall_time));
10676  if (raw_wall_time != 0) {
10677  target = stream->EnsureSpace(target);
10678  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_wall_time(), target);
10679  }
10680 
10681  // double user_time = 16;
10682  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10683  double tmp_user_time = this->_internal_user_time();
10684  uint64_t raw_user_time;
10685  memcpy(&raw_user_time, &tmp_user_time, sizeof(tmp_user_time));
10686  if (raw_user_time != 0) {
10687  target = stream->EnsureSpace(target);
10688  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_user_time(), target);
10689  }
10690 
10691  // double deterministic_time = 17;
10692  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10693  double tmp_deterministic_time = this->_internal_deterministic_time();
10694  uint64_t raw_deterministic_time;
10695  memcpy(&raw_deterministic_time, &tmp_deterministic_time, sizeof(tmp_deterministic_time));
10696  if (raw_deterministic_time != 0) {
10697  target = stream->EnsureSpace(target);
10698  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(17, this->_internal_deterministic_time(), target);
10699  }
10700 
10701  // string solution_info = 20;
10702  if (!this->_internal_solution_info().empty()) {
10703  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
10704  this->_internal_solution_info().data(), static_cast<int>(this->_internal_solution_info().length()),
10705  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
10706  "operations_research.sat.CpSolverResponse.solution_info");
10707  target = stream->WriteStringMaybeAliased(
10708  20, this->_internal_solution_info(), target);
10709  }
10710 
10711  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10712  for (unsigned int i = 0,
10713  n = static_cast<unsigned int>(this->_internal_tightened_variables_size()); i < n; i++) {
10714  target = stream->EnsureSpace(target);
10715  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10716  InternalWriteMessage(21, this->_internal_tightened_variables(i), target, stream);
10717  }
10718 
10719  // double gap_integral = 22;
10720  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10721  double tmp_gap_integral = this->_internal_gap_integral();
10722  uint64_t raw_gap_integral;
10723  memcpy(&raw_gap_integral, &tmp_gap_integral, sizeof(tmp_gap_integral));
10724  if (raw_gap_integral != 0) {
10725  target = stream->EnsureSpace(target);
10726  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_gap_integral(), target);
10727  }
10728 
10729  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10730  {
10731  int byte_size = _sufficient_assumptions_for_infeasibility_cached_byte_size_.load(std::memory_order_relaxed);
10732  if (byte_size > 0) {
10733  target = stream->WriteInt32Packed(
10734  23, _internal_sufficient_assumptions_for_infeasibility(), byte_size, target);
10735  }
10736  }
10737 
10738  // int64 num_restarts = 24;
10739  if (this->_internal_num_restarts() != 0) {
10740  target = stream->EnsureSpace(target);
10741  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(24, this->_internal_num_restarts(), target);
10742  }
10743 
10744  // int64 num_lp_iterations = 25;
10745  if (this->_internal_num_lp_iterations() != 0) {
10746  target = stream->EnsureSpace(target);
10747  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(25, this->_internal_num_lp_iterations(), target);
10748  }
10749 
10750  // string solve_log = 26;
10751  if (!this->_internal_solve_log().empty()) {
10752  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
10753  this->_internal_solve_log().data(), static_cast<int>(this->_internal_solve_log().length()),
10754  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
10755  "operations_research.sat.CpSolverResponse.solve_log");
10756  target = stream->WriteStringMaybeAliased(
10757  26, this->_internal_solve_log(), target);
10758  }
10759 
10760  // repeated .operations_research.sat.CpSolverSolution additional_solutions = 27;
10761  for (unsigned int i = 0,
10762  n = static_cast<unsigned int>(this->_internal_additional_solutions_size()); i < n; i++) {
10763  target = stream->EnsureSpace(target);
10764  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10765  InternalWriteMessage(27, this->_internal_additional_solutions(i), target, stream);
10766  }
10767 
10768  // .operations_research.sat.CpObjectiveProto integer_objective = 28;
10769  if (this->_internal_has_integer_objective()) {
10770  target = stream->EnsureSpace(target);
10771  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10772  InternalWriteMessage(
10773  28, _Internal::integer_objective(this), target, stream);
10774  }
10775 
10776  // int64 inner_objective_lower_bound = 29;
10777  if (this->_internal_inner_objective_lower_bound() != 0) {
10778  target = stream->EnsureSpace(target);
10779  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(29, this->_internal_inner_objective_lower_bound(), target);
10780  }
10781 
10782  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10783  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
10784  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
10785  }
10786  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpSolverResponse)
10787  return target;
10788 }
10789 
10791 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpSolverResponse)
10792  size_t total_size = 0;
10793 
10794  uint32_t cached_has_bits = 0;
10795  // Prevent compiler warnings about cached_has_bits being unused
10796  (void) cached_has_bits;
10797 
10798  // repeated int64 solution = 2;
10799  {
10800  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10801  Int64Size(this->solution_);
10802  if (data_size > 0) {
10803  total_size += 1 +
10804  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10805  static_cast<int32_t>(data_size));
10806  }
10807  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10808  _solution_cached_byte_size_.store(cached_size,
10809  std::memory_order_relaxed);
10810  total_size += data_size;
10811  }
10812 
10813  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10814  total_size += 2UL * this->_internal_tightened_variables_size();
10815  for (const auto& msg : this->tightened_variables_) {
10816  total_size +=
10817  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10818  }
10819 
10820  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10821  {
10822  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10823  Int32Size(this->sufficient_assumptions_for_infeasibility_);
10824  if (data_size > 0) {
10825  total_size += 2 +
10826  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10827  static_cast<int32_t>(data_size));
10828  }
10829  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10830  _sufficient_assumptions_for_infeasibility_cached_byte_size_.store(cached_size,
10831  std::memory_order_relaxed);
10832  total_size += data_size;
10833  }
10834 
10835  // repeated .operations_research.sat.CpSolverSolution additional_solutions = 27;
10836  total_size += 2UL * this->_internal_additional_solutions_size();
10837  for (const auto& msg : this->additional_solutions_) {
10838  total_size +=
10839  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10840  }
10841 
10842  // string solution_info = 20;
10843  if (!this->_internal_solution_info().empty()) {
10844  total_size += 2 +
10845  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10846  this->_internal_solution_info());
10847  }
10848 
10849  // string solve_log = 26;
10850  if (!this->_internal_solve_log().empty()) {
10851  total_size += 2 +
10852  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10853  this->_internal_solve_log());
10854  }
10855 
10856  // .operations_research.sat.CpObjectiveProto integer_objective = 28;
10857  if (this->_internal_has_integer_objective()) {
10858  total_size += 2 +
10859  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10860  *integer_objective_);
10861  }
10862 
10863  // double objective_value = 3;
10864  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10865  double tmp_objective_value = this->_internal_objective_value();
10866  uint64_t raw_objective_value;
10867  memcpy(&raw_objective_value, &tmp_objective_value, sizeof(tmp_objective_value));
10868  if (raw_objective_value != 0) {
10869  total_size += 1 + 8;
10870  }
10871 
10872  // double best_objective_bound = 4;
10873  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10874  double tmp_best_objective_bound = this->_internal_best_objective_bound();
10875  uint64_t raw_best_objective_bound;
10876  memcpy(&raw_best_objective_bound, &tmp_best_objective_bound, sizeof(tmp_best_objective_bound));
10877  if (raw_best_objective_bound != 0) {
10878  total_size += 1 + 8;
10879  }
10880 
10881  // int64 num_booleans = 10;
10882  if (this->_internal_num_booleans() != 0) {
10883  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_booleans());
10884  }
10885 
10886  // int64 num_conflicts = 11;
10887  if (this->_internal_num_conflicts() != 0) {
10888  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_conflicts());
10889  }
10890 
10891  // int64 num_branches = 12;
10892  if (this->_internal_num_branches() != 0) {
10893  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_branches());
10894  }
10895 
10896  // int64 num_binary_propagations = 13;
10897  if (this->_internal_num_binary_propagations() != 0) {
10898  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_binary_propagations());
10899  }
10900 
10901  // int64 num_integer_propagations = 14;
10902  if (this->_internal_num_integer_propagations() != 0) {
10903  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_integer_propagations());
10904  }
10905 
10906  // double wall_time = 15;
10907  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10908  double tmp_wall_time = this->_internal_wall_time();
10909  uint64_t raw_wall_time;
10910  memcpy(&raw_wall_time, &tmp_wall_time, sizeof(tmp_wall_time));
10911  if (raw_wall_time != 0) {
10912  total_size += 1 + 8;
10913  }
10914 
10915  // double user_time = 16;
10916  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10917  double tmp_user_time = this->_internal_user_time();
10918  uint64_t raw_user_time;
10919  memcpy(&raw_user_time, &tmp_user_time, sizeof(tmp_user_time));
10920  if (raw_user_time != 0) {
10921  total_size += 2 + 8;
10922  }
10923 
10924  // double deterministic_time = 17;
10925  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10926  double tmp_deterministic_time = this->_internal_deterministic_time();
10927  uint64_t raw_deterministic_time;
10928  memcpy(&raw_deterministic_time, &tmp_deterministic_time, sizeof(tmp_deterministic_time));
10929  if (raw_deterministic_time != 0) {
10930  total_size += 2 + 8;
10931  }
10932 
10933  // double gap_integral = 22;
10934  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
10935  double tmp_gap_integral = this->_internal_gap_integral();
10936  uint64_t raw_gap_integral;
10937  memcpy(&raw_gap_integral, &tmp_gap_integral, sizeof(tmp_gap_integral));
10938  if (raw_gap_integral != 0) {
10939  total_size += 2 + 8;
10940  }
10941 
10942  // .operations_research.sat.CpSolverStatus status = 1;
10943  if (this->_internal_status() != 0) {
10944  total_size += 1 +
10945  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_status());
10946  }
10947 
10948  // int64 num_restarts = 24;
10949  if (this->_internal_num_restarts() != 0) {
10950  total_size += 2 +
10951  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10952  this->_internal_num_restarts());
10953  }
10954 
10955  // int64 num_lp_iterations = 25;
10956  if (this->_internal_num_lp_iterations() != 0) {
10957  total_size += 2 +
10958  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10959  this->_internal_num_lp_iterations());
10960  }
10961 
10962  // int64 inner_objective_lower_bound = 29;
10963  if (this->_internal_inner_objective_lower_bound() != 0) {
10964  total_size += 2 +
10965  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10966  this->_internal_inner_objective_lower_bound());
10967  }
10968 
10969  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
10970 }
10971 
10972 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CpSolverResponse::_class_data_ = {
10973  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
10974  CpSolverResponse::MergeImpl
10975 };
10976 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CpSolverResponse::GetClassData() const { return &_class_data_; }
10977 
10978 void CpSolverResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
10979  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10980  static_cast<CpSolverResponse *>(to)->MergeFrom(
10981  static_cast<const CpSolverResponse &>(from));
10982 }
10983 
10984 
10986 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpSolverResponse)
10987  GOOGLE_DCHECK_NE(&from, this);
10988  uint32_t cached_has_bits = 0;
10989  (void) cached_has_bits;
10990 
10991  solution_.MergeFrom(from.solution_);
10992  tightened_variables_.MergeFrom(from.tightened_variables_);
10993  sufficient_assumptions_for_infeasibility_.MergeFrom(from.sufficient_assumptions_for_infeasibility_);
10994  additional_solutions_.MergeFrom(from.additional_solutions_);
10995  if (!from._internal_solution_info().empty()) {
10996  _internal_set_solution_info(from._internal_solution_info());
10997  }
10998  if (!from._internal_solve_log().empty()) {
10999  _internal_set_solve_log(from._internal_solve_log());
11000  }
11001  if (from._internal_has_integer_objective()) {
11002  _internal_mutable_integer_objective()->::operations_research::sat::CpObjectiveProto::MergeFrom(from._internal_integer_objective());
11003  }
11004  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
11005  double tmp_objective_value = from._internal_objective_value();
11006  uint64_t raw_objective_value;
11007  memcpy(&raw_objective_value, &tmp_objective_value, sizeof(tmp_objective_value));
11008  if (raw_objective_value != 0) {
11009  _internal_set_objective_value(from._internal_objective_value());
11010  }
11011  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
11012  double tmp_best_objective_bound = from._internal_best_objective_bound();
11013  uint64_t raw_best_objective_bound;
11014  memcpy(&raw_best_objective_bound, &tmp_best_objective_bound, sizeof(tmp_best_objective_bound));
11015  if (raw_best_objective_bound != 0) {
11016  _internal_set_best_objective_bound(from._internal_best_objective_bound());
11017  }
11018  if (from._internal_num_booleans() != 0) {
11019  _internal_set_num_booleans(from._internal_num_booleans());
11020  }
11021  if (from._internal_num_conflicts() != 0) {
11022  _internal_set_num_conflicts(from._internal_num_conflicts());
11023  }
11024  if (from._internal_num_branches() != 0) {
11025  _internal_set_num_branches(from._internal_num_branches());
11026  }
11027  if (from._internal_num_binary_propagations() != 0) {
11028  _internal_set_num_binary_propagations(from._internal_num_binary_propagations());
11029  }
11030  if (from._internal_num_integer_propagations() != 0) {
11031  _internal_set_num_integer_propagations(from._internal_num_integer_propagations());
11032  }
11033  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
11034  double tmp_wall_time = from._internal_wall_time();
11035  uint64_t raw_wall_time;
11036  memcpy(&raw_wall_time, &tmp_wall_time, sizeof(tmp_wall_time));
11037  if (raw_wall_time != 0) {
11038  _internal_set_wall_time(from._internal_wall_time());
11039  }
11040  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
11041  double tmp_user_time = from._internal_user_time();
11042  uint64_t raw_user_time;
11043  memcpy(&raw_user_time, &tmp_user_time, sizeof(tmp_user_time));
11044  if (raw_user_time != 0) {
11045  _internal_set_user_time(from._internal_user_time());
11046  }
11047  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
11048  double tmp_deterministic_time = from._internal_deterministic_time();
11049  uint64_t raw_deterministic_time;
11050  memcpy(&raw_deterministic_time, &tmp_deterministic_time, sizeof(tmp_deterministic_time));
11051  if (raw_deterministic_time != 0) {
11052  _internal_set_deterministic_time(from._internal_deterministic_time());
11053  }
11054  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
11055  double tmp_gap_integral = from._internal_gap_integral();
11056  uint64_t raw_gap_integral;
11057  memcpy(&raw_gap_integral, &tmp_gap_integral, sizeof(tmp_gap_integral));
11058  if (raw_gap_integral != 0) {
11059  _internal_set_gap_integral(from._internal_gap_integral());
11060  }
11061  if (from._internal_status() != 0) {
11062  _internal_set_status(from._internal_status());
11063  }
11064  if (from._internal_num_restarts() != 0) {
11065  _internal_set_num_restarts(from._internal_num_restarts());
11066  }
11067  if (from._internal_num_lp_iterations() != 0) {
11068  _internal_set_num_lp_iterations(from._internal_num_lp_iterations());
11069  }
11070  if (from._internal_inner_objective_lower_bound() != 0) {
11071  _internal_set_inner_objective_lower_bound(from._internal_inner_objective_lower_bound());
11072  }
11073  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
11074 }
11075 
11077 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpSolverResponse)
11078  if (&from == this) return;
11079  Clear();
11080  MergeFrom(from);
11081 }
11082 
11084  return true;
11085 }
11086 
11087 void CpSolverResponse::InternalSwap(CpSolverResponse* other) {
11088  using std::swap;
11089  auto* lhs_arena = GetArenaForAllocation();
11090  auto* rhs_arena = other->GetArenaForAllocation();
11091  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
11092  solution_.InternalSwap(&other->solution_);
11093  tightened_variables_.InternalSwap(&other->tightened_variables_);
11094  sufficient_assumptions_for_infeasibility_.InternalSwap(&other->sufficient_assumptions_for_infeasibility_);
11095  additional_solutions_.InternalSwap(&other->additional_solutions_);
11096  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
11097  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
11098  &solution_info_, lhs_arena,
11099  &other->solution_info_, rhs_arena
11100  );
11101  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
11102  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
11103  &solve_log_, lhs_arena,
11104  &other->solve_log_, rhs_arena
11105  );
11106  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
11107  PROTOBUF_FIELD_OFFSET(CpSolverResponse, inner_objective_lower_bound_)
11108  + sizeof(CpSolverResponse::inner_objective_lower_bound_)
11109  - PROTOBUF_FIELD_OFFSET(CpSolverResponse, integer_objective_)>(
11110  reinterpret_cast<char*>(&integer_objective_),
11111  reinterpret_cast<char*>(&other->integer_objective_));
11112 }
11113 
11114 ::PROTOBUF_NAMESPACE_ID::Metadata CpSolverResponse::GetMetadata() const {
11115  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
11118 }
11119 
11120 // @@protoc_insertion_point(namespace_scope)
11121 } // namespace sat
11122 } // namespace operations_research
11123 PROTOBUF_NAMESPACE_OPEN
11124 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena* arena) {
11125  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerVariableProto >(arena);
11126 }
11127 template<> PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena* arena) {
11128  return Arena::CreateMessageInternal< ::operations_research::sat::BoolArgumentProto >(arena);
11129 }
11130 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena* arena) {
11131  return Arena::CreateMessageInternal< ::operations_research::sat::LinearExpressionProto >(arena);
11132 }
11133 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena* arena) {
11134  return Arena::CreateMessageInternal< ::operations_research::sat::LinearArgumentProto >(arena);
11135 }
11136 template<> PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena* arena) {
11137  return Arena::CreateMessageInternal< ::operations_research::sat::AllDifferentConstraintProto >(arena);
11138 }
11139 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena* arena) {
11140  return Arena::CreateMessageInternal< ::operations_research::sat::LinearConstraintProto >(arena);
11141 }
11142 template<> PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena* arena) {
11143  return Arena::CreateMessageInternal< ::operations_research::sat::ElementConstraintProto >(arena);
11144 }
11145 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena* arena) {
11146  return Arena::CreateMessageInternal< ::operations_research::sat::IntervalConstraintProto >(arena);
11147 }
11148 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena* arena) {
11149  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlapConstraintProto >(arena);
11150 }
11151 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena* arena) {
11152  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlap2DConstraintProto >(arena);
11153 }
11154 template<> PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena* arena) {
11155  return Arena::CreateMessageInternal< ::operations_research::sat::CumulativeConstraintProto >(arena);
11156 }
11157 template<> PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena* arena) {
11158  return Arena::CreateMessageInternal< ::operations_research::sat::ReservoirConstraintProto >(arena);
11159 }
11160 template<> PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena* arena) {
11161  return Arena::CreateMessageInternal< ::operations_research::sat::CircuitConstraintProto >(arena);
11162 }
11163 template<> PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena* arena) {
11164  return Arena::CreateMessageInternal< ::operations_research::sat::RoutesConstraintProto >(arena);
11165 }
11166 template<> PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena* arena) {
11167  return Arena::CreateMessageInternal< ::operations_research::sat::TableConstraintProto >(arena);
11168 }
11169 template<> PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena* arena) {
11170  return Arena::CreateMessageInternal< ::operations_research::sat::InverseConstraintProto >(arena);
11171 }
11172 template<> PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena* arena) {
11173  return Arena::CreateMessageInternal< ::operations_research::sat::AutomatonConstraintProto >(arena);
11174 }
11175 template<> PROTOBUF_NOINLINE ::operations_research::sat::ListOfVariablesProto* Arena::CreateMaybeMessage< ::operations_research::sat::ListOfVariablesProto >(Arena* arena) {
11176  return Arena::CreateMessageInternal< ::operations_research::sat::ListOfVariablesProto >(arena);
11177 }
11178 template<> PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena* arena) {
11179  return Arena::CreateMessageInternal< ::operations_research::sat::ConstraintProto >(arena);
11180 }
11181 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena* arena) {
11182  return Arena::CreateMessageInternal< ::operations_research::sat::CpObjectiveProto >(arena);
11183 }
11184 template<> PROTOBUF_NOINLINE ::operations_research::sat::FloatObjectiveProto* Arena::CreateMaybeMessage< ::operations_research::sat::FloatObjectiveProto >(Arena* arena) {
11185  return Arena::CreateMessageInternal< ::operations_research::sat::FloatObjectiveProto >(arena);
11186 }
11187 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena* arena) {
11188  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(arena);
11189 }
11190 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena* arena) {
11191  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto >(arena);
11192 }
11193 template<> PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment* Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena* arena) {
11194  return Arena::CreateMessageInternal< ::operations_research::sat::PartialVariableAssignment >(arena);
11195 }
11196 template<> PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto* Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena* arena) {
11197  return Arena::CreateMessageInternal< ::operations_research::sat::SparsePermutationProto >(arena);
11198 }
11199 template<> PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto* Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena* arena) {
11200  return Arena::CreateMessageInternal< ::operations_research::sat::DenseMatrixProto >(arena);
11201 }
11202 template<> PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto* Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena* arena) {
11203  return Arena::CreateMessageInternal< ::operations_research::sat::SymmetryProto >(arena);
11204 }
11205 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena* arena) {
11206  return Arena::CreateMessageInternal< ::operations_research::sat::CpModelProto >(arena);
11207 }
11208 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpSolverSolution* Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverSolution >(Arena* arena) {
11209  return Arena::CreateMessageInternal< ::operations_research::sat::CpSolverSolution >(arena);
11210 }
11211 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse* Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena* arena) {
11212  return Arena::CreateMessageInternal< ::operations_research::sat::CpSolverResponse >(arena);
11213 }
11214 PROTOBUF_NAMESPACE_CLOSE
11215 
11216 // @@protoc_insertion_point(global_scope)
11217 #include <google/protobuf/port_undef.inc>
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const ::operations_research::sat::AutomatonConstraintProto & automaton(const ConstraintProto *msg)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TableConstraintProtoDefaultTypeInternal _TableConstraintProto_default_instance_
Definition: cp_model.pb.cc:249
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const LinearArgumentProto * internal_default_instance()
Definition: cp_model.pb.h:847
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpObjectiveProtoDefaultTypeInternal _CpObjectiveProto_default_instance_
Definition: cp_model.pb.cc:336
void set_allocated_int_mod(::operations_research::sat::LinearArgumentProto *int_mod)
static constexpr DomainReductionStrategy DomainReductionStrategy_MIN
Definition: cp_model.pb.h:5279
const ::operations_research::sat::TableConstraintProto & table() const
static const ::operations_research::sat::TableConstraintProto & table(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_VariableSelectionStrategy_descriptor()
#define CHK_(x)
static constexpr DomainReductionStrategy SELECT_MIN_VALUE
Definition: cp_model.pb.h:5266
PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena *arena)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ::operations_research::sat::NoOverlapConstraintProto & no_overlap(const ConstraintProto *msg)
bool DecisionStrategyProto_VariableSelectionStrategy_IsValid(int value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IntervalConstraintProtoDefaultTypeInternal _IntervalConstraintProto_default_instance_
Definition: cp_model.pb.cc:134
void set_allocated_lin_max(::operations_research::sat::LinearArgumentProto *lin_max)
static const ::operations_research::sat::BoolArgumentProto & bool_xor(const ConstraintProto *msg)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
friend void swap(CumulativeConstraintProto &a, CumulativeConstraintProto &b)
Definition: cp_model.pb.h:2127
void MergeFrom(const IntervalConstraintProto &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const ::operations_research::sat::BoolArgumentProto & bool_or() const
Definition: cp_model.pb.h:9543
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena *arena)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void MergeFrom(const CumulativeConstraintProto &from)
void CopyFrom(const SymmetryProto &from)
const ::operations_research::sat::BoolArgumentProto & at_most_one() const
Definition: cp_model.pb.h:9691
PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena *arena)
void MergeFrom(const IntegerVariableProto &from)
static const ::operations_research::sat::CircuitConstraintProto & circuit(const ConstraintProto *msg)
void MergeFrom(const RoutesConstraintProto &from)
void MergeFrom(const BoolArgumentProto &from)
const ::operations_research::sat::AllDifferentConstraintProto & all_diff() const
const ::operations_research::sat::BoolArgumentProto & bool_and() const
Definition: cp_model.pb.h:9617
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void MergeFrom(const DenseMatrixProto &from)
void MergeFrom(const SymmetryProto &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ::operations_research::sat::CpObjectiveProto & objective(const CpModelProto *msg)
static const ::operations_research::sat::LinearExpressionProto & end(const IntervalConstraintProto *msg)
void MergeFrom(const LinearConstraintProto &from)
static constexpr DomainReductionStrategy SELECT_MEDIAN_VALUE
Definition: cp_model.pb.h:5274
void CopyFrom(const IntervalConstraintProto &from)
PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static constexpr VariableSelectionStrategy CHOOSE_LOWEST_MIN
Definition: cp_model.pb.h:5232
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[30]
Definition: cp_model.pb.cc:515
bool DecisionStrategyProto_DomainReductionStrategy_IsValid(int value)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT NoOverlap2DConstraintProtoDefaultTypeInternal _NoOverlap2DConstraintProto_default_instance_
Definition: cp_model.pb.cc:163
void MergeFrom(const LinearExpressionProto &from)
const ::operations_research::sat::ReservoirConstraintProto & reservoir() const
const ::operations_research::sat::LinearExpressionProto & size() const
Definition: cp_model.pb.h:7921
void set_allocated_reservoir(::operations_research::sat::ReservoirConstraintProto *reservoir)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void CopyFrom(const LinearArgumentProto &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::operations_research::sat::ReservoirConstraintProto & reservoir(const ConstraintProto *msg)
void MergeFrom(const LinearArgumentProto &from)
void CopyFrom(const CpSolverResponse &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void set_allocated_dummy_constraint(::operations_research::sat::ListOfVariablesProto *dummy_constraint)
void MergeFrom(const NoOverlapConstraintProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const ::operations_research::sat::BoolArgumentProto & bool_or(const ConstraintProto *msg)
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
Definition: id_map.h:263
void CopyFrom(const DecisionStrategyProto_AffineTransformation &from)
void MergeFrom(const ConstraintProto &from)
void CopyFrom(const BoolArgumentProto &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DecisionStrategyProtoDefaultTypeInternal _DecisionStrategyProto_default_instance_
Definition: cp_model.pb.cc:384
PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena *arena)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::operations_research::sat::ElementConstraintProto & element() const
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void MergeFrom(const CpModelProto &from)
PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena *arena)
void MergeFrom(const CpSolverResponse &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void MergeFrom(const CircuitConstraintProto &from)
static const ::operations_research::sat::CpObjectiveProto & integer_objective(const CpSolverResponse *msg)
static const ClassData _class_data_
Definition: cp_model.pb.h:6223
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DecisionStrategyProto_AffineTransformationDefaultTypeInternal _DecisionStrategyProto_AffineTransformation_default_instance_
Definition: cp_model.pb.cc:366
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const ::operations_research::sat::RoutesConstraintProto & routes() const
static constexpr VariableSelectionStrategy CHOOSE_HIGHEST_MAX
Definition: cp_model.pb.h:5234
friend void swap(LinearArgumentProto &a, LinearArgumentProto &b)
Definition: cp_model.pb.h:854
static constexpr DomainReductionStrategy DomainReductionStrategy_MAX
Definition: cp_model.pb.h:5281
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutesConstraintProtoDefaultTypeInternal _RoutesConstraintProto_default_instance_
Definition: cp_model.pb.cc:233
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT AllDifferentConstraintProtoDefaultTypeInternal _AllDifferentConstraintProto_default_instance_
Definition: cp_model.pb.cc:88
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void MergeFrom(const DecisionStrategyProto &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void CopyFrom(const DenseMatrixProto &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void CopyFrom(const AutomatonConstraintProto &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SymmetryProtoDefaultTypeInternal _SymmetryProto_default_instance_
Definition: cp_model.pb.cc:442
static const ::operations_research::sat::PartialVariableAssignment & solution_hint(const CpModelProto *msg)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CumulativeConstraintProtoDefaultTypeInternal _CumulativeConstraintProto_default_instance_
Definition: cp_model.pb.cc:178
static constexpr VariableSelectionStrategy CHOOSE_FIRST
Definition: cp_model.pb.h:5230
void CopyFrom(const NoOverlapConstraintProto &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void set_allocated_no_overlap(::operations_research::sat::NoOverlapConstraintProto *no_overlap)
void set_allocated_automaton(::operations_research::sat::AutomatonConstraintProto *automaton)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const ::operations_research::sat::LinearArgumentProto & int_prod(const ConstraintProto *msg)
PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const CpModelProto &from)
PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena *arena)
const ::operations_research::sat::BoolArgumentProto & exactly_one() const
Definition: cp_model.pb.h:9765
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void CopyFrom(const IntegerVariableProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void MergeFrom(const InverseConstraintProto &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void set_allocated_int_prod(::operations_research::sat::LinearArgumentProto *int_prod)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ::operations_research::sat::SymmetryProto & symmetry(const CpModelProto *msg)
void MergeFrom(const AutomatonConstraintProto &from)
static constexpr VariableSelectionStrategy VariableSelectionStrategy_MAX
Definition: cp_model.pb.h:5245
const ::operations_research::sat::LinearConstraintProto & linear() const
PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto * Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena *arena)
void MergeFrom(const AllDifferentConstraintProto &from)
void CopyFrom(const ElementConstraintProto &from)
const ::operations_research::sat::NoOverlapConstraintProto & no_overlap() const
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static const ::operations_research::sat::LinearArgumentProto & int_mod(const ConstraintProto *msg)
static constexpr VariableSelectionStrategy CHOOSE_MAX_DOMAIN_SIZE
Definition: cp_model.pb.h:5238
void MergeFrom(const DecisionStrategyProto_AffineTransformation &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena *arena)
const ::operations_research::sat::LinearArgumentProto & lin_max() const
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const CpModelProto * internal_default_instance()
Definition: cp_model.pb.h:6154
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto
PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena *arena)
void CopyFrom(const DecisionStrategyProto &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::operations_research::sat::CumulativeConstraintProto & cumulative() const
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const PartialVariableAssignment &from)
void set_allocated_circuit(::operations_research::sat::CircuitConstraintProto *circuit)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::operations_research::sat::LinearArgumentProto & int_mod() const
Definition: cp_model.pb.h:9987
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::operations_research::sat::BoolArgumentProto & exactly_one(const ConstraintProto *msg)
void CopyFrom(const NoOverlap2DConstraintProto &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void MergeFrom(const PartialVariableAssignment &from)
static const ::operations_research::sat::IntervalConstraintProto & interval(const ConstraintProto *msg)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void CopyFrom(const LinearExpressionProto &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CircuitConstraintProtoDefaultTypeInternal _CircuitConstraintProto_default_instance_
Definition: cp_model.pb.cc:213
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena *arena)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
IntVar *const objective_
Definition: search.cc:3017
void MergeFrom(const TableConstraintProto &from)
void CopyFrom(const InverseConstraintProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DenseMatrixProtoDefaultTypeInternal _DenseMatrixProto_default_instance_
Definition: cp_model.pb.cc:429
const ::operations_research::sat::LinearExpressionProto & target() const
Definition: cp_model.pb.h:7327
static const ::operations_research::sat::LinearExpressionProto & size(const IntervalConstraintProto *msg)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void set_allocated_bool_and(::operations_research::sat::BoolArgumentProto *bool_and)
friend void swap(AutomatonConstraintProto &a, AutomatonConstraintProto &b)
Definition: cp_model.pb.h:3391
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::operations_research::sat::CumulativeConstraintProto & cumulative(const ConstraintProto *msg)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena *arena)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena *arena)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void set_allocated_at_most_one(::operations_research::sat::BoolArgumentProto *at_most_one)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearConstraintProtoDefaultTypeInternal _LinearConstraintProto_default_instance_
Definition: cp_model.pb.cc:105
void CopyFrom(const FloatObjectiveProto &from)
const ::operations_research::sat::InverseConstraintProto & inverse() const
static const ::operations_research::sat::LinearExpressionProto & target(const LinearArgumentProto *msg)
void set_allocated_no_overlap_2d(::operations_research::sat::NoOverlap2DConstraintProto *no_overlap_2d)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
friend void swap(NoOverlap2DConstraintProto &a, NoOverlap2DConstraintProto &b)
Definition: cp_model.pb.h:1931
void CopyFrom(const CpSolverSolution &from)
static const CpSolverResponse * internal_default_instance()
Definition: cp_model.pb.h:6630
void MergeFrom(const NoOverlap2DConstraintProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static constexpr VariableSelectionStrategy VariableSelectionStrategy_MIN
Definition: cp_model.pb.h:5243
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static constexpr DomainReductionStrategy SELECT_MAX_VALUE
Definition: cp_model.pb.h:5268
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void MergeFrom(const FloatObjectiveProto &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
friend void swap(LinearExpressionProto &a, LinearExpressionProto &b)
Definition: cp_model.pb.h:658
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once
const std::vector< IntVar * > vars_
Definition: alldiff_cst.cc:44
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ConstraintProtoDefaultTypeInternal _ConstraintProto_default_instance_
Definition: cp_model.pb.cc:314
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void set_allocated_bool_or(::operations_research::sat::BoolArgumentProto *bool_or)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const SparsePermutationProto &from)
void MergeFrom(const CpObjectiveProto &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ListOfVariablesProtoDefaultTypeInternal _ListOfVariablesProto_default_instance_
Definition: cp_model.pb.cc:299
static constexpr DomainReductionStrategy SELECT_UPPER_HALF
Definition: cp_model.pb.h:5272
friend void swap(TableConstraintProto &a, TableConstraintProto &b)
Definition: cp_model.pb.h:3010
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT FloatObjectiveProtoDefaultTypeInternal _FloatObjectiveProto_default_instance_
Definition: cp_model.pb.cc:352
friend void swap(RoutesConstraintProto &a, RoutesConstraintProto &b)
Definition: cp_model.pb.h:2764
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PartialVariableAssignmentDefaultTypeInternal _PartialVariableAssignment_default_instance_
Definition: cp_model.pb.cc:399
void CopyFrom(const CumulativeConstraintProto &from)
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena *arena)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const ::operations_research::sat::NoOverlap2DConstraintProto & no_overlap_2d() const
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT AutomatonConstraintProtoDefaultTypeInternal _AutomatonConstraintProto_default_instance_
Definition: cp_model.pb.cc:286
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ReservoirConstraintProtoDefaultTypeInternal _ReservoirConstraintProto_default_instance_
Definition: cp_model.pb.cc:196
void CopyFrom(const ListOfVariablesProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IntegerVariableProtoDefaultTypeInternal _IntegerVariableProto_default_instance_
Definition: cp_model.pb.cc:34
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:517
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::operations_research::sat::NoOverlap2DConstraintProto & no_overlap_2d(const ConstraintProto *msg)
const ::operations_research::sat::CircuitConstraintProto & circuit() const
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
Definition: cp_model.pb.cc:870
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena *arena)
static const IntervalConstraintProto * internal_default_instance()
Definition: cp_model.pb.h:1569
void CopyFrom(const ReservoirConstraintProto &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_DomainReductionStrategy_descriptor()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const AllDifferentConstraintProto &from)
void set_allocated_int_div(::operations_research::sat::LinearArgumentProto *int_div)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearArgumentProtoDefaultTypeInternal _LinearArgumentProto_default_instance_
Definition: cp_model.pb.cc:76
static constexpr VariableSelectionStrategy CHOOSE_MIN_DOMAIN_SIZE
Definition: cp_model.pb.h:5236
PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena *arena)
friend void swap(ConstraintProto &a, ConstraintProto &b)
Definition: cp_model.pb.h:3849
static const ::operations_research::sat::LinearConstraintProto & linear(const ConstraintProto *msg)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static const ::operations_research::sat::RoutesConstraintProto & routes(const ConstraintProto *msg)
void MergeFrom(const SparsePermutationProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse * Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void CopyFrom(const CircuitConstraintProto &from)
void CopyFrom(const ConstraintProto &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT InverseConstraintProtoDefaultTypeInternal _InverseConstraintProto_default_instance_
Definition: cp_model.pb.cc:264
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_NOINLINE ::operations_research::sat::FloatObjectiveProto * Arena::CreateMaybeMessage< ::operations_research::sat::FloatObjectiveProto >(Arena *arena)
void set_allocated_all_diff(::operations_research::sat::AllDifferentConstraintProto *all_diff)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3]
Definition: cp_model.pb.cc:516
const ::operations_research::sat::BoolArgumentProto & bool_xor() const
Definition: cp_model.pb.h:9839
static const ::operations_research::sat::ElementConstraintProto & element(const ConstraintProto *msg)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void set_allocated_table(::operations_research::sat::TableConstraintProto *table)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto * Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena *arena)
const uint32_t TableStruct_ortools_2fsat_2fcp_5fmodel_2eproto::offsets [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
PROTOBUF_NOINLINE ::operations_research::sat::ListOfVariablesProto * Arena::CreateMaybeMessage< ::operations_research::sat::ListOfVariablesProto >(Arena *arena)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT NoOverlapConstraintProtoDefaultTypeInternal _NoOverlapConstraintProto_default_instance_
Definition: cp_model.pb.cc:147
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const CumulativeConstraintProto * internal_default_instance()
Definition: cp_model.pb.h:2120
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
Collection of objects used to extend the Constraint Solver library.
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const ::operations_research::sat::LinearArgumentProto & lin_max(const ConstraintProto *msg)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BoolArgumentProtoDefaultTypeInternal _BoolArgumentProto_default_instance_
Definition: cp_model.pb.cc:47
void CopyFrom(const TableConstraintProto &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const ::operations_research::sat::LinearExpressionProto & capacity(const CumulativeConstraintProto *msg)
const int64_t offset_
Definition: interval.cc:2108
const ::operations_research::sat::IntervalConstraintProto & interval() const
PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto * Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena *arena)
void CopyFrom(const LinearConstraintProto &from)
static constexpr int VariableSelectionStrategy_ARRAYSIZE
Definition: cp_model.pb.h:5247
static const ::operations_research::sat::ListOfVariablesProto & dummy_constraint(const ConstraintProto *msg)
void set_allocated_element(::operations_research::sat::ElementConstraintProto *element)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_ATTRIBUTE_WEAKconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable * descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_getter()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ElementConstraintProtoDefaultTypeInternal _ElementConstraintProto_default_instance_
Definition: cp_model.pb.cc:120
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void MergeFrom(const ReservoirConstraintProto &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpSolverSolutionDefaultTypeInternal _CpSolverSolution_default_instance_
Definition: cp_model.pb.cc:476
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CpSolverStatus_descriptor()
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const ::operations_research::sat::AllDifferentConstraintProto & all_diff(const ConstraintProto *msg)
void set_allocated_inverse(::operations_research::sat::InverseConstraintProto *inverse)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const bool maximize_
Definition: search.cc:2559
void set_allocated_interval(::operations_research::sat::IntervalConstraintProto *interval)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void CopyFrom(const RoutesConstraintProto &from)
static constexpr DomainReductionStrategy SELECT_LOWER_HALF
Definition: cp_model.pb.h:5270
const ::operations_research::sat::ListOfVariablesProto & dummy_constraint() const
static const ::operations_research::sat::LinearExpressionProto & start(const IntervalConstraintProto *msg)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpModelProtoDefaultTypeInternal _CpModelProto_default_instance_
Definition: cp_model.pb.cc:463
void MergeFrom(const ListOfVariablesProto &from)
const ::operations_research::sat::LinearArgumentProto & int_div() const
Definition: cp_model.pb.h:9913
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_NOINLINE ::operations_research::sat::CpSolverSolution * Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverSolution >(Arena *arena)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
static const ::operations_research::sat::FloatObjectiveProto & floating_point_objective(const CpModelProto *msg)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void CopyFrom(const CpObjectiveProto &from)
static const ::operations_research::sat::LinearArgumentProto & int_div(const ConstraintProto *msg)
void MergeFrom(const CpSolverSolution &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
bool CpSolverStatus_IsValid(int value)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpSolverResponseDefaultTypeInternal _CpSolverResponse_default_instance_
Definition: cp_model.pb.cc:512
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SparsePermutationProtoDefaultTypeInternal _SparsePermutationProto_default_instance_
Definition: cp_model.pb.cc:414
const ::operations_research::sat::AutomatonConstraintProto & automaton() const
int64_t value
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ::operations_research::sat::BoolArgumentProto & bool_and(const ConstraintProto *msg)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void MergeFrom(const ElementConstraintProto &from)
static const ::operations_research::sat::InverseConstraintProto & inverse(const ConstraintProto *msg)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const ::operations_research::sat::BoolArgumentProto & at_most_one(const ConstraintProto *msg)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearExpressionProtoDefaultTypeInternal _LinearExpressionProto_default_instance_
Definition: cp_model.pb.cc:63
void set_allocated_routes(::operations_research::sat::RoutesConstraintProto *routes)
void set_allocated_bool_xor(::operations_research::sat::BoolArgumentProto *bool_xor)
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena *arena)
void set_allocated_linear(::operations_research::sat::LinearConstraintProto *linear)
void set_allocated_cumulative(::operations_research::sat::CumulativeConstraintProto *cumulative)
const ::operations_research::sat::LinearArgumentProto & int_prod() const
void set_allocated_exactly_one(::operations_research::sat::BoolArgumentProto *exactly_one)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment * Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena *arena)