OR-Tools  8.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 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
18 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
19 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto;
20 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
21 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<16> scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
22 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto;
23 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
24 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto;
25 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto;
26 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto;
27 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
28 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto;
29 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto;
30 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
31 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
32 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto;
33 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
34 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto;
35 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
36 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
37 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto;
38 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
39 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
40 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto;
41 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto;
42 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
43 namespace operations_research {
44 namespace sat {
46  public:
47  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IntegerVariableProto> _instance;
50  public:
51  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BoolArgumentProto> _instance;
54  public:
55  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IntegerArgumentProto> _instance;
58  public:
59  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearExpressionProto> _instance;
62  public:
63  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearArgumentProto> _instance;
66  public:
67  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AllDifferentConstraintProto> _instance;
70  public:
71  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearConstraintProto> _instance;
74  public:
75  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ElementConstraintProto> _instance;
78  public:
79  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IntervalConstraintProto> _instance;
82  public:
83  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NoOverlapConstraintProto> _instance;
86  public:
87  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NoOverlap2DConstraintProto> _instance;
90  public:
91  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CumulativeConstraintProto> _instance;
94  public:
95  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ReservoirConstraintProto> _instance;
98  public:
99  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CircuitConstraintProto> _instance;
102  public:
103  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutesConstraintProto> _instance;
106  public:
107  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TableConstraintProto> _instance;
110  public:
111  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<InverseConstraintProto> _instance;
114  public:
115  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AutomatonConstraintProto> _instance;
118  public:
119  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ConstraintProto> _instance;
122  public:
123  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CpObjectiveProto> _instance;
126  public:
127  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DecisionStrategyProto_AffineTransformation> _instance;
130  public:
131  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DecisionStrategyProto> _instance;
134  public:
135  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PartialVariableAssignment> _instance;
138  public:
139  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SparsePermutationProto> _instance;
142  public:
143  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DenseMatrixProto> _instance;
146  public:
147  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SymmetryProto> _instance;
150  public:
151  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CpModelProto> _instance;
154  public:
155  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CpSolverResponse> _instance;
157 } // namespace sat
158 } // namespace operations_research
160  GOOGLE_PROTOBUF_VERIFY_VERSION;
161 
162  {
164  new (ptr) ::operations_research::sat::AllDifferentConstraintProto();
165  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
166  }
167 }
168 
169 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
170  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
171 
173  GOOGLE_PROTOBUF_VERIFY_VERSION;
174 
175  {
177  new (ptr) ::operations_research::sat::AutomatonConstraintProto();
178  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
179  }
180 }
181 
182 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
183  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
184 
186  GOOGLE_PROTOBUF_VERIFY_VERSION;
187 
188  {
190  new (ptr) ::operations_research::sat::BoolArgumentProto();
191  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
192  }
193 }
194 
195 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto =
196  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
197 
199  GOOGLE_PROTOBUF_VERIFY_VERSION;
200 
201  {
203  new (ptr) ::operations_research::sat::CircuitConstraintProto();
204  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
205  }
206 }
207 
208 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
209  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
210 
212  GOOGLE_PROTOBUF_VERIFY_VERSION;
213 
214  {
216  new (ptr) ::operations_research::sat::ConstraintProto();
217  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
218  }
219 }
220 
221 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<16> scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
222  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 16, 0, InitDefaultsscc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
239 
241  GOOGLE_PROTOBUF_VERIFY_VERSION;
242 
243  {
245  new (ptr) ::operations_research::sat::CpModelProto();
246  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
247  }
248 }
249 
250 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<6> scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto =
251  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 6, 0, InitDefaultsscc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
258 
260  GOOGLE_PROTOBUF_VERIFY_VERSION;
261 
262  {
264  new (ptr) ::operations_research::sat::CpObjectiveProto();
265  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
266  }
267 }
268 
269 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto =
270  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
271 
273  GOOGLE_PROTOBUF_VERIFY_VERSION;
274 
275  {
277  new (ptr) ::operations_research::sat::CpSolverResponse();
278  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
279  }
280 }
281 
282 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto =
283  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto}, {
285 
287  GOOGLE_PROTOBUF_VERIFY_VERSION;
288 
289  {
291  new (ptr) ::operations_research::sat::CumulativeConstraintProto();
292  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
293  }
294 }
295 
296 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
297  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
298 
300  GOOGLE_PROTOBUF_VERIFY_VERSION;
301 
302  {
304  new (ptr) ::operations_research::sat::DecisionStrategyProto();
305  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
306  }
307 }
308 
309 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto =
310  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
312 
314  GOOGLE_PROTOBUF_VERIFY_VERSION;
315 
316  {
318  new (ptr) ::operations_research::sat::DecisionStrategyProto_AffineTransformation();
319  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
320  }
321 }
322 
324  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
325 
327  GOOGLE_PROTOBUF_VERIFY_VERSION;
328 
329  {
331  new (ptr) ::operations_research::sat::DenseMatrixProto();
332  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
333  }
334 }
335 
336 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto =
337  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
338 
340  GOOGLE_PROTOBUF_VERIFY_VERSION;
341 
342  {
344  new (ptr) ::operations_research::sat::ElementConstraintProto();
345  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
346  }
347 }
348 
349 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
350  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
351 
353  GOOGLE_PROTOBUF_VERIFY_VERSION;
354 
355  {
357  new (ptr) ::operations_research::sat::IntegerArgumentProto();
358  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
359  }
360 }
361 
362 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto =
363  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
364 
366  GOOGLE_PROTOBUF_VERIFY_VERSION;
367 
368  {
370  new (ptr) ::operations_research::sat::IntegerVariableProto();
371  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
372  }
373 }
374 
375 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto =
376  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
377 
379  GOOGLE_PROTOBUF_VERIFY_VERSION;
380 
381  {
383  new (ptr) ::operations_research::sat::IntervalConstraintProto();
384  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
385  }
386 }
387 
388 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
389  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
391 
393  GOOGLE_PROTOBUF_VERIFY_VERSION;
394 
395  {
397  new (ptr) ::operations_research::sat::InverseConstraintProto();
398  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
399  }
400 }
401 
402 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
403  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
404 
406  GOOGLE_PROTOBUF_VERIFY_VERSION;
407 
408  {
410  new (ptr) ::operations_research::sat::LinearArgumentProto();
411  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
412  }
413 }
414 
415 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto =
416  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
418 
420  GOOGLE_PROTOBUF_VERIFY_VERSION;
421 
422  {
424  new (ptr) ::operations_research::sat::LinearConstraintProto();
425  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
426  }
427 }
428 
429 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
430  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
431 
433  GOOGLE_PROTOBUF_VERIFY_VERSION;
434 
435  {
437  new (ptr) ::operations_research::sat::LinearExpressionProto();
438  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
439  }
440 }
441 
442 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto =
443  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
444 
446  GOOGLE_PROTOBUF_VERIFY_VERSION;
447 
448  {
450  new (ptr) ::operations_research::sat::NoOverlap2DConstraintProto();
451  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
452  }
453 }
454 
455 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
456  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
457 
459  GOOGLE_PROTOBUF_VERIFY_VERSION;
460 
461  {
463  new (ptr) ::operations_research::sat::NoOverlapConstraintProto();
464  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
465  }
466 }
467 
468 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
469  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
470 
472  GOOGLE_PROTOBUF_VERIFY_VERSION;
473 
474  {
476  new (ptr) ::operations_research::sat::PartialVariableAssignment();
477  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
478  }
479 }
480 
481 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto =
482  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
483 
485  GOOGLE_PROTOBUF_VERIFY_VERSION;
486 
487  {
489  new (ptr) ::operations_research::sat::ReservoirConstraintProto();
490  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
491  }
492 }
493 
494 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
495  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
496 
498  GOOGLE_PROTOBUF_VERIFY_VERSION;
499 
500  {
502  new (ptr) ::operations_research::sat::RoutesConstraintProto();
503  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
504  }
505 }
506 
507 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
508  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
509 
511  GOOGLE_PROTOBUF_VERIFY_VERSION;
512 
513  {
515  new (ptr) ::operations_research::sat::SparsePermutationProto();
516  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
517  }
518 }
519 
520 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto =
521  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
522 
524  GOOGLE_PROTOBUF_VERIFY_VERSION;
525 
526  {
528  new (ptr) ::operations_research::sat::SymmetryProto();
529  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
530  }
531 }
532 
533 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto =
534  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
537 
539  GOOGLE_PROTOBUF_VERIFY_VERSION;
540 
541  {
543  new (ptr) ::operations_research::sat::TableConstraintProto();
544  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
545  }
546 }
547 
548 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
549  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
550 
551 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[28];
552 static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3];
553 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto = nullptr;
554 
556  ~0u, // no _has_bits_
557  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, _internal_metadata_),
558  ~0u, // no _extensions_
559  ~0u, // no _oneof_case_
560  ~0u, // no _weak_field_map_
561  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, name_),
562  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, domain_),
563  ~0u, // no _has_bits_
564  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, _internal_metadata_),
565  ~0u, // no _extensions_
566  ~0u, // no _oneof_case_
567  ~0u, // no _weak_field_map_
568  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, literals_),
569  ~0u, // no _has_bits_
570  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, _internal_metadata_),
571  ~0u, // no _extensions_
572  ~0u, // no _oneof_case_
573  ~0u, // no _weak_field_map_
574  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, target_),
575  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, vars_),
576  ~0u, // no _has_bits_
577  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, _internal_metadata_),
578  ~0u, // no _extensions_
579  ~0u, // no _oneof_case_
580  ~0u, // no _weak_field_map_
581  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, vars_),
582  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, coeffs_),
583  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, offset_),
584  ~0u, // no _has_bits_
585  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, _internal_metadata_),
586  ~0u, // no _extensions_
587  ~0u, // no _oneof_case_
588  ~0u, // no _weak_field_map_
589  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, target_),
590  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, exprs_),
591  ~0u, // no _has_bits_
592  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, _internal_metadata_),
593  ~0u, // no _extensions_
594  ~0u, // no _oneof_case_
595  ~0u, // no _weak_field_map_
596  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, vars_),
597  ~0u, // no _has_bits_
598  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, _internal_metadata_),
599  ~0u, // no _extensions_
600  ~0u, // no _oneof_case_
601  ~0u, // no _weak_field_map_
602  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, vars_),
603  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, coeffs_),
604  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, domain_),
605  ~0u, // no _has_bits_
606  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, _internal_metadata_),
607  ~0u, // no _extensions_
608  ~0u, // no _oneof_case_
609  ~0u, // no _weak_field_map_
610  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, index_),
611  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, target_),
612  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, vars_),
613  ~0u, // no _has_bits_
614  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, _internal_metadata_),
615  ~0u, // no _extensions_
616  ~0u, // no _oneof_case_
617  ~0u, // no _weak_field_map_
618  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_),
619  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_),
620  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_),
621  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_view_),
622  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_view_),
623  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_view_),
624  ~0u, // no _has_bits_
625  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, _internal_metadata_),
626  ~0u, // no _extensions_
627  ~0u, // no _oneof_case_
628  ~0u, // no _weak_field_map_
629  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, intervals_),
630  ~0u, // no _has_bits_
631  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, _internal_metadata_),
632  ~0u, // no _extensions_
633  ~0u, // no _oneof_case_
634  ~0u, // no _weak_field_map_
635  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, x_intervals_),
636  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, y_intervals_),
637  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, boxes_with_null_area_can_overlap_),
638  ~0u, // no _has_bits_
639  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, _internal_metadata_),
640  ~0u, // no _extensions_
641  ~0u, // no _oneof_case_
642  ~0u, // no _weak_field_map_
643  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, capacity_),
644  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, intervals_),
645  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, demands_),
646  ~0u, // no _has_bits_
647  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, _internal_metadata_),
648  ~0u, // no _extensions_
649  ~0u, // no _oneof_case_
650  ~0u, // no _weak_field_map_
651  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, min_level_),
652  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, max_level_),
653  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, times_),
654  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, demands_),
655  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, actives_),
656  ~0u, // no _has_bits_
657  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, _internal_metadata_),
658  ~0u, // no _extensions_
659  ~0u, // no _oneof_case_
660  ~0u, // no _weak_field_map_
661  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, tails_),
662  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, heads_),
663  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, literals_),
664  ~0u, // no _has_bits_
665  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, _internal_metadata_),
666  ~0u, // no _extensions_
667  ~0u, // no _oneof_case_
668  ~0u, // no _weak_field_map_
669  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, tails_),
670  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, heads_),
671  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, literals_),
672  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, demands_),
673  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, capacity_),
674  ~0u, // no _has_bits_
675  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, _internal_metadata_),
676  ~0u, // no _extensions_
677  ~0u, // no _oneof_case_
678  ~0u, // no _weak_field_map_
679  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, vars_),
680  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, values_),
681  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, negated_),
682  ~0u, // no _has_bits_
683  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, _internal_metadata_),
684  ~0u, // no _extensions_
685  ~0u, // no _oneof_case_
686  ~0u, // no _weak_field_map_
687  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_direct_),
688  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_inverse_),
689  ~0u, // no _has_bits_
690  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, _internal_metadata_),
691  ~0u, // no _extensions_
692  ~0u, // no _oneof_case_
693  ~0u, // no _weak_field_map_
694  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, starting_state_),
695  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, final_states_),
696  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_tail_),
697  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_head_),
698  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_label_),
699  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, vars_),
700  ~0u, // no _has_bits_
701  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _internal_metadata_),
702  ~0u, // no _extensions_
703  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _oneof_case_[0]),
704  ~0u, // no _weak_field_map_
705  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, name_),
706  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, enforcement_literal_),
707  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
708  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
709  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
710  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
711  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
712  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
713  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
714  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
715  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
716  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
717  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
718  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
719  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
720  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
721  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
722  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
723  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
724  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
725  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
726  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
727  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
728  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
729  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
730  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
731  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
732  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, constraint_),
733  ~0u, // no _has_bits_
734  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, _internal_metadata_),
735  ~0u, // no _extensions_
736  ~0u, // no _oneof_case_
737  ~0u, // no _weak_field_map_
738  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, vars_),
739  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, coeffs_),
740  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, offset_),
741  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, scaling_factor_),
742  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, domain_),
743  ~0u, // no _has_bits_
744  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, _internal_metadata_),
745  ~0u, // no _extensions_
746  ~0u, // no _oneof_case_
747  ~0u, // no _weak_field_map_
748  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, var_),
749  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, offset_),
750  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, positive_coeff_),
751  ~0u, // no _has_bits_
752  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, _internal_metadata_),
753  ~0u, // no _extensions_
754  ~0u, // no _oneof_case_
755  ~0u, // no _weak_field_map_
756  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variables_),
757  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variable_selection_strategy_),
758  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, domain_reduction_strategy_),
759  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, transformations_),
760  ~0u, // no _has_bits_
761  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, _internal_metadata_),
762  ~0u, // no _extensions_
763  ~0u, // no _oneof_case_
764  ~0u, // no _weak_field_map_
765  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, vars_),
766  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, values_),
767  ~0u, // no _has_bits_
768  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, _internal_metadata_),
769  ~0u, // no _extensions_
770  ~0u, // no _oneof_case_
771  ~0u, // no _weak_field_map_
772  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, support_),
773  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, cycle_sizes_),
774  ~0u, // no _has_bits_
775  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, _internal_metadata_),
776  ~0u, // no _extensions_
777  ~0u, // no _oneof_case_
778  ~0u, // no _weak_field_map_
779  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_rows_),
780  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_cols_),
781  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, entries_),
782  ~0u, // no _has_bits_
783  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, _internal_metadata_),
784  ~0u, // no _extensions_
785  ~0u, // no _oneof_case_
786  ~0u, // no _weak_field_map_
787  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, permutations_),
788  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, orbitopes_),
789  ~0u, // no _has_bits_
790  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, _internal_metadata_),
791  ~0u, // no _extensions_
792  ~0u, // no _oneof_case_
793  ~0u, // no _weak_field_map_
794  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, name_),
795  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, variables_),
796  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, constraints_),
797  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, objective_),
798  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, search_strategy_),
799  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, solution_hint_),
800  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, assumptions_),
801  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, symmetry_),
802  ~0u, // no _has_bits_
803  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, _internal_metadata_),
804  ~0u, // no _extensions_
805  ~0u, // no _oneof_case_
806  ~0u, // no _weak_field_map_
807  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, status_),
808  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_),
809  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, objective_value_),
810  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, best_objective_bound_),
811  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_lower_bounds_),
812  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_upper_bounds_),
813  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, tightened_variables_),
814  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, sufficient_assumptions_for_infeasibility_),
815  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, all_solutions_were_found_),
816  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_booleans_),
817  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_conflicts_),
818  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_branches_),
819  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_binary_propagations_),
820  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_integer_propagations_),
821  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_restarts_),
822  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_lp_iterations_),
823  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, wall_time_),
824  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, user_time_),
825  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, deterministic_time_),
826  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, primal_integral_),
827  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_info_),
828  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, logs_),
829 };
830 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
831  { 0, -1, sizeof(::operations_research::sat::IntegerVariableProto)},
832  { 7, -1, sizeof(::operations_research::sat::BoolArgumentProto)},
833  { 13, -1, sizeof(::operations_research::sat::IntegerArgumentProto)},
834  { 20, -1, sizeof(::operations_research::sat::LinearExpressionProto)},
835  { 28, -1, sizeof(::operations_research::sat::LinearArgumentProto)},
836  { 35, -1, sizeof(::operations_research::sat::AllDifferentConstraintProto)},
837  { 41, -1, sizeof(::operations_research::sat::LinearConstraintProto)},
838  { 49, -1, sizeof(::operations_research::sat::ElementConstraintProto)},
839  { 57, -1, sizeof(::operations_research::sat::IntervalConstraintProto)},
840  { 68, -1, sizeof(::operations_research::sat::NoOverlapConstraintProto)},
841  { 74, -1, sizeof(::operations_research::sat::NoOverlap2DConstraintProto)},
842  { 82, -1, sizeof(::operations_research::sat::CumulativeConstraintProto)},
843  { 90, -1, sizeof(::operations_research::sat::ReservoirConstraintProto)},
844  { 100, -1, sizeof(::operations_research::sat::CircuitConstraintProto)},
845  { 108, -1, sizeof(::operations_research::sat::RoutesConstraintProto)},
846  { 118, -1, sizeof(::operations_research::sat::TableConstraintProto)},
847  { 126, -1, sizeof(::operations_research::sat::InverseConstraintProto)},
848  { 133, -1, sizeof(::operations_research::sat::AutomatonConstraintProto)},
849  { 144, -1, sizeof(::operations_research::sat::ConstraintProto)},
850  { 177, -1, sizeof(::operations_research::sat::CpObjectiveProto)},
851  { 187, -1, sizeof(::operations_research::sat::DecisionStrategyProto_AffineTransformation)},
852  { 195, -1, sizeof(::operations_research::sat::DecisionStrategyProto)},
853  { 204, -1, sizeof(::operations_research::sat::PartialVariableAssignment)},
854  { 211, -1, sizeof(::operations_research::sat::SparsePermutationProto)},
855  { 218, -1, sizeof(::operations_research::sat::DenseMatrixProto)},
856  { 226, -1, sizeof(::operations_research::sat::SymmetryProto)},
857  { 233, -1, sizeof(::operations_research::sat::CpModelProto)},
858  { 246, -1, sizeof(::operations_research::sat::CpSolverResponse)},
859 };
860 
861 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
862  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerVariableProto_default_instance_),
863  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_BoolArgumentProto_default_instance_),
864  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerArgumentProto_default_instance_),
865  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearExpressionProto_default_instance_),
866  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearArgumentProto_default_instance_),
867  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AllDifferentConstraintProto_default_instance_),
868  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearConstraintProto_default_instance_),
869  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ElementConstraintProto_default_instance_),
870  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntervalConstraintProto_default_instance_),
871  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlapConstraintProto_default_instance_),
872  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlap2DConstraintProto_default_instance_),
873  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CumulativeConstraintProto_default_instance_),
874  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ReservoirConstraintProto_default_instance_),
875  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CircuitConstraintProto_default_instance_),
876  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_RoutesConstraintProto_default_instance_),
877  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_TableConstraintProto_default_instance_),
878  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_InverseConstraintProto_default_instance_),
879  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AutomatonConstraintProto_default_instance_),
880  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ConstraintProto_default_instance_),
881  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpObjectiveProto_default_instance_),
882  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_AffineTransformation_default_instance_),
883  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_default_instance_),
884  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_PartialVariableAssignment_default_instance_),
885  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SparsePermutationProto_default_instance_),
886  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DenseMatrixProto_default_instance_),
887  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SymmetryProto_default_instance_),
888  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpModelProto_default_instance_),
889  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpSolverResponse_default_instance_),
890 };
891 
892 const char descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
893  "\n\032ortools/sat/cp_model.proto\022\027operations"
894  "_research.sat\"4\n\024IntegerVariableProto\022\014\n"
895  "\004name\030\001 \001(\t\022\016\n\006domain\030\002 \003(\003\"%\n\021BoolArgum"
896  "entProto\022\020\n\010literals\030\001 \003(\005\"4\n\024IntegerArg"
897  "umentProto\022\016\n\006target\030\001 \001(\005\022\014\n\004vars\030\002 \003(\005"
898  "\"E\n\025LinearExpressionProto\022\014\n\004vars\030\001 \003(\005\022"
899  "\016\n\006coeffs\030\002 \003(\003\022\016\n\006offset\030\003 \001(\003\"\224\001\n\023Line"
900  "arArgumentProto\022>\n\006target\030\001 \001(\0132..operat"
901  "ions_research.sat.LinearExpressionProto\022"
902  "=\n\005exprs\030\002 \003(\0132..operations_research.sat"
903  ".LinearExpressionProto\"+\n\033AllDifferentCo"
904  "nstraintProto\022\014\n\004vars\030\001 \003(\005\"E\n\025LinearCon"
905  "straintProto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs\030\002 \003"
906  "(\003\022\016\n\006domain\030\003 \003(\003\"E\n\026ElementConstraintP"
907  "roto\022\r\n\005index\030\001 \001(\005\022\016\n\006target\030\002 \001(\005\022\014\n\004v"
908  "ars\030\003 \003(\005\"\214\002\n\027IntervalConstraintProto\022\r\n"
909  "\005start\030\001 \001(\005\022\013\n\003end\030\002 \001(\005\022\014\n\004size\030\003 \001(\005\022"
910  "B\n\nstart_view\030\004 \001(\0132..operations_researc"
911  "h.sat.LinearExpressionProto\022@\n\010end_view\030"
912  "\005 \001(\0132..operations_research.sat.LinearEx"
913  "pressionProto\022A\n\tsize_view\030\006 \001(\0132..opera"
914  "tions_research.sat.LinearExpressionProto"
915  "\"-\n\030NoOverlapConstraintProto\022\021\n\tinterval"
916  "s\030\001 \003(\005\"p\n\032NoOverlap2DConstraintProto\022\023\n"
917  "\013x_intervals\030\001 \003(\005\022\023\n\013y_intervals\030\002 \003(\005\022"
918  "(\n boxes_with_null_area_can_overlap\030\003 \001("
919  "\010\"Q\n\031CumulativeConstraintProto\022\020\n\010capaci"
920  "ty\030\001 \001(\005\022\021\n\tintervals\030\002 \003(\005\022\017\n\007demands\030\003"
921  " \003(\005\"q\n\030ReservoirConstraintProto\022\021\n\tmin_"
922  "level\030\001 \001(\003\022\021\n\tmax_level\030\002 \001(\003\022\r\n\005times\030"
923  "\003 \003(\005\022\017\n\007demands\030\004 \003(\003\022\017\n\007actives\030\005 \003(\005\""
924  "H\n\026CircuitConstraintProto\022\r\n\005tails\030\003 \003(\005"
925  "\022\r\n\005heads\030\004 \003(\005\022\020\n\010literals\030\005 \003(\005\"j\n\025Rou"
926  "tesConstraintProto\022\r\n\005tails\030\001 \003(\005\022\r\n\005hea"
927  "ds\030\002 \003(\005\022\020\n\010literals\030\003 \003(\005\022\017\n\007demands\030\004 "
928  "\003(\005\022\020\n\010capacity\030\005 \001(\003\"E\n\024TableConstraint"
929  "Proto\022\014\n\004vars\030\001 \003(\005\022\016\n\006values\030\002 \003(\003\022\017\n\007n"
930  "egated\030\003 \001(\010\"=\n\026InverseConstraintProto\022\020"
931  "\n\010f_direct\030\001 \003(\005\022\021\n\tf_inverse\030\002 \003(\005\"\242\001\n\030"
932  "AutomatonConstraintProto\022\026\n\016starting_sta"
933  "te\030\002 \001(\003\022\024\n\014final_states\030\003 \003(\003\022\027\n\017transi"
934  "tion_tail\030\004 \003(\003\022\027\n\017transition_head\030\005 \003(\003"
935  "\022\030\n\020transition_label\030\006 \003(\003\022\014\n\004vars\030\007 \003(\005"
936  "\"\355\r\n\017ConstraintProto\022\014\n\004name\030\001 \001(\t\022\033\n\023en"
937  "forcement_literal\030\002 \003(\005\022=\n\007bool_or\030\003 \001(\013"
938  "2*.operations_research.sat.BoolArgumentP"
939  "rotoH\000\022>\n\010bool_and\030\004 \001(\0132*.operations_re"
940  "search.sat.BoolArgumentProtoH\000\022A\n\013at_mos"
941  "t_one\030\032 \001(\0132*.operations_research.sat.Bo"
942  "olArgumentProtoH\000\022A\n\013exactly_one\030\035 \001(\0132*"
943  ".operations_research.sat.BoolArgumentPro"
944  "toH\000\022>\n\010bool_xor\030\005 \001(\0132*.operations_rese"
945  "arch.sat.BoolArgumentProtoH\000\022@\n\007int_div\030"
946  "\007 \001(\0132-.operations_research.sat.IntegerA"
947  "rgumentProtoH\000\022@\n\007int_mod\030\010 \001(\0132-.operat"
948  "ions_research.sat.IntegerArgumentProtoH\000"
949  "\022@\n\007int_max\030\t \001(\0132-.operations_research."
950  "sat.IntegerArgumentProtoH\000\022\?\n\007lin_max\030\033 "
951  "\001(\0132,.operations_research.sat.LinearArgu"
952  "mentProtoH\000\022@\n\007int_min\030\n \001(\0132-.operation"
953  "s_research.sat.IntegerArgumentProtoH\000\022\?\n"
954  "\007lin_min\030\034 \001(\0132,.operations_research.sat"
955  ".LinearArgumentProtoH\000\022A\n\010int_prod\030\013 \001(\013"
956  "2-.operations_research.sat.IntegerArgume"
957  "ntProtoH\000\022@\n\006linear\030\014 \001(\0132..operations_r"
958  "esearch.sat.LinearConstraintProtoH\000\022H\n\010a"
959  "ll_diff\030\r \001(\01324.operations_research.sat."
960  "AllDifferentConstraintProtoH\000\022B\n\007element"
961  "\030\016 \001(\0132/.operations_research.sat.Element"
962  "ConstraintProtoH\000\022B\n\007circuit\030\017 \001(\0132/.ope"
963  "rations_research.sat.CircuitConstraintPr"
964  "otoH\000\022@\n\006routes\030\027 \001(\0132..operations_resea"
965  "rch.sat.RoutesConstraintProtoH\000\022>\n\005table"
966  "\030\020 \001(\0132-.operations_research.sat.TableCo"
967  "nstraintProtoH\000\022F\n\tautomaton\030\021 \001(\01321.ope"
968  "rations_research.sat.AutomatonConstraint"
969  "ProtoH\000\022B\n\007inverse\030\022 \001(\0132/.operations_re"
970  "search.sat.InverseConstraintProtoH\000\022F\n\tr"
971  "eservoir\030\030 \001(\01321.operations_research.sat"
972  ".ReservoirConstraintProtoH\000\022D\n\010interval\030"
973  "\023 \001(\01320.operations_research.sat.Interval"
974  "ConstraintProtoH\000\022G\n\nno_overlap\030\024 \001(\01321."
975  "operations_research.sat.NoOverlapConstra"
976  "intProtoH\000\022L\n\rno_overlap_2d\030\025 \001(\01323.oper"
977  "ations_research.sat.NoOverlap2DConstrain"
978  "tProtoH\000\022H\n\ncumulative\030\026 \001(\01322.operation"
979  "s_research.sat.CumulativeConstraintProto"
980  "H\000B\014\n\nconstraint\"h\n\020CpObjectiveProto\022\014\n\004"
981  "vars\030\001 \003(\005\022\016\n\006coeffs\030\004 \003(\003\022\016\n\006offset\030\002 \001"
982  "(\001\022\026\n\016scaling_factor\030\003 \001(\001\022\016\n\006domain\030\005 \003"
983  "(\003\"\325\005\n\025DecisionStrategyProto\022\021\n\tvariable"
984  "s\030\001 \003(\005\022m\n\033variable_selection_strategy\030\002"
985  " \001(\0162H.operations_research.sat.DecisionS"
986  "trategyProto.VariableSelectionStrategy\022i"
987  "\n\031domain_reduction_strategy\030\003 \001(\0162F.oper"
988  "ations_research.sat.DecisionStrategyProt"
989  "o.DomainReductionStrategy\022\\\n\017transformat"
990  "ions\030\004 \003(\0132C.operations_research.sat.Dec"
991  "isionStrategyProto.AffineTransformation\032"
992  "K\n\024AffineTransformation\022\013\n\003var\030\001 \001(\005\022\016\n\006"
993  "offset\030\002 \001(\003\022\026\n\016positive_coeff\030\003 \001(\003\"\224\001\n"
994  "\031VariableSelectionStrategy\022\020\n\014CHOOSE_FIR"
995  "ST\020\000\022\025\n\021CHOOSE_LOWEST_MIN\020\001\022\026\n\022CHOOSE_HI"
996  "GHEST_MAX\020\002\022\032\n\026CHOOSE_MIN_DOMAIN_SIZE\020\003\022"
997  "\032\n\026CHOOSE_MAX_DOMAIN_SIZE\020\004\"\214\001\n\027DomainRe"
998  "ductionStrategy\022\024\n\020SELECT_MIN_VALUE\020\000\022\024\n"
999  "\020SELECT_MAX_VALUE\020\001\022\025\n\021SELECT_LOWER_HALF"
1000  "\020\002\022\025\n\021SELECT_UPPER_HALF\020\003\022\027\n\023SELECT_MEDI"
1001  "AN_VALUE\020\004\"9\n\031PartialVariableAssignment\022"
1002  "\014\n\004vars\030\001 \003(\005\022\016\n\006values\030\002 \003(\003\">\n\026SparseP"
1003  "ermutationProto\022\017\n\007support\030\001 \003(\005\022\023\n\013cycl"
1004  "e_sizes\030\002 \003(\005\"G\n\020DenseMatrixProto\022\020\n\010num"
1005  "_rows\030\001 \001(\005\022\020\n\010num_cols\030\002 \001(\005\022\017\n\007entries"
1006  "\030\003 \003(\005\"\224\001\n\rSymmetryProto\022E\n\014permutations"
1007  "\030\001 \003(\0132/.operations_research.sat.SparseP"
1008  "ermutationProto\022<\n\torbitopes\030\002 \003(\0132).ope"
1009  "rations_research.sat.DenseMatrixProto\"\276\003"
1010  "\n\014CpModelProto\022\014\n\004name\030\001 \001(\t\022@\n\tvariable"
1011  "s\030\002 \003(\0132-.operations_research.sat.Intege"
1012  "rVariableProto\022=\n\013constraints\030\003 \003(\0132(.op"
1013  "erations_research.sat.ConstraintProto\022<\n"
1014  "\tobjective\030\004 \001(\0132).operations_research.s"
1015  "at.CpObjectiveProto\022G\n\017search_strategy\030\005"
1016  " \003(\0132..operations_research.sat.DecisionS"
1017  "trategyProto\022I\n\rsolution_hint\030\006 \001(\01322.op"
1018  "erations_research.sat.PartialVariableAss"
1019  "ignment\022\023\n\013assumptions\030\007 \003(\005\0228\n\010symmetry"
1020  "\030\010 \001(\0132&.operations_research.sat.Symmetr"
1021  "yProto\"\251\005\n\020CpSolverResponse\0227\n\006status\030\001 "
1022  "\001(\0162\'.operations_research.sat.CpSolverSt"
1023  "atus\022\020\n\010solution\030\002 \003(\003\022\027\n\017objective_valu"
1024  "e\030\003 \001(\001\022\034\n\024best_objective_bound\030\004 \001(\001\022\035\n"
1025  "\025solution_lower_bounds\030\022 \003(\003\022\035\n\025solution"
1026  "_upper_bounds\030\023 \003(\003\022J\n\023tightened_variabl"
1027  "es\030\025 \003(\0132-.operations_research.sat.Integ"
1028  "erVariableProto\0220\n(sufficient_assumption"
1029  "s_for_infeasibility\030\027 \003(\005\022 \n\030all_solutio"
1030  "ns_were_found\030\005 \001(\010\022\024\n\014num_booleans\030\n \001("
1031  "\003\022\025\n\rnum_conflicts\030\013 \001(\003\022\024\n\014num_branches"
1032  "\030\014 \001(\003\022\037\n\027num_binary_propagations\030\r \001(\003\022"
1033  " \n\030num_integer_propagations\030\016 \001(\003\022\024\n\014num"
1034  "_restarts\030\030 \001(\003\022\031\n\021num_lp_iterations\030\031 \001"
1035  "(\003\022\021\n\twall_time\030\017 \001(\001\022\021\n\tuser_time\030\020 \001(\001"
1036  "\022\032\n\022deterministic_time\030\021 \001(\001\022\027\n\017primal_i"
1037  "ntegral\030\026 \001(\001\022\025\n\rsolution_info\030\024 \001(\t\022\014\n\004"
1038  "logs\030\032 \001(\t*[\n\016CpSolverStatus\022\013\n\007UNKNOWN\020"
1039  "\000\022\021\n\rMODEL_INVALID\020\001\022\014\n\010FEASIBLE\020\002\022\016\n\nIN"
1040  "FEASIBLE\020\003\022\013\n\007OPTIMAL\020\004B@\n\026com.google.or"
1041  "tools.satB\017CpModelProtobufP\001\252\002\022Google.Or"
1042  "Tools.Satb\006proto3"
1043  ;
1044 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_deps[1] = {
1045 };
1046 static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_sccs[28] = {
1075 };
1076 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once;
1077 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto = {
1078  false, false, descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto, "ortools/sat/cp_model.proto", 5977,
1082 };
1083 
1084 // Force running AddDescriptors() at dynamic initialization time.
1085 static bool dynamic_init_dummy_ortools_2fsat_2fcp_5fmodel_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto)), true);
1086 namespace operations_research {
1087 namespace sat {
1088 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_VariableSelectionStrategy_descriptor() {
1089  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1091 }
1093  switch (value) {
1094  case 0:
1095  case 1:
1096  case 2:
1097  case 3:
1098  case 4:
1099  return true;
1100  default:
1101  return false;
1102  }
1103 }
1104 
1105 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1106 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_FIRST;
1107 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_LOWEST_MIN;
1108 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_HIGHEST_MAX;
1109 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_MIN_DOMAIN_SIZE;
1110 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_MAX_DOMAIN_SIZE;
1111 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::VariableSelectionStrategy_MIN;
1112 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::VariableSelectionStrategy_MAX;
1113 constexpr int DecisionStrategyProto::VariableSelectionStrategy_ARRAYSIZE;
1114 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1115 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_DomainReductionStrategy_descriptor() {
1116  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1118 }
1120  switch (value) {
1121  case 0:
1122  case 1:
1123  case 2:
1124  case 3:
1125  case 4:
1126  return true;
1127  default:
1128  return false;
1129  }
1130 }
1131 
1132 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1133 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MIN_VALUE;
1134 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MAX_VALUE;
1135 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_LOWER_HALF;
1136 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_UPPER_HALF;
1137 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MEDIAN_VALUE;
1138 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::DomainReductionStrategy_MIN;
1139 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::DomainReductionStrategy_MAX;
1140 constexpr int DecisionStrategyProto::DomainReductionStrategy_ARRAYSIZE;
1141 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1142 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CpSolverStatus_descriptor() {
1143  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1145 }
1147  switch (value) {
1148  case 0:
1149  case 1:
1150  case 2:
1151  case 3:
1152  case 4:
1153  return true;
1154  default:
1155  return false;
1156  }
1157 }
1158 
1159 
1160 // ===================================================================
1161 
1163  public:
1164 };
1165 
1166 IntegerVariableProto::IntegerVariableProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1167  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1168  domain_(arena) {
1169  SharedCtor();
1170  RegisterArenaDtor(arena);
1171  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerVariableProto)
1172 }
1173 IntegerVariableProto::IntegerVariableProto(const IntegerVariableProto& from)
1174  : ::PROTOBUF_NAMESPACE_ID::Message(),
1175  domain_(from.domain_) {
1176  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1177  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1178  if (!from._internal_name().empty()) {
1179  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
1180  GetArena());
1181  }
1182  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerVariableProto)
1183 }
1184 
1185 void IntegerVariableProto::SharedCtor() {
1186  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1187  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1188 }
1189 
1190 IntegerVariableProto::~IntegerVariableProto() {
1191  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerVariableProto)
1192  SharedDtor();
1193  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1194 }
1195 
1196 void IntegerVariableProto::SharedDtor() {
1197  GOOGLE_DCHECK(GetArena() == nullptr);
1198  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1199 }
1200 
1201 void IntegerVariableProto::ArenaDtor(void* object) {
1202  IntegerVariableProto* _this = reinterpret_cast< IntegerVariableProto* >(object);
1203  (void)_this;
1204 }
1205 void IntegerVariableProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1206 }
1207 void IntegerVariableProto::SetCachedSize(int size) const {
1208  _cached_size_.Set(size);
1209 }
1210 const IntegerVariableProto& IntegerVariableProto::default_instance() {
1211  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1212  return *internal_default_instance();
1213 }
1214 
1215 
1216 void IntegerVariableProto::Clear() {
1217 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerVariableProto)
1218  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1219  // Prevent compiler warnings about cached_has_bits being unused
1220  (void) cached_has_bits;
1221 
1222  domain_.Clear();
1223  name_.ClearToEmpty();
1224  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1225 }
1226 
1227 const char* IntegerVariableProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1228 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1229  while (!ctx->Done(&ptr)) {
1231  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1232  CHK_(ptr);
1233  switch (tag >> 3) {
1234  // string name = 1;
1235  case 1:
1236  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1237  auto str = _internal_mutable_name();
1238  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1239  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.IntegerVariableProto.name"));
1240  CHK_(ptr);
1241  } else goto handle_unusual;
1242  continue;
1243  // repeated int64 domain = 2;
1244  case 2:
1245  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1246  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
1247  CHK_(ptr);
1248  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1249  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1250  CHK_(ptr);
1251  } else goto handle_unusual;
1252  continue;
1253  default: {
1254  handle_unusual:
1255  if ((tag & 7) == 4 || tag == 0) {
1256  ctx->SetLastTag(tag);
1257  goto success;
1258  }
1259  ptr = UnknownFieldParse(tag,
1260  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1261  ptr, ctx);
1262  CHK_(ptr != nullptr);
1263  continue;
1264  }
1265  } // switch
1266  } // while
1267 success:
1268  return ptr;
1269 failure:
1270  ptr = nullptr;
1271  goto success;
1272 #undef CHK_
1273 }
1274 
1275 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerVariableProto::_InternalSerialize(
1276  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1277  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerVariableProto)
1278  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1279  (void) cached_has_bits;
1280 
1281  // string name = 1;
1282  if (this->name().size() > 0) {
1283  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
1284  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
1285  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
1286  "operations_research.sat.IntegerVariableProto.name");
1287  target = stream->WriteStringMaybeAliased(
1288  1, this->_internal_name(), target);
1289  }
1290 
1291  // repeated int64 domain = 2;
1292  {
1293  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
1294  if (byte_size > 0) {
1295  target = stream->WriteInt64Packed(
1296  2, _internal_domain(), byte_size, target);
1297  }
1298  }
1299 
1300  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1301  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1302  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1303  }
1304  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerVariableProto)
1305  return target;
1306 }
1307 
1308 size_t IntegerVariableProto::ByteSizeLong() const {
1309 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerVariableProto)
1310  size_t total_size = 0;
1311 
1312  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1313  // Prevent compiler warnings about cached_has_bits being unused
1314  (void) cached_has_bits;
1315 
1316  // repeated int64 domain = 2;
1317  {
1318  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1319  Int64Size(this->domain_);
1320  if (data_size > 0) {
1321  total_size += 1 +
1322  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1323  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1324  }
1325  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1326  _domain_cached_byte_size_.store(cached_size,
1327  std::memory_order_relaxed);
1328  total_size += data_size;
1329  }
1330 
1331  // string name = 1;
1332  if (this->name().size() > 0) {
1333  total_size += 1 +
1334  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1335  this->_internal_name());
1336  }
1337 
1338  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1339  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1340  _internal_metadata_, total_size, &_cached_size_);
1341  }
1342  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1343  SetCachedSize(cached_size);
1344  return total_size;
1345 }
1346 
1347 void IntegerVariableProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1348 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntegerVariableProto)
1349  GOOGLE_DCHECK_NE(&from, this);
1350  const IntegerVariableProto* source =
1351  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntegerVariableProto>(
1352  &from);
1353  if (source == nullptr) {
1354  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntegerVariableProto)
1355  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1356  } else {
1357  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntegerVariableProto)
1358  MergeFrom(*source);
1359  }
1360 }
1361 
1362 void IntegerVariableProto::MergeFrom(const IntegerVariableProto& from) {
1363 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerVariableProto)
1364  GOOGLE_DCHECK_NE(&from, this);
1365  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1366  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1367  (void) cached_has_bits;
1368 
1369  domain_.MergeFrom(from.domain_);
1370  if (from.name().size() > 0) {
1371  _internal_set_name(from._internal_name());
1372  }
1373 }
1374 
1375 void IntegerVariableProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1376 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntegerVariableProto)
1377  if (&from == this) return;
1378  Clear();
1379  MergeFrom(from);
1380 }
1381 
1382 void IntegerVariableProto::CopyFrom(const IntegerVariableProto& from) {
1383 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerVariableProto)
1384  if (&from == this) return;
1385  Clear();
1386  MergeFrom(from);
1387 }
1388 
1389 bool IntegerVariableProto::IsInitialized() const {
1390  return true;
1391 }
1392 
1393 void IntegerVariableProto::InternalSwap(IntegerVariableProto* other) {
1394  using std::swap;
1395  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1396  domain_.InternalSwap(&other->domain_);
1397  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
1398 }
1399 
1400 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerVariableProto::GetMetadata() const {
1401  return GetMetadataStatic();
1402 }
1403 
1404 
1405 // ===================================================================
1406 
1408  public:
1409 };
1410 
1411 BoolArgumentProto::BoolArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1412  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1413  literals_(arena) {
1414  SharedCtor();
1415  RegisterArenaDtor(arena);
1416  // @@protoc_insertion_point(arena_constructor:operations_research.sat.BoolArgumentProto)
1417 }
1418 BoolArgumentProto::BoolArgumentProto(const BoolArgumentProto& from)
1419  : ::PROTOBUF_NAMESPACE_ID::Message(),
1420  literals_(from.literals_) {
1421  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1422  // @@protoc_insertion_point(copy_constructor:operations_research.sat.BoolArgumentProto)
1423 }
1424 
1425 void BoolArgumentProto::SharedCtor() {
1426 }
1427 
1428 BoolArgumentProto::~BoolArgumentProto() {
1429  // @@protoc_insertion_point(destructor:operations_research.sat.BoolArgumentProto)
1430  SharedDtor();
1431  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1432 }
1433 
1434 void BoolArgumentProto::SharedDtor() {
1435  GOOGLE_DCHECK(GetArena() == nullptr);
1436 }
1437 
1438 void BoolArgumentProto::ArenaDtor(void* object) {
1439  BoolArgumentProto* _this = reinterpret_cast< BoolArgumentProto* >(object);
1440  (void)_this;
1441 }
1442 void BoolArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1443 }
1444 void BoolArgumentProto::SetCachedSize(int size) const {
1445  _cached_size_.Set(size);
1446 }
1447 const BoolArgumentProto& BoolArgumentProto::default_instance() {
1448  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1449  return *internal_default_instance();
1450 }
1451 
1452 
1453 void BoolArgumentProto::Clear() {
1454 // @@protoc_insertion_point(message_clear_start:operations_research.sat.BoolArgumentProto)
1455  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1456  // Prevent compiler warnings about cached_has_bits being unused
1457  (void) cached_has_bits;
1458 
1459  literals_.Clear();
1460  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1461 }
1462 
1463 const char* BoolArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1464 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1465  while (!ctx->Done(&ptr)) {
1467  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1468  CHK_(ptr);
1469  switch (tag >> 3) {
1470  // repeated int32 literals = 1;
1471  case 1:
1472  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1473  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
1474  CHK_(ptr);
1475  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1476  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1477  CHK_(ptr);
1478  } else goto handle_unusual;
1479  continue;
1480  default: {
1481  handle_unusual:
1482  if ((tag & 7) == 4 || tag == 0) {
1483  ctx->SetLastTag(tag);
1484  goto success;
1485  }
1486  ptr = UnknownFieldParse(tag,
1487  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1488  ptr, ctx);
1489  CHK_(ptr != nullptr);
1490  continue;
1491  }
1492  } // switch
1493  } // while
1494 success:
1495  return ptr;
1496 failure:
1497  ptr = nullptr;
1498  goto success;
1499 #undef CHK_
1500 }
1501 
1502 ::PROTOBUF_NAMESPACE_ID::uint8* BoolArgumentProto::_InternalSerialize(
1503  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1504  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.BoolArgumentProto)
1505  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1506  (void) cached_has_bits;
1507 
1508  // repeated int32 literals = 1;
1509  {
1510  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
1511  if (byte_size > 0) {
1512  target = stream->WriteInt32Packed(
1513  1, _internal_literals(), byte_size, target);
1514  }
1515  }
1516 
1517  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1518  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1519  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1520  }
1521  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.BoolArgumentProto)
1522  return target;
1523 }
1524 
1525 size_t BoolArgumentProto::ByteSizeLong() const {
1526 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.BoolArgumentProto)
1527  size_t total_size = 0;
1528 
1529  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1530  // Prevent compiler warnings about cached_has_bits being unused
1531  (void) cached_has_bits;
1532 
1533  // repeated int32 literals = 1;
1534  {
1535  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1536  Int32Size(this->literals_);
1537  if (data_size > 0) {
1538  total_size += 1 +
1539  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1540  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1541  }
1542  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1543  _literals_cached_byte_size_.store(cached_size,
1544  std::memory_order_relaxed);
1545  total_size += data_size;
1546  }
1547 
1548  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1549  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1550  _internal_metadata_, total_size, &_cached_size_);
1551  }
1552  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1553  SetCachedSize(cached_size);
1554  return total_size;
1555 }
1556 
1557 void BoolArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1558 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.BoolArgumentProto)
1559  GOOGLE_DCHECK_NE(&from, this);
1560  const BoolArgumentProto* source =
1561  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BoolArgumentProto>(
1562  &from);
1563  if (source == nullptr) {
1564  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.BoolArgumentProto)
1565  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1566  } else {
1567  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.BoolArgumentProto)
1568  MergeFrom(*source);
1569  }
1570 }
1571 
1572 void BoolArgumentProto::MergeFrom(const BoolArgumentProto& from) {
1573 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.BoolArgumentProto)
1574  GOOGLE_DCHECK_NE(&from, this);
1575  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1576  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1577  (void) cached_has_bits;
1578 
1579  literals_.MergeFrom(from.literals_);
1580 }
1581 
1582 void BoolArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1583 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.BoolArgumentProto)
1584  if (&from == this) return;
1585  Clear();
1586  MergeFrom(from);
1587 }
1588 
1589 void BoolArgumentProto::CopyFrom(const BoolArgumentProto& from) {
1590 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.BoolArgumentProto)
1591  if (&from == this) return;
1592  Clear();
1593  MergeFrom(from);
1594 }
1595 
1596 bool BoolArgumentProto::IsInitialized() const {
1597  return true;
1598 }
1599 
1600 void BoolArgumentProto::InternalSwap(BoolArgumentProto* other) {
1601  using std::swap;
1602  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1603  literals_.InternalSwap(&other->literals_);
1604 }
1605 
1606 ::PROTOBUF_NAMESPACE_ID::Metadata BoolArgumentProto::GetMetadata() const {
1607  return GetMetadataStatic();
1608 }
1609 
1610 
1611 // ===================================================================
1612 
1614  public:
1615 };
1616 
1617 IntegerArgumentProto::IntegerArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1618  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1619  vars_(arena) {
1620  SharedCtor();
1621  RegisterArenaDtor(arena);
1622  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerArgumentProto)
1623 }
1624 IntegerArgumentProto::IntegerArgumentProto(const IntegerArgumentProto& from)
1625  : ::PROTOBUF_NAMESPACE_ID::Message(),
1626  vars_(from.vars_) {
1627  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1628  target_ = from.target_;
1629  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerArgumentProto)
1630 }
1631 
1632 void IntegerArgumentProto::SharedCtor() {
1633  target_ = 0;
1634 }
1635 
1636 IntegerArgumentProto::~IntegerArgumentProto() {
1637  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerArgumentProto)
1638  SharedDtor();
1639  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1640 }
1641 
1642 void IntegerArgumentProto::SharedDtor() {
1643  GOOGLE_DCHECK(GetArena() == nullptr);
1644 }
1645 
1646 void IntegerArgumentProto::ArenaDtor(void* object) {
1647  IntegerArgumentProto* _this = reinterpret_cast< IntegerArgumentProto* >(object);
1648  (void)_this;
1649 }
1650 void IntegerArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1651 }
1652 void IntegerArgumentProto::SetCachedSize(int size) const {
1653  _cached_size_.Set(size);
1654 }
1655 const IntegerArgumentProto& IntegerArgumentProto::default_instance() {
1656  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1657  return *internal_default_instance();
1658 }
1659 
1660 
1661 void IntegerArgumentProto::Clear() {
1662 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerArgumentProto)
1663  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1664  // Prevent compiler warnings about cached_has_bits being unused
1665  (void) cached_has_bits;
1666 
1667  vars_.Clear();
1668  target_ = 0;
1669  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1670 }
1671 
1672 const char* IntegerArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1673 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1674  while (!ctx->Done(&ptr)) {
1676  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1677  CHK_(ptr);
1678  switch (tag >> 3) {
1679  // int32 target = 1;
1680  case 1:
1681  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1682  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1683  CHK_(ptr);
1684  } else goto handle_unusual;
1685  continue;
1686  // repeated int32 vars = 2;
1687  case 2:
1688  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1689  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1690  CHK_(ptr);
1691  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1692  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1693  CHK_(ptr);
1694  } else goto handle_unusual;
1695  continue;
1696  default: {
1697  handle_unusual:
1698  if ((tag & 7) == 4 || tag == 0) {
1699  ctx->SetLastTag(tag);
1700  goto success;
1701  }
1702  ptr = UnknownFieldParse(tag,
1703  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1704  ptr, ctx);
1705  CHK_(ptr != nullptr);
1706  continue;
1707  }
1708  } // switch
1709  } // while
1710 success:
1711  return ptr;
1712 failure:
1713  ptr = nullptr;
1714  goto success;
1715 #undef CHK_
1716 }
1717 
1718 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerArgumentProto::_InternalSerialize(
1719  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1720  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerArgumentProto)
1721  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1722  (void) cached_has_bits;
1723 
1724  // int32 target = 1;
1725  if (this->target() != 0) {
1726  target = stream->EnsureSpace(target);
1727  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_target(), target);
1728  }
1729 
1730  // repeated int32 vars = 2;
1731  {
1732  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1733  if (byte_size > 0) {
1734  target = stream->WriteInt32Packed(
1735  2, _internal_vars(), byte_size, target);
1736  }
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.IntegerArgumentProto)
1744  return target;
1745 }
1746 
1747 size_t IntegerArgumentProto::ByteSizeLong() const {
1748 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerArgumentProto)
1749  size_t total_size = 0;
1750 
1751  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1752  // Prevent compiler warnings about cached_has_bits being unused
1753  (void) cached_has_bits;
1754 
1755  // repeated int32 vars = 2;
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<::PROTOBUF_NAMESPACE_ID::int32>(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  // int32 target = 1;
1771  if (this->target() != 0) {
1772  total_size += 1 +
1773  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1774  this->_internal_target());
1775  }
1776 
1777  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1778  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1779  _internal_metadata_, total_size, &_cached_size_);
1780  }
1781  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1782  SetCachedSize(cached_size);
1783  return total_size;
1784 }
1785 
1786 void IntegerArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1787 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntegerArgumentProto)
1788  GOOGLE_DCHECK_NE(&from, this);
1789  const IntegerArgumentProto* source =
1790  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntegerArgumentProto>(
1791  &from);
1792  if (source == nullptr) {
1793  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntegerArgumentProto)
1794  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1795  } else {
1796  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntegerArgumentProto)
1797  MergeFrom(*source);
1798  }
1799 }
1800 
1801 void IntegerArgumentProto::MergeFrom(const IntegerArgumentProto& from) {
1802 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerArgumentProto)
1803  GOOGLE_DCHECK_NE(&from, this);
1804  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1805  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1806  (void) cached_has_bits;
1807 
1808  vars_.MergeFrom(from.vars_);
1809  if (from.target() != 0) {
1810  _internal_set_target(from._internal_target());
1811  }
1812 }
1813 
1814 void IntegerArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1815 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntegerArgumentProto)
1816  if (&from == this) return;
1817  Clear();
1818  MergeFrom(from);
1819 }
1820 
1821 void IntegerArgumentProto::CopyFrom(const IntegerArgumentProto& from) {
1822 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerArgumentProto)
1823  if (&from == this) return;
1824  Clear();
1825  MergeFrom(from);
1826 }
1827 
1828 bool IntegerArgumentProto::IsInitialized() const {
1829  return true;
1830 }
1831 
1832 void IntegerArgumentProto::InternalSwap(IntegerArgumentProto* other) {
1833  using std::swap;
1834  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1835  vars_.InternalSwap(&other->vars_);
1836  swap(target_, other->target_);
1837 }
1838 
1839 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerArgumentProto::GetMetadata() const {
1840  return GetMetadataStatic();
1841 }
1842 
1843 
1844 // ===================================================================
1845 
1847  public:
1848 };
1849 
1850 LinearExpressionProto::LinearExpressionProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1851  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1852  vars_(arena),
1853  coeffs_(arena) {
1854  SharedCtor();
1855  RegisterArenaDtor(arena);
1856  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearExpressionProto)
1857 }
1858 LinearExpressionProto::LinearExpressionProto(const LinearExpressionProto& from)
1859  : ::PROTOBUF_NAMESPACE_ID::Message(),
1860  vars_(from.vars_),
1861  coeffs_(from.coeffs_) {
1862  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1863  offset_ = from.offset_;
1864  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearExpressionProto)
1865 }
1866 
1867 void LinearExpressionProto::SharedCtor() {
1868  offset_ = PROTOBUF_LONGLONG(0);
1869 }
1870 
1871 LinearExpressionProto::~LinearExpressionProto() {
1872  // @@protoc_insertion_point(destructor:operations_research.sat.LinearExpressionProto)
1873  SharedDtor();
1874  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1875 }
1876 
1877 void LinearExpressionProto::SharedDtor() {
1878  GOOGLE_DCHECK(GetArena() == nullptr);
1879 }
1880 
1881 void LinearExpressionProto::ArenaDtor(void* object) {
1882  LinearExpressionProto* _this = reinterpret_cast< LinearExpressionProto* >(object);
1883  (void)_this;
1884 }
1885 void LinearExpressionProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1886 }
1887 void LinearExpressionProto::SetCachedSize(int size) const {
1888  _cached_size_.Set(size);
1889 }
1890 const LinearExpressionProto& LinearExpressionProto::default_instance() {
1891  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1892  return *internal_default_instance();
1893 }
1894 
1895 
1896 void LinearExpressionProto::Clear() {
1897 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearExpressionProto)
1898  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1899  // Prevent compiler warnings about cached_has_bits being unused
1900  (void) cached_has_bits;
1901 
1902  vars_.Clear();
1903  coeffs_.Clear();
1904  offset_ = PROTOBUF_LONGLONG(0);
1905  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1906 }
1907 
1908 const char* LinearExpressionProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1909 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1910  while (!ctx->Done(&ptr)) {
1912  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1913  CHK_(ptr);
1914  switch (tag >> 3) {
1915  // repeated int32 vars = 1;
1916  case 1:
1917  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1918  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1919  CHK_(ptr);
1920  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1921  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1922  CHK_(ptr);
1923  } else goto handle_unusual;
1924  continue;
1925  // repeated int64 coeffs = 2;
1926  case 2:
1927  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1928  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
1929  CHK_(ptr);
1930  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1931  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1932  CHK_(ptr);
1933  } else goto handle_unusual;
1934  continue;
1935  // int64 offset = 3;
1936  case 3:
1937  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1938  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1939  CHK_(ptr);
1940  } else goto handle_unusual;
1941  continue;
1942  default: {
1943  handle_unusual:
1944  if ((tag & 7) == 4 || tag == 0) {
1945  ctx->SetLastTag(tag);
1946  goto success;
1947  }
1948  ptr = UnknownFieldParse(tag,
1949  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1950  ptr, ctx);
1951  CHK_(ptr != nullptr);
1952  continue;
1953  }
1954  } // switch
1955  } // while
1956 success:
1957  return ptr;
1958 failure:
1959  ptr = nullptr;
1960  goto success;
1961 #undef CHK_
1962 }
1963 
1964 ::PROTOBUF_NAMESPACE_ID::uint8* LinearExpressionProto::_InternalSerialize(
1965  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1966  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearExpressionProto)
1967  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1968  (void) cached_has_bits;
1969 
1970  // repeated int32 vars = 1;
1971  {
1972  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1973  if (byte_size > 0) {
1974  target = stream->WriteInt32Packed(
1975  1, _internal_vars(), byte_size, target);
1976  }
1977  }
1978 
1979  // repeated int64 coeffs = 2;
1980  {
1981  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
1982  if (byte_size > 0) {
1983  target = stream->WriteInt64Packed(
1984  2, _internal_coeffs(), byte_size, target);
1985  }
1986  }
1987 
1988  // int64 offset = 3;
1989  if (this->offset() != 0) {
1990  target = stream->EnsureSpace(target);
1991  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_offset(), target);
1992  }
1993 
1994  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1995  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1996  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1997  }
1998  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearExpressionProto)
1999  return target;
2000 }
2001 
2002 size_t LinearExpressionProto::ByteSizeLong() const {
2003 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearExpressionProto)
2004  size_t total_size = 0;
2005 
2006  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2007  // Prevent compiler warnings about cached_has_bits being unused
2008  (void) cached_has_bits;
2009 
2010  // repeated int32 vars = 1;
2011  {
2012  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2013  Int32Size(this->vars_);
2014  if (data_size > 0) {
2015  total_size += 1 +
2016  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2017  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2018  }
2019  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2020  _vars_cached_byte_size_.store(cached_size,
2021  std::memory_order_relaxed);
2022  total_size += data_size;
2023  }
2024 
2025  // repeated int64 coeffs = 2;
2026  {
2027  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2028  Int64Size(this->coeffs_);
2029  if (data_size > 0) {
2030  total_size += 1 +
2031  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2032  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2033  }
2034  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2035  _coeffs_cached_byte_size_.store(cached_size,
2036  std::memory_order_relaxed);
2037  total_size += data_size;
2038  }
2039 
2040  // int64 offset = 3;
2041  if (this->offset() != 0) {
2042  total_size += 1 +
2043  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
2044  this->_internal_offset());
2045  }
2046 
2047  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2048  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2049  _internal_metadata_, total_size, &_cached_size_);
2050  }
2051  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2052  SetCachedSize(cached_size);
2053  return total_size;
2054 }
2055 
2056 void LinearExpressionProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2057 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearExpressionProto)
2058  GOOGLE_DCHECK_NE(&from, this);
2059  const LinearExpressionProto* source =
2060  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearExpressionProto>(
2061  &from);
2062  if (source == nullptr) {
2063  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearExpressionProto)
2064  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2065  } else {
2066  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearExpressionProto)
2067  MergeFrom(*source);
2068  }
2069 }
2070 
2071 void LinearExpressionProto::MergeFrom(const LinearExpressionProto& from) {
2072 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearExpressionProto)
2073  GOOGLE_DCHECK_NE(&from, this);
2074  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2075  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2076  (void) cached_has_bits;
2077 
2078  vars_.MergeFrom(from.vars_);
2079  coeffs_.MergeFrom(from.coeffs_);
2080  if (from.offset() != 0) {
2081  _internal_set_offset(from._internal_offset());
2082  }
2083 }
2084 
2085 void LinearExpressionProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2086 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearExpressionProto)
2087  if (&from == this) return;
2088  Clear();
2089  MergeFrom(from);
2090 }
2091 
2092 void LinearExpressionProto::CopyFrom(const LinearExpressionProto& from) {
2093 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearExpressionProto)
2094  if (&from == this) return;
2095  Clear();
2096  MergeFrom(from);
2097 }
2098 
2099 bool LinearExpressionProto::IsInitialized() const {
2100  return true;
2101 }
2102 
2103 void LinearExpressionProto::InternalSwap(LinearExpressionProto* other) {
2104  using std::swap;
2105  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2106  vars_.InternalSwap(&other->vars_);
2107  coeffs_.InternalSwap(&other->coeffs_);
2108  swap(offset_, other->offset_);
2109 }
2110 
2111 ::PROTOBUF_NAMESPACE_ID::Metadata LinearExpressionProto::GetMetadata() const {
2112  return GetMetadataStatic();
2113 }
2114 
2115 
2116 // ===================================================================
2117 
2119  public:
2120  static const ::operations_research::sat::LinearExpressionProto& target(const LinearArgumentProto* msg);
2121 };
2122 
2123 const ::operations_research::sat::LinearExpressionProto&
2124 LinearArgumentProto::_Internal::target(const LinearArgumentProto* msg) {
2125  return *msg->target_;
2126 }
2127 LinearArgumentProto::LinearArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2128  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2129  exprs_(arena) {
2130  SharedCtor();
2131  RegisterArenaDtor(arena);
2132  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearArgumentProto)
2133 }
2134 LinearArgumentProto::LinearArgumentProto(const LinearArgumentProto& from)
2135  : ::PROTOBUF_NAMESPACE_ID::Message(),
2136  exprs_(from.exprs_) {
2137  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2138  if (from._internal_has_target()) {
2139  target_ = new ::operations_research::sat::LinearExpressionProto(*from.target_);
2140  } else {
2141  target_ = nullptr;
2142  }
2143  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearArgumentProto)
2144 }
2145 
2146 void LinearArgumentProto::SharedCtor() {
2147  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2148  target_ = nullptr;
2149 }
2150 
2151 LinearArgumentProto::~LinearArgumentProto() {
2152  // @@protoc_insertion_point(destructor:operations_research.sat.LinearArgumentProto)
2153  SharedDtor();
2154  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2155 }
2156 
2157 void LinearArgumentProto::SharedDtor() {
2158  GOOGLE_DCHECK(GetArena() == nullptr);
2159  if (this != internal_default_instance()) delete target_;
2160 }
2161 
2162 void LinearArgumentProto::ArenaDtor(void* object) {
2163  LinearArgumentProto* _this = reinterpret_cast< LinearArgumentProto* >(object);
2164  (void)_this;
2165 }
2166 void LinearArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2167 }
2168 void LinearArgumentProto::SetCachedSize(int size) const {
2169  _cached_size_.Set(size);
2170 }
2171 const LinearArgumentProto& LinearArgumentProto::default_instance() {
2172  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2173  return *internal_default_instance();
2174 }
2175 
2176 
2177 void LinearArgumentProto::Clear() {
2178 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearArgumentProto)
2179  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2180  // Prevent compiler warnings about cached_has_bits being unused
2181  (void) cached_has_bits;
2182 
2183  exprs_.Clear();
2184  if (GetArena() == nullptr && target_ != nullptr) {
2185  delete target_;
2186  }
2187  target_ = nullptr;
2188  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2189 }
2190 
2191 const char* LinearArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2192 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2193  while (!ctx->Done(&ptr)) {
2195  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2196  CHK_(ptr);
2197  switch (tag >> 3) {
2198  // .operations_research.sat.LinearExpressionProto target = 1;
2199  case 1:
2200  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2201  ptr = ctx->ParseMessage(_internal_mutable_target(), ptr);
2202  CHK_(ptr);
2203  } else goto handle_unusual;
2204  continue;
2205  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2206  case 2:
2207  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2208  ptr -= 1;
2209  do {
2210  ptr += 1;
2211  ptr = ctx->ParseMessage(_internal_add_exprs(), ptr);
2212  CHK_(ptr);
2213  if (!ctx->DataAvailable(ptr)) break;
2214  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
2215  } else goto handle_unusual;
2216  continue;
2217  default: {
2218  handle_unusual:
2219  if ((tag & 7) == 4 || tag == 0) {
2220  ctx->SetLastTag(tag);
2221  goto success;
2222  }
2223  ptr = UnknownFieldParse(tag,
2224  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2225  ptr, ctx);
2226  CHK_(ptr != nullptr);
2227  continue;
2228  }
2229  } // switch
2230  } // while
2231 success:
2232  return ptr;
2233 failure:
2234  ptr = nullptr;
2235  goto success;
2236 #undef CHK_
2237 }
2238 
2239 ::PROTOBUF_NAMESPACE_ID::uint8* LinearArgumentProto::_InternalSerialize(
2240  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2241  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearArgumentProto)
2242  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2243  (void) cached_has_bits;
2244 
2245  // .operations_research.sat.LinearExpressionProto target = 1;
2246  if (this->has_target()) {
2247  target = stream->EnsureSpace(target);
2248  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2249  InternalWriteMessage(
2250  1, _Internal::target(this), target, stream);
2251  }
2252 
2253  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2254  for (unsigned int i = 0,
2255  n = static_cast<unsigned int>(this->_internal_exprs_size()); i < n; i++) {
2256  target = stream->EnsureSpace(target);
2257  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2258  InternalWriteMessage(2, this->_internal_exprs(i), target, stream);
2259  }
2260 
2261  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2262  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2263  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2264  }
2265  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearArgumentProto)
2266  return target;
2267 }
2268 
2269 size_t LinearArgumentProto::ByteSizeLong() const {
2270 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearArgumentProto)
2271  size_t total_size = 0;
2272 
2273  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2274  // Prevent compiler warnings about cached_has_bits being unused
2275  (void) cached_has_bits;
2276 
2277  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2278  total_size += 1UL * this->_internal_exprs_size();
2279  for (const auto& msg : this->exprs_) {
2280  total_size +=
2281  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
2282  }
2283 
2284  // .operations_research.sat.LinearExpressionProto target = 1;
2285  if (this->has_target()) {
2286  total_size += 1 +
2287  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2288  *target_);
2289  }
2290 
2291  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2292  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2293  _internal_metadata_, total_size, &_cached_size_);
2294  }
2295  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2296  SetCachedSize(cached_size);
2297  return total_size;
2298 }
2299 
2300 void LinearArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2301 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearArgumentProto)
2302  GOOGLE_DCHECK_NE(&from, this);
2303  const LinearArgumentProto* source =
2304  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearArgumentProto>(
2305  &from);
2306  if (source == nullptr) {
2307  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearArgumentProto)
2308  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2309  } else {
2310  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearArgumentProto)
2311  MergeFrom(*source);
2312  }
2313 }
2314 
2315 void LinearArgumentProto::MergeFrom(const LinearArgumentProto& from) {
2316 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearArgumentProto)
2317  GOOGLE_DCHECK_NE(&from, this);
2318  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2319  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2320  (void) cached_has_bits;
2321 
2322  exprs_.MergeFrom(from.exprs_);
2323  if (from.has_target()) {
2324  _internal_mutable_target()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_target());
2325  }
2326 }
2327 
2328 void LinearArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2329 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearArgumentProto)
2330  if (&from == this) return;
2331  Clear();
2332  MergeFrom(from);
2333 }
2334 
2335 void LinearArgumentProto::CopyFrom(const LinearArgumentProto& from) {
2336 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearArgumentProto)
2337  if (&from == this) return;
2338  Clear();
2339  MergeFrom(from);
2340 }
2341 
2342 bool LinearArgumentProto::IsInitialized() const {
2343  return true;
2344 }
2345 
2346 void LinearArgumentProto::InternalSwap(LinearArgumentProto* other) {
2347  using std::swap;
2348  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2349  exprs_.InternalSwap(&other->exprs_);
2350  swap(target_, other->target_);
2351 }
2352 
2353 ::PROTOBUF_NAMESPACE_ID::Metadata LinearArgumentProto::GetMetadata() const {
2354  return GetMetadataStatic();
2355 }
2356 
2357 
2358 // ===================================================================
2359 
2361  public:
2362 };
2363 
2364 AllDifferentConstraintProto::AllDifferentConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2365  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2366  vars_(arena) {
2367  SharedCtor();
2368  RegisterArenaDtor(arena);
2369  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AllDifferentConstraintProto)
2370 }
2371 AllDifferentConstraintProto::AllDifferentConstraintProto(const AllDifferentConstraintProto& from)
2372  : ::PROTOBUF_NAMESPACE_ID::Message(),
2373  vars_(from.vars_) {
2374  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2375  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AllDifferentConstraintProto)
2376 }
2377 
2378 void AllDifferentConstraintProto::SharedCtor() {
2379 }
2380 
2381 AllDifferentConstraintProto::~AllDifferentConstraintProto() {
2382  // @@protoc_insertion_point(destructor:operations_research.sat.AllDifferentConstraintProto)
2383  SharedDtor();
2384  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2385 }
2386 
2387 void AllDifferentConstraintProto::SharedDtor() {
2388  GOOGLE_DCHECK(GetArena() == nullptr);
2389 }
2390 
2391 void AllDifferentConstraintProto::ArenaDtor(void* object) {
2392  AllDifferentConstraintProto* _this = reinterpret_cast< AllDifferentConstraintProto* >(object);
2393  (void)_this;
2394 }
2395 void AllDifferentConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2396 }
2397 void AllDifferentConstraintProto::SetCachedSize(int size) const {
2398  _cached_size_.Set(size);
2399 }
2400 const AllDifferentConstraintProto& AllDifferentConstraintProto::default_instance() {
2401  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2402  return *internal_default_instance();
2403 }
2404 
2405 
2406 void AllDifferentConstraintProto::Clear() {
2407 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AllDifferentConstraintProto)
2408  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2409  // Prevent compiler warnings about cached_has_bits being unused
2410  (void) cached_has_bits;
2411 
2412  vars_.Clear();
2413  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2414 }
2415 
2416 const char* AllDifferentConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2417 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2418  while (!ctx->Done(&ptr)) {
2420  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2421  CHK_(ptr);
2422  switch (tag >> 3) {
2423  // repeated int32 vars = 1;
2424  case 1:
2425  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2426  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2427  CHK_(ptr);
2428  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2429  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2430  CHK_(ptr);
2431  } else goto handle_unusual;
2432  continue;
2433  default: {
2434  handle_unusual:
2435  if ((tag & 7) == 4 || tag == 0) {
2436  ctx->SetLastTag(tag);
2437  goto success;
2438  }
2439  ptr = UnknownFieldParse(tag,
2440  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2441  ptr, ctx);
2442  CHK_(ptr != nullptr);
2443  continue;
2444  }
2445  } // switch
2446  } // while
2447 success:
2448  return ptr;
2449 failure:
2450  ptr = nullptr;
2451  goto success;
2452 #undef CHK_
2453 }
2454 
2455 ::PROTOBUF_NAMESPACE_ID::uint8* AllDifferentConstraintProto::_InternalSerialize(
2456  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2457  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AllDifferentConstraintProto)
2458  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2459  (void) cached_has_bits;
2460 
2461  // repeated int32 vars = 1;
2462  {
2463  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2464  if (byte_size > 0) {
2465  target = stream->WriteInt32Packed(
2466  1, _internal_vars(), byte_size, target);
2467  }
2468  }
2469 
2470  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2471  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2472  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2473  }
2474  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AllDifferentConstraintProto)
2475  return target;
2476 }
2477 
2478 size_t AllDifferentConstraintProto::ByteSizeLong() const {
2479 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AllDifferentConstraintProto)
2480  size_t total_size = 0;
2481 
2482  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2483  // Prevent compiler warnings about cached_has_bits being unused
2484  (void) cached_has_bits;
2485 
2486  // repeated int32 vars = 1;
2487  {
2488  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2489  Int32Size(this->vars_);
2490  if (data_size > 0) {
2491  total_size += 1 +
2492  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2493  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2494  }
2495  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2496  _vars_cached_byte_size_.store(cached_size,
2497  std::memory_order_relaxed);
2498  total_size += data_size;
2499  }
2500 
2501  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2502  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2503  _internal_metadata_, total_size, &_cached_size_);
2504  }
2505  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2506  SetCachedSize(cached_size);
2507  return total_size;
2508 }
2509 
2510 void AllDifferentConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2511 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2512  GOOGLE_DCHECK_NE(&from, this);
2513  const AllDifferentConstraintProto* source =
2514  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AllDifferentConstraintProto>(
2515  &from);
2516  if (source == nullptr) {
2517  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.AllDifferentConstraintProto)
2518  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2519  } else {
2520  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.AllDifferentConstraintProto)
2521  MergeFrom(*source);
2522  }
2523 }
2524 
2525 void AllDifferentConstraintProto::MergeFrom(const AllDifferentConstraintProto& from) {
2526 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2527  GOOGLE_DCHECK_NE(&from, this);
2528  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2529  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2530  (void) cached_has_bits;
2531 
2532  vars_.MergeFrom(from.vars_);
2533 }
2534 
2535 void AllDifferentConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2536 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2537  if (&from == this) return;
2538  Clear();
2539  MergeFrom(from);
2540 }
2541 
2542 void AllDifferentConstraintProto::CopyFrom(const AllDifferentConstraintProto& from) {
2543 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2544  if (&from == this) return;
2545  Clear();
2546  MergeFrom(from);
2547 }
2548 
2549 bool AllDifferentConstraintProto::IsInitialized() const {
2550  return true;
2551 }
2552 
2553 void AllDifferentConstraintProto::InternalSwap(AllDifferentConstraintProto* other) {
2554  using std::swap;
2555  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2556  vars_.InternalSwap(&other->vars_);
2557 }
2558 
2559 ::PROTOBUF_NAMESPACE_ID::Metadata AllDifferentConstraintProto::GetMetadata() const {
2560  return GetMetadataStatic();
2561 }
2562 
2563 
2564 // ===================================================================
2565 
2567  public:
2568 };
2569 
2570 LinearConstraintProto::LinearConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2571  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2572  vars_(arena),
2573  coeffs_(arena),
2574  domain_(arena) {
2575  SharedCtor();
2576  RegisterArenaDtor(arena);
2577  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearConstraintProto)
2578 }
2579 LinearConstraintProto::LinearConstraintProto(const LinearConstraintProto& from)
2580  : ::PROTOBUF_NAMESPACE_ID::Message(),
2581  vars_(from.vars_),
2582  coeffs_(from.coeffs_),
2583  domain_(from.domain_) {
2584  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2585  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearConstraintProto)
2586 }
2587 
2588 void LinearConstraintProto::SharedCtor() {
2589 }
2590 
2591 LinearConstraintProto::~LinearConstraintProto() {
2592  // @@protoc_insertion_point(destructor:operations_research.sat.LinearConstraintProto)
2593  SharedDtor();
2594  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2595 }
2596 
2597 void LinearConstraintProto::SharedDtor() {
2598  GOOGLE_DCHECK(GetArena() == nullptr);
2599 }
2600 
2601 void LinearConstraintProto::ArenaDtor(void* object) {
2602  LinearConstraintProto* _this = reinterpret_cast< LinearConstraintProto* >(object);
2603  (void)_this;
2604 }
2605 void LinearConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2606 }
2607 void LinearConstraintProto::SetCachedSize(int size) const {
2608  _cached_size_.Set(size);
2609 }
2610 const LinearConstraintProto& LinearConstraintProto::default_instance() {
2611  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2612  return *internal_default_instance();
2613 }
2614 
2615 
2616 void LinearConstraintProto::Clear() {
2617 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearConstraintProto)
2618  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2619  // Prevent compiler warnings about cached_has_bits being unused
2620  (void) cached_has_bits;
2621 
2622  vars_.Clear();
2623  coeffs_.Clear();
2624  domain_.Clear();
2625  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2626 }
2627 
2628 const char* LinearConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2629 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2630  while (!ctx->Done(&ptr)) {
2632  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2633  CHK_(ptr);
2634  switch (tag >> 3) {
2635  // repeated int32 vars = 1;
2636  case 1:
2637  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2638  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2639  CHK_(ptr);
2640  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2641  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2642  CHK_(ptr);
2643  } else goto handle_unusual;
2644  continue;
2645  // repeated int64 coeffs = 2;
2646  case 2:
2647  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2648  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
2649  CHK_(ptr);
2650  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
2651  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2652  CHK_(ptr);
2653  } else goto handle_unusual;
2654  continue;
2655  // repeated int64 domain = 3;
2656  case 3:
2657  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2658  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
2659  CHK_(ptr);
2660  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2661  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2662  CHK_(ptr);
2663  } else goto handle_unusual;
2664  continue;
2665  default: {
2666  handle_unusual:
2667  if ((tag & 7) == 4 || tag == 0) {
2668  ctx->SetLastTag(tag);
2669  goto success;
2670  }
2671  ptr = UnknownFieldParse(tag,
2672  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2673  ptr, ctx);
2674  CHK_(ptr != nullptr);
2675  continue;
2676  }
2677  } // switch
2678  } // while
2679 success:
2680  return ptr;
2681 failure:
2682  ptr = nullptr;
2683  goto success;
2684 #undef CHK_
2685 }
2686 
2687 ::PROTOBUF_NAMESPACE_ID::uint8* LinearConstraintProto::_InternalSerialize(
2688  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2689  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearConstraintProto)
2690  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2691  (void) cached_has_bits;
2692 
2693  // repeated int32 vars = 1;
2694  {
2695  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2696  if (byte_size > 0) {
2697  target = stream->WriteInt32Packed(
2698  1, _internal_vars(), byte_size, target);
2699  }
2700  }
2701 
2702  // repeated int64 coeffs = 2;
2703  {
2704  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
2705  if (byte_size > 0) {
2706  target = stream->WriteInt64Packed(
2707  2, _internal_coeffs(), byte_size, target);
2708  }
2709  }
2710 
2711  // repeated int64 domain = 3;
2712  {
2713  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
2714  if (byte_size > 0) {
2715  target = stream->WriteInt64Packed(
2716  3, _internal_domain(), byte_size, target);
2717  }
2718  }
2719 
2720  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2721  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2722  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2723  }
2724  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearConstraintProto)
2725  return target;
2726 }
2727 
2728 size_t LinearConstraintProto::ByteSizeLong() const {
2729 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearConstraintProto)
2730  size_t total_size = 0;
2731 
2732  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2733  // Prevent compiler warnings about cached_has_bits being unused
2734  (void) cached_has_bits;
2735 
2736  // repeated int32 vars = 1;
2737  {
2738  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2739  Int32Size(this->vars_);
2740  if (data_size > 0) {
2741  total_size += 1 +
2742  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2743  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2744  }
2745  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2746  _vars_cached_byte_size_.store(cached_size,
2747  std::memory_order_relaxed);
2748  total_size += data_size;
2749  }
2750 
2751  // repeated int64 coeffs = 2;
2752  {
2753  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2754  Int64Size(this->coeffs_);
2755  if (data_size > 0) {
2756  total_size += 1 +
2757  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2758  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2759  }
2760  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2761  _coeffs_cached_byte_size_.store(cached_size,
2762  std::memory_order_relaxed);
2763  total_size += data_size;
2764  }
2765 
2766  // repeated int64 domain = 3;
2767  {
2768  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2769  Int64Size(this->domain_);
2770  if (data_size > 0) {
2771  total_size += 1 +
2772  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2773  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2774  }
2775  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2776  _domain_cached_byte_size_.store(cached_size,
2777  std::memory_order_relaxed);
2778  total_size += data_size;
2779  }
2780 
2781  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2782  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2783  _internal_metadata_, total_size, &_cached_size_);
2784  }
2785  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2786  SetCachedSize(cached_size);
2787  return total_size;
2788 }
2789 
2790 void LinearConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2791 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearConstraintProto)
2792  GOOGLE_DCHECK_NE(&from, this);
2793  const LinearConstraintProto* source =
2794  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearConstraintProto>(
2795  &from);
2796  if (source == nullptr) {
2797  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearConstraintProto)
2798  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2799  } else {
2800  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearConstraintProto)
2801  MergeFrom(*source);
2802  }
2803 }
2804 
2805 void LinearConstraintProto::MergeFrom(const LinearConstraintProto& from) {
2806 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearConstraintProto)
2807  GOOGLE_DCHECK_NE(&from, this);
2808  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2809  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2810  (void) cached_has_bits;
2811 
2812  vars_.MergeFrom(from.vars_);
2813  coeffs_.MergeFrom(from.coeffs_);
2814  domain_.MergeFrom(from.domain_);
2815 }
2816 
2817 void LinearConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2818 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearConstraintProto)
2819  if (&from == this) return;
2820  Clear();
2821  MergeFrom(from);
2822 }
2823 
2824 void LinearConstraintProto::CopyFrom(const LinearConstraintProto& from) {
2825 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearConstraintProto)
2826  if (&from == this) return;
2827  Clear();
2828  MergeFrom(from);
2829 }
2830 
2831 bool LinearConstraintProto::IsInitialized() const {
2832  return true;
2833 }
2834 
2835 void LinearConstraintProto::InternalSwap(LinearConstraintProto* other) {
2836  using std::swap;
2837  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2838  vars_.InternalSwap(&other->vars_);
2839  coeffs_.InternalSwap(&other->coeffs_);
2840  domain_.InternalSwap(&other->domain_);
2841 }
2842 
2843 ::PROTOBUF_NAMESPACE_ID::Metadata LinearConstraintProto::GetMetadata() const {
2844  return GetMetadataStatic();
2845 }
2846 
2847 
2848 // ===================================================================
2849 
2851  public:
2852 };
2853 
2854 ElementConstraintProto::ElementConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2855  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2856  vars_(arena) {
2857  SharedCtor();
2858  RegisterArenaDtor(arena);
2859  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ElementConstraintProto)
2860 }
2861 ElementConstraintProto::ElementConstraintProto(const ElementConstraintProto& from)
2862  : ::PROTOBUF_NAMESPACE_ID::Message(),
2863  vars_(from.vars_) {
2864  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2865  ::memcpy(&index_, &from.index_,
2866  static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2867  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2868  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ElementConstraintProto)
2869 }
2870 
2871 void ElementConstraintProto::SharedCtor() {
2872  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
2873  reinterpret_cast<char*>(&index_) - reinterpret_cast<char*>(this)),
2874  0, static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2875  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2876 }
2877 
2878 ElementConstraintProto::~ElementConstraintProto() {
2879  // @@protoc_insertion_point(destructor:operations_research.sat.ElementConstraintProto)
2880  SharedDtor();
2881  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2882 }
2883 
2884 void ElementConstraintProto::SharedDtor() {
2885  GOOGLE_DCHECK(GetArena() == nullptr);
2886 }
2887 
2888 void ElementConstraintProto::ArenaDtor(void* object) {
2889  ElementConstraintProto* _this = reinterpret_cast< ElementConstraintProto* >(object);
2890  (void)_this;
2891 }
2892 void ElementConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2893 }
2894 void ElementConstraintProto::SetCachedSize(int size) const {
2895  _cached_size_.Set(size);
2896 }
2897 const ElementConstraintProto& ElementConstraintProto::default_instance() {
2898  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2899  return *internal_default_instance();
2900 }
2901 
2902 
2903 void ElementConstraintProto::Clear() {
2904 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ElementConstraintProto)
2905  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2906  // Prevent compiler warnings about cached_has_bits being unused
2907  (void) cached_has_bits;
2908 
2909  vars_.Clear();
2910  ::memset(&index_, 0, static_cast<size_t>(
2911  reinterpret_cast<char*>(&target_) -
2912  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2913  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2914 }
2915 
2916 const char* ElementConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2917 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2918  while (!ctx->Done(&ptr)) {
2920  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2921  CHK_(ptr);
2922  switch (tag >> 3) {
2923  // int32 index = 1;
2924  case 1:
2925  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2926  index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2927  CHK_(ptr);
2928  } else goto handle_unusual;
2929  continue;
2930  // int32 target = 2;
2931  case 2:
2932  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2933  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2934  CHK_(ptr);
2935  } else goto handle_unusual;
2936  continue;
2937  // repeated int32 vars = 3;
2938  case 3:
2939  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2940  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2941  CHK_(ptr);
2942  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2943  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2944  CHK_(ptr);
2945  } else goto handle_unusual;
2946  continue;
2947  default: {
2948  handle_unusual:
2949  if ((tag & 7) == 4 || tag == 0) {
2950  ctx->SetLastTag(tag);
2951  goto success;
2952  }
2953  ptr = UnknownFieldParse(tag,
2954  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2955  ptr, ctx);
2956  CHK_(ptr != nullptr);
2957  continue;
2958  }
2959  } // switch
2960  } // while
2961 success:
2962  return ptr;
2963 failure:
2964  ptr = nullptr;
2965  goto success;
2966 #undef CHK_
2967 }
2968 
2969 ::PROTOBUF_NAMESPACE_ID::uint8* ElementConstraintProto::_InternalSerialize(
2970  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2971  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ElementConstraintProto)
2972  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2973  (void) cached_has_bits;
2974 
2975  // int32 index = 1;
2976  if (this->index() != 0) {
2977  target = stream->EnsureSpace(target);
2978  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
2979  }
2980 
2981  // int32 target = 2;
2982  if (this->target() != 0) {
2983  target = stream->EnsureSpace(target);
2984  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_target(), target);
2985  }
2986 
2987  // repeated int32 vars = 3;
2988  {
2989  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2990  if (byte_size > 0) {
2991  target = stream->WriteInt32Packed(
2992  3, _internal_vars(), byte_size, target);
2993  }
2994  }
2995 
2996  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2997  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2998  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2999  }
3000  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ElementConstraintProto)
3001  return target;
3002 }
3003 
3004 size_t ElementConstraintProto::ByteSizeLong() const {
3005 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ElementConstraintProto)
3006  size_t total_size = 0;
3007 
3008  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3009  // Prevent compiler warnings about cached_has_bits being unused
3010  (void) cached_has_bits;
3011 
3012  // repeated int32 vars = 3;
3013  {
3014  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3015  Int32Size(this->vars_);
3016  if (data_size > 0) {
3017  total_size += 1 +
3018  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3019  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3020  }
3021  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3022  _vars_cached_byte_size_.store(cached_size,
3023  std::memory_order_relaxed);
3024  total_size += data_size;
3025  }
3026 
3027  // int32 index = 1;
3028  if (this->index() != 0) {
3029  total_size += 1 +
3030  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3031  this->_internal_index());
3032  }
3033 
3034  // int32 target = 2;
3035  if (this->target() != 0) {
3036  total_size += 1 +
3037  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3038  this->_internal_target());
3039  }
3040 
3041  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3042  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3043  _internal_metadata_, total_size, &_cached_size_);
3044  }
3045  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3046  SetCachedSize(cached_size);
3047  return total_size;
3048 }
3049 
3050 void ElementConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3051 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ElementConstraintProto)
3052  GOOGLE_DCHECK_NE(&from, this);
3053  const ElementConstraintProto* source =
3054  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ElementConstraintProto>(
3055  &from);
3056  if (source == nullptr) {
3057  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ElementConstraintProto)
3058  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3059  } else {
3060  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ElementConstraintProto)
3061  MergeFrom(*source);
3062  }
3063 }
3064 
3065 void ElementConstraintProto::MergeFrom(const ElementConstraintProto& from) {
3066 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ElementConstraintProto)
3067  GOOGLE_DCHECK_NE(&from, this);
3068  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3069  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3070  (void) cached_has_bits;
3071 
3072  vars_.MergeFrom(from.vars_);
3073  if (from.index() != 0) {
3074  _internal_set_index(from._internal_index());
3075  }
3076  if (from.target() != 0) {
3077  _internal_set_target(from._internal_target());
3078  }
3079 }
3080 
3081 void ElementConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3082 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ElementConstraintProto)
3083  if (&from == this) return;
3084  Clear();
3085  MergeFrom(from);
3086 }
3087 
3088 void ElementConstraintProto::CopyFrom(const ElementConstraintProto& from) {
3089 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ElementConstraintProto)
3090  if (&from == this) return;
3091  Clear();
3092  MergeFrom(from);
3093 }
3094 
3095 bool ElementConstraintProto::IsInitialized() const {
3096  return true;
3097 }
3098 
3099 void ElementConstraintProto::InternalSwap(ElementConstraintProto* other) {
3100  using std::swap;
3101  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3102  vars_.InternalSwap(&other->vars_);
3103  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3104  PROTOBUF_FIELD_OFFSET(ElementConstraintProto, target_)
3105  + sizeof(ElementConstraintProto::target_)
3106  - PROTOBUF_FIELD_OFFSET(ElementConstraintProto, index_)>(
3107  reinterpret_cast<char*>(&index_),
3108  reinterpret_cast<char*>(&other->index_));
3109 }
3110 
3111 ::PROTOBUF_NAMESPACE_ID::Metadata ElementConstraintProto::GetMetadata() const {
3112  return GetMetadataStatic();
3113 }
3114 
3115 
3116 // ===================================================================
3117 
3119  public:
3120  static const ::operations_research::sat::LinearExpressionProto& start_view(const IntervalConstraintProto* msg);
3121  static const ::operations_research::sat::LinearExpressionProto& end_view(const IntervalConstraintProto* msg);
3122  static const ::operations_research::sat::LinearExpressionProto& size_view(const IntervalConstraintProto* msg);
3123 };
3124 
3125 const ::operations_research::sat::LinearExpressionProto&
3126 IntervalConstraintProto::_Internal::start_view(const IntervalConstraintProto* msg) {
3127  return *msg->start_view_;
3128 }
3129 const ::operations_research::sat::LinearExpressionProto&
3130 IntervalConstraintProto::_Internal::end_view(const IntervalConstraintProto* msg) {
3131  return *msg->end_view_;
3132 }
3133 const ::operations_research::sat::LinearExpressionProto&
3134 IntervalConstraintProto::_Internal::size_view(const IntervalConstraintProto* msg) {
3135  return *msg->size_view_;
3136 }
3137 IntervalConstraintProto::IntervalConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3138  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
3139  SharedCtor();
3140  RegisterArenaDtor(arena);
3141  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntervalConstraintProto)
3142 }
3143 IntervalConstraintProto::IntervalConstraintProto(const IntervalConstraintProto& from)
3144  : ::PROTOBUF_NAMESPACE_ID::Message() {
3145  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3146  if (from._internal_has_start_view()) {
3147  start_view_ = new ::operations_research::sat::LinearExpressionProto(*from.start_view_);
3148  } else {
3149  start_view_ = nullptr;
3150  }
3151  if (from._internal_has_end_view()) {
3152  end_view_ = new ::operations_research::sat::LinearExpressionProto(*from.end_view_);
3153  } else {
3154  end_view_ = nullptr;
3155  }
3156  if (from._internal_has_size_view()) {
3157  size_view_ = new ::operations_research::sat::LinearExpressionProto(*from.size_view_);
3158  } else {
3159  size_view_ = nullptr;
3160  }
3161  ::memcpy(&start_, &from.start_,
3162  static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3163  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3164  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntervalConstraintProto)
3165 }
3166 
3167 void IntervalConstraintProto::SharedCtor() {
3168  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3169  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
3170  reinterpret_cast<char*>(&start_view_) - reinterpret_cast<char*>(this)),
3171  0, static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3172  reinterpret_cast<char*>(&start_view_)) + sizeof(size_));
3173 }
3174 
3175 IntervalConstraintProto::~IntervalConstraintProto() {
3176  // @@protoc_insertion_point(destructor:operations_research.sat.IntervalConstraintProto)
3177  SharedDtor();
3178  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3179 }
3180 
3181 void IntervalConstraintProto::SharedDtor() {
3182  GOOGLE_DCHECK(GetArena() == nullptr);
3183  if (this != internal_default_instance()) delete start_view_;
3184  if (this != internal_default_instance()) delete end_view_;
3185  if (this != internal_default_instance()) delete size_view_;
3186 }
3187 
3188 void IntervalConstraintProto::ArenaDtor(void* object) {
3189  IntervalConstraintProto* _this = reinterpret_cast< IntervalConstraintProto* >(object);
3190  (void)_this;
3191 }
3192 void IntervalConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3193 }
3194 void IntervalConstraintProto::SetCachedSize(int size) const {
3195  _cached_size_.Set(size);
3196 }
3197 const IntervalConstraintProto& IntervalConstraintProto::default_instance() {
3198  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3199  return *internal_default_instance();
3200 }
3201 
3202 
3203 void IntervalConstraintProto::Clear() {
3204 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntervalConstraintProto)
3205  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3206  // Prevent compiler warnings about cached_has_bits being unused
3207  (void) cached_has_bits;
3208 
3209  if (GetArena() == nullptr && start_view_ != nullptr) {
3210  delete start_view_;
3211  }
3212  start_view_ = nullptr;
3213  if (GetArena() == nullptr && end_view_ != nullptr) {
3214  delete end_view_;
3215  }
3216  end_view_ = nullptr;
3217  if (GetArena() == nullptr && size_view_ != nullptr) {
3218  delete size_view_;
3219  }
3220  size_view_ = nullptr;
3221  ::memset(&start_, 0, static_cast<size_t>(
3222  reinterpret_cast<char*>(&size_) -
3223  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3224  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3225 }
3226 
3227 const char* IntervalConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3228 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3229  while (!ctx->Done(&ptr)) {
3231  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3232  CHK_(ptr);
3233  switch (tag >> 3) {
3234  // int32 start = 1;
3235  case 1:
3236  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
3237  start_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3238  CHK_(ptr);
3239  } else goto handle_unusual;
3240  continue;
3241  // int32 end = 2;
3242  case 2:
3243  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
3244  end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3245  CHK_(ptr);
3246  } else goto handle_unusual;
3247  continue;
3248  // int32 size = 3;
3249  case 3:
3250  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3251  size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3252  CHK_(ptr);
3253  } else goto handle_unusual;
3254  continue;
3255  // .operations_research.sat.LinearExpressionProto start_view = 4;
3256  case 4:
3257  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
3258  ptr = ctx->ParseMessage(_internal_mutable_start_view(), ptr);
3259  CHK_(ptr);
3260  } else goto handle_unusual;
3261  continue;
3262  // .operations_research.sat.LinearExpressionProto end_view = 5;
3263  case 5:
3264  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
3265  ptr = ctx->ParseMessage(_internal_mutable_end_view(), ptr);
3266  CHK_(ptr);
3267  } else goto handle_unusual;
3268  continue;
3269  // .operations_research.sat.LinearExpressionProto size_view = 6;
3270  case 6:
3271  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
3272  ptr = ctx->ParseMessage(_internal_mutable_size_view(), ptr);
3273  CHK_(ptr);
3274  } else goto handle_unusual;
3275  continue;
3276  default: {
3277  handle_unusual:
3278  if ((tag & 7) == 4 || tag == 0) {
3279  ctx->SetLastTag(tag);
3280  goto success;
3281  }
3282  ptr = UnknownFieldParse(tag,
3283  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3284  ptr, ctx);
3285  CHK_(ptr != nullptr);
3286  continue;
3287  }
3288  } // switch
3289  } // while
3290 success:
3291  return ptr;
3292 failure:
3293  ptr = nullptr;
3294  goto success;
3295 #undef CHK_
3296 }
3297 
3298 ::PROTOBUF_NAMESPACE_ID::uint8* IntervalConstraintProto::_InternalSerialize(
3299  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3300  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntervalConstraintProto)
3301  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3302  (void) cached_has_bits;
3303 
3304  // int32 start = 1;
3305  if (this->start() != 0) {
3306  target = stream->EnsureSpace(target);
3307  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_start(), target);
3308  }
3309 
3310  // int32 end = 2;
3311  if (this->end() != 0) {
3312  target = stream->EnsureSpace(target);
3313  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_end(), target);
3314  }
3315 
3316  // int32 size = 3;
3317  if (this->size() != 0) {
3318  target = stream->EnsureSpace(target);
3319  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_size(), target);
3320  }
3321 
3322  // .operations_research.sat.LinearExpressionProto start_view = 4;
3323  if (this->has_start_view()) {
3324  target = stream->EnsureSpace(target);
3325  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3326  InternalWriteMessage(
3327  4, _Internal::start_view(this), target, stream);
3328  }
3329 
3330  // .operations_research.sat.LinearExpressionProto end_view = 5;
3331  if (this->has_end_view()) {
3332  target = stream->EnsureSpace(target);
3333  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3334  InternalWriteMessage(
3335  5, _Internal::end_view(this), target, stream);
3336  }
3337 
3338  // .operations_research.sat.LinearExpressionProto size_view = 6;
3339  if (this->has_size_view()) {
3340  target = stream->EnsureSpace(target);
3341  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3342  InternalWriteMessage(
3343  6, _Internal::size_view(this), target, stream);
3344  }
3345 
3346  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3347  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3348  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3349  }
3350  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntervalConstraintProto)
3351  return target;
3352 }
3353 
3354 size_t IntervalConstraintProto::ByteSizeLong() const {
3355 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntervalConstraintProto)
3356  size_t total_size = 0;
3357 
3358  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3359  // Prevent compiler warnings about cached_has_bits being unused
3360  (void) cached_has_bits;
3361 
3362  // .operations_research.sat.LinearExpressionProto start_view = 4;
3363  if (this->has_start_view()) {
3364  total_size += 1 +
3365  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3366  *start_view_);
3367  }
3368 
3369  // .operations_research.sat.LinearExpressionProto end_view = 5;
3370  if (this->has_end_view()) {
3371  total_size += 1 +
3372  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3373  *end_view_);
3374  }
3375 
3376  // .operations_research.sat.LinearExpressionProto size_view = 6;
3377  if (this->has_size_view()) {
3378  total_size += 1 +
3379  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3380  *size_view_);
3381  }
3382 
3383  // int32 start = 1;
3384  if (this->start() != 0) {
3385  total_size += 1 +
3386  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3387  this->_internal_start());
3388  }
3389 
3390  // int32 end = 2;
3391  if (this->end() != 0) {
3392  total_size += 1 +
3393  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3394  this->_internal_end());
3395  }
3396 
3397  // int32 size = 3;
3398  if (this->size() != 0) {
3399  total_size += 1 +
3400  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3401  this->_internal_size());
3402  }
3403 
3404  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3405  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3406  _internal_metadata_, total_size, &_cached_size_);
3407  }
3408  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3409  SetCachedSize(cached_size);
3410  return total_size;
3411 }
3412 
3413 void IntervalConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3414 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntervalConstraintProto)
3415  GOOGLE_DCHECK_NE(&from, this);
3416  const IntervalConstraintProto* source =
3417  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntervalConstraintProto>(
3418  &from);
3419  if (source == nullptr) {
3420  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntervalConstraintProto)
3421  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3422  } else {
3423  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntervalConstraintProto)
3424  MergeFrom(*source);
3425  }
3426 }
3427 
3428 void IntervalConstraintProto::MergeFrom(const IntervalConstraintProto& from) {
3429 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntervalConstraintProto)
3430  GOOGLE_DCHECK_NE(&from, this);
3431  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3432  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3433  (void) cached_has_bits;
3434 
3435  if (from.has_start_view()) {
3436  _internal_mutable_start_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_start_view());
3437  }
3438  if (from.has_end_view()) {
3439  _internal_mutable_end_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_end_view());
3440  }
3441  if (from.has_size_view()) {
3442  _internal_mutable_size_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_size_view());
3443  }
3444  if (from.start() != 0) {
3445  _internal_set_start(from._internal_start());
3446  }
3447  if (from.end() != 0) {
3448  _internal_set_end(from._internal_end());
3449  }
3450  if (from.size() != 0) {
3451  _internal_set_size(from._internal_size());
3452  }
3453 }
3454 
3455 void IntervalConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3456 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntervalConstraintProto)
3457  if (&from == this) return;
3458  Clear();
3459  MergeFrom(from);
3460 }
3461 
3462 void IntervalConstraintProto::CopyFrom(const IntervalConstraintProto& from) {
3463 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntervalConstraintProto)
3464  if (&from == this) return;
3465  Clear();
3466  MergeFrom(from);
3467 }
3468 
3469 bool IntervalConstraintProto::IsInitialized() const {
3470  return true;
3471 }
3472 
3473 void IntervalConstraintProto::InternalSwap(IntervalConstraintProto* other) {
3474  using std::swap;
3475  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3476  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3477  PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, size_)
3478  + sizeof(IntervalConstraintProto::size_)
3479  - PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, start_view_)>(
3480  reinterpret_cast<char*>(&start_view_),
3481  reinterpret_cast<char*>(&other->start_view_));
3482 }
3483 
3484 ::PROTOBUF_NAMESPACE_ID::Metadata IntervalConstraintProto::GetMetadata() const {
3485  return GetMetadataStatic();
3486 }
3487 
3488 
3489 // ===================================================================
3490 
3492  public:
3493 };
3494 
3495 NoOverlapConstraintProto::NoOverlapConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3496  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3497  intervals_(arena) {
3498  SharedCtor();
3499  RegisterArenaDtor(arena);
3500  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlapConstraintProto)
3501 }
3502 NoOverlapConstraintProto::NoOverlapConstraintProto(const NoOverlapConstraintProto& from)
3503  : ::PROTOBUF_NAMESPACE_ID::Message(),
3504  intervals_(from.intervals_) {
3505  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3506  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlapConstraintProto)
3507 }
3508 
3509 void NoOverlapConstraintProto::SharedCtor() {
3510 }
3511 
3512 NoOverlapConstraintProto::~NoOverlapConstraintProto() {
3513  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlapConstraintProto)
3514  SharedDtor();
3515  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3516 }
3517 
3518 void NoOverlapConstraintProto::SharedDtor() {
3519  GOOGLE_DCHECK(GetArena() == nullptr);
3520 }
3521 
3522 void NoOverlapConstraintProto::ArenaDtor(void* object) {
3523  NoOverlapConstraintProto* _this = reinterpret_cast< NoOverlapConstraintProto* >(object);
3524  (void)_this;
3525 }
3526 void NoOverlapConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3527 }
3528 void NoOverlapConstraintProto::SetCachedSize(int size) const {
3529  _cached_size_.Set(size);
3530 }
3531 const NoOverlapConstraintProto& NoOverlapConstraintProto::default_instance() {
3532  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3533  return *internal_default_instance();
3534 }
3535 
3536 
3537 void NoOverlapConstraintProto::Clear() {
3538 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlapConstraintProto)
3539  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3540  // Prevent compiler warnings about cached_has_bits being unused
3541  (void) cached_has_bits;
3542 
3543  intervals_.Clear();
3544  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3545 }
3546 
3547 const char* NoOverlapConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3548 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3549  while (!ctx->Done(&ptr)) {
3551  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3552  CHK_(ptr);
3553  switch (tag >> 3) {
3554  // repeated int32 intervals = 1;
3555  case 1:
3556  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3557  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3558  CHK_(ptr);
3559  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3560  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3561  CHK_(ptr);
3562  } else goto handle_unusual;
3563  continue;
3564  default: {
3565  handle_unusual:
3566  if ((tag & 7) == 4 || tag == 0) {
3567  ctx->SetLastTag(tag);
3568  goto success;
3569  }
3570  ptr = UnknownFieldParse(tag,
3571  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3572  ptr, ctx);
3573  CHK_(ptr != nullptr);
3574  continue;
3575  }
3576  } // switch
3577  } // while
3578 success:
3579  return ptr;
3580 failure:
3581  ptr = nullptr;
3582  goto success;
3583 #undef CHK_
3584 }
3585 
3586 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlapConstraintProto::_InternalSerialize(
3587  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3588  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlapConstraintProto)
3589  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3590  (void) cached_has_bits;
3591 
3592  // repeated int32 intervals = 1;
3593  {
3594  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
3595  if (byte_size > 0) {
3596  target = stream->WriteInt32Packed(
3597  1, _internal_intervals(), byte_size, target);
3598  }
3599  }
3600 
3601  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3602  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3603  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3604  }
3605  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlapConstraintProto)
3606  return target;
3607 }
3608 
3609 size_t NoOverlapConstraintProto::ByteSizeLong() const {
3610 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlapConstraintProto)
3611  size_t total_size = 0;
3612 
3613  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3614  // Prevent compiler warnings about cached_has_bits being unused
3615  (void) cached_has_bits;
3616 
3617  // repeated int32 intervals = 1;
3618  {
3619  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3620  Int32Size(this->intervals_);
3621  if (data_size > 0) {
3622  total_size += 1 +
3623  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3624  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3625  }
3626  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3627  _intervals_cached_byte_size_.store(cached_size,
3628  std::memory_order_relaxed);
3629  total_size += data_size;
3630  }
3631 
3632  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3633  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3634  _internal_metadata_, total_size, &_cached_size_);
3635  }
3636  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3637  SetCachedSize(cached_size);
3638  return total_size;
3639 }
3640 
3641 void NoOverlapConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3642 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3643  GOOGLE_DCHECK_NE(&from, this);
3644  const NoOverlapConstraintProto* source =
3645  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NoOverlapConstraintProto>(
3646  &from);
3647  if (source == nullptr) {
3648  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.NoOverlapConstraintProto)
3649  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3650  } else {
3651  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.NoOverlapConstraintProto)
3652  MergeFrom(*source);
3653  }
3654 }
3655 
3656 void NoOverlapConstraintProto::MergeFrom(const NoOverlapConstraintProto& from) {
3657 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3658  GOOGLE_DCHECK_NE(&from, this);
3659  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3660  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3661  (void) cached_has_bits;
3662 
3663  intervals_.MergeFrom(from.intervals_);
3664 }
3665 
3666 void NoOverlapConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3667 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3668  if (&from == this) return;
3669  Clear();
3670  MergeFrom(from);
3671 }
3672 
3673 void NoOverlapConstraintProto::CopyFrom(const NoOverlapConstraintProto& from) {
3674 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3675  if (&from == this) return;
3676  Clear();
3677  MergeFrom(from);
3678 }
3679 
3680 bool NoOverlapConstraintProto::IsInitialized() const {
3681  return true;
3682 }
3683 
3684 void NoOverlapConstraintProto::InternalSwap(NoOverlapConstraintProto* other) {
3685  using std::swap;
3686  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3687  intervals_.InternalSwap(&other->intervals_);
3688 }
3689 
3690 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlapConstraintProto::GetMetadata() const {
3691  return GetMetadataStatic();
3692 }
3693 
3694 
3695 // ===================================================================
3696 
3698  public:
3699 };
3700 
3701 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3702  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3703  x_intervals_(arena),
3704  y_intervals_(arena) {
3705  SharedCtor();
3706  RegisterArenaDtor(arena);
3707  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3708 }
3709 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(const NoOverlap2DConstraintProto& from)
3710  : ::PROTOBUF_NAMESPACE_ID::Message(),
3711  x_intervals_(from.x_intervals_),
3712  y_intervals_(from.y_intervals_) {
3713  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3714  boxes_with_null_area_can_overlap_ = from.boxes_with_null_area_can_overlap_;
3715  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3716 }
3717 
3718 void NoOverlap2DConstraintProto::SharedCtor() {
3719  boxes_with_null_area_can_overlap_ = false;
3720 }
3721 
3722 NoOverlap2DConstraintProto::~NoOverlap2DConstraintProto() {
3723  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlap2DConstraintProto)
3724  SharedDtor();
3725  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3726 }
3727 
3728 void NoOverlap2DConstraintProto::SharedDtor() {
3729  GOOGLE_DCHECK(GetArena() == nullptr);
3730 }
3731 
3732 void NoOverlap2DConstraintProto::ArenaDtor(void* object) {
3733  NoOverlap2DConstraintProto* _this = reinterpret_cast< NoOverlap2DConstraintProto* >(object);
3734  (void)_this;
3735 }
3736 void NoOverlap2DConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3737 }
3738 void NoOverlap2DConstraintProto::SetCachedSize(int size) const {
3739  _cached_size_.Set(size);
3740 }
3741 const NoOverlap2DConstraintProto& NoOverlap2DConstraintProto::default_instance() {
3742  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3743  return *internal_default_instance();
3744 }
3745 
3746 
3747 void NoOverlap2DConstraintProto::Clear() {
3748 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlap2DConstraintProto)
3749  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3750  // Prevent compiler warnings about cached_has_bits being unused
3751  (void) cached_has_bits;
3752 
3753  x_intervals_.Clear();
3754  y_intervals_.Clear();
3755  boxes_with_null_area_can_overlap_ = false;
3756  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3757 }
3758 
3759 const char* NoOverlap2DConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3760 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3761  while (!ctx->Done(&ptr)) {
3763  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3764  CHK_(ptr);
3765  switch (tag >> 3) {
3766  // repeated int32 x_intervals = 1;
3767  case 1:
3768  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3769  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_x_intervals(), ptr, ctx);
3770  CHK_(ptr);
3771  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3772  _internal_add_x_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3773  CHK_(ptr);
3774  } else goto handle_unusual;
3775  continue;
3776  // repeated int32 y_intervals = 2;
3777  case 2:
3778  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
3779  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_y_intervals(), ptr, ctx);
3780  CHK_(ptr);
3781  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
3782  _internal_add_y_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3783  CHK_(ptr);
3784  } else goto handle_unusual;
3785  continue;
3786  // bool boxes_with_null_area_can_overlap = 3;
3787  case 3:
3788  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3789  boxes_with_null_area_can_overlap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3790  CHK_(ptr);
3791  } else goto handle_unusual;
3792  continue;
3793  default: {
3794  handle_unusual:
3795  if ((tag & 7) == 4 || tag == 0) {
3796  ctx->SetLastTag(tag);
3797  goto success;
3798  }
3799  ptr = UnknownFieldParse(tag,
3800  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3801  ptr, ctx);
3802  CHK_(ptr != nullptr);
3803  continue;
3804  }
3805  } // switch
3806  } // while
3807 success:
3808  return ptr;
3809 failure:
3810  ptr = nullptr;
3811  goto success;
3812 #undef CHK_
3813 }
3814 
3815 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlap2DConstraintProto::_InternalSerialize(
3816  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3817  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlap2DConstraintProto)
3818  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3819  (void) cached_has_bits;
3820 
3821  // repeated int32 x_intervals = 1;
3822  {
3823  int byte_size = _x_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3824  if (byte_size > 0) {
3825  target = stream->WriteInt32Packed(
3826  1, _internal_x_intervals(), byte_size, target);
3827  }
3828  }
3829 
3830  // repeated int32 y_intervals = 2;
3831  {
3832  int byte_size = _y_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3833  if (byte_size > 0) {
3834  target = stream->WriteInt32Packed(
3835  2, _internal_y_intervals(), byte_size, target);
3836  }
3837  }
3838 
3839  // bool boxes_with_null_area_can_overlap = 3;
3840  if (this->boxes_with_null_area_can_overlap() != 0) {
3841  target = stream->EnsureSpace(target);
3842  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_boxes_with_null_area_can_overlap(), target);
3843  }
3844 
3845  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3846  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3847  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3848  }
3849  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlap2DConstraintProto)
3850  return target;
3851 }
3852 
3853 size_t NoOverlap2DConstraintProto::ByteSizeLong() const {
3854 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlap2DConstraintProto)
3855  size_t total_size = 0;
3856 
3857  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3858  // Prevent compiler warnings about cached_has_bits being unused
3859  (void) cached_has_bits;
3860 
3861  // repeated int32 x_intervals = 1;
3862  {
3863  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3864  Int32Size(this->x_intervals_);
3865  if (data_size > 0) {
3866  total_size += 1 +
3867  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3868  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3869  }
3870  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3871  _x_intervals_cached_byte_size_.store(cached_size,
3872  std::memory_order_relaxed);
3873  total_size += data_size;
3874  }
3875 
3876  // repeated int32 y_intervals = 2;
3877  {
3878  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3879  Int32Size(this->y_intervals_);
3880  if (data_size > 0) {
3881  total_size += 1 +
3882  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3883  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3884  }
3885  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3886  _y_intervals_cached_byte_size_.store(cached_size,
3887  std::memory_order_relaxed);
3888  total_size += data_size;
3889  }
3890 
3891  // bool boxes_with_null_area_can_overlap = 3;
3892  if (this->boxes_with_null_area_can_overlap() != 0) {
3893  total_size += 1 + 1;
3894  }
3895 
3896  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3897  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3898  _internal_metadata_, total_size, &_cached_size_);
3899  }
3900  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3901  SetCachedSize(cached_size);
3902  return total_size;
3903 }
3904 
3905 void NoOverlap2DConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3906 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3907  GOOGLE_DCHECK_NE(&from, this);
3908  const NoOverlap2DConstraintProto* source =
3909  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NoOverlap2DConstraintProto>(
3910  &from);
3911  if (source == nullptr) {
3912  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.NoOverlap2DConstraintProto)
3913  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3914  } else {
3915  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.NoOverlap2DConstraintProto)
3916  MergeFrom(*source);
3917  }
3918 }
3919 
3920 void NoOverlap2DConstraintProto::MergeFrom(const NoOverlap2DConstraintProto& from) {
3921 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3922  GOOGLE_DCHECK_NE(&from, this);
3923  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3924  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3925  (void) cached_has_bits;
3926 
3927  x_intervals_.MergeFrom(from.x_intervals_);
3928  y_intervals_.MergeFrom(from.y_intervals_);
3929  if (from.boxes_with_null_area_can_overlap() != 0) {
3930  _internal_set_boxes_with_null_area_can_overlap(from._internal_boxes_with_null_area_can_overlap());
3931  }
3932 }
3933 
3934 void NoOverlap2DConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3935 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3936  if (&from == this) return;
3937  Clear();
3938  MergeFrom(from);
3939 }
3940 
3941 void NoOverlap2DConstraintProto::CopyFrom(const NoOverlap2DConstraintProto& from) {
3942 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3943  if (&from == this) return;
3944  Clear();
3945  MergeFrom(from);
3946 }
3947 
3948 bool NoOverlap2DConstraintProto::IsInitialized() const {
3949  return true;
3950 }
3951 
3952 void NoOverlap2DConstraintProto::InternalSwap(NoOverlap2DConstraintProto* other) {
3953  using std::swap;
3954  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3955  x_intervals_.InternalSwap(&other->x_intervals_);
3956  y_intervals_.InternalSwap(&other->y_intervals_);
3957  swap(boxes_with_null_area_can_overlap_, other->boxes_with_null_area_can_overlap_);
3958 }
3959 
3960 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlap2DConstraintProto::GetMetadata() const {
3961  return GetMetadataStatic();
3962 }
3963 
3964 
3965 // ===================================================================
3966 
3968  public:
3969 };
3970 
3971 CumulativeConstraintProto::CumulativeConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3972  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3973  intervals_(arena),
3974  demands_(arena) {
3975  SharedCtor();
3976  RegisterArenaDtor(arena);
3977  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CumulativeConstraintProto)
3978 }
3979 CumulativeConstraintProto::CumulativeConstraintProto(const CumulativeConstraintProto& from)
3980  : ::PROTOBUF_NAMESPACE_ID::Message(),
3981  intervals_(from.intervals_),
3982  demands_(from.demands_) {
3983  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3984  capacity_ = from.capacity_;
3985  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CumulativeConstraintProto)
3986 }
3987 
3988 void CumulativeConstraintProto::SharedCtor() {
3989  capacity_ = 0;
3990 }
3991 
3992 CumulativeConstraintProto::~CumulativeConstraintProto() {
3993  // @@protoc_insertion_point(destructor:operations_research.sat.CumulativeConstraintProto)
3994  SharedDtor();
3995  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3996 }
3997 
3998 void CumulativeConstraintProto::SharedDtor() {
3999  GOOGLE_DCHECK(GetArena() == nullptr);
4000 }
4001 
4002 void CumulativeConstraintProto::ArenaDtor(void* object) {
4003  CumulativeConstraintProto* _this = reinterpret_cast< CumulativeConstraintProto* >(object);
4004  (void)_this;
4005 }
4006 void CumulativeConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4007 }
4008 void CumulativeConstraintProto::SetCachedSize(int size) const {
4009  _cached_size_.Set(size);
4010 }
4011 const CumulativeConstraintProto& CumulativeConstraintProto::default_instance() {
4012  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4013  return *internal_default_instance();
4014 }
4015 
4016 
4017 void CumulativeConstraintProto::Clear() {
4018 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CumulativeConstraintProto)
4019  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4020  // Prevent compiler warnings about cached_has_bits being unused
4021  (void) cached_has_bits;
4022 
4023  intervals_.Clear();
4024  demands_.Clear();
4025  capacity_ = 0;
4026  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4027 }
4028 
4029 const char* CumulativeConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4030 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4031  while (!ctx->Done(&ptr)) {
4033  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4034  CHK_(ptr);
4035  switch (tag >> 3) {
4036  // int32 capacity = 1;
4037  case 1:
4038  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
4039  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4040  CHK_(ptr);
4041  } else goto handle_unusual;
4042  continue;
4043  // repeated int32 intervals = 2;
4044  case 2:
4045  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
4046  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
4047  CHK_(ptr);
4048  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
4049  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4050  CHK_(ptr);
4051  } else goto handle_unusual;
4052  continue;
4053  // repeated int32 demands = 3;
4054  case 3:
4055  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4056  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
4057  CHK_(ptr);
4058  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4059  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4060  CHK_(ptr);
4061  } else goto handle_unusual;
4062  continue;
4063  default: {
4064  handle_unusual:
4065  if ((tag & 7) == 4 || tag == 0) {
4066  ctx->SetLastTag(tag);
4067  goto success;
4068  }
4069  ptr = UnknownFieldParse(tag,
4070  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4071  ptr, ctx);
4072  CHK_(ptr != nullptr);
4073  continue;
4074  }
4075  } // switch
4076  } // while
4077 success:
4078  return ptr;
4079 failure:
4080  ptr = nullptr;
4081  goto success;
4082 #undef CHK_
4083 }
4084 
4085 ::PROTOBUF_NAMESPACE_ID::uint8* CumulativeConstraintProto::_InternalSerialize(
4086  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4087  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CumulativeConstraintProto)
4088  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4089  (void) cached_has_bits;
4090 
4091  // int32 capacity = 1;
4092  if (this->capacity() != 0) {
4093  target = stream->EnsureSpace(target);
4094  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_capacity(), target);
4095  }
4096 
4097  // repeated int32 intervals = 2;
4098  {
4099  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
4100  if (byte_size > 0) {
4101  target = stream->WriteInt32Packed(
4102  2, _internal_intervals(), byte_size, target);
4103  }
4104  }
4105 
4106  // repeated int32 demands = 3;
4107  {
4108  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4109  if (byte_size > 0) {
4110  target = stream->WriteInt32Packed(
4111  3, _internal_demands(), byte_size, target);
4112  }
4113  }
4114 
4115  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4116  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4117  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4118  }
4119  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CumulativeConstraintProto)
4120  return target;
4121 }
4122 
4123 size_t CumulativeConstraintProto::ByteSizeLong() const {
4124 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CumulativeConstraintProto)
4125  size_t total_size = 0;
4126 
4127  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4128  // Prevent compiler warnings about cached_has_bits being unused
4129  (void) cached_has_bits;
4130 
4131  // repeated int32 intervals = 2;
4132  {
4133  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4134  Int32Size(this->intervals_);
4135  if (data_size > 0) {
4136  total_size += 1 +
4137  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4138  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4139  }
4140  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4141  _intervals_cached_byte_size_.store(cached_size,
4142  std::memory_order_relaxed);
4143  total_size += data_size;
4144  }
4145 
4146  // repeated int32 demands = 3;
4147  {
4148  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4149  Int32Size(this->demands_);
4150  if (data_size > 0) {
4151  total_size += 1 +
4152  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4153  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4154  }
4155  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4156  _demands_cached_byte_size_.store(cached_size,
4157  std::memory_order_relaxed);
4158  total_size += data_size;
4159  }
4160 
4161  // int32 capacity = 1;
4162  if (this->capacity() != 0) {
4163  total_size += 1 +
4164  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4165  this->_internal_capacity());
4166  }
4167 
4168  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4169  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4170  _internal_metadata_, total_size, &_cached_size_);
4171  }
4172  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4173  SetCachedSize(cached_size);
4174  return total_size;
4175 }
4176 
4177 void CumulativeConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4178 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CumulativeConstraintProto)
4179  GOOGLE_DCHECK_NE(&from, this);
4180  const CumulativeConstraintProto* source =
4181  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CumulativeConstraintProto>(
4182  &from);
4183  if (source == nullptr) {
4184  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CumulativeConstraintProto)
4185  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4186  } else {
4187  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CumulativeConstraintProto)
4188  MergeFrom(*source);
4189  }
4190 }
4191 
4192 void CumulativeConstraintProto::MergeFrom(const CumulativeConstraintProto& from) {
4193 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CumulativeConstraintProto)
4194  GOOGLE_DCHECK_NE(&from, this);
4195  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4196  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4197  (void) cached_has_bits;
4198 
4199  intervals_.MergeFrom(from.intervals_);
4200  demands_.MergeFrom(from.demands_);
4201  if (from.capacity() != 0) {
4202  _internal_set_capacity(from._internal_capacity());
4203  }
4204 }
4205 
4206 void CumulativeConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4207 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CumulativeConstraintProto)
4208  if (&from == this) return;
4209  Clear();
4210  MergeFrom(from);
4211 }
4212 
4213 void CumulativeConstraintProto::CopyFrom(const CumulativeConstraintProto& from) {
4214 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CumulativeConstraintProto)
4215  if (&from == this) return;
4216  Clear();
4217  MergeFrom(from);
4218 }
4219 
4220 bool CumulativeConstraintProto::IsInitialized() const {
4221  return true;
4222 }
4223 
4224 void CumulativeConstraintProto::InternalSwap(CumulativeConstraintProto* other) {
4225  using std::swap;
4226  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4227  intervals_.InternalSwap(&other->intervals_);
4228  demands_.InternalSwap(&other->demands_);
4229  swap(capacity_, other->capacity_);
4230 }
4231 
4232 ::PROTOBUF_NAMESPACE_ID::Metadata CumulativeConstraintProto::GetMetadata() const {
4233  return GetMetadataStatic();
4234 }
4235 
4236 
4237 // ===================================================================
4238 
4240  public:
4241 };
4242 
4243 ReservoirConstraintProto::ReservoirConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4244  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4245  times_(arena),
4246  demands_(arena),
4247  actives_(arena) {
4248  SharedCtor();
4249  RegisterArenaDtor(arena);
4250  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ReservoirConstraintProto)
4251 }
4252 ReservoirConstraintProto::ReservoirConstraintProto(const ReservoirConstraintProto& from)
4253  : ::PROTOBUF_NAMESPACE_ID::Message(),
4254  times_(from.times_),
4255  demands_(from.demands_),
4256  actives_(from.actives_) {
4257  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4258  ::memcpy(&min_level_, &from.min_level_,
4259  static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4260  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4261  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ReservoirConstraintProto)
4262 }
4263 
4264 void ReservoirConstraintProto::SharedCtor() {
4265  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
4266  reinterpret_cast<char*>(&min_level_) - reinterpret_cast<char*>(this)),
4267  0, static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4268  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4269 }
4270 
4271 ReservoirConstraintProto::~ReservoirConstraintProto() {
4272  // @@protoc_insertion_point(destructor:operations_research.sat.ReservoirConstraintProto)
4273  SharedDtor();
4274  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4275 }
4276 
4277 void ReservoirConstraintProto::SharedDtor() {
4278  GOOGLE_DCHECK(GetArena() == nullptr);
4279 }
4280 
4281 void ReservoirConstraintProto::ArenaDtor(void* object) {
4282  ReservoirConstraintProto* _this = reinterpret_cast< ReservoirConstraintProto* >(object);
4283  (void)_this;
4284 }
4285 void ReservoirConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4286 }
4287 void ReservoirConstraintProto::SetCachedSize(int size) const {
4288  _cached_size_.Set(size);
4289 }
4290 const ReservoirConstraintProto& ReservoirConstraintProto::default_instance() {
4291  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4292  return *internal_default_instance();
4293 }
4294 
4295 
4296 void ReservoirConstraintProto::Clear() {
4297 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ReservoirConstraintProto)
4298  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4299  // Prevent compiler warnings about cached_has_bits being unused
4300  (void) cached_has_bits;
4301 
4302  times_.Clear();
4303  demands_.Clear();
4304  actives_.Clear();
4305  ::memset(&min_level_, 0, static_cast<size_t>(
4306  reinterpret_cast<char*>(&max_level_) -
4307  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4308  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4309 }
4310 
4311 const char* ReservoirConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4312 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4313  while (!ctx->Done(&ptr)) {
4315  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4316  CHK_(ptr);
4317  switch (tag >> 3) {
4318  // int64 min_level = 1;
4319  case 1:
4320  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
4321  min_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4322  CHK_(ptr);
4323  } else goto handle_unusual;
4324  continue;
4325  // int64 max_level = 2;
4326  case 2:
4327  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
4328  max_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4329  CHK_(ptr);
4330  } else goto handle_unusual;
4331  continue;
4332  // repeated int32 times = 3;
4333  case 3:
4334  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4335  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_times(), ptr, ctx);
4336  CHK_(ptr);
4337  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4338  _internal_add_times(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4339  CHK_(ptr);
4340  } else goto handle_unusual;
4341  continue;
4342  // repeated int64 demands = 4;
4343  case 4:
4344  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4345  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_demands(), ptr, ctx);
4346  CHK_(ptr);
4347  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4348  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4349  CHK_(ptr);
4350  } else goto handle_unusual;
4351  continue;
4352  // repeated int32 actives = 5;
4353  case 5:
4354  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4355  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_actives(), ptr, ctx);
4356  CHK_(ptr);
4357  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4358  _internal_add_actives(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4359  CHK_(ptr);
4360  } else goto handle_unusual;
4361  continue;
4362  default: {
4363  handle_unusual:
4364  if ((tag & 7) == 4 || tag == 0) {
4365  ctx->SetLastTag(tag);
4366  goto success;
4367  }
4368  ptr = UnknownFieldParse(tag,
4369  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4370  ptr, ctx);
4371  CHK_(ptr != nullptr);
4372  continue;
4373  }
4374  } // switch
4375  } // while
4376 success:
4377  return ptr;
4378 failure:
4379  ptr = nullptr;
4380  goto success;
4381 #undef CHK_
4382 }
4383 
4384 ::PROTOBUF_NAMESPACE_ID::uint8* ReservoirConstraintProto::_InternalSerialize(
4385  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4386  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ReservoirConstraintProto)
4387  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4388  (void) cached_has_bits;
4389 
4390  // int64 min_level = 1;
4391  if (this->min_level() != 0) {
4392  target = stream->EnsureSpace(target);
4393  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_min_level(), target);
4394  }
4395 
4396  // int64 max_level = 2;
4397  if (this->max_level() != 0) {
4398  target = stream->EnsureSpace(target);
4399  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_max_level(), target);
4400  }
4401 
4402  // repeated int32 times = 3;
4403  {
4404  int byte_size = _times_cached_byte_size_.load(std::memory_order_relaxed);
4405  if (byte_size > 0) {
4406  target = stream->WriteInt32Packed(
4407  3, _internal_times(), byte_size, target);
4408  }
4409  }
4410 
4411  // repeated int64 demands = 4;
4412  {
4413  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4414  if (byte_size > 0) {
4415  target = stream->WriteInt64Packed(
4416  4, _internal_demands(), byte_size, target);
4417  }
4418  }
4419 
4420  // repeated int32 actives = 5;
4421  {
4422  int byte_size = _actives_cached_byte_size_.load(std::memory_order_relaxed);
4423  if (byte_size > 0) {
4424  target = stream->WriteInt32Packed(
4425  5, _internal_actives(), byte_size, target);
4426  }
4427  }
4428 
4429  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4430  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4431  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4432  }
4433  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ReservoirConstraintProto)
4434  return target;
4435 }
4436 
4437 size_t ReservoirConstraintProto::ByteSizeLong() const {
4438 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ReservoirConstraintProto)
4439  size_t total_size = 0;
4440 
4441  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4442  // Prevent compiler warnings about cached_has_bits being unused
4443  (void) cached_has_bits;
4444 
4445  // repeated int32 times = 3;
4446  {
4447  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4448  Int32Size(this->times_);
4449  if (data_size > 0) {
4450  total_size += 1 +
4451  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4452  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4453  }
4454  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4455  _times_cached_byte_size_.store(cached_size,
4456  std::memory_order_relaxed);
4457  total_size += data_size;
4458  }
4459 
4460  // repeated int64 demands = 4;
4461  {
4462  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4463  Int64Size(this->demands_);
4464  if (data_size > 0) {
4465  total_size += 1 +
4466  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4467  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4468  }
4469  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4470  _demands_cached_byte_size_.store(cached_size,
4471  std::memory_order_relaxed);
4472  total_size += data_size;
4473  }
4474 
4475  // repeated int32 actives = 5;
4476  {
4477  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4478  Int32Size(this->actives_);
4479  if (data_size > 0) {
4480  total_size += 1 +
4481  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4482  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4483  }
4484  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4485  _actives_cached_byte_size_.store(cached_size,
4486  std::memory_order_relaxed);
4487  total_size += data_size;
4488  }
4489 
4490  // int64 min_level = 1;
4491  if (this->min_level() != 0) {
4492  total_size += 1 +
4493  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4494  this->_internal_min_level());
4495  }
4496 
4497  // int64 max_level = 2;
4498  if (this->max_level() != 0) {
4499  total_size += 1 +
4500  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4501  this->_internal_max_level());
4502  }
4503 
4504  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4505  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4506  _internal_metadata_, total_size, &_cached_size_);
4507  }
4508  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4509  SetCachedSize(cached_size);
4510  return total_size;
4511 }
4512 
4513 void ReservoirConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4514 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4515  GOOGLE_DCHECK_NE(&from, this);
4516  const ReservoirConstraintProto* source =
4517  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ReservoirConstraintProto>(
4518  &from);
4519  if (source == nullptr) {
4520  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ReservoirConstraintProto)
4521  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4522  } else {
4523  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ReservoirConstraintProto)
4524  MergeFrom(*source);
4525  }
4526 }
4527 
4528 void ReservoirConstraintProto::MergeFrom(const ReservoirConstraintProto& from) {
4529 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4530  GOOGLE_DCHECK_NE(&from, this);
4531  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4532  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4533  (void) cached_has_bits;
4534 
4535  times_.MergeFrom(from.times_);
4536  demands_.MergeFrom(from.demands_);
4537  actives_.MergeFrom(from.actives_);
4538  if (from.min_level() != 0) {
4539  _internal_set_min_level(from._internal_min_level());
4540  }
4541  if (from.max_level() != 0) {
4542  _internal_set_max_level(from._internal_max_level());
4543  }
4544 }
4545 
4546 void ReservoirConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4547 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4548  if (&from == this) return;
4549  Clear();
4550  MergeFrom(from);
4551 }
4552 
4553 void ReservoirConstraintProto::CopyFrom(const ReservoirConstraintProto& from) {
4554 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4555  if (&from == this) return;
4556  Clear();
4557  MergeFrom(from);
4558 }
4559 
4560 bool ReservoirConstraintProto::IsInitialized() const {
4561  return true;
4562 }
4563 
4564 void ReservoirConstraintProto::InternalSwap(ReservoirConstraintProto* other) {
4565  using std::swap;
4566  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4567  times_.InternalSwap(&other->times_);
4568  demands_.InternalSwap(&other->demands_);
4569  actives_.InternalSwap(&other->actives_);
4570  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
4571  PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, max_level_)
4572  + sizeof(ReservoirConstraintProto::max_level_)
4573  - PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, min_level_)>(
4574  reinterpret_cast<char*>(&min_level_),
4575  reinterpret_cast<char*>(&other->min_level_));
4576 }
4577 
4578 ::PROTOBUF_NAMESPACE_ID::Metadata ReservoirConstraintProto::GetMetadata() const {
4579  return GetMetadataStatic();
4580 }
4581 
4582 
4583 // ===================================================================
4584 
4586  public:
4587 };
4588 
4589 CircuitConstraintProto::CircuitConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4590  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4591  tails_(arena),
4592  heads_(arena),
4593  literals_(arena) {
4594  SharedCtor();
4595  RegisterArenaDtor(arena);
4596  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CircuitConstraintProto)
4597 }
4598 CircuitConstraintProto::CircuitConstraintProto(const CircuitConstraintProto& from)
4599  : ::PROTOBUF_NAMESPACE_ID::Message(),
4600  tails_(from.tails_),
4601  heads_(from.heads_),
4602  literals_(from.literals_) {
4603  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4604  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CircuitConstraintProto)
4605 }
4606 
4607 void CircuitConstraintProto::SharedCtor() {
4608 }
4609 
4610 CircuitConstraintProto::~CircuitConstraintProto() {
4611  // @@protoc_insertion_point(destructor:operations_research.sat.CircuitConstraintProto)
4612  SharedDtor();
4613  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4614 }
4615 
4616 void CircuitConstraintProto::SharedDtor() {
4617  GOOGLE_DCHECK(GetArena() == nullptr);
4618 }
4619 
4620 void CircuitConstraintProto::ArenaDtor(void* object) {
4621  CircuitConstraintProto* _this = reinterpret_cast< CircuitConstraintProto* >(object);
4622  (void)_this;
4623 }
4624 void CircuitConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4625 }
4626 void CircuitConstraintProto::SetCachedSize(int size) const {
4627  _cached_size_.Set(size);
4628 }
4629 const CircuitConstraintProto& CircuitConstraintProto::default_instance() {
4630  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4631  return *internal_default_instance();
4632 }
4633 
4634 
4635 void CircuitConstraintProto::Clear() {
4636 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CircuitConstraintProto)
4637  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4638  // Prevent compiler warnings about cached_has_bits being unused
4639  (void) cached_has_bits;
4640 
4641  tails_.Clear();
4642  heads_.Clear();
4643  literals_.Clear();
4644  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4645 }
4646 
4647 const char* CircuitConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4648 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4649  while (!ctx->Done(&ptr)) {
4651  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4652  CHK_(ptr);
4653  switch (tag >> 3) {
4654  // repeated int32 tails = 3;
4655  case 3:
4656  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4657  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4658  CHK_(ptr);
4659  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4660  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4661  CHK_(ptr);
4662  } else goto handle_unusual;
4663  continue;
4664  // repeated int32 heads = 4;
4665  case 4:
4666  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4667  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4668  CHK_(ptr);
4669  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4670  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4671  CHK_(ptr);
4672  } else goto handle_unusual;
4673  continue;
4674  // repeated int32 literals = 5;
4675  case 5:
4676  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4677  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4678  CHK_(ptr);
4679  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4680  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4681  CHK_(ptr);
4682  } else goto handle_unusual;
4683  continue;
4684  default: {
4685  handle_unusual:
4686  if ((tag & 7) == 4 || tag == 0) {
4687  ctx->SetLastTag(tag);
4688  goto success;
4689  }
4690  ptr = UnknownFieldParse(tag,
4691  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4692  ptr, ctx);
4693  CHK_(ptr != nullptr);
4694  continue;
4695  }
4696  } // switch
4697  } // while
4698 success:
4699  return ptr;
4700 failure:
4701  ptr = nullptr;
4702  goto success;
4703 #undef CHK_
4704 }
4705 
4706 ::PROTOBUF_NAMESPACE_ID::uint8* CircuitConstraintProto::_InternalSerialize(
4707  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4708  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CircuitConstraintProto)
4709  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4710  (void) cached_has_bits;
4711 
4712  // repeated int32 tails = 3;
4713  {
4714  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4715  if (byte_size > 0) {
4716  target = stream->WriteInt32Packed(
4717  3, _internal_tails(), byte_size, target);
4718  }
4719  }
4720 
4721  // repeated int32 heads = 4;
4722  {
4723  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4724  if (byte_size > 0) {
4725  target = stream->WriteInt32Packed(
4726  4, _internal_heads(), byte_size, target);
4727  }
4728  }
4729 
4730  // repeated int32 literals = 5;
4731  {
4732  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4733  if (byte_size > 0) {
4734  target = stream->WriteInt32Packed(
4735  5, _internal_literals(), byte_size, target);
4736  }
4737  }
4738 
4739  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4740  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4741  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4742  }
4743  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CircuitConstraintProto)
4744  return target;
4745 }
4746 
4747 size_t CircuitConstraintProto::ByteSizeLong() const {
4748 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CircuitConstraintProto)
4749  size_t total_size = 0;
4750 
4751  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4752  // Prevent compiler warnings about cached_has_bits being unused
4753  (void) cached_has_bits;
4754 
4755  // repeated int32 tails = 3;
4756  {
4757  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4758  Int32Size(this->tails_);
4759  if (data_size > 0) {
4760  total_size += 1 +
4761  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4762  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4763  }
4764  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4765  _tails_cached_byte_size_.store(cached_size,
4766  std::memory_order_relaxed);
4767  total_size += data_size;
4768  }
4769 
4770  // repeated int32 heads = 4;
4771  {
4772  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4773  Int32Size(this->heads_);
4774  if (data_size > 0) {
4775  total_size += 1 +
4776  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4777  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4778  }
4779  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4780  _heads_cached_byte_size_.store(cached_size,
4781  std::memory_order_relaxed);
4782  total_size += data_size;
4783  }
4784 
4785  // repeated int32 literals = 5;
4786  {
4787  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4788  Int32Size(this->literals_);
4789  if (data_size > 0) {
4790  total_size += 1 +
4791  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4792  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4793  }
4794  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4795  _literals_cached_byte_size_.store(cached_size,
4796  std::memory_order_relaxed);
4797  total_size += data_size;
4798  }
4799 
4800  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4801  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4802  _internal_metadata_, total_size, &_cached_size_);
4803  }
4804  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4805  SetCachedSize(cached_size);
4806  return total_size;
4807 }
4808 
4809 void CircuitConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4810 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CircuitConstraintProto)
4811  GOOGLE_DCHECK_NE(&from, this);
4812  const CircuitConstraintProto* source =
4813  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CircuitConstraintProto>(
4814  &from);
4815  if (source == nullptr) {
4816  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CircuitConstraintProto)
4817  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4818  } else {
4819  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CircuitConstraintProto)
4820  MergeFrom(*source);
4821  }
4822 }
4823 
4824 void CircuitConstraintProto::MergeFrom(const CircuitConstraintProto& from) {
4825 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CircuitConstraintProto)
4826  GOOGLE_DCHECK_NE(&from, this);
4827  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4828  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4829  (void) cached_has_bits;
4830 
4831  tails_.MergeFrom(from.tails_);
4832  heads_.MergeFrom(from.heads_);
4833  literals_.MergeFrom(from.literals_);
4834 }
4835 
4836 void CircuitConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4837 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CircuitConstraintProto)
4838  if (&from == this) return;
4839  Clear();
4840  MergeFrom(from);
4841 }
4842 
4843 void CircuitConstraintProto::CopyFrom(const CircuitConstraintProto& from) {
4844 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CircuitConstraintProto)
4845  if (&from == this) return;
4846  Clear();
4847  MergeFrom(from);
4848 }
4849 
4850 bool CircuitConstraintProto::IsInitialized() const {
4851  return true;
4852 }
4853 
4854 void CircuitConstraintProto::InternalSwap(CircuitConstraintProto* other) {
4855  using std::swap;
4856  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4857  tails_.InternalSwap(&other->tails_);
4858  heads_.InternalSwap(&other->heads_);
4859  literals_.InternalSwap(&other->literals_);
4860 }
4861 
4862 ::PROTOBUF_NAMESPACE_ID::Metadata CircuitConstraintProto::GetMetadata() const {
4863  return GetMetadataStatic();
4864 }
4865 
4866 
4867 // ===================================================================
4868 
4870  public:
4871 };
4872 
4873 RoutesConstraintProto::RoutesConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4874  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4875  tails_(arena),
4876  heads_(arena),
4877  literals_(arena),
4878  demands_(arena) {
4879  SharedCtor();
4880  RegisterArenaDtor(arena);
4881  // @@protoc_insertion_point(arena_constructor:operations_research.sat.RoutesConstraintProto)
4882 }
4883 RoutesConstraintProto::RoutesConstraintProto(const RoutesConstraintProto& from)
4884  : ::PROTOBUF_NAMESPACE_ID::Message(),
4885  tails_(from.tails_),
4886  heads_(from.heads_),
4887  literals_(from.literals_),
4888  demands_(from.demands_) {
4889  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4890  capacity_ = from.capacity_;
4891  // @@protoc_insertion_point(copy_constructor:operations_research.sat.RoutesConstraintProto)
4892 }
4893 
4894 void RoutesConstraintProto::SharedCtor() {
4895  capacity_ = PROTOBUF_LONGLONG(0);
4896 }
4897 
4898 RoutesConstraintProto::~RoutesConstraintProto() {
4899  // @@protoc_insertion_point(destructor:operations_research.sat.RoutesConstraintProto)
4900  SharedDtor();
4901  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4902 }
4903 
4904 void RoutesConstraintProto::SharedDtor() {
4905  GOOGLE_DCHECK(GetArena() == nullptr);
4906 }
4907 
4908 void RoutesConstraintProto::ArenaDtor(void* object) {
4909  RoutesConstraintProto* _this = reinterpret_cast< RoutesConstraintProto* >(object);
4910  (void)_this;
4911 }
4912 void RoutesConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4913 }
4914 void RoutesConstraintProto::SetCachedSize(int size) const {
4915  _cached_size_.Set(size);
4916 }
4917 const RoutesConstraintProto& RoutesConstraintProto::default_instance() {
4918  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4919  return *internal_default_instance();
4920 }
4921 
4922 
4923 void RoutesConstraintProto::Clear() {
4924 // @@protoc_insertion_point(message_clear_start:operations_research.sat.RoutesConstraintProto)
4925  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4926  // Prevent compiler warnings about cached_has_bits being unused
4927  (void) cached_has_bits;
4928 
4929  tails_.Clear();
4930  heads_.Clear();
4931  literals_.Clear();
4932  demands_.Clear();
4933  capacity_ = PROTOBUF_LONGLONG(0);
4934  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4935 }
4936 
4937 const char* RoutesConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4938 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4939  while (!ctx->Done(&ptr)) {
4941  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4942  CHK_(ptr);
4943  switch (tag >> 3) {
4944  // repeated int32 tails = 1;
4945  case 1:
4946  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
4947  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4948  CHK_(ptr);
4949  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
4950  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4951  CHK_(ptr);
4952  } else goto handle_unusual;
4953  continue;
4954  // repeated int32 heads = 2;
4955  case 2:
4956  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
4957  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4958  CHK_(ptr);
4959  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
4960  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4961  CHK_(ptr);
4962  } else goto handle_unusual;
4963  continue;
4964  // repeated int32 literals = 3;
4965  case 3:
4966  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4967  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4968  CHK_(ptr);
4969  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4970  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4971  CHK_(ptr);
4972  } else goto handle_unusual;
4973  continue;
4974  // repeated int32 demands = 4;
4975  case 4:
4976  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4977  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
4978  CHK_(ptr);
4979  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4980  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4981  CHK_(ptr);
4982  } else goto handle_unusual;
4983  continue;
4984  // int64 capacity = 5;
4985  case 5:
4986  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
4987  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4988  CHK_(ptr);
4989  } else goto handle_unusual;
4990  continue;
4991  default: {
4992  handle_unusual:
4993  if ((tag & 7) == 4 || tag == 0) {
4994  ctx->SetLastTag(tag);
4995  goto success;
4996  }
4997  ptr = UnknownFieldParse(tag,
4998  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4999  ptr, ctx);
5000  CHK_(ptr != nullptr);
5001  continue;
5002  }
5003  } // switch
5004  } // while
5005 success:
5006  return ptr;
5007 failure:
5008  ptr = nullptr;
5009  goto success;
5010 #undef CHK_
5011 }
5012 
5013 ::PROTOBUF_NAMESPACE_ID::uint8* RoutesConstraintProto::_InternalSerialize(
5014  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5015  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.RoutesConstraintProto)
5016  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5017  (void) cached_has_bits;
5018 
5019  // repeated int32 tails = 1;
5020  {
5021  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
5022  if (byte_size > 0) {
5023  target = stream->WriteInt32Packed(
5024  1, _internal_tails(), byte_size, target);
5025  }
5026  }
5027 
5028  // repeated int32 heads = 2;
5029  {
5030  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
5031  if (byte_size > 0) {
5032  target = stream->WriteInt32Packed(
5033  2, _internal_heads(), byte_size, target);
5034  }
5035  }
5036 
5037  // repeated int32 literals = 3;
5038  {
5039  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
5040  if (byte_size > 0) {
5041  target = stream->WriteInt32Packed(
5042  3, _internal_literals(), byte_size, target);
5043  }
5044  }
5045 
5046  // repeated int32 demands = 4;
5047  {
5048  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
5049  if (byte_size > 0) {
5050  target = stream->WriteInt32Packed(
5051  4, _internal_demands(), byte_size, target);
5052  }
5053  }
5054 
5055  // int64 capacity = 5;
5056  if (this->capacity() != 0) {
5057  target = stream->EnsureSpace(target);
5058  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_capacity(), target);
5059  }
5060 
5061  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5062  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5063  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5064  }
5065  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.RoutesConstraintProto)
5066  return target;
5067 }
5068 
5069 size_t RoutesConstraintProto::ByteSizeLong() const {
5070 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.RoutesConstraintProto)
5071  size_t total_size = 0;
5072 
5073  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5074  // Prevent compiler warnings about cached_has_bits being unused
5075  (void) cached_has_bits;
5076 
5077  // repeated int32 tails = 1;
5078  {
5079  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5080  Int32Size(this->tails_);
5081  if (data_size > 0) {
5082  total_size += 1 +
5083  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5084  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5085  }
5086  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5087  _tails_cached_byte_size_.store(cached_size,
5088  std::memory_order_relaxed);
5089  total_size += data_size;
5090  }
5091 
5092  // repeated int32 heads = 2;
5093  {
5094  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5095  Int32Size(this->heads_);
5096  if (data_size > 0) {
5097  total_size += 1 +
5098  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5099  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5100  }
5101  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5102  _heads_cached_byte_size_.store(cached_size,
5103  std::memory_order_relaxed);
5104  total_size += data_size;
5105  }
5106 
5107  // repeated int32 literals = 3;
5108  {
5109  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5110  Int32Size(this->literals_);
5111  if (data_size > 0) {
5112  total_size += 1 +
5113  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5114  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5115  }
5116  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5117  _literals_cached_byte_size_.store(cached_size,
5118  std::memory_order_relaxed);
5119  total_size += data_size;
5120  }
5121 
5122  // repeated int32 demands = 4;
5123  {
5124  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5125  Int32Size(this->demands_);
5126  if (data_size > 0) {
5127  total_size += 1 +
5128  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5129  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5130  }
5131  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5132  _demands_cached_byte_size_.store(cached_size,
5133  std::memory_order_relaxed);
5134  total_size += data_size;
5135  }
5136 
5137  // int64 capacity = 5;
5138  if (this->capacity() != 0) {
5139  total_size += 1 +
5140  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
5141  this->_internal_capacity());
5142  }
5143 
5144  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5145  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5146  _internal_metadata_, total_size, &_cached_size_);
5147  }
5148  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5149  SetCachedSize(cached_size);
5150  return total_size;
5151 }
5152 
5153 void RoutesConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5154 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.RoutesConstraintProto)
5155  GOOGLE_DCHECK_NE(&from, this);
5156  const RoutesConstraintProto* source =
5157  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutesConstraintProto>(
5158  &from);
5159  if (source == nullptr) {
5160  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.RoutesConstraintProto)
5161  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5162  } else {
5163  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.RoutesConstraintProto)
5164  MergeFrom(*source);
5165  }
5166 }
5167 
5168 void RoutesConstraintProto::MergeFrom(const RoutesConstraintProto& from) {
5169 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.RoutesConstraintProto)
5170  GOOGLE_DCHECK_NE(&from, this);
5171  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5172  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5173  (void) cached_has_bits;
5174 
5175  tails_.MergeFrom(from.tails_);
5176  heads_.MergeFrom(from.heads_);
5177  literals_.MergeFrom(from.literals_);
5178  demands_.MergeFrom(from.demands_);
5179  if (from.capacity() != 0) {
5180  _internal_set_capacity(from._internal_capacity());
5181  }
5182 }
5183 
5184 void RoutesConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5185 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.RoutesConstraintProto)
5186  if (&from == this) return;
5187  Clear();
5188  MergeFrom(from);
5189 }
5190 
5191 void RoutesConstraintProto::CopyFrom(const RoutesConstraintProto& from) {
5192 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.RoutesConstraintProto)
5193  if (&from == this) return;
5194  Clear();
5195  MergeFrom(from);
5196 }
5197 
5198 bool RoutesConstraintProto::IsInitialized() const {
5199  return true;
5200 }
5201 
5202 void RoutesConstraintProto::InternalSwap(RoutesConstraintProto* other) {
5203  using std::swap;
5204  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5205  tails_.InternalSwap(&other->tails_);
5206  heads_.InternalSwap(&other->heads_);
5207  literals_.InternalSwap(&other->literals_);
5208  demands_.InternalSwap(&other->demands_);
5209  swap(capacity_, other->capacity_);
5210 }
5211 
5212 ::PROTOBUF_NAMESPACE_ID::Metadata RoutesConstraintProto::GetMetadata() const {
5213  return GetMetadataStatic();
5214 }
5215 
5216 
5217 // ===================================================================
5218 
5220  public:
5221 };
5222 
5223 TableConstraintProto::TableConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5224  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5225  vars_(arena),
5226  values_(arena) {
5227  SharedCtor();
5228  RegisterArenaDtor(arena);
5229  // @@protoc_insertion_point(arena_constructor:operations_research.sat.TableConstraintProto)
5230 }
5231 TableConstraintProto::TableConstraintProto(const TableConstraintProto& from)
5232  : ::PROTOBUF_NAMESPACE_ID::Message(),
5233  vars_(from.vars_),
5234  values_(from.values_) {
5235  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5236  negated_ = from.negated_;
5237  // @@protoc_insertion_point(copy_constructor:operations_research.sat.TableConstraintProto)
5238 }
5239 
5240 void TableConstraintProto::SharedCtor() {
5241  negated_ = false;
5242 }
5243 
5244 TableConstraintProto::~TableConstraintProto() {
5245  // @@protoc_insertion_point(destructor:operations_research.sat.TableConstraintProto)
5246  SharedDtor();
5247  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5248 }
5249 
5250 void TableConstraintProto::SharedDtor() {
5251  GOOGLE_DCHECK(GetArena() == nullptr);
5252 }
5253 
5254 void TableConstraintProto::ArenaDtor(void* object) {
5255  TableConstraintProto* _this = reinterpret_cast< TableConstraintProto* >(object);
5256  (void)_this;
5257 }
5258 void TableConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5259 }
5260 void TableConstraintProto::SetCachedSize(int size) const {
5261  _cached_size_.Set(size);
5262 }
5263 const TableConstraintProto& TableConstraintProto::default_instance() {
5264  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
5265  return *internal_default_instance();
5266 }
5267 
5268 
5269 void TableConstraintProto::Clear() {
5270 // @@protoc_insertion_point(message_clear_start:operations_research.sat.TableConstraintProto)
5271  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5272  // Prevent compiler warnings about cached_has_bits being unused
5273  (void) cached_has_bits;
5274 
5275  vars_.Clear();
5276  values_.Clear();
5277  negated_ = false;
5278  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5279 }
5280 
5281 const char* TableConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5282 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5283  while (!ctx->Done(&ptr)) {
5285  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5286  CHK_(ptr);
5287  switch (tag >> 3) {
5288  // repeated int32 vars = 1;
5289  case 1:
5290  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5291  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5292  CHK_(ptr);
5293  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5294  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5295  CHK_(ptr);
5296  } else goto handle_unusual;
5297  continue;
5298  // repeated int64 values = 2;
5299  case 2:
5300  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5301  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
5302  CHK_(ptr);
5303  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5304  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5305  CHK_(ptr);
5306  } else goto handle_unusual;
5307  continue;
5308  // bool negated = 3;
5309  case 3:
5310  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
5311  negated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5312  CHK_(ptr);
5313  } else goto handle_unusual;
5314  continue;
5315  default: {
5316  handle_unusual:
5317  if ((tag & 7) == 4 || tag == 0) {
5318  ctx->SetLastTag(tag);
5319  goto success;
5320  }
5321  ptr = UnknownFieldParse(tag,
5322  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5323  ptr, ctx);
5324  CHK_(ptr != nullptr);
5325  continue;
5326  }
5327  } // switch
5328  } // while
5329 success:
5330  return ptr;
5331 failure:
5332  ptr = nullptr;
5333  goto success;
5334 #undef CHK_
5335 }
5336 
5337 ::PROTOBUF_NAMESPACE_ID::uint8* TableConstraintProto::_InternalSerialize(
5338  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5339  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.TableConstraintProto)
5340  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5341  (void) cached_has_bits;
5342 
5343  // repeated int32 vars = 1;
5344  {
5345  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5346  if (byte_size > 0) {
5347  target = stream->WriteInt32Packed(
5348  1, _internal_vars(), byte_size, target);
5349  }
5350  }
5351 
5352  // repeated int64 values = 2;
5353  {
5354  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
5355  if (byte_size > 0) {
5356  target = stream->WriteInt64Packed(
5357  2, _internal_values(), byte_size, target);
5358  }
5359  }
5360 
5361  // bool negated = 3;
5362  if (this->negated() != 0) {
5363  target = stream->EnsureSpace(target);
5364  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_negated(), target);
5365  }
5366 
5367  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5368  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5369  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5370  }
5371  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.TableConstraintProto)
5372  return target;
5373 }
5374 
5375 size_t TableConstraintProto::ByteSizeLong() const {
5376 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.TableConstraintProto)
5377  size_t total_size = 0;
5378 
5379  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5380  // Prevent compiler warnings about cached_has_bits being unused
5381  (void) cached_has_bits;
5382 
5383  // repeated int32 vars = 1;
5384  {
5385  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5386  Int32Size(this->vars_);
5387  if (data_size > 0) {
5388  total_size += 1 +
5389  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5390  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5391  }
5392  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5393  _vars_cached_byte_size_.store(cached_size,
5394  std::memory_order_relaxed);
5395  total_size += data_size;
5396  }
5397 
5398  // repeated int64 values = 2;
5399  {
5400  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5401  Int64Size(this->values_);
5402  if (data_size > 0) {
5403  total_size += 1 +
5404  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5405  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5406  }
5407  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5408  _values_cached_byte_size_.store(cached_size,
5409  std::memory_order_relaxed);
5410  total_size += data_size;
5411  }
5412 
5413  // bool negated = 3;
5414  if (this->negated() != 0) {
5415  total_size += 1 + 1;
5416  }
5417 
5418  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5419  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5420  _internal_metadata_, total_size, &_cached_size_);
5421  }
5422  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5423  SetCachedSize(cached_size);
5424  return total_size;
5425 }
5426 
5427 void TableConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5428 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.TableConstraintProto)
5429  GOOGLE_DCHECK_NE(&from, this);
5430  const TableConstraintProto* source =
5431  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TableConstraintProto>(
5432  &from);
5433  if (source == nullptr) {
5434  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.TableConstraintProto)
5435  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5436  } else {
5437  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.TableConstraintProto)
5438  MergeFrom(*source);
5439  }
5440 }
5441 
5442 void TableConstraintProto::MergeFrom(const TableConstraintProto& from) {
5443 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.TableConstraintProto)
5444  GOOGLE_DCHECK_NE(&from, this);
5445  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5446  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5447  (void) cached_has_bits;
5448 
5449  vars_.MergeFrom(from.vars_);
5450  values_.MergeFrom(from.values_);
5451  if (from.negated() != 0) {
5452  _internal_set_negated(from._internal_negated());
5453  }
5454 }
5455 
5456 void TableConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5457 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.TableConstraintProto)
5458  if (&from == this) return;
5459  Clear();
5460  MergeFrom(from);
5461 }
5462 
5463 void TableConstraintProto::CopyFrom(const TableConstraintProto& from) {
5464 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.TableConstraintProto)
5465  if (&from == this) return;
5466  Clear();
5467  MergeFrom(from);
5468 }
5469 
5470 bool TableConstraintProto::IsInitialized() const {
5471  return true;
5472 }
5473 
5474 void TableConstraintProto::InternalSwap(TableConstraintProto* other) {
5475  using std::swap;
5476  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5477  vars_.InternalSwap(&other->vars_);
5478  values_.InternalSwap(&other->values_);
5479  swap(negated_, other->negated_);
5480 }
5481 
5482 ::PROTOBUF_NAMESPACE_ID::Metadata TableConstraintProto::GetMetadata() const {
5483  return GetMetadataStatic();
5484 }
5485 
5486 
5487 // ===================================================================
5488 
5490  public:
5491 };
5492 
5493 InverseConstraintProto::InverseConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5494  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5495  f_direct_(arena),
5496  f_inverse_(arena) {
5497  SharedCtor();
5498  RegisterArenaDtor(arena);
5499  // @@protoc_insertion_point(arena_constructor:operations_research.sat.InverseConstraintProto)
5500 }
5501 InverseConstraintProto::InverseConstraintProto(const InverseConstraintProto& from)
5502  : ::PROTOBUF_NAMESPACE_ID::Message(),
5503  f_direct_(from.f_direct_),
5504  f_inverse_(from.f_inverse_) {
5505  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5506  // @@protoc_insertion_point(copy_constructor:operations_research.sat.InverseConstraintProto)
5507 }
5508 
5509 void InverseConstraintProto::SharedCtor() {
5510 }
5511 
5512 InverseConstraintProto::~InverseConstraintProto() {
5513  // @@protoc_insertion_point(destructor:operations_research.sat.InverseConstraintProto)
5514  SharedDtor();
5515  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5516 }
5517 
5518 void InverseConstraintProto::SharedDtor() {
5519  GOOGLE_DCHECK(GetArena() == nullptr);
5520 }
5521 
5522 void InverseConstraintProto::ArenaDtor(void* object) {
5523  InverseConstraintProto* _this = reinterpret_cast< InverseConstraintProto* >(object);
5524  (void)_this;
5525 }
5526 void InverseConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5527 }
5528 void InverseConstraintProto::SetCachedSize(int size) const {
5529  _cached_size_.Set(size);
5530 }
5531 const InverseConstraintProto& InverseConstraintProto::default_instance() {
5532  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
5533  return *internal_default_instance();
5534 }
5535 
5536 
5537 void InverseConstraintProto::Clear() {
5538 // @@protoc_insertion_point(message_clear_start:operations_research.sat.InverseConstraintProto)
5539  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5540  // Prevent compiler warnings about cached_has_bits being unused
5541  (void) cached_has_bits;
5542 
5543  f_direct_.Clear();
5544  f_inverse_.Clear();
5545  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5546 }
5547 
5548 const char* InverseConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5549 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5550  while (!ctx->Done(&ptr)) {
5552  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5553  CHK_(ptr);
5554  switch (tag >> 3) {
5555  // repeated int32 f_direct = 1;
5556  case 1:
5557  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5558  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_direct(), ptr, ctx);
5559  CHK_(ptr);
5560  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5561  _internal_add_f_direct(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5562  CHK_(ptr);
5563  } else goto handle_unusual;
5564  continue;
5565  // repeated int32 f_inverse = 2;
5566  case 2:
5567  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5568  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_inverse(), ptr, ctx);
5569  CHK_(ptr);
5570  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5571  _internal_add_f_inverse(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5572  CHK_(ptr);
5573  } else goto handle_unusual;
5574  continue;
5575  default: {
5576  handle_unusual:
5577  if ((tag & 7) == 4 || tag == 0) {
5578  ctx->SetLastTag(tag);
5579  goto success;
5580  }
5581  ptr = UnknownFieldParse(tag,
5582  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5583  ptr, ctx);
5584  CHK_(ptr != nullptr);
5585  continue;
5586  }
5587  } // switch
5588  } // while
5589 success:
5590  return ptr;
5591 failure:
5592  ptr = nullptr;
5593  goto success;
5594 #undef CHK_
5595 }
5596 
5597 ::PROTOBUF_NAMESPACE_ID::uint8* InverseConstraintProto::_InternalSerialize(
5598  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5599  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.InverseConstraintProto)
5600  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5601  (void) cached_has_bits;
5602 
5603  // repeated int32 f_direct = 1;
5604  {
5605  int byte_size = _f_direct_cached_byte_size_.load(std::memory_order_relaxed);
5606  if (byte_size > 0) {
5607  target = stream->WriteInt32Packed(
5608  1, _internal_f_direct(), byte_size, target);
5609  }
5610  }
5611 
5612  // repeated int32 f_inverse = 2;
5613  {
5614  int byte_size = _f_inverse_cached_byte_size_.load(std::memory_order_relaxed);
5615  if (byte_size > 0) {
5616  target = stream->WriteInt32Packed(
5617  2, _internal_f_inverse(), byte_size, target);
5618  }
5619  }
5620 
5621  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5622  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5623  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5624  }
5625  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.InverseConstraintProto)
5626  return target;
5627 }
5628 
5629 size_t InverseConstraintProto::ByteSizeLong() const {
5630 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.InverseConstraintProto)
5631  size_t total_size = 0;
5632 
5633  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5634  // Prevent compiler warnings about cached_has_bits being unused
5635  (void) cached_has_bits;
5636 
5637  // repeated int32 f_direct = 1;
5638  {
5639  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5640  Int32Size(this->f_direct_);
5641  if (data_size > 0) {
5642  total_size += 1 +
5643  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5644  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5645  }
5646  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5647  _f_direct_cached_byte_size_.store(cached_size,
5648  std::memory_order_relaxed);
5649  total_size += data_size;
5650  }
5651 
5652  // repeated int32 f_inverse = 2;
5653  {
5654  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5655  Int32Size(this->f_inverse_);
5656  if (data_size > 0) {
5657  total_size += 1 +
5658  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5659  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5660  }
5661  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5662  _f_inverse_cached_byte_size_.store(cached_size,
5663  std::memory_order_relaxed);
5664  total_size += data_size;
5665  }
5666 
5667  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5668  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5669  _internal_metadata_, total_size, &_cached_size_);
5670  }
5671  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5672  SetCachedSize(cached_size);
5673  return total_size;
5674 }
5675 
5676 void InverseConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5677 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.InverseConstraintProto)
5678  GOOGLE_DCHECK_NE(&from, this);
5679  const InverseConstraintProto* source =
5680  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<InverseConstraintProto>(
5681  &from);
5682  if (source == nullptr) {
5683  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.InverseConstraintProto)
5684  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5685  } else {
5686  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.InverseConstraintProto)
5687  MergeFrom(*source);
5688  }
5689 }
5690 
5691 void InverseConstraintProto::MergeFrom(const InverseConstraintProto& from) {
5692 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.InverseConstraintProto)
5693  GOOGLE_DCHECK_NE(&from, this);
5694  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5695  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5696  (void) cached_has_bits;
5697 
5698  f_direct_.MergeFrom(from.f_direct_);
5699  f_inverse_.MergeFrom(from.f_inverse_);
5700 }
5701 
5702 void InverseConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5703 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.InverseConstraintProto)
5704  if (&from == this) return;
5705  Clear();
5706  MergeFrom(from);
5707 }
5708 
5709 void InverseConstraintProto::CopyFrom(const InverseConstraintProto& from) {
5710 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.InverseConstraintProto)
5711  if (&from == this) return;
5712  Clear();
5713  MergeFrom(from);
5714 }
5715 
5716 bool InverseConstraintProto::IsInitialized() const {
5717  return true;
5718 }
5719 
5720 void InverseConstraintProto::InternalSwap(InverseConstraintProto* other) {
5721  using std::swap;
5722  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5723  f_direct_.InternalSwap(&other->f_direct_);
5724  f_inverse_.InternalSwap(&other->f_inverse_);
5725 }
5726 
5727 ::PROTOBUF_NAMESPACE_ID::Metadata InverseConstraintProto::GetMetadata() const {
5728  return GetMetadataStatic();
5729 }
5730 
5731 
5732 // ===================================================================
5733 
5735  public:
5736 };
5737 
5738 AutomatonConstraintProto::AutomatonConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5739  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5740  final_states_(arena),
5741  transition_tail_(arena),
5742  transition_head_(arena),
5743  transition_label_(arena),
5744  vars_(arena) {
5745  SharedCtor();
5746  RegisterArenaDtor(arena);
5747  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AutomatonConstraintProto)
5748 }
5749 AutomatonConstraintProto::AutomatonConstraintProto(const AutomatonConstraintProto& from)
5750  : ::PROTOBUF_NAMESPACE_ID::Message(),
5751  final_states_(from.final_states_),
5752  transition_tail_(from.transition_tail_),
5753  transition_head_(from.transition_head_),
5754  transition_label_(from.transition_label_),
5755  vars_(from.vars_) {
5756  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5757  starting_state_ = from.starting_state_;
5758  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AutomatonConstraintProto)
5759 }
5760 
5761 void AutomatonConstraintProto::SharedCtor() {
5762  starting_state_ = PROTOBUF_LONGLONG(0);
5763 }
5764 
5765 AutomatonConstraintProto::~AutomatonConstraintProto() {
5766  // @@protoc_insertion_point(destructor:operations_research.sat.AutomatonConstraintProto)
5767  SharedDtor();
5768  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5769 }
5770 
5771 void AutomatonConstraintProto::SharedDtor() {
5772  GOOGLE_DCHECK(GetArena() == nullptr);
5773 }
5774 
5775 void AutomatonConstraintProto::ArenaDtor(void* object) {
5776  AutomatonConstraintProto* _this = reinterpret_cast< AutomatonConstraintProto* >(object);
5777  (void)_this;
5778 }
5779 void AutomatonConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5780 }
5781 void AutomatonConstraintProto::SetCachedSize(int size) const {
5782  _cached_size_.Set(size);
5783 }
5784 const AutomatonConstraintProto& AutomatonConstraintProto::default_instance() {
5785  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
5786  return *internal_default_instance();
5787 }
5788 
5789 
5790 void AutomatonConstraintProto::Clear() {
5791 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AutomatonConstraintProto)
5792  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5793  // Prevent compiler warnings about cached_has_bits being unused
5794  (void) cached_has_bits;
5795 
5796  final_states_.Clear();
5797  transition_tail_.Clear();
5798  transition_head_.Clear();
5799  transition_label_.Clear();
5800  vars_.Clear();
5801  starting_state_ = PROTOBUF_LONGLONG(0);
5802  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5803 }
5804 
5805 const char* AutomatonConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5806 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5807  while (!ctx->Done(&ptr)) {
5809  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5810  CHK_(ptr);
5811  switch (tag >> 3) {
5812  // int64 starting_state = 2;
5813  case 2:
5814  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
5815  starting_state_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5816  CHK_(ptr);
5817  } else goto handle_unusual;
5818  continue;
5819  // repeated int64 final_states = 3;
5820  case 3:
5821  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
5822  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_final_states(), ptr, ctx);
5823  CHK_(ptr);
5824  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
5825  _internal_add_final_states(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5826  CHK_(ptr);
5827  } else goto handle_unusual;
5828  continue;
5829  // repeated int64 transition_tail = 4;
5830  case 4:
5831  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
5832  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_tail(), ptr, ctx);
5833  CHK_(ptr);
5834  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
5835  _internal_add_transition_tail(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5836  CHK_(ptr);
5837  } else goto handle_unusual;
5838  continue;
5839  // repeated int64 transition_head = 5;
5840  case 5:
5841  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
5842  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_head(), ptr, ctx);
5843  CHK_(ptr);
5844  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
5845  _internal_add_transition_head(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5846  CHK_(ptr);
5847  } else goto handle_unusual;
5848  continue;
5849  // repeated int64 transition_label = 6;
5850  case 6:
5851  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
5852  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_label(), ptr, ctx);
5853  CHK_(ptr);
5854  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48) {
5855  _internal_add_transition_label(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5856  CHK_(ptr);
5857  } else goto handle_unusual;
5858  continue;
5859  // repeated int32 vars = 7;
5860  case 7:
5861  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
5862  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5863  CHK_(ptr);
5864  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
5865  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5866  CHK_(ptr);
5867  } else goto handle_unusual;
5868  continue;
5869  default: {
5870  handle_unusual:
5871  if ((tag & 7) == 4 || tag == 0) {
5872  ctx->SetLastTag(tag);
5873  goto success;
5874  }
5875  ptr = UnknownFieldParse(tag,
5876  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5877  ptr, ctx);
5878  CHK_(ptr != nullptr);
5879  continue;
5880  }
5881  } // switch
5882  } // while
5883 success:
5884  return ptr;
5885 failure:
5886  ptr = nullptr;
5887  goto success;
5888 #undef CHK_
5889 }
5890 
5891 ::PROTOBUF_NAMESPACE_ID::uint8* AutomatonConstraintProto::_InternalSerialize(
5892  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5893  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AutomatonConstraintProto)
5894  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5895  (void) cached_has_bits;
5896 
5897  // int64 starting_state = 2;
5898  if (this->starting_state() != 0) {
5899  target = stream->EnsureSpace(target);
5900  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_starting_state(), target);
5901  }
5902 
5903  // repeated int64 final_states = 3;
5904  {
5905  int byte_size = _final_states_cached_byte_size_.load(std::memory_order_relaxed);
5906  if (byte_size > 0) {
5907  target = stream->WriteInt64Packed(
5908  3, _internal_final_states(), byte_size, target);
5909  }
5910  }
5911 
5912  // repeated int64 transition_tail = 4;
5913  {
5914  int byte_size = _transition_tail_cached_byte_size_.load(std::memory_order_relaxed);
5915  if (byte_size > 0) {
5916  target = stream->WriteInt64Packed(
5917  4, _internal_transition_tail(), byte_size, target);
5918  }
5919  }
5920 
5921  // repeated int64 transition_head = 5;
5922  {
5923  int byte_size = _transition_head_cached_byte_size_.load(std::memory_order_relaxed);
5924  if (byte_size > 0) {
5925  target = stream->WriteInt64Packed(
5926  5, _internal_transition_head(), byte_size, target);
5927  }
5928  }
5929 
5930  // repeated int64 transition_label = 6;
5931  {
5932  int byte_size = _transition_label_cached_byte_size_.load(std::memory_order_relaxed);
5933  if (byte_size > 0) {
5934  target = stream->WriteInt64Packed(
5935  6, _internal_transition_label(), byte_size, target);
5936  }
5937  }
5938 
5939  // repeated int32 vars = 7;
5940  {
5941  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5942  if (byte_size > 0) {
5943  target = stream->WriteInt32Packed(
5944  7, _internal_vars(), byte_size, target);
5945  }
5946  }
5947 
5948  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5949  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5950  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5951  }
5952  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AutomatonConstraintProto)
5953  return target;
5954 }
5955 
5956 size_t AutomatonConstraintProto::ByteSizeLong() const {
5957 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AutomatonConstraintProto)
5958  size_t total_size = 0;
5959 
5960  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5961  // Prevent compiler warnings about cached_has_bits being unused
5962  (void) cached_has_bits;
5963 
5964  // repeated int64 final_states = 3;
5965  {
5966  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5967  Int64Size(this->final_states_);
5968  if (data_size > 0) {
5969  total_size += 1 +
5970  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5971  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5972  }
5973  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5974  _final_states_cached_byte_size_.store(cached_size,
5975  std::memory_order_relaxed);
5976  total_size += data_size;
5977  }
5978 
5979  // repeated int64 transition_tail = 4;
5980  {
5981  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5982  Int64Size(this->transition_tail_);
5983  if (data_size > 0) {
5984  total_size += 1 +
5985  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5986  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5987  }
5988  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5989  _transition_tail_cached_byte_size_.store(cached_size,
5990  std::memory_order_relaxed);
5991  total_size += data_size;
5992  }
5993 
5994  // repeated int64 transition_head = 5;
5995  {
5996  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5997  Int64Size(this->transition_head_);
5998  if (data_size > 0) {
5999  total_size += 1 +
6000  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
6001  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
6002  }
6003  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
6004  _transition_head_cached_byte_size_.store(cached_size,
6005  std::memory_order_relaxed);
6006  total_size += data_size;
6007  }
6008 
6009  // repeated int64 transition_label = 6;
6010  {
6011  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6012  Int64Size(this->transition_label_);
6013  if (data_size > 0) {
6014  total_size += 1 +
6015  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
6016  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
6017  }
6018  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
6019  _transition_label_cached_byte_size_.store(cached_size,
6020  std::memory_order_relaxed);
6021  total_size += data_size;
6022  }
6023 
6024  // repeated int32 vars = 7;
6025  {
6026  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6027  Int32Size(this->vars_);
6028  if (data_size > 0) {
6029  total_size += 1 +
6030  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
6031  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
6032  }
6033  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
6034  _vars_cached_byte_size_.store(cached_size,
6035  std::memory_order_relaxed);
6036  total_size += data_size;
6037  }
6038 
6039  // int64 starting_state = 2;
6040  if (this->starting_state() != 0) {
6041  total_size += 1 +
6042  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
6043  this->_internal_starting_state());
6044  }
6045 
6046  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
6047  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
6048  _internal_metadata_, total_size, &_cached_size_);
6049  }
6050  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
6051  SetCachedSize(cached_size);
6052  return total_size;
6053 }
6054 
6055 void AutomatonConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
6056 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.AutomatonConstraintProto)
6057  GOOGLE_DCHECK_NE(&from, this);
6058  const AutomatonConstraintProto* source =
6059  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AutomatonConstraintProto>(
6060  &from);
6061  if (source == nullptr) {
6062  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.AutomatonConstraintProto)
6063  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
6064  } else {
6065  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.AutomatonConstraintProto)
6066  MergeFrom(*source);
6067  }
6068 }
6069 
6070 void AutomatonConstraintProto::MergeFrom(const AutomatonConstraintProto& from) {
6071 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AutomatonConstraintProto)
6072  GOOGLE_DCHECK_NE(&from, this);
6073  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
6074  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6075  (void) cached_has_bits;
6076 
6077  final_states_.MergeFrom(from.final_states_);
6078  transition_tail_.MergeFrom(from.transition_tail_);
6079  transition_head_.MergeFrom(from.transition_head_);
6080  transition_label_.MergeFrom(from.transition_label_);
6081  vars_.MergeFrom(from.vars_);
6082  if (from.starting_state() != 0) {
6083  _internal_set_starting_state(from._internal_starting_state());
6084  }
6085 }
6086 
6087 void AutomatonConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
6088 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.AutomatonConstraintProto)
6089  if (&from == this) return;
6090  Clear();
6091  MergeFrom(from);
6092 }
6093 
6094 void AutomatonConstraintProto::CopyFrom(const AutomatonConstraintProto& from) {
6095 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AutomatonConstraintProto)
6096  if (&from == this) return;
6097  Clear();
6098  MergeFrom(from);
6099 }
6100 
6101 bool AutomatonConstraintProto::IsInitialized() const {
6102  return true;
6103 }
6104 
6105 void AutomatonConstraintProto::InternalSwap(AutomatonConstraintProto* other) {
6106  using std::swap;
6107  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
6108  final_states_.InternalSwap(&other->final_states_);
6109  transition_tail_.InternalSwap(&other->transition_tail_);
6110  transition_head_.InternalSwap(&other->transition_head_);
6111  transition_label_.InternalSwap(&other->transition_label_);
6112  vars_.InternalSwap(&other->vars_);
6113  swap(starting_state_, other->starting_state_);
6114 }
6115 
6116 ::PROTOBUF_NAMESPACE_ID::Metadata AutomatonConstraintProto::GetMetadata() const {
6117  return GetMetadataStatic();
6118 }
6119 
6120 
6121 // ===================================================================
6122 
6124  public:
6125  static const ::operations_research::sat::BoolArgumentProto& bool_or(const ConstraintProto* msg);
6126  static const ::operations_research::sat::BoolArgumentProto& bool_and(const ConstraintProto* msg);
6127  static const ::operations_research::sat::BoolArgumentProto& at_most_one(const ConstraintProto* msg);
6128  static const ::operations_research::sat::BoolArgumentProto& exactly_one(const ConstraintProto* msg);
6129  static const ::operations_research::sat::BoolArgumentProto& bool_xor(const ConstraintProto* msg);
6130  static const ::operations_research::sat::IntegerArgumentProto& int_div(const ConstraintProto* msg);
6131  static const ::operations_research::sat::IntegerArgumentProto& int_mod(const ConstraintProto* msg);
6132  static const ::operations_research::sat::IntegerArgumentProto& int_max(const ConstraintProto* msg);
6133  static const ::operations_research::sat::LinearArgumentProto& lin_max(const ConstraintProto* msg);
6134  static const ::operations_research::sat::IntegerArgumentProto& int_min(const ConstraintProto* msg);
6135  static const ::operations_research::sat::LinearArgumentProto& lin_min(const ConstraintProto* msg);
6136  static const ::operations_research::sat::IntegerArgumentProto& int_prod(const ConstraintProto* msg);
6137  static const ::operations_research::sat::LinearConstraintProto& linear(const ConstraintProto* msg);
6138  static const ::operations_research::sat::AllDifferentConstraintProto& all_diff(const ConstraintProto* msg);
6139  static const ::operations_research::sat::ElementConstraintProto& element(const ConstraintProto* msg);
6140  static const ::operations_research::sat::CircuitConstraintProto& circuit(const ConstraintProto* msg);
6141  static const ::operations_research::sat::RoutesConstraintProto& routes(const ConstraintProto* msg);
6142  static const ::operations_research::sat::TableConstraintProto& table(const ConstraintProto* msg);
6143  static const ::operations_research::sat::AutomatonConstraintProto& automaton(const ConstraintProto* msg);
6144  static const ::operations_research::sat::InverseConstraintProto& inverse(const ConstraintProto* msg);
6145  static const ::operations_research::sat::ReservoirConstraintProto& reservoir(const ConstraintProto* msg);
6146  static const ::operations_research::sat::IntervalConstraintProto& interval(const ConstraintProto* msg);
6147  static const ::operations_research::sat::NoOverlapConstraintProto& no_overlap(const ConstraintProto* msg);
6148  static const ::operations_research::sat::NoOverlap2DConstraintProto& no_overlap_2d(const ConstraintProto* msg);
6149  static const ::operations_research::sat::CumulativeConstraintProto& cumulative(const ConstraintProto* msg);
6150 };
6151 
6152 const ::operations_research::sat::BoolArgumentProto&
6153 ConstraintProto::_Internal::bool_or(const ConstraintProto* msg) {
6154  return *msg->constraint_.bool_or_;
6155 }
6156 const ::operations_research::sat::BoolArgumentProto&
6157 ConstraintProto::_Internal::bool_and(const ConstraintProto* msg) {
6158  return *msg->constraint_.bool_and_;
6159 }
6160 const ::operations_research::sat::BoolArgumentProto&
6161 ConstraintProto::_Internal::at_most_one(const ConstraintProto* msg) {
6162  return *msg->constraint_.at_most_one_;
6163 }
6164 const ::operations_research::sat::BoolArgumentProto&
6165 ConstraintProto::_Internal::exactly_one(const ConstraintProto* msg) {
6166  return *msg->constraint_.exactly_one_;
6167 }
6168 const ::operations_research::sat::BoolArgumentProto&
6169 ConstraintProto::_Internal::bool_xor(const ConstraintProto* msg) {
6170  return *msg->constraint_.bool_xor_;
6171 }
6172 const ::operations_research::sat::IntegerArgumentProto&
6173 ConstraintProto::_Internal::int_div(const ConstraintProto* msg) {
6174  return *msg->constraint_.int_div_;
6175 }
6176 const ::operations_research::sat::IntegerArgumentProto&
6177 ConstraintProto::_Internal::int_mod(const ConstraintProto* msg) {
6178  return *msg->constraint_.int_mod_;
6179 }
6180 const ::operations_research::sat::IntegerArgumentProto&
6181 ConstraintProto::_Internal::int_max(const ConstraintProto* msg) {
6182  return *msg->constraint_.int_max_;
6183 }
6184 const ::operations_research::sat::LinearArgumentProto&
6185 ConstraintProto::_Internal::lin_max(const ConstraintProto* msg) {
6186  return *msg->constraint_.lin_max_;
6187 }
6188 const ::operations_research::sat::IntegerArgumentProto&
6189 ConstraintProto::_Internal::int_min(const ConstraintProto* msg) {
6190  return *msg->constraint_.int_min_;
6191 }
6192 const ::operations_research::sat::LinearArgumentProto&
6193 ConstraintProto::_Internal::lin_min(const ConstraintProto* msg) {
6194  return *msg->constraint_.lin_min_;
6195 }
6196 const ::operations_research::sat::IntegerArgumentProto&
6197 ConstraintProto::_Internal::int_prod(const ConstraintProto* msg) {
6198  return *msg->constraint_.int_prod_;
6199 }
6200 const ::operations_research::sat::LinearConstraintProto&
6201 ConstraintProto::_Internal::linear(const ConstraintProto* msg) {
6202  return *msg->constraint_.linear_;
6203 }
6204 const ::operations_research::sat::AllDifferentConstraintProto&
6205 ConstraintProto::_Internal::all_diff(const ConstraintProto* msg) {
6206  return *msg->constraint_.all_diff_;
6207 }
6208 const ::operations_research::sat::ElementConstraintProto&
6209 ConstraintProto::_Internal::element(const ConstraintProto* msg) {
6210  return *msg->constraint_.element_;
6211 }
6212 const ::operations_research::sat::CircuitConstraintProto&
6213 ConstraintProto::_Internal::circuit(const ConstraintProto* msg) {
6214  return *msg->constraint_.circuit_;
6215 }
6216 const ::operations_research::sat::RoutesConstraintProto&
6217 ConstraintProto::_Internal::routes(const ConstraintProto* msg) {
6218  return *msg->constraint_.routes_;
6219 }
6220 const ::operations_research::sat::TableConstraintProto&
6221 ConstraintProto::_Internal::table(const ConstraintProto* msg) {
6222  return *msg->constraint_.table_;
6223 }
6224 const ::operations_research::sat::AutomatonConstraintProto&
6225 ConstraintProto::_Internal::automaton(const ConstraintProto* msg) {
6226  return *msg->constraint_.automaton_;
6227 }
6228 const ::operations_research::sat::InverseConstraintProto&
6229 ConstraintProto::_Internal::inverse(const ConstraintProto* msg) {
6230  return *msg->constraint_.inverse_;
6231 }
6232 const ::operations_research::sat::ReservoirConstraintProto&
6233 ConstraintProto::_Internal::reservoir(const ConstraintProto* msg) {
6234  return *msg->constraint_.reservoir_;
6235 }
6236 const ::operations_research::sat::IntervalConstraintProto&
6237 ConstraintProto::_Internal::interval(const ConstraintProto* msg) {
6238  return *msg->constraint_.interval_;
6239 }
6240 const ::operations_research::sat::NoOverlapConstraintProto&
6241 ConstraintProto::_Internal::no_overlap(const ConstraintProto* msg) {
6242  return *msg->constraint_.no_overlap_;
6243 }
6244 const ::operations_research::sat::NoOverlap2DConstraintProto&
6245 ConstraintProto::_Internal::no_overlap_2d(const ConstraintProto* msg) {
6246  return *msg->constraint_.no_overlap_2d_;
6247 }
6248 const ::operations_research::sat::CumulativeConstraintProto&
6249 ConstraintProto::_Internal::cumulative(const ConstraintProto* msg) {
6250  return *msg->constraint_.cumulative_;
6251 }
6252 void ConstraintProto::set_allocated_bool_or(::operations_research::sat::BoolArgumentProto* bool_or) {
6253  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6254  clear_constraint();
6255  if (bool_or) {
6256  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6257  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_or);
6258  if (message_arena != submessage_arena) {
6259  bool_or = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6260  message_arena, bool_or, submessage_arena);
6261  }
6262  set_has_bool_or();
6263  constraint_.bool_or_ = bool_or;
6264  }
6265  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_or)
6266 }
6267 void ConstraintProto::set_allocated_bool_and(::operations_research::sat::BoolArgumentProto* bool_and) {
6268  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6269  clear_constraint();
6270  if (bool_and) {
6271  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6272  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_and);
6273  if (message_arena != submessage_arena) {
6274  bool_and = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6275  message_arena, bool_and, submessage_arena);
6276  }
6277  set_has_bool_and();
6278  constraint_.bool_and_ = bool_and;
6279  }
6280  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_and)
6281 }
6282 void ConstraintProto::set_allocated_at_most_one(::operations_research::sat::BoolArgumentProto* at_most_one) {
6283  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6284  clear_constraint();
6285  if (at_most_one) {
6286  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6287  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(at_most_one);
6288  if (message_arena != submessage_arena) {
6289  at_most_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6290  message_arena, at_most_one, submessage_arena);
6291  }
6292  set_has_at_most_one();
6293  constraint_.at_most_one_ = at_most_one;
6294  }
6295  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.at_most_one)
6296 }
6297 void ConstraintProto::set_allocated_exactly_one(::operations_research::sat::BoolArgumentProto* exactly_one) {
6298  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6299  clear_constraint();
6300  if (exactly_one) {
6301  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6302  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(exactly_one);
6303  if (message_arena != submessage_arena) {
6304  exactly_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6305  message_arena, exactly_one, submessage_arena);
6306  }
6307  set_has_exactly_one();
6308  constraint_.exactly_one_ = exactly_one;
6309  }
6310  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.exactly_one)
6311 }
6312 void ConstraintProto::set_allocated_bool_xor(::operations_research::sat::BoolArgumentProto* bool_xor) {
6313  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6314  clear_constraint();
6315  if (bool_xor) {
6316  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6317  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_xor);
6318  if (message_arena != submessage_arena) {
6319  bool_xor = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6320  message_arena, bool_xor, submessage_arena);
6321  }
6322  set_has_bool_xor();
6323  constraint_.bool_xor_ = bool_xor;
6324  }
6325  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_xor)
6326 }
6327 void ConstraintProto::set_allocated_int_div(::operations_research::sat::IntegerArgumentProto* int_div) {
6328  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6329  clear_constraint();
6330  if (int_div) {
6331  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6332  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_div);
6333  if (message_arena != submessage_arena) {
6334  int_div = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6335  message_arena, int_div, submessage_arena);
6336  }
6337  set_has_int_div();
6338  constraint_.int_div_ = int_div;
6339  }
6340  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_div)
6341 }
6342 void ConstraintProto::set_allocated_int_mod(::operations_research::sat::IntegerArgumentProto* int_mod) {
6343  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6344  clear_constraint();
6345  if (int_mod) {
6346  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6347  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_mod);
6348  if (message_arena != submessage_arena) {
6349  int_mod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6350  message_arena, int_mod, submessage_arena);
6351  }
6352  set_has_int_mod();
6353  constraint_.int_mod_ = int_mod;
6354  }
6355  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_mod)
6356 }
6357 void ConstraintProto::set_allocated_int_max(::operations_research::sat::IntegerArgumentProto* int_max) {
6358  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6359  clear_constraint();
6360  if (int_max) {
6361  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6362  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_max);
6363  if (message_arena != submessage_arena) {
6364  int_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6365  message_arena, int_max, submessage_arena);
6366  }
6367  set_has_int_max();
6368  constraint_.int_max_ = int_max;
6369  }
6370  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_max)
6371 }
6372 void ConstraintProto::set_allocated_lin_max(::operations_research::sat::LinearArgumentProto* lin_max) {
6373  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6374  clear_constraint();
6375  if (lin_max) {
6376  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6377  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(lin_max);
6378  if (message_arena != submessage_arena) {
6379  lin_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6380  message_arena, lin_max, submessage_arena);
6381  }
6382  set_has_lin_max();
6383  constraint_.lin_max_ = lin_max;
6384  }
6385  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_max)
6386 }
6387 void ConstraintProto::set_allocated_int_min(::operations_research::sat::IntegerArgumentProto* int_min) {
6388  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6389  clear_constraint();
6390  if (int_min) {
6391  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6392  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_min);
6393  if (message_arena != submessage_arena) {
6394  int_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6395  message_arena, int_min, submessage_arena);
6396  }
6397  set_has_int_min();
6398  constraint_.int_min_ = int_min;
6399  }
6400  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_min)
6401 }
6402 void ConstraintProto::set_allocated_lin_min(::operations_research::sat::LinearArgumentProto* lin_min) {
6403  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6404  clear_constraint();
6405  if (lin_min) {
6406  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6407  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(lin_min);
6408  if (message_arena != submessage_arena) {
6409  lin_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6410  message_arena, lin_min, submessage_arena);
6411  }
6412  set_has_lin_min();
6413  constraint_.lin_min_ = lin_min;
6414  }
6415  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_min)
6416 }
6417 void ConstraintProto::set_allocated_int_prod(::operations_research::sat::IntegerArgumentProto* int_prod) {
6418  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6419  clear_constraint();
6420  if (int_prod) {
6421  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6422  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_prod);
6423  if (message_arena != submessage_arena) {
6424  int_prod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6425  message_arena, int_prod, submessage_arena);
6426  }
6427  set_has_int_prod();
6428  constraint_.int_prod_ = int_prod;
6429  }
6430  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_prod)
6431 }
6432 void ConstraintProto::set_allocated_linear(::operations_research::sat::LinearConstraintProto* linear) {
6433  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6434  clear_constraint();
6435  if (linear) {
6436  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6437  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(linear);
6438  if (message_arena != submessage_arena) {
6439  linear = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6440  message_arena, linear, submessage_arena);
6441  }
6442  set_has_linear();
6443  constraint_.linear_ = linear;
6444  }
6445  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.linear)
6446 }
6447 void ConstraintProto::set_allocated_all_diff(::operations_research::sat::AllDifferentConstraintProto* all_diff) {
6448  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6449  clear_constraint();
6450  if (all_diff) {
6451  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6452  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(all_diff);
6453  if (message_arena != submessage_arena) {
6454  all_diff = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6455  message_arena, all_diff, submessage_arena);
6456  }
6457  set_has_all_diff();
6458  constraint_.all_diff_ = all_diff;
6459  }
6460  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.all_diff)
6461 }
6462 void ConstraintProto::set_allocated_element(::operations_research::sat::ElementConstraintProto* element) {
6463  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6464  clear_constraint();
6465  if (element) {
6466  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6467  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(element);
6468  if (message_arena != submessage_arena) {
6469  element = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6470  message_arena, element, submessage_arena);
6471  }
6472  set_has_element();
6473  constraint_.element_ = element;
6474  }
6475  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.element)
6476 }
6477 void ConstraintProto::set_allocated_circuit(::operations_research::sat::CircuitConstraintProto* circuit) {
6478  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6479  clear_constraint();
6480  if (circuit) {
6481  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6482  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(circuit);
6483  if (message_arena != submessage_arena) {
6484  circuit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6485  message_arena, circuit, submessage_arena);
6486  }
6487  set_has_circuit();
6488  constraint_.circuit_ = circuit;
6489  }
6490  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.circuit)
6491 }
6492 void ConstraintProto::set_allocated_routes(::operations_research::sat::RoutesConstraintProto* routes) {
6493  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6494  clear_constraint();
6495  if (routes) {
6496  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6497  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(routes);
6498  if (message_arena != submessage_arena) {
6499  routes = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6500  message_arena, routes, submessage_arena);
6501  }
6502  set_has_routes();
6503  constraint_.routes_ = routes;
6504  }
6505  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.routes)
6506 }
6507 void ConstraintProto::set_allocated_table(::operations_research::sat::TableConstraintProto* table) {
6508  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6509  clear_constraint();
6510  if (table) {
6511  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6512  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(table);
6513  if (message_arena != submessage_arena) {
6514  table = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6515  message_arena, table, submessage_arena);
6516  }
6517  set_has_table();
6518  constraint_.table_ = table;
6519  }
6520  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.table)
6521 }
6522 void ConstraintProto::set_allocated_automaton(::operations_research::sat::AutomatonConstraintProto* automaton) {
6523  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6524  clear_constraint();
6525  if (automaton) {
6526  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6527  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(automaton);
6528  if (message_arena != submessage_arena) {
6529  automaton = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6530  message_arena, automaton, submessage_arena);
6531  }
6532  set_has_automaton();
6533  constraint_.automaton_ = automaton;
6534  }
6535  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.automaton)
6536 }
6537 void ConstraintProto::set_allocated_inverse(::operations_research::sat::InverseConstraintProto* inverse) {
6538  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6539  clear_constraint();
6540  if (inverse) {
6541  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6542  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(inverse);
6543  if (message_arena != submessage_arena) {
6544  inverse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6545  message_arena, inverse, submessage_arena);
6546  }
6547  set_has_inverse();
6548  constraint_.inverse_ = inverse;
6549  }
6550  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.inverse)
6551 }
6552 void ConstraintProto::set_allocated_reservoir(::operations_research::sat::ReservoirConstraintProto* reservoir) {
6553  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6554  clear_constraint();
6555  if (reservoir) {
6556  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6557  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(reservoir);
6558  if (message_arena != submessage_arena) {
6559  reservoir = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6560  message_arena, reservoir, submessage_arena);
6561  }
6562  set_has_reservoir();
6563  constraint_.reservoir_ = reservoir;
6564  }
6565  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.reservoir)
6566 }
6567 void ConstraintProto::set_allocated_interval(::operations_research::sat::IntervalConstraintProto* interval) {
6568  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6569  clear_constraint();
6570  if (interval) {
6571  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6572  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(interval);
6573  if (message_arena != submessage_arena) {
6574  interval = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6575  message_arena, interval, submessage_arena);
6576  }
6577  set_has_interval();
6578  constraint_.interval_ = interval;
6579  }
6580  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.interval)
6581 }
6582 void ConstraintProto::set_allocated_no_overlap(::operations_research::sat::NoOverlapConstraintProto* no_overlap) {
6583  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6584  clear_constraint();
6585  if (no_overlap) {
6586  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6587  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(no_overlap);
6588  if (message_arena != submessage_arena) {
6589  no_overlap = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6590  message_arena, no_overlap, submessage_arena);
6591  }
6592  set_has_no_overlap();
6593  constraint_.no_overlap_ = no_overlap;
6594  }
6595  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap)
6596 }
6597 void ConstraintProto::set_allocated_no_overlap_2d(::operations_research::sat::NoOverlap2DConstraintProto* no_overlap_2d) {
6598  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6599  clear_constraint();
6600  if (no_overlap_2d) {
6601  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6602  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(no_overlap_2d);
6603  if (message_arena != submessage_arena) {
6604  no_overlap_2d = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6605  message_arena, no_overlap_2d, submessage_arena);
6606  }
6607  set_has_no_overlap_2d();
6608  constraint_.no_overlap_2d_ = no_overlap_2d;
6609  }
6610  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap_2d)
6611 }
6612 void ConstraintProto::set_allocated_cumulative(::operations_research::sat::CumulativeConstraintProto* cumulative) {
6613  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6614  clear_constraint();
6615  if (cumulative) {
6616  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6617  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(cumulative);
6618  if (message_arena != submessage_arena) {
6619  cumulative = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6620  message_arena, cumulative, submessage_arena);
6621  }
6622  set_has_cumulative();
6623  constraint_.cumulative_ = cumulative;
6624  }
6625  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.cumulative)
6626 }
6627 ConstraintProto::ConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
6628  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
6629  enforcement_literal_(arena) {
6630  SharedCtor();
6631  RegisterArenaDtor(arena);
6632  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ConstraintProto)
6633 }
6634 ConstraintProto::ConstraintProto(const ConstraintProto& from)
6635  : ::PROTOBUF_NAMESPACE_ID::Message(),
6636  enforcement_literal_(from.enforcement_literal_) {
6637  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
6638  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6639  if (!from._internal_name().empty()) {
6640  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
6641  GetArena());
6642  }
6643  clear_has_constraint();
6644  switch (from.constraint_case()) {
6645  case kBoolOr: {
6646  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
6647  break;
6648  }
6649  case kBoolAnd: {
6650  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
6651  break;
6652  }
6653  case kAtMostOne: {
6654  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
6655  break;
6656  }
6657  case kExactlyOne: {
6658  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
6659  break;
6660  }
6661  case kBoolXor: {
6662  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
6663  break;
6664  }
6665  case kIntDiv: {
6666  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
6667  break;
6668  }
6669  case kIntMod: {
6670  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
6671  break;
6672  }
6673  case kIntMax: {
6674  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
6675  break;
6676  }
6677  case kLinMax: {
6678  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
6679  break;
6680  }
6681  case kIntMin: {
6682  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
6683  break;
6684  }
6685  case kLinMin: {
6686  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
6687  break;
6688  }
6689  case kIntProd: {
6690  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
6691  break;
6692  }
6693  case kLinear: {
6694  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
6695  break;
6696  }
6697  case kAllDiff: {
6698  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
6699  break;
6700  }
6701  case kElement: {
6702  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
6703  break;
6704  }
6705  case kCircuit: {
6706  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
6707  break;
6708  }
6709  case kRoutes: {
6710  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
6711  break;
6712  }
6713  case kTable: {
6714  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
6715  break;
6716  }
6717  case kAutomaton: {
6718  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
6719  break;
6720  }
6721  case kInverse: {
6722  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
6723  break;
6724  }
6725  case kReservoir: {
6726  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
6727  break;
6728  }
6729  case kInterval: {
6730  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
6731  break;
6732  }
6733  case kNoOverlap: {
6734  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
6735  break;
6736  }
6737  case kNoOverlap2D: {
6738  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
6739  break;
6740  }
6741  case kCumulative: {
6742  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
6743  break;
6744  }
6745  case CONSTRAINT_NOT_SET: {
6746  break;
6747  }
6748  }
6749  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ConstraintProto)
6750 }
6751 
6752 void ConstraintProto::SharedCtor() {
6753  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
6754  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6755  clear_has_constraint();
6756 }
6757 
6758 ConstraintProto::~ConstraintProto() {
6759  // @@protoc_insertion_point(destructor:operations_research.sat.ConstraintProto)
6760  SharedDtor();
6761  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6762 }
6763 
6764 void ConstraintProto::SharedDtor() {
6765  GOOGLE_DCHECK(GetArena() == nullptr);
6766  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6767  if (has_constraint()) {
6768  clear_constraint();
6769  }
6770 }
6771 
6772 void ConstraintProto::ArenaDtor(void* object) {
6773  ConstraintProto* _this = reinterpret_cast< ConstraintProto* >(object);
6774  (void)_this;
6775 }
6776 void ConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
6777 }
6778 void ConstraintProto::SetCachedSize(int size) const {
6779  _cached_size_.Set(size);
6780 }
6781 const ConstraintProto& ConstraintProto::default_instance() {
6782  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
6783  return *internal_default_instance();
6784 }
6785 
6786 
6787 void ConstraintProto::clear_constraint() {
6788 // @@protoc_insertion_point(one_of_clear_start:operations_research.sat.ConstraintProto)
6789  switch (constraint_case()) {
6790  case kBoolOr: {
6791  if (GetArena() == nullptr) {
6792  delete constraint_.bool_or_;
6793  }
6794  break;
6795  }
6796  case kBoolAnd: {
6797  if (GetArena() == nullptr) {
6798  delete constraint_.bool_and_;
6799  }
6800  break;
6801  }
6802  case kAtMostOne: {
6803  if (GetArena() == nullptr) {
6804  delete constraint_.at_most_one_;
6805  }
6806  break;
6807  }
6808  case kExactlyOne: {
6809  if (GetArena() == nullptr) {
6810  delete constraint_.exactly_one_;
6811  }
6812  break;
6813  }
6814  case kBoolXor: {
6815  if (GetArena() == nullptr) {
6816  delete constraint_.bool_xor_;
6817  }
6818  break;
6819  }
6820  case kIntDiv: {
6821  if (GetArena() == nullptr) {
6822  delete constraint_.int_div_;
6823  }
6824  break;
6825  }
6826  case kIntMod: {
6827  if (GetArena() == nullptr) {
6828  delete constraint_.int_mod_;
6829  }
6830  break;
6831  }
6832  case kIntMax: {
6833  if (GetArena() == nullptr) {
6834  delete constraint_.int_max_;
6835  }
6836  break;
6837  }
6838  case kLinMax: {
6839  if (GetArena() == nullptr) {
6840  delete constraint_.lin_max_;
6841  }
6842  break;
6843  }
6844  case kIntMin: {
6845  if (GetArena() == nullptr) {
6846  delete constraint_.int_min_;
6847  }
6848  break;
6849  }
6850  case kLinMin: {
6851  if (GetArena() == nullptr) {
6852  delete constraint_.lin_min_;
6853  }
6854  break;
6855  }
6856  case kIntProd: {
6857  if (GetArena() == nullptr) {
6858  delete constraint_.int_prod_;
6859  }
6860  break;
6861  }
6862  case kLinear: {
6863  if (GetArena() == nullptr) {
6864  delete constraint_.linear_;
6865  }
6866  break;
6867  }
6868  case kAllDiff: {
6869  if (GetArena() == nullptr) {
6870  delete constraint_.all_diff_;
6871  }
6872  break;
6873  }
6874  case kElement: {
6875  if (GetArena() == nullptr) {
6876  delete constraint_.element_;
6877  }
6878  break;
6879  }
6880  case kCircuit: {
6881  if (GetArena() == nullptr) {
6882  delete constraint_.circuit_;
6883  }
6884  break;
6885  }
6886  case kRoutes: {
6887  if (GetArena() == nullptr) {
6888  delete constraint_.routes_;
6889  }
6890  break;
6891  }
6892  case kTable: {
6893  if (GetArena() == nullptr) {
6894  delete constraint_.table_;
6895  }
6896  break;
6897  }
6898  case kAutomaton: {
6899  if (GetArena() == nullptr) {
6900  delete constraint_.automaton_;
6901  }
6902  break;
6903  }
6904  case kInverse: {
6905  if (GetArena() == nullptr) {
6906  delete constraint_.inverse_;
6907  }
6908  break;
6909  }
6910  case kReservoir: {
6911  if (GetArena() == nullptr) {
6912  delete constraint_.reservoir_;
6913  }
6914  break;
6915  }
6916  case kInterval: {
6917  if (GetArena() == nullptr) {
6918  delete constraint_.interval_;
6919  }
6920  break;
6921  }
6922  case kNoOverlap: {
6923  if (GetArena() == nullptr) {
6924  delete constraint_.no_overlap_;
6925  }
6926  break;
6927  }
6928  case kNoOverlap2D: {
6929  if (GetArena() == nullptr) {
6930  delete constraint_.no_overlap_2d_;
6931  }
6932  break;
6933  }
6934  case kCumulative: {
6935  if (GetArena() == nullptr) {
6936  delete constraint_.cumulative_;
6937  }
6938  break;
6939  }
6940  case CONSTRAINT_NOT_SET: {
6941  break;
6942  }
6943  }
6944  _oneof_case_[0] = CONSTRAINT_NOT_SET;
6945 }
6946 
6947 
6948 void ConstraintProto::Clear() {
6949 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ConstraintProto)
6950  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6951  // Prevent compiler warnings about cached_has_bits being unused
6952  (void) cached_has_bits;
6953 
6954  enforcement_literal_.Clear();
6955  name_.ClearToEmpty();
6956  clear_constraint();
6957  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6958 }
6959 
6960 const char* ConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
6961 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
6962  while (!ctx->Done(&ptr)) {
6964  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
6965  CHK_(ptr);
6966  switch (tag >> 3) {
6967  // string name = 1;
6968  case 1:
6969  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
6970  auto str = _internal_mutable_name();
6971  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
6972  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.ConstraintProto.name"));
6973  CHK_(ptr);
6974  } else goto handle_unusual;
6975  continue;
6976  // repeated int32 enforcement_literal = 2;
6977  case 2:
6978  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
6979  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_enforcement_literal(), ptr, ctx);
6980  CHK_(ptr);
6981  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
6982  _internal_add_enforcement_literal(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
6983  CHK_(ptr);
6984  } else goto handle_unusual;
6985  continue;
6986  // .operations_research.sat.BoolArgumentProto bool_or = 3;
6987  case 3:
6988  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
6989  ptr = ctx->ParseMessage(_internal_mutable_bool_or(), ptr);
6990  CHK_(ptr);
6991  } else goto handle_unusual;
6992  continue;
6993  // .operations_research.sat.BoolArgumentProto bool_and = 4;
6994  case 4:
6995  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
6996  ptr = ctx->ParseMessage(_internal_mutable_bool_and(), ptr);
6997  CHK_(ptr);
6998  } else goto handle_unusual;
6999  continue;
7000  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7001  case 5:
7002  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
7003  ptr = ctx->ParseMessage(_internal_mutable_bool_xor(), ptr);
7004  CHK_(ptr);
7005  } else goto handle_unusual;
7006  continue;
7007  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7008  case 7:
7009  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
7010  ptr = ctx->ParseMessage(_internal_mutable_int_div(), ptr);
7011  CHK_(ptr);
7012  } else goto handle_unusual;
7013  continue;
7014  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7015  case 8:
7016  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
7017  ptr = ctx->ParseMessage(_internal_mutable_int_mod(), ptr);
7018  CHK_(ptr);
7019  } else goto handle_unusual;
7020  continue;
7021  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7022  case 9:
7023  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
7024  ptr = ctx->ParseMessage(_internal_mutable_int_max(), ptr);
7025  CHK_(ptr);
7026  } else goto handle_unusual;
7027  continue;
7028  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7029  case 10:
7030  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
7031  ptr = ctx->ParseMessage(_internal_mutable_int_min(), ptr);
7032  CHK_(ptr);
7033  } else goto handle_unusual;
7034  continue;
7035  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7036  case 11:
7037  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
7038  ptr = ctx->ParseMessage(_internal_mutable_int_prod(), ptr);
7039  CHK_(ptr);
7040  } else goto handle_unusual;
7041  continue;
7042  // .operations_research.sat.LinearConstraintProto linear = 12;
7043  case 12:
7044  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
7045  ptr = ctx->ParseMessage(_internal_mutable_linear(), ptr);
7046  CHK_(ptr);
7047  } else goto handle_unusual;
7048  continue;
7049  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7050  case 13:
7051  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
7052  ptr = ctx->ParseMessage(_internal_mutable_all_diff(), ptr);
7053  CHK_(ptr);
7054  } else goto handle_unusual;
7055  continue;
7056  // .operations_research.sat.ElementConstraintProto element = 14;
7057  case 14:
7058  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
7059  ptr = ctx->ParseMessage(_internal_mutable_element(), ptr);
7060  CHK_(ptr);
7061  } else goto handle_unusual;
7062  continue;
7063  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7064  case 15:
7065  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
7066  ptr = ctx->ParseMessage(_internal_mutable_circuit(), ptr);
7067  CHK_(ptr);
7068  } else goto handle_unusual;
7069  continue;
7070  // .operations_research.sat.TableConstraintProto table = 16;
7071  case 16:
7072  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
7073  ptr = ctx->ParseMessage(_internal_mutable_table(), ptr);
7074  CHK_(ptr);
7075  } else goto handle_unusual;
7076  continue;
7077  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7078  case 17:
7079  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
7080  ptr = ctx->ParseMessage(_internal_mutable_automaton(), ptr);
7081  CHK_(ptr);
7082  } else goto handle_unusual;
7083  continue;
7084  // .operations_research.sat.InverseConstraintProto inverse = 18;
7085  case 18:
7086  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
7087  ptr = ctx->ParseMessage(_internal_mutable_inverse(), ptr);
7088  CHK_(ptr);
7089  } else goto handle_unusual;
7090  continue;
7091  // .operations_research.sat.IntervalConstraintProto interval = 19;
7092  case 19:
7093  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
7094  ptr = ctx->ParseMessage(_internal_mutable_interval(), ptr);
7095  CHK_(ptr);
7096  } else goto handle_unusual;
7097  continue;
7098  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7099  case 20:
7100  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
7101  ptr = ctx->ParseMessage(_internal_mutable_no_overlap(), ptr);
7102  CHK_(ptr);
7103  } else goto handle_unusual;
7104  continue;
7105  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7106  case 21:
7107  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
7108  ptr = ctx->ParseMessage(_internal_mutable_no_overlap_2d(), ptr);
7109  CHK_(ptr);
7110  } else goto handle_unusual;
7111  continue;
7112  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7113  case 22:
7114  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
7115  ptr = ctx->ParseMessage(_internal_mutable_cumulative(), ptr);
7116  CHK_(ptr);
7117  } else goto handle_unusual;
7118  continue;
7119  // .operations_research.sat.RoutesConstraintProto routes = 23;
7120  case 23:
7121  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
7122  ptr = ctx->ParseMessage(_internal_mutable_routes(), ptr);
7123  CHK_(ptr);
7124  } else goto handle_unusual;
7125  continue;
7126  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7127  case 24:
7128  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
7129  ptr = ctx->ParseMessage(_internal_mutable_reservoir(), ptr);
7130  CHK_(ptr);
7131  } else goto handle_unusual;
7132  continue;
7133  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7134  case 26:
7135  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
7136  ptr = ctx->ParseMessage(_internal_mutable_at_most_one(), ptr);
7137  CHK_(ptr);
7138  } else goto handle_unusual;
7139  continue;
7140  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7141  case 27:
7142  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) {
7143  ptr = ctx->ParseMessage(_internal_mutable_lin_max(), ptr);
7144  CHK_(ptr);
7145  } else goto handle_unusual;
7146  continue;
7147  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7148  case 28:
7149  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
7150  ptr = ctx->ParseMessage(_internal_mutable_lin_min(), ptr);
7151  CHK_(ptr);
7152  } else goto handle_unusual;
7153  continue;
7154  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7155  case 29:
7156  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) {
7157  ptr = ctx->ParseMessage(_internal_mutable_exactly_one(), ptr);
7158  CHK_(ptr);
7159  } else goto handle_unusual;
7160  continue;
7161  default: {
7162  handle_unusual:
7163  if ((tag & 7) == 4 || tag == 0) {
7164  ctx->SetLastTag(tag);
7165  goto success;
7166  }
7167  ptr = UnknownFieldParse(tag,
7168  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7169  ptr, ctx);
7170  CHK_(ptr != nullptr);
7171  continue;
7172  }
7173  } // switch
7174  } // while
7175 success:
7176  return ptr;
7177 failure:
7178  ptr = nullptr;
7179  goto success;
7180 #undef CHK_
7181 }
7182 
7183 ::PROTOBUF_NAMESPACE_ID::uint8* ConstraintProto::_InternalSerialize(
7184  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7185  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ConstraintProto)
7186  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7187  (void) cached_has_bits;
7188 
7189  // string name = 1;
7190  if (this->name().size() > 0) {
7191  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
7192  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
7193  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
7194  "operations_research.sat.ConstraintProto.name");
7195  target = stream->WriteStringMaybeAliased(
7196  1, this->_internal_name(), target);
7197  }
7198 
7199  // repeated int32 enforcement_literal = 2;
7200  {
7201  int byte_size = _enforcement_literal_cached_byte_size_.load(std::memory_order_relaxed);
7202  if (byte_size > 0) {
7203  target = stream->WriteInt32Packed(
7204  2, _internal_enforcement_literal(), byte_size, target);
7205  }
7206  }
7207 
7208  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7209  if (_internal_has_bool_or()) {
7210  target = stream->EnsureSpace(target);
7211  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7212  InternalWriteMessage(
7213  3, _Internal::bool_or(this), target, stream);
7214  }
7215 
7216  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7217  if (_internal_has_bool_and()) {
7218  target = stream->EnsureSpace(target);
7219  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7220  InternalWriteMessage(
7221  4, _Internal::bool_and(this), target, stream);
7222  }
7223 
7224  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7225  if (_internal_has_bool_xor()) {
7226  target = stream->EnsureSpace(target);
7227  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7228  InternalWriteMessage(
7229  5, _Internal::bool_xor(this), target, stream);
7230  }
7231 
7232  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7233  if (_internal_has_int_div()) {
7234  target = stream->EnsureSpace(target);
7235  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7236  InternalWriteMessage(
7237  7, _Internal::int_div(this), target, stream);
7238  }
7239 
7240  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7241  if (_internal_has_int_mod()) {
7242  target = stream->EnsureSpace(target);
7243  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7244  InternalWriteMessage(
7245  8, _Internal::int_mod(this), target, stream);
7246  }
7247 
7248  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7249  if (_internal_has_int_max()) {
7250  target = stream->EnsureSpace(target);
7251  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7252  InternalWriteMessage(
7253  9, _Internal::int_max(this), target, stream);
7254  }
7255 
7256  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7257  if (_internal_has_int_min()) {
7258  target = stream->EnsureSpace(target);
7259  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7260  InternalWriteMessage(
7261  10, _Internal::int_min(this), target, stream);
7262  }
7263 
7264  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7265  if (_internal_has_int_prod()) {
7266  target = stream->EnsureSpace(target);
7267  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7268  InternalWriteMessage(
7269  11, _Internal::int_prod(this), target, stream);
7270  }
7271 
7272  // .operations_research.sat.LinearConstraintProto linear = 12;
7273  if (_internal_has_linear()) {
7274  target = stream->EnsureSpace(target);
7275  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7276  InternalWriteMessage(
7277  12, _Internal::linear(this), target, stream);
7278  }
7279 
7280  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7281  if (_internal_has_all_diff()) {
7282  target = stream->EnsureSpace(target);
7283  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7284  InternalWriteMessage(
7285  13, _Internal::all_diff(this), target, stream);
7286  }
7287 
7288  // .operations_research.sat.ElementConstraintProto element = 14;
7289  if (_internal_has_element()) {
7290  target = stream->EnsureSpace(target);
7291  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7292  InternalWriteMessage(
7293  14, _Internal::element(this), target, stream);
7294  }
7295 
7296  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7297  if (_internal_has_circuit()) {
7298  target = stream->EnsureSpace(target);
7299  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7300  InternalWriteMessage(
7301  15, _Internal::circuit(this), target, stream);
7302  }
7303 
7304  // .operations_research.sat.TableConstraintProto table = 16;
7305  if (_internal_has_table()) {
7306  target = stream->EnsureSpace(target);
7307  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7308  InternalWriteMessage(
7309  16, _Internal::table(this), target, stream);
7310  }
7311 
7312  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7313  if (_internal_has_automaton()) {
7314  target = stream->EnsureSpace(target);
7315  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7316  InternalWriteMessage(
7317  17, _Internal::automaton(this), target, stream);
7318  }
7319 
7320  // .operations_research.sat.InverseConstraintProto inverse = 18;
7321  if (_internal_has_inverse()) {
7322  target = stream->EnsureSpace(target);
7323  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7324  InternalWriteMessage(
7325  18, _Internal::inverse(this), target, stream);
7326  }
7327 
7328  // .operations_research.sat.IntervalConstraintProto interval = 19;
7329  if (_internal_has_interval()) {
7330  target = stream->EnsureSpace(target);
7331  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7332  InternalWriteMessage(
7333  19, _Internal::interval(this), target, stream);
7334  }
7335 
7336  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7337  if (_internal_has_no_overlap()) {
7338  target = stream->EnsureSpace(target);
7339  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7340  InternalWriteMessage(
7341  20, _Internal::no_overlap(this), target, stream);
7342  }
7343 
7344  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7345  if (_internal_has_no_overlap_2d()) {
7346  target = stream->EnsureSpace(target);
7347  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7348  InternalWriteMessage(
7349  21, _Internal::no_overlap_2d(this), target, stream);
7350  }
7351 
7352  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7353  if (_internal_has_cumulative()) {
7354  target = stream->EnsureSpace(target);
7355  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7356  InternalWriteMessage(
7357  22, _Internal::cumulative(this), target, stream);
7358  }
7359 
7360  // .operations_research.sat.RoutesConstraintProto routes = 23;
7361  if (_internal_has_routes()) {
7362  target = stream->EnsureSpace(target);
7363  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7364  InternalWriteMessage(
7365  23, _Internal::routes(this), target, stream);
7366  }
7367 
7368  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7369  if (_internal_has_reservoir()) {
7370  target = stream->EnsureSpace(target);
7371  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7372  InternalWriteMessage(
7373  24, _Internal::reservoir(this), target, stream);
7374  }
7375 
7376  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7377  if (_internal_has_at_most_one()) {
7378  target = stream->EnsureSpace(target);
7379  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7380  InternalWriteMessage(
7381  26, _Internal::at_most_one(this), target, stream);
7382  }
7383 
7384  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7385  if (_internal_has_lin_max()) {
7386  target = stream->EnsureSpace(target);
7387  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7388  InternalWriteMessage(
7389  27, _Internal::lin_max(this), target, stream);
7390  }
7391 
7392  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7393  if (_internal_has_lin_min()) {
7394  target = stream->EnsureSpace(target);
7395  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7396  InternalWriteMessage(
7397  28, _Internal::lin_min(this), target, stream);
7398  }
7399 
7400  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7401  if (_internal_has_exactly_one()) {
7402  target = stream->EnsureSpace(target);
7403  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7404  InternalWriteMessage(
7405  29, _Internal::exactly_one(this), target, stream);
7406  }
7407 
7408  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7409  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7410  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7411  }
7412  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ConstraintProto)
7413  return target;
7414 }
7415 
7416 size_t ConstraintProto::ByteSizeLong() const {
7417 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ConstraintProto)
7418  size_t total_size = 0;
7419 
7420  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7421  // Prevent compiler warnings about cached_has_bits being unused
7422  (void) cached_has_bits;
7423 
7424  // repeated int32 enforcement_literal = 2;
7425  {
7426  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7427  Int32Size(this->enforcement_literal_);
7428  if (data_size > 0) {
7429  total_size += 1 +
7430  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7431  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7432  }
7433  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7434  _enforcement_literal_cached_byte_size_.store(cached_size,
7435  std::memory_order_relaxed);
7436  total_size += data_size;
7437  }
7438 
7439  // string name = 1;
7440  if (this->name().size() > 0) {
7441  total_size += 1 +
7442  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
7443  this->_internal_name());
7444  }
7445 
7446  switch (constraint_case()) {
7447  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7448  case kBoolOr: {
7449  total_size += 1 +
7450  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7451  *constraint_.bool_or_);
7452  break;
7453  }
7454  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7455  case kBoolAnd: {
7456  total_size += 1 +
7457  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7458  *constraint_.bool_and_);
7459  break;
7460  }
7461  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7462  case kAtMostOne: {
7463  total_size += 2 +
7464  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7465  *constraint_.at_most_one_);
7466  break;
7467  }
7468  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7469  case kExactlyOne: {
7470  total_size += 2 +
7471  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7472  *constraint_.exactly_one_);
7473  break;
7474  }
7475  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7476  case kBoolXor: {
7477  total_size += 1 +
7478  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7479  *constraint_.bool_xor_);
7480  break;
7481  }
7482  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7483  case kIntDiv: {
7484  total_size += 1 +
7485  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7486  *constraint_.int_div_);
7487  break;
7488  }
7489  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7490  case kIntMod: {
7491  total_size += 1 +
7492  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7493  *constraint_.int_mod_);
7494  break;
7495  }
7496  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7497  case kIntMax: {
7498  total_size += 1 +
7499  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7500  *constraint_.int_max_);
7501  break;
7502  }
7503  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7504  case kLinMax: {
7505  total_size += 2 +
7506  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7507  *constraint_.lin_max_);
7508  break;
7509  }
7510  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7511  case kIntMin: {
7512  total_size += 1 +
7513  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7514  *constraint_.int_min_);
7515  break;
7516  }
7517  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7518  case kLinMin: {
7519  total_size += 2 +
7520  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7521  *constraint_.lin_min_);
7522  break;
7523  }
7524  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7525  case kIntProd: {
7526  total_size += 1 +
7527  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7528  *constraint_.int_prod_);
7529  break;
7530  }
7531  // .operations_research.sat.LinearConstraintProto linear = 12;
7532  case kLinear: {
7533  total_size += 1 +
7534  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7535  *constraint_.linear_);
7536  break;
7537  }
7538  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7539  case kAllDiff: {
7540  total_size += 1 +
7541  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7542  *constraint_.all_diff_);
7543  break;
7544  }
7545  // .operations_research.sat.ElementConstraintProto element = 14;
7546  case kElement: {
7547  total_size += 1 +
7548  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7549  *constraint_.element_);
7550  break;
7551  }
7552  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7553  case kCircuit: {
7554  total_size += 1 +
7555  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7556  *constraint_.circuit_);
7557  break;
7558  }
7559  // .operations_research.sat.RoutesConstraintProto routes = 23;
7560  case kRoutes: {
7561  total_size += 2 +
7562  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7563  *constraint_.routes_);
7564  break;
7565  }
7566  // .operations_research.sat.TableConstraintProto table = 16;
7567  case kTable: {
7568  total_size += 2 +
7569  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7570  *constraint_.table_);
7571  break;
7572  }
7573  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7574  case kAutomaton: {
7575  total_size += 2 +
7576  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7577  *constraint_.automaton_);
7578  break;
7579  }
7580  // .operations_research.sat.InverseConstraintProto inverse = 18;
7581  case kInverse: {
7582  total_size += 2 +
7583  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7584  *constraint_.inverse_);
7585  break;
7586  }
7587  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7588  case kReservoir: {
7589  total_size += 2 +
7590  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7591  *constraint_.reservoir_);
7592  break;
7593  }
7594  // .operations_research.sat.IntervalConstraintProto interval = 19;
7595  case kInterval: {
7596  total_size += 2 +
7597  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7598  *constraint_.interval_);
7599  break;
7600  }
7601  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7602  case kNoOverlap: {
7603  total_size += 2 +
7604  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7605  *constraint_.no_overlap_);
7606  break;
7607  }
7608  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7609  case kNoOverlap2D: {
7610  total_size += 2 +
7611  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7612  *constraint_.no_overlap_2d_);
7613  break;
7614  }
7615  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7616  case kCumulative: {
7617  total_size += 2 +
7618  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7619  *constraint_.cumulative_);
7620  break;
7621  }
7622  case CONSTRAINT_NOT_SET: {
7623  break;
7624  }
7625  }
7626  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7627  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
7628  _internal_metadata_, total_size, &_cached_size_);
7629  }
7630  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
7631  SetCachedSize(cached_size);
7632  return total_size;
7633 }
7634 
7635 void ConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7636 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ConstraintProto)
7637  GOOGLE_DCHECK_NE(&from, this);
7638  const ConstraintProto* source =
7639  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ConstraintProto>(
7640  &from);
7641  if (source == nullptr) {
7642  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ConstraintProto)
7643  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
7644  } else {
7645  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ConstraintProto)
7646  MergeFrom(*source);
7647  }
7648 }
7649 
7650 void ConstraintProto::MergeFrom(const ConstraintProto& from) {
7651 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ConstraintProto)
7652  GOOGLE_DCHECK_NE(&from, this);
7653  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7654  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7655  (void) cached_has_bits;
7656 
7657  enforcement_literal_.MergeFrom(from.enforcement_literal_);
7658  if (from.name().size() > 0) {
7659  _internal_set_name(from._internal_name());
7660  }
7661  switch (from.constraint_case()) {
7662  case kBoolOr: {
7663  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
7664  break;
7665  }
7666  case kBoolAnd: {
7667  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
7668  break;
7669  }
7670  case kAtMostOne: {
7671  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
7672  break;
7673  }
7674  case kExactlyOne: {
7675  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
7676  break;
7677  }
7678  case kBoolXor: {
7679  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
7680  break;
7681  }
7682  case kIntDiv: {
7683  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
7684  break;
7685  }
7686  case kIntMod: {
7687  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
7688  break;
7689  }
7690  case kIntMax: {
7691  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
7692  break;
7693  }
7694  case kLinMax: {
7695  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
7696  break;
7697  }
7698  case kIntMin: {
7699  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
7700  break;
7701  }
7702  case kLinMin: {
7703  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
7704  break;
7705  }
7706  case kIntProd: {
7707  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
7708  break;
7709  }
7710  case kLinear: {
7711  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
7712  break;
7713  }
7714  case kAllDiff: {
7715  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
7716  break;
7717  }
7718  case kElement: {
7719  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
7720  break;
7721  }
7722  case kCircuit: {
7723  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
7724  break;
7725  }
7726  case kRoutes: {
7727  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
7728  break;
7729  }
7730  case kTable: {
7731  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
7732  break;
7733  }
7734  case kAutomaton: {
7735  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
7736  break;
7737  }
7738  case kInverse: {
7739  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
7740  break;
7741  }
7742  case kReservoir: {
7743  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
7744  break;
7745  }
7746  case kInterval: {
7747  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
7748  break;
7749  }
7750  case kNoOverlap: {
7751  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
7752  break;
7753  }
7754  case kNoOverlap2D: {
7755  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
7756  break;
7757  }
7758  case kCumulative: {
7759  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
7760  break;
7761  }
7762  case CONSTRAINT_NOT_SET: {
7763  break;
7764  }
7765  }
7766 }
7767 
7768 void ConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7769 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ConstraintProto)
7770  if (&from == this) return;
7771  Clear();
7772  MergeFrom(from);
7773 }
7774 
7775 void ConstraintProto::CopyFrom(const ConstraintProto& from) {
7776 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ConstraintProto)
7777  if (&from == this) return;
7778  Clear();
7779  MergeFrom(from);
7780 }
7781 
7782 bool ConstraintProto::IsInitialized() const {
7783  return true;
7784 }
7785 
7786 void ConstraintProto::InternalSwap(ConstraintProto* other) {
7787  using std::swap;
7788  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
7789  enforcement_literal_.InternalSwap(&other->enforcement_literal_);
7790  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
7791  swap(constraint_, other->constraint_);
7792  swap(_oneof_case_[0], other->_oneof_case_[0]);
7793 }
7794 
7795 ::PROTOBUF_NAMESPACE_ID::Metadata ConstraintProto::GetMetadata() const {
7796  return GetMetadataStatic();
7797 }
7798 
7799 
7800 // ===================================================================
7801 
7803  public:
7804 };
7805 
7806 CpObjectiveProto::CpObjectiveProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
7807  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
7808  vars_(arena),
7809  coeffs_(arena),
7810  domain_(arena) {
7811  SharedCtor();
7812  RegisterArenaDtor(arena);
7813  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpObjectiveProto)
7814 }
7815 CpObjectiveProto::CpObjectiveProto(const CpObjectiveProto& from)
7816  : ::PROTOBUF_NAMESPACE_ID::Message(),
7817  vars_(from.vars_),
7818  coeffs_(from.coeffs_),
7819  domain_(from.domain_) {
7820  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7821  ::memcpy(&offset_, &from.offset_,
7822  static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7823  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7824  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpObjectiveProto)
7825 }
7826 
7827 void CpObjectiveProto::SharedCtor() {
7828  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
7829  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
7830  0, static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7831  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7832 }
7833 
7834 CpObjectiveProto::~CpObjectiveProto() {
7835  // @@protoc_insertion_point(destructor:operations_research.sat.CpObjectiveProto)
7836  SharedDtor();
7837  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7838 }
7839 
7840 void CpObjectiveProto::SharedDtor() {
7841  GOOGLE_DCHECK(GetArena() == nullptr);
7842 }
7843 
7844 void CpObjectiveProto::ArenaDtor(void* object) {
7845  CpObjectiveProto* _this = reinterpret_cast< CpObjectiveProto* >(object);
7846  (void)_this;
7847 }
7848 void CpObjectiveProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
7849 }
7850 void CpObjectiveProto::SetCachedSize(int size) const {
7851  _cached_size_.Set(size);
7852 }
7853 const CpObjectiveProto& CpObjectiveProto::default_instance() {
7854  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
7855  return *internal_default_instance();
7856 }
7857 
7858 
7859 void CpObjectiveProto::Clear() {
7860 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpObjectiveProto)
7861  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7862  // Prevent compiler warnings about cached_has_bits being unused
7863  (void) cached_has_bits;
7864 
7865  vars_.Clear();
7866  coeffs_.Clear();
7867  domain_.Clear();
7868  ::memset(&offset_, 0, static_cast<size_t>(
7869  reinterpret_cast<char*>(&scaling_factor_) -
7870  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7871  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7872 }
7873 
7874 const char* CpObjectiveProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
7875 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
7876  while (!ctx->Done(&ptr)) {
7878  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
7879  CHK_(ptr);
7880  switch (tag >> 3) {
7881  // repeated int32 vars = 1;
7882  case 1:
7883  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
7884  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
7885  CHK_(ptr);
7886  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
7887  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7888  CHK_(ptr);
7889  } else goto handle_unusual;
7890  continue;
7891  // double offset = 2;
7892  case 2:
7893  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 17)) {
7894  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7895  ptr += sizeof(double);
7896  } else goto handle_unusual;
7897  continue;
7898  // double scaling_factor = 3;
7899  case 3:
7900  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
7901  scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7902  ptr += sizeof(double);
7903  } else goto handle_unusual;
7904  continue;
7905  // repeated int64 coeffs = 4;
7906  case 4:
7907  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
7908  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
7909  CHK_(ptr);
7910  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
7911  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7912  CHK_(ptr);
7913  } else goto handle_unusual;
7914  continue;
7915  // repeated int64 domain = 5;
7916  case 5:
7917  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
7918  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
7919  CHK_(ptr);
7920  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
7921  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7922  CHK_(ptr);
7923  } else goto handle_unusual;
7924  continue;
7925  default: {
7926  handle_unusual:
7927  if ((tag & 7) == 4 || tag == 0) {
7928  ctx->SetLastTag(tag);
7929  goto success;
7930  }
7931  ptr = UnknownFieldParse(tag,
7932  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7933  ptr, ctx);
7934  CHK_(ptr != nullptr);
7935  continue;
7936  }
7937  } // switch
7938  } // while
7939 success:
7940  return ptr;
7941 failure:
7942  ptr = nullptr;
7943  goto success;
7944 #undef CHK_
7945 }
7946 
7947 ::PROTOBUF_NAMESPACE_ID::uint8* CpObjectiveProto::_InternalSerialize(
7948  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7949  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpObjectiveProto)
7950  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7951  (void) cached_has_bits;
7952 
7953  // repeated int32 vars = 1;
7954  {
7955  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
7956  if (byte_size > 0) {
7957  target = stream->WriteInt32Packed(
7958  1, _internal_vars(), byte_size, target);
7959  }
7960  }
7961 
7962  // double offset = 2;
7963  if (!(this->offset() <= 0 && this->offset() >= 0)) {
7964  target = stream->EnsureSpace(target);
7965  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(2, this->_internal_offset(), target);
7966  }
7967 
7968  // double scaling_factor = 3;
7969  if (!(this->scaling_factor() <= 0 && this->scaling_factor() >= 0)) {
7970  target = stream->EnsureSpace(target);
7971  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_scaling_factor(), target);
7972  }
7973 
7974  // repeated int64 coeffs = 4;
7975  {
7976  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
7977  if (byte_size > 0) {
7978  target = stream->WriteInt64Packed(
7979  4, _internal_coeffs(), byte_size, target);
7980  }
7981  }
7982 
7983  // repeated int64 domain = 5;
7984  {
7985  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
7986  if (byte_size > 0) {
7987  target = stream->WriteInt64Packed(
7988  5, _internal_domain(), byte_size, target);
7989  }
7990  }
7991 
7992  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7993  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7994  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7995  }
7996  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpObjectiveProto)
7997  return target;
7998 }
7999 
8000 size_t CpObjectiveProto::ByteSizeLong() const {
8001 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpObjectiveProto)
8002  size_t total_size = 0;
8003 
8004  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8005  // Prevent compiler warnings about cached_has_bits being unused
8006  (void) cached_has_bits;
8007 
8008  // repeated int32 vars = 1;
8009  {
8010  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8011  Int32Size(this->vars_);
8012  if (data_size > 0) {
8013  total_size += 1 +
8014  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8015  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8016  }
8017  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8018  _vars_cached_byte_size_.store(cached_size,
8019  std::memory_order_relaxed);
8020  total_size += data_size;
8021  }
8022 
8023  // repeated int64 coeffs = 4;
8024  {
8025  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8026  Int64Size(this->coeffs_);
8027  if (data_size > 0) {
8028  total_size += 1 +
8029  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8030  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8031  }
8032  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8033  _coeffs_cached_byte_size_.store(cached_size,
8034  std::memory_order_relaxed);
8035  total_size += data_size;
8036  }
8037 
8038  // repeated int64 domain = 5;
8039  {
8040  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8041  Int64Size(this->domain_);
8042  if (data_size > 0) {
8043  total_size += 1 +
8044  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8045  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8046  }
8047  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8048  _domain_cached_byte_size_.store(cached_size,
8049  std::memory_order_relaxed);
8050  total_size += data_size;
8051  }
8052 
8053  // double offset = 2;
8054  if (!(this->offset() <= 0 && this->offset() >= 0)) {
8055  total_size += 1 + 8;
8056  }
8057 
8058  // double scaling_factor = 3;
8059  if (!(this->scaling_factor() <= 0 && this->scaling_factor() >= 0)) {
8060  total_size += 1 + 8;
8061  }
8062 
8063  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8064  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8065  _internal_metadata_, total_size, &_cached_size_);
8066  }
8067  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8068  SetCachedSize(cached_size);
8069  return total_size;
8070 }
8071 
8072 void CpObjectiveProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8073 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpObjectiveProto)
8074  GOOGLE_DCHECK_NE(&from, this);
8075  const CpObjectiveProto* source =
8076  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpObjectiveProto>(
8077  &from);
8078  if (source == nullptr) {
8079  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpObjectiveProto)
8080  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8081  } else {
8082  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpObjectiveProto)
8083  MergeFrom(*source);
8084  }
8085 }
8086 
8087 void CpObjectiveProto::MergeFrom(const CpObjectiveProto& from) {
8088 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpObjectiveProto)
8089  GOOGLE_DCHECK_NE(&from, this);
8090  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8091  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8092  (void) cached_has_bits;
8093 
8094  vars_.MergeFrom(from.vars_);
8095  coeffs_.MergeFrom(from.coeffs_);
8096  domain_.MergeFrom(from.domain_);
8097  if (!(from.offset() <= 0 && from.offset() >= 0)) {
8098  _internal_set_offset(from._internal_offset());
8099  }
8100  if (!(from.scaling_factor() <= 0 && from.scaling_factor() >= 0)) {
8101  _internal_set_scaling_factor(from._internal_scaling_factor());
8102  }
8103 }
8104 
8105 void CpObjectiveProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8106 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpObjectiveProto)
8107  if (&from == this) return;
8108  Clear();
8109  MergeFrom(from);
8110 }
8111 
8112 void CpObjectiveProto::CopyFrom(const CpObjectiveProto& from) {
8113 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpObjectiveProto)
8114  if (&from == this) return;
8115  Clear();
8116  MergeFrom(from);
8117 }
8118 
8119 bool CpObjectiveProto::IsInitialized() const {
8120  return true;
8121 }
8122 
8123 void CpObjectiveProto::InternalSwap(CpObjectiveProto* other) {
8124  using std::swap;
8125  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8126  vars_.InternalSwap(&other->vars_);
8127  coeffs_.InternalSwap(&other->coeffs_);
8128  domain_.InternalSwap(&other->domain_);
8129  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8130  PROTOBUF_FIELD_OFFSET(CpObjectiveProto, scaling_factor_)
8131  + sizeof(CpObjectiveProto::scaling_factor_)
8132  - PROTOBUF_FIELD_OFFSET(CpObjectiveProto, offset_)>(
8133  reinterpret_cast<char*>(&offset_),
8134  reinterpret_cast<char*>(&other->offset_));
8135 }
8136 
8137 ::PROTOBUF_NAMESPACE_ID::Metadata CpObjectiveProto::GetMetadata() const {
8138  return GetMetadataStatic();
8139 }
8140 
8141 
8142 // ===================================================================
8143 
8145  public:
8146 };
8147 
8148 DecisionStrategyProto_AffineTransformation::DecisionStrategyProto_AffineTransformation(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8149  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
8150  SharedCtor();
8151  RegisterArenaDtor(arena);
8152  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8153 }
8154 DecisionStrategyProto_AffineTransformation::DecisionStrategyProto_AffineTransformation(const DecisionStrategyProto_AffineTransformation& from)
8155  : ::PROTOBUF_NAMESPACE_ID::Message() {
8156  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8157  ::memcpy(&offset_, &from.offset_,
8158  static_cast<size_t>(reinterpret_cast<char*>(&var_) -
8159  reinterpret_cast<char*>(&offset_)) + sizeof(var_));
8160  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8161 }
8162 
8163 void DecisionStrategyProto_AffineTransformation::SharedCtor() {
8164  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8165  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
8166  0, static_cast<size_t>(reinterpret_cast<char*>(&var_) -
8167  reinterpret_cast<char*>(&offset_)) + sizeof(var_));
8168 }
8169 
8170 DecisionStrategyProto_AffineTransformation::~DecisionStrategyProto_AffineTransformation() {
8171  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8172  SharedDtor();
8173  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8174 }
8175 
8176 void DecisionStrategyProto_AffineTransformation::SharedDtor() {
8177  GOOGLE_DCHECK(GetArena() == nullptr);
8178 }
8179 
8180 void DecisionStrategyProto_AffineTransformation::ArenaDtor(void* object) {
8181  DecisionStrategyProto_AffineTransformation* _this = reinterpret_cast< DecisionStrategyProto_AffineTransformation* >(object);
8182  (void)_this;
8183 }
8184 void DecisionStrategyProto_AffineTransformation::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8185 }
8186 void DecisionStrategyProto_AffineTransformation::SetCachedSize(int size) const {
8187  _cached_size_.Set(size);
8188 }
8189 const DecisionStrategyProto_AffineTransformation& DecisionStrategyProto_AffineTransformation::default_instance() {
8190  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8191  return *internal_default_instance();
8192 }
8193 
8194 
8195 void DecisionStrategyProto_AffineTransformation::Clear() {
8196 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8197  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8198  // Prevent compiler warnings about cached_has_bits being unused
8199  (void) cached_has_bits;
8200 
8201  ::memset(&offset_, 0, static_cast<size_t>(
8202  reinterpret_cast<char*>(&var_) -
8203  reinterpret_cast<char*>(&offset_)) + sizeof(var_));
8204  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8205 }
8206 
8207 const char* DecisionStrategyProto_AffineTransformation::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8208 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8209  while (!ctx->Done(&ptr)) {
8211  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8212  CHK_(ptr);
8213  switch (tag >> 3) {
8214  // int32 var = 1;
8215  case 1:
8216  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
8217  var_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8218  CHK_(ptr);
8219  } else goto handle_unusual;
8220  continue;
8221  // int64 offset = 2;
8222  case 2:
8223  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8224  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8225  CHK_(ptr);
8226  } else goto handle_unusual;
8227  continue;
8228  // int64 positive_coeff = 3;
8229  case 3:
8230  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8231  positive_coeff_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8232  CHK_(ptr);
8233  } else goto handle_unusual;
8234  continue;
8235  default: {
8236  handle_unusual:
8237  if ((tag & 7) == 4 || tag == 0) {
8238  ctx->SetLastTag(tag);
8239  goto success;
8240  }
8241  ptr = UnknownFieldParse(tag,
8242  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8243  ptr, ctx);
8244  CHK_(ptr != nullptr);
8245  continue;
8246  }
8247  } // switch
8248  } // while
8249 success:
8250  return ptr;
8251 failure:
8252  ptr = nullptr;
8253  goto success;
8254 #undef CHK_
8255 }
8256 
8257 ::PROTOBUF_NAMESPACE_ID::uint8* DecisionStrategyProto_AffineTransformation::_InternalSerialize(
8258  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8259  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8260  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8261  (void) cached_has_bits;
8262 
8263  // int32 var = 1;
8264  if (this->var() != 0) {
8265  target = stream->EnsureSpace(target);
8266  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_var(), target);
8267  }
8268 
8269  // int64 offset = 2;
8270  if (this->offset() != 0) {
8271  target = stream->EnsureSpace(target);
8272  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_offset(), target);
8273  }
8274 
8275  // int64 positive_coeff = 3;
8276  if (this->positive_coeff() != 0) {
8277  target = stream->EnsureSpace(target);
8278  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_positive_coeff(), target);
8279  }
8280 
8281  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8282  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8283  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8284  }
8285  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8286  return target;
8287 }
8288 
8289 size_t DecisionStrategyProto_AffineTransformation::ByteSizeLong() const {
8290 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8291  size_t total_size = 0;
8292 
8293  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8294  // Prevent compiler warnings about cached_has_bits being unused
8295  (void) cached_has_bits;
8296 
8297  // int64 offset = 2;
8298  if (this->offset() != 0) {
8299  total_size += 1 +
8300  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8301  this->_internal_offset());
8302  }
8303 
8304  // int64 positive_coeff = 3;
8305  if (this->positive_coeff() != 0) {
8306  total_size += 1 +
8307  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8308  this->_internal_positive_coeff());
8309  }
8310 
8311  // int32 var = 1;
8312  if (this->var() != 0) {
8313  total_size += 1 +
8314  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8315  this->_internal_var());
8316  }
8317 
8318  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8319  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8320  _internal_metadata_, total_size, &_cached_size_);
8321  }
8322  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8323  SetCachedSize(cached_size);
8324  return total_size;
8325 }
8326 
8327 void DecisionStrategyProto_AffineTransformation::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8328 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8329  GOOGLE_DCHECK_NE(&from, this);
8330  const DecisionStrategyProto_AffineTransformation* source =
8331  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DecisionStrategyProto_AffineTransformation>(
8332  &from);
8333  if (source == nullptr) {
8334  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8335  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8336  } else {
8337  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8338  MergeFrom(*source);
8339  }
8340 }
8341 
8342 void DecisionStrategyProto_AffineTransformation::MergeFrom(const DecisionStrategyProto_AffineTransformation& from) {
8343 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8344  GOOGLE_DCHECK_NE(&from, this);
8345  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8346  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8347  (void) cached_has_bits;
8348 
8349  if (from.offset() != 0) {
8350  _internal_set_offset(from._internal_offset());
8351  }
8352  if (from.positive_coeff() != 0) {
8353  _internal_set_positive_coeff(from._internal_positive_coeff());
8354  }
8355  if (from.var() != 0) {
8356  _internal_set_var(from._internal_var());
8357  }
8358 }
8359 
8360 void DecisionStrategyProto_AffineTransformation::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8361 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8362  if (&from == this) return;
8363  Clear();
8364  MergeFrom(from);
8365 }
8366 
8367 void DecisionStrategyProto_AffineTransformation::CopyFrom(const DecisionStrategyProto_AffineTransformation& from) {
8368 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8369  if (&from == this) return;
8370  Clear();
8371  MergeFrom(from);
8372 }
8373 
8374 bool DecisionStrategyProto_AffineTransformation::IsInitialized() const {
8375  return true;
8376 }
8377 
8378 void DecisionStrategyProto_AffineTransformation::InternalSwap(DecisionStrategyProto_AffineTransformation* other) {
8379  using std::swap;
8380  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8381  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8382  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, var_)
8383  + sizeof(DecisionStrategyProto_AffineTransformation::var_)
8384  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, offset_)>(
8385  reinterpret_cast<char*>(&offset_),
8386  reinterpret_cast<char*>(&other->offset_));
8387 }
8388 
8389 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto_AffineTransformation::GetMetadata() const {
8390  return GetMetadataStatic();
8391 }
8392 
8393 
8394 // ===================================================================
8395 
8397  public:
8398 };
8399 
8400 DecisionStrategyProto::DecisionStrategyProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8401  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8402  variables_(arena),
8403  transformations_(arena) {
8404  SharedCtor();
8405  RegisterArenaDtor(arena);
8406  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto)
8407 }
8408 DecisionStrategyProto::DecisionStrategyProto(const DecisionStrategyProto& from)
8409  : ::PROTOBUF_NAMESPACE_ID::Message(),
8410  variables_(from.variables_),
8411  transformations_(from.transformations_) {
8412  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8413  ::memcpy(&variable_selection_strategy_, &from.variable_selection_strategy_,
8414  static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8415  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8416  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto)
8417 }
8418 
8419 void DecisionStrategyProto::SharedCtor() {
8420  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8421  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8422  reinterpret_cast<char*>(&variable_selection_strategy_) - reinterpret_cast<char*>(this)),
8423  0, static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8424  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8425 }
8426 
8427 DecisionStrategyProto::~DecisionStrategyProto() {
8428  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto)
8429  SharedDtor();
8430  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8431 }
8432 
8433 void DecisionStrategyProto::SharedDtor() {
8434  GOOGLE_DCHECK(GetArena() == nullptr);
8435 }
8436 
8437 void DecisionStrategyProto::ArenaDtor(void* object) {
8438  DecisionStrategyProto* _this = reinterpret_cast< DecisionStrategyProto* >(object);
8439  (void)_this;
8440 }
8441 void DecisionStrategyProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8442 }
8443 void DecisionStrategyProto::SetCachedSize(int size) const {
8444  _cached_size_.Set(size);
8445 }
8446 const DecisionStrategyProto& DecisionStrategyProto::default_instance() {
8447  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8448  return *internal_default_instance();
8449 }
8450 
8451 
8452 void DecisionStrategyProto::Clear() {
8453 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto)
8454  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8455  // Prevent compiler warnings about cached_has_bits being unused
8456  (void) cached_has_bits;
8457 
8458  variables_.Clear();
8459  transformations_.Clear();
8460  ::memset(&variable_selection_strategy_, 0, static_cast<size_t>(
8461  reinterpret_cast<char*>(&domain_reduction_strategy_) -
8462  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8463  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8464 }
8465 
8466 const char* DecisionStrategyProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8467 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8468  while (!ctx->Done(&ptr)) {
8470  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8471  CHK_(ptr);
8472  switch (tag >> 3) {
8473  // repeated int32 variables = 1;
8474  case 1:
8475  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8476  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_variables(), ptr, ctx);
8477  CHK_(ptr);
8478  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8479  _internal_add_variables(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8480  CHK_(ptr);
8481  } else goto handle_unusual;
8482  continue;
8483  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8484  case 2:
8485  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8486  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8487  CHK_(ptr);
8488  _internal_set_variable_selection_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_VariableSelectionStrategy>(val));
8489  } else goto handle_unusual;
8490  continue;
8491  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8492  case 3:
8493  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8494  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8495  CHK_(ptr);
8496  _internal_set_domain_reduction_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_DomainReductionStrategy>(val));
8497  } else goto handle_unusual;
8498  continue;
8499  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8500  case 4:
8501  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
8502  ptr -= 1;
8503  do {
8504  ptr += 1;
8505  ptr = ctx->ParseMessage(_internal_add_transformations(), ptr);
8506  CHK_(ptr);
8507  if (!ctx->DataAvailable(ptr)) break;
8508  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
8509  } else goto handle_unusual;
8510  continue;
8511  default: {
8512  handle_unusual:
8513  if ((tag & 7) == 4 || tag == 0) {
8514  ctx->SetLastTag(tag);
8515  goto success;
8516  }
8517  ptr = UnknownFieldParse(tag,
8518  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8519  ptr, ctx);
8520  CHK_(ptr != nullptr);
8521  continue;
8522  }
8523  } // switch
8524  } // while
8525 success:
8526  return ptr;
8527 failure:
8528  ptr = nullptr;
8529  goto success;
8530 #undef CHK_
8531 }
8532 
8533 ::PROTOBUF_NAMESPACE_ID::uint8* DecisionStrategyProto::_InternalSerialize(
8534  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8535  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto)
8536  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8537  (void) cached_has_bits;
8538 
8539  // repeated int32 variables = 1;
8540  {
8541  int byte_size = _variables_cached_byte_size_.load(std::memory_order_relaxed);
8542  if (byte_size > 0) {
8543  target = stream->WriteInt32Packed(
8544  1, _internal_variables(), byte_size, target);
8545  }
8546  }
8547 
8548  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8549  if (this->variable_selection_strategy() != 0) {
8550  target = stream->EnsureSpace(target);
8551  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8552  2, this->_internal_variable_selection_strategy(), target);
8553  }
8554 
8555  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8556  if (this->domain_reduction_strategy() != 0) {
8557  target = stream->EnsureSpace(target);
8558  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8559  3, this->_internal_domain_reduction_strategy(), target);
8560  }
8561 
8562  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8563  for (unsigned int i = 0,
8564  n = static_cast<unsigned int>(this->_internal_transformations_size()); i < n; i++) {
8565  target = stream->EnsureSpace(target);
8566  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8567  InternalWriteMessage(4, this->_internal_transformations(i), target, stream);
8568  }
8569 
8570  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8571  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8572  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8573  }
8574  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto)
8575  return target;
8576 }
8577 
8578 size_t DecisionStrategyProto::ByteSizeLong() const {
8579 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto)
8580  size_t total_size = 0;
8581 
8582  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8583  // Prevent compiler warnings about cached_has_bits being unused
8584  (void) cached_has_bits;
8585 
8586  // repeated int32 variables = 1;
8587  {
8588  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8589  Int32Size(this->variables_);
8590  if (data_size > 0) {
8591  total_size += 1 +
8592  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8593  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8594  }
8595  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8596  _variables_cached_byte_size_.store(cached_size,
8597  std::memory_order_relaxed);
8598  total_size += data_size;
8599  }
8600 
8601  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8602  total_size += 1UL * this->_internal_transformations_size();
8603  for (const auto& msg : this->transformations_) {
8604  total_size +=
8605  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
8606  }
8607 
8608  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8609  if (this->variable_selection_strategy() != 0) {
8610  total_size += 1 +
8611  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_variable_selection_strategy());
8612  }
8613 
8614  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8615  if (this->domain_reduction_strategy() != 0) {
8616  total_size += 1 +
8617  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_domain_reduction_strategy());
8618  }
8619 
8620  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8621  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8622  _internal_metadata_, total_size, &_cached_size_);
8623  }
8624  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8625  SetCachedSize(cached_size);
8626  return total_size;
8627 }
8628 
8629 void DecisionStrategyProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8630 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DecisionStrategyProto)
8631  GOOGLE_DCHECK_NE(&from, this);
8632  const DecisionStrategyProto* source =
8633  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DecisionStrategyProto>(
8634  &from);
8635  if (source == nullptr) {
8636  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DecisionStrategyProto)
8637  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8638  } else {
8639  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DecisionStrategyProto)
8640  MergeFrom(*source);
8641  }
8642 }
8643 
8644 void DecisionStrategyProto::MergeFrom(const DecisionStrategyProto& from) {
8645 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto)
8646  GOOGLE_DCHECK_NE(&from, this);
8647  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8648  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8649  (void) cached_has_bits;
8650 
8651  variables_.MergeFrom(from.variables_);
8652  transformations_.MergeFrom(from.transformations_);
8653  if (from.variable_selection_strategy() != 0) {
8654  _internal_set_variable_selection_strategy(from._internal_variable_selection_strategy());
8655  }
8656  if (from.domain_reduction_strategy() != 0) {
8657  _internal_set_domain_reduction_strategy(from._internal_domain_reduction_strategy());
8658  }
8659 }
8660 
8661 void DecisionStrategyProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8662 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DecisionStrategyProto)
8663  if (&from == this) return;
8664  Clear();
8665  MergeFrom(from);
8666 }
8667 
8668 void DecisionStrategyProto::CopyFrom(const DecisionStrategyProto& from) {
8669 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto)
8670  if (&from == this) return;
8671  Clear();
8672  MergeFrom(from);
8673 }
8674 
8675 bool DecisionStrategyProto::IsInitialized() const {
8676  return true;
8677 }
8678 
8679 void DecisionStrategyProto::InternalSwap(DecisionStrategyProto* other) {
8680  using std::swap;
8681  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8682  variables_.InternalSwap(&other->variables_);
8683  transformations_.InternalSwap(&other->transformations_);
8684  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8685  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, domain_reduction_strategy_)
8686  + sizeof(DecisionStrategyProto::domain_reduction_strategy_)
8687  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, variable_selection_strategy_)>(
8688  reinterpret_cast<char*>(&variable_selection_strategy_),
8689  reinterpret_cast<char*>(&other->variable_selection_strategy_));
8690 }
8691 
8692 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto::GetMetadata() const {
8693  return GetMetadataStatic();
8694 }
8695 
8696 
8697 // ===================================================================
8698 
8700  public:
8701 };
8702 
8703 PartialVariableAssignment::PartialVariableAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8704  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8705  vars_(arena),
8706  values_(arena) {
8707  SharedCtor();
8708  RegisterArenaDtor(arena);
8709  // @@protoc_insertion_point(arena_constructor:operations_research.sat.PartialVariableAssignment)
8710 }
8711 PartialVariableAssignment::PartialVariableAssignment(const PartialVariableAssignment& from)
8712  : ::PROTOBUF_NAMESPACE_ID::Message(),
8713  vars_(from.vars_),
8714  values_(from.values_) {
8715  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8716  // @@protoc_insertion_point(copy_constructor:operations_research.sat.PartialVariableAssignment)
8717 }
8718 
8719 void PartialVariableAssignment::SharedCtor() {
8720 }
8721 
8722 PartialVariableAssignment::~PartialVariableAssignment() {
8723  // @@protoc_insertion_point(destructor:operations_research.sat.PartialVariableAssignment)
8724  SharedDtor();
8725  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8726 }
8727 
8728 void PartialVariableAssignment::SharedDtor() {
8729  GOOGLE_DCHECK(GetArena() == nullptr);
8730 }
8731 
8732 void PartialVariableAssignment::ArenaDtor(void* object) {
8733  PartialVariableAssignment* _this = reinterpret_cast< PartialVariableAssignment* >(object);
8734  (void)_this;
8735 }
8736 void PartialVariableAssignment::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8737 }
8738 void PartialVariableAssignment::SetCachedSize(int size) const {
8739  _cached_size_.Set(size);
8740 }
8741 const PartialVariableAssignment& PartialVariableAssignment::default_instance() {
8742  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8743  return *internal_default_instance();
8744 }
8745 
8746 
8747 void PartialVariableAssignment::Clear() {
8748 // @@protoc_insertion_point(message_clear_start:operations_research.sat.PartialVariableAssignment)
8749  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8750  // Prevent compiler warnings about cached_has_bits being unused
8751  (void) cached_has_bits;
8752 
8753  vars_.Clear();
8754  values_.Clear();
8755  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8756 }
8757 
8758 const char* PartialVariableAssignment::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8759 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8760  while (!ctx->Done(&ptr)) {
8762  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8763  CHK_(ptr);
8764  switch (tag >> 3) {
8765  // repeated int32 vars = 1;
8766  case 1:
8767  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8768  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
8769  CHK_(ptr);
8770  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8771  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8772  CHK_(ptr);
8773  } else goto handle_unusual;
8774  continue;
8775  // repeated int64 values = 2;
8776  case 2:
8777  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
8778  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
8779  CHK_(ptr);
8780  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
8781  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8782  CHK_(ptr);
8783  } else goto handle_unusual;
8784  continue;
8785  default: {
8786  handle_unusual:
8787  if ((tag & 7) == 4 || tag == 0) {
8788  ctx->SetLastTag(tag);
8789  goto success;
8790  }
8791  ptr = UnknownFieldParse(tag,
8792  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8793  ptr, ctx);
8794  CHK_(ptr != nullptr);
8795  continue;
8796  }
8797  } // switch
8798  } // while
8799 success:
8800  return ptr;
8801 failure:
8802  ptr = nullptr;
8803  goto success;
8804 #undef CHK_
8805 }
8806 
8807 ::PROTOBUF_NAMESPACE_ID::uint8* PartialVariableAssignment::_InternalSerialize(
8808  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8809  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.PartialVariableAssignment)
8810  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8811  (void) cached_has_bits;
8812 
8813  // repeated int32 vars = 1;
8814  {
8815  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
8816  if (byte_size > 0) {
8817  target = stream->WriteInt32Packed(
8818  1, _internal_vars(), byte_size, target);
8819  }
8820  }
8821 
8822  // repeated int64 values = 2;
8823  {
8824  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
8825  if (byte_size > 0) {
8826  target = stream->WriteInt64Packed(
8827  2, _internal_values(), byte_size, target);
8828  }
8829  }
8830 
8831  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8832  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8833  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8834  }
8835  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.PartialVariableAssignment)
8836  return target;
8837 }
8838 
8839 size_t PartialVariableAssignment::ByteSizeLong() const {
8840 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.PartialVariableAssignment)
8841  size_t total_size = 0;
8842 
8843  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8844  // Prevent compiler warnings about cached_has_bits being unused
8845  (void) cached_has_bits;
8846 
8847  // repeated int32 vars = 1;
8848  {
8849  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8850  Int32Size(this->vars_);
8851  if (data_size > 0) {
8852  total_size += 1 +
8853  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8854  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8855  }
8856  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8857  _vars_cached_byte_size_.store(cached_size,
8858  std::memory_order_relaxed);
8859  total_size += data_size;
8860  }
8861 
8862  // repeated int64 values = 2;
8863  {
8864  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8865  Int64Size(this->values_);
8866  if (data_size > 0) {
8867  total_size += 1 +
8868  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8869  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8870  }
8871  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8872  _values_cached_byte_size_.store(cached_size,
8873  std::memory_order_relaxed);
8874  total_size += data_size;
8875  }
8876 
8877  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8878  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8879  _internal_metadata_, total_size, &_cached_size_);
8880  }
8881  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8882  SetCachedSize(cached_size);
8883  return total_size;
8884 }
8885 
8886 void PartialVariableAssignment::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8887 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.PartialVariableAssignment)
8888  GOOGLE_DCHECK_NE(&from, this);
8889  const PartialVariableAssignment* source =
8890  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PartialVariableAssignment>(
8891  &from);
8892  if (source == nullptr) {
8893  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.PartialVariableAssignment)
8894  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8895  } else {
8896  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.PartialVariableAssignment)
8897  MergeFrom(*source);
8898  }
8899 }
8900 
8901 void PartialVariableAssignment::MergeFrom(const PartialVariableAssignment& from) {
8902 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.PartialVariableAssignment)
8903  GOOGLE_DCHECK_NE(&from, this);
8904  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8905  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8906  (void) cached_has_bits;
8907 
8908  vars_.MergeFrom(from.vars_);
8909  values_.MergeFrom(from.values_);
8910 }
8911 
8912 void PartialVariableAssignment::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8913 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.PartialVariableAssignment)
8914  if (&from == this) return;
8915  Clear();
8916  MergeFrom(from);
8917 }
8918 
8919 void PartialVariableAssignment::CopyFrom(const PartialVariableAssignment& from) {
8920 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.PartialVariableAssignment)
8921  if (&from == this) return;
8922  Clear();
8923  MergeFrom(from);
8924 }
8925 
8926 bool PartialVariableAssignment::IsInitialized() const {
8927  return true;
8928 }
8929 
8930 void PartialVariableAssignment::InternalSwap(PartialVariableAssignment* other) {
8931  using std::swap;
8932  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8933  vars_.InternalSwap(&other->vars_);
8934  values_.InternalSwap(&other->values_);
8935 }
8936 
8937 ::PROTOBUF_NAMESPACE_ID::Metadata PartialVariableAssignment::GetMetadata() const {
8938  return GetMetadataStatic();
8939 }
8940 
8941 
8942 // ===================================================================
8943 
8945  public:
8946 };
8947 
8948 SparsePermutationProto::SparsePermutationProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8949  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8950  support_(arena),
8951  cycle_sizes_(arena) {
8952  SharedCtor();
8953  RegisterArenaDtor(arena);
8954  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SparsePermutationProto)
8955 }
8956 SparsePermutationProto::SparsePermutationProto(const SparsePermutationProto& from)
8957  : ::PROTOBUF_NAMESPACE_ID::Message(),
8958  support_(from.support_),
8959  cycle_sizes_(from.cycle_sizes_) {
8960  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8961  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SparsePermutationProto)
8962 }
8963 
8964 void SparsePermutationProto::SharedCtor() {
8965 }
8966 
8967 SparsePermutationProto::~SparsePermutationProto() {
8968  // @@protoc_insertion_point(destructor:operations_research.sat.SparsePermutationProto)
8969  SharedDtor();
8970  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8971 }
8972 
8973 void SparsePermutationProto::SharedDtor() {
8974  GOOGLE_DCHECK(GetArena() == nullptr);
8975 }
8976 
8977 void SparsePermutationProto::ArenaDtor(void* object) {
8978  SparsePermutationProto* _this = reinterpret_cast< SparsePermutationProto* >(object);
8979  (void)_this;
8980 }
8981 void SparsePermutationProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8982 }
8983 void SparsePermutationProto::SetCachedSize(int size) const {
8984  _cached_size_.Set(size);
8985 }
8986 const SparsePermutationProto& SparsePermutationProto::default_instance() {
8987  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8988  return *internal_default_instance();
8989 }
8990 
8991 
8992 void SparsePermutationProto::Clear() {
8993 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SparsePermutationProto)
8994  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8995  // Prevent compiler warnings about cached_has_bits being unused
8996  (void) cached_has_bits;
8997 
8998  support_.Clear();
8999  cycle_sizes_.Clear();
9000  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9001 }
9002 
9003 const char* SparsePermutationProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9004 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9005  while (!ctx->Done(&ptr)) {
9007  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9008  CHK_(ptr);
9009  switch (tag >> 3) {
9010  // repeated int32 support = 1;
9011  case 1:
9012  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9013  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_support(), ptr, ctx);
9014  CHK_(ptr);
9015  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
9016  _internal_add_support(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9017  CHK_(ptr);
9018  } else goto handle_unusual;
9019  continue;
9020  // repeated int32 cycle_sizes = 2;
9021  case 2:
9022  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9023  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_cycle_sizes(), ptr, ctx);
9024  CHK_(ptr);
9025  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
9026  _internal_add_cycle_sizes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9027  CHK_(ptr);
9028  } else goto handle_unusual;
9029  continue;
9030  default: {
9031  handle_unusual:
9032  if ((tag & 7) == 4 || tag == 0) {
9033  ctx->SetLastTag(tag);
9034  goto success;
9035  }
9036  ptr = UnknownFieldParse(tag,
9037  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9038  ptr, ctx);
9039  CHK_(ptr != nullptr);
9040  continue;
9041  }
9042  } // switch
9043  } // while
9044 success:
9045  return ptr;
9046 failure:
9047  ptr = nullptr;
9048  goto success;
9049 #undef CHK_
9050 }
9051 
9052 ::PROTOBUF_NAMESPACE_ID::uint8* SparsePermutationProto::_InternalSerialize(
9053  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9054  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SparsePermutationProto)
9055  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9056  (void) cached_has_bits;
9057 
9058  // repeated int32 support = 1;
9059  {
9060  int byte_size = _support_cached_byte_size_.load(std::memory_order_relaxed);
9061  if (byte_size > 0) {
9062  target = stream->WriteInt32Packed(
9063  1, _internal_support(), byte_size, target);
9064  }
9065  }
9066 
9067  // repeated int32 cycle_sizes = 2;
9068  {
9069  int byte_size = _cycle_sizes_cached_byte_size_.load(std::memory_order_relaxed);
9070  if (byte_size > 0) {
9071  target = stream->WriteInt32Packed(
9072  2, _internal_cycle_sizes(), byte_size, target);
9073  }
9074  }
9075 
9076  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9077  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9078  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9079  }
9080  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SparsePermutationProto)
9081  return target;
9082 }
9083 
9084 size_t SparsePermutationProto::ByteSizeLong() const {
9085 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SparsePermutationProto)
9086  size_t total_size = 0;
9087 
9088  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9089  // Prevent compiler warnings about cached_has_bits being unused
9090  (void) cached_has_bits;
9091 
9092  // repeated int32 support = 1;
9093  {
9094  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9095  Int32Size(this->support_);
9096  if (data_size > 0) {
9097  total_size += 1 +
9098  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9099  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9100  }
9101  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9102  _support_cached_byte_size_.store(cached_size,
9103  std::memory_order_relaxed);
9104  total_size += data_size;
9105  }
9106 
9107  // repeated int32 cycle_sizes = 2;
9108  {
9109  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9110  Int32Size(this->cycle_sizes_);
9111  if (data_size > 0) {
9112  total_size += 1 +
9113  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9114  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9115  }
9116  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9117  _cycle_sizes_cached_byte_size_.store(cached_size,
9118  std::memory_order_relaxed);
9119  total_size += data_size;
9120  }
9121 
9122  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9123  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9124  _internal_metadata_, total_size, &_cached_size_);
9125  }
9126  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9127  SetCachedSize(cached_size);
9128  return total_size;
9129 }
9130 
9131 void SparsePermutationProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9132 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.SparsePermutationProto)
9133  GOOGLE_DCHECK_NE(&from, this);
9134  const SparsePermutationProto* source =
9135  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SparsePermutationProto>(
9136  &from);
9137  if (source == nullptr) {
9138  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.SparsePermutationProto)
9139  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9140  } else {
9141  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.SparsePermutationProto)
9142  MergeFrom(*source);
9143  }
9144 }
9145 
9146 void SparsePermutationProto::MergeFrom(const SparsePermutationProto& from) {
9147 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SparsePermutationProto)
9148  GOOGLE_DCHECK_NE(&from, this);
9149  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9150  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9151  (void) cached_has_bits;
9152 
9153  support_.MergeFrom(from.support_);
9154  cycle_sizes_.MergeFrom(from.cycle_sizes_);
9155 }
9156 
9157 void SparsePermutationProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9158 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.SparsePermutationProto)
9159  if (&from == this) return;
9160  Clear();
9161  MergeFrom(from);
9162 }
9163 
9164 void SparsePermutationProto::CopyFrom(const SparsePermutationProto& from) {
9165 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SparsePermutationProto)
9166  if (&from == this) return;
9167  Clear();
9168  MergeFrom(from);
9169 }
9170 
9171 bool SparsePermutationProto::IsInitialized() const {
9172  return true;
9173 }
9174 
9175 void SparsePermutationProto::InternalSwap(SparsePermutationProto* other) {
9176  using std::swap;
9177  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9178  support_.InternalSwap(&other->support_);
9179  cycle_sizes_.InternalSwap(&other->cycle_sizes_);
9180 }
9181 
9182 ::PROTOBUF_NAMESPACE_ID::Metadata SparsePermutationProto::GetMetadata() const {
9183  return GetMetadataStatic();
9184 }
9185 
9186 
9187 // ===================================================================
9188 
9190  public:
9191 };
9192 
9193 DenseMatrixProto::DenseMatrixProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9194  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9195  entries_(arena) {
9196  SharedCtor();
9197  RegisterArenaDtor(arena);
9198  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DenseMatrixProto)
9199 }
9200 DenseMatrixProto::DenseMatrixProto(const DenseMatrixProto& from)
9201  : ::PROTOBUF_NAMESPACE_ID::Message(),
9202  entries_(from.entries_) {
9203  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9204  ::memcpy(&num_rows_, &from.num_rows_,
9205  static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
9206  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9207  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DenseMatrixProto)
9208 }
9209 
9210 void DenseMatrixProto::SharedCtor() {
9211  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9212  reinterpret_cast<char*>(&num_rows_) - reinterpret_cast<char*>(this)),
9213  0, static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
9214  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9215 }
9216 
9217 DenseMatrixProto::~DenseMatrixProto() {
9218  // @@protoc_insertion_point(destructor:operations_research.sat.DenseMatrixProto)
9219  SharedDtor();
9220  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9221 }
9222 
9223 void DenseMatrixProto::SharedDtor() {
9224  GOOGLE_DCHECK(GetArena() == nullptr);
9225 }
9226 
9227 void DenseMatrixProto::ArenaDtor(void* object) {
9228  DenseMatrixProto* _this = reinterpret_cast< DenseMatrixProto* >(object);
9229  (void)_this;
9230 }
9231 void DenseMatrixProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9232 }
9233 void DenseMatrixProto::SetCachedSize(int size) const {
9234  _cached_size_.Set(size);
9235 }
9236 const DenseMatrixProto& DenseMatrixProto::default_instance() {
9237  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9238  return *internal_default_instance();
9239 }
9240 
9241 
9242 void DenseMatrixProto::Clear() {
9243 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DenseMatrixProto)
9244  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9245  // Prevent compiler warnings about cached_has_bits being unused
9246  (void) cached_has_bits;
9247 
9248  entries_.Clear();
9249  ::memset(&num_rows_, 0, static_cast<size_t>(
9250  reinterpret_cast<char*>(&num_cols_) -
9251  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9252  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9253 }
9254 
9255 const char* DenseMatrixProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9256 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9257  while (!ctx->Done(&ptr)) {
9259  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9260  CHK_(ptr);
9261  switch (tag >> 3) {
9262  // int32 num_rows = 1;
9263  case 1:
9264  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
9265  num_rows_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9266  CHK_(ptr);
9267  } else goto handle_unusual;
9268  continue;
9269  // int32 num_cols = 2;
9270  case 2:
9271  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
9272  num_cols_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9273  CHK_(ptr);
9274  } else goto handle_unusual;
9275  continue;
9276  // repeated int32 entries = 3;
9277  case 3:
9278  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
9279  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_entries(), ptr, ctx);
9280  CHK_(ptr);
9281  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
9282  _internal_add_entries(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9283  CHK_(ptr);
9284  } else goto handle_unusual;
9285  continue;
9286  default: {
9287  handle_unusual:
9288  if ((tag & 7) == 4 || tag == 0) {
9289  ctx->SetLastTag(tag);
9290  goto success;
9291  }
9292  ptr = UnknownFieldParse(tag,
9293  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9294  ptr, ctx);
9295  CHK_(ptr != nullptr);
9296  continue;
9297  }
9298  } // switch
9299  } // while
9300 success:
9301  return ptr;
9302 failure:
9303  ptr = nullptr;
9304  goto success;
9305 #undef CHK_
9306 }
9307 
9308 ::PROTOBUF_NAMESPACE_ID::uint8* DenseMatrixProto::_InternalSerialize(
9309  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9310  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DenseMatrixProto)
9311  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9312  (void) cached_has_bits;
9313 
9314  // int32 num_rows = 1;
9315  if (this->num_rows() != 0) {
9316  target = stream->EnsureSpace(target);
9317  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_num_rows(), target);
9318  }
9319 
9320  // int32 num_cols = 2;
9321  if (this->num_cols() != 0) {
9322  target = stream->EnsureSpace(target);
9323  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_num_cols(), target);
9324  }
9325 
9326  // repeated int32 entries = 3;
9327  {
9328  int byte_size = _entries_cached_byte_size_.load(std::memory_order_relaxed);
9329  if (byte_size > 0) {
9330  target = stream->WriteInt32Packed(
9331  3, _internal_entries(), byte_size, target);
9332  }
9333  }
9334 
9335  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9336  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9337  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9338  }
9339  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DenseMatrixProto)
9340  return target;
9341 }
9342 
9343 size_t DenseMatrixProto::ByteSizeLong() const {
9344 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DenseMatrixProto)
9345  size_t total_size = 0;
9346 
9347  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9348  // Prevent compiler warnings about cached_has_bits being unused
9349  (void) cached_has_bits;
9350 
9351  // repeated int32 entries = 3;
9352  {
9353  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9354  Int32Size(this->entries_);
9355  if (data_size > 0) {
9356  total_size += 1 +
9357  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9358  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9359  }
9360  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9361  _entries_cached_byte_size_.store(cached_size,
9362  std::memory_order_relaxed);
9363  total_size += data_size;
9364  }
9365 
9366  // int32 num_rows = 1;
9367  if (this->num_rows() != 0) {
9368  total_size += 1 +
9369  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9370  this->_internal_num_rows());
9371  }
9372 
9373  // int32 num_cols = 2;
9374  if (this->num_cols() != 0) {
9375  total_size += 1 +
9376  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9377  this->_internal_num_cols());
9378  }
9379 
9380  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9381  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9382  _internal_metadata_, total_size, &_cached_size_);
9383  }
9384  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9385  SetCachedSize(cached_size);
9386  return total_size;
9387 }
9388 
9389 void DenseMatrixProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9390 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DenseMatrixProto)
9391  GOOGLE_DCHECK_NE(&from, this);
9392  const DenseMatrixProto* source =
9393  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DenseMatrixProto>(
9394  &from);
9395  if (source == nullptr) {
9396  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DenseMatrixProto)
9397  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9398  } else {
9399  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DenseMatrixProto)
9400  MergeFrom(*source);
9401  }
9402 }
9403 
9404 void DenseMatrixProto::MergeFrom(const DenseMatrixProto& from) {
9405 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DenseMatrixProto)
9406  GOOGLE_DCHECK_NE(&from, this);
9407  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9408  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9409  (void) cached_has_bits;
9410 
9411  entries_.MergeFrom(from.entries_);
9412  if (from.num_rows() != 0) {
9413  _internal_set_num_rows(from._internal_num_rows());
9414  }
9415  if (from.num_cols() != 0) {
9416  _internal_set_num_cols(from._internal_num_cols());
9417  }
9418 }
9419 
9420 void DenseMatrixProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9421 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DenseMatrixProto)
9422  if (&from == this) return;
9423  Clear();
9424  MergeFrom(from);
9425 }
9426 
9427 void DenseMatrixProto::CopyFrom(const DenseMatrixProto& from) {
9428 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DenseMatrixProto)
9429  if (&from == this) return;
9430  Clear();
9431  MergeFrom(from);
9432 }
9433 
9434 bool DenseMatrixProto::IsInitialized() const {
9435  return true;
9436 }
9437 
9438 void DenseMatrixProto::InternalSwap(DenseMatrixProto* other) {
9439  using std::swap;
9440  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9441  entries_.InternalSwap(&other->entries_);
9442  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
9443  PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_cols_)
9444  + sizeof(DenseMatrixProto::num_cols_)
9445  - PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_rows_)>(
9446  reinterpret_cast<char*>(&num_rows_),
9447  reinterpret_cast<char*>(&other->num_rows_));
9448 }
9449 
9450 ::PROTOBUF_NAMESPACE_ID::Metadata DenseMatrixProto::GetMetadata() const {
9451  return GetMetadataStatic();
9452 }
9453 
9454 
9455 // ===================================================================
9456 
9458  public:
9459 };
9460 
9461 SymmetryProto::SymmetryProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9462  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9463  permutations_(arena),
9464  orbitopes_(arena) {
9465  SharedCtor();
9466  RegisterArenaDtor(arena);
9467  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SymmetryProto)
9468 }
9469 SymmetryProto::SymmetryProto(const SymmetryProto& from)
9470  : ::PROTOBUF_NAMESPACE_ID::Message(),
9471  permutations_(from.permutations_),
9472  orbitopes_(from.orbitopes_) {
9473  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9474  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SymmetryProto)
9475 }
9476 
9477 void SymmetryProto::SharedCtor() {
9478  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9479 }
9480 
9481 SymmetryProto::~SymmetryProto() {
9482  // @@protoc_insertion_point(destructor:operations_research.sat.SymmetryProto)
9483  SharedDtor();
9484  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9485 }
9486 
9487 void SymmetryProto::SharedDtor() {
9488  GOOGLE_DCHECK(GetArena() == nullptr);
9489 }
9490 
9491 void SymmetryProto::ArenaDtor(void* object) {
9492  SymmetryProto* _this = reinterpret_cast< SymmetryProto* >(object);
9493  (void)_this;
9494 }
9495 void SymmetryProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9496 }
9497 void SymmetryProto::SetCachedSize(int size) const {
9498  _cached_size_.Set(size);
9499 }
9500 const SymmetryProto& SymmetryProto::default_instance() {
9501  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9502  return *internal_default_instance();
9503 }
9504 
9505 
9506 void SymmetryProto::Clear() {
9507 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SymmetryProto)
9508  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9509  // Prevent compiler warnings about cached_has_bits being unused
9510  (void) cached_has_bits;
9511 
9512  permutations_.Clear();
9513  orbitopes_.Clear();
9514  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9515 }
9516 
9517 const char* SymmetryProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9518 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9519  while (!ctx->Done(&ptr)) {
9521  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9522  CHK_(ptr);
9523  switch (tag >> 3) {
9524  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9525  case 1:
9526  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9527  ptr -= 1;
9528  do {
9529  ptr += 1;
9530  ptr = ctx->ParseMessage(_internal_add_permutations(), ptr);
9531  CHK_(ptr);
9532  if (!ctx->DataAvailable(ptr)) break;
9533  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
9534  } else goto handle_unusual;
9535  continue;
9536  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9537  case 2:
9538  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9539  ptr -= 1;
9540  do {
9541  ptr += 1;
9542  ptr = ctx->ParseMessage(_internal_add_orbitopes(), ptr);
9543  CHK_(ptr);
9544  if (!ctx->DataAvailable(ptr)) break;
9545  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9546  } else goto handle_unusual;
9547  continue;
9548  default: {
9549  handle_unusual:
9550  if ((tag & 7) == 4 || tag == 0) {
9551  ctx->SetLastTag(tag);
9552  goto success;
9553  }
9554  ptr = UnknownFieldParse(tag,
9555  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9556  ptr, ctx);
9557  CHK_(ptr != nullptr);
9558  continue;
9559  }
9560  } // switch
9561  } // while
9562 success:
9563  return ptr;
9564 failure:
9565  ptr = nullptr;
9566  goto success;
9567 #undef CHK_
9568 }
9569 
9570 ::PROTOBUF_NAMESPACE_ID::uint8* SymmetryProto::_InternalSerialize(
9571  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9572  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SymmetryProto)
9573  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9574  (void) cached_has_bits;
9575 
9576  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9577  for (unsigned int i = 0,
9578  n = static_cast<unsigned int>(this->_internal_permutations_size()); i < n; i++) {
9579  target = stream->EnsureSpace(target);
9580  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9581  InternalWriteMessage(1, this->_internal_permutations(i), target, stream);
9582  }
9583 
9584  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9585  for (unsigned int i = 0,
9586  n = static_cast<unsigned int>(this->_internal_orbitopes_size()); i < n; i++) {
9587  target = stream->EnsureSpace(target);
9588  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9589  InternalWriteMessage(2, this->_internal_orbitopes(i), target, stream);
9590  }
9591 
9592  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9593  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9594  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9595  }
9596  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SymmetryProto)
9597  return target;
9598 }
9599 
9600 size_t SymmetryProto::ByteSizeLong() const {
9601 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SymmetryProto)
9602  size_t total_size = 0;
9603 
9604  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9605  // Prevent compiler warnings about cached_has_bits being unused
9606  (void) cached_has_bits;
9607 
9608  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9609  total_size += 1UL * this->_internal_permutations_size();
9610  for (const auto& msg : this->permutations_) {
9611  total_size +=
9612  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9613  }
9614 
9615  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9616  total_size += 1UL * this->_internal_orbitopes_size();
9617  for (const auto& msg : this->orbitopes_) {
9618  total_size +=
9619  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9620  }
9621 
9622  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9623  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9624  _internal_metadata_, total_size, &_cached_size_);
9625  }
9626  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9627  SetCachedSize(cached_size);
9628  return total_size;
9629 }
9630 
9631 void SymmetryProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9632 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.SymmetryProto)
9633  GOOGLE_DCHECK_NE(&from, this);
9634  const SymmetryProto* source =
9635  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SymmetryProto>(
9636  &from);
9637  if (source == nullptr) {
9638  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.SymmetryProto)
9639  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9640  } else {
9641  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.SymmetryProto)
9642  MergeFrom(*source);
9643  }
9644 }
9645 
9646 void SymmetryProto::MergeFrom(const SymmetryProto& from) {
9647 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SymmetryProto)
9648  GOOGLE_DCHECK_NE(&from, this);
9649  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9650  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9651  (void) cached_has_bits;
9652 
9653  permutations_.MergeFrom(from.permutations_);
9654  orbitopes_.MergeFrom(from.orbitopes_);
9655 }
9656 
9657 void SymmetryProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9658 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.SymmetryProto)
9659  if (&from == this) return;
9660  Clear();
9661  MergeFrom(from);
9662 }
9663 
9664 void SymmetryProto::CopyFrom(const SymmetryProto& from) {
9665 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SymmetryProto)
9666  if (&from == this) return;
9667  Clear();
9668  MergeFrom(from);
9669 }
9670 
9671 bool SymmetryProto::IsInitialized() const {
9672  return true;
9673 }
9674 
9675 void SymmetryProto::InternalSwap(SymmetryProto* other) {
9676  using std::swap;
9677  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9678  permutations_.InternalSwap(&other->permutations_);
9679  orbitopes_.InternalSwap(&other->orbitopes_);
9680 }
9681 
9682 ::PROTOBUF_NAMESPACE_ID::Metadata SymmetryProto::GetMetadata() const {
9683  return GetMetadataStatic();
9684 }
9685 
9686 
9687 // ===================================================================
9688 
9690  public:
9691  static const ::operations_research::sat::CpObjectiveProto& objective(const CpModelProto* msg);
9692  static const ::operations_research::sat::PartialVariableAssignment& solution_hint(const CpModelProto* msg);
9693  static const ::operations_research::sat::SymmetryProto& symmetry(const CpModelProto* msg);
9694 };
9695 
9696 const ::operations_research::sat::CpObjectiveProto&
9697 CpModelProto::_Internal::objective(const CpModelProto* msg) {
9698  return *msg->objective_;
9699 }
9700 const ::operations_research::sat::PartialVariableAssignment&
9701 CpModelProto::_Internal::solution_hint(const CpModelProto* msg) {
9702  return *msg->solution_hint_;
9703 }
9704 const ::operations_research::sat::SymmetryProto&
9705 CpModelProto::_Internal::symmetry(const CpModelProto* msg) {
9706  return *msg->symmetry_;
9707 }
9708 CpModelProto::CpModelProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9709  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9710  variables_(arena),
9711  constraints_(arena),
9712  search_strategy_(arena),
9713  assumptions_(arena) {
9714  SharedCtor();
9715  RegisterArenaDtor(arena);
9716  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpModelProto)
9717 }
9718 CpModelProto::CpModelProto(const CpModelProto& from)
9719  : ::PROTOBUF_NAMESPACE_ID::Message(),
9720  variables_(from.variables_),
9721  constraints_(from.constraints_),
9722  search_strategy_(from.search_strategy_),
9723  assumptions_(from.assumptions_) {
9724  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9725  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9726  if (!from._internal_name().empty()) {
9727  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
9728  GetArena());
9729  }
9730  if (from._internal_has_objective()) {
9731  objective_ = new ::operations_research::sat::CpObjectiveProto(*from.objective_);
9732  } else {
9733  objective_ = nullptr;
9734  }
9735  if (from._internal_has_solution_hint()) {
9736  solution_hint_ = new ::operations_research::sat::PartialVariableAssignment(*from.solution_hint_);
9737  } else {
9738  solution_hint_ = nullptr;
9739  }
9740  if (from._internal_has_symmetry()) {
9741  symmetry_ = new ::operations_research::sat::SymmetryProto(*from.symmetry_);
9742  } else {
9743  symmetry_ = nullptr;
9744  }
9745  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpModelProto)
9746 }
9747 
9748 void CpModelProto::SharedCtor() {
9749  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9750  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9751  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9752  reinterpret_cast<char*>(&objective_) - reinterpret_cast<char*>(this)),
9753  0, static_cast<size_t>(reinterpret_cast<char*>(&symmetry_) -
9754  reinterpret_cast<char*>(&objective_)) + sizeof(symmetry_));
9755 }
9756 
9757 CpModelProto::~CpModelProto() {
9758  // @@protoc_insertion_point(destructor:operations_research.sat.CpModelProto)
9759  SharedDtor();
9760  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9761 }
9762 
9763 void CpModelProto::SharedDtor() {
9764  GOOGLE_DCHECK(GetArena() == nullptr);
9765  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9766  if (this != internal_default_instance()) delete objective_;
9767  if (this != internal_default_instance()) delete solution_hint_;
9768  if (this != internal_default_instance()) delete symmetry_;
9769 }
9770 
9771 void CpModelProto::ArenaDtor(void* object) {
9772  CpModelProto* _this = reinterpret_cast< CpModelProto* >(object);
9773  (void)_this;
9774 }
9775 void CpModelProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9776 }
9777 void CpModelProto::SetCachedSize(int size) const {
9778  _cached_size_.Set(size);
9779 }
9780 const CpModelProto& CpModelProto::default_instance() {
9781  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9782  return *internal_default_instance();
9783 }
9784 
9785 
9786 void CpModelProto::Clear() {
9787 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpModelProto)
9788  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9789  // Prevent compiler warnings about cached_has_bits being unused
9790  (void) cached_has_bits;
9791 
9792  variables_.Clear();
9793  constraints_.Clear();
9794  search_strategy_.Clear();
9795  assumptions_.Clear();
9796  name_.ClearToEmpty();
9797  if (GetArena() == nullptr && objective_ != nullptr) {
9798  delete objective_;
9799  }
9800  objective_ = nullptr;
9801  if (GetArena() == nullptr && solution_hint_ != nullptr) {
9802  delete solution_hint_;
9803  }
9804  solution_hint_ = nullptr;
9805  if (GetArena() == nullptr && symmetry_ != nullptr) {
9806  delete symmetry_;
9807  }
9808  symmetry_ = nullptr;
9809  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9810 }
9811 
9812 const char* CpModelProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9813 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9814  while (!ctx->Done(&ptr)) {
9816  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9817  CHK_(ptr);
9818  switch (tag >> 3) {
9819  // string name = 1;
9820  case 1:
9821  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9822  auto str = _internal_mutable_name();
9823  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
9824  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpModelProto.name"));
9825  CHK_(ptr);
9826  } else goto handle_unusual;
9827  continue;
9828  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9829  case 2:
9830  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9831  ptr -= 1;
9832  do {
9833  ptr += 1;
9834  ptr = ctx->ParseMessage(_internal_add_variables(), ptr);
9835  CHK_(ptr);
9836  if (!ctx->DataAvailable(ptr)) break;
9837  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9838  } else goto handle_unusual;
9839  continue;
9840  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9841  case 3:
9842  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
9843  ptr -= 1;
9844  do {
9845  ptr += 1;
9846  ptr = ctx->ParseMessage(_internal_add_constraints(), ptr);
9847  CHK_(ptr);
9848  if (!ctx->DataAvailable(ptr)) break;
9849  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
9850  } else goto handle_unusual;
9851  continue;
9852  // .operations_research.sat.CpObjectiveProto objective = 4;
9853  case 4:
9854  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
9855  ptr = ctx->ParseMessage(_internal_mutable_objective(), ptr);
9856  CHK_(ptr);
9857  } else goto handle_unusual;
9858  continue;
9859  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9860  case 5:
9861  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
9862  ptr -= 1;
9863  do {
9864  ptr += 1;
9865  ptr = ctx->ParseMessage(_internal_add_search_strategy(), ptr);
9866  CHK_(ptr);
9867  if (!ctx->DataAvailable(ptr)) break;
9868  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
9869  } else goto handle_unusual;
9870  continue;
9871  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9872  case 6:
9873  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
9874  ptr = ctx->ParseMessage(_internal_mutable_solution_hint(), ptr);
9875  CHK_(ptr);
9876  } else goto handle_unusual;
9877  continue;
9878  // repeated int32 assumptions = 7;
9879  case 7:
9880  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
9881  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_assumptions(), ptr, ctx);
9882  CHK_(ptr);
9883  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
9884  _internal_add_assumptions(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9885  CHK_(ptr);
9886  } else goto handle_unusual;
9887  continue;
9888  // .operations_research.sat.SymmetryProto symmetry = 8;
9889  case 8:
9890  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
9891  ptr = ctx->ParseMessage(_internal_mutable_symmetry(), ptr);
9892  CHK_(ptr);
9893  } else goto handle_unusual;
9894  continue;
9895  default: {
9896  handle_unusual:
9897  if ((tag & 7) == 4 || tag == 0) {
9898  ctx->SetLastTag(tag);
9899  goto success;
9900  }
9901  ptr = UnknownFieldParse(tag,
9902  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9903  ptr, ctx);
9904  CHK_(ptr != nullptr);
9905  continue;
9906  }
9907  } // switch
9908  } // while
9909 success:
9910  return ptr;
9911 failure:
9912  ptr = nullptr;
9913  goto success;
9914 #undef CHK_
9915 }
9916 
9917 ::PROTOBUF_NAMESPACE_ID::uint8* CpModelProto::_InternalSerialize(
9918  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9919  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpModelProto)
9920  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9921  (void) cached_has_bits;
9922 
9923  // string name = 1;
9924  if (this->name().size() > 0) {
9925  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
9926  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
9927  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
9928  "operations_research.sat.CpModelProto.name");
9929  target = stream->WriteStringMaybeAliased(
9930  1, this->_internal_name(), target);
9931  }
9932 
9933  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9934  for (unsigned int i = 0,
9935  n = static_cast<unsigned int>(this->_internal_variables_size()); i < n; i++) {
9936  target = stream->EnsureSpace(target);
9937  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9938  InternalWriteMessage(2, this->_internal_variables(i), target, stream);
9939  }
9940 
9941  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9942  for (unsigned int i = 0,
9943  n = static_cast<unsigned int>(this->_internal_constraints_size()); i < n; i++) {
9944  target = stream->EnsureSpace(target);
9945  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9946  InternalWriteMessage(3, this->_internal_constraints(i), target, stream);
9947  }
9948 
9949  // .operations_research.sat.CpObjectiveProto objective = 4;
9950  if (this->has_objective()) {
9951  target = stream->EnsureSpace(target);
9952  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9953  InternalWriteMessage(
9954  4, _Internal::objective(this), target, stream);
9955  }
9956 
9957  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9958  for (unsigned int i = 0,
9959  n = static_cast<unsigned int>(this->_internal_search_strategy_size()); i < n; i++) {
9960  target = stream->EnsureSpace(target);
9961  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9962  InternalWriteMessage(5, this->_internal_search_strategy(i), target, stream);
9963  }
9964 
9965  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9966  if (this->has_solution_hint()) {
9967  target = stream->EnsureSpace(target);
9968  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9969  InternalWriteMessage(
9970  6, _Internal::solution_hint(this), target, stream);
9971  }
9972 
9973  // repeated int32 assumptions = 7;
9974  {
9975  int byte_size = _assumptions_cached_byte_size_.load(std::memory_order_relaxed);
9976  if (byte_size > 0) {
9977  target = stream->WriteInt32Packed(
9978  7, _internal_assumptions(), byte_size, target);
9979  }
9980  }
9981 
9982  // .operations_research.sat.SymmetryProto symmetry = 8;
9983  if (this->has_symmetry()) {
9984  target = stream->EnsureSpace(target);
9985  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9986  InternalWriteMessage(
9987  8, _Internal::symmetry(this), target, stream);
9988  }
9989 
9990  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9991  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9992  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9993  }
9994  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpModelProto)
9995  return target;
9996 }
9997 
9998 size_t CpModelProto::ByteSizeLong() const {
9999 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpModelProto)
10000  size_t total_size = 0;
10001 
10002  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10003  // Prevent compiler warnings about cached_has_bits being unused
10004  (void) cached_has_bits;
10005 
10006  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
10007  total_size += 1UL * this->_internal_variables_size();
10008  for (const auto& msg : this->variables_) {
10009  total_size +=
10010  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10011  }
10012 
10013  // repeated .operations_research.sat.ConstraintProto constraints = 3;
10014  total_size += 1UL * this->_internal_constraints_size();
10015  for (const auto& msg : this->constraints_) {
10016  total_size +=
10017  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10018  }
10019 
10020  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
10021  total_size += 1UL * this->_internal_search_strategy_size();
10022  for (const auto& msg : this->search_strategy_) {
10023  total_size +=
10024  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10025  }
10026 
10027  // repeated int32 assumptions = 7;
10028  {
10029  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10030  Int32Size(this->assumptions_);
10031  if (data_size > 0) {
10032  total_size += 1 +
10033  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10034  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10035  }
10036  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10037  _assumptions_cached_byte_size_.store(cached_size,
10038  std::memory_order_relaxed);
10039  total_size += data_size;
10040  }
10041 
10042  // string name = 1;
10043  if (this->name().size() > 0) {
10044  total_size += 1 +
10045  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10046  this->_internal_name());
10047  }
10048 
10049  // .operations_research.sat.CpObjectiveProto objective = 4;
10050  if (this->has_objective()) {
10051  total_size += 1 +
10052  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10053  *objective_);
10054  }
10055 
10056  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
10057  if (this->has_solution_hint()) {
10058  total_size += 1 +
10059  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10060  *solution_hint_);
10061  }
10062 
10063  // .operations_research.sat.SymmetryProto symmetry = 8;
10064  if (this->has_symmetry()) {
10065  total_size += 1 +
10066  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10067  *symmetry_);
10068  }
10069 
10070  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10071  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
10072  _internal_metadata_, total_size, &_cached_size_);
10073  }
10074  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
10075  SetCachedSize(cached_size);
10076  return total_size;
10077 }
10078 
10079 void CpModelProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10080 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpModelProto)
10081  GOOGLE_DCHECK_NE(&from, this);
10082  const CpModelProto* source =
10083  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpModelProto>(
10084  &from);
10085  if (source == nullptr) {
10086  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpModelProto)
10087  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
10088  } else {
10089  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpModelProto)
10090  MergeFrom(*source);
10091  }
10092 }
10093 
10094 void CpModelProto::MergeFrom(const CpModelProto& from) {
10095 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpModelProto)
10096  GOOGLE_DCHECK_NE(&from, this);
10097  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10098  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10099  (void) cached_has_bits;
10100 
10101  variables_.MergeFrom(from.variables_);
10102  constraints_.MergeFrom(from.constraints_);
10103  search_strategy_.MergeFrom(from.search_strategy_);
10104  assumptions_.MergeFrom(from.assumptions_);
10105  if (from.name().size() > 0) {
10106  _internal_set_name(from._internal_name());
10107  }
10108  if (from.has_objective()) {
10109  _internal_mutable_objective()->::operations_research::sat::CpObjectiveProto::MergeFrom(from._internal_objective());
10110  }
10111  if (from.has_solution_hint()) {
10112  _internal_mutable_solution_hint()->::operations_research::sat::PartialVariableAssignment::MergeFrom(from._internal_solution_hint());
10113  }
10114  if (from.has_symmetry()) {
10115  _internal_mutable_symmetry()->::operations_research::sat::SymmetryProto::MergeFrom(from._internal_symmetry());
10116  }
10117 }
10118 
10119 void CpModelProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10120 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpModelProto)
10121  if (&from == this) return;
10122  Clear();
10123  MergeFrom(from);
10124 }
10125 
10126 void CpModelProto::CopyFrom(const CpModelProto& from) {
10127 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpModelProto)
10128  if (&from == this) return;
10129  Clear();
10130  MergeFrom(from);
10131 }
10132 
10133 bool CpModelProto::IsInitialized() const {
10134  return true;
10135 }
10136 
10137 void CpModelProto::InternalSwap(CpModelProto* other) {
10138  using std::swap;
10139  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
10140  variables_.InternalSwap(&other->variables_);
10141  constraints_.InternalSwap(&other->constraints_);
10142  search_strategy_.InternalSwap(&other->search_strategy_);
10143  assumptions_.InternalSwap(&other->assumptions_);
10144  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
10145  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
10146  PROTOBUF_FIELD_OFFSET(CpModelProto, symmetry_)
10147  + sizeof(CpModelProto::symmetry_)
10148  - PROTOBUF_FIELD_OFFSET(CpModelProto, objective_)>(
10149  reinterpret_cast<char*>(&objective_),
10150  reinterpret_cast<char*>(&other->objective_));
10151 }
10152 
10153 ::PROTOBUF_NAMESPACE_ID::Metadata CpModelProto::GetMetadata() const {
10154  return GetMetadataStatic();
10155 }
10156 
10157 
10158 // ===================================================================
10159 
10161  public:
10162 };
10163 
10164 CpSolverResponse::CpSolverResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
10165  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
10166  solution_(arena),
10167  solution_lower_bounds_(arena),
10168  solution_upper_bounds_(arena),
10169  tightened_variables_(arena),
10170  sufficient_assumptions_for_infeasibility_(arena) {
10171  SharedCtor();
10172  RegisterArenaDtor(arena);
10173  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpSolverResponse)
10174 }
10175 CpSolverResponse::CpSolverResponse(const CpSolverResponse& from)
10176  : ::PROTOBUF_NAMESPACE_ID::Message(),
10177  solution_(from.solution_),
10178  solution_lower_bounds_(from.solution_lower_bounds_),
10179  solution_upper_bounds_(from.solution_upper_bounds_),
10180  tightened_variables_(from.tightened_variables_),
10181  sufficient_assumptions_for_infeasibility_(from.sufficient_assumptions_for_infeasibility_) {
10182  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10183  solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10184  if (!from._internal_solution_info().empty()) {
10185  solution_info_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_solution_info(),
10186  GetArena());
10187  }
10188  logs_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10189  if (!from._internal_logs().empty()) {
10190  logs_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_logs(),
10191  GetArena());
10192  }
10193  ::memcpy(&objective_value_, &from.objective_value_,
10194  static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
10195  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10196  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpSolverResponse)
10197 }
10198 
10199 void CpSolverResponse::SharedCtor() {
10200  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto.base);
10201  solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10202  logs_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10203  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
10204  reinterpret_cast<char*>(&objective_value_) - reinterpret_cast<char*>(this)),
10205  0, static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
10206  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10207 }
10208 
10209 CpSolverResponse::~CpSolverResponse() {
10210  // @@protoc_insertion_point(destructor:operations_research.sat.CpSolverResponse)
10211  SharedDtor();
10212  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10213 }
10214 
10215 void CpSolverResponse::SharedDtor() {
10216  GOOGLE_DCHECK(GetArena() == nullptr);
10217  solution_info_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10218  logs_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10219 }
10220 
10221 void CpSolverResponse::ArenaDtor(void* object) {
10222  CpSolverResponse* _this = reinterpret_cast< CpSolverResponse* >(object);
10223  (void)_this;
10224 }
10225 void CpSolverResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
10226 }
10227 void CpSolverResponse::SetCachedSize(int size) const {
10228  _cached_size_.Set(size);
10229 }
10230 const CpSolverResponse& CpSolverResponse::default_instance() {
10231  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto.base);
10232  return *internal_default_instance();
10233 }
10234 
10235 
10236 void CpSolverResponse::Clear() {
10237 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpSolverResponse)
10238  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10239  // Prevent compiler warnings about cached_has_bits being unused
10240  (void) cached_has_bits;
10241 
10242  solution_.Clear();
10243  solution_lower_bounds_.Clear();
10244  solution_upper_bounds_.Clear();
10245  tightened_variables_.Clear();
10246  sufficient_assumptions_for_infeasibility_.Clear();
10247  solution_info_.ClearToEmpty();
10248  logs_.ClearToEmpty();
10249  ::memset(&objective_value_, 0, static_cast<size_t>(
10250  reinterpret_cast<char*>(&num_lp_iterations_) -
10251  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10252  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10253 }
10254 
10255 const char* CpSolverResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
10256 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
10257  while (!ctx->Done(&ptr)) {
10259  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
10260  CHK_(ptr);
10261  switch (tag >> 3) {
10262  // .operations_research.sat.CpSolverStatus status = 1;
10263  case 1:
10264  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
10265  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10266  CHK_(ptr);
10267  _internal_set_status(static_cast<::operations_research::sat::CpSolverStatus>(val));
10268  } else goto handle_unusual;
10269  continue;
10270  // repeated int64 solution = 2;
10271  case 2:
10272  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
10273  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution(), ptr, ctx);
10274  CHK_(ptr);
10275  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
10276  _internal_add_solution(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10277  CHK_(ptr);
10278  } else goto handle_unusual;
10279  continue;
10280  // double objective_value = 3;
10281  case 3:
10282  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
10283  objective_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10284  ptr += sizeof(double);
10285  } else goto handle_unusual;
10286  continue;
10287  // double best_objective_bound = 4;
10288  case 4:
10289  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 33)) {
10290  best_objective_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10291  ptr += sizeof(double);
10292  } else goto handle_unusual;
10293  continue;
10294  // bool all_solutions_were_found = 5;
10295  case 5:
10296  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
10297  all_solutions_were_found_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10298  CHK_(ptr);
10299  } else goto handle_unusual;
10300  continue;
10301  // int64 num_booleans = 10;
10302  case 10:
10303  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
10304  num_booleans_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10305  CHK_(ptr);
10306  } else goto handle_unusual;
10307  continue;
10308  // int64 num_conflicts = 11;
10309  case 11:
10310  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
10311  num_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10312  CHK_(ptr);
10313  } else goto handle_unusual;
10314  continue;
10315  // int64 num_branches = 12;
10316  case 12:
10317  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
10318  num_branches_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10319  CHK_(ptr);
10320  } else goto handle_unusual;
10321  continue;
10322  // int64 num_binary_propagations = 13;
10323  case 13:
10324  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
10325  num_binary_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10326  CHK_(ptr);
10327  } else goto handle_unusual;
10328  continue;
10329  // int64 num_integer_propagations = 14;
10330  case 14:
10331  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
10332  num_integer_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10333  CHK_(ptr);
10334  } else goto handle_unusual;
10335  continue;
10336  // double wall_time = 15;
10337  case 15:
10338  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 121)) {
10339  wall_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10340  ptr += sizeof(double);
10341  } else goto handle_unusual;
10342  continue;
10343  // double user_time = 16;
10344  case 16:
10345  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 129)) {
10346  user_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10347  ptr += sizeof(double);
10348  } else goto handle_unusual;
10349  continue;
10350  // double deterministic_time = 17;
10351  case 17:
10352  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 137)) {
10353  deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10354  ptr += sizeof(double);
10355  } else goto handle_unusual;
10356  continue;
10357  // repeated int64 solution_lower_bounds = 18;
10358  case 18:
10359  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
10360  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_lower_bounds(), ptr, ctx);
10361  CHK_(ptr);
10362  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144) {
10363  _internal_add_solution_lower_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10364  CHK_(ptr);
10365  } else goto handle_unusual;
10366  continue;
10367  // repeated int64 solution_upper_bounds = 19;
10368  case 19:
10369  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
10370  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_upper_bounds(), ptr, ctx);
10371  CHK_(ptr);
10372  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152) {
10373  _internal_add_solution_upper_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10374  CHK_(ptr);
10375  } else goto handle_unusual;
10376  continue;
10377  // string solution_info = 20;
10378  case 20:
10379  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
10380  auto str = _internal_mutable_solution_info();
10381  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
10382  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.solution_info"));
10383  CHK_(ptr);
10384  } else goto handle_unusual;
10385  continue;
10386  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10387  case 21:
10388  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
10389  ptr -= 2;
10390  do {
10391  ptr += 2;
10392  ptr = ctx->ParseMessage(_internal_add_tightened_variables(), ptr);
10393  CHK_(ptr);
10394  if (!ctx->DataAvailable(ptr)) break;
10395  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<170>(ptr));
10396  } else goto handle_unusual;
10397  continue;
10398  // double primal_integral = 22;
10399  case 22:
10400  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
10401  primal_integral_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10402  ptr += sizeof(double);
10403  } else goto handle_unusual;
10404  continue;
10405  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10406  case 23:
10407  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
10408  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_sufficient_assumptions_for_infeasibility(), ptr, ctx);
10409  CHK_(ptr);
10410  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184) {
10411  _internal_add_sufficient_assumptions_for_infeasibility(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10412  CHK_(ptr);
10413  } else goto handle_unusual;
10414  continue;
10415  // int64 num_restarts = 24;
10416  case 24:
10417  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
10418  num_restarts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10419  CHK_(ptr);
10420  } else goto handle_unusual;
10421  continue;
10422  // int64 num_lp_iterations = 25;
10423  case 25:
10424  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
10425  num_lp_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10426  CHK_(ptr);
10427  } else goto handle_unusual;
10428  continue;
10429  // string logs = 26;
10430  case 26:
10431  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
10432  auto str = _internal_mutable_logs();
10433  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
10434  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.logs"));
10435  CHK_(ptr);
10436  } else goto handle_unusual;
10437  continue;
10438  default: {
10439  handle_unusual:
10440  if ((tag & 7) == 4 || tag == 0) {
10441  ctx->SetLastTag(tag);
10442  goto success;
10443  }
10444  ptr = UnknownFieldParse(tag,
10445  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
10446  ptr, ctx);
10447  CHK_(ptr != nullptr);
10448  continue;
10449  }
10450  } // switch
10451  } // while
10452 success:
10453  return ptr;
10454 failure:
10455  ptr = nullptr;
10456  goto success;
10457 #undef CHK_
10458 }
10459 
10460 ::PROTOBUF_NAMESPACE_ID::uint8* CpSolverResponse::_InternalSerialize(
10461  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
10462  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpSolverResponse)
10463  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10464  (void) cached_has_bits;
10465 
10466  // .operations_research.sat.CpSolverStatus status = 1;
10467  if (this->status() != 0) {
10468  target = stream->EnsureSpace(target);
10469  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
10470  1, this->_internal_status(), target);
10471  }
10472 
10473  // repeated int64 solution = 2;
10474  {
10475  int byte_size = _solution_cached_byte_size_.load(std::memory_order_relaxed);
10476  if (byte_size > 0) {
10477  target = stream->WriteInt64Packed(
10478  2, _internal_solution(), byte_size, target);
10479  }
10480  }
10481 
10482  // double objective_value = 3;
10483  if (!(this->objective_value() <= 0 && this->objective_value() >= 0)) {
10484  target = stream->EnsureSpace(target);
10485  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_objective_value(), target);
10486  }
10487 
10488  // double best_objective_bound = 4;
10489  if (!(this->best_objective_bound() <= 0 && this->best_objective_bound() >= 0)) {
10490  target = stream->EnsureSpace(target);
10491  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(4, this->_internal_best_objective_bound(), target);
10492  }
10493 
10494  // bool all_solutions_were_found = 5;
10495  if (this->all_solutions_were_found() != 0) {
10496  target = stream->EnsureSpace(target);
10497  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_all_solutions_were_found(), target);
10498  }
10499 
10500  // int64 num_booleans = 10;
10501  if (this->num_booleans() != 0) {
10502  target = stream->EnsureSpace(target);
10503  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(10, this->_internal_num_booleans(), target);
10504  }
10505 
10506  // int64 num_conflicts = 11;
10507  if (this->num_conflicts() != 0) {
10508  target = stream->EnsureSpace(target);
10509  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_num_conflicts(), target);
10510  }
10511 
10512  // int64 num_branches = 12;
10513  if (this->num_branches() != 0) {
10514  target = stream->EnsureSpace(target);
10515  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(12, this->_internal_num_branches(), target);
10516  }
10517 
10518  // int64 num_binary_propagations = 13;
10519  if (this->num_binary_propagations() != 0) {
10520  target = stream->EnsureSpace(target);
10521  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(13, this->_internal_num_binary_propagations(), target);
10522  }
10523 
10524  // int64 num_integer_propagations = 14;
10525  if (this->num_integer_propagations() != 0) {
10526  target = stream->EnsureSpace(target);
10527  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(14, this->_internal_num_integer_propagations(), target);
10528  }
10529 
10530  // double wall_time = 15;
10531  if (!(this->wall_time() <= 0 && this->wall_time() >= 0)) {
10532  target = stream->EnsureSpace(target);
10533  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_wall_time(), target);
10534  }
10535 
10536  // double user_time = 16;
10537  if (!(this->user_time() <= 0 && this->user_time() >= 0)) {
10538  target = stream->EnsureSpace(target);
10539  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_user_time(), target);
10540  }
10541 
10542  // double deterministic_time = 17;
10543  if (!(this->deterministic_time() <= 0 && this->deterministic_time() >= 0)) {
10544  target = stream->EnsureSpace(target);
10545  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(17, this->_internal_deterministic_time(), target);
10546  }
10547 
10548  // repeated int64 solution_lower_bounds = 18;
10549  {
10550  int byte_size = _solution_lower_bounds_cached_byte_size_.load(std::memory_order_relaxed);
10551  if (byte_size > 0) {
10552  target = stream->WriteInt64Packed(
10553  18, _internal_solution_lower_bounds(), byte_size, target);
10554  }
10555  }
10556 
10557  // repeated int64 solution_upper_bounds = 19;
10558  {
10559  int byte_size = _solution_upper_bounds_cached_byte_size_.load(std::memory_order_relaxed);
10560  if (byte_size > 0) {
10561  target = stream->WriteInt64Packed(
10562  19, _internal_solution_upper_bounds(), byte_size, target);
10563  }
10564  }
10565 
10566  // string solution_info = 20;
10567  if (this->solution_info().size() > 0) {
10568  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
10569  this->_internal_solution_info().data(), static_cast<int>(this->_internal_solution_info().length()),
10570  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
10571  "operations_research.sat.CpSolverResponse.solution_info");
10572  target = stream->WriteStringMaybeAliased(
10573  20, this->_internal_solution_info(), target);
10574  }
10575 
10576  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10577  for (unsigned int i = 0,
10578  n = static_cast<unsigned int>(this->_internal_tightened_variables_size()); i < n; i++) {
10579  target = stream->EnsureSpace(target);
10580  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10581  InternalWriteMessage(21, this->_internal_tightened_variables(i), target, stream);
10582  }
10583 
10584  // double primal_integral = 22;
10585  if (!(this->primal_integral() <= 0 && this->primal_integral() >= 0)) {
10586  target = stream->EnsureSpace(target);
10587  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_primal_integral(), target);
10588  }
10589 
10590  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10591  {
10592  int byte_size = _sufficient_assumptions_for_infeasibility_cached_byte_size_.load(std::memory_order_relaxed);
10593  if (byte_size > 0) {
10594  target = stream->WriteInt32Packed(
10595  23, _internal_sufficient_assumptions_for_infeasibility(), byte_size, target);
10596  }
10597  }
10598 
10599  // int64 num_restarts = 24;
10600  if (this->num_restarts() != 0) {
10601  target = stream->EnsureSpace(target);
10602  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(24, this->_internal_num_restarts(), target);
10603  }
10604 
10605  // int64 num_lp_iterations = 25;
10606  if (this->num_lp_iterations() != 0) {
10607  target = stream->EnsureSpace(target);
10608  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(25, this->_internal_num_lp_iterations(), target);
10609  }
10610 
10611  // string logs = 26;
10612  if (this->logs().size() > 0) {
10613  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
10614  this->_internal_logs().data(), static_cast<int>(this->_internal_logs().length()),
10615  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
10616  "operations_research.sat.CpSolverResponse.logs");
10617  target = stream->WriteStringMaybeAliased(
10618  26, this->_internal_logs(), target);
10619  }
10620 
10621  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10622  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
10623  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
10624  }
10625  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpSolverResponse)
10626  return target;
10627 }
10628 
10629 size_t CpSolverResponse::ByteSizeLong() const {
10630 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpSolverResponse)
10631  size_t total_size = 0;
10632 
10633  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10634  // Prevent compiler warnings about cached_has_bits being unused
10635  (void) cached_has_bits;
10636 
10637  // repeated int64 solution = 2;
10638  {
10639  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10640  Int64Size(this->solution_);
10641  if (data_size > 0) {
10642  total_size += 1 +
10643  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10644  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10645  }
10646  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10647  _solution_cached_byte_size_.store(cached_size,
10648  std::memory_order_relaxed);
10649  total_size += data_size;
10650  }
10651 
10652  // repeated int64 solution_lower_bounds = 18;
10653  {
10654  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10655  Int64Size(this->solution_lower_bounds_);
10656  if (data_size > 0) {
10657  total_size += 2 +
10658  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10659  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10660  }
10661  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10662  _solution_lower_bounds_cached_byte_size_.store(cached_size,
10663  std::memory_order_relaxed);
10664  total_size += data_size;
10665  }
10666 
10667  // repeated int64 solution_upper_bounds = 19;
10668  {
10669  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10670  Int64Size(this->solution_upper_bounds_);
10671  if (data_size > 0) {
10672  total_size += 2 +
10673  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10674  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10675  }
10676  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10677  _solution_upper_bounds_cached_byte_size_.store(cached_size,
10678  std::memory_order_relaxed);
10679  total_size += data_size;
10680  }
10681 
10682  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10683  total_size += 2UL * this->_internal_tightened_variables_size();
10684  for (const auto& msg : this->tightened_variables_) {
10685  total_size +=
10686  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10687  }
10688 
10689  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10690  {
10691  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10692  Int32Size(this->sufficient_assumptions_for_infeasibility_);
10693  if (data_size > 0) {
10694  total_size += 2 +
10695  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10696  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10697  }
10698  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10699  _sufficient_assumptions_for_infeasibility_cached_byte_size_.store(cached_size,
10700  std::memory_order_relaxed);
10701  total_size += data_size;
10702  }
10703 
10704  // string solution_info = 20;
10705  if (this->solution_info().size() > 0) {
10706  total_size += 2 +
10707  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10708  this->_internal_solution_info());
10709  }
10710 
10711  // string logs = 26;
10712  if (this->logs().size() > 0) {
10713  total_size += 2 +
10714  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10715  this->_internal_logs());
10716  }
10717 
10718  // double objective_value = 3;
10719  if (!(this->objective_value() <= 0 && this->objective_value() >= 0)) {
10720  total_size += 1 + 8;
10721  }
10722 
10723  // .operations_research.sat.CpSolverStatus status = 1;
10724  if (this->status() != 0) {
10725  total_size += 1 +
10726  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_status());
10727  }
10728 
10729  // bool all_solutions_were_found = 5;
10730  if (this->all_solutions_were_found() != 0) {
10731  total_size += 1 + 1;
10732  }
10733 
10734  // double best_objective_bound = 4;
10735  if (!(this->best_objective_bound() <= 0 && this->best_objective_bound() >= 0)) {
10736  total_size += 1 + 8;
10737  }
10738 
10739  // int64 num_booleans = 10;
10740  if (this->num_booleans() != 0) {
10741  total_size += 1 +
10742  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10743  this->_internal_num_booleans());
10744  }
10745 
10746  // int64 num_conflicts = 11;
10747  if (this->num_conflicts() != 0) {
10748  total_size += 1 +
10749  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10750  this->_internal_num_conflicts());
10751  }
10752 
10753  // int64 num_branches = 12;
10754  if (this->num_branches() != 0) {
10755  total_size += 1 +
10756  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10757  this->_internal_num_branches());
10758  }
10759 
10760  // int64 num_binary_propagations = 13;
10761  if (this->num_binary_propagations() != 0) {
10762  total_size += 1 +
10763  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10764  this->_internal_num_binary_propagations());
10765  }
10766 
10767  // int64 num_integer_propagations = 14;
10768  if (this->num_integer_propagations() != 0) {
10769  total_size += 1 +
10770  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10771  this->_internal_num_integer_propagations());
10772  }
10773 
10774  // double wall_time = 15;
10775  if (!(this->wall_time() <= 0 && this->wall_time() >= 0)) {
10776  total_size += 1 + 8;
10777  }
10778 
10779  // double user_time = 16;
10780  if (!(this->user_time() <= 0 && this->user_time() >= 0)) {
10781  total_size += 2 + 8;
10782  }
10783 
10784  // double deterministic_time = 17;
10785  if (!(this->deterministic_time() <= 0 && this->deterministic_time() >= 0)) {
10786  total_size += 2 + 8;
10787  }
10788 
10789  // double primal_integral = 22;
10790  if (!(this->primal_integral() <= 0 && this->primal_integral() >= 0)) {
10791  total_size += 2 + 8;
10792  }
10793 
10794  // int64 num_restarts = 24;
10795  if (this->num_restarts() != 0) {
10796  total_size += 2 +
10797  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10798  this->_internal_num_restarts());
10799  }
10800 
10801  // int64 num_lp_iterations = 25;
10802  if (this->num_lp_iterations() != 0) {
10803  total_size += 2 +
10804  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10805  this->_internal_num_lp_iterations());
10806  }
10807 
10808  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10809  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
10810  _internal_metadata_, total_size, &_cached_size_);
10811  }
10812  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
10813  SetCachedSize(cached_size);
10814  return total_size;
10815 }
10816 
10817 void CpSolverResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10818 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpSolverResponse)
10819  GOOGLE_DCHECK_NE(&from, this);
10820  const CpSolverResponse* source =
10821  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpSolverResponse>(
10822  &from);
10823  if (source == nullptr) {
10824  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpSolverResponse)
10825  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
10826  } else {
10827  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpSolverResponse)
10828  MergeFrom(*source);
10829  }
10830 }
10831 
10832 void CpSolverResponse::MergeFrom(const CpSolverResponse& from) {
10833 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpSolverResponse)
10834  GOOGLE_DCHECK_NE(&from, this);
10835  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10836  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10837  (void) cached_has_bits;
10838 
10839  solution_.MergeFrom(from.solution_);
10840  solution_lower_bounds_.MergeFrom(from.solution_lower_bounds_);
10841  solution_upper_bounds_.MergeFrom(from.solution_upper_bounds_);
10842  tightened_variables_.MergeFrom(from.tightened_variables_);
10843  sufficient_assumptions_for_infeasibility_.MergeFrom(from.sufficient_assumptions_for_infeasibility_);
10844  if (from.solution_info().size() > 0) {
10845  _internal_set_solution_info(from._internal_solution_info());
10846  }
10847  if (from.logs().size() > 0) {
10848  _internal_set_logs(from._internal_logs());
10849  }
10850  if (!(from.objective_value() <= 0 && from.objective_value() >= 0)) {
10851  _internal_set_objective_value(from._internal_objective_value());
10852  }
10853  if (from.status() != 0) {
10854  _internal_set_status(from._internal_status());
10855  }
10856  if (from.all_solutions_were_found() != 0) {
10857  _internal_set_all_solutions_were_found(from._internal_all_solutions_were_found());
10858  }
10859  if (!(from.best_objective_bound() <= 0 && from.best_objective_bound() >= 0)) {
10860  _internal_set_best_objective_bound(from._internal_best_objective_bound());
10861  }
10862  if (from.num_booleans() != 0) {
10863  _internal_set_num_booleans(from._internal_num_booleans());
10864  }
10865  if (from.num_conflicts() != 0) {
10866  _internal_set_num_conflicts(from._internal_num_conflicts());
10867  }
10868  if (from.num_branches() != 0) {
10869  _internal_set_num_branches(from._internal_num_branches());
10870  }
10871  if (from.num_binary_propagations() != 0) {
10872  _internal_set_num_binary_propagations(from._internal_num_binary_propagations());
10873  }
10874  if (from.num_integer_propagations() != 0) {
10875  _internal_set_num_integer_propagations(from._internal_num_integer_propagations());
10876  }
10877  if (!(from.wall_time() <= 0 && from.wall_time() >= 0)) {
10878  _internal_set_wall_time(from._internal_wall_time());
10879  }
10880  if (!(from.user_time() <= 0 && from.user_time() >= 0)) {
10881  _internal_set_user_time(from._internal_user_time());
10882  }
10883  if (!(from.deterministic_time() <= 0 && from.deterministic_time() >= 0)) {
10884  _internal_set_deterministic_time(from._internal_deterministic_time());
10885  }
10886  if (!(from.primal_integral() <= 0 && from.primal_integral() >= 0)) {
10887  _internal_set_primal_integral(from._internal_primal_integral());
10888  }
10889  if (from.num_restarts() != 0) {
10890  _internal_set_num_restarts(from._internal_num_restarts());
10891  }
10892  if (from.num_lp_iterations() != 0) {
10893  _internal_set_num_lp_iterations(from._internal_num_lp_iterations());
10894  }
10895 }
10896 
10897 void CpSolverResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10898 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpSolverResponse)
10899  if (&from == this) return;
10900  Clear();
10901  MergeFrom(from);
10902 }
10903 
10904 void CpSolverResponse::CopyFrom(const CpSolverResponse& from) {
10905 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpSolverResponse)
10906  if (&from == this) return;
10907  Clear();
10908  MergeFrom(from);
10909 }
10910 
10911 bool CpSolverResponse::IsInitialized() const {
10912  return true;
10913 }
10914 
10915 void CpSolverResponse::InternalSwap(CpSolverResponse* other) {
10916  using std::swap;
10917  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
10918  solution_.InternalSwap(&other->solution_);
10919  solution_lower_bounds_.InternalSwap(&other->solution_lower_bounds_);
10920  solution_upper_bounds_.InternalSwap(&other->solution_upper_bounds_);
10921  tightened_variables_.InternalSwap(&other->tightened_variables_);
10922  sufficient_assumptions_for_infeasibility_.InternalSwap(&other->sufficient_assumptions_for_infeasibility_);
10923  solution_info_.Swap(&other->solution_info_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
10924  logs_.Swap(&other->logs_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
10925  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
10926  PROTOBUF_FIELD_OFFSET(CpSolverResponse, num_lp_iterations_)
10927  + sizeof(CpSolverResponse::num_lp_iterations_)
10928  - PROTOBUF_FIELD_OFFSET(CpSolverResponse, objective_value_)>(
10929  reinterpret_cast<char*>(&objective_value_),
10930  reinterpret_cast<char*>(&other->objective_value_));
10931 }
10932 
10933 ::PROTOBUF_NAMESPACE_ID::Metadata CpSolverResponse::GetMetadata() const {
10934  return GetMetadataStatic();
10935 }
10936 
10937 
10938 // @@protoc_insertion_point(namespace_scope)
10939 } // namespace sat
10940 } // namespace operations_research
10941 PROTOBUF_NAMESPACE_OPEN
10942 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena* arena) {
10943  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerVariableProto >(arena);
10944 }
10945 template<> PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena* arena) {
10946  return Arena::CreateMessageInternal< ::operations_research::sat::BoolArgumentProto >(arena);
10947 }
10948 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerArgumentProto >(Arena* arena) {
10949  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerArgumentProto >(arena);
10950 }
10951 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena* arena) {
10952  return Arena::CreateMessageInternal< ::operations_research::sat::LinearExpressionProto >(arena);
10953 }
10954 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena* arena) {
10955  return Arena::CreateMessageInternal< ::operations_research::sat::LinearArgumentProto >(arena);
10956 }
10957 template<> PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena* arena) {
10958  return Arena::CreateMessageInternal< ::operations_research::sat::AllDifferentConstraintProto >(arena);
10959 }
10960 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena* arena) {
10961  return Arena::CreateMessageInternal< ::operations_research::sat::LinearConstraintProto >(arena);
10962 }
10963 template<> PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena* arena) {
10964  return Arena::CreateMessageInternal< ::operations_research::sat::ElementConstraintProto >(arena);
10965 }
10966 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena* arena) {
10967  return Arena::CreateMessageInternal< ::operations_research::sat::IntervalConstraintProto >(arena);
10968 }
10969 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena* arena) {
10970  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlapConstraintProto >(arena);
10971 }
10972 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena* arena) {
10973  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlap2DConstraintProto >(arena);
10974 }
10975 template<> PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena* arena) {
10976  return Arena::CreateMessageInternal< ::operations_research::sat::CumulativeConstraintProto >(arena);
10977 }
10978 template<> PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena* arena) {
10979  return Arena::CreateMessageInternal< ::operations_research::sat::ReservoirConstraintProto >(arena);
10980 }
10981 template<> PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena* arena) {
10982  return Arena::CreateMessageInternal< ::operations_research::sat::CircuitConstraintProto >(arena);
10983 }
10984 template<> PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena* arena) {
10985  return Arena::CreateMessageInternal< ::operations_research::sat::RoutesConstraintProto >(arena);
10986 }
10987 template<> PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena* arena) {
10988  return Arena::CreateMessageInternal< ::operations_research::sat::TableConstraintProto >(arena);
10989 }
10990 template<> PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena* arena) {
10991  return Arena::CreateMessageInternal< ::operations_research::sat::InverseConstraintProto >(arena);
10992 }
10993 template<> PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena* arena) {
10994  return Arena::CreateMessageInternal< ::operations_research::sat::AutomatonConstraintProto >(arena);
10995 }
10996 template<> PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena* arena) {
10997  return Arena::CreateMessageInternal< ::operations_research::sat::ConstraintProto >(arena);
10998 }
10999 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena* arena) {
11000  return Arena::CreateMessageInternal< ::operations_research::sat::CpObjectiveProto >(arena);
11001 }
11002 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena* arena) {
11003  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(arena);
11004 }
11005 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena* arena) {
11006  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto >(arena);
11007 }
11008 template<> PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment* Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena* arena) {
11009  return Arena::CreateMessageInternal< ::operations_research::sat::PartialVariableAssignment >(arena);
11010 }
11011 template<> PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto* Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena* arena) {
11012  return Arena::CreateMessageInternal< ::operations_research::sat::SparsePermutationProto >(arena);
11013 }
11014 template<> PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto* Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena* arena) {
11015  return Arena::CreateMessageInternal< ::operations_research::sat::DenseMatrixProto >(arena);
11016 }
11017 template<> PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto* Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena* arena) {
11018  return Arena::CreateMessageInternal< ::operations_research::sat::SymmetryProto >(arena);
11019 }
11020 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena* arena) {
11021  return Arena::CreateMessageInternal< ::operations_research::sat::CpModelProto >(arena);
11022 }
11023 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse* Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena* arena) {
11024  return Arena::CreateMessageInternal< ::operations_research::sat::CpSolverResponse >(arena);
11025 }
11026 PROTOBUF_NAMESPACE_CLOSE
11027 
11028 // @@protoc_insertion_point(global_scope)
11029 #include <google/protobuf/port_undef.inc>
const std::vector< IntVar * > vars_
Definition: alldiff_cst.cc:43
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< AllDifferentConstraintProto > _instance
Definition: cp_model.pb.cc:67
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< AutomatonConstraintProto > _instance
Definition: cp_model.pb.cc:115
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< BoolArgumentProto > _instance
Definition: cp_model.pb.cc:51
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CircuitConstraintProto > _instance
Definition: cp_model.pb.cc:99
static const ::operations_research::sat::IntegerArgumentProto & int_mod(const ConstraintProto *msg)
static const ::operations_research::sat::CumulativeConstraintProto & cumulative(const ConstraintProto *msg)
static const ::operations_research::sat::TableConstraintProto & table(const ConstraintProto *msg)
static const ::operations_research::sat::LinearArgumentProto & lin_max(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_min(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & bool_and(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_prod(const ConstraintProto *msg)
static const ::operations_research::sat::InverseConstraintProto & inverse(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & exactly_one(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_div(const ConstraintProto *msg)
static const ::operations_research::sat::LinearConstraintProto & linear(const ConstraintProto *msg)
static const ::operations_research::sat::RoutesConstraintProto & routes(const ConstraintProto *msg)
static const ::operations_research::sat::ElementConstraintProto & element(const ConstraintProto *msg)
static const ::operations_research::sat::ReservoirConstraintProto & reservoir(const ConstraintProto *msg)
static const ::operations_research::sat::AutomatonConstraintProto & automaton(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & bool_or(const ConstraintProto *msg)
static const ::operations_research::sat::CircuitConstraintProto & circuit(const ConstraintProto *msg)
static const ::operations_research::sat::NoOverlap2DConstraintProto & no_overlap_2d(const ConstraintProto *msg)
static const ::operations_research::sat::NoOverlapConstraintProto & no_overlap(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_max(const ConstraintProto *msg)
static const ::operations_research::sat::AllDifferentConstraintProto & all_diff(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & bool_xor(const ConstraintProto *msg)
static const ::operations_research::sat::LinearArgumentProto & lin_min(const ConstraintProto *msg)
static const ::operations_research::sat::IntervalConstraintProto & interval(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & at_most_one(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< ConstraintProto > _instance
Definition: cp_model.pb.cc:119
static const ::operations_research::sat::SymmetryProto & symmetry(const CpModelProto *msg)
static const ::operations_research::sat::PartialVariableAssignment & solution_hint(const CpModelProto *msg)
static const ::operations_research::sat::CpObjectiveProto & objective(const CpModelProto *msg)
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CpModelProto > _instance
Definition: cp_model.pb.cc:151
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CpObjectiveProto > _instance
Definition: cp_model.pb.cc:123
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CpSolverResponse > _instance
Definition: cp_model.pb.cc:155
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CumulativeConstraintProto > _instance
Definition: cp_model.pb.cc:91
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< DecisionStrategyProto_AffineTransformation > _instance
Definition: cp_model.pb.cc:127
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< DecisionStrategyProto > _instance
Definition: cp_model.pb.cc:131
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< DenseMatrixProto > _instance
Definition: cp_model.pb.cc:143
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< ElementConstraintProto > _instance
Definition: cp_model.pb.cc:75
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< IntegerArgumentProto > _instance
Definition: cp_model.pb.cc:55
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< IntegerVariableProto > _instance
Definition: cp_model.pb.cc:47
static const ::operations_research::sat::LinearExpressionProto & start_view(const IntervalConstraintProto *msg)
static const ::operations_research::sat::LinearExpressionProto & end_view(const IntervalConstraintProto *msg)
static const ::operations_research::sat::LinearExpressionProto & size_view(const IntervalConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< IntervalConstraintProto > _instance
Definition: cp_model.pb.cc:79
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< InverseConstraintProto > _instance
Definition: cp_model.pb.cc:111
static const ::operations_research::sat::LinearExpressionProto & target(const LinearArgumentProto *msg)
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< LinearArgumentProto > _instance
Definition: cp_model.pb.cc:63
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< LinearConstraintProto > _instance
Definition: cp_model.pb.cc:71
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< LinearExpressionProto > _instance
Definition: cp_model.pb.cc:59
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< NoOverlap2DConstraintProto > _instance
Definition: cp_model.pb.cc:87
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< NoOverlapConstraintProto > _instance
Definition: cp_model.pb.cc:83
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< PartialVariableAssignment > _instance
Definition: cp_model.pb.cc:135
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< ReservoirConstraintProto > _instance
Definition: cp_model.pb.cc:95
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< RoutesConstraintProto > _instance
Definition: cp_model.pb.cc:103
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< SparsePermutationProto > _instance
Definition: cp_model.pb.cc:139
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< SymmetryProto > _instance
Definition: cp_model.pb.cc:147
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< TableConstraintProto > _instance
Definition: cp_model.pb.cc:107
static void InitDefaultsscc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:352
PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse * Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:296
static void InitDefaultsscc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:458
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:282
static void InitDefaultsscc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:286
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_deps[1]
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto
#define CHK_(x)
PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:442
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:336
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:468
PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena *arena)
static void InitDefaultsscc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:378
static void InitDefaultsscc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:326
static void InitDefaultsscc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:419
static void InitDefaultsscc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:497
static void InitDefaultsscc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:432
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fcp_5fmodel_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase *const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_sccs[28]
static void InitDefaultsscc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:339
static void InitDefaultsscc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:313
PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:309
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 6 > scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:250
static void InitDefaultsscc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:172
PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:455
PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto * Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:269
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:362
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:548
PROTOBUF_NOINLINE ::operations_research::sat::IntegerArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntegerArgumentProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:429
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:169
static void InitDefaultsscc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:405
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[28]
Definition: cp_model.pb.cc:551
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:375
PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena *arena)
static void InitDefaultsscc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:365
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:553
static void InitDefaultsscc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:198
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:388
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:208
PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:481
static void InitDefaultsscc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:471
PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment * Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena *arena)
static void InitDefaultsscc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:445
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
Definition: cp_model.pb.cc:861
static bool dynamic_init_dummy_ortools_2fsat_2fcp_5fmodel_2eproto
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once
static void InitDefaultsscc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:523
PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena *arena)
static void InitDefaultsscc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:259
PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 16 > scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:221
static void InitDefaultsscc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:159
static void InitDefaultsscc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:538
PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:323
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena *arena)
static void InitDefaultsscc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:185
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 2 > scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:533
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:182
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:494
PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena *arena)
static void InitDefaultsscc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:392
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:520
PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:349
PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena *arena)
static void InitDefaultsscc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:240
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:402
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:415
static void InitDefaultsscc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:510
static void InitDefaultsscc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:484
static void InitDefaultsscc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:272
PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto * Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena *arena)
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:507
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3]
Definition: cp_model.pb.cc:552
static void InitDefaultsscc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:211
PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:195
static void InitDefaultsscc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:299
PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto * Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena *arena)
const std::string name
int64 value
IntVar * var
Definition: expr_array.cc:1858
unsigned int uint32
int int32
uint64_t uint64
unsigned char uint8
const int64 offset_
Definition: interval.cc:2076
class operations_research::sat::SparsePermutationProtoDefaultTypeInternal _SparsePermutationProto_default_instance_
Definition: cp_model.pb.h:135
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CpSolverStatus_descriptor()
class operations_research::sat::InverseConstraintProtoDefaultTypeInternal _InverseConstraintProto_default_instance_
Definition: cp_model.pb.h:108
class operations_research::sat::CpObjectiveProtoDefaultTypeInternal _CpObjectiveProto_default_instance_
Definition: cp_model.pb.h:78
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_DomainReductionStrategy_descriptor()
class operations_research::sat::LinearArgumentProtoDefaultTypeInternal _LinearArgumentProto_default_instance_
Definition: cp_model.pb.h:111
class operations_research::sat::IntegerArgumentProtoDefaultTypeInternal _IntegerArgumentProto_default_instance_
Definition: cp_model.pb.h:99
class operations_research::sat::IntegerVariableProtoDefaultTypeInternal _IntegerVariableProto_default_instance_
Definition: cp_model.pb.h:102
class operations_research::sat::CpModelProtoDefaultTypeInternal _CpModelProto_default_instance_
Definition: cp_model.pb.h:75
class operations_research::sat::DecisionStrategyProto_AffineTransformationDefaultTypeInternal _DecisionStrategyProto_AffineTransformation_default_instance_
Definition: cp_model.pb.h:90
class operations_research::sat::AllDifferentConstraintProtoDefaultTypeInternal _AllDifferentConstraintProto_default_instance_
Definition: cp_model.pb.h:60
class operations_research::sat::NoOverlap2DConstraintProtoDefaultTypeInternal _NoOverlap2DConstraintProto_default_instance_
Definition: cp_model.pb.h:120
class operations_research::sat::IntervalConstraintProtoDefaultTypeInternal _IntervalConstraintProto_default_instance_
Definition: cp_model.pb.h:105
class operations_research::sat::RoutesConstraintProtoDefaultTypeInternal _RoutesConstraintProto_default_instance_
Definition: cp_model.pb.h:132
class operations_research::sat::BoolArgumentProtoDefaultTypeInternal _BoolArgumentProto_default_instance_
Definition: cp_model.pb.h:66
class operations_research::sat::DecisionStrategyProtoDefaultTypeInternal _DecisionStrategyProto_default_instance_
Definition: cp_model.pb.h:87
class operations_research::sat::LinearConstraintProtoDefaultTypeInternal _LinearConstraintProto_default_instance_
Definition: cp_model.pb.h:114
class operations_research::sat::CpSolverResponseDefaultTypeInternal _CpSolverResponse_default_instance_
Definition: cp_model.pb.h:81
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_VariableSelectionStrategy_descriptor()
class operations_research::sat::NoOverlapConstraintProtoDefaultTypeInternal _NoOverlapConstraintProto_default_instance_
Definition: cp_model.pb.h:123
class operations_research::sat::ElementConstraintProtoDefaultTypeInternal _ElementConstraintProto_default_instance_
Definition: cp_model.pb.h:96
class operations_research::sat::SymmetryProtoDefaultTypeInternal _SymmetryProto_default_instance_
Definition: cp_model.pb.h:138
class operations_research::sat::AutomatonConstraintProtoDefaultTypeInternal _AutomatonConstraintProto_default_instance_
Definition: cp_model.pb.h:63
class operations_research::sat::LinearExpressionProtoDefaultTypeInternal _LinearExpressionProto_default_instance_
Definition: cp_model.pb.h:117
bool DecisionStrategyProto_VariableSelectionStrategy_IsValid(int value)
class operations_research::sat::DenseMatrixProtoDefaultTypeInternal _DenseMatrixProto_default_instance_
Definition: cp_model.pb.h:93
class operations_research::sat::PartialVariableAssignmentDefaultTypeInternal _PartialVariableAssignment_default_instance_
Definition: cp_model.pb.h:126
bool CpSolverStatus_IsValid(int value)
class operations_research::sat::CircuitConstraintProtoDefaultTypeInternal _CircuitConstraintProto_default_instance_
Definition: cp_model.pb.h:69
bool DecisionStrategyProto_DomainReductionStrategy_IsValid(int value)
class operations_research::sat::TableConstraintProtoDefaultTypeInternal _TableConstraintProto_default_instance_
Definition: cp_model.pb.h:141
class operations_research::sat::CumulativeConstraintProtoDefaultTypeInternal _CumulativeConstraintProto_default_instance_
Definition: cp_model.pb.h:84
class operations_research::sat::ConstraintProtoDefaultTypeInternal _ConstraintProto_default_instance_
Definition: cp_model.pb.h:72
class operations_research::sat::ReservoirConstraintProtoDefaultTypeInternal _ReservoirConstraintProto_default_instance_
Definition: cp_model.pb.h:129
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
int index
Definition: pack.cc:508
IntervalVar * interval
Definition: resource.cc:98
int64 capacity
IntVar *const objective_
Definition: search.cc:2951
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: cp_model.pb.h:54