root/source4/lib/wmi/wmi_wrap.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. SWIG_AddCast
  2. SWIG_CheckState
  3. SWIG_TypeNameComp
  4. SWIG_TypeEquiv
  5. SWIG_TypeCompare
  6. SWIG_TypeCheck
  7. SWIG_TypeCheckStruct
  8. SWIG_TypeCast
  9. SWIG_TypeDynamicCast
  10. SWIG_TypeName
  11. SWIG_TypePrettyName
  12. SWIG_TypeClientData
  13. SWIG_TypeNewClientData
  14. SWIG_MangledTypeQueryModule
  15. SWIG_TypeQueryModule
  16. SWIG_PackData
  17. SWIG_UnpackData
  18. SWIG_PackVoidPtr
  19. SWIG_UnpackVoidPtr
  20. SWIG_PackDataName
  21. SWIG_UnpackDataName
  22. PyString_FromFormat
  23. PyBool_FromLong
  24. SWIG_Python_ErrorType
  25. SWIG_Python_AddErrorMsg
  26. SWIG_Python_SetErrorObj
  27. SWIG_Python_SetErrorMsg
  28. SWIG_Python_SetConstant
  29. SWIG_Python_AppendOutput
  30. SWIG_Python_UnpackTuple
  31. _SWIG_Py_None
  32. SWIG_Py_None
  33. SWIG_Py_Void
  34. SWIG_Python_CheckImplicit
  35. SWIG_Python_ExceptionType
  36. PySwigClientData_New
  37. PySwigClientData_Del
  38. PySwigObject_long
  39. PySwigObject_format
  40. PySwigObject_oct
  41. PySwigObject_hex
  42. PySwigObject_repr
  43. PySwigObject_print
  44. PySwigObject_str
  45. PySwigObject_compare
  46. PySwigObject_type
  47. PySwigObject_Check
  48. PySwigObject_dealloc
  49. PySwigObject_append
  50. PySwigObject_next
  51. PySwigObject_disown
  52. PySwigObject_acquire
  53. PySwigObject_own
  54. PySwigObject_getattr
  55. _PySwigObject_type
  56. PySwigObject_New
  57. PySwigPacked_print
  58. PySwigPacked_repr
  59. PySwigPacked_str
  60. PySwigPacked_compare
  61. PySwigPacked_type
  62. PySwigPacked_Check
  63. PySwigPacked_dealloc
  64. _PySwigPacked_type
  65. PySwigPacked_New
  66. PySwigPacked_UnpackData
  67. _SWIG_This
  68. SWIG_This
  69. SWIG_Python_GetSwigThis
  70. SWIG_Python_AcquirePtr
  71. SWIG_Python_ConvertPtrAndOwn
  72. SWIG_Python_ConvertFunctionPtr
  73. SWIG_Python_ConvertPacked
  74. SWIG_Python_NewShadowInstance
  75. SWIG_Python_SetSwigThis
  76. SWIG_Python_InitShadowInstance
  77. SWIG_Python_NewPointerObj
  78. SWIG_Python_NewPackedObj
  79. SWIG_Python_GetModule
  80. PyModule_AddObject
  81. SWIG_Python_DestroyModule
  82. SWIG_Python_SetModule
  83. SWIG_Python_TypeCache
  84. SWIG_Python_TypeQuery
  85. SWIG_Python_AddErrMesg
  86. SWIG_Python_ArgFail
  87. PySwigObject_GetDesc
  88. SWIG_Python_TypeError
  89. SWIG_Python_MustGetPtr
  90. push_object
  91. SWIG_pchar_descriptor
  92. SWIG_AsCharPtrAndSize
  93. SWIG_AsVal_double
  94. SWIG_CanCastAsInteger
  95. SWIG_AsVal_unsigned_SS_long
  96. SWIG_AsVal_unsigned_SS_int
  97. SWIG_From_unsigned_SS_long
  98. SWIG_From_unsigned_SS_int
  99. SWIG_AsVal_long
  100. SWIG_AsVal_int
  101. _Py_BuildValue
  102. PyObject_FromCVAR
  103. PySWbemObject_InitProperites
  104. PySWbemObject_FromWbemClassObject
  105. _wrap_WBEM_ConnectServer
  106. _wrap_IUnknown_Release
  107. _wrap_new_IUnknown
  108. _wrap_delete_IUnknown
  109. IUnknown_swigregister
  110. IUnknown_swiginit
  111. _wrap_IWbemServices_ExecQuery
  112. _wrap_IWbemServices_ExecNotificationQuery
  113. _wrap_IWbemServices_CreateInstanceEnum
  114. _wrap_new_IWbemServices
  115. _wrap_delete_IWbemServices
  116. IWbemServices_swigregister
  117. IWbemServices_swiginit
  118. _wrap_IEnumWbemClassObject_Reset
  119. _wrap_new_IEnumWbemClassObject
  120. _wrap_delete_IEnumWbemClassObject
  121. IEnumWbemClassObject_swigregister
  122. IEnumWbemClassObject_swiginit
  123. _wrap_IEnumWbemClassObject_SmartNext
  124. SWIG_InitializeModule
  125. SWIG_PropagateClientData
  126. swig_varlink_repr
  127. swig_varlink_str
  128. swig_varlink_print
  129. swig_varlink_dealloc
  130. swig_varlink_getattr
  131. swig_varlink_setattr
  132. swig_varlink_type
  133. SWIG_Python_newvarlink
  134. SWIG_Python_addvarlink
  135. SWIG_globals
  136. SWIG_Python_InstallConstants
  137. SWIG_Python_FixMethods
  138. SWIG_init

   1 /* ----------------------------------------------------------------------------
   2  * This file was automatically generated by SWIG (http://www.swig.org).
   3  * Version 1.3.36
   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 #define SWIGPYTHON
  12 #define SWIG_PYTHON_NO_BUILD_NONE
  13 /* -----------------------------------------------------------------------------
  14  *  This section contains generic SWIG labels for method/variable
  15  *  declarations/attributes, and other compiler dependent labels.
  16  * ----------------------------------------------------------------------------- */
  17 
  18 /* template workaround for compilers that cannot correctly implement the C++ standard */
  19 #ifndef SWIGTEMPLATEDISAMBIGUATOR
  20 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
  21 #  define SWIGTEMPLATEDISAMBIGUATOR template
  22 # elif defined(__HP_aCC)
  23 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
  24 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
  25 #  define SWIGTEMPLATEDISAMBIGUATOR template
  26 # else
  27 #  define SWIGTEMPLATEDISAMBIGUATOR
  28 # endif
  29 #endif
  30 
  31 /* inline attribute */
  32 #ifndef SWIGINLINE
  33 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
  34 #   define SWIGINLINE inline
  35 # else
  36 #   define SWIGINLINE
  37 # endif
  38 #endif
  39 
  40 /* attribute recognised by some compilers to avoid 'unused' warnings */
  41 #ifndef SWIGUNUSED
  42 # if defined(__GNUC__)
  43 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
  44 #     define SWIGUNUSED __attribute__ ((__unused__)) 
  45 #   else
  46 #     define SWIGUNUSED
  47 #   endif
  48 # elif defined(__ICC)
  49 #   define SWIGUNUSED __attribute__ ((__unused__)) 
  50 # else
  51 #   define SWIGUNUSED 
  52 # endif
  53 #endif
  54 
  55 #ifndef SWIG_MSC_UNSUPPRESS_4505
  56 # if defined(_MSC_VER)
  57 #   pragma warning(disable : 4505) /* unreferenced local function has been removed */
  58 # endif 
  59 #endif
  60 
  61 #ifndef SWIGUNUSEDPARM
  62 # ifdef __cplusplus
  63 #   define SWIGUNUSEDPARM(p)
  64 # else
  65 #   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
  66 # endif
  67 #endif
  68 
  69 /* internal SWIG method */
  70 #ifndef SWIGINTERN
  71 # define SWIGINTERN static SWIGUNUSED
  72 #endif
  73 
  74 /* internal inline SWIG method */
  75 #ifndef SWIGINTERNINLINE
  76 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
  77 #endif
  78 
  79 /* exporting methods */
  80 #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
  81 #  ifndef GCC_HASCLASSVISIBILITY
  82 #    define GCC_HASCLASSVISIBILITY
  83 #  endif
  84 #endif
  85 
  86 #ifndef SWIGEXPORT
  87 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
  88 #   if defined(STATIC_LINKED)
  89 #     define SWIGEXPORT
  90 #   else
  91 #     define SWIGEXPORT __declspec(dllexport)
  92 #   endif
  93 # else
  94 #   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
  95 #     define SWIGEXPORT __attribute__ ((visibility("default")))
  96 #   else
  97 #     define SWIGEXPORT
  98 #   endif
  99 # endif
 100 #endif
 101 
 102 /* calling conventions for Windows */
 103 #ifndef SWIGSTDCALL
 104 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
 105 #   define SWIGSTDCALL __stdcall
 106 # else
 107 #   define SWIGSTDCALL
 108 # endif 
 109 #endif
 110 
 111 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
 112 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
 113 # define _CRT_SECURE_NO_DEPRECATE
 114 #endif
 115 
 116 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
 117 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
 118 # define _SCL_SECURE_NO_DEPRECATE
 119 #endif
 120 
 121 
 122 
 123 /* Python.h has to appear first */
 124 #include <Python.h>
 125 
 126 /* -----------------------------------------------------------------------------
 127  * swigrun.swg
 128  *
 129  * This file contains generic CAPI SWIG runtime support for pointer
 130  * type checking.
 131  * ----------------------------------------------------------------------------- */
 132 
 133 /* This should only be incremented when either the layout of swig_type_info changes,
 134    or for whatever reason, the runtime changes incompatibly */
 135 #define SWIG_RUNTIME_VERSION "4"
 136 
 137 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
 138 #ifdef SWIG_TYPE_TABLE
 139 # define SWIG_QUOTE_STRING(x) #x
 140 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
 141 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
 142 #else
 143 # define SWIG_TYPE_TABLE_NAME
 144 #endif
 145 
 146 /*
 147   You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
 148   creating a static or dynamic library from the swig runtime code.
 149   In 99.9% of the cases, swig just needs to declare them as 'static'.
 150   
 151   But only do this if is strictly necessary, ie, if you have problems
 152   with your compiler or so.
 153 */
 154 
 155 #ifndef SWIGRUNTIME
 156 # define SWIGRUNTIME SWIGINTERN
 157 #endif
 158 
 159 #ifndef SWIGRUNTIMEINLINE
 160 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
 161 #endif
 162 
 163 /*  Generic buffer size */
 164 #ifndef SWIG_BUFFER_SIZE
 165 # define SWIG_BUFFER_SIZE 1024
 166 #endif
 167 
 168 /* Flags for pointer conversions */
 169 #define SWIG_POINTER_DISOWN        0x1
 170 #define SWIG_CAST_NEW_MEMORY       0x2
 171 
 172 /* Flags for new pointer objects */
 173 #define SWIG_POINTER_OWN           0x1
 174 
 175 
 176 /* 
 177    Flags/methods for returning states.
 178    
 179    The swig conversion methods, as ConvertPtr, return and integer 
 180    that tells if the conversion was successful or not. And if not,
 181    an error code can be returned (see swigerrors.swg for the codes).
 182    
 183    Use the following macros/flags to set or process the returning
 184    states.
 185    
 186    In old swig versions, you usually write code as:
 187 
 188      if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
 189        // success code
 190      } else {
 191        //fail code
 192      }
 193 
 194    Now you can be more explicit as:
 195 
 196     int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
 197     if (SWIG_IsOK(res)) {
 198       // success code
 199     } else {
 200       // fail code
 201     }
 202 
 203    that seems to be the same, but now you can also do
 204 
 205     Type *ptr;
 206     int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
 207     if (SWIG_IsOK(res)) {
 208       // success code
 209       if (SWIG_IsNewObj(res) {
 210         ...
 211         delete *ptr;
 212       } else {
 213         ...
 214       }
 215     } else {
 216       // fail code
 217     }
 218     
 219    I.e., now SWIG_ConvertPtr can return new objects and you can
 220    identify the case and take care of the deallocation. Of course that
 221    requires also to SWIG_ConvertPtr to return new result values, as
 222 
 223       int SWIG_ConvertPtr(obj, ptr,...) {         
 224         if (<obj is ok>) {                             
 225           if (<need new object>) {                     
 226             *ptr = <ptr to new allocated object>; 
 227             return SWIG_NEWOBJ;                
 228           } else {                                     
 229             *ptr = <ptr to old object>;        
 230             return SWIG_OLDOBJ;                
 231           }                                    
 232         } else {                                       
 233           return SWIG_BADOBJ;                  
 234         }                                              
 235       }
 236 
 237    Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
 238    more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
 239    swig errors code.
 240 
 241    Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
 242    allows to return the 'cast rank', for example, if you have this
 243 
 244        int food(double)
 245        int fooi(int);
 246 
 247    and you call
 248  
 249       food(1)   // cast rank '1'  (1 -> 1.0)
 250       fooi(1)   // cast rank '0'
 251 
 252    just use the SWIG_AddCast()/SWIG_CheckState()
 253 
 254 
 255  */
 256 #define SWIG_OK                    (0) 
 257 #define SWIG_ERROR                 (-1)
 258 #define SWIG_IsOK(r)               (r >= 0)
 259 #define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)  
 260 
 261 /* The CastRankLimit says how many bits are used for the cast rank */
 262 #define SWIG_CASTRANKLIMIT         (1 << 8)
 263 /* The NewMask denotes the object was created (using new/malloc) */
 264 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
 265 /* The TmpMask is for in/out typemaps that use temporal objects */
 266 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
 267 /* Simple returning values */
 268 #define SWIG_BADOBJ                (SWIG_ERROR)
 269 #define SWIG_OLDOBJ                (SWIG_OK)
 270 #define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
 271 #define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
 272 /* Check, add and del mask methods */
 273 #define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
 274 #define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
 275 #define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
 276 #define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
 277 #define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
 278 #define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
 279 
 280 
 281 /* Cast-Rank Mode */
 282 #if defined(SWIG_CASTRANK_MODE)
 283 #  ifndef SWIG_TypeRank
 284 #    define SWIG_TypeRank             unsigned long
 285 #  endif
 286 #  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
 287 #    define SWIG_MAXCASTRANK          (2)
 288 #  endif
 289 #  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
 290 #  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
 291 SWIGINTERNINLINE int SWIG_AddCast(int r) { 
     /* [<][>][^][v][top][bottom][index][help] */
 292   return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
 293 }
 294 SWIGINTERNINLINE int SWIG_CheckState(int r) { 
     /* [<][>][^][v][top][bottom][index][help] */
 295   return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; 
 296 }
 297 #else /* no cast-rank mode */
 298 #  define SWIG_AddCast
 299 #  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
 300 #endif
 301 
 302 
 303 
 304 
 305 #include <string.h>
 306 
 307 #ifdef __cplusplus
 308 extern "C" {
 309 #endif
 310 
 311 typedef void *(*swig_converter_func)(void *, int *);
 312 typedef struct swig_type_info *(*swig_dycast_func)(void **);
 313 
 314 /* Structure to store information on one type */
 315 typedef struct swig_type_info {
 316   const char             *name;                 /* mangled name of this type */
 317   const char             *str;                  /* human readable name of this type */
 318   swig_dycast_func        dcast;                /* dynamic cast function down a hierarchy */
 319   struct swig_cast_info  *cast;                 /* linked list of types that can cast into this type */
 320   void                   *clientdata;           /* language specific type data */
 321   int                    owndata;               /* flag if the structure owns the clientdata */
 322 } swig_type_info;
 323 
 324 /* Structure to store a type and conversion function used for casting */
 325 typedef struct swig_cast_info {
 326   swig_type_info         *type;                 /* pointer to type that is equivalent to this type */
 327   swig_converter_func     converter;            /* function to cast the void pointers */
 328   struct swig_cast_info  *next;                 /* pointer to next cast in linked list */
 329   struct swig_cast_info  *prev;                 /* pointer to the previous cast */
 330 } swig_cast_info;
 331 
 332 /* Structure used to store module information
 333  * Each module generates one structure like this, and the runtime collects
 334  * all of these structures and stores them in a circularly linked list.*/
 335 typedef struct swig_module_info {
 336   swig_type_info         **types;               /* Array of pointers to swig_type_info structures that are in this module */
 337   size_t                 size;                  /* Number of types in this module */
 338   struct swig_module_info *next;                /* Pointer to next element in circularly linked list */
 339   swig_type_info         **type_initial;        /* Array of initially generated type structures */
 340   swig_cast_info         **cast_initial;        /* Array of initially generated casting structures */
 341   void                    *clientdata;          /* Language specific module data */
 342 } swig_module_info;
 343 
 344 /* 
 345   Compare two type names skipping the space characters, therefore
 346   "char*" == "char *" and "Class<int>" == "Class<int >", etc.
 347 
 348   Return 0 when the two name types are equivalent, as in
 349   strncmp, but skipping ' '.
 350 */
 351 SWIGRUNTIME int
 352 SWIG_TypeNameComp(const char *f1, const char *l1,
     /* [<][>][^][v][top][bottom][index][help] */
 353                   const char *f2, const char *l2) {
 354   for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
 355     while ((*f1 == ' ') && (f1 != l1)) ++f1;
 356     while ((*f2 == ' ') && (f2 != l2)) ++f2;
 357     if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
 358   }
 359   return (int)((l1 - f1) - (l2 - f2));
 360 }
 361 
 362 /*
 363   Check type equivalence in a name list like <name1>|<name2>|...
 364   Return 0 if not equal, 1 if equal
 365 */
 366 SWIGRUNTIME int
 367 SWIG_TypeEquiv(const char *nb, const char *tb) {
     /* [<][>][^][v][top][bottom][index][help] */
 368   int equiv = 0;
 369   const char* te = tb + strlen(tb);
 370   const char* ne = nb;
 371   while (!equiv && *ne) {
 372     for (nb = ne; *ne; ++ne) {
 373       if (*ne == '|') break;
 374     }
 375     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
 376     if (*ne) ++ne;
 377   }
 378   return equiv;
 379 }
 380 
 381 /*
 382   Check type equivalence in a name list like <name1>|<name2>|...
 383   Return 0 if equal, -1 if nb < tb, 1 if nb > tb
 384 */
 385 SWIGRUNTIME int
 386 SWIG_TypeCompare(const char *nb, const char *tb) {
     /* [<][>][^][v][top][bottom][index][help] */
 387   int equiv = 0;
 388   const char* te = tb + strlen(tb);
 389   const char* ne = nb;
 390   while (!equiv && *ne) {
 391     for (nb = ne; *ne; ++ne) {
 392       if (*ne == '|') break;
 393     }
 394     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
 395     if (*ne) ++ne;
 396   }
 397   return equiv;
 398 }
 399 
 400 
 401 /* think of this as a c++ template<> or a scheme macro */
 402 #define SWIG_TypeCheck_Template(comparison, ty)         \
 403   if (ty) {                                             \
 404     swig_cast_info *iter = ty->cast;                    \
 405     while (iter) {                                      \
 406       if (comparison) {                                 \
 407         if (iter == ty->cast) return iter;              \
 408         /* Move iter to the top of the linked list */   \
 409         iter->prev->next = iter->next;                  \
 410         if (iter->next)                                 \
 411           iter->next->prev = iter->prev;                \
 412         iter->next = ty->cast;                          \
 413         iter->prev = 0;                                 \
 414         if (ty->cast) ty->cast->prev = iter;            \
 415         ty->cast = iter;                                \
 416         return iter;                                    \
 417       }                                                 \
 418       iter = iter->next;                                \
 419     }                                                   \
 420   }                                                     \
 421   return 0
 422 
 423 /*
 424   Check the typename
 425 */
 426 SWIGRUNTIME swig_cast_info *
 427 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
     /* [<][>][^][v][top][bottom][index][help] */
 428   SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty);
 429 }
 430 
 431 /* Same as previous function, except strcmp is replaced with a pointer comparison */
 432 SWIGRUNTIME swig_cast_info *
 433 SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
     /* [<][>][^][v][top][bottom][index][help] */
 434   SWIG_TypeCheck_Template(iter->type == from, into);
 435 }
 436 
 437 /*
 438   Cast a pointer up an inheritance hierarchy
 439 */
 440 SWIGRUNTIMEINLINE void *
 441 SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
     /* [<][>][^][v][top][bottom][index][help] */
 442   return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
 443 }
 444 
 445 /* 
 446    Dynamic pointer casting. Down an inheritance hierarchy
 447 */
 448 SWIGRUNTIME swig_type_info *
 449 SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
     /* [<][>][^][v][top][bottom][index][help] */
 450   swig_type_info *lastty = ty;
 451   if (!ty || !ty->dcast) return ty;
 452   while (ty && (ty->dcast)) {
 453     ty = (*ty->dcast)(ptr);
 454     if (ty) lastty = ty;
 455   }
 456   return lastty;
 457 }
 458 
 459 /*
 460   Return the name associated with this type
 461 */
 462 SWIGRUNTIMEINLINE const char *
 463 SWIG_TypeName(const swig_type_info *ty) {
     /* [<][>][^][v][top][bottom][index][help] */
 464   return ty->name;
 465 }
 466 
 467 /*
 468   Return the pretty name associated with this type,
 469   that is an unmangled type name in a form presentable to the user.
 470 */
 471 SWIGRUNTIME const char *
 472 SWIG_TypePrettyName(const swig_type_info *type) {
     /* [<][>][^][v][top][bottom][index][help] */
 473   /* The "str" field contains the equivalent pretty names of the
 474      type, separated by vertical-bar characters.  We choose
 475      to print the last name, as it is often (?) the most
 476      specific. */
 477   if (!type) return NULL;
 478   if (type->str != NULL) {
 479     const char *last_name = type->str;
 480     const char *s;
 481     for (s = type->str; *s; s++)
 482       if (*s == '|') last_name = s+1;
 483     return last_name;
 484   }
 485   else
 486     return type->name;
 487 }
 488 
 489 /* 
 490    Set the clientdata field for a type
 491 */
 492 SWIGRUNTIME void
 493 SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
     /* [<][>][^][v][top][bottom][index][help] */
 494   swig_cast_info *cast = ti->cast;
 495   /* if (ti->clientdata == clientdata) return; */
 496   ti->clientdata = clientdata;
 497   
 498   while (cast) {
 499     if (!cast->converter) {
 500       swig_type_info *tc = cast->type;
 501       if (!tc->clientdata) {
 502         SWIG_TypeClientData(tc, clientdata);
 503       }
 504     }    
 505     cast = cast->next;
 506   }
 507 }
 508 SWIGRUNTIME void
 509 SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
     /* [<][>][^][v][top][bottom][index][help] */
 510   SWIG_TypeClientData(ti, clientdata);
 511   ti->owndata = 1;
 512 }
 513   
 514 /*
 515   Search for a swig_type_info structure only by mangled name
 516   Search is a O(log #types)
 517   
 518   We start searching at module start, and finish searching when start == end.  
 519   Note: if start == end at the beginning of the function, we go all the way around
 520   the circular list.
 521 */
 522 SWIGRUNTIME swig_type_info *
 523 SWIG_MangledTypeQueryModule(swig_module_info *start, 
     /* [<][>][^][v][top][bottom][index][help] */
 524                             swig_module_info *end, 
 525                             const char *name) {
 526   swig_module_info *iter = start;
 527   do {
 528     if (iter->size) {
 529       register size_t l = 0;
 530       register size_t r = iter->size - 1;
 531       do {
 532         /* since l+r >= 0, we can (>> 1) instead (/ 2) */
 533         register size_t i = (l + r) >> 1; 
 534         const char *iname = iter->types[i]->name;
 535         if (iname) {
 536           register int compare = strcmp(name, iname);
 537           if (compare == 0) {       
 538             return iter->types[i];
 539           } else if (compare < 0) {
 540             if (i) {
 541               r = i - 1;
 542             } else {
 543               break;
 544             }
 545           } else if (compare > 0) {
 546             l = i + 1;
 547           }
 548         } else {
 549           break; /* should never happen */
 550         }
 551       } while (l <= r);
 552     }
 553     iter = iter->next;
 554   } while (iter != end);
 555   return 0;
 556 }
 557 
 558 /*
 559   Search for a swig_type_info structure for either a mangled name or a human readable name.
 560   It first searches the mangled names of the types, which is a O(log #types)
 561   If a type is not found it then searches the human readable names, which is O(#types).
 562   
 563   We start searching at module start, and finish searching when start == end.  
 564   Note: if start == end at the beginning of the function, we go all the way around
 565   the circular list.
 566 */
 567 SWIGRUNTIME swig_type_info *
 568 SWIG_TypeQueryModule(swig_module_info *start, 
     /* [<][>][^][v][top][bottom][index][help] */
 569                      swig_module_info *end, 
 570                      const char *name) {
 571   /* STEP 1: Search the name field using binary search */
 572   swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
 573   if (ret) {
 574     return ret;
 575   } else {
 576     /* STEP 2: If the type hasn't been found, do a complete search
 577        of the str field (the human readable name) */
 578     swig_module_info *iter = start;
 579     do {
 580       register size_t i = 0;
 581       for (; i < iter->size; ++i) {
 582         if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
 583           return iter->types[i];
 584       }
 585       iter = iter->next;
 586     } while (iter != end);
 587   }
 588   
 589   /* neither found a match */
 590   return 0;
 591 }
 592 
 593 /* 
 594    Pack binary data into a string
 595 */
 596 SWIGRUNTIME char *
 597 SWIG_PackData(char *c, void *ptr, size_t sz) {
     /* [<][>][^][v][top][bottom][index][help] */
 598   static const char hex[17] = "0123456789abcdef";
 599   register const unsigned char *u = (unsigned char *) ptr;
 600   register const unsigned char *eu =  u + sz;
 601   for (; u != eu; ++u) {
 602     register unsigned char uu = *u;
 603     *(c++) = hex[(uu & 0xf0) >> 4];
 604     *(c++) = hex[uu & 0xf];
 605   }
 606   return c;
 607 }
 608 
 609 /* 
 610    Unpack binary data from a string
 611 */
 612 SWIGRUNTIME const char *
 613 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
     /* [<][>][^][v][top][bottom][index][help] */
 614   register unsigned char *u = (unsigned char *) ptr;
 615   register const unsigned char *eu = u + sz;
 616   for (; u != eu; ++u) {
 617     register char d = *(c++);
 618     register unsigned char uu;
 619     if ((d >= '0') && (d <= '9'))
 620       uu = ((d - '0') << 4);
 621     else if ((d >= 'a') && (d <= 'f'))
 622       uu = ((d - ('a'-10)) << 4);
 623     else 
 624       return (char *) 0;
 625     d = *(c++);
 626     if ((d >= '0') && (d <= '9'))
 627       uu |= (d - '0');
 628     else if ((d >= 'a') && (d <= 'f'))
 629       uu |= (d - ('a'-10));
 630     else 
 631       return (char *) 0;
 632     *u = uu;
 633   }
 634   return c;
 635 }
 636 
 637 /* 
 638    Pack 'void *' into a string buffer.
 639 */
 640 SWIGRUNTIME char *
 641 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
     /* [<][>][^][v][top][bottom][index][help] */
 642   char *r = buff;
 643   if ((2*sizeof(void *) + 2) > bsz) return 0;
 644   *(r++) = '_';
 645   r = SWIG_PackData(r,&ptr,sizeof(void *));
 646   if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
 647   strcpy(r,name);
 648   return buff;
 649 }
 650 
 651 SWIGRUNTIME const char *
 652 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
     /* [<][>][^][v][top][bottom][index][help] */
 653   if (*c != '_') {
 654     if (strcmp(c,"NULL") == 0) {
 655       *ptr = (void *) 0;
 656       return name;
 657     } else {
 658       return 0;
 659     }
 660   }
 661   return SWIG_UnpackData(++c,ptr,sizeof(void *));
 662 }
 663 
 664 SWIGRUNTIME char *
 665 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
     /* [<][>][^][v][top][bottom][index][help] */
 666   char *r = buff;
 667   size_t lname = (name ? strlen(name) : 0);
 668   if ((2*sz + 2 + lname) > bsz) return 0;
 669   *(r++) = '_';
 670   r = SWIG_PackData(r,ptr,sz);
 671   if (lname) {
 672     strncpy(r,name,lname+1);
 673   } else {
 674     *r = 0;
 675   }
 676   return buff;
 677 }
 678 
 679 SWIGRUNTIME const char *
 680 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
     /* [<][>][^][v][top][bottom][index][help] */
 681   if (*c != '_') {
 682     if (strcmp(c,"NULL") == 0) {
 683       memset(ptr,0,sz);
 684       return name;
 685     } else {
 686       return 0;
 687     }
 688   }
 689   return SWIG_UnpackData(++c,ptr,sz);
 690 }
 691 
 692 #ifdef __cplusplus
 693 }
 694 #endif
 695 
 696 /*  Errors in SWIG */
 697 #define  SWIG_UnknownError         -1 
 698 #define  SWIG_IOError              -2 
 699 #define  SWIG_RuntimeError         -3 
 700 #define  SWIG_IndexError           -4 
 701 #define  SWIG_TypeError            -5 
 702 #define  SWIG_DivisionByZero       -6 
 703 #define  SWIG_OverflowError        -7 
 704 #define  SWIG_SyntaxError          -8 
 705 #define  SWIG_ValueError           -9 
 706 #define  SWIG_SystemError          -10
 707 #define  SWIG_AttributeError       -11
 708 #define  SWIG_MemoryError          -12 
 709 #define  SWIG_NullReferenceError   -13
 710 
 711 
 712 
 713 
 714 /* Add PyOS_snprintf for old Pythons */
 715 #if PY_VERSION_HEX < 0x02020000
 716 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM)
 717 #  define PyOS_snprintf _snprintf
 718 # else
 719 #  define PyOS_snprintf snprintf
 720 # endif
 721 #endif
 722 
 723 /* A crude PyString_FromFormat implementation for old Pythons */
 724 #if PY_VERSION_HEX < 0x02020000
 725 
 726 #ifndef SWIG_PYBUFFER_SIZE
 727 # define SWIG_PYBUFFER_SIZE 1024
 728 #endif
 729 
 730 static PyObject *
 731 PyString_FromFormat(const char *fmt, ...) {
     /* [<][>][^][v][top][bottom][index][help] */
 732   va_list ap;
 733   char buf[SWIG_PYBUFFER_SIZE * 2];
 734   int res;
 735   va_start(ap, fmt);
 736   res = vsnprintf(buf, sizeof(buf), fmt, ap);
 737   va_end(ap);
 738   return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf);
 739 }
 740 #endif
 741 
 742 /* Add PyObject_Del for old Pythons */
 743 #if PY_VERSION_HEX < 0x01060000
 744 # define PyObject_Del(op) PyMem_DEL((op))
 745 #endif
 746 #ifndef PyObject_DEL
 747 # define PyObject_DEL PyObject_Del
 748 #endif
 749 
 750 /* A crude PyExc_StopIteration exception for old Pythons */
 751 #if PY_VERSION_HEX < 0x02020000
 752 # ifndef PyExc_StopIteration
 753 #  define PyExc_StopIteration PyExc_RuntimeError
 754 # endif
 755 # ifndef PyObject_GenericGetAttr
 756 #  define PyObject_GenericGetAttr 0
 757 # endif
 758 #endif
 759 /* Py_NotImplemented is defined in 2.1 and up. */
 760 #if PY_VERSION_HEX < 0x02010000
 761 # ifndef Py_NotImplemented
 762 #  define Py_NotImplemented PyExc_RuntimeError
 763 # endif
 764 #endif
 765 
 766 
 767 /* A crude PyString_AsStringAndSize implementation for old Pythons */
 768 #if PY_VERSION_HEX < 0x02010000
 769 # ifndef PyString_AsStringAndSize
 770 #  define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;}
 771 # endif
 772 #endif
 773 
 774 /* PySequence_Size for old Pythons */
 775 #if PY_VERSION_HEX < 0x02000000
 776 # ifndef PySequence_Size
 777 #  define PySequence_Size PySequence_Length
 778 # endif
 779 #endif
 780 
 781 
 782 /* PyBool_FromLong for old Pythons */
 783 #if PY_VERSION_HEX < 0x02030000
 784 static
 785 PyObject *PyBool_FromLong(long ok)
     /* [<][>][^][v][top][bottom][index][help] */
 786 {
 787   PyObject *result = ok ? Py_True : Py_False;
 788   Py_INCREF(result);
 789   return result;
 790 }
 791 #endif
 792 
 793 /* Py_ssize_t for old Pythons */
 794 /* This code is as recommended by: */
 795 /* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */
 796 #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
 797 typedef int Py_ssize_t;
 798 # define PY_SSIZE_T_MAX INT_MAX
 799 # define PY_SSIZE_T_MIN INT_MIN
 800 #endif
 801 
 802 /* -----------------------------------------------------------------------------
 803  * error manipulation
 804  * ----------------------------------------------------------------------------- */
 805 
 806 SWIGRUNTIME PyObject*
 807 SWIG_Python_ErrorType(int code) {
     /* [<][>][^][v][top][bottom][index][help] */
 808   PyObject* type = 0;
 809   switch(code) {
 810   case SWIG_MemoryError:
 811     type = PyExc_MemoryError;
 812     break;
 813   case SWIG_IOError:
 814     type = PyExc_IOError;
 815     break;
 816   case SWIG_RuntimeError:
 817     type = PyExc_RuntimeError;
 818     break;
 819   case SWIG_IndexError:
 820     type = PyExc_IndexError;
 821     break;
 822   case SWIG_TypeError:
 823     type = PyExc_TypeError;
 824     break;
 825   case SWIG_DivisionByZero:
 826     type = PyExc_ZeroDivisionError;
 827     break;
 828   case SWIG_OverflowError:
 829     type = PyExc_OverflowError;
 830     break;
 831   case SWIG_SyntaxError:
 832     type = PyExc_SyntaxError;
 833     break;
 834   case SWIG_ValueError:
 835     type = PyExc_ValueError;
 836     break;
 837   case SWIG_SystemError:
 838     type = PyExc_SystemError;
 839     break;
 840   case SWIG_AttributeError:
 841     type = PyExc_AttributeError;
 842     break;
 843   default:
 844     type = PyExc_RuntimeError;
 845   }
 846   return type;
 847 }
 848 
 849 
 850 SWIGRUNTIME void
 851 SWIG_Python_AddErrorMsg(const char* mesg)
     /* [<][>][^][v][top][bottom][index][help] */
 852 {
 853   PyObject *type = 0;
 854   PyObject *value = 0;
 855   PyObject *traceback = 0;
 856 
 857   if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback);
 858   if (value) {
 859     PyObject *old_str = PyObject_Str(value);
 860     PyErr_Clear();
 861     Py_XINCREF(type);
 862     PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
 863     Py_DECREF(old_str);
 864     Py_DECREF(value);
 865   } else {
 866     PyErr_SetString(PyExc_RuntimeError, mesg);
 867   }
 868 }
 869 
 870 
 871 
 872 #if defined(SWIG_PYTHON_NO_THREADS)
 873 #  if defined(SWIG_PYTHON_THREADS)
 874 #    undef SWIG_PYTHON_THREADS
 875 #  endif
 876 #endif
 877 #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
 878 #  if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
 879 #    if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */
 880 #      define SWIG_PYTHON_USE_GIL
 881 #    endif
 882 #  endif
 883 #  if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
 884 #    ifndef SWIG_PYTHON_INITIALIZE_THREADS
 885 #     define SWIG_PYTHON_INITIALIZE_THREADS  PyEval_InitThreads() 
 886 #    endif
 887 #    ifdef __cplusplus /* C++ code */
 888        class SWIG_Python_Thread_Block {
 889          bool status;
 890          PyGILState_STATE state;
 891        public:
 892          void end() { if (status) { PyGILState_Release(state); status = false;} }
 893          SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
 894          ~SWIG_Python_Thread_Block() { end(); }
 895        };
 896        class SWIG_Python_Thread_Allow {
 897          bool status;
 898          PyThreadState *save;
 899        public:
 900          void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
 901          SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
 902          ~SWIG_Python_Thread_Allow() { end(); }
 903        };
 904 #      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   SWIG_Python_Thread_Block _swig_thread_block
 905 #      define SWIG_PYTHON_THREAD_END_BLOCK     _swig_thread_block.end()
 906 #      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   SWIG_Python_Thread_Allow _swig_thread_allow
 907 #      define SWIG_PYTHON_THREAD_END_ALLOW     _swig_thread_allow.end()
 908 #    else /* C code */
 909 #      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
 910 #      define SWIG_PYTHON_THREAD_END_BLOCK     PyGILState_Release(_swig_thread_block)
 911 #      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   PyThreadState *_swig_thread_allow = PyEval_SaveThread()
 912 #      define SWIG_PYTHON_THREAD_END_ALLOW     PyEval_RestoreThread(_swig_thread_allow)
 913 #    endif
 914 #  else /* Old thread way, not implemented, user must provide it */
 915 #    if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
 916 #      define SWIG_PYTHON_INITIALIZE_THREADS
 917 #    endif
 918 #    if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
 919 #      define SWIG_PYTHON_THREAD_BEGIN_BLOCK
 920 #    endif
 921 #    if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
 922 #      define SWIG_PYTHON_THREAD_END_BLOCK
 923 #    endif
 924 #    if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
 925 #      define SWIG_PYTHON_THREAD_BEGIN_ALLOW
 926 #    endif
 927 #    if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
 928 #      define SWIG_PYTHON_THREAD_END_ALLOW
 929 #    endif
 930 #  endif
 931 #else /* No thread support */
 932 #  define SWIG_PYTHON_INITIALIZE_THREADS
 933 #  define SWIG_PYTHON_THREAD_BEGIN_BLOCK
 934 #  define SWIG_PYTHON_THREAD_END_BLOCK
 935 #  define SWIG_PYTHON_THREAD_BEGIN_ALLOW
 936 #  define SWIG_PYTHON_THREAD_END_ALLOW
 937 #endif
 938 
 939 /* -----------------------------------------------------------------------------
 940  * Python API portion that goes into the runtime
 941  * ----------------------------------------------------------------------------- */
 942 
 943 #ifdef __cplusplus
 944 extern "C" {
 945 #if 0
 946 } /* cc-mode */
 947 #endif
 948 #endif
 949 
 950 /* -----------------------------------------------------------------------------
 951  * Constant declarations
 952  * ----------------------------------------------------------------------------- */
 953 
 954 /* Constant Types */
 955 #define SWIG_PY_POINTER 4
 956 #define SWIG_PY_BINARY  5
 957 
 958 /* Constant information structure */
 959 typedef struct swig_const_info {
 960   int type;
 961   char *name;
 962   long lvalue;
 963   double dvalue;
 964   void   *pvalue;
 965   swig_type_info **ptype;
 966 } swig_const_info;
 967 
 968 #ifdef __cplusplus
 969 #if 0
 970 { /* cc-mode */
 971 #endif
 972 }
 973 #endif
 974 
 975 
 976 /* -----------------------------------------------------------------------------
 977  * See the LICENSE file for information on copyright, usage and redistribution
 978  * of SWIG, and the README file for authors - http://www.swig.org/release.html.
 979  *
 980  * pyrun.swg
 981  *
 982  * This file contains the runtime support for Python modules
 983  * and includes code for managing global variables and pointer
 984  * type checking.
 985  *
 986  * ----------------------------------------------------------------------------- */
 987 
 988 /* Common SWIG API */
 989 
 990 /* for raw pointers */
 991 #define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
 992 #define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Python_ConvertPtr(obj, pptr, type, flags)
 993 #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
 994 #define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(ptr, type, flags)
 995 #define SWIG_CheckImplicit(ty)                          SWIG_Python_CheckImplicit(ty) 
 996 #define SWIG_AcquirePtr(ptr, src)                       SWIG_Python_AcquirePtr(ptr, src)
 997 #define swig_owntype                                    int
 998 
 999 /* for raw packed data */
1000 #define SWIG_ConvertPacked(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1001 #define SWIG_NewPackedObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)
1002 
1003 /* for class or struct pointers */
1004 #define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
1005 #define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)
1006 
1007 /* for C or C++ function pointers */
1008 #define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
1009 #define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Python_NewPointerObj(ptr, type, 0)
1010 
1011 /* for C++ member pointers, ie, member methods */
1012 #define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1013 #define SWIG_NewMemberObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)
1014 
1015 
1016 /* Runtime API */
1017 
1018 #define SWIG_GetModule(clientdata)                      SWIG_Python_GetModule()
1019 #define SWIG_SetModule(clientdata, pointer)             SWIG_Python_SetModule(pointer)
1020 #define SWIG_NewClientData(obj)                         PySwigClientData_New(obj)
1021 
1022 #define SWIG_SetErrorObj                                SWIG_Python_SetErrorObj                            
1023 #define SWIG_SetErrorMsg                                SWIG_Python_SetErrorMsg                            
1024 #define SWIG_ErrorType(code)                            SWIG_Python_ErrorType(code)                        
1025 #define SWIG_Error(code, msg)                           SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) 
1026 #define SWIG_fail                                       goto fail                                          
1027 
1028 
1029 /* Runtime API implementation */
1030 
1031 /* Error manipulation */
1032 
1033 SWIGINTERN void 
1034 SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
     /* [<][>][^][v][top][bottom][index][help] */
1035   SWIG_PYTHON_THREAD_BEGIN_BLOCK; 
1036   PyErr_SetObject(errtype, obj);
1037   Py_DECREF(obj);
1038   SWIG_PYTHON_THREAD_END_BLOCK;
1039 }
1040 
1041 SWIGINTERN void 
1042 SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
     /* [<][>][^][v][top][bottom][index][help] */
1043   SWIG_PYTHON_THREAD_BEGIN_BLOCK;
1044   PyErr_SetString(errtype, (char *) msg);
1045   SWIG_PYTHON_THREAD_END_BLOCK;
1046 }
1047 
1048 #define SWIG_Python_Raise(obj, type, desc)  SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj)
1049 
1050 /* Set a constant value */
1051 
1052 SWIGINTERN void
1053 SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {   
     /* [<][>][^][v][top][bottom][index][help] */
1054   PyDict_SetItemString(d, (char*) name, obj);
1055   Py_DECREF(obj);                            
1056 }
1057 
1058 /* Append a value to the result obj */
1059 
1060 SWIGINTERN PyObject*
1061 SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
     /* [<][>][^][v][top][bottom][index][help] */
1062 #if !defined(SWIG_PYTHON_OUTPUT_TUPLE)
1063   if (!result) {
1064     result = obj;
1065   } else if (result == Py_None) {
1066     Py_DECREF(result);
1067     result = obj;
1068   } else {
1069     if (!PyList_Check(result)) {
1070       PyObject *o2 = result;
1071       result = PyList_New(1);
1072       PyList_SetItem(result, 0, o2);
1073     }
1074     PyList_Append(result,obj);
1075     Py_DECREF(obj);
1076   }
1077   return result;
1078 #else
1079   PyObject*   o2;
1080   PyObject*   o3;
1081   if (!result) {
1082     result = obj;
1083   } else if (result == Py_None) {
1084     Py_DECREF(result);
1085     result = obj;
1086   } else {
1087     if (!PyTuple_Check(result)) {
1088       o2 = result;
1089       result = PyTuple_New(1);
1090       PyTuple_SET_ITEM(result, 0, o2);
1091     }
1092     o3 = PyTuple_New(1);
1093     PyTuple_SET_ITEM(o3, 0, obj);
1094     o2 = result;
1095     result = PySequence_Concat(o2, o3);
1096     Py_DECREF(o2);
1097     Py_DECREF(o3);
1098   }
1099   return result;
1100 #endif
1101 }
1102 
1103 /* Unpack the argument tuple */
1104 
1105 SWIGINTERN int
1106 SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
     /* [<][>][^][v][top][bottom][index][help] */
1107 {
1108   if (!args) {
1109     if (!min && !max) {
1110       return 1;
1111     } else {
1112       PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", 
1113                    name, (min == max ? "" : "at least "), (int)min);
1114       return 0;
1115     }
1116   }  
1117   if (!PyTuple_Check(args)) {
1118     PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
1119     return 0;
1120   } else {
1121     register Py_ssize_t l = PyTuple_GET_SIZE(args);
1122     if (l < min) {
1123       PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
1124                    name, (min == max ? "" : "at least "), (int)min, (int)l);
1125       return 0;
1126     } else if (l > max) {
1127       PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
1128                    name, (min == max ? "" : "at most "), (int)max, (int)l);
1129       return 0;
1130     } else {
1131       register int i;
1132       for (i = 0; i < l; ++i) {
1133         objs[i] = PyTuple_GET_ITEM(args, i);
1134       }
1135       for (; l < max; ++l) {
1136         objs[l] = 0;
1137       }
1138       return i + 1;
1139     }    
1140   }
1141 }
1142 
1143 /* A functor is a function object with one single object argument */
1144 #if PY_VERSION_HEX >= 0x02020000
1145 #define SWIG_Python_CallFunctor(functor, obj)           PyObject_CallFunctionObjArgs(functor, obj, NULL);
1146 #else
1147 #define SWIG_Python_CallFunctor(functor, obj)           PyObject_CallFunction(functor, "O", obj);
1148 #endif
1149 
1150 /*
1151   Helper for static pointer initialization for both C and C++ code, for example
1152   static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...);
1153 */
1154 #ifdef __cplusplus
1155 #define SWIG_STATIC_POINTER(var)  var
1156 #else
1157 #define SWIG_STATIC_POINTER(var)  var = 0; if (!var) var
1158 #endif
1159 
1160 /* -----------------------------------------------------------------------------
1161  * Pointer declarations
1162  * ----------------------------------------------------------------------------- */
1163 
1164 /* Flags for new pointer objects */
1165 #define SWIG_POINTER_NOSHADOW       (SWIG_POINTER_OWN      << 1)
1166 #define SWIG_POINTER_NEW            (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)
1167 
1168 #define SWIG_POINTER_IMPLICIT_CONV  (SWIG_POINTER_DISOWN   << 1)
1169 
1170 #ifdef __cplusplus
1171 extern "C" {
1172 #if 0
1173 } /* cc-mode */
1174 #endif
1175 #endif
1176 
1177 /*  How to access Py_None */
1178 #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
1179 #  ifndef SWIG_PYTHON_NO_BUILD_NONE
1180 #    ifndef SWIG_PYTHON_BUILD_NONE
1181 #      define SWIG_PYTHON_BUILD_NONE
1182 #    endif
1183 #  endif
1184 #endif
1185 
1186 #ifdef SWIG_PYTHON_BUILD_NONE
1187 #  ifdef Py_None
1188 #   undef Py_None
1189 #   define Py_None SWIG_Py_None()
1190 #  endif
1191 SWIGRUNTIMEINLINE PyObject * 
1192 _SWIG_Py_None(void)
     /* [<][>][^][v][top][bottom][index][help] */
1193 {
1194   PyObject *none = Py_BuildValue((char*)"");
1195   Py_DECREF(none);
1196   return none;
1197 }
1198 SWIGRUNTIME PyObject * 
1199 SWIG_Py_None(void)
     /* [<][>][^][v][top][bottom][index][help] */
1200 {
1201   static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None();
1202   return none;
1203 }
1204 #endif
1205 
1206 /* The python void return value */
1207 
1208 SWIGRUNTIMEINLINE PyObject * 
1209 SWIG_Py_Void(void)
     /* [<][>][^][v][top][bottom][index][help] */
1210 {
1211   PyObject *none = Py_None;
1212   Py_INCREF(none);
1213   return none;
1214 }
1215 
1216 /* PySwigClientData */
1217 
1218 typedef struct {
1219   PyObject *klass;
1220   PyObject *newraw;
1221   PyObject *newargs;
1222   PyObject *destroy;
1223   int delargs;
1224   int implicitconv;
1225 } PySwigClientData;
1226 
1227 SWIGRUNTIMEINLINE int 
1228 SWIG_Python_CheckImplicit(swig_type_info *ty)
     /* [<][>][^][v][top][bottom][index][help] */
1229 {
1230   PySwigClientData *data = (PySwigClientData *)ty->clientdata;
1231   return data ? data->implicitconv : 0;
1232 }
1233 
1234 SWIGRUNTIMEINLINE PyObject *
1235 SWIG_Python_ExceptionType(swig_type_info *desc) {
     /* [<][>][^][v][top][bottom][index][help] */
1236   PySwigClientData *data = desc ? (PySwigClientData *) desc->clientdata : 0;
1237   PyObject *klass = data ? data->klass : 0;
1238   return (klass ? klass : PyExc_RuntimeError);
1239 }
1240 
1241 
1242 SWIGRUNTIME PySwigClientData * 
1243 PySwigClientData_New(PyObject* obj)
     /* [<][>][^][v][top][bottom][index][help] */
1244 {
1245   if (!obj) {
1246     return 0;
1247   } else {
1248     PySwigClientData *data = (PySwigClientData *)malloc(sizeof(PySwigClientData));
1249     /* the klass element */
1250     data->klass = obj;
1251     Py_INCREF(data->klass);
1252     /* the newraw method and newargs arguments used to create a new raw instance */
1253     if (PyClass_Check(obj)) {
1254       data->newraw = 0;
1255       data->newargs = obj;
1256       Py_INCREF(obj);
1257     } else {
1258 #if (PY_VERSION_HEX < 0x02020000)
1259       data->newraw = 0;
1260 #else
1261       data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__");
1262 #endif
1263       if (data->newraw) {
1264         Py_INCREF(data->newraw);
1265         data->newargs = PyTuple_New(1);
1266         PyTuple_SetItem(data->newargs, 0, obj);
1267       } else {
1268         data->newargs = obj;
1269       }
1270       Py_INCREF(data->newargs);
1271     }
1272     /* the destroy method, aka as the C++ delete method */
1273     data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__");
1274     if (PyErr_Occurred()) {
1275       PyErr_Clear();
1276       data->destroy = 0;
1277     }
1278     if (data->destroy) {
1279       int flags;
1280       Py_INCREF(data->destroy);
1281       flags = PyCFunction_GET_FLAGS(data->destroy);
1282 #ifdef METH_O
1283       data->delargs = !(flags & (METH_O));
1284 #else
1285       data->delargs = 0;
1286 #endif
1287     } else {
1288       data->delargs = 0;
1289     }
1290     data->implicitconv = 0;
1291     return data;
1292   }
1293 }
1294 
1295 SWIGRUNTIME void 
1296 PySwigClientData_Del(PySwigClientData* data)
     /* [<][>][^][v][top][bottom][index][help] */
1297 {
1298   Py_XDECREF(data->newraw);
1299   Py_XDECREF(data->newargs);
1300   Py_XDECREF(data->destroy);
1301 }
1302 
1303 /* =============== PySwigObject =====================*/
1304 
1305 typedef struct {
1306   PyObject_HEAD
1307   void *ptr;
1308   swig_type_info *ty;
1309   int own;
1310   PyObject *next;
1311 } PySwigObject;
1312 
1313 SWIGRUNTIME PyObject *
1314 PySwigObject_long(PySwigObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1315 {
1316   return PyLong_FromVoidPtr(v->ptr);
1317 }
1318 
1319 SWIGRUNTIME PyObject *
1320 PySwigObject_format(const char* fmt, PySwigObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1321 {
1322   PyObject *res = NULL;
1323   PyObject *args = PyTuple_New(1);
1324   if (args) {
1325     if (PyTuple_SetItem(args, 0, PySwigObject_long(v)) == 0) {
1326       PyObject *ofmt = PyString_FromString(fmt);
1327       if (ofmt) {
1328         res = PyString_Format(ofmt,args);
1329         Py_DECREF(ofmt);
1330       }
1331       Py_DECREF(args);
1332     }
1333   }
1334   return res;
1335 }
1336 
1337 SWIGRUNTIME PyObject *
1338 PySwigObject_oct(PySwigObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1339 {
1340   return PySwigObject_format("%o",v);
1341 }
1342 
1343 SWIGRUNTIME PyObject *
1344 PySwigObject_hex(PySwigObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1345 {
1346   return PySwigObject_format("%x",v);
1347 }
1348 
1349 SWIGRUNTIME PyObject *
1350 #ifdef METH_NOARGS
1351 PySwigObject_repr(PySwigObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1352 #else
1353 PySwigObject_repr(PySwigObject *v, PyObject *args)
1354 #endif
1355 {
1356   const char *name = SWIG_TypePrettyName(v->ty);
1357   PyObject *hex = PySwigObject_hex(v);    
1358   PyObject *repr = PyString_FromFormat("<Swig Object of type '%s' at 0x%s>", name, PyString_AsString(hex));
1359   Py_DECREF(hex);
1360   if (v->next) {
1361 #ifdef METH_NOARGS
1362     PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next);
1363 #else
1364     PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next, args);
1365 #endif
1366     PyString_ConcatAndDel(&repr,nrep);
1367   }
1368   return repr;  
1369 }
1370 
1371 SWIGRUNTIME int
1372 PySwigObject_print(PySwigObject *v, FILE *fp, int SWIGUNUSEDPARM(flags))
     /* [<][>][^][v][top][bottom][index][help] */
1373 {
1374 #ifdef METH_NOARGS
1375   PyObject *repr = PySwigObject_repr(v);
1376 #else
1377   PyObject *repr = PySwigObject_repr(v, NULL);
1378 #endif
1379   if (repr) {
1380     fputs(PyString_AsString(repr), fp);
1381     Py_DECREF(repr);
1382     return 0; 
1383   } else {
1384     return 1; 
1385   }
1386 }
1387 
1388 SWIGRUNTIME PyObject *
1389 PySwigObject_str(PySwigObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1390 {
1391   char result[SWIG_BUFFER_SIZE];
1392   return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ?
1393     PyString_FromString(result) : 0;
1394 }
1395 
1396 SWIGRUNTIME int
1397 PySwigObject_compare(PySwigObject *v, PySwigObject *w)
     /* [<][>][^][v][top][bottom][index][help] */
1398 {
1399   void *i = v->ptr;
1400   void *j = w->ptr;
1401   return (i < j) ? -1 : ((i > j) ? 1 : 0);
1402 }
1403 
1404 SWIGRUNTIME PyTypeObject* _PySwigObject_type(void);
1405 
1406 SWIGRUNTIME PyTypeObject*
1407 PySwigObject_type(void) {
     /* [<][>][^][v][top][bottom][index][help] */
1408   static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type();
1409   return type;
1410 }
1411 
1412 SWIGRUNTIMEINLINE int
1413 PySwigObject_Check(PyObject *op) {
     /* [<][>][^][v][top][bottom][index][help] */
1414   return ((op)->ob_type == PySwigObject_type())
1415     || (strcmp((op)->ob_type->tp_name,"PySwigObject") == 0);
1416 }
1417 
1418 SWIGRUNTIME PyObject *
1419 PySwigObject_New(void *ptr, swig_type_info *ty, int own);
1420 
1421 SWIGRUNTIME void
1422 PySwigObject_dealloc(PyObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1423 {
1424   PySwigObject *sobj = (PySwigObject *) v;
1425   PyObject *next = sobj->next;
1426   if (sobj->own == SWIG_POINTER_OWN) {
1427     swig_type_info *ty = sobj->ty;
1428     PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
1429     PyObject *destroy = data ? data->destroy : 0;
1430     if (destroy) {
1431       /* destroy is always a VARARGS method */
1432       PyObject *res;
1433       if (data->delargs) {
1434         /* we need to create a temporal object to carry the destroy operation */
1435         PyObject *tmp = PySwigObject_New(sobj->ptr, ty, 0);
1436         res = SWIG_Python_CallFunctor(destroy, tmp);
1437         Py_DECREF(tmp);
1438       } else {
1439         PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
1440         PyObject *mself = PyCFunction_GET_SELF(destroy);
1441         res = ((*meth)(mself, v));
1442       }
1443       Py_XDECREF(res);
1444     } 
1445 #if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
1446     else {
1447       const char *name = SWIG_TypePrettyName(ty);
1448       printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
1449     }
1450 #endif
1451   } 
1452   Py_XDECREF(next);
1453   PyObject_DEL(v);
1454 }
1455 
1456 SWIGRUNTIME PyObject* 
1457 PySwigObject_append(PyObject* v, PyObject* next)
     /* [<][>][^][v][top][bottom][index][help] */
1458 {
1459   PySwigObject *sobj = (PySwigObject *) v;
1460 #ifndef METH_O
1461   PyObject *tmp = 0;
1462   if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL;
1463   next = tmp;
1464 #endif
1465   if (!PySwigObject_Check(next)) {
1466     return NULL;
1467   }
1468   sobj->next = next;
1469   Py_INCREF(next);
1470   return SWIG_Py_Void();
1471 }
1472 
1473 SWIGRUNTIME PyObject* 
1474 #ifdef METH_NOARGS
1475 PySwigObject_next(PyObject* v)
     /* [<][>][^][v][top][bottom][index][help] */
1476 #else
1477 PySwigObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1478 #endif
1479 {
1480   PySwigObject *sobj = (PySwigObject *) v;
1481   if (sobj->next) {    
1482     Py_INCREF(sobj->next);
1483     return sobj->next;
1484   } else {
1485     return SWIG_Py_Void();
1486   }
1487 }
1488 
1489 SWIGINTERN PyObject*
1490 #ifdef METH_NOARGS
1491 PySwigObject_disown(PyObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1492 #else
1493 PySwigObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1494 #endif
1495 {
1496   PySwigObject *sobj = (PySwigObject *)v;
1497   sobj->own = 0;
1498   return SWIG_Py_Void();
1499 }
1500 
1501 SWIGINTERN PyObject*
1502 #ifdef METH_NOARGS
1503 PySwigObject_acquire(PyObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1504 #else
1505 PySwigObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1506 #endif
1507 {
1508   PySwigObject *sobj = (PySwigObject *)v;
1509   sobj->own = SWIG_POINTER_OWN;
1510   return SWIG_Py_Void();
1511 }
1512 
1513 SWIGINTERN PyObject*
1514 PySwigObject_own(PyObject *v, PyObject *args)
     /* [<][>][^][v][top][bottom][index][help] */
1515 {
1516   PyObject *val = 0;
1517 #if (PY_VERSION_HEX < 0x02020000)
1518   if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
1519 #else
1520   if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) 
1521 #endif
1522     {
1523       return NULL;
1524     } 
1525   else
1526     {
1527       PySwigObject *sobj = (PySwigObject *)v;
1528       PyObject *obj = PyBool_FromLong(sobj->own);
1529       if (val) {
1530 #ifdef METH_NOARGS
1531         if (PyObject_IsTrue(val)) {
1532           PySwigObject_acquire(v);
1533         } else {
1534           PySwigObject_disown(v);
1535         }
1536 #else
1537         if (PyObject_IsTrue(val)) {
1538           PySwigObject_acquire(v,args);
1539         } else {
1540           PySwigObject_disown(v,args);
1541         }
1542 #endif
1543       } 
1544       return obj;
1545     }
1546 }
1547 
1548 #ifdef METH_O
1549 static PyMethodDef
1550 swigobject_methods[] = {
1551   {(char *)"disown",  (PyCFunction)PySwigObject_disown,  METH_NOARGS,  (char *)"releases ownership of the pointer"},
1552   {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_NOARGS,  (char *)"aquires ownership of the pointer"},
1553   {(char *)"own",     (PyCFunction)PySwigObject_own,     METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
1554   {(char *)"append",  (PyCFunction)PySwigObject_append,  METH_O,       (char *)"appends another 'this' object"},
1555   {(char *)"next",    (PyCFunction)PySwigObject_next,    METH_NOARGS,  (char *)"returns the next 'this' object"},
1556   {(char *)"__repr__",(PyCFunction)PySwigObject_repr,    METH_NOARGS,  (char *)"returns object representation"},
1557   {0, 0, 0, 0}  
1558 };
1559 #else
1560 static PyMethodDef
1561 swigobject_methods[] = {
1562   {(char *)"disown",  (PyCFunction)PySwigObject_disown,  METH_VARARGS,  (char *)"releases ownership of the pointer"},
1563   {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_VARARGS,  (char *)"aquires ownership of the pointer"},
1564   {(char *)"own",     (PyCFunction)PySwigObject_own,     METH_VARARGS,  (char *)"returns/sets ownership of the pointer"},
1565   {(char *)"append",  (PyCFunction)PySwigObject_append,  METH_VARARGS,  (char *)"appends another 'this' object"},
1566   {(char *)"next",    (PyCFunction)PySwigObject_next,    METH_VARARGS,  (char *)"returns the next 'this' object"},
1567   {(char *)"__repr__",(PyCFunction)PySwigObject_repr,   METH_VARARGS,  (char *)"returns object representation"},
1568   {0, 0, 0, 0}  
1569 };
1570 #endif
1571 
1572 #if PY_VERSION_HEX < 0x02020000
1573 SWIGINTERN PyObject *
1574 PySwigObject_getattr(PySwigObject *sobj,char *name)
     /* [<][>][^][v][top][bottom][index][help] */
1575 {
1576   return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name);
1577 }
1578 #endif
1579 
1580 SWIGRUNTIME PyTypeObject*
1581 _PySwigObject_type(void) {
     /* [<][>][^][v][top][bottom][index][help] */
1582   static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
1583   
1584   static PyNumberMethods PySwigObject_as_number = {
1585     (binaryfunc)0, /*nb_add*/
1586     (binaryfunc)0, /*nb_subtract*/
1587     (binaryfunc)0, /*nb_multiply*/
1588     (binaryfunc)0, /*nb_divide*/
1589     (binaryfunc)0, /*nb_remainder*/
1590     (binaryfunc)0, /*nb_divmod*/
1591     (ternaryfunc)0,/*nb_power*/
1592     (unaryfunc)0,  /*nb_negative*/
1593     (unaryfunc)0,  /*nb_positive*/
1594     (unaryfunc)0,  /*nb_absolute*/
1595     (inquiry)0,    /*nb_nonzero*/
1596     0,             /*nb_invert*/
1597     0,             /*nb_lshift*/
1598     0,             /*nb_rshift*/
1599     0,             /*nb_and*/
1600     0,             /*nb_xor*/
1601     0,             /*nb_or*/
1602     (coercion)0,   /*nb_coerce*/
1603     (unaryfunc)PySwigObject_long, /*nb_int*/
1604     (unaryfunc)PySwigObject_long, /*nb_long*/
1605     (unaryfunc)0,                 /*nb_float*/
1606     (unaryfunc)PySwigObject_oct,  /*nb_oct*/
1607     (unaryfunc)PySwigObject_hex,  /*nb_hex*/
1608 #if PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
1609     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
1610 #elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */
1611     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
1612 #elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */
1613     0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
1614 #endif
1615   };
1616 
1617   static PyTypeObject pyswigobject_type;  
1618   static int type_init = 0;
1619   if (!type_init) {
1620     const PyTypeObject tmp
1621       = {
1622         PyObject_HEAD_INIT(NULL)
1623         0,                                  /* ob_size */
1624         (char *)"PySwigObject",             /* tp_name */
1625         sizeof(PySwigObject),               /* tp_basicsize */
1626         0,                                  /* tp_itemsize */
1627         (destructor)PySwigObject_dealloc,   /* tp_dealloc */
1628         (printfunc)PySwigObject_print,      /* tp_print */
1629 #if PY_VERSION_HEX < 0x02020000
1630         (getattrfunc)PySwigObject_getattr,  /* tp_getattr */ 
1631 #else
1632         (getattrfunc)0,                     /* tp_getattr */ 
1633 #endif
1634         (setattrfunc)0,                     /* tp_setattr */ 
1635         (cmpfunc)PySwigObject_compare,      /* tp_compare */ 
1636         (reprfunc)PySwigObject_repr,        /* tp_repr */    
1637         &PySwigObject_as_number,            /* tp_as_number */
1638         0,                                  /* tp_as_sequence */
1639         0,                                  /* tp_as_mapping */
1640         (hashfunc)0,                        /* tp_hash */
1641         (ternaryfunc)0,                     /* tp_call */
1642         (reprfunc)PySwigObject_str,         /* tp_str */
1643         PyObject_GenericGetAttr,            /* tp_getattro */
1644         0,                                  /* tp_setattro */
1645         0,                                  /* tp_as_buffer */
1646         Py_TPFLAGS_DEFAULT,                 /* tp_flags */
1647         swigobject_doc,                     /* tp_doc */        
1648         0,                                  /* tp_traverse */
1649         0,                                  /* tp_clear */
1650         0,                                  /* tp_richcompare */
1651         0,                                  /* tp_weaklistoffset */
1652 #if PY_VERSION_HEX >= 0x02020000
1653         0,                                  /* tp_iter */
1654         0,                                  /* tp_iternext */
1655         swigobject_methods,                 /* tp_methods */ 
1656         0,                                  /* tp_members */
1657         0,                                  /* tp_getset */             
1658         0,                                  /* tp_base */               
1659         0,                                  /* tp_dict */               
1660         0,                                  /* tp_descr_get */          
1661         0,                                  /* tp_descr_set */          
1662         0,                                  /* tp_dictoffset */         
1663         0,                                  /* tp_init */               
1664         0,                                  /* tp_alloc */              
1665         0,                                  /* tp_new */                
1666         0,                                  /* tp_free */          
1667         0,                                  /* tp_is_gc */  
1668         0,                                  /* tp_bases */   
1669         0,                                  /* tp_mro */
1670         0,                                  /* tp_cache */   
1671         0,                                  /* tp_subclasses */
1672         0,                                  /* tp_weaklist */
1673 #endif
1674 #if PY_VERSION_HEX >= 0x02030000
1675         0,                                  /* tp_del */
1676 #endif
1677 #ifdef COUNT_ALLOCS
1678         0,0,0,0                             /* tp_alloc -> tp_next */
1679 #endif
1680       };
1681     pyswigobject_type = tmp;
1682     pyswigobject_type.ob_type = &PyType_Type;
1683     type_init = 1;
1684   }
1685   return &pyswigobject_type;
1686 }
1687 
1688 SWIGRUNTIME PyObject *
1689 PySwigObject_New(void *ptr, swig_type_info *ty, int own)
     /* [<][>][^][v][top][bottom][index][help] */
1690 {
1691   PySwigObject *sobj = PyObject_NEW(PySwigObject, PySwigObject_type());
1692   if (sobj) {
1693     sobj->ptr  = ptr;
1694     sobj->ty   = ty;
1695     sobj->own  = own;
1696     sobj->next = 0;
1697   }
1698   return (PyObject *)sobj;
1699 }
1700 
1701 /* -----------------------------------------------------------------------------
1702  * Implements a simple Swig Packed type, and use it instead of string
1703  * ----------------------------------------------------------------------------- */
1704 
1705 typedef struct {
1706   PyObject_HEAD
1707   void *pack;
1708   swig_type_info *ty;
1709   size_t size;
1710 } PySwigPacked;
1711 
1712 SWIGRUNTIME int
1713 PySwigPacked_print(PySwigPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
     /* [<][>][^][v][top][bottom][index][help] */
1714 {
1715   char result[SWIG_BUFFER_SIZE];
1716   fputs("<Swig Packed ", fp); 
1717   if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
1718     fputs("at ", fp); 
1719     fputs(result, fp); 
1720   }
1721   fputs(v->ty->name,fp); 
1722   fputs(">", fp);
1723   return 0; 
1724 }
1725   
1726 SWIGRUNTIME PyObject *
1727 PySwigPacked_repr(PySwigPacked *v)
     /* [<][>][^][v][top][bottom][index][help] */
1728 {
1729   char result[SWIG_BUFFER_SIZE];
1730   if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
1731     return PyString_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
1732   } else {
1733     return PyString_FromFormat("<Swig Packed %s>", v->ty->name);
1734   }  
1735 }
1736 
1737 SWIGRUNTIME PyObject *
1738 PySwigPacked_str(PySwigPacked *v)
     /* [<][>][^][v][top][bottom][index][help] */
1739 {
1740   char result[SWIG_BUFFER_SIZE];
1741   if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
1742     return PyString_FromFormat("%s%s", result, v->ty->name);
1743   } else {
1744     return PyString_FromString(v->ty->name);
1745   }  
1746 }
1747 
1748 SWIGRUNTIME int
1749 PySwigPacked_compare(PySwigPacked *v, PySwigPacked *w)
     /* [<][>][^][v][top][bottom][index][help] */
1750 {
1751   size_t i = v->size;
1752   size_t j = w->size;
1753   int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
1754   return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
1755 }
1756 
1757 SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void);
1758 
1759 SWIGRUNTIME PyTypeObject*
1760 PySwigPacked_type(void) {
     /* [<][>][^][v][top][bottom][index][help] */
1761   static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type();
1762   return type;
1763 }
1764 
1765 SWIGRUNTIMEINLINE int
1766 PySwigPacked_Check(PyObject *op) {
     /* [<][>][^][v][top][bottom][index][help] */
1767   return ((op)->ob_type == _PySwigPacked_type()) 
1768     || (strcmp((op)->ob_type->tp_name,"PySwigPacked") == 0);
1769 }
1770 
1771 SWIGRUNTIME void
1772 PySwigPacked_dealloc(PyObject *v)
     /* [<][>][^][v][top][bottom][index][help] */
1773 {
1774   if (PySwigPacked_Check(v)) {
1775     PySwigPacked *sobj = (PySwigPacked *) v;
1776     free(sobj->pack);
1777   }
1778   PyObject_DEL(v);
1779 }
1780 
1781 SWIGRUNTIME PyTypeObject*
1782 _PySwigPacked_type(void) {
     /* [<][>][^][v][top][bottom][index][help] */
1783   static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
1784   static PyTypeObject pyswigpacked_type;
1785   static int type_init = 0;  
1786   if (!type_init) {
1787     const PyTypeObject tmp
1788       = {
1789         PyObject_HEAD_INIT(NULL)
1790         0,                                  /* ob_size */       
1791         (char *)"PySwigPacked",             /* tp_name */       
1792         sizeof(PySwigPacked),               /* tp_basicsize */  
1793         0,                                  /* tp_itemsize */   
1794         (destructor)PySwigPacked_dealloc,   /* tp_dealloc */    
1795         (printfunc)PySwigPacked_print,      /* tp_print */      
1796         (getattrfunc)0,                     /* tp_getattr */    
1797         (setattrfunc)0,                     /* tp_setattr */    
1798         (cmpfunc)PySwigPacked_compare,      /* tp_compare */    
1799         (reprfunc)PySwigPacked_repr,        /* tp_repr */       
1800         0,                                  /* tp_as_number */  
1801         0,                                  /* tp_as_sequence */
1802         0,                                  /* tp_as_mapping */ 
1803         (hashfunc)0,                        /* tp_hash */       
1804         (ternaryfunc)0,                     /* tp_call */       
1805         (reprfunc)PySwigPacked_str,         /* tp_str */        
1806         PyObject_GenericGetAttr,            /* tp_getattro */
1807         0,                                  /* tp_setattro */
1808         0,                                  /* tp_as_buffer */
1809         Py_TPFLAGS_DEFAULT,                 /* tp_flags */
1810         swigpacked_doc,                     /* tp_doc */
1811         0,                                  /* tp_traverse */
1812         0,                                  /* tp_clear */
1813         0,                                  /* tp_richcompare */
1814         0,                                  /* tp_weaklistoffset */
1815 #if PY_VERSION_HEX >= 0x02020000
1816         0,                                  /* tp_iter */
1817         0,                                  /* tp_iternext */
1818         0,                                  /* tp_methods */ 
1819         0,                                  /* tp_members */
1820         0,                                  /* tp_getset */             
1821         0,                                  /* tp_base */               
1822         0,                                  /* tp_dict */               
1823         0,                                  /* tp_descr_get */          
1824         0,                                  /* tp_descr_set */          
1825         0,                                  /* tp_dictoffset */         
1826         0,                                  /* tp_init */               
1827         0,                                  /* tp_alloc */              
1828         0,                                  /* tp_new */                
1829         0,                                  /* tp_free */          
1830         0,                                  /* tp_is_gc */  
1831         0,                                  /* tp_bases */   
1832         0,                                  /* tp_mro */
1833         0,                                  /* tp_cache */   
1834         0,                                  /* tp_subclasses */
1835         0,                                  /* tp_weaklist */
1836 #endif
1837 #if PY_VERSION_HEX >= 0x02030000
1838         0,                                  /* tp_del */
1839 #endif
1840 #ifdef COUNT_ALLOCS
1841         0,0,0,0                             /* tp_alloc -> tp_next */
1842 #endif
1843       };
1844     pyswigpacked_type = tmp;
1845     pyswigpacked_type.ob_type = &PyType_Type;
1846     type_init = 1;
1847   }
1848   return &pyswigpacked_type;
1849 }
1850 
1851 SWIGRUNTIME PyObject *
1852 PySwigPacked_New(void *ptr, size_t size, swig_type_info *ty)
     /* [<][>][^][v][top][bottom][index][help] */
1853 {
1854   PySwigPacked *sobj = PyObject_NEW(PySwigPacked, PySwigPacked_type());
1855   if (sobj) {
1856     void *pack = malloc(size);
1857     if (pack) {
1858       memcpy(pack, ptr, size);
1859       sobj->pack = pack;
1860       sobj->ty   = ty;
1861       sobj->size = size;
1862     } else {
1863       PyObject_DEL((PyObject *) sobj);
1864       sobj = 0;
1865     }
1866   }
1867   return (PyObject *) sobj;
1868 }
1869 
1870 SWIGRUNTIME swig_type_info *
1871 PySwigPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
     /* [<][>][^][v][top][bottom][index][help] */
1872 {
1873   if (PySwigPacked_Check(obj)) {
1874     PySwigPacked *sobj = (PySwigPacked *)obj;
1875     if (sobj->size != size) return 0;
1876     memcpy(ptr, sobj->pack, size);
1877     return sobj->ty;
1878   } else {
1879     return 0;
1880   }
1881 }
1882 
1883 /* -----------------------------------------------------------------------------
1884  * pointers/data manipulation
1885  * ----------------------------------------------------------------------------- */
1886 
1887 SWIGRUNTIMEINLINE PyObject *
1888 _SWIG_This(void)
     /* [<][>][^][v][top][bottom][index][help] */
1889 {
1890   return PyString_FromString("this");
1891 }
1892 
1893 SWIGRUNTIME PyObject *
1894 SWIG_This(void)
     /* [<][>][^][v][top][bottom][index][help] */
1895 {
1896   static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This();
1897   return swig_this;
1898 }
1899 
1900 /* #define SWIG_PYTHON_SLOW_GETSET_THIS */
1901 
1902 SWIGRUNTIME PySwigObject *
1903 SWIG_Python_GetSwigThis(PyObject *pyobj) 
     /* [<][>][^][v][top][bottom][index][help] */
1904 {
1905   if (PySwigObject_Check(pyobj)) {
1906     return (PySwigObject *) pyobj;
1907   } else {
1908     PyObject *obj = 0;
1909 #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000))
1910     if (PyInstance_Check(pyobj)) {
1911       obj = _PyInstance_Lookup(pyobj, SWIG_This());      
1912     } else {
1913       PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
1914       if (dictptr != NULL) {
1915         PyObject *dict = *dictptr;
1916         obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
1917       } else {
1918 #ifdef PyWeakref_CheckProxy
1919         if (PyWeakref_CheckProxy(pyobj)) {
1920           PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
1921           return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
1922         }
1923 #endif
1924         obj = PyObject_GetAttr(pyobj,SWIG_This());
1925         if (obj) {
1926           Py_DECREF(obj);
1927         } else {
1928           if (PyErr_Occurred()) PyErr_Clear();
1929           return 0;
1930         }
1931       }
1932     }
1933 #else
1934     obj = PyObject_GetAttr(pyobj,SWIG_This());
1935     if (obj) {
1936       Py_DECREF(obj);
1937     } else {
1938       if (PyErr_Occurred()) PyErr_Clear();
1939       return 0;
1940     }
1941 #endif
1942     if (obj && !PySwigObject_Check(obj)) {
1943       /* a PyObject is called 'this', try to get the 'real this'
1944          PySwigObject from it */ 
1945       return SWIG_Python_GetSwigThis(obj);
1946     }
1947     return (PySwigObject *)obj;
1948   }
1949 }
1950 
1951 /* Acquire a pointer value */
1952 
1953 SWIGRUNTIME int
1954 SWIG_Python_AcquirePtr(PyObject *obj, int own) {
     /* [<][>][^][v][top][bottom][index][help] */
1955   if (own == SWIG_POINTER_OWN) {
1956     PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
1957     if (sobj) {
1958       int oldown = sobj->own;
1959       sobj->own = own;
1960       return oldown;
1961     }
1962   }
1963   return 0;
1964 }
1965 
1966 /* Convert a pointer value */
1967 
1968 SWIGRUNTIME int
1969 SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
     /* [<][>][^][v][top][bottom][index][help] */
1970   if (!obj) return SWIG_ERROR;
1971   if (obj == Py_None) {
1972     if (ptr) *ptr = 0;
1973     return SWIG_OK;
1974   } else {
1975     PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
1976     if (own)
1977       *own = 0;
1978     while (sobj) {
1979       void *vptr = sobj->ptr;
1980       if (ty) {
1981         swig_type_info *to = sobj->ty;
1982         if (to == ty) {
1983           /* no type cast needed */
1984           if (ptr) *ptr = vptr;
1985           break;
1986         } else {
1987           swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
1988           if (!tc) {
1989             sobj = (PySwigObject *)sobj->next;
1990           } else {
1991             if (ptr) {
1992               int newmemory = 0;
1993               *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
1994               if (newmemory == SWIG_CAST_NEW_MEMORY) {
1995                 assert(own);
1996                 if (own)
1997                   *own = *own | SWIG_CAST_NEW_MEMORY;
1998               }
1999             }
2000             break;
2001           }
2002         }
2003       } else {
2004         if (ptr) *ptr = vptr;
2005         break;
2006       }
2007     }
2008     if (sobj) {
2009       if (own)
2010         *own = *own | sobj->own;
2011       if (flags & SWIG_POINTER_DISOWN) {
2012         sobj->own = 0;
2013       }
2014       return SWIG_OK;
2015     } else {
2016       int res = SWIG_ERROR;
2017       if (flags & SWIG_POINTER_IMPLICIT_CONV) {
2018         PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
2019         if (data && !data->implicitconv) {
2020           PyObject *klass = data->klass;
2021           if (klass) {
2022             PyObject *impconv;
2023             data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
2024             impconv = SWIG_Python_CallFunctor(klass, obj);
2025             data->implicitconv = 0;
2026             if (PyErr_Occurred()) {
2027               PyErr_Clear();
2028               impconv = 0;
2029             }
2030             if (impconv) {
2031               PySwigObject *iobj = SWIG_Python_GetSwigThis(impconv);
2032               if (iobj) {
2033                 void *vptr;
2034                 res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
2035                 if (SWIG_IsOK(res)) {
2036                   if (ptr) {
2037                     *ptr = vptr;
2038                     /* transfer the ownership to 'ptr' */
2039                     iobj->own = 0;
2040                     res = SWIG_AddCast(res);
2041                     res = SWIG_AddNewMask(res);
2042                   } else {
2043                     res = SWIG_AddCast(res);                
2044                   }
2045                 }
2046               }
2047               Py_DECREF(impconv);
2048             }
2049           }
2050         }
2051       }
2052       return res;
2053     }
2054   }
2055 }
2056 
2057 /* Convert a function ptr value */
2058 
2059 SWIGRUNTIME int
2060 SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
     /* [<][>][^][v][top][bottom][index][help] */
2061   if (!PyCFunction_Check(obj)) {
2062     return SWIG_ConvertPtr(obj, ptr, ty, 0);
2063   } else {
2064     void *vptr = 0;
2065     
2066     /* here we get the method pointer for callbacks */
2067     const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
2068     const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
2069     if (desc) {
2070       desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
2071       if (!desc) return SWIG_ERROR;
2072     }
2073     if (ty) {
2074       swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
2075       if (tc) {
2076         int newmemory = 0;
2077         *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
2078         assert(!newmemory); /* newmemory handling not yet implemented */
2079       } else {
2080         return SWIG_ERROR;
2081       }
2082     } else {
2083       *ptr = vptr;
2084     }
2085     return SWIG_OK;
2086   }
2087 }
2088 
2089 /* Convert a packed value value */
2090 
2091 SWIGRUNTIME int
2092 SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
     /* [<][>][^][v][top][bottom][index][help] */
2093   swig_type_info *to = PySwigPacked_UnpackData(obj, ptr, sz);
2094   if (!to) return SWIG_ERROR;
2095   if (ty) {
2096     if (to != ty) {
2097       /* check type cast? */
2098       swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
2099       if (!tc) return SWIG_ERROR;
2100     }
2101   }
2102   return SWIG_OK;
2103 }  
2104 
2105 /* -----------------------------------------------------------------------------
2106  * Create a new pointer object
2107  * ----------------------------------------------------------------------------- */
2108 
2109 /*
2110   Create a new instance object, whitout calling __init__, and set the
2111   'this' attribute.
2112 */
2113 
2114 SWIGRUNTIME PyObject* 
2115 SWIG_Python_NewShadowInstance(PySwigClientData *data, PyObject *swig_this)
     /* [<][>][^][v][top][bottom][index][help] */
2116 {
2117 #if (PY_VERSION_HEX >= 0x02020000)
2118   PyObject *inst = 0;
2119   PyObject *newraw = data->newraw;
2120   if (newraw) {
2121     inst = PyObject_Call(newraw, data->newargs, NULL);
2122     if (inst) {
2123 #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2124       PyObject **dictptr = _PyObject_GetDictPtr(inst);
2125       if (dictptr != NULL) {
2126         PyObject *dict = *dictptr;
2127         if (dict == NULL) {
2128           dict = PyDict_New();
2129           *dictptr = dict;
2130           PyDict_SetItem(dict, SWIG_This(), swig_this);
2131         }
2132       }
2133 #else
2134       PyObject *key = SWIG_This();
2135       PyObject_SetAttr(inst, key, swig_this);
2136 #endif
2137     }
2138   } else {
2139     PyObject *dict = PyDict_New();
2140     PyDict_SetItem(dict, SWIG_This(), swig_this);
2141     inst = PyInstance_NewRaw(data->newargs, dict);
2142     Py_DECREF(dict);
2143   }
2144   return inst;
2145 #else
2146 #if (PY_VERSION_HEX >= 0x02010000)
2147   PyObject *inst;
2148   PyObject *dict = PyDict_New();
2149   PyDict_SetItem(dict, SWIG_This(), swig_this);
2150   inst = PyInstance_NewRaw(data->newargs, dict);
2151   Py_DECREF(dict);
2152   return (PyObject *) inst;
2153 #else
2154   PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type);
2155   if (inst == NULL) {
2156     return NULL;
2157   }
2158   inst->in_class = (PyClassObject *)data->newargs;
2159   Py_INCREF(inst->in_class);
2160   inst->in_dict = PyDict_New();
2161   if (inst->in_dict == NULL) {
2162     Py_DECREF(inst);
2163     return NULL;
2164   }
2165 #ifdef Py_TPFLAGS_HAVE_WEAKREFS
2166   inst->in_weakreflist = NULL;
2167 #endif
2168 #ifdef Py_TPFLAGS_GC
2169   PyObject_GC_Init(inst);
2170 #endif
2171   PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this);
2172   return (PyObject *) inst;
2173 #endif
2174 #endif
2175 }
2176 
2177 SWIGRUNTIME void
2178 SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
     /* [<][>][^][v][top][bottom][index][help] */
2179 {
2180  PyObject *dict;
2181 #if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2182  PyObject **dictptr = _PyObject_GetDictPtr(inst);
2183  if (dictptr != NULL) {
2184    dict = *dictptr;
2185    if (dict == NULL) {
2186      dict = PyDict_New();
2187      *dictptr = dict;
2188    }
2189    PyDict_SetItem(dict, SWIG_This(), swig_this);
2190    return;
2191  }
2192 #endif
2193  dict = PyObject_GetAttrString(inst, (char*)"__dict__");
2194  PyDict_SetItem(dict, SWIG_This(), swig_this);
2195  Py_DECREF(dict);
2196 } 
2197 
2198 
2199 SWIGINTERN PyObject *
2200 SWIG_Python_InitShadowInstance(PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
2201   PyObject *obj[2];
2202   if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) {
2203     return NULL;
2204   } else {
2205     PySwigObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
2206     if (sthis) {
2207       PySwigObject_append((PyObject*) sthis, obj[1]);
2208     } else {
2209       SWIG_Python_SetSwigThis(obj[0], obj[1]);
2210     }
2211     return SWIG_Py_Void();
2212   }
2213 }
2214 
2215 /* Create a new pointer object */
2216 
2217 SWIGRUNTIME PyObject *
2218 SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
     /* [<][>][^][v][top][bottom][index][help] */
2219   if (!ptr) {
2220     return SWIG_Py_Void();
2221   } else {
2222     int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
2223     PyObject *robj = PySwigObject_New(ptr, type, own);
2224     PySwigClientData *clientdata = type ? (PySwigClientData *)(type->clientdata) : 0;
2225     if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
2226       PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
2227       if (inst) {
2228         Py_DECREF(robj);
2229         robj = inst;
2230       }
2231     }
2232     return robj;
2233   }
2234 }
2235 
2236 /* Create a new packed object */
2237 
2238 SWIGRUNTIMEINLINE PyObject *
2239 SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
     /* [<][>][^][v][top][bottom][index][help] */
2240   return ptr ? PySwigPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
2241 }
2242 
2243 /* -----------------------------------------------------------------------------*
2244  *  Get type list 
2245  * -----------------------------------------------------------------------------*/
2246 
2247 #ifdef SWIG_LINK_RUNTIME
2248 void *SWIG_ReturnGlobalTypeList(void *);
2249 #endif
2250 
2251 SWIGRUNTIME swig_module_info *
2252 SWIG_Python_GetModule(void) {
     /* [<][>][^][v][top][bottom][index][help] */
2253   static void *type_pointer = (void *)0;
2254   /* first check if module already created */
2255   if (!type_pointer) {
2256 #ifdef SWIG_LINK_RUNTIME
2257     type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
2258 #else
2259     type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
2260                                     (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
2261     if (PyErr_Occurred()) {
2262       PyErr_Clear();
2263       type_pointer = (void *)0;
2264     }
2265 #endif
2266   }
2267   return (swig_module_info *) type_pointer;
2268 }
2269 
2270 #if PY_MAJOR_VERSION < 2
2271 /* PyModule_AddObject function was introduced in Python 2.0.  The following function
2272    is copied out of Python/modsupport.c in python version 2.3.4 */
2273 SWIGINTERN int
2274 PyModule_AddObject(PyObject *m, char *name, PyObject *o)
     /* [<][>][^][v][top][bottom][index][help] */
2275 {
2276   PyObject *dict;
2277   if (!PyModule_Check(m)) {
2278     PyErr_SetString(PyExc_TypeError,
2279                     "PyModule_AddObject() needs module as first arg");
2280     return SWIG_ERROR;
2281   }
2282   if (!o) {
2283     PyErr_SetString(PyExc_TypeError,
2284                     "PyModule_AddObject() needs non-NULL value");
2285     return SWIG_ERROR;
2286   }
2287   
2288   dict = PyModule_GetDict(m);
2289   if (dict == NULL) {
2290     /* Internal error -- modules must have a dict! */
2291     PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
2292                  PyModule_GetName(m));
2293     return SWIG_ERROR;
2294   }
2295   if (PyDict_SetItemString(dict, name, o))
2296     return SWIG_ERROR;
2297   Py_DECREF(o);
2298   return SWIG_OK;
2299 }
2300 #endif
2301 
2302 SWIGRUNTIME void
2303 SWIG_Python_DestroyModule(void *vptr)
     /* [<][>][^][v][top][bottom][index][help] */
2304 {
2305   swig_module_info *swig_module = (swig_module_info *) vptr;
2306   swig_type_info **types = swig_module->types;
2307   size_t i;
2308   for (i =0; i < swig_module->size; ++i) {
2309     swig_type_info *ty = types[i];
2310     if (ty->owndata) {
2311       PySwigClientData *data = (PySwigClientData *) ty->clientdata;
2312       if (data) PySwigClientData_Del(data);
2313     }
2314   }
2315   Py_DECREF(SWIG_This());
2316 }
2317 
2318 SWIGRUNTIME void
2319 SWIG_Python_SetModule(swig_module_info *swig_module) {
     /* [<][>][^][v][top][bottom][index][help] */
2320   static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */
2321 
2322   PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
2323                                    swig_empty_runtime_method_table);
2324   PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
2325   if (pointer && module) {
2326     PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
2327   } else {
2328     Py_XDECREF(pointer);
2329   }
2330 }
2331 
2332 /* The python cached type query */
2333 SWIGRUNTIME PyObject *
2334 SWIG_Python_TypeCache(void) {
     /* [<][>][^][v][top][bottom][index][help] */
2335   static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New();
2336   return cache;
2337 }
2338 
2339 SWIGRUNTIME swig_type_info *
2340 SWIG_Python_TypeQuery(const char *type)
     /* [<][>][^][v][top][bottom][index][help] */
2341 {
2342   PyObject *cache = SWIG_Python_TypeCache();
2343   PyObject *key = PyString_FromString(type); 
2344   PyObject *obj = PyDict_GetItem(cache, key);
2345   swig_type_info *descriptor;
2346   if (obj) {
2347     descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
2348   } else {
2349     swig_module_info *swig_module = SWIG_Python_GetModule();
2350     descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
2351     if (descriptor) {
2352       obj = PyCObject_FromVoidPtr(descriptor, NULL);
2353       PyDict_SetItem(cache, key, obj);
2354       Py_DECREF(obj);
2355     }
2356   }
2357   Py_DECREF(key);
2358   return descriptor;
2359 }
2360 
2361 /* 
2362    For backward compatibility only
2363 */
2364 #define SWIG_POINTER_EXCEPTION  0
2365 #define SWIG_arg_fail(arg)      SWIG_Python_ArgFail(arg)
2366 #define SWIG_MustGetPtr(p, type, argnum, flags)  SWIG_Python_MustGetPtr(p, type, argnum, flags)
2367 
2368 SWIGRUNTIME int
2369 SWIG_Python_AddErrMesg(const char* mesg, int infront)
     /* [<][>][^][v][top][bottom][index][help] */
2370 {
2371   if (PyErr_Occurred()) {
2372     PyObject *type = 0;
2373     PyObject *value = 0;
2374     PyObject *traceback = 0;
2375     PyErr_Fetch(&type, &value, &traceback);
2376     if (value) {
2377       PyObject *old_str = PyObject_Str(value);
2378       Py_XINCREF(type);
2379       PyErr_Clear();
2380       if (infront) {
2381         PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str));
2382       } else {
2383         PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
2384       }
2385       Py_DECREF(old_str);
2386     }
2387     return 1;
2388   } else {
2389     return 0;
2390   }
2391 }
2392   
2393 SWIGRUNTIME int
2394 SWIG_Python_ArgFail(int argnum)
     /* [<][>][^][v][top][bottom][index][help] */
2395 {
2396   if (PyErr_Occurred()) {
2397     /* add information about failing argument */
2398     char mesg[256];
2399     PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
2400     return SWIG_Python_AddErrMesg(mesg, 1);
2401   } else {
2402     return 0;
2403   }
2404 }
2405 
2406 SWIGRUNTIMEINLINE const char *
2407 PySwigObject_GetDesc(PyObject *self)
     /* [<][>][^][v][top][bottom][index][help] */
2408 {
2409   PySwigObject *v = (PySwigObject *)self;
2410   swig_type_info *ty = v ? v->ty : 0;
2411   return ty ? ty->str : (char*)"";
2412 }
2413 
2414 SWIGRUNTIME void
2415 SWIG_Python_TypeError(const char *type, PyObject *obj)
     /* [<][>][^][v][top][bottom][index][help] */
2416 {
2417   if (type) {
2418 #if defined(SWIG_COBJECT_TYPES)
2419     if (obj && PySwigObject_Check(obj)) {
2420       const char *otype = (const char *) PySwigObject_GetDesc(obj);
2421       if (otype) {
2422         PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PySwigObject(%s)' is received",
2423                      type, otype);
2424         return;
2425       }
2426     } else 
2427 #endif      
2428     {
2429       const char *otype = (obj ? obj->ob_type->tp_name : 0); 
2430       if (otype) {
2431         PyObject *str = PyObject_Str(obj);
2432         const char *cstr = str ? PyString_AsString(str) : 0;
2433         if (cstr) {
2434           PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
2435                        type, otype, cstr);
2436         } else {
2437           PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
2438                        type, otype);
2439         }
2440         Py_XDECREF(str);
2441         return;
2442       }
2443     }   
2444     PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
2445   } else {
2446     PyErr_Format(PyExc_TypeError, "unexpected type is received");
2447   }
2448 }
2449 
2450 
2451 /* Convert a pointer value, signal an exception on a type mismatch */
2452 SWIGRUNTIME void *
2453 SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {
     /* [<][>][^][v][top][bottom][index][help] */
2454   void *result;
2455   if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
2456     PyErr_Clear();
2457     if (flags & SWIG_POINTER_EXCEPTION) {
2458       SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
2459       SWIG_Python_ArgFail(argnum);
2460     }
2461   }
2462   return result;
2463 }
2464 
2465 
2466 #ifdef __cplusplus
2467 #if 0
2468 { /* cc-mode */
2469 #endif
2470 }
2471 #endif
2472 
2473 
2474 
2475 #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) 
2476 
2477 #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else 
2478 
2479 
2480 
2481 void push_object(PyObject **stack, PyObject *o)
     /* [<][>][^][v][top][bottom][index][help] */
2482 {
2483         if ((!*stack) || (*stack == Py_None)) {
2484                 *stack = o;
2485         } else {
2486                 PyObject *o2, *o3;
2487                 if (!PyTuple_Check(*stack)) {
2488                         o2 = *stack;
2489                         *stack = PyTuple_New(1);
2490                         PyTuple_SetItem(*stack,0,o2);
2491                 }
2492                 o3 = PyTuple_New(1);
2493                 PyTuple_SetItem(o3,0,o);
2494                 o2 = *stack;
2495                 *stack = PySequence_Concat(o2,o3);
2496                 Py_DECREF(o2);
2497                 Py_DECREF(o3);
2498         }
2499 }
2500 
2501 
2502 /* -------- TYPES TABLE (BEGIN) -------- */
2503 
2504 #define SWIGTYPE_p_BSTR swig_types[0]
2505 #define SWIGTYPE_p_IEnumWbemClassObject swig_types[1]
2506 #define SWIGTYPE_p_IUnknown swig_types[2]
2507 #define SWIGTYPE_p_IWbemContext swig_types[3]
2508 #define SWIGTYPE_p_IWbemServices swig_types[4]
2509 #define SWIGTYPE_p_TALLOC_CTX swig_types[5]
2510 #define SWIGTYPE_p_char swig_types[6]
2511 #define SWIGTYPE_p_com_context swig_types[7]
2512 #define SWIGTYPE_p_int swig_types[8]
2513 #define SWIGTYPE_p_long_long swig_types[9]
2514 #define SWIGTYPE_p_p_IEnumWbemClassObject swig_types[10]
2515 #define SWIGTYPE_p_p_IWbemServices swig_types[11]
2516 #define SWIGTYPE_p_p_WbemClassObject swig_types[12]
2517 #define SWIGTYPE_p_short swig_types[13]
2518 #define SWIGTYPE_p_signed_char swig_types[14]
2519 #define SWIGTYPE_p_unsigned_char swig_types[15]
2520 #define SWIGTYPE_p_unsigned_int swig_types[16]
2521 #define SWIGTYPE_p_unsigned_long_long swig_types[17]
2522 #define SWIGTYPE_p_unsigned_short swig_types[18]
2523 static swig_type_info *swig_types[20];
2524 static swig_module_info swig_module = {swig_types, 19, 0, 0, 0, 0};
2525 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
2526 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
2527 
2528 /* -------- TYPES TABLE (END) -------- */
2529 
2530 #if (PY_VERSION_HEX <= 0x02000000)
2531 # if !defined(SWIG_PYTHON_CLASSIC)
2532 #  error "This python version requires swig to be run with the '-classic' option"
2533 # endif
2534 #endif
2535 #if (PY_VERSION_HEX <= 0x02020000)
2536 # error "This python version requires swig to be run with the '-nomodern' option"
2537 #endif
2538 #if (PY_VERSION_HEX <= 0x02020000)
2539 # error "This python version requires swig to be run with the '-nomodernargs' option"
2540 #endif
2541 #ifndef METH_O
2542 # error "This python version requires swig to be run with the '-nofastunpack' option"
2543 #endif
2544 #ifdef SWIG_TypeQuery
2545 # undef SWIG_TypeQuery
2546 #endif
2547 #define SWIG_TypeQuery SWIG_Python_TypeQuery
2548 
2549 /*-----------------------------------------------
2550               @(target):= _wmi.so
2551   ------------------------------------------------*/
2552 #define SWIG_init    init_wmi
2553 
2554 #define SWIG_name    "_wmi"
2555 
2556 #define SWIGVERSION 0x010336 
2557 #define SWIG_VERSION SWIGVERSION
2558 
2559 
2560 #define SWIG_as_voidptr(a) (void *)((const void *)(a)) 
2561 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) 
2562 
2563 
2564 #include "libcli/util/pyerrors.h"
2565 
2566 
2567 #include "includes.h"
2568 #include "librpc/gen_ndr/misc.h"
2569 #include "librpc/rpc/dcerpc.h"
2570 #include "lib/com/dcom/dcom.h"
2571 #include "librpc/gen_ndr/com_dcom.h"
2572 #include "lib/wmi/wmi.h"
2573 
2574 
2575 WERROR WBEM_ConnectServer(struct com_context *ctx, const char *server, const char *nspace, const char *user, const char *password, 
2576         const char *locale, uint32_t flags, const char *authority, struct IWbemContext* wbem_ctx, struct IWbemServices** services);
2577 WERROR IEnumWbemClassObject_SmartNext(struct IEnumWbemClassObject *d, TALLOC_CTX *mem_ctx, int32_t lTimeout,uint32_t uCount, 
2578         struct WbemClassObject **apObjects, uint32_t *puReturned);
2579 
2580 static PyObject *PyObject_FromCVAR(uint32_t cimtype, union CIMVAR *cvar);
2581 static PyObject *PySWbemObject_FromWbemClassObject(struct WbemClassObject *wco);
2582 
2583 static struct com_context *com_ctx;
2584 static PyObject *ComError;
2585 static PyObject *mod_win32_client;
2586 static PyObject *mod_pywintypes;
2587 
2588 typedef struct IUnknown IUnknown;
2589 typedef struct IWbemServices IWbemServices;
2590 typedef struct IWbemClassObject IWbemClassObject;
2591 typedef struct IEnumWbemClassObject IEnumWbemClassObject;
2592 
2593 
2594 SWIGINTERN swig_type_info*
2595 SWIG_pchar_descriptor(void)
     /* [<][>][^][v][top][bottom][index][help] */
2596 {
2597   static int init = 0;
2598   static swig_type_info* info = 0;
2599   if (!init) {
2600     info = SWIG_TypeQuery("_p_char");
2601     init = 1;
2602   }
2603   return info;
2604 }
2605 
2606 
2607 SWIGINTERN int
2608 SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
     /* [<][>][^][v][top][bottom][index][help] */
2609 {
2610   if (PyString_Check(obj)) {
2611     char *cstr; Py_ssize_t len;
2612     PyString_AsStringAndSize(obj, &cstr, &len);
2613     if (cptr)  {
2614       if (alloc) {
2615         /* 
2616            In python the user should not be able to modify the inner
2617            string representation. To warranty that, if you define
2618            SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
2619            buffer is always returned.
2620 
2621            The default behavior is just to return the pointer value,
2622            so, be careful.
2623         */ 
2624 #if defined(SWIG_PYTHON_SAFE_CSTRINGS)
2625         if (*alloc != SWIG_OLDOBJ) 
2626 #else
2627         if (*alloc == SWIG_NEWOBJ) 
2628 #endif
2629           {
2630             *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
2631             *alloc = SWIG_NEWOBJ;
2632           }
2633         else {
2634           *cptr = cstr;
2635           *alloc = SWIG_OLDOBJ;
2636         }
2637       } else {
2638         *cptr = PyString_AsString(obj);
2639       }
2640     }
2641     if (psize) *psize = len + 1;
2642     return SWIG_OK;
2643   } else {
2644     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
2645     if (pchar_descriptor) {
2646       void* vptr = 0;
2647       if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
2648         if (cptr) *cptr = (char *) vptr;
2649         if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
2650         if (alloc) *alloc = SWIG_OLDOBJ;
2651         return SWIG_OK;
2652       }
2653     }
2654   }
2655   return SWIG_TypeError;
2656 }
2657 
2658 
2659 
2660 
2661 
2662 #include <limits.h>
2663 #if !defined(SWIG_NO_LLONG_MAX)
2664 # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
2665 #   define LLONG_MAX __LONG_LONG_MAX__
2666 #   define LLONG_MIN (-LLONG_MAX - 1LL)
2667 #   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
2668 # endif
2669 #endif
2670 
2671 
2672 SWIGINTERN int
2673 SWIG_AsVal_double (PyObject *obj, double *val)
     /* [<][>][^][v][top][bottom][index][help] */
2674 {
2675   int res = SWIG_TypeError;
2676   if (PyFloat_Check(obj)) {
2677     if (val) *val = PyFloat_AsDouble(obj);
2678     return SWIG_OK;
2679   } else if (PyInt_Check(obj)) {
2680     if (val) *val = PyInt_AsLong(obj);
2681     return SWIG_OK;
2682   } else if (PyLong_Check(obj)) {
2683     double v = PyLong_AsDouble(obj);
2684     if (!PyErr_Occurred()) {
2685       if (val) *val = v;
2686       return SWIG_OK;
2687     } else {
2688       PyErr_Clear();
2689     }
2690   }
2691 #ifdef SWIG_PYTHON_CAST_MODE
2692   {
2693     int dispatch = 0;
2694     double d = PyFloat_AsDouble(obj);
2695     if (!PyErr_Occurred()) {
2696       if (val) *val = d;
2697       return SWIG_AddCast(SWIG_OK);
2698     } else {
2699       PyErr_Clear();
2700     }
2701     if (!dispatch) {
2702       long v = PyLong_AsLong(obj);
2703       if (!PyErr_Occurred()) {
2704         if (val) *val = v;
2705         return SWIG_AddCast(SWIG_AddCast(SWIG_OK));
2706       } else {
2707         PyErr_Clear();
2708       }
2709     }
2710   }
2711 #endif
2712   return res;
2713 }
2714 
2715 
2716 #include <float.h>
2717 
2718 
2719 #include <math.h>
2720 
2721 
2722 SWIGINTERNINLINE int
2723 SWIG_CanCastAsInteger(double *d, double min, double max) {
     /* [<][>][^][v][top][bottom][index][help] */
2724   double x = *d;
2725   if ((min <= x && x <= max)) {
2726    double fx = floor(x);
2727    double cx = ceil(x);
2728    double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
2729    if ((errno == EDOM) || (errno == ERANGE)) {
2730      errno = 0;
2731    } else {
2732      double summ, reps, diff;
2733      if (rd < x) {
2734        diff = x - rd;
2735      } else if (rd > x) {
2736        diff = rd - x;
2737      } else {
2738        return 1;
2739      }
2740      summ = rd + x;
2741      reps = diff/summ;
2742      if (reps < 8*DBL_EPSILON) {
2743        *d = rd;
2744        return 1;
2745      }
2746    }
2747   }
2748   return 0;
2749 }
2750 
2751 
2752 SWIGINTERN int
2753 SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) 
     /* [<][>][^][v][top][bottom][index][help] */
2754 {
2755   if (PyInt_Check(obj)) {
2756     long v = PyInt_AsLong(obj);
2757     if (v >= 0) {
2758       if (val) *val = v;
2759       return SWIG_OK;
2760     } else {
2761       return SWIG_OverflowError;
2762     }
2763   } else if (PyLong_Check(obj)) {
2764     unsigned long v = PyLong_AsUnsignedLong(obj);
2765     if (!PyErr_Occurred()) {
2766       if (val) *val = v;
2767       return SWIG_OK;
2768     } else {
2769       PyErr_Clear();
2770     }
2771   }
2772 #ifdef SWIG_PYTHON_CAST_MODE
2773   {
2774     int dispatch = 0;
2775     unsigned long v = PyLong_AsUnsignedLong(obj);
2776     if (!PyErr_Occurred()) {
2777       if (val) *val = v;
2778       return SWIG_AddCast(SWIG_OK);
2779     } else {
2780       PyErr_Clear();
2781     }
2782     if (!dispatch) {
2783       double d;
2784       int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
2785       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
2786         if (val) *val = (unsigned long)(d);
2787         return res;
2788       }
2789     }
2790   }
2791 #endif
2792   return SWIG_TypeError;
2793 }
2794 
2795 
2796 SWIGINTERN int
2797 SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
     /* [<][>][^][v][top][bottom][index][help] */
2798 {
2799   unsigned long v;
2800   int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
2801   if (SWIG_IsOK(res)) {
2802     if ((v > UINT_MAX)) {
2803       return SWIG_OverflowError;
2804     } else {
2805       if (val) *val = (unsigned int)(v);
2806     }
2807   }  
2808   return res;
2809 }
2810 
2811 
2812   #define SWIG_From_long   PyInt_FromLong 
2813 
2814 
2815 SWIGINTERNINLINE PyObject* 
2816 SWIG_From_unsigned_SS_long  (unsigned long value)
     /* [<][>][^][v][top][bottom][index][help] */
2817 {
2818   return (value > LONG_MAX) ?
2819     PyLong_FromUnsignedLong(value) : PyInt_FromLong((long)(value)); 
2820 }
2821 
2822 
2823 SWIGINTERNINLINE PyObject *
2824 SWIG_From_unsigned_SS_int  (unsigned int value)
     /* [<][>][^][v][top][bottom][index][help] */
2825 {    
2826   return SWIG_From_unsigned_SS_long  (value);
2827 }
2828 
2829 
2830 SWIGINTERN int
2831 SWIG_AsVal_long (PyObject *obj, long* val)
     /* [<][>][^][v][top][bottom][index][help] */
2832 {
2833   if (PyInt_Check(obj)) {
2834     if (val) *val = PyInt_AsLong(obj);
2835     return SWIG_OK;
2836   } else if (PyLong_Check(obj)) {
2837     long v = PyLong_AsLong(obj);
2838     if (!PyErr_Occurred()) {
2839       if (val) *val = v;
2840       return SWIG_OK;
2841     } else {
2842       PyErr_Clear();
2843     }
2844   }
2845 #ifdef SWIG_PYTHON_CAST_MODE
2846   {
2847     int dispatch = 0;
2848     long v = PyInt_AsLong(obj);
2849     if (!PyErr_Occurred()) {
2850       if (val) *val = v;
2851       return SWIG_AddCast(SWIG_OK);
2852     } else {
2853       PyErr_Clear();
2854     }
2855     if (!dispatch) {
2856       double d;
2857       int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
2858       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
2859         if (val) *val = (long)(d);
2860         return res;
2861       }
2862     }
2863   }
2864 #endif
2865   return SWIG_TypeError;
2866 }
2867 
2868 
2869 SWIGINTERN int
2870 SWIG_AsVal_int (PyObject * obj, int *val)
     /* [<][>][^][v][top][bottom][index][help] */
2871 {
2872   long v;
2873   int res = SWIG_AsVal_long (obj, &v);
2874   if (SWIG_IsOK(res)) {
2875     if ((v < INT_MIN || v > INT_MAX)) {
2876       return SWIG_OverflowError;
2877     } else {
2878       if (val) *val = (int)(v);
2879     }
2880   }  
2881   return res;
2882 }
2883 
2884 #ifdef __cplusplus
2885 extern "C" {
2886 #endif
2887 
2888 
2889 #define RETURN_CVAR_ARRAY(fmt, arr) {\
2890         PyObject *l, *o;\
2891         uint32_t i;\
2892 \
2893         if (!arr) {\
2894                 Py_INCREF(Py_None);\
2895                 return Py_None;\
2896         }\
2897         l = PyList_New(arr->count);\
2898         if (!l) return NULL;\
2899         for (i = 0; i < arr->count; ++i) {\
2900                 o = _Py_BuildValue(fmt, arr->item[i]);\
2901                 if (!o) {\
2902                         Py_DECREF(l);\
2903                         return NULL;\
2904                 }\
2905                 PyList_SET_ITEM(l, i, o);\
2906         }\
2907         return l;\
2908 }
2909 
2910 static PyObject *_Py_BuildValue(char *str, ...)
     /* [<][>][^][v][top][bottom][index][help] */
2911 {
2912    PyObject * result = NULL;
2913    va_list lst;
2914    va_start(lst, str);
2915    if (str && *str == 'I') {
2916         uint32_t value = va_arg(lst, uint32_t);
2917         if (value & 0x80000000) {
2918            result = Py_BuildValue("L", (long)value);
2919         } else {
2920            result = Py_BuildValue("i", value);
2921         }
2922    } else {
2923        result = Py_VaBuildValue(str, lst);
2924    }
2925    va_end(lst);
2926    return result;
2927 }
2928 
2929 
2930 static PyObject *PyObject_FromCVAR(uint32_t cimtype, union CIMVAR *cvar)
     /* [<][>][^][v][top][bottom][index][help] */
2931 {
2932         switch (cimtype) {
2933         case CIM_SINT8: return Py_BuildValue("b", cvar->v_sint8);
2934         case CIM_UINT8: return Py_BuildValue("B", cvar->v_uint8);
2935         case CIM_SINT16: return Py_BuildValue("h", cvar->v_sint16);
2936         case CIM_UINT16: return Py_BuildValue("H", cvar->v_uint16);
2937         case CIM_SINT32: return Py_BuildValue("i", cvar->v_sint32);
2938         case CIM_UINT32: return _Py_BuildValue("I", cvar->v_uint32);
2939         case CIM_SINT64: return Py_BuildValue("L", cvar->v_sint64);
2940         case CIM_UINT64: return Py_BuildValue("K", cvar->v_uint64);
2941         case CIM_REAL32: return Py_BuildValue("f", cvar->v_real32);
2942         case CIM_REAL64: return Py_BuildValue("d", cvar->v_real64);
2943         case CIM_BOOLEAN: return Py_BuildValue("h", cvar->v_boolean);
2944         case CIM_STRING: return Py_BuildValue("s", cvar->v_string);
2945         case CIM_DATETIME: return Py_BuildValue("s", cvar->v_datetime);
2946         case CIM_REFERENCE: return Py_BuildValue("s", cvar->v_reference);
2947         case CIM_OBJECT: return PySWbemObject_FromWbemClassObject(cvar->v_object);
2948         case CIM_ARR_SINT8: RETURN_CVAR_ARRAY("b", cvar->a_sint8);
2949         case CIM_ARR_UINT8: RETURN_CVAR_ARRAY("B", cvar->a_uint8);
2950         case CIM_ARR_SINT16: RETURN_CVAR_ARRAY("h", cvar->a_sint16);
2951         case CIM_ARR_UINT16: RETURN_CVAR_ARRAY("H", cvar->a_uint16);
2952         case CIM_ARR_SINT32: RETURN_CVAR_ARRAY("i", cvar->a_sint32);
2953         case CIM_ARR_UINT32: RETURN_CVAR_ARRAY("I", cvar->a_uint32);
2954         case CIM_ARR_SINT64: RETURN_CVAR_ARRAY("L", cvar->a_sint64);
2955         case CIM_ARR_UINT64: RETURN_CVAR_ARRAY("K", cvar->a_uint64);
2956         case CIM_ARR_REAL32: RETURN_CVAR_ARRAY("f", cvar->a_real32);
2957         case CIM_ARR_REAL64: RETURN_CVAR_ARRAY("d", cvar->a_real64);
2958         case CIM_ARR_BOOLEAN: RETURN_CVAR_ARRAY("h", cvar->a_boolean);
2959         case CIM_ARR_STRING: RETURN_CVAR_ARRAY("s", cvar->a_string);
2960         case CIM_ARR_DATETIME: RETURN_CVAR_ARRAY("s", cvar->a_datetime);
2961         case CIM_ARR_REFERENCE: RETURN_CVAR_ARRAY("s", cvar->a_reference);
2962         default:
2963                 {
2964                 char *str;
2965                 str = talloc_asprintf(NULL, "Unsupported CIMTYPE(0x%04X)", cimtype);
2966                 PyErr_SetString(PyExc_RuntimeError, str);
2967                 talloc_free(str);
2968                 return NULL;
2969                 }
2970         }
2971 }
2972 
2973 #undef RETURN_CVAR_ARRAY
2974 
2975 PyObject *PySWbemObject_InitProperites(PyObject *o, struct WbemClassObject *wco)
     /* [<][>][^][v][top][bottom][index][help] */
2976 {
2977         PyObject *properties;
2978         PyObject *addProp;
2979         uint32_t i;
2980         int32_t r;
2981         PyObject *result;
2982 
2983         result = NULL;
2984         properties = PyObject_GetAttrString(o, "Properties_");
2985         if (!properties) return NULL;
2986         addProp = PyObject_GetAttrString(properties, "Add");
2987         if (!addProp) {
2988                 Py_DECREF(properties);
2989                 return NULL;
2990         }
2991 
2992         for (i = 0; i < wco->obj_class->__PROPERTY_COUNT; ++i) {
2993                 PyObject *args, *property;
2994 
2995                 args = Py_BuildValue("(si)", wco->obj_class->properties[i].property.name, wco->obj_class->properties[i].property.desc->cimtype & CIM_TYPEMASK);
2996                 if (!args) goto finish;
2997                 property = PyObject_CallObject(addProp, args);
2998                 Py_DECREF(args);
2999                 if (!property) goto finish;
3000                 if (wco->flags & WCF_INSTANCE) {
3001                         PyObject *value;
3002 
3003                         if (wco->instance->default_flags[i] & 1) {
3004                                 value = Py_None;
3005                                 Py_INCREF(Py_None);
3006                         } else
3007                                 value = PyObject_FromCVAR(wco->obj_class->properties[i].property.desc->cimtype & CIM_TYPEMASK, &wco->instance->data[i]);
3008                         if (!value) {
3009                                 Py_DECREF(property);
3010                                 goto finish;
3011                         }
3012                         r = PyObject_SetAttrString(property, "Value", value);
3013                         Py_DECREF(value);
3014                         if (r == -1) {
3015                                 PyErr_SetString(PyExc_RuntimeError, "Error setting value of property");
3016                                 goto finish;
3017                         }
3018                 }
3019                 Py_DECREF(property);
3020         }
3021 
3022         Py_INCREF(Py_None);
3023         result = Py_None;
3024 finish:
3025         Py_DECREF(addProp);
3026         Py_DECREF(properties);
3027         return result;
3028 }
3029 
3030 static PyObject *PySWbemObject_FromWbemClassObject(struct WbemClassObject *wco)
     /* [<][>][^][v][top][bottom][index][help] */
3031 {
3032         PyObject *swo_class, *swo, *args, *result;
3033 
3034         swo_class = PyObject_GetAttrString(mod_win32_client, "SWbemObject");
3035         if (!swo_class) return NULL;
3036         args = PyTuple_New(0);
3037         if (!args) {
3038                 Py_DECREF(swo_class);
3039                 return NULL;
3040         }
3041         swo = PyObject_CallObject(swo_class, args);
3042         Py_DECREF(args);
3043         Py_DECREF(swo_class);
3044         if (!swo) return NULL;
3045 
3046         result = PySWbemObject_InitProperites(swo, wco);
3047         if (!result) {
3048                 Py_DECREF(swo);
3049                 return NULL;
3050         }
3051         Py_DECREF(result);
3052 
3053         return swo;
3054 }
3055 
3056 
3057 SWIGINTERN PyObject *_wrap_WBEM_ConnectServer(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
     /* [<][>][^][v][top][bottom][index][help] */
3058   PyObject *resultobj = 0;
3059   struct com_context *arg1 = (struct com_context *) 0 ;
3060   char *arg2 = (char *) 0 ;
3061   char *arg3 = (char *) 0 ;
3062   char *arg4 = (char *) 0 ;
3063   char *arg5 = (char *) 0 ;
3064   char *arg6 = (char *) 0 ;
3065   uint32_t arg7 ;
3066   char *arg8 = (char *) 0 ;
3067   struct IWbemContext *arg9 = (struct IWbemContext *) 0 ;
3068   struct IWbemServices **arg10 = (struct IWbemServices **) 0 ;
3069   int res2 ;
3070   char *buf2 = 0 ;
3071   int alloc2 = 0 ;
3072   int res3 ;
3073   char *buf3 = 0 ;
3074   int alloc3 = 0 ;
3075   int res4 ;
3076   char *buf4 = 0 ;
3077   int alloc4 = 0 ;
3078   int res5 ;
3079   char *buf5 = 0 ;
3080   int alloc5 = 0 ;
3081   int res6 ;
3082   char *buf6 = 0 ;
3083   int alloc6 = 0 ;
3084   unsigned int val7 ;
3085   int ecode7 = 0 ;
3086   int res8 ;
3087   char *buf8 = 0 ;
3088   int alloc8 = 0 ;
3089   void *argp9 = 0 ;
3090   int res9 = 0 ;
3091   struct IWbemServices *temp10 ;
3092   PyObject * obj0 = 0 ;
3093   PyObject * obj1 = 0 ;
3094   PyObject * obj2 = 0 ;
3095   PyObject * obj3 = 0 ;
3096   PyObject * obj4 = 0 ;
3097   PyObject * obj5 = 0 ;
3098   PyObject * obj6 = 0 ;
3099   PyObject * obj7 = 0 ;
3100   char *  kwnames[] = {
3101     (char *) "server",(char *) "nspace",(char *) "user",(char *) "password",(char *) "locale",(char *) "flags",(char *) "authority",(char *) "wbem_ctx", NULL 
3102   };
3103   WERROR result;
3104   
3105   {
3106     arg1 = com_ctx;
3107   }
3108   {
3109     arg10 = &temp10;
3110   }
3111   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOOOOO:WBEM_ConnectServer",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
3112   res2 = SWIG_AsCharPtrAndSize(obj0, &buf2, NULL, &alloc2);
3113   if (!SWIG_IsOK(res2)) {
3114     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "WBEM_ConnectServer" "', argument " "2"" of type '" "char const *""'");
3115   }
3116   arg2 = (char *)(buf2);
3117   res3 = SWIG_AsCharPtrAndSize(obj1, &buf3, NULL, &alloc3);
3118   if (!SWIG_IsOK(res3)) {
3119     SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "WBEM_ConnectServer" "', argument " "3"" of type '" "char const *""'");
3120   }
3121   arg3 = (char *)(buf3);
3122   res4 = SWIG_AsCharPtrAndSize(obj2, &buf4, NULL, &alloc4);
3123   if (!SWIG_IsOK(res4)) {
3124     SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "WBEM_ConnectServer" "', argument " "4"" of type '" "char const *""'");
3125   }
3126   arg4 = (char *)(buf4);
3127   res5 = SWIG_AsCharPtrAndSize(obj3, &buf5, NULL, &alloc5);
3128   if (!SWIG_IsOK(res5)) {
3129     SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "WBEM_ConnectServer" "', argument " "5"" of type '" "char const *""'");
3130   }
3131   arg5 = (char *)(buf5);
3132   res6 = SWIG_AsCharPtrAndSize(obj4, &buf6, NULL, &alloc6);
3133   if (!SWIG_IsOK(res6)) {
3134     SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "WBEM_ConnectServer" "', argument " "6"" of type '" "char const *""'");
3135   }
3136   arg6 = (char *)(buf6);
3137   ecode7 = SWIG_AsVal_unsigned_SS_int(obj5, &val7);
3138   if (!SWIG_IsOK(ecode7)) {
3139     SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "WBEM_ConnectServer" "', argument " "7"" of type '" "uint32_t""'");
3140   } 
3141   arg7 = (uint32_t)(val7);
3142   res8 = SWIG_AsCharPtrAndSize(obj6, &buf8, NULL, &alloc8);
3143   if (!SWIG_IsOK(res8)) {
3144     SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "WBEM_ConnectServer" "', argument " "8"" of type '" "char const *""'");
3145   }
3146   arg8 = (char *)(buf8);
3147   res9 = SWIG_ConvertPtr(obj7, &argp9,SWIGTYPE_p_IWbemContext, 0 |  0 );
3148   if (!SWIG_IsOK(res9)) {
3149     SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "WBEM_ConnectServer" "', argument " "9"" of type '" "struct IWbemContext *""'"); 
3150   }
3151   arg9 = (struct IWbemContext *)(argp9);
3152   result = WBEM_ConnectServer(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6,arg7,(char const *)arg8,arg9,arg10);
3153   if (!W_ERROR_IS_OK(result)) {
3154     PyErr_SetWERROR(result);
3155     SWIG_fail;
3156   } else if (resultobj == NULL) {
3157     resultobj = Py_None;
3158   }
3159   {
3160     PyObject *o;
3161     o = SWIG_NewPointerObj(*arg10, SWIGTYPE_p_IWbemServices, 0);
3162     push_object(&resultobj, o);
3163   }
3164   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3165   if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
3166   if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
3167   if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
3168   if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
3169   if (alloc8 == SWIG_NEWOBJ) free((char*)buf8);
3170   return resultobj;
3171 fail:
3172   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3173   if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
3174   if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
3175   if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
3176   if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
3177   if (alloc8 == SWIG_NEWOBJ) free((char*)buf8);
3178   return NULL;
3179 }
3180 
3181 
3182 SWIGINTERN PyObject *_wrap_IUnknown_Release(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3183   PyObject *resultobj = 0;
3184   IUnknown *arg1 = (IUnknown *) 0 ;
3185   TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3186   void *argp1 = 0 ;
3187   int res1 = 0 ;
3188   PyObject *swig_obj[1] ;
3189   uint32_t result;
3190   
3191   arg2 = NULL;
3192   if (!args) SWIG_fail;
3193   swig_obj[0] = args;
3194   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IUnknown, 0 |  0 );
3195   if (!SWIG_IsOK(res1)) {
3196     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IUnknown_Release" "', argument " "1"" of type '" "IUnknown *""'"); 
3197   }
3198   arg1 = (IUnknown *)(argp1);
3199   result = (uint32_t)IUnknown_Release(arg1,arg2);
3200   resultobj = SWIG_From_unsigned_SS_int((unsigned int)(result));
3201   return resultobj;
3202 fail:
3203   return NULL;
3204 }
3205 
3206 
3207 SWIGINTERN PyObject *_wrap_new_IUnknown(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3208   PyObject *resultobj = 0;
3209   IUnknown *result = 0 ;
3210   
3211   if (!SWIG_Python_UnpackTuple(args,"new_IUnknown",0,0,0)) SWIG_fail;
3212   result = (IUnknown *)calloc(1, sizeof(IUnknown));
3213   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IUnknown, SWIG_POINTER_NEW |  0 );
3214   return resultobj;
3215 fail:
3216   return NULL;
3217 }
3218 
3219 
3220 SWIGINTERN PyObject *_wrap_delete_IUnknown(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3221   PyObject *resultobj = 0;
3222   IUnknown *arg1 = (IUnknown *) 0 ;
3223   void *argp1 = 0 ;
3224   int res1 = 0 ;
3225   PyObject *swig_obj[1] ;
3226   
3227   if (!args) SWIG_fail;
3228   swig_obj[0] = args;
3229   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IUnknown, SWIG_POINTER_DISOWN |  0 );
3230   if (!SWIG_IsOK(res1)) {
3231     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IUnknown" "', argument " "1"" of type '" "IUnknown *""'"); 
3232   }
3233   arg1 = (IUnknown *)(argp1);
3234   free((char *) arg1);
3235   resultobj = SWIG_Py_Void();
3236   return resultobj;
3237 fail:
3238   return NULL;
3239 }
3240 
3241 
3242 SWIGINTERN PyObject *IUnknown_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3243   PyObject *obj;
3244   if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
3245   SWIG_TypeNewClientData(SWIGTYPE_p_IUnknown, SWIG_NewClientData(obj));
3246   return SWIG_Py_Void();
3247 }
3248 
3249 SWIGINTERN PyObject *IUnknown_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3250   return SWIG_Python_InitShadowInstance(args);
3251 }
3252 
3253 SWIGINTERN PyObject *_wrap_IWbemServices_ExecQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
     /* [<][>][^][v][top][bottom][index][help] */
3254   PyObject *resultobj = 0;
3255   IWbemServices *arg1 = (IWbemServices *) 0 ;
3256   TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3257   struct BSTR arg3 ;
3258   struct BSTR arg4 ;
3259   int32_t arg5 ;
3260   struct IWbemContext *arg6 = (struct IWbemContext *) 0 ;
3261   struct IEnumWbemClassObject **arg7 = (struct IEnumWbemClassObject **) 0 ;
3262   void *argp1 = 0 ;
3263   int res1 = 0 ;
3264   int val5 ;
3265   int ecode5 = 0 ;
3266   void *argp6 = 0 ;
3267   int res6 = 0 ;
3268   struct IEnumWbemClassObject *temp7 ;
3269   PyObject * obj0 = 0 ;
3270   PyObject * obj1 = 0 ;
3271   PyObject * obj2 = 0 ;
3272   PyObject * obj3 = 0 ;
3273   PyObject * obj4 = 0 ;
3274   char *  kwnames[] = {
3275     (char *) "self",(char *) "strQueryLanguage",(char *) "strQuery",(char *) "lFlags",(char *) "pCtx", NULL 
3276   };
3277   WERROR result;
3278   
3279   arg2 = NULL;
3280   {
3281     arg7 = &temp7;
3282   }
3283   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:IWbemServices_ExecQuery",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
3284   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IWbemServices, 0 |  0 );
3285   if (!SWIG_IsOK(res1)) {
3286     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IWbemServices_ExecQuery" "', argument " "1"" of type '" "IWbemServices *""'"); 
3287   }
3288   arg1 = (IWbemServices *)(argp1);
3289   {
3290     (&arg3)->data = PyString_AsString(obj1);
3291   }
3292   {
3293     (&arg4)->data = PyString_AsString(obj2);
3294   }
3295   ecode5 = SWIG_AsVal_int(obj3, &val5);
3296   if (!SWIG_IsOK(ecode5)) {
3297     SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "IWbemServices_ExecQuery" "', argument " "5"" of type '" "int32_t""'");
3298   } 
3299   arg5 = (int32_t)(val5);
3300   res6 = SWIG_ConvertPtr(obj4, &argp6,SWIGTYPE_p_IWbemContext, 0 |  0 );
3301   if (!SWIG_IsOK(res6)) {
3302     SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "IWbemServices_ExecQuery" "', argument " "6"" of type '" "struct IWbemContext *""'"); 
3303   }
3304   arg6 = (struct IWbemContext *)(argp6);
3305   result = IWbemServices_ExecQuery(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
3306   if (!W_ERROR_IS_OK(result)) {
3307     PyErr_SetWERROR(result);
3308     SWIG_fail;
3309   } else if (resultobj == NULL) {
3310     resultobj = Py_None;
3311   }
3312   {
3313     PyObject *o;
3314     o = SWIG_NewPointerObj(*arg7, SWIGTYPE_p_IEnumWbemClassObject, 0);
3315     push_object(&resultobj, o);
3316   }
3317   return resultobj;
3318 fail:
3319   return NULL;
3320 }
3321 
3322 
3323 SWIGINTERN PyObject *_wrap_IWbemServices_ExecNotificationQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
     /* [<][>][^][v][top][bottom][index][help] */
3324   PyObject *resultobj = 0;
3325   IWbemServices *arg1 = (IWbemServices *) 0 ;
3326   TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3327   struct BSTR arg3 ;
3328   struct BSTR arg4 ;
3329   int32_t arg5 ;
3330   struct IWbemContext *arg6 = (struct IWbemContext *) 0 ;
3331   struct IEnumWbemClassObject **arg7 = (struct IEnumWbemClassObject **) 0 ;
3332   void *argp1 = 0 ;
3333   int res1 = 0 ;
3334   int val5 ;
3335   int ecode5 = 0 ;
3336   void *argp6 = 0 ;
3337   int res6 = 0 ;
3338   struct IEnumWbemClassObject *temp7 ;
3339   PyObject * obj0 = 0 ;
3340   PyObject * obj1 = 0 ;
3341   PyObject * obj2 = 0 ;
3342   PyObject * obj3 = 0 ;
3343   PyObject * obj4 = 0 ;
3344   char *  kwnames[] = {
3345     (char *) "self",(char *) "strQueryLanguage",(char *) "strQuery",(char *) "lFlags",(char *) "pCtx", NULL 
3346   };
3347   WERROR result;
3348   
3349   arg2 = NULL;
3350   {
3351     arg7 = &temp7;
3352   }
3353   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:IWbemServices_ExecNotificationQuery",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
3354   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IWbemServices, 0 |  0 );
3355   if (!SWIG_IsOK(res1)) {
3356     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IWbemServices_ExecNotificationQuery" "', argument " "1"" of type '" "IWbemServices *""'"); 
3357   }
3358   arg1 = (IWbemServices *)(argp1);
3359   {
3360     (&arg3)->data = PyString_AsString(obj1);
3361   }
3362   {
3363     (&arg4)->data = PyString_AsString(obj2);
3364   }
3365   ecode5 = SWIG_AsVal_int(obj3, &val5);
3366   if (!SWIG_IsOK(ecode5)) {
3367     SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "IWbemServices_ExecNotificationQuery" "', argument " "5"" of type '" "int32_t""'");
3368   } 
3369   arg5 = (int32_t)(val5);
3370   res6 = SWIG_ConvertPtr(obj4, &argp6,SWIGTYPE_p_IWbemContext, 0 |  0 );
3371   if (!SWIG_IsOK(res6)) {
3372     SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "IWbemServices_ExecNotificationQuery" "', argument " "6"" of type '" "struct IWbemContext *""'"); 
3373   }
3374   arg6 = (struct IWbemContext *)(argp6);
3375   result = IWbemServices_ExecNotificationQuery(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
3376   if (!W_ERROR_IS_OK(result)) {
3377     PyErr_SetWERROR(result);
3378     SWIG_fail;
3379   } else if (resultobj == NULL) {
3380     resultobj = Py_None;
3381   }
3382   {
3383     PyObject *o;
3384     o = SWIG_NewPointerObj(*arg7, SWIGTYPE_p_IEnumWbemClassObject, 0);
3385     push_object(&resultobj, o);
3386   }
3387   return resultobj;
3388 fail:
3389   return NULL;
3390 }
3391 
3392 
3393 SWIGINTERN PyObject *_wrap_IWbemServices_CreateInstanceEnum(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
     /* [<][>][^][v][top][bottom][index][help] */
3394   PyObject *resultobj = 0;
3395   IWbemServices *arg1 = (IWbemServices *) 0 ;
3396   TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3397   struct BSTR arg3 ;
3398   int32_t arg4 ;
3399   struct IWbemContext *arg5 = (struct IWbemContext *) 0 ;
3400   struct IEnumWbemClassObject **arg6 = (struct IEnumWbemClassObject **) 0 ;
3401   void *argp1 = 0 ;
3402   int res1 = 0 ;
3403   int val4 ;
3404   int ecode4 = 0 ;
3405   void *argp5 = 0 ;
3406   int res5 = 0 ;
3407   struct IEnumWbemClassObject *temp6 ;
3408   PyObject * obj0 = 0 ;
3409   PyObject * obj1 = 0 ;
3410   PyObject * obj2 = 0 ;
3411   PyObject * obj3 = 0 ;
3412   char *  kwnames[] = {
3413     (char *) "self",(char *) "strClass",(char *) "lFlags",(char *) "pCtx", NULL 
3414   };
3415   WERROR result;
3416   
3417   arg2 = NULL;
3418   {
3419     arg6 = &temp6;
3420   }
3421   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOO:IWbemServices_CreateInstanceEnum",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
3422   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IWbemServices, 0 |  0 );
3423   if (!SWIG_IsOK(res1)) {
3424     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IWbemServices_CreateInstanceEnum" "', argument " "1"" of type '" "IWbemServices *""'"); 
3425   }
3426   arg1 = (IWbemServices *)(argp1);
3427   {
3428     (&arg3)->data = PyString_AsString(obj1);
3429   }
3430   ecode4 = SWIG_AsVal_int(obj2, &val4);
3431   if (!SWIG_IsOK(ecode4)) {
3432     SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "IWbemServices_CreateInstanceEnum" "', argument " "4"" of type '" "int32_t""'");
3433   } 
3434   arg4 = (int32_t)(val4);
3435   res5 = SWIG_ConvertPtr(obj3, &argp5,SWIGTYPE_p_IWbemContext, 0 |  0 );
3436   if (!SWIG_IsOK(res5)) {
3437     SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "IWbemServices_CreateInstanceEnum" "', argument " "5"" of type '" "struct IWbemContext *""'"); 
3438   }
3439   arg5 = (struct IWbemContext *)(argp5);
3440   result = IWbemServices_CreateInstanceEnum(arg1,arg2,arg3,arg4,arg5,arg6);
3441   if (!W_ERROR_IS_OK(result)) {
3442     PyErr_SetWERROR(result);
3443     SWIG_fail;
3444   } else if (resultobj == NULL) {
3445     resultobj = Py_None;
3446   }
3447   {
3448     PyObject *o;
3449     o = SWIG_NewPointerObj(*arg6, SWIGTYPE_p_IEnumWbemClassObject, 0);
3450     push_object(&resultobj, o);
3451   }
3452   return resultobj;
3453 fail:
3454   return NULL;
3455 }
3456 
3457 
3458 SWIGINTERN PyObject *_wrap_new_IWbemServices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3459   PyObject *resultobj = 0;
3460   IWbemServices *result = 0 ;
3461   
3462   if (!SWIG_Python_UnpackTuple(args,"new_IWbemServices",0,0,0)) SWIG_fail;
3463   result = (IWbemServices *)calloc(1, sizeof(IWbemServices));
3464   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IWbemServices, SWIG_POINTER_NEW |  0 );
3465   return resultobj;
3466 fail:
3467   return NULL;
3468 }
3469 
3470 
3471 SWIGINTERN PyObject *_wrap_delete_IWbemServices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3472   PyObject *resultobj = 0;
3473   IWbemServices *arg1 = (IWbemServices *) 0 ;
3474   void *argp1 = 0 ;
3475   int res1 = 0 ;
3476   PyObject *swig_obj[1] ;
3477   
3478   if (!args) SWIG_fail;
3479   swig_obj[0] = args;
3480   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IWbemServices, SWIG_POINTER_DISOWN |  0 );
3481   if (!SWIG_IsOK(res1)) {
3482     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IWbemServices" "', argument " "1"" of type '" "IWbemServices *""'"); 
3483   }
3484   arg1 = (IWbemServices *)(argp1);
3485   free((char *) arg1);
3486   resultobj = SWIG_Py_Void();
3487   return resultobj;
3488 fail:
3489   return NULL;
3490 }
3491 
3492 
3493 SWIGINTERN PyObject *IWbemServices_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3494   PyObject *obj;
3495   if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
3496   SWIG_TypeNewClientData(SWIGTYPE_p_IWbemServices, SWIG_NewClientData(obj));
3497   return SWIG_Py_Void();
3498 }
3499 
3500 SWIGINTERN PyObject *IWbemServices_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3501   return SWIG_Python_InitShadowInstance(args);
3502 }
3503 
3504 SWIGINTERN PyObject *_wrap_IEnumWbemClassObject_Reset(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3505   PyObject *resultobj = 0;
3506   IEnumWbemClassObject *arg1 = (IEnumWbemClassObject *) 0 ;
3507   TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3508   void *argp1 = 0 ;
3509   int res1 = 0 ;
3510   PyObject *swig_obj[1] ;
3511   WERROR result;
3512   
3513   arg2 = NULL;
3514   if (!args) SWIG_fail;
3515   swig_obj[0] = args;
3516   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IEnumWbemClassObject, 0 |  0 );
3517   if (!SWIG_IsOK(res1)) {
3518     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IEnumWbemClassObject_Reset" "', argument " "1"" of type '" "IEnumWbemClassObject *""'"); 
3519   }
3520   arg1 = (IEnumWbemClassObject *)(argp1);
3521   result = IEnumWbemClassObject_Reset(arg1,arg2);
3522   if (!W_ERROR_IS_OK(result)) {
3523     PyErr_SetWERROR(result);
3524     SWIG_fail;
3525   } else if (resultobj == NULL) {
3526     resultobj = Py_None;
3527   }
3528   return resultobj;
3529 fail:
3530   return NULL;
3531 }
3532 
3533 
3534 SWIGINTERN PyObject *_wrap_new_IEnumWbemClassObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3535   PyObject *resultobj = 0;
3536   IEnumWbemClassObject *result = 0 ;
3537   
3538   if (!SWIG_Python_UnpackTuple(args,"new_IEnumWbemClassObject",0,0,0)) SWIG_fail;
3539   result = (IEnumWbemClassObject *)calloc(1, sizeof(IEnumWbemClassObject));
3540   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IEnumWbemClassObject, SWIG_POINTER_NEW |  0 );
3541   return resultobj;
3542 fail:
3543   return NULL;
3544 }
3545 
3546 
3547 SWIGINTERN PyObject *_wrap_delete_IEnumWbemClassObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3548   PyObject *resultobj = 0;
3549   IEnumWbemClassObject *arg1 = (IEnumWbemClassObject *) 0 ;
3550   void *argp1 = 0 ;
3551   int res1 = 0 ;
3552   PyObject *swig_obj[1] ;
3553   
3554   if (!args) SWIG_fail;
3555   swig_obj[0] = args;
3556   res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IEnumWbemClassObject, SWIG_POINTER_DISOWN |  0 );
3557   if (!SWIG_IsOK(res1)) {
3558     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IEnumWbemClassObject" "', argument " "1"" of type '" "IEnumWbemClassObject *""'"); 
3559   }
3560   arg1 = (IEnumWbemClassObject *)(argp1);
3561   free((char *) arg1);
3562   resultobj = SWIG_Py_Void();
3563   return resultobj;
3564 fail:
3565   return NULL;
3566 }
3567 
3568 
3569 SWIGINTERN PyObject *IEnumWbemClassObject_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3570   PyObject *obj;
3571   if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
3572   SWIG_TypeNewClientData(SWIGTYPE_p_IEnumWbemClassObject, SWIG_NewClientData(obj));
3573   return SWIG_Py_Void();
3574 }
3575 
3576 SWIGINTERN PyObject *IEnumWbemClassObject_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
     /* [<][>][^][v][top][bottom][index][help] */
3577   return SWIG_Python_InitShadowInstance(args);
3578 }
3579 
3580 SWIGINTERN PyObject *_wrap_IEnumWbemClassObject_SmartNext(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
     /* [<][>][^][v][top][bottom][index][help] */
3581   PyObject *resultobj = 0;
3582   struct IEnumWbemClassObject *arg1 = (struct IEnumWbemClassObject *) 0 ;
3583   TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3584   int32_t arg3 ;
3585   uint32_t arg4 ;
3586   struct WbemClassObject **arg5 = (struct WbemClassObject **) 0 ;
3587   uint32_t *arg6 = (uint32_t *) 0 ;
3588   void *argp1 = 0 ;
3589   int res1 = 0 ;
3590   int val3 ;
3591   int ecode3 = 0 ;
3592   uint32_t uReturned4 ;
3593   PyObject * obj0 = 0 ;
3594   PyObject * obj1 = 0 ;
3595   PyObject * obj2 = 0 ;
3596   char *  kwnames[] = {
3597     (char *) "d",(char *) "lTimeout",(char *) "uCount", NULL 
3598   };
3599   WERROR result;
3600   
3601   arg2 = NULL;
3602   if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:IEnumWbemClassObject_SmartNext",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
3603   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IEnumWbemClassObject, 0 |  0 );
3604   if (!SWIG_IsOK(res1)) {
3605     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IEnumWbemClassObject_SmartNext" "', argument " "1"" of type '" "struct IEnumWbemClassObject *""'"); 
3606   }
3607   arg1 = (struct IEnumWbemClassObject *)(argp1);
3608   ecode3 = SWIG_AsVal_int(obj1, &val3);
3609   if (!SWIG_IsOK(ecode3)) {
3610     SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IEnumWbemClassObject_SmartNext" "', argument " "3"" of type '" "int32_t""'");
3611   } 
3612   arg3 = (int32_t)(val3);
3613   {
3614     if (PyLong_Check(obj2))
3615     arg4 = PyLong_AsUnsignedLong(obj2);
3616     else if (PyInt_Check(obj2))
3617     arg4 = PyInt_AsLong(obj2);
3618     else {
3619       PyErr_SetString(PyExc_TypeError,"Expected a long or an int");
3620       return NULL;
3621     }
3622     arg5 = talloc_array(NULL, struct WbemClassObject *, arg4);
3623     arg6 = &uReturned4;
3624   }
3625   result = IEnumWbemClassObject_SmartNext(arg1,arg2,arg3,arg4,arg5,arg6);
3626   if (!W_ERROR_IS_OK(result)) {
3627     PyErr_SetWERROR(result);
3628     SWIG_fail;
3629   } else if (resultobj == NULL) {
3630     resultobj = Py_None;
3631   }
3632   {
3633     uint32_t i;
3634     PyObject *o;
3635     int32_t error;
3636     
3637     error = 0;
3638     
3639     resultobj = PyTuple_New(*arg6);
3640     for (i = 0; i < *arg6; ++i) {
3641       if (!error) {
3642         o = PySWbemObject_FromWbemClassObject(arg5[i]);
3643         if (!o)
3644         --error;
3645         else
3646         error = PyTuple_SetItem(resultobj, i, o);
3647       }
3648       talloc_free(arg5[i]);
3649     }
3650     talloc_free(arg5);
3651     if (error) return NULL;
3652   }
3653   return resultobj;
3654 fail:
3655   return NULL;
3656 }
3657 
3658 
3659 static PyMethodDef SwigMethods[] = {
3660          { (char *)"WBEM_ConnectServer", (PyCFunction) _wrap_WBEM_ConnectServer, METH_VARARGS | METH_KEYWORDS, NULL},
3661          { (char *)"IUnknown_Release", (PyCFunction)_wrap_IUnknown_Release, METH_O, NULL},
3662          { (char *)"new_IUnknown", (PyCFunction)_wrap_new_IUnknown, METH_NOARGS, NULL},
3663          { (char *)"delete_IUnknown", (PyCFunction)_wrap_delete_IUnknown, METH_O, NULL},
3664          { (char *)"IUnknown_swigregister", IUnknown_swigregister, METH_VARARGS, NULL},
3665          { (char *)"IUnknown_swiginit", IUnknown_swiginit, METH_VARARGS, NULL},
3666          { (char *)"IWbemServices_ExecQuery", (PyCFunction) _wrap_IWbemServices_ExecQuery, METH_VARARGS | METH_KEYWORDS, NULL},
3667          { (char *)"IWbemServices_ExecNotificationQuery", (PyCFunction) _wrap_IWbemServices_ExecNotificationQuery, METH_VARARGS | METH_KEYWORDS, NULL},
3668          { (char *)"IWbemServices_CreateInstanceEnum", (PyCFunction) _wrap_IWbemServices_CreateInstanceEnum, METH_VARARGS | METH_KEYWORDS, NULL},
3669          { (char *)"new_IWbemServices", (PyCFunction)_wrap_new_IWbemServices, METH_NOARGS, NULL},
3670          { (char *)"delete_IWbemServices", (PyCFunction)_wrap_delete_IWbemServices, METH_O, NULL},
3671          { (char *)"IWbemServices_swigregister", IWbemServices_swigregister, METH_VARARGS, NULL},
3672          { (char *)"IWbemServices_swiginit", IWbemServices_swiginit, METH_VARARGS, NULL},
3673          { (char *)"IEnumWbemClassObject_Reset", (PyCFunction)_wrap_IEnumWbemClassObject_Reset, METH_O, NULL},
3674          { (char *)"new_IEnumWbemClassObject", (PyCFunction)_wrap_new_IEnumWbemClassObject, METH_NOARGS, NULL},
3675          { (char *)"delete_IEnumWbemClassObject", (PyCFunction)_wrap_delete_IEnumWbemClassObject, METH_O, NULL},
3676          { (char *)"IEnumWbemClassObject_swigregister", IEnumWbemClassObject_swigregister, METH_VARARGS, NULL},
3677          { (char *)"IEnumWbemClassObject_swiginit", IEnumWbemClassObject_swiginit, METH_VARARGS, NULL},
3678          { (char *)"IEnumWbemClassObject_SmartNext", (PyCFunction) _wrap_IEnumWbemClassObject_SmartNext, METH_VARARGS | METH_KEYWORDS, NULL},
3679          { NULL, NULL, 0, NULL }
3680 };
3681 
3682 
3683 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
3684 
3685 static swig_type_info _swigt__p_BSTR = {"_p_BSTR", "struct BSTR *", 0, 0, (void*)0, 0};
3686 static swig_type_info _swigt__p_IEnumWbemClassObject = {"_p_IEnumWbemClassObject", "struct IEnumWbemClassObject *|IEnumWbemClassObject *", 0, 0, (void*)0, 0};
3687 static swig_type_info _swigt__p_IUnknown = {"_p_IUnknown", "struct IUnknown *|IUnknown *", 0, 0, (void*)0, 0};
3688 static swig_type_info _swigt__p_IWbemContext = {"_p_IWbemContext", "struct IWbemContext *", 0, 0, (void*)0, 0};
3689 static swig_type_info _swigt__p_IWbemServices = {"_p_IWbemServices", "struct IWbemServices *|IWbemServices *", 0, 0, (void*)0, 0};
3690 static swig_type_info _swigt__p_TALLOC_CTX = {"_p_TALLOC_CTX", "TALLOC_CTX *", 0, 0, (void*)0, 0};
3691 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
3692 static swig_type_info _swigt__p_com_context = {"_p_com_context", "struct com_context *", 0, 0, (void*)0, 0};
3693 static swig_type_info _swigt__p_int = {"_p_int", "intptr_t *|int *|int_least32_t *|int_fast32_t *|int32_t *|int_fast16_t *", 0, 0, (void*)0, 0};
3694 static swig_type_info _swigt__p_long_long = {"_p_long_long", "int_least64_t *|int_fast64_t *|int64_t *|long long *|intmax_t *", 0, 0, (void*)0, 0};
3695 static swig_type_info _swigt__p_p_IEnumWbemClassObject = {"_p_p_IEnumWbemClassObject", "struct IEnumWbemClassObject **", 0, 0, (void*)0, 0};
3696 static swig_type_info _swigt__p_p_IWbemServices = {"_p_p_IWbemServices", "struct IWbemServices **", 0, 0, (void*)0, 0};
3697 static swig_type_info _swigt__p_p_WbemClassObject = {"_p_p_WbemClassObject", "struct WbemClassObject **", 0, 0, (void*)0, 0};
3698 static swig_type_info _swigt__p_short = {"_p_short", "short *|int_least16_t *|int16_t *", 0, 0, (void*)0, 0};
3699 static swig_type_info _swigt__p_signed_char = {"_p_signed_char", "signed char *|int_least8_t *|int_fast8_t *|int8_t *", 0, 0, (void*)0, 0};
3700 static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint_least8_t *|uint_fast8_t *|uint8_t *", 0, 0, (void*)0, 0};
3701 static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uintptr_t *|uint_least32_t *|uint_fast32_t *|uint32_t *|unsigned int *|uint_fast16_t *", 0, 0, (void*)0, 0};
3702 static swig_type_info _swigt__p_unsigned_long_long = {"_p_unsigned_long_long", "uint_least64_t *|uint_fast64_t *|uint64_t *|unsigned long long *|uintmax_t *", 0, 0, (void*)0, 0};
3703 static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|uint_least16_t *|uint16_t *", 0, 0, (void*)0, 0};
3704 
3705 static swig_type_info *swig_type_initial[] = {
3706   &_swigt__p_BSTR,
3707   &_swigt__p_IEnumWbemClassObject,
3708   &_swigt__p_IUnknown,
3709   &_swigt__p_IWbemContext,
3710   &_swigt__p_IWbemServices,
3711   &_swigt__p_TALLOC_CTX,
3712   &_swigt__p_char,
3713   &_swigt__p_com_context,
3714   &_swigt__p_int,
3715   &_swigt__p_long_long,
3716   &_swigt__p_p_IEnumWbemClassObject,
3717   &_swigt__p_p_IWbemServices,
3718   &_swigt__p_p_WbemClassObject,
3719   &_swigt__p_short,
3720   &_swigt__p_signed_char,
3721   &_swigt__p_unsigned_char,
3722   &_swigt__p_unsigned_int,
3723   &_swigt__p_unsigned_long_long,
3724   &_swigt__p_unsigned_short,
3725 };
3726 
3727 static swig_cast_info _swigc__p_BSTR[] = {  {&_swigt__p_BSTR, 0, 0, 0},{0, 0, 0, 0}};
3728 static swig_cast_info _swigc__p_IEnumWbemClassObject[] = {  {&_swigt__p_IEnumWbemClassObject, 0, 0, 0},{0, 0, 0, 0}};
3729 static swig_cast_info _swigc__p_IUnknown[] = {  {&_swigt__p_IUnknown, 0, 0, 0},{0, 0, 0, 0}};
3730 static swig_cast_info _swigc__p_IWbemContext[] = {  {&_swigt__p_IWbemContext, 0, 0, 0},{0, 0, 0, 0}};
3731 static swig_cast_info _swigc__p_IWbemServices[] = {  {&_swigt__p_IWbemServices, 0, 0, 0},{0, 0, 0, 0}};
3732 static swig_cast_info _swigc__p_TALLOC_CTX[] = {  {&_swigt__p_TALLOC_CTX, 0, 0, 0},{0, 0, 0, 0}};
3733 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
3734 static swig_cast_info _swigc__p_com_context[] = {  {&_swigt__p_com_context, 0, 0, 0},{0, 0, 0, 0}};
3735 static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
3736 static swig_cast_info _swigc__p_long_long[] = {  {&_swigt__p_long_long, 0, 0, 0},{0, 0, 0, 0}};
3737 static swig_cast_info _swigc__p_p_IEnumWbemClassObject[] = {  {&_swigt__p_p_IEnumWbemClassObject, 0, 0, 0},{0, 0, 0, 0}};
3738 static swig_cast_info _swigc__p_p_IWbemServices[] = {  {&_swigt__p_p_IWbemServices, 0, 0, 0},{0, 0, 0, 0}};
3739 static swig_cast_info _swigc__p_p_WbemClassObject[] = {  {&_swigt__p_p_WbemClassObject, 0, 0, 0},{0, 0, 0, 0}};
3740 static swig_cast_info _swigc__p_short[] = {  {&_swigt__p_short, 0, 0, 0},{0, 0, 0, 0}};
3741 static swig_cast_info _swigc__p_signed_char[] = {  {&_swigt__p_signed_char, 0, 0, 0},{0, 0, 0, 0}};
3742 static swig_cast_info _swigc__p_unsigned_char[] = {  {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
3743 static swig_cast_info _swigc__p_unsigned_int[] = {  {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
3744 static swig_cast_info _swigc__p_unsigned_long_long[] = {  {&_swigt__p_unsigned_long_long, 0, 0, 0},{0, 0, 0, 0}};
3745 static swig_cast_info _swigc__p_unsigned_short[] = {  {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}};
3746 
3747 static swig_cast_info *swig_cast_initial[] = {
3748   _swigc__p_BSTR,
3749   _swigc__p_IEnumWbemClassObject,
3750   _swigc__p_IUnknown,
3751   _swigc__p_IWbemContext,
3752   _swigc__p_IWbemServices,
3753   _swigc__p_TALLOC_CTX,
3754   _swigc__p_char,
3755   _swigc__p_com_context,
3756   _swigc__p_int,
3757   _swigc__p_long_long,
3758   _swigc__p_p_IEnumWbemClassObject,
3759   _swigc__p_p_IWbemServices,
3760   _swigc__p_p_WbemClassObject,
3761   _swigc__p_short,
3762   _swigc__p_signed_char,
3763   _swigc__p_unsigned_char,
3764   _swigc__p_unsigned_int,
3765   _swigc__p_unsigned_long_long,
3766   _swigc__p_unsigned_short,
3767 };
3768 
3769 
3770 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
3771 
3772 static swig_const_info swig_const_table[] = {
3773 {0, 0, 0, 0.0, 0, 0}};
3774 
3775 #ifdef __cplusplus
3776 }
3777 #endif
3778 /* -----------------------------------------------------------------------------
3779  * Type initialization:
3780  * This problem is tough by the requirement that no dynamic 
3781  * memory is used. Also, since swig_type_info structures store pointers to 
3782  * swig_cast_info structures and swig_cast_info structures store pointers back
3783  * to swig_type_info structures, we need some lookup code at initialization. 
3784  * The idea is that swig generates all the structures that are needed. 
3785  * The runtime then collects these partially filled structures. 
3786  * The SWIG_InitializeModule function takes these initial arrays out of 
3787  * swig_module, and does all the lookup, filling in the swig_module.types
3788  * array with the correct data and linking the correct swig_cast_info
3789  * structures together.
3790  *
3791  * The generated swig_type_info structures are assigned staticly to an initial 
3792  * array. We just loop through that array, and handle each type individually.
3793  * First we lookup if this type has been already loaded, and if so, use the
3794  * loaded structure instead of the generated one. Then we have to fill in the
3795  * cast linked list. The cast data is initially stored in something like a
3796  * two-dimensional array. Each row corresponds to a type (there are the same
3797  * number of rows as there are in the swig_type_initial array). Each entry in
3798  * a column is one of the swig_cast_info structures for that type.
3799  * The cast_initial array is actually an array of arrays, because each row has
3800  * a variable number of columns. So to actually build the cast linked list,
3801  * we find the array of casts associated with the type, and loop through it 
3802  * adding the casts to the list. The one last trick we need to do is making
3803  * sure the type pointer in the swig_cast_info struct is correct.
3804  *
3805  * First off, we lookup the cast->type name to see if it is already loaded. 
3806  * There are three cases to handle:
3807  *  1) If the cast->type has already been loaded AND the type we are adding
3808  *     casting info to has not been loaded (it is in this module), THEN we
3809  *     replace the cast->type pointer with the type pointer that has already
3810  *     been loaded.
3811  *  2) If BOTH types (the one we are adding casting info to, and the 
3812  *     cast->type) are loaded, THEN the cast info has already been loaded by
3813  *     the previous module so we just ignore it.
3814  *  3) Finally, if cast->type has not already been loaded, then we add that
3815  *     swig_cast_info to the linked list (because the cast->type) pointer will
3816  *     be correct.
3817  * ----------------------------------------------------------------------------- */
3818 
3819 #ifdef __cplusplus
3820 extern "C" {
3821 #if 0
3822 } /* c-mode */
3823 #endif
3824 #endif
3825 
3826 #if 0
3827 #define SWIGRUNTIME_DEBUG
3828 #endif
3829 
3830 
3831 SWIGRUNTIME void
3832 SWIG_InitializeModule(void *clientdata) {
     /* [<][>][^][v][top][bottom][index][help] */
3833   size_t i;
3834   swig_module_info *module_head, *iter;
3835   int found, init;
3836   
3837   clientdata = clientdata;
3838   
3839   /* check to see if the circular list has been setup, if not, set it up */
3840   if (swig_module.next==0) {
3841     /* Initialize the swig_module */
3842     swig_module.type_initial = swig_type_initial;
3843     swig_module.cast_initial = swig_cast_initial;
3844     swig_module.next = &swig_module;
3845     init = 1;
3846   } else {
3847     init = 0;
3848   }
3849   
3850   /* Try and load any already created modules */
3851   module_head = SWIG_GetModule(clientdata);
3852   if (!module_head) {
3853     /* This is the first module loaded for this interpreter */
3854     /* so set the swig module into the interpreter */
3855     SWIG_SetModule(clientdata, &swig_module);
3856     module_head = &swig_module;
3857   } else {
3858     /* the interpreter has loaded a SWIG module, but has it loaded this one? */
3859     found=0;
3860     iter=module_head;
3861     do {
3862       if (iter==&swig_module) {
3863         found=1;
3864         break;
3865       }
3866       iter=iter->next;
3867     } while (iter!= module_head);
3868     
3869     /* if the is found in the list, then all is done and we may leave */
3870     if (found) return;
3871     /* otherwise we must add out module into the list */
3872     swig_module.next = module_head->next;
3873     module_head->next = &swig_module;
3874   }
3875   
3876   /* When multiple interpeters are used, a module could have already been initialized in
3877        a different interpreter, but not yet have a pointer in this interpreter.
3878        In this case, we do not want to continue adding types... everything should be
3879        set up already */
3880   if (init == 0) return;
3881   
3882   /* Now work on filling in swig_module.types */
3883 #ifdef SWIGRUNTIME_DEBUG
3884   printf("SWIG_InitializeModule: size %d\n", swig_module.size);
3885 #endif
3886   for (i = 0; i < swig_module.size; ++i) {
3887     swig_type_info *type = 0;
3888     swig_type_info *ret;
3889     swig_cast_info *cast;
3890     
3891 #ifdef SWIGRUNTIME_DEBUG
3892     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
3893 #endif
3894     
3895     /* if there is another module already loaded */
3896     if (swig_module.next != &swig_module) {
3897       type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
3898     }
3899     if (type) {
3900       /* Overwrite clientdata field */
3901 #ifdef SWIGRUNTIME_DEBUG
3902       printf("SWIG_InitializeModule: found type %s\n", type->name);
3903 #endif
3904       if (swig_module.type_initial[i]->clientdata) {
3905         type->clientdata = swig_module.type_initial[i]->clientdata;
3906 #ifdef SWIGRUNTIME_DEBUG
3907         printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
3908 #endif
3909       }
3910     } else {
3911       type = swig_module.type_initial[i];
3912     }
3913     
3914     /* Insert casting types */
3915     cast = swig_module.cast_initial[i];
3916     while (cast->type) {
3917       /* Don't need to add information already in the list */
3918       ret = 0;
3919 #ifdef SWIGRUNTIME_DEBUG
3920       printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
3921 #endif
3922       if (swig_module.next != &swig_module) {
3923         ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
3924 #ifdef SWIGRUNTIME_DEBUG
3925         if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
3926 #endif
3927       }
3928       if (ret) {
3929         if (type == swig_module.type_initial[i]) {
3930 #ifdef SWIGRUNTIME_DEBUG
3931           printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
3932 #endif
3933           cast->type = ret;
3934           ret = 0;
3935         } else {
3936           /* Check for casting already in the list */
3937           swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
3938 #ifdef SWIGRUNTIME_DEBUG
3939           if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
3940 #endif
3941           if (!ocast) ret = 0;
3942         }
3943       }
3944       
3945       if (!ret) {
3946 #ifdef SWIGRUNTIME_DEBUG
3947         printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
3948 #endif
3949         if (type->cast) {
3950           type->cast->prev = cast;
3951           cast->next = type->cast;
3952         }
3953         type->cast = cast;
3954       }
3955       cast++;
3956     }
3957     /* Set entry in modules->types array equal to the type */
3958     swig_module.types[i] = type;
3959   }
3960   swig_module.types[i] = 0;
3961   
3962 #ifdef SWIGRUNTIME_DEBUG
3963   printf("**** SWIG_InitializeModule: Cast List ******\n");
3964   for (i = 0; i < swig_module.size; ++i) {
3965     int j = 0;
3966     swig_cast_info *cast = swig_module.cast_initial[i];
3967     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
3968     while (cast->type) {
3969       printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
3970       cast++;
3971       ++j;
3972     }
3973     printf("---- Total casts: %d\n",j);
3974   }
3975   printf("**** SWIG_InitializeModule: Cast List ******\n");
3976 #endif
3977 }
3978 
3979 /* This function will propagate the clientdata field of type to
3980 * any new swig_type_info structures that have been added into the list
3981 * of equivalent types.  It is like calling
3982 * SWIG_TypeClientData(type, clientdata) a second time.
3983 */
3984 SWIGRUNTIME void
3985 SWIG_PropagateClientData(void) {
     /* [<][>][^][v][top][bottom][index][help] */
3986   size_t i;
3987   swig_cast_info *equiv;
3988   static int init_run = 0;
3989   
3990   if (init_run) return;
3991   init_run = 1;
3992   
3993   for (i = 0; i < swig_module.size; i++) {
3994     if (swig_module.types[i]->clientdata) {
3995       equiv = swig_module.types[i]->cast;
3996       while (equiv) {
3997         if (!equiv->converter) {
3998           if (equiv->type && !equiv->type->clientdata)
3999           SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
4000         }
4001         equiv = equiv->next;
4002       }
4003     }
4004   }
4005 }
4006 
4007 #ifdef __cplusplus
4008 #if 0
4009 {
4010   /* c-mode */
4011 #endif
4012 }
4013 #endif
4014 
4015 
4016 
4017 #ifdef __cplusplus
4018 extern "C" {
4019 #endif
4020   
4021   /* Python-specific SWIG API */
4022 #define SWIG_newvarlink()                             SWIG_Python_newvarlink()
4023 #define SWIG_addvarlink(p, name, get_attr, set_attr)  SWIG_Python_addvarlink(p, name, get_attr, set_attr)
4024 #define SWIG_InstallConstants(d, constants)           SWIG_Python_InstallConstants(d, constants)
4025   
4026   /* -----------------------------------------------------------------------------
4027    * global variable support code.
4028    * ----------------------------------------------------------------------------- */
4029   
4030   typedef struct swig_globalvar {
4031     char       *name;                  /* Name of global variable */
4032     PyObject *(*get_attr)(void);       /* Return the current value */
4033     int       (*set_attr)(PyObject *); /* Set the value */
4034     struct swig_globalvar *next;
4035   } swig_globalvar;
4036   
4037   typedef struct swig_varlinkobject {
4038     PyObject_HEAD
4039     swig_globalvar *vars;
4040   } swig_varlinkobject;
4041   
4042   SWIGINTERN PyObject *
4043   swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) {
     /* [<][>][^][v][top][bottom][index][help] */
4044     return PyString_FromString("<Swig global variables>");
4045   }
4046   
4047   SWIGINTERN PyObject *
4048   swig_varlink_str(swig_varlinkobject *v) {
     /* [<][>][^][v][top][bottom][index][help] */
4049     PyObject *str = PyString_FromString("(");
4050     swig_globalvar  *var;
4051     for (var = v->vars; var; var=var->next) {
4052       PyString_ConcatAndDel(&str,PyString_FromString(var->name));
4053       if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", "));
4054     }
4055     PyString_ConcatAndDel(&str,PyString_FromString(")"));
4056     return str;
4057   }
4058   
4059   SWIGINTERN int
4060   swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) {
     /* [<][>][^][v][top][bottom][index][help] */
4061     PyObject *str = swig_varlink_str(v);
4062     fprintf(fp,"Swig global variables ");
4063     fprintf(fp,"%s\n", PyString_AsString(str));
4064     Py_DECREF(str);
4065     return 0;
4066   }
4067   
4068   SWIGINTERN void
4069   swig_varlink_dealloc(swig_varlinkobject *v) {
     /* [<][>][^][v][top][bottom][index][help] */
4070     swig_globalvar *var = v->vars;
4071     while (var) {
4072       swig_globalvar *n = var->next;
4073       free(var->name);
4074       free(var);
4075       var = n;
4076     }
4077   }
4078   
4079   SWIGINTERN PyObject *
4080   swig_varlink_getattr(swig_varlinkobject *v, char *n) {
     /* [<][>][^][v][top][bottom][index][help] */
4081     PyObject *res = NULL;
4082     swig_globalvar *var = v->vars;
4083     while (var) {
4084       if (strcmp(var->name,n) == 0) {
4085         res = (*var->get_attr)();
4086         break;
4087       }
4088       var = var->next;
4089     }
4090     if (res == NULL && !PyErr_Occurred()) {
4091       PyErr_SetString(PyExc_NameError,"Unknown C global variable");
4092     }
4093     return res;
4094   }
4095   
4096   SWIGINTERN int
4097   swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
     /* [<][>][^][v][top][bottom][index][help] */
4098     int res = 1;
4099     swig_globalvar *var = v->vars;
4100     while (var) {
4101       if (strcmp(var->name,n) == 0) {
4102         res = (*var->set_attr)(p);
4103         break;
4104       }
4105       var = var->next;
4106     }
4107     if (res == 1 && !PyErr_Occurred()) {
4108       PyErr_SetString(PyExc_NameError,"Unknown C global variable");
4109     }
4110     return res;
4111   }
4112   
4113   SWIGINTERN PyTypeObject*
4114   swig_varlink_type(void) {
     /* [<][>][^][v][top][bottom][index][help] */
4115     static char varlink__doc__[] = "Swig var link object";
4116     static PyTypeObject varlink_type;
4117     static int type_init = 0;  
4118     if (!type_init) {
4119       const PyTypeObject tmp
4120       = {
4121         PyObject_HEAD_INIT(NULL)
4122         0,                                  /* Number of items in variable part (ob_size) */
4123         (char *)"swigvarlink",              /* Type name (tp_name) */
4124         sizeof(swig_varlinkobject),         /* Basic size (tp_basicsize) */
4125         0,                                  /* Itemsize (tp_itemsize) */
4126         (destructor) swig_varlink_dealloc,   /* Deallocator (tp_dealloc) */ 
4127         (printfunc) swig_varlink_print,     /* Print (tp_print) */
4128         (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */
4129         (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */
4130         0,                                  /* tp_compare */
4131         (reprfunc) swig_varlink_repr,       /* tp_repr */
4132         0,                                  /* tp_as_number */
4133         0,                                  /* tp_as_sequence */
4134         0,                                  /* tp_as_mapping */
4135         0,                                  /* tp_hash */
4136         0,                                  /* tp_call */
4137         (reprfunc)swig_varlink_str,        /* tp_str */
4138         0,                                  /* tp_getattro */
4139         0,                                  /* tp_setattro */
4140         0,                                  /* tp_as_buffer */
4141         0,                                  /* tp_flags */
4142         varlink__doc__,                     /* tp_doc */
4143         0,                                  /* tp_traverse */
4144         0,                                  /* tp_clear */
4145         0,                                  /* tp_richcompare */
4146         0,                                  /* tp_weaklistoffset */
4147 #if PY_VERSION_HEX >= 0x02020000
4148         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
4149 #endif
4150 #if PY_VERSION_HEX >= 0x02030000
4151         0,                                  /* tp_del */
4152 #endif
4153 #ifdef COUNT_ALLOCS
4154         0,0,0,0                             /* tp_alloc -> tp_next */
4155 #endif
4156       };
4157       varlink_type = tmp;
4158       varlink_type.ob_type = &PyType_Type;
4159       type_init = 1;
4160     }
4161     return &varlink_type;
4162   }
4163   
4164   /* Create a variable linking object for use later */
4165   SWIGINTERN PyObject *
4166   SWIG_Python_newvarlink(void) {
     /* [<][>][^][v][top][bottom][index][help] */
4167     swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
4168     if (result) {
4169       result->vars = 0;
4170     }
4171     return ((PyObject*) result);
4172   }
4173   
4174   SWIGINTERN void 
4175   SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
     /* [<][>][^][v][top][bottom][index][help] */
4176     swig_varlinkobject *v = (swig_varlinkobject *) p;
4177     swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar));
4178     if (gv) {
4179       size_t size = strlen(name)+1;
4180       gv->name = (char *)malloc(size);
4181       if (gv->name) {
4182         strncpy(gv->name,name,size);
4183         gv->get_attr = get_attr;
4184         gv->set_attr = set_attr;
4185         gv->next = v->vars;
4186       }
4187     }
4188     v->vars = gv;
4189   }
4190   
4191   SWIGINTERN PyObject *
4192   SWIG_globals(void) {
     /* [<][>][^][v][top][bottom][index][help] */
4193     static PyObject *_SWIG_globals = 0; 
4194     if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink();  
4195     return _SWIG_globals;
4196   }
4197   
4198   /* -----------------------------------------------------------------------------
4199    * constants/methods manipulation
4200    * ----------------------------------------------------------------------------- */
4201   
4202   /* Install Constants */
4203   SWIGINTERN void
4204   SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {
     /* [<][>][^][v][top][bottom][index][help] */
4205     PyObject *obj = 0;
4206     size_t i;
4207     for (i = 0; constants[i].type; ++i) {
4208       switch(constants[i].type) {
4209       case SWIG_PY_POINTER:
4210         obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
4211         break;
4212       case SWIG_PY_BINARY:
4213         obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
4214         break;
4215       default:
4216         obj = 0;
4217         break;
4218       }
4219       if (obj) {
4220         PyDict_SetItemString(d, constants[i].name, obj);
4221         Py_DECREF(obj);
4222       }
4223     }
4224   }
4225   
4226   /* -----------------------------------------------------------------------------*/
4227   /* Fix SwigMethods to carry the callback ptrs when needed */
4228   /* -----------------------------------------------------------------------------*/
4229   
4230   SWIGINTERN void
4231   SWIG_Python_FixMethods(PyMethodDef *methods,
     /* [<][>][^][v][top][bottom][index][help] */
4232     swig_const_info *const_table,
4233     swig_type_info **types,
4234     swig_type_info **types_initial) {
4235     size_t i;
4236     for (i = 0; methods[i].ml_name; ++i) {
4237       const char *c = methods[i].ml_doc;
4238       if (c && (c = strstr(c, "swig_ptr: "))) {
4239         int j;
4240         swig_const_info *ci = 0;
4241         const char *name = c + 10;
4242         for (j = 0; const_table[j].type; ++j) {
4243           if (strncmp(const_table[j].name, name, 
4244               strlen(const_table[j].name)) == 0) {
4245             ci = &(const_table[j]);
4246             break;
4247           }
4248         }
4249         if (ci) {
4250           size_t shift = (ci->ptype) - types;
4251           swig_type_info *ty = types_initial[shift];
4252           size_t ldoc = (c - methods[i].ml_doc);
4253           size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
4254           char *ndoc = (char*)malloc(ldoc + lptr + 10);
4255           if (ndoc) {
4256             char *buff = ndoc;
4257             void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
4258             if (ptr) {
4259               strncpy(buff, methods[i].ml_doc, ldoc);
4260               buff += ldoc;
4261               strncpy(buff, "swig_ptr: ", 10);
4262               buff += 10;
4263               SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
4264               methods[i].ml_doc = ndoc;
4265             }
4266           }
4267         }
4268       }
4269     }
4270   } 
4271   
4272 #ifdef __cplusplus
4273 }
4274 #endif
4275 
4276 /* -----------------------------------------------------------------------------*
4277  *  Partial Init method
4278  * -----------------------------------------------------------------------------*/
4279 
4280 #ifdef __cplusplus
4281 extern "C"
4282 #endif
4283 SWIGEXPORT void SWIG_init(void) {
     /* [<][>][^][v][top][bottom][index][help] */
4284   PyObject *m, *d;
4285   
4286   /* Fix SwigMethods to carry the callback ptrs when needed */
4287   SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial);
4288   
4289   m = Py_InitModule((char *) SWIG_name, SwigMethods);
4290   d = PyModule_GetDict(m);
4291   
4292   SWIG_InitializeModule(0);
4293   SWIG_InstallConstants(d,swig_const_table);
4294   
4295   
4296   
4297   
4298   mod_win32_client = PyImport_ImportModule("win32com.client");
4299   mod_pywintypes = PyImport_ImportModule("pywintypes");
4300   ComError = PyObject_GetAttrString(mod_pywintypes, "com_error");
4301   
4302   wmi_init(&com_ctx, NULL);
4303   {
4304     PyObject *pModule;
4305     
4306     pModule = PyImport_ImportModule( "win32com.client" );
4307   }
4308   
4309 }
4310 

/* [<][>][^][v][top][bottom][index][help] */