OR-Tools  8.2
rcpsp_python_wrap.cc
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 4.0.2
4  *
5  * This file is not intended to be easily readable and contains a number of
6  * coding conventions designed to improve portability and efficiency. Do not make
7  * changes to this file unless you know what you are doing--modify the SWIG
8  * interface file instead.
9  * ----------------------------------------------------------------------------- */
10 
11 
12 #ifndef SWIGPYTHON
13 #define SWIGPYTHON
14 #endif
15 
16 #define SWIG_PYTHON_DIRECTOR_NO_VTABLE
17 
18 
19 #ifdef __cplusplus
20 /* SwigValueWrapper is described in swig.swg */
21 template<typename T> class SwigValueWrapper {
22  struct SwigMovePointer {
23  T *ptr;
24  SwigMovePointer(T *p) : ptr(p) { }
25  ~SwigMovePointer() { delete ptr; }
26  SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
27  } pointer;
28  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
29  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
30 public:
31  SwigValueWrapper() : pointer(0) { }
32  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
33  operator T&() const { return *pointer.ptr; }
34  T *operator&() { return pointer.ptr; }
35 };
36 
37 template <typename T> T SwigValueInit() {
38  return T();
39 }
40 #endif
41 
42 /* -----------------------------------------------------------------------------
43  * This section contains generic SWIG labels for method/variable
44  * declarations/attributes, and other compiler dependent labels.
45  * ----------------------------------------------------------------------------- */
46 
47 /* template workaround for compilers that cannot correctly implement the C++ standard */
48 #ifndef SWIGTEMPLATEDISAMBIGUATOR
49 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
50 # define SWIGTEMPLATEDISAMBIGUATOR template
51 # elif defined(__HP_aCC)
52 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
53 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
54 # define SWIGTEMPLATEDISAMBIGUATOR template
55 # else
56 # define SWIGTEMPLATEDISAMBIGUATOR
57 # endif
58 #endif
59 
60 /* inline attribute */
61 #ifndef SWIGINLINE
62 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
63 # define SWIGINLINE inline
64 # else
65 # define SWIGINLINE
66 # endif
67 #endif
68 
69 /* attribute recognised by some compilers to avoid 'unused' warnings */
70 #ifndef SWIGUNUSED
71 # if defined(__GNUC__)
72 # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
73 # define SWIGUNUSED __attribute__ ((__unused__))
74 # else
75 # define SWIGUNUSED
76 # endif
77 # elif defined(__ICC)
78 # define SWIGUNUSED __attribute__ ((__unused__))
79 # else
80 # define SWIGUNUSED
81 # endif
82 #endif
83 
84 #ifndef SWIG_MSC_UNSUPPRESS_4505
85 # if defined(_MSC_VER)
86 # pragma warning(disable : 4505) /* unreferenced local function has been removed */
87 # endif
88 #endif
89 
90 #ifndef SWIGUNUSEDPARM
91 # ifdef __cplusplus
92 # define SWIGUNUSEDPARM(p)
93 # else
94 # define SWIGUNUSEDPARM(p) p SWIGUNUSED
95 # endif
96 #endif
97 
98 /* internal SWIG method */
99 #ifndef SWIGINTERN
100 # define SWIGINTERN static SWIGUNUSED
101 #endif
102 
103 /* internal inline SWIG method */
104 #ifndef SWIGINTERNINLINE
105 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
106 #endif
107 
108 /* exporting methods */
109 #if defined(__GNUC__)
110 # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
111 # ifndef GCC_HASCLASSVISIBILITY
112 # define GCC_HASCLASSVISIBILITY
113 # endif
114 # endif
115 #endif
116 
117 #ifndef SWIGEXPORT
118 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
119 # if defined(STATIC_LINKED)
120 # define SWIGEXPORT
121 # else
122 # define SWIGEXPORT __declspec(dllexport)
123 # endif
124 # else
125 # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
126 # define SWIGEXPORT __attribute__ ((visibility("default")))
127 # else
128 # define SWIGEXPORT
129 # endif
130 # endif
131 #endif
132 
133 /* calling conventions for Windows */
134 #ifndef SWIGSTDCALL
135 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
136 # define SWIGSTDCALL __stdcall
137 # else
138 # define SWIGSTDCALL
139 # endif
140 #endif
141 
142 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
143 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
144 # define _CRT_SECURE_NO_DEPRECATE
145 #endif
146 
147 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
148 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
149 # define _SCL_SECURE_NO_DEPRECATE
150 #endif
151 
152 /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
153 #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
154 # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
155 #endif
156 
157 /* Intel's compiler complains if a variable which was never initialised is
158  * cast to void, which is a common idiom which we use to indicate that we
159  * are aware a variable isn't used. So we just silence that warning.
160  * See: https://github.com/swig/swig/issues/192 for more discussion.
161  */
162 #ifdef __INTEL_COMPILER
163 # pragma warning disable 592
164 #endif
165 
166 
167 #if defined(__GNUC__) && defined(_WIN32) && !defined(SWIG_PYTHON_NO_HYPOT_WORKAROUND)
168 /* Workaround for '::hypot' has not been declared', see https://bugs.python.org/issue11566 */
169 # include <math.h>
170 #endif
171 
172 #if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG)
173 /* Use debug wrappers with the Python release dll */
174 # undef _DEBUG
175 # include <Python.h>
176 # define _DEBUG 1
177 #else
178 # include <Python.h>
179 #endif
180 
181 /* -----------------------------------------------------------------------------
182  * swigrun.swg
183  *
184  * This file contains generic C API SWIG runtime support for pointer
185  * type checking.
186  * ----------------------------------------------------------------------------- */
187 
188 /* This should only be incremented when either the layout of swig_type_info changes,
189  or for whatever reason, the runtime changes incompatibly */
190 #define SWIG_RUNTIME_VERSION "4"
191 
192 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
193 #ifdef SWIG_TYPE_TABLE
194 # define SWIG_QUOTE_STRING(x) #x
195 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
196 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
197 #else
198 # define SWIG_TYPE_TABLE_NAME
199 #endif
200 
201 /*
202  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
203  creating a static or dynamic library from the SWIG runtime code.
204  In 99.9% of the cases, SWIG just needs to declare them as 'static'.
205 
206  But only do this if strictly necessary, ie, if you have problems
207  with your compiler or suchlike.
208 */
209 
210 #ifndef SWIGRUNTIME
211 # define SWIGRUNTIME SWIGINTERN
212 #endif
213 
214 #ifndef SWIGRUNTIMEINLINE
215 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
216 #endif
217 
218 /* Generic buffer size */
219 #ifndef SWIG_BUFFER_SIZE
220 # define SWIG_BUFFER_SIZE 1024
221 #endif
222 
223 /* Flags for pointer conversions */
224 #define SWIG_POINTER_DISOWN 0x1
225 #define SWIG_CAST_NEW_MEMORY 0x2
226 #define SWIG_POINTER_NO_NULL 0x4
227 
228 /* Flags for new pointer objects */
229 #define SWIG_POINTER_OWN 0x1
230 
231 
232 /*
233  Flags/methods for returning states.
234 
235  The SWIG conversion methods, as ConvertPtr, return an integer
236  that tells if the conversion was successful or not. And if not,
237  an error code can be returned (see swigerrors.swg for the codes).
238 
239  Use the following macros/flags to set or process the returning
240  states.
241 
242  In old versions of SWIG, code such as the following was usually written:
243 
244  if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
245  // success code
246  } else {
247  //fail code
248  }
249 
250  Now you can be more explicit:
251 
252  int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
253  if (SWIG_IsOK(res)) {
254  // success code
255  } else {
256  // fail code
257  }
258 
259  which is the same really, but now you can also do
260 
261  Type *ptr;
262  int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
263  if (SWIG_IsOK(res)) {
264  // success code
265  if (SWIG_IsNewObj(res) {
266  ...
267  delete *ptr;
268  } else {
269  ...
270  }
271  } else {
272  // fail code
273  }
274 
275  I.e., now SWIG_ConvertPtr can return new objects and you can
276  identify the case and take care of the deallocation. Of course that
277  also requires SWIG_ConvertPtr to return new result values, such as
278 
279  int SWIG_ConvertPtr(obj, ptr,...) {
280  if (<obj is ok>) {
281  if (<need new object>) {
282  *ptr = <ptr to new allocated object>;
283  return SWIG_NEWOBJ;
284  } else {
285  *ptr = <ptr to old object>;
286  return SWIG_OLDOBJ;
287  }
288  } else {
289  return SWIG_BADOBJ;
290  }
291  }
292 
293  Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
294  more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
295  SWIG errors code.
296 
297  Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
298  allows to return the 'cast rank', for example, if you have this
299 
300  int food(double)
301  int fooi(int);
302 
303  and you call
304 
305  food(1) // cast rank '1' (1 -> 1.0)
306  fooi(1) // cast rank '0'
307 
308  just use the SWIG_AddCast()/SWIG_CheckState()
309 */
310 
311 #define SWIG_OK (0)
312 #define SWIG_ERROR (-1)
313 #define SWIG_IsOK(r) (r >= 0)
314 #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError)
315 
316 /* The CastRankLimit says how many bits are used for the cast rank */
317 #define SWIG_CASTRANKLIMIT (1 << 8)
318 /* The NewMask denotes the object was created (using new/malloc) */
319 #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1)
320 /* The TmpMask is for in/out typemaps that use temporal objects */
321 #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1)
322 /* Simple returning values */
323 #define SWIG_BADOBJ (SWIG_ERROR)
324 #define SWIG_OLDOBJ (SWIG_OK)
325 #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK)
326 #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK)
327 /* Check, add and del mask methods */
328 #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
329 #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
330 #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
331 #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
332 #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
333 #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
334 
335 /* Cast-Rank Mode */
336 #if defined(SWIG_CASTRANK_MODE)
337 # ifndef SWIG_TypeRank
338 # define SWIG_TypeRank unsigned long
339 # endif
340 # ifndef SWIG_MAXCASTRANK /* Default cast allowed */
341 # define SWIG_MAXCASTRANK (2)
342 # endif
343 # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1)
344 # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK)
345 SWIGINTERNINLINE int SWIG_AddCast(int r) {
346  return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
347 }
349  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
350 }
351 #else /* no cast-rank mode */
352 # define SWIG_AddCast(r) (r)
353 # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
354 #endif
355 
356 
357 #include <string.h>
358 
359 #ifdef __cplusplus
360 extern "C" {
361 #endif
362 
363 typedef void *(*swig_converter_func)(void *, int *);
364 typedef struct swig_type_info *(*swig_dycast_func)(void **);
365 
366 /* Structure to store information on one type */
367 typedef struct swig_type_info {
368  const char *name; /* mangled name of this type */
369  const char *str; /* human readable name of this type */
370  swig_dycast_func dcast; /* dynamic cast function down a hierarchy */
371  struct swig_cast_info *cast; /* linked list of types that can cast into this type */
372  void *clientdata; /* language specific type data */
373  int owndata; /* flag if the structure owns the clientdata */
375 
376 /* Structure to store a type and conversion function used for casting */
377 typedef struct swig_cast_info {
378  swig_type_info *type; /* pointer to type that is equivalent to this type */
379  swig_converter_func converter; /* function to cast the void pointers */
380  struct swig_cast_info *next; /* pointer to next cast in linked list */
381  struct swig_cast_info *prev; /* pointer to the previous cast */
383 
384 /* Structure used to store module information
385  * Each module generates one structure like this, and the runtime collects
386  * all of these structures and stores them in a circularly linked list.*/
387 typedef struct swig_module_info {
388  swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */
389  size_t size; /* Number of types in this module */
390  struct swig_module_info *next; /* Pointer to next element in circularly linked list */
391  swig_type_info **type_initial; /* Array of initially generated type structures */
392  swig_cast_info **cast_initial; /* Array of initially generated casting structures */
393  void *clientdata; /* Language specific module data */
395 
396 /*
397  Compare two type names skipping the space characters, therefore
398  "char*" == "char *" and "Class<int>" == "Class<int >", etc.
399 
400  Return 0 when the two name types are equivalent, as in
401  strncmp, but skipping ' '.
402 */
403 SWIGRUNTIME int
404 SWIG_TypeNameComp(const char *f1, const char *l1,
405  const char *f2, const char *l2) {
406  for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
407  while ((*f1 == ' ') && (f1 != l1)) ++f1;
408  while ((*f2 == ' ') && (f2 != l2)) ++f2;
409  if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
410  }
411  return (int)((l1 - f1) - (l2 - f2));
412 }
413 
414 /*
415  Check type equivalence in a name list like <name1>|<name2>|...
416  Return 0 if equal, -1 if nb < tb, 1 if nb > tb
417 */
418 SWIGRUNTIME int
419 SWIG_TypeCmp(const char *nb, const char *tb) {
420  int equiv = 1;
421  const char* te = tb + strlen(tb);
422  const char* ne = nb;
423  while (equiv != 0 && *ne) {
424  for (nb = ne; *ne; ++ne) {
425  if (*ne == '|') break;
426  }
427  equiv = SWIG_TypeNameComp(nb, ne, tb, te);
428  if (*ne) ++ne;
429  }
430  return equiv;
431 }
432 
433 /*
434  Check type equivalence in a name list like <name1>|<name2>|...
435  Return 0 if not equal, 1 if equal
436 */
437 SWIGRUNTIME int
438 SWIG_TypeEquiv(const char *nb, const char *tb) {
439  return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
440 }
441 
442 /*
443  Check the typename
444 */
446 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
447  if (ty) {
448  swig_cast_info *iter = ty->cast;
449  while (iter) {
450  if (strcmp(iter->type->name, c) == 0) {
451  if (iter == ty->cast)
452  return iter;
453  /* Move iter to the top of the linked list */
454  iter->prev->next = iter->next;
455  if (iter->next)
456  iter->next->prev = iter->prev;
457  iter->next = ty->cast;
458  iter->prev = 0;
459  if (ty->cast) ty->cast->prev = iter;
460  ty->cast = iter;
461  return iter;
462  }
463  iter = iter->next;
464  }
465  }
466  return 0;
467 }
468 
469 /*
470  Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
471 */
474  if (ty) {
475  swig_cast_info *iter = ty->cast;
476  while (iter) {
477  if (iter->type == from) {
478  if (iter == ty->cast)
479  return iter;
480  /* Move iter to the top of the linked list */
481  iter->prev->next = iter->next;
482  if (iter->next)
483  iter->next->prev = iter->prev;
484  iter->next = ty->cast;
485  iter->prev = 0;
486  if (ty->cast) ty->cast->prev = iter;
487  ty->cast = iter;
488  return iter;
489  }
490  iter = iter->next;
491  }
492  }
493  return 0;
494 }
495 
496 /*
497  Cast a pointer up an inheritance hierarchy
498 */
499 SWIGRUNTIMEINLINE void *
500 SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
501  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
502 }
503 
504 /*
505  Dynamic pointer casting. Down an inheritance hierarchy
506 */
509  swig_type_info *lastty = ty;
510  if (!ty || !ty->dcast) return ty;
511  while (ty && (ty->dcast)) {
512  ty = (*ty->dcast)(ptr);
513  if (ty) lastty = ty;
514  }
515  return lastty;
516 }
517 
518 /*
519  Return the name associated with this type
520 */
521 SWIGRUNTIMEINLINE const char *
523  return ty->name;
524 }
525 
526 /*
527  Return the pretty name associated with this type,
528  that is an unmangled type name in a form presentable to the user.
529 */
530 SWIGRUNTIME const char *
532  /* The "str" field contains the equivalent pretty names of the
533  type, separated by vertical-bar characters. We choose
534  to print the last name, as it is often (?) the most
535  specific. */
536  if (!type) return NULL;
537  if (type->str != NULL) {
538  const char *last_name = type->str;
539  const char *s;
540  for (s = type->str; *s; s++)
541  if (*s == '|') last_name = s+1;
542  return last_name;
543  }
544  else
545  return type->name;
546 }
547 
548 /*
549  Set the clientdata field for a type
550 */
551 SWIGRUNTIME void
553  swig_cast_info *cast = ti->cast;
554  /* if (ti->clientdata == clientdata) return; */
555  ti->clientdata = clientdata;
556 
557  while (cast) {
558  if (!cast->converter) {
559  swig_type_info *tc = cast->type;
560  if (!tc->clientdata) {
562  }
563  }
564  cast = cast->next;
565  }
566 }
567 SWIGRUNTIME void
570  ti->owndata = 1;
571 }
572 
573 /*
574  Search for a swig_type_info structure only by mangled name
575  Search is a O(log #types)
576 
577  We start searching at module start, and finish searching when start == end.
578  Note: if start == end at the beginning of the function, we go all the way around
579  the circular list.
580 */
583  swig_module_info *end,
584  const char *name) {
585  swig_module_info *iter = start;
586  do {
587  if (iter->size) {
588  size_t l = 0;
589  size_t r = iter->size - 1;
590  do {
591  /* since l+r >= 0, we can (>> 1) instead (/ 2) */
592  size_t i = (l + r) >> 1;
593  const char *iname = iter->types[i]->name;
594  if (iname) {
595  int compare = strcmp(name, iname);
596  if (compare == 0) {
597  return iter->types[i];
598  } else if (compare < 0) {
599  if (i) {
600  r = i - 1;
601  } else {
602  break;
603  }
604  } else if (compare > 0) {
605  l = i + 1;
606  }
607  } else {
608  break; /* should never happen */
609  }
610  } while (l <= r);
611  }
612  iter = iter->next;
613  } while (iter != end);
614  return 0;
615 }
616 
617 /*
618  Search for a swig_type_info structure for either a mangled name or a human readable name.
619  It first searches the mangled names of the types, which is a O(log #types)
620  If a type is not found it then searches the human readable names, which is O(#types).
621 
622  We start searching at module start, and finish searching when start == end.
623  Note: if start == end at the beginning of the function, we go all the way around
624  the circular list.
625 */
628  swig_module_info *end,
629  const char *name) {
630  /* STEP 1: Search the name field using binary search */
631  swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
632  if (ret) {
633  return ret;
634  } else {
635  /* STEP 2: If the type hasn't been found, do a complete search
636  of the str field (the human readable name) */
637  swig_module_info *iter = start;
638  do {
639  size_t i = 0;
640  for (; i < iter->size; ++i) {
641  if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
642  return iter->types[i];
643  }
644  iter = iter->next;
645  } while (iter != end);
646  }
647 
648  /* neither found a match */
649  return 0;
650 }
651 
652 /*
653  Pack binary data into a string
654 */
655 SWIGRUNTIME char *
656 SWIG_PackData(char *c, void *ptr, size_t sz) {
657  static const char hex[17] = "0123456789abcdef";
658  const unsigned char *u = (unsigned char *) ptr;
659  const unsigned char *eu = u + sz;
660  for (; u != eu; ++u) {
661  unsigned char uu = *u;
662  *(c++) = hex[(uu & 0xf0) >> 4];
663  *(c++) = hex[uu & 0xf];
664  }
665  return c;
666 }
667 
668 /*
669  Unpack binary data from a string
670 */
671 SWIGRUNTIME const char *
672 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
673  unsigned char *u = (unsigned char *) ptr;
674  const unsigned char *eu = u + sz;
675  for (; u != eu; ++u) {
676  char d = *(c++);
677  unsigned char uu;
678  if ((d >= '0') && (d <= '9'))
679  uu = (unsigned char)((d - '0') << 4);
680  else if ((d >= 'a') && (d <= 'f'))
681  uu = (unsigned char)((d - ('a'-10)) << 4);
682  else
683  return (char *) 0;
684  d = *(c++);
685  if ((d >= '0') && (d <= '9'))
686  uu |= (unsigned char)(d - '0');
687  else if ((d >= 'a') && (d <= 'f'))
688  uu |= (unsigned char)(d - ('a'-10));
689  else
690  return (char *) 0;
691  *u = uu;
692  }
693  return c;
694 }
695 
696 /*
697  Pack 'void *' into a string buffer.
698 */
699 SWIGRUNTIME char *
700 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
701  char *r = buff;
702  if ((2*sizeof(void *) + 2) > bsz) return 0;
703  *(r++) = '_';
704  r = SWIG_PackData(r,&ptr,sizeof(void *));
705  if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
706  strcpy(r,name);
707  return buff;
708 }
709 
710 SWIGRUNTIME const char *
711 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
712  if (*c != '_') {
713  if (strcmp(c,"NULL") == 0) {
714  *ptr = (void *) 0;
715  return name;
716  } else {
717  return 0;
718  }
719  }
720  return SWIG_UnpackData(++c,ptr,sizeof(void *));
721 }
722 
723 SWIGRUNTIME char *
724 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
725  char *r = buff;
726  size_t lname = (name ? strlen(name) : 0);
727  if ((2*sz + 2 + lname) > bsz) return 0;
728  *(r++) = '_';
729  r = SWIG_PackData(r,ptr,sz);
730  if (lname) {
731  strncpy(r,name,lname+1);
732  } else {
733  *r = 0;
734  }
735  return buff;
736 }
737 
738 SWIGRUNTIME const char *
739 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
740  if (*c != '_') {
741  if (strcmp(c,"NULL") == 0) {
742  memset(ptr,0,sz);
743  return name;
744  } else {
745  return 0;
746  }
747  }
748  return SWIG_UnpackData(++c,ptr,sz);
749 }
750 
751 #ifdef __cplusplus
752 }
753 #endif
754 
755 /* Errors in SWIG */
756 #define SWIG_UnknownError -1
757 #define SWIG_IOError -2
758 #define SWIG_RuntimeError -3
759 #define SWIG_IndexError -4
760 #define SWIG_TypeError -5
761 #define SWIG_DivisionByZero -6
762 #define SWIG_OverflowError -7
763 #define SWIG_SyntaxError -8
764 #define SWIG_ValueError -9
765 #define SWIG_SystemError -10
766 #define SWIG_AttributeError -11
767 #define SWIG_MemoryError -12
768 #define SWIG_NullReferenceError -13
769 
770 
771 
772 /* Compatibility macros for Python 3 */
773 #if PY_VERSION_HEX >= 0x03000000
774 
775 #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type)
776 #define PyInt_Check(x) PyLong_Check(x)
777 #define PyInt_AsLong(x) PyLong_AsLong(x)
778 #define PyInt_FromLong(x) PyLong_FromLong(x)
779 #define PyInt_FromSize_t(x) PyLong_FromSize_t(x)
780 #define PyString_Check(name) PyBytes_Check(name)
781 #define PyString_FromString(x) PyUnicode_FromString(x)
782 #define PyString_Format(fmt, args) PyUnicode_Format(fmt, args)
783 #define PyString_AsString(str) PyBytes_AsString(str)
784 #define PyString_Size(str) PyBytes_Size(str)
785 #define PyString_InternFromString(key) PyUnicode_InternFromString(key)
786 #define Py_TPFLAGS_HAVE_CLASS Py_TPFLAGS_BASETYPE
787 #define PyString_AS_STRING(x) PyUnicode_AS_STRING(x)
788 #define _PyLong_FromSsize_t(x) PyLong_FromSsize_t(x)
789 
790 #endif
791 
792 #ifndef Py_TYPE
793 # define Py_TYPE(op) ((op)->ob_type)
794 #endif
795 
796 /* SWIG APIs for compatibility of both Python 2 & 3 */
797 
798 #if PY_VERSION_HEX >= 0x03000000
799 # define SWIG_Python_str_FromFormat PyUnicode_FromFormat
800 #else
801 # define SWIG_Python_str_FromFormat PyString_FromFormat
802 #endif
803 
804 
805 /* Warning: This function will allocate a new string in Python 3,
806  * so please call SWIG_Python_str_DelForPy3(x) to free the space.
807  */
808 SWIGINTERN char*
810 {
811 #if PY_VERSION_HEX >= 0x03030000
812  return (char *)PyUnicode_AsUTF8(str);
813 #elif PY_VERSION_HEX >= 0x03000000
814  char *newstr = 0;
815  str = PyUnicode_AsUTF8String(str);
816  if (str) {
817  char *cstr;
818  Py_ssize_t len;
819  if (PyBytes_AsStringAndSize(str, &cstr, &len) != -1) {
820  newstr = (char *) malloc(len+1);
821  if (newstr)
822  memcpy(newstr, cstr, len+1);
823  }
824  Py_XDECREF(str);
825  }
826  return newstr;
827 #else
828  return PyString_AsString(str);
829 #endif
830 }
831 
832 #if PY_VERSION_HEX >= 0x03030000 || PY_VERSION_HEX < 0x03000000
833 # define SWIG_Python_str_DelForPy3(x)
834 #else
835 # define SWIG_Python_str_DelForPy3(x) free( (void*) (x) )
836 #endif
837 
838 
839 SWIGINTERN PyObject*
841 {
842 #if PY_VERSION_HEX >= 0x03000000
843  return PyUnicode_FromString(c);
844 #else
845  return PyString_FromString(c);
846 #endif
847 }
848 
849 #ifndef PyObject_DEL
850 # define PyObject_DEL PyObject_Del
851 #endif
852 
853 // SWIGPY_USE_CAPSULE is no longer used within SWIG itself, but some user
854 // interface files check for it.
855 # define SWIGPY_USE_CAPSULE
856 # define SWIGPY_CAPSULE_NAME ("swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME)
857 
858 #if PY_VERSION_HEX < 0x03020000
859 #define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type)
860 #define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name)
861 #define Py_hash_t long
862 #endif
863 
864 /* -----------------------------------------------------------------------------
865  * error manipulation
866  * ----------------------------------------------------------------------------- */
867 
868 SWIGRUNTIME PyObject*
870  PyObject* type = 0;
871  switch(code) {
872  case SWIG_MemoryError:
873  type = PyExc_MemoryError;
874  break;
875  case SWIG_IOError:
876  type = PyExc_IOError;
877  break;
878  case SWIG_RuntimeError:
879  type = PyExc_RuntimeError;
880  break;
881  case SWIG_IndexError:
882  type = PyExc_IndexError;
883  break;
884  case SWIG_TypeError:
885  type = PyExc_TypeError;
886  break;
887  case SWIG_DivisionByZero:
888  type = PyExc_ZeroDivisionError;
889  break;
890  case SWIG_OverflowError:
891  type = PyExc_OverflowError;
892  break;
893  case SWIG_SyntaxError:
894  type = PyExc_SyntaxError;
895  break;
896  case SWIG_ValueError:
897  type = PyExc_ValueError;
898  break;
899  case SWIG_SystemError:
900  type = PyExc_SystemError;
901  break;
902  case SWIG_AttributeError:
903  type = PyExc_AttributeError;
904  break;
905  default:
906  type = PyExc_RuntimeError;
907  }
908  return type;
909 }
910 
911 
912 SWIGRUNTIME void
913 SWIG_Python_AddErrorMsg(const char* mesg)
914 {
915  PyObject *type = 0;
916  PyObject *value = 0;
917  PyObject *traceback = 0;
918 
919  if (PyErr_Occurred())
920  PyErr_Fetch(&type, &value, &traceback);
921  if (value) {
922  PyObject *old_str = PyObject_Str(value);
923  const char *tmp = SWIG_Python_str_AsChar(old_str);
924  PyErr_Clear();
925  Py_XINCREF(type);
926  if (tmp)
927  PyErr_Format(type, "%s %s", tmp, mesg);
928  else
929  PyErr_Format(type, "%s", mesg);
931  Py_DECREF(old_str);
932  Py_DECREF(value);
933  } else {
934  PyErr_SetString(PyExc_RuntimeError, mesg);
935  }
936 }
937 
938 SWIGRUNTIME int
940 {
941  PyObject *error;
942  if (obj)
943  return 0;
944  error = PyErr_Occurred();
945  return error && PyErr_GivenExceptionMatches(error, PyExc_TypeError);
946 }
947 
948 SWIGRUNTIME void
950 {
951  if (SWIG_Python_TypeErrorOccurred(NULL)) {
952  /* Use existing TypeError to preserve stacktrace and enhance with given message */
953  PyObject *newvalue;
954  PyObject *type = NULL, *value = NULL, *traceback = NULL;
955  PyErr_Fetch(&type, &value, &traceback);
956 #if PY_VERSION_HEX >= 0x03000000
957  newvalue = PyUnicode_FromFormat("%S\nAdditional information:\n%s", value, message);
958 #else
959  newvalue = PyString_FromFormat("%s\nAdditional information:\n%s", PyString_AsString(value), message);
960 #endif
961  Py_XDECREF(value);
962  PyErr_Restore(type, newvalue, traceback);
963  } else {
964  /* Raise TypeError using given message */
965  PyErr_SetString(PyExc_TypeError, message);
966  }
967 }
968 
969 #if defined(SWIG_PYTHON_NO_THREADS)
970 # if defined(SWIG_PYTHON_THREADS)
971 # undef SWIG_PYTHON_THREADS
972 # endif
973 #endif
974 #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
975 # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
976 # define SWIG_PYTHON_USE_GIL
977 # endif
978 # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
979 # ifndef SWIG_PYTHON_INITIALIZE_THREADS
980 # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads()
981 # endif
982 # ifdef __cplusplus /* C++ code */
983  class SWIG_Python_Thread_Block {
984  bool status;
985  PyGILState_STATE state;
986  public:
987  void end() { if (status) { PyGILState_Release(state); status = false;} }
988  SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
989  ~SWIG_Python_Thread_Block() { end(); }
990  };
991  class SWIG_Python_Thread_Allow {
992  bool status;
993  PyThreadState *save;
994  public:
995  void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
996  SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
997  ~SWIG_Python_Thread_Allow() { end(); }
998  };
999 # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block
1000 # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end()
1001 # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow
1002 # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end()
1003 # else /* C code */
1004 # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
1005 # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block)
1006 # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread()
1007 # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow)
1008 # endif
1009 # else /* Old thread way, not implemented, user must provide it */
1010 # if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
1011 # define SWIG_PYTHON_INITIALIZE_THREADS
1012 # endif
1013 # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
1014 # define SWIG_PYTHON_THREAD_BEGIN_BLOCK
1015 # endif
1016 # if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
1017 # define SWIG_PYTHON_THREAD_END_BLOCK
1018 # endif
1019 # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
1020 # define SWIG_PYTHON_THREAD_BEGIN_ALLOW
1021 # endif
1022 # if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
1023 # define SWIG_PYTHON_THREAD_END_ALLOW
1024 # endif
1025 # endif
1026 #else /* No thread support */
1027 # define SWIG_PYTHON_INITIALIZE_THREADS
1028 # define SWIG_PYTHON_THREAD_BEGIN_BLOCK
1029 # define SWIG_PYTHON_THREAD_END_BLOCK
1030 # define SWIG_PYTHON_THREAD_BEGIN_ALLOW
1031 # define SWIG_PYTHON_THREAD_END_ALLOW
1032 #endif
1033 
1034 /* -----------------------------------------------------------------------------
1035  * Python API portion that goes into the runtime
1036  * ----------------------------------------------------------------------------- */
1037 
1038 #ifdef __cplusplus
1039 extern "C" {
1040 #endif
1041 
1042 /* -----------------------------------------------------------------------------
1043  * Constant declarations
1044  * ----------------------------------------------------------------------------- */
1045 
1046 /* Constant Types */
1047 #define SWIG_PY_POINTER 4
1048 #define SWIG_PY_BINARY 5
1049 
1050 /* Constant information structure */
1051 typedef struct swig_const_info {
1052  int type;
1053  const char *name;
1054  long lvalue;
1055  double dvalue;
1056  void *pvalue;
1059 
1060 #ifdef __cplusplus
1061 }
1062 #endif
1063 
1064 
1065 /* -----------------------------------------------------------------------------
1066  * pyrun.swg
1067  *
1068  * This file contains the runtime support for Python modules
1069  * and includes code for managing global variables and pointer
1070  * type checking.
1071  *
1072  * ----------------------------------------------------------------------------- */
1073 
1074 #if PY_VERSION_HEX < 0x02070000 /* 2.7.0 */
1075 # error "This version of SWIG only supports Python >= 2.7"
1076 #endif
1077 
1078 #if PY_VERSION_HEX >= 0x03000000 && PY_VERSION_HEX < 0x03020000
1079 # error "This version of SWIG only supports Python 3 >= 3.2"
1080 #endif
1081 
1082 /* Common SWIG API */
1083 
1084 /* for raw pointers */
1085 #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
1086 #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags)
1087 #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
1088 
1089 #ifdef SWIGPYTHON_BUILTIN
1090 #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(self, ptr, type, flags)
1091 #else
1092 #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
1093 #endif
1094 
1095 #define SWIG_InternalNewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
1096 
1097 #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty)
1098 #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src)
1099 #define swig_owntype int
1100 
1101 /* for raw packed data */
1102 #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1103 #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
1104 
1105 /* for class or struct pointers */
1106 #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags)
1107 #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags)
1108 
1109 /* for C or C++ function pointers */
1110 #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
1111 #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(NULL, ptr, type, 0)
1112 
1113 /* for C++ member pointers, ie, member methods */
1114 #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1115 #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
1116 
1117 
1118 /* Runtime API */
1119 
1120 #define SWIG_GetModule(clientdata) SWIG_Python_GetModule(clientdata)
1121 #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer)
1122 #define SWIG_NewClientData(obj) SwigPyClientData_New(obj)
1123 
1124 #define SWIG_SetErrorObj SWIG_Python_SetErrorObj
1125 #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg
1126 #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code)
1127 #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg)
1128 #define SWIG_fail goto fail
1129 
1130 
1131 /* Runtime API implementation */
1132 
1133 /* Error manipulation */
1134 
1135 SWIGINTERN void
1136 SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
1138  PyErr_SetObject(errtype, obj);
1139  Py_DECREF(obj);
1141 }
1142 
1143 SWIGINTERN void
1144 SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
1146  PyErr_SetString(errtype, msg);
1148 }
1149 
1150 #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj)
1151 
1152 /* Set a constant value */
1153 
1154 #if defined(SWIGPYTHON_BUILTIN)
1155 
1156 SWIGINTERN void
1157 SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) {
1158  PyObject *s = PyString_InternFromString(key);
1159  PyList_Append(seq, s);
1160  Py_DECREF(s);
1161 }
1162 
1163 SWIGINTERN void
1164 SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) {
1165  PyDict_SetItemString(d, name, obj);
1166  Py_DECREF(obj);
1167  if (public_interface)
1168  SwigPyBuiltin_AddPublicSymbol(public_interface, name);
1169 }
1170 
1171 #else
1172 
1173 SWIGINTERN void
1174 SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {
1175  PyDict_SetItemString(d, name, obj);
1176  Py_DECREF(obj);
1177 }
1178 
1179 #endif
1180 
1181 /* Append a value to the result obj */
1182 
1183 SWIGINTERN PyObject*
1184 SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
1185  if (!result) {
1186  result = obj;
1187  } else if (result == Py_None) {
1188  Py_DECREF(result);
1189  result = obj;
1190  } else {
1191  if (!PyList_Check(result)) {
1192  PyObject *o2 = result;
1193  result = PyList_New(1);
1194  PyList_SetItem(result, 0, o2);
1195  }
1196  PyList_Append(result,obj);
1197  Py_DECREF(obj);
1198  }
1199  return result;
1200 }
1201 
1202 /* Unpack the argument tuple */
1203 
1204 SWIGINTERN Py_ssize_t
1205 SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
1206 {
1207  if (!args) {
1208  if (!min && !max) {
1209  return 1;
1210  } else {
1211  PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none",
1212  name, (min == max ? "" : "at least "), (int)min);
1213  return 0;
1214  }
1215  }
1216  if (!PyTuple_Check(args)) {
1217  if (min <= 1 && max >= 1) {
1218  Py_ssize_t i;
1219  objs[0] = args;
1220  for (i = 1; i < max; ++i) {
1221  objs[i] = 0;
1222  }
1223  return 2;
1224  }
1225  PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
1226  return 0;
1227  } else {
1228  Py_ssize_t l = PyTuple_GET_SIZE(args);
1229  if (l < min) {
1230  PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
1231  name, (min == max ? "" : "at least "), (int)min, (int)l);
1232  return 0;
1233  } else if (l > max) {
1234  PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
1235  name, (min == max ? "" : "at most "), (int)max, (int)l);
1236  return 0;
1237  } else {
1238  Py_ssize_t i;
1239  for (i = 0; i < l; ++i) {
1240  objs[i] = PyTuple_GET_ITEM(args, i);
1241  }
1242  for (; l < max; ++l) {
1243  objs[l] = 0;
1244  }
1245  return i + 1;
1246  }
1247  }
1248 }
1249 
1250 SWIGINTERN int
1251 SWIG_Python_CheckNoKeywords(PyObject *kwargs, const char *name) {
1252  int no_kwargs = 1;
1253  if (kwargs) {
1254  assert(PyDict_Check(kwargs));
1255  if (PyDict_Size(kwargs) > 0) {
1256  PyErr_Format(PyExc_TypeError, "%s() does not take keyword arguments", name);
1257  no_kwargs = 0;
1258  }
1259  }
1260  return no_kwargs;
1261 }
1262 
1263 /* A functor is a function object with one single object argument */
1264 #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL);
1265 
1266 /*
1267  Helper for static pointer initialization for both C and C++ code, for example
1268  static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...);
1269 */
1270 #ifdef __cplusplus
1271 #define SWIG_STATIC_POINTER(var) var
1272 #else
1273 #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var
1274 #endif
1275 
1276 /* -----------------------------------------------------------------------------
1277  * Pointer declarations
1278  * ----------------------------------------------------------------------------- */
1279 
1280 /* Flags for new pointer objects */
1281 #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1)
1282 #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)
1283 
1284 #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1)
1285 
1286 #define SWIG_BUILTIN_TP_INIT (SWIG_POINTER_OWN << 2)
1287 #define SWIG_BUILTIN_INIT (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN)
1288 
1289 #ifdef __cplusplus
1290 extern "C" {
1291 #endif
1292 
1293 /* The python void return value */
1294 
1295 SWIGRUNTIMEINLINE PyObject *
1297 {
1298  PyObject *none = Py_None;
1299  Py_INCREF(none);
1300  return none;
1301 }
1302 
1303 /* SwigPyClientData */
1304 
1305 typedef struct {
1306  PyObject *klass;
1307  PyObject *newraw;
1308  PyObject *newargs;
1309  PyObject *destroy;
1310  int delargs;
1311  int implicitconv;
1312  PyTypeObject *pytype;
1314 
1315 SWIGRUNTIMEINLINE int
1317 {
1319  int fail = data ? data->implicitconv : 0;
1320  if (fail)
1321  PyErr_SetString(PyExc_TypeError, "Implicit conversion is prohibited for explicit constructors.");
1322  return fail;
1323 }
1324 
1325 SWIGRUNTIMEINLINE PyObject *
1327  SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0;
1328  PyObject *klass = data ? data->klass : 0;
1329  return (klass ? klass : PyExc_RuntimeError);
1330 }
1331 
1332 
1334 SwigPyClientData_New(PyObject* obj)
1335 {
1336  if (!obj) {
1337  return 0;
1338  } else {
1340  /* the klass element */
1341  data->klass = obj;
1342  Py_INCREF(data->klass);
1343  /* the newraw method and newargs arguments used to create a new raw instance */
1344  if (PyClass_Check(obj)) {
1345  data->newraw = 0;
1346  data->newargs = obj;
1347  Py_INCREF(obj);
1348  } else {
1349  data->newraw = PyObject_GetAttrString(data->klass, "__new__");
1350  if (data->newraw) {
1351  Py_INCREF(data->newraw);
1352  data->newargs = PyTuple_New(1);
1353  PyTuple_SetItem(data->newargs, 0, obj);
1354  } else {
1355  data->newargs = obj;
1356  }
1357  Py_INCREF(data->newargs);
1358  }
1359  /* the destroy method, aka as the C++ delete method */
1360  data->destroy = PyObject_GetAttrString(data->klass, "__swig_destroy__");
1361  if (PyErr_Occurred()) {
1362  PyErr_Clear();
1363  data->destroy = 0;
1364  }
1365  if (data->destroy) {
1366  int flags;
1367  Py_INCREF(data->destroy);
1368  flags = PyCFunction_GET_FLAGS(data->destroy);
1369  data->delargs = !(flags & (METH_O));
1370  } else {
1371  data->delargs = 0;
1372  }
1373  data->implicitconv = 0;
1374  data->pytype = 0;
1375  return data;
1376  }
1377 }
1378 
1379 SWIGRUNTIME void
1381  Py_XDECREF(data->newraw);
1382  Py_XDECREF(data->newargs);
1383  Py_XDECREF(data->destroy);
1384 }
1385 
1386 /* =============== SwigPyObject =====================*/
1387 
1388 typedef struct {
1389  PyObject_HEAD
1390  void *ptr;
1391  swig_type_info *ty;
1392  int own;
1393  PyObject *next;
1394 #ifdef SWIGPYTHON_BUILTIN
1395  PyObject *dict;
1396 #endif
1397 } SwigPyObject;
1398 
1399 
1400 #ifdef SWIGPYTHON_BUILTIN
1401 
1402 SWIGRUNTIME PyObject *
1403 SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
1404 {
1405  SwigPyObject *sobj = (SwigPyObject *)v;
1406 
1407  if (!sobj->dict)
1408  sobj->dict = PyDict_New();
1409 
1410  Py_INCREF(sobj->dict);
1411  return sobj->dict;
1412 }
1413 
1414 #endif
1415 
1416 SWIGRUNTIME PyObject *
1418 {
1419  return PyLong_FromVoidPtr(v->ptr);
1420 }
1421 
1422 SWIGRUNTIME PyObject *
1423 SwigPyObject_format(const char* fmt, SwigPyObject *v)
1424 {
1425  PyObject *res = NULL;
1426  PyObject *args = PyTuple_New(1);
1427  if (args) {
1428  if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) {
1429  PyObject *ofmt = SWIG_Python_str_FromChar(fmt);
1430  if (ofmt) {
1431 #if PY_VERSION_HEX >= 0x03000000
1432  res = PyUnicode_Format(ofmt,args);
1433 #else
1434  res = PyString_Format(ofmt,args);
1435 #endif
1436  Py_DECREF(ofmt);
1437  }
1438  Py_DECREF(args);
1439  }
1440  }
1441  return res;
1442 }
1443 
1444 SWIGRUNTIME PyObject *
1446 {
1447  return SwigPyObject_format("%o",v);
1448 }
1449 
1450 SWIGRUNTIME PyObject *
1452 {
1453  return SwigPyObject_format("%x",v);
1454 }
1455 
1456 SWIGRUNTIME PyObject *
1458 {
1459  const char *name = SWIG_TypePrettyName(v->ty);
1460  PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", (name ? name : "unknown"), (void *)v);
1461  if (v->next) {
1462  PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next);
1463 # if PY_VERSION_HEX >= 0x03000000
1464  PyObject *joined = PyUnicode_Concat(repr, nrep);
1465  Py_DecRef(repr);
1466  Py_DecRef(nrep);
1467  repr = joined;
1468 # else
1469  PyString_ConcatAndDel(&repr,nrep);
1470 # endif
1471  }
1472  return repr;
1473 }
1474 
1475 /* We need a version taking two PyObject* parameters so it's a valid
1476  * PyCFunction to use in swigobject_methods[]. */
1477 SWIGRUNTIME PyObject *
1478 SwigPyObject_repr2(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
1479 {
1480  return SwigPyObject_repr((SwigPyObject*)v);
1481 }
1482 
1483 SWIGRUNTIME int
1485 {
1486  void *i = v->ptr;
1487  void *j = w->ptr;
1488  return (i < j) ? -1 : ((i > j) ? 1 : 0);
1489 }
1490 
1491 /* Added for Python 3.x, would it also be useful for Python 2.x? */
1492 SWIGRUNTIME PyObject*
1494 {
1495  PyObject* res;
1496  if( op != Py_EQ && op != Py_NE ) {
1497  Py_INCREF(Py_NotImplemented);
1498  return Py_NotImplemented;
1499  }
1500  res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
1501  return res;
1502 }
1503 
1504 
1505 SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void);
1506 
1507 #ifdef SWIGPYTHON_BUILTIN
1508 static swig_type_info *SwigPyObject_stype = 0;
1509 SWIGRUNTIME PyTypeObject*
1510 SwigPyObject_type(void) {
1511  SwigPyClientData *cd;
1512  assert(SwigPyObject_stype);
1513  cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
1514  assert(cd);
1515  assert(cd->pytype);
1516  return cd->pytype;
1517 }
1518 #else
1519 SWIGRUNTIME PyTypeObject*
1521  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyObject_TypeOnce();
1522  return type;
1523 }
1524 #endif
1525 
1527 SwigPyObject_Check(PyObject *op) {
1528 #ifdef SWIGPYTHON_BUILTIN
1529  PyTypeObject *target_tp = SwigPyObject_type();
1530  if (PyType_IsSubtype(op->ob_type, target_tp))
1531  return 1;
1532  return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0);
1533 #else
1534  return (Py_TYPE(op) == SwigPyObject_type())
1535  || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0);
1536 #endif
1537 }
1538 
1539 SWIGRUNTIME PyObject *
1540 SwigPyObject_New(void *ptr, swig_type_info *ty, int own);
1541 
1542 SWIGRUNTIME void
1544 {
1545  SwigPyObject *sobj = (SwigPyObject *) v;
1546  PyObject *next = sobj->next;
1547  if (sobj->own == SWIG_POINTER_OWN) {
1548  swig_type_info *ty = sobj->ty;
1549  SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
1550  PyObject *destroy = data ? data->destroy : 0;
1551  if (destroy) {
1552  /* destroy is always a VARARGS method */
1553  PyObject *res;
1554 
1555  /* PyObject_CallFunction() has the potential to silently drop
1556  the active exception. In cases of unnamed temporary
1557  variable or where we just finished iterating over a generator
1558  StopIteration will be active right now, and this needs to
1559  remain true upon return from SwigPyObject_dealloc. So save
1560  and restore. */
1561 
1562  PyObject *type = NULL, *value = NULL, *traceback = NULL;
1563  PyErr_Fetch(&type, &value, &traceback);
1564 
1565  if (data->delargs) {
1566  /* we need to create a temporary object to carry the destroy operation */
1567  PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
1568  res = SWIG_Python_CallFunctor(destroy, tmp);
1569  Py_DECREF(tmp);
1570  } else {
1571  PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
1572  PyObject *mself = PyCFunction_GET_SELF(destroy);
1573  res = ((*meth)(mself, v));
1574  }
1575  if (!res)
1576  PyErr_WriteUnraisable(destroy);
1577 
1578  PyErr_Restore(type, value, traceback);
1579 
1580  Py_XDECREF(res);
1581  }
1582 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
1583  else {
1584  const char *name = SWIG_TypePrettyName(ty);
1585  printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
1586  }
1587 #endif
1588  }
1589  Py_XDECREF(next);
1590  PyObject_DEL(v);
1591 }
1592 
1593 SWIGRUNTIME PyObject*
1594 SwigPyObject_append(PyObject* v, PyObject* next)
1595 {
1596  SwigPyObject *sobj = (SwigPyObject *) v;
1597  if (!SwigPyObject_Check(next)) {
1598  PyErr_SetString(PyExc_TypeError, "Attempt to append a non SwigPyObject");
1599  return NULL;
1600  }
1601  sobj->next = next;
1602  Py_INCREF(next);
1603  return SWIG_Py_Void();
1604 }
1605 
1606 SWIGRUNTIME PyObject*
1607 SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1608 {
1609  SwigPyObject *sobj = (SwigPyObject *) v;
1610  if (sobj->next) {
1611  Py_INCREF(sobj->next);
1612  return sobj->next;
1613  } else {
1614  return SWIG_Py_Void();
1615  }
1616 }
1617 
1618 SWIGINTERN PyObject*
1619 SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1620 {
1621  SwigPyObject *sobj = (SwigPyObject *)v;
1622  sobj->own = 0;
1623  return SWIG_Py_Void();
1624 }
1625 
1626 SWIGINTERN PyObject*
1627 SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1628 {
1629  SwigPyObject *sobj = (SwigPyObject *)v;
1630  sobj->own = SWIG_POINTER_OWN;
1631  return SWIG_Py_Void();
1632 }
1633 
1634 SWIGINTERN PyObject*
1635 SwigPyObject_own(PyObject *v, PyObject *args)
1636 {
1637  PyObject *val = 0;
1638  if (!PyArg_UnpackTuple(args, "own", 0, 1, &val)) {
1639  return NULL;
1640  } else {
1641  SwigPyObject *sobj = (SwigPyObject *)v;
1642  PyObject *obj = PyBool_FromLong(sobj->own);
1643  if (val) {
1644  if (PyObject_IsTrue(val)) {
1645  SwigPyObject_acquire(v,args);
1646  } else {
1647  SwigPyObject_disown(v,args);
1648  }
1649  }
1650  return obj;
1651  }
1652 }
1653 
1654 static PyMethodDef
1656  {"disown", SwigPyObject_disown, METH_NOARGS, "releases ownership of the pointer"},
1657  {"acquire", SwigPyObject_acquire, METH_NOARGS, "acquires ownership of the pointer"},
1658  {"own", SwigPyObject_own, METH_VARARGS, "returns/sets ownership of the pointer"},
1659  {"append", SwigPyObject_append, METH_O, "appends another 'this' object"},
1660  {"next", SwigPyObject_next, METH_NOARGS, "returns the next 'this' object"},
1661  {"__repr__",SwigPyObject_repr2, METH_NOARGS, "returns object representation"},
1662  {0, 0, 0, 0}
1663 };
1664 
1665 SWIGRUNTIME PyTypeObject*
1667  static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
1668 
1669  static PyNumberMethods SwigPyObject_as_number = {
1670  (binaryfunc)0, /*nb_add*/
1671  (binaryfunc)0, /*nb_subtract*/
1672  (binaryfunc)0, /*nb_multiply*/
1673  /* nb_divide removed in Python 3 */
1674 #if PY_VERSION_HEX < 0x03000000
1675  (binaryfunc)0, /*nb_divide*/
1676 #endif
1677  (binaryfunc)0, /*nb_remainder*/
1678  (binaryfunc)0, /*nb_divmod*/
1679  (ternaryfunc)0,/*nb_power*/
1680  (unaryfunc)0, /*nb_negative*/
1681  (unaryfunc)0, /*nb_positive*/
1682  (unaryfunc)0, /*nb_absolute*/
1683  (inquiry)0, /*nb_nonzero*/
1684  0, /*nb_invert*/
1685  0, /*nb_lshift*/
1686  0, /*nb_rshift*/
1687  0, /*nb_and*/
1688  0, /*nb_xor*/
1689  0, /*nb_or*/
1690 #if PY_VERSION_HEX < 0x03000000
1691  0, /*nb_coerce*/
1692 #endif
1693  (unaryfunc)SwigPyObject_long, /*nb_int*/
1694 #if PY_VERSION_HEX < 0x03000000
1695  (unaryfunc)SwigPyObject_long, /*nb_long*/
1696 #else
1697  0, /*nb_reserved*/
1698 #endif
1699  (unaryfunc)0, /*nb_float*/
1700 #if PY_VERSION_HEX < 0x03000000
1701  (unaryfunc)SwigPyObject_oct, /*nb_oct*/
1702  (unaryfunc)SwigPyObject_hex, /*nb_hex*/
1703 #endif
1704 #if PY_VERSION_HEX >= 0x03050000 /* 3.5 */
1705  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_matrix_multiply */
1706 #elif PY_VERSION_HEX >= 0x03000000 /* 3.0 */
1707  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */
1708 #else
1709  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
1710 #endif
1711  };
1712 
1713  static PyTypeObject swigpyobject_type;
1714  static int type_init = 0;
1715  if (!type_init) {
1716  const PyTypeObject tmp = {
1717 #if PY_VERSION_HEX >= 0x03000000
1718  PyVarObject_HEAD_INIT(NULL, 0)
1719 #else
1720  PyObject_HEAD_INIT(NULL)
1721  0, /* ob_size */
1722 #endif
1723  "SwigPyObject", /* tp_name */
1724  sizeof(SwigPyObject), /* tp_basicsize */
1725  0, /* tp_itemsize */
1726  (destructor)SwigPyObject_dealloc, /* tp_dealloc */
1727  0, /* tp_print */
1728  (getattrfunc)0, /* tp_getattr */
1729  (setattrfunc)0, /* tp_setattr */
1730 #if PY_VERSION_HEX >= 0x03000000
1731  0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */
1732 #else
1733  (cmpfunc)SwigPyObject_compare, /* tp_compare */
1734 #endif
1735  (reprfunc)SwigPyObject_repr, /* tp_repr */
1736  &SwigPyObject_as_number, /* tp_as_number */
1737  0, /* tp_as_sequence */
1738  0, /* tp_as_mapping */
1739  (hashfunc)0, /* tp_hash */
1740  (ternaryfunc)0, /* tp_call */
1741  0, /* tp_str */
1742  PyObject_GenericGetAttr, /* tp_getattro */
1743  0, /* tp_setattro */
1744  0, /* tp_as_buffer */
1745  Py_TPFLAGS_DEFAULT, /* tp_flags */
1746  swigobject_doc, /* tp_doc */
1747  0, /* tp_traverse */
1748  0, /* tp_clear */
1749  (richcmpfunc)SwigPyObject_richcompare,/* tp_richcompare */
1750  0, /* tp_weaklistoffset */
1751  0, /* tp_iter */
1752  0, /* tp_iternext */
1753  swigobject_methods, /* tp_methods */
1754  0, /* tp_members */
1755  0, /* tp_getset */
1756  0, /* tp_base */
1757  0, /* tp_dict */
1758  0, /* tp_descr_get */
1759  0, /* tp_descr_set */
1760  0, /* tp_dictoffset */
1761  0, /* tp_init */
1762  0, /* tp_alloc */
1763  0, /* tp_new */
1764  0, /* tp_free */
1765  0, /* tp_is_gc */
1766  0, /* tp_bases */
1767  0, /* tp_mro */
1768  0, /* tp_cache */
1769  0, /* tp_subclasses */
1770  0, /* tp_weaklist */
1771  0, /* tp_del */
1772  0, /* tp_version_tag */
1773 #if PY_VERSION_HEX >= 0x03040000
1774  0, /* tp_finalize */
1775 #endif
1776 #if PY_VERSION_HEX >= 0x03080000
1777  0, /* tp_vectorcall */
1778 #endif
1779 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
1780  0, /* tp_print */
1781 #endif
1782 #ifdef COUNT_ALLOCS
1783  0, /* tp_allocs */
1784  0, /* tp_frees */
1785  0, /* tp_maxalloc */
1786  0, /* tp_prev */
1787  0 /* tp_next */
1788 #endif
1789  };
1790  swigpyobject_type = tmp;
1791  type_init = 1;
1792  if (PyType_Ready(&swigpyobject_type) < 0)
1793  return NULL;
1794  }
1795  return &swigpyobject_type;
1796 }
1797 
1798 SWIGRUNTIME PyObject *
1799 SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
1800 {
1801  SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type());
1802  if (sobj) {
1803  sobj->ptr = ptr;
1804  sobj->ty = ty;
1805  sobj->own = own;
1806  sobj->next = 0;
1807  }
1808  return (PyObject *)sobj;
1809 }
1810 
1811 /* -----------------------------------------------------------------------------
1812  * Implements a simple Swig Packed type, and use it instead of string
1813  * ----------------------------------------------------------------------------- */
1814 
1815 typedef struct {
1816  PyObject_HEAD
1817  void *pack;
1818  swig_type_info *ty;
1819  size_t size;
1820 } SwigPyPacked;
1821 
1822 SWIGRUNTIME PyObject *
1824 {
1825  char result[SWIG_BUFFER_SIZE];
1826  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
1827  return SWIG_Python_str_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
1828  } else {
1829  return SWIG_Python_str_FromFormat("<Swig Packed %s>", v->ty->name);
1830  }
1831 }
1832 
1833 SWIGRUNTIME PyObject *
1835 {
1836  char result[SWIG_BUFFER_SIZE];
1837  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
1838  return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name);
1839  } else {
1840  return SWIG_Python_str_FromChar(v->ty->name);
1841  }
1842 }
1843 
1844 SWIGRUNTIME int
1846 {
1847  size_t i = v->size;
1848  size_t j = w->size;
1849  int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
1850  return s ? s : strncmp((const char *)v->pack, (const char *)w->pack, 2*v->size);
1851 }
1852 
1853 SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void);
1854 
1855 SWIGRUNTIME PyTypeObject*
1857  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyPacked_TypeOnce();
1858  return type;
1859 }
1860 
1862 SwigPyPacked_Check(PyObject *op) {
1863  return ((op)->ob_type == SwigPyPacked_TypeOnce())
1864  || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0);
1865 }
1866 
1867 SWIGRUNTIME void
1869 {
1870  if (SwigPyPacked_Check(v)) {
1871  SwigPyPacked *sobj = (SwigPyPacked *) v;
1872  free(sobj->pack);
1873  }
1874  PyObject_DEL(v);
1875 }
1876 
1877 SWIGRUNTIME PyTypeObject*
1879  static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
1880  static PyTypeObject swigpypacked_type;
1881  static int type_init = 0;
1882  if (!type_init) {
1883  const PyTypeObject tmp = {
1884 #if PY_VERSION_HEX>=0x03000000
1885  PyVarObject_HEAD_INIT(NULL, 0)
1886 #else
1887  PyObject_HEAD_INIT(NULL)
1888  0, /* ob_size */
1889 #endif
1890  "SwigPyPacked", /* tp_name */
1891  sizeof(SwigPyPacked), /* tp_basicsize */
1892  0, /* tp_itemsize */
1893  (destructor)SwigPyPacked_dealloc, /* tp_dealloc */
1894  0, /* tp_print */
1895  (getattrfunc)0, /* tp_getattr */
1896  (setattrfunc)0, /* tp_setattr */
1897 #if PY_VERSION_HEX>=0x03000000
1898  0, /* tp_reserved in 3.0.1 */
1899 #else
1900  (cmpfunc)SwigPyPacked_compare, /* tp_compare */
1901 #endif
1902  (reprfunc)SwigPyPacked_repr, /* tp_repr */
1903  0, /* tp_as_number */
1904  0, /* tp_as_sequence */
1905  0, /* tp_as_mapping */
1906  (hashfunc)0, /* tp_hash */
1907  (ternaryfunc)0, /* tp_call */
1908  (reprfunc)SwigPyPacked_str, /* tp_str */
1909  PyObject_GenericGetAttr, /* tp_getattro */
1910  0, /* tp_setattro */
1911  0, /* tp_as_buffer */
1912  Py_TPFLAGS_DEFAULT, /* tp_flags */
1913  swigpacked_doc, /* tp_doc */
1914  0, /* tp_traverse */
1915  0, /* tp_clear */
1916  0, /* tp_richcompare */
1917  0, /* tp_weaklistoffset */
1918  0, /* tp_iter */
1919  0, /* tp_iternext */
1920  0, /* tp_methods */
1921  0, /* tp_members */
1922  0, /* tp_getset */
1923  0, /* tp_base */
1924  0, /* tp_dict */
1925  0, /* tp_descr_get */
1926  0, /* tp_descr_set */
1927  0, /* tp_dictoffset */
1928  0, /* tp_init */
1929  0, /* tp_alloc */
1930  0, /* tp_new */
1931  0, /* tp_free */
1932  0, /* tp_is_gc */
1933  0, /* tp_bases */
1934  0, /* tp_mro */
1935  0, /* tp_cache */
1936  0, /* tp_subclasses */
1937  0, /* tp_weaklist */
1938  0, /* tp_del */
1939  0, /* tp_version_tag */
1940 #if PY_VERSION_HEX >= 0x03040000
1941  0, /* tp_finalize */
1942 #endif
1943 #if PY_VERSION_HEX >= 0x03080000
1944  0, /* tp_vectorcall */
1945 #endif
1946 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
1947  0, /* tp_print */
1948 #endif
1949 #ifdef COUNT_ALLOCS
1950  0, /* tp_allocs */
1951  0, /* tp_frees */
1952  0, /* tp_maxalloc */
1953  0, /* tp_prev */
1954  0 /* tp_next */
1955 #endif
1956  };
1957  swigpypacked_type = tmp;
1958  type_init = 1;
1959  if (PyType_Ready(&swigpypacked_type) < 0)
1960  return NULL;
1961  }
1962  return &swigpypacked_type;
1963 }
1964 
1965 SWIGRUNTIME PyObject *
1966 SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
1967 {
1968  SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type());
1969  if (sobj) {
1970  void *pack = malloc(size);
1971  if (pack) {
1972  memcpy(pack, ptr, size);
1973  sobj->pack = pack;
1974  sobj->ty = ty;
1975  sobj->size = size;
1976  } else {
1977  PyObject_DEL((PyObject *) sobj);
1978  sobj = 0;
1979  }
1980  }
1981  return (PyObject *) sobj;
1982 }
1983 
1985 SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
1986 {
1987  if (SwigPyPacked_Check(obj)) {
1988  SwigPyPacked *sobj = (SwigPyPacked *)obj;
1989  if (sobj->size != size) return 0;
1990  memcpy(ptr, sobj->pack, size);
1991  return sobj->ty;
1992  } else {
1993  return 0;
1994  }
1995 }
1996 
1997 /* -----------------------------------------------------------------------------
1998  * pointers/data manipulation
1999  * ----------------------------------------------------------------------------- */
2000 
2001 static PyObject *Swig_This_global = NULL;
2002 
2003 SWIGRUNTIME PyObject *
2005 {
2006  if (Swig_This_global == NULL)
2008  return Swig_This_global;
2009 }
2010 
2011 /* #define SWIG_PYTHON_SLOW_GETSET_THIS */
2012 
2013 /* TODO: I don't know how to implement the fast getset in Python 3 right now */
2014 #if PY_VERSION_HEX>=0x03000000
2015 #define SWIG_PYTHON_SLOW_GETSET_THIS
2016 #endif
2017 
2019 SWIG_Python_GetSwigThis(PyObject *pyobj)
2020 {
2021  PyObject *obj;
2022 
2023  if (SwigPyObject_Check(pyobj))
2024  return (SwigPyObject *) pyobj;
2025 
2026 #ifdef SWIGPYTHON_BUILTIN
2027  (void)obj;
2028 # ifdef PyWeakref_CheckProxy
2029  if (PyWeakref_CheckProxy(pyobj)) {
2030  pyobj = PyWeakref_GET_OBJECT(pyobj);
2031  if (pyobj && SwigPyObject_Check(pyobj))
2032  return (SwigPyObject*) pyobj;
2033  }
2034 # endif
2035  return NULL;
2036 #else
2037 
2038  obj = 0;
2039 
2040 #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2041  if (PyInstance_Check(pyobj)) {
2042  obj = _PyInstance_Lookup(pyobj, SWIG_This());
2043  } else {
2044  PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
2045  if (dictptr != NULL) {
2046  PyObject *dict = *dictptr;
2047  obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
2048  } else {
2049 #ifdef PyWeakref_CheckProxy
2050  if (PyWeakref_CheckProxy(pyobj)) {
2051  PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
2052  return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
2053  }
2054 #endif
2055  obj = PyObject_GetAttr(pyobj,SWIG_This());
2056  if (obj) {
2057  Py_DECREF(obj);
2058  } else {
2059  if (PyErr_Occurred()) PyErr_Clear();
2060  return 0;
2061  }
2062  }
2063  }
2064 #else
2065  obj = PyObject_GetAttr(pyobj,SWIG_This());
2066  if (obj) {
2067  Py_DECREF(obj);
2068  } else {
2069  if (PyErr_Occurred()) PyErr_Clear();
2070  return 0;
2071  }
2072 #endif
2073  if (obj && !SwigPyObject_Check(obj)) {
2074  /* a PyObject is called 'this', try to get the 'real this'
2075  SwigPyObject from it */
2076  return SWIG_Python_GetSwigThis(obj);
2077  }
2078  return (SwigPyObject *)obj;
2079 #endif
2080 }
2081 
2082 /* Acquire a pointer value */
2083 
2084 SWIGRUNTIME int
2085 SWIG_Python_AcquirePtr(PyObject *obj, int own) {
2086  if (own == SWIG_POINTER_OWN) {
2088  if (sobj) {
2089  int oldown = sobj->own;
2090  sobj->own = own;
2091  return oldown;
2092  }
2093  }
2094  return 0;
2095 }
2096 
2097 /* Convert a pointer value */
2098 
2099 SWIGRUNTIME int
2100 SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
2101  int res;
2102  SwigPyObject *sobj;
2103  int implicit_conv = (flags & SWIG_POINTER_IMPLICIT_CONV) != 0;
2104 
2105  if (!obj)
2106  return SWIG_ERROR;
2107  if (obj == Py_None && !implicit_conv) {
2108  if (ptr)
2109  *ptr = 0;
2111  }
2112 
2113  res = SWIG_ERROR;
2114 
2115  sobj = SWIG_Python_GetSwigThis(obj);
2116  if (own)
2117  *own = 0;
2118  while (sobj) {
2119  void *vptr = sobj->ptr;
2120  if (ty) {
2121  swig_type_info *to = sobj->ty;
2122  if (to == ty) {
2123  /* no type cast needed */
2124  if (ptr) *ptr = vptr;
2125  break;
2126  } else {
2127  swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
2128  if (!tc) {
2129  sobj = (SwigPyObject *)sobj->next;
2130  } else {
2131  if (ptr) {
2132  int newmemory = 0;
2133  *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
2134  if (newmemory == SWIG_CAST_NEW_MEMORY) {
2135  assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
2136  if (own)
2137  *own = *own | SWIG_CAST_NEW_MEMORY;
2138  }
2139  }
2140  break;
2141  }
2142  }
2143  } else {
2144  if (ptr) *ptr = vptr;
2145  break;
2146  }
2147  }
2148  if (sobj) {
2149  if (own)
2150  *own = *own | sobj->own;
2151  if (flags & SWIG_POINTER_DISOWN) {
2152  sobj->own = 0;
2153  }
2154  res = SWIG_OK;
2155  } else {
2156  if (implicit_conv) {
2157  SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
2158  if (data && !data->implicitconv) {
2159  PyObject *klass = data->klass;
2160  if (klass) {
2161  PyObject *impconv;
2162  data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
2163  impconv = SWIG_Python_CallFunctor(klass, obj);
2164  data->implicitconv = 0;
2165  if (PyErr_Occurred()) {
2166  PyErr_Clear();
2167  impconv = 0;
2168  }
2169  if (impconv) {
2170  SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv);
2171  if (iobj) {
2172  void *vptr;
2173  res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
2174  if (SWIG_IsOK(res)) {
2175  if (ptr) {
2176  *ptr = vptr;
2177  /* transfer the ownership to 'ptr' */
2178  iobj->own = 0;
2179  res = SWIG_AddCast(res);
2180  res = SWIG_AddNewMask(res);
2181  } else {
2182  res = SWIG_AddCast(res);
2183  }
2184  }
2185  }
2186  Py_DECREF(impconv);
2187  }
2188  }
2189  }
2190  if (!SWIG_IsOK(res) && obj == Py_None) {
2191  if (ptr)
2192  *ptr = 0;
2193  if (PyErr_Occurred())
2194  PyErr_Clear();
2195  res = SWIG_OK;
2196  }
2197  }
2198  }
2199  return res;
2200 }
2201 
2202 /* Convert a function ptr value */
2203 
2204 SWIGRUNTIME int
2205 SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
2206  if (!PyCFunction_Check(obj)) {
2207  return SWIG_ConvertPtr(obj, ptr, ty, 0);
2208  } else {
2209  void *vptr = 0;
2210  swig_cast_info *tc;
2211 
2212  /* here we get the method pointer for callbacks */
2213  const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
2214  const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
2215  if (desc)
2216  desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
2217  if (!desc)
2218  return SWIG_ERROR;
2219  tc = SWIG_TypeCheck(desc,ty);
2220  if (tc) {
2221  int newmemory = 0;
2222  *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
2223  assert(!newmemory); /* newmemory handling not yet implemented */
2224  } else {
2225  return SWIG_ERROR;
2226  }
2227  return SWIG_OK;
2228  }
2229 }
2230 
2231 /* Convert a packed pointer value */
2232 
2233 SWIGRUNTIME int
2234 SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
2235  swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz);
2236  if (!to) return SWIG_ERROR;
2237  if (ty) {
2238  if (to != ty) {
2239  /* check type cast? */
2240  swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
2241  if (!tc) return SWIG_ERROR;
2242  }
2243  }
2244  return SWIG_OK;
2245 }
2246 
2247 /* -----------------------------------------------------------------------------
2248  * Create a new pointer object
2249  * ----------------------------------------------------------------------------- */
2250 
2251 /*
2252  Create a new instance object, without calling __init__, and set the
2253  'this' attribute.
2254 */
2255 
2256 SWIGRUNTIME PyObject*
2258 {
2259  PyObject *inst = 0;
2260  PyObject *newraw = data->newraw;
2261  if (newraw) {
2262  inst = PyObject_Call(newraw, data->newargs, NULL);
2263  if (inst) {
2264 #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2265  PyObject **dictptr = _PyObject_GetDictPtr(inst);
2266  if (dictptr != NULL) {
2267  PyObject *dict = *dictptr;
2268  if (dict == NULL) {
2269  dict = PyDict_New();
2270  *dictptr = dict;
2271  PyDict_SetItem(dict, SWIG_This(), swig_this);
2272  }
2273  }
2274 #else
2275  if (PyObject_SetAttr(inst, SWIG_This(), swig_this) == -1) {
2276  Py_DECREF(inst);
2277  inst = 0;
2278  }
2279 #endif
2280  }
2281  } else {
2282 #if PY_VERSION_HEX >= 0x03000000
2283  PyObject *empty_args = PyTuple_New(0);
2284  if (empty_args) {
2285  PyObject *empty_kwargs = PyDict_New();
2286  if (empty_kwargs) {
2287  inst = ((PyTypeObject *)data->newargs)->tp_new((PyTypeObject *)data->newargs, empty_args, empty_kwargs);
2288  Py_DECREF(empty_kwargs);
2289  if (inst) {
2290  if (PyObject_SetAttr(inst, SWIG_This(), swig_this) == -1) {
2291  Py_DECREF(inst);
2292  inst = 0;
2293  } else {
2294  Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG;
2295  }
2296  }
2297  }
2298  Py_DECREF(empty_args);
2299  }
2300 #else
2301  PyObject *dict = PyDict_New();
2302  if (dict) {
2303  PyDict_SetItem(dict, SWIG_This(), swig_this);
2304  inst = PyInstance_NewRaw(data->newargs, dict);
2305  Py_DECREF(dict);
2306  }
2307 #endif
2308  }
2309  return inst;
2310 }
2311 
2312 SWIGRUNTIME int
2313 SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
2314 {
2315 #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2316  PyObject **dictptr = _PyObject_GetDictPtr(inst);
2317  if (dictptr != NULL) {
2318  PyObject *dict = *dictptr;
2319  if (dict == NULL) {
2320  dict = PyDict_New();
2321  *dictptr = dict;
2322  }
2323  return PyDict_SetItem(dict, SWIG_This(), swig_this);
2324  }
2325 #endif
2326  return PyObject_SetAttr(inst, SWIG_This(), swig_this);
2327 }
2328 
2329 
2330 SWIGINTERN PyObject *
2332  PyObject *obj[2];
2333  if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) {
2334  return NULL;
2335  } else {
2336  SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
2337  if (sthis) {
2338  SwigPyObject_append((PyObject*) sthis, obj[1]);
2339  } else {
2340  if (SWIG_Python_SetSwigThis(obj[0], obj[1]) != 0)
2341  return NULL;
2342  }
2343  return SWIG_Py_Void();
2344  }
2345 }
2346 
2347 /* Create a new pointer object */
2348 
2349 SWIGRUNTIME PyObject *
2350 SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags) {
2351  SwigPyClientData *clientdata;
2352  PyObject * robj;
2353  int own;
2354 
2355  if (!ptr)
2356  return SWIG_Py_Void();
2357 
2358  clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0;
2359  own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
2360  if (clientdata && clientdata->pytype) {
2361  SwigPyObject *newobj;
2362  if (flags & SWIG_BUILTIN_TP_INIT) {
2363  newobj = (SwigPyObject*) self;
2364  if (newobj->ptr) {
2365  PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0);
2366  while (newobj->next)
2367  newobj = (SwigPyObject *) newobj->next;
2368  newobj->next = next_self;
2369  newobj = (SwigPyObject *)next_self;
2370 #ifdef SWIGPYTHON_BUILTIN
2371  newobj->dict = 0;
2372 #endif
2373  }
2374  } else {
2375  newobj = PyObject_New(SwigPyObject, clientdata->pytype);
2376 #ifdef SWIGPYTHON_BUILTIN
2377  newobj->dict = 0;
2378 #endif
2379  }
2380  if (newobj) {
2381  newobj->ptr = ptr;
2382  newobj->ty = type;
2383  newobj->own = own;
2384  newobj->next = 0;
2385  return (PyObject*) newobj;
2386  }
2387  return SWIG_Py_Void();
2388  }
2389 
2390  assert(!(flags & SWIG_BUILTIN_TP_INIT));
2391 
2392  robj = SwigPyObject_New(ptr, type, own);
2393  if (robj && clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
2394  PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
2395  Py_DECREF(robj);
2396  robj = inst;
2397  }
2398  return robj;
2399 }
2400 
2401 /* Create a new packed object */
2402 
2403 SWIGRUNTIMEINLINE PyObject *
2404 SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
2405  return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
2406 }
2407 
2408 /* -----------------------------------------------------------------------------*
2409  * Get type list
2410  * -----------------------------------------------------------------------------*/
2411 
2412 #ifdef SWIG_LINK_RUNTIME
2413 void *SWIG_ReturnGlobalTypeList(void *);
2414 #endif
2415 
2418  static void *type_pointer = (void *)0;
2419  /* first check if module already created */
2420  if (!type_pointer) {
2421 #ifdef SWIG_LINK_RUNTIME
2422  type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
2423 #else
2424  type_pointer = PyCapsule_Import(SWIGPY_CAPSULE_NAME, 0);
2425  if (PyErr_Occurred()) {
2426  PyErr_Clear();
2427  type_pointer = (void *)0;
2428  }
2429 #endif
2430  }
2431  return (swig_module_info *) type_pointer;
2432 }
2433 
2434 SWIGRUNTIME void
2436 {
2437  swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME);
2438  swig_type_info **types = swig_module->types;
2439  size_t i;
2440  for (i =0; i < swig_module->size; ++i) {
2441  swig_type_info *ty = types[i];
2442  if (ty->owndata) {
2444  if (data) SwigPyClientData_Del(data);
2445  }
2446  }
2447  Py_DECREF(SWIG_This());
2448  Swig_This_global = NULL;
2449 }
2450 
2451 SWIGRUNTIME void
2453 #if PY_VERSION_HEX >= 0x03000000
2454  /* Add a dummy module object into sys.modules */
2455  PyObject *module = PyImport_AddModule("swig_runtime_data" SWIG_RUNTIME_VERSION);
2456 #else
2457  static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */
2458  PyObject *module = Py_InitModule("swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table);
2459 #endif
2460  PyObject *pointer = PyCapsule_New((void *) swig_module, SWIGPY_CAPSULE_NAME, SWIG_Python_DestroyModule);
2461  if (pointer && module) {
2462  PyModule_AddObject(module, "type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer);
2463  } else {
2464  Py_XDECREF(pointer);
2465  }
2466 }
2467 
2468 /* The python cached type query */
2469 SWIGRUNTIME PyObject *
2471  static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New();
2472  return cache;
2473 }
2474 
2476 SWIG_Python_TypeQuery(const char *type)
2477 {
2478  PyObject *cache = SWIG_Python_TypeCache();
2479  PyObject *key = SWIG_Python_str_FromChar(type);
2480  PyObject *obj = PyDict_GetItem(cache, key);
2481  swig_type_info *descriptor;
2482  if (obj) {
2483  descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, NULL);
2484  } else {
2486  descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
2487  if (descriptor) {
2488  obj = PyCapsule_New((void*) descriptor, NULL, NULL);
2489  PyDict_SetItem(cache, key, obj);
2490  Py_DECREF(obj);
2491  }
2492  }
2493  Py_DECREF(key);
2494  return descriptor;
2495 }
2496 
2497 /*
2498  For backward compatibility only
2499 */
2500 #define SWIG_POINTER_EXCEPTION 0
2501 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg)
2502 #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags)
2503 
2504 SWIGRUNTIME int
2505 SWIG_Python_AddErrMesg(const char* mesg, int infront)
2506 {
2507  if (PyErr_Occurred()) {
2508  PyObject *type = 0;
2509  PyObject *value = 0;
2510  PyObject *traceback = 0;
2511  PyErr_Fetch(&type, &value, &traceback);
2512  if (value) {
2513  PyObject *old_str = PyObject_Str(value);
2514  const char *tmp = SWIG_Python_str_AsChar(old_str);
2515  const char *errmesg = tmp ? tmp : "Invalid error message";
2516  Py_XINCREF(type);
2517  PyErr_Clear();
2518  if (infront) {
2519  PyErr_Format(type, "%s %s", mesg, errmesg);
2520  } else {
2521  PyErr_Format(type, "%s %s", errmesg, mesg);
2522  }
2524  Py_DECREF(old_str);
2525  }
2526  return 1;
2527  } else {
2528  return 0;
2529  }
2530 }
2531 
2532 SWIGRUNTIME int
2534 {
2535  if (PyErr_Occurred()) {
2536  /* add information about failing argument */
2537  char mesg[256];
2538  PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
2539  return SWIG_Python_AddErrMesg(mesg, 1);
2540  } else {
2541  return 0;
2542  }
2543 }
2544 
2545 SWIGRUNTIMEINLINE const char *
2546 SwigPyObject_GetDesc(PyObject *self)
2547 {
2548  SwigPyObject *v = (SwigPyObject *)self;
2549  swig_type_info *ty = v ? v->ty : 0;
2550  return ty ? ty->str : "";
2551 }
2552 
2553 SWIGRUNTIME void
2554 SWIG_Python_TypeError(const char *type, PyObject *obj)
2555 {
2556  if (type) {
2557 #if defined(SWIG_COBJECT_TYPES)
2558  if (obj && SwigPyObject_Check(obj)) {
2559  const char *otype = (const char *) SwigPyObject_GetDesc(obj);
2560  if (otype) {
2561  PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received",
2562  type, otype);
2563  return;
2564  }
2565  } else
2566 #endif
2567  {
2568  const char *otype = (obj ? obj->ob_type->tp_name : 0);
2569  if (otype) {
2570  PyObject *str = PyObject_Str(obj);
2571  const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0;
2572  if (cstr) {
2573  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
2574  type, otype, cstr);
2576  } else {
2577  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
2578  type, otype);
2579  }
2580  Py_XDECREF(str);
2581  return;
2582  }
2583  }
2584  PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
2585  } else {
2586  PyErr_Format(PyExc_TypeError, "unexpected type is received");
2587  }
2588 }
2589 
2590 
2591 /* Convert a pointer value, signal an exception on a type mismatch */
2592 SWIGRUNTIME void *
2593 SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags) {
2594  void *result;
2595  if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
2596  PyErr_Clear();
2597 #if SWIG_POINTER_EXCEPTION
2598  if (flags) {
2600  SWIG_Python_ArgFail(argnum);
2601  }
2602 #endif
2603  }
2604  return result;
2605 }
2606 
2607 #ifdef SWIGPYTHON_BUILTIN
2608 SWIGRUNTIME int
2609 SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
2610  PyTypeObject *tp = obj->ob_type;
2611  PyObject *descr;
2612  PyObject *encoded_name;
2613  descrsetfunc f;
2614  int res = -1;
2615 
2616 # ifdef Py_USING_UNICODE
2617  if (PyString_Check(name)) {
2618  name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL);
2619  if (!name)
2620  return -1;
2621  } else if (!PyUnicode_Check(name))
2622 # else
2623  if (!PyString_Check(name))
2624 # endif
2625  {
2626  PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name);
2627  return -1;
2628  } else {
2629  Py_INCREF(name);
2630  }
2631 
2632  if (!tp->tp_dict) {
2633  if (PyType_Ready(tp) < 0)
2634  goto done;
2635  }
2636 
2637  descr = _PyType_Lookup(tp, name);
2638  f = NULL;
2639  if (descr != NULL)
2640  f = descr->ob_type->tp_descr_set;
2641  if (!f) {
2642  if (PyString_Check(name)) {
2643  encoded_name = name;
2644  Py_INCREF(name);
2645  } else {
2646  encoded_name = PyUnicode_AsUTF8String(name);
2647  if (!encoded_name)
2648  return -1;
2649  }
2650  PyErr_Format(PyExc_AttributeError, "'%.100s' object has no attribute '%.200s'", tp->tp_name, PyString_AsString(encoded_name));
2651  Py_DECREF(encoded_name);
2652  } else {
2653  res = f(descr, obj, value);
2654  }
2655 
2656  done:
2657  Py_DECREF(name);
2658  return res;
2659 }
2660 #endif
2661 
2662 
2663 #ifdef __cplusplus
2664 }
2665 #endif
2666 
2667 
2668 
2669 #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
2670 
2671 #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else
2672 
2673 
2674 
2675 #ifdef __cplusplus
2676 extern "C" {
2677 #endif
2678 
2679 /* Method creation and docstring support functions */
2680 
2681 SWIGINTERN PyMethodDef *SWIG_PythonGetProxyDoc(const char *name);
2682 SWIGINTERN PyObject *SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func);
2683 SWIGINTERN PyObject *SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func);
2684 
2685 #ifdef __cplusplus
2686 }
2687 #endif
2688 
2689 
2690  #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0)
2691 
2692 
2693 /* -------- TYPES TABLE (BEGIN) -------- */
2694 
2695 #define SWIGTYPE_p_char swig_types[0]
2696 #define SWIGTYPE_p_int swig_types[1]
2697 #define SWIGTYPE_p_long swig_types[2]
2698 #define SWIGTYPE_p_operations_research__data__rcpsp__RcpspParser swig_types[3]
2699 #define SWIGTYPE_p_short swig_types[4]
2700 #define SWIGTYPE_p_signed_char swig_types[5]
2701 #define SWIGTYPE_p_unsigned_char swig_types[6]
2702 #define SWIGTYPE_p_unsigned_int swig_types[7]
2703 #define SWIGTYPE_p_unsigned_long swig_types[8]
2704 #define SWIGTYPE_p_unsigned_short swig_types[9]
2706 static swig_module_info swig_module = {swig_types, 10, 0, 0, 0, 0};
2707 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
2708 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
2709 
2710 /* -------- TYPES TABLE (END) -------- */
2711 
2712 #ifdef SWIG_TypeQuery
2713 # undef SWIG_TypeQuery
2714 #endif
2715 #define SWIG_TypeQuery SWIG_Python_TypeQuery
2716 
2717 /*-----------------------------------------------
2718  @(target):= _pywraprcpsp.so
2719  ------------------------------------------------*/
2720 #if PY_VERSION_HEX >= 0x03000000
2721 # define SWIG_init PyInit__pywraprcpsp
2722 
2723 #else
2724 # define SWIG_init init_pywraprcpsp
2725 
2726 #endif
2727 #define SWIG_name "_pywraprcpsp"
2728 
2729 #define SWIGVERSION 0x040002
2730 #define SWIG_VERSION SWIGVERSION
2731 
2732 
2733 #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a))
2734 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a))
2735 
2736 
2737 #include <stdexcept>
2738 
2739 
2740 namespace swig {
2741  class SwigPtr_PyObject {
2742  protected:
2743  PyObject *_obj;
2744 
2745  public:
2747  {
2748  }
2749 
2751  {
2753  Py_XINCREF(_obj);
2755  }
2756 
2757  SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj)
2758  {
2759  if (initial_ref) {
2761  Py_XINCREF(_obj);
2763  }
2764  }
2765 
2767  {
2769  Py_XINCREF(item._obj);
2770  Py_XDECREF(_obj);
2771  _obj = item._obj;
2773  return *this;
2774  }
2775 
2777  {
2779  Py_XDECREF(_obj);
2781  }
2782 
2783  operator PyObject *() const
2784  {
2785  return _obj;
2786  }
2787 
2788  PyObject *operator->() const
2789  {
2790  return _obj;
2791  }
2792  };
2793 }
2794 
2795 
2796 namespace swig {
2797  struct SwigVar_PyObject : SwigPtr_PyObject {
2798  SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { }
2799 
2801  {
2802  Py_XDECREF(_obj);
2803  _obj = obj;
2804  return *this;
2805  }
2806  };
2807 }
2808 
2809 
2810 #include <cstdint>
2811 #include <string>
2812 #include <vector>
2813 
2814 #include "ortools/base/basictypes.h"
2815 
2816 
2817 #include <stdint.h> // Use the C99 official header
2818 
2819 
2820 #define SWIGWORDSIZE64
2821 #ifndef LONG_MAX
2822 #include <limits.h>
2823 #endif
2824 #if (__WORDSIZE == 32) || (LONG_MAX == INT_MAX)
2825 # error "SWIG wrapped code invalid in 32 bit architecture, regenerate code using -DSWIGWORDSIZE32"
2826 #endif
2827 
2828 
2829 #include <string>
2830 
2831 
2832 #include "ortools/base/python-swig.h"
2833 
2834 
2835 #include "ortools/data/rcpsp_parser.h"
2836 #include "ortools/data/rcpsp.pb.h"
2837 
2838 
2841 {
2842  static int init = 0;
2843  static swig_type_info* info = 0;
2844  if (!init) {
2845  info = SWIG_TypeQuery("_p_char");
2846  init = 1;
2847  }
2848  return info;
2849 }
2850 
2851 
2852 SWIGINTERN int
2853 SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
2854 {
2855 #if PY_VERSION_HEX>=0x03000000
2856 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
2857  if (PyBytes_Check(obj))
2858 #else
2859  if (PyUnicode_Check(obj))
2860 #endif
2861 #else
2862  if (PyString_Check(obj))
2863 #endif
2864  {
2865  char *cstr; Py_ssize_t len;
2866  int ret = SWIG_OK;
2867 #if PY_VERSION_HEX>=0x03000000
2868 #if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
2869  if (!alloc && cptr) {
2870  /* We can't allow converting without allocation, since the internal
2871  representation of string in Python 3 is UCS-2/UCS-4 but we require
2872  a UTF-8 representation.
2873  TODO(bhy) More detailed explanation */
2874  return SWIG_RuntimeError;
2875  }
2876  obj = PyUnicode_AsUTF8String(obj);
2877  if (!obj)
2878  return SWIG_TypeError;
2879  if (alloc)
2880  *alloc = SWIG_NEWOBJ;
2881 #endif
2882  if (PyBytes_AsStringAndSize(obj, &cstr, &len) == -1)
2883  return SWIG_TypeError;
2884 #else
2885  if (PyString_AsStringAndSize(obj, &cstr, &len) == -1)
2886  return SWIG_TypeError;
2887 #endif
2888  if (cptr) {
2889  if (alloc) {
2890  if (*alloc == SWIG_NEWOBJ) {
2891  *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
2892  *alloc = SWIG_NEWOBJ;
2893  } else {
2894  *cptr = cstr;
2895  *alloc = SWIG_OLDOBJ;
2896  }
2897  } else {
2898 #if PY_VERSION_HEX>=0x03000000
2899 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
2900  *cptr = PyBytes_AsString(obj);
2901 #else
2902  assert(0); /* Should never reach here with Unicode strings in Python 3 */
2903 #endif
2904 #else
2905  *cptr = SWIG_Python_str_AsChar(obj);
2906  if (!*cptr)
2907  ret = SWIG_TypeError;
2908 #endif
2909  }
2910  }
2911  if (psize) *psize = len + 1;
2912 #if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
2913  Py_XDECREF(obj);
2914 #endif
2915  return ret;
2916  } else {
2917 #if defined(SWIG_PYTHON_2_UNICODE)
2918 #if defined(SWIG_PYTHON_STRICT_BYTE_CHAR)
2919 #error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once"
2920 #endif
2921 #if PY_VERSION_HEX<0x03000000
2922  if (PyUnicode_Check(obj)) {
2923  char *cstr; Py_ssize_t len;
2924  if (!alloc && cptr) {
2925  return SWIG_RuntimeError;
2926  }
2927  obj = PyUnicode_AsUTF8String(obj);
2928  if (!obj)
2929  return SWIG_TypeError;
2930  if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) {
2931  if (cptr) {
2932  if (alloc) *alloc = SWIG_NEWOBJ;
2933  *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1)));
2934  }
2935  if (psize) *psize = len + 1;
2936 
2937  Py_XDECREF(obj);
2938  return SWIG_OK;
2939  } else {
2940  Py_XDECREF(obj);
2941  }
2942  }
2943 #endif
2944 #endif
2945 
2946  swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
2947  if (pchar_descriptor) {
2948  void* vptr = 0;
2949  if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
2950  if (cptr) *cptr = (char *) vptr;
2951  if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
2952  if (alloc) *alloc = SWIG_OLDOBJ;
2953  return SWIG_OK;
2954  }
2955  }
2956  }
2957  return SWIG_TypeError;
2958 }
2959 
2960 
2961 SWIGINTERN int
2962 SWIG_AsPtr_std_string (PyObject * obj, std::string **val)
2963 {
2964  char* buf = 0 ; size_t size = 0; int alloc = SWIG_OLDOBJ;
2965  if (SWIG_IsOK((SWIG_AsCharPtrAndSize(obj, &buf, &size, &alloc)))) {
2966  if (buf) {
2967  if (val) *val = new std::string(buf, size - 1);
2968  if (alloc == SWIG_NEWOBJ) delete[] buf;
2969  return SWIG_NEWOBJ;
2970  } else {
2971  if (val) *val = 0;
2972  return SWIG_OLDOBJ;
2973  }
2974  } else {
2975  static int init = 0;
2976  static swig_type_info* descriptor = 0;
2977  if (!init) {
2978  descriptor = SWIG_TypeQuery("std::string" " *");
2979  init = 1;
2980  }
2981  if (descriptor) {
2982  std::string *vptr;
2983  int res = SWIG_ConvertPtr(obj, (void**)&vptr, descriptor, 0);
2984  if (SWIG_IsOK(res) && val) *val = vptr;
2985  return res;
2986  }
2987  }
2988  return SWIG_ERROR;
2989 }
2990 
2991 
2992 SWIGINTERNINLINE PyObject*
2994 {
2995  return PyBool_FromLong(value ? 1 : 0);
2996 }
2997 
2998 #ifdef __cplusplus
2999 extern "C" {
3000 #endif
3001 SWIGINTERN PyObject *_wrap_new_RcpspParser(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3002  PyObject *resultobj = 0;
3004 
3005  if (!SWIG_Python_UnpackTuple(args, "new_RcpspParser", 0, 0, 0)) SWIG_fail;
3008  return resultobj;
3009 fail:
3010  return NULL;
3011 }
3012 
3013 
3014 SWIGINTERN PyObject *_wrap_RcpspParser_Problem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3015  PyObject *resultobj = 0;
3017  void *argp1 = 0 ;
3018  int res1 = 0 ;
3019  PyObject *swig_obj[1] ;
3020  ::operations_research::data::rcpsp::RcpspProblem result;
3021 
3022  if (!args) SWIG_fail;
3023  swig_obj[0] = args;
3025  if (!SWIG_IsOK(res1)) {
3026  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RcpspParser_Problem" "', argument " "1"" of type '" "operations_research::data::rcpsp::RcpspParser const *""'");
3027  }
3028  arg1 = reinterpret_cast< operations_research::data::rcpsp::RcpspParser * >(argp1);
3029  result = ((operations_research::data::rcpsp::RcpspParser const *)arg1)->problem();
3030  {
3031  PyObject* const module = PyImport_ImportModule("ortools.data.rcpsp_pb2");
3032  if (module != nullptr) {
3033  PyObject* const dict = PyModule_GetDict(module);
3034  if (dict != nullptr) {
3035  PyObject* const clss = PyDict_GetItemString(dict, "RcpspProblem");
3036  if (clss != nullptr) {
3037  std::string encoded_protobuf;
3038  (&result)->SerializeToString(&encoded_protobuf);
3039 
3040  PyObject* const python_encoded_protobuf = PyBytes_FromStringAndSize(
3041  encoded_protobuf.c_str(), encoded_protobuf.size());
3042 
3043 
3044 
3045 
3046  PyObject* const result = PyObject_CallMethod(
3047  clss, const_cast<char*>("FromString"),
3048  const_cast<char*>("(O)"),
3049  python_encoded_protobuf);
3050  Py_DECREF(python_encoded_protobuf);
3051  resultobj = result;
3052  }
3053  }
3054  Py_DECREF(module);
3055  }
3056  }
3057  return resultobj;
3058 fail:
3059  return NULL;
3060 }
3061 
3062 
3063 SWIGINTERN PyObject *_wrap_RcpspParser_ParseFile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3064  PyObject *resultobj = 0;
3066  std::string *arg2 = 0 ;
3067  void *argp1 = 0 ;
3068  int res1 = 0 ;
3069  int res2 = SWIG_OLDOBJ ;
3070  PyObject *swig_obj[2] ;
3071  bool result;
3072 
3073  if (!SWIG_Python_UnpackTuple(args, "RcpspParser_ParseFile", 2, 2, swig_obj)) SWIG_fail;
3075  if (!SWIG_IsOK(res1)) {
3076  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RcpspParser_ParseFile" "', argument " "1"" of type '" "operations_research::data::rcpsp::RcpspParser *""'");
3077  }
3078  arg1 = reinterpret_cast< operations_research::data::rcpsp::RcpspParser * >(argp1);
3079  {
3080  std::string *ptr = (std::string *)0;
3081  res2 = SWIG_AsPtr_std_string(swig_obj[1], &ptr);
3082  if (!SWIG_IsOK(res2)) {
3083  SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "RcpspParser_ParseFile" "', argument " "2"" of type '" "std::string const &""'");
3084  }
3085  if (!ptr) {
3086  SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "RcpspParser_ParseFile" "', argument " "2"" of type '" "std::string const &""'");
3087  }
3088  arg2 = ptr;
3089  }
3090  result = (bool)(arg1)->ParseFile((std::string const &)*arg2);
3091  resultobj = SWIG_From_bool(static_cast< bool >(result));
3092  if (SWIG_IsNewObj(res2)) delete arg2;
3093  return resultobj;
3094 fail:
3095  if (SWIG_IsNewObj(res2)) delete arg2;
3096  return NULL;
3097 }
3098 
3099 
3100 SWIGINTERN PyObject *_wrap_delete_RcpspParser(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3101  PyObject *resultobj = 0;
3103  void *argp1 = 0 ;
3104  int res1 = 0 ;
3105  PyObject *swig_obj[1] ;
3106 
3107  if (!args) SWIG_fail;
3108  swig_obj[0] = args;
3110  if (!SWIG_IsOK(res1)) {
3111  SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_RcpspParser" "', argument " "1"" of type '" "operations_research::data::rcpsp::RcpspParser *""'");
3112  }
3113  arg1 = reinterpret_cast< operations_research::data::rcpsp::RcpspParser * >(argp1);
3114  delete arg1;
3115  resultobj = SWIG_Py_Void();
3116  return resultobj;
3117 fail:
3118  return NULL;
3119 }
3120 
3121 
3122 SWIGINTERN PyObject *RcpspParser_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3123  PyObject *obj;
3124  if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
3126  return SWIG_Py_Void();
3127 }
3128 
3129 SWIGINTERN PyObject *RcpspParser_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3130  return SWIG_Python_InitShadowInstance(args);
3131 }
3132 
3133 static PyMethodDef SwigMethods[] = {
3134  { "SWIG_PyInstanceMethod_New", SWIG_PyInstanceMethod_New, METH_O, NULL},
3135  { "new_RcpspParser", _wrap_new_RcpspParser, METH_NOARGS, NULL},
3136  { "RcpspParser_Problem", _wrap_RcpspParser_Problem, METH_O, NULL},
3137  { "RcpspParser_ParseFile", _wrap_RcpspParser_ParseFile, METH_VARARGS, NULL},
3138  { "delete_RcpspParser", _wrap_delete_RcpspParser, METH_O, NULL},
3139  { "RcpspParser_swigregister", RcpspParser_swigregister, METH_O, NULL},
3140  { "RcpspParser_swiginit", RcpspParser_swiginit, METH_VARARGS, NULL},
3141  { NULL, NULL, 0, NULL }
3142 };
3143 
3144 static PyMethodDef SwigMethods_proxydocs[] = {
3145  { NULL, NULL, 0, NULL }
3146 };
3147 
3148 
3149 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
3150 
3151 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
3152 static swig_type_info _swigt__p_int = {"_p_int", "int *|int_least32_t *|int32 *|int32_t *", 0, 0, (void*)0, 0};
3153 static swig_type_info _swigt__p_long = {"_p_long", "intptr_t *|int_least64_t *|int_fast32_t *|int_fast64_t *|int64 *|int64_t *|long *|int_fast16_t *|intmax_t *", 0, 0, (void*)0, 0};
3154 static swig_type_info _swigt__p_operations_research__data__rcpsp__RcpspParser = {"_p_operations_research__data__rcpsp__RcpspParser", "operations_research::data::rcpsp::RcpspParser *", 0, 0, (void*)0, 0};
3155 static swig_type_info _swigt__p_short = {"_p_short", "int16 *|short *|int_least16_t *|int16_t *", 0, 0, (void*)0, 0};
3156 static swig_type_info _swigt__p_signed_char = {"_p_signed_char", "signed char *|int8 *|int_least8_t *|int_fast8_t *|int8_t *", 0, 0, (void*)0, 0};
3157 static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint8 *|uint_least8_t *|uint_fast8_t *|uint8_t *", 0, 0, (void*)0, 0};
3158 static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uint_least32_t *|uint32 *|uint32_t *|unsigned int *", 0, 0, (void*)0, 0};
3159 static swig_type_info _swigt__p_unsigned_long = {"_p_unsigned_long", "uintptr_t *|uint_least64_t *|uint_fast32_t *|uint_fast64_t *|uint64 *|uint64_t *|unsigned long *|uint_fast16_t *|uintmax_t *", 0, 0, (void*)0, 0};
3160 static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "uint16 *|unsigned short *|uint_least16_t *|uint16_t *", 0, 0, (void*)0, 0};
3161 
3163  &_swigt__p_char,
3164  &_swigt__p_int,
3165  &_swigt__p_long,
3167  &_swigt__p_short,
3173 };
3174 
3175 static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
3176 static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
3177 static swig_cast_info _swigc__p_long[] = { {&_swigt__p_long, 0, 0, 0},{0, 0, 0, 0}};
3179 static swig_cast_info _swigc__p_short[] = { {&_swigt__p_short, 0, 0, 0},{0, 0, 0, 0}};
3180 static swig_cast_info _swigc__p_signed_char[] = { {&_swigt__p_signed_char, 0, 0, 0},{0, 0, 0, 0}};
3181 static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
3182 static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
3183 static swig_cast_info _swigc__p_unsigned_long[] = { {&_swigt__p_unsigned_long, 0, 0, 0},{0, 0, 0, 0}};
3185 
3188  _swigc__p_int,
3197 };
3198 
3199 
3200 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
3201 
3203 {0, 0, 0, 0.0, 0, 0}};
3204 
3205 #ifdef __cplusplus
3206 }
3207 #endif
3208 /* -----------------------------------------------------------------------------
3209  * Type initialization:
3210  * This problem is tough by the requirement that no dynamic
3211  * memory is used. Also, since swig_type_info structures store pointers to
3212  * swig_cast_info structures and swig_cast_info structures store pointers back
3213  * to swig_type_info structures, we need some lookup code at initialization.
3214  * The idea is that swig generates all the structures that are needed.
3215  * The runtime then collects these partially filled structures.
3216  * The SWIG_InitializeModule function takes these initial arrays out of
3217  * swig_module, and does all the lookup, filling in the swig_module.types
3218  * array with the correct data and linking the correct swig_cast_info
3219  * structures together.
3220  *
3221  * The generated swig_type_info structures are assigned statically to an initial
3222  * array. We just loop through that array, and handle each type individually.
3223  * First we lookup if this type has been already loaded, and if so, use the
3224  * loaded structure instead of the generated one. Then we have to fill in the
3225  * cast linked list. The cast data is initially stored in something like a
3226  * two-dimensional array. Each row corresponds to a type (there are the same
3227  * number of rows as there are in the swig_type_initial array). Each entry in
3228  * a column is one of the swig_cast_info structures for that type.
3229  * The cast_initial array is actually an array of arrays, because each row has
3230  * a variable number of columns. So to actually build the cast linked list,
3231  * we find the array of casts associated with the type, and loop through it
3232  * adding the casts to the list. The one last trick we need to do is making
3233  * sure the type pointer in the swig_cast_info struct is correct.
3234  *
3235  * First off, we lookup the cast->type name to see if it is already loaded.
3236  * There are three cases to handle:
3237  * 1) If the cast->type has already been loaded AND the type we are adding
3238  * casting info to has not been loaded (it is in this module), THEN we
3239  * replace the cast->type pointer with the type pointer that has already
3240  * been loaded.
3241  * 2) If BOTH types (the one we are adding casting info to, and the
3242  * cast->type) are loaded, THEN the cast info has already been loaded by
3243  * the previous module so we just ignore it.
3244  * 3) Finally, if cast->type has not already been loaded, then we add that
3245  * swig_cast_info to the linked list (because the cast->type) pointer will
3246  * be correct.
3247  * ----------------------------------------------------------------------------- */
3248 
3249 #ifdef __cplusplus
3250 extern "C" {
3251 #if 0
3252 } /* c-mode */
3253 #endif
3254 #endif
3255 
3256 #if 0
3257 #define SWIGRUNTIME_DEBUG
3258 #endif
3259 
3260 
3261 SWIGRUNTIME void
3262 SWIG_InitializeModule(void *clientdata) {
3263  size_t i;
3264  swig_module_info *module_head, *iter;
3265  int init;
3266 
3267  /* check to see if the circular list has been setup, if not, set it up */
3268  if (swig_module.next==0) {
3269  /* Initialize the swig_module */
3273  init = 1;
3274  } else {
3275  init = 0;
3276  }
3277 
3278  /* Try and load any already created modules */
3279  module_head = SWIG_GetModule(clientdata);
3280  if (!module_head) {
3281  /* This is the first module loaded for this interpreter */
3282  /* so set the swig module into the interpreter */
3283  SWIG_SetModule(clientdata, &swig_module);
3284  } else {
3285  /* the interpreter has loaded a SWIG module, but has it loaded this one? */
3286  iter=module_head;
3287  do {
3288  if (iter==&swig_module) {
3289  /* Our module is already in the list, so there's nothing more to do. */
3290  return;
3291  }
3292  iter=iter->next;
3293  } while (iter!= module_head);
3294 
3295  /* otherwise we must add our module into the list */
3296  swig_module.next = module_head->next;
3297  module_head->next = &swig_module;
3298  }
3299 
3300  /* When multiple interpreters are used, a module could have already been initialized in
3301  a different interpreter, but not yet have a pointer in this interpreter.
3302  In this case, we do not want to continue adding types... everything should be
3303  set up already */
3304  if (init == 0) return;
3305 
3306  /* Now work on filling in swig_module.types */
3307 #ifdef SWIGRUNTIME_DEBUG
3308  printf("SWIG_InitializeModule: size %lu\n", (unsigned long)swig_module.size);
3309 #endif
3310  for (i = 0; i < swig_module.size; ++i) {
3311  swig_type_info *type = 0;
3312  swig_type_info *ret;
3313  swig_cast_info *cast;
3314 
3315 #ifdef SWIGRUNTIME_DEBUG
3316  printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
3317 #endif
3318 
3319  /* if there is another module already loaded */
3320  if (swig_module.next != &swig_module) {
3322  }
3323  if (type) {
3324  /* Overwrite clientdata field */
3325 #ifdef SWIGRUNTIME_DEBUG
3326  printf("SWIG_InitializeModule: found type %s\n", type->name);
3327 #endif
3330 #ifdef SWIGRUNTIME_DEBUG
3331  printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
3332 #endif
3333  }
3334  } else {
3335  type = swig_module.type_initial[i];
3336  }
3337 
3338  /* Insert casting types */
3339  cast = swig_module.cast_initial[i];
3340  while (cast->type) {
3341  /* Don't need to add information already in the list */
3342  ret = 0;
3343 #ifdef SWIGRUNTIME_DEBUG
3344  printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
3345 #endif
3346  if (swig_module.next != &swig_module) {
3348 #ifdef SWIGRUNTIME_DEBUG
3349  if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
3350 #endif
3351  }
3352  if (ret) {
3353  if (type == swig_module.type_initial[i]) {
3354 #ifdef SWIGRUNTIME_DEBUG
3355  printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
3356 #endif
3357  cast->type = ret;
3358  ret = 0;
3359  } else {
3360  /* Check for casting already in the list */
3361  swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
3362 #ifdef SWIGRUNTIME_DEBUG
3363  if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
3364 #endif
3365  if (!ocast) ret = 0;
3366  }
3367  }
3368 
3369  if (!ret) {
3370 #ifdef SWIGRUNTIME_DEBUG
3371  printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
3372 #endif
3373  if (type->cast) {
3374  type->cast->prev = cast;
3375  cast->next = type->cast;
3376  }
3377  type->cast = cast;
3378  }
3379  cast++;
3380  }
3381  /* Set entry in modules->types array equal to the type */
3382  swig_module.types[i] = type;
3383  }
3384  swig_module.types[i] = 0;
3385 
3386 #ifdef SWIGRUNTIME_DEBUG
3387  printf("**** SWIG_InitializeModule: Cast List ******\n");
3388  for (i = 0; i < swig_module.size; ++i) {
3389  int j = 0;
3391  printf("SWIG_InitializeModule: type %lu %s\n", (unsigned long)i, swig_module.type_initial[i]->name);
3392  while (cast->type) {
3393  printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
3394  cast++;
3395  ++j;
3396  }
3397  printf("---- Total casts: %d\n",j);
3398  }
3399  printf("**** SWIG_InitializeModule: Cast List ******\n");
3400 #endif
3401 }
3402 
3403 /* This function will propagate the clientdata field of type to
3404 * any new swig_type_info structures that have been added into the list
3405 * of equivalent types. It is like calling
3406 * SWIG_TypeClientData(type, clientdata) a second time.
3407 */
3408 SWIGRUNTIME void
3410  size_t i;
3411  swig_cast_info *equiv;
3412  static int init_run = 0;
3413 
3414  if (init_run) return;
3415  init_run = 1;
3416 
3417  for (i = 0; i < swig_module.size; i++) {
3418  if (swig_module.types[i]->clientdata) {
3419  equiv = swig_module.types[i]->cast;
3420  while (equiv) {
3421  if (!equiv->converter) {
3422  if (equiv->type && !equiv->type->clientdata)
3424  }
3425  equiv = equiv->next;
3426  }
3427  }
3428  }
3429 }
3430 
3431 #ifdef __cplusplus
3432 #if 0
3433 {
3434  /* c-mode */
3435 #endif
3436 }
3437 #endif
3438 
3439 
3440 
3441 #ifdef __cplusplus
3442 extern "C" {
3443 #endif
3444 
3445  /* Python-specific SWIG API */
3446 #define SWIG_newvarlink() SWIG_Python_newvarlink()
3447 #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr)
3448 #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants)
3449 
3450  /* -----------------------------------------------------------------------------
3451  * global variable support code.
3452  * ----------------------------------------------------------------------------- */
3453 
3454  typedef struct swig_globalvar {
3455  char *name; /* Name of global variable */
3456  PyObject *(*get_attr)(void); /* Return the current value */
3457  int (*set_attr)(PyObject *); /* Set the value */
3458  struct swig_globalvar *next;
3460 
3461  typedef struct swig_varlinkobject {
3462  PyObject_HEAD
3465 
3466  SWIGINTERN PyObject *
3468 #if PY_VERSION_HEX >= 0x03000000
3469  return PyUnicode_InternFromString("<Swig global variables>");
3470 #else
3471  return PyString_FromString("<Swig global variables>");
3472 #endif
3473  }
3474 
3475  SWIGINTERN PyObject *
3477 #if PY_VERSION_HEX >= 0x03000000
3478  PyObject *str = PyUnicode_InternFromString("(");
3479  PyObject *tail;
3480  PyObject *joined;
3482  for (var = v->vars; var; var=var->next) {
3483  tail = PyUnicode_FromString(var->name);
3484  joined = PyUnicode_Concat(str, tail);
3485  Py_DecRef(str);
3486  Py_DecRef(tail);
3487  str = joined;
3488  if (var->next) {
3489  tail = PyUnicode_InternFromString(", ");
3490  joined = PyUnicode_Concat(str, tail);
3491  Py_DecRef(str);
3492  Py_DecRef(tail);
3493  str = joined;
3494  }
3495  }
3496  tail = PyUnicode_InternFromString(")");
3497  joined = PyUnicode_Concat(str, tail);
3498  Py_DecRef(str);
3499  Py_DecRef(tail);
3500  str = joined;
3501 #else
3502  PyObject *str = PyString_FromString("(");
3504  for (var = v->vars; var; var=var->next) {
3505  PyString_ConcatAndDel(&str,PyString_FromString(var->name));
3506  if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", "));
3507  }
3508  PyString_ConcatAndDel(&str,PyString_FromString(")"));
3509 #endif
3510  return str;
3511  }
3512 
3513  SWIGINTERN void
3515  swig_globalvar *var = v->vars;
3516  while (var) {
3517  swig_globalvar *n = var->next;
3518  free(var->name);
3519  free(var);
3520  var = n;
3521  }
3522  }
3523 
3524  SWIGINTERN PyObject *
3526  PyObject *res = NULL;
3527  swig_globalvar *var = v->vars;
3528  while (var) {
3529  if (strcmp(var->name,n) == 0) {
3530  res = (*var->get_attr)();
3531  break;
3532  }
3533  var = var->next;
3534  }
3535  if (res == NULL && !PyErr_Occurred()) {
3536  PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
3537  }
3538  return res;
3539  }
3540 
3541  SWIGINTERN int
3542  swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
3543  int res = 1;
3544  swig_globalvar *var = v->vars;
3545  while (var) {
3546  if (strcmp(var->name,n) == 0) {
3547  res = (*var->set_attr)(p);
3548  break;
3549  }
3550  var = var->next;
3551  }
3552  if (res == 1 && !PyErr_Occurred()) {
3553  PyErr_Format(PyExc_AttributeError, "Unknown C global variable '%s'", n);
3554  }
3555  return res;
3556  }
3557 
3558  SWIGINTERN PyTypeObject*
3560  static char varlink__doc__[] = "Swig var link object";
3561  static PyTypeObject varlink_type;
3562  static int type_init = 0;
3563  if (!type_init) {
3564  const PyTypeObject tmp = {
3565 #if PY_VERSION_HEX >= 0x03000000
3566  PyVarObject_HEAD_INIT(NULL, 0)
3567 #else
3568  PyObject_HEAD_INIT(NULL)
3569  0, /* ob_size */
3570 #endif
3571  "swigvarlink", /* tp_name */
3572  sizeof(swig_varlinkobject), /* tp_basicsize */
3573  0, /* tp_itemsize */
3574  (destructor) swig_varlink_dealloc, /* tp_dealloc */
3575  0, /* tp_print */
3576  (getattrfunc) swig_varlink_getattr, /* tp_getattr */
3577  (setattrfunc) swig_varlink_setattr, /* tp_setattr */
3578  0, /* tp_compare */
3579  (reprfunc) swig_varlink_repr, /* tp_repr */
3580  0, /* tp_as_number */
3581  0, /* tp_as_sequence */
3582  0, /* tp_as_mapping */
3583  0, /* tp_hash */
3584  0, /* tp_call */
3585  (reprfunc) swig_varlink_str, /* tp_str */
3586  0, /* tp_getattro */
3587  0, /* tp_setattro */
3588  0, /* tp_as_buffer */
3589  0, /* tp_flags */
3590  varlink__doc__, /* tp_doc */
3591  0, /* tp_traverse */
3592  0, /* tp_clear */
3593  0, /* tp_richcompare */
3594  0, /* tp_weaklistoffset */
3595  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
3596  0, /* tp_del */
3597  0, /* tp_version_tag */
3598 #if PY_VERSION_HEX >= 0x03040000
3599  0, /* tp_finalize */
3600 #endif
3601 #if PY_VERSION_HEX >= 0x03080000
3602  0, /* tp_vectorcall */
3603 #endif
3604 #if (PY_VERSION_HEX >= 0x03080000) && (PY_VERSION_HEX < 0x03090000)
3605  0, /* tp_print */
3606 #endif
3607 #ifdef COUNT_ALLOCS
3608  0, /* tp_allocs */
3609  0, /* tp_frees */
3610  0, /* tp_maxalloc */
3611  0, /* tp_prev */
3612  0 /* tp_next */
3613 #endif
3614  };
3615  varlink_type = tmp;
3616  type_init = 1;
3617  if (PyType_Ready(&varlink_type) < 0)
3618  return NULL;
3619  }
3620  return &varlink_type;
3621  }
3622 
3623  /* Create a variable linking object for use later */
3624  SWIGINTERN PyObject *
3626  swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
3627  if (result) {
3628  result->vars = 0;
3629  }
3630  return ((PyObject*) result);
3631  }
3632 
3633  SWIGINTERN void
3634  SWIG_Python_addvarlink(PyObject *p, const char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
3637  if (gv) {
3638  size_t size = strlen(name)+1;
3639  gv->name = (char *)malloc(size);
3640  if (gv->name) {
3641  memcpy(gv->name, name, size);
3642  gv->get_attr = get_attr;
3643  gv->set_attr = set_attr;
3644  gv->next = v->vars;
3645  }
3646  }
3647  v->vars = gv;
3648  }
3649 
3650  SWIGINTERN PyObject *
3652  static PyObject *globals = 0;
3653  if (!globals) {
3654  globals = SWIG_newvarlink();
3655  }
3656  return globals;
3657  }
3658 
3659  /* -----------------------------------------------------------------------------
3660  * constants/methods manipulation
3661  * ----------------------------------------------------------------------------- */
3662 
3663  /* Install Constants */
3664  SWIGINTERN void
3665  SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {
3666  PyObject *obj = 0;
3667  size_t i;
3668  for (i = 0; constants[i].type; ++i) {
3669  switch(constants[i].type) {
3670  case SWIG_PY_POINTER:
3671  obj = SWIG_InternalNewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
3672  break;
3673  case SWIG_PY_BINARY:
3674  obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
3675  break;
3676  default:
3677  obj = 0;
3678  break;
3679  }
3680  if (obj) {
3681  PyDict_SetItemString(d, constants[i].name, obj);
3682  Py_DECREF(obj);
3683  }
3684  }
3685  }
3686 
3687  /* -----------------------------------------------------------------------------*/
3688  /* Fix SwigMethods to carry the callback ptrs when needed */
3689  /* -----------------------------------------------------------------------------*/
3690 
3691  SWIGINTERN void
3692  SWIG_Python_FixMethods(PyMethodDef *methods,
3693  swig_const_info *const_table,
3694  swig_type_info **types,
3695  swig_type_info **types_initial) {
3696  size_t i;
3697  for (i = 0; methods[i].ml_name; ++i) {
3698  const char *c = methods[i].ml_doc;
3699  if (!c) continue;
3700  c = strstr(c, "swig_ptr: ");
3701  if (c) {
3702  int j;
3703  swig_const_info *ci = 0;
3704  const char *name = c + 10;
3705  for (j = 0; const_table[j].type; ++j) {
3706  if (strncmp(const_table[j].name, name,
3707  strlen(const_table[j].name)) == 0) {
3708  ci = &(const_table[j]);
3709  break;
3710  }
3711  }
3712  if (ci) {
3713  void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
3714  if (ptr) {
3715  size_t shift = (ci->ptype) - types;
3716  swig_type_info *ty = types_initial[shift];
3717  size_t ldoc = (c - methods[i].ml_doc);
3718  size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
3719  char *ndoc = (char*)malloc(ldoc + lptr + 10);
3720  if (ndoc) {
3721  char *buff = ndoc;
3722  memcpy(buff, methods[i].ml_doc, ldoc);
3723  buff += ldoc;
3724  memcpy(buff, "swig_ptr: ", 10);
3725  buff += 10;
3726  SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
3727  methods[i].ml_doc = ndoc;
3728  }
3729  }
3730  }
3731  }
3732  }
3733  }
3734 
3735  /* -----------------------------------------------------------------------------
3736  * Method creation and docstring support functions
3737  * ----------------------------------------------------------------------------- */
3738 
3739  /* -----------------------------------------------------------------------------
3740  * Function to find the method definition with the correct docstring for the
3741  * proxy module as opposed to the low-level API
3742  * ----------------------------------------------------------------------------- */
3743 
3744  SWIGINTERN PyMethodDef *SWIG_PythonGetProxyDoc(const char *name) {
3745  /* Find the function in the modified method table */
3746  size_t offset = 0;
3747  int found = 0;
3748  while (SwigMethods_proxydocs[offset].ml_meth != NULL) {
3749  if (strcmp(SwigMethods_proxydocs[offset].ml_name, name) == 0) {
3750  found = 1;
3751  break;
3752  }
3753  offset++;
3754  }
3755  /* Use the copy with the modified docstring if available */
3756  return found ? &SwigMethods_proxydocs[offset] : NULL;
3757  }
3758 
3759  /* -----------------------------------------------------------------------------
3760  * Wrapper of PyInstanceMethod_New() used in Python 3
3761  * It is exported to the generated module, used for -fastproxy
3762  * ----------------------------------------------------------------------------- */
3763 
3764  SWIGINTERN PyObject *SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func) {
3765  if (PyCFunction_Check(func)) {
3766  PyCFunctionObject *funcobj = (PyCFunctionObject *)func;
3767  PyMethodDef *ml = SWIG_PythonGetProxyDoc(funcobj->m_ml->ml_name);
3768  if (ml)
3769  func = PyCFunction_NewEx(ml, funcobj->m_self, funcobj->m_module);
3770  }
3771 #if PY_VERSION_HEX >= 0x03000000
3772  return PyInstanceMethod_New(func);
3773 #else
3774  return PyMethod_New(func, NULL, NULL);
3775 #endif
3776  }
3777 
3778  /* -----------------------------------------------------------------------------
3779  * Wrapper of PyStaticMethod_New()
3780  * It is exported to the generated module, used for -fastproxy
3781  * ----------------------------------------------------------------------------- */
3782 
3783  SWIGINTERN PyObject *SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func) {
3784  if (PyCFunction_Check(func)) {
3785  PyCFunctionObject *funcobj = (PyCFunctionObject *)func;
3786  PyMethodDef *ml = SWIG_PythonGetProxyDoc(funcobj->m_ml->ml_name);
3787  if (ml)
3788  func = PyCFunction_NewEx(ml, funcobj->m_self, funcobj->m_module);
3789  }
3790  return PyStaticMethod_New(func);
3791  }
3792 
3793 #ifdef __cplusplus
3794 }
3795 #endif
3796 
3797 /* -----------------------------------------------------------------------------*
3798  * Partial Init method
3799  * -----------------------------------------------------------------------------*/
3800 
3801 #ifdef __cplusplus
3802 extern "C"
3803 #endif
3804 
3805 SWIGEXPORT
3806 #if PY_VERSION_HEX >= 0x03000000
3807 PyObject*
3808 #else
3809 void
3810 #endif
3811 SWIG_init(void) {
3812  PyObject *m, *d, *md, *globals;
3813 
3814 #if PY_VERSION_HEX >= 0x03000000
3815  static struct PyModuleDef SWIG_module = {
3816  PyModuleDef_HEAD_INIT,
3817  SWIG_name,
3818  NULL,
3819  -1,
3820  SwigMethods,
3821  NULL,
3822  NULL,
3823  NULL,
3824  NULL
3825  };
3826 #endif
3827 
3828 #if defined(SWIGPYTHON_BUILTIN)
3829  static SwigPyClientData SwigPyObject_clientdata = {
3830  0, 0, 0, 0, 0, 0, 0
3831  };
3832  static PyGetSetDef this_getset_def = {
3833  (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL
3834  };
3835  static SwigPyGetSet thisown_getset_closure = {
3838  };
3839  static PyGetSetDef thisown_getset_def = {
3840  (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure
3841  };
3842  PyTypeObject *builtin_pytype;
3843  int builtin_base_count;
3844  swig_type_info *builtin_basetype;
3845  PyObject *tuple;
3846  PyGetSetDescrObject *static_getset;
3847  PyTypeObject *metatype;
3848  PyTypeObject *swigpyobject;
3849  SwigPyClientData *cd;
3850  PyObject *public_interface, *public_symbol;
3851  PyObject *this_descr;
3852  PyObject *thisown_descr;
3853  PyObject *self = 0;
3854  int i;
3855 
3856  (void)builtin_pytype;
3857  (void)builtin_base_count;
3858  (void)builtin_basetype;
3859  (void)tuple;
3860  (void)static_getset;
3861  (void)self;
3862 
3863  /* Metaclass is used to implement static member variables */
3864  metatype = SwigPyObjectType();
3865  assert(metatype);
3866 #endif
3867 
3868  (void)globals;
3869 
3870  /* Create singletons now to avoid potential deadlocks with multi-threaded usage after module initialization */
3871  SWIG_This();
3874 #ifndef SWIGPYTHON_BUILTIN
3876 #endif
3877 
3878  /* Fix SwigMethods to carry the callback ptrs when needed */
3880 
3881 #if PY_VERSION_HEX >= 0x03000000
3882  m = PyModule_Create(&SWIG_module);
3883 #else
3884  m = Py_InitModule(SWIG_name, SwigMethods);
3885 #endif
3886 
3887  md = d = PyModule_GetDict(m);
3888  (void)md;
3889 
3891 
3892 #ifdef SWIGPYTHON_BUILTIN
3893  swigpyobject = SwigPyObject_TypeOnce();
3894 
3895  SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject");
3896  assert(SwigPyObject_stype);
3897  cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
3898  if (!cd) {
3899  SwigPyObject_stype->clientdata = &SwigPyObject_clientdata;
3900  SwigPyObject_clientdata.pytype = swigpyobject;
3901  } else if (swigpyobject->tp_basicsize != cd->pytype->tp_basicsize) {
3902  PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules.");
3903 # if PY_VERSION_HEX >= 0x03000000
3904  return NULL;
3905 # else
3906  return;
3907 # endif
3908  }
3909 
3910  /* All objects have a 'this' attribute */
3911  this_descr = PyDescr_NewGetSet(SwigPyObject_type(), &this_getset_def);
3912  (void)this_descr;
3913 
3914  /* All objects have a 'thisown' attribute */
3915  thisown_descr = PyDescr_NewGetSet(SwigPyObject_type(), &thisown_getset_def);
3916  (void)thisown_descr;
3917 
3918  public_interface = PyList_New(0);
3919  public_symbol = 0;
3920  (void)public_symbol;
3921 
3922  PyDict_SetItemString(md, "__all__", public_interface);
3923  Py_DECREF(public_interface);
3924  for (i = 0; SwigMethods[i].ml_name != NULL; ++i)
3925  SwigPyBuiltin_AddPublicSymbol(public_interface, SwigMethods[i].ml_name);
3926  for (i = 0; swig_const_table[i].name != 0; ++i)
3927  SwigPyBuiltin_AddPublicSymbol(public_interface, swig_const_table[i].name);
3928 #endif
3929 
3931 
3932 #if PY_VERSION_HEX >= 0x03000000
3933  return m;
3934 #else
3935  return;
3936 #endif
3937 }
3938 
int64 min
Definition: alldiff_cst.cc:138
int64 max
Definition: alldiff_cst.cc:139
::operations_research::data::rcpsp::RcpspProblem problem() const
Definition: rcpsp_parser.h:38
SwigPtr_PyObject(PyObject *obj, bool initial_ref=true)
SwigPtr_PyObject & operator=(const SwigPtr_PyObject &item)
SwigPtr_PyObject(const SwigPtr_PyObject &item)
PyObject * operator->() const
Block * next
const std::string name
int64 value
IntVar * var
Definition: expr_array.cc:1858
void * malloc(YYSIZE_T)
void free(void *)
if(!yyg->yy_init)
Definition: parser.yy.cc:965
SWIGRUNTIME swig_type_info * SWIG_Python_TypeQuery(const char *type)
SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz)
SWIGRUNTIME int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty)
static swig_cast_info * swig_cast_initial[]
static swig_type_info _swigt__p_operations_research__data__rcpsp__RcpspParser
SWIGINTERN PyObject * SWIG_Python_str_FromChar(const char *c)
#define SWIG_MangledTypeQuery(name)
SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz)
static PyObject * Swig_This_global
SWIGRUNTIME int SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w)
SWIGINTERN PyObject * swig_varlink_str(swig_varlinkobject *v)
SWIGRUNTIMEINLINE PyObject * SWIG_Python_ExceptionType(swig_type_info *desc)
SWIGINTERN Py_ssize_t SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
#define SWIG_TypeQuery(name)
#define SWIG_POINTER_OWN
#define SWIG_SyntaxError
static swig_cast_info _swigc__p_operations_research__data__rcpsp__RcpspParser[]
#define SWIG_POINTER_NEW
#define SWIG_CheckState(r)
static swig_cast_info _swigc__p_int[]
SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb)
SWIGINTERN PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n)
#define SWIG_BUFFER_SIZE
SWIGRUNTIME PyTypeObject * SwigPyPacked_TypeOnce(void)
#define SWIG_TypeError
SWIGRUNTIME int SWIG_Python_AddErrMesg(const char *mesg, int infront)
SWIGINTERN void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[])
#define SWIG_POINTER_IMPLICIT_CONV
#define SWIG_PY_POINTER
struct swig_cast_info swig_cast_info
#define SWIG_init
SWIGINTERN int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p)
static swig_type_info * swig_types[11]
SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2)
#define SWIG_Python_ConvertPtr(obj, pptr, type, flags)
SWIGRUNTIME void SwigPyObject_dealloc(PyObject *v)
#define SWIG_PYTHON_THREAD_END_BLOCK
SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory)
#define SWIG_RuntimeError
struct swig_varlinkobject swig_varlinkobject
#define SWIG_NewClientData(obj)
#define PyObject_DEL
SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type)
static swig_type_info _swigt__p_unsigned_char
#define SWIGRUNTIME
SWIGINTERN PyObject * SwigPyObject_disown(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
#define SWIG_PY_BINARY
#define SWIG_RUNTIME_VERSION
#define SWIG_POINTER_NOSHADOW
SWIGINTERN PyObject * SwigPyObject_own(PyObject *v, PyObject *args)
#define SWIG_OLDOBJ
SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata)
static swig_type_info _swigt__p_short
#define SWIG_ValueError
SWIGINTERN void SWIG_Python_addvarlink(PyObject *p, const char *name, PyObject *(*get_attr)(void), int(*set_attr)(PyObject *p))
SWIGINTERN PyObject * SWIG_Python_newvarlink(void)
static PyMethodDef swigobject_methods[]
#define SWIG_AddCast(r)
#define SWIG_IsNewObj(r)
SWIGINTERN PyObject * RcpspParser_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGRUNTIME PyObject * SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
SWIGRUNTIME PyObject * SWIG_Python_ErrorType(int code)
#define SWIG_InternalNewPointerObj(ptr, type, flags)
SWIGRUNTIMEINLINE PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type)
#define SWIG_exception_fail(code, msg)
SWIGINTERNINLINE PyObject * SWIG_From_bool(bool value)
SWIGRUNTIME PyObject * SwigPyObject_next(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
SWIGRUNTIME PyObject * SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name)
#define SWIG_AttributeError
SWIGRUNTIMEINLINE const char * SwigPyObject_GetDesc(PyObject *self)
static swig_module_info swig_module
SWIGINTERN PyObject * _wrap_RcpspParser_Problem(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
static swig_cast_info _swigc__p_unsigned_char[]
static swig_cast_info _swigc__p_short[]
SWIGRUNTIME PyObject * SwigPyObject_hex(SwigPyObject *v)
SWIGINTERN PyObject * SwigPyObject_acquire(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
SWIGRUNTIME int SWIG_Python_TypeErrorOccurred(PyObject *obj)
SWIGRUNTIME void SWIG_Python_DestroyModule(PyObject *obj)
#define SWIG_SetModule(clientdata, pointer)
SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty)
SWIGINTERN PyTypeObject * swig_varlink_type(void)
SWIGRUNTIMEINLINE PyObject * SWIG_Py_Void(void)
#define SWIGUNUSEDPARM(p)
SWIGRUNTIME PyObject * SWIG_This(void)
SWIGRUNTIME PyObject * SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags)
SWIGRUNTIME PyObject * SwigPyObject_format(const char *fmt, SwigPyObject *v)
#define SWIG_as_voidptr(a)
static swig_const_info swig_const_table[]
SWIGRUNTIMEINLINE int SwigPyPacked_Check(PyObject *op)
SWIGRUNTIME PyTypeObject * SwigPyObject_type(void)
SWIGRUNTIME PyObject * SwigPyPacked_repr(SwigPyPacked *v)
#define SWIG_Python_CallFunctor(functor, obj)
SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata)
static swig_type_info _swigt__p_unsigned_short
SWIGRUNTIME int SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
#define SWIG_ConvertPtr(obj, pptr, type, flags)
SWIGRUNTIME int SWIG_TypeCmp(const char *nb, const char *tb)
SWIGRUNTIME PyObject * SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)
struct swig_const_info swig_const_info
SWIGINTERN int SWIG_Python_CheckNoKeywords(PyObject *kwargs, const char *name)
SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args)
SWIGRUNTIME PyObject * SwigPyPacked_str(SwigPyPacked *v)
SWIGRUNTIME void SWIG_InitializeModule(void *clientdata)
SWIGINTERN PyObject * SWIG_PyStaticMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func)
SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz)
#define SWIG_newvarlink()
SWIGRUNTIME void SWIG_Python_RaiseOrModifyTypeError(const char *message)
static swig_type_info _swigt__p_unsigned_long
#define SWIG_Python_str_DelForPy3(x)
static swig_cast_info _swigc__p_char[]
SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty)
#define SWIGINTERN
SWIGINTERN PyObject * swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v))
SWIGRUNTIME SwigPyObject * SWIG_Python_GetSwigThis(PyObject *pyobj)
SWIGRUNTIMEINLINE int SwigPyObject_Check(PyObject *op)
SWIGRUNTIME SwigPyClientData * SwigPyClientData_New(PyObject *obj)
SWIGINTERN void SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj)
SWIGINTERN char * SWIG_Python_str_AsChar(PyObject *str)
static swig_cast_info _swigc__p_unsigned_short[]
struct swig_globalvar swig_globalvar
#define SWIGPY_CAPSULE_NAME
#define SWIG_ArgError(r)
SWIGRUNTIME void SWIG_Python_AddErrorMsg(const char *mesg)
#define SWIG_NewPointerObj(ptr, type, flags)
SWIGRUNTIME void SWIG_Python_SetModule(swig_module_info *swig_module)
SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name)
SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj)
void *(* swig_converter_func)(void *, int *)
#define SWIG_POINTER_NO_NULL
#define SWIG_Python_str_FromFormat
#define SWIG_InstallConstants(d, constants)
#define SWIG_IOError
static PyMethodDef SwigMethods[]
#define SWIG_NullReferenceError
#define SWIG_POINTER_DISOWN
#define SWIG_STATIC_POINTER(var)
struct swig_type_info swig_type_info
SWIGRUNTIME void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags)
SWIGINTERN PyObject * RcpspParser_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGINTERN PyObject * _wrap_delete_RcpspParser(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
SWIGRUNTIME int SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty)
SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg)
SWIGINTERN PyMethodDef * SWIG_PythonGetProxyDoc(const char *name)
SWIGINTERN PyObject * _wrap_RcpspParser_ParseFile(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
#define SWIG_NEWOBJ
static swig_type_info _swigt__p_signed_char
SWIGINTERN int SWIG_AsPtr_std_string(PyObject *obj, std::string **val)
SWIGRUNTIME int SWIG_Python_ArgFail(int argnum)
SWIGINTERN PyObject * SWIG_globals(void)
SWIGRUNTIME PyTypeObject * SwigPyObject_TypeOnce(void)
SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own)
#define SWIG_NewPackedObj(ptr, sz, type)
SWIGRUNTIME PyObject * SwigPyObject_repr(SwigPyObject *v)
#define SWIG_GetModule(clientdata)
static swig_cast_info _swigc__p_unsigned_int[]
#define SWIG_fail
static swig_type_info _swigt__p_int
SWIGRUNTIME void SWIG_PropagateClientData(void)
static swig_cast_info _swigc__p_unsigned_long[]
SWIGRUNTIME PyObject * SwigPyObject_long(SwigPyObject *v)
SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty)
SWIGRUNTIME PyObject * SwigPyObject_repr2(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
SWIGINTERN PyObject * SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func)
SWIGRUNTIME int SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
SWIGINTERN PyObject * _wrap_new_RcpspParser(PyObject *SWIGUNUSEDPARM(self), PyObject *args)
static swig_type_info _swigt__p_long
SWIGRUNTIME PyObject * SwigPyObject_oct(SwigPyObject *v)
static PyMethodDef SwigMethods_proxydocs[]
SWIGRUNTIME PyTypeObject * SwigPyPacked_type(void)
SWIGRUNTIME void SWIG_Python_TypeError(const char *type, PyObject *obj)
#define SWIG_TYPE_TABLE_NAME
SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name)
#define SWIG_BUILTIN_TP_INIT
static swig_type_info _swigt__p_unsigned_int
#define SWIG_CAST_NEW_MEMORY
SWIGRUNTIME swig_module_info * SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata))
struct swig_module_info swig_module_info
#define SWIG_ERROR
SWIGRUNTIME void SwigPyClientData_Del(SwigPyClientData *data)
#define SWIG_name
SWIGRUNTIME PyObject * SwigPyObject_append(PyObject *v, PyObject *next)
SWIGINTERN void swig_varlink_dealloc(swig_varlinkobject *v)
static swig_cast_info _swigc__p_long[]
static swig_type_info * swig_type_initial[]
#define SWIGTYPE_p_operations_research__data__rcpsp__RcpspParser
SWIGRUNTIME swig_type_info * SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
SWIGRUNTIME void SwigPyPacked_dealloc(PyObject *v)
SWIGRUNTIMEINLINE int SWIG_Python_CheckImplicit(swig_type_info *ty)
SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr)
SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial)
#define SWIG_MemoryError
SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name)
#define SWIG_SystemError
#define SWIG_DivisionByZero
static swig_type_info _swigt__p_char
SWIGINTERN swig_type_info * SWIG_pchar_descriptor(void)
SWIGRUNTIME PyObject * SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)
#define SWIG_OverflowError
#define SWIGEXPORT
#define SWIG_IsOK(r)
SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char **cptr, size_t *psize, int *alloc)
struct swig_type_info *(* swig_dycast_func)(void **)
#define SWIG_IndexError
SWIGRUNTIME PyObject * SWIG_Python_TypeCache(void)
#define SWIG_AddNewMask(r)
SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz)
#define SWIG_OK
#define SWIG_PYTHON_THREAD_BEGIN_BLOCK
#define SWIGINTERNINLINE
static swig_cast_info _swigc__p_signed_char[]
#define Py_TYPE(op)
SWIGRUNTIME int SWIG_Python_AcquirePtr(PyObject *obj, int own)
SWIGINTERN PyObject * SWIG_Python_AppendOutput(PyObject *result, PyObject *obj)
#define SWIGRUNTIMEINLINE
int64 tail
PyObject_HEAD void * ptr
PyObject_HEAD void * pack
SwigVar_PyObject(PyObject *obj=0)
SwigVar_PyObject & operator=(PyObject *obj)
struct swig_cast_info * prev
struct swig_cast_info * next
swig_converter_func converter
struct swig_globalvar * next
PyObject *(* get_attr)(void)
struct swig_module_info * next
struct swig_cast_info * cast
PyObject_HEAD swig_globalvar * vars
std::string message
Definition: trace.cc:395